NX二次开发-通过点击按钮来控制显示工具条
NX9+VS2012
1.打开D:\Program Files\Siemens\NX 9.0\UGII\menus\ug_main.men
找到装配和PMI,在中间加上一段
TOGGLE_BUTTON LSYTOOLS
LABEL 自定义工具箱
BITMAP cam_new_tool
ACTIONS LSYTOOLS

2.打开D:\Program Files\Siemens\NX 9.0\UGII\menus\profiles\All\rbn_application.rtb
找到建模,在前面加上一段
BUTTON LSYTOOLS

在D:\Program Files\Siemens\NX 9.0里新建一个文件夹LSYTOOLS
在LSYTOOLS创建两个文件夹Application和Startup

在Startup里创建菜单文件LSYTOOLS.men

写入内容如下
VERSION
EDIT UG_GATEWAY_MAIN_MENUBAR AFTER UG_HELP
CASCADE_BUTTON LSYTools
LABEL 自定义工具箱
END_OF_AFTER MENU LSYTools BUTTON LSYDrawTools
LABEL 图纸工具
BITMAP border_zones
ACTIONS LSYDrawTools BUTTON LSYStlPdfTools
LABEL 导出STL PDF工具
BITMAP true_shade
ACTIONS LSYStlPdfTools BUTTON LSYExcelTools
LABEL 导入EXCEL创建曲线
BITMAP spreadsheet
ACTIONS Test1 BUTTON LSYUpdateDrawViewTools
LABEL 切换到工程图工具
BITMAP appl_drafting
ACTIONS Update_Draw_View BUTTON LSYWrite_Dim_NameTools
LABEL 工程图改尺寸名字工具
BITMAP edit_text
ACTIONS Write_Dim_Name BUTTON OpenWenJianJia
LABEL 打开当前part文件夹
BITMAP fileopen
ACTIONS OpenWenJianJia BUTTON CycleSetExp
LABEL 批量修改表达式
BITMAP equals
ACTIONS CycleSetExp BUTTON OpenTxtWriteExp
LABEL 记事本编辑if/else表达式
BITMAP rename
ACTIONS OpenTxtWriteExp BUTTON CreateExpGroup
LABEL 创建表达式组
BITMAP styler_group_box
ACTIONS CreateExpGroup BUTTON CreateFeatureGroup
LABEL 创建特征组
BITMAP folder_new
ACTIONS CreateFeatureGroup BUTTON CycleDeleteTuKuang
LABEL 批量删除图框
BITMAP delete
ACTIONS CycleDeleteTuKuang BUTTON CreateHelp
LABEL 自定义1
BITMAP styler_string
ACTIONS CreateHelp BUTTON CreateHelpRedBlock
LABEL 自定义2
BITMAP curve_section
ACTIONS CreateHelpRedBlock END_OF_MENU
在Application里创建LSYTOOLS.rtb功能区工具栏,写入内容如下。

