Rotary cutting square tube with PlasmaC?

More
5 years 9 months ago #194780 by rodw
So anyway, back to the original question. I think to use the Sheetcam rotary plugin for square tube, you probably would be best not using Plasmac so you have gcode control of the Z axis. start the torch with the spindle.0.on signal, and do the probing in Gcode using a touch off routine. BigJohn has an example on his web site gnipsel.com if you can't work it out.

You won't need a THC or any fancy features so a standard axis config would do the job for you.

Please Log in or Create an account to join the conversation.

More
5 years 9 months ago #194781 by rodw

robertspark wrote: for round tube I just use one of these with a bracket to hang it underneath / supported to my table + allow me to square it.

i.ebayimg.com/images/g/AwgAAOSwUY9dPzvk/s-l1600.jpg

with a bit of an uprated stepper motor (nema 23, 4.2A, 3.1Nm)
www.cnc4you.co.uk/Stepper-Motor/Nema23-3...Nm-60BYGH301B-Nema23

I don't do a lot of tube, but it works fine for my hobbist needs (beats an angle grinder + flapdisc / file....) :)


Robert is that a 4 jaw self centring chuck? They would be perfect for square tube.

Please Log in or Create an account to join the conversation.

More
5 years 9 months ago - 5 years 9 months ago #194808 by robertspark

rodw wrote: Robert is that a 4 jaw self centring chuck? They would be perfect for square tube.


yes that is why I got it / went with the 4 jaw self-centring. (also better with thinner wall tube)

I've not tried it with square tube.... but it was a nice to have / just in case feature.
Last edit: 5 years 9 months ago by robertspark.
The following user(s) said Thank You: rodw, razplaz

Please Log in or Create an account to join the conversation.

More
5 years 9 months ago #194809 by phillc54

rodw wrote: you probably would be best not using Plasmac so you have gcode control of the Z axis.


It would be easy enough to add an option in the gcode parser for a magic comment to not remove Z axis motion commands.

Please Log in or Create an account to join the conversation.

More
5 years 9 months ago #194810 by rodw

phillc54 wrote:

rodw wrote: you probably would be best not using Plasmac so you have gcode control of the Z axis.


It would be easy enough to add an option in the gcode parser for a magic comment to not remove Z axis motion commands.


That would be cool. But some way the Sheetcam post could set that without changing the post processor would be even better. I don't know the Sheetcam rotary. does it have a different post?

I wonder if a cutting rule could be used to insert the comment?

Please Log in or Create an account to join the conversation.

