APP下载

某型变速箱计算机辅助模块化设计

2019-08-20史素华

祖国 2019年14期
关键词:模块化设计二次开发变速箱

史素华

关键词:模块化设计   变速箱   二次开发   SW   VB

模块化思想起源大工业生产,其目的在于简化设计程序和制造过程,缩短产品研制和设备准备的时间。在保持产品基本模块的基础上,通过模块化、系列化设计,可以方便地实现内部功能的整合、外部功能的扩展,既保持了成熟产品的内在优势,又大大拓宽了产品创新发展的空间。模块化设计思想是建立在系统化设计方法的基础之上,将设计任务由抽象到具体(由设计的任务要求到实现该任务的方案或结构)进行层次划分,拟定出每一层欲实现的目标和方法,由浅入深、由抽象至具体地将各层有机地联系在一起,整个设计过程系统化,设计有规律可循,有方法可依,易于设计过程的计算机辅助实现。本文主要介绍了基于SolidWorks、采用支持ActiveX技术的面向对象的编程语言VB对某型变速箱的模块化设计。

一、开发原理

变速箱的模块化设计按照模块化的设计思想将其模块划分

SolidWorks为二次开发提供了大量的API对象,这些对象涵盖了全部的SolidWorks的数据模型,通过对这些对象属性的设置和方法的调用,就可以在用户自己开发的DLL中实现与SolidWorks相同的功能。Sldworks对象为VB对SolidWorks工作环境进行访问处理提供了接口。通过此对象可以对SolidWorks工作环境添加菜单、删除菜单、添加工具条、打开文件、新建文件、退出SolidWorks系统。用VB调用SolidWorks中的API函数,还可以完成零件的建造和修改;零件各特征的建立、修改、删除和压缩等各项控制;零件特征信息的提取,如特征尺寸的设置与提取,特征所在面的信息提取及各种几何和拓扑信息;零件的装配信息;零件工程图纸中的各项信息等。SW系统开发主要有两种方法:

第一种:用人机交互形式建立模型,设置合理的设计变量,再通过V B程序驱动设计变量实现模型的更新,这种方法编程较简单,通用性好;

第二种:是完全用程序,实现三维模型的参数化设计以及模型的编辑,这种方法编程较前者复杂,但可以实现对具有复杂形体的零件造型,如生成精确的渐开线齿轮齿廓。

二、某型变速箱计算机辅助模块化设计系统

变速箱本身复杂,功能逻辑强,可靠性要高,二次开发系统相应的较单个模型庞大的多。本文采用两种交互的方法,依据变速箱零部件的结构,功能以及零部件的特征,结合参数化进行设计。第一种方法主要用于单个零件的静态特征参数设定,这样可以达到时时对零件进行参数修改;第二种方法主要是编程利用SW平台提供的API接口编写应用程序,通过应用程序来开发,动态建立参数化的模型。变速箱的复杂特征、运动特征是一系列的点拟合形成。尺寸驱动对简单的、非复合特征容易驱动,对于复合、交叉特征就只能用编程的方法。

该系统主要由四个模块组成,即用户界面模块、变速箱结构数据模块、变速箱基体模型模块、变速箱开发模块。

(一)用户界面模块

根据前述变速箱设计方法和特点,利用VB开发用户界面。

(二)变速箱结构数据模块

变速箱结构数据模块包括两类数据,一是典型变速箱各个零件尺寸参数数据,二是,变速箱的动力传动参数数据。用户可根据设计需要选择和调用,并可以通过系统界面对原始的变速箱参数进行更改,生成设计需要的实体三维模型。

(三)变速箱基体模型

变速箱基体模型是使用SW 2008实体三维建模软件按照1:1模型创建的,综合了通用变速箱的基本特征和零部件。为变速箱的开发模块奠定基础。

(四)变速箱开发模块

变速箱开发模块是在用户界面的管理下,在变速箱结构数据模块和变速箱基体模块的基础上更具自己的实际设计在界面中修改变速箱参数数据。

