基于SolidWorks方程式及API的容积式换热器参数化设计*
2017-11-13王晓翔
王晓翔
(陕西普光能源技术有限公司)
基于SolidWorks方程式及API的容积式换热器参数化设计*
王晓翔
(陕西普光能源技术有限公司)
为提高容积式换热器的绘图效率,简述了基于SolidWorks的参数化设计方式,介绍了SolidWorks方程式结构和API对象的层次结构。分析了两种方式的工作原理并详细介绍了系统工作流程。使用VB语言设计交互界面,设计出容积式换热器的参数化设计系统。结果表明:该系统具有界面简洁和绘图准确的特点,能大幅提高设计效率。
容积式换热器 API SolidWorks 参数化设计
容积式换热器具有换热效率高、储水能力大的优点,被广泛应用于化工、石油、机械、电力、集中供暖及食品制药等领域[1]。但它的参数较多,无论是前期设计,还是后期绘制制造工程图,均需要花费大量的时间。
参数化设计也称为变形设计,是指在不改变基本原理的基础上,为满足不同的功能需求,通过参数改变产品的局部构造,对具体结构进行调整形成参数不同的同类产品[2,3],参数化设计是企业目前广泛采用的机械设计方法,能大幅提高零件的重复利用率,从而提高设计效率。笔者首次将SolidWorks方程式和API的参数化设计方式相结合,对复杂的容积式换热器进行参数化设计,以提高设计效率。
1 SolidWorks参数化设计方式
SolidWorks是世界上第一款基于Windows的三维参数化设计软件[4],在国内外广泛应用。但SolidWorks是一款通用设计软件,不能完全满足每个行业的特殊要求,为此,它提供了两种不同形式的变形设计,分别为:
a.基于方程式的变形设计[5,6]。该方式的主要在不同零件参数之间建立一定的尺寸关系,进行链接,从而达到只改变少量的主动参数即可对全部参数进行修改的目的。该方式优点是简单易用,并支持特征压缩,几乎不需要复杂编程;缺点是变形能力较弱,不适合较大的变形。
b.基于API(Application Programing Interface)的变形设计[7,8]。该方式主要通过VB、C++等高级程序语言调用SolidWorks的API函数,使用程序驱动软件绘图。优点是能灵活地达到较大的变形设计目的;缺点是需要熟练运用程序语言、API函数等,前期需要较复杂的编程。
笔者同时使用上述两种形式的变形设计,使用VB语言建立交互界面,对容积式换热器进行参数化设计。
2 SolidWorks变型设计基础
2.1 方程式结构
在SolidWorks零件中有3种形式的方程式,分别为“全局变量”、“特征”、“尺寸”,用户可单独使用或联合使用。
“全局变量”一般用于存储主动参数,其表示方式为:
A=P
A——全局变量名称;
P——全局变量数值。
“特征”用于对特征的压缩或解压缩,表示方式为:
B=S
B——特征名称;
S——零部件状态,有压缩和解压缩两种状态。
“尺寸”一般用于存储从动参数,其表示方式为:
C@D=P
C——草图或特征的参数名称,如长、宽等;
D——零件草图或特征名称。
2.2 特征的压缩与解压缩
特征的压缩(suppressed)是指将拉伸、切除等特征从产品装配体中隐藏,并从电脑内存中移除,但并不删除,当工艺参数要求需要该特征时,可对它解除压缩(unsuppressed)。压缩与解压缩相对于删除与添加可以减少电脑工作时占用的内存,提高设计效率[9]。
SolidWorks支持通过IF判断语句对特征实施条件压缩,即根据某些条件是否满足对零部件进行压缩或解压缩,如:排污口=IF(“直径”<50,suppressed ,unsuppressed)。
2.3 SolidWorks API
对SolidWorks进行二次开发的方式一般有两种[10,11]:一种是基于COM的,可以生成*.dll格式的文件,作为插件在SolidWorks中运用;另一种是基于OLE的,可以开发出独立的第三方exe程序。笔者选择基于OLE技术的二次开发,开发出exe形式的应用程序。
SolidWorks对象模型结构如图1所示,它是一个多层次的树形结构,每一层均包含若干个对象,每个对象封装了特定的属性、事件和方法。
图1 API对象结构
SolidWorks 提供了几百个 API函数供用户使用,常用的API函数[12]及其注解为:
NewDocument 新建
SaveAs2 保存
SelectByID 选择
AddMate 配合
CreateCircleByRadius2 创建圆
FeatureExtrusion2 拉伸实体
其中,SelectByID是最重要的函数之一,可以选择实体特征、草图以及点、线、面等所有的对象,其格式为:Boolstatus =PART.SelectByID(Name,Type,X,Y,Z)。其中,name指选择对象的名称;Type指对象的类型;X,Y,Z指被选择对象上任意一点的坐标。
3 设计实例
3.1 容积式换热器结构
换热器是热交换系统的关键产品,主要由筒体、封头、底座、管箱、法兰、仪表接管及机芯组件等零部件组成,如图2所示。
图2 容积式换热器结构
系统工作流程如图3所示,对于筒体的直径、厚度及高度等只有参数变化而不涉及到形状变化的部分,采用方程式设计。对于换热器筒体与法兰以及换热机芯之间的装配,采用API函数和VB语言进行二次开发的方式来实现。
3.2 基于方程式的变形设计
先设置底层的全局变量,然后将从动参数与全局变量建立方程式进行链接。可以通过只改变少数全局变量即达到修改全部参数的目的。
图3 系统流程
3.2.1 特征压缩
温度计、压力表支管数量一般有2~4个,应根据实际工艺参数而定。可以在前期将4个支管全部绘制出来,根据工艺条件判断是否将其压缩,对于第4个支管,赋予以下方程式:
支管4=IF(“支管数量”=4,unsuppressed,suppressed)
该方程式表示,当需要4个支管时,第4个支管不压缩;否则,被压缩。
3.2.2 多条件判断
换热器支座高度与换热器直径的关系见表1,这里可以使用iff多条件判断函数建立方程式,处理上述复杂关系。以下方程式可以使支座高度根据所输入的参数自动变化:
"h@底座" = iif ( "直径" <= 1000 ,350 ,iif ( "直径" <= 1400 ,420 ,iif ( "直径" <= 1800 ,460 ,500 ) ) )
表1 支座高度 mm
3.2.3 链接外部文件
方程式可以链接到外部的TXT文件,进行数据传输。通过VB生成的exe应用程序,修改TXT文件中的全局变量,进而修改所有参数,满足新工艺条件的要求。程序核心代码如下:
Open App.Path &"" &Fillname &".txt" For Input As #1
Do While Not EOF(1)
i = i + 1
Line Input #1,LStr : L = InStr(LStr,"=")
LStr = Left(LStr,L) : LStr = LStr &A(i)
MyStr = MyStr &LStr &vbCrLf
If i = n Then Exit Do
Loop
修改全局变量后,所有的方程式快速地逐次自动求解,可以节省大量时间。
3.3 基于API的变形设计
对于换热器筒体与法兰以及换热机芯之间的装配,使用方程式技术比较难实现,这里采用API函数和VB语言结合的方式来灵活实现。对于筒体与第1个法兰零件装配的核心代码与注释如下:
…
′链接SolidWorks
Set SWAPP=CreateObject("SldWorks.Application")
′添加对应的法兰零件,Name1为第1个法兰的名称
boolstatus = PART.AddComponent(Name1,0,0,0)
′整理点对象参数,TT为筒体名称,ZPT为装配体名称
Temp1 = "Point1@原点@Name1-1@ZPT"
Temp2 = "Point1@3DSketch1@TT-1@ZPT"
′选择点对象
boolstatus = PART.SelectByID(Temp1,"",…)
boolstatus = PART.SelectByID(Temp2,"",…)
′点与点进行装配
Set myMate = PART.AddMate4(0,-1,False,…)
…
′面与面装配
Set myMate = PART.AddMate4(3,0,False,…)
′重建模型
PART.EditRebuild3
…
其他零件与筒体之间的装配代码与上述代码类似,不再赘述。该程序与上述修改TXT文件的程序可以整合到一起,交互界面如图4所示,界面简洁易懂,又具有灵活的变形功能。
图4 程序交互界面
4 结束语
提出一种基于SolidWorks方程式和API的参数化设计方式,在零件层次和装配体层次分别运用方程式和API函数对容积式换热器进行参数化设计,使用VB语言建立交互界面。该参数化设计系统界面简洁且变形灵活,能大幅提高设计效率。
[1] 芦潮,朱敦智.盘管式与容积式储热水箱供水实验研究[J].太阳能学报,2008,29(5): 569~573.
[2] 钱婷婷.液压支架变型设计方法及应用研究[D].苏州: 苏州大学,2015.
[3] 李振兴,王宗彦,曾清平.配置产品变型设计技术研究[J].煤矿机械,2012,33(11): 251~253.
[4] 刘太冉,崔焕勇,王海燕,等.基于SolidWorks的修形直齿锥齿轮设计系统[J].济南大学学报(自然科学版),2014,28(6): 446~451.
[5] 高捷.基于SolidWorks的施工升降机CAD系统研究与开发[D].西安: 长安大学,2013.
[6] 宋龙,马龙,贾志欣.基于SolidWorks的曲柄压力机传动机构部件参数化技术研究[J].锻压技术,2015,40(2): 107~111.
[7] 马咏梅,丁行武,李鑫.SolidWorks二次开发在机械零件设计中的应用与研究[J].机械传动,2010,34(1): 72~74.
[8] 许书生,徐兵,李春光,等.基于SolidWorks二次开发的轴向柱塞泵参数化建模设计[J].机床与液压,2010,38(9): 71~73.
[9] 刘敬,朱长才,孙家广.基于SolidWorks的设备库的研究和实现[J].计算机应用研究,2006,23(1): 132~135,140.
[10] 罗臣强,仲梁维,朱娟.基于配置技术的起重机起升机构快速设计系统[J].计算机系统应用,2012,21(2): 18~21.
[11] 田文涛,贺小华.基于VB技术的SolidWorks二次开发与应用[J].计算机工程与科学,2009,31(7): 65~67,76.
[12] 辛杨桂.基于VB.NET的SolidWorks二次开发在液压设计中的应用[D].沈阳: 东北大学,2011.
ParametricDesignoftheVolumetricHeatExchangerBasedontheSolidWorksEquationandAPI
WANG Xiao-xiang
(ShaanxiPuguangEnergyTechnologyCo.,Ltd.)
In order to improve the drawing efficiency of the volumetric heat exchanger,the SolidWorks-based parametric design methods,the structure of the SolidWorks equation and the hierarchy of the API object were introduced and the working principle of aforementioned two methods was analyzed and the working flow of the system was introduced in detail.Having VB language used to design the interactive interface and the parametric design system of the volumetric heat exchanger was implemented to show that,the system has simple interface,accurate drawing and it can greatly improve the design efficiency.
volumetric heat exchanger,API,SolidWorks,parametric design
王晓翔(1991-),工程师,从事化工及新能源的研究,originalcandy@163.com。
TQ051.5
A
0254-6094(2017)04-0410-04
2016-10-13)