屈力剛,魏佩振,苑俊超
QU Li-gang,WEI Pei-zhen,YUAN Jun-chao
(沈陽航空航天大學 航空制造工藝數字化國防重點實驗室,沈陽 110136)
飛機裝配技術作為衡量飛機制造技術水平的高低,對飛機的全生命周期起至關重要的作用。目前國內二維CAPP系統在飛機裝配過程中仍起主導作用,飛機制造過程中工藝設計過程依據二維圖紙、裝配技術要求、相關產品的裝配工藝、企業的技術和工裝條件以及個人的經驗,設計出產品的具體裝配流程[1],并以此形成裝配工藝的主體內容,繼而形成對實際裝配操作有指導意義的二維圖、工藝規程(AO)等工藝資料,二維圖紙成為傳遞工藝設計與產品裝配的主要手段。飛機制造企業通過這些工藝資料來指導裝配人員完成產品裝配,通過人為方式管理來實現工藝指令的執行貫徹。
沈飛公司作為我國國防重點科研生產基地,承擔眾多型號飛機的研制任務,隨著多型號任務的發展,迫切需要建立企業自身的飛機制造工藝體系。要在短時間內高質量的完成任務,必須在制造手段上進行突破,改變三維裝配工藝設計環境和數控制造環境與依靠二維工藝文件傳遞工藝信息格格不入的制造方式,徹底消除三維模型與二維圖紙之間的人工轉換,在產品裝配的各個環節中,所有操作工人無須人工閱讀二維圖紙及在大腦中形成產品立體模型并理解具體裝配操作后再進行后繼工作,而是從三維可視化瀏覽器中直接對三維模型進行操作。
現場可視化系統系統流程及集成架構如圖1所示,分為三個模塊。底層是工藝模型,用于存術對工藝信息提取和對3DVIA Composer開發技術對工藝模型輕量化,定義XML形式的數據結構,將獲取的工藝信息存儲到XML文件,在服務器端的基礎上,讀取XML文件及加載3DVIA Player組件;客戶端對輕量化模型和工藝信息進行顯示,支持整個裝配過程的所有基于工藝模型的數據處理需求,比如:物料清單、工裝、刀量具、標準件等裝配工藝數據信息的瀏覽、查詢。

圖1 基于三維工藝模型的裝配現場可視化系統
三維工藝模型就是數字化的裝配工藝文件(AO),作為本系統的主要數據源之一,我們從工藝設計部門獲取工藝模型,通過對工藝模型進行分析,明確其內部數據的組織和結構,獲取可視化瀏覽器所需要的數據源。

圖2 三維工藝數據模型
設計部門發放的工藝模型數據結構如圖2所示,其主要由基本信息、裝配信息、裝配過程工藝信息3個分支構成,基本信息描述了該工序過程的裝配控制碼、名稱、狀態表等管理類信息,說明這份工藝規程的使用范圍、有效性等;裝配過程工藝信息包含了裝配的所有工藝信息,主要描述產品裝配過程中工人需要什么物料,采取什么方法,在什么位置做什么樣的工作,以及物料、工裝刀量具的詳細數量,代號,配套表詳細列出了所有的信息;裝配信息主要描述了產品裝配所需要的工裝,以及零部件的裝配順序,通過三維裝配動畫查看零件的具體裝配操作方法,裝配順序,步驟,裝配路徑等,非常方便工人的現場操作。
裝配過程工藝信息存儲在工藝模型下的PPR文件中,因此對于工藝信息的讀取必須利用CATIA/CAA開發技術。CAA(Component Application Architecture)是法國達索公司為了用戶在使用CATIA 的過程中根據所要擴展的功能進行二次開發而提供的以VC++語言為基礎的一系列函數庫的總稱[2,3]。CAA方法進行 CATIA 二次開發用到的核心思想是面向對象的程序設計 OOP(Object Oriented Programming)[4]。
要從工藝模型中提取裝配工藝相關信息,包含以下流程:1)首先獲取PPR文檔對象指針,CAA中對象的操作只能通過它的指針來完成,初始化文檔,調用GetRootContainer()函數獲取文檔的根容器,容器包含所有的對象。2)通過根容器再調用GetAllProcess()函數,獲得Process列表,即PPR文檔中的ProcessList;Root Activity是ProcessList列表中的第一個元素,即PPR中的Process節點,我們可以通過遍歷ProcessList集合獲取所有的元素。3)通過CATISPPChildManagement接口,并調用GetChild()函數,來獲process節點下給定參數類型的所有子元素。4)獲取process列表下的每個元素,并通過接口CATISPPActivity調用GetAttrValue()來獲取所有的屬性值。通過以上程序可以迅速的獲取PPR上的工藝信息,記錄所有裝配工藝信息,整理并存入 XML文件,即獲得裝配工藝信息。