模块应用程序开发与VB开发其他程序类似。SW本身提供了大量的接口函数,所有的函数名与VB Script的函数名相类似,灵活运用接口函数可以方便地在SW中实现变速箱的参数化实体建模。SW的调用和变速箱单个零件实体模型生成的部分代码如下:

Dim swApp As Object

Dim Part As Object

Dim SelMgr As Object

Dim boolstatus As Boolean

Dim longstatus As Long, longwarnings As Long

Dim Feature As Object

'建立零件

Set swApp = CreateObject("SldWorks.Application")

Set swModel = swApp.ActiveDoc

Set Part = swApp.NewPart

Set Part = swApp.ActiveDoc

變速箱单个零件实体模型生成的部分代码:

Sub main ()

Set swApp = CreateObject("sldworks.application")

Set Part = swApp.NewPart

Set Part = swApp.ActiveDoc

Set SelMgr = Part.SelectionManager

swApp.ActiveDoc.ActiveView.FrameState = 1

boolstatus = Part.Extension.SelectByID2("前视基准面", "PLANE", 0, 0, 0, False, 0, Nothing, 0)

Part.ActivateSelectedFeature

Part.ClearSelection2  True

Part.ClearSelection2  True

Dim SkCircle As Object

Set SkCircle = Part.SketchManager.CreateCircle(0, 0, 0, -0.07061428243474, 0.03353548752834, 0)

Part.ClearSelection2  True

Set SkCircle = Part.SketchManager.CreateCircle(0, 0, 0, -0.0358548720039, 0.007588321995465, 0)

Part.ClearSelection2  True

boolstatus = Part.Extension.SelectByID2("Arc1","SKETC

HSEGMENT", -0.0789369581717, 0.00220306122449, 0,False,

0, Nothing, 0)

Dim Annotation As Object

Set Annotation = Part.AddDimension2(-0.125446,0.019338,

0)

Part.ClearSelection2  True

Part.Parameter("D1@草圖1").SystemValue = 0.12

boolstatus = Part.Extension.SelectByID2("Arc2", "SKETC

HSEGMENT",-0.0343861645209,0.01346315192744, 0, False, 0, Nothing, 0)

Set Annotation = Part.AddDimension2(-0.0911762, 0.0144423, 0)

Part.ClearSelection2  True

boolstatus = Part.Extension.SelectByID2("D1@草图1@零件5.SLDPRT", "DIMENSION", 0, 0, 0, False, 0, Nothing, 0)

Part.Parameter("D2@草图1").SystemValue = 0.09

Part.ClearSelection2  True

Part.ShowNamedView2  "*上下二等角轴测", 8

Part.ClearSelection2  True

Part.FeatureManager.FeatureExtrusion2  True, False, False, 0, 0, 0.01, 0.01, False, False, False, False, 0.01745329251994, 0.01745329251994, False, False, False, False, 1, 1, 1, 0, 0, False

Part.SelectionManager.EnableContourSelection = 0

End Sub

三、结语

零件的参数化设计可以极大地提高设计效率,基于ActiveX技术是当今软件开发的热点。这里基于SW的应用程序二次开发,利用模块化的设计思想设计系统开发的总体框架和实现方法,利用VB编程和SW建模技术,实现了变速箱的模块化计算机辅助设计,减少了设计周期,提高了生产效率。

参考文献:

[1]朱朝宽.利用VB开发solidworks标准件实体库[J].机械设计与制造工程,2005,(03):37.

(作者单位:山东省民族中等专业学校)

猜你喜欢

模块化设计二次开发变速箱
浅谈基于Revit平台的二次开发
浅谈Mastercam后处理器的二次开发
带你走近一个你不知道的自动变速箱
西门子Easy Screen对倒棱机床界面二次开发
汽车装配工艺模块化设计研究
浅析农机用变速箱壳生产工艺的改进
艾里逊变速箱助力日野FE系列
基于Pro/E二次开发的推土铲参数化模块开发