Страница 1 из 2
Вопросы по модулям кинематики
Добавлено: 06 авг 2016, 00:53
tegauss
Всем привет.
Пытаюсь оживить одну
железку (пятиосевой координатный стол) с помощью linuxcnc, и вот возник вопрос.
Почитав
это, выяснил, что существуют "part coordinates" (положение и ориентация инструмента в системе координат заготовки, 6 чисел) и "machine coordinates" (положения осей станка, в моём случае 5 чисел). Также, как оказалось, в linuxcnc существуют модули кинематики, которые решают задачи прямого и обратного преобразования между этими наборами координат.
Суть вопроса: а зачем тогда нужен постпроцессор cam'а? Он же занимается тем же самым. Выходит, можно обойтись без него? Как, в таком случае, будут выглядеть g коды? Верно ли я понимаю, что на вход linuxcnc можно подавать положение и ориентацию инструмента, и он сам будет все пересчитывать?
Помогите, пожалуйста, разобраться.
Re: Вопросы по модулям кинематики
Добавлено: 07 авг 2016, 22:06
Sabaka
Постпроцессор это индивидуальный сценарий записи генерации УП с учететом особенностей станка, поэтому он для каждой машины свой. Попросту говоря это автоматический способ записи просчитанной траекторий.
Можно и без него, просто руками вписать все передвижения. Но если там несколько тысяч строк то я вам не завидую. Выглядеть будут точно также, ибо никакой разницы. Нет, вы должны сами настроить свой станок а потом создавать под него программы обработки.
Re: Вопросы по модулям кинематики
Добавлено: 07 авг 2016, 23:29
tegauss
Sabaka писал(а):Постпроцессор это индивидуальный сценарий записи генерации УП с учететом особенностей станка, поэтому он для каждой машины свой. Попросту говоря это автоматический способ записи просчитанной траекторий.
Можно и без него, просто руками вписать все передвижения. Но если там несколько тысяч строк то я вам не завидую. Выглядеть будут точно также, ибо никакой разницы. Нет, вы должны сами настроить свой станок а потом создавать под него программы обработки.
Честно сказать, не увидел в вашем сообщении ответа на свой вопрос. Вопрос заключается не в том, зачем вообще нужен постпроцессор, а в том, зачем постпроцессор cam'а и модули кинематики linuxcnc решают одну и ту же задачу.
Попытаюсь сформулировать ещё раз. Вот создал я операцию обработки. После этого cam сгенерировал управляющую траекторию (файлик, где каждая строчка описывает положение и ориентацию инструмента в различные моменты времени). После этого я нажимаю кнопочку "постпроцессировать", и постпроцессор превращает управляющую траекторию в g коды для моего конкретного станка. При этом происходит переход от "part coordinates" к "machine coordinates".
Но linuxcnc и сам умеет делать то же самое с помощью модулей кинематики, которые умеют в том числе решать обратную задачу по положению. Зачем тогда постпроцессор cam'а?
Re: Вопросы по модулям кинематики
Добавлено: 08 авг 2016, 01:06
Sabaka
Вы про мастера что ли? Я что то не понял что такое "модуль кинематики".
Если все же про мастера то например это они могут сделать? И это еще простейшая задача.
Re: Вопросы по модулям кинематики
Добавлено: 08 авг 2016, 01:13
tegauss
Sabaka писал(а):Вы про мастера что ли? Я что то не понял что такое "модуль кинематики".
Если все же про мастера то например это они могут сделать? И это еще простейшая задача.
Я вот про
это говорю. Не знаю, что такое "мастер".
Re: Вопросы по модулям кинематики
Добавлено: 08 авг 2016, 01:17
Sabaka
Теперь понятно, я тут пас)
Re: Вопросы по модулям кинематики
Добавлено: 08 авг 2016, 01:22
tegauss
Sabaka писал(а):Теперь понятно, я тут пас)
Обидно. Ну, спасибо, что хотя бы попытались помочь

