專(zhuān)利名稱(chēng):從iges文件中匯入曲面的系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種曲面匯入系統(tǒng)及方法,尤其涉及一種從初始化圖形交換規(guī)范 (Thelnitial Graphic Exchange Specification, IGES)文件中匯入曲面的系統(tǒng)及方法。
背景技術(shù):
初始化圖形交換規(guī)范(TheInitial Graphic ExchangeSpecification,IGES)文 件是常用的圖形數(shù)據(jù)文件,該文件中除了包括點(diǎn)、線、面等多種圖元外,還包括圖元的相關(guān) 屬性數(shù)據(jù),如圖元的顏色、線寬、圖層和結(jié)構(gòu)等。在該多種圖元中,除了點(diǎn)外,線和面尤為復(fù) 雜。眾所周知,線包括直線、射線、線段、圓弧、雙曲線和有理曲線,面包括平面、旋轉(zhuǎn)面、直紋 面、柱面和自由曲面等。其中,自由曲面的特點(diǎn)是可以進(jìn)行自由編緝,能很好的控制和改變 曲面的形態(tài)。然而,現(xiàn)有的軟件在將IGES文件中的圖元匯入到某種三維建模軟件(如CAD、 Pro-E等)上時(shí),如將IGES文件中抽象的曲線和曲面圖元轉(zhuǎn)化為三維建模軟件上的自由曲 線和自由曲面時(shí),容易造成數(shù)據(jù)丟失,且匯入速度慢、不精確。
發(fā)明內(nèi)容
鑒于以上內(nèi)容,有必要提供一種從IGES文件中匯入曲面的方法,其可根據(jù)各類(lèi)三 維建模軟件的需要,從IGES文件中讀取各類(lèi)點(diǎn)、線、面等圖元的參數(shù)和屬性,同時(shí),把抽象 的曲線和曲面圖元轉(zhuǎn)化為參數(shù)化圖形,實(shí)現(xiàn)匯入快速、數(shù)據(jù)高精準(zhǔn)顯示的目的。還有必要提供一種從IGES文件中匯入曲面的系統(tǒng),其可根據(jù)各類(lèi)三維建模軟件 的需要,從IGES文件中讀取各類(lèi)點(diǎn)、線、面等圖元的屬性,同時(shí),把抽象的曲線和曲面圖元 轉(zhuǎn)化為參數(shù)化圖形,實(shí)現(xiàn)匯入快速、數(shù)據(jù)高精準(zhǔn)顯示的目的。一種從IGES文件中匯入曲面的方法,運(yùn)行于電子設(shè)備中。該方法包括從IGES文 件中加載各圖元的參數(shù)和屬性對(duì)應(yīng)的字符串;解析上述字符串以構(gòu)建圖元;將各圖元轉(zhuǎn)化 成自由曲線和自由曲面后將各圖元中的自由曲線組合成一條封閉邊界曲線,并根據(jù)該封閉 邊界曲線從對(duì)應(yīng)的自由曲面中裁剪出一個(gè)輪廓面;根據(jù)所述封閉邊界曲線將各輪廓面的邊 界轉(zhuǎn)化成多義線及將各輪廓面轉(zhuǎn)換成三角網(wǎng)格;及輸出并顯示上述三角網(wǎng)格和多義線。一種從IGES文件中匯入曲面的系統(tǒng),運(yùn)行于電子設(shè)備中。該系統(tǒng)包括數(shù)據(jù)加載 單元用于從IGES文件中加載各圖元的參數(shù)和屬性對(duì)應(yīng)的字符串;數(shù)據(jù)解析單元用于解析 上述字符串以構(gòu)建圖元;數(shù)據(jù)組合圖元用于將各圖元轉(zhuǎn)化成自由曲線和自由曲面后將各圖 元中的自由曲線組合成一條封閉邊界曲線,并根據(jù)該封閉邊界曲線從對(duì)應(yīng)的自由曲面中裁 剪出一個(gè)輪廓面;數(shù)據(jù)參數(shù)化單元用于根據(jù)所述封閉邊界曲線將各輪廓面的邊界轉(zhuǎn)化成多 義線及將各輪廓面轉(zhuǎn)換成三角網(wǎng)格;及輸出單元用于輸出并顯示上述三角網(wǎng)格和多義線。相較于現(xiàn)有技術(shù),所述從IGES文件中匯入曲面的系統(tǒng)及方法,能夠快速、準(zhǔn)確地 匯入IGES文件中的圖元參數(shù)和圖元屬性,解析匯入后的圖元參數(shù)和屬性以構(gòu)建圖元實(shí)體, 如利用自由曲線構(gòu)建自由曲面中輪廓面的封閉邊界曲線,修復(fù)、轉(zhuǎn)換和組合各類(lèi)圖元實(shí)體 以輸出圖形。
圖1是本發(fā)明從IGES文件中匯入曲面的系統(tǒng)較佳實(shí)施例的功能單元圖。
圖2是本發(fā)明從IGES文件中匯入曲面的方法較佳實(shí)施例的作業(yè)流程圖。
圖3是圖2中步驟S2的具體作業(yè)流程圖。
圖4是圖2中步驟S3的具體作業(yè)流程圖。
圖5是圖2中步驟S4的具體作業(yè)流程圖。
圖6是圖2中步驟S5的具體作業(yè)流程圖。
圖7是求取多義線頂點(diǎn)的示意圖。
圖8是參數(shù)平面內(nèi)樣點(diǎn)、多義線頂點(diǎn)及交點(diǎn)的示意圖。
圖9及圖10是連接三角形的示意圖。
主要元件符號(hào)說(shuō)明
權(quán)利要求
1.一種從IGES文件中匯入曲面的方法,運(yùn)行于電子設(shè)備中,其特征在于,該方法包括 數(shù)據(jù)加載步驟從IGES文件中加載各圖元的參數(shù)和屬性對(duì)應(yīng)的字符串;數(shù)據(jù)解析步驟解析上述字符串以構(gòu)建圖元;數(shù)據(jù)組合步驟將各圖元轉(zhuǎn)化成自由曲線和自由曲面后將各圖元中的自由曲線組合成 一條封閉邊界曲線,并根據(jù)該封閉邊界曲線從對(duì)應(yīng)的自由曲面中裁剪出一個(gè)輪廓面;數(shù)據(jù)參數(shù)化步驟根據(jù)所述封閉邊界曲線將各輪廓面的邊界轉(zhuǎn)化成多義線及將各輪廓 面轉(zhuǎn)換成三角網(wǎng)格;及輸出并顯示上述三角網(wǎng)格及多義線。
2.如權(quán)利要求1所述的從IGES文件中匯入曲面的方法,其特征在于,所述數(shù)據(jù)加載步 驟包括如下步驟定義一個(gè)數(shù)據(jù)字典列和一個(gè)數(shù)據(jù)字符串列,其中,數(shù)據(jù)字典列內(nèi)存儲(chǔ)的是圖形屬性字 符串,數(shù)據(jù)字符串列中存儲(chǔ)的是圖形參數(shù)字符串; 逐行讀取IGES文件中的字符串;當(dāng)所讀取字符串的長(zhǎng)度等于80個(gè)字符時(shí),判斷該字符串中第72個(gè)字符為D還是P ; 若該字符串中第72個(gè)字符為D,則將該條字符串歸入數(shù)據(jù)字典列中;或 若該字符串中第72個(gè)字符為P,則將該條字符串歸入數(shù)據(jù)字符串列中。
3.如權(quán)利要求1所述的從IGES文件中匯入曲面的方法,其特征在于,所述數(shù)據(jù)解析步 驟包括如下步驟遍歷數(shù)據(jù)字典列中的每條字符串,其中,每?jī)蓷l字符串對(duì)應(yīng)一個(gè)圖元的屬性; 將上述每條字符串分解成多組數(shù)據(jù),該每組數(shù)據(jù)對(duì)應(yīng)所述圖元的一個(gè)屬性; 根據(jù)數(shù)據(jù)字典列中所記載的各圖元的屬性從數(shù)據(jù)字符串列中找出各圖元對(duì)應(yīng)的參數(shù);及根據(jù)數(shù)據(jù)字符串列中所找出的參數(shù)及數(shù)據(jù)字典列中的圖元類(lèi)型標(biāo)識(shí)構(gòu)建對(duì)應(yīng)的圖元。
4.如權(quán)利要求3所述的從IGES文件中匯入曲面的方法,其特征在于,所述數(shù)據(jù)組合步 驟包括如下步驟將各圖元中的常規(guī)曲線轉(zhuǎn)化成自由曲線,所述常規(guī)曲線為常規(guī)曲面的邊界線,包括直 線、圓弧線和橢圓弧線;將各圖元中的常規(guī)曲面轉(zhuǎn)化成自由曲面,所述常規(guī)曲面包括柱面、直紋面和旋轉(zhuǎn)面; 將各圖元中的自由曲線組合成一條封閉邊界曲線;及 根據(jù)該封閉邊界曲線從對(duì)應(yīng)的自由曲面中裁剪出對(duì)應(yīng)的輪廓面。
5.如權(quán)利要求4所述的從IGES文件中匯入曲面的方法,其特征在于,所述數(shù)據(jù)參數(shù)化 步驟包括如下步驟根據(jù)各自由曲線的參數(shù)方程得到各自由曲線的控制點(diǎn),根據(jù)控制點(diǎn)求取逼近所述封閉 邊界曲線的多義線;利用中值插值法得到該多義線在參數(shù)平面內(nèi)的一系列頂點(diǎn); 在參數(shù)平面內(nèi)設(shè)置樣點(diǎn);讀取參數(shù)平面內(nèi)多義線的頂點(diǎn),落入多義線內(nèi)的樣點(diǎn),以及經(jīng)過(guò)樣點(diǎn)的水平線段或垂 直線段與多義線的交點(diǎn);根據(jù)上述讀取的頂點(diǎn)、樣點(diǎn)及交點(diǎn)構(gòu)成參數(shù)平面內(nèi)的一個(gè)多邊形;及連接多義線的頂點(diǎn)、落入多義線內(nèi)的樣點(diǎn)及所述交點(diǎn)將該多邊形分割成一系列三角 形,并過(guò)濾掉落在多義線外的三角形。
6.一種從IGES文件中匯入曲面的系統(tǒng),運(yùn)行于電子設(shè)備中,其特征在于,該系統(tǒng)包括 數(shù)據(jù)加載單元,用于執(zhí)行數(shù)據(jù)加載步驟從IGES文件中加載各圖元的參數(shù)和屬性對(duì)應(yīng)的字符串;數(shù)據(jù)解析單元,用于執(zhí)行數(shù)據(jù)解析步驟解析上述字符串以構(gòu)建圖元; 數(shù)據(jù)組合圖元,用于執(zhí)行數(shù)據(jù)組合步驟將各圖元轉(zhuǎn)化成自由曲線和自由曲面后將各 圖元中的自由曲線組合成一個(gè)封閉邊界曲線,并根據(jù)該封閉邊界曲線從對(duì)應(yīng)的自由曲面中 裁剪出一個(gè)輪廓面;數(shù)據(jù)參數(shù)化單元,用于執(zhí)行數(shù)據(jù)參數(shù)化步驟根據(jù)所述封閉邊界曲線將各輪廓面的邊 界轉(zhuǎn)化成多義線及將各輪廓面轉(zhuǎn)換成三角網(wǎng)格;及輸出單元,用于輸出并顯示上述三角網(wǎng)格和多義線。
7.如權(quán)利要求6所述的從IGES文件中匯入曲面的系統(tǒng),其特征在于,所述數(shù)據(jù)加載步 驟包括如下步驟定義一個(gè)數(shù)據(jù)字典列和一個(gè)數(shù)據(jù)字符串列,其中,數(shù)據(jù)字典列內(nèi)存儲(chǔ)的是圖形屬性字 符串,數(shù)據(jù)字符串列中存儲(chǔ)的是圖形參數(shù)字符串; 逐行讀取IGES文件中的字符串;當(dāng)所讀取字符串的長(zhǎng)度等于80個(gè)字符時(shí),判斷該字符串中第72個(gè)字符為D還是P ; 若該字符串中第72個(gè)字符為D,則將該條字符串歸入數(shù)據(jù)字典列中;或 若該字符串中第72個(gè)字符為P,則將該條字符串歸入數(shù)據(jù)字符串列中。
8.如權(quán)利要求6所述的從IGES文件中匯入曲面的系統(tǒng),其特征在于,所述數(shù)據(jù)解析步 驟包括如下步驟遍歷數(shù)據(jù)字典列中的每條字符串,其中,每?jī)蓷l字符串對(duì)應(yīng)一個(gè)圖元的屬性; 將上述每條字符串分解成多組數(shù)據(jù),該每組數(shù)據(jù)對(duì)應(yīng)所述圖元的一個(gè)屬性; 根據(jù)數(shù)據(jù)字典列中所記載的各圖元的屬性從數(shù)據(jù)字符串列中找出該圖元對(duì)應(yīng)的參數(shù);及根據(jù)數(shù)據(jù)字符串列中所找出的參數(shù)及數(shù)據(jù)字典列中的圖元類(lèi)型標(biāo)識(shí)構(gòu)建對(duì)應(yīng)的圖元。
9.如權(quán)利要求8所述的從IGES文件中匯入曲面的系統(tǒng),其特征在于,所述數(shù)據(jù)組合步 驟包括如下步驟將各圖元中的常規(guī)曲線轉(zhuǎn)化成自由曲線,所述常規(guī)曲線為常規(guī)曲面的邊界線,包括直 線、圓弧線和橢圓弧線;將各圖元中的常規(guī)曲面轉(zhuǎn)化成自由曲面,所述常規(guī)曲面包括柱面、直紋面和旋轉(zhuǎn)面; 將各圖元中的自由曲線組合成一個(gè)封閉邊界曲線;及 根據(jù)該封閉邊界曲線從對(duì)應(yīng)的自由曲面中裁剪出對(duì)應(yīng)的輪廓面。
10.如權(quán)利要求9所述的從IGES文件中匯入曲面的系統(tǒng),其特征在于,所述數(shù)據(jù)參數(shù)化 步驟包括如下步驟根據(jù)各自由曲線的參數(shù)方程得到各自由曲線的控制點(diǎn),根據(jù)控制點(diǎn)求取逼近所述封閉 邊界曲線的多義線;利用中值插值法得到該多義線在參數(shù)平面內(nèi)的一系列頂點(diǎn);在參數(shù)平面內(nèi)設(shè)置樣點(diǎn);讀取參數(shù)平面內(nèi)多義線的頂點(diǎn),落入多義線內(nèi)的樣點(diǎn),以及經(jīng)過(guò)樣點(diǎn)的水平線段或垂 直線段與多義線的交點(diǎn);根據(jù)上述讀取的頂點(diǎn)、樣點(diǎn)及交點(diǎn)構(gòu)成參數(shù)平面內(nèi)的一個(gè)多邊形;及 連接多義線的頂點(diǎn)、落入多義線內(nèi)的樣點(diǎn)及所述交點(diǎn)將該多邊形分割成一系列三角 形,并過(guò)濾掉落在多義線外的三角形。
全文摘要
本發(fā)明提供一種從IGES文件中匯入曲面的方法,運(yùn)行于電子設(shè)備中。該方法包括從IGES文件中加載各圖元的參數(shù)和屬性對(duì)應(yīng)的字符串;解析上述字符串以構(gòu)建圖元;將各圖元轉(zhuǎn)化成自由曲線和自由曲面后將各圖元中的自由曲線組合成一條封閉邊界曲線,并根據(jù)該封閉邊界曲線從對(duì)應(yīng)的自由曲面中裁剪出一個(gè)輪廓面;根據(jù)所述封閉邊界曲線將各輪廓面的邊界轉(zhuǎn)化成多義線及將各輪廓面轉(zhuǎn)換成三角網(wǎng)格;及輸出并顯示上述三角網(wǎng)格和多義線。本發(fā)明還提供一種從IGES文件中匯入曲面的系統(tǒng)。利用本發(fā)明可快速、準(zhǔn)確地匯入IGES文件中的自由曲線和自由曲面。
文檔編號(hào)G06T17/20GK102122394SQ20101030017
公開(kāi)日2011年7月13日 申請(qǐng)日期2010年1月11日 優(yōu)先權(quán)日2010年1月11日
發(fā)明者吳新元, 孫小超, 張旨光, 王敏, 胡金波 申請(qǐng)人:鴻富錦精密工業(yè)(深圳)有限公司, 鴻海精密工業(yè)股份有限公司