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

找到建模,在前面加上一段

1 BUTTON LSYTOOLS

在D:\Program Files\Siemens\NX 9.0里新建一个文件夹LSYTOOLS

在LSYTOOLS创建两个文件夹Application和Startup

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

写入内容如下

 1 VERSION 120
2 EDIT UG_GATEWAY_MAIN_MENUBAR
3
4 AFTER UG_HELP
5 CASCADE_BUTTON LSYTools
6 LABEL 自定义工具箱
7 END_OF_AFTER
8
9 MENU LSYTools
10
11 BUTTON LSYDrawTools
12 LABEL 图纸工具
13 BITMAP border_zones
14 ACTIONS LSYDrawTools
15
16 BUTTON LSYStlPdfTools
17 LABEL 导出STL PDF工具
18 BITMAP true_shade
19 ACTIONS LSYStlPdfTools
20
21 BUTTON LSYExcelTools
22 LABEL 导入EXCEL创建曲线
23 BITMAP spreadsheet
24 ACTIONS Test1
25
26 BUTTON LSYUpdateDrawViewTools
27 LABEL 切换到工程图工具
28 BITMAP appl_drafting
29 ACTIONS Update_Draw_View
30
31 BUTTON LSYWrite_Dim_NameTools
32 LABEL 工程图改尺寸名字工具
33 BITMAP edit_text
34 ACTIONS Write_Dim_Name
35
36 BUTTON OpenWenJianJia
37 LABEL 打开当前part文件夹
38 BITMAP fileopen
39 ACTIONS OpenWenJianJia
40
41 BUTTON CycleSetExp
42 LABEL 批量修改表达式
43 BITMAP equals
44 ACTIONS CycleSetExp
45
46 BUTTON OpenTxtWriteExp
47 LABEL 记事本编辑if/else表达式
48 BITMAP rename
49 ACTIONS OpenTxtWriteExp
50
51 BUTTON CreateExpGroup
52 LABEL 创建表达式组
53 BITMAP styler_group_box
54 ACTIONS CreateExpGroup
55
56 BUTTON CreateFeatureGroup
57 LABEL 创建特征组
58 BITMAP folder_new
59 ACTIONS CreateFeatureGroup
60
61 BUTTON CycleDeleteTuKuang
62 LABEL 批量删除图框
63 BITMAP delete
64 ACTIONS CycleDeleteTuKuang
65
66 BUTTON CreateHelp
67 LABEL 自定义1
68 BITMAP styler_string
69 ACTIONS CreateHelp
70
71 BUTTON CreateHelpRedBlock
72 LABEL 自定义2
73 BITMAP curve_section
74 ACTIONS CreateHelpRedBlock
75
76
77 END_OF_MENU

在Application里创建LSYTOOLS.rtb功能区工具栏,写入内容如下。

 1 TITLE 自定义工具箱
2 VERSION 170
3
4 BEGIN_GROUP 图纸工具
5 BUTTON LSYDrawTools
6 BUTTON LSYUpdateDrawViewTools
7 RIBBON_STYLE MEDIUM_IMAGE_AND_TEXT
8 BUTTON LSYWrite_Dim_NameTools
9 RIBBON_STYLE MEDIUM_IMAGE_AND_TEXT
10 BUTTON CycleDeleteTuKuang
11 RIBBON_STYLE MEDIUM_IMAGE_AND_TEXT
12 END_GROUP
13
14
15 BEGIN_GROUP 表达式工具
16 BUTTON CycleSetExp
17 BUTTON CreateExpGroup
18 RIBBON_STYLE MEDIUM_IMAGE_AND_TEXT
19 BUTTON OpenTxtWriteExp
20 RIBBON_STYLE MEDIUM_IMAGE_AND_TEXT
21 END_GROUP
22
23 BEGIN_GROUP 帮助图工具
24 BUTTON CreateHelp
25 BUTTON CreateHelpRedBlock
26 END_GROUP
27
28 BEGIN_GROUP 建模工具
29 BUTTON OpenWenJianJia
30 BUTTON CreateFeatureGroup
31 RIBBON_STYLE MEDIUM_IMAGE_AND_TEXT
32 BUTTON LSYStlPdfTools
33 RIBBON_STYLE MEDIUM_IMAGE_AND_TEXT
34 BUTTON LSYExcelTools
35 RIBBON_STYLE MEDIUM_IMAGE_AND_TEXT
36 END_GROUP

