0.引言
在過(guò)去的50多年里,數(shù)控加工技術(shù)有了長(zhǎng)足的發(fā)展,控制器由早期的無(wú)存儲(chǔ)能力的控制器發(fā)展成為基于PC機(jī)的開(kāi)放式數(shù)控(Computer Numerical Control,CNC)系統(tǒng),一直作為數(shù)控設(shè)備編程語(yǔ)言的G/M代碼(ISO6983),現(xiàn)在成為下一代數(shù)控系統(tǒng)發(fā)展的瓶頸。
一種新的國(guó)際標(biāo)準(zhǔn)與產(chǎn)品模型數(shù)據(jù)交換標(biāo)準(zhǔn)兼容的數(shù)據(jù)接口(STandard for the Exchange of Product model data-compliant Numerical Control data interface,STEP-NC),將被作為新一代數(shù)控系統(tǒng)的基礎(chǔ)。這一標(biāo)準(zhǔn)為計(jì)算機(jī)輔助制造(Computer Aided Manufacturing,CAM)和CNC的生產(chǎn)廠商提供了將計(jì)算機(jī)輔助設(shè)計(jì)(Computer Aided Design,CAD)/CAM系統(tǒng)與新一代智能CNC系統(tǒng)集成起來(lái)的可能。
計(jì)算機(jī)輔助工藝設(shè)計(jì)(Computer Aided Process Planning,CAPP)是連接CAD與CAM的橋梁,開(kāi)發(fā)基于STEP-NC的CAPP系統(tǒng)將成為下一代數(shù)據(jù)系統(tǒng)及STEP-NC標(biāo)準(zhǔn)發(fā)展的關(guān)鍵。
STEP-NC是一個(gè)面向?qū)ο蟮男滦蚇C編程數(shù)據(jù)接口國(guó)際標(biāo)準(zhǔn)(ISO14649)。STEP-NC數(shù)據(jù)模型基于制造特征(如孔、型腔、倒角等)進(jìn)行編程,即對(duì)STEP-NC控制器而言,它告訴的是CNC“要加工什么”,而不是“如何加工”的具體動(dòng)作,因此不需要后置處理程序,具體的動(dòng)作由CNC確定,程序具有良好的互操作性和可移植性。STEP-NC的詳細(xì)數(shù)據(jù)結(jié)構(gòu)已在其他文獻(xiàn)中作了詳細(xì)介紹。
本文通過(guò)對(duì)STEP-NC及相關(guān)國(guó)際標(biāo)準(zhǔn)的研究,開(kāi)發(fā)了基于STEP-NC的CAPP/CAM系統(tǒng)。本系統(tǒng)基于數(shù)據(jù)庫(kù)進(jìn)行開(kāi)發(fā),將幾何、拓?fù)浜凸に囆畔⒂成涞綌?shù)據(jù)庫(kù),工藝規(guī)劃完成后,將工步、操作等信息存儲(chǔ)到數(shù)據(jù)庫(kù)中。本系統(tǒng)以數(shù)據(jù)庫(kù)為橋梁,實(shí)現(xiàn)數(shù)據(jù)的可操作性,為實(shí)現(xiàn)數(shù)據(jù)信息在CAD/CAPP/CAM系統(tǒng)中的雙向流動(dòng)打下堅(jiān)實(shí)的基礎(chǔ)。
1. 基于STEP-NC的CAPP的系統(tǒng)總體結(jié)構(gòu)
系統(tǒng)主要包括四個(gè)模塊(如圖1),分別為幾何信息提取模塊、特征信息提取模塊、工藝規(guī)劃模塊和STEP—NC文件生成模塊,還包括幾何信息庫(kù)、工藝資源庫(kù)和工藝信息庫(kù)三個(gè)數(shù)據(jù)庫(kù)。

