劉世才
【摘 要】通過模具導(dǎo)柱參數(shù)化設(shè)計(jì)簡要闡述了利用vb語言對solidworks進(jìn)行二次開發(fā)的基本思路和開發(fā)過程,通過驗(yàn)證該方法可行。完全可以依據(jù)該方法和思路制作滿足自身需要的參數(shù)化元件庫從而大大提高設(shè)計(jì)效率縮短設(shè)計(jì)的周期,具有較好的實(shí)際意義。
【關(guān)鍵詞】solidwoks;二次開發(fā);參數(shù)化建模
中圖分類號: TH49;TP391.72文獻(xiàn)標(biāo)識碼: A 文章編號: 2095-2457(2019)07-0178-002
DOI:10.19694/j.cnki.issn2095-2457.2019.07.073
【Abstract】through parametric design of die guide pillar,the basic idea and development process of secondary development of SolidWorks using VB language are briefly described, and the feasibility of this method is verified. According to this method and thinking, we can make parametric component library to meet our own needs, which greatly improves the design efficiency and shortens the design cycle, and has good practical significance.
【Key words】Parametric modeling;Solidwoks;Secondary development
1 Solidworks二次開發(fā)的意義
在產(chǎn)品設(shè)計(jì)時(shí),會頻繁遇到一些尺寸不同但形狀相似的零件,例如齒輪、模具中的導(dǎo)柱導(dǎo)套、皮帶輪等而這些零件在自帶的標(biāo)準(zhǔn)件庫是無法直接調(diào)用的。這類型的零件如果單獨(dú)建模會耗費(fèi)大量的時(shí)間和精力,但如果能將其進(jìn)行參數(shù)化則可大大提高設(shè)計(jì)效率。所謂參數(shù)化就是將零件中的某些約束變成可調(diào)整的變量參數(shù),今后設(shè)計(jì)時(shí)給這些變量參數(shù)賦予不同的值后就可以得到相應(yīng)的模型。在Solidworks中參數(shù)化設(shè)計(jì)主要有兩種途徑:一是利用系列零件設(shè)計(jì)表,這種方法要求設(shè)計(jì)者之前要輸入大量的模型參數(shù)。另外一種途徑是通過對軟件的二次開發(fā)來實(shí)現(xiàn)。
本文以導(dǎo)柱的參數(shù)化三維造型為例介紹通過VB語言對solidworks二次開發(fā)的基本思路、方法和過程。從而為其他零件的參數(shù)化三維造型的二次開發(fā)提供一定的參考。
2 solidworks二次開發(fā)的思路
solidworks二次開發(fā)主要是通過VB等編程語言調(diào)用API函數(shù)來完成,常用的方法有以下兩種。
2.1 完全編程法
完全編程法是通過編程調(diào)用API函數(shù)來控制solidworks建模的所有操作。這種方法對編程人員的水平要求較高,編程人員不僅要充分了解API函數(shù),還要具有較強(qiáng)的編程能力。這種方法使編程的工作量比較大,但是由于建模過程中的所有操作都通過API函數(shù)實(shí)現(xiàn),因此可以實(shí)現(xiàn)三維模型的全參數(shù)化驅(qū)動(dòng)。
2.2 建模與編程相結(jié)合法
所謂建模與編程相結(jié)合是先在solidworks中建立一個(gè)初始模型,并確定好主要的設(shè)計(jì)變量;然后在通過編程調(diào)用具體的API函數(shù)根據(jù)實(shí)際需要修改設(shè)計(jì)變量,從而得到最終的零件。建模與編程相結(jié)合法相對于完全編程法而言,由于這種方法將大量的建模工作轉(zhuǎn)移到solidworks的建模環(huán)境中,剔除了完全編程法中的繁瑣編程,因此工作量大大減少從而提高工作效率對編程人員的要求也隨之降低。本文采用建模與編程相結(jié)合法以導(dǎo)柱參數(shù)化設(shè)計(jì)為例進(jìn)行討論。
3 常用API函數(shù)
為了方便用戶進(jìn)行二次開發(fā)Solidworks提供了大量的API函數(shù),用戶可以通過各種編程語言來調(diào)用這些函數(shù),從而達(dá)到操作solidworks的目的。這樣我們就可以建立適合自身需要、專用的功能模塊。而建立的這種功能模塊可根據(jù)需要生成插件掛在solidworks的菜單下,或者生成單獨(dú)的exe程序,也可以做成工具條的形式。因此要對solidworks進(jìn)行二次開發(fā),除了要掌握一定的編程語言外,還必須先了解solidworks的API函數(shù)。下面就以VB為編程語言介紹幾個(gè)常用的API函數(shù)。
3.1 與solidworks建立連接
二次開發(fā)時(shí)首先要建立SolidWorks的鏈接,創(chuàng)建SolidWorks的應(yīng)用對象代碼為:
Dim swApp As Sldworks.Sldworks
Set swAPP=CreateObject(“Sldworks.application”)
通過這個(gè)代碼就可以打開SolidWorks的接口,可以調(diào)用它的API函數(shù)了
3.2 直線繪制編程格式及其含義
ModeDoc.CreateLine2(X起始,Y起始,Z起始,X終點(diǎn),Y終點(diǎn),Z終點(diǎn))(constructionGeometry=true),其中X起始,Y起始,Z起始 表示直線的起點(diǎn)坐標(biāo)X終點(diǎn),Y終點(diǎn),Z終點(diǎn)表示直線的終點(diǎn)坐標(biāo) constructionGeometry=true時(shí)表示畫中心輔助線
3.3 旋轉(zhuǎn)增料編程格式及其含義
PartDoc.featureRevolve(angle,reverseDir,angle2,revtype)
其中angle:表示角度 reverseDir :為true時(shí)為反向revtype為1時(shí)該參數(shù)無效;Angle2表示旋轉(zhuǎn)的反向角度,僅當(dāng)revtype為2時(shí)有效;Revtype:取0時(shí)為單向旋轉(zhuǎn)增料,取1時(shí)為雙向等角度旋轉(zhuǎn)增料。
4 開發(fā)過程
4.1 導(dǎo)柱建模型并錄制宏
Solidworks的二次開發(fā)主要是調(diào)用solidworks中的API函數(shù)。在整個(gè)開發(fā)過程中牽涉到非常多的API命令,對于大多數(shù)人來說比較難也不可能全面掌握。因此為了簡化編程過程、提高編程效率、更好地構(gòu)建基礎(chǔ)框架。本文利用solidworks宏命令的錄制功能進(jìn)行相關(guān)部分的錄制,然后在VB環(huán)境下依據(jù)相關(guān)語法約束對錄制的宏代碼進(jìn)行必要的改寫。
運(yùn)行solidworks新建文件然后啟動(dòng)宏錄制,接下來就可以按照正常的建模方式完成導(dǎo)柱的建模得到如圖所示零件,停止宏錄制并保存錄制的宏代碼即可。
4.2 確定參數(shù)變量與約束
導(dǎo)柱的形狀主要由D(導(dǎo)柱的肩部直徑)d1(導(dǎo)柱導(dǎo)向部分直徑)d2(導(dǎo)柱的安裝部分直徑)L1(導(dǎo)柱的肩部長度)L2(決定導(dǎo)柱的安裝部分長度)L3(油槽的軸向定位尺寸)L4(油槽間距)R(小端倒角)r(油槽圓角),倒角大小,油槽數(shù)量等參數(shù)決定。這些參數(shù)是在導(dǎo)柱設(shè)計(jì)時(shí)比較經(jīng)常變化的尺寸,可以把這些參數(shù)當(dāng)做自變量,其余參數(shù)可以當(dāng)做因變量,在建模時(shí)通過約束或者通過公式進(jìn)行約束。導(dǎo)柱設(shè)計(jì)變量參數(shù)如下。
4.3 設(shè)計(jì)交互界面
為了讓程序直觀便捷可以在VB環(huán)境下通過窗體創(chuàng)建如圖所示交互界面。
4.4 宏代碼編輯及代碼編寫
通過宏錄制的代碼必須在VB編輯器中進(jìn)行必要的修改,替換相關(guān)代碼、刪除冗余代碼才能順利運(yùn)行。編輯宏錄制的代碼的關(guān)鍵是讀懂錄制宏代碼中各個(gè)代碼的含義,找出代碼中與關(guān)鍵變量相關(guān)的參數(shù),用變量替代后,通過編程對這些變量分別賦值即可。雙擊交互界面中“3D建模按鈕”并依據(jù)交互界面中的變量名稱定義變量,然后粘貼宏錄制得到的代碼,并用變量替代相關(guān)參數(shù)如圖所示。完成代碼編輯好在VB環(huán)境下生成EXE文件即可。
Private Sub CommandButton1_Click() '3D建模按鈕
Set swApp = CreateObject("SldWorks.Application")
Set Part = swApp.ActiveDoc
Set Part =swApp.NewDocument("C:\ProgramData\
SolidWorks\SolidWorks 2012\templates\零件.prtdot", 0, 0, 0) '新建零件文件,并定義新建文件的存放位置
Set Part = swApp.ActiveDoc '激活新建的零件文件
Dim D, d1, d2, l1, l2, R, c, l, rr, l3, S As Integer '定義變量
D=TextBox1.Value'導(dǎo)柱肩部半徑
d1=TextBox2.Value'導(dǎo)柱滑動(dòng)部分半徑
d2=TextBox3.Value'導(dǎo)柱安裝部分半徑
l1=TextBox4.Value'導(dǎo)柱肩部長度
l2=TextBox5.Value'導(dǎo)柱配合部分長度和肩部長度之和
l3=TextBox6.Value'油槽圓弧圓心到導(dǎo)柱小端端面的距離
rr=TextBox7.Value'油槽半徑
R=TextBox8.Value'導(dǎo)柱端部圓角半徑
c=TextBox9.Value'導(dǎo)柱肩部倒角(45度)
l=TextBox10.Value'導(dǎo)柱總長
S=TextBox11.Value'油槽數(shù)量
l4=TextBox12.Value'兩個(gè)相鄰油槽的間距
… …… … ?… …
中間插入通過宏錄制的代碼,并將相關(guān)參數(shù)用變量名替代
… …… … ?… …
End sub
在此說明錄制的宏與建模過程有關(guān),建模過程或建模方法不同所得到的宏代碼會有所不同。
5 結(jié)尾
以上通過模具導(dǎo)柱參數(shù)化設(shè)計(jì)簡要闡述了利用vb語言對solidworks進(jìn)行二次開發(fā)的基本思路和過程,通過實(shí)踐驗(yàn)證該方法是可行的。用戶完全可以依據(jù)該方法和思路開發(fā)更多滿足自身需要的參數(shù)化零件庫,從而大大提高設(shè)計(jì)效率縮短設(shè)計(jì)的周期,具有較好的實(shí)際意義。
【參考文獻(xiàn)】
[1]徐國全、黃志超.基于solidworks的參數(shù)化設(shè)計(jì)二次開發(fā)的研究.機(jī)械設(shè)計(jì)與研究.2007.2第一期.
[2]王占中、王義文等.solidworks二次開發(fā)在漸開線齒輪三維造型中的應(yīng)用.機(jī)械工程師.2005年第6期.
[3]Solidworks公司著.Solidworks高級教程二次開發(fā)與API(美)2007版.北京:機(jī)械工業(yè)出版社,2009.1.