国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于STEP-NC的NURBS曲面刀具軌跡規(guī)劃*

2013-06-28 09:59:34梁文潮
機械研究與應(yīng)用 2013年3期
關(guān)鍵詞:控制頂點字符曲面

梁文潮,張 平,賀 明

(廣東工業(yè)大學(xué) 機電工程學(xué)院,廣州 廣東 510006)

1 引言

現(xiàn)代制造技術(shù)正逐步向智能化、網(wǎng)絡(luò)化、集成化、全球化方向發(fā)展,傳統(tǒng)的數(shù)控技術(shù)越來越不能適應(yīng)這種發(fā)展趨勢的要求,必須進行改革創(chuàng)新來迎合這種發(fā)展趨勢。傳統(tǒng)數(shù)控編程接口(G、M代碼)存在的缺點:信息量少、現(xiàn)場編程修改困難、信息只能單向傳遞等。新一代數(shù)控編程接口STEP-NC旨在解決傳統(tǒng)G、M代碼存在的問題而適時出現(xiàn)的,它提供了統(tǒng)一的數(shù)據(jù)接口標準,涵蓋了產(chǎn)品設(shè)計與制造的所有信息,實現(xiàn)了信息的雙向傳輸,有效減少設(shè)計與制造的時間并提高產(chǎn)品的生產(chǎn)率。對STEP-NC的研究已經(jīng)成為全球制造技術(shù)的共同課題,我國能否從制造大國轉(zhuǎn)變成為制造強國主要是看數(shù)控技術(shù)的發(fā)展。

隨著航空航天、汽車、造船及模具等現(xiàn)代工業(yè)的飛速發(fā)展,復(fù)雜形狀的零件越來越多,精度要求也越高。如飛機外形、葉輪以及絕大多數(shù)機械零件中二次曲面類似的形狀。這些復(fù)雜自由曲線曲面可由NURBS統(tǒng)一的數(shù)學(xué)形式精確地表示,而且NURBS曲面是STEP標準中自由曲線曲面的唯一表示形式。

2 STEP-NC文件信息提取

在全球化制造的時代背景下,以STEP-NC標準對數(shù)據(jù)進行存儲、傳遞和轉(zhuǎn)換能夠促使全球制造技術(shù)更快地向智能化、網(wǎng)絡(luò)化、集成化方向發(fā)展。

2.1 STEP-NC數(shù)據(jù)模型

STEP-NC的一個簡化數(shù)據(jù)模型如圖1所示。

圖1 STEP-NC的一個簡化數(shù)據(jù)模型

一個工件由多個加工特征所定義,工件的加工計劃由一系列的加工步驟組成,每個加工步驟所采用的加工操作是由工件上的加工特征決定采用哪種加工刀具、哪種工藝方法、哪種加工策略以及哪種刀具路徑生成方法。如對于平面需要采用銑平面操作,孔的加工對應(yīng)于鉆孔操作等。值得注意的是,STEP-NC數(shù)據(jù)模型可以從工件屬性、加工特征屬性以及刀具路徑屬性中分別提取工件幾何特征量、加工幾何特征量以及刀具幾何特征量,提取出來的信息反饋到加工規(guī)劃部門,對預(yù)先定義的參數(shù)化路徑、切削方式等進行修改,迅速實現(xiàn)加工方法和加工軌跡的優(yōu)化。

STEP-NC是采用基于特征的方式描述加工對象,能夠理解加工對象的要求,而不是傳統(tǒng)G、M代碼只知道干什么而不知道怎么做,能夠在更高的信息層次對加工過程作出合理的規(guī)劃與控制。STEP-NC加工程序文件與傳統(tǒng)的G、M代碼文件相比,對加工過程和對象的描述由軌跡層上升到特征層,對加工執(zhí)行的描述由軌跡描述上升到以工步為加工最小單位的任務(wù)描述,對加工技術(shù)的描述由加工參數(shù)層上升到加工策略層[1]。

