Перейти к публикации

Вопрос по постпроцессору


Denya101

Рекомендованные сообщения

Доброго времени суток, уважаемые форумчане!

Прошу подсказки, как в редактировании постпроцессоров в Edgecam (версия 2020) на фрезерные ОЦ прописать так называемый вектор компенсации при переходе на команду G41. Речь идет о создании постпроцессора на фрезерный станок ЛФ-260МФ3 с УЧПУ 2С85-63. Древняя стойка при вводе функции G41 требует этот вектор. Работая с современным оборудованием, никогда ранее с таким не сталкивался. Объясню, что я имею в виду.

nqZQudWyIJQ.jpg?size=998x563&quality=96&

Согласно эскиза я распишу несколько кадров теоретической УП с подводом фрезы ф10мм к некоему обрабатываемому контуру. УП с функцией G41 должна выглядеть примерно следующим образом:

N1 G54 G90 G17

N2 T1 M06

N3 G0 X-4000 Y-1900 S1000 M3

N4 Z10

N5 G1 Z0 F100

N6 G41 X-2500 Y-1900 I1500 J0

N7 Y0

……….

 

Для чего необходимо ввести эти координаты I, J?

Как обьяснил старый программист, который пишет УП на данные станки вручную, без данного вектора при записи УП выше в кадре N6 фреза не станет слева от точки 1 согласно эскиза, т.е. как необходимо, а наоборот – станет в точке X-25 Y-19 своим центром и переместится влево от обрабатываемого контура лишь в конце кадра N7. То есть выйдет зарез контура. Опять же по словам коллеги, само число в координатах I, J даже не важно, важно лишь направление (+, -). Руководство от Львовского завода фрезерных станков у меня есть, но толку от него мало: написано совершенно непонятно и местами с ошибками. Или просто я тупой. Скорее последнее.

Прикрепляю пример из руководства как это должно выглядеть (смотреть рисунок 2.23).

 qJBR07Qnv5s.jpg?size=2560x1920&quality=9

Задачка, по идее, должна быть следующей. Из массива точек траектории у нас есть точка 0 (X-40, Y-19) и точка 1 (X-25, Y-19) уже с командой G41. При включении команды G41 должен быть некий перерасчет разницы точки 1 точки 0:

IG41 = X1 – X0

JG41 = Y1 – Y0

Таким образом сохранится направление этого вектора. Прописать этот примитивнейший алгоритм в раздел Linear Interpolation, и готово. Хрен знает, будет ли станок понимать, что от него требуют, но на то и буду проверять потом. Вот только каким образом мне это прописать в посте: на то подсказки у вас и прошу. Какие там можно использовать математические/логические операторы, которые позволили бы оперировать координатами и первой и второй точки траектории.

Может, я в принципе ошибаюсь и несу бред сивой кобылы, но может кто-то знает как в Edgecam вывести данный вектор совершенно иным способом. Буду очень признателен!

 

П.С. Пытаюсь редактировать дефолтный 3-осевой пост, команда на корректор прописана в Linear Interpolation, строка Cutter Compensation пустая.

Изменено пользователем Aleksei92
Ссылка на сообщение
Поделиться на других сайтах


У нас есть один такой станок. Необходимо указывать вектор последующего направления движения.

Вряд ли EdgeCam, как и другие cam-системы  сможет что то предложить. В отечественных чпу каких только выкрутасов не встречается.

Так что ручками надо, самому.

Если первый отрезок пути - прямая, то просто его указываешь в качестве вектора, а если дуга, то уже надо вычислять.

Ссылка на сообщение
Поделиться на других сайтах

Делал подобную хрень с вычислениями векторов как для входа "линия-линия", так и "линия-дуга", "дуга-дуга" на все возможные варианты. В той древней СССР-ой стойке надо указывать функцию обхода угла - внутренний он или внешний.

 

В посте есть "системные переменные", позволяющие видеть кроме текущей точки с координатами также точку следующую и предыдущую. На основе этих данных я написал свою процедуру и внедрил в файл ххх.mxt. Это текстовая версия поста, которая потом компилировалась.

 

