一种阀门零部件参数化及尺寸驱动设计方法的应用

2022-10-25 08:43谷金龙白伟伟
智能制造 2022年5期
关键词:二次开发代码绘制

谷金龙,周 晨,郑 喆,白伟伟

(中核苏阀科技实业股份有限公司,江苏 苏州 215129)

1 引言

20世纪90年代计算机制图开始取代手工制图,随着计算机制图的发展,CAD辅助设计工具绘图应用广泛。在国外,CAD技术的发展基本上是以参数化为基础,使得现在的CAD技术和系统都具有较好的开放性,图形接口和图形功能日趋标准化。

阀门种类繁多,按作用分类有止回阀、截断阀、分流阀、调节阀、多用阀、安全阀和其他特殊专用阀等,应用场景有石油、化工、电站、长输管线、造纸、核工业、各种低温工程、宇航以及海洋采油等流体输送系统。大部分阀门零部件的几何拓扑结构都是固定不变的,所以基于CAD的参数化和尺寸驱动技术能为阀门设计提供很大的便利。

2 问题提出

目前各大阀门厂使用基于CAD的参数化和尺寸驱动设计技术的较少,设计员设计阀门时大都以Excel辅助计算,然后根据所得结果,手动在CAD内绘制图形。这种设计方法绘制单一尺寸单一磅级时效率尚可,在进行大批量同系列不同规格的阀门设计时,效率就非常低下。

高压止回阀自紧密封中腔结构的常规设计流程如下,以便读者更加了解参数化和尺寸驱动设计方法的优 越性。

1)首先打开根据MSS SP-144“Pressure Seal Bonnet Valves”标准编写的《阀门设计手册》中相关计算公式预先编辑好的Excel计算表格,表格中设计参数见下表,高压止回阀自紧密封中腔结构二维图如图1所示。

图1 高压自紧密封中腔结构示意图

表 高压自紧密封中腔设计参数表

(续)

2)先确定密封圈外径值(此值即为阀体中腔内径值),然后调整其他参数,直到Excel表格显示计算结果合格,高压自紧密封止回阀中腔结构设计完毕。

3)根据Excel表格中的各个数据在CAD中绘制图形完成出图。

3 新设计方法的提出

根据计算公式总结并精简高压自紧密封止回阀中腔结构设计参数,需要用户输入的数据为密封圈外径尺寸D、设计压力P,其余尺寸可以由循环计算或者结构安排得到。所有尺寸确定之后,剩下的绘制工作主要在代码上实现。高压止回阀自紧密封结构尺寸设计顺序图如图2所示。

图2 高压止回阀自紧密封结构尺寸设计顺序图

3.1 参数化和尺寸驱动实现方法

本文介绍的设计方法代码编写平台为Visual Studio,利用Visual Studio .NET对AutoCAD进行二次开发开始于AutoCAD2004,发展至今其功能已相当完善,并且教程也很多,是新手以及熟练者的理想开发平台。

.NET API为开发者提供了丰富的托管外包类,使之可以在Microsoft .NET Framework下,使用诸如Visual C++、Visual C#、VB.NET、Visual F#等基于.NET 的语言对AutoCAD 进行二次开发。

本文描述的对AutoCAD二次开发语言是C#,通过二次开发可以实现绝大多数手动操作AutoCAD可以实现的功能。C#作为.NET平台代表语言,具有精确、简单、类型安全、完全面向对象的特点。

AutoCAD保存的文件格式是DWG,DWG文件实际上对象型的数据库文件,里面存放着各种符号表与一个命名对象词典。对AutoCAD二次开发实现参数化绘图,绘图上实现的大部分操作都是通过事务处理向数据库下面的各种符号表里的符号表记录内添加对象来实现的。参数化和尺寸驱动绘图实现方法如图3所示。

图3 参数化和尺寸驱动绘图实现方法

3.2 代码实现

(1)调用WinForm窗体获取设计参数

由于WinForm窗体设计简单易学,而且在本设计方法中其只需要承担简单的获取用户输入参数的功能,故其是一个很好的人机交互工具选择。WinForm窗体获取设计参数如图4所示。

图4 WinForm窗体获取设计参数

(2)获取最适宜尺寸的代码

下面举例说明由循环计算确定尺寸的方法,根据MSS SP-144,b位置承压应力计算公式简化后为

式 中,P为 压 力 等 级 标 记 数900,1 500,2 500或 4 500;S为阀体材料许用应力,取值48.3MPa;K为系数,当S用MPa表示时取值217.5。

