Jump to content

FAQ/Unigraphics/POST


Fixidea

Recommended Posts

  • 2 weeks later...


Noavatar

Здравствуйте уважаемы форумчане!

Я еще раз подниму тему, но в другом ключе.

03.03.2021 в 17:03, kosmonaft сказал:

Делаю сверление на цилиндре на 4 осевом станке с осью В , деталь и ноль в центре вращения, как настроить постпроцессор чтобы при переходе к след отверстию на другом угле он не выдавал промежуточные углы?

 

03.03.2021 в 17:05, grOOmi сказал:

Переходы по прямой поставить

 

04.03.2021 в 05:59, Ug_user сказал:

Объездом по цилиндру или по сфере стараюсь не пользоваться, на крайний случай.

 

С переходом между объектами можно что то придумать в самом NX. Но если я использую операцию VARIABLE_CONTOUR, и обрабатываю карман на цилиндре или точу фрезой перемещая по одной оси и вращая вторую. То постпроцессор тоже будет выдавать промежуточные значения вращения оси. Можно как то регулировать это значение или вообще убрать промежуточный угол и оставить только конечное значение поворота оси?

Link to post
Share on other sites
mr_Voden

@Noavatar Можно проверять направление вращения (например 5-ю ось рассмотрим) и изменяются ли другие оси. Если изменяется только 5-я ось, то ничего не выводим. Как только становится известно, что в следующем (это важно) кадре изменится направление вращения 5 -й оси, или одна из других осей (X,Y,Z,4-я) изменит свое значение - выводим последнее значение 5-й оси. Примерно так.

  • Нравится 1
Link to post
Share on other sites
  • 1 month later...
JohnStrangerW

Ребята, может кто знает, пожалуйста, подскажите, как сделать так, чтобы nx выводил номер корректора на диаметр инструмента в каждой строке, где G41, например G41X-50.Y13.D1, и не забывал про него в следующих строках с G41. 

Как пример, сейчас так:

10.png

Надо, чтобы там, где подчёркнуто стоял D1. Я пробовал в постбилдере поставить в Motion-Linear Move, там где D1 Force Output, в итоге стало лучше, но nx начал выводил D1 в каждой строке, где G1. Вот что получилось:

11.png

Может кто сталкивался с этим, как решили эту проблему?

Link to post
Share on other sites
JohnStrangerW

Спасибо большое тем, кто откликнулся. Проблема решилась путём создания в разделе Machine Control -> Cutcom On пользовательской процедуры с текстом "MOM_force once D". По видео с youtube:

Может кому помогу :)

  • Нравится 1
Link to post
Share on other sites
  • 2 weeks later...
drion

Вы уверены,что проблема решилась? Попробовал ваш пример с Ютьюба. Действительно в каждой строке с G41 стал выводиться номер корректора, но и в некоторых строках с G01 тоже стал добавляться. Не везде, но в некоторых.

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

( WALL_L_R_CUTTING )
( MILL_3MM )
T06 M06
G90
G00 G55 X-196.847 Y-48.47 S6000 M03
G43 Z35. H06
M08
G01 Z-1.5 F1000. D06
X-195. Y-46.5 F400. D06

Y-42.
Y42.
Y46.5
G40
X-196.847 Y48.47
G00 Z35.
Y-48.47
G01 Z-2.95 F1000.
G41 X-195. Y-46.5 F400. D06
Y-42.
Y42.
Y46.5
G40
X-196.847 Y48.47
G00 Z35.
X196.847
G01 Z-1.5 F1000.
G41 X195. Y46.5 F400. D06

 

Edited by drion
Link to post
Share on other sites
JohnStrangerW

Посмотрел текст программ,  всё нормально, лишних D-шек нет. может что-то с другими пунктами что-то не так? Либо детали достаточно простые (у меня только контура и всё, только учусь). Можете скинуть деталь, которую обрабатываете? Посмотрю, может такая же фигня будет.

Link to post
Share on other sites
  • 2 weeks later...
Niyazkha

Привет, подскажите как где можно поменять в посте порядок вывода, подхода по координатам в начале операции. Я уже определил что это MOM_first_move но где смотреть вывод, не нашел.

Второй вывод нужно поменять местами, вначале XY потом Z

Screenshot_2.jpg

Link to post
Share on other sites
Vladislav-dobrynin
21.08.2021 в 11:50, Niyazkha сказал:

