科技>机械/仪器仪表>机械设计、计算与制图
SiemensNX二次开发

SiemensNX二次开发"

作者:唐康林
ISBN:9787121327575
定价:¥69.0
字数:435千字
页数:272
出版时间:2021-09
开本:16开
版次:01-01
装帧:
出版社:电子工业出版社
简介

本书系统全面地介绍了 Siemens NX 二次开发。作者根据自己多年的项目经验,精心编写了书中内容,注重实用性、易学性,讲解逻辑符合读者掌握 Siemens NX 二次开发的学习顺序,从更高的维度探讨了 Siemens NX 二次开发不为人知的一面。 全书共 19 章,主要内容包括:编译器选择,帮助文档使用,菜单与功能区设计,对话框设计,编程基础;NXOpen 与草图、建模、装配、工程图等的相关应用;各种疑难解决方案等。针对各个知识点,安排综合实例帮助读者快速入门与提高。 本书适合所有对 Siemens NX 二次开发感兴趣的读者。

前言

本书的前言与其他同类书籍不太一样,因为笔者不打算千篇一律地去描述 NX 二次开发有多么的重要,未来又会何等的辉煌,而从自身工作实践出发,分享相关经验与心得。 时间过得很快,笔者接触 NX 整整 12 年了。当年晚上画图,白天下车间做样品,常常被动挑战三四小时内完成零件建模的场景历历在目。感谢不平凡的工作经历增强了笔者的 NX 应用能力,更庆幸在刚接触 NX 时,就使用了坤德科技为公司定制的 NX 二次开发工具集。出于兴趣,研究了工具集背后的实现原理。这些经历为笔者编写本书奠定了基础。 笔者深感能否学好 NX 二次开发,取决于自身的 NX 应用能力与计算机编程能力,同时,在实际应用中以解决问题为导向也很重要,否则花大量的时间精力研究,最后发现出色地完成了根本就不需要做的工作,就是南辕北辙了。为此,笔者耗时两个月,以自身实践中原创的典型应用程序为蓝本,以官方帮助文档为规范,编写本书。书中不刻意讲解如何使用 API,而是从解决问题本身出发,提供不同的解决方案。 全书共 19 章,各章的主要内容如下。 第 1 章介绍编译器的选择、官方帮助文档的使用与应用程序签名的方法。 第 2~3 章介绍菜单、功能区与对话框的设计。 第 4 章介绍 NX 二次开发环境的搭建。 第 5 章介绍编程基础。这一章非常重要,请读者认真阅读,重点介绍了学习 NXOpen 的一些方法。 第 6~7 章介绍操作记录与 NXOpen C++对象的相关内容,如果读者要利用 NXOpen C++开发应用程序,这两章同样非常重要,通过这两章可以学习理解 NXOpen C++。 第 8~18 章基于现实场景分别介绍如何利用 NXOpen 开发应用程序解决实际需求。 第 19 章介绍现实应用场景中各种疑难问题的解决方案。 书中未涉及 CAE 与 CAM 相关的内容,但只要读者理解本书的思想,就开发其他模块的应用程序,只是调用不同的 API 而已。为了准确表达 NX 术语,方便读者查询所需的 API,本书采用了英文版 NX 界面,关键词汇保留了英文官方术语。笔者相信无论您是初学的读者,还是已具有十年以上开发经验的读者,本书都值得您仔细阅读。 本书所涉及的程序代码与实例模型均已上传,请到华信教育资源网(www.hxedu.com.cn)找到本书页面下载。为了与书中描述保持一致,请读者将下载解压后的资料存放在计算机 D 盘。书中所有实例,使用 Visual Studio 2019 编写代码并在 NX1953 通过测试。

目录

