DXF2Gcode dla plasmy

Dyskusje dotyczące działania obsługi programu LinuxCNC

Autor tematu
marekms
Znawca tematu (min. 80)
Znawca tematu (min. 80)
Posty w temacie: 4
Posty: 93
Rejestracja: 18 mar 2007, 16:44
Lokalizacja: Grójec

DXF2Gcode dla plasmy

#1

Post napisał: marekms » 09 sie 2012, 16:36

Witam
Jak przystosować dxf2gcode do generowania kodu dla przecinarki?
Chodzi mi o to żeby po ustawieniu palnika na pozycji uruchomić palnik i po zakończeniu danego konturu wyłączyć palnik.
Pozdrawiam
Marek



Tagi:


ter_haar
Sympatyk forum poziom 1 (min. 40)
Sympatyk forum poziom 1 (min. 40)
Posty w temacie: 1
Posty: 42
Rejestracja: 09 mar 2009, 14:31
Lokalizacja: poznań

Re: DXF2Gcode dla plasmy

#2

Post napisał: ter_haar » 09 sie 2012, 17:28

marekms pisze:Witam
Jak przystosować dxf2gcode do generowania kodu dla przecinarki?
Chodzi mi o to żeby po ustawieniu palnika na pozycji uruchomić palnik i po zakończeniu danego konturu wyłączyć palnik.
w pliku postprocessor\dxf2gcode_b02_postprocessor.cfg
sa linie:
lin_mov_depth = G1 Z%ZE%nl
rap_pos_depth = G0 Z%ZE %nl

Można by je pewnie przerobić w stylu:
lin_mov_depth = M3 S100; G1 Z%ZE%nl

tyle ze nie wiesz kontur sie konczy, a kiedy zaczyna. Trzeba by wiec sprobowac dac tam if'a ktory sprawdzi na jaka wysokosc z ma zjechac palnik i albo go wlaczy, albo wylaczy.

Trochę to naokoło, ale chyba powinno zadziałać.

Awatar użytkownika

jarenio
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 4
Posty: 672
Rejestracja: 06 paź 2008, 22:48
Lokalizacja: TJE/KR
Kontakt:

#3

Post napisał: jarenio » 09 sie 2012, 18:39

ter_haar, błąd :P
marekms, musisz przerobić pliki .py dodać funkcje odpowiadającą za start i stop palnika i wstawić ją w odpowiednim miejscu, na grupie dyskusyjnej programu jest opisane jak to zrobić ;)
Pozdrawiam; Jarek


Autor tematu
marekms
Znawca tematu (min. 80)
Znawca tematu (min. 80)
Posty w temacie: 4
Posty: 93
Rejestracja: 18 mar 2007, 16:44
Lokalizacja: Grójec

re

#4

Post napisał: marekms » 09 sie 2012, 19:57

Tylko że zmieniając ten plik mamy włączenie palnika, a nie mamy wyłączenia, więc to żadne ułatwienie. Niestety nie umiem znaleźć tej części programu która rozpoznaje początek konturu i opuszcza narzędzie a podnosi narzędzie na końcu konturu. I wtedy po opuszczeniu palnik włącza a przed podnoszeniem wyłącza cięcie.

Marek

[ Dodano: 2012-08-09, 20:10 ]
jarenio pisze:ter_haar, błąd :P
marekms, musisz przerobić pliki .py dodać funkcje odpowiadającą za start i stop palnika i wstawić ją w odpowiednim miejscu, na grupie dyskusyjnej programu jest opisane jak to zrobić ;)

Moze kolega zdradzić adres tej grupy (forum). Ja znalazłem tylko niedziałający link do skryptu napisanego przez VANMILLER.


Marek

Awatar użytkownika

tuxcnc
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 2
Posty: 7886
Rejestracja: 26 lut 2011, 23:24
Lokalizacja: mazowieckie

#5

Post napisał: tuxcnc » 10 sie 2012, 00:14

Prosta zamiana fragmentu pliku dxf2gcode_b02_config.py z

Kod: Zaznacz cały

    def lin_pol_z(self,z_pos): 
        if not(self.abs_export): 
            self.ze=z_pos-self.lz
            self.lz=z_pos
        else: 
            self.ze=z_pos

        self.string+=self.make_print_str(self.lin_mov_depth_str)   
na

Kod: Zaznacz cały

    def lin_pol_z(self,z_pos): 
        if not(self.abs_export): 
            self.ze=z_pos-self.lz
            self.lz=z_pos
        else: 
            self.ze=z_pos
	if (z_pos < 0) : self.string+=self.make_print_str("(plasma_on)\n") 
	else : self.string+=self.make_print_str("(plasma_off)\n") 
     
skutkuje wygenerowaniem następującego przykładowego kodu

Kod: Zaznacz cały