圖l.基于STEP-NC的CAPP的系統(tǒng)結(jié)構(gòu)圖
(1)幾何信息庫(kù).主要用于存放對(duì)STEP文件解析后的幾何信息,這些幾何信息是特征提取、工藝規(guī)劃及STEP-NC文件生成的數(shù)據(jù)基礎(chǔ)。建立幾何信息庫(kù)主要考慮三個(gè)方面因素:①STEP文件中實(shí)體的定義方式;②STEP文件描述零件的幾何外形時(shí)各個(gè)實(shí)體間的引用關(guān)系和層次關(guān)系;③EXPRESS語(yǔ)言數(shù)據(jù)類型與數(shù)據(jù)庫(kù)中數(shù)據(jù)類型的映射關(guān)系。
(2)工藝資源庫(kù).主要為工藝規(guī)劃提供工藝資源信息,包括機(jī)床、刀具、夾具及材料等。
(3)工藝信息庫(kù).用于存儲(chǔ)工藝規(guī)劃過(guò)程中產(chǎn)生的加工特征、工步、操作等信息。
(4)幾何信息提取模塊.主要用于對(duì)零件的STEP文件進(jìn)行解析,提取STEP文件頭段部分的信息、數(shù)據(jù)段中用于描述零件幾何外形的實(shí)體信息和實(shí)體間的引用關(guān)系,并將這些信息存儲(chǔ)到幾何信息庫(kù)中。
(5)特征信息提取模塊.用于提取加工特征的幾何、位置、方向等信息,并將加工特征的相關(guān)信息寫(xiě)入到工藝信息庫(kù)中。工藝規(guī)劃時(shí),設(shè)計(jì)人員可以在三維交互界面中選擇加工特征的關(guān)鍵點(diǎn)和面,進(jìn)而進(jìn)行加工特征信息的提取。
(6)工藝規(guī)劃模塊.通過(guò)人機(jī)交互實(shí)現(xiàn),主要用于零件的工藝規(guī)劃,并生成一系列的加工工步和操作。工藝設(shè)計(jì)人員首先確定加工特征,然后為該特征選擇和添加刀具、切削速度、主軸轉(zhuǎn)速和安全平面等工藝信息。
(7)STEP-NC.程序生成模塊在一個(gè)零件的工藝規(guī)劃過(guò)程完成后,將工藝信息庫(kù)的加工特征、工步、操作等信息按照ISO14649標(biāo)準(zhǔn)寫(xiě)入STEP-NC程序。
2. STEP文件與數(shù)據(jù)庫(kù)的映射
本系統(tǒng)將STEP文件的信息映射到數(shù)據(jù)庫(kù)中,由于數(shù)據(jù)庫(kù)具有良好的互操作性,要將STEP文件的幾何信息存放到幾何信息庫(kù)中,首先對(duì)STEP文件進(jìn)行解析,讀取其數(shù)據(jù)信息,將幾何信息存儲(chǔ)到數(shù)據(jù)庫(kù)中。因此,系統(tǒng)首先要實(shí)現(xiàn)EXPRESS數(shù)據(jù)類型與C++數(shù)據(jù)類型的映射,再實(shí)現(xiàn)與SQL Server數(shù)據(jù)類型的映射。
2.1 數(shù)據(jù)類型的映射
2.1.1 簡(jiǎn)單數(shù)據(jù)類型的映射
EXPRESS描述的簡(jiǎn)單數(shù)據(jù)類型到C++數(shù)據(jù)類型和SQL Server數(shù)據(jù)類型的映射關(guān)系如表1所示。
表1.EXPRESS和C++、SQL Server數(shù)據(jù)類型映射
2.1.2 聚合數(shù)據(jù)類型的映射
聚合數(shù)據(jù)類型是具有相同數(shù)據(jù)類型值的集合。在應(yīng)用程序中,系統(tǒng)將根據(jù)具體情況采用不同的方法實(shí)現(xiàn)數(shù)據(jù)類型的映射,主要包括:
(1)聚合數(shù)據(jù)類型與數(shù)組映射。
(2)根據(jù)聚合型數(shù)據(jù)元素的個(gè)數(shù),定義相同個(gè)數(shù)的變量與其映射,這些變量的類型與聚合型數(shù)據(jù)元素?cái)?shù)據(jù)類型相同,映射方法采用簡(jiǎn)單數(shù)據(jù)類型的映射方法。
(3)聚合數(shù)據(jù)類型一般出現(xiàn)在實(shí)體的屬性中,可以將實(shí)體與C++類進(jìn)行映射,聚合型數(shù)據(jù)也就映射成類中的變量。
幾何信息庫(kù)用于存放STEP文件的幾何信息,所以其表結(jié)構(gòu)可以反映文件中相關(guān)信息的關(guān)系和結(jié)構(gòu)。在數(shù)據(jù)庫(kù)中,通過(guò)建立二維表來(lái)實(shí)現(xiàn)與聚合數(shù)據(jù)類型的映射,以及數(shù)據(jù)表中的列與變量的元素映射。
2.1.3 命名數(shù)據(jù)類型的映射
命名數(shù)據(jù)類型是用戶說(shuō)明的數(shù)據(jù)類型,包含實(shí)體數(shù)據(jù)類型和定義數(shù)據(jù)類型。這里主要討論實(shí)體數(shù)據(jù)類型的映射方法。
(1)實(shí)體數(shù)據(jù)類型與C++中類的映射
類是一種將不同類型的數(shù)據(jù)和與這些數(shù)據(jù)相關(guān)的操作封裝在一起的復(fù)雜的數(shù)據(jù)類型,它使得應(yīng)用中的實(shí)體在程序中可以表示為一個(gè)標(biāo)識(shí)符,并可以對(duì)其進(jìn)行引用和操作,使得程序中的概念和應(yīng)用中的概念之間比較一致和對(duì)應(yīng)。
本系統(tǒng)通過(guò)建立與STEP文件中實(shí)體相對(duì)應(yīng)的類,將實(shí)體對(duì)應(yīng)類的內(nèi)部數(shù)據(jù)結(jié)構(gòu)與實(shí)體的幾何信息建立一一對(duì)應(yīng)的關(guān)系,實(shí)現(xiàn)了數(shù)據(jù)的封裝和隱藏。
EXPRESS語(yǔ)言的一個(gè)強(qiáng)大之處是面向?qū)ο蟮睦^承機(jī)制,在繼承關(guān)系上引入了三個(gè)關(guān)系運(yùn)算子,即ONE OF,AND,ANDOR,這三個(gè)繼承算子可以任意組合,嵌套使用,它們與C++中的繼承性和派生類映射關(guān)系如表2所示。
表2.EXPRESS語(yǔ)言與c++中的繼承機(jī)制映射表
(2)實(shí)體數(shù)據(jù)類型與SQL Server實(shí)體數(shù)據(jù)表的映射
實(shí)體數(shù)據(jù)類型包含的信息比較復(fù)雜,同時(shí)也會(huì)引用其他類型的實(shí)體。STEP文件中,通過(guò)為實(shí)體數(shù)據(jù)類型添加實(shí)體型屬性,實(shí)現(xiàn)實(shí)體數(shù)據(jù)類型之間的引用與被引用關(guān)系。在SQL Server數(shù)據(jù)庫(kù)中,將實(shí)體數(shù)據(jù)類型映射成二維數(shù)據(jù)表,通過(guò)為不同的實(shí)體數(shù)據(jù)類型建立對(duì)應(yīng)的二維數(shù)據(jù)表,實(shí)現(xiàn)實(shí)體數(shù)據(jù)類型與數(shù)據(jù)表的映射;通過(guò)數(shù)據(jù)表之間主鍵、外鍵的聯(lián)系來(lái)映射實(shí)體數(shù)據(jù)之間的引用與被引用關(guān)系。
2.2 幾何信息庫(kù)的建立
AP203文件描述零件幾何信息的模型反映了各個(gè)實(shí)體間的引用關(guān)系和層次關(guān)系,文獻(xiàn)給出了AP203文件數(shù)據(jù)模型。通過(guò)對(duì)模型中實(shí)體信息及其引用關(guān)系的分析,可以得到兩方面信息:①幾何信息庫(kù)所包含的實(shí)體數(shù)據(jù)表,為STEP文件中每一種實(shí)體建立一個(gè)實(shí)體數(shù)據(jù)表與之對(duì)應(yīng);②上述數(shù)據(jù)表之間的引用關(guān)系,根據(jù)圖中實(shí)體間的引用關(guān)系和層次關(guān)系,定義數(shù)據(jù)庫(kù)中實(shí)體數(shù)據(jù)表的引用關(guān)系。
數(shù)據(jù)庫(kù)中數(shù)據(jù)表的具體建立方法如下:
(1)實(shí)體的每一個(gè)顯式屬性映射為該實(shí)體表的一個(gè)字段,不同的數(shù)據(jù)類型屬性按照前面所述的映射規(guī)則進(jìn)行映射。
(2)將該實(shí)體的ID號(hào)字段設(shè)為數(shù)據(jù)表的主鍵。
(3)如果該實(shí)體引用其他類型的實(shí)體,添加其所引用實(shí)體的ID號(hào)字段,體現(xiàn)兩個(gè)實(shí)體間引用與被引用關(guān)系。
利用上述方法建立的幾何信息庫(kù)不僅體現(xiàn)了實(shí)體數(shù)據(jù)的屬性信息,還體現(xiàn)了STEP文件中實(shí)體間的引用與被引用關(guān)系。
2.3 詞法分析
詞法分析是通過(guò)對(duì)STEP文件的解析,提取出文件中的實(shí)體、屬性信息,使之與已經(jīng)定義好的實(shí)體類相匹配的過(guò)程。STEP文件中每一行語(yǔ)句表示一個(gè)實(shí)體,構(gòu)成了一個(gè)實(shí)體語(yǔ)句段。對(duì)于每一個(gè)語(yǔ)句段,詞法分析的作用就是提取實(shí)體語(yǔ)句段中的實(shí)體名、實(shí)體的ID號(hào)、實(shí)體的各個(gè)屬性值。詞法分析的關(guān)鍵是解析實(shí)體語(yǔ)句段中的單詞序列,實(shí)現(xiàn)與實(shí)體類的匹配。
系統(tǒng)首先將一個(gè)零件的STEP文件讀取到內(nèi)存中,并定義一個(gè)字符指針變量指向該字符串。然后以識(shí)別界符“I”為標(biāo)記,讀取一行文件,即得到了一個(gè)實(shí)體語(yǔ)句段。詞法分析對(duì)這樣一個(gè)實(shí)體語(yǔ)句段的解析過(guò)程的實(shí)現(xiàn)流程如圖2所示。

