UG/NX10.0二次开发 - 菜单与工具条(学习笔记)

概述

一、步骤

  • 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后作为位图控件名称。
  • 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名称创建文件夹,把程序放置到相应文件夹下即可。
  • 8
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
《基于UG NX系统的二次开发》和《深入阐述了UG二次开发工具UG开发环境的设置、菜单工具条的编写、UG对话框的制作、零件参数化系统的开发、MFC及数据库开发技术在UG开发中的融入,并综合应用前述开发方法及工具,以渐开线斜齿轮参数化设计、齿轮仿真加工系统和UG平台上模型文件信息管理系统为例,阐述了系统的开发过程,并公开了源代码,使读者能够快速掌握UG二次开发与数据库技术相结合的开发精髓,提高二次开发的能力,以满足工程实际开发的需要。》这两本书提供了关于UG/NX二次开发机械知识的详细介绍和实际应用。 这些书包含了UG/NX二次开发的基本知识、方法和技术,如二次开发的运行模式、项目的创建方法、开发流程,编程接口的约定,对象、属性、表达式和链表操作,用户对话框、菜单工具条的创建技术,日志录制和回放,外部数据源的访问方法,以及零件设计、装配设计和工程图导出等。这些书还提供了大量的开发实例,帮助读者解决实际问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [【社区图书馆】UG\NX二次开发书籍推荐](https://blog.csdn.net/WangPaiFeiXingYuan/article/details/130296879)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不敲代码de小猿同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值