ATC pre biesse rover 321R

00alkskodi00
Příspěvky: 188
Registrován: 20. 11. 2014, 6:31

27. 10. 2024, 5:56

Cavte, vie mi niekto helfnut?

robim vymenik pre frezu a uz som M6 remapol ale ked do vymeny napisen nejaky kod tak bud ni to hodi vsetliake hlasky alebo to nerobi nic, asi to je nalinkovane dobre lebo ked vymenu vyhodim tak mi to hodi chybu ze ten subor vymeny chyba...
neviem ci tie subory s pythonu mam spravne urobene a aj mozu byt aj z inej verzie linuxcnc ja mam 2,8. Snazil som sa to urobit podla : viewtopic.php?t=32354&hilit=remap ale nejde to ako osm myslel.

mam takyto vymenik, kazda poozicia z 5tich sa vysuva hore a zasuva dole, je tam cidlo na dolnu aj hornu poziciu + kontrola ci je vlozeny nastroj. Vsetko mam sfunkcnene, ide len o ten remap

Obrázek

skusal som to aj podla oficialneho navodu na 2.8 ale aj tam som robil nieco zle...

+ ako bonus mi zacal linuxcnc v kazdom importovanom gkode hadzat chybu ako keby nepoznal komentar v gkode...

zalohu konfiguracie som urobil je to priecinok "zaloha 27 10 2024 pred vymenikom nastrojov"
Přílohy
atc.rar
(78.81 KiB) Staženo 79 x
00alkskodi00
Příspěvky: 188
Registrován: 20. 11. 2014, 6:31

1. 11. 2024, 8:02

tie subory z pythonu kde by mal byt epilog a prolog som skopiroval z tohto fora tak mozno ani niesu pre 2,8 verziu

v manuali som nasiel ze by tam malo stacit dat ako epilog a prolog toto:

def change_prolog(self, **words):
try:
if self.selected_pocket < 0:
return "M6: no tool prepared"

if self.cutter_comp_side:
return "Cannot change tools with cutter radius compensation on"

self.params["tool_in_spindle"] = self.current_tool
self.params["selected_tool"] = self.selected_tool
self.params["current_pocket"] = self.current_pocket
self.params["selected_pocket"] = self.selected_pocket
return INTERP_OK
except Exception, e:
return "M6/change_prolog: %s" % (e)




def change_epilog(self, **words):
try:
if self.return_value > 0.0:
# commit change
self.selected_pocket = int(self.params["selected_pocket"])
emccanon.CHANGE_TOOL(self.selected_pocket)
# cause a sync()
self.tool_change_flag = True
self.set_tool_parameters()
return INTERP_OK
else:
return "M6 aborted (return code %.1f)" % (self.return_value)

except Exception, e:
return "M6/change_epilog: %s" % (e)





a vlastny o subor... potom neviem naco je v tom priecinku 1 000 000 inych veci z pythonu
Uživatelský avatar
robokop
Site Admin
Příspěvky: 22875
Registrován: 10. 7. 2006, 12:12
Bydliště: Praha
Kontaktovat uživatele:

1. 11. 2024, 9:38

Vyhledej si prislusne verze v systemu u tebe. Z fora je urcite neber. Nebudou ti sedet verze
Vsechna prava na chyby vyhrazena (E)
Uživatelský avatar
zz912
Příspěvky: 1475
Registrován: 25. 5. 2008, 7:16

2. 11. 2024, 5:22

Python soubory vytvarej ze souboru stdglue.py, který máš u sebe v pc:
https://linuxcnc.org/docs/2.8/html/rema ... n-existing
LinuxCNC - MESA 7i96
zz912.webnode.cz
00alkskodi00
Příspěvky: 188
Registrován: 20. 11. 2014, 6:31

2. 11. 2024, 12:06

zz912 píše: 2. 11. 2024, 5:22 Python soubory vytvarej ze souboru stdglue.py, který máš u sebe v pc:
https://linuxcnc.org/docs/2.8/html/rema ... n-existing
linuxcnc nabehol v pohode ako aj predtym len teraz uz nepise chybu pri spusteni frezovania, akurat sa zastavi na "vymen_nstroj.ngc"

ked pustim "vymen_nastroj.ngc" manualne tak mi urobi co ma, ale zaujimave je ked to ide cez remap

v gkode mam riadok na vymenu nastroja: N9 T 106 M6 (freza blablabla...)

vtedy sa pusti "vymen_nastroj.ngc" a stane sa to ze mi neurobi vsetky krory ako ked to pustim "vymen_nastroj.ngc" manualne, je to mozne ?

toto mam vo "vymen_natroj.ngc" :

O<vymen_nastroj> sub
(otvor vymenik)
M64 P24
M65 P25
(cakaj 5 sekund)
G4 P3
(zatvor vymenik)
M64 P25
M65 P24
O<vymen_nastroj> endsub [1]
m2