圖2.實(shí)體語(yǔ)句段的詞法分析流程圖
現(xiàn)以笛卡爾點(diǎn)為例介紹實(shí)體語(yǔ)句段的詞法分析過(guò)程,笛卡爾點(diǎn)的語(yǔ)句如下:
#47=CARTESIAN_POIN(“,(-1.5E2,1.E2,-1.5E2));
詞法分析時(shí),首先得到笛卡爾點(diǎn)ID號(hào)是47,將ID號(hào)賦值給實(shí)型數(shù)組AttriVarArray的第1個(gè)元素;然后得到實(shí)體名稱是CARTESIAN_ POINT,將實(shí)體名稱賦值給字符串變量EntityName;最后得到三個(gè)實(shí)型變量-1.5E2,1.E2和-1.5E2,表示笛卡爾點(diǎn)X,Y,Z軸的坐標(biāo)信息,將它們賦值給實(shí)型數(shù)組AttriVarArray的第2~4個(gè)元素。整個(gè)STEP文件的解析過(guò)程就是若干個(gè)實(shí)體語(yǔ)句段的解析過(guò)程。在完成一個(gè)實(shí)體語(yǔ)句段的詞法分析后,對(duì)字符申變量EntityName(即實(shí)體名稱)進(jìn)行判斷,找到后續(xù)程序的人口,從而將該類實(shí)體映射成的實(shí)體類實(shí)例化,完成將STEP文件幾何信息寫(xiě)入幾何信息庫(kù)中的操作。
2.4 幾何信息庫(kù)的相關(guān)操作
通過(guò)詞法分析,從STEP文件中提取到了幾何信息,通過(guò)EXPRESS數(shù)據(jù)類型、SQL Server數(shù)據(jù)類型、實(shí)體數(shù)據(jù)表的映射建立了幾何信息庫(kù),現(xiàn)在要解決的問(wèn)題是如何將幾何信息存儲(chǔ)到幾何信息庫(kù)中。
從上文可知,對(duì)應(yīng)于STEP文件中.的實(shí)體,系統(tǒng)建立與之對(duì)應(yīng)的類。這些類不但封裝了實(shí)體的幾何信息,而且封裝了實(shí)體對(duì)應(yīng)函數(shù)的操作,這些操作由類中定義的函數(shù)實(shí)現(xiàn),包括幾何信息的讀取、匹配、寫(xiě)入幾何信息庫(kù)、從幾何信息庫(kù)中讀出等。以笛卡兒點(diǎn)(cartesian_point)為例,它所映射成的類名為CCartesian_point,該類主要包括SQL_insert(),GetData(),Getxyz(CString CCPoint_Id)三個(gè)函數(shù)。
2.5 STEP文件與幾何信息庫(kù)的映射過(guò)程
系統(tǒng)定義了相應(yīng)的實(shí)體類,并與STEP文件中的實(shí)體類型進(jìn)行映射,STEP文件與幾何信息庫(kù)的映射過(guò)程如圖3所示。系統(tǒng)首先要解析零件的STEP文件,當(dāng)完成一個(gè)實(shí)體語(yǔ)句段的詞法分析后,會(huì)得到實(shí)體的ID號(hào)、實(shí)體的名稱及屬性集。然后,根據(jù)實(shí)體名稱調(diào)用相應(yīng)的實(shí)體類對(duì)已經(jīng)解析出來(lái)的幾何信息進(jìn)行處理,將幾何存入到幾何信息中相應(yīng)的數(shù)據(jù)表中。

