Сглаживание траектории холостых перемещений.

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
billsmith
Опытный
Сообщения: 128
Зарегистрирован: 04 июн 2012, 23:46
Репутация: 5
Контактная информация:

Сглаживание траектории холостых перемещений.

Сообщение billsmith »

Можно ли заставить LinuxCNC скруглять углы G0 с заданным радиусом? Такая возможность есть например в PowerMill при составлении УП. Я пользуюсь JDPaint. Там нет такой функции. А на сложных траекториях это значительно повысит скорость обработки и облегчит жизнь станку.
Суть задачи проста. LinuxCNC должен находить подъём, проезд и опускание по GO, и углы заменять указанным радиусом. Если расстояние между подъёмом и опусканием меньше чем 2R, радиус соответственно уменьшается.
Сглаживание G0.png
Сглаживание G0.png (3.08 КБ) 2996 просмотров
Либо кто из местных программистов сможет написать макрос для Notepad++ для такой конвертации готового g-code?
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Сглаживание траектории холостых перемещений.

Сообщение nkp »

billsmith писал(а): LinuxCNC скруглять углы G0 с заданным радиусом?
а G64 не распространяется на G0 ?
можно было бы прописывать для G1 один коэфициент ,а для G0 другой - позволяющий обработку с максимальной скоростью.
billsmith
Опытный
Сообщения: 128
Зарегистрирован: 04 июн 2012, 23:46
Репутация: 5
Контактная информация:

Re: Сглаживание траектории холостых перемещений.

Сообщение billsmith »

Была мысля макросом перед каждым G0 ставить G64 с большим допуском (например G64 P2), а перед G1 с маленьким(G64 P 0.1). Но это как то неправильно и самое главное, G64 Не просто срежет угол но и искривит всю траекторию G0, что может быть недопустимым например при подъёме.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Сглаживание траектории холостых перемещений.

Сообщение Serg »

Не помню, чтобы стандарт требовал соблюдения того или иного поведения G0 на G64. А раз так, то каждая реализация имеет право делать это как хочет в любой момент времени.
Почему не использовать G1 с соотв. F, чтобы получить гарантированное поведение?
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
billsmith
Опытный
Сообщения: 128
Зарегистрирован: 04 июн 2012, 23:46
Репутация: 5
Контактная информация:

Re: Сглаживание траектории холостых перемещений.

Сообщение billsmith »

Основная проблема что при использовании G64, траектория будет не такой
Сглаживание G0.png
Сглаживание G0.png (3.08 КБ) 2978 просмотров
а такой, что часто недопустимо
Сглаживание G64.png
Сглаживание G64.png (3.37 КБ) 2978 просмотров
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Сглаживание траектории холостых перемещений.

Сообщение nkp »

интересное утверждение
сколько не пробую - вот так получается
Выделение(041).jpg (2973 просмотра) <a class='original' href='./download/file.php?id=12522&mode=view' target=_blank>Загрузить оригинал (52.47 КБ)</a>
Выделение(042).jpg (2973 просмотра) <a class='original' href='./download/file.php?id=12523&mode=view' target=_blank>Загрузить оригинал (55.55 КБ)</a>
а можно узнать - как добиться такой траектории как в предыдущем сообщении внизу???
какой код надо прописать???
можно пример?
billsmith
Опытный
Сообщения: 128
Зарегистрирован: 04 июн 2012, 23:46
Репутация: 5
Контактная информация:

Re: Сглаживание траектории холостых перемещений.

Сообщение billsmith »

Вот как выглядит в PowerMill то что я хочу получить
Обычная траектория:
Изображение
Сглаженные переходы:
Изображение
billsmith
Опытный
Сообщения: 128
Зарегистрирован: 04 июн 2012, 23:46
Репутация: 5
Контактная информация:

Re: Сглаживание траектории холостых перемещений.

Сообщение billsmith »

nkp писал(а):интересное утверждение
сколько не пробую - вот так получается
Выделение(041).jpg
Выделение(042).jpg
а можно узнать - как добиться такой траектории как в предыдущем сообщении внизу???
какой код надо прописать???
можно пример?
Сейчас к сожалению у меня проблема сделать скрин на станке. При 3D обработке в основном использую G64 P0.1 Q0.1, но лучше поставить например G64 P0.5 Q0.5 и посмотреть как расходиться траектория с УП
Аватара пользователя
michael-yurov
Почётный участник
Почётный участник
Сообщения: 11731
Зарегистрирован: 26 июл 2012, 00:10
Репутация: 4703
Настоящее имя: Михаил Львович
Откуда: Новоуральск
Контактная информация:

Re: Сглаживание траектории холостых перемещений.

Сообщение michael-yurov »

G0 в принципе, допускает перемещение по любой траектории.
Mach3 движется по прямой, DSP пульты - с изгибом, передвигая оси не связанно друг с другом, KFlop - по S кривой, и каждую ось независимо.
А вот PowerMill, между прочим, сохраняет быстрые перемещения командами G1/G2/G3, соответствующим образом изменяя требуемую скорость. Это позволяет быть уверенным в точном следовании траектории и позволяет отследить зарезы материала при перемещениях.
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Сглаживание траектории холостых перемещений.

