Autor podstrony: Krzysztof Zajączkowski

Stronę tą wyświetlono już: 3399 razy

G-code umożliwia tworzenie podprogramów sub oraz ich wywoływanie za pomocą call. Oto przykład implementacji programu wykorzystującego podprogram wywoływany z parametrami sterującymi:

#<edge_width> = 10 #<number_of_edges> = 7 o002 sub #<angle> = [360 / #2] #<current_angle> = 0 G0 G90 Z#5 X#3 Y#4 G1 G91 F300 M3 S800 Z-1 o001 repeat [ #2 ] X[#1 * sin [#<current_angle>]] Y[#1 * cos [#<current_angle>]] #<current_angle> = [#<current_angle> + #<angle>] o001 endrepeat o002 endsub o002 call [#<edge_width>] [#<number_of_edges>] [20] [20] [0]; wywołanie podprogramu sterującego z parametrami: długość boku wielokąta, liczba boków wielokąta, x, y, z o002 call [#<edge_width>] [#<number_of_edges>] [120] [20] [0]; ponowne wywołanie programu sterującego z nowymi parametrami G0 G90 Z0 X0 Y0 M30

Podprogramy nie muszą być wywoływane z argumentami, ale jeżeli takie argumenty powinny zostać przekazane to odwołanie się do nich odbywa się poprzez kolejne zmienne o numerach od 1 do 30. Możliwe jest również zwrócenie wartości przez podprogram np. tak:

#<edge_width> = 10 #<number_of_edges> = 7 o002 sub o003 if [#2 le 3] (msg, something wrong with argument); a to jest sposób na wyświetlenie messageboxa (w nowszych wersjach LinuxCNC) o002 return; kończę program bo liczba boków jest mniejsza niż 3 o003 endif #<angle> = [360 / #2] #<current_angle> = 0 G0 G90 Z#5 X#3 Y#4 G1 G91 F300 M3 S800 Z-1 o001 repeat [ #2 ] X[#1 * sin [#<current_angle>]] Y[#1 * cos [#<current_angle>]] #<current_angle> = [#<current_angle> + #<angle>] o001 endrepeat o002 endsub o002 call [#<edge_width>] [2] [20] [20] [0] o002 call [#<edge_width>] [#<number_of_edges>] [120] [20] [0] G0 G90 Z0 X0 Y0 M30
Strony powiązane
strony powiązane
  1. linuxcnc.org/docs/html/gcode/o-code.html#ocode:repeat - opis tworzenia podprogramów w G-code na stronie dokumentacji programu LinuxCNC
Layout wykonany przez autora strony, wszelkie prawa zastrzeżone. Jakiekolwiek użycie części lub całości grafik znajdujących się na tej stronie bez pisemnej zgody jej autora surowo zabronione.