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二次开发-通过点击按钮来控制显示工具条的更多相关文章

  1. NX二次开发-UFUN获取工程图视图边界线是否显示UF_DRAW_ask_border_display

    #include <uf.h> #include <uf_draw.h> #include <uf_ui.h> UF_initialize(); logical b ...

  2. NX二次开发-NX+VS写代码设断点调试技巧

    在做NX二次开发的时候写完代码,编译可以通过,但是执行的时候却没有反应,或者得到的结果不对,说明肯定有地方传值出错了.我在查找代码错误的时候有几种方法:1.uc1601打印函数输入和输出的值看对不对. ...

  3. NX二次开发-基于MFC界面的NX对Excel读写操作(OLE方式(COM组件))

    NX二次开发API里没有对EXCAL读写操作的相关函数,市面上有很多种方法去实现,比如UFUN调KF,ODBC,OLE(COM组件)等等.这里我是用的OLE(COM组件)方式去做的,这种在VC上创建的 ...

  4. NX二次开发-基于MFC界面对话框与NX交互的开发

    打开VS2013 点击新建,选择MFC DLL 点击确定 点下一步 什么都不改,直接点完成 进来之后先编译一下,看是否编译成功 打开项目属性,更改这几处 $(UGII_BASE_DIR)\ugopen ...

  5. NX二次开发-BlockUI对话框嵌套MFC对话框制作进度条

    半年前在一些QQ群看到有大神NX二次开发做出了进度条,那个时候我还不会弄,也不知道怎么弄得,后来断断续续得研究了一下,直到今天我把它做出来了.内心还是很喜悦的!回想自己这两年当初从没公司肯给我做NX二 ...

  6. NX二次开发-UDO用户自定义对象(UFUN)【持续完善】

    每当提起UDO总是会让我想起大专毕业那会失业找工作,后来有个宝贵机会去了软件公司上班,拿到了我人生中的第一个NX二次开发项目,一个关于测量汽车前后左右摄像头的项目.当时那个项目就用到了UDO,对于只看 ...

  7. C# NX二次开发环境搭建

    在网上看到一篇C#二次开发环境搭建的文章:NX二次开发-使用NXOPEN C#手工搭建开发环境配置 ,写得非常好.我按照文章操作,过程中遇到几个问题,把问题分享给大家,希望对各位有帮助. 注意三点: ...

  8. 【NX二次开发】Block UI 指定点

    属性说明 属性   类型   描述   常规           BlockID    String    控件ID    Enable    Logical    是否可操作    Group    ...

  9. 【NX二次开发】Block UI 指定矢量

    属性说明 属性   类型   描述   常规           BlockID    String    控件ID    Enable    Logical    是否可操作    Group    ...

随机推荐

  1. 手机号码格式验证和 FASTDFS 工具类

    常见大陆和香港号码格式验证 import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.regex ...

  2. 数据结构(c语言版,严蔚敏)第2章线性表

    弟2章线性表

  3. Vue学习笔记【12】——过滤器

    概念:Vue.js 允许你自定义过滤器,可被用作一些常见的文本格式化.过滤器可以用在两个地方:mustache 插值和 v-bind 表达式.过滤器应该被添加在 JavaScript 表达式的尾部,由 ...

  4. Angular.js分页代码

                $scope.reloadList=function(){                             $scope.findPage( $scope.pagina ...

  5. Linux下安装PHP的mcrypt扩展

    首先下载,并安装 libmcrypt-2.5.8.tar.gz 下载地址: http://sourceforge.net/project/showfiles.php?group_id=87941&am ...

  6. php中正则表达式总结(不容错过)

    php中正则表达式总结(不容错过) 一.总结 一句话总结: 无论js,php,java,python里面中的正则都是差不多一样的,所以用点脑子 用到正则的地方很多,比如 nginx的配置文件 1.ph ...

  7. Dubbo入门到精通学习笔记(十一):Dubbo服务启动依赖检查、Dubbo负载均衡策略、Dubbo线程模型(结合Linux线程数限制配置的实战分享)

    文章目录 Dubbo服务启动依赖检查 Dubbo负载均衡策略 Dubbo线程模型(结合Linux线程数限制配置的实战分享) 实战经验分享( ** 属用性能调优**): Dubbo服务启动依赖检查 Du ...

  8. 利用爬虫爬取指定用户的CSDN博客文章转为md格式,目的是完成博客迁移博文到Hexo等静态博客

    文章目录 功能 爬取的方式: 设置生成的md文件命名规则: 设置md文件的头部信息 是否显示csdn中的锚点"文章目录"字样,以及下面具体的锚点 默认false(因为csdn中是集 ...

  9. C++——函数及调用

    1.函数调用:实参初始化形参:控制权交给被调函数 2.函数返回(return语句):返回return中的值:控制权交回主函数 3.参数传递   传值 传引用 传指针 初始值 不变,拷贝给形参 可变,形 ...

  10. 函数的四种调用模式.上下文调用.call.apply

    闭包:函数就是一个闭包,一个封闭的作用域;         返回函数,要返回多个函数就用一个对象封装一下,         立即执行函数+return 回调函数   JS动态创建的DOM,不会被搜索引 ...