圖3.STEP文件與幾何信息庫(kù)的映射過(guò)程
3. 工藝規(guī)劃與STEP-NC程序生成
STEP-NC程序的生成過(guò)程包括加工特征信息的提取、工藝規(guī)劃和程序文件的生成三個(gè)部分。
3.1 特征信息提取
特征信息提取是提取加工特征的類型、幾何、位置等信息的過(guò)程。加工特征信息的提取實(shí)質(zhì)是加工特征的幾個(gè)關(guān)鍵面信息的提取,然后對(duì)關(guān)鍵面的信息進(jìn)行分析進(jìn)而得到加工特征的特征信息。以平底盲孔為例,平底盲孑L由一個(gè)底面和兩個(gè)半圓柱面組成,得到了這三個(gè)面的信息后,對(duì)它們進(jìn)行分析就可以得到盲孔的相關(guān)信息了。限于篇幅,具體的算法將在其他文獻(xiàn)中介紹。本系統(tǒng)通過(guò)人機(jī)交互的方式進(jìn)行工藝規(guī)劃,工藝人員在三維模型交互界面中選擇加工特征,得到該特征的關(guān)鍵幾何信息后進(jìn)行特征信息提取。
3.2 工藝規(guī)劃
工藝規(guī)劃是根據(jù)加工特征的類型及工藝要求設(shè)置工步、操作、工藝參數(shù)的過(guò)程。工藝規(guī)劃包括工序的安排、機(jī)床選擇、刀具選擇、加工策略、切削參數(shù)的確定。當(dāng)通過(guò)人機(jī)交互完成加工特征的選擇、信息提取后,在工藝參數(shù)設(shè)置界面中設(shè)置詳細(xì)的工藝信息。
3.3 STEP-NC文件的生成
STEP-NC文件的生成過(guò)程就是將特征信息提取、工藝規(guī)劃過(guò)程中生成的零件基本信息、坐標(biāo)系、材料、夾緊點(diǎn)、加工特征、工步、操作等信息按照IS014649標(biāo)準(zhǔn)寫(xiě)入STE—NC文件的過(guò)程,具體過(guò)程如圖4所示。

