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