張志剛, 趙 罡
(北京航空航天大學機械工程及自動化學院,北京 100191)
在產品開發過程中標準件的使用率約占零件總數的60%[1],因此標準件庫系統的開發和應用對提高產品的設計效率至關重要。標準件庫系統的研究與開發可追溯到早期的二維CAD平臺,如基于AutoCAD平臺的標準件庫系統。隨著參數化特征造型技術日漸成熟,標準件庫系統中涉及的尺寸驅動這一關鍵技術被妥善解決,應用于各三維參數化特征造型平臺之上的CAD系統也隨之大量出現。
外部管路系統是燃氣輪機最重要的組成部分之一,直接影響到燃氣輪機的可靠性和安全性。在燃氣輪機的管路系統中存在大量的標準件,包括管接頭、外套螺母、堵頭、卡箍、轉接段等,通常稱之為管路元件。這些元件均是航空專用零件,其幾何拓撲結構一般相同或相似,僅尺寸規格有差異。在實際的管路敷設過程中,常需大量使用此類管路元件,而工程設計人員也因為尺寸的不同而不得不對同類的管路元件進行重復設計,這不僅耗費了設計人員大量的時間和精力,而且導致產品數據庫過大,不易管理。通過建立管路元件的標準件庫,不僅可以解除繁瑣的重復繪制工作,提高設計效率,還能保證標準件的繪制精度,同時有利于后續的維護工作。
關于三維管路的計算機輔助敷設技術研究,國內已有一定基礎[2-3]。陳志英等在航空發動機管路智能敷設方面做了較深入的研究和探索[2];付宜利等研究了石油管路空間位置規劃、路徑自動搜索及路徑修改等管路敷設關鍵技術[3]。本文在這些研究工作的基礎上,對種類繁多的燃氣輪機管路零件進行分類歸納,開發了一個簡單易用的零件庫系統,為后續的管路敷設奠定了良好的基礎。
本文介紹基于UG平臺的燃氣輪機管路元件庫開發是基于工程需要。文中第一節介紹了 UG平臺提供的二次開發接口;第二節給出了管路元件庫系統的體系結構;第三、四節介紹了數據層和用戶層的開發細節;最后給出了實例和結論。
UG/Open是一系列UG開發工具的總稱,是UG軟件為用戶或第三方開發人員提供的最主要的開發工具。UG/Open開發工具主要包括UG/Open API、UG/Open GRIP、UG/Open MenuScript、UG/Open UIStyler等模塊,這幾個模塊的開發方法和適用范圍如表1所示。
開發燃氣輪機管路元件庫需要使用數據庫存儲數據,涉及到數據庫編程,因此本文選擇的開發工具是UG/Open API,開發平臺為Visual C++6.0。在開發過程中還使用到了一些MFC類庫,因為這樣可以方便地實現復雜的數據結構,靈活簡潔地進行字符串相關操作,設計出更加豐富美觀的界面,同時也能很容易實現與數據庫的相關操作。

表1 UG/Open開發工具比較
管路元件庫系統主要由兩層結構組成:數據層和用戶層。數據層主要用來存儲管路零件的尺寸信息,為用戶層提供數據支持;用戶層主要用來從數據庫中讀取管路零件尺寸、添加新尺寸到數據庫中、刪除數據庫中的尺寸信息和管路零件的參數化建模,如圖1所示。
數據層的設計工作主要在于零件族的劃分和特征參數的提取,為每類零件族設計一個數據表,并以特征參數為數據表的列字段存儲。用戶層的開發首先是建立在CAD系統基礎上的,利用開發接口,開發出用戶界面,實現與數據庫的操作和管路零件模型的生成。
零件庫的主要對象是零件模型,零件模型可以由零件編號、名稱、尺寸參數等特性來描述。零件庫由多個零件族組成,每個零件族由樣板模型和一系列尺寸參數組成,它可以通過零件名稱、編號、特征參數值來索引。因此,整個零件庫是一種樹狀的層次關系,如圖2所示。

