李星優++謝俊++全勇
摘 要:介紹了SolidWorks軟件的優點;敘述了以SolidWorks為開發平臺,應用VBA程序進行曲線曲面建模的方法。通過幾個三維零件的建模,分析和討論了SolidWorks軟件的一些特點,并針對關于VBA創建曲線曲面問題提出了相應的解決方法;旨在訓練建模思路,提高應用 SolidWorks軟件設計能力的目的。
關鍵詞:SolidWorks建模 建模分析 曲線曲面 VBA程序
中圖分類號:TP391.72 文獻標識碼:A 文章編號:1674-098X(2014)04(b)-0035-02
隨著信息技術在各個領域的迅速滲透,CAD/CAM/CAE技術已經得到了廣泛的應用,從根本上改變了傳統的設計,生產,組織模式,對推動現有企業的技術改造,帶動整個產業結構的變革,發展新興技術,促進經濟增長都具有十分重要的意義。
在現代機械設計中,應用了大量三維造型軟件,如UG、/E、Solidworks、Master、CAXA等。這些軟件在零件建模、裝配檢驗、工程分析、動畫演示、自動編程等方面,顯示出突出的優點,越來越受到工業企業的重視和應用。
在機械零件加工中,企業廣泛采用數控機床,并電腦接口。工程師首先應用造型軟件;零件建模,然后調用軟件中的加工模塊,設置加工工藝方法和加工參數,最后將這些數據轉換成加工程序(G代碼)。即自動編程。最后將程序通過電腦接口傳輸給數控機床,進行自動加工。真正實現信息化、參數化、無圖化的加工制造[1]。
現代機械加工離不開計算機和工程軟件,即計算機輔助制造——CAM。在此,推薦一款易學易懂、功能較強、應用廣泛的三維軟件——SolidWorks,著重就軟件建模,關于使用VBA創建零件曲線曲面設計進行討論。
1 Solideworks簡介
SolidWorks是美國SolidWorks公司開發的出色的三維參數化特征造型CAD軟件,其技術內核基于先的Parasolid圖形語言平臺。SolidWorks自從1995年11月問世以來,已成為微機平臺上的三維機械設計CAD軟件的主流產品,在企業中得到了廣泛的應用。
該文選用Slideworks本文選用SolidWorks作為系統開發平臺,主要是基于SolidWorks在以下幾方面的突出優點[2]:
a)強大的參數化特征造型功能。SolidWorks的參數化和特征造型技術,能方便、快捷地創建幾乎任何復雜形狀的實體,可以滿足絕大部分的工程設計的需要;SolidWorks采用統一的內部數據庫,全數據相關,任何一個功能模塊中對零件的修改都會自動反映到其他模塊中;
b)界面友好,操作簡便。SolidWorks采用典型的Windows軟件風格,在所有的國外三維CAD軟件中提供了最優秀的中文支持;
c)擁有開放的體系結構。SolidWorks擁有豐富的第三方支持軟件,提供了開放的數據結構和方便的二次開發環境,為企業今后廣泛的工程應用提供了良好的基礎平臺;
d)優異的性能價格比。SolidWorks 是一款中端CAD系統,企業使用SolidWorks可以花較小的投入滿足設計的要求,因此SolidWorks特別適合于中小企業的產品設計。
2 寫solidworks的VBA程序
2.1 VBA程序的錄制
由于solidworks具有錄制操作,自動生成代碼的功能,所以用“錄制宏”的方法錄制操作過程,再進行,即可生成VBA程序[3]。
為了提高編程效率,單擊“工具”,“選項”,“系統選項”,“常規”,勾選系統選項中的“錄制后直接編輯宏”。
現在來錄制一個最簡單的VBA程序:在上視基準面上畫一個半徑為500mm的圓。操作步驟如下:
單擊“新建”圖標,新建一零件文件,單擊菜單“視圖”,“工具欄”,“宏”,單擊“錄制/暫停宏”圖標按鈕,開始錄制。
在solidworks界面上單擊特征樹上的圖標,再單擊原點,移動鼠標,畫圓。單擊“退出草圖”圖標按鈕,單擊“左右二等角軸測”圖標單擊“停止宏”圖標,出現“執行宏”對話框。
選擇目錄,輸入文件名,單擊“保存”按鈕,結束宏的錄制。這是,VBA編輯器將自動打開,進入編輯狀態。在VBA界面中單擊“視圖Solidworks”圖標按鈕,回到SlidWorks界面中,單擊”新建按鈕,新建一零件文件,試宏的播放環境和錄制的環境一樣,單擊“運行宏”圖標按鈕,運行程序,畫出一個圓。
再運行程序,顯示出錯,可見,通過宏的錄制所產生的代碼是經常有問題的,必須對代碼進行編輯,才能正確運行。
下面分析錄制代碼(每行代碼前的數字是為了說明問題而加上的)。
01 `**********************************************************
02 `D:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\swx1108\Macor1.swb-macro recorded on 14/27/03 by Administratro
03 `**********************************************************
04 Dim swApp As Object
05 Dim Part As Object
06 Dim boolstatus As Boolean
07 Dim longstatus As Long,longwarnings As Long
08 Dim FeatureData As Objectendprint
09 Dim Feature As Object
10 Dim Component As Object
11 Sub main()
12 Set swApp=Application.SldWorks
13 Set Part=swApp.ActiveDoc
14 boolstatus=Part.Extension.SelectByID2(“上視基準面”,“PLANE”,0,0,0,False,0,Nothing,0)
15 Part.ClearSelection2 True
16 Part.CreateCircle 0,0,0,0.1005179862306,-0.003901807228916,0
17 Part.ClearSelection2 True
18 Part.InsertSketch2 Ture
19 Part.ShowNamedView2“*等軸測”,7
20 End Sub
程序的前3三行是注釋,說明是誰于何年何月錄制的宏,第4行到第10行是變量聲明,程序第14行是選擇是“選擇上視基準面”,第16行是“畫圓”,由于程序沒有錄下“新建草圖”的操作,因此程序運行到16行時,因Solidworks默認基準面是“前視基準面”,所以就在“前視基準面”上自動開始繪制草圖,從而使程序運行出錯。
所以可以將代碼編輯一下,修改第16行代碼中的數字,刪除一些不需要的代碼,調整后,如下:
01 Dim swApp As Object
02 Dim Part As Object
03 Dim boolstatus As Boolean
04 Sub main()
05 Set swApp=Application.SldWorks
06 Set Part=swApp.ActiveDoc
07 boolstatus=Part.Extension.SelectByID2(“上視基準面”,“PLANE”,0,0,0,False,0,Nothing,0)
08 Part.InsertSKetch2 True 這一行“新建草圖”的操作沒錄制下來!
09 Part.CreateCircle 0,0,0,0.1,0,0
10 Part.InsertSketch2 Ture
11 Part.ShowNamedView2“*等軸測”,7
12 End Sub
保存后運行,運行成功。
分析:第5,6兩行是賦值語句,變量swApp和Part被分別復制為Solidworks應用程序和Solidworks的當前文檔,第七行是選擇“上視基準面”,第八行是“開始繪制草圖”,第11行是將視圖設為“等軸測”。
2.2 通過XYZ點的曲線
圓形螺旋彈簧的建模,關鍵在于路徑曲線。這種“通過XYZ點的曲線”,可用VBA創建。
(1)單擊宏工具攔上的“新建”圖標,選擇文件路徑,輸入文件名,單擊保存,自動打開VBA編輯器。
(2)單擊工程資源管理器窗口中的名稱Macrol,在屬性窗口中將項目名稱改為“圓形螺旋彈簧”:用同樣方法將模塊Macrol1名稱改為“圓形螺旋彈簧1”。在VBA編輯器中,選擇“插入”“用戶窗體”菜單項,向程序添加一個窗體,將Caption屬性設置為“圓形螺旋彈簧”,名稱改為frmMain。
(3)添加一個圖像框,調整大小和窗體相匹配,其picture圖片文件在配套光盤中。添加4個標簽分別調整其Caption屬性為“匝數”,“路徑圓半徑”,“螺旋線半徑”,“界面半徑”。添加4個文字框,分別調整其Text屬性為“30”,“600”,“100”,“15”。
(4)添加兩個命令控件,分別調整其Caption屬性為“確定”和“取消”;名稱為“cmdDraw”和“cmdExit”。在工程資源管理器中雙擊模塊“圓形螺旋彈簧1”,刪除VBA自動生成代碼,輸入以下代碼:
Sub main ()
frmMain.Show
End Sub
(5)在窗體中雙擊“確定”命令按鈕,進入代碼窗口,在該按鈕的Click事件中添加下面代碼:
Option Explicit
Dim swApp As Sldworks.SldWorks
Dim part As Sldworks.ModelDoc2
Dimboolstatus As Boolean
Const pi = 3.1415926535897
Private Sub cmdDraw click()
(6)在對話框中雙擊“取消”命令按鈕,進入代碼窗口,在該按鈕的Click事件中添加下面代碼:
Private Sub cmdExit click()
Unload Me
End Sub
(7)在VBA編輯器中按“F5”鍵,單擊“運行宏”圖標,運行VBA程序,可完成圓形螺旋彈簧的建模。
3 結語
程序中,字符串變量MacroName得到帶有路徑的宏文件名,通過InStrRev函數得到MacroNam最右邊的斜杠“\”的位置,由Left$函數得到宏文件的路徑,因此,只要將圖像框的圖片文件和宏文件放在同一文件夾中,就可以通過Image1.Picture=LoadPicture這樣的語句正確地加載圖片,而不會出現錯誤。
程序中各公式曲線的數學公式如下:
心型線參數方程:
x=a*(cost)^3,
y=a*(sint)^3 (t為參數)
心臟線的參數方程:
x(t)=a(2cost-cos2t)
y(t)=a(2sint-sin2t)
阿基米德螺旋線
r=aθ
圓的漸開線的參數方程
x=r(cos φ+φsin φ)
y=r(sin φ-φcos φ)
擺線的參數方程
y=r*(1-cost)
x=r*(t-sint)
曳物線的參數方程:
x=acosθ;
y=aln[tan^2(θ+π4)]-asinθ
參考文獻
[1] 劉長征.精通SolidWorks2003[M].北京:清華大學出版社,2004.
[2] 江洪.SolidWorks2003二次開發基礎與實例[M].北京:電子工業出版社,2004.
[3] 江洪.SolidWorks2003高級曲線曲面實例解析[M].北京:機械工業出版社,2007.endprint