圖3 工藝文件信息在PPR中的存儲形式
工藝信息獲取完成后,需要對三維模型進行輕量化,以便高效的進行數據傳輸,圖形快速繪制,滿足實時交互的要求。對三維工藝模型的輕量化,我們通過對3DVIA Composer組件二次開發來實現。模型輕量化的處理流程如圖4所示。

圖4 模型輕量化處理流程
調用命令行APIs,3DVIA Conerter.exe<fileInput><fileSettings.xml>輸入轉化文件,同時 XML配置文件用來定義文檔的屬性,如模型的精度,輸出格式,物體渲染的資源分配,模型的屬性信息,圖形質量等,XML配置文件為批處理文件。在曲面三角化處理時,本文采用的曲面簡化算法是通過精度來控制三角面片的多少,精度越高,三角形網格的劃分越細密,三角形面片形成的實體就越趨近于理想實體的形狀。文獻[5]對曲面簡化做了一種探索,本文在此基礎上做了進一步的研究,以便更能方便的利用。三角化處理主要是將實體表面離散成大量的三角形面片,即以三角形面片的形式來近似的表示幾何模型。三角形面片的多少由模型的精度控制,模型曲面精度由多邊形的弦高和多邊形相鄰弦的最大夾角控制。因此我們通過精度控制多邊形的弦高的大小(ε)和相鄰弦的夾角的大小(α),來實現模型曲面三角化的程度。控制方法如圖5所示。

圖5 幾何模型曲面三角化處理
由于工藝模型數據量巨大,工藝信息讀取、較慢,因此本文提出使用XML作為實現產品數據交換的中間工具。XML是一種簡單易用的標記語言。用它作為數據交換接口具有格式良好,可擴展性強,高度結構化,容易傳輸等幾個優點[6]。
元素是XML文檔的基本單元,XML文檔就是由一個一個層層嵌套的元素組成。整個XML文檔從根元素開始,根元素包含若干個子元素,而每個子元素又可以包含若干個子元素,從而可以組織成龐大的XML文檔[7]。元素包含一個起始標簽,一個結束標簽以及標簽之間的數據內容。元素創建通過CATIDMElement接口,數據內容包含名稱和值,通過CATIDOMCDATASection接口創建,并通過參數將獲取的結構樹上的節點名稱、數值、傳遞到AddElement()中,實現XML的創建及信息的寫入。
對于PPR結構樹上的中的各個節點,以樹的形式在XML中以元素的形式存儲,節點之間的包含關系以元素之間的嵌套關系實現,并通過預定義的模板實現XML文檔格式的校驗。元素類型分為簡單類型和復雜類型,簡單類型只能包含字符數據如,復雜類型元素可以有子元素和屬性(工步列表),復雜類型通過complexType來定義,數據內容包含名稱和值,類型通過CDATA標記,語法格式如圖6所示<[CDATA[文本內容]]>,內容為String類型。

圖6 XML工藝文件格式
可視化瀏覽器是基于B/S結構模式支持下瀏覽工具,集成3DVIA Player組件實現對裝配零部件的旋轉、標注、測量和剖切等;三維動畫的播放;產品裝配結構與三維模型的對應;解析XML實現裝配工藝數據(物料信息、操作說明、綜合信息)瀏覽。
瀏覽器界面采用JAVA語言設計,簡潔美觀、風格統一,操作便捷。解析器使用MSXML4.0進行XML文件的解析[8],使用SAX(A Simple API for XML)方式進行解析,該解析方式適合解析大型的XML文件,可以快速提取大型裝配體的相關信息[9]。
SAX是一種基于事件驅動的API。利用SAX解析XML文檔,涉及到兩部分:解析器和事件處理器。解析器負責讀取XML文檔,并向事件處理器發送事件,而事件處理器則負責對事件作出響應,對傳遞的XML數據進行處理[10]。解析器負責提供實現XMLReader接口的解析器類,而我們所要做的是編寫事件處理器程序。首先創建一個解析器工廠;其次利用這個工廠獲取一個具體的解析對象;在文檔的開始和結束時觸發文檔處理事件,這個事件由事件處理器中的startDocument()和endDocument()響應,開始對文檔進行解析及接受文檔結束的通知;對文檔中的每一個XML元素接受解析的前后觸發元素事件,分別調用startElement()和endElement()來讀取元素名稱和內容等信息并接受元素結束的通知。解析結束后,用指定的樣式表對XML文檔進行轉換,產生HTML頁面,發送到客戶端,用戶通過瀏覽器方式查看飛機裝配工藝信息。