TITLE 自定义工具箱
VERSION BEGIN_GROUP 图纸工具
BUTTON LSYDrawTools
BUTTON LSYUpdateDrawViewTools
RIBBON_STYLE MEDIUM_IMAGE_AND_TEXT
BUTTON LSYWrite_Dim_NameTools
RIBBON_STYLE MEDIUM_IMAGE_AND_TEXT
BUTTON CycleDeleteTuKuang
RIBBON_STYLE MEDIUM_IMAGE_AND_TEXT
END_GROUP BEGIN_GROUP 表达式工具
BUTTON CycleSetExp
BUTTON CreateExpGroup
RIBBON_STYLE MEDIUM_IMAGE_AND_TEXT
BUTTON OpenTxtWriteExp
RIBBON_STYLE MEDIUM_IMAGE_AND_TEXT
END_GROUP BEGIN_GROUP 帮助图工具
BUTTON CreateHelp
BUTTON CreateHelpRedBlock
END_GROUP BEGIN_GROUP 建模工具
BUTTON OpenWenJianJia
BUTTON CreateFeatureGroup
RIBBON_STYLE MEDIUM_IMAGE_AND_TEXT
BUTTON LSYStlPdfTools
RIBBON_STYLE MEDIUM_IMAGE_AND_TEXT
BUTTON LSYExcelTools
RIBBON_STYLE MEDIUM_IMAGE_AND_TEXT
END_GROUP
在创建LSYTOOLS.tbr经典工具栏,写入内容如下。
TITLE 自定义工具箱
VERSION
BUTTON LSYDrawTools
BUTTON LSYStlPdfTools
BUTTON LSYExcelTools
BUTTON LSYUpdateDrawViewTools
BUTTON LSYWrite_Dim_NameTools
BUTTON OpenWenJianJia
BUTTON CycleSetExp
BUTTON OpenTxtWriteExp
BUTTON CreateExpGroup
BUTTON CreateFeatureGroup
BUTTON CycleDeleteTuKuang
BUTTON CreateHelp
设置环境变量
把D:\Program Files\Siemens\NX 9.0\LSYTOOLS,路径复制到D:\Program Files\Siemens\NX 9.0\UGII\menus\custom_dirs.dat里,
打开粘贴到最后一行

