基于COM技术SolidWorks二次开发的化工设备零部件库设计

基于COM技术SolidWorks二次开发的化工设备零部件库设计
李久振;张后龙
【摘 要】本文在总结化工设备中应用较为广泛的零部件的基础上,使用SolidWorks三维设计软件提供的二次开发接口,建立了可参数化设计的化工设备零部件库,开发了在SolidWorks三维设计中可简化设计过程的工具插件,并给出了扩展该插件系统的一般方法.
【期刊名称】《石油和化工设备》
【年(卷),期】2011(014)007
【总页数】4页(P12-14,17)何其莘
【关键词】化工设备;零部件库;三维设计;COM;SolidWorks;二次开发
二十年后的学校
【作 者】李久振;张后龙
【作者单位】中国核电工程有限公司核设备所,北京100840;中国核电工程有限公司核设备所,北京100840
【正文语种】中 文
在机械产品虚拟样机的设计中,设计人员经常用到一些标准化、系列化的零件,为此SolidWorks自带了一些基本的零件库。但针对某一行业,有时无法满足其特定要求。为此,本文在基于COM技术的基础上,使用SolidWorks提供的二次开发接口,设计出针对化工设备中常用的、参数化的零部件库,并使用面向对象的程序设计方法开发了SolidWorks的同步模式工具插件,做到了插件程序的可扩展性,从而保证了零部件库的可扩展性。这有助于简化化工设备的设计步骤,缩短设备三维设计的时间,提高设计效率。
1 化工设备常用零部件及SolidWorks二次开发相关技术
设备设计中最常用的零部件如螺栓、螺母、轴承、齿轮等标准件,在SolidWorks中已经有了相应的标准件库。而化工设备中常用的零部件,如人孔、手孔、法兰、支座、各类管件、各种类型的封头等,SolidWorks中并没有相应的零部件库。另外,一般的压力容器有一个典型的特征,即主要由筒体、封头、接管等组成。因此建立这些零部件库,开发相应的插件程序,能够有效地简化化工设备的三维设计过程,提高设计效率。
COM(Component Object Model)即组件对象模型技术是一种协议,它建立了一个软件模块同另一个软件模块的连接,然后再将其描述出来。当这种连接建立起来之后,两个模块之间就可以通过称为“接口”的机制来进行通讯。SolidWorks为便于用户开发的程序与SolidWorks通讯,提供了采用COM技术开发应用程序的方法,并提供了几百个API函数。SolidWorks API通过面向对象思想组织所有接口对象。对象分为若干层,每一层又包括若干对象。每个对象又有自己的属性、方法和事件。这些对象涵盖了SolidWorks全部的数据模型。通过对这些对象属性的设置和方法的调用,用户可以在自己的开发中实现与SolidWorks相同的功能,建立适合自己需要的、专用的SolidWorks功能模块。这些功能模块可以作为独立的EXE或DLL文件存在,它们就是COM模块。凡是支持COM编程的开发工具,均可用于SolidWorks的二次开发,如VB、VC++、Delphi等,本文选用VC++作为开发环境。
SolidWorks三维模型是由特征组成的,这些特征由草图尺寸驱动。SolidWorks通过访问对象模型的属性来驱动三维模型的特征尺寸参数。因此,建立程序与三维模型特征参数的联系,即可实现参数化建模。在SolidWorks中,参数化建模主要通过两种方法实现:(1)利用已有的零件模型,在保持其结构不变的情况下,将零件的特征尺寸视为变量,通过接口
对其驱动,从而获得一系列结构相同而尺寸不同的相似零件,称为尺寸驱动法。(2)用编程实现参数化设计,即用户根据需要直接用程序生成需要的模型,称为程序驱动建模法。尺寸驱动法编程工作量相对较小,但是需要事先建立相应的模型。程序驱动建模法可以灵活生成模型,但编程工作量较大。SolidWorks的开发有同步、异步两种模式,这两种模式的模块分别对应独立的EXE和DLL文件。同步模式所开发的插件与SolidWorks应用程序在同一个进程中运行,直接调用内核函数,效率更高。因此,本文采取了SolidWorks二次开发的同步模式。
2 零部件库的系统设计
2.1 程序原理及功能
SolidWorks是采用变量化技术的全参数化CAD系统。人孔、法兰等标准零部件,本文采用尺寸驱动法,首先建立三维模型的标准模板,然后按照用户的需要,输入参数,驱动已有的三维模型,从而实现参数化建模。非标准零部件,如压力容器,其封头类型、外接管口数量、形式和位置等均不相同。对于此类零部件,本文采用程序驱动法,按照用户的实际需求生成所需要的各种特征,由特征组合生成零件三维模型。通过分析系统功能要求以及
SolidWorks本身的特点,综合考虑后,确定本系统的算法原理是:系统接受用户选择或输入的参数,再利用COM技术对SolidWorks API底层函数进行操作,从而实现对零部件关键特征尺寸的修改。该系统的原理功能框图如图1所示。
图1  系统原理框图
系统要求实现零件的全三维参数化设计、关键尺寸的智能化修改。通过对系统要求的综合考虑,对于采用尺寸驱动法和程序驱动法实现参数化的零部件有着不同的流程。
尺寸驱动法的流程为:(1)根据相关标准,确定零部件的基本参数;(2)程序依据用户选择的参数驱动相关零件;(3)由零件和部件装配参数驱动零件形成最终的装配体。
程序驱动法的流程为:(1)根据相关标准,确定零件的基本参数;(2)程序依据参数绘制零件草图,并生成零件特征;(3)由装配参数和零件之间的相互关系形成装配体。
本文在开发过程中采用了面向对象的方法,将零部件的特征数据都封装在类对象中,这样可以只花费少量的时间和工作量来完成软件设计。扩展系统时,只需开发相应的新类和实现各个对象之间互相通信的操作,就能扩展出需要的系统模块。图2所示为本系统涉及的几
种典型的类对象关系图。
图2  典型的类对象关系图
2.2 典型零部件建模过程
本系统采用VC++作为主要开发工具,开发的系统与SolidWorks运行在同一个进程中,直接调用SolidWorks API接口。启动SolidWorks程序,加载插件NELIB。点击程序中加载的“NELIB”主菜单,其子菜单即为不同零部件的设计单元,如图3所示。下面分别就尺寸驱动法和程序驱动法说明零部件的参数化建模过程。
图3  NELIB插件菜单
2.2.1 典型零部件建模
孢子人孔、法兰等标准零部件的尺寸可以参考相关标准确定,每个标准系列一般只有几个有限的尺寸型号,并且结构形式相同。以HG/T 21515-2005《常压人孔》标准中的人孔设计为例,点击系统菜单“NELIB→人孔手孔”,程序界面如图4所示。选取人孔、手孔所依据的标准和公称直径。驱动模型后,选择保存模型,即可完成对人孔的设计。管妖妖的风花雪月
图4  人孔、手孔设计程序界面
2.2.2 压力容器建模
非标准设备的模型特征有共同之处,但也有各自的特点。例如,压力容器主要由封头、筒体、接管等部分组成。但封头的形式、筒体的开孔数量与方位等有较大差异。因此,对于非标设备,其设计具有较大的自由性,模型只能依据用户的需求通过程序代码实现。以压力容器的设计为例,点击系统菜单“NELIB→压力容器”,程序界面如图5所示。输入筒体直径、壁厚和高度等参数,完成筒体主体的建模。再根据开孔需要,输入孔的方位角参数和位置尺寸参数,完成开孔特征设计。对于封头和接管的设计,与此类似,不再赘述。
图5  压力容器设计程序界面
2.3 零部件库扩展的一般方法
对于一个零部件库,系统应该有良好的可扩展性。下面简要给出本文零部件库扩展的一般方法。
对于标准零部件,其方法为:(1)按照相关标准建立零部件的三维模型模板,并将零部件的每个特征尺寸编号以便其在程序中更好地识别与驱动,然后将三维模型保存在SolidWorks的安装目录下相应文件夹内;(2)采用面向对象的方法,将零部件的特征封装在类对象中,并添加相应的参数驱动方法;(3)设计相应的用户界面,建立用户与模型的链接。
对于非标准零部件,其扩展方法为:(1)详细分析零部件的特征,明确零部件特征的几何拓扑关系,根据其特点将模型的信息数据化;(2)依据前面的分析,采用面向对象的方法,建立零部件的类对象,并依据零部件特征的几何拓扑关系,将零件特征封装在类对象中;(3)设计相应的用户界面,建立用户与模型的链接。
磷酸三钙

本文发布于:2024-09-22 12:55:36,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/28201.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:设计   模型   参数   驱动   程序   特征   尺寸   系统
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议