谷金龍,周 晨,鄭 喆,白偉偉
(中核蘇閥科技實業(yè)股份有限公司,江蘇 蘇州 215129)
20世紀90年代計算機制圖開始取代手工制圖,隨著計算機制圖的發(fā)展,CAD輔助設(shè)計工具繪圖應(yīng)用廣泛。在國外,CAD技術(shù)的發(fā)展基本上是以參數(shù)化為基礎(chǔ),使得現(xiàn)在的CAD技術(shù)和系統(tǒng)都具有較好的開放性,圖形接口和圖形功能日趨標準化。
閥門種類繁多,按作用分類有止回閥、截斷閥、分流閥、調(diào)節(jié)閥、多用閥、安全閥和其他特殊專用閥等,應(yīng)用場景有石油、化工、電站、長輸管線、造紙、核工業(yè)、各種低溫工程、宇航以及海洋采油等流體輸送系統(tǒng)。大部分閥門零部件的幾何拓撲結(jié)構(gòu)都是固定不變的,所以基于CAD的參數(shù)化和尺寸驅(qū)動技術(shù)能為閥門設(shè)計提供很大的便利。
目前各大閥門廠使用基于CAD的參數(shù)化和尺寸驅(qū)動設(shè)計技術(shù)的較少,設(shè)計員設(shè)計閥門時大都以Excel輔助計算,然后根據(jù)所得結(jié)果,手動在CAD內(nèi)繪制圖形。這種設(shè)計方法繪制單一尺寸單一磅級時效率尚可,在進行大批量同系列不同規(guī)格的閥門設(shè)計時,效率就非常低下。
高壓止回閥自緊密封中腔結(jié)構(gòu)的常規(guī)設(shè)計流程如下,以便讀者更加了解參數(shù)化和尺寸驅(qū)動設(shè)計方法的優(yōu) 越性。
1)首先打開根據(jù)MSS SP-144“Pressure Seal Bonnet Valves”標準編寫的《閥門設(shè)計手冊》中相關(guān)計算公式預(yù)先編輯好的Excel計算表格,表格中設(shè)計參數(shù)見下表,高壓止回閥自緊密封中腔結(jié)構(gòu)二維圖如圖1所示。
圖1 高壓自緊密封中腔結(jié)構(gòu)示意圖
表 高壓自緊密封中腔設(shè)計參數(shù)表
(續(xù))
2)先確定密封圈外徑值(此值即為閥體中腔內(nèi)徑值),然后調(diào)整其他參數(shù),直到Excel表格顯示計算結(jié)果合格,高壓自緊密封止回閥中腔結(jié)構(gòu)設(shè)計完畢。
3)根據(jù)Excel表格中的各個數(shù)據(jù)在CAD中繪制圖形完成出圖。
根據(jù)計算公式總結(jié)并精簡高壓自緊密封止回閥中腔結(jié)構(gòu)設(shè)計參數(shù),需要用戶輸入的數(shù)據(jù)為密封圈外徑尺寸D、設(shè)計壓力P,其余尺寸可以由循環(huán)計算或者結(jié)構(gòu)安排得到。所有尺寸確定之后,剩下的繪制工作主要在代碼上實現(xiàn)。高壓止回閥自緊密封結(jié)構(gòu)尺寸設(shè)計順序圖如圖2所示。
圖2 高壓止回閥自緊密封結(jié)構(gòu)尺寸設(shè)計順序圖
本文介紹的設(shè)計方法代碼編寫平臺為Visual Studio,利用Visual Studio .NET對AutoCAD進行二次開發(fā)開始于AutoCAD2004,發(fā)展至今其功能已相當完善,并且教程也很多,是新手以及熟練者的理想開發(fā)平臺。
.NET API為開發(fā)者提供了豐富的托管外包類,使之可以在Microsoft .NET Framework下,使用諸如Visual C++、Visual C#、VB.NET、Visual F#等基于.NET 的語言對AutoCAD 進行二次開發(fā)。
本文描述的對AutoCAD二次開發(fā)語言是C#,通過二次開發(fā)可以實現(xiàn)絕大多數(shù)手動操作AutoCAD可以實現(xiàn)的功能。C#作為.NET平臺代表語言,具有精確、簡單、類型安全、完全面向?qū)ο蟮奶攸c。
AutoCAD保存的文件格式是DWG,DWG文件實際上對象型的數(shù)據(jù)庫文件,里面存放著各種符號表與一個命名對象詞典。對AutoCAD二次開發(fā)實現(xiàn)參數(shù)化繪圖,繪圖上實現(xiàn)的大部分操作都是通過事務(wù)處理向數(shù)據(jù)庫下面的各種符號表里的符號表記錄內(nèi)添加對象來實現(xiàn)的。參數(shù)化和尺寸驅(qū)動繪圖實現(xiàn)方法如圖3所示。
圖3 參數(shù)化和尺寸驅(qū)動繪圖實現(xiàn)方法
(1)調(diào)用WinForm窗體獲取設(shè)計參數(shù)
由于WinForm窗體設(shè)計簡單易學(xué),而且在本設(shè)計方法中其只需要承擔簡單的獲取用戶輸入?yún)?shù)的功能,故其是一個很好的人機交互工具選擇。WinForm窗體獲取設(shè)計參數(shù)如圖4所示。
圖4 WinForm窗體獲取設(shè)計參數(shù)
(2)獲取最適宜尺寸的代碼
下面舉例說明由循環(huán)計算確定尺寸的方法,根據(jù)MSS SP-144,b位置承壓應(yīng)力計算公式簡化后為
式 中,P為 壓 力 等 級 標 記 數(shù)900,1 500,2 500或 4 500;S為閥體材料許用應(yīng)力,取值48.3MPa;K為系數(shù),當S用MPa表示時取值217.5。
循環(huán)計算用Excel中的宏實現(xiàn),Excel表格中C9單元格存儲φD的值,C10單元格存儲φD的值,I26單元格里面是一條IF語句,如果驗算墊片強度合格單元格的值就是1,否則就是0。C10單元格初值設(shè)為s-1,每循環(huán)一次其值減1,當循環(huán)中判斷墊片強度合格后退出循環(huán),這時獲得一個確定的φD值。
上述只是舉例介紹φD尺寸獲得的過程,要想完整的獲得所有尺寸要考慮的東西還有很多,比如螺栓布局和擰緊空間是否足夠、閥蓋斜面到閥蓋底面的距離預(yù)留是否足夠等,這樣才能保證參數(shù)化設(shè)計結(jié)果的合理性。
(3)在AutoCAD中繪制圖形的代碼
C#作為面向?qū)ο蟮恼Z言,具有代碼封裝的功能,利用好這個功能,可以在很大程度上減少參數(shù)化設(shè)計的代碼量。
下文介紹一些向AutoCAD中添加線條的封裝方法,簡單修改后可以實現(xiàn)向CAD中繪制各種線條如直線、圓、圓弧等,代碼繪制的部分圖形如圖5所示。
圖5 代碼繪制部分圖樣示意圖
(4)實現(xiàn)尺寸驅(qū)動功能
AutoCAD繪制出來的對象都繼承自DBObject類,DBObject有一個ExtensionDictionary屬性,開發(fā)者可以通過事務(wù)處理獲取其DBDictionary詞典,詞典可以存儲Group類,Group對象可以存儲很多ObjectId對象。這對新手有一些煩瑣,但是通過這些操作可以把多個線條或者標注與一個線條關(guān)聯(lián)起來。
AutoCAD提供一個IExtensionApplication接口,通過這個接口開發(fā)者可以實現(xiàn)雙擊特定實體的操作后執(zhí)行預(yù)定義的操作。這里推薦將特定實體設(shè)置為多段線,因為其在AutoCAD繪圖中使用頻率較低,可以減少該代碼在不需要的時候觸發(fā)的次數(shù)。
把參數(shù)化繪制的所有對象的ObjectId屬性值存儲在一個Group對象中,要注意的是所有對象的ObjectId屬性值要按順序存儲,只有這樣接下來讀取的時候才方便對不同標注的進行識別。接著把這個Group對象存儲在參數(shù)化繪制的多段線的DBDictionary詞典中。當用戶修改標注的標注尺寸并雙擊對應(yīng)的多段線后,代碼通過ObjectId屬性獲取用戶修改標注尺寸,然后根據(jù)獲取的標注尺寸重新調(diào)用參數(shù)化繪制代碼實現(xiàn)尺寸驅(qū)動。文字描述實現(xiàn)邏輯有些復(fù)雜,尺寸驅(qū)動的原理如圖6所示。
圖6 尺寸驅(qū)動邏輯示意圖
對閥門零部件或者整體進行參數(shù)化設(shè)計很早就有論文提到,但閥門產(chǎn)品種類眾多、結(jié)構(gòu)眾多,必須要對大量的結(jié)構(gòu)進行參數(shù)化代碼編寫,才能正在意義上提高閥門設(shè)計效率,這是一個巨大的工作量。
要實現(xiàn)閥門零部件參數(shù)化,要求設(shè)計者懂一些編程,并且對閥門設(shè)計要精通,參數(shù)化設(shè)計可以通過閥門廠家與軟件二次開發(fā)廠家進行合作開發(fā),但是費用較高。考慮到此參數(shù)化設(shè)計在代碼上的難度并不大,故筆者認為,此項工作也可以通過在企業(yè)培養(yǎng)內(nèi)部設(shè)計人員進行。
利用AutoCAD進行參數(shù)化及尺寸驅(qū)動二次開發(fā)可以有效的提升設(shè)計準確性、簡化閥門設(shè)計流程和縮短新產(chǎn)品的系列化開發(fā)周期。參數(shù)化及尺寸驅(qū)動設(shè)計在閥門設(shè)計中的應(yīng)用,可以主要集中在以下兩個方面:
1)成熟產(chǎn)品零部件參數(shù)化設(shè)計。公司對于成熟產(chǎn)品總是有升級迭代的需求,升級迭代可能是計算公式的改進、材料性能的提升和結(jié)構(gòu)形式的微調(diào)。對于這些改動,都可以通過簡單改動代碼和Excel計算表格使參數(shù)化及尺寸驅(qū)動設(shè)計滿足新產(chǎn)品設(shè)計要求。
2)新產(chǎn)品零部件參數(shù)化設(shè)計。公司新產(chǎn)品的設(shè)計往往是根據(jù)訂單需求來。當客戶需要某個規(guī)格的閥門時,設(shè)計員再來進行相應(yīng)設(shè)計。新產(chǎn)品實現(xiàn)系列化設(shè)計往往需要幾年時間,有足夠的時間留給設(shè)計員進行參數(shù)化及尺寸驅(qū)動設(shè)計。
本文介紹了高壓止回閥自緊密封中腔結(jié)構(gòu)參數(shù)化及尺寸驅(qū)動設(shè)計的設(shè)計原理及流程,為其他零部件參數(shù)化設(shè)計提供一些理論基礎(chǔ)并具有一定參考意義。另外此設(shè)計方法本身還具有以下優(yōu)點:
1)把計算過程在Excel中完成,這樣就可以把計算公式與代碼分隔開,也就是達到低耦合的目的。代碼對接的是計算結(jié)果而不是計算過程,后續(xù)如果計算公式有修改并不影響原代碼執(zhí)行。
2)在參數(shù)化設(shè)計的基礎(chǔ)上更進一步,實現(xiàn)尺寸驅(qū)動功能,并在很大程度上實現(xiàn)了代碼重用,可以有效提高閥門設(shè)計效率。