Привет, подскажите как где можно поменять в посте порядок вывода, подхода по координатам в начале операции. Я уже определил что это MOM_first_move но где смотреть вывод, не нашел.

Второй вывод нужно поменять местами, вначале XY потом Z

 

событие MOM_first_move возникает если в операции не было смены инструмента 

событие MOM_initial_move возникает если в операции была смена инструмента

 

Поэтому в обоих событиях должна присутствовать команда MOM_force once X Y

Link to post
Share on other sites
artem-nafanya

Доброго времени суток. Подскажите как в постбилдере сделать проверку? что существует одновременное ускоренное (G0) перемещение по осям XYZ?

Link to post
Share on other sites
Vladislav-dobrynin
48 минут назад, artem-nafanya сказал:

Доброго времени суток. Подскажите как в постбилдере сделать проверку? что существует одновременное ускоренное (G0) перемещение по осям XYZ?

 

Через условия в PB_CMD_ before_motion сравниваете к примеру mom_pos с mom_prev_pos по всем координатам используя оператор «И» (&&) плюс ещё оператор «И» если переменная mom_motion_type принимает значение “RAPID”

 

А зачем такая проверка Вам нужна ? 

Edited by Vladislav-dobrynin
Link to post
Share on other sites
artem-nafanya
11 минут назад, Vladislav-dobrynin сказал:

А зачем такая проверка Вам нужна ? 

Если траектория в NX имеет перемещение

G0 XYZ,

то постпроцессор выведет

G0 XY

G0 Z

так как станок не умеет одновременно перемещаться по трём координатам в ускоренном режиме.

Что приводит к нежелательным эффектам.

Edited by artem-nafanya
Link to post
Share on other sites
artem-nafanya
4 минуты назад, mr_Voden сказал:

@artem-nafanya Как насчет галочки "смена рабочей плоскости"?

Галочка штука понятная, но при отжатой галочке станок не сможет выполнить кадр G0 XYZ, а при нажатой пост выведет два кадра 

G0 XY

G0 Z

чего в принципе не ожидает неопытный программист наблюдая в NX ускоренное перемещение по трём осям в одним движением, а в программе на станке будет два.

Link to post
Share on other sites
artem-nafanya
4 минуты назад, mr_Voden сказал:

@artem-nafanya Хотите предупреждать программиста что его траектория некорректна?

Верно.

Link to post
Share on other sites
mr_Voden

@artem-nafanya Я в before_output проверял бы выводимую строку на наличие XYZ и тип движения, как вариант. В принципе аналогично тому что предложил @Vladislav-dobrynin , только в другой функции.

Link to post
Share on other sites
artem-nafanya
3 минуты назад, mr_Voden сказал:

@artem-nafanya Я в before_output проверял бы выводимую строку на наличие XYZ и тип движения, как вариант. В принципе аналогично тому что предложил @Vladislav-dobrynin , только в другой функции.

а есть пример того как это может выглядеть?

Link to post
Share on other sites
mr_Voden

@artem-nafanya Примерно так:

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

 В функцию PB_CMD_before_output добавьте

 

global mom_motion_type
   if { [info exist mom_motion_type] } {
       if { [string first "X" $mom_o_buffer]!=-1 && [string first "Y" $mom_o_buffer]!=-1 && [string first "Z" $mom_o_buffer]!=-1 && $mom_motion_type=="RAPID" } {
            MOM_abort "Error!"
       }   
}  

 

Link to post
Share on other sites
artem-nafanya
59 минут назад, mr_Voden сказал:

@artem-nafanya Хотя возможно лучше проверять не mom_motion_type, а mom_motion_event: mom_motion_event=="rapid_move".

 

Так?

 

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

 if { [info exist mom_motion_event] } {
       if { [string first "X" $mom_o_buffer]!=-1 && [string first "Y" $mom_o_buffer]!=-1 && [string first "Z" $mom_o_buffer]!=-1 && $mom_motion_event=="rapid_move" } {
            MOM_abort "!!!!!!!!!!!!!!!!Error!!!!!!!!!!!!!!!!"
       }
}

код в таком виде срабатывает, даже если ускоренные перемещения есть только в одном движении по осям XY?

Edited by artem-nafanya
Link to post
Share on other sites
mr_Voden

@artem-nafanyaЯ его не проверял, просто набросал. По идее он должен срабатывать если в строке будут встречены символы xyz и это будет ускоренной перемещение. Довольно топорный метод на самом деле. 