Надеюсь, кто-нибудь все-таки что-нибудь подскажет по теме..
Re: Вопросы по модулям кинематики
Добавлено: 08 авг 2016, 07:33
nkp
tegauss писал(а): Вопрос заключается не в том, зачем вообще нужен постпроцессор, а в том, зачем постпроцессор cam'а и модули кинематики linuxcnc решают одну и ту же задачу.
Давай представим , что это действительно так,и "выкинем" постпроцессор(ПП) кама ...
возьмем для примера контур окружности 50мм :
Код: Выделить всё
f200
g1 z-2
g2 x50 y0 z-2 r25
g2 x0 y0 z-2 r25
m2
ведь примерно такой код должен выдать кам без ПП ?
задача "пройти" данный контур инструментом ,допустим,не перпендикулярно XY,а под углом 45гр ...
имея 5осевой станок с соответствующеей кинематикой - как мы будем "объяснять" ему задачу "про градусы"??
Re: Вопросы по модулям кинематики
Добавлено: 08 авг 2016, 07:51
MIX
Постпроцессор в общем случае не занимается преобразованием part coordinates в mashine coordinates. Он занимается преобразованием траектории движения инструмента рассчитанных в CAM программе (обычно это набор кривых) в программу в виде G кода с учетом особенностей станка. А иногда дополнительно и симуляцией обработки для проверки ошибок.
Модуль кинематики в LinuxCNC занимается преобразованием G кода в последовательность позиций осей станка т.к. G код не учитывает кинематику оборудования, а задает все позиции в декартовых (реже цилиндрических) системах координат.
Re: Вопросы по модулям кинематики
Добавлено: 08 авг 2016, 15:02
tegauss
nkp писал(а):
Код: Выделить всё
f200
g1 z-2
g2 x50 y0 z-2 r25
g2 x0 y0 z-2 r25
m2
ведь примерно такой код должен выдать кам без ПП ?
Насколько понимаю, нет. Без ПП кам выдаст нам управляющую траекторию, которая будет выглядеть примерно так (каждая строчка -- {x, y, z, i, j, k}, т.е. позиция и ориентация инструмента):
Код: Выделить всё
GOTO/33.1882,-37.8934,-23.4485,0.8319471,0.4716399,0.2922668
GOTO/33.8394,-37.3805,-23.8983,0.8305451,0.4690511,0.3003096
GOTO/34.4748,-36.8607,-24.3263,0.8292259,0.4662779,0.3081711
GOTO/35.0885,-36.3372,-24.7357,0.8279928,0.4633176,0.3158556
...
MIX писал(а): а задает все позиции в декартовых (реже цилиндрических) системах координат.
А вот это уже похоже на то, в чем я не могу никак разобраться.
В качестве кама для пятиосевой обработки я пробовал только Siemens NX, так что дальнейшие рассуждения относятся только к нему.
Возьмем вот такой станок (кинематика
xyzbc-trt):
Этот станок -- один из примеров, встроенных в NX. Полагаю, нет причин опасаться, что в кинематике и ПП для него есть ошибки.
Так вот, для такого станка ПП NX'а генерирует следующий код:
Код: Выделить всё
N1 G40 G17 G90 G49 G21
N2 (VARIABLE_STREAMLINE)
N3 G91 G28 Z0.0
N4 G91 G28 X0.0 Y0.0
N5 G90 G53 G00 B0.0 C0.0
:6 T10 M06
N7 G97 G90 G54
N8 B90. C29.972
N9 G43.4 H10 S2228 M03 M08
N10 G94 G90 X-409.602 Y-50.115 Z-73.461
N11 Z-95.686
N12 G01 X-408.799 Y-50.099 Z-97.227 F1203.
N13 X-407.558 Y-50.075 Z-98.445
N14 X-406.002 Y-50.045 Z-99.219
N15 X-404.282 Y-50.011 Z-99.474
N16 X-402.568 Y-49.978 Z-99.186
N17 X-400.253 Y-49.962 Z-96.462 B89.442 C29.961
N18 X-397.892 Y-49.943 Z-93.791 B88.88 C29.948
N19 X-395.425 Y-49.926 Z-91.113 B88.299 C29.936
N20 X-392.85 Y-49.912 Z-88.438 B87.698 C29.927
Если, как вы говорите, все позиции в декартовых (или цилиндрических) системах координат, то что такое "B" и "С" в этой программе (например, в строчке номер 17)? Или это какой-то неправильный постпроцессор?
PS Вообще, конечная моя задача заключается в том, что я хочу понять, можно ли управлять linuxcnc подавая ему на вход
только лишь управляющую траекторию, то есть строчки вида (каждая строчка -- {x, y, z, i, j, k}, т.е. позиция и ориентация инструмента):
Код: Выделить всё
70.0 -84.457079824 -9.41341750695 0.115910874739 -0.411625127573 0.903952113482
70.0 -83.520943478 -8.98713691409 0.115910874739 -0.411625127573 0.903952113482
70.0 -83.3405477996 -8.90437321341 0.116369116731 -0.407514079418 0.905754107773
70.0 -82.4024835569 -8.48232225828 0.116369116731 -0.407514079418 0.905754107773
Re: Вопросы по модулям кинематики
Добавлено: 08 авг 2016, 15:50
nkp
tegauss писал(а):PS Вообще, конечная моя задача заключается в том, что я хочу понять, можно ли управлять linuxcnc подавая ему на вход только лишь управляющую траекторию,
ну вот некоторым только теперь стал ясен вопрос