More
5 years 9 months ago #194826 by robertspark
Just looking at sheetcam now there actually is a LinuxCNC Plasma Rotary post processor listed:
Code:
--************************************************ --*** Set these values up to suit your machine *** --scriber axis. --scriberAxis = "B" scriberAxis = "Z" --If this value is set to true then use G28 (home) for the Z reference --Set it to false for G31 probe refHome = true --rotary axis. Normally this would be "A" rotaryAxis = "A" --Number of units for one full revolution of the rotary axis --Note: In Mach3 the axis should be defined as linear, not rotary! unitsPerRev=360 -- Rapids will move the shortest distance to the next cut but may cause machines with limited rotation -- to 'wind up'. Set this to 0 to disable optimisation. --defaults to 1 if not defined optimiseRapids = 1 --************************************************ --*** End of settings *** --************************************************ function OnAbout(event) ctrl = event:GetTextCtrl() ctrl:AppendText("Post for rotary-plasma plugin LinuxCNC plasma\n") ctrl:AppendText("\n") ctrl:AppendText("Modal G-codes and coordinates\n") ctrl:AppendText("Comments enclosed with ( and )\n") ctrl:AppendText("Incremental IJ\n") end -- revision 3/2/07 -- Removed final safety move. This is now done in SheetCam -- revision 7/10/04 -- Added new arc handling -- Created 30/3/2005 -- based on Mach2.post function OnInit() post.SetCommentChars ("()", "[]") --make sure ( and ) characters do not appear in system text post.Text (" (Filename: ", fileName, ")\n") post.Text (" (Post processor: ", postName, ")\n") post.Text (" (Date: ", date, ")\n") if(scale == metric) then post.Text (" G21 (Units: Metric)\n") --metric mode else post.Text (" G20 (Units: Inches)\n") --inch mode end post.Text (" G40 G90\n F1 S1\n") bigArcs = 1 --stitch arc segments together minArcSize = 0.05 --arcs smaller than this are converted to moves end function OnNewLine() post.Text ("N") post.Number (lineNumber, "0000") lineNumber = lineNumber + 10 end function OnFinish() post.Text (" M05 M30\n") end function OnRapid() post.ModalText (" G00") post.ModalNumber (" X", endX * scale, "0.0000") post.ModalNumber (" Y", endY * scale, "0.0000") post.ModalNumber (" Z", (endZ + toolOffset) * scale, "0.0000") post.ModalNumber (" " .. rotaryAxis, endA, "0.0000") post.Eol() end function OnMove() post.ModalText (" G01") post.ModalNumber (" X", endX * scale, "0.0000") post.ModalNumber (" Y", endY * scale, "0.0000") post.ModalNumber (" Z", (endZ + toolOffset) * scale, "0.0000") post.ModalNumber (" " .. rotaryAxis, endA, "0.0000") post.ModalNumber (" F", feedRate * scale, "0.###") post.Eol() end function OnArc() local radius = math.hypot(currentX - arcCentreX, currentY - arcCentreY) dist = dist + radius * math.abs(arcAngle) if(arcAngle <0) then post.ModalText (" G03") else post.ModalText (" G02") end post.ModalNumber (" X", endX * scale, "0.0000") post.ModalNumber (" Y", endY * scale, "0.0000") if(offZ) then post.ModalNumber (" " .. currentZAxis, (endZ + offZ) * scale, "0.0000") end post.Text (" I") post.Number ((arcCentreX - currentX) * scale, "0.0000") post.Text (" J") post.Number ((arcCentreY - currentY) * scale, "0.0000") post.ModalNumber (" " .. rotaryAxis, endA, "0.0000") post.ModalNumber (" F", feedRate * scale, "0.0###") post.Eol() end function OnPenDown() local matZ = sc.QueryDll(qryCHKEND, endY, dllId) post.NonModalNumber(" o<touchoff> call [" ,(pierceHeight + matZ) * scale ,"0.000" ) post.Text ("] ") post.NonModalNumber("[", pierceDelay * scale, "0.##") post.Text ("] ") post.NonModalNumber("[", cutHeight * scale, "0.##") post.Text ("] (Touchoff and start cutting)\n") post.NonModalNumber (" F", feedRate * scale, "0.###") post.Eol() end function OnPenUp() post.Text (" M05\n") if (endDelay > 0) then post.Text (" G04 P") post.Number (endDelay,"0.###") post.Eol() end end function OnNewOperation() post.Text (" (Operation: ", operationName, ")\n") end function OnComment() post.Text(" (",commentText,")\n") end function OnNewPart() post.Text(" (Part: ",partName,")\n"); end function OnDrill() OnRapid() OnPenDown() endZ = drillZ OnMove() OnPenUp() endZ = safeZ OnRapid() end function OnFinish() post.Text ("G92.1 (Cancel offsets and set to zero)\n") post.Text ("G0 Z0\n") post.Text ("M2\n") post.Text ("%\n") end --Set this to the number of units for one full revolution of the A axis. For example 360 = 360 degrees. unitsPerRev=360 package.path = sc.Globals:Get().thisDir .. "/plugins/RotaryPlasma/?.lua" require("rotaryhelper") --change this to 1 if your machine is a robot --defaults to 0 isRobot = 0 --maximum error when converting arcs to multiple line segments. --Smaller numbers give better resolution but larger code size. --defaults to 0.1 arcResolution = 0.1 -- Rapids will move the shortest distance to the next cut but may cause machines with limited rotation -- to 'wind up'. Set this to 0 to disable optimisation. --defaults to 1 optimiseRapids = 0 --Set this to false if your code does not do a reference cycle ignorePierceHeightMove = true function OnArc() post.ArcAsMoves(0.1) end

Please Log in or Create an account to join the conversation.

Moderators: snowgoer540
Time to create page: 0.259 seconds
Powered by Kunena Forum