Znaleziono 10 wyników

autor: szary11
12 sty 2020, 15:39
Forum: LinuxCNC (dawniej EMC2)
Temat: Plazma 4 osie na LinuxCNC
Odpowiedzi: 109
Odsłony: 7316

Re: Plazma 4 osie na LinuxCNC

Gratuluję zapału kamar, rzadko go spotkać w dzisiejszym pokoleniu.
autor: szary11
12 sty 2020, 14:59
Forum: LinuxCNC (dawniej EMC2)
Temat: Plazma 4 osie na LinuxCNC
Odpowiedzi: 109
Odsłony: 7316

Re: Plazma 4 osie na LinuxCNC

senio pisze:
11 sty 2020, 21:11
Nie, no tak przemyślałem dokładniej i spokojnie to wszystko po prostu. Po to jest właśnie ten plugin w SheetCAM, bo za bardzo bez niego nie ma jak tego wszystkiego robić.
Nie było mnie chwilę, a tu kilka stron :) ,
pochorowałem się trochę i dopiero dziś zarzuciłem na symulator kod z sheetcama i jak dla mnie wygląda OK, wiadomo trzeba by sprawdzić na maszynie, ale to przed Tobą.
Tak jak pisałem, jak zrobisz maszynę i będziesz miał problem z dostosowaniem PP z sheetcama do maszyny to pomogę.
autor: szary11
08 sty 2020, 22:40
Forum: LinuxCNC (dawniej EMC2)
Temat: Plazma 4 osie na LinuxCNC
Odpowiedzi: 109
Odsłony: 7316

Re: Plazma 4 osie na LinuxCNC

senio pisze:Dzięki. Ale co z nim nie teges. Zerkniesz na to ?
Niezgodny koniec z początkiem promienia, czasami zdarza mi się i na płasko, najczęściej pomaga zmienić miejsce w palenia lub sposób, jeżeli to nie wada dxf-a. To na 99% nie wina PP.
Tnę coś codziennie, ale tylko blachy, podrzuć ten testowy klucz do plugina na pw ,może się nie obrażą.
autor: szary11
08 sty 2020, 20:19
Forum: LinuxCNC (dawniej EMC2)
Temat: Plazma 4 osie na LinuxCNC
Odpowiedzi: 109
Odsłony: 7316

Re: Plazma 4 osie na LinuxCNC

senio pisze:Nie mam takiego postprocesora w bazach. Tylko do Macha jest rotary. Jeśli u Ciebie jest jakimś cudem to wrzuć go i problem się rozwiąże. Problem jest na 100% postprocesor.

napewno jest, ale masz
autor: szary11
08 sty 2020, 19:11
Forum: LinuxCNC (dawniej EMC2)
Temat: Plazma 4 osie na LinuxCNC
Odpowiedzi: 109
Odsłony: 7316

Re: Plazma 4 osie na LinuxCNC

kamar pisze:
08 sty 2020, 18:00
Czarno widzę :) Nic mi tu nie obraca. M66 to makro zapalania palnika ?
Nurkuje przy każdym kształcie.
to mój PP zmodyfikowany pod moją maszynę
M66 to czekanie na potwierdzenie że palnik odpalił , czas czekania 2 sek. w tym przypadku.
Sądzę, że do tej opcji trzeba dokupić PP który kosztuje te 60 funtów, lub pisać swój, ale to chyba nie jest proste.

Dodane 10 minuty 12 sekundy:
senio, zmień PP na PlasmaRotary Linuxcnc, jest w bibliotekach Sheetcama.

Plugin kupiłeś ?, bo ja w swoim nie mogę testować jest zablokowany.
autor: szary11
08 sty 2020, 16:51
Forum: LinuxCNC (dawniej EMC2)
Temat: Plazma 4 osie na LinuxCNC
Odpowiedzi: 109
Odsłony: 7316

Re: Plazma 4 osie na LinuxCNC