Сообщение nkp »

а есть реальная программка с указанными подъемами?
billsmith
Опытный
Сообщения: 128
Зарегистрирован: 04 июн 2012, 23:46
Репутация: 5
Контактная информация:

Re: Сглаживание траектории холостых перемещений.

Сообщение billsmith »

Ну вот примерчик сделал в PowerMill http://yadi.sk/d/x_IlPmPB338hA
На данный момент два вижу только варианта, либо заставить LinuxCNC G0 проходить по сглаженной траектории. Либо сделать конвертер, который будет обычные переезды G0 заменять сглаженным переездом.
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Сглаживание траектории холостых перемещений.

Сообщение nkp »

billsmith писал(а):Либо сделать конвертер,
так я ж и спрашивал код с "квадратными" :) переездами
чтоб скрипт написать
а это ж уже сглаженый:
Выделение(044).jpg (2951 просмотр) <a class='original' href='./download/file.php?id=12550&mode=view' target=_blank>Загрузить оригинал (155.6 КБ)</a>
billsmith
Опытный
Сообщения: 128
Зарегистрирован: 04 июн 2012, 23:46
Репутация: 5
Контактная информация:

Re: Сглаживание траектории холостых перемещений.

Сообщение billsmith »

Понял.
Вот пример файла http://yadi.sk/d/ioGwyZtq339IU
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Сглаживание траектории холостых перемещений.

Сообщение Nick »

Скрипт на sed будешь писать?
В принципе заменить G0 и G1 можно в одну строчку

sed "s/(G0?0[a-zA-Z ])/G64 P2 \1/i ; s/(G0?[123][a-zA-Z ])/G64 P0.1 \1/i"

ЗЫ ngc можешь прямо на форум вешать. если это удобно конечно :)
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Сглаживание траектории холостых перемещений.

Сообщение Serg »

А вы уверены, что такое сглаживание бедет начинаться и заканчиваться на безопасной высоте?..
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Сглаживание траектории холостых перемещений.

Сообщение nkp »

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

Re: Сглаживание траектории холостых перемещений.

Сообщение Serg »

Т.е. в обычном случае можно задать минимальную безопасную высоту, а в данном случае придётся её увеличить как минимум на величину скругления.
Какой в этом смысл?
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
billsmith
Опытный
Сообщения: 128
Зарегистрирован: 04 июн 2012, 23:46
Репутация: 5
Контактная информация:

Re: Сглаживание траектории холостых перемещений.

Сообщение billsmith »

1. В случае например использования конусной фрезы, обычно можно ставить радиус закругления равным радиусу фрезы, и в этом случае зареза не произойдет даже если безопасная высота установлена ровно по заготовке.
2. Мне безопасная высота нужна чтоб фреза не торкалась возможно кривоватой заготовки и крепления. Так как крепления я не ставлю в микронах от будущей детали, а как минимум в пару миллиметрах, на этом расстоянии фреза уже станет на установленную высоту.
Так что в обоих случаях, не потребовалось дополнительно увеличивать безопасную высоту.
Сглаживание траектории холостых перемещений это один из мелких нюансов, которые и помогают приблизить УП к идеальной.
Аватара пользователя
michael-yurov
Почётный участник
Почётный участник
Сообщения: 11731
Зарегистрирован: 26 июл 2012, 00:10
Репутация: 4703
Настоящее имя: Михаил Львович
Откуда: Новоуральск
Контактная информация:

Re: Сглаживание траектории холостых перемещений.

Сообщение michael-yurov »

А эти картинки просто для примера, или вы действительно растром в одном направлении фрезеруете?
А то, если фрезеровать растром в обоих направлениях - холостых перемещений практически не будет.

Я с EMC2 почти не работал, но точно могу сказать, что Mach3 такие траектории с закруглениями и плавными переходами, сгенерированными powermill - терпеть не может. Он их отрабатывает значительно дольше, нежели обычные с острыми углами. Я полагаю, это именно ошибки в планировщике траектории Mach3 и к EMC2 отношения не имеют.
Вложения
159151338881591.png (2911 просмотров) <a class='original' href='./download/file.php?id=12561&mode=view' target=_blank>Загрузить оригинал (226.95 КБ)</a>
billsmith
Опытный
Сообщения: 128
Зарегистрирован: 04 июн 2012, 23:46
Репутация: 5
Контактная информация:

Re: Сглаживание траектории холостых перемещений.

Сообщение billsmith »

Растром в одном направлении редко, но и такое бывает. Обычно растром почти прямые участки детали, а склоны слоями, ещё и подчистки другими фрезами. В итоге много холостых перемещений получается.
Mach3 я давно и быстро откинул, но всё таки полагаю что данная траектория ему не по душе не из-за сглаживания переходов, а из-за плавных подводов по пути, возможно поэтому длина пути возрастает. Хотя всё может быть).
Ответить

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