劉輝強(qiáng),安魯陵
(南京航空航天大學(xué) 機(jī)電學(xué)院,江蘇 南京 210016)
在航空零件如復(fù)合材料曲面構(gòu)件和鈑金曲面零件的制造過(guò)程中,模具是一種必不可少的工藝裝備。它主要利用自身的外形,通過(guò)一定的方法使得一些具有流動(dòng)性或塑性變形的坯料成形,得到要求的形狀和尺寸。與零件相接觸的模具型面需要在零件曲面的基礎(chǔ)上向外延拓,以布置與成形工藝相關(guān)的結(jié)構(gòu),如圖1所示。延拓曲面為零件曲面的自然延伸,要求與零件曲面光滑過(guò)渡。
圖1 模具延拓曲面示意圖
圖2 分段延拓的缺陷
零件曲面多是經(jīng)過(guò)多種操作得到的組合曲面,而模具型面是由工裝設(shè)計(jì)人員對(duì)零件曲面進(jìn)行延拓、裁剪、拼接后得到。在進(jìn)行曲面延拓的過(guò)程中,經(jīng)常會(huì)出現(xiàn)零件曲面無(wú)法直接延拓、分段延拓時(shí)多張延拓面之間有縫隙、過(guò)渡連接不光順甚至自交等情況,如圖2所示。通常工裝設(shè)計(jì)人員就需要反復(fù)試湊,得到延拓曲面,整個(gè)過(guò)程十分繁瑣,處理起來(lái)耗時(shí)耗力。為解決這個(gè)難題,許多研究人員做了大量的工作[1-4]。文獻(xiàn)[1-2]是對(duì)三角網(wǎng)格曲面進(jìn)行延拓,文獻(xiàn)[3]是通過(guò)程序自動(dòng)調(diào)用CATIA軟件的曲面延拓命令對(duì)零件曲面進(jìn)行分段延拓,代替了人工操作,但仍無(wú)法避免分段延拓時(shí)多張延拓面之間出現(xiàn)縫隙,過(guò)渡連接不光順甚至自交的情況;文獻(xiàn)[4]是通過(guò)對(duì)零件曲面進(jìn)行重構(gòu)以達(dá)到延拓的目的,但是由于零件曲面被更改可能導(dǎo)致零件外形不準(zhǔn)確,零件曲面內(nèi)部信息也參與重構(gòu)導(dǎo)致曲面延拓速度慢。
對(duì)模具型面的構(gòu)造來(lái)說(shuō),零件曲面的內(nèi)部信息和曲面邊界處的延拓并沒(méi)有必然的聯(lián)系,所以本文提出一種基于曲面邊界信息的曲面延拓方法。首先基于曲面邊界面片得到一系列待延拓點(diǎn),再利用其切矢量和法矢量等信息獲得對(duì)應(yīng)的延拓點(diǎn),利用待延拓點(diǎn)、延拓點(diǎn)和曲面邊界生成延拓面片網(wǎng)格。通過(guò)對(duì)網(wǎng)格進(jìn)行曲面填充,得到一張張延拓曲面片,再將其與原曲面相結(jié)合,得到延拓曲面。延拓過(guò)程中,零件曲面沒(méi)有被更改,只有位于邊界上的曲面片參與了曲面延拓,所以模具型面外形準(zhǔn)確,曲面延拓過(guò)程較快。按此方法基于CATIA V5R18二次開(kāi)發(fā)出了航空模具曲面延拓工具,可提高航空模具設(shè)計(jì)效率。
曲面的拓?fù)浣Y(jié)構(gòu)表達(dá)了曲面的邊界及其相互連接的信息。以圖3為例,闡述拓?fù)浣Y(jié)構(gòu)中的簡(jiǎn)單概念及曲面相關(guān)方向的規(guī)則。
圖3 拓?fù)涓拍钍疽鈭D
F:face,是一個(gè)2D的拓?fù)鋵?shí)體,零件曲面由許多不同的face組成;
E1,E2,E3,E4:edge,是face F的邊界;
V1,V2:vertex,是對(duì)應(yīng)edge的邊界;
S:Surface,一張無(wú)限大的曲面,經(jīng)過(guò)一個(gè)封閉的邊界限制可以得到面F;
C:Curve,一條無(wú)限長(zhǎng)的曲線,經(jīng)過(guò)位于其上的2個(gè)點(diǎn)V1和V2的限制可以得到E1。
CATIA V5R18采用的ACIS內(nèi)核對(duì)于曲面方向和曲面邊界loop方向之間的關(guān)系也有著明確的規(guī)定。仍以圖3為例,曲面F的邊界loop,即E1,E2,E3和E4組成的環(huán)方向和曲面F方向滿足右手定則。
曲面延拓就是將零件曲面沿著某一個(gè)特定的方向等距偏移得到新的曲面的過(guò)程。不同于造型中的曲面延拓,在航空模具設(shè)計(jì)的過(guò)程中,曲面延拓得到的工藝補(bǔ)充面和零件曲面之間只需滿足光滑過(guò)渡的要求即可,并沒(méi)有形狀上的要求。工裝設(shè)計(jì)的要求:延拓面和原始曲面滿足G1切向連續(xù)。對(duì)于兩個(gè)拼接曲面S1,S2,應(yīng)具有共有的交線曲線C。曲線曲面理論基礎(chǔ)表明,如果對(duì)于曲線C上的任意一點(diǎn)V,曲面S1和S2在V點(diǎn)的切平面都相同,那么S1和S2沿曲線C保持G1切向連續(xù)。
(1)
假設(shè)延拓距離表示為d,延拓點(diǎn)EQ坐標(biāo)計(jì)算公式如式(2):
(2)
本文基于曲面邊界拓?fù)湫畔⒌那嫜油胤椒?,核心思想是先基于曲面邊界面片得到一系列待延拓點(diǎn),再利用其切矢量和法矢量等信息獲得對(duì)應(yīng)的延拓點(diǎn)。利用待延拓點(diǎn)、延拓點(diǎn)和曲面邊界生成延拓面片網(wǎng)格,通過(guò)對(duì)網(wǎng)格進(jìn)行曲面填充,得到一張張延拓曲面片,再將其與原曲面相結(jié)合,得到延拓曲面,算法流程如圖4所示。
算法描述如下:
輸入:零件曲面S。
輸出:模具型面。
步驟1:對(duì)輸入的零件曲面S進(jìn)行曲面孔洞的修復(fù),孔洞修補(bǔ)算法已有成熟算法,不在此贅述。
步驟2:使用GetAllCells函數(shù)得到完成孔洞修補(bǔ)后曲面的所有edge,遍歷所有edge,通過(guò)判斷每一個(gè)edge是否僅僅是1個(gè)face的邊界來(lái)判斷該edge是否位于曲面的邊界上。將所有位于曲面邊界上的edge存入邊界edge數(shù)組edgesOfBoundary,將所有邊界edge對(duì)應(yīng)的邊界face面片存入邊界face面片數(shù)組facesOfBoundary。再用CATIA的GetAllCells函數(shù)分別獲取到的edge,face拓?fù)湫畔ⅰATIA軟件會(huì)將edge和face進(jìn)行關(guān)聯(lián),并提供了edge對(duì)象的GetFace函數(shù),以便快速地判斷出該edge對(duì)象是否僅是1個(gè)face的邊界。
圖4 曲面延拓算法流程圖
步驟3:獲取零件曲面的邊界輪廓。通過(guò)步驟2得到的邊界edge數(shù)組edgesOfBoundary創(chuàng)建曲面的邊界輪廓L。
步驟4:循環(huán)邊界face數(shù)組facesOfBoundary,對(duì)當(dāng)前face對(duì)象使用CATIA的CATCellTessellator接口進(jìn)行三角網(wǎng)格劃分,該接口的參數(shù)sag決定了曲面延拓時(shí)被延拓點(diǎn)的個(gè)數(shù)、曲面延拓的光順性和延拓的速度。使用CATCellTessellator進(jìn)行三角網(wǎng)格劃分得到的三角網(wǎng)格頂點(diǎn)可以由CATTessPointIter接口調(diào)用。
步驟5:使用CATTessPointIter接口遍歷當(dāng)前face的所有三角網(wǎng)格頂點(diǎn),通過(guò)測(cè)量每個(gè)三角網(wǎng)格頂點(diǎn)到邊界的距離判斷該點(diǎn)是否位于邊界L上,將位于邊界L上的點(diǎn)保存至鏈表pointsOfBoundarys。
步驟7:連接待延拓點(diǎn)Q和延拓點(diǎn)EQ得到直線temLine。將延拓點(diǎn)EQ轉(zhuǎn)存至temEQ,直線temLine轉(zhuǎn)存至temLineUp。若點(diǎn)Q是鏈表pointsOfBoundarys的第一個(gè),轉(zhuǎn)步驟6,否則轉(zhuǎn)步驟8。
步驟8:將當(dāng)前延拓點(diǎn)EQ和上一個(gè)延拓點(diǎn)temEQ連接起來(lái)得到直線temLineConn,然后將當(dāng)前延拓點(diǎn)對(duì)連接得到的直線temLine,上一個(gè)延拓點(diǎn)對(duì)連接得到的直線temLineUp,兩個(gè)相鄰延拓點(diǎn)之間的直線temLineConn以及邊界組成的封閉區(qū)域進(jìn)行填充得到一個(gè)填充面temFill,將填充面temFill存入數(shù)組temFillOfBoundarys。判斷鏈表pointsOfBoundarys是否遍歷完成,是則轉(zhuǎn)步驟9,否則轉(zhuǎn)步驟6。圖5為步驟8中一個(gè)填充面的生成過(guò)程。
圖5 填充面生成實(shí)例
步驟9:將當(dāng)前face所得到的temFillOfBoundarys數(shù)組里面的所有填充面通過(guò)結(jié)合得到結(jié)合面temJoin,存入數(shù)組temJoinLoop。判斷邊界face數(shù)組facesOfBoundary是否循環(huán)完成,是則轉(zhuǎn)入步驟10,否則轉(zhuǎn)入步驟4。
步驟10:將邊界face數(shù)組facesOfBoundary中的每一個(gè)face得到的接合面數(shù)組temJoinLoop中的所有接合面和修補(bǔ)孔洞后的零件曲面進(jìn)行曲面結(jié)合,即可得到模具型面。
基于上述的延拓方法利用CATIA二次開(kāi)發(fā)工具,開(kāi)發(fā)出了航空模具曲面延拓工具,實(shí)現(xiàn)了航空模具設(shè)計(jì)過(guò)程中曲面延拓功能。
該工具利用CAA工具提供的接口函數(shù)對(duì)CATIA進(jìn)行了二次開(kāi)發(fā),該工具的運(yùn)行環(huán)境就是CATIA的操作環(huán)境。用戶使用時(shí)首先對(duì)曲面利用曲面修復(fù)工具進(jìn)行簡(jiǎn)單的修復(fù),然后將修復(fù)后的曲面作為曲面延拓的輸入進(jìn)行延拓即可得到延拓后的模具型面。
圖6(a)為一個(gè)帶有翻邊的零件型面延拓實(shí)例,外圍陰影區(qū)域即為延拓曲面,圖6(b)是對(duì)延拓后得到的模具型面進(jìn)行斑馬線分析,從圖中可以看出斑馬線在零件曲面和延拓曲面的連接處是連續(xù)的,滿足了G1相切連續(xù)的要求,甚至斑馬線在連接處不僅是連續(xù)的,既沒(méi)有產(chǎn)生尖銳的拐角,也沒(méi)有出現(xiàn)錯(cuò)位的情況。這張曲面的延拓面已經(jīng)達(dá)到了G2曲率連續(xù)了,這也驗(yàn)證了本文的延拓方法是可行有效的。
圖6 某零件型面延拓結(jié)果
航空模具設(shè)計(jì)過(guò)程中,曲面延拓是十分重要的一步?;谶吔缤?fù)湫畔⒌那嫜油丶夹g(shù)從曲面的拓?fù)鋵映霭l(fā),獲取邊界上的信息,然后進(jìn)行曲面延拓。由于曲面延拓算法不使用曲面內(nèi)部的信息,僅使用位于邊界上的face進(jìn)行延拓,所以延拓的效率較高,適應(yīng)性較強(qiáng)。應(yīng)用結(jié)果表明,這一曲面延拓方法是實(shí)用可靠的。