劉世才
【摘 要】通過模具導柱參數化設計簡要闡述了利用vb語言對solidworks進行二次開發的基本思路和開發過程,通過驗證該方法可行。完全可以依據該方法和思路制作滿足自身需要的參數化元件庫從而大大提高設計效率縮短設計的周期,具有較好的實際意義。
【關鍵詞】solidwoks;二次開發;參數化建模
中圖分類號: TH49;TP391.72文獻標識碼: 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二次開發的意義
在產品設計時,會頻繁遇到一些尺寸不同但形狀相似的零件,例如齒輪、模具中的導柱導套、皮帶輪等而這些零件在自帶的標準件庫是無法直接調用的。這類型的零件如果單獨建模會耗費大量的時間和精力,但如果能將其進行參數化則可大大提高設計效率。所謂參數化就是將零件中的某些約束變成可調整的變量參數,今后設計時給這些變量參數賦予不同的值后就可以得到相應的模型。在Solidworks中參數化設計主要有兩種途徑:一是利用系列零件設計表,這種方法要求設計者之前要輸入大量的模型參數。另外一種途徑是通過對軟件的二次開發來實現。
本文以導柱的參數化三維造型為例介紹通過VB語言對solidworks二次開發的基本思路、方法和過程。從而為其他零件的參數化三維造型的二次開發提供一定的參考。
2 solidworks二次開發的思路
solidworks二次開發主要是通過VB等編程語言調用API函數來完成,常用的方法有以下兩種。
2.1 完全編程法
完全編程法是通過編程調用API函數來控制solidworks建模的所有操作。這種方法對編程人員的水平要求較高,編程人員不僅要充分了解API函數,還要具有較強的編程能力。這種方法使編程的工作量比較大,但是由于建模過程中的所有操作都通過API函數實現,因此可以實現三維模型的全參數化驅動。
2.2 建模與編程相結合法
所謂建模與編程相結合是先在solidworks中建立一個初始模型,并確定好主要的設計變量;然后在通過編程調用具體的API函數根據實際需要修改設計變量,從而得到最終的零件。建模與編程相結合法相對于完全編程法而言,由于這種方法將大量的建模工作轉移到solidworks的建模環境中,剔除了完全編程法中的繁瑣編程,因此工作量大大減少從而提高工作效率對編程人員的要求也隨之降低。本文采用建模與編程相結合法以導柱參數化設計為例進行討論。
3 常用API函數
為了方便用戶進行二次開發Solidworks提供了大量的API函數,用戶可以通過各種編程語言來調用這些函數,從而達到操作solidworks的目的。這樣我們就可以建立適合自身需要、專用的功能模塊。而建立的這種功能模塊可根據需要生成插件掛在solidworks的菜單下,或者生成單獨的exe程序,也可以做成工具條的形式。因此要對solidworks進行二次開發,除了要掌握一定的編程語言外,還必須先了解solidworks的API函數。下面就以VB為編程語言介紹幾個常用的API函數。
3.1 與solidworks建立連接
二次開發時首先要建立SolidWorks的鏈接,創建SolidWorks的應用對象代碼為:
Dim swApp As Sldworks.Sldworks
Set swAPP=CreateObject(“Sldworks.application”)
通過這個代碼就可以打開SolidWorks的接口,可以調用它的API函數了
3.2 直線繪制編程格式及其含義
ModeDoc.CreateLine2(X起始,Y起始,Z起始,X終點,Y終點,Z終點)(constructionGeometry=true),其中X起始,Y起始,Z起始 表示直線的起點坐標X終點,Y終點,Z終點表示直線的終點坐標 constructionGeometry=true時表示畫中心輔助線
3.3 旋轉增料編程格式及其含義
PartDoc.featureRevolve(angle,reverseDir,angle2,revtype)
其中angle:表示角度 reverseDir :為true時為反向revtype為1時該參數無效;Angle2表示旋轉的反向角度,僅當revtype為2時有效;Revtype:取0時為單向旋轉增料,取1時為雙向等角度旋轉增料。
4 開發過程
4.1 導柱建模型并錄制宏
Solidworks的二次開發主要是調用solidworks中的API函數。在整個開發過程中牽涉到非常多的API命令,對于大多數人來說比較難也不可能全面掌握。因此為了簡化編程過程、提高編程效率、更好地構建基礎框架。本文利用solidworks宏命令的錄制功能進行相關部分的錄制,然后在VB環境下依據相關語法約束對錄制的宏代碼進行必要的改寫。
運行solidworks新建文件然后啟動宏錄制,接下來就可以按照正常的建模方式完成導柱的建模得到如圖所示零件,停止宏錄制并保存錄制的宏代碼即可。
4.2 確定參數變量與約束
導柱的形狀主要由D(導柱的肩部直徑)d1(導柱導向部分直徑)d2(導柱的安裝部分直徑)L1(導柱的肩部長度)L2(決定導柱的安裝部分長度)L3(油槽的軸向定位尺寸)L4(油槽間距)R(小端倒角)r(油槽圓角),倒角大小,油槽數量等參數決定。這些參數是在導柱設計時比較經常變化的尺寸,可以把這些參數當做自變量,其余參數可以當做因變量,在建模時通過約束或者通過公式進行約束。導柱設計變量參數如下。
4.3 設計交互界面
為了讓程序直觀便捷可以在VB環境下通過窗體創建如圖所示交互界面。
4.4 宏代碼編輯及代碼編寫
通過宏錄制的代碼必須在VB編輯器中進行必要的修改,替換相關代碼、刪除冗余代碼才能順利運行。編輯宏錄制的代碼的關鍵是讀懂錄制宏代碼中各個代碼的含義,找出代碼中與關鍵變量相關的參數,用變量替代后,通過編程對這些變量分別賦值即可。雙擊交互界面中“3D建模按鈕”并依據交互界面中的變量名稱定義變量,然后粘貼宏錄制得到的代碼,并用變量替代相關參數如圖所示。完成代碼編輯好在VB環境下生成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'導柱肩部半徑
d1=TextBox2.Value'導柱滑動部分半徑
d2=TextBox3.Value'導柱安裝部分半徑
l1=TextBox4.Value'導柱肩部長度
l2=TextBox5.Value'導柱配合部分長度和肩部長度之和
l3=TextBox6.Value'油槽圓弧圓心到導柱小端端面的距離
rr=TextBox7.Value'油槽半徑
R=TextBox8.Value'導柱端部圓角半徑
c=TextBox9.Value'導柱肩部倒角(45度)
l=TextBox10.Value'導柱總長
S=TextBox11.Value'油槽數量
l4=TextBox12.Value'兩個相鄰油槽的間距
… …… … ?… …
中間插入通過宏錄制的代碼,并將相關參數用變量名替代
… …… … ?… …
End sub
在此說明錄制的宏與建模過程有關,建模過程或建模方法不同所得到的宏代碼會有所不同。
5 結尾
以上通過模具導柱參數化設計簡要闡述了利用vb語言對solidworks進行二次開發的基本思路和過程,通過實踐驗證該方法是可行的。用戶完全可以依據該方法和思路開發更多滿足自身需要的參數化零件庫,從而大大提高設計效率縮短設計的周期,具有較好的實際意義。
【參考文獻】
[1]徐國全、黃志超.基于solidworks的參數化設計二次開發的研究.機械設計與研究.2007.2第一期.
[2]王占中、王義文等.solidworks二次開發在漸開線齒輪三維造型中的應用.機械工程師.2005年第6期.
[3]Solidworks公司著.Solidworks高級教程二次開發與API(美)2007版.北京:機械工業出版社,2009.1.