第 1 章 NX 二次开发基础·····································································································1 1.1 开发方式··············································································································1 1.1.1 开发方式比较·······························································································2 1.1.2 开发方式推荐·······························································································2 1.2 开发流程··············································································································2 1.3 API 文档与资料获取 ·······························································································3 1.4 编译器与签名········································································································3 1.4.1 编译器········································································································3 1.4.2 签名···········································································································4 第 2 章 自定义菜单与功能区·································································································5 2.1 自定义菜单···········································································································5 2.1.1 MenuScript 语法····························································································6 2.1.2 MenuScript 常用语句······················································································7 2.2 自定义功能区········································································································8 2.2.1 Ribbon 工具条接口文件 ··················································································8 2.2.2 Ribbon 工具条接口关键字 ···············································································9 2.3 自定义菜单与功能区的加载 ···················································································.11 2.3.1 目录结构··································································································.11 2.3.2 加载方式··································································································.12 2.4 自定义菜单和功能区实例 ······················································································.12 第 3 章 自定义对话框·······································································································.20 3.1 对话框设计方式简介····························································································.20 3.2 Block UI Styler 简介 ·····························································································.20 3.2.1 Block UI Styler 界面····················································································.21 3.2.2 Block 列表································································································.22 3.2.3 系统对话框窗口·························································································.24 3.3 重用内部 UI Block ·······························································································.24 3.4 Block UI Styler 应用实例 ·······················································································.26 3.5 位图简介···········································································································.29 3.5.1 NX 系统位图·····························································································.29 3.5.2 自定义位图·······························································································.30 第 4 章 配置开发环境·······································································································.31 4.1 手工方式···········································································································.31 4.2 开发向导方式·····································································································.34 4.3 命令行方式········································································································.36 4.4 调试程序···········································································································.38 第5 章 编程基础·············································································································.39 5.1 用户出口···········································································································.39 5.1.1 ufusr( )·····································································································.39 5.1.2 ufsta( ) ·····································································································.39 5.1.3 其他出口··································································································.40 5.1.4 用户出口实例····························································································.41 5.2 程序初始化与终止·······························································································.43 5.3 程序卸载方式·····································································································.43 5.4 程序运行模式·····································································································.44 5.4.1 交互模式··································································································.44 5.4.2 批处理模式·······························································································.44 5.4.3 远程模式··································································································.45 5.4.4 批处理模式实例·························································································.45 5.5 NXOpen C ·········································································································.46 5.5.1 NXOpen C 命名约定 ···················································································.46 5.5.2 NXOpen C API 分类····················································································.47 5.5.3 NXOpen C 对象 ·························································································.50 5.5.4 NXOpen C 数据类型 ···················································································.51 5.5.5 NXOpen C API 声明····················································································.52 5.5.6 UF_CALL 函数··························································································.53 5.5.7 动态内存··································································································.55 5.5.8 NXOpen C 对象转换 ···················································································.56 5.6 NXOpen C++模板代码 ··························································································.58 5.6.1 模板代码框架····························································································.58 5.6.2 添加对话框回调·························································································.60 5.7 编程实例···········································································································.61 第 6 章 Journal 工具 ········································································································.66 6.1 Journal 工具的作用 ······························································································.66 6.2 使用 Journal 工具·································································································.66 6.3 理解 Journal 代码·································································································.68 第 7 章 NXOpen C++对象·································································································.72 7.1 通用对象模型·····································································································.72 7.2 查询 NXOpen C++对象 ·························································································.73 7.3 创建与编辑 Feature ······························································································.75 7.4 NXOpen C 与 C++对象转换····················································································.76 第 8 章 部件与表达式操作·································································································.77 8.1 部件操作···········································································································.77 8.1.1 部件操作应用范围······················································································.77 8.1.2 部件操作常用 API ······················································································.77 8.2 表达式操作········································································································.79 8.3 部件与表达式操作实例 ·························································································.80 9 章 草图特征操作·······································································································.85 9.1 草图特征操作应用范围 ·························································································.85 9.2 草图特征操作常用 API ·························································································.85 9.3 草图特征创建流程·······························································································.86 9.4 坐标系及转换·····································································································.88 9.5 草图特征操作实例·······························································································.90 第 10 章 实体特征操作·····································································································.96 10.1 实体特征操作应用范围························································································.96 10.2 创建实体特征常用 API ························································································.97 10.3 查询实体特征常用 API ························································································100 10.4 实体特征操作实例······························································································104 第 11 章 自由曲面操作 ·····································································································111 11.1 自由曲面操作应用范围························································································111 11.2 自由曲面操作常用 API ························································································111 11.3 自由曲面建模实例······························································································113 11.4 自由曲面操作综合实例························································································117 第 12 章 属性与对象变换操作 ····························································································124 12.1 属性操作应用范围······························································································124 12.2 属性操作常用 API ······························································································124 12.3 对象变换操作应用范围························································································127 12.4 对象变换操作常用 API ························································································127 12.5 对象变换操作综合实例························································································128 第 13 章 数据文件操作·····································································································132 13.1 数据文件操作应用范围························································································132 13.2 文本文件操作 ···································································································132 13.3 电子表格文件操作······························································································133 13.4 XML 文件操作··································································································135 第 14 章 自定义特征········································································································137 14.1 自定义特征应用范围···························································································137 14.2 自定义特征分类 ································································································137 14.3 Custom Feature ··································································································138 14.3.1 Custom Feature 的配置 ···············································································138 14.3.2 Custom Feature 的创建流程 ·········································································139 14.3.3 Custom Feature 实例 ··················································································141 14.4 UDF ···············································································································149 14.4.1 UDF Hooks 简介·······················································································150 14.4.2 UDF Hooks 应用流程·················································································151 14.4.3 UDF Hooks 应用实例·················································································151 14.5 UDO···············································································································155 14.5.1 UDO 应用范围·························································································155 14.5.2 UDO 基本介绍·························································································156 14.5.3 UDO 应用流程·························································································158 14.5.4 UDO 应用实例·························································································158 14.5.5 UDO 特征应用实例···················································································162 第 15 章 装配操作···········································································································170 15.1 装配操作应用范围······························································································170 15.2 装配操作常用术语······························································································170 15.3 装配操作常用 API ······························································································173 15.4 自动装配解决方案······························································································173 15.5 装配操作实例 ···································································································175 第 16 章 工程图操作········································································································181 16.1 工程图操作应用范围···························································································181 16.2 工程图操作常用 API ···························································································181 16.2.1 图纸页与视图操作 ····················································································182 16.2.2 中心线与注释操作 ····················································································184 16.2.3 尺寸标注 ································································································187 16.3 自动创建工程图实例···························································································188 16.4 合并应用程序 ···································································································193 第 17 章 预览操作···········································································································195 17.1 预览操作应用范围······························································································195 17.2 预览方式分类 ···································································································195 17.3 预览操作实现原理······························································································197 17.4 曲线预览实例 ···································································································197 17.5 体预览实例 ······································································································201 第 18 章 混合开发···········································································································209 18.1 NXOpen C 与 GRIP·····························································································209 18.2 NXOpen C/C++与 KF ··························································································213 18.3 NXOpen 与内部 API ···························································································216 18.4 NXOpen 与 Parasolid ···························································································221 第 19 章 疑难专题···········································································································224 19.1 查找相同体 ······································································································224 19.1.1 相同体定义 ·····························································································224 19.1.2 查找相同体解决方案 ·················································································225 19.1.3 查找相同体编码实现 ·················································································226 19.1.4 查找相同体效率对比 ·················································································230 19.2 移除重复对象 ···································································································231 19.2.1 移除重复对象应用范围 ··············································································231 19.2.2 移除重复对象解决方案 ··············································································231 19.2.3 移除重复对象编码实现 ··············································································233 19.2.4 遗留问题与解决方案 ·················································································240 19.3 跨版本应用程序实现···························································································241 19.3.1 跨版本应用程序解决方案 ···········································································241 19.3.2 跨版本应用程序编码实现 ···········································································241 19.4 制作语言包 ······································································································244 19.4.1 旧方法制作语言包 ····················································································245 19.4.2 新方法制作语言包 ····················································································246 19.5 光标动态捕捉 ···································································································247 19.5.1 光标动态捕捉解决方案 ··············································································248 19.5.2 光标动态捕捉编码实现 ··············································································249 19.6 截图操作 ·········································································································254 19.6.1 截图操作解决方案 ····················································································254 19.6.2 截图操作编码实现 ····················································································254 19.7 隐藏 Block UI Reset 按钮····················································································257 19.8 无部件模式使用 Block UI·····················································································258 19.9 设置 Block UI 不执行 Undo 操作············································································260 19.10 获取应用程序安装路径 ······················································································261

作者简介

编辑推荐

作者寄语

电子资料

http://www.hxedu.com.cn/hxedu/fg/book/bookinfo.html?code=TH327570

www.luweidong.cn

下一个