下面去VS里写代码
#include <uf.h>
#include <uf_ui.h>
#include <uf_mb.h> UF_initialize(); static UF_UI_toolbar_id_t DEMP_tbr_id = NULL;
static UF_UI_ribbon_id_t ribbon_id = NULL; int demoToggleBtn_id;
UF_MB_state_t demo_btn_state;
UF_MB_ask_button_id("LSYTOOLS", &demoToggleBtn_id);//获取按钮的ID
UF_MB_ask_toggle_state(demoToggleBtn_id, &demo_btn_state);//获取切换按钮的当前状态
if (UF_MB_ON == demo_btn_state)
{
if (DEMP_tbr_id == NULL)
{
UF_UI_create_toolbar("LSYTOOLS.tbr", , &DEMP_tbr_id);//创建经典工具栏
UF_UI_set_toolbar_vis(DEMP_tbr_id, );//设置经典工具栏的可见性 UF_UI_create_ribbon("LSYTOOLS.rtb", , &ribbon_id);//创建功能区工具栏
UF_UI_set_ribbon_vis(ribbon_id, );//设置功能区工具栏的可见性 }
}
else
{
UF_UI_remove_toolbar(DEMP_tbr_id);//删除经典工具栏
UF_UI_remove_ribbon(ribbon_id);//删除功能区工具栏
DEMP_tbr_id = NULL;
ribbon_id = NULL;
} UF_terminate(); Caesar卢尚宇
2019年7月15日
把编译出来的DLL放到D:\Program Files\Siemens\NX 9.0\LSYTOOLS\Application里,名字改为LSYTOOLS.dll

打开UG

NX二次开发-通过点击按钮来控制显示工具条的更多相关文章
- NX二次开发-UFUN获取工程图视图边界线是否显示UF_DRAW_ask_border_display
#include <uf.h> #include <uf_draw.h> #include <uf_ui.h> UF_initialize(); logical b ...
- NX二次开发-NX+VS写代码设断点调试技巧
在做NX二次开发的时候写完代码,编译可以通过,但是执行的时候却没有反应,或者得到的结果不对,说明肯定有地方传值出错了.我在查找代码错误的时候有几种方法:1.uc1601打印函数输入和输出的值看对不对. ...
- NX二次开发-基于MFC界面的NX对Excel读写操作(OLE方式(COM组件))
NX二次开发API里没有对EXCAL读写操作的相关函数,市面上有很多种方法去实现,比如UFUN调KF,ODBC,OLE(COM组件)等等.这里我是用的OLE(COM组件)方式去做的,这种在VC上创建的 ...
- NX二次开发-基于MFC界面对话框与NX交互的开发
打开VS2013 点击新建,选择MFC DLL 点击确定 点下一步 什么都不改,直接点完成 进来之后先编译一下,看是否编译成功 打开项目属性,更改这几处 $(UGII_BASE_DIR)\ugopen ...
- NX二次开发-BlockUI对话框嵌套MFC对话框制作进度条
半年前在一些QQ群看到有大神NX二次开发做出了进度条,那个时候我还不会弄,也不知道怎么弄得,后来断断续续得研究了一下,直到今天我把它做出来了.内心还是很喜悦的!回想自己这两年当初从没公司肯给我做NX二 ...
- NX二次开发-UDO用户自定义对象(UFUN)【持续完善】
每当提起UDO总是会让我想起大专毕业那会失业找工作,后来有个宝贵机会去了软件公司上班,拿到了我人生中的第一个NX二次开发项目,一个关于测量汽车前后左右摄像头的项目.当时那个项目就用到了UDO,对于只看 ...
- C# NX二次开发环境搭建
在网上看到一篇C#二次开发环境搭建的文章:NX二次开发-使用NXOPEN C#手工搭建开发环境配置 ,写得非常好.我按照文章操作,过程中遇到几个问题,把问题分享给大家,希望对各位有帮助. 注意三点: ...
- 【NX二次开发】Block UI 指定点
属性说明 属性 类型 描述 常规 BlockID String 控件ID Enable Logical 是否可操作 Group ...
- 【NX二次开发】Block UI 指定矢量
属性说明 属性 类型 描述 常规 BlockID String 控件ID Enable Logical 是否可操作 Group ...
随机推荐
- 75. InputStreamReader和OutputStreamWriter(转换流--字节流转换成字符流)
转换流: InputStreamReader 输入字节流转换成输入字符流OutputStreamWriter 输出字节流转换成输出字符流 总结:就是字节流转换成字符流,但是不能字节流转换成字节流 ...
- mac终端命令--自动补全
1.打开nano编辑器 输入命令 nano .inputrc,回车,打开nano编辑器 2.在nano编辑器中输入如下命令: set completion-ignore-case on set sho ...
- jQuery冒泡事件阻止
JQuery 提供了两种方式来阻止事件冒泡. 方式一:event.stopPropagation(); $("#div1").mousedown(function(event){ ...
- 2-Harris角点检测
1. 何为角点? 下面有两幅不同视角的图像,通过找出对应的角点进行匹配. 再看下图所示,放大图像的两处角点区域: 我们可以直观的概括下角点所具有的特征: >轮廓之间的交点: >对于同一场景 ...
- DesktopLoader服务程序
program DesktopLoader; //{$APPTYPE CONSOLE} uses Windows,WinSvc,ShellApi; var s:String; iDesktops,jD ...
- Go语言基础:make,new, len, cap, append, delete方法
前面提到不少Go的内建函数,这篇文章学习下如何使用.. make 先拿 make 开刀,可是一开始我就进入了误区,因为我想先找到他的源码,先是发现 src/builtin/builtin.go 中 ...
- 关于ACL访问控制的一些问题:AntiACL
@echo off title AntiACL Made By gwsbhqt color 0a reg query "HKU\S-1-5-19" >nul 2>nul ...
- 第一次安装hadoop记录
需求是:安装hadoop连接远程hadoop文件系统.JDK和hadoop需要与集群版本一致 首先去官网下载hadoop http://archive.apache.org/dist/hadoop/c ...
- 【SQL】语句/函数汇总
1.CHARINDEX(短字符A,长字符B) 说明:返回A在B的位置,从1开始,若B中不存在A,则为0 例如: SELECT CHARINDEX('aaaa','abaaaacded') ----- ...
- mail----java发送普通邮件
package com.mail; import java.io.UnsupportedEncodingException; import java.util.Date; import java.ut ...