圖2 零件庫的組織形式
零件的特征包括結構、材料與工藝3個方面,本文只研究零件的結構。零件結構相似包括形狀相似、尺寸相似和精度相似。形狀相似是指零件所具有的形狀要素如平面、外圓、孔、螺紋、錐體、健槽、齒型等及其在零件上的布置形式相似;尺寸相似是指零件之間相對應尺寸相似;精度相似是指零件相對應表面之間精度要求的相似。零件的相似性是零件分類的依據,籍此劃分零件族。零件族的劃分原則如下:
(1)零件的幾何形狀相似,即零件的特征相似,尤其是外特征,特征的位置、尺寸不重要,但相似特征應具備,例如外環槽、錐體、孔、及球面等。
(2)同軸的外圓特征數量的多少一般視為相似,并且外環槽、錐體及球面等特征位于零件的端部時,則該零件族的上述特征都應位于零件的端部。
(3)同軸的孔特征可視為一族。
(4)圓面上均勻分布的孔特征,不管數量多少視為一族。
當零件族確定后,需要指出的是憑經驗劃分的零件族,并不一定能全部在UG平臺上實現,例如:在劃分的零件族中,某一零件有孔特征,而另一零件沒有孔特征,則此零件族不能完全涵蓋這兩種零件,須重新劃分。由于基于特征建模的CAD軟件,不支持特征參數為零的特征,此例中孔的直徑或深度為零,即違反特征參數不能為零的規則。
特征參數的提取與零件的相似程度有密切關系。當零件的幾何拓撲關系一致,而很多尺寸值不相同時,需要提取的特征參數較多,此時建立的零件庫開放性較好。在工程實際中,一個零件族只有少數幾個特征參數不同的情況居多,此時開發零件庫較容易。
因同一特征在不同設計平臺或同一設計平臺下,用不同構造方法的特征表達不一樣,所以在提取參數時,需注意三點。第一,使三維設計平臺下的特征參數的表達與工程實際中的表達協調一致。第二,提取參數時還應尋找零件的特征表達參數之間的關系,以減少參數個數,以便使數據庫存儲有最小冗余。以簡單螺母為例,除螺母的高度、孔徑外,僅正六邊形在三維設計平臺下,需9個參數方可滿足全部約束,而工程實際中正六邊形僅需2個參數表達。值得注意的是:雖然通用CAD軟件中,正多邊形僅需內切圓和邊數兩個參數即可確定,但參數化設計中用到的正多邊形需用邊、角信息表達,故正六邊形需9個參數。需要根據幾何關系找出參數間的依賴關系,籍此可以將9個參數,簡化為2個獨立的參數,并與國標協調一致,如圖3所示。第三,提取參數過程中應當考慮所提取的參數,關于模板零件是否構成過約束或欠約束,提取參數后及時驗證,就可檢驗提取的參數是否正確。
根據前述劃分零件族的思路,將所有的管路零件分為若干個零件族,再為每個零件族提取特征參數。選取零件族中最復雜的一個零件作為模板零件,以零件族的特征參數作為尺寸約束,采用參數化建模的方法為該類零件族建立一個樣板模型。需要說明的是,該樣板模型其實也只是一個普通的UG零件模型,只是它采用參數化尺寸驅動,并且該樣板模型的尺寸標注一定要是全約束的,不能欠約束也不能過約束。零件模型建立完成后,需要修改參數表達式的名稱,將系統給定的默認表達式名稱更改為有實際意義、易于區分的表達式名稱。這樣就完成了一類零件族的樣板模型,可以按照同樣的方法為每一類零件族建立樣板模型。

