文獻標識碼:B文章編號:1003-0492(2025)06-086-07中圖分類號:TP29
★谷金龍,吳小康,周晨,鄭喆,虞戈,張晨晨,嚴文祥(中核蘇閥科技實業股份有限公司,江蘇蘇州215129)
關鍵詞:閥門設計;快速設計;自動設計;二次開發
1 引言
隨著數字化浪潮席卷開來,數字技術作為核心驅動力不斷推進企業創新和轉型升級[1],提升制造業企業數字化能力將是實現制造業企業高質量發展的必由之路[2]。為提高企業競爭力,閥門制造企業近年來也在不斷進行數字化轉型。它通過一些數字化手段提高企業設計生產效率,例如進行工廠智能化改造、使用三維設計軟件、上線產品全生命周期管理(Product Lifecycle Management)系統等。
閥門是流體輸送系統中的控制部件,具有截止、止回、換向、調節流量、減壓穩壓等功能,廣泛應用于石油、化工、核電等各行各業中[3]。2019年,閥門行業規模以上企業已經達到1809家,完成閥門共計65222萬余噸,同比增長4.84%[4]。隨著閥門制造技術的發展,閥門設計逐漸趨向于小批量、多品種的快速設計與制造[5]。因此,針對閥門標準產品有必要設計一種閥門標準產品BOM(Bill Of Material)自動設計出圖方法來提高企業競爭力,具體理由如下:
(1)閥門標準產品材料配對方式繁多
一個具體規格的閥門標準產品有成千上萬種材料配對方式,企業在完成產品標準化設計時不會完成所有材料配對設計。當年實際訂單在產品數據庫中找不到相同材料配對的標準產品時,設計部門會安排相關設計任務,每年此類訂單任務至少占總設計任務數量的50%。
(2)閥門標準產品升級迭代之后需要重新設計
為應對激烈的市場競爭,閥門標準產品會有升級迭代需求。升級迭代之后的材料配對邏輯基本不變,但為了和舊的同類標準產品區分開來,標準產品的標準號必須改變,此時需要針對這些標準產品從零開始重新進行材料配對設計。
(3)新員工學習成本高,易出錯
閥門企業每年都會進行新員工招聘,新員工必須進行標準產品材料配對邏輯的學習,然后進行相關任務設計。在實際設計中,新員工往往會在標準產品引用和材料配對設計中出錯,如果審核人員沒有審核出來,將影響后續產品生產和訂單準時交付。
2 自動設計出圖方法介紹
下文以《API623:2013》法蘭端和對焊端螺栓連接閥蓋鋼制截止閥標準中適用于石油煉化等工況的截止閥(簡稱截止閥)為例進行自動設計出圖方法介紹。本方法用戶通過Winform窗口選擇具體的閥門規格和確定對材料的具體要求,程序根據這些信息定位到對應的閥門模型并將之另存為到指定的文件夾中,再通過相關代碼修改另存為的模型中的BOM完成自動出圖。本方法的所有代碼都通過Visual Studio軟件進行編寫,該軟件能夠使用C系列的各種語言進行程序設計,其編寫、編輯、調試和生成代碼文件等功能一應俱全,是一款非常好的開發工具。下面通過以下七大方面進行介紹:
(1)截止閥材料配對邏輯梳理;
(2)數據庫建立;
(3)人機交互界面設計;
(4)材料配對邏輯輸入計算機;
(5)調用NX軟件API(Application Programming Interface),完成自動出圖;
(6)使用C++/CLI實現C#和C++交互;
(7)方法總體實現流程梳理。
2.1 閥門標準產品材料配對邏輯梳理
《API623:2013》標準中對材料有專門的規定,其中6.1節規定:“閥體、閥蓋和除內件外的其它閥門零件材料應從表7中選取”[6],6.2節對內件包含的零件做了詳細規定。結合標準中第6節其它內容綜合分析,可將截止閥零件分為三類:第一類為主體零件,其接觸介質并為主要承壓件,包括閥體、閥座、閥蓋、閥瓣、耐腐蝕性至少等于閥體材料的零件;第二類為內件,包括閥桿、閥體閥座閥瓣密封面、密封座、通常與流體接觸的內部小零件;第三類為一般件,其不接觸介質,包括除第一類和第二類以外的零件。圖1是《API623:2013》標準中截止閥結構簡圖[7]。
圖1截止閥產品示意圖
主體零件的確認為截止閥材料選型的第一步,其變化會影響內件和一般件材料變化。內件變化會作為附件條件影響內件和少部分一般件材料變化,特殊要求會作為附件條件影響所有或部分零件的材料變化。截止閥材料配對邏輯具體變化主次順序和組合情況如圖2所示,每一條分支都會產生不同的截止閥材料配對結果。
圖2截止閥材料配對邏輯變化主次順序和組合情況示意圖
主體零件材料變化一般按照材料性能和使用工況進行分類,可分為碳鋼、低溫用鋼、高溫用鋼、不銹鋼、鎳基合金等,每個類別使內件和一般件材料有不同的變化方法。內件變化更為具體,每個內件材料變化都規定了具體材料名稱。特殊要求為企業根據市場需要進行梳理歸納,如特殊要求為“CE”,意指閥門必須滿足歐盟的CE指令[8],需要落實在閥門標準產品BOM中的內容為所有材料名稱必須是ASTM(美國材料與試驗學會)標準材料。
如上所述,截止閥零件可分為三大類,但在企業實際設計制造時要考慮的因素更多,比如針對某些小零件會縮小材料種類范圍以降低成本,或根據設計經驗對某個零件采用強度水平的材料等。故在具體截止閥材料配對時,無法保證材料配對邏輯完全符合上述規律,可將上述材料配對邏輯作為基本指導思想,為每一個標準零件定制一個材料配對算法,這樣做既降低了材料配對邏輯梳理難度又降低了程序編寫難度。
為讓讀者更易理解,下面進行材料配對舉例說明。主體零件閥體材料選用碳鋼ASTM A216 WCB,則閥桿(內件)材料默認選用ASTM A182 F6a CL2,鎖緊螺母(一般件)材料選用35鋼。當內件變化為ASTM A182 F316時,則閥桿(內件)材料改為選用ASTM A182 F316,鎖緊螺母(一般件)材料改為12Cr13。在以上變化的基礎上再加上特殊要求變化為CE,則閥桿(內件)材料仍選用ASTM A182 F316,鎖緊螺母(一般件)材料改為ASTM A276 410(ASTM A276 410為12Cr13的美標材料名稱)。
2.2 數據庫建立
數據庫分為兩類:一類是截止閥模型數據庫,采用PRT格式文件存儲;一類是材料數據庫,采用CSV格式文件存儲。數據庫提供了基礎數據支撐,豐富了材料配對的變化數量。
2.2.1 截止閥模型數據庫
Windows文件夾系統是現成的、典型的樹狀結構存儲系統,截止閥模型數據庫存儲在文件夾中。針對截止閥標準產品,文件夾樹節點按順序包括閥種、設計標準、公稱壓力、端部連接形式、中腔連接形式、公稱通徑、驅動方式以及商標代號。這些樹節點信息確定了具體的截止閥規格,所有截止閥模型按規格保存在對應路徑的文件夾下。
PRT格式文件為NX軟件保存模型信息的文件,截止閥模型數據庫包含各種零件模型和裝配體模型。模型中需加入額外信息,具體有:
(1)在零件和裝配體模型中加入屬性代號、名稱和重量,并賦予具體的值。零件模型的代號填寫零件標準號、名稱填寫零件規格,裝配體模型的代號填寫圖號、名稱填寫閥門名稱。
(2)在裝配體模型中加入BOM和標題欄的表格,表格采用NX的PMI表功能,其可設置為平行于屏幕顯示,當旋轉模型時仍可方便地瀏覽表格上的信息。BOM表格材料和備注、標題欄表格代號由自動設計出圖方法填寫,其余內容來自零件模型和裝配體模型相關屬性的值,在定義模型數據庫時填寫在PMI表中,具體樣式如圖3所示。
圖3截止閥BOM和標題欄樣式示意圖
(3)為使材料配對算法更容易實現,需在零件模型中加入屬性成型方式(值填寫鑄件、鍛件、棒材),后續材料配對邏輯實現將需要這些信息。
2.2.2 材料數據庫
CSV文件作為一種純文本格式的表格數據文件,其具有體積小、結構簡單、消耗資源小、格式純凈等優點[9]。材料數據庫都是類似于二維表格的數據,非常適合使用CSV文件進行存儲。
材料配對方法的實現需要依賴一些基礎材料數據庫,包含各種關于材料名稱、材料屬性和材料成型方式的信息。一般件材料不建立數據庫,因為一個一般件的材料選擇通常只有兩三種,直接在算法中定義較為簡單,其它具體材料數據庫如下:
(1)主體零件和默認內件搭配材料數據庫
按照《API623:2013》表7中規定,閥體和閥蓋材料從ASMEB16.34第1組和第2組中選取,內件搭配根據企業自身經驗,部分內容表1所示。
表1主體零件和默認內件搭配材料部分數據庫
(2)內件變化數據庫
內件變化數據庫數據來自《API623:2013》表8中數據和企業多年生產經驗,部分內容如表2、表3所示。
表2內件零件材料部分數據庫
表3內件密封面材料部分數據庫
2.3 人機交互界面設計
Winform窗體設計簡單易學,故其是一個很好的人機交互工具選擇[10]。人機交互界面使用VisualStudio軟件和C#語言進行設計,具體設計界面如圖4、圖5所示。
圖4截止閥規格選擇交互界面示意圖
圖5截止閥材料選擇交互界面示意圖
圖4交互界面使用戶可以選擇想要的截止閥規格,圖5交互界面使用戶可以選擇想要的主體材料、內件材料和特殊要求。點擊圖4交互界面中的“選擇材料”按鈕可以調出圖5交互界面,點擊圖5交互界面“OK”按鈕可以關閉當前交互界面并返回圖4交互界面。
圖4交互界面中ComboBox控件(下拉文本框)從左往右、從上往下選擇,每次選擇之后,后續的ComboBox控件會根據閥門模型數據庫的文件夾層級內容進行動態更新,避免交互界面顯示的規格在數據庫中不存在。動態變化通過ComboBox控件的Selection Change Committed事件進行觸發,ComboBox控件的TabIndex屬性按照用戶選擇順序遞增編號,這樣代碼編寫時可以方便地對各個ComboBox控件進行修改。圖5所示的交互界面中數據源來自材料數據庫,用戶選擇“主體材料—鍛件”材料后,“主體材料—鑄件”下拉文本框中材料內容會對應變化,避免主體材料鍛件和鑄件兩個材料不搭配。
2.4 材料配對邏輯輸入計算機
BOM可以由零件信息、組件信息和其它產品BOM搭配組成,這非常適合采用組合設計模式。組合模式將對象組合成樹型結構以表示“部分-整體”的層次結構,使得用戶對單個對象和組合對象的使用具有一致性[11]。代碼數據結構設計如圖6所示。
圖6閥門零件組件代碼結構示意圖
圖6中BasePart類為抽象類,抽象類是現有類型作為新類型底層實現的一部分來加以復用[12],該類將閥門零件和組件共有變量和方法提煉出來作為其成員。Attribute類用來描述閥門產品零件的BOM相關信息和零件成型方式。Input類用來描述用戶輸入的信息和從模型中獲取的信息,當用戶完成人機交互選擇后,Input類對象就生成了。Add(Remove)方法用來向類中的成員baseParts中添加(刪除)元素,Modify方法用來修改類中的成員Attribute。
材料數據庫的內容可作為全局變量,當程序運行時為這些全局變量進行賦值,避免因重復的獲取而導致程序效率降低。
截止閥材料配對邏輯輸入計算機的實現方法如下:
(1)定義代表截止閥標準件的零件類
定義Attribute類中的codeName的值,值填寫為類似“Q/DJXXXX-2018”的標準號。定義Modify方法,首先在Input類中的Attributes中搜索是否有Attribute的codeName的值為“Q/DJXXXX-2018”,無則退出方法,有則根據Input類中材料要求信息、材料數據庫和材料配對邏輯完全定義類的成員Attribute。由于篇幅有限,僅以閥體類、閥桿類和壓板類的Modify方法實現進行算法介紹:
·閥體類,首先在Input類的Attributes中搜索是否有Attribute的codeName的值為該閥體類的Attribute的codeName的值,無則退出,有則根據該Input類的Attribute的moldingMethod的值是鍛件還是鑄件,鑄件則為閥體類的Attribute賦值為Input類的mainCastMaterial的值,鍛件則賦值為Input類的mainForgingMaterial的值。
·閥桿類,首先在Input類的Attributes中搜索是否有Attribute的codeName的值為該閥桿類的Attribute的codeName的值,無則退出,有則根據Input類的internalMaterial的值為“無”還是其它具體材料。如果為具體材料則直接為閥桿類的Attribute的codeName賦值為該具體材料,若為“無”,則根據Input類的mainCastMaterial和mainForgingMaterial的值在表1中找到具體的一行,然后將該行的內件材料賦值給閥桿類的Attribute的codeName。
·壓板類,首先在Input類的Attributes中搜索是否有Attribute的codeName的值為該壓板類的Attribute的codeName的值,無則退出,有則根據Input類的mainCastMaterial和mainForgingMaterial的值在表1中找到具體的一行,看該行的材料特性的值是碳鋼還是不銹鋼,另外再看Input類中Attributes中對應的Attribute中moldingMethod的值為鑄件還是鍛件。根據這些內容可產生四種不同的壓板材料,如碳鋼鑄件壓板材料定義為ASTM A216 WCB,每種情況在算法中直接定義。
(2)定義代表截止閥產品的零件類
為類中的baseParts添加截止閥所需的零件類,不局限于某個具體規格閥門的所有零件,同類型閥門的其它規格中的零件也添加在baseParts中。首先定義Add和Remove方法,再定義Modify方法,Modify方法首先循環執行baseParts中各個元素的Modify方法,再定義自身的Modify方法為本身的Attribute類賦值(涉及圖號內容不繼續展開)。類中所有相關的Attribute定義完成后,對另存為的截止閥模型中的BOM表對應的每行信息進行對應賦值即可完成自動設計出圖任務。
2.5 調用NX軟件API完成自動出圖
目前流行的NX二次開發方式主要有NXOpen C、NXOpen C++、NXOpen Java和NXOpen.NET等,NXOpen支持最全面、最復雜層次的編程[13]。利用NXOpen開發的應用程序,可以在三種模式下被執行:交互模式、批處理模式、遠程模式[14]。采用批處理模式,調用NXOpen C和NXOpen C++包含的API進行二次開發。批處理模式可以在不打開NX軟件的情況下,通過exe可執行程序文件對NX文件進行查看、編輯和保存等操作。一個批處理程序只能調用一次UF_initialize和UF_terminate方法獲取和終止對NXOpen API的許可,否則程序會報錯無法正常執行。為便于讀者可以快速復現該方法,通過流程圖的方式展示大部分API(方法未列出所有需要輸入的參數)如圖7、圖8所示。
圖7讀取NX裝配體中零件模型上屬性的API
圖8修改NX裝配體中PMI表內容的API
2.6 使用C++/CLI實現C#和C++交互
C++/CLI是標準C++語言與CLI(Common Language Infrastructure)的集成[15]。C#編寫的程序和C++編寫的程序可利用C++/CLI實現交互,首先利用C++編寫程序輸出靜態鏈接庫(Statically Link Library)文件,再利用C++/CLI調用該靜態鏈接庫文件中的代碼編寫程序并輸出動態鏈接庫(Dynamic Link Library)文件,最后利用C#調用該動態鏈接庫文件的代碼實現C#和C++兩者的交互。
作為C++在CLI方面的延伸,C++/CLI的難度也在以令人難以置信的速度增長[16]。本方法中C++/CLI僅起傳遞數據的作用,使用難度大大下降。設計傳遞的數據都為文本類數據,故只需考慮該類型的類型轉換和傳遞即可,具體實現方法如下:
(1)文本類數據在C#和C++/CLI中的轉換文本類數據在C++/CLI中為System::String^類型,在C#中為System::String類型,C#在調用C++/CLI帶有System::String^類型作為參數的函數時,用System::String類型作為參數即可。
(2)文本類數據在C++/CLI和C++中的轉換
C++中通常使用std::string描述字符串,System::String^類型在C++中并不存在,可以用下面的方法進行轉換:
std::string SystemStringTostdString(System::String^ str)
{
msclr::interop::marshal_contextmars;
return mars.marshal_as<std::string>(str);
}
2.7 方法總體實現流程梳理
上文雖然介紹了一些本方法的主要技術要點,但可能對本方法的整體實現思路缺乏總體認知,故針對整體流程做進一步介紹,具體如圖9所示。
圖9整體流程示意圖
3 結語
將機械制造企業長期的設計經驗梳理出具體邏輯,并通過計算機實現自動化設計,可將設計人員從簡單枯燥的設計任務中解放出來,使設計人員有更多的精力投入研發當中,進而提升企業競爭力。
論文介紹的材料配對變化邏輯有限,實際設計中肯定需要考慮更多的內容,需讀者根據自身設計生產經驗進行總結,才能達到更好的效果。本方法具備一定的可擴展性,后期可通過擴充材料數據庫實現更多的材料配對組合,擴充模型數據庫為更多規格的截止閥實現BOM自動出圖。
本方法主要難度在材料配對邏輯梳理,如果材料配對邏輯梳理的清晰有規律,則代碼實現起來會更容易,調用NX API完成讀取、修改等操作在一次掌握后,對新閥種定義BOM自動出圖方法這方面的代碼仍可復用。
通過本方法,可達到閥門設計中簡單修改材料配對的任務自動設計效果,能夠在提高效率的同時減少出錯率。程序自動出具相關BOM圖紙,減少了設計人員查找圖紙修改圖紙的時間,對提高閥門設計效率具有重要意義。
作者簡介:
谷金龍(1994-),男,江蘇宿遷人,工程師,學士,現就職于中核蘇閥科技實業股份有限公司,研究方向為數字化設計、閥門設計。
吳小康(1990-),男,陜西安康人,高級工程師,學士,現就職于中核蘇閥科技實業股份有限公司,研究方向為閥門設計。
周 晨(1982-),男,江蘇蘇州人,高級工程師,碩士,現就職于中核蘇閥科技實業股份有限公司,研究方向為閥門設計。
鄭 喆(1994-),男,江蘇蘇州人,工程師,學士,現就職于中核蘇閥科技實業股份有限公司,研究方向為閥門設計。
虞 戈(1980-),男,江蘇蘇州人,高級工程師,碩士,現就職于中核蘇閥科技實業股份有限公司,研究方向為閥門設計。
張晨晨(1996-),男,江蘇連云港人,助理工程師,碩士,現就職于中核蘇閥科技實業股份有限公司,研究方向為閥門設計。
嚴文祥(1996-),男,江蘇鹽城人,助理工程師,學士,現就職于中核蘇閥科技實業股份有限公司,研究方向為閥門設計。
參考文獻:
[1] 孔惠麗, 裴瀟. 數字技術驅動下制造企業轉型路徑探究[J]. 財會月刊, 2023, 44 (23) : 89 - 96.
[2] 孫元, 鐘亞婷, 牟賽雅, 等. 制造業企業數字化能力及提升模式[J]. 清華管理評論, 2023 (3) : 22 - 31.
[3] 王渭. 閥門專刊特約主編寄語[J]. 流體機械, 2023, 51 (10) : 1.
[4] 何武, 曹宜軍, 粟鵬. 閥門行業智能制造的現狀及趨勢[J]. 自動化與儀器儀表, 2023 (6) : 1 - 3 + 9.
[5] 王春梅, 方憶湘. UGNX下基于模型定義的閥門數字化設計[J]. 機械設計與制造, 2015 (8) : 174 - 177.
[6] AMERICAN PETROLEUM INSTITUTE. STEEL Globe Valves Flanged and Buttwelding Ends, Bolted Bonnets: API623[S]. AMERICAN: AMERICAN PETROLEUM INSTITUTE, 2013 : 15.
[7] API 623-2021, 鋼制截止閥—法蘭和對焊端, 栓接閥蓋[S].
[8] 姚志奎, 余忠華, 宋小兵. CE-PED指令及閥門制造企業應采取的對策[J]. 閥門, 2002 (4) : 24 - 26 + 41.
[9] 劉耀欽, 楊新東, 袁承芬. 基于Python的智慧校園CSV文件的讀取方式研究[J]. 漢江師范學院學報, 2022, 42 (3) : 22 - 24.
[10] 谷金龍, 周晨, 鄭喆, 等. 一種閥門零部件參數化及尺寸驅動設計方法的應用[J]. 智能制造, 2022, (5) : 103 - 106.
[11] 孫凌云, 王光偉. 設計模式在軍用軟件開發中的應用[J]. 現代計算機(專業版), 2013 (4) : 51 - 54.
[12] 湯德懷. 探討繼承在抽象類和接口的應用[J]. 白城師范學院學報, 2016, 30 (5) : 63 - 64 + 70.
[13] 代睿, 徐娜, 莫堃. 基于C#和NXOpen的參數化建模研究[J]. 東方電氣評論, 2020, 34 (4) : 10 - 13.
[14] 唐康林. Siemens NX二次開發[M]. 北京: 電子工業出版社, 2021.
[15] 馮士德. 基于C++/CLI實現托管代碼與非托管代碼的交互[J]. 微型電腦應用, 2013, 29 (1) : 38 - 40 + 44.
[16] 李建忠. C++/CLI面面觀[J]. 程序員, 2005, (11) : 81 - 83.
摘自《自動化博覽》2025年6月刊






案例頻道