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

Использование $mom_nxt_pos


i0wa

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

попробывал записать X (user defined) с переменной $mom_nxt_pos(0) в Event: Cutcom on. Выдал ошибку. Что не верно? Существует ли такая функция. Хотя она и есть в списке переменных поста, её нет в переменных движения (см. хелп)

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


Нет массива с таким именем. По крайней мере, среди глобальных...

Если речь идет о том, чтобы некоему самоопределенному адресу присвоить значение координаты конечной точки следующего перемещения, то надо использовать mom_nxt_mcs_goto

Стало быть, синтаксис выражения будет выглядеть примерно следующим образом:

set my_X_address $mom_nxt_mcs_goto(0)

set my_Y_address $mom_nxt_mcs_goto(1)

set my_Z_address $mom_nxt_mcs_goto(2)

При этом надо не забыть в начале процедуры продекларировать глобальную переменную

global mom_nxt_mcs_goto

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

Как инициализировать mom_nxt - но по английски....

Initializing 'mom_nxt_...' Events

To initialize the "mom_nxt_..." events you must first set

"mom_kin_read_ahead_next_motion" then reset the kinematics. Place the

following custom commands in a text file, then import them into Post Builder.

Place "PB_CMD_custom_command" at the head of the "Start of Program" event.

This will set "mom_kin_read_ahead_next_motion" and reset the kinematics.

Place the sample command "PB_CMD_custom_command_1", which outputs

"mom_nxt_tool_axis", in an appropriate event such as the "Linear" under

the "Motion" events.

#=============================================================

proc PB_CMD_custom_command { } {

#=============================================================

global mom_kin_read_ahead_next_motion

set mom_kin_read_ahead_next_motion 1

MOM_reload_kinematics

}

#=============================================================

proc PB_CMD_custom_command_1 { } {

#=============================================================

global mom_nxt_tool_axis

MOM_set_seq_off

MOM_output_literal "[format "%3.4f" $mom_nxt_tool_axis(0)],[format "%3.4f"

$mom_nxt_tool_axis(1)],[format "%3.4f" $mom_nxt_tool_axis(2)]"

MOM_set_seq_on

}

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

Как инициализировать mom_nxt - но по английски....

Супер! Стало понятно, почему оно работает. :-)

А по шифрованию постпроцессора нет какого-нибудь описания или ссылки, а то ничего не удалось накопать... :g::sad:

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

Не стал новую ткму открывать, и без того много. Всё равно речь пойдёт о пост билдере.

Сталкнулся с проблемой. Есть такая хорошая вещь на станке, как тормаза приводов (4ая и 5ая ось как правило) выключается она NX-ом на ура, вот толко правда если указать в Machine Control -> Clamp. Можно ли как то заставить пост писать эти злосчастные М10, 11, 12, 13 автоматически, без предварительной в NX? Прочтение хелпа результатов не дало. Пробовал снести условия запуска (if {бла-бла-бла}{.... set mom_clamp_status "AUTO"...} <=Пример не полный, написан "для виду") mom_auto_clamp и всё что с ним связано. Результат отрецательный.

Благодарен за любую полезную информацию.

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

Зачем такие сложности!? Хочешь вывести M10 - так и выведи ее в нужном месте (начало операции, например) тупо как текст, а в конце операции разблокируй оси. Или наоборот...

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

Можно было бы так, но стол слабый (HAAS TR160). Тем более, если есть такакя возможность. Может и выпендрёж, но хочется, чтобы делать поминимуму, а что надо пост сам бы дописывал. Лень - двигатель прогресса! :)

Кстати, а что это за файл с User Defined Event (UDE)? На него ссылается хелп. Существует ли он по дефаулту или надо с нуля самлму писать?

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

Можно было бы так, но стол слабый (HAAS TR160). Тем более, если есть такакя возможность. Может и выпендрёж, но хочется, чтобы делать поминимуму, а что надо пост сам бы дописывал. Лень - двигатель прогресса! :)

Кстати, а что это за файл с User Defined Event (UDE)? На него ссылается хелп. Существует ли он по дефаулту или надо с нуля самлму писать?

<там где стоит NX>\MACH\resource\user_def_event файл называется ude.cdl, в него можно добавить собственные постпроцессорные команды, которые потом будешь обрабатывать.
Ссылка на сообщение
Поделиться на других сайтах

Нет. Этот файл является предустановочным для Machine Control. Пробывал там писать, но все изменения заметил только в вышепомянутой закладке.

Так же попробывал добавить в событие начала программы блок custom command "before_output" где установил set $mom_clamp_status "ON". Может стоит в эту степь копать?

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

