APP下载

基于模型定义的产品设计系统的开发与实现

2019-08-30卢健钊

制造业自动化 2019年8期
关键词:定义自动数字化

卢健钊

(中国电子科技集团公司第十研究所,成都 610036)

0 引言

基于模型定义技术作为产品数字化定义的先进方法,将产品的设计信息、工艺制造信息和管理信息共同定义到三维模型中,以MBD模型作为产品生命周期的唯一数据源,改变了传统以工程图纸为主、三维实体模型为辅的生产制造方式[1~3]。近年来,国内装备制造企业已认识到MBD技术的优势,并逐步开始推广应用MBD技术[4~6]。针对我所产品的设计、制造现状,基于模型定义的数字化设计需求越发强烈,有必要搭建自己的MBD设计系统以顺应数字化设计与制造技术的发展趋势,建立以三维模型为核心的唯一数据源,实现产品数字化定义信息的有效集成及其应用[7,8]。

NX是Siemens PLM Software公司面向高中端市场推出的新一代数字化产品开发系统,可为设计、仿真和制造等产品开发的各环节提供灵活强大的集成解决方案,深受众多大中型企业的青睐。NX秉承开放式设计的理念,为用户提供了丰富高效的开发工具和接口以满足用户的个性化需求,实现企业特定需求的功能定制和开发。NX Open作为NX提供的二次开发工具集,支持多种编程语言,通过开放式架构可实现企业的功能定制和集成开发[9]。

结合我所产品的设计、制造现状,针对基于模型定义的数字化设计需求,以Siemens NX为基础设计平台,提出并搭建了MBD设计系统的总体框架。利用NX Open二次开发工具集,结合数据库和网络技术,选用VC++编程语言进行集成开发,实现基于模型定义的产品设计系统功能的个性化定制和开发。

1 MBD设计系统框架

针对在MBD设计过程中NX三维软件自身工具功能不足,有必要进行定制开发。前期已明确了我所MBD设计系统的总体应用框架,主要分为工具层、工程知识层和基础层三个层次,如图1所示。整个系统的开发工作量较大,本文着重以MBD设计辅助工具集、材料库和模型质量自动检查工具等功能的开发实现过程为关注对象,以点带面地介绍整个产品设计系统的实现思路和方法。

2 开发与实现

2.1 二次开发技术

考虑到产品设计系统需要大量人机交互操作,开发的应用程序采用内部动态链接库的形式创建并编译,以实现用户功能函数与NX软件的无缝集成。

图1 MBD设计系统总体框架

NX Open是NX提供的二次开发工具集,主要包括通用应用程序编程接口(Common API)、经典应用程序接口(Classic APIs)、日志(Journaling)、知识驱动自动化(Knowledge Driven Automation)以及Block UI Styler、MenuScript、UI Styler等其他NX工具包,支持C、C++、Java、VB.NET、C#等多种编程语言。NX Open通过开放式架构可实现企业的功能定制和集成开发,从专用的工具集定制到高级的系统功能开发,为用户高效使用、优化NX软件功能提供了一个灵活开放的平台[9]。

NX Open应用程序一般包括菜单、工具条、对话框、NX Open API库函数和应用程序(DLL)等部分,其中菜单、工具条和对话框是应用程序与用户交互的工具,从菜单和工具条可以启动应用程序、对话框等,在对话框激活控件时将调用相应的回调函数,应用程序利用编程语言和NX Open提供的相应应用编程接口进行编码[10]。

针对特定功能的开发,菜单和工具条可通过编写MenuScript脚本语言实现其创建、编辑和自定义;对话框则结合Block UI Styler、UI Styler和MFC等方式进行相应的用户界面定义;NX Open API则为所有的NX应用编程接口提供服务;在Visual Studio集成开发环境中选用C++编程语言进行源代码的创建、编辑、编译链接,进而生成动态链接库文件,实现对NX软件的集成开发。

2.2 MBD设计辅助工具集