Link to post
Share on other sites
museok

я смотрю помогают в решение проблем , может и мне поможете все по старому вопросу

сделать проверку на изменение угла чтоб 800й цикл автоматически выводился тогда когда нужно , а то я термооправку отломил на днях ))

Link to post
Share on other sites
Vladislav-dobrynin
4 часа назад, museok сказал:

я смотрю помогают в решение проблем , может и мне поможете все по старому вопросу

сделать проверку на изменение угла чтоб 800й цикл автоматически выводился тогда когда нужно , а то я термооправку отломил на днях ))

 

А подробнее можно ? 

800 цикл обычно всегда выводиться должен в операцию, даже когда углы не меняются 

Link to post
Share on other sites
museok
19 часов назад, Vladislav-dobrynin сказал:

 

А подробнее можно ? 

800 цикл обычно всегда выводиться должен в операцию, даже когда углы не меняются 

да он выводиться , но как правило это не всегда нужно, если у меня нет изменения угла зачем мне выходить по Z вверх

да и если на это забить , это не программа будет а порнография ))

Link to post
Share on other sites
Vladislav-dobrynin
7 часов назад, museok сказал:

да он выводиться , но как правило это не всегда нужно, если у меня нет изменения угла зачем мне выходить по Z вверх

да и если на это забить , это не программа будет а порнография ))

 

Выводите Cycle800 всегда в начале каждой операции, а в конце операции сбрасывайте его - Cycle800(). Параметр отскока по Z отключите в самом цикле, его мы обычно не используем. 

Отслеживайте изменение углов в конце предыдущей операции и в начале текущей и по данному условию, в начале операции, перед Cycle800, выводите маневрирование в машинной системе координат Supa Z «» D0 

Именно так будет правильно 

Link to post
Share on other sites
artem-nafanya

Приветствую. Подскажите, как выводить mom_operator_message в нужном месте УП?

Даже если удаётся его вывести в другом месте, то оно всё равно остаётся ещё и на прежнем месте.

 

Link to post
Share on other sites
Vladislav-dobrynin
1 час назад, artem-nafanya сказал:

Даже если удаётся его вывести в другом месте, то оно всё равно остаётся ещё и на прежнем месте.

А Вам в каком месте нужно его выводить? Это событие, а событие можно выводить в начале или в конце операции или группы 

Link to post
Share on other sites
artem-nafanya
Только что, Vladislav-dobrynin сказал:

А Вам в каком месте нужно его выводить? Это событие, а событие можно выводить в начале или в конце операции или группы 

В начале группы

Первая строчка %MPF

Вторая mom_operator_message 

Link to post
Share on other sites
Vladislav-dobrynin
1 час назад, artem-nafanya сказал:

В начале группы

Первая строчка %MPF

Вторая mom_operator_message 

 

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

Link to post
Share on other sites
artem-nafanya
17 часов назад, Vladislav-dobrynin сказал:

 

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

Понятно. Можете более подробно объяснить как это происходит?

Link to post
Share on other sites
_vlad_ng_

Здравствуйте, столкнулся с такой проблемой, на токарно-фрезерном посте при выводе сверлильных операций вдоль оси Z вылезает ошибка, фото по ссылке: https://drive.google.com/file/d/1bLi_T5ZXQPuaWBJJ3RhVks-zQ_QsfJA2/view?usp=sharing ,

но при выводе сверления с какой-то токарной или фрезерной операцией при учете что они перед сверлением то ошибка не вылезает, может кто-то сталкивался с таким?

Link to post
Share on other sites
Vladislav-dobrynin
17 минут назад, _vlad_ng_ сказал:

Здравствуйте, столкнулся с такой проблемой, на токарно-фрезерном посте при выводе сверлильных операций вдоль оси Z вылезает ошибка, фото по ссылке: https://drive.google.com/file/d/1bLi_T5ZXQPuaWBJJ3RhVks-zQ_QsfJA2/view?usp=sharing ,

но при выводе сверления с какой-то токарной или фрезерной операцией при учете что они перед сверлением то ошибка не вылезает, может кто-то сталкивался с таким?

Ошибка из за отсутствия инициализации переменной предыдущего угла 5 оси. Когда до этого есть операция - данная переменная инициализируется заранее, а когда нет, то видимо в том месте, где к ней обращение идет - ее значение равно пустой строке. Скорее всего это происходит при первом же вызове процедуры before_motion

