Круглый шнек на токарном станке: различия между версиями

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

Текущая версия на 05:47, 20 марта 2017

#<_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> = [10]		(шаг по углу - в градусах)

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