圖4.STEP-NC程序生成沉程
本系統(tǒng)中,程序行號(hào)包括七位,分為三組:第一位是第一組,分別取值1,2,3,其中1表示工程、工作計(jì)劃、工件和加工工步等基本信息,2表示加工特征信息,3表示操作信息;中間三位是第二組,表示的含義根據(jù)第一組的取值變化而變化;后3位是第三組,從001開(kāi)始遞增,沒(méi)有明確的含義。詳細(xì)信息如表3所示。
表3.STEP-NC程序行號(hào)規(guī)則表
4.原型系統(tǒng)
基于上述方法,作者開(kāi)發(fā)基于STEP-NC的CAPP實(shí)驗(yàn)原型系統(tǒng)。利用VC++6.0開(kāi)發(fā)環(huán)境,以AutoVue作為三維模型交互顯示界面,數(shù)據(jù)庫(kù)采用SQL Sever 2000。運(yùn)行時(shí)的界面如圖5所示,圖中三維模型由Pro/E建立,并生成STEP文件。

圖5.基于STEP-NC的CAPP系統(tǒng)
在該系統(tǒng)中,首先打開(kāi)STEP文件,通過(guò)詞法分析實(shí)現(xiàn)對(duì)STEP文件的解析,提取實(shí)體屬性信息并存入幾何信息庫(kù)中。然后,用戶在三維模型交互顯示界面中選取加工特征,并為該加工特征設(shè)置工步、工藝參數(shù),設(shè)置界面如圖6所示。工藝規(guī)劃完成后,寫(xiě)出的STEP-NC程序如圖7所示。