Нет. Этот файл является предустановочным для Machine Control. Пробывал там писать, но все изменения заметил только в вышепомянутой закладке.

Проверь переменную UGII_CAM_USER_DEF_EVENT_DIR. Там должен лежать файл ude.cdl.

Если пишеш постпроцессор в Посбилдере, то смотри вкладку N/C Data Definitions - Other Data Elements

Так же попробывал добавить в событие начала программы блок custom command "before_output" где установил set $mom_clamp_status "ON". Может стоит в эту степь копать?

Пример команды заданной пользователем

EVENT KIT_Probe_BORE_BOSS

{

UI_LABEL "Auto Probe BORE or BOSS"

CATEGORY Mill Drill

PARAM command_status

{

TYPE o

DEFVAL "Active"

OPTIONS "Active","Inactive","User Defined"

UI_LABEL "Status"

}

Синтаксис смотри в документации.

Применение постпроцессорных команд в постбилдере уже писалось на этом форуме поищи.

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

Разобрался сам. Не стал ничего писать в UDE. Просто определил все неодходимые переменные в модуле "Start of the program" - работает! :)

Спасибо за совет.

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

avd и остальные, кто знает, а как можно в

PARAM cutcom_adjust_register

{

TYPE i

DEFVAL "0"

TOGGLE On

UI_LABEL "Adjust Register"

}

а именно в строке DEFVAL поставить сразу номер инструмента? Иными словами: выбрал инструмент, зашёл в заклатку Управление Станком - Компенсация и там уже будет номер инструмента? - это UG Open? или всё же можно туда переменную поставить что-то типа $mom_tool_number?

Заранее благодарю!

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

Или чтобы в

global mom_contact_status

global mom_tool_number

if {[info exist mom_contact_status]} {

if {$mom_contact_status == "ON"} {

global mom_sys_initial_cutcom

if {[info exist mom_sys_initial_cutcom]} {

if {$mom_sys_initial_cutcom == "ON"} {

MOM_force once X Y Z I J K G_cutcom D

unset mom_sys_initial_cutcom

}

}

}

}

D был номером инструмента

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

Или чтобы в

global mom_contact_status

global mom_tool_number

if {[info exist mom_contact_status]} {

if {$mom_contact_status == "ON"} {

global mom_sys_initial_cutcom

if {[info exist mom_sys_initial_cutcom]} {

if {$mom_sys_initial_cutcom == "ON"} {

MOM_force once X Y Z I J K G_cutcom D

unset mom_sys_initial_cutcom

}

}

}

}

D был номером инструмента

А не проще перед выводом D, присвоить ему номер инструмента?

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

А не проще перед выводом D, присвоить ему номер инструмента?

Этот D задаётся именно вручную из Machine Control. Он обходит значение, заданное в свитке Tool - Output. Беда в том, что не могу найти этот блок, где Пост берёт указанный номер инструмента. Разумеется, Вы правы - проще. Вот от как это сделать?

set D Text["D$mom_tool_number"] ??

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

Добрый день!

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

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

BLOCK_TEMPLATE linear_move

{

G_cutcom[$mom_sys_cutcom_code($mom_cutcom_status)]\opt

G_plane[$mom_sys_cutcom_plane_code($mom_cutcom_plane)]\opt

G_motion[$mom_sys_linear_code]

G_mode[$mom_sys_output_code($mom_output_mode)]

X[$mom_pos(0)]

Y[$mom_pos(1)]

Z[$mom_pos(2)]

F[$feed]

S[$mom_spindle_speed]

D[$mom_tool_number]\opt

M_spindle[$mom_sys_spindle_direction_code($mom_spindle_direction)]\opt

M_coolant[$mom_sys_coolant_code(ON)]\opt

}

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

Добрый день!

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

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

BLOCK_TEMPLATE linear_move

{

G_cutcom[$mom_sys_cutcom_code($mom_cutcom_status)]\opt

G_plane[$mom_sys_cutcom_plane_code($mom_cutcom_plane)]\opt

G_motion[$mom_sys_linear_code]

G_mode[$mom_sys_output_code($mom_output_mode)]

X[$mom_pos(0)]

Y[$mom_pos(1)]

Z[$mom_pos(2)]

F[$feed]

S[$mom_spindle_speed]

D[$mom_tool_number]\opt

M_spindle[$mom_sys_spindle_direction_code($mom_spindle_direction)]\opt

M_coolant[$mom_sys_coolant_code(ON)]\opt

}

категорически поддерживаю