не_G-код можно скормить емс , только для этого нужно будет написать фильтр,
тут же учесть и кинематику - в итоге,имхо,равноценно ПП в кам...
или "интерпретатор" родной минуем?
Re: Вопросы по модулям кинематики
Добавлено: 08 авг 2016, 16:08
tegauss
nkp писал(а):tegauss писал(а):PS Вообще, конечная моя задача заключается в том, что я хочу понять, можно ли управлять linuxcnc подавая ему на вход только лишь управляющую траекторию,
ну вот некоторым только теперь стал ясен вопрос

Да, простите, надо было сразу задачу описать полностью
nkp писал(а):не_G-код можно скормить емс , только для этого нужно будет написать фильтр,
тут же учесть и кинематику - в итоге,имхо,равноценно ПП в кам...
или "интерпретатор" родной минуем?
На самом деле, никакого кам'а и нет. Есть ручками написанный генератор управляющей траектории. Сейчас просто пытаюсь понять, как все по уму должно работать.
Вроде бы, все постепенно начинает проясняться. Скажите пожалуйста, правильно ли я понимаю, что "A", "B" и "C" в g кодах -- это не углы поворота поворотных осей станка, а углы поворота системы координат инструмента относительно глобальной?
Re: Вопросы по модулям кинематики
Добавлено: 09 авг 2016, 06:28
MIX
Боюсь, что в G кодах А,В,С это всетаки больше углы поворота осей относительно систем координат, заданных в G54, G55,... Кроме редких частных случаев.
Именно поэтому, в первую очередь, и нужна предварительная обработка траектории постпроцессором.
Основная задача постпроцессора как раз и состоит в том, чтобы имея на входе траекторию инструмента/детали и кинематику станка, преобразовать траекторию в позиции осей.
Re: Вопросы по модулям кинематики
Добавлено: 09 авг 2016, 17:31
tegauss
Сделал в итоге так: "ПП" генерирует код вида:
Код: Выделить всё
X23.1721884152 Y190.234242986 Z3.46313752118 A-24.7688082793 B7.25088852044
X23.1734167631 Y190.583283043 Z2.03538056347 A-23.7382717197 B7.25965787487
X23.1734167631 Y190.730462848 Z2.03538056345 A-23.7382717197 B7.25965787487
X23.173432607 Y193.413973852 Z2.03473530193 A-23.7378240745 B7.25977100485
В этом коде все числа -- "machine coordinates". В качестве модуля кинематики использовал trivkins. Вроде работает, хотя, очень вероятно, способ кривой.
https://www.youtube.com/watch?v=t517yuKGmoM
Re: Вопросы по модулям кинематики
Добавлено: 09 авг 2016, 17:47
MIX
А где G0, G1, G2, G3, F..., M3, M5 ?
Re: Вопросы по модулям кинематики
Добавлено: 09 авг 2016, 18:11
tegauss
MIX писал(а):А где G0, G1, G2, G3, F..., M3, M5 ?
Если полностью, то вот так:
Код: Выделить всё
G01 F600
X33.9364917526 Y174.974538718 Z107.425934663 A-27.690967294 B6.9947299066
...
X23.1361408358 Y174.974538719 Z8.01088338782 A-27.690967294 B6.9947299066
M30
Задача пока что состоит только в том, чтобы пройти по траектории. А шпинделя просто нет

Re: Вопросы по модулям кинематики
Добавлено: 09 авг 2016, 19:36
umerov
Правильнее по другому, постпроцесор генерирует код траекториии конца фрезы (RTCP). Координаты A B C - (это НЕ машинные координаты - это углы наклона фрезы относительно конца инструмента) - кинематика linuxcnc преобразует угла наклона фрезы в движение осей также учитывает и смену инструмента, в g-коде только одна сторка T1M6 - все остальное должен делать linuxcnc. Без RTCP - пришлось бы каждый раз менять постпроцессор если изменилась длина фрезы.
С RTCP - gcode для 5-и осевого станка будет не зависим от конкретного станка - всегда будет выполнятся одинакого (правда без учета ограничений осей )
В моем понимании ПП в сам программе - нужен для:
- учитывет ограничение осей конкретного станка, во время генерации при их превышении показывает ошибку.
- и еще некоторые возможности связанные с конкретным станком
Вот разница в траектории с активной и не активной RTCP
Re: Вопросы по модулям кинематики
Добавлено: 10 авг 2016, 09:46
umerov
Re: Вопросы по модулям кинематики
Добавлено: 11 авг 2016, 16:42
tegauss
umerov писал(а):Координаты A B C - (это НЕ машинные координаты - это углы наклона фрезы относительно конца инструмента)
А можете вот эту фразу пояснить, пожалуйста? "Инструмент" -- это опять же фреза?
Re: Вопросы по модулям кинематики
Добавлено: 11 авг 2016, 18:25
umerov
"машинные координаты" - в моем понимании это реальные кодинаты осей (в linuxcnc - joints)