施 敏,陈新元,湛从昌,鲁腊福,黄智武,左 林
(1.武汉科技大学机械自动化学院,湖北 武汉,430081;2.韶关液压件厂有限公司,广东 韶关,512029)
参数化设计也叫尺寸驱动,是指将参数化模型的尺寸用对应的关系表示,通过人机交互的方式调整图形的一部分尺寸或修改已定义的参数,使图形其他部分相关联的尺寸也随之改变,从而控制图形几何形状,自动实现元件的精确造型。目前,参数化设计的方法通常都是用于标准件的设计[1-3],还未见关于其在非标准件设计中应用的相关报道。
AGC液压缸是HAGC伺服系统中的关键部件。同一系列不同型号的AGC液压缸其零部件结构相似但尺寸不同,本文尝试对这类非标零件采用参数化设计方法进行设计,用Access建立零件数据库,用SolidWorks建立液压缸零部件模型模板[4],通过API接口函数,传递给SolidWorks,利用尺寸驱动法驱动模型模板。用户可以根据自己的设计要求输入液压缸零部件关键参数值,程序会自动生成零件的二维工程图和三维图,并能对零件进行装配得到完整的液压缸的二维工程图和三维装配图。
AGC液压缸主要由缸体、活塞及活塞杆、端盖、密封圈等部分组成。根据各零件的结构特点和不同型号液压缸同一零件结构的差异程度,分别采用不同的方法[5]设计。不同型号AGC液压缸的活塞杆、缸体、端盖等相应部件结构大体一致,仅局部存在细微差异,且结构相对复杂,故采用SolidWorks自带的“系列零件设计表”驱动设计,便于修改;而O形圈、防尘圈等元件结构简单,结构完全相同,仅尺寸不同,因此可以用SolidWorks本身提供的API接口并通过VB驱动设计。AGC液压缸参数化设计主界面如图1所示。
图1 AGC液压缸参数化设计主界面
Fig.1Maininterfaceofparametricdesignforhydrauliccylinder
以AGC液压缸活塞及活塞杆为例,假设系统压力为P,负载压力为PL,活塞杆侧低压为P2,压下力为已知,则可推算出单台AGC缸所需活塞推力F,计算公式为
F=(A1PL-A2P2)/10
(1)
式中:A1为活塞侧面积;A2为活塞杆侧面积。
结合VB,在软件界面添加与上述参数相同数量的Label和Textbox控件,并一一对应命名。通过编程将上述公式中的参数用对应的Textbox输入值代替。运行程序,用户输入所需设计液压缸的基本参数,如活塞负载压力、速比、活塞杆侧低压等,软件会粗略地计算出符合要求的液压缸的缸径、活塞直径等参数。
同一系列的AGC液压缸其零部件的结构比较近似。通过一些主参数就能控制零件的基本结构,如活塞的主参数是活塞的外径、孔径和活塞宽度,缸体的主参数是缸体的外径和缸筒的高度等。对这些零部件进行参数化设计,实际就是通过驱动这些主参数重新建模。因此,创建Access数据库,只需对主参数命名并赋值,如图2所示。
图2 AGC液压缸参数Fig.2 Parameters of AGC hydraulic cylinder
ADO (ActiveX Data Objects)是一个由微软提供用于存取数据源的COM组件,它为多种汇编语言提供了统一的数据访问接口。本设计通过DataGrid控件与ADO绑定实现数据库的建立与访问。由于数据源需要随着用户的需求而变化,因此它们的连接不能在属性中直接设置,而需要通过编程来实现。连接及访问数据库的主要代码如下[6]:
Adodc1.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:学习VB98活塞及活塞杆参数.mdb;Persist Security Info=False"//通过pConn对象连接字符串,连接到数据库Adodc1.CommandType = adCmdText
Adodc1.RecordSource="select * from cylinder3wherecylinder3.缸径="" + Combo4.Test+""order by cylinder3. Φ1DESC"//通过Connection对象访问数据库
根据AGC液压缸活塞及活塞杆的结构特点,采用旋转法建立模型。本设计采用的是表驱动的方式,实际就是将表中的参数与草图中的各个参数对应相关联,通过修改表中的参数值就能修改草图的尺寸,从而完成参数化设计。创建对象,与SolidWorks建立连接,设计代码如下[7]:
Private Sub Command1_Click()
Dim swApp As Object //定义对象
Dim part As Object
Set swApp=CreateObject("SldWorks.Application")
swApp.Visible=True
定义变量:
Set part=swApp.ActiveDoc
Dim s(30) As Long
实现液压缸活塞及活塞杆参数化设计的部分程序代码如下:
s(0)=Frm_main.Adodc1.Recordset.Fields("R1")
s(1)=Frm_main.Adodc1.Recordset.Fields("R2")
……
s(30)=Frm_main.Adodc1.Recordset.Fields("L13")
按设计要求绘制图形。
part.ShowNamedView2"*上下二等角轴测", 8
Set myFeature = part.FeatureManager.FeatureRevolve2(True, True, False, False, False, False, 0, 0, 6.2831853071796, 0, False, False, 0.01, 0.01, 0, 0, 0, True, True, True)//对绘制图形执行旋转凸台命令,生成活塞及活塞杆三维图
End Sub
运行程序,单击绘图按钮,生成活塞及活塞杆三维模型,如图3所示。
单击工程图按钮, 生成活塞及活塞杆的工程图如图4所示。
通过以上述类似的方法完成液压缸盖、缸体等零部件的参数化设计。然后将零件进行装配,完成液压缸三维模型的设计。AGC液压缸三维装配图如图5所示,二维工程图如图6所示。
图3 AGC液压缸活塞及活塞杆三维模型
Fig.33DmodelofthepistonandpistonrodforAGChydrauliccylinder
图4 AGC液压缸活塞及活塞杆二维工程图
Fig.42DengineeringdrawingofthepistonandpistonrodforAGChydrauliccylinder
图5 AGC液压缸三维装配图Fig.5 3D assembly drawing of AGC hydraulic cylinder
图6 AGC液压缸二维工程图Fig.6 2D engineering drawing of AGC hydraulic cylinder
以三维设计软件SolidWorks为平台,结合VB、数据库等软件工具,为非标准件设计自定义零件库,用户可即时更新零件库,快速建立产品模型,提高生产效率。同时用户根据自定义的零件库,可直接选择参数进行建模,缩短设计生产周期。多个零件装配的实现,提高了模型的可视性,真实反映了设计效果。
[1] 孟祥旭,徐延宁.参数化设计研究[J].计算机辅助设计与图形学学报,2002,14(11):1086-1090.
[2] Nahm Y E, Ishikawa H. A new 3D-CAD system for set-based parametric design[J].The International Journal of Advanced Manufacturing Technology, 2006, 29(1-2): 137-150.
[3] 丁永建.基于SolidWorks的标准件库系统设计与实现[D].成都:电子科技大学,2010.
[4] 王宗彦,吴淑芳.SolidWorks机械产品高级开发技术[M]. 北京:北京理工大学出版社,2005:15-17.
[5] 陈奎生.液压与气压传动[M].武汉:武汉理工大学出版社,2001:35-36.
[6] 刘恩涛,赵耀峰.VisualBasic6.0编程技巧与实例分析[M],北京:中国水利水电出版社,1999:67-68
[7] 江洪.SolidWorks 二次开发与实例解析[M]. 北京:机械工业出版社,2004:51-53.