王海舟 張麗艷 周良明 劉勝蘭
1.南京航空航天大學(xué),南京,210016 2.成都飛機工業(yè)(集團)有限責(zé)任公司,成都,610000
為了提高性能、減輕重量,新型飛機中越來越多地采用鈦合金整體結(jié)構(gòu)件。整體結(jié)構(gòu)件通常采用熱等靜壓鑄造方法獲得接近設(shè)計模型的毛坯,然后對關(guān)鍵型面的小余量進行數(shù)控精加工以獲得最終成品。然而目前飛機復(fù)雜鈦合金整體鑄造結(jié)構(gòu)件毛坯加工定位基準(zhǔn)的精度很難保證,且薄壁結(jié)構(gòu)常常有較大變形,同一結(jié)構(gòu)件的每件毛坯的實際外形均有較大的不同,從而導(dǎo)致后續(xù)機械加工過程中定位基準(zhǔn)確定困難、容易出現(xiàn)局部加工余量不足的問題。而且,對于差異化的毛坯采用同一套數(shù)控刀軌加工,可能會產(chǎn)生過多空行程、加工干涉或者局部超切削深度等問題,因此需要對每件毛坯進行三維數(shù)據(jù)測量和CAD模型重建,從而針對具體毛坯進行余量分析、適應(yīng)性數(shù)控編程以及加工仿真。而對批量的復(fù)雜整體結(jié)構(gòu)毛坯逐件進行逆向重建,需要對每一件毛坯的測量數(shù)據(jù)都進行測量數(shù)據(jù)分塊、曲面擬合、曲面處理,這些工作雖然可以通過人工交互的方法在現(xiàn)有的逆向工程軟件中完成,但這樣的重復(fù)操作會浪費大量的人力,制約生產(chǎn)周期。因此就提出了如何針對結(jié)構(gòu)上相同、幾何上彼此有一定偏差的批量實物毛坯進行高效自動化模型重建的問題。
根據(jù)實物測量數(shù)據(jù)重建CAD模型的逆向工程技術(shù)已經(jīng)有了很多研究成果[1-4]。本文主要針對批量的復(fù)雜結(jié)構(gòu)毛坯逆向重建中的數(shù)據(jù)分割和曲面重建開展自動化、智能化方法的研究。已有研究中對于點云的分塊算法主要有基于邊的方法[5]、基于面的方法[6]和將二者結(jié)合的方法[7],近年來也有一些基于八叉樹空間拓?fù)浣Y(jié)構(gòu)的分塊方法[8],文獻[9]提出了在被測對象的線框模型引導(dǎo)下進行測量數(shù)據(jù)分割的方法。然而,對復(fù)雜的包含多種曲面類型的測量數(shù)據(jù),上述方法均很難自動完成與設(shè)計意圖相符的分割。
本文針對復(fù)雜整體結(jié)構(gòu)毛坯測量數(shù)據(jù)的結(jié)構(gòu)特點,結(jié)合基于面的分割方法,提出了一種結(jié)構(gòu)特征模板引導(dǎo)下的點云分割方法,有效解決了基于面的分割方法對于“種子點”難以獲取的問題,能夠在實物具有較大程度變形的情況下完成不同類型特征的數(shù)據(jù)自動分塊。在點云分割好的基礎(chǔ)上,通過讀取和解析基于開放式知識表示的逆向設(shè)計表,達到曲面快速重建的目的。該方法已在CATIA/CAA平臺上實現(xiàn),并進行了實驗驗證。
對于單個毛坯測量數(shù)據(jù)的CAD模型重建,常規(guī)的方法流程如圖1所示,整個過程需要大量的人工參與,對于批量毛坯則需要不斷重復(fù)類似的重建過程。本文根據(jù)批量毛坯具有相同結(jié)構(gòu)特征的特點,設(shè)計了一條基于毛坯結(jié)構(gòu)特征模板和逆向設(shè)計表的快速逆向建模技術(shù)路線,如圖2所示。
圖1 單件毛坯逆向建模流程圖
該方法通過事先一次性定義的結(jié)構(gòu)特征模板引導(dǎo)自動化處理程序?qū)γ恳患鞯臏y量數(shù)據(jù)完成結(jié)構(gòu)分割,得到相同拓?fù)浣Y(jié)構(gòu)的分塊數(shù)據(jù)。創(chuàng)建的逆向設(shè)計表通過開放式的知識表達語言固化了批量毛坯的逆向建模流程,通過對這一固化流程的自動解析,自動重建算法根據(jù)每件具體毛坯的分塊數(shù)據(jù)自動完成其模型的重建,重建出的毛坯模型既具有相同拓?fù)浣Y(jié)構(gòu)又忠實于實測數(shù)據(jù)幾何形狀。上述思路已經(jīng)利用CATIA/CAA二次開發(fā)技術(shù),在CATIA環(huán)境下編程實現(xiàn)。
圖2 批量毛坯快速建模流程圖
一般來說,工程實際中的毛坯都有對應(yīng)的設(shè)計數(shù)模,如圖3所示。毛坯設(shè)計數(shù)模和需要重建的毛坯CAD模型在外觀上是相似的,只是由于工藝因素不同,外形上會有一定的偏差。將毛坯設(shè)計數(shù)模與實時模型對齊,則設(shè)計數(shù)模上的每個面對應(yīng)點云數(shù)據(jù)的一部分。在已有的相關(guān)研究中,對齊可以通過簡單的“321”法、選取對應(yīng)的三點法、PCA(主分量分析)法等來實現(xiàn)。本文主要參考文獻[10]的方法應(yīng)用遺傳算法尋最優(yōu)解,從而實現(xiàn)毛坯結(jié)構(gòu)數(shù)模與實測模型的精確對齊。
設(shè)計數(shù)模中的面按結(jié)構(gòu)類型可分為:平面、二次曲面、規(guī)則型掃掠曲面、自由曲面、過渡曲面等。圖3所示毛坯就包括平面、圓柱面、規(guī)則型掃掠曲面和過渡曲面4個類型,這些面即是在逆向建模中需要重建的面,分別代表了毛坯每一部分的結(jié)構(gòu)特征。根據(jù)不同曲面的類型,選取其上的一個或多個點作為對該面進行分塊的引導(dǎo)點,經(jīng)過曲面分類的設(shè)計數(shù)模和這些引導(dǎo)點以及用于后續(xù)自動模型重建的一些交互生成的輔助點、輔助面等共同構(gòu)成結(jié)構(gòu)特征模板文件,結(jié)構(gòu)模板上的引導(dǎo)點對應(yīng)于毛坯測量數(shù)據(jù)上的一片區(qū)域,也就是重建后模型的每個型面。
圖3 毛坯測量模型與設(shè)計數(shù)模
本文根據(jù)知識的開放式表示方法創(chuàng)建逆向設(shè)計表,這種方式方便用戶理解和維護表中的知識,使用戶能夠根據(jù)不同的毛坯結(jié)構(gòu)和重建過程靈活編寫可以被程序自動解析的逆向設(shè)計表。設(shè)計表的BNF(backus-naur form)范式表示如下:
從表達式可以看出,輸入變量可以為一個或多個,輸出結(jié)果為一個變量。操作子集合包含系統(tǒng)提供的所有面向用戶的逆向建模函數(shù)功能。每個操作子均隱含了相應(yīng)的變量個數(shù),變量的具體內(nèi)容(如點的坐標(biāo))來自于結(jié)構(gòu)特征模板。這樣的設(shè)計規(guī)范方便逆向模型的設(shè)計和操作人員自行完成設(shè)計表的理解與編寫工作,而且可以根據(jù)不同的毛坯模型不斷地改進完善,達到預(yù)期的效果,如圖4所示。
數(shù)據(jù)分塊就是將整體外形數(shù)據(jù)分解為若干對應(yīng)實物樣件上不同曲面的分塊數(shù)據(jù)集,它是特征分解重建的基礎(chǔ)。本文主要采取基于面的方法進行數(shù)據(jù)分塊,首先計算整個點云數(shù)據(jù)中所有點的法矢,然后通過結(jié)構(gòu)特征模板中代表不同點云數(shù)據(jù)區(qū)域的引導(dǎo)點尋找其對應(yīng)區(qū)域的最近點作為“種子點”,再以“種子點”為中心,向外搜索周圍點法矢與種子點法矢的偏差在一定閾值范圍內(nèi)的點,完成區(qū)域生長過程,從而實現(xiàn)對點云數(shù)據(jù)的分割,分割算法基本流程如圖5所示。
圖5 點云分割算法流程圖
平面類型點云分塊是最簡單也是最基礎(chǔ)的點云分塊類型,本文采取判斷“種子點”與周圍點的法矢是否接近平行的方法來分塊。該方法對應(yīng)設(shè)計表中的操作子為“PlaneCloudDevide”,由“引導(dǎo)點”按照圖5所示的流程進行生長,直到將所有滿足法矢向量與種子點法矢向量之間夾角小于一定閾值(即接近平行)要求的點全部分割完畢,得到分割結(jié)果如圖6所示。
圖6 平面點云分塊示例
文獻[11]提出了一種判斷點的法矢與圓柱軸線是否接近垂直的參數(shù)化方法,該方法成功地在測量數(shù)據(jù)中提取出了圓柱點云。本文則在此方法基礎(chǔ)上附加半徑閾值條件,使得圓柱面點云分塊更加準(zhǔn)確、可靠,對應(yīng)逆向設(shè)計表中的操作子為“CylinderCloudDevide”。
首先根據(jù)兩個引導(dǎo)點分別尋找毛坯測量數(shù)據(jù)上距離它們最近的兩點A和B,計算這兩個點的法矢na和nb并做叉積no=na×nb,向量no即為圓柱的大致軸線方向。過點A作垂直于向量no的平面Pa,將另一點B的法矢向量nb投影到平面Pa上,將投影之后的向量n′b與點A 的法矢na延伸并相交于一點O。該交點O到A的距離OA就大致為圓柱的半徑長度,點O和向量no就確定了圓柱軸線OC的大致位置,如圖7a所示。再由種子點A向外進行生長,將生長點I的法矢ni與垂直向量no作點積n′i=ni·no,如果n′i小于一定的閾值要求(即ni和no接近垂直),且生長點I到圓柱的大致軸線OC 的距離O′I滿足O′I≤(OA+n),其中,n為設(shè)定的閾值,則將點I加入到當(dāng)前的圓柱點云分割數(shù)據(jù)集當(dāng)中,直至完成整個圓柱面點云的分割,如圖7b所示。
圖7 圓柱面點云分塊示例
毛坯中的自由曲面一般都包含尖銳邊界,在同一數(shù)據(jù)域的點云范圍內(nèi),相鄰點之間的法矢夾角較小,而在不同數(shù)據(jù)域上的相鄰點之間法矢夾角較大,因此計算出相鄰點的法矢夾角,通過比較法矢夾角就能夠檢測出數(shù)據(jù)邊界,確定自由曲面對應(yīng)的點云數(shù)據(jù)。
過渡曲面部分對應(yīng)的點云區(qū)域常常是面與面之間的倒角部分,這部分點云數(shù)據(jù)曲率變化較大,相鄰點之間的法矢夾角變化緩慢,通過法矢準(zhǔn)則很難將其正確地識別出來。因此本文將基本類型的曲面點云數(shù)據(jù)分割完畢后,不對此部分點云數(shù)據(jù)進行劃分,過渡部分的曲面重建則是在對各基本曲面重建之后通過計算倒角半徑在已有模型上正向創(chuàng)建。
本文對于平面和圓柱面的擬合主要采取最小二乘法,這種方法在文獻[12-13]中已經(jīng)介紹得很詳細(xì),對應(yīng)逆向設(shè)計表中的操作子分別為“Fit-Plane”、“FitCylinder”。對于自由曲面的重建,借助于CATIA/CAA平臺上拉伸或者掃掠等曲面生成方法的接口函數(shù)構(gòu)造自由曲面。以基于多截面線的曲面自動重建方法“Mul_SectionSurface”為例,首先得到在結(jié)構(gòu)上與網(wǎng)格數(shù)據(jù)相垂直的已經(jīng)擬合完成的平面,將該平面沿法線方向偏移一段距離,用偏移后的平面作為截平面去和點云數(shù)據(jù)的三角網(wǎng)格求交,獲得三角網(wǎng)格數(shù)據(jù)上的任意一個三角網(wǎng)格與截平面的兩個交點,并將該兩個交點作為起點,再以這個三角網(wǎng)格為起始三角網(wǎng)格逐次判斷相鄰的三角網(wǎng)格是否與截平面相交,如果相交則將交點加入交點集合,如不相交則結(jié)束。最后獲得了一組排序好的點集合,利用這組點擬合樣條曲線。同理生成多條截面線,再利用這組樣條截面線擬合生成滿足條件的樣條曲面。
圖8 未進行后處理的曲面模型
前面的點云分塊與曲面特征擬合操作之后得到的是一個個單獨的曲面特征,如圖8所示。為了得到最終完整的CAD模型,需要對這些單獨的曲面特征做進一步處理操作。例如:將曲面提取邊界線并進行延伸“Extend”、曲面之間的結(jié)合“Join”、曲面求交“Intersect”、依據(jù)輪廓線裁剪曲面“Splite”、用基準(zhǔn)平面裁剪曲面“Trim”、曲面之間的橋接“Blend”等。以圖9所示的裁剪曲面為例,首先將待處理平面以及與其相鄰的4個平面分別進行延伸,其次將相鄰的4個平面分別依據(jù)基準(zhǔn)平面相互進行裁剪,并將裁剪后的4個平面結(jié)合,然后將結(jié)合曲面與待處理的平面進行求交,獲得裁剪所需的輪廓曲線,最后將待處理平面依據(jù)輪廓曲線進行裁剪,得到最終的裁剪平面,如圖10所示。
圖9 毛坯模型中待裁剪的曲面示例
圖10 重建后的曲面處理示例
對于模型中的倒角、圓角等過渡特征部分的重建,本文采用的方法是在重建主要特征之后,通過提取過渡特征的關(guān)鍵參數(shù)(如圓角半徑),在已有的曲面模型上正向創(chuàng)建。例如在兩平面特征之間創(chuàng)建倒角,對應(yīng)逆向設(shè)計表中的操作子為“Fillet”,通過法平面和過渡部分的點云測量數(shù)據(jù)求交,提取這些交線圓弧部分的曲率半徑并求平均值,通過得到的半徑平均值對兩平面進行倒圓角,如圖11所示。
圖11 兩平面間倒圓角示例
圖12 重建后的CAD模型與測量數(shù)據(jù)
圖12給出了應(yīng)用本文方法得到的兩個毛坯重建模型與各自原始測量點云的重疊顯示結(jié)果。圖12a中的測量數(shù)據(jù)不是實際測量所得的,而是根據(jù)設(shè)計數(shù)模在CATIA系統(tǒng)中模擬創(chuàng)建毛坯數(shù)模,再將該毛坯數(shù)模離散為三角網(wǎng)格模型來模擬實際測量得到的毛坯數(shù)據(jù),得到的網(wǎng)格數(shù)據(jù)較為光滑。用Imageware軟件對該模擬毛坯模型的曲面重建偏差進行分析,結(jié)果顯示偏差在0.2mm以內(nèi),而倒角處由于采取通過對點云數(shù)據(jù)的分析和過渡半徑提取創(chuàng)建而成,所以重建偏差較大,達到了0.4mm,整個重建CAD模型與模擬測量三角網(wǎng)格模型之間的平均偏差在0.05mm左右。圖12b中結(jié)構(gòu)件毛坯的測量數(shù)據(jù)由ATOSII流動式光學(xué)測量系統(tǒng)實際測量所得,由于是待加工毛坯件,因此表面粗糙度較大。精度分析的結(jié)果顯示的是在邊界處偏差較大,這是由于毛坯樣件棱角處受到摩擦而產(chǎn)生了不均勻的變形,而重建后的CAD模型棱角處較為尖銳。重建后的整體曲面模型與毛坯測量數(shù)據(jù)之間的平均偏差為0.65mm,能夠較好地滿足工程實際應(yīng)用要求。
針對批量復(fù)雜結(jié)構(gòu)毛坯的快速逆向建模問題,本文提出了一種基于結(jié)構(gòu)特征模板和逆向設(shè)計表的快速逆向建模方法。該方法用一次創(chuàng)建的結(jié)構(gòu)特征模板代替人工逆向建模過程中針對每一件毛坯測量數(shù)據(jù)的人工規(guī)劃,并用逆向設(shè)計表來表達逆向建模流程。本文提出的方法應(yīng)用于工程實例中取得了良好的模型重建效果,且相比于傳統(tǒng)方法大大提高了批量毛坯的模型重建效率。
[1]Varady T,Martin R,Cox J.Reverse Engineering of Geometric Models-an Introduction[J].Computer-aided Design,1997,29(4):255-268.
[2]金濤,陳建良,童水光.逆向工程技術(shù)研究進展[J].中國機械工程,2002,13(16):1430-1436.Jin Tao,Chen Jianliang,Tong Shuiguang.A Review of Reverse Engineering Technology[J].China Mechanical Engineering,2002,13(16):1430-1436.
[3]Paolo T,Marco T,Bart D B,et al.Empirical Studies in Reverse Engineering:State of the Art and Future Trends[J].Empirical Software Engineering,2007,12(5):551-571.
[4]Maura M,Michele G.Reverse Engineering and Restyling of Aesthetic Products Based on Sketches Interpretation[J].Research in Engineering Design,2009,20(2):79-96.
[5]劉勝蘭,周儒榮,張麗艷.三角網(wǎng)格模型的特征線提?。跩].計算機輔助設(shè)計與圖形學(xué)學(xué)報,2003,15(4):444-448.Liu Shenglan,Zhou Rurong,Zhang Liyan.Feature Line Extraction from Triangular Mesh Model[J].Journal of Computer Aided Design &Computer Graphics,2003,15(4):444-448.
[6]Besl P J,Jain R C.Segmentation Through Variableorder Surface Fitting[J].IEEE Transaction on Pattern Analysis and Machine Intelligence,1988,10(2):167-192.
[7]Yokoya N,Levine M D.Range Image Segmentation Based on Differential Geometry:a Hybrid Approach[J].IEEE Transcation on Pattern Analysis and Machine Interlligence,1989,11(6):644-649.
[8]Miao Wang,Yi Hsing Tseng.Incremental Segmentation of Lidar Point Clouds with An Octree-structured Voxel Space[J].Photogrammetric Record,2011,26:32-57.
[9]程云勇,張定華,張順利,等.CAD模型引導(dǎo)的渦輪葉片密集測量數(shù)據(jù)分割[J].中國機械工程,2009,20(18):2214-2218.Cheng Yunyong,Zhang Dinghua,Zhang Shunli,et al.A CAD Model Directing Method for Turbine Blade Density Measurement Data Segmentation[J].China Mechanical Engineering,2009,20(18):2214-2218.
[10]嚴(yán)思杰,周云飛,彭芳瑜,等.大型復(fù)雜曲面加工工件定位問題研究[J].中國機械工程,2003,14(9):737-740.Yan Sijie,Zhou Yunfei,Peng Fangyu,et al.Research on Localization of the Workpieces with Large Sculptured Surfaces[J].China Mechanical Engineering,2003,14(9):737-740.
[11]Schnabel R,Wahl R,Klein R.Efficient RANSAC for Point-cloud Shape Detection[J].Computer Graphics Forum,2007,26(2):214-226.
[12]官云蘭,程效軍,施貴剛.一種穩(wěn)健的點云數(shù)據(jù)平面擬合方法[J].同濟大學(xué)學(xué)報(自然科學(xué)版),2008,36(7):981-984.Guan Yunlan,Cheng Xiaojun,Shi Guigang.A Robust Method for Fitting a Plane to Point Clouds[J].Journal of Tongji University(Natural Science),2008,36(7):981-984.
[13]曲學(xué)軍,楊亞文,韓志仁.基于散亂數(shù)據(jù)表面法矢的二次曲面擬合[J].航空學(xué)報,2007,28(4):1018-1024.Qu Xuejun,Yang Yawen,Han Zhiren.Quadric Surface Direct Fitting Based on Normal Vectors of Random Data[J].Acta Aeronautica et Astronautica Sinica,2007,28(4):1018-1024.