Program frezujący kieszeń o podanych wymiarach

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

Frezowanie kieszeni prostokątnej o określonej głębokości jest jedną z częściej stosowanych operacji. Istotne dane dotyczące wymiarów kieszeni to:

  • szerokość w;
  • długość l;
  • głębokość h

Równie istotne jest położenie kieszeni względem krawędzi obrabianego przedmiotu:

  • położenie na osi x;
  • położenie na osi y;
  • położenie na osi z;

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]
Parametry opisujące kształt frezowanej kieszeni
Rys. 1
Parametry opisujące kształt frezowanej kieszeni:
  • szerokość w;
  • długość l;
  • głębokość h;
  • położenie na osi x;
  • położenie na osi y;
  • położenie na osi z;

Kod programu:

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

Na poniższym rysunku można zobaczyć proces symulacji frezowania kieszeni w programie LinuxCNC.

Widok trybu symulacji frezowania kieszeni w programie LinuxCNC
Rys. 2
Widok trybu symulacji frezowania kieszeni w programie LinuxCNC

Komentarze