Hello Guest it is July 05, 2020, 03:29:00 AM

Author Topic: THC not working all the time  (Read 206 times)

0 Members and 1 Guest are viewing this topic.

THC not working all the time
« on: August 09, 2019, 07:51:12 AM »
Hi.

I recently have purchased a license for Mach3 and everything works fine except for the torch height control.
When I start the work the THC works fine for a few lines of code than it stops and every time I press the THC button (turn it OFF and ON again) on mach3 while the machine is cutting the THC starts working and stops again after a few lines. The license is installed correctly and everything is setup right I just don't know why it keeps ignoring the signals of the THC after some lines of Gcode even when the THC led is ON on mach3 and I have to stay on my PC watching when the torch stops correcting its height just to turn the THC OFF and ON again because I have some warped material, and something else I have noticed is that when the THC led is ON the G00  Z30.00 after a cut is finished gets ignored and the torch raises just a tiny bit and it continues like that for the whole work.

Best regards. Llibert Vorfi.

I use a PriceCNC torch height control and my CAM software is SheetCam.
This is the postprocessor I am using:

function OnAbout(event)
   ctrl = event:GetTextCtrl()
   ctrl:AppendText("plasma AVHC10 post processor\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")
   ctrl:AppendText("The torch is referenced at cut start and every 50mm of movement thereafter\n")
   ctrl:AppendText("Designed for use with Mach3 and PriceCNC AVHC10\n")
   ctrl:AppendText("Post variables:\n")
   ctrl:AppendText("refdistance - set the distance between each reference\n")
end



--  revision 3/2/07
--  Removed final safety move. This is now done in SheetCam

--   revision 7/10/05
--   Added new arc handling

--   created 27/10/04
--   Based on plasma1.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 G40\n F1\n S500\n")
   
   
   switchoffset = 0.8
   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(endX-currentX , endY-currentY) < 0.001 and endZ < currentZ) 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()
   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()

   post.ModalText(" G31 Z -100")
   post.ModalNumber (" F", 500 * scale, "0.0###")
   post.Eol()
   post.ModalText(" G92 Z0.0\n")
   post.ModalText (" G00")
   post.ModalNumber(" Z", switchoffset, "0.0000")
   post.Eol()
   post.ModalText(" G92 Z0.0\n")
   post.CancelModalNumbers()
   post.ModalText (" G00")
   post.ModalNumber (" X", endX * scale, "0.0000")
   post.ModalNumber (" Y", endY * scale, "0.0000")
   post.ModalNumber (" Z", pierceHeight * scale, "0.0000")
   post.Eol()

   post.Text ("\n 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 (" (Process: ", operationName, ")\n")
end

function OnComment()
  post.Text(" (",commentText,")\n")
end

function OnToolChange()
   post.Text (" M06 T")
   post.Number (tool, "0")
   post.Text ("  (", toolName, ")\n")
end

function OnNewPart()
   post.Text(" (Part: ",partName,")\n");
end

function OnDrill()
   OnRapid()
   OnPenDown()
   endZ = drillZ
   OnMove()
   OnPenUp()
   endZ = safeZ
   OnRapid()
end