Круглый шнек на токарном станке
- <_d> = [34 + 0.25] (диаметр d)
- <_d1> = [45 + 0.25] (диаметр D)
- <_e> = [[#<_d>-#<_d1>]/2] (e)
- <_l> = [42] (шаг)
- <_l1> = [6*#<_l>*0+50] (общая длина)
- <_step> = 0.2 (шаг реза мм/оборот)
- <_astep> = [30] (шаг по углу - в градусах)
G21
- <_x_res> = 0
O101 SUB
; Get X at point of rotation
#<a> = #1
#<cx> = [#<_e>*SIN[#<a>]]
#<cy> = [#<_e>*COS[#<a>]]
#<t> = [#<_d>*#<_d>/4 - #<cy>*#<cy>]
(DEBUG, #<cx> #<cy> #<a> #<_e>)
O102 IF [#<t> GE 0]
#<_x_res> = [SQRT[#<t>]+#<cx>]
O102 ELSE
#<_x_res> = 0
O102 ENDIF
O101 ENDSUB
F100
M3 S30
O100 SUB
G0 X[#<_d1> + 10]
G0 Z[5]
#<x> = #<_x>
#<z> = #<_z>
O105 WHILE [#<z> GT [0-#<_l1>]]
#<a> = [#<a> + #<_astep>]
#<zl> = #<z>
#<z> = [ - #<a>/360*#<_step>]
#1 = [#<z>-#<zl>]
(DEBUG, #1)
#<a1> = [#<a> + #<z>/#<_l>*360]
O101 CALL [#<a1>] ; Get X
#<xl> = #<x>
#<x> = #<_x_res>
#<dz> = [#<z>-#<zl>]
#<dx> = [#<x>-#<xl>]
G33 Z#<z> X#<x> K [SQRT[#<dz>*#<dz> + #<dx>*#<dx>]*360/#<_astep>]
O105 END WHILE
G0 X[#<_d1> + 10]
O100 END SUB
O100 CALL
M2