а именно в строке DEFVAL поставить сразу номер инструмента? Иными словами: выбрал инструмент, зашёл в заклатку Управление Станком - Компенсация и там уже будет номер инструмента? - это UG Open? или всё же можно туда переменную поставить что-то типа $mom_tool_number?

Пост не влияет на операцию, Пост перелопачивает события
Ссылка на сообщение
Поделиться на других сайтах

К сожалению предложенный вариант не привёл к желаемому результату.

Может имеет смысл создать какую-либо переменную с необходимами данными и тогда её пусть выводит? кстати если убрать D и MOM_force, а вместо него воткнуть D_1 завязанный на номер инструмента то Г-код будет вообще вот таким:

G01 G41 X0. Y0. D00 D01 - регистр 0, инструмент 1

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

У меня, извиняюсь за ругательство, "не понос, так золотуха..."

Уважаемые знатоки, внимание, вопрос:

Корректор перед запуском проходит "проверку на вшивость"

if{ [info exist mom_cutcom_mode] && ![ string compare mom_cutcom_mode "Left" ] } { ....

Проблема в том, что после завершения прохода с коррекцией, корректор не выключается, даже с принудительным выключением в Machine Control -> End of Path. Считаю, что проблема в том, что раз выполнив условие пост до конца считает, что оно выполняется. Подскажыте, как можно заставить пост проверять, не изменился ли статус коррекции?

П.С. unset mom_cutcom_mode не проходит.

Заранее благодарен.

С уважением.

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

попробывал записать X (user defined) с переменной $mom_nxt_pos(0) в Event: Cutcom on. Выдал ошибку. Что не верно? Существует ли такая функция. Хотя она и есть в списке переменных поста, её нет в переменных движения (см. хелп)

ответ можно найти <noindex>здесь</noindex>. Там правда по-английски...

В общем, нужно сделать следующее:

1. Создаешь команду пользователя (в одноименной вкладке PostBuilder'а), называешь ее, например, PB_CMD_read_ahead. Заполняешь ее таким содержимым:

global mom_kin_read_ahead_next_motion

set mom_kin_read_ahead_next_motion 1

MOM_reload_kinematics

Тем самым ты даешь разрешение на использование переменных, которые читают следующее перемещение по осям (set mom_kin_read_ahead_next_motion 1) и перезагружаешь кинематику (MOM_reload_kinematics)

2. Помещаешь заданную команду (процедуру) в тело начала программы - в PostBuider'е вкладка "Последовательность в начале программы".

3. Теперь можешь использовать любую из переменных массива mom_nxt_pos. X это mom_nxt_pos(0), Y - mom_nxt_pos(1), Z mom_nxt_pos(2).

enjoy :smile:

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • Orchestra2603
      Ну, предлагаю такой подход... Не знаю, может это все слишком очевидно, ну хотя бы это по полочкам разложить - тоже полезно.   Вот допустим, есть у вас электродинамический вибровозбудитель. Он как устроен? Есть генератор переменного тока. Он встроен в электрическую цепь, и там есть свои электрические элементы. Но главное, там есть катушка индутивности намонтанная на трубу, а внутри нее подвижная масса. На подвижной массе еще одна катушка, и у той по обмотке течет еще какой-то свой постоянный ток. Когда ток проходит по обмотке трубы, то внутри возникает магнитное поле, а оно действует на ток внутри трубы протекающий по подвижной катушке, и возникает сила Ампера, котоая приводит в движение массу. Сила эта пропорциональна магнитной индукция, а та в свою очередь силе тока (как в подвижной, таки неподвижной катушке, но нас интересует ток в конутре, который переменный). Т.е. ток в контуре, где стоит катушка, выступает в роли внешней возбуждающей силы для подвижной массы. Возможны конечно нюансы и некоторые вариации, но суть вроде как такая.   Если электрическая цепь сложная с кучей контуров, и там натыкано много конденсаторов, резисторов и инудктивностей в каждом контуре, то распределение токов по контурам находится через решение системы линенынх дифференциальных уравнений второго порядка.  Ну, т.е. там по сути тоже куча собственных частот, каждая из которых описывает свой электрический резонансов. Можно также решать задачу на СЗ, и будут собственные вектора, которые описывают соотношения амплитуд и фаз токов в раных контурах, и собственные значения, которые соотвтетсвуют каким-то резонансам. Тогда ЭДС на генераторе выступает в роли внешней силы. В зависимости от распределения элементов и контуров в цепи коэффициент усиления между ЭДС на генераторе и перемещением подвижной массы в трубе в определенном контуре будет меняться. Типа как АЧХ получается, только чисто "электрическая". Это АЧХ чистемы ЭМС, если в вашей терминологии. В параметры этой АЧХ будут входить только параметры электрических элементов схемы.   Можно дальше представить себе, что в каждом контуре цепи воткнут свой генератор, и у каждого своя амплитуда тока и фазовый сдвиг, но всех у всех одна частота. И пускай в каждом контуре есть своя подвижная масса внутри какой-то своей неподвижной катушки. Получается, что есть некоторый вектор правых частей, собранный из ЭДС генераторов в разных контурах, а перемещения подвижных масс в разных контурах - это вектор отклика. Т.е. будет уже матрица частотных харкатеристик (системы ЭМС, если в вашей терминологии), а отклик подвижных масс и внешние возбуждения, будет описываться соотвтетсвующими векторами. В зависимости от того, как распределены амплитуды и фазы ЭДС генераторов по контурам, и какая выбрана частота возбуждения, могут проявляться или не проявляться какие-то резонансы (точно также будет какой-то коэффициент участия, коэффициент динамичности и т.д.). Если в каком-то контуре проявляется резонанс, то в этом контуре на этой частоте будет большой коффициент динамичности по амплитуде тока в этом контуре, и будет пропорционально увеличиваться амплитуда отклика по перемещениям соотвтетсвующей подвижной массы.   Теперь представим, что каждая i-я из этих подвижных масс соединяется с контрукцией - системой МС. Тогда получается так, что да, ток в i-м контуре зависит от электрической АЧХ системы ЭМС, и это влияет на механическую силу, действующую на пожвижную массу в i-м контуре, но вместе с этим свойства механической системы МС могут быть такими, что на этой частоте даже такая увеличенная амплитуда силы в не возбуждает большого механичского оклика (перемещения) в этой конкртеной i-й точке крепления с конструкцией. Т.е. в данном случае, получается, что вы задаете вектор ЭДС генераторво на входе, это все дело умножается на электрическую АЧХ системы ЭМС, и получается вектор механических сил Ампера, действующих на каждую из точек крепления. А дальше этот вектор сил умножается на АЧХ системы МС, чтобы получить вектор отклика конструкции.   Т.е. получается так, что две системы вообще соединяются последвательно: выход из первой служит входом для второй, и их АЧХ разделяются спокойно. В итоге, выходит, что АЧХ можно просто переменожить, чтобы получить итоговую АЧХ суммарной системы ЭМС+МС. Так получается из-за того, что электромагнитное взаимодействие создает механическую силу и влияет на механическое движение, но механическое движение не влиет на электромагнитные взаимодействия в цепи. Так ведь?   Такие, вот, мысли. Сам вообше не спец ни разу по электромагнитизму, так что поправьте, если где-то ошибаюсь.
    • zedowl
      все, разобрался сам, просто поставил глубокое сверление, а не простое, поменял цикл, вместо 81 стал 83, и там Q добавилось, я так понял с размеров диаметра сверла(но это не точно), и в 83 цикле cld17 умножил на 1000
    • gudstartup
      @Malsev прежде чем куда то что то ставить сравнивайте даташит или maininf.txt чтобы понять насколько перед вами аналогичная система.
    • zedowl
      разобрался какой параметр должен поменяться, у меня 81 цикл, но мне нужен другой, как выбрать другой цикл? мне подсказали, что нужно его выбрать в настройках операции, но я не знаю где это  
    • zedowl
      нет, не новость я даже не знаю какой параметр в коде должен меняться, у меня задание, либо из мм в микроны, либо наоборот   как понять какой цикл у меня выводится в программе? я найду этот цикл в EXTCYCLE и добавлю умножение или деление на 1000
    • maxx2000
      для тебя будет новостью что 1 мм это 1000микрон(0,001мм)? Т.е. если у тебя после запятой 3 знака то это уже в микронах.   
    • zedowl
      Я сделал в sprutcam простецкую модель, добавил траекторию сверления и не могу разобраться с циклами. Я совсем в этом не разбираюсь, у меня дипломный проект, помогите пожалуйста) У меня в коде выводится не тот цикл, я не могу найти тот параметр в циклах с 81 по 87
    • astire721
    • maxx2000
      @davidovka только макросы кнопок стандартных видов, но они были всегда. В 11 версии макросы вынесли в отдельный файл, понаблюдаю.  так то я все настройки сразу сохраняю в стартовый config.pro
    • Anatlijj8
      Добрый день хочу автоматизировать больше кд на лестницы и балконные ограждения.
×
×
  • Создать...