(Generated with: dxf2gcode_b02, Version: TKINTER Beta 02, Date: 2010-05-04) 
(Time: Fri Aug 10 00:09:11 2012) 
(Created from file: /root/Projekty/VF-0050_3.dxf) 
G21 (Unit in mm) 
G90 (Absolute distance mode) 
G64 P0.1000 (Fast path mode) 
G17 (Select XY plane) 
G40 (Cancel diameter comp.) 
G49 (Cancel length comp.) 
T1M6 (Tool change to T1) 
M8 (Coolant flood on) 
S5000M03 (Spindle 5000rpm cw) 
G04 P3 (Pause 3 sec) 
G0 Z   5.000 
G0 X  11.085 Y  11.085
G0 Z   1.000 
F200
(plasma_on) 
F200
G2 X  48.915 Y  48.915 I  18.915 J  18.915
G2 X  11.085 Y  11.085 I -18.915 J -18.915
(plasma_off) 
G0 Z   5.000 
G0 X  12.499 Y  12.499
G0 Z   1.000 
F200
(plasma_on) 
F200
G2 X  47.501 Y  47.501 I  17.501 J  17.501
G2 X  12.499 Y  12.499 I -17.501 J -17.501
(plasma_off) 
G0 Z   5.000 
G0 X  16.565 Y  16.565
G0 Z   1.000 
F200
(plasma_on) 
F200
G2 X  43.435 Y  43.435 I  13.435 J  13.435
G2 X  16.565 Y  16.565 I -13.435 J -13.435
(plasma_off) 
G0 Z   5.000 
G0 X   0.000 Y   0.000
M9 (Coolant off) 
M5 (Spindle off) 
G00 Z30 (Spindle up) 
M2 (Prgram end)
Jak się nietrudno domyślić ruch roboczy G1Z<wartość> został zastąpiony odpowiednim wpisem (plasma_on) albo (plasma_off) zależnie od znaku przed wartością ruchu w osi Z.
W innych plikach nie grzebałem.

.

Awatar użytkownika

jarenio
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 4
Posty: 672
Rejestracja: 06 paź 2008, 22:48
Lokalizacja: TJE/KR
Kontakt:

#6

Post napisał: jarenio » 10 sie 2012, 08:49

https://groups.google.com/forum/?hl=pl& ... %5B1-25%5D

Kod: Zaznacz cały

1st file to change: dxf2gcode_b02_shape.py

there you've got the function (Line 229): def 
Write_GCode(self,config,postpro): 

In line 268 you do start with the cutting and set the Feed rate for Cutting 
in the plane (X-Y normaly): 
 postpro.chg_feed_rate(config.F_G1_Plane.get()) 

I would add a new function there like
postpro.start_laser() 

and in line 338 the cutting in the plane is finishes: 
#Fertig und Zur�ckziehen des Werkzeugs
 postpro.lin_pol_z(config.axis3_safe_margin.get()) 

I would add another new function there like
postpro.stop_laser() 

Cause the Postproccessor dont know this function you need to add them 
somewhere there in the file

2nd file to change: dxf2gcode_b02_config.py

i would just add it somewhere like in line 459 after the function: 

    def chg_feed_rate(self,feed): 
        self.feed=feed
        self.string+=self.make_print_str(self.feed_ch_str) 

This is the new you need to add, but i dont know if M3 and M5 is right, you 
should know better ???: 
    def start_laser(self): 
        self.string+=('M3\n') 

    def stop_laser(self): 
        self.string+=('M5\n')
Pozdrawiam; Jarek


Autor tematu
marekms
Znawca tematu (min. 80)
Znawca tematu (min. 80)
Posty w temacie: 4
Posty: 93
Rejestracja: 18 mar 2007, 16:44
Lokalizacja: Grójec

re

#7

Post napisał: marekms » 14 sie 2012, 13:50

Witam
Niestety po wprowadzeniu zmian proponowanych przez tuxcnc mam komunikat:

Obrazek


A po modyfikacjach wg Jarenio:
Obrazek

Nie umiem sobie z poradzić.

Marek

Awatar użytkownika

jarenio
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 4
Posty: 672
Rejestracja: 06 paź 2008, 22:48
Lokalizacja: TJE/KR
Kontakt:

#8

Post napisał: jarenio » 14 sie 2012, 16:28

znaczy coś pomieszałeś, bo mój sposób działa na 100%, wiem bo sprawdzałem ;)
Pozdrawiam; Jarek

Awatar użytkownika

tuxcnc
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 2
Posty: 7886
Rejestracja: 26 lut 2011, 23:24
Lokalizacja: mazowieckie

#9

Post napisał: tuxcnc » 14 sie 2012, 16:46

Tak ogólnie, to jest błąd formatowania kodu.
Zapewne przepisując gdzieś pomieszałeś tabulację ze spacjami.

.


Autor tematu
marekms
Znawca tematu (min. 80)
Znawca tematu (min. 80)
Posty w temacie: 4
Posty: 93
Rejestracja: 18 mar 2007, 16:44
Lokalizacja: Grójec

re

#10

Post napisał: marekms » 14 sie 2012, 19:56

Witam
Wszystko przez moje lenistwo, użyłem kopiuj-wklej zamiast wpisać procedurę ręcznie.
Dziękuję koledze Tuxcnc i Jarenio za pomoc.
Marek

PS Zamieszczam plik dxf2gode_b02_config.py z powyższymi zmianami i dołożoną procedurą pozycjonowania wysokości palnika nad materiałem przed każdym zapłonem. (Procedura z forum linuxcnc.org). Może komuś pomogę? :lol:
Załączniki
dxf2gcode_b02_config.py.txt
(24.58 KiB) Pobrany 675 razy

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „LinuxCNC (dawniej EMC2)”