Witam serdecznie,
mam mały problem i postaram się go jak najbardziej obrazowo przedstawić.
Otóż, mam do napisania program na MiniMillu, którym muszę obrobić 10 identycznych detali za jednym mocowaniem. Mam podprogram, który będzie wykonywał operacje na wszystkich detalach po kolei. Wywołuje ten podprogram komendą M97 P1. Problem pojawił się przy przechodzeniu z detalu na detal, można to zrobić wykorzystując 10 baz G55, G56, ..., G110, G111 itp. jednak dla człowieka ustawiającego maszynę będzie wpisywanie wartości czasochłonne i łatwo o omyłkę. Postanowiłem wykorzystać jedną bazę i użyć kodu G92 X... (bo w X będą przesunięcia do poszczególnych detali). Ale i to okazało się kłopotliwe, bo dużo liczenia

ze względu na to że przesunięcia G92 o wartość X nie przesuwają bazy głównej od punktu X0 Y0 ale od ostatniej wartości X przed blokiem z G92(według poniższego przykładu jest to wartość X10 w bloku N1).Podsumowując, jeżeli trzeba przesunąć punkty startowe na detalach o 20mm trzeba użyć kodu G92 z wartością X10, a następnie należy wrócić do pierwotnej bazy G55 blokiem G92 X40. W tym przykładzie to proste i łatwe do policzenia, ale jeżeli występują wartości przeróżne, to liczenia po pachy (choć jest to wykonalne, ale dało mi to do myślenia czy nie ma jakiegoś innego prostszego sposobu). Może istnieje jakiś setting, który powoduje przesunięcia G92 od punktów X0 Y0 danej bazy. Może też istnieje możliwość wywołania bazy G55 już z przesunięciem np. przy pomocy zmiennych?? np. coś takiego: w bloku N3 zamiast G92 użyjemy G55=[#5241 + 20] (gdzie #5241 to zmienna przechowująca wartość X bazy G55), wiem że to błędny zapis, chodzi mi tylko o jasne przedstawienia sprawy, w zmiennych dopiero raczkuję
Proszę o jakieś podpowiedzi za co z góry dziękuję.
Pozdrawiam.
P.S. a oto przykładowy program przedstawiający powyższy problem:
O00001
T3 M6;
G43 H03 G55 G00 X0 Y0 Z0;
S4000 M3;
N1 G01 X10 F100.;
N3 G92 X20;
N4 G01 X10;
N5 G92 X-40;
N5 M30;