Program frezujący okrągłą kieszeń o podanych wymiarach
Stronę tą wyświetlono już: 2710 razy
Podstawowe parametry geometryczne sterujące procesem frezowania to:
- promień r [mm];
- współrzędne środka kieszeni xc i yc w [mm];
- wysokość h [mm]
Kolejne parametry mające wpływ na czas pracy oraz wykonanie zadania dotyczą samej obrabiarki i narzędzia, którym ta się posługuje. Oto parametry dotyczące geometrii narzędzia i obrabiarki:
- średnica frezu df;
- posuw p [mm / min];
- maksymalna głębokość skrawanej warstwy g [mm];
- obroty wrzeciona s [obr / min]
Rys. 1
Ilustracja pokazująca podstawowe parametry geometryczne frezowanej kieszeni:
- promień r [mm];
- współrzędne środka kieszeni xc i yc w [mm];
- wysokość h [mm]
G-code programu frezującego wygląda następująco:
- #<z_base> = 0
- #<max_height> = 5
- #<current_height> = #<max_height>
- #<height> = 20
- #<ray> = 50
- #<tool_diameter> = 12
- #<current_ray> = [#<tool_diameter> / 2]
- #<begin_x> = 100
- #<begin_y> = 100
- g90 g0 x[#<begin_x>] y#<begin_y>
- g0 g90 f500 z#<z_base>
- M3 s1000 (włączenie obrotów)
- (debug, #<begin_x>)
- o001 if [[#<tool_diameter> le #<ray>]]
- g90 g1 x[#<begin_x>] y#<begin_y>
- #<current_ray> = [#<tool_diameter> / 2]
- o007 if [#<current_height> gt #<height>]
- #<current_height> = #<height>
- o007 endif
- o002 while [#<current_height> le #<height>]
- #<current_ray> = [#<tool_diameter> / 2]
- g1 g90 z-[#<current_height> - #<z_base>]
- o003 if [#<current_ray> gt [#<ray> - #<tool_diameter> / 2]]
- #<current_ray> = #<ray> - #<tool_diameter> / 2
- o003 endif
- g90
- o004 while [#<current_ray> le [#<ray> - #<tool_diameter> / 2]]
- g90 g1 y[#<begin_y> - #<current_ray>]
- g91 g2 x0 y[#<current_ray> * 2] r#<current_ray>
- g91 g2 x0 y-[#<current_ray> * 2] r#<current_ray>
- o005 if [[#<current_ray> + #<tool_diameter>] le [#<ray> - #<tool_diameter> / 2] or #<current_ray> eq [#<ray> - #<tool_diameter> / 2]]
- #<current_ray> = [#<current_ray> + #<tool_diameter>]
- o005 else
- #<current_ray> = [#<ray> - #<tool_diameter> / 2]
- o005 endif
- o004 endwhile
- o006 if [[#<current_height> + #<max_height>] le #<height> or #<current_height> eq #<height>]
- #<current_height> = [#<current_height> + #<max_height>]
- o006 else
- #<current_height> = #<height>
- o006 endif
- o002 endwhile
- g1 g90 z0
- o001 endif
- M30
Przykładowy widok procesu frezowania kieszeni okrągłej pokazany został na poniższej ilustracji.

Rys. 2
Widok symulacji frezowania kieszeni okrągłej przeprowadzonej w programie LinuxCNC