z raise after plasmacut
z raise after plasmacut
Hello,
I have a problem. When I make a cut it should do a G00 Z15 move after M05, and it does that on the screen, but the machine does not move in real life. And this does not happen all the time either. I have a proma thc and I wonder if its stopping the Z movement or something.
This is not always a problem, but when I am cutting thin sheets it can buckle a few mm and then the torch crash in to it.
Do anyone have a solution? I tried to put a delay after the cut, but that didnt work. Maybe write m101 after each cut?
I have a problem. When I make a cut it should do a G00 Z15 move after M05, and it does that on the screen, but the machine does not move in real life. And this does not happen all the time either. I have a proma thc and I wonder if its stopping the Z movement or something.
This is not always a problem, but when I am cutting thin sheets it can buckle a few mm and then the torch crash in to it.
Do anyone have a solution? I tried to put a delay after the cut, but that didnt work. Maybe write m101 after each cut?
Last edited by Pakko on Mon Dec 05, 2016 3:33 pm, edited 1 time in total.
- Les Newell
- Site Admin
- Posts: 3661
- Joined: Thu May 11, 2006 8:12 pm
I slowed down the z acceleration and speed, but that didnt help. And sometimes it raises to the correct hight.... strange. The z ref trigger seems to be working fine also.
Can it have something to do with the height it stops cutting at? If it is a minus value for example at the end of the cut then it may not raise the torch?
Can it have something to do with the height it stops cutting at? If it is a minus value for example at the end of the cut then it may not raise the torch?
It seems that it does not raise the z axis when it is below Z0 at the end of the cut. Anyone else that have the same problem?
I have attached a file, if anyone can find a problem there
I have attached a file, if anyone can find a problem there
- Attachments
-
- brp120.tap
- (25.75 KiB) Downloaded 95 times
post processor
function OnAbout(event)
ctrl = event:GetTextCtrl()
ctrl:AppendText("Plasma MP1000-THC -ZRef post processor\n")
ctrl:AppendText("Use with floating head (auto touch off) ONLY\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 - set in mach3\n")
ctrl:AppendText("The torch is referenced at cut start and every 500mm of movement thereafter\n")
ctrl:AppendText("Designed for use with Mach3 and CandCNC MP1000-THC and Floating head Touch-n-Go\n")
end
--Post variables:
--refdistance - sets the distance between each reference (default is 500mm)
--switchoffset - sets your net switch offset amount (actual measured switch offset on your table)
--zrefslowdown - sets your distance that the Z uses ref-speed on the touch off. If larger than the Rapid Height it uses Rapid Height
-- modified 10/05/07 by Tom Caudle
-- Based on plasma1.post
function OnInit()
bigarcs = 1 --stitch arc segments together
minArcSize = 0.05 --arcs smaller than this are converted to moves
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 G40\n F1\n")
--NOTE: Variable numbers below are in MM and are converted to INCHES by the scale factor
dist = 9999999
refdistance = 10 * scale
zrefslowdown =12.7 * scale
--Put your switch offset value here
switchoffset =3
lastz = 0
if(zrefslowdown > safeZ * scale) then
zrefslowdown = safeZ * scale
end
end
function OnNewLine()
post.Text ("N")
post.Number (lineNumber, "0000")
lineNumber = lineNumber + 10
end
function OnFinish()
endZ = 10
OnRapid()
endX = 0
endY = 0
OnRapid()
post.Text (" M05 M30\n")
end
function OnRapid()
dist = dist + math.hypot(endX-currentX , endY-currentY)
post.ModalText (" G00")
post.ModalNumber (" X", endX * scale, "0.0000")
post.ModalNumber (" Y", endY * scale, "0.0000")
post.ModalNumber (" Z", safeZ * scale, "0.0000")
post.Eol()
end
function OnMove()
dist = dist + math.hypot(endX-currentX , endY-currentY)
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()
dist = dist + math.hypot(endX-currentX , endY-currentY)
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")
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(dist >= (refdistance/scale)) then
dist = 0
-- modaltext (" G00")
-- text(" Z")
-- number (pierceheight * scale, "0.0000")
-- eol()
post.ModalText(" G28.1 Z")
post.Number(zrefslowdown, "0.00")
post.Eol()
post.ModalText(" G92 Z0.0\n")
post.ModalText (" G00")
post.Text(" Z")
post.Number (switchoffset, "0.0000")
post.Eol()
post.ModalText(" G92 Z0.0\n")
post.ModalText (" G00")
post.Text(" Z")
post.Number (pierceHeight * scale, "0.0000")
post.Eol()
else
post.ModalText (" G00")
post.Text(" Z")
post.Number (pierceHeight * scale, "0.0000")
post.Eol()
end
if (preheat > 0) then
post.Text ("\n G04 P")
post.Number (preheat,"0.###")
post.Eol()
end
post.Text ("\n M03\n")
if (pierceDelay > 0) 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 (" (Process: ", operationName, ")\n")
if (plungeRate <= 0) then
post.Warning("WARNING: Plunge rate is zero")
end
if (feedRate <= 0) then
post.Warning("WARNING: Feed rate is zero")
end
end
function OnToolChange()
post.Text (" M06 T")
post.Number (tool, "0")
post.ModalNumber(" F",feedRate * scale,"0.#")
post.Text (" (", toolName, ")\n")
end
function OnNewPart()
post.Text(" (Part: ",partName,")\n");
end
ctrl = event:GetTextCtrl()
ctrl:AppendText("Plasma MP1000-THC -ZRef post processor\n")
ctrl:AppendText("Use with floating head (auto touch off) ONLY\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 - set in mach3\n")
ctrl:AppendText("The torch is referenced at cut start and every 500mm of movement thereafter\n")
ctrl:AppendText("Designed for use with Mach3 and CandCNC MP1000-THC and Floating head Touch-n-Go\n")
end
--Post variables:
--refdistance - sets the distance between each reference (default is 500mm)
--switchoffset - sets your net switch offset amount (actual measured switch offset on your table)
--zrefslowdown - sets your distance that the Z uses ref-speed on the touch off. If larger than the Rapid Height it uses Rapid Height
-- modified 10/05/07 by Tom Caudle
-- Based on plasma1.post
function OnInit()
bigarcs = 1 --stitch arc segments together
minArcSize = 0.05 --arcs smaller than this are converted to moves
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 G40\n F1\n")
--NOTE: Variable numbers below are in MM and are converted to INCHES by the scale factor
dist = 9999999
refdistance = 10 * scale
zrefslowdown =12.7 * scale
--Put your switch offset value here
switchoffset =3
lastz = 0
if(zrefslowdown > safeZ * scale) then
zrefslowdown = safeZ * scale
end
end
function OnNewLine()
post.Text ("N")
post.Number (lineNumber, "0000")
lineNumber = lineNumber + 10
end
function OnFinish()
endZ = 10
OnRapid()
endX = 0
endY = 0
OnRapid()
post.Text (" M05 M30\n")
end
function OnRapid()
dist = dist + math.hypot(endX-currentX , endY-currentY)
post.ModalText (" G00")
post.ModalNumber (" X", endX * scale, "0.0000")
post.ModalNumber (" Y", endY * scale, "0.0000")
post.ModalNumber (" Z", safeZ * scale, "0.0000")
post.Eol()
end
function OnMove()
dist = dist + math.hypot(endX-currentX , endY-currentY)
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()
dist = dist + math.hypot(endX-currentX , endY-currentY)
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")
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(dist >= (refdistance/scale)) then
dist = 0
-- modaltext (" G00")
-- text(" Z")
-- number (pierceheight * scale, "0.0000")
-- eol()
post.ModalText(" G28.1 Z")
post.Number(zrefslowdown, "0.00")
post.Eol()
post.ModalText(" G92 Z0.0\n")
post.ModalText (" G00")
post.Text(" Z")
post.Number (switchoffset, "0.0000")
post.Eol()
post.ModalText(" G92 Z0.0\n")
post.ModalText (" G00")
post.Text(" Z")
post.Number (pierceHeight * scale, "0.0000")
post.Eol()
else
post.ModalText (" G00")
post.Text(" Z")
post.Number (pierceHeight * scale, "0.0000")
post.Eol()
end
if (preheat > 0) then
post.Text ("\n G04 P")
post.Number (preheat,"0.###")
post.Eol()
end
post.Text ("\n M03\n")
if (pierceDelay > 0) 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 (" (Process: ", operationName, ")\n")
if (plungeRate <= 0) then
post.Warning("WARNING: Plunge rate is zero")
end
if (feedRate <= 0) then
post.Warning("WARNING: Feed rate is zero")
end
end
function OnToolChange()
post.Text (" M06 T")
post.Number (tool, "0")
post.ModalNumber(" F",feedRate * scale,"0.#")
post.Text (" (", toolName, ")\n")
end
function OnNewPart()
post.Text(" (Part: ",partName,")\n");
end
- Les Newell
- Site Admin
- Posts: 3661
- Joined: Thu May 11, 2006 8:12 pm
- Les Newell
- Site Admin
- Posts: 3661
- Joined: Thu May 11, 2006 8:12 pm
now I know exactly what the problem is. It is when the cut ends and the torch is in a -Z value the z axis dont move.
Can I fix the problem like this: when the torch touches the material it will normally write Z0, but the solution will be to write like Z10 instead. In that way it will always be at a +Z value....?
Can I fix the problem like this: when the torch touches the material it will normally write Z0, but the solution will be to write like Z10 instead. In that way it will always be at a +Z value....?