|
% H2 y- ^/ I7 j( H
: f) ^" y" X$ h0 y2 j基于Solidworks二次开发的活塞压缩机零件参数化设计 - U9 {+ W4 B% {
发表时间: 2008-4-28 作者: 白亮亮*唐良宝 来源: 万方数据
& x5 E% _5 @5 L0 v( M5 k |3 f关键字: Solidworks 二次开发 活塞压缩机 参数化设计
# @! y7 G; _7 X* U+ X# q利用visual basic6. 4来开发Solidworks,建立一个活塞压缩机零件的参数化建模体系,并通过实例说明具体设计的方法,达到缩短活塞压缩机设计周期的目的,比较基于Pro/E二次开发的参数化设计方法,利用visual basic6. 4来开发Solidworks更容易操作。
0 g0 v0 x$ ?% e" T8 v 0引言
3 Z2 _9 }* l: J4 X3 R3 k$ r2 x- x
# s5 y( z+ [ l ~5 B7 g7 D7 e l 活塞压缩机是通用机械,在化工、制冷等领域有着广泛的应用。在对活塞压缩机进行系列设计过程中,经常会重复用到结构相同或相似而尺寸不同的一些零件,如活塞、连杆、连杆螺栓等。传统的设计方法是将每个零件都单独设计,占用了设计人员大部分的时间和精力,严重影响了新产品的开发周期,从而制约了企业的技术进步和持续发展。随着CAD技术在企业中应用的不断深人,各种CAD设计软件得到了广泛的应用。Solidworks软件是Solidworks公司推出的世界上第一个专门在windows环境下进行机械设计的三维CAD软件,Solidworks软件提供完整的、免费的开发工具(API ),用户可以用微软的Visual Basic, Visual C++或其它支持OLE的编程语言建立自己的应用方案,从而实现参数化设计的目的,有效缩短产品的设计周期。本文通过Solidworks的二次开发技术,研究分析了活塞压缩机主要零件的参数化设计。" O! A1 }. U+ i2 e/ X2 K
0 P0 X0 C Y0 d' x: `7 H
1 Solidworks二次开发技术( J. H0 o+ Y/ j; P
( u7 x2 |) f$ Y) [
SolidWorks软件支持OLE标准,可以通过软件中提供的完整的、免费的二次开发工具一SolidWorksAPI应用程序编程接口)完全实现OLE自动化。
|- n) L% s4 n6 ~ 4 r: c, n- o; W3 g4 ?$ Z$ T) [
SolidWorks API是SolidWorks的OLE编程接口,为程序员提供了大量的OLE对象以及对其所拥有的方法、属性和事件(如图1)。程序员可以在通用的开发平台,如Visual Basic,VBA,Visual C ++和Delphi中对这些OLE对象及其方法和属性进行操作,从而在自己开发的应用软件中实现诸如生成直线、构造实体、检查曲面表面参数等几乎所有SolidWorks软件的现有功能。& J. T: Q/ b6 l5 b
; ~1 D0 u5 [" [, O! S6 O, x P6 L6 D
) ?0 m& b7 V! [4 e) M
/ c; Y: Z% a# a! |5 e# t( V( p
( o9 j3 l3 V9 A+ L 其中最为常用的是ModelDoc2对象,此对象属于模型层,是SolidWorks的子对象,用ModelDoc2对象可以实现视图设置、轮廓线修改、参数控制、对象选择/打开和保存文档、生成编辑特征参量、生成框架等与实体模型相关的各种操作。6 p5 R( w9 @& U, \+ z7 U
; K8 h9 W( b& H, Z2 y
任何支持OLE和COM的编程语言都可以作为SolidWorks的开发工具。最简单的二次开发工具是VBA,在涉及Excel时用VBA最为方便,VBA常用于录制宏,得到基本程序框架。易学易用的高级开发语言是VB,但功能有限。功能强大的语言是Visual C ++,但是人门较难。Delphi集中了VB和Visual C++两者的优点,学习过程中很容易上手,而且功能也非常强大,尤其在界面设计、数据库编程和网络编程方面更具有独到之处,但遗憾的是SolidWorks常常不支持Delphi + OLE。总之,各种软件都有各自的特点与不足,设计人员根据需要和要求选择合适的开发工具。
7 ?0 D9 k! \* U b! x , W# v# w4 y" f7 s7 ~
2利用VB开发的过程. ~" N! c! ~4 B, m
. K1 `, _5 e- I9 V) j7 ^1 g7 f' w
本文通过VB编程软件来对Solid`Vorks进行二次开发,所以主要介绍VB的开发过程,具体的过程如下:
" w7 n7 x6 O% M v+ z& D
! R7 E9 A/ D, Q$ K. A& ^0 D. x (1)确定能反映零件特征的尺寸参数作为主要参数,并以此作为设计变量,同时确定尺寸相互关系。
) C4 i8 t, E( a3 p: C4 ?; b " A1 g+ p/ d: z$ f- L: k' G/ `" z
(2)提出设计意图,分析将要建立的模型,打开VB程序设计软件,根据设计意图创建窗体界面,创建程序主界面。- f" F, Q1 N/ p# K$ l3 f: }/ k" h; T
" {5 m) a# X0 d. a7 K1 l* L (3)基于VB的。olidworks二次开发,最重要的是程序代码的编写。代码可以完全由开发者写人,即完全用程序实现三维模型的参数化设计以及模型的编辑,这种方法编程较为复杂,但可以实现对具有复杂形体的零件造型,这种方法要求开发者对solidworks API函数非常熟悉,但是solidworks API函数有几百个之多,对于初学者往往不容易掌握。一个简单实用的方法是先录制使用solidworks用户界面执行的操作,即录制宏,获得宏操作代码,将其复制添加到程序所需部分,然后编辑修改以达到程序要求,通过程序驱动设计变量实现模型的建立和更新,这种方法编程较简单,通用性好。
0 l8 ^9 d/ z9 Z4 U# v+ G' h 5 G# q0 [7 k* f# t g3 X
(4)通过给出不同的系列尺寸来自动生成零件的三维模型,从而任意实现类似零件三维模型的创建。
5 l' u( C. H9 B. M- s0 h4 H7 [! h4 g7 ], Z P7 l( m/ O& f% a" F1 e
3实例分析: _, D9 {: ?& F7 r' \1 s
0 ~# z0 u' W9 a- `& i
活塞压缩机的零件数量较多,可以将主要零部件和常用的标准零部件分别建立数据库,方便设计人员使用和添加扩充零件模型数量。这里仅对活塞压缩机中的活塞件的设计过程举例分析。
7 H! Q& d" P/ T; a. W基于Solidworks二次开发的活塞压缩机零件参数化设计 ) }1 i- J3 {- r- M3 C/ `- V* @0 h _
8 i! K3 e; p( [7 j3 _2 e
发表时间: 2008-4-28 作者: 白亮亮*唐良宝 来源: 万方数据 & C# x# |4 S; f3 R9 B) }/ q3 q
关键字: Solidworks 二次开发 活塞压缩机 参数化设计 / f& v9 @4 R3 N& i
利用visual basic6. 4来开发Solidworks,建立一个活塞压缩机零件的参数化建模体系,并通过实例说明具体设计的方法,达到缩短活塞压缩机设计周期的目的,比较基于Pro/E二次开发的参数化设计方法,利用visual basic6. 4来开发Solidworks更容易操作。
% P' h& G; N6 ]# r0 ~% n0 e$ y, K1 |- ~% g0 i+ T+ y1 |
3. 1基本参数确定
& _2 m" v: X; k. ? 4 q$ c! G0 E0 Z3 U' G0 n4 |
活塞压缩机中采用的活塞基本结构型式有:筒形、盘形、级差式、组合式、柱塞式等。本文以全封闭式压缩机无环部筒形活塞为例分析参数化设计过程。
$ Q" l6 t ^& z7 Q' t3 W9 U$ \ 1 ~6 }- N% m% E% }
: m# r P z7 R3 O% b5 |; D$ X/ e$ p2 ^0 @( F1 Y* d6 @5 }+ C
. P, J- Y0 g- u& M: |. U7 B) C7 [2 C' k1 p" _( J' |- s' A+ l$ F! E0 z
零件的实体建模,要求对实体进行系列化的参数化设计。根据实体的外形尺寸来选择适当的参数变量作为主要参数。如图2所示筒形活塞的基本参数为:活塞直径D、活塞销外径d、连杆宽度B等基本参数确定。
1 T; j6 `* Y. O9 J9 m( j 2 h: S2 G+ ~& R5 Z' Z8 V0 Y5 u. w
其它尺寸要素可以通过关系表达式确定。具体几何关系表达式如下7 ]( s; o' y6 `7 e( c
6 z7 R' O2 |) j; X
活塞高度:H=CH·D
1 P. F0 K# W4 S' z) q; G 活塞销中心线高度:H1=CH1 · H) v" B! O; ?) E3 g8 ]1 Y
筒形活塞内径分别为D1 = D-20,D2=D-10
2 Y2 z! r5 j" D 活塞端面厚度;t=0.05xD) U5 l3 _2 C. @- ?2 K! l
* \& a% u o- B4 y- } 其中CH,CH1分别为活塞高度系数和活塞销中心线高度系数,其中CH取值范围0.6~1.3,CH1的取值范围0. 4~0.5。. _8 s0 R. m2 d3 f% V0 I
' k; g' r! m& ?- g" I/ \! b/ P! i
# n k# u" r# K/ L# Z8 Y2 ?* u. K3 w
7 s, D0 m% l2 }) e
% [3 f/ _9 [" R- O: S# r A
: \. N% R" c. _% X, W& v; G9 M
* h, w3 P: D6 x h/ _ 3. 2程序界面' v7 g! t+ A% ]7 X9 N4 W3 f% C
0 e6 N1 l& k/ Y- ~6 @7 s5 j2 e
运用VB可以方便的建立程序的主界面如图4所示,设计人员只需要在输人参数部分输人相应的参数,默认情况下,零件的参数如表1所示,活塞其它尺寸参数与输人参数之间的关系在输人参数下方有说明,然后点击创建就可以建立所要求的零件模型。# F; q2 r6 S e |' u9 p
2 G" ]) [) u- u( J4 C3 ] 3. 3程序代码的编写8 p- ?& ]+ E4 G
5 S9 H$ \5 g! O' k" W# `# I8 Z
对于程序代码的编写,简单实用的方法是先录制使用Solidworks用户界面执行的操作,即录制宏,获得宏操作代码,将其复制添加到程序中"创建"控件的click事件下,然后在代码中找到定义实体模型的尺寸值,用对应的尺寸参数代替这些尺寸值。编辑修改以达到程序要求,通过程序驱动设计变量实现模型的建立和更新,这种方法编程较简单,通用性好。具体代码如下:( f4 W. z' y7 `0 d5 i
0 i; o9 o& ~ R: ` b9 c
8 T/ u6 [' b: m" i6 S8 M: M
$ R' W" {; r m5 |
* O; u( p& r/ P4 e4 E* Y5 y
- M- e0 k" K+ H3 e8 R
, \+ n4 o+ c% y8 E 以上是模型创建的第一步的程序代码,其余的程序代码与此类似,无论是录制宏,获得宏操作代码,然后将其复制添加到程序所需部分编辑修改以达到程序要求,还是自己编译程序代码都要有以上的格式才能够运行。 基于Solidworks二次开发的活塞压缩机零件参数化设计 . B+ p r5 t O% G# I
发表时间: 2008-4-28 作者: 白亮亮*唐良宝 来源: 万方数据
" @, m$ t/ M2 |: l! f" T( h. U2 n关键字: Solidworks 二次开发 活塞压缩机 参数化设计 5 K3 G% D0 c- \7 p5 t% M: h0 s1 ~
利用visual basic6. 4来开发Solidworks,建立一个活塞压缩机零件的参数化建模体系,并通过实例说明具体设计的方法,达到缩短活塞压缩机设计周期的目的,比较基于Pro/E二次开发的参数化设计方法,利用visual basic6. 4来开发Solidworks更容易操作。/ S d: U9 b/ z: W& h
: ~" ]& v3 v9 t Q 3. 4程序运行结果
$ n" w" z8 i2 ~' Q/ j H- C( i( D ! t6 }- j1 J" j; X5 T5 @/ W+ ]
运行程序,输人相应的参数,点击"尺寸计算",程序根据参数的约束关系表达式计算出其它的尺寸参数,然后点击"创建"建立与用户输入参数相对应的零件模型。创建的零件模型如图4。
7 c' H, i' U$ l9 p3 X: h& s+ @. p9 g8 J6 p
& v3 \9 c& P. y2 g8 Z' U
6 P9 o5 Q# L; p& N1 l0 m" _0 Y# k1 @ b" R* w- N3 O% x
4总结
+ S7 ~) i+ u; G3 b$ T+ g
0 {/ F7 L5 o; j& s 本文通过VB对中档建模软件solidworks进行二次开发,结合活塞压缩机设计的实际应用,实现了活塞压缩机零件设计过程的参数化、白动化。有效的缩短压缩机的开发和设计周期,大大的提高了工作效率,也使操作更加的简单方便。而且为压缩机进一步的CAE设计提供3D模型。
' l5 X% x) S2 y+ m: }+ M* `
& k2 Q6 f2 F( t1 z8 O d1 r 运用solidworks二次开发技术有以下特点:
' t8 W* f, y8 r- G3 f! t6 B & |9 R6 w X) K7 @7 ]
(1)同样可以实现零件的参数化设计,对于压缩机设计人员,运用VB开发solidworks的方法更容易上手,能缩短参数化设计时间,提高效率;
: l) ?# V# |/ C a4 E1 V
2 g$ a& F6 g$ c; B$ ` (2)对于生成的三维零件,在solidworks中可以很方便的生成工程图。 , a" ?; Y& r# X9 a5 L' L
! o, l3 c2 J# o5 `+ c9 f2 I
3 Q% y7 G- B- I+ e% m/ s7 A
|
|