Machsupport Forum

Mach Discussion => General Mach Discussion => Topic started by: sadisticironwerks on June 07, 2010, 01:09:47 PM

Title: engraver control
Post by: sadisticironwerks on June 07, 2010, 01:09:47 PM
OK I'm a noob to this and was wondering if anyone could help me out or point me in the right direction. i have installed a platemarker onto my bladerunner AIO controller. i am able to manually turn the plate marker on by clicking the output #2 button on the mach ubobIII screen. now my question is how do i get the plate marker to turn on and off for a g-code that's loaded. then switch back to plasma cutting within the same code. i have looked in all the manuals that i can find but I'm either looking in the wrong spot or i dont have that manual. i  am running mp1000-dthc-scriber as my post processor to do the plasma cutting and engraving.

any help with figuring this out or pointing me in the right direction would be greatly appreciated

thanks
Title: Re: engraver control
Post by: sadisticironwerks on June 08, 2010, 12:24:27 AM
(http://i105.photobucket.com/albums/m206/sadisticiron/f6c3154d.jpg)
Title: Re: engraver control
Post by: BR549 on June 08, 2010, 09:39:24 PM
I would use the coolant on/off feature M8 on M9 off

Config the coolant feature to the same port/pin as the output#2.

Then when you called the M8 it turns on the scriber and the m9 turns OFF the scriber

That would be the easy way as no VB programming needed. You may want to look in the POST for your machine to see how they intended to do it????
Title: Re: engraver control
Post by: sadisticironwerks on June 08, 2010, 10:15:30 PM
ok ive looked everywhere that i can think of and cant find coolant on/off button.  how do i config the port and pin set up  the post has it written to turn it on by m08 and m09 off. but cant get mach set up to control it. i dont want to screw anything up either
Title: Re: engraver control
Post by: sadisticironwerks on June 08, 2010, 10:28:21 PM
is that the flood and mist controls. i have flood set to output 2. if i hit the output 2 button the platemarker comes on.
Title: Re: engraver control
Post by: BR549 on June 08, 2010, 10:39:09 PM
GOTO Config >>>>>>>ports/pins >>>>>>>>>Spindle setup

Then make sure the DISABLE Flood Mist Relays is UNCHECKED

Then  @ Flood M8 Output#(   ) put in the output#


Now to test, go to the MDI line and type in M8. The scriber should turn on.  M9 scriber should turn off.
Title: Re: engraver control
Post by: sadisticironwerks on June 08, 2010, 10:59:34 PM
Yep that worked. now its all up to the proccessor to write the coding correct
Title: Re: engraver control
Post by: sadisticironwerks on June 08, 2010, 11:10:01 PM
thanks alot for your help. i have to edit the to not drop the plasma torch down.
Title: Re: engraver control
Post by: BR549 on June 08, 2010, 11:28:46 PM
Good to hear you got it working(;-)
Title: Re: engraver control
Post by: sadisticironwerks on June 13, 2010, 01:44:54 PM
ok has anybody had success with the mp1000-dthc.scriber post. i am having a hard time setting the limits in the post. i have set the offsets but the engraver is still not set with the offset that its at in relation to the plasma torch. i have included the post to see were im going wrong. i would also like to install a pause at m08 for a second or two. any help would be great. thanks

function OnAbout(event)
   ctrl = event:GetTextCtrl()
   ctrl:AppendText("plasma MP1000-THC post processor with engraver\n")
   ctrl:AppendText("Tools 100 and up are the engraver\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("M08/M09 turn the engraver on/off\n")
   ctrl:AppendText("Incremental IJ - set in mach2\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")
   ctrl:AppendText("Post variables:\n")
   ctrl:AppendText("refdistance - set the distance between each reference\n")
   ctrl:AppendText("switchoffset - set your net switch offset amount \n")
   ctrl:AppendText("\nScriber uses tool numbers 100 and up")
end



--   created 1/1/06
--   Based on plasma1.post



function OnInit()

   offX = 0
   offY = 0
   offZ = 0
  

   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")
   minArcSize = 0.2 --arcs smaller than this are converted to moves

   dist = 9999999
   refdistance = 10* scale

--Put your switch offset value here
   switchoffset =.260
   lastz = 0

--Scriber X,Y,Z offsets
   scriberX = -4.803
   scriberY = -.250
   scriberZ = 2.

end

function OnNewLine()
   post.Text ("N")
   post.Number (lineNumber, "0000")
   lineNumber = lineNumber + 10
end


function OnFinish()
   endZ = 2.0
   OnRapid()
   endX = 0
   endY = 0
   OnRapid()
   post.Text (" M05 M30 G28\n")
end

function OnRapid()
   dist = dist + math.hypot((endX + offX)-currentX , (endY + offY)-currentY)
   post.ModalText (" G00")
   post.ModalNumber (" X", (endX + offX) * scale, "0.0000")
   post.ModalNumber (" Y", (endY + offY) * scale, "0.0000")
   post.ModalNumber (" Z", (endZ + offZ) * scale, "0.0000")
   post.Eol()
end

function OnMove()
   dist = dist + math.hypot((endX + offX)-currentX , (endY + offY)-currentY)
   post.ModalText (" G01")
   post.ModalNumber (" X", (endX + offX) * scale, "0.0000")
   post.ModalNumber (" Y", (endY + offY) * scale, "0.0000")
   post.ModalNumber (" Z", (endZ + offZ) * scale, "0.0000")
   post.ModalNumber (" F", feedRate * scale, "0.###")
   post.Eol()
end

function OnArc()
   dist = dist + math.hypot((endX + offX)-currentX , (endY + offY)-currentY)
   if(arcAngle <0) then
      post.ModalText (" G03")
   else
      post.ModalText (" G02")
   end
   post.ModalNumber (" X", (endX + offX) * scale, "0.0000")
   post.ModalNumber (" Y", (endY + offY) * scale, "0.0000")
   post.ModalNumber (" Z", (endZ + offZ) * 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(tool > 100) then
      post.Text(" M08\n")
      return
   end
   if(dist >= (refdistance/scale)) then
      dist = 0
--      modaltext (" G00")
--      text(" Z")
--      number (pierceheight  * scale, "0.0000")
--      eol()
      post.ModalText(" G28.1 Z")
      post.Number(3 * scale, "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()
   if(tool > 100) then
      post.Text(" M09\n")
      return
   end
   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()
    if (tool > 100) then
        offX = scriberX
        offY = scriberY
        offZ = scriberZ
    else
        offX = 0
        offY = 0
        offZ = 0
    end
end

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

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


Title: Re: engraver control
Post by: BR549 on June 13, 2010, 09:39:37 PM
DID you put in the offsets here? 

--Scriber X,Y,Z offsets
   scriberX = -4.803
   scriberY = -.250
   scriberZ = 2.


If those are the correct offsets DID you use a tool# greater than 100 ?? The post will only add the offset values IF the tool#>100 SO IT HAS TO BE AT LEAST 101 or greater.


THe M8 delay(;-) HUM This is the section that deals with that part, but I am not fluent in SC post speak. You may have to ask that on the Sheetcam forum. ALSO it depends on how you have the G4 setup,as sec or Msec??

function OnPenDown()
   if(tool > 100) then
      post.Text(" M08\n")           
      return
   end
Title: Re: engraver control
Post by: unixadm on June 20, 2010, 12:47:04 AM
Just for reference, the values you need to enter are in MM, not inches.  I just got my scribe operational today using the scriber post, and it works fine.  However it didn't at first until I realized that it wanted metric values. 

In my case if you're looking at the torch head on, my scribe is to the left (2.316 Y+, .077 X-.  My values are those numbers converted over to MM, and then reversed from positive to negative.

So my Y number is negative in the post and my X is positive.

--Scriber X,Y,Z offsets
  scriberX = 1.195
  scriberY = -59.85
  scriberZ = 0

Use a tool of 101 and above in Sheetcam.  I set my engraver kerf to around .021 using a carbide tip.