圖7 可視化瀏覽器處理流程
本系統是在 Windows XP系統環境下,以C++和JAVA作為開發語言,設計開發了一個基于三維裝配工藝模型的裝配現場可視化系統。通過 CAA二次開發提取裝配工藝信息儲存于如圖7所示的XML文件,模型輕量化,將這些信息解析后在可視化瀏覽器進行顯示,如圖8所示。工人通過可視化瀏覽器查詢產品的裝配工藝信息,查看三維裝配指令及通過多媒體觀看裝配過程,同時,也可以瀏覽產品及工裝資源的輕量化模型,實現三維數字化裝配工藝數據在裝配現場的應用。
1)模型的輕量化主要是通過精度來控制,精度越低,三角形面片越少,經過輕量化的三維工藝模型雖然降低了精確度,但是大大簡化了零件模型,數據大小只有原來的 1/20~1/50,零件模型更迅速加載,顯示速度更快。圖8輕量化前后的CATIA 模型對比。

圖8 模型輕量化前后對比
2)用 XML 格式作為數據的中間轉換格式,既能統一底層的數據資源,又能不局限于某一種系統平臺而進行數據的傳遞,是一種高效、便捷的數據傳輸格式。工藝信息在XML文件中的存儲如圖9所示。

圖9 XML模型工藝信息存儲
三維可視化瀏覽器目前支持以下功能,三維模型的平移、旋轉、縮放;三維標注距離測量;創建剖面;三維動畫的播放;產品裝配結構與三維模型的關聯;工藝信息(物料、綜合、操作說明信息)的顯示;現場問題反饋。

圖10 三維裝配現場可視化瀏覽器
本文通過查閱大量參考文獻,分析裝配模型和總結已有的數據交換方法的基礎上提出了一種三維裝配工藝模型的模型輕量化解決方案和基于XML的CAD裝配模型數據交換方法,并以此為基礎開發了三維可視化瀏覽器,實現了工藝文件的快速瀏覽和裝配動畫的現場展示,強化工藝信息的現場指導作用。這種三維的數據表達方式更能準確、直接反映工藝人員的設計意圖,減少因數據理解不一致導致裝配錯誤的可能性,從而提高裝配效率,降低研制成本,有效地促進企業的快速發展。但是在模型輕量化時由于采用三角面片來近似表示零件的幾何形狀,不能精確測量零件的幾何位置關系,數據壓縮比并不高還存在很大的提升空間,XML作為標準中間數據格式也存在一定的不足。
[1] 姜宇峰.三維裝配工藝設計系統關鍵技術研究[D]. 華中科技大學,2007.5:1-3.
[2] 李自勝,朱瑩,向中凡.基于 CATIA 軟件的二次開發技術[J].四川工業學院學報,2003,22(1):19-21.
[3] DassaultSystemes.CAAV5encyclopaedia[C].Paris:DassaultSystemes,2000.
[4] 何朝良,杜廷娜,張超.基于CAA的CATIA二次開發初探[J].自動化技術與應用,2006(9):28-30.
[5] 羅顯光,李愛平,劉雪梅,李軍.基于B-REP的CAD模型與VR模型接口的實現[J]. 系統仿真學報,2009.3.
[6] 馮延輝,葉毅峰.XML完全手冊[M].中國電力出版社,2000,5.
[7] 李剛.瘋狂XML講義[M].北京:電子工業出版社,2011.08.
[8] Fabio Arciniegas.Advanced programming guaid with C++XML[M].北京:中國希望電子出版社,2002.102-357.
[9] 王曉斌,寧濤,王可.3DXML文件格式解析及應用[J].工程圖學學報,2010(2):33-37.
[10] 孫鑫.JAVA Web開發詳解[M]. 電子工業出版社.2012.5.