Подход с одной стороны
- skytronix
- Кандидат
- Сообщения: 50
- Зарегистрирован: 25 ноя 2013, 16:41
- Репутация: 1
- Настоящее имя: Михаил
- Контактная информация:
Подход с одной стороны
Здравствуйте уважаемые форумчане. Подскажите дилетанту
, как можно (и возможно ли вообще) организовать в linuxcnc подход координаты с одной стороны? Т.е. Сделать так что если я задаю значение перемещения 10 мм, он перемещаться на 10 мм, а потом при перемещения в позицию 8 мм, он сначала перемещаться в позицию 6 мм, а потом в позицию 8 мм???
- PKM
- Почётный участник

- Сообщения: 4263
- Зарегистрирован: 31 мар 2011, 18:11
- Репутация: 705
- Настоящее имя: Андрей
- Откуда: Украина
- Контактная информация:
Re: Подход с одной стороны
G1 X10
G1 X8

Или не программно управлять нужно?
G1 X8
Или не программно управлять нужно?
- skytronix
- Кандидат
- Сообщения: 50
- Зарегистрирован: 25 ноя 2013, 16:41
- Репутация: 1
- Настоящее имя: Михаил
- Контактная информация:
Re: Подход с одной стороны
В программе так оно и есть. А вот как сделать что-бы станок физически при движении в отрицательную сторону пробегал дальше, а потом подошел к нужной координате с положительной стороны? (Таким образом выбирая люфт)
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Подход с одной стороны
Надо только в отрицательную сторону?
Подумал, что можно сделать отставание по координате, но потом понял, что из-за этого будет подглючивать обратная связь и motion planner...
Скорее всего надо все на Gкодах писать.
Как вариант, вместо всехвыполнять
и добавить
А какой станок?
Подумал, что можно сделать отставание по координате, но потом понял, что из-за этого будет подглючивать обратная связь и motion planner...
Скорее всего надо все на Gкодах писать.
Как вариант, вместо всех
Код: Выделить всё
G0 X...
Код: Выделить всё
O<move> CALL [...]
Код: Выделить всё
O<move> SUB
G1 X[#1-2]
G1 X#1
O<move> ENDSUB
- Сергей Саныч
- Мастер
- Сообщения: 9116
- Зарегистрирован: 30 май 2012, 14:20
- Репутация: 2858
- Откуда: Тюмень
- Контактная информация:
Re: Подход с одной стороны
Для выборки люфтов в LinuxCNC есть специальная возможность - задаешь в нужной оси величину люфта, скажем, BACKLASH = 0.1 и люфты будут автоматически выбираться.skytronix писал(а):(Таким образом выбирая люфт)
Но лучше бороться с люфтами в механике, особенно в станках с силовой обработкой, например, фрезерных.
Чудес не бывает. Бывают фокусы.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Подход с одной стороны
Если выработка винта не однородная - может не сработать!
Хотя для неоднородной выработки можно сделать файл с заданием выработки для отдельных участков винта.
Хотя для неоднородной выработки можно сделать файл с заданием выработки для отдельных участков винта.
- skytronix
- Кандидат
- Сообщения: 50
- Зарегистрирован: 25 ноя 2013, 16:41
- Репутация: 1
- Настоящее имя: Михаил
- Контактная информация:
Re: Подход с одной стороны
Переделываем старый ручной Иркутский станок под ЧПУ. Сейчас переделываем поворотную ось А.
Пишем программу:
G1 A10
G1 A8
Вопрос в том как заложить жестко что если перемещение отрицательное (А8-А10=А-2) сначала выполнить А-4, а потом А2.
Заранее извиняюсь если не совсем ясно изъясняюсь. Немного туповат
Пишем программу:
G1 A10
G1 A8
Вопрос в том как заложить жестко что если перемещение отрицательное (А8-А10=А-2) сначала выполнить А-4, а потом А2.
Заранее извиняюсь если не совсем ясно изъясняюсь. Немного туповат
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Подход с одной стороны
Можно вот так с использованием подпрограммы.skytronix писал(а):Вопрос в том как заложить жестко что если перемещение отрицательное (А8-А10=А-2) сначала выполнить А-4, а потом А2.
Также можно скриптом заменить все G01 A... на O<move> CALL [...].
Код: Выделить всё
O<move> SUB
O<move-if> IF [#1 LT #<_a>]
G01 A[#1-2]
G01 A#1
O<move-if> ENDIF
O<move> ENDSUB
- skytronix
- Кандидат
- Сообщения: 50
- Зарегистрирован: 25 ноя 2013, 16:41
- Репутация: 1
- Настоящее имя: Михаил
- Контактная информация:
Re: Подход с одной стороны
Только холостой поворот на нужный угол, после чего ось стопорится.
Расскажите по подробнее про скрипты, как правильно прописать?
Про скрипты я наверное поспешил, с подпрограммой помойму удачнее вариант
Расскажите по подробнее про скрипты, как правильно прописать?
Про скрипты я наверное поспешил, с подпрограммой помойму удачнее вариант
- skytronix
- Кандидат
- Сообщения: 50
- Зарегистрирован: 25 ноя 2013, 16:41
- Репутация: 1
- Настоящее имя: Михаил
- Контактная информация:
Re: Подход с одной стороны
Как мне это правильно прописать?Nick писал(а):O<move> CALL [...].Код: Выделить всё
O<move> SUB O<move-if> IF [#1 LT #<_a>] G01 A[#1-2] G01 A#1 O<move-if> ENDIF O<move> ENDSUB
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Подход с одной стороны
если Gкод пишется вручную - то не актуально.
вообще скрипт достаточно простой, собственно вот:
меняет все строки вида
G00 или G01 A(+число) на O<move> [(число)]
Потом для вызова:
O<move> CALL [-0.100]
Ой, в процедуре ошибка, надо так
(G01 A#1 надо делать в любом случае, а не только если едем в обратную сторону)
вообще скрипт достаточно простой, собственно вот:
Код: Выделить всё
sed -r "s/(G0?[0-1]\s*A)([-\.0-9]+)/O<move> [\2]/i"G00 или G01 A(+число) на O<move> [(число)]
Это лучше всего в отдельный файл под названием move.ngc и положи этот файл в директорию с ini (точнее там в ini есть параметр что-то вроде NGC prefix, в общем туда). Или можно просто тупо в начале каждого Gкода писать.skytronix писал(а):Как мне это правильно прописать?
Потом для вызова:
O<move> CALL [-0.100]
Ой, в процедуре ошибка, надо так
(G01 A#1 надо делать в любом случае, а не только если едем в обратную сторону)
Код: Выделить всё
O<move> SUB
O<move-if> IF [#1 LT #<_a>]
G01 A[#1-2]
O<move-if> ENDIF
G01 A#1
O<move> ENDSUB- NightV
- Почётный участник

- Сообщения: 6610
- Зарегистрирован: 30 дек 2011, 09:14
- Репутация: 2279
- Настоящее имя: Владимир Айрапетян
- Откуда: Israel
- Контактная информация:
Re: Подход с одной стороны
тупые станки не переделываютskytronix писал(а):Немного туповат
Всё просто! если знаешь КАК!
- skytronix
- Кандидат
- Сообщения: 50
- Зарегистрирован: 25 ноя 2013, 16:41
- Репутация: 1
- Настоящее имя: Михаил
- Контактная информация:
Re: Подход с одной стороны
Поэтому и спрашиваю, что-бы не угробитьNightV писал(а): тупые станки не переделываютони их гробят
Код: Выделить всё
O<move> SUB
O<move-if> IF [#1 LT #<_a>]
Linuxcnc выдал сообщение что поименнованый параметр не определен
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Подход с одной стороны
Это текущее положение оси A...
Ругнулся - значит у тебя версия до 2.6...
Попробуй заменить #<_a> на #<5423>
Список параметров есть тут: http://linuxcnc.org/docs/html/gcode/ove ... rameters_a
Вот тут есть с именными параметрами, но они будут работать скорее всего только с версии 2.6 http://www.linuxcnc.org/docs/devel/html ... parameters
Ругнулся - значит у тебя версия до 2.6...
Попробуй заменить #<_a> на #<5423>
Список параметров есть тут: http://linuxcnc.org/docs/html/gcode/ove ... rameters_a
Вот тут есть с именными параметрами, но они будут работать скорее всего только с версии 2.6 http://www.linuxcnc.org/docs/devel/html ... parameters
- Сергей Саныч
- Мастер
- Сообщения: 9116
- Зарегистрирован: 30 май 2012, 14:20
- Репутация: 2858
- Откуда: Тюмень
- Контактная информация:
Re: Подход с одной стороны
Может, на #5423 ?Nick писал(а):Попробуй заменить #<_a> на #<5423>
Последний раз редактировалось Сергей Саныч 27 ноя 2013, 14:31, всего редактировалось 1 раз.
Чудес не бывает. Бывают фокусы.
- skytronix
- Кандидат
- Сообщения: 50
- Зарегистрирован: 25 ноя 2013, 16:41
- Репутация: 1
- Настоящее имя: Михаил
- Контактная информация:
Re: Подход с одной стороны
У меня версия 2.5.3Nick писал(а):Это текущее положение оси A...
Ругнулся - значит у тебя версия до 2.6...
Попробуй заменить #<_a> на #<5423>
Сначала тоже ругнулся на параметр <5423>, убрал <> и все заработало
- Сергей Саныч
- Мастер
- Сообщения: 9116
- Зарегистрирован: 30 май 2012, 14:20
- Репутация: 2858
- Откуда: Тюмень
- Контактная информация:
Re: Подход с одной стороны
Подправил #5423 - это в другом месте с 1 начинются координаты (#5221)
Чудес не бывает. Бывают фокусы.