为了让工程技术人员更加方便快捷地完成MBD模型的设计,在NX PMI原有功能的基础上,遵循我所相关的标准规范,通过MBD设计辅助工具集的定制开发,完善、拓展PMI功能,实现产品的全三维数字化快速响应设计。基于NX Open二次开发工具集,通过集成开发解决了较为急迫的若干功能需求,主要包括:孔特征标注、技术要求、形位公差、条框式工艺、参数表、常用尺寸公差、Φ/M/ST转换、格式刷、视图更新和PMI对象管理等诸多功能。

图2 定制的MBD设计工具条

面向实际需求进行的定制开发,大幅扩展了产品制造信息的标注和管理功能,有利于提高设计效率和质量。限于篇幅受限,下面仅针对孔特征标注功能的定制开发做简要介绍。NX原有的直径标注手段效率低下,孔标注的类型、数量、关联几何对象需要大量的交互操作才能完成。

开发的孔特征标注功能根据选择的孔特征自动获取关联几何、自动统计并标注孔的数量,将大量的交互操作简化为程序自动处理,实现孔特征的快速标注,其主要有以下四个特点:

1)支持单个孔特征及其阵列特征、等直径的多个孔特征的识别;

2)自动识别孔特征类型,若为通孔则自动标注“Φ”,若为螺纹孔则自动标注“M”;

3)自动提取孔的数量并标注前缀“N-”;

4)自动获取孔特征的所有几何面,将其设为尺寸的关联对象。

孔特征相关函数文件为pmiBase.h、pmiBase.cpp。相关的部分函数定义如下:

void CreateHoleDiameterDimByFace(std::vector &_vFeats,tag_t featTag, tag_t face_tag, double face_mark[3],std::vector _vholeForm); //零件下选择面

void CreateHoleDiameterDimByEdge(std::vector &_vFeats,tag_t featTag, tag_t edge_tag, double edge_mark[3],std::vector _vholeForm); //零件下选择边

void CreateHoleDiameterDimByFaceInst(std::ve

ctor &_vFeats,tag_t featTag, tag_t face_tag, double face_mark[3],int instancnum); //装配下选面

HRESULT CRefFeatures::GetFeatureInfo(tag_t& objtag, unsigned int tagObj, const CString& strFilter, const CString& strFilterDesc, CRefDataInfo*& pDataInfo) //获取特征信息

2.3 材料库

材料库采用C/S(Client/Server)架构,在服务器端统一部署、管理材料数据库,保证分布式的NX客户端的材料数据与服务器端实时同步。服务器端的数据库基于我所常用金属和非金属材料优选清单,涵盖每种材料的物理性能、化学性能及力学性能等信息,如材料的类型、名称、牌号、供应状态、技术标准、规格型号、主要用途、密度、弹性模量、泊松比、剪切模量等多种材料属性,由系统管理员统一进行材料库数据的更新、维护。客户端嵌入NX软件,通过菜单命令直接访问服务器数据库。设计人员在NX界面上可分别针对装配、零件进行批量或单个实体的材料定义。

图3为批量材料定义的用户界面,其交互窗口主要由6部分组成,包括装配导航区、材料检索区、图形预览区、参数浏览区、材料自定义区和执行区。“装配导航区”为设计人员提供了“列表”、“装配树”两种零部件的组织形式,可进行自制零件的快速查询、筛选;“材料检索区”提供材料类型、材料名称、材料牌号、供应状态等检索条件,可进行材料信息的快速检索;“图形预览区”默认状态下为我所标识,当选择型材等材料时将显示型材截面的图形信息;“参数浏览区”将列出当前检索条件下的所有材料项,当选中列表中的任意条目时,相关的规格型号、主要用途等信息将显示在相应区域;“材料自定义区”主要用于定义毛坯或新材料等特殊的材料信息,设计师在弹出的对话框中进行材料自定义;“执行区”实现材料属性的自动赋值,将当前选中或自定义的材料信息快速赋值到NX部件属性中,并将相关属性设为锁定状态,如图4所示。

图3 批量材料定义界面

