概述
一、步骤
- 1、菜单与工具条;
- 2、UI界面;
- 3、应用程序。
二、开发语言
- 1、C、C++:较难,适合专业人员研究;
- 2、GRIP,全称Graphics Interactive Programming(图形交互编程):比较简单,但UI界面是NX4以前的版本,操作繁琐并且停止更新;
- 3、.net、JAVA:适合有一定编程基础,但不精通人员研究;
- 4、SNAP,全称Simple NX Application Programming:功能不是很强大,但在不断更新,未来可能替代GRIP;
- 5、KF,全称Knowledge Fusion知识融合,上手容易,精通难;
- 6、Python:上手容易,但教程少。
菜单与工具条
一、菜单
- 1、UG实例:路径“D:\Software\NX10.0\NX\UGII\menus”下的.men文件;
- 2、GC工具箱实例:路径“D:\Software\NX10.0\NX\LOCALIZATION\prc”下的.men文件;
- 实例:
! ANSI编码格式 ! NX customize menu file //!为注释符 ! VERSION 120 //120:菜单的脚本版本,具体版本号可能不同 EDIT UG_GATEWAY_MAIN_MENUBAR //UG实例中CREATE,后续开发使用EDIT AFTER UG_HELP //关键词:AFTER/BEFORE,UG_HELP为UG标准控件命名,在UG实例ug_main.men中可查看相关控件名称 CASCADE_BUTTON TKL_TOOLS_BTN //TKL_TOOLS_BTN为控件名称 LABEL 合肥工业大学 END_OF_AFTER
- 3、菜单挂靠
- 环境变量:
UGII_VENDOR_DIR 定义第三方二次开发程序的目录
UGII_SITE_DIR 定义用户共用二次开发程序的目录
UGII_USER_DIR 定义用户二次开发程序的目录,推荐
UGII_GROUP_DIR 可以使用 - 方法1:将环境变量添加到:路径“D:\Software\NX10.0\NX\UGII\menus”下的custom_dirs.dat文件尾;
这种方法路径不能存在空格,否则将失效 - 实例1:UGII_USER_DIR = “D:\Software\NX10.0\NX\A_NXTools” //A_NXTools为自己创建的文件夹,存放startup、application文件夹
- 方法2:将环境变量添加到系统环境变量中。
这种方法稳定性更好,推荐 - 实例2:变量名:UGII_USER_DIR;变量值:${UGII_BASE_DIR}\A_NXTools
- 注:若不显示,重启电脑后重试。
- 环境变量:
- 4、子级按钮
VERSION 120 EDIT UG_GATEWAY_MAIN_MENUBAR AFTER UG_HELP CASCADE_BUTTON CN_TOOLS_BTN LABEL 合肥工业大学 END_OF_AFTER MENU CN_TOOLS_BTN //父菜单控件名称 CASCADE_BUTTON CN_DCS_BTN //一级子按钮,CASCADE_BUTTON:存在子按钮 LABEL GC DCS //一级子按钮标签 //CASCADE_BUTTON该类型不能够设置图标 BUTTON XX //BUTTON:不存在子按钮的普通按钮 LABEL XXX BITMAP XXXX //二级子按钮图标 END_OF_MENU MENU CN_DCS_BTN //一级子按钮控件名称 BUTTON GEAR_MODELING_BTN //二级子按钮 LABEL Gear Modeling //二级子按钮标签 BITMAP XXXX //二级子按钮图标 END_OF_MENU
- 5、系统图标使用方法
- 直接获取:
- 工具栏右键,单击定制按钮
- 右键单击工具栏图标,选择更改图标按钮,单击图标名…
- 复制图标名称到BITMAP后作为位图控件名称
- 获取对话框内图标:
- 添加环境变量:PRINT_DIALOG_BITMAP_NAMES=1;
- 方法一(推荐):添加环境变量到路径"D:\Software\NX10.0\NX\UGII"下的ugii_env_ug.dat文件尾;
- 方法二:将环境变量添加到系统环境变量中,变量名:PRINT_DIALOG_BITMAP_NAMES;变量值:1。
- 打开对话框,单击图标按钮后关闭;
- 打开帮助中的日志文件,根据英文翻译查找相对应图标名称;
- 复制图标名称到BITMAP后作为位图控件名称。
- 添加环境变量:PRINT_DIALOG_BITMAP_NAMES=1;
- 直接获取:
- 6、自定义图标使用方法
- 图标大小:特小16x16(.sc.bmp)、小24x24(.lc.bmp)、中32x32(.2s.bmp)、大48x48(.bmp)、超大64x64(.2l.bmp);
- 制作bitmap图片存放到application文件夹下;
- 复制图标名称到BITMAP后作为位图控件名称。
- 7、自定义图标加载路径
- 系统默认路径为application文件夹,若在application文件夹下建立子文件夹需添加环境变量;
- 环境变量:UGII_BITMAP_PATH=${UGII_BASE_DIR}\A_NXTools\application\bitmaps
- 添加到路径"D:\Software\NX10.0\NX\UGII"下的ugii_env_ug.dat文件中UGII_BITMAP_PATH位置;
- 8、图标自适应分辨率
- NX系统中图标大小有特小16x16、小24x24、中32x32、大48x48、超大64x64五个版本;
- 自适应分辨率需要创建与之相对应的五个尺寸图标,分别以如下形式命名:xxx.sc.bmp/xxx.lc.bmp/xxx.2s.bmp/xxx.bmp/xxx.2l.bmp,其中xxx命名相同,仅后缀不同;
- 在程序中"BITMAP xxx"不加后缀即可。
- 9、复选按钮、系统版本、快捷键、分隔线、动态提示、激活状态、选中(默认)状态、搜索+重复列表、同义词、说明、帮助、推断式菜单,实例:
VERSION 120 EDIT UG_GATEWAY_MAIN_MENUBAR AFTER UG_HELP CASCADE_BUTTON CN_MENU_BTN LABEL 合肥工业大学 END_OF_AFTER MENU CN_MENU_BTN CASCADE_BUTTON CN_CB1_BTN //CASCADE_BUTTON型按钮:包含子按钮 LABEL 按钮1 BUTTON CN_CB2_BTN //BUTTON型按钮:不包含子按钮的普通按钮 LABEL 按钮2 BITMAP modeling_checker.bmp NO_REPEAT //单击按钮不显示在重复列表,不设置默认显示 SEPARATOR //分隔线 TOGGLE_BUTTON CN_CB3_BTN //TOGGLE_BUTTON型按钮:复选按钮 LABEL 按钮3 MESSAGE 这是一个提示 //动态提示 ACCELERATOR Alt+3 //快捷键 VALUE ON //默认激活,OFF默认关闭 SENSITIVITY ON //状态设置:ON激活,OFF失效,不能直接跟在LABEL后面 TOGGLE_BUTTON/PLATFORM=(X64WNT) CN_CB4_BTN //PLATFORM=(X64WNT)系统版本设置 LABEL 按钮4 MESSAGE BITMAP assembly_checker.bmp //显示图标,选中状态图标包围方框 SENSITIVITY OFF //不能直接跟在LABEL后面 TOGGLE_BUTTON/PLATFORM=(IX86WNT) CN_CB5_BTN LABEL 按钮5 TOGGLE_BUTTON CN_CB6_BTN //一般顺序 LABEL 按钮6 //标签 TOOLBAR_LABEL //搜索命令列表+重复命令列表标签/工具条标签 MESSAGE //动态提示 SYNONYMS //搜索命令列表同义词 HINT //一些隐藏的命令,需要添加环境变量显示,使用HINT进行说明 HELP/HELP_TCIN //HELP:打开本地帮助文档;HELP_TCIN:打开TC帮助文档 BITMAP //图标 POPUP_LABEL //视图推断式菜单上显示的名字 POPUP_MESSAGE //视图推断式菜单上显示的动态提示 POPUP_LOCATION //视图推断式菜单上命令房子的位置,位置:顺时针12345678 ACCELERATOR //快捷键 VALUE //默认状态 SENSITIVITY //激活设置 ACTIONS //行为 END_OF_MENU ******************************************** SYNONYMS //未知如何使用:搜索命令列表同义词 FOLDED //未知如何使用:菜单项极少使用时,将菜单隐藏起来,在使用时展开
二、工具条
- GC工具箱实例:路径“D:\Software\NX10.0\NX\LOCALIZATION\prc”下的.tbr文件;
- 实例:
TITLE 合肥工业大学 //工具条名称 VERSION 170 //脚本版本号 DOCK TOP //工具条初始停靠位置:TOP上、BOTTOM下、LEFT左、RIGHT右 BUTTON CN_CB2_BTN //.men中按钮控件名称 LABEL //工具条标签 BITMAP //工具条图标 SEPARATOR //分隔线 BEGIN_DROPDOWN droptbr //下拉式工具条 LABEL 下拉式工具条 //下拉式工具条标签(鼠标停留显示) AS_POPUP_MENU //既显示图标又显示文字,否则只显示图标或文字 BUTTON CN_BB1_BTN BUTTON CN_BB2_BTN END_DROPDOWN SEPARATOR BUTTON CN_BB3_BTN
三、高级用法(分模块显示)
- 1、将.men文件拆分成为各个模块下要显示的独立文档,如test_menu_model.men、test_menu_draw.men,并移动到application文件夹下;
- 2、将.tbr文件拆分成为各个模块下要显示的独立文档,如test_menu_model.tbr、test_menu_draw.tbr,文件位置不变;
- 3、在startup文件夹下新建.men文档,控制显示模块,如test_classify.men;
- 实例:
! test_classify.men //控制显示模块 VERSION 120 EDIT UG_GATEWAY_MAIN_MENUBAR MODIFY APPLICATION_BUTTON UG_APP_MODELING //模块控件名称 MENU_FILES test_menu_model.men //要显示的.men文档名称,若要显示多个菜单用空格隔开即可 END_OF_MODIFY MODIFY APPLICATION_BUTTON UG_APP_DRAFTING MENU_FILES test_menu_draw.men END_OF_MODIFY ************************************************** ! test_menu_model.men //application中的.men文档1 VERSION 120 EDIT UG_GATEWAY_MAIN_MENUBAR ! 主菜单 AFTER UG_HELP CASCADE_BUTTON CN_MENU_BTN LABEL 合肥工业大学1 END_OF_AFTER ! 子菜单 MENU CN_MENU_BTN BUTTON CN_CB1_BTN LABEL 按钮1 BUTTON CN_CB2_BTN LABEL 按钮2 BUTTON CN_CB3_BTN LABEL 按钮3 END_OF_MENU ************************************************** ! test_menu_draw.men //application中的.men文档2 VERSION 120 EDIT UG_GATEWAY_MAIN_MENUBAR ! 主菜单 AFTER UG_HELP CASCADE_BUTTON CN_MENU_BTN LABEL 合肥工业大学2 END_OF_AFTER ! 子菜单 MENU CN_MENU_BTN BUTTON CN_CB4_BTN LABEL 按钮4 BUTTON CN_CB5_BTN LABEL 按钮5 BUTTON CN_CB6_BTN LABEL 按钮6 END_OF_MENU ************************************************** ! test_menu_model.tbr //startup中的.tbr文档1 TITLE 合肥工业大学1 VERSION 170 DOCK TOP BUTTON CN_CB1_BTN ! LABEL BITMAP block SEPARATOR BEGIN_DROPDOWN droptbr1 //多个文档中下拉式工具条名称不能相同 LABEL 下拉式工具条1 AS_POPUP_MENU BUTTON CN_CB2_BTN ! LABEL BITMAP cylinder BUTTON CN_CB3_BTN ! LABEL BITMAP cone END_DROPDOWN ************************************************** ! test_menu_draw.tbr //startup中的.tbr文档2 TITLE 合肥工业大学 VERSION 170 DOCK TOP BUTTON CN_CB4_BTN LABEL 按钮4 BITMAP extrude SEPARATOR BEGIN_DROPDOWN droptbr2 //多个文档中下拉式工具条名称不能相同 LABEL 下拉式工具条2 AS_POPUP_MENU BUTTON CN_CB5_BTN LABEL CB5 BITMAP revolution BUTTON CN_CB6_BTN LABEL CB6 BITMAP sphere END_DROPDOWN
- 4、模块控件名称查询方法
- 方法一:信息菜单->定制菜单条->快捷键;
- 方法二:信息菜单->定制菜单条->报告工具->菜单条报告->Standard Items->确定;
- 方法三(推荐):路径"D:\Software\NX10.0\NX\UGII\menus\ug_main.men"文件中的Application Menu下控件名称;
- 5、关键字:不清楚怎么使用,先了解这种写法
APPLICATION_BUTTON/PLATFORM=(PLAT1L,PLAT2...)<button name> LIBRARIES[(/APPEND|/REPLACE)][{library}] MENU_FILES[(/APPEND|/REPLACE)][{menu file}]
四、ACTIONS用法
- 1、系统标准用法:ACTIONS STANDARD,系统内部封装的标准控件行为,通过BUTTON控件ID名称调用对应的方法;
- 2、动态链接库(.dll)、GRIP(.grs)、KF(.dfa)、操作记录(.vb)、宏(.macro)、对话框(.dlg)、UTD文件(.utd)、VBS文件(.vbs)
- 例:ACTIONS xx.dll/.grs/.dfa/.vb/.macro/.dlg/.utd/.vbs,这些文件需存放在application文件夹下;
- 3、执行系统指令,如:
- 打开系统程序:ACTIONS “start xx.exe”
- 打开网页:ACTIONS “start http://www.123.com”
- 打开非系统文件:ACTIONS “start C:\123.txt”,若路径有空格:ACTIONS ““C:\12 3.txt””
- 4、批量执行指令
VERSION 120 EDIT UG_GATEWAY_MAIN_MENUBAR AFTER UG_HELP CASCADE_BUTTON CN_MENU_BTN LABEL 合肥工业大学 END_OF_AFTER MENU CN_MENU_BTN BUTTON CN_CB1_BTN LABEL 按钮1 ACTIONS xx.dll END_OF_MENU MODIFY BUTTON CN_CB1_BTN ACTIONS/PRE start.grx //执行xx.dll之前执行start.grx ! ACTIONS/POST end.grx //执行xx.dll之后执行end.grx ! ACTIONS/REPLACE start.grx xx.dll end.grx //按顺序执行 END_OF_MODIFY
五、Ribbon界面菜单与工具条
- 1、直接制作Ribbon工具条(.rtb),其它工具条添加到该文档中显示
TITLE 合肥工业大学 VERSION 170 GROUP test_ribbon_cascade.csb GROUP test_ribbon_dropdown.ddb ! GROUP test_ribbon_model.tbr //tbr工具条会在经典菜单下显示,使用Group工具条(.grb)代替 ! GROUP test_classic_model.tbr //使用GROUP命令,将经典工具条转换为Ribbon工具条 ! BEGIN_GROUP 合肥工业大学自定义 //添加组,这种模式可单独创建Group工具条(.grb),使.rtb仅作为一个组织文件 ! BUTTON CN_CB1_BTN ! BUTTON CN_CB2_BTN ! BUTTON CN_CB3_BTN ! END_GROUP GROUP test_ribbon_model.gly COLLAPSED TRUE //gallery工具条压缩到一个按钮下 GROUP test_ribbon_group.grb //组工具条
- 2、经典工具条(.tbr)转换为Ribbon工具条
TITLE 合肥工业大学CLASSIC VERSION 170 DOCK TOP BUTTON CN_CB1_BTN RIBBON_STYLE SMALL_IMAGE_AND_TEXT //RIBBON工具条风格 BITMAP block SEPARATOR BEGIN_DROPDOWN droptbr1 LABEL 下拉式工具条1 AS_POPUP_MENU BUTTON CN_CB2_BTN RIBBON_STYLE SMALL_IMAGE_AND_TEXT BITMAP cylinder BUTTON CN_CB3_BTN RIBBON_STYLE SMALL_IMAGE_AND_TEXT BITMAP cone END_DROPDOWN
- 3、下拉式工具条Drop-down(.ddb):
TITLE 合肥工业大学DROPDOWN VERSION 170 BITMAP block //若与第一个按钮BITMAP保持一致,图标将会将跟随按钮切换;否则保持不变 AS_POPUP_MENU //既显示图标又显示文本,PALETTE:只显示图标 BUTTON CN_CB1_BTN BEGIN_DROPDOWN xxx1 DROPDOWN_STYLE AS_POPUP_MENU BUTTON CN_CB2_BTN BUTTON CN_CB3_BTN END_DROPDOWN
- 4、Cascade工具条(.csb):
TITLE 合肥工业大学CASCADE VERSION 170 BITMAP block //与Drop-down不同,该图标保持不变 BUTTON CN_CB1_BTN BUTTON CN_CB2_BTN BEGIN_CASCADE xxx2 BUTTON CN_CB3_BTN END_DROPDOWN
- 5、Gallery工具条(.gly)
TITLE 合肥工业大学GALLERY VERSION 170 CONTEXT_TITLE GALLERY样式 //定制中名称 BITMAP model //更多模式下的图标,即COLLAPSED TRUE模式下的图标 COLUMN_IN_RIBBON 2 //列 COLUMN_IN_POPUP 3 //popup窗口列 GALLERY_STYLE MEDIUM_IMAGE_AND_TEXT //样式 NUMBER_OF_ITEMS 2 //最近使用显示个数 BEGIN_RECENTLY_USED END_RECENTLY_USED BEGIN_GALLERY xxxgly1 LABEL 自定义gly1 //popup窗口名称 BUTTON CN_CB1_BTN BUTTON CN_CB2_BTN BUTTON CN_CB3_BTN END_GALLERY BEGIN_GALLERY xxxgly2 LABEL 自定义gly2 //popup窗口名称 BUTTON CN_CB1_BTN BUTTON CN_CB2_BTN BUTTON CN_CB3_BTN END_GALLERY *************************************************** //.rtb文档 ... GROUP test_ribbon_model.gly COLLAPSED TRUE //将该工具条集成到一个按钮下
- 6、Group工具条(.grb)
TITLE 合肥工业大学GROUP VERSION 170 BUTTON CN_CB1_BTN BUTTON CN_CB2_BTN RIBBON_STYLE SMALL_IMAGE_AND_TEXT BUTTON CN_CB3_BTN RIBBON_STYLE SMALL_IMAGE_AND_TEXT GROUP test_ribbon_model.gly GROUP test_ribbon_model.gly COLLAPSED TRUE *************************************************** //.rtb文档 ... GROUP test_ribbon_group.grb COLLAPSED TRUE //将该工具条集成到一个按钮下
- 7、工具条(.abr):一般直接在系统文件中通过"GROUP 文件名"添加即可;
- 8、分模块显示:application文件夹->profiles文件夹下以模块控件ID名称创建文件夹,把程序放置到相应文件夹下即可。