圖3 特征參數簡化
數據庫操作模塊主要負責實現應用程序與零件尺寸數據源之間的各種操作,為管路元件庫系統提供數據支持。本文選擇ADO方式連接數據庫,這種連接方式速度快、占用內存低、實現簡單。本模塊的功能包括數據庫的連接、數據庫信息的查詢、數據庫信息的添加和數據庫信息的刪除等。采用ADO與VC++編程開發,利用ADO提供的功能強大的智能指針,只需編寫合適的 SQL語句就能實現對數據庫的各種操作。
開發用戶界面有兩種可選的方式:UG軟件自帶的界面編輯器和 VC++的 MFC類庫。第一種方式實現的用戶界面更符合UG軟件的風格,但是實現較復雜,界面提供的消息響應方式也不太完善;第二種方式采用 VC++的MFC類庫,可以設計非常復雜的界面,編程也比較簡單,更重要的是MFC類庫可以方便地實現復雜的數據結構。本文選擇使用MFC類庫編寫用戶界面。
用戶操作界面主要由零件參數化設計對話框和數據庫操作對話框組成,還有一些常見的MFC控件,如按鈕、靜態文本框、編輯框、列表框和組合框等。用戶進行零件設計時,可以直接輸入零件的參數值,快速生成零件的三維模型;也可以從數據庫中選擇尺寸值,重新編輯零件的參數表達式,更新零件模型,操作流程如圖4所示。從數據庫中讀取數據時,用戶可以查詢零件尺寸數據,可以刪除零件尺寸數據,還可以添加新的零件尺寸數據;如果需要擴充零件庫,只需向數據庫中添加新的零件尺寸數據即可。

圖4 零件庫操作流程圖
UG軟件提供了多種開發工具,本文選擇的開發工具是 UG/Open API。使用 UG/Open API編寫的應用程序可以在兩種不同的環境下運行:內部環境和外部環境,這兩種環境又分別被稱為內部模式和外部模式。內部模式的應用程序具有文件小、連接塊的特點,另外,使用內部模式的應用程序還可以通過UG的交互界面獲取和創建模型,創建和編輯表達式,通過圖形窗口查看程序的運行結果。函數ufusr()和ufsta()是內部模式應用程序標準的入口函數。這里選擇使用ufsta()函數作為入口函數,它可以在UG程序啟動后自動被加載。ufsta()入口函數有固定的編寫模式:首先需要初始化UG環境,然后調用用戶開發的程序,最后需要釋放UG環境。作者開發的應用程序經過編譯鏈接之后生成動態鏈接庫文件,UG軟件可以自動加載和執行。
本文完成了八類管路零件庫的開發,包括管路零件的參數化建模,數據庫表的設計,用戶界面開發和零件模型更新等。用戶使用此零件庫,通過輸入零件參數,或從數據庫中導入已存在的零件參數,可以快速生成新尺寸的零件模型。
圖5給出一個使用此零件庫快速生成系列零件的例子。

圖5 管接頭零件系列
本文開發的管路元件庫系統采用了參數化設計技術,通過系統與標準數據庫相連接,實現標準數據自動選擇和查詢,以及與UG環境無縫連接,使得用戶調用標準零件更加方便。系統設計的開放式標準庫結構,方便用戶修改與擴充。采用特征參數化驅動的方法,減少了建庫的工作量。元件庫的開發也是對成組技術和敏捷制造中的變形設計做了一次有益的探索,對自動化或系列化生產的機械制造企業,建立自己的產品設計數據庫,具有重要的指導意義。
當然,本文開發的管路元件庫系統也存在一些不足之處,例如當新增一類管路零件時,需要為新增的管路零件編寫額外的代碼。本文后續的工作包括:一是改善管路元件庫的擴展性;二是將此管路元件庫系統與管路敷設系統相集成,使它們更好的發揮作用。
[1]陳志英, 張向強. 基于UG零件庫的建立[J]. 機械設計, 2001, (8): 49-51.
[2]陳志英, 唐文哲. 管路系統計算機輔助設計方法研究[J]. 航空動力學報, 2001, 16(2): 183-185.
[3]付宜利, 李 榮, 封海波, 等. 三維管路鋪設技術研究與系統開發[J]. 計算機集成制造系統, 2006,12(10): 1556-1560.
[4]張向強, 陳志英. 基于 UGⅡ的管路三維元件庫的建立[J]. 航空發動機, 2000, (4): 29-32.
[5]Yingguang Lia, Yong Lub, Wenhe Liaoa.Representation and share of part feature information in web-based parts library [J]. Expert Systems with Applications, 2006, 31(4): 697-704.
[6]Joonmyun Cho, Soonhung Han, Hyun Kim.Meta-ontology for automated information integration of parts libraries [J]. Computer-Aided Design, 2006,38(7): 713-725.