acondit

CutBevel.ngc

Oct 21st, 2020
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.19 KB | None | 0 0
  1. (======================================================================)
  2. (=================== Define Constants/Variables =======================)
  3. #<_xorigin>=0.000 ( X axis offset for Coordinate sys 2 )
  4. #<_yorigin>=0.000 ( Y axis offset for Coordinate sys 2 )
  5. #<_zorigin>=0.000 ( Z axis offset for Coordinate sys 2 )
  6. #<_toolnum>=2 ( Set Tool Number e.g. 2 -- 1/8" diameter )
  7. #<_tooldia>=0.000 ( Set the tool diameter )
  8. #<_toolrad>=0.000 ( Tool radius )
  9. #<_feedrate>=5.0 ( Z Feed rate )
  10. #<_plungerate>=1.0 ( X Feed rate )
  11. #<_finefeed>=1.0 ( Fine Feed rate )
  12. #<_X_dia>=2.000 ( Starting Diameter of Material )
  13. #<_X_rad>=[#<_X_dia>/2] ( Starting Radius )
  14. #<_Xfinish>=[1.750/2] ( Edge of Material )
  15. #<_X_depth>=[#<_X_rad>-#<_Xfinish>] ( Final Diameter of Material )
  16. #<_Xcut>=0.020 ( X Cut depth )
  17. #<_safe_X>=0.050 ( distance to move X for safe z moves )
  18. #<_close_X>=[#<_X_dia>+#<_safe_X>] ( Close to top )
  19. #<_clear_X>=2.000 ( distance to clear X axis at end )
  20. #<_Zcut>=0.020 ( Z Cut depth )
  21. #<_Zthick>=2.000 ( Thickness of Material )
  22. #<_ZFace>=0.00 ( Z surface )
  23. #<_Zdepth>=[#<_ZFace>-#<_Zthick>] ( Depth to cut in Z direction )
  24. #<_safe_Z>=0.050 ( distance to move z for safe x moves )
  25. #<_close_Z>=[#<_Zface>+#<_safe_Z>] ( Close to top )
  26. #<_clear_Z>=2.000 ( distance to clear z axis at end )
  27. (#<_sqcorner>=SQRT[[[[[SQRT[2] -1]*#<_toolrad>]**2]/2]]) ( Offset of Tool diameter to corner )
  28. (#<_sqcorner>=SQRT[[[[[SQRT[2] -1]*#<_toolrad>]^2]/2]]) ( Offset of Tool diameter to corner )
  29. (#518=[2*[SIN[15]**2]])
  30. (#518=[2*[SIN[15]^2]])
  31.  
  32.  
  33. O100 SUB ([1] [2] [3]) ( 1 = X pos, 2 = Z pos, and 3 = radius )
  34. G10 L2 P3 X#1 Z#2 ( Set current work origin )
  35. G56
  36. G00 Z0.0
  37. G00 X#<_close_X>
  38. #<Xcut> = 0 ( X start for radius cut )
  39. O101 DO
  40. O105 IF [ [#<Xcut>+#<_Xcut>] LT #3]
  41. #<Xcut>=[#<Xcut>+#<_Xcut>] ( Z start for radius cut )
  42. O105 ELSE
  43. #<Xcut> = #3
  44. O105 ENDIF
  45. G00 X#3
  46. G00 Z[0.0-#<Xcut>]
  47. G02 X[#3-#<Xcut>] Z0.0 I[0.0-#3] K[#<Xcut>-#3] F#<_finefeed>
  48. O101 WHILE [#<Xcut> LT #3]
  49. G55
  50. G00 X#3
  51. O100 ENDSUB
  52.  
  53. ( Cut bevel on workpiece )
  54. (O<CutBevel> SUB [X pos] [Z pos] [length of bevel])
  55. O<CutBevel> SUB
  56. G10 L2 P3 X#1 Z#2 ( Set current work origin )
  57. G56
  58. #<Xend> = [#1-#3]
  59. #<Zend> = [#2-#3]
  60. #<Xcut> = 0.0
  61. #<Zcut> = 0.0
  62. G00 X0.0
  63. G00 Z0.0
  64. O111 DO
  65. O112 IF [[#<Xcut>-#<_Xcut>] GT #<Xend>]
  66. #<Xcut> = [#<Xcut>-#<_Xcut>]
  67. O112 ELSE
  68. #<Xcut> = #<Xend>
  69. O112 ENDIF
  70. O113 IF [[#<Zcut>-#<_Zcut>] GT #<Zend>]
  71. #<Zcut> = [#<Zcut>-#<_Zcut>]
  72. O113 ELSE
  73. #<Zcut> = #<Zend>
  74. O113 ENDIF
  75. (G00 X#<_Xfinish>)
  76. G00 X0.0 Z[#Zcut]
  77. G01 X[#<Xcut>] Z0.0 F#<_finefeed> ( Start of X-Cut )
  78. O111 WHILE [#<Xcut> LT #<Xend>]
  79. G00 X0.0 Z0.0
  80. O<CutBevel> ENDSUB
  81.  
  82. ( START UP CODE )
  83. G20 G92.1 G61 G18 G40 G80 ( Set Imp. mode, clear offsets, set exact path )
  84. ( Select XY plane and turn off tool compensation )
  85. G10 L2 P1 X0.0 Z0.0
  86. G49
  87. G10 L2 P2 X#<_xorigin> Z#<_zorigin> ( Set current work origin )
  88. T[#<_toolnum>] ( Select Tool specified in #<_toolnum> )
  89. S2000 M3 ( Set Spindle Speed and Spindle on )
  90. G55 ( Set Coordinate system 2 )
  91.  
  92. G64 P.002
  93. G0 z#<_safe_Z>
  94. (G0 X0)
  95.  
  96. ( Main Code )
  97. G00 X#<_close_X> Z0.0
  98.  
  99. O<CutBevel> CALL [0.0] [0.0] [0.375] ( Cut from end )
  100.  
  101. G54
  102. G00 X#<_clear_X>
  103. G00 Z#<_clear_Z>
  104. M02
  105.  
Advertisement
Add Comment
Please, Sign In to add comment