otvori sa vymenik a nic viac...
:mrgreen:
Uživatelský avatar
zz912
Příspěvky: 1475
Registrován: 25. 5. 2008, 7:16

2. 11. 2024, 1:54

A chová se to náhodně?
Jaké GUI používáš?
LinuxCNC - MESA 7i96
zz912.webnode.cz
00alkskodi00
Příspěvky: 188
Registrován: 20. 11. 2014, 6:31

2. 11. 2024, 2:21

Vzdy sa to chova rovnako, pouzivam axis
Uživatelský avatar
zz912
Příspěvky: 1475
Registrován: 25. 5. 2008, 7:16

2. 11. 2024, 3:21

O<vymen_nastroj> sub - neobsahuje M6, nebo nic, co by dalo pokyn interpreteru pro ukončení výměny. Takže se to múže chovat nepředvídatelně.

Jeste Ti tam chybí:

Kód: Vybrat vše

; we must execute this only in the milltask interpreter
; or preview will break, so test for '#<_task>' which is 1 for 
; the milltask interpreter and 0 in the UI's
O100 if [#<_task> EQ 0]
        (debug, Task ist Null)
O100     return [999]
O100 endif
Tato cast kodu slouzi k tomu, aby fungoval spravne nahled g-kódu
LinuxCNC - MESA 7i96
zz912.webnode.cz
00alkskodi00
Příspěvky: 188
Registrován: 20. 11. 2014, 6:31

2. 11. 2024, 11:37

Ono by tym mnualom aj clovek rozumel keby vedel 100 percent anglicky

Lebo toto:
; we must execute this only in the milltask interpreter
; or preview will break, so test for '#<_task>' which is 1 for
; the milltask interpreter and 0 in the UI's


Je v preklade cez prekladac toho:
; musíme to vykonať iba v interpretači milltask
; alebo sa ukážka pokazí, takže otestujte '#<_task>', čo je 1 pre
; tlmočník milltask a 0 v používateľskom rozhraní


A teraz clovek uvazuj :D, preto radsej este preakumavam rozne fora... anglicky samozrejme nieco rozumiem, no nemecky viac... ale to ma neospravedlnuje len som cosi polil so susedkom Maytasom a teraz ma to napadlo :D
Uživatelský avatar
robokop
Site Admin
Příspěvky: 22875
Registrován: 10. 7. 2006, 12:12
Bydliště: Praha
Kontaktovat uživatele:

3. 11. 2024, 8:01

To je kvuli nahledovemu okynku drah nastroje. Tam nechces aby se vykonaval g kod vymeny nastroje. Tam chces pouze ty drahy nastroje. On kdyz to kresli tak normalne vykonava ten g kod a ty musis vyloucit aby delal pohyby vymeny nastroje protoze tam typicky dela veci ktere nelze simulovat. Jako treba cekani na senzor.
Vsechna prava na chyby vyhrazena (E)
00alkskodi00
Příspěvky: 188
Registrován: 20. 11. 2014, 6:31

3. 11. 2024, 4:56

Uz to asi frci, mal som problem v hal, nieco som tam vymazal. Keby nieco napisem
00alkskodi00
Příspěvky: 188
Registrován: 20. 11. 2014, 6:31

7. 11. 2024, 9:58

tak este jedna zaujimavost

remap m6 funguje ok ale ako nahle chcem pouzit vo vymen_nastroj.ngc nejaky subprogram typu o tak mi vyskakuje hlaska "File ended with no percent sign or program end"

tu je priklad podprogramu:

o<vyber_nastroj_z_pocket_1> sub
M66 P34 L3 Q2678400 ;skontroluj ci je nastroj vlozeny v pockete c1
G53 G0 Z19 ; chod uplne hore
G4 P0.1 ; kratko pockaj
G53 G0 X29.35 Y-263.924; chod nad pocket1
o<otvor_vymenik> call
o<zasobnik_1_hore> call
o<zosun_vreteno> call [1]
G53 G0 Z-50
o<nastroj_uvolni> call
M64 P37 ; zapni ofuk nastroja
G53 G1 F300 Z-67.996
o<nastroj_zaisti> call
(DEBUG,vybrany a ulozeny nastroj do premennej 4999: #<_selected_tool>)
#4999=#<_selected_tool> ; uloz do premennej cislo nastroja, nie pocket!
M61 Q#<_selected_tool>
M65 P37 ; vypni ofuk nastroja
G53 G0 Y-173.924; chod pred pocket1
G4 P0.1 ; kratko pockaj, lebo inak by sa ako keby spojil posun dole s posunov Y a chcelo to naburat do pocketu
G53 G0 Z19 ; chod uplne hore
o<zasobnik_1_dole> call
o<zatvor_vymenik> call
M61 Q#<_selected_tool>
o<vyber_nastroj_z_pocket_1> endsub

ked ho pustim samostatne nie cez vymenu nastroja ale cez MDI alebo ako sa to vola tak to ide bez problemu
00alkskodi00
Příspěvky: 188
Registrován: 20. 11. 2014, 6:31

7. 11. 2024, 10:18

musim sa opravit, robi to aj ked tie podprogramy vyhdoim a napisem ich priamo do vymen_nastroj.ngc

robi to pri ;vrat nastroj do pocket a ;vyber nastroj z pocketu

nenasiel som ani rozumne vysvetlenie na nete..

O<vymen_nastroj> sub
; we must execute this only in the milltask interpreter
; or preview will break, so test for '#<_task>' which is 1 for
; the milltask interpreter and 0 in the UI's
; O100 treba nechat aby sa zbytocne nezobrazovali drahy pri vymene v AXIS...
O100 if [#<_task> EQ 0]
(debug, Task ist Null)
O100 return [999]
O100 endif


o<zatvor_vymenik> call ; pre istotu keby bol otvoreny s vytiahnutimi nastrojmi


o999 if[#<_current_tool> EQ 0] ; ak ve v systeme zadany nastroj 0 teda bez nastroja
(abort,V systeme nieje nacitany nastroj, skontroluj a vsetko korektne nastav)
m2
o999 endif


M66 P42 L3 Q0.1 ;caka na potvrdenie pritomnosti nastroja vo vretene
o101 if [#5399 LT 0] ;zaciatok podmienky, ak zisti nepritomnost nastroja
o102 if [#<_current_tool> GT 0]
(abort,Nástroj je načítaný ale nieje vložený vo vreteni. Vlož nástroj číslo #<_current_tool>) ;abort zrusi program s hlaskou
o102 endif
o101 endif

o110 if[#<_current_pocket> EQ #<_selected_pocket>] ; ak je nastroj uz vo vreteni
(DEBUG,Nástroj je už vo vreteni: čislo: #<_current_tool>, pocket: #<_current_pocket>) ;ak pocket aktualneho nastroja sa rovna pocketu ;vybraneho ;nastroja, vypis hlasku
O<vymen_nastroj> endsub [1]
m2 ; ak je zvoleny nastroj rovnaky ako vlozeny, ukonci vymenu
o110 endif



;***************vkladanie nastrojov do zasobnika
;vrat nastroj do pocket1
o202 if [#<_current_pocket> EQ 1]
o<nastroj_vrat_do_pocket_1> call
o202 endif

;vrat nastroj do pocket2
o203 if [#<_current_pocket> EQ 2]
o<nastroj_vrat_do_pocket_2> call
o203 endif

;vrat nastroj do pocket3
o204 if [#<_current_pocket> EQ 3]
o<nastroj_vrat_do_pocket_3> call
o204 endif

;vrat nastroj do pocket4
o205 if [#<_current_pocket> EQ 4]
o<nastroj_vrat_do_pocket_4> call
o205 endif

;vrat nastroj do pocket5
o206 if [#<_current_pocket> EQ 5]
o<nastroj_vrat_do_pocket_4> call
o206 endif





;***************vyberanie nastrojov
;vyber nastroj z pocketu 1
o300 if [#<_selected_pocket> EQ 1]
o<vyber_nastroj_z_pocket_1> call
o300 endif

;vyber nastroj z pocketu 2
o301 if [#<_selected_pocket> EQ 2]
o<vyber_nastroj_z_pocket_2> call
o302 endif

;vyber nastroj z pocketu 3
o303 if [#<_selected_pocket> EQ 3]
o<vyber_nastroj_z_pocket_3> call
o303 endif

;vyber nastroj z pocketu 4
o304 if [#<_selected_pocket> EQ 4]
o<vyber_nastroj_z_pocket_4> call
o304 endif

;vyber nastroj z pocketu 5
o305 if [#<_selected_pocket> EQ 5]
o<vyber_nastroj_z_pocket_4> call
o305 endif

;***************vyberanie nastrojov ak je mimo pocket 1-5 (zasobnik), rucna vymena
;o207 if [#<_selected_pocket> GT 5] ; ak je pocket nastroja vycsi ako 5 teda nieje v zsobniku tak chod na rucnu vymenu...
; (DEBUG,Vlož nástroj číslo:#<_selected_tool> ručne do vretena!!!)
;pozicia pre rucnu vymenu
; G53 G0 X0 Y-650 Z19
; G54
;o207 endif



;***************ukoncenie
;G54 G1 ; vrati naspat g54
;M65 P37 ; vypni ofuk nastroja



O<vymen_nastroj> endsub [1]
m2
00alkskodi00
Příspěvky: 188
Registrován: 20. 11. 2014, 6:31

7. 11. 2024, 10:21

urcite tam budu aj hluposti ak tak napisat pripomienku... :mrgreen:
00alkskodi00
Příspěvky: 188
Registrován: 20. 11. 2014, 6:31

7. 11. 2024, 12:09

takze pohoda ide to ked to pustim ako program, vtedy nepise tu chybu zvlastne ale je to tak :lol:
Odpovědět

Zpět na „LinuxCNC - drive pod nazvem EMC2“