Program frezujący okrągłą kieszeń o podanych wymiarach

Stronę tą wyświetlono już: 51 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]
Ilustracja pokazująca podstawowe parametry geometryczne frezowanej kieszeni
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:

Listing 1
  1. #<z_base> = 0
  2. #<max_height> = 5
  3. #<current_height> = #<max_height>
  4. #<height> = 20
  5. #<ray> = 50
  6. #<tool_diameter> = 12
  7. #<current_ray> = [#<tool_diameter> / 2]
  8. #<begin_x> = 100
  9. #<begin_y> = 100
  10. g90 g0 x[#<begin_x>] y#<begin_y>
  11. g0 g90 f500 z#<z_base>
  12. M3 s1000 (włączenie obrotów)
  13. (debug, #<begin_x>)
  14. o001 if [[#<tool_diameter> le #<ray>]]
  15. g90 g1 x[#<begin_x>] y#<begin_y>
  16. #<current_ray> = [#<tool_diameter> / 2]
  17. o007 if [#<current_height> gt #<height>]
  18. #<current_height> = #<height>
  19. o007 endif
  20. o002 while [#<current_height> le #<height>]
  21. #<current_ray> = [#<tool_diameter> / 2]
  22. g1 g90 z-[#<current_height> - #<z_base>]
  23. o003 if [#<current_ray> gt [#<ray> - #<tool_diameter> / 2]]
  24. #<current_ray> = #<ray> - #<tool_diameter> / 2
  25. o003 endif
  26. g90
  27. o004 while [#<current_ray> le [#<ray> - #<tool_diameter> / 2]]
  28. g90 g1 y[#<begin_y> - #<current_ray>]
  29. g91 g2 x0 y[#<current_ray> * 2] r#<current_ray>
  30. g91 g2 x0 y-[#<current_ray> * 2] r#<current_ray>
  31. o005 if [[#<current_ray> + #<tool_diameter>] le [#<ray> - #<tool_diameter> / 2] or #<current_ray> eq [#<ray> - #<tool_diameter> / 2]]
  32. #<current_ray> = [#<current_ray> + #<tool_diameter>]
  33. o005 else
  34. #<current_ray> = [#<ray> - #<tool_diameter> / 2]
  35. o005 endif
  36. o004 endwhile
  37. o006 if [[#<current_height> + #<max_height>] le #<height> or #<current_height> eq #<height>]
  38. #<current_height> = [#<current_height> + #<max_height>]
  39. o006 else
  40. #<current_height> = #<height>
  41. o006 endif
  42. o002 endwhile
  43. g1 g90 z0
  44. o001 endif
  45. M30

Przykładowy widok procesu frezowania kieszeni okrągłej pokazany został na poniższej ilustracji.

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

Komentarze