结合设计人员的工程需求,通过定制开发,材料库实现了以下功能:

1)材料库数据统一,方便管理;

2)材料库数据检索、可视化功能,方便查询;

3)材料库数据自动、快速、批量赋予给NX部件 属性;

4)材料信息能被下游的工艺、仿真、加工编程等业务流程重用。

图4 材料属性自动赋值示意图

2.4 模型质量自动检查工具

为了提高产品设计的质量和效率,有必要基于我所的标准规范和实际需求进行模型质量自动检查工具的定制开发。相关的定制工作遵循下列基本原则:1)以相关的三维建模、三维标注等标准规范为技术依据;2)以模型的有效性和规范性检查为重点;3)根据检查结果对模型进行修改,修改完成后需重新对模型进行检查;4)NX模型须进行模型自动检查,且只有在检查结果为通过状态时,才能检入PDM系统。

根据业务需求,梳理出所需的检查项目,并逐条明确各检查项目的检查内容、通过条件、提示信息和错误类型等内容。按照检查的类别将检查项目分成了6个部分,每个部分组成一个单独的检查包,分别为通用设置检查、零件模型检查、草图检查、PMI检查、装配模型检查和工程图检查。通过与NX Check-Mate的无缝集成,可实现单个文件的交互式检查和多个文件的批量检查。

检查内容及其通过条件必须符合相关的标准规范,并配以相应的提示信息方便查看。同时,根据检查项目对模型质量的影响程度,定义其错误类型并用不同符号区分显示错误等级。自动检查工具定义了以下三种错误类型:

图5为通用设置检查列表,共包含图层类别、图层状态、图层对象、对象图层、工作坐标系和工作视图等6条检查项目,各检查项目的检查内容、通过条件、提示信息和错误类型均进行了详细定义。

图5 通用设置检查列表

模型自动检查后的结果通过三维可视化的方式输出,方便设计人员进行查看、分析及处理。错误类型的标识符号与模型、错误描述信息相关联,点击标识符号可实现模型相关错误特征和错误描述信息的高亮显示。

根据模型检查的结果,定义了三类模型检查状态,分别为通过、失败和过期。检查后针对NX模型文件自动创建“CHECKMATE_STATE”属性以表征检查结果状态,根据当前的检查结果对其进行自动赋值并将此属性设为锁定状态,如图6所示。

图6 模型检查属性示意图

模型文件的“CHECKMATE_STATE”属性值作为相关数据接口允许模型文件检入PDM的先决条件。当触发检入操作时,数据接口除了执行其他检索过滤条件外,还将提取判断模型文件 “CHECKMATE_STATE”的属性值,只有当其值为“通过”时,相关的数据接口才允许其检入PDM系统。

2.5 应用实例

面向Siemens NX软件平台,进行了基于模型定义的产品设计系统的开发工作,随着MBD设计辅助工具集、材料库和模型质量自动检查工具等功能的落地实施,实现了产品的全三维数字化定义。

图7 产品全三维数字化定义示意图

3 结语

为搭建基于模型定义的产品设计系统,在MBD设计系统的总体框架下,以Siemens NX为基础设计平台,对其相关的二次开发技术进行了简要介绍。着重研究探讨了设计辅助工具集、材料库以及模型检查工具等功能的开发实现过程,以点带面地介绍了整个产品设计系统的实现思路和方法。该系统的成功搭建及应用,基本实现了真正的单一数据源,加速了我所在数字化设计、智能化制造领域前进的步伐。随着基于模型定义技术的深化应用及其推广,三维模型上的产品制造信息如何准确高效复用于工艺、制造、检验等环节将是下一步的研究重点和方向。

猜你喜欢

定义自动数字化
家纺业亟待数字化赋能
自动捕盗机
论经济学数字化的必要性
高中数学“一对一”数字化学习实践探索
高中数学“一对一”数字化学习实践探索
让小鸭子自动转身
自动摇摆的“跷跷板”
关于自动驾驶
成功的定义
修辞学的重大定义