W tym przypadku trzeba zacząć od w miarę dokładnego (powtarzalnego osiowania) kształtu ciętego i chyba faktycznie w profilach bez THC będzie lepiej, bo palnik pracuje cały czas przy mocowaniu materiału i nie ma odkształceń.
Prędkość zjazdową na materiał można dać większą, tylko proporcjonalnie trzeba zmienić w PP luz na krańcówce na większy, (bo bezwładność zatrzymania), ale to przecież nie problem.
Jednak gdy maszyna będzie także palić blachy to włączalne THC by się przydało.
G92 wykrywanie mat. zrobił bym tylko na początku cyklu całego pojedynczego elementu aż do odcięcia.
autor: szary11
08 sty 2020, 08:44
Forum: LinuxCNC (dawniej EMC2)
Temat: Plazma 4 osie na LinuxCNC
Odpowiedzi: 109
Odsłony: 7316

Re: Plazma 4 osie na LinuxCNC

senio
Nie wiem czy prokopcio dołożył funkcję blokady regulacji do starszych modeli THC, ale jak wprowadzał MyPlasm to było tylko w tym.
Osobiści uważam , że bez tej opcji cięcie otworów i wykańczanie konturów, gdzie istnieje potrzeba zmiany prędkości (a tym samy mus zablokować wysokość) jest co najmniej utrudniona.
autor: szary11
07 sty 2020, 16:12
Forum: LinuxCNC (dawniej EMC2)
Temat: Plazma 4 osie na LinuxCNC
Odpowiedzi: 109
Odsłony: 7316

Re: Plazma 4 osie na LinuxCNC

senio pisze:
07 sty 2020, 15:59
Pobawiłem się konfiguracją kolegi szary11. Na razie na trzech ośkach się uruchomił ale nie odpala. Czerwony guziczek power czy F1 nie działa. Może z kolegą szary11 rozwikłamy dlaczego :)
Sądzę, że trzeba wyłączyć auto bazowanie na krańcówkach.
autor: szary11
07 sty 2020, 11:30
Forum: LinuxCNC (dawniej EMC2)
Temat: Plazma 4 osie na LinuxCNC
Odpowiedzi: 109
Odsłony: 7316

Re: Plazma 4 osie na LinuxCNC

Proszę:

Kod: Zaznacz cały

--************************************************
--*** Set these values up to suit your machine ***
--************************************************

--this is the distance between each torch reference in MILLIMETRES
refDistance = 1


--Put your switch offset value here in MILLIMETRES
switchOffset = 1


--The cutter will slow down for corners and turn off THC below this radius
slowRadius = 30
slowRadiusMin = 2

--Minimum slow down speed.
--This is a scale factor. For instance 0.5 = 50% of the current feed rate
slowPercent = 0.4

--THC on and off codes. Use nil if you don't want THC control e.g:
-- thcOnCode = nil
-- thcOffCode = nil

--here is another example that use M667 and M666
--thcOnCode = " M9"
--thcOffCode = " M8"

  thcOnCode = nil
  thcOffCode = nil


--This is the code to seek the top of the work
seekCode=" G92.1 \n G38.2 Z-15 F1500"


--You only need to set these if you are using a scriber

--Scriber X,Y,Z offsets in MILLIMETRES. Do not use inches here even if you want inch code
--Use the special code 'nil' on the Z axis to disable it.
--In that case no Z values will be output at all while scribing.
--e.g scriberZ = nil
scriberX = 110
scriberY = 220
scriberZ = 0

--scriber axis. Leave this as nil if the scriber is fixed to the same axis as the torch
--scriberAxis = "A"
scriberAxis = nil


--************************************************
--***           End of settings                ***
--************************************************



