陳晨 李華 曾毅
(江蘇省特種設(shè)備安全監(jiān)督檢驗研究院鎮(zhèn)江分院)
SolidWorks二次開發(fā)在壓力容器法蘭參數(shù)化建模中的應(yīng)用
陳晨*李華 曾毅
(江蘇省特種設(shè)備安全監(jiān)督檢驗研究院鎮(zhèn)江分院)
以壓力容器法蘭參數(shù)化建模為例,研究基于VB語言的SolidWorks軟件二次開發(fā)技術(shù)。在經(jīng)設(shè)計的人機(jī)交互界面中,用戶可以自定義法蘭的參數(shù)值,只需要輸入相關(guān)設(shè)計參數(shù),便可自動生成法蘭的三維模型。采用二次開發(fā)技術(shù)建模能加快SolidWorks的響應(yīng)速度,縮短產(chǎn)品的設(shè)計周期,并且可以改善傳統(tǒng)建模過程中效率低、操作繁瑣的問題。
壓力容器 法蘭 二次開發(fā) 參數(shù)化 建模 SolidWorks
壓力容器的可拆密封裝置形式很多,如中低壓容器中的螺紋連接、承插式連接和螺栓法蘭連接等,其中以結(jié)構(gòu)簡單、裝配方便的螺栓法蘭連接用得最普遍。壓力容器法蘭是壓力容器設(shè)計中的重要內(nèi)容,也是決定壓力容器能否可靠運(yùn)行的關(guān)鍵部件,所以提高法蘭設(shè)計效率和質(zhì)量是非常必要的。
SolidWorks軟件是世界上第一個基于Windows系統(tǒng)開發(fā)的三維CAD軟件,它通常應(yīng)用于產(chǎn)品的機(jī)械設(shè)計,設(shè)計工程師按照設(shè)計思想繪出草圖,然后生成模型實體及裝配體[1]。SolidWorks軟件是一套完全參數(shù)化建模軟件,全面采用了非約束的建模特征技術(shù),其設(shè)計過程具有完全相關(guān)性,可以在設(shè)計過程的任何階段修改設(shè)計,同時牽動相關(guān)部分的改變。SolidWorks軟件自帶應(yīng)用程序接口(API),在API中提供了二次開發(fā)所需要的所有接口函數(shù)說明,而且支持Visual Basic、Visual C++或任何支持對象連接與嵌入(OLE)的程序語言來做二次開發(fā)[2]。
本文以壓力容器法蘭參數(shù)化建模為例,研究基于VB語言的SolidWorks軟件二次開發(fā)技術(shù)。采用二次開發(fā)技術(shù)建模能加快SolidWorks的響應(yīng)速度,縮短產(chǎn)品的設(shè)計周期,并且可以改善傳統(tǒng)建模過程中效率低、操作繁瑣的問題。
1.1 二次開發(fā)工具
Visual Basic 6.0是微軟公司推出的Windows環(huán)境下源于BASIC語言的應(yīng)用程序設(shè)計語言,是一個包含了程序設(shè)計、運(yùn)行、調(diào)試和發(fā)布等功能的集成開發(fā)系統(tǒng)。它采用面向?qū)ο蟮某绦蛟O(shè)計技術(shù),使得開發(fā)Windows應(yīng)用程序更快速、更簡捷,具有易學(xué)、易用、程序開發(fā)周期短、可視化界面好等優(yōu)點(diǎn)[3]?;赩isual Basic的這些優(yōu)點(diǎn),本文采用該語言進(jìn)行二次開發(fā)。
1.2 二次開發(fā)方法
SolidWorks二次開發(fā)有兩種方法,一是完全編程開發(fā),要求用戶利用API函數(shù)對需要表達(dá)的所有對象進(jìn)行程序編寫,這樣可以由編寫的程序完全驅(qū)動三維模型,能模擬造型復(fù)雜的形體。但是完全編程開發(fā)方法需要設(shè)計人員對編程語言比較熟悉,這對初學(xué)者來說有一定難度。二是利用SolidWorks中的宏命令輔助開發(fā)。首先利用SolidWorks中的宏錄制命令錄制相關(guān)操作,然后再將宏錄制過程中產(chǎn)生的代碼作為編寫程序時的基礎(chǔ)代碼,對其進(jìn)行編輯修改,最后添加到程序中。本文采用后者,就是利用宏命令進(jìn)行輔助開發(fā)。
1.3 二次開發(fā)基本步驟
利用宏命令進(jìn)行SolidWorks二次開發(fā)基本步驟如下:
(1)打開SolidWorks,新建一個零部件文件。
(2)開始宏文件的錄制。
(3)打開錄制好的宏文件,修改代碼。
(4)設(shè)計窗體,添加控件并編寫控件代碼。
(5)在菜單欄添加快捷按鈕。
本文以JB/T 4703—2000《長頸對焊法蘭》為標(biāo)準(zhǔn),設(shè)計人機(jī)交互界面,實現(xiàn)自動創(chuàng)建五種密封面的法蘭模型的功能。
2.1 利用宏命令錄制代碼
SolidWorks宏文件可以記錄用戶每次鼠標(biāo)點(diǎn)擊、菜單選擇和鍵盤按鍵的操作,并且可以重放這一過程[2]。一個宏包含對應(yīng)用程序接口 (API)的調(diào)用,這和使用用戶接口進(jìn)行操作是等效的。以平密封面法蘭為例,錄制宏文件的步驟如下:
(1)右擊菜單欄,選擇 “宏”,調(diào)出宏工具欄。
(2)點(diǎn)擊宏工具欄上的 “錄制”按鈕,即開始宏文件的錄制。
(3)利用 “草圖繪制”、 “旋轉(zhuǎn)凸臺/基體”、“拉伸切除”等命令建立法蘭三維模型,如圖1所示[1]。
圖1 平密封面法蘭三維模型
(4)點(diǎn)擊宏工具欄上的 “停止”按鈕,將錄制好的宏保存。
按照以上步驟錄制其他密封面的法蘭宏文件,這里不再一一贅述。
在錄制宏的過程中要注意:(1)在錄制前要計劃好步驟。
(2)由于視圖變換和縮放相關(guān)代碼都會添加到宏中,而這些代碼又是不必要的,所以錄制時宜盡量減少視圖變換和縮放的次數(shù)。如果無法避免,可以選擇宏工具欄上的 “暫?!卑粹o,縮放和變換操作之后再按 “錄制”按鈕繼續(xù)錄制。
2.2 修改宏代碼
SolidWorks宏錄制器返回的代碼需要進(jìn)行修改和整理。點(diǎn)擊宏工具欄上的 “編輯”按鈕,打開之前錄制的宏文件 (后綴名.swp)。修改代碼后按F5鍵調(diào)試程序,確認(rèn)無誤后點(diǎn)擊宏工具欄中的 “執(zhí)行”按鈕測試代碼,程序就可以自動畫出法蘭三維模型[3]。
在修改代碼時應(yīng)注意:
(1)如果在錄制時進(jìn)行了變換或縮放視圖,就需要刪除多余的代碼行。例如:Part.ActiveView(),RotateAboutCenter。
(2)如果在 SelectByID調(diào)用之后緊接著有ClearSelection調(diào)用,那么刪除該 ClearSelection調(diào)用。任何剛好在 ClearSelection之前的 SelectByID調(diào)用都是沒有作用的。
(3)在測試代碼之前一定要刪除當(dāng)前所有的零件和草圖,或者選擇新建一個零件文件。這是為了避免在新零件創(chuàng)建過程中受已有文件中零件特征重疊的影響。
(4)盡量使用早綁定。早綁定可以使代碼更加容易理解,并且也會使程序運(yùn)行速度更快。早綁定還會在編譯期檢查代碼中的錯誤。當(dāng)編譯器檢查一個對象時,會檢查這個對象是否支持從其調(diào)用的成員。如果使用后綁定,直到運(yùn)行代碼時才會發(fā)現(xiàn)錯誤。一般錄制宏自動產(chǎn)生的代碼是后綁定,需要將其改為早綁定。實現(xiàn)早綁定,只需要將其聲明為其所屬類型庫中定義的類型即可。例如:Dim swApp AsSldWorks.SldWorks, Dim PartAsSldWorks. ModelDoc[2]。
2.3 向宏中添加窗體
選擇一個宏文件,通過在宏中添加用戶窗體,創(chuàng)建人機(jī)交互界面。在VB操作平臺中,將工具箱組件板上的Label(標(biāo)簽)、CommandButton(命令按鈕)、TextBox等控件添加到用戶窗體中,并定義所有控件的caption屬性值。不同的窗體用于不同密封面的法蘭數(shù)據(jù)輸入,創(chuàng)建的窗體如圖2~圖5所示。
圖2 自定義法蘭窗體
圖3 平密封面法蘭窗體
圖4 凹凸密封面法蘭窗體
圖5 榫槽密封面法蘭窗體
2.4 編寫控件代碼
此時,共編制有五個宏文件。最終使用的是其中添加窗體的宏文件。將其他四個未添加窗體的宏文件中的代碼剪切到各個窗體的 “生成法蘭模型”按鈕的單擊事件中,并刪除這些宏文件。在添加窗體的宏文件的模塊代碼處輸入Form1.Show,將之前生成的代碼剪切到相應(yīng)的按鈕單擊事件中。
接下來補(bǔ)充程序代碼實現(xiàn)最終功能:用戶可以在圖2所示的窗體中選擇密封面形式,在相應(yīng)的密封面窗體中輸入自定義法蘭設(shè)計參數(shù),點(diǎn)擊 “生成模型”按鈕,則程序自動創(chuàng)建相應(yīng)密封面的法蘭三維模型。
編寫代碼應(yīng)特別注意:在SolidWorks中創(chuàng)建一個新的零件時,都是以mm作為默認(rèn)單位,而應(yīng)用程序接口 (API)函數(shù)則是以m為單位,因此在程序中要注意單位的轉(zhuǎn)換,即尺寸參數(shù)都要除以1000。例如:DN=Val(txt1.Text)/1000。
2.5 添加自定義宏按鈕
點(diǎn)擊 [工具]—[自定義]—[命令]—[宏],將“自定義宏按鈕”拖拽至菜單欄上,在對話框中選擇剛才調(diào)試好的宏文件,即可生成 “自定義宏按鈕”。用戶可以通過點(diǎn)擊菜單欄的 “自定義宏按鈕”直接進(jìn)行法蘭的參數(shù)化建模。
在壓力容器法蘭設(shè)計過程中,設(shè)計人員往往需要多次對法蘭的各種設(shè)計參數(shù)進(jìn)行修改。若采用傳統(tǒng)建模方法,整個修改過程時間長,會大大影響設(shè)計效率,而且操作比較繁瑣。本文采用VB語言對SolidWorks進(jìn)行二次開發(fā),設(shè)計出參數(shù)化建模窗體,實現(xiàn)了整個法蘭建模過程的自動化。設(shè)計人員只需在相應(yīng)窗體中改變設(shè)計參數(shù),便可快速得到相應(yīng)的法蘭模型。該建模方法具有一定的通用性,利于設(shè)計人員掌握和利用。
[1]陳志民,游新娥.SolidWorks 2009中文版從入門到精通 [M].北京:機(jī)械工業(yè)出版社,2009.
[2]SolidWorks公司.SolidWorks高級教程:二次開發(fā)與API[M].北京:機(jī)械工業(yè)出版社,2009.
[3]牛又奇,孫建國.新編 Visual Basic程序設(shè)計教程[M].蘇州:蘇州大學(xué)出版社,2002.
Application of SolidWorks Secondary Development in the Parametric Modeling of Flange for Pressure Vessel
Chen Chen Li Hua Zeng Yi
Taking the parametric modeling of the flange for pressure vessel as an example,the secondary development technology of SolidWorks based on VB language was studied.In the designed human-computer interaction interface,the parameter values of flange could be defined by users,and the 3D model of the flange could be automatically generated by inputting the relevant design parameters.By using the secondary development technology,the response speed of SolidWorks was accelerated and the design cycle of product was shortened,and the problems of low efficiency and complicated operation in the traditional modeling process were solved.
Pressure Vessel;Flange;Secondary development;Parameterization;Modeling;SolidWorks
TP 391.7
10.16759/j.cnki.issn.1007-7251.2017.04.008
2016-08-18)
*陳晨,女,1986年生,碩士。鎮(zhèn)江市,212000。