史素華
關(guān)鍵詞:模塊化設(shè)計(jì) ? 變速箱 ? 二次開發(fā) ? SW ? VB
模塊化思想起源大工業(yè)生產(chǎn),其目的在于簡(jiǎn)化設(shè)計(jì)程序和制造過(guò)程,縮短產(chǎn)品研制和設(shè)備準(zhǔn)備的時(shí)間。在保持產(chǎn)品基本模塊的基礎(chǔ)上,通過(guò)模塊化、系列化設(shè)計(jì),可以方便地實(shí)現(xiàn)內(nèi)部功能的整合、外部功能的擴(kuò)展,既保持了成熟產(chǎn)品的內(nèi)在優(yōu)勢(shì),又大大拓寬了產(chǎn)品創(chuàng)新發(fā)展的空間。模塊化設(shè)計(jì)思想是建立在系統(tǒng)化設(shè)計(jì)方法的基礎(chǔ)之上,將設(shè)計(jì)任務(wù)由抽象到具體(由設(shè)計(jì)的任務(wù)要求到實(shí)現(xiàn)該任務(wù)的方案或結(jié)構(gòu))進(jìn)行層次劃分,擬定出每一層欲實(shí)現(xiàn)的目標(biāo)和方法,由淺入深、由抽象至具體地將各層有機(jī)地聯(lián)系在一起,整個(gè)設(shè)計(jì)過(guò)程系統(tǒng)化,設(shè)計(jì)有規(guī)律可循,有方法可依,易于設(shè)計(jì)過(guò)程的計(jì)算機(jī)輔助實(shí)現(xiàn)。本文主要介紹了基于SolidWorks、采用支持ActiveX技術(shù)的面向?qū)ο蟮木幊陶Z(yǔ)言VB對(duì)某型變速箱的模塊化設(shè)計(jì)。
一、開發(fā)原理
變速箱的模塊化設(shè)計(jì)按照模塊化的設(shè)計(jì)思想將其模塊劃分
SolidWorks為二次開發(fā)提供了大量的API對(duì)象,這些對(duì)象涵蓋了全部的SolidWorks的數(shù)據(jù)模型,通過(guò)對(duì)這些對(duì)象屬性的設(shè)置和方法的調(diào)用,就可以在用戶自己開發(fā)的DLL中實(shí)現(xiàn)與SolidWorks相同的功能。Sldworks對(duì)象為VB對(duì)SolidWorks工作環(huán)境進(jìn)行訪問(wèn)處理提供了接口。通過(guò)此對(duì)象可以對(duì)SolidWorks工作環(huán)境添加菜單、刪除菜單、添加工具條、打開文件、新建文件、退出SolidWorks系統(tǒng)。用VB調(diào)用SolidWorks中的API函數(shù),還可以完成零件的建造和修改;零件各特征的建立、修改、刪除和壓縮等各項(xiàng)控制;零件特征信息的提取,如特征尺寸的設(shè)置與提取,特征所在面的信息提取及各種幾何和拓?fù)湫畔?零件的裝配信息;零件工程圖紙中的各項(xiàng)信息等。SW系統(tǒng)開發(fā)主要有兩種方法:
第一種:用人機(jī)交互形式建立模型,設(shè)置合理的設(shè)計(jì)變量,再通過(guò)V B程序驅(qū)動(dòng)設(shè)計(jì)變量實(shí)現(xiàn)模型的更新,這種方法編程較簡(jiǎn)單,通用性好;
第二種:是完全用程序,實(shí)現(xiàn)三維模型的參數(shù)化設(shè)計(jì)以及模型的編輯,這種方法編程較前者復(fù)雜,但可以實(shí)現(xiàn)對(duì)具有復(fù)雜形體的零件造型,如生成精確的漸開線齒輪齒廓。
二、某型變速箱計(jì)算機(jī)輔助模塊化設(shè)計(jì)系統(tǒng)
變速箱本身復(fù)雜,功能邏輯強(qiáng),可靠性要高,二次開發(fā)系統(tǒng)相應(yīng)的較單個(gè)模型龐大的多。本文采用兩種交互的方法,依據(jù)變速箱零部件的結(jié)構(gòu),功能以及零部件的特征,結(jié)合參數(shù)化進(jìn)行設(shè)計(jì)。第一種方法主要用于單個(gè)零件的靜態(tài)特征參數(shù)設(shè)定,這樣可以達(dá)到時(shí)時(shí)對(duì)零件進(jìn)行參數(shù)修改;第二種方法主要是編程利用SW平臺(tái)提供的API接口編寫應(yīng)用程序,通過(guò)應(yīng)用程序來(lái)開發(fā),動(dòng)態(tài)建立參數(shù)化的模型。變速箱的復(fù)雜特征、運(yùn)動(dòng)特征是一系列的點(diǎn)擬合形成。尺寸驅(qū)動(dòng)對(duì)簡(jiǎn)單的、非復(fù)合特征容易驅(qū)動(dòng),對(duì)于復(fù)合、交叉特征就只能用編程的方法。
該系統(tǒng)主要由四個(gè)模塊組成,即用戶界面模塊、變速箱結(jié)構(gòu)數(shù)據(jù)模塊、變速箱基體模型模塊、變速箱開發(fā)模塊。
(一)用戶界面模塊
根據(jù)前述變速箱設(shè)計(jì)方法和特點(diǎn),利用VB開發(fā)用戶界面。
(二)變速箱結(jié)構(gòu)數(shù)據(jù)模塊
變速箱結(jié)構(gòu)數(shù)據(jù)模塊包括兩類數(shù)據(jù),一是典型變速箱各個(gè)零件尺寸參數(shù)數(shù)據(jù),二是,變速箱的動(dòng)力傳動(dòng)參數(shù)數(shù)據(jù)。用戶可根據(jù)設(shè)計(jì)需要選擇和調(diào)用,并可以通過(guò)系統(tǒng)界面對(duì)原始的變速箱參數(shù)進(jìn)行更改,生成設(shè)計(jì)需要的實(shí)體三維模型。
(三)變速箱基體模型
變速箱基體模型是使用SW 2008實(shí)體三維建模軟件按照1:1模型創(chuàng)建的,綜合了通用變速箱的基本特征和零部件。為變速箱的開發(fā)模塊奠定基礎(chǔ)。
(四)變速箱開發(fā)模塊
變速箱開發(fā)模塊是在用戶界面的管理下,在變速箱結(jié)構(gòu)數(shù)據(jù)模塊和變速箱基體模塊的基礎(chǔ)上更具自己的實(shí)際設(shè)計(jì)在界面中修改變速箱參數(shù)數(shù)據(jù)。
模塊應(yīng)用程序開發(fā)與VB開發(fā)其他程序類似。SW本身提供了大量的接口函數(shù),所有的函數(shù)名與VB Script的函數(shù)名相類似,靈活運(yùn)用接口函數(shù)可以方便地在SW中實(shí)現(xiàn)變速箱的參數(shù)化實(shí)體建模。SW的調(diào)用和變速箱單個(gè)零件實(shí)體模型生成的部分代碼如下:
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
變速箱單個(gè)零件實(shí)體模型生成的部分代碼:
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("前視基準(zhǔn)面", "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,F(xiàn)alse,
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 ?"*上下二等角軸測(cè)", 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
三、結(jié)語(yǔ)
零件的參數(shù)化設(shè)計(jì)可以極大地提高設(shè)計(jì)效率,基于ActiveX技術(shù)是當(dāng)今軟件開發(fā)的熱點(diǎn)。這里基于SW的應(yīng)用程序二次開發(fā),利用模塊化的設(shè)計(jì)思想設(shè)計(jì)系統(tǒng)開發(fā)的總體框架和實(shí)現(xiàn)方法,利用VB編程和SW建模技術(shù),實(shí)現(xiàn)了變速箱的模塊化計(jì)算機(jī)輔助設(shè)計(jì),減少了設(shè)計(jì)周期,提高了生產(chǎn)效率。
參考文獻(xiàn):
[1]朱朝寬.利用VB開發(fā)solidworks標(biāo)準(zhǔn)件實(shí)體庫(kù)[J].機(jī)械設(shè)計(jì)與制造工程,2005,(03):37.
(作者單位:山東省民族中等專業(yè)學(xué)校)