Problem z G38
: 20 lut 2015, 01:04
Witam
Napisałem podprogramy do pomiaru długości narzędzia i wyznaczania środka materiału. I tak jak pierwszy działał bez zarzutu tak wyznaczanie środka powoduje dziwny błąd.
Maszyna najpierw sprawdza gdzie jest powierzchnia materiału a następnie go mierzy.
problem w tym że po pierwszym G38.4 Z2 F20 wszystkie G38 zmieniają (chyba) wartość na F20 i pomiary trwają niemiłosiernie długo (mimo że np G38.3 ma przypisany F1200)
Każdy następny podprogram zachowuje się tak samo "G38" muli pomaga tylko reset programu.
Co że tak powiem "schrzaniłem" może jakoś inaczej deklaruje się F dla G38?
I pytanie przy okazji: Jak zmusić LinuxCNC do wyświetlenia okienka dialogowego z pytaniem np o #<promien_max> przy każdym wywołany podprogramu żeby nie trzeba było co chwilę edytować pliku?
Pozdrawiam Michał
Napisałem podprogramy do pomiaru długości narzędzia i wyznaczania środka materiału. I tak jak pierwszy działał bez zarzutu tak wyznaczanie środka powoduje dziwny błąd.
Maszyna najpierw sprawdza gdzie jest powierzchnia materiału a następnie go mierzy.
problem w tym że po pierwszym G38.4 Z2 F20 wszystkie G38 zmieniają (chyba) wartość na F20 i pomiary trwają niemiłosiernie długo (mimo że np G38.3 ma przypisany F1200)
Każdy następny podprogram zachowuje się tak samo "G38" muli pomaga tylko reset programu.
Co że tak powiem "schrzaniłem" może jakoś inaczej deklaruje się F dla G38?
I pytanie przy okazji: Jak zmusić LinuxCNC do wyświetlenia okienka dialogowego z pytaniem np o #<promien_max> przy każdym wywołany podprogramu żeby nie trzeba było co chwilę edytować pliku?
Kod: Zaznacz cały
o<srodek_zew> sub
G21
G90 (pozycja bezwzględna)
#<promien_max>= 30.0 (maksymalny promień otworu - zakres badania)
#<start_x>=#<_x> (punkt początkowy X aktualny)
#<start_y>=#<_y> (punkt początkowy Y aktualny)
#<start_z>=#<_z> (punkt początkowy Z aktualny)
#<speed_1>=1000.0
#<spped_odjazd> = 20.0
G91 (pozycjonowanie przyrostowe)
G38.3 Z-10 F#<speed_1>
G38.4 Z2 F#<spped_odjazd> (koniec szukania powierzchni materiału)
G90 (pozycja bezwzględna)
#<material_z>=#<_z> (zapisanie pozycji Z)
(najazd na prawa krawędź)
G93 G0 Z[#<start_z>]
G93 G0 x[#<start_x>+#<promien_max>]y[#<start_y>]
G93 G0 Z[#<material_z>-1] (dojazd poniżej powierzchni materiału)
(pomiar)
G91 (pozycjonowanie przyrostowe)
G38.2 X-[#<promien_max>] F#<speed_1>(test -X krawedzi otworu)
G38.4 X2 F#<spped_odjazd>
#<prawy_x>=#<_x>
G38.2 X-[#<promien_max>] F#<speed_1>(test -X krawedzi otworu)
G38.4 X2 F#<speed_1>
G90 (pozycja bezwzględna)
G93 G0 Z[#<start_z>]
G93 G0 x[#<start_x>]y[#<start_y>]
G93 G0 x[#<start_x>-#<promien_max>]y[#<start_y>]
G93 G0 Z[#<material_z>-1]
(pomiar krawędzi)
G91 (pozycjonowanie przyrostowe)
G38.2 X[#<promien_max>] F#<speed_1>(test -X krawędzi otworu)
G38.4 X-2 F#<spped_odjazd>
#<lewy_x>=#<_x>
G38.2 X[#<promien_max>] F#<speed_1>(test -X krawędzi otworu)
G38.4 X-2 F#<speed_1>
G90 (pozycja bezwzględna)
G93 G0 Z[#<start_z>]
G93 G0 x[#<start_x>]y[#<start_y>]
(najazd na top krawędź)
G93 G0 Z[#<start_z>]
G93 G0 x[#<start_x>]y[#<start_y>+#<promien_max>] (na top krawędź)
G93 G0 Z[#<material_z>-1]
(pomiar krawędzi)
G91 (pozycjonowanie przyrostowe)
G38.2 y-[#<promien_max>] F#<speed_1>(test -X krawędzi otworu)
G38.4 y2 F#<spped_odjazd>
#<top_y>=#<_y>
G38.2 y-[#<promien_max>] F#<speed_1>(test -X krawędzi otworu)
G38.4 y2 F#<speed_1>
G90 (pozycja bezwzględna)
G93 G0 Z[#<start_z>]
G93 G0 x[#<start_x>]y[#<start_y>]
(najazd na bottom krawędź)
G93 G0 Z[#<start_z>]
G93 G0 x[#<start_x>]y[#<start_y>-#<promien_max>] (na bottom krawędź)
G93 G0 Z[#<material_z>-1]
(pomiar krawędzi)
G91 (pozycjonowanie przyrostowe)
G38.2 y[#<promien_max>] F#<speed_1>(test -X krawędzi otworu)
G38.4 y-2 F#<spped_odjazd>
#<bottom_y>=#<_y>
G38.2 y[#<promien_max>] F#<speed_1>(test -X krawędzi otworu)
G38.4 y-2 F#<speed_1>
G90 (pozycja bezwzględna)
G93 G0 Z[#<start_z>]
G93 G0 x[#<start_x>]y[#<start_y>]
(obliczenia)
G93 G0 x[[#<prawy_x>+#<lewy_x>]/2.0]y[[#<top_y>+#<bottom_y>]/2.0]Z[#<material_z>]
o<srodek> endsub
Pozdrawiam Michał