Program G-code wycinający eliptyczny otwór

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

Ten prosty programik napisany w G-code wycina eliptyczny otwór o podanych parametrach. Program przy wycinaniu otworu bierze pod uwagę następujące parametry wpływające na położenie i kształt otworu:

  • promienie elipsy r1 i r2;
  • położenie środka elipsy xc i yc;
  • kąt obrotu α elipsy;

Kolejne parametry związane z samą frezarką i narzędziem to:

  • średnica frezu d;
  • wysokość cięcia h;
  • maksymalna jednorazowa wysokość skrawanej warstwy;
  • posuw f [mm / min];
  • prędkość obrotowa wrzeciona s [obr / min]
Graficzna interpretacja parametrów wycinanego otworu eliptycznego
Rys. 1
Graficzna interpretacja parametrów wycinanego otworu eliptycznego:
  • promienie elipsy r1 i r2;
  • położenie środka elipsy xc i yc;
  • kąt obrotu α elipsy;

Program, który napisałem wykonuje interpolację liniową krzywej eliptycznej, której dokładność zależy od specjalnie utworzonego parametru n. Parametr ten dzieli kąt pełny 360° na części, względem których obliczane są współrzędne bezwzględne kolejnego punktu znajdującego się na obwodzie elipsy.

Listing 1
  1. g90
  2. f300
  3. m3 s800
  4. #<tool_diameter> = 2
  5. #<height> = 3
  6. #<current_height> = 1
  7. #<x_c> = 100
  8. #<y_c> = 100
  9. #<ray_1> = [50 - #<tool_diameter> / 2]
  10. #<ray_2> = [80 - #<tool_diameter> / 2]
  11. #<angle> = 23
  12. #<k> = 1
  13. g0 x[#<x_c> - #<ray_1> * cos[#<angle>]] y[#<y_c> - #<ray_1> * sin[#<angle>]]
  14. g1
  15. #<n> = 360
  16. o002 while [#<current_height> le #<height>]
  17. z-[#<current_height>]
  18. o001 repeat [#<n>]
  19. #<x> = [- #<ray_1> * cos[360 / #<n> * #<k>]]
  20. #<y> = [#<ray_2> * sin[360 / #<n> * #<k>]]
  21. x[#<x> * cos[#<angle>] - #<y> * sin[#<angle>] + #<x_c>] y[#<x> * sin[#<angle>] + #<y> * cos[#<angle>] + #<y_c>]
  22. #<k> = [#<k> + 1]
  23. o001 endrepeat
  24. #<current_height> = [#<current_height> + 1]
  25. o002 endwhile
  26. z0
  27. m30
Przykład symulacji wycinania otworu eliptycznego przeprowadzona w programie LinuxCNC
Rys. 2
Przykład symulacji wycinania otworu eliptycznego przeprowadzona w programie LinuxCNC

Komentarze