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. rstrip

    ====== rstrip ====== Description Returns a copy of the string with trailing characters removed. Synt ...

  2. 一维条码Code 128 类型的 A、B、C及Auto的区别

    CODE 128条码是1981年由COMPUTER IDENTICS公司开发的.对128个字符进行标准化的多级别编码.其条码的字符与其表示的数据呈1对1的关系,特点是通过起始字符.代码集字符.转换字符 ...

  3. jquery基础知识实例(一)

    轮滑 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.o ...

  4. css创建

    CSS 创建 当读到一个样式表时,浏览器会根据它来格式化 HTML 文档. 如何插入样式表 插入样式表的方法有三种: 外部样式表(External style sheet) 内部样式表(Interna ...

  5. 帝国CMS数据库数据表详细说明

    表名                                             解释 phome_ecms_infoclass_news 新闻采集规则记录表 phome_ecms_inf ...

  6. list 链表

    #include <list> #include <iostream> using std::list; /* 双向环状链表 //每一个结点 一个数据域 一个前驱指针 一个后驱 ...

  7. JAVA并发工具类---------------(CountDownLatch和CyclicBarrier)

    CountDownLatch是什么 CountDownLatch,英文翻译为倒计时锁存器,是一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待. 闭锁可以延迟线程的进 ...

  8. Java桌球小游戏1

    版本三.使小球动起来package cn.xjion.game;/** * 水平滚动 * @author xjion * */import java.awt.*;import javax.swing. ...

  9. GO语言延迟函数defer用法分析

    这篇文章主要介绍了GO语言延迟函数defer用法,较为详细的分析了GO语言的特性与具体用法,并给出了一个比较典型的应用实例,具有一定的参考借鉴价值,需要的朋友可以参考下   本文实例讲述了GO语言延迟 ...

  10. 2019 牛客多校第六场 D Move

    题目链接:https://ac.nowcoder.com/acm/contest/886/D 题解摘自官方题解 题目大意 有 K 个体积相同的箱子,有 N 个体积相同或相异的物品,现要按照如下策略装箱 ...