在创建LSYTOOLS.tbr经典工具栏,写入内容如下。

 1 TITLE 自定义工具箱
2 VERSION 170
3 BUTTON LSYDrawTools
4 BUTTON LSYStlPdfTools
5 BUTTON LSYExcelTools
6 BUTTON LSYUpdateDrawViewTools
7 BUTTON LSYWrite_Dim_NameTools
8 BUTTON OpenWenJianJia
9 BUTTON CycleSetExp
10 BUTTON OpenTxtWriteExp
11 BUTTON CreateExpGroup
12 BUTTON CreateFeatureGroup
13 BUTTON CycleDeleteTuKuang
14 BUTTON CreateHelp

设置环境变量

把D:\Program Files\Siemens\NX 9.0\LSYTOOLS,路径复制到D:\Program Files\Siemens\NX 9.0\UGII\menus\custom_dirs.dat里,

打开粘贴到最后一行

下面去VS里写代码

 1 #include <uf.h>
2 #include <uf_ui.h>
3 #include <uf_mb.h>
4
5
6 UF_initialize();
7
8 static UF_UI_toolbar_id_t DEMP_tbr_id = NULL;
9 static UF_UI_ribbon_id_t ribbon_id = NULL;
10
11 int demoToggleBtn_id;
12 UF_MB_state_t demo_btn_state;
13 UF_MB_ask_button_id("LSYTOOLS", &demoToggleBtn_id);//获取按钮的ID
14 UF_MB_ask_toggle_state(demoToggleBtn_id, &demo_btn_state);//获取切换按钮的当前状态
15 if (UF_MB_ON == demo_btn_state)
16 {
17 if (DEMP_tbr_id == NULL)
18 {
19 UF_UI_create_toolbar("LSYTOOLS.tbr", 1, &DEMP_tbr_id);//创建经典工具栏
20 UF_UI_set_toolbar_vis(DEMP_tbr_id, 1);//设置经典工具栏的可见性
21
22 UF_UI_create_ribbon("LSYTOOLS.rtb", 1, &ribbon_id);//创建功能区工具栏
23 UF_UI_set_ribbon_vis(ribbon_id, 1);//设置功能区工具栏的可见性
24
25 }
26 }
27 else
28 {
29 UF_UI_remove_toolbar(DEMP_tbr_id);//删除经典工具栏
30 UF_UI_remove_ribbon(ribbon_id);//删除功能区工具栏
31 DEMP_tbr_id = NULL;
32 ribbon_id = NULL;
33 }
34
35
36 UF_terminate();
37
38 Caesar卢尚宇
39 2019年7月15日

把编译出来的DLL放到D:\Program Files\Siemens\NX 9.0\LSYTOOLS\Application里,名字改为LSYTOOLS.dll

打开UG

