Pętla warunkowa while i do while w G-code

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

Pętle warunkowe umożliwiają wykonywanie pewnych czynności dopóki nie zostanie spełniony jakiś warunek. Takim warunkiem może być konieczność wyfrezowania rowka o określonych wymiarach i określonej głębokości. Grubość skrawanej w jednym przejściu warstwy jest zawsze ograniczona i zależy od twardości materiału obrabianego, mocy wrzeciona frezarki a także od samego narzędzia. Tak jak w przypadku instrukcji warunkowej if, elseif, else tak i w przypadku pętli while i do while konieczne jest użycie o-kodu, który składa się z litery o i numeru identyfikującego blok instrukcji. Oto przykład wykorzystania pętli while:

Listing 1
  1. #<max_deep> = 1
  2. #<height> = 5
  3. #<width> = 100
  4. #<current_height> = #<max_deep>
  5. g90 g1
  6. m3 s800
  7. f300
  8. #<way> = 1
  9. o001 while [#<current_height> le #<height>]
  10. g90 z-#<current_height>
  11. g91 x[#<width> * #<way>]
  12. #<current_height> = [#<current_height> + #<max_deep>]
  13. #<way> = [#<way> * -1]
  14. o001 endwhile
  15. M30

Wewnątrz pętli while czy do while można również wykorzystać instrukcję o- break - do przerwania pętli lub o- continue do przerwania wykonywania bloku instrukcji bieżącego przejścia pętli.

Instrukcja do while umożliwia jednokrotne wykonanie bloku instrukcji niezależnie od postawionego warunku. Przykład jej użycia:

Listing 2
  1. #<max_deep> = 1
  2. #<height> = 5
  3. #<width> = 100
  4. #<current_height> = #<max_deep>
  5. g90 g1
  6. m3 s800
  7. f300
  8. #<way> = 1
  9. o001 do
  10. g90 z-#<current_height>
  11. g91 x[#<width> * #<way>]
  12. #<current_height> = [#<current_height> + #<max_deep>]
  13. #<way> = [#<way> * -1]
  14. o001 while [#<current_height> le #<height>]
  15. M30
Strony powiązane
strony powiązane
  1. linuxcnc.org/docs/html/gcode/o-code.html#ocode:looping - opis pętli while i do while obsługiwanej przez program LinuxCNC

Komentarze