Спираль

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
foundsecret
Мастер
Сообщения: 220
Зарегистрирован: 18 мар 2015, 01:49
Репутация: 14
Настоящее имя: Артем
Контактная информация:

Спираль

Сообщение foundsecret »

Можно ли отправить фрезу в путешествие по спирали?

Код: Выделить всё

%
G00 Z1

(центр)
#<x> = 30
#<y> = 30

#<depth2> = 6.2
#<step> = .1
#<feedrate> = 1200
#<cutter> = 5


#<halfcutter> = [#<cutter> / 2]


(отверстие)

#<depth> = 13
#<d> = 12.5

#<steps> = [#<depth> / #<step>]
#<z> = 0
#<r> = [#<d> / 2]
G00 X[#<x> + #<halfcutter> - #<r> + #<halfcutter>] Y[#<y> + #<halfcutter>]
G01 Z0  F[#<feedrate> / 10]
O10 REPEAT [#<steps>]
	#<z> = [#<z> - #<step>]
	G02 I[#<r> - #<halfcutter>] Z#<z> F#<feedrate>
O10 ENDREPEAT
G02 I[#<r> - #<halfcutter>] Z#<z> F#<feedrate>
G00 Z0
G01 Z1

(уступ)
#<depth> = 6
#<d> = [36 - 12.2]

#<steps> = [#<depth> / #<step>]
#<z> = 0
#<r> = [#<d> / 2]
G01 Z0  F[#<feedrate> / 10]
O11 REPEAT [#<steps>]
	#<z> = [#<z> - #<step>]
	#<i> = 5
	O21 REPEAT [5]
		G01 X[#<x> + #<halfcutter> - #<r> - #<halfcutter> - #<i>] Y[#<y> + #<halfcutter>] F[#<feedrate> / 10]
		G02 I[#<r> + #<halfcutter> + #<i>] Z#<z> F#<feedrate>
		#<i> = [#<i> - 1]
	O21 ENDREPEAT
O11 ENDREPEAT



(    НЕ ПОДНИМАЮ, Z остаётся текущий   )




(контур)
#<depth> = 6.2
#<d> = 36

#<steps> = [#<depth> / #<step>]
#<r> = [#<d> / 2]
G00 X[#<x> + #<halfcutter> - #<r> - #<halfcutter>] Y[#<y> + #<halfcutter>]
O12 REPEAT [#<steps>]
	#<z> = [#<z> - #<step>]
	G02 I[#<r> + #<halfcutter>] Z#<z> F#<feedrate>
O12 ENDREPEAT
G02 I[#<r> + #<halfcutter>] Z#<z> F#<feedrate>
G00 Z0
G01 Z1


M30
%
foundsecret
Мастер
Сообщения: 220
Зарегистрирован: 18 мар 2015, 01:49
Репутация: 14
Настоящее имя: Артем
Контактная информация:

Re: Спираль

Сообщение foundsecret »

Код привёл просто для примера. Вопрос исключительно общий - как сделать спиральную траекторию?
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Спираль

Сообщение Serg »

Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
N1X
Мастер
Сообщения: 3653
Зарегистрирован: 16 фев 2015, 21:19
Репутация: 1645
Настоящее имя: Владимир
Откуда: Беларусь, Гомель
Контактная информация:

Re: Спираль

Сообщение N1X »

Плоская спираль, или винтовая линия?
foundsecret
Мастер
Сообщения: 220
Зарегистрирован: 18 мар 2015, 01:49
Репутация: 14
Настоящее имя: Артем
Контактная информация:

Re: Спираль

Сообщение foundsecret »

Плоская. Винтовые линии уже умею.
Аватара пользователя
N1X
Мастер
Сообщения: 3653
Зарегистрирован: 16 фев 2015, 21:19
Репутация: 1645
Настоящее имя: Владимир
Откуда: Беларусь, Гомель
Контактная информация:

Re: Спираль

Сообщение N1X »

Ну тогда ссылку дали :)
foundsecret
Мастер
Сообщения: 220
Зарегистрирован: 18 мар 2015, 01:49
Репутация: 14
Настоящее имя: Артем
Контактная информация:

Re: Спираль

Сообщение foundsecret »

И? Если точка не на окружности, интерпретатор ругается. Надо как-то указывать два радиуса? Ищу.
Аватара пользователя
N1X
Мастер
Сообщения: 3653
Зарегистрирован: 16 фев 2015, 21:19
Репутация: 1645
Настоящее имя: Владимир
Откуда: Беларусь, Гомель
Контактная информация:

Re: Спираль

Сообщение N1X »

И мой косяк, меня что-то переклинило, что через круговую интерполяцию можно спираль задать, а винт нельзя, а оно как раз наоборот =)
Вот на гитхабе что-то есть: https://github.com/LinuxCNC/linuxcnc/bl ... spiral.ngc
Но не вглядывался...
foundsecret
Мастер
Сообщения: 220
Зарегистрирован: 18 мар 2015, 01:49
Репутация: 14
Настоящее имя: Артем
Контактная информация:

Re: Спираль

Сообщение foundsecret »

Руками интерполировать? Серьезно? =/

Код: Выделить всё

%
G00 Z1

G00 X20 Y20

F100
#<angle> = 0
#<start> = 10
#<end> = 9
#<steps> = 720
#<step> = [[#<start> - #<end>]  / #<steps>]
#<i> = 0

G92 X-10 Y-10
G00 @[10 + #<i>] ^#<angle>
O10 REPEAT [#<steps>]
	G01 @[10 + #<i>] ^#<angle> F1200
	#<angle> = [#<angle> + [360 / #<steps>]]
	#<i> = [#<i> - #<step>]
O10 ENDREPEAT
G92.1
 
M30
%
Других вариантов нет?
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2857
Откуда: Тюмень
Контактная информация:

Re: Спираль

Сообщение Сергей Саныч »

А вам математически точную спираль надо, или из кусочков дуг окружности сойдет?
Чудес не бывает. Бывают фокусы.
foundsecret
Мастер
Сообщения: 220
Зарегистрирован: 18 мар 2015, 01:49
Репутация: 14
Настоящее имя: Артем
Контактная информация:

Re: Спираль

Сообщение foundsecret »

Написал вариант с управляемой точностью.

Код: Выделить всё

%
G00 Z1

G00 X20 Y20

F100

(input)
#<precision> = .05
#<r1> = 10
#<r2> = 9

(calcs)
#<pi> = 3.141592
#<steps> = [[#<r1> * #<pi> * 2] / #<precision>]
#<step> = [[#<r1> - #<r2>] / #<steps>]
#<angle> = 0
#<i> = 0

(move)
G92 X-10 Y-10
G00 @[10 + #<i>] ^#<angle>
O10 REPEAT [#<steps>]
	G01 @[10 + #<i>] ^#<angle> F1200
	#<angle> = [#<angle> + [360 / #<steps>]]
	#<i> = [#<i> - #<step>]
O10 ENDREPEAT
G92.1
 
M30
%

С точностью в сотку станок сильно тормозит, очевидно занимаясь вычислениями. Пять соток - заметно. Десятка - визуально не тормозит, но это десятка...

Интересно, какова точность родной интерполяции LinuxCNC?

Возвращаясь к основному вопросу. Неужели иначе нельзя?
foundsecret
Мастер
Сообщения: 220
Зарегистрирован: 18 мар 2015, 01:49
Репутация: 14
Настоящее имя: Артем
Контактная информация:

Re: Спираль

Сообщение foundsecret »

Сергей Саныч писал(а):А вам математически точную спираль надо, или из кусочков дуг окружности сойдет?
Да, это похоже на решение =(
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2857
Откуда: Тюмень
Контактная информация:

Re: Спираль

Сообщение Сергей Саныч »

Можно еще со сплайнами побаловаться http://linuxcnc.org/docs/2.7/html/gcode ... l#gcode:g5
Чудес не бывает. Бывают фокусы.
Ответить

Вернуться в «LinuxCNC»