NX二次开发-创建经典工具栏UF_UI_create_toolbar的更多相关文章

  1. NX二次开发-删除经典工具栏UF_UI_remove_toolbar

    NX9+VS2012 1.打开D:\Program Files\Siemens\NX 9.0\UGII\menus\ug_main.men 找到装配和PMI,在中间加上一段 TOGGLE_BUTTON ...

  2. NX二次开发-创建功能区工具栏UF_UI_create_ribbon

    NX9+VS2012 1.打开D:\Program Files\Siemens\NX 9.0\UGII\menus\ug_main.men 找到装配和PMI,在中间加上一段 TOGGLE_BUTTON ...

  3. NX二次开发-设置经典工具栏的可见性UF_UI_set_toolbar_vis

    NX9+VS2012 1.打开D:\Program Files\Siemens\NX 9.0\UGII\menus\ug_main.men 找到装配和PMI,在中间加上一段 TOGGLE_BUTTON ...

  4. NX二次开发-删除功能区工具栏UF_UI_remove_ribbon

    NX9+VS2012 1.打开D:\Program Files\Siemens\NX 9.0\UGII\menus\ug_main.men 找到装配和PMI,在中间加上一段 TOGGLE_BUTTON ...

  5. NX二次开发-设置功能区工具栏的可见性UF_UI_set_ribbon_vis

    NX9+VS2012 1.打开D:\Program Files\Siemens\NX 9.0\UGII\menus\ug_main.men 找到装配和PMI,在中间加上一段 TOGGLE_BUTTON ...

  6. NX二次开发-创建(临时)坐标系

    函数:UF_CSYS_create_csys() . UF_CSYS_create_temp_csys() 函数说明:创建坐标系 .创建临时坐标系 用法: #include <uf.h> ...

  7. NX二次开发-创建NX9 NXOpenCPP Wizard开发向导模板

    这篇文章,我在CSDN,在唐工论坛都发过.http://www.nxopen.cn/forum.php?mod=viewthread&tid=2039&highlight=NX9 博客 ...

  8. NX二次开发-创建一个3 x 3矩阵UF_CSYS_create_matrix

    1 NX9+VS2012 #include <uf.h> #include <uf_csys.h> #include <uf_mtx.h> UF_initializ ...

  9. NX二次开发-创建CSYS坐标系UF_CSYS_create_csys

    NX9+VS2012 #include <uf.h> #include <uf_csys.h> #include <uf_mtx.h> UF_initialize( ...

随机推荐

  1. JavaScript常见设计模式梳理

    单例模式 单例模式,顾名思义就是保证每个类都只有一个实例对象. 其实现思路很简单,先判断实例是否存在,如果不存在则创建新的实例返回,如果存在则直接返回该实例. 策略模式 策略模式可以理解为:封装多个可 ...

  2. 关键字this super final static

    this关键字 1.this代表通过当前类实例化成的对象. 2.通过this来获取当前类的属性和方法 3.通过this和区分成员变量和局部变量 4.通过this(参数),调用当前类的构造方法 注意:通 ...

  3. XCode文件状态为 ? 解决办法(git)

    XCode文件状态为 ?,意思为不识别的文件类型. 解决办法:

  4. CF232E Quick Tortoise , Fzoj 3118

    这一题由于数据较多,我们考虑离线处理. 分治.对于两个点s,t,如果起点在mid这条横线上方,终点在下方,那么它必定会穿过mid这条线.所以只要s可以到mid上一点x,x可以到t,st就是安全的. 用 ...

  5. mysql|tomcat|nginx|redis在docker中的部署

    MySQL部署 拉取MySQL镜像 docker pull mysql 查看镜像 创建MySQL容器 docker run -di --name pinyougou_mysql -p 33306:33 ...

  6. AcWing 142. 前缀统计 字典树打卡

    给定N个字符串S1,S2…SNS1,S2…SN,接下来进行M次询问,每次询问给定一个字符串T,求S1S1-SNSN中有多少个字符串是T的前缀. 输入字符串的总长度不超过106106,仅包含小写字母. ...

  7. NX二次开发-Block UI C++界面Enumeration(枚举)控件的获取(持续补充)

    NX9+VS2012 public: void SetBlockUIShow(); void EnumInt::SetBlockUIShow() { //获取枚举控件 PropertyList* En ...

  8. mysql性能分析与故障分析

    性能指标以及分析点:QPS,磁盘IO,cpu以及内存使用状况,连接数,慢查询,阻塞和锁等 qps的统计方法 ##使用方式 ,bash dba_qps.sh port(实例端口号) ## 脚本名 dba ...

  9. (52) C# 串口通讯

    一.串口通讯基本参数 1.波特率:每秒传输n个多少个二进制位. 例如 9600 b/s  = 1200 B/s=  1.172KB/S 2.传输数据格式 数据格式由起始位(start bit).数据位 ...

  10. 1、Locust压力测试环境搭建

    环境准备:阿里云服务器一台.python2.7.pip Locust 介绍 Locust 是一个开源负载测试工具.使用 Python 代码定义用户行为,也可以仿真百万个用户. Locust 简单易用, ...