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

Использование $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 пользователей

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




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