function OnAbout(event)
   ctrl = event:GetTextCtrl()
   ctrl:AppendText("LinuxCNC plasma THC post processor with 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 10mm 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("refFeed - set the feed rate when referencing\n")
   ctrl:AppendText("switchOffset - set your net switch offset amount \n")
   ctrl:AppendText("Scriber uses any tool number\n")
   ctrl:AppendText("slowRadius - slow down below this radius\n")
   ctrl:AppendText("slowPercent - minimum percentage to slow down\n")
end



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


--  Modified 21/6/2010
--  added option for 'nil' plate marker z
--  Added support for plate marker tool type as well as tool number based plate marker

-- Modified 4/11/2010
-- Added: Reference the torch on the first pen down if the plate marker is the first tool used.


post.DefineVariable("refDistance",sc.unitLINEAR,0,1e17)
post.DefineVariable("refFeed",sc.unitFEED,0,1e17)
post.DefineVariable("switchOffset",sc.unitLINEAR,-1e17,1e17)
post.DefineVariable("slowRadius",sc.unitLINEAR,-1e17,1e17)
post.DefineVariable("slowRadiusMin",sc.unitLINEAR,-1e17,1e17)
post.DefineVariable("slowPercent",sc.unitPERCENT,-1e17,1e17)

function OnInit()

   offX = 0
   offY = 0
   offZ = 0
   lineNumber = 1

   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 (" F1\n G90 G40\n")
   minArcSize = 0.2 --arcs smaller than this are converted to moves
   firstRef = true
   currentZAxis = "Z"

   dist = 9999999
   lastz = 0
   thcstate = 1
   ThcOff()
end

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


function OnFinish()
   post.Text(" \n")
   endZ = safeZ
   OnRapid()
   --endX = 0
   --endY = 0
   offX = 0
   offY = 0
   offZ = 0
   OnRapid()
   post.Text (" M5 M30\n")
end

function OnRapid()
   if(endX > 1e17 and endY > 1e17) then return end
   local len = math.hypot((endX + offX)-currentX , (endY + offY)-currentY)
   dist = dist + len
   post.ModalText (" G00")
   post.ModalNumber (" X", (endX + offX) * scale, "0.0000")
   post.ModalNumber (" Y", (endY + offY) * scale, "0.0000")
   if(offZ and firstRef == false and currentZ ~= safeZ) then
      post.ModalNumber (" " .. currentZAxis, (endZ + offZ) * scale, "0.0000")
   end
   post.Eol()
end

function OnMove()
   local len = math.hypot(endX - currentX , endY - currentY)
   dist = dist + len
   if(len > slowRadius) then
      ThcOn()
   end
   post.ModalText (" G01")
   post.ModalNumber (" X", (endX + offX) * scale, "0.0000")
   post.ModalNumber (" Y", (endY + offY) * scale, "0.0000")
   if(offZ) then
      post.ModalNumber (" " .. currentZAxis, (endZ + offZ) * scale, "0.0000")
   end
   post.ModalNumber (" F", feedRate * scale, "0.0###")
   post.Eol()
end

function OnArc()
   local radius = math.hypot(currentX - arcCentreX, currentY - arcCentreY)
   dist = dist + radius * math.abs(arcAngle)

   if (radius < slowRadius) and (math.abs(arcAngle) > 0.5) and (radius > slowRadiusMin) then
      feed = (radius / slowRadius)
      if(feed < slowPercent) then
         feed = slowPercent
      end
       feed = feed * feedRate
       ThcOff()
   else
      feed = feedRate
       ThcOn()
   end
   if(arcAngle <0) then
      post.ModalText (" G03")
   else
      post.ModalText (" G02")
   end
   post.NonModalNumber (" X", (endX + offX) * scale, "0.0000")
   post.NonModalNumber (" Y", (endY + offY) * scale, "0.0000")
   if(offZ) then
      --post.ModalNumber (" " .. currentZAxis, (endZ + offZ) * scale, "0.0000")
      post.ModalNumber (" Z", (endZ + offZ) * scale, "0.0000")
   end
   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 ThcOff()
   if(not thcOffCode) then return end
   if(thcstate ==1) then
      thcstate = 0
      post.Text(thcOffCode)
      post.Text(" (THC off)\n");
   end
end

function ThcOn()
   if(not thcOnCode) then return end
   if(toolClass == "MarkerTool") or tool > 99 then return end
   if(thcstate ==0) then
      thcstate = 1
      post.Text(thcOnCode)
      post.Text(" (THC on)\n");
      return
   end
   if(thcstate == 2) then
      thcstate = 0
   end
end


function OnPenDown()
   if(toolClass == "MarkerTool") or tool > 99 then
      if (firstRef) then
         Reference()
         post.ModalText (" G00")
         post.Text(" Z")
         post.Number (safeZ  * scale, "0.0000")
         post.Eol()
         offX = scriberX
         offY = scriberY
         offZ = scriberZ
         post.ModalNumber (" X", (currentX + offX) * scale, "0.0000")
         post.ModalNumber (" Y", (currentY + offY) * scale, "0.0000")
         post.Eol()
      end
      if (offZ) then
         post.ModalNumber (" " .. currentZAxis, (currentZ + offZ)  * scale, "0.0000")
         post.Eol()
      end
      post.Text(" M08\n")
   else
      if(dist >= refDistance) then
         dist = 0
         Reference();
      end

      post.ModalText ("\n G01")
      post.ModalNumber (" Z", cutHeight * scale, "0.0000")  
      post.ModalText (" F1500")  -- DODANA PREDKOSC ZJAZDOWA Z
      post.ModalText ("\n M03")
      post.ModalText ("\n M66 P03 L1 Q2")
      post.ModalText ("\n G00")
      post.ModalNumber (" Z", pierceHeight * scale, "0.0000")
      
   end

   if (pierceDelay > 0) then
      --post.Text ("\n G04 P")
      post.ModalText ("\n G04 P")
      post.Number (pierceDelay,"0.###")
   end
      post.ModalText ("\n G00")
      post.ModalNumber (" Z", cutHeight * scale, "0.0000")
      
      post.Eol()

--   thcstate = 2 --leave THC off for plunge move
end


function Reference()
   firstRef = false
   post.Text(seekCode .. "\n")
   post.ModalText(" G92 Z")
   post.Number(-switchOffset * scale, "0.0###")
   post.Eol()
   post.CancelModalNumbers()
end

function OnPenUp()
   --if(tool > 99) then
    --post.Text(" M09\n")
   --else
   --   post.Text (" M5\n")
   --end
   post.Text (" M5\n")
   post.Text (" M9\n")
   if (endDelay > 0) then
      post.Text (" G04 P")
      post.Number (endDelay,"0.###")
      ThcOff()
      post.Eol()
   end
end


function OnNewOperation()
   post.Text (" (Operation: ", operationName, ")\n")
end

function OnToolChange()
    if (toolClass == "MarkerTool"  or tool > 99 ) then
         ThcOff()
         if(scriberAxis and scriberAxis ~= currentZAxis) then
            endZ = safeZ
            OnRapid()
            currentZAxis = scriberAxis
         end
         if(firstRef ~= true) then
            offX = scriberX
            offY = scriberY
            offZ = scriberZ
         end
    else
         if(scriberAxis and scriberAxis == currentZAxis) then
            endZ = safeZ
            OnRapid()
            currentZAxis = "Z"
         end
         offX = 0
         offY = 0
         offZ = 0
    end
end

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

function OnDrill()
   OnRapid()
   currentX = endX
   currentY = endY
   --OnPenDown()
   post.Text(seekCode .. "\n")
   post.ModalText(" G92 Z")
   post.Number(-switchOffset * scale, "0.0###")
   post.ModalText ("\n G00")
   post.ModalNumber (" Z", pierceHeight * scale, "0.0000")  
   post.ModalText ("\n M03")
   post.ModalText ("\n M66 P03 L1 Q2")
   post.ModalText ("\n m5\n")

  -- post.ModalText ("\n G00")
   --post.ModalNumber (" Z", cutHeight * scale, "0.0000\n")
   OnMove()
   --OnPenUp()
   endZ = safeZ
   OnRapid()
end
Oczywiście będziesz musiał zrobić drobne zmiany pod siebie, jak coś to pomogę.
autor: szary11
07 sty 2020, 10:28
Forum: LinuxCNC (dawniej EMC2)
Temat: Plazma 4 osie na LinuxCNC
Odpowiedzi: 109
Odsłony: 7316

Re: Plazma 4 osie na LinuxCNC

senio pisze:Ale zastanawia mnie teraz czy to jest wszystko, w tym konfigu pod 4 osie, i pewnie nie. Moim zdaniem było by to za piękne i trzeba porzeźbić dalej żeby to paliło rury i kwadraty czy prostokąty.

Z MyPlasm THC prokopcia config wygląda jak zwykła frezarka.
Z cięciem rur okrągłych nie powinno być żadnego problemu, obliczać prędkość obwodową i tyle.
Do profili jest rozszerzenie do sheetcama "Rotary pipe cutting" za 60 funtów, ale nie mam, więc nie wiem jak się sprawuje.

Wróć do „Plazma 4 osie na LinuxCNC”