Gкод для обработки шнека на токарном станке: различия между версиями

Материал из cnc-club
Перейти к навигации Перейти к поиску
(Новая страница: «Шнек можно изготовить на токарном станке при хитрости и G33. G33 едет синхронно со шпинделе…»)
 
Строка 33: Строка 33:
  
 
Например так:  
 
Например так:  
  O<shnek> SUB  
+
  O&lt;shnek> SUB  
  #<step_st> = #1 ; начальный шаг шнека
+
  #&lt;step_st> = #1 ; начальный шаг шнека
  #<step_end> = #2 ; конечный шаг шнека
+
  #&lt;step_end> = #2 ; конечный шаг шнека
  #<l> = #3 ; общая длинна
+
  #&lt;l> = #3 ; общая длинна
  #<dl> = #4 ; шаг разбивки  
+
  #&lt;dl> = #4 ; шаг разбивки  
  #<i> = 0 ; текущее положение
+
  #&lt;i\> = 0 ; текущее положение
  O<shnek-r> repeat[#<l>/#<dl>] ; цикл по разбивке
+
  O&lt;shnek-r> repeat[#&lt;l>/#&lt;dl>] ; цикл по разбивке
  #<t> = [#<i>/#<l>]
+
  #&lt;t> = [#&lt;i>/#&lt;l>]
  G33 Z[<#_z>-#<dl>] K[#<step_st>*[1-#<t>] + #<step_st>*#<t>]
+
  G33 Z[&lt;#_z>-#&lt;dl>] K[#&lt;step_st>*[1-#&lt;t>] + #&lt;step_st>*#&lt;t>]
  #<i> = [#<i> + #<dl>]
+
  #&lt;i> = [#&lt;i> + #&lt;dl>]
  O<shnek-r> ENDREPEAT
+
  O&lt;shnek-r> ENDREPEAT
  O<shnek> ENDSUB  
+
  O&lt;shnek> ENDSUB  
 
   
 
   
 
  G0 X100
 
  G0 X100
 
  G0 Z0
 
  G0 Z0
 
  G0 X50
 
  G0 X50
  O<shnek> SUB CALL [10] [20] [100] [0.1] ; первый проход
+
  O&lt;shnek> SUB CALL [10] [20] [100] [0.1] ; первый проход
 
   
 
   
 
  G0 X10
 
  G0 X10
 
  G0 Z1
 
  G0 Z1
 
  G0 X50
 
  G0 X50
  O<shnek> SUB CALL [10] [20] [100] [0.1] ; второй проход  
+
  O&lt;shnek> SUB CALL [10] [20] [100] [0.1] ; второй проход  
 
   
 
   
 
  ; и т.д. кстати, все это тоже можно в цикле сделать.
 
  ; и т.д. кстати, все это тоже можно в цикле сделать.

Версия 15:10, 20 апреля 2016

Шнек можно изготовить на токарном станке при хитрости и G33. G33 едет синхронно со шпинделем. G33 X- Y- Z- K- Едет в точку X- Y- Z- со скоростью четко К-мм на оборот.

Т.е., если пишем:

G0 Z0 
G33 Z-10 K1

То получим резьбу с шагом 1мм. Если нужно сделать переменный шаг, то нужно чуть хитрее, можно написать :

G0 Z0 
G33 Z-5 K1  
G33 Z-10 K2

Получим резьбу с шагом 1 до Z-5 дальше резьбу с шагом 2мм..

Если нужно плавно менять шаг, то это можно сделать разбив все на более маленькие отрезки. Т.е. например вот так (тут с циклом и всеми делами):

G0 Z0 
#<step> = 1
O100 repeat[100] ; цикл 100 раз
  G33 Z[<#_z>-0.1] K#<step>
  #<step> = [#<step>+0.1]
O100 END REPEAT[/code]

Кстати для шнека там может быть просто 2-3 разных шага на всю длинну, т.е. можно цикл и не использовать. Но дальше ты захочешь выбрать шнек за несколько проходов. Тогда надо несколько раз подходить и смещать начальную точку.

Например так:

O<shnek> SUB 
	#<step_st> = #1		; начальный шаг шнека
	#<step_end> = #2	; конечный шаг шнека
	#<l> = #3			; общая длинна
	#<dl> = #4			; шаг разбивки 
	#<i\> = 0			; текущее положение
	O<shnek-r> repeat[#<l>/#<dl>] ; цикл по разбивке
		#<t> = [#<i>/#<l>]
		G33 Z[<#_z>-#<dl>] K[#<step_st>*[1-#<t>] + #<step_st>*#<t>]
		#<i> = [#<i> + #<dl>]
	O<shnek-r> ENDREPEAT
O<shnek> ENDSUB 

G0 X100
G0 Z0
G0 X50
O<shnek> SUB CALL [10] [20] [100] [0.1] ; первый проход

G0 X10
G0 Z1
G0 X50
O<shnek> SUB CALL [10] [20] [100] [0.1] ; второй проход 

; и т.д. кстати, все это тоже можно в цикле сделать.

G0 X10
G0 Z0