圖6.加工工步中工藝參數(shù)的設(shè)置界面
圖7.STEP-NC程序?qū)嵗?/P>
5.結(jié)束語(yǔ)
本文建立了基于STEP-NC的CAPP系統(tǒng)總體結(jié)構(gòu),分析了各模塊的功能。文中重點(diǎn)研究了STEP文件映射成的幾何信息庫(kù)的建立過(guò)程,以及STEP文件與幾何信息庫(kù)的映射方法和過(guò)程。該系統(tǒng)的幾何、工藝信息存放于數(shù)據(jù)庫(kù)中,為將來(lái)實(shí)現(xiàn)數(shù)據(jù)信息雙向流動(dòng)打下了很好的基礎(chǔ)。
相關(guān)文章
- 2021-09-08BIM技術(shù)叢書(shū)Revit軟件應(yīng)用系列Autodesk Revit族詳解 [
- 2021-09-08全國(guó)專業(yè)技術(shù)人員計(jì)算機(jī)應(yīng)用能力考試用書(shū) AutoCAD2004
- 2021-09-08EXCEL在工作中的應(yīng)用 制表、數(shù)據(jù)處理及宏應(yīng)用PDF下載
- 2021-08-30從零開(kāi)始AutoCAD 2014中文版機(jī)械制圖基礎(chǔ)培訓(xùn)教程 [李
- 2021-08-30從零開(kāi)始AutoCAD 2014中文版建筑制圖基礎(chǔ)培訓(xùn)教程 [朱
- 2021-08-30電氣CAD實(shí)例教程AutoCAD 2010中文版 [左昉 等編著] 20
- 2021-08-30電影風(fēng)暴2:Maya影像實(shí)拍與三維合成攻略PDF下載
- 2021-08-30高等院校藝術(shù)設(shè)計(jì)案例教程中文版AutoCAD 建筑設(shè)計(jì)案例
- 2021-08-29環(huán)境藝術(shù)制圖AutoCAD [徐幼光 編著] 2013年P(guān)DF下載
- 2021-08-29機(jī)械A(chǔ)utoCAD 項(xiàng)目教程 第3版 [繆希偉 主編] 2012年P(guān)DF