Что значит гетерогенная среда в данном контексте? Это означает, что постпроцессор будет использоваться в разных версиях CAM (Unigraphics).
Очень часто разные подразделения заводов и институтов применяют разные версии CAM. Одни используют NX4 , другие NX7. Все упирается в лицензии, деньги, а также в обученность технологов.
|
|
Например, мне часто надо решить какую то задачу. Задача не архи-сложная, и я знаю,
что применение новых методов и способов обработки не суть важно в решении. Но
подготовка к работе NX6-7.5, моя борьба с его дизайном и настройками, забирает у меня
много времени, в конце - концов это просто нудно. В таких случаях, я просто достаю
из своих запасников UG v18 или v16, rar-архив эдак 160 мб. Распаковка, запуск
лицензионного сервера занимают не больше 5 минут.. И все летает на современных
компьютерах:)))
В таких случаях, у меня встает вопрос совместимости постпроцессоров.
Юниграфика не стоит на месте - она постоянно развивается. Появляются
новые функции, новые возможности, исчезают не оправдавшие себя. Часто,
постпроцессор созданный Вами для NX6-7.5 может начать
выдавать ошибку в NX4. Если Вы планируете использовать
постпроцессор в гетерогенной среде или создаете постпроцессор для неизвестных
машиностроительных заводов - постарайтесь предусмотреть применение постпроцессора в разных версиях Unigraphics.
Посмотрите на таблицу:
Функции\Версии UG | UG v18 | EDS NX4 | Siemens NX6 |
MOM_string_toupper | - | + | + |
MOM_abort_event | - | - | + |
MOM_enable_address | - | - | + |
MOM_disable_address | - | - | + |
... | |||
... | |||
... |
- или + - показывает наличие данной MOM-функции в данной версии Юниграфики.
Также,
проблему могут усугубить появление новых
mom_* -
переменных UG\Post или параметры операций, которые Вы
захотите использовать в своих постпроцессорах.
Как учитывать это?
Сделать это не сложно. Достаточно в событии , скажем [Start of program], присоединить созданную Вами процедуру с примерным содержимым:
#============================================================= proc PB_CMD_mom_version { } { #============================================================= if {[llength [info commands MOM_string_toupper] ]==0} { uplevel #0 { #============================================================= proc MOM_string_toupper { str } { #============================================================= set str1 [ string toupper $str ] return $str1 } } ;# uplevel } if {[llength [info commands MOM_abort_event] ]==0} { uplevel #0 { #============================================================= proc MOM_abort_event { str } { #============================================================= MOM_abort $str return 0 } } ;# uplevel } ###### и так далее... return 0 }
Учет применения новых mom_* - переменных UG\Post или параметры операций, следует проводить через стандартную конструкцию Tcl:
if {![info exists mom_*]} { ; # определяем mom_* } или библиотечную функцию UG\Post Unigraphics if {![hiset mom_*]} { ; # определяем mom_* }
Copyright © 2001—2009 че