循环计算用Excel中的宏实现,Excel表格中C9单元格存储φD的值,C10单元格存储φD的值,I26单元格里面是一条IF语句,如果验算垫片强度合格单元格的值就是1,否则就是0。C10单元格初值设为s-1,每循环一次其值减1,当循环中判断垫片强度合格后退出循环,这时获得一个确定的φD值。

上述只是举例介绍φD尺寸获得的过程,要想完整的获得所有尺寸要考虑的东西还有很多,比如螺栓布局和拧紧空间是否足够、阀盖斜面到阀盖底面的距离预留是否足够等,这样才能保证参数化设计结果的合理性。

(3)在AutoCAD中绘制图形的代码

C#作为面向对象的语言,具有代码封装的功能,利用好这个功能,可以在很大程度上减少参数化设计的代码量。

下文介绍一些向AutoCAD中添加线条的封装方法,简单修改后可以实现向CAD中绘制各种线条如直线、圆、圆弧等,代码绘制的部分图形如图5所示。

图5 代码绘制部分图样示意图

(4)实现尺寸驱动功能

AutoCAD绘制出来的对象都继承自DBObject类,DBObject有一个ExtensionDictionary属性,开发者可以通过事务处理获取其DBDictionary词典,词典可以存储Group类,Group对象可以存储很多ObjectId对象。这对新手有一些烦琐,但是通过这些操作可以把多个线条或者标注与一个线条关联起来。

AutoCAD提供一个IExtensionApplication接口,通过这个接口开发者可以实现双击特定实体的操作后执行预定义的操作。这里推荐将特定实体设置为多段线,因为其在AutoCAD绘图中使用频率较低,可以减少该代码在不需要的时候触发的次数。

把参数化绘制的所有对象的ObjectId属性值存储在一个Group对象中,要注意的是所有对象的ObjectId属性值要按顺序存储,只有这样接下来读取的时候才方便对不同标注的进行识别。接着把这个Group对象存储在参数化绘制的多段线的DBDictionary词典中。当用户修改标注的标注尺寸并双击对应的多段线后,代码通过ObjectId属性获取用户修改标注尺寸,然后根据获取的标注尺寸重新调用参数化绘制代码实现尺寸驱动。文字描述实现逻辑有些复杂,尺寸驱动的原理如图6所示。

图6 尺寸驱动逻辑示意图

4 阀门零部件参数化及尺寸驱动设计展望

对阀门零部件或者整体进行参数化设计很早就有论文提到,但阀门产品种类众多、结构众多,必须要对大量的结构进行参数化代码编写,才能正在意义上提高阀门设计效率,这是一个巨大的工作量。

要实现阀门零部件参数化,要求设计者懂一些编程,并且对阀门设计要精通,参数化设计可以通过阀门厂家与软件二次开发厂家进行合作开发,但是费用较高。考虑到此参数化设计在代码上的难度并不大,故笔者认为,此项工作也可以通过在企业培养内部设计人员进行。

利用AutoCAD进行参数化及尺寸驱动二次开发可以有效的提升设计准确性、简化阀门设计流程和缩短新产品的系列化开发周期。参数化及尺寸驱动设计在阀门设计中的应用,可以主要集中在以下两个方面:

1)成熟产品零部件参数化设计。公司对于成熟产品总是有升级迭代的需求,升级迭代可能是计算公式的改进、材料性能的提升和结构形式的微调。对于这些改动,都可以通过简单改动代码和Excel计算表格使参数化及尺寸驱动设计满足新产品设计要求。

2)新产品零部件参数化设计。公司新产品的设计往往是根据订单需求来。当客户需要某个规格的阀门时,设计员再来进行相应设计。新产品实现系列化设计往往需要几年时间,有足够的时间留给设计员进行参数化及尺寸驱动设计。

5 结束语

本文介绍了高压止回阀自紧密封中腔结构参数化及尺寸驱动设计的设计原理及流程,为其他零部件参数化设计提供一些理论基础并具有一定参考意义。另外此设计方法本身还具有以下优点:

1)把计算过程在Excel中完成,这样就可以把计算公式与代码分隔开,也就是达到低耦合的目的。代码对接的是计算结果而不是计算过程,后续如果计算公式有修改并不影响原代码执行。

2)在参数化设计的基础上更进一步,实现尺寸驱动功能,并在很大程度上实现了代码重用,可以有效提高阀门设计效率。

猜你喜欢
二次开发代码绘制
Art on coffee cups
浅谈基于Revit平台的二次开发
浅谈Mastercam后处理器的二次开发
创世代码
创世代码
创世代码
创世代码
放学后
西门子Easy Screen对倒棱机床界面二次开发
在转变中绘制新蓝图