基于Siemens NX的材料管理系统
2022-02-22王运平曹立林毕忠华
王运平 曹立林 毕忠华 杨 琪
(中国航发西安动力控制科技有限公司,陕西 西安 710077)
0 前言
三维设计软件Siemens NX已经在机械行业得到了广泛应用,在设计产品时,材料直接决定了产品的品质[1]。基于三维模型的产品设计和标注是机械行业发展的一个趋势,合理使用材料库是保证产品质量的一个重要因素。因此,材料库是机械设计和模型加工过程中必不可少的部分,而在实际的生产过程中,设计和加工的材料库的信息源往往不一致,导致后期仿真等环节会出现差错,这样既浪费时间又增加了生产成本[2-3]。
建立基于NX的材料库能够有效解决产品实际设计和制造过程中遇到的问题,例如产品设计和制造过程中的材料值不统一、材料值丢失以及产品属性与材料不匹配等问题,建立1套完整的符合国标的材料库能够降低产品设计过程中发生错误的概率,达到提高设计和生产效率、节约时间和成本的目的。
1 NX材料库的组织形式
NX材料库是以一系列XML文件的格式进行存储的。XML是标准通用标记语言的子集,但是比标准通用标记语言简单,能实现标准通用标记语言的大部分功能。因为XML较简单,所以其易于在任何应用程序中读写数据,已经成为数据交换的唯一公共语言。NX系统自带的材料数据库文件为physicalmateriallibrary.xml,材料数据库文件前半部分是材料的各属性数据,后半部分是材料属性的单位定义。可以定义的材料类型包括各向同性材料、正交各向异性材料、各向异性材料、黏弹性材料、超弹性和垫片材料、蠕变材料、非线性材料、损伤材料、热材料、流体材料、多孔材料、黏弹性材料、固化热固性材料以及弹性塑料材料等。
2 NX材料库的总体分析
在使用NX系统进行设计、仿真以及在实际的制造过程中,错误使用材料、设计阶段和仿真阶段材料不一致会出现制造出来的产品不符合用户需求的问题,直接增加了产品的成本。其原因是在产品设计、仿真以及制造等环节缺少统一的材料使用标准,因此用户亟需1个方便、快捷、准确且统一的材料库,可以供他们在产品从设计到制造过程中的各个环节使用,从而尽可能地减少因材料问题而导致产品存在缺陷。
设计的系统是基于实际设计和生产阶段用户的真实需求,系统把机械行业标准材料信息放到后台,并附加到三维模型上,为后期加工、分析和绘制工程图做准备。把行业标准材料信息放在NX后台,在设计产品时直接调用材料库中已有的行业标准或企业内部定制的信息,并可以直接标注和附加在产品的三维模型的各个部件上,使设计时的材料分配更直观、更清晰,在后期加工、分析和绘制图纸的过程中,可以根据模型上已标注的材料属性值进行加工和绘制。综上所述,该系统可以满足用户的需求。
2.1 系统设计初步分析
设计系统从功能上分为后台的数据库模块和前台的用户交互模块。数据库模块主要存储机械行业的标准材料库信息。前台的交互模块主要包括标注模型、更新标注等功能。
这里选择Microsoft Excel作为后台存放行业标准的材料库信息,原因如下:1) 所有用户都非常熟悉Microsoft Excel的使用方法,选择它能大大缩短用户的学习时间。2) Microsoft Excel能很方便地编辑、存储信息。3) NX7.5本身与Microsoft Office软件有很强的衔接性,通过NX7.5的开发接口能很方便地对Excel中的数据进行增加、删除以及修改等操作,这样能有效缩短开发软件所需的时间。
按照一定的规范把行业标准材料信息放在NX后台的Excel数据库中,考虑用户的方便性及易用性,这里选择Microsoft Excel作为存放机械行业的标准材料库信息,通过NX/Open API接口调用后台数据库中的信息,在设计产品时,直接调用材料库中已有的行业标准或企业内部定制的信息,并可以直接以部件属性的形式标注和附加在产品的三维模型的各个部件上,使设计时的材料分配更直观、更清晰,避免在后期仿真加工等环节出现差错。在后期的加工、分析和绘制图纸的过程中,可以根据模型上已标注的材料属性值进行加工和绘制[4]。系统用例图如图1所示,该材料库系统主要有4个用例,分别是筛选与查看材料、增加材料、编辑与修改材料以及材料附加到模型用例。
图1 系统设计
2.2 系统时序图
系统时序如图2所示,用户通过材料库界面产生一系列事件和消息,例如显示界面、修改材料等消息,这些消息和事件会传递到NX中材料库系统的处理程序,并由处理程序调用后台数据库进行处理,最后把处理结果传递到前台的显示界面。
图2 时序图
2.3 界面设计
界面是软件与用户交互的最直接的一层,界面会影响用户对软件的第一印象。设计良好的界面能够引导用户自己完成相应的操作,设计合理的界面能给用户带来轻松愉悦的感受,相反则会让用户产生反感的情绪,最终可能会放弃使用该软件,在NX中设计了包括材料库的菜单条,其形式与NX的菜单是一样的,最大限度地保证了用户的使用习惯,方便用户快速使用。
界面主要是通过调用后台的MaterialLib.rc文件来显示界面。RC文件是资源文件,它是用来记录用户在程序中用到的各种资源,例如对话框、图标、光标以及位图等,RC文件经过编译会形成RES文件,RES文件会被链接进最后的EXE文件中。
2.4 实现界面部分设计
当用户单击界面上的按钮、下拉菜单等图标时,通常会产生一个事件,程序会对不同的事件进行不同的处理,例如用户单击界面的下拉菜单时,材料库系统就会调用OnSelchangeCombo1()函数中的代码,该函数在组合框的编辑内容发生改变时自动进行响应。而在第一次响应时,组合框没有选定内容,也就是m_cb.GetCurSel()的值为-1,这样m_cb.GetLBText肯定会出现异常。去后台读取材料库中的数据,并返回最新的材料数据,然后显示在主界面中的表中。combo BOX是下拉框选择控件,用户单击界面中的材料目录就会出现下拉并显示材料库的主体目录(例如,用户选择了下拉菜单中的“有色金属”选项,程序就会去后台调用数据库中已存储的材料库信息,并通过界面上的表格显示,供用户参考和使用)。void CXxxDlg::OnEditchangeCombo1()函数是响应组合框的编辑内容发生改变时响应的,而在第一次响应时,组合框没有选定内容,也就是m_cb.GetCurSel()的值为-1,这样m_cb.GetLBText肯定就会出现异常。
3 后台数据库设计
3.1 材料库的分类
分类的标准主要是根据材料的属性和名称,一级分类是有色金属材料(非金属材料和黑色金属材料),二级分类是材料的名称,三级分类是牌号,一级、二级分类见表1,以下分类基本包括机械行业的所有分类。
表1 材料分类
3.2 材料的收集和输入
每个牌号对应1种材料,每种材料都有自己的属性,包括名称、标准号、规格号、适用范围、钢丝规格、示例说明和标注示例,示例见表2。
表2 材料属性
3.3 实现调用后台数据
该系统的后台数据库是存储在Microsoft Excel中的,但是当用户从界面上单击需要获得某一种材料的属性时,程序就会调用ReadFile函数中的代码,以读取后台的Excel文件。用户选择界面上的某一个材料,程序根据用户选择,通过调用NX/Open API接口去后台数据库中得到相关材料值,并显示在主界面上的相应表格中。
BOOL CRegistSheet::ReadFile是指从文件指针指向的位置开始将数据读到一个文件中,且支持同步和异步操作,如果文件打开方式没有指明FILE_FLAG_OVERLAPPED,那么当程序调用成功时,它将实际读出文件的字节数保存到lpNumberOfBytesRead指明的地址空间中。CExcelFile是进行Excel文件(读/写)操作。写操作是写入Excel文件只能是 *.csv的后缀文件(与txt一样,以二进制文本形式存储,它是以逗号分隔符作为单元格内容的划分, .xls存储比较复杂, .csv文件可以通过.xls或者.xlsx文件另存为,选择.csv文件格式),它们可以通过Notepad++等记事本软件当做txt文件打开。读取操作是读取Excel文件的操作,使用了文件随机定位函数fseek()进行数据读取。prev_cells.cells.Copy可以对Excel进行单行复制、多行复制、单列复制以及多列复制的操作。使用Rows.Add添加新行,使用Rows.Remove删除指定行列的数据。
4 业务逻辑设计
4.1 业务逻辑总体结构分析
用户进入NX后,如果需要查看相关材料的属性值,就单击材料库菜单,在弹出的材料库对话框中,用户可以实现查看材料库中的材料信息、把材料值直接标注在模型上以及把材料等属性值写入部件属性等功能,材料库系统通过使用NX/Open API 调用存储在后台的材料库信息,并显示在前台界面或者三维模型上的属性中。其系统逻辑结构如图3所示。
图3 逻辑分析图
4.2 功能与模块的划分
材料库系统从功能上主要分为4个模块,分别是“查看材料值”“三维模型标注材料值”“输入修改材料值”和“筛选材料值”。各个模块的功能描述见表3。
表3 模块功能描述
4.3 材料库系统流程
用户先启动NX,然后新建或打开1个模型,单击菜单栏上的材料库按钮,启动材料库系统,此时用户就可以使用材料库的功能,例如查看材料库、编辑材料以及写入部件属性等功能。如图4所示。
图4 流程图
5 测试结果
5.1 界面测试
界面测试要求如下:用户进入NX,打开1个模型,选择菜单栏上的“OpenTools”,然后单击“材料库”,就会正常弹出1个材料库对话框。输出结果如图5所示。
图5 材料库界面测试
5.2 材料库筛选查看测试
测试要求如下:用户单击材料库界面上的“目录”“材料名称”或“牌号”下拉选项,选择一个材料属性,下面的表格会显示相应的材料库数据。输出结果如图6所示。
图6 材料库筛选测试
5.3 材料库标注功能测试
测试要求如下:用户选择某一个材料属性,把它附加到模型的属性中,模型的属性值会被附加上材料值。输出结果如图7所示。
图7 标注功能测试
6 结语
该系统来源于设计生产中的用户需求,基于NX的材料库解决了用户在设计、仿真和制造过程中出现的材料前后不一致甚至出现错误的问题。该系统主要提供了提供材料库的筛选查看、编辑修改和模型标注功能。通过用户的实际反馈来看,该系统能够解决他们实际中遇到的关于材料库的问题。