I'm having trouble with a post and a new screen set for Mach 3.
In short, it's not doing what it's supposed to.
Installed all files and post into SheetCam.
Loaded simple file, 6 inch line.
Ran post in sheetcam and loaded g code into Mach 3.
Machine moves into position, torch moves down a small amount but doesn't go far enough to trigger probe.
It then pulls up sets the z (on the mach screen to .2 (pierce height) fires torch then drops it to .06 (cut height). Then arc goes out (plasma cutter gives up)
Something else,
I am unable to enter a negative number into the screen for "Z minimum height".
I set it at 1.
See screen shot.
Here's a link to a video of the machine running. It's supposed to cut a 6 inch line.
https://www.youtube.com/watch?v=vmCUP8zdHkw
I'm using the CNC4PC THC-1 This is the documentation
https://cnc4pc.com/blog/post/manual-mac ... oypXJiuKeC
On the page there is a sceenset for Mach 3, some macros and some bitmaps, as well as a post for SheetCam. Here's a link
https://cnc4pc.com/mpattachments/file/v ... t_id/1895/
Thanks Guys!!!
Here is the Post,
function OnAbout(event)
ctrl = event:GetTextCtrl()
ctrl:AppendText("Mach3 CNC4pc Plasma no Z\n")
ctrl:AppendText("\n")
ctrl:AppendText("Generic plasma post for machines without THC\n")
ctrl:AppendText("\n")
ctrl:AppendText("Modal G-codes and coordinates\n")
ctrl:AppendText("Comments enclosed with ( and )\n")
ctrl:AppendText("M03/M05 turn the torch on/off\n")
ctrl:AppendText("Incremental IJ\n")
end
-- created 26/5/23
-- Based on Mach2 metric.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 (" G53 G90 G91.1 G40\n F1\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()
if(math.hypot(currentX - endX, currentY - endY) < 0.001) then return end
post.ModalText (" G00")
post.ModalNumber (" X", endX * scale, "0.0000")
post.ModalNumber (" Y", endY * scale, "0.0000")
-- post.ModalNumber (" Z", endZ * scale, "0.0000")
post.Eol()
end
function OnMove()
if(math.hypot(currentX - endX, currentY - endY) < 0.001) then return end
post.ModalText (" G01")
post.ModalNumber (" X", endX * scale, "0.0000")
post.ModalNumber (" Y", endY * scale, "0.0000")
-- post.ModalNumber (" Z", endZ * scale, "0.0000")
post.ModalNumber (" F", feedRate * scale, "0.0###")
post.Eol()
end
function OnArc()
if(arcAngle <0) then
post.ModalText (" G03")
else
post.ModalText (" G02")
end
post.NonModalNumber (" X", endX * scale, "0.0000")
post.NonModalNumber (" Y", endY * scale, "0.0000")
-- post.ModalNumber (" Z", endZ * scale, "0.0000")
post.Text (" I")
post.Number ((arcCentreX - currentX) * scale, "0.0000")
post.Text (" J")
post.Number ((arcCentreY - currentY) * scale, "0.0000")
post.ModalNumber (" F", feedRate * scale, "0.0###")
post.Eol()
end
function OnPenDown()
if (preheat > 0.001) then
-- post.ModalText (" G00")
-- post.ModalNumber (" Z", cutHeight * scale, "0.0000")
-- post.Text (" G04 P")
-- post.Number (preheat,"0.###")
post.Eol()
end
-- post.ModalText (" G00")
-- post.ModalNumber (" Z", pierceHeight * scale, "0.0000")
post.Text (" M03\n")
if (pierceDelay > 0.001) then
-- post.Text (" G04 P")
-- post.Number (pierceDelay,"0.###")
post.Eol()
end
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 OnToolChange()
end
function OnNewPart()
post.Text(" (Part: ",partName,")\n");
end
function OnDrill()
OnRapid()
OnPenDown()
endZ = drillZ
OnMove()
OnPenUp()
endZ = safeZ
OnRapid()
end