Где-то после версии EdgeCAM 2013 поддержку экспорта поста в этот текстовый формат и его компиляция были убраны из функционала. Возможно, сделать пост в старой версии, сохранить в mxt, копи-пастом туда положить ваши функции и откомпилить будет решением.

 

Выходом из положения может стать подключение вашей самописной процедуры методом вставки кода в линейную интерполяцию. Этот код проверит состояние станочной коррекции, если она включилась - будет выведен ваш вектор как 2 пользовательских параметра, потом модальность не даст им выводиться.

 

Возможно, если сделать пост из 5-координатного шаблона - там вектора, возможно, совпадут с векторами 3D-коррекции. Как тут всё сделать в реале - я не знаю, руки не дошли.

 

Но если вы не спец в разработке постопроцессоров, то дело тухлое.

Ссылка на сообщение
Поделиться на других сайтах

1 вариант. Через I J векторы при подходе через круговую интерполяцию высчитываете точки

2 вариант. В линейной перемещении перед выводом кадра, запоминаешь 2 переменные в которые записываешь предыдущие значения XY1 и ещё две после вывода - это XY2. Далее, если в кадре есть вывод 41/42/40 , то делаешь переход в метку, где рассчитываешь проекции векторов и выводить их через [user]

 

Ссылка на сообщение
Поделиться на других сайтах

для примера

1. вывод линейного 5 осевого движения в

линейной интерполяции (iTNC)

;CODE: %IF #FEED=>20000 %THEN #FEED=6000
;CODE: %IF #FEED=>5000 %THEN #FEED=5000
;CODE: %IF #AX5MODE=128 %THEN %GOTO @5AXL
;CODE: %IF CRC3D=1 %THEN %GOTO @5AXL
[DELETE][BLKNUM] [MOVE_CODE][XMOVE][YMOVE][ZMOVE][XPARTNORMAL][YPARTNORMAL][ZPARTNORMAL][IVECTOR][JVECTOR][KVECTOR] [SECOND ROT] [FIRST ROT][CRC L/R][FEED][SHORTEST][SPINDIR][COOLANT]
;CODE: %GOTO @5AXENDL
;CODE: @5AXL
[DELETE][BLKNUM] [MOVE_CODE][<C>XMOVE][<C>YMOVE][<C>ZMOVE][<C>XPARTNORMAL][<C>YPARTNORMAL][<C>ZPARTNORMAL][<C>IVECTOR][<C>JVECTOR][<C>KVECTOR] [SECOND ROT] [FIRST ROT][CRC L/R][FEED][SHORTEST][SPINDIR][COOLANT]
;CODE: %GOTO @5AXENDL
;CODE: @5AXENDL

 

2. при быстром ходе для Siemens 840D включение 3D компенсации

-блок 3d cutter compensation

[DELETE][BLKNUM] ORIWKS
[DELETE][BLKNUM] CYCLE832(0.01,2,1)
[DELETE][BLKNUM] [3DCOMPCODE]
;CODE: #USER6=1

-блок linear interpolation

;CODE: %IF #USER6=1 %THEN %GOTO @3DCOMPON11
;CODE: %IF #AX5MODE=128 %THEN %GOTO @5AXR
[DELETE][BLKNUM][RAPIDGCODE][PLANEGCODE][XMOVE][YMOVE][ZMOVE][IVECTOR][JVECTOR][KVECTOR][FIRST ROT][SECOND ROT]
;CODE: %GOTO @3DCOMPOFF11
;CODE: @3DCOMPON11
;CODE: #USER10=XPARTNORMAL
;CODE: #USER11=YPARTNORMAL
;CODE: #USER12=ZPARTNORMAL
[DELETE][BLKNUM][RAPIDGCODE][PLANEGCODE][<C>XMOVE][<C>YMOVE][<C>ZMOVE][IVECTOR][JVECTOR][KVECTOR][<C>USER-10][<C>USER-11][<C>USER-12][FIRST ROT][SECOND ROT]
;CODE: %GOTO @3DCOMPOFF11
;CODE: @5AXR
[DELETE][BLKNUM][RAPIDGCODE][PLANEGCODE][<C>XMOVE][<C>YMOVE][<C>ZMOVE][<C>IVECTOR][<C>JVECTOR][<C>KVECTOR][FIRST ROT][SECOND ROT]
;CODE: %GOTO @3DCOMPOFF11
;CODE: @3DCOMPOFF11

