曾 鋒,鐘治初,姚 山
(1.嘉應學院 計算機學院,廣東 梅州514015;2.大連理工大學 教育部三束重點實驗室,遼寧 大連116024)
快速成型(rapid prototyping,RP)技術,由CAD模型直接驅動,采用增長原理制造三維實體。零件的CAD模型無論是在CAD造型軟件中生成還是由逆向工程產生,都必須經過分層切片處理才能將數據輸入到RP設備,分層方法是RP工藝中非常重要的一個前處理環節[1]。分層是指將三維模型離散為一系列二維層片,并獲得層片的截面輪廓信息。按切片方式的不同,分層處理方法可分為兩大類[1-6]:一類是基于間接模型的分層,將CAD三維造型文件處理成Stereo Lithography(STL)格式,然后對STL文件進行二維層片處理,得到RP設備的輸入數據;另一類是基于直接模型的切片,即直接處理CAD中的三維模型,得到所需的數據。由于STL文件具有與CAD系統無關,數據結構簡單的特點,目前大多數分層處理技術都采用基于STL文件或STL模型(用三角形平面單元對三維CAD實體模型進行表面離散而得到近似幾何模型)。國內外關于分層處理技術的研究主要集中在分層算法、STL文件的糾錯與數據優化、STL文件的分割與合并等3個方面[7-11]。STL文件的優點突出,但也存在著不可忽視的缺點。STL文件的數據量較大,出錯概率高。并且由于STL模型是一種近似模型,其三角面的描述與實際模型存在誤差,特征之間的拓撲信息無法保存[1,4,12]。針對STL文件格式存在的問題,不少學者開展了直接切片方法的研究,拋開STL文件,直接從CAD模型中獲取二維截面輪廓信息輸出給RP設備,這類方法近年來得到了快速的發展[13-16]。三維模型直接切片方法在掃描路徑優化、路徑填充算法、激光光斑補償、切片誤差評價等面還有很大的研究空間。其不足之處在于輪廓點坐標獲取及路徑填充算法的計算量太大,造成一定的誤差與困難[1]。
針對上述情況,本文提出一種精確切片技術,將三維實體模型投影生成主視圖,在主視圖中進行分層切片,生成一系列二維剖面視圖文件,用于驅動RP設備。此算法可避免實體求交運算及STL模型所帶來了各種誤差,有效保證分層以及輪廓數據提取的精確度。并針對目前對成型結果的評價只能依賴于對已成型零件的 “事后”分析的不足,提出了三維虛擬加工重構技術,對分層處理及加工效果進行可視化預測及評價。此方法具有通用性,為提高分層精度及減少成型失敗次數提供了一套解決方案,也可作為RP過程和結果的預測及評價方法。
目前基于CAD軟件的直接分層方法大多采用平面或薄片剖切三維實體模型的途徑得到截面輪廓[13-15],需要進行較多的數據擬合、方程求解等計算過程。本文提出一種基于工程圖投影技術的分層算法,將三維實體模型投影為二維工程圖,利用CAD系統的三維零件模型與工程圖模型全相關功能,在二維工程圖環境內進行分層剖切,得到一系列包含有各層截面輪廓及區域填充信息的精確工程圖文件輸出給RP設備,原理如圖1所示。其中層片1、層片2及層片3的視圖分別為剖切線A、B及C在主視圖中3個位置進行剖切投影得到的二維圖。利用CAD系統工程圖的剖面線作為RP加工時的激光區域掃描線,從而大大減少了直接三維實體切片時區域填充路徑的計算量。
圖1 三維模型分層投影為二維工程
影響成形精度的因素主要是階梯效應,這是基于分層疊加原理的快速成型不可避免的,在層厚不能無限縮小的前提下,可通過選擇不同的分層方向來減少階梯效應。分層算法流程如圖2所示,分層方向±X、±Y、±Z這6個方向可選。
圖2 基于投影工程圖技術的分層算法
此算法并沒有具體給出使用何種函數、調用什么對象,是因為不同的CAD系統具有不同的API對象結構與函數格式;但是無論何種CAD系統,從三維實體經過剖切獲得剖面試圖,是其一項必備功能。實現上述算法步驟所需要的具體的API函數及其參數,不同的CAD系統的函數有所不同,但是均可通過使用API幫助文檔或者錄制宏等途徑來獲取相應步驟的函數及參數,從而實現此算法。
虛擬重構的思想跟分層處理相反,分層處理是將三維實體按成型方向離散為一系列的二維輪廓截面;虛擬重構的目的則是將一系列供RP設備使用的二維層面信息進行還原重構。與分層前CAD系統繪制的精確模型不同,三維重構使用逐層拉伸技術,所得到的三維實體與 “層疊”制造獲得的產品形狀非常接近,能有效觀察到階梯效應對加工精度的影響,從而調整分層策略,起到加工效果預測及評價的作用。
對于RP設備,其運動控制模塊不能進行任意曲線的運動控制,只能做圓弧運動或直線運動,實際加工時是以微直線段插補或微圓弧插補來逼近任意曲線。重構時,對于二維工程圖輸入作為RP設備驅動的情況,采用圖形交換文件(drawing exchange format,DFX)作為轉換文件格式,在CAD系統中直接插入工程圖的DXF文件,然后進行重構處理,算法如圖3所示。
圖3 二維工程圖重構三維模型算法
對于路徑坐標數據文件作為加工代碼文件的情況(大多數基于STL模型的分層切片方法及三維實體直接求交切片方法所產生的數據文件即為此類情況),算法根據加工代碼識別下一段是直線段還是圓弧,采用直線段或圓弧逐點連接實現加工軌跡的真實還原重構。具體算法描述如下(其中i為當前處理的層號,j為當前層上的當前點號,L為直線段標志位,C為圓弧標志位):
步驟1 初始化i,i為層號控制標志位;根據加工代碼獲取總層數h。
步驟2 讀取第i層加工路徑代碼,通過格式化處理加工代碼提取出第i層所有點坐標。
步驟3 初始化j,j為當前程上的當前點號標志位,獲取第j點坐標。
步驟4 獲取第j點坐標,并根據加工代碼識別當前路徑是直線還是圓弧段,分別標以L或C進行區分。
步驟5 如果步驟4標志的為L,則以直線段連接j-1點,如果步驟4標志位C,則以圓弧連接j-1點。
步驟6 根據步驟2讀取的所有點信息,判斷j是否到達最后一個點號,如果否,則返回步驟4進入下一循環,如果是,則進入步驟7。
步驟7 將第i層上的曲線首尾閉合。
步驟8 判斷是否到達最后一層,即i=h是否成立,如不成立,則令i=i+1,再返回步驟2;如i=h成立,則說明已經到達最后一層,重構結束。
目前大多數主流的三維CAD系統均提供了全面的Application Program Interface(API)接口功能。大部分高級程序語言都可以對CAD系統進行二次開發,本文采用SolidWorks作為三維CAD環境,利用VB編寫的應用程序作為上層程序驅動SolidWorks完成指定工作,實現算法功能,構建分層與虛擬重構系統;系統輸出一系列以層號命名的工程圖文件,并利用Windows的API嵌入到打印驅動里,以工程圖打印輸出的形式對RP設備進行驅動。在人機交互方面,提供了一些如剖面線密度設置等的輔助功能以適應不同工藝條件下的RP設備。三維虛擬重構則完全仿真RP過程的分層疊加原理,實現可視化預測及評價,圖4為對傘齒輪的RP加工代碼進行二維截面曲線層疊重構的結果,圖5為三維實體模型重構的結果。從圖4及圖5可清晰看出二維截面的層疊效果及RP過程的階梯效應給實體外形帶來的影響。
本文提出的三維實體投影精確分層處理算法,已進行了大量的實際應用,由于不需要進行輪廓坐標逐點提取以及曲線逼近等計算,此算法在提高計算效率、減少數據量、提高分層精度等方面取得了良好效果。二維輪廓的提取由投影技術實現,分層處理的時間與三維模型的輪廓復雜度無關。表1為分層過程的相關信息,其中分層速率為0.98 s/層,分層時間少于其他需要大量計算二維輪廓信息及區域填充信息的三維模型直接切片求交的分層方法[1,16]。
表1 分層參數及分層耗時(微機運行Intel Core雙核2.10GHz/RAM 2G)
影響分層效果的因素主要有分層厚度及分層方向。對于成型件的外形來說,分層厚度越小,階梯效應越不明顯,外形質量越好。但是對于成型工藝條件來說,分層厚度過小會造成數據量大,加工時間超長,并且也受到RP設備運動控制精度的限制。圖6為分層厚度在0.6mm及0.3mm兩種情況下的三維模型虛擬重構結果,從可視化結果可觀察出0.6mm的分層厚度過大,在斜坡處的階梯效應明顯,影響了實際成型件的外形精度。在RP工藝條件允許的情況下,可減小分層厚度,選取0.3mm為分層厚度,以提高產品外形質量。
圖6 兩種分層厚度的三維虛擬重構結果比較
分層方向即為產品的成型疊加方向。分層方向的合理選擇可有效減少階梯效應,對產品的表面質量和制作時間都有直接影響[17]。使用本文提出的方法,對肋板件進行3個方向分層然后再虛擬重構,結果如圖7所示,分層方向為箭頭所指方向。從重構仿真結果可以看出,在相同分層厚度的前提下,(a)和(b)兩個方向的分層結果形成了明顯的階梯效應,這是由于在這兩個方向上存在著較多的大坡度斜面所致,(c)的階梯效應小,零件的局部特征得到了較完整的保留,Y方向為較優的分層方向。當零件外形較復雜時,難以用人工經驗選擇合理的分層方向,使用此方法對多個分層方向的重構結果進行可視化對比,可直觀地選取最合理的分層方向。
圖7 3個方向分層后進行虛擬重構的結果
提出了基于投影技術的三維實體精確分層處理算法,利用CAD系統本身所具有的工程圖輸出功能以及自動添加剖面線功能,有效減少了分層過程中的程序計算量以及數據量,并且避免了直接實體求交切片方法所帶來的程序計算誤差以及基于STL模型分層方法的各種錯誤,顯著提高了分層切片以及輪廓信息提取的精度。所提出的三維實體虛擬重構技術完全仿真RP的 “層疊”制造過程,可對不同的分層方案及成型結果進行可視化預測及評價,從而選取最合理的分層處理方案,減少成型 “試錯”次數。本文提出的方法可對不同格式的加工代碼進行虛擬重構
通過二次開發技術實現了算法功能,大量的應用實例驗證了本文所提出方法的可行性及有效性。目前大多數的三維CAD系統均具有DFX模型輸入及工程圖輸出功能,本文提出的分層方法和三維重構技術可在大多數主流三維CAD系統平臺上實現。
[1]ZHAO Jibin,LIU Weijun.Recent progress in slicing algorithm of rapid prototyping technology [J].Computer Integrated Manufacturing Systems,2009,15(2):209-220(in Chinese).[趙吉賓,劉偉軍.快速成型技術中分層算法的研究與進展 [J].計算機集成制造系統,2009,15(2):209-220.]
[2]WANG Jingya,FANG Liang,HAO Jingbin.Adaptive slicing algorithm of STL model based on feature face [J].Application Research of Computers,2011,28(6):2361-2364(in Chinese).[王靜亞,方亮,郝敬賓.STL模型特征面片自適應分層算法 [J].計算機應用研究,2011,28(6):2361-2364.]
[3]LI Yang,LI Hui.Case retrieval for rapid prototyping system scan path based on geometry similarity [J].Computer Engineering and Design,2009,30(21):4998-5002(in Chinese).[李陽,李輝.基于形狀相似性的快速成型掃描算法檢索實例[J].計算機工程與設計,2009,30(21):4998-5002.]
[4]MA Qiaomei,ZHU Linquan.Research on adaptive direct slicing algorithm in rapid prototyping system [J].Computer Engineering and Design,2009,30(8):2075-2077(in Chinese). [馬巧梅,朱林泉.快速成型系統中自適應的直接切片算法的研究 [J].計算機工程與設計,2009,30(8):2075-2077.]
[5]LIU Tingzhang,ZHU Hong,YE Bing,et al.Real-time technology to generate hatching lines in general supporting software for rapid prototyping [J].Computer Engineering,2008,34(1):97-99(in Chinese).[劉廷章,朱虹,葉冰,等.快速成形通用軟件平臺的掃描線實時生成技術 [J].計算機工程,2008,34(1):97-99.]
[6]YAN Fengxin,HOU Zengxuan,ZHANG Dinghua,et al.Direct slicing algorithm based on compressed voxel model for rapid prototyping [J].Application Research of Computers,2007,24(10):246-248(in Chinese). [閆鋒欣,侯增選,張定華,等.基于壓縮體素模型的快速成型直接切片算法 [J].計算機應用研究,2007,24(10):246-248.]
[7]Lee Kang-Soo,Kim Sung-Hwan.Non-uniform deformation of an STL model satisfying error criteria [J].Computer-Aided Design,2010,42(3):238-247.
[8]GONG Qiwei,ZHANG Lichao,MO Jianhua.The algorithm and application of automatic hollowing STL model [J].Journal of Computer-Aided Design & Computer Graphics,2007,19(1):54-58(in Chinese). [龔奇偉,張李超,莫健華.STL模型自動鏤空的算法與應用 [J].計算機輔助設計與圖形學學報,2007,19(1):54-58.]
[9]WEN Peizhi,HUANG Wenming,WU Chengke.Modified fast algorithm for STL file slicing [J].Computer Applications,2008,28(7):1766-1768(in Chinese). [溫佩芝,黃文明,吳成柯.一種改進的STL文件快速分層算法 [J].計算機應用,2008,28(7):1766-1768.]
[10]Szilvasi-Nagy M,Matyasi G.Analysis of STL files [J].Mathematical and Computer Modeling,2003,38(7/9):945-960.
[11]CHEN Pengfei,MOU Xiaoyun.Rapid slicing algorithm based on geometry continuity [J].Journal of Engineering Graphics,2009,30(4):198-203(in Chinese).[陳鵬飛,牟小云.基于模型幾何連續性的快速成形分層算法的改進與實現 [J].工程圖學學報,2009,30(4):198-203.]
[12]ZHOU Huamin,CHENG Xuewen,LIU Fen,et al.Research on repair algorithms for STL files [J].Journal of Computer Aided Design & Computer Graphics,2005,17(4):761-767(in Chinese). [周華民,成學文,劉芬,等.STL文件錯誤的修復算法研究 [J].計算機輔助設計與圖形學學報,2005,17(4):761-767.]
[13]CHEN Chanjuan,FU Guangmeng,GAO Shuai.Development and implementation of subsystem of direct slicing on three-dimensional model based on Pro/E [J].Applied Mechanics and Materials,2011,65:148-151.
[14]Mircea Ancau,Cristian Caizar.The computation of Paretooptimal set in multicriterial optimization of rapid prototyping processes [J].Computers &Industrial Engineering,2010,58(4):696-708.
[15]QIU Yanjie,ZHOU Xionghui,QIAN Xiaoping.Direct slicing of cloud data with guaranteed topology for rapid prototyping [J].The International Journal of Advanced Manufacturing Technology,2011,53(1-4):255-265.
[16]JIN Xiaoshu,YANG Xichen.Direct slicing of 3DCAD models for laser direct manufacturing and re-manufacturing[J].Journal of Computer Aided Design & Computer Graphics,2007,19(6):757-763(in Chinese). [靳曉曙,楊洗陳.激光直接制造和再制造中的三維CAD模型直接分層技術 [J].計算機輔助設計與圖形學學報,2007,19(6):757-763.]
[17]ZHAO Jibin,HE Liying,LIU Weijun,et al.Optimization of part-building orientation for rapid prototyping manufacturing[J].Journal of Computer Aided Design & Computer Graphics,2006,18(3):456-463(in Chinese). [趙吉賓,何利英,劉偉軍,等.快速成型制造中零件制作方向的優化方法 [J].計算機輔助設計與圖形學學報,2006,18(3):456-463.]