2.2 STEP-NC文件格式

STEP-NC的文件格式如圖2所示,主要包括頭文件和數(shù)據(jù)段兩部分。頭文件包括三個組成部分:文件描述、文件名稱以及文件模式。數(shù)據(jù)段部分以PROJECT語句開始,包含了加工計劃、加工步驟、加工操作等幾何信息和工藝信息。數(shù)據(jù)段主要是由實例組成,一個實例以“#+實體標識數(shù)字+=+實體名+屬性”的形式表示。實體名就是當前實體的關(guān)鍵字,其中屬性里面嵌套了其他的實例信息。

圖2 STEP-NC文件格式

2.3 信息提取過程的實現(xiàn)

信息提取的過程包括幾何信息和拓撲信息的提取。其中幾何信息的描述都是以參數(shù)曲線和參數(shù)曲面為基礎(chǔ),把解釋曲線與曲面表示成參數(shù)形式,即用NURBS曲線和曲面描述,包括點、線、面、位置、方向等信息。拓撲信息模型從低層到高層主要包括頂點、邊、環(huán)、面、殼等,上層元素的約束直接作用于下層元素,并且各元素本身又包含了一定程度的拓撲關(guān)系,保證了各拓撲實體之間有效的拓撲關(guān)系。

每個拓撲實體的定義都不一樣,要解釋出STEP文件中的拓撲結(jié)構(gòu)關(guān)系,首先必須了解每個拓撲實體的定義,根據(jù)實體定義建立該實體的結(jié)構(gòu)體,然后按照拓撲實體的約束關(guān)系,從高層實體到低層實體,即從殼→面→環(huán)→邊→點的順序進行提取。拓撲實體關(guān)系的實例如圖3所示。

圖3 拓撲關(guān)系圖

拓撲信息提取的具體過程為:①通過定位到殼(OPEN_SHELL或CLOSE_SHELL),提取SHELL屬性列表里的各參數(shù),其中第二個參數(shù)保存了構(gòu)成殼實體的各個高級面(ADVANCED_FACE);②定位到每一個高級面,提取該高級面實體屬性列表的各參數(shù),其中第二個參數(shù)是組成高級面的面邊界(FACE_OUTER_BOUND),第三個參數(shù)是幾何定義曲面,最后一個參數(shù)是布爾值方向標識;③定位到面邊界屬性,屬性列表中第二個參數(shù)是邊環(huán)(LOOP),第三個參數(shù)是布爾值方向標識;④定位到環(huán),環(huán)屬性列表中第二個參數(shù)是邊(EDGE);⑤定位到邊,邊屬性中第二、三個參數(shù)分別是邊的起點和終點,第四個參數(shù)是幾何定義曲面,最后一個參數(shù)是布爾值方向標識;⑥最后定位到點屬性,包括三個坐標點信息。

該實例顯示了一個以4條曲線為邊界的不封閉的曲面。STEP文件中關(guān)于NURBS曲面的數(shù)據(jù)模型如圖4所示。

圖4 NURBS曲面數(shù)據(jù)模型

幾何信息提取的過程就是對該曲面數(shù)據(jù)模型的參數(shù)進行一一查找匹配。首先在STEP文件中定位到實體b_spline_surface_with_knots,然后按照NURBS曲面數(shù)據(jù)模型的定義把里面記錄的曲面幾何信息順序提取出來。其中控制頂點是以實例的形式記錄下來的,需要進一步查找匹配到相應(yīng)的實例中提取控制頂點的3個坐標信息。

信息提取的難點在于:①文件的存儲格式。數(shù)據(jù)是以什么樣的形式存儲在文件中;②在上千行的字符數(shù)據(jù)中如何確定要提取的數(shù)據(jù)在文件中的位置;③定位后如何對數(shù)據(jù)進行處理,并以什么樣的方式保存。