Вообще можно попробовать открыть tcl файл в блокноте, найти инициализацию переменных в какой либо процедуре в событии start_of_program и добавить строки

global mom_prev_out_angle_pos

set mom_prev_out_angle_pos(0) 0

set mom_prev_out_angle_pos(1) 0

 

Но боюсь это не поможет и еще какие-либо переменные окажутся не инициализированными.

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

Лучше обратитесь за технической поддержкой к автору постпроцессора

Link to post
Share on other sites
_vlad_ng_
3 минуты назад, Vladislav-dobrynin сказал:

Лучше обратитесь за технической поддержкой к автору постпроцессора

Та это стандартный пост из постбилдера, просто переделываю его под себя...
Беру обычный фрезерный пост, там все хорошо, создаю новый токарно-фрезерный там та же проблема.

Link to post
Share on other sites
Vladislav-dobrynin
12 минут назад, _vlad_ng_ сказал:

Та это стандартный пост из постбилдера, просто переделываю его под себя...
Беру обычный фрезерный пост, там все хорошо, создаю новый токарно-фрезерный там та же проблема.

Создавайте 2 отдельных связанных постпроцессора через Link_post, один токарный другой фрезерный и через событие Head вызывайте тот или иной.

Эти стандартные алгоритмы из шаблонов они сырые

Link to post
Share on other sites
_vlad_ng_
52 минуты назад, Vladislav-dobrynin сказал:

Вообще можно попробовать открыть tcl файл в блокноте, найти инициализацию переменных в какой либо процедуре в событии start_of_program и добавить строки

global mom_prev_out_angle_pos

set mom_prev_out_angle_pos(0) 0

set mom_prev_out_angle_pos(1) 0

Огромное спасибо, заработало!!!

57 минут назад, Vladislav-dobrynin сказал:

Вообще можно попробовать открыть tcl файл в блокноте, найти инициализацию переменных в какой либо процедуре в событии start_of_program и добавить строки

global mom_prev_out_angle_pos

set mom_prev_out_angle_pos(0) 0

set mom_prev_out_angle_pos(1) 0

Только после сохранения поста в билдере - добавленые строчки удаляються(

Все, заработало, просто в начале операции создал отдельную пользовательскую команду...

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    No registered users viewing this page.



  • Сообщения

    • Xugack
      Посмотрел модель, много деталь (фаски, скругления, вырезы...), еще болты, подшипники. Чтобы все это описать сеткой нужно прилично места. В целом расчетная модель это не модель реального изделия, нужны упрощения, разбитие на узлы и т.д. Подход - все красиво замоделить, а потом давай считать редко когда дает результат. Места на диске наверное хватит, а 16 оперативы, не сказал бы что это много для таких задач, тем более если считать модель как есть
    • 140466
      Ну это очевидное объяснение , но как-то даже для нота перебор. У меня 16 гигов оперативки. Довольно сносно. 30 гигов на диске. Сколько ж ему надо, если этого мало? 
    • Xugack
      Может у вас просто ПК не тянет расчет. Места на диске не хватает, или оперативки
    • 140466
      Объясните мне тупому, что я делаю не так?  Нужно посчитать на прочность не шибко сложную сборку (https://drive.google.com/file/d/1-zYd7bTwjAmUhW_0yLA3NmiQfzqoqoTb/view?usp=sharing) С трудом и матюгами сделать сетку удалось. Однако посчитать на прочность никак не получается. Вроде как что-то надо сделать с отверстия под болты (пока пытаюсь сделать mat bonded и обойтись без болтов, но отверстия под них оставил). Очевидно, что такая сборка должна считаться, но мне выдаёт, что закончилась физическая память. 
    • 12val12
      https://drive.google.com/file/d/1bSIqExNcY4YJwXe1raH1XqbokU7JEM1U/view?usp=sharing
    • karachun
    • 12val12
      https://drive.google.com/file/d/1bSIqExNcY4YJwXe1raH1XqbokU7JEM1U/view?usp=sharing в архиве  1.6 мб   вроде уже открыл
    • 12val12
      @karachun https://drive.google.com/file/d/1Di1l_vpka5U15pTDgHOl8s7PXJ2283n_/view?usp=sharing   файл больше 21мб
    • Ветерок
      котики https://vk.com/golf_stream_spb?w=wall3958979_2090%2Fall
    • karachun
      @12val12 Скиньте файл. Мало ли что вы там накрутили.
×
×
  • Create New...