Ссылка на сообщение
Поделиться на других сайтах
  • 4 недели спустя...

Всем спасибо за ответы, буду разбираться! :)

Само собой, если б я нашел эти системные переменные с предыдущей и последующей точкой XY1, XY2, то тогда разобрался бы сам (наверно, хех) и не спрашивал. Но раз вы говорите, что они вообще существуют, то буду искать дальше :)

А мысль попробовать через 5-координатку даже не приходила в голову, тоже попробую.

 

Да, дело тухлое, ну ничего, общее направление и примеры в целом понятны.

 

Спасибо! Если все-таки осилю эту задачу, то опубликую результаты, вдруг кому-то поможет в будущем...

Такая же проблема имеется на моем предприятии и на станках ОЦФ-1 АС. Тоже стойка требует вектора. По идее как данные станки ИР-320 еще не везде вымерли на нашем постсоветском пространстве, может у кого-то тоже стоят древние стойки АС.

Изменено пользователем Aleksei92
Ссылка на сообщение
Поделиться на других сайтах
  • 11 месяцев спустя...

Доброго времени суток, уважаемые форумчане!

Выкладываю две версии постпроцессора на фрезерный ОЦ DMU-60P с ЧПУ Heidenhain 430 для EDGECAM 2021.

 

Скрытый текст

Станок условно 5-координатный, в моем случае у него 3 стандартные оси XYZ, поворотная ось стола С и условная ось А для головы шпинделя вокруг оси Х, которая имеет только два положения: вертикальное положение и горизонтальное положение. Промежуточных положений оси А нет, имеющиеся положения прописываются М-командами. Горизонтальное положение шпинделя – команда М53, вертикальное – команда М54. Поворачивать ось А в любое другое положение циклом 19 нельзя, ЧПУ предлагает лишь ось С. То есть станок в бюджетной комплектации, так сказать. Не спрашивайте, мы уже это б/у чудо купили с других рук за бесценок, а дареному (ну, почти) коню в зубы не смотрят.

В горизонтальном положении станок никак не трансформирует / не переворачивает свою систему координат, т.е. в этом случае осью шпинделя (высота) становится ось Y, а вот ось Х в положительном направлении уже будет смотреть со стороны шпинделя не вправо, а влево.

Смена инструмента у него осуществляется в горизонтальном положении, при компоновке типичного вертикального фрезера. Он на смене инструмента в вертикальном положении (при работающем коде М54) сам разворачивает шпиндель, берет инструмент, снова переводит шпиндель в вертикальное положение без каких-либо указаний в УП (код М54 работает и далее), и едет работать в вертикальном положении дальше. В горизонтальном положении (работает код М53) все еще проще, в каком положении шпиндель работал, в таком же и меняет инструмент.

Даю на всякий случай ссылку на YouTube, там показан данный станок, только еще раз повторю, что поворот шпинделя в промежуточное положение как на видео – такая функция у меня отсутствует.

https://www.youtube.com/watch?v=UGaXV1ZCgYE

 

Вопрос №1. Постпроцессоры самодельные в вертикальном положении работают без нареканий. А вот во время режима работы в горизонталке постпроцессор инструмент меняет, переводя шпиндель в вертикальное положение. Мириться с этим можно, просто по-новой прописываешь новое положение и поехал дальше. Для реального станка это будет повторный ввод команды М53, ну и ничего, проглотит без проблем. Но мог бы здесь кто-нибудь сведущий посмотреть пост и проект и подсказать, что нужно в нем настроить, чтобы в САМ-е смена инструмента осуществлялась независимо от положения шпинделя? Это нужно посмотреть:

1) DMU-60P TNC 430 v0.9a – постпроцессор

1) test DMU-60P TNC 430 v0.9a ygolnik – проект обработки

 

Вопрос №2. В постпроцессоре v0.9a поворот шпинделя осуществляется простым вращением вокруг оси А, в то время как на реальном станке кинематика делает это совершенно иначе. В прилагаемом видео с YouTube видно, как это делается. В прилагаемой версии того же самого поста (только уже v0.9f) я выполнил такой поворот шпинделя, выглядит красиво и соответствует объективной реальности, но при этом этот пост похерил выведенную УП. В прилагаемой УП в кадре 61 поворот Front.MC1 должен быть С±180, а вывел он почему-то 0. Смотрим ниже кадры 64 и 65 и видим, что координаты высоты по оси Y стали отрицательными, что ни разу не соответствует объективной реальности. В кадре 82 поворот Right.MC2 должен быть С-90, вывел +90, в кадре вызова инструмента 84 инструментальная ось не Y, а почему-то Y-. Кадры 87 и 88 тоже с отрицательным Y. Каким образом хитрый поворот шпинделя вокруг оси А повлиял на оси Y и С – непонятно.

Прилагаемые файлы:

2) DMU-60P TNC 430 v0.9f – постпроцессор, отличается только поворотом оси А

2) test DMU-60P TNC 430 v0.9f ygolnik – проект обработки под пост f

2) YP POST F – выведенная УП

 

Вопрос №3. В обоих постпроцессорах симуляция обработки показывает смещение обработки прогоняемых отверстий в горизонтальном положении. Причем в вертикальном положении положении такого дефекта нет. В выводимой УП данной ошибки нет, там этого смещения нет (ну кроме высоты по оси Y в посте v0.9f). Прилагаю скрин данного прикола. Есть мысли как это исправляется?

 

Буду очень благодарен за ответ на любой из трех вопросов. В принципе, плюс-минус, постом v0.9a вроде как можно пользоваться, только сверлилки и нарезание резьбы не тестил на станке, разве что циклом 200 (сверление) делал разметку отверстий, работало.

 

ССылка на облако (общий доступ) - https://drive.google.com/drive/folders/1ru3FX7ZBumk3ePYGCDfbiQ6yWShT-Pp6?usp=share_link

P.S. Если кто-то предполагает, то да, между А и F были все соответствующие буквы. Как и до версии 0.9 было с десятка два постов разной степени ущербности. Вдруг это кого-то улыбнет :-)

скрин.jpg

Изменено пользователем Aleksei92
Забыл скрин скинуть
Ссылка на сообщение
Поделиться на других сайтах
  • 2 месяца спустя...

Дубль 2, укороченный вопрос №1 от поста выше :)

Есть пост фрезерный 4+1, поворотный стол С и поворотная голова А. 

При повороте головы на угол А-90 шпиндель располагается в горизонтальном положении. Но вот т.к. в САМ-е станок по дефолту меняет инструмент при дефолтном положении шпинделя (т.е. при плоскости обработки XY Z A=0 градусов), то соответственно, САМ мне насильно от моего желания возвращает шпиндель из горизонтального положения в вертикальное при смене инструмента. И нужно заново выбирать наклон шпинделя, что для моей СЧПУ iTNC 428 излишне.

 

Подскажите, пожалуйста, есть ли мысли как в посте настроить так, чтобы смена инструмента осуществлялась в любом положении и при этом выбранная ранее плоскость обработки working plane не менялась на дефолтную?

Ссылка на сообщение
Поделиться на других сайтах
  • 9 месяцев спустя...

Добрый вечер Кто может поделится постпроцессором для 4-х кординатного фрезерного станка, стойка Fanuc. За ранее спасибо

Ссылка на сообщение
Поделиться на других сайтах
  • 1 месяц спустя...

Доброго времени. Есть станок DMG DMU 75 MonoBLOCK. Как задать кинематику в постпроцессоре, что бы при повороте стола, инструмент оставался на оси шпинделя, а не поворачивался вместе со столом? Это нужно для правильной симуляции.

Ссылка на сообщение
Поделиться на других сайтах

@Denya101 кинематика станка не описывается в постпроцессоре

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.
Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.




×
×
  • Создать...