Znaleziono 4 wyniki

autor: moderasura
29 cze 2016, 22:15
Forum: SheetCam
Temat: postprocesor Mach dla SheetCam-a, Detekcja pływającą głowicą
Odpowiedzi: 80
Odsłony: 24551

Jak by ktoś potrzebował to jest postprocesor do SheetCam pod MyPlasm ARC OK.
Nie testowałem tego bo uwaliłem wszystkie ceramiki od palnika i czekam na dostawę...
Jak by ktoś sprawdzał to niech da znać czy działa :mrgreen:

W tym function OnPenDown() można sobie edytować na własne potrzeby

Kod: Zaznacz cały

function OnAbout(event)
   ctrl = event:GetTextCtrl()
   ctrl:AppendText("plasma THC300 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 500mm of movement thereafter\n")
   ctrl:AppendText("Designed for use with Mach2 and Campbell Designs THC300\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")

   dist = 9999999
   refdistance = 500 * scale
   switchoffset = -0.08
   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
   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", endZ * 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.###")
   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.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.Text ("\n G00 Z20\n")--         ustawienie palnika ok 20mm nad materiał
post.Text ("\n M03\n")--             Załączenie plazmy   

post.Text ("\n G31 Z-10 F300\n")--   szukanie materiału z prędkością 300 do pozycji Z=-10
post.Text ("\n G92 Z3\n")--          Zerowanie osi Z + przykładowa korekcja
post.Text ("\n G00 Z6\n")--          podniesienie palnika 6mm nad materiał
post.Text ("\n G04 P1000\n")--       czas przebijania materiału 1000ms/1s
post.Text ("\n G00 Z1\n")--          obniżenie palnika 1mm nad materiał
end



function OnPenUp()
   post.Text (" M05\n")
   
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 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

A tu makro do macha M300 pod ARC OK PROBE ze strony Proma Elektronika

Kod: Zaznacz cały

HeightOfDetect = 10
SpeedOfDetect = 300
Offset = 5
HeightOfPierce = 5
HeightOfCut = 1
Delay = Param1()

Dim MaterialPos As Double

If GetOEMDro(186)>HeightOfDetect Or GetOEMDro(186) Then code "G00 Z" & HeightOfDetect
While IsMoving()
Wend

DoSpinCW()
sleep(200) message("Detecting of material pos.")
code "G31 Z-10 F" & SpeedOfDetect
While IsMoving()
Wend
If GetOEMDro(186)=-10 Then
DoSpinStop() message("No material detected")
code "G00 Z" & HeightOfDetect
While IsMoving()
Wend
1: GoTo 1
Else
MaterialPos = GetOEMDro(186) - offset
message("Material detected pos = " & MaterialPos)
If Delay>200 Then
code "G00 Z" & MaterialPos + HeightOfPierce
While IsMoving()
Wend
End If
Sleep(Delay+1)
code "G00 Z" & MaterialPos + HeightOfCut
While IsMoving()
Wend
End If
autor: moderasura
28 cze 2016, 22:06
Forum: SheetCam
Temat: postprocesor Mach dla SheetCam-a, Detekcja pływającą głowicą
Odpowiedzi: 80
Odsłony: 24551

karpik74 pisze:Potrzebujesz post procesor dla SheeCama ...czy już wszystko jest ok ?.
No jak byś miał pod te kody ze strony PromaElektronika to bym był wdzieczny.
To bym sobie potestował z tym ARCOK i porównał na czym by było lepiej.
Jeśli nie masz to zostanę przy tym co podałeś wcześniej bo jak na razie działa to najlepiej z tego wszystkie co sprawdzałem.
Sprawdzałem to na zasadzie Testu z podkładaniem różnej grubości materiału i jest wyśmienicie no prawie bo musze powprowadzać małe korekty co do wysokości itp , no ale to wiadome trzeba to metoda prób i błędów robić.
Najbardziej się boje o THC bo 2 razy już wysyłałem do Prokopcia Gość ma niebiańską cierpliwość :D
autor: moderasura
28 cze 2016, 20:38
Forum: SheetCam
Temat: postprocesor Mach dla SheetCam-a, Detekcja pływającą głowicą
Odpowiedzi: 80
Odsłony: 24551

Dzięki za info Karpik :mrgreen: wpakowałem te makro do macha 3 i działa idealnie, oczywiście na pływającej głowicy. Z tym co wyżej od Prokopcia działy się jakieś cuda na kiju, nie mam pojęcia dlaczego, cały czas pomiar wychodził ten sam :neutral: on sie gryzie z posts z SheetCam tym co podałeś na początku tematu.


G00 Z20 (ustawienie palnika ok 20mm nad materiał)
M3 (Załączenie plazmy)
G31 Z-10 F300 (szukanie materiału z prędkością 300 do pozycji Z=-10)
G92 Z3 (Zerowanie osi Z + przykładowa korekcja)
G00 Z6 (podniesienie palnika 6mm nad materiał)
G04 P1000 (czas przebijania materiału 1000ms/1s)
G00 Z1 (obniżenie palnika 1mm nad materiał)

Na tym pewnie by działało ale to ręcznie wprowadzać do G-kod to jakaś masakra jest chyba ze jest gdzieś coś ze wprowadzi to przez SheetCam do G-kod?

Ile u Ciebie tak mniej więcej podnosi palnik na głowicy, by załączyć styk na PROBE ?
autor: moderasura
27 cze 2016, 23:05
Forum: SheetCam
Temat: postprocesor Mach dla SheetCam-a, Detekcja pływającą głowicą
Odpowiedzi: 80
Odsłony: 24551

Witam!
Posiadam THC MyPlasm chce wykorzystać ARC OK do detekcji materiału...
Teraz pytanie czy to zagra z kodem co karpik74 zapodał?
Pytam bo nie chcę znowu czegoś spartaczyć w THC.

HeightOfDetect = 10
SpeedOfDetect = 300
Offset = 5
HeightOfPierce = 5
HeightOfCut = 1
Delay = Param1()

Dim MaterialPos As Double

If GetOEMDro(186)>HeightOfDetect Or GetOEMDro(186) Then code "G00 Z" & HeightOfDetect
While IsMoving()
Wend

DoSpinCW()
sleep(200) message("Detecting of material pos.")
code "G31 Z-10 F" & SpeedOfDetect
While IsMoving()
Wend
If GetOEMDro(186)=-10 Then
DoSpinStop() message("No material detected")
code "G00 Z" & HeightOfDetect
While IsMoving()
Wend
1: GoTo 1
Else
MaterialPos = GetOEMDro(186) - offset
message("Material detected pos = " & MaterialPos)
If Delay>200 Then
code "G00 Z" & MaterialPos + HeightOfPierce
While IsMoving()
Wend
End If
Sleep(Delay+1)
code "G00 Z" & MaterialPos + HeightOfCut
While IsMoving()
Wend
End If

Wróć do „postprocesor Mach dla SheetCam-a, Detekcja pływającą głowicą”