0 引言
隨着數字信息化進程的快速推進,如今三維CAD技術在越來越多的企業當中得到運用。為了降低在設計生產中的成本,縮短設計周期,增強企業競爭力,三維參數化技術隨之應聲,它憑借更貼近現代概念的設計以及並行設計的思想得到了越來越多工程設計人員的青睞,設計人員可以在早期的開發階段運用三維參數化技術快速模擬零件的三維草圖,再通過數值輸入對其形狀及大小進行約束,繪制精確的零件圖,並將零件放入零件庫中,方便以后的使用及修改工作。從而大大減少了重復性繪圖的時間,提高了工作效率。
本文以三維CAD軟件SolidWorks為平台對參數化二次開發的方法以及關鍵技術進行了討論,通過例舉實例來詳細介紹其二次開發的整個過程。
1 SolidWorks二次開發基本原理
1.1 SolidWorks二次開發的兩種形式
任何支持OLE(Object Linking and Embedding,對象連接與嵌入)和COM(Component Object Model,組建對象模型)接口的編程語言都可以作為SolidWorks的開發工具。SolidWorks二次開發分為兩種:一種是基於自動化技術的,可以開發EXE形式的應用程序。另一種開發形式是基於COM的,這種技術可以使用最多的SolidWorks API(應用程序編程接口)。API可控制SolidWorks會話的方式,生成*.dll格式的文件,也就是SolidWorks的插件。
1.2 SolidWorks二次開發的對象
從圖1中可以看到SolidWorks對象包括ModeIDoc、Environment、Frame、AttributeDef Modeler、SWPropertySheet以及一些其他對象。SldWorks是SolidWorks API中的最高對象,它能夠直接或間接地訪問SolidWorks API中的所有其他對象。利用SldWorks可以實現程序的最基本的操作,如創建、打開、關閉、結束文件、重排圖標和窗口、設置當前的激活文件、生成屬性定義,也可以對SolidWorks的系統環境進行設置。SldWorks中所包含的對象分為若干層,每一層又包括若干個對象,每一個對象都有自己的屬性、方法和事件。這些OLE對象涵蓋了SolidWorks的全部數據模型,通過對SolidWorks的OLE對象屬性的設置和對OLE對象方法的調用,就可以在用戶自己開發的系統中實現與SolidWorks相同的功能。
圖1 SolidWorks API對象梗概圖
1.3 SolidWorks二次開發的工具
SolidWorks的二次開發工具較多,用戶可以根據自身的條件及工具的特點,選擇一種合適的開發工具。SolidWorks主要的二次開發工具有:Delphi、Visual C++6.0、Visual Basic 6.0、VBA等。相比較而言,Visual Basic編程語言具有不可替代的簡單易用性和真正的“所見即所得”特性為廣大工程設計人員所接受。
2 SolidWorks二次開發的方法及流程
2.1 SolidWorks二次開發的方法
本文主要介紹基於VB語言的SolidWorks二次開發,以VB語言對其進行二次開發又可以通過兩種形式,一種是語言的完全編程開發,另一種是設計變量和編程語言相結合的開發形式。前者需要設計人員通過API接口,對要表述的所有對象進行程序編寫,這樣可以實現三維圖形的程序驅動,並且能精確構造復雜尺寸的三維造型。但是這種開發形式要求設計者精通編程語言,同時,由於所有對象都需要人工表述定義,所以存在設計周期較長,工作量較重,開發效率不高的問題。后者主要是以SolidWorks中提供的宏的錄制功能作為工具。在編寫程序時,把通過宏操作獲得的代碼用做工程基礎,然后對其進行適當的編輯修改,再添加到應用程序的代碼中。這樣,通過宏操作和交互式的執行任務,不僅可以提高編程效率,而且更便於工程設計人員所使用。憑借后者在開發過程中所體現出的明顯優點,這種開發方式也成為了SolidWorks二次開發的主旋律,以下針對該種方法來詳細說明SolidWorks二次開發的整個過程。
2.2 SolidWorks二次開發的流程
應用程序的開發流程如圖2所示,其中主要包括建造三維模型圖並確定各尺寸關系,Access數據庫連接,用戶界面設計,編寫程序代碼,編寫窗體事件和調試程序等內容。
圖2 SolidWorks二次開發的流程圖
3 SolidWorks二次開發的關鍵技術
下面以經典齒輪為例來詳細說明SolidWorks二次開發的整個過程。在這里要強調的是,在對齒輪的標准建模時,盡量用最少的步驟,盡少的參數尺寸來清晰定義齒輪特征。如圖3所示,為圓柱齒輪的設計草圖。
圖3 圓柱齒輪草圖
1)確定齒輪的設計關系
齒頂高ha=ha*m=m;
齒根高hf=(ha*+c*)m=1.25m;
全齒高h=ha+hf=(2ha*+c*)m=2.25m;
分度圓直徑d=mz;
基圓直徑db=dcosa;
齒頂圓直徑da=d+2ha=m(z+2ha*);
齒根圓直徑df=d-2hf=m(z-2ha*-2c*);
由以上齒輪的標准公式得出,確定齒輪規格的參數主要有五個,它們分別為模數m、齒數z、壓力角a、齒頂高系數ha*、頂隙系數c*。
2)在設計關系明確后,確定程序中需要定義的齒輪的變量參數“文件名”、“材質”、“型號”、模數“m”、齒數“z”、壓力角“a”、齒頂高系數“ha*”、頂隙系數“c*”、齒寬“b”。
3)運用SolidWorks軟件繪制齒輪的三維模型,整個繪圖過程用宏功能進行錄制。
4)在Visual Basic 6.0中建立一個用戶友好界面。如圖4所示,在界面中加入圖片顯示窗口,讓用戶能夠直觀認識零件造型及參數變量,同時加入用戶輸入窗口,讓使用者可以通過對照名稱標注,人工定義數值來進行條件約束。添加命令按鈕來實現繪圖及退出程序的功能。
圖4 圓柱齒輪的參數化界面
5)數據定義的錯誤提示
在自定義環境下對齒輪進行數值定義的過程中,齒數不能小於17,圓孔直徑不能過大。
為了讓使用者直觀找到問題,加入msgbox提示,如圖5所示。
圖5 錯誤提示
6)優化程序並為參數變量賦值
程序中關鍵代碼如下:
以下代碼為建立VB6.0與SolidWorks之間的聯系。
7)Access數據庫連接
此外還可以根據需要,創建適合於具體用戶的本地變量參數組,設計人員將各變量所對應數值在Access數據庫中進行記錄並與齒輪參數化程序連接,這樣使用者只需在界面中選擇特定型號即可得到所需齒輪。如圖6所示。
圖6 Access數據庫中建立的參數關系
8)將程序添加為SolidWorks插件
首先創建一個文件夾,用來存放宏文件。如“D:\Sol.dworks2012\宏文件”;
然后建立文件名為“圓柱齒輪.swp”的宏文件,內容如下:
最后從工具中調用新建宏按鈕命令。如圖7中加紅框部分所示 。
圖7 建立【圓柱齒輪】按鈕
4 結束語
設計人員通過對SolidWorks的二次開發,可以根據本地的具體問題,設計開發出適用於工作需要的應用程序,建立起適合用戶需要、專用的SolidWorks功能模塊,運用這項技術可以簡化設計工作,縮短產品開發周期,提高產品開發效率,而且應用范圍廣泛,為眾多領域的研發設計工作指明了方向。