Спираль

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.

Спираль

Сообщение foundsecret » 11 май 2020, 20:19

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

Код: Выделить всёРазвернуть
%
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
Мастер
 
Сообщения: 206
Зарегистрирован: 18 мар 2015, 01:49
Репутация: 14
Настоящее имя: Артем

Re: Спираль

Сообщение foundsecret » 11 май 2020, 23:24

Код привёл просто для примера. Вопрос исключительно общий - как сделать спиральную траекторию?
foundsecret
Мастер
 
Сообщения: 206
Зарегистрирован: 18 мар 2015, 01:49
Репутация: 14
Настоящее имя: Артем

Re: Спираль

Сообщение UAVpilot » 11 май 2020, 23:34

Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
UAVpilot
Мастер
 
Сообщения: 20268
Зарегистрирован: 17 апр 2012, 14:58
Откуда: Москва
Репутация: 4854
Заслуга: c781c134843e0c1a3de9
Медальки:
Настоящее имя: Сергей

Re: Спираль

Сообщение N1X » 12 май 2020, 06:57

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

Re: Спираль

Сообщение foundsecret » 12 май 2020, 07:42

Плоская. Винтовые линии уже умею.
foundsecret
Мастер
 
Сообщения: 206
Зарегистрирован: 18 мар 2015, 01:49
Репутация: 14
Настоящее имя: Артем

Re: Спираль

Сообщение N1X » 12 май 2020, 08:34

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

Re: Спираль

Сообщение foundsecret » 12 май 2020, 08:53

И? Если точка не на окружности, интерпретатор ругается. Надо как-то указывать два радиуса? Ищу.
foundsecret
Мастер
 
Сообщения: 206
Зарегистрирован: 18 мар 2015, 01:49
Репутация: 14
Настоящее имя: Артем

Re: Спираль

Сообщение N1X » 12 май 2020, 09:11

И мой косяк, меня что-то переклинило, что через круговую интерполяцию можно спираль задать, а винт нельзя, а оно как раз наоборот =)
Вот на гитхабе что-то есть: https://github.com/LinuxCNC/linuxcnc/bl ... spiral.ngc
Но не вглядывался...
Аватара пользователя
N1X
Мастер
 
Сообщения: 3547
Зарегистрирован: 16 фев 2015, 21:19
Откуда: Беларусь, Гомель
Репутация: 1608
Настоящее имя: Владимир

Re: Спираль

Сообщение foundsecret » 12 май 2020, 09:22

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

Код: Выделить всёРазвернуть
%
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
%


Других вариантов нет?
foundsecret
Мастер
 
Сообщения: 206
Зарегистрирован: 18 мар 2015, 01:49
Репутация: 14
Настоящее имя: Артем

Re: Спираль

Сообщение Сергей Саныч » 12 май 2020, 09:26

А вам математически точную спираль надо, или из кусочков дуг окружности сойдет?
Чудес не бывает. Бывают фокусы.
Аватара пользователя
Сергей Саныч
Мастер
 
Сообщения: 8841
Зарегистрирован: 30 май 2012, 14:20
Откуда: Тюмень
Репутация: 2766
Медальки:

Re: Спираль

Сообщение foundsecret » 12 май 2020, 09:37

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

Код: Выделить всёРазвернуть
%
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
Мастер
 
Сообщения: 206
Зарегистрирован: 18 мар 2015, 01:49
Репутация: 14
Настоящее имя: Артем

Re: Спираль

Сообщение foundsecret » 12 май 2020, 09:37

Сергей Саныч писал(а):А вам математически точную спираль надо, или из кусочков дуг окружности сойдет?


Да, это похоже на решение =(
foundsecret
Мастер
 
Сообщения: 206
Зарегистрирован: 18 мар 2015, 01:49
Репутация: 14
Настоящее имя: Артем

Re: Спираль

Сообщение Сергей Саныч » 12 май 2020, 09:55

Можно еще со сплайнами побаловаться http://linuxcnc.org/docs/2.7/html/gcode ... l#gcode:g5
Чудес не бывает. Бывают фокусы.
Аватара пользователя
Сергей Саныч
Мастер
 
Сообщения: 8841
Зарегистрирован: 30 май 2012, 14:20
Откуда: Тюмень
Репутация: 2766
Медальки:


Вернуться в LinuxCNC

Кто сейчас на конференции

Зарегистрированные пользователи: Бро, alifmax, at90, Atom42, Bing [Bot], Brestden, Cvazist, DarkRavin, Google [Bot], kens, Lexxa, Majestic-12 [Bot], Mentat, michael-yurov, Newengine, Nikomas, Q-starь, Sashalex24, SVP, uralpt, Yandex [bot], Леонид Владимирович

Reputation System ©'