信息提取的過程就是解決以上問題的過程。其中定位數(shù)據(jù)在文件中的位置需要用到匹配算法。

2.4 字符串匹配算法

一般模式匹配算法有BF(brute-force)算法和KMP算法[2]。BF算法是一種簡單直觀的模式匹配算法,其基本思想是:從主串S的第一個字符開始和模式T的第一個字符進行比較,若相等,則繼續(xù)比較兩者的后續(xù)字符;否則,從主串S的第二個字符開始和模式T的第一個字符進行比較。重復(fù)上述過程,若T中的字符全部比較完畢,則說明匹配成功,返回主串S在本趟比較中的起始位置;否則匹配失敗。其算法流程圖如圖5所示。

圖5 BF匹配算法流程圖

BF匹配算法比較簡單易懂,但是其時間復(fù)雜度在匹配成功最壞的情況下為O(nxm),其中n為主串的長度,m為子串的長度,因此BF匹配算法一般用于主串長度不大的情況。對于包含成千上萬個實例的STEP文件其字符數(shù)量大得驚人,如果采用BF匹配算法效率太低了,因此采用KMP匹配算法。

2.5 KMP匹配算法

在BF算法中,如果某趟匹配不成功,主串的比較位置需要回溯到開始比較位置的后一個字符處,以開始下一輪比較。所以BF算法是一種帶回溯的匹配算法,使得匹配效率低。KMP算法是BF算法的改良,主要思想是避免不必要的回溯,提高了匹配的效率。相比BF算法,KMP算法的時間復(fù)雜度是O(n+m),大大降低了匹配的耗用時間。

KMP算法能避免不回溯主要是設(shè)置了next[j]這個函數(shù),令k=next[j]為某趟不成功匹配中因子串第j個字符與主串中相應(yīng)字符不匹配時,下一趟匹配子串的起始位置,即k決定子串向右滑動的距離。KMP算法的關(guān)鍵是求解next[j]函數(shù)。

KMP算法操作步驟如下:

Step1:分別給主串和子串的比較位置I,j賦初值0。

Step2:重復(fù)下列步驟,直到S中所剩字符個數(shù)小于T的長度或T中所有字符均比較完。①如果S[i]=t[j],i和j分別加1;否則;②j=next[j];③如果j=-1,則將i和j分別加1。

Step3:如果T中所有字符均比較完,則返回匹配的起始下標;否則,匹配失敗。

KMP匹配算法流程圖如圖6所示。通過KMP匹配算法把STEP文件中關(guān)于NURBS曲面的幾何信息一一提取出來,把每一個實體映射到C++類的一個過程,實體中的屬性列表相應(yīng)映射到類的屬性中。NURBS曲面幾何信息包括控制頂點、權(quán)因子、節(jié)點矢量等信息。在VC++6.0中創(chuàng)建NURBS類,類里面包含表示曲面幾何信息的控制頂點(ctrlPoint)、權(quán)因子(ω)、節(jié)點矢量(knotsu、knotsv)。其中關(guān)于ctrl-Point還需要建立存儲該控制頂點的結(jié)構(gòu)體(ctrlPoint3D)類型。另外STEP文件表示的NURBS曲面實體中還包含了曲線次數(shù)(u方向上的曲線次數(shù)orderu、v方向上的曲線次數(shù)orderv)、控制頂點的行數(shù)(m_row)、列數(shù)(m_col)。

圖6 KMP匹配算法流程圖

映射到C++后的NURBS類和ctrlPoint3D結(jié)構(gòu)體分別為:

Class NURBS

{

ctrlPoint3D* ctrlPoint;

float* w;

float* knotsu,knotsv;

int orderu,orderv;

int m_row,m_col;

}

Class ctrlPoint3D

{

float x;

float y;

float z;

}

這些數(shù)據(jù)的提取只是作為后續(xù)數(shù)控機床加工的前提,不同的數(shù)控機床采用不同的數(shù)控系統(tǒng),參數(shù)設(shè)置方式也不一樣。從提取STEP-NC文件中的幾何拓撲信息到數(shù)控機床加工的過程中還缺少了制造工藝等信息。從STEP-NC文件中依次提取待加工零件的毛坯(BLOCK)、材料(MATERIAL)數(shù)據(jù),接著提取定位基準(AXIS2_PLACEMENT_3D)、夾緊方案(SETUP),然后搜索刀具的選擇(CUTTING_TOOL),下一步是所采用的加工策略(MILLING_TECHNOLOGY)。這些制造工藝信息提取出來之后存放到工藝信息類里,如圖7所示。數(shù)控系統(tǒng)會根據(jù)這些數(shù)據(jù)自行的選擇刀具、加工方法、策略加工出所需的零件。這對實現(xiàn)未來STEP-NC數(shù)控系統(tǒng)的智能化有著重要的意義。

圖7 STEP-NC工藝信息結(jié)構(gòu)

Class CAPP

{

class Part;//零件

class Block;//毛坯

class Material;//材料

class Placement;//定位基準

class Setup;//裝夾

class Tool;//刀具

class Technology;//策略

}

3 基于Open GL的算法驗證系統(tǒng)

從STEP-NC文件中提取出來的幾何數(shù)據(jù)應(yīng)用到曲面重現(xiàn)環(huán)節(jié)OpenGL函數(shù)中的各參數(shù)。需要注意的一點是不同的系統(tǒng)記錄控制頂點信息有不同的形式,提取出來的控制頂點信息一般是以科學(xué)記數(shù)法形式表示,因此還要對提取出來的幾何信息,主要是控制頂點信息進行數(shù)據(jù)格式轉(zhuǎn)換,以便OpenGL函數(shù)能夠識別。

曲面重現(xiàn)是利用OpenGL技術(shù)對所提取出來的信息進行計算并且顯示出來,通過該方法驗證信息提取的正確性。繪制NURBS曲面之前,首先要設(shè)置好OpenGL各參數(shù),如背景顏色、光照、材質(zhì)等,然后創(chuàng)建NURBS對象,最后把前面提取的幾何信息導(dǎo)入到gluNurbsSurface函數(shù)中完成曲面的重現(xiàn)。部分代碼如下所示:

GLfloat mat_diffuse[4]={m_color.x,m_color.y,m_color.z,1.0f};

GLfloat mat_specular[4]={m_color.x,m_color.y,m_color.z,1.0f};

GLfloat mat_shininess[1]={20.0f};

glMaterialfv(GL_FRONT_AND_BACK,GL_DIFFUSE,mat_diffuse);

glMaterialfv(GL_FRONT_AND_BACK,GL_SPECULAR,mat_specular);

glMaterialfv(GL_FRONT_AND_BACK,GL_SHININESS,mat_shininess);

glColor3f(m_color.x,m_color.y,m_color.z);

glPushMatrix();

gluBeginSurface(m_surface);

gluNurbsSurface(m_surface,m_knotsU.m_num,m_knotsU.m_knots,m_knotsV.m_num,m_knotsV.m_knots,4*m_ctrlPoints.m_col,4,ctrlPoint,m_orderU,m_orderV,GL_MAP2_VERTEX_4);

gluEndSurface(m_surface);

glPopMatrix();

4 等參數(shù)線法刀具軌跡規(guī)劃

一般曲面加工刀具軌跡規(guī)劃算法主要有等截面線法、參數(shù)線法和等殘留高度法等。其中等參數(shù)線法是最常用的一種刀具軌跡規(guī)劃方法,其基本思想是在雙參數(shù)自由曲面上,令其中一個參數(shù)保持不變,另一個參數(shù)變化而形成加工軌跡曲線。這種方法的特點是計算量小,計算速度快。

一張NURBS曲面[3]表示為:

式中:u,v為參變量;di,j(i=0,1,…,n,j=0,1,…,m)為控制頂點,ωi,j(i=0,1,…,n,j=0,1,…,m)是對應(yīng)的權(quán)因子。Ni,k(u)(i=0,1,…,n),Nj,l(v)(j=0,1,…,m)分別為沿u向的k次和沿v向的l次的規(guī)范B樣條基函數(shù),分別由u向和v向的節(jié)點矢量U和V按de Boor-Cox遞推公式?jīng)Q定:

等參數(shù)線法就是通過u(或v)不變,v(或u)以一定的行距變動獲得刀具軌跡觸點。其中行距的計算如下:

一般情況下,行距Δd是殘留高度h、刀具有效切削半徑Re以及曲面的局部曲率半徑Rb的函數(shù)[4]。在h和Re一定的情況下,根據(jù)曲面的局部曲率形態(tài)來決定行距的計算公式:

式中:凸曲面時,sgn(O·N)=1;凹曲面時,sgn(O·N)=-1;平面時,sgn(O·N)=0。

5 實例驗證

在VC++6.0中采用單文檔+對話框的形式,其中對話框完成STEP文件的讀取以及幾何信息的提取過程,單文檔完成曲面重現(xiàn)部分以及刀具軌跡規(guī)劃部分,如圖8~13所示。

圖8 讀取STEP文件

圖9 B樣條曲面信息提取

圖10 曲面控制頂點坐標提取

圖11 轉(zhuǎn)換數(shù)據(jù)格式

圖12 曲面重現(xiàn)

圖13 刀具軌跡

6 結(jié)論

在VC++6.0設(shè)計了一個基于STEP-NC的NURBS曲面信息提取系統(tǒng),通過KMP匹配算法對文件中的信息進行提取,將提取出來的幾何信息導(dǎo)入到曲面重現(xiàn)系統(tǒng)中驗證信息提取的正確性,并通過等參數(shù)線法生成刀具軌跡,最后通過實例進行驗證。

[1] 周 剛.基于STEP-NC的數(shù)控系統(tǒng)體系結(jié)構(gòu)及其關(guān)鍵技術(shù)研究[D].杭州:浙江大學(xué),2008.

[2] 管致錦,徐 慧,陳德裕.數(shù)據(jù)結(jié)構(gòu)[M].北京:清華大學(xué)出版社,2010.

[3] 廖效果,劉又午.數(shù)控技術(shù)[M].武漢:湖北科學(xué)技術(shù)出版社,2000.

[4] 陳良驥.五軸聯(lián)動刀具路徑生成及插補技術(shù)研究[M].北京:知識產(chǎn)權(quán)出版社,2008.

猜你喜歡
控制頂點字符曲面
帶互異權(quán)值的B樣條曲線的最小二乘漸進迭代逼近
尋找更強的字符映射管理器
字符代表幾
一種USB接口字符液晶控制器設(shè)計
電子制作(2019年19期)2019-11-23 08:41:50
相交移動超曲面的亞純映射的唯一性
圓環(huán)上的覆蓋曲面不等式及其應(yīng)用
消失的殖民村莊和神秘字符
基于曲面展開的自由曲面網(wǎng)格劃分
有理二次Bézier形式共軛雙曲線段的幾何計算
確定有限多個曲面實交集的拓撲
莱阳市| 沙河市| 林周县| 拉萨市| 建阳市| 凤庆县| 武清区| 高雄县| 黑河市| 平果县| 莱西市| 迁安市| 土默特右旗| 固安县| 鄂托克前旗| 丰都县| 会东县| 同仁县| 于都县| 夹江县| 金川县| 浪卡子县| 大连市| 普定县| 临泉县| 当涂县| 蒲江县| 鲁山县| 慈溪市| 车致| 海阳市| 深泽县| 威信县| 上饶县| 佛教| 舒城县| 霍城县| 沂源县| 马龙县| 舞阳县| 南投市|