CAD/CAPP/CAM集成的基礎是建立統一的產品定義模型。幾年來的實踐表明,基于特征的建模技術正成為實施CAD/CAPP/CAM一體化最有效的建模方法之一。傳統的CAD系統一般只能提供產品的幾何模型,因此,如何將幾何模型轉換為特征模型已成為CAD/CAPP/CAM集成的關鍵。實現這種模型有兩種方法——交互式特征定義和特征識別。前者采用的是人機交互式,獲得的特征模型可信度較高,但輸入費時,實用效率低。后者的自動化程度較高,實現較為困難。本文通過解析DXF圖形文件格式實現CAD/CAPP集成。
一、DXF文件格式分析
DXF文件由標題段、表段、塊段、實體段和文件結束段5部分組成,其內容如下。
☆標題段(HEADER)標題段記錄AutoCAD系統的所有標題變量的當前值或當前狀態。標題變量記錄了AutoCAD系統的當前工作環境,如SNAP捕捉當前狀態、柵格間距式樣、當前圖層層名及線型、顏色等。
☆表段(TABLES)表段共包含4個表,每個表又包含可變數目的表項。這些表在文件中出現的順序是線型表(LTYPE)、圖層表(LAYER)、字樣表(STYLE)、視圖表(VIEW)。
☆塊段(BLOCK)塊段記錄了所用塊的塊名,當前圖層層名、塊的種類、塊的插入基點及組成該塊的所有成員。塊的種類分為圖形塊、帶有屬性的塊和無名塊三種。無名塊包括用HATCH命令生成的剖面線和用DIM命令所完成的尺寸標準。
☆實體段(ENTITIES)實體段記錄了每個實體的名稱、所在圖層及其名字、線型、顏色等。
☆文件結束段(EOF OF FILE)DXF文件的結束標志。
一個DXF文件由若干個組構成,每個組占兩行,第一行為組的代碼,第二行為組值。組代碼相當于數據類型的代碼,它由CAD圖形系統所規定,而組值為具體的數值,二者結合起來表示一個數據的含義和值。例如,代碼10代表一個點的X坐標,占一行,而其第二行4.5425則是點X坐標的具體數值,二者結合表示一點,其X坐標值為4.5425。
(1)組代碼和組值的類型組代碼為一個非負的不超過三位的整數,而組值由組代碼的類型決定。例如:
代碼0~9組值類型為字符型。
代碼10~59組值類型為實型。
代碼60~79組值類型為整型。
代碼999表示解釋行。
(2)組代碼的含義每個組代碼均有規定的含義,有些代碼含義是固定的,而有些組代碼則因應用場合不同而有多個含義,應具體分析。另外,一些代碼是備用的,目前版本尚未用到,現將他們的含義舉例介紹如下。
0:表示一個事物的開始,如一個塊、表、圖層、實體等。
1:字符型數據的值,如TEXT的字符串、文件名、屬性值等。
2:一個事物的名字,如段、表、塊、線型、視圖等的名字。
3~5:字符型數據的值,如文件名、線型說明等。
6:線型名(固定類型)。
8:圖層名(固定類型)。
關于實體的坐標與相應的組代碼10~18、20~28、30~38的用法應根據實體所用到點的數量,按組代碼個位的0、1、2、……的順序使用。例如LINE的起點組代碼為10、20、30,而11、21、31為其終點。其他類似。
DXF文件的結構相當復雜,完整讀取DXF文件也是一項異常繁瑣的工程。在實際應用中,為了提取圖形的實體信息,可以省略DXF文件中的許多項,只要獲取其中的層表、塊段和實體段,就可以完成相應幾何圖形的描述。在層表中說明每一層的顏色、線型,在塊段中說明塊所在的層、屬性及其在圖形中的位置,在實體段中說明直線的起點、終點及圓的圓心、半徑等幾何信息和各實體所在的層。根據實體所在的層,在層表中搜索每一層的顏色、線型并將其添加到實體對象中。在利用CAD進行繪圖時,需將變量參數DIMASO設為ON,以保證塊段中定義的尺寸塊為一個整體,并可被正確無誤地獲取。根據尺寸類型名、尺寸定義的起點、終點坐標與實體類型名、實體空間坐標是否匹配,對實體對象進行尺寸附加。在繪圖時,如對自定義的粗糙度、形位公差等塊不進行“EXPLODE”炸開操作,也可通過增加相應讀取函數提取其屬性。
下面舉例說明實體段在DXF文件中的格式。
圓弧(ARC)
0(開始)ARC(圓弧)
8(層的組碼)
W1(層名為“W1”)
10(圓弧圓心的X坐標組碼)
7.0(圓弧圓心的X坐標組值)
20(圓弧圓心的Y坐標組碼)
9.0(圓弧圓心的Y坐標組值)
30(圓弧圓心的Z坐標組碼)
0.0(圓弧圓心的Z坐標組值)
40(圓弧的半徑組碼)
25.0(圓弧的半徑值)
50(圓弧的起始角度組碼)
90.0(圓弧的起始角度值)
51(圓弧的終止角度組碼)
180.0(圓弧的終止角度組值)
若實體的線型用BYLAYER,顏色為256(即BYLAYER),基面高度和厚度為零,其格式可簡化。
對于其他圖形實體的格式描述(LINE、CIRCLE、TEXT等),這里就不再一一詳述了。
二、幾何圖形實體信息的提取
生成DXF文件必須首先進入圖形編輯環境,在命令(Command)提示下鍵入DXFOUT,回答所需的一個文件名后,即把內部壓縮格式的圖形數據轉換為ASCⅡ的數據并寫入相應DXF文件(以DXF為擴展名)中,供應用程序提取并處理實體數據。
三、幾何圖形描述的數據結構
通過對CAD系統的DXF圖形交換文件進行分析,可以得到描述零件的全部幾何圖形元素。為簡化問題,設定組成零件內外輪廓的圖形元素只包括點、直線和圓弧,并分別用下列數據結構表示。
點:class POINT { flOAt x;float y;float z;}虛基類:class SHAPE{ //由虛基類派生出直線、圓弧,便于鏈表操作public:
virtual void showEntity()=0;//表示此函數在派生類中必須定義……//在此定義其他虛函數} 直線:class LINE:public SHAPE,public POINT{ public://直線類由兩個基類SHAPE和POINT派生而來POINT start_point;//直線起點POINT end_point;//直線終點……//在此定義其他內部變量和函數}圓弧:class ARC:public SHAPE,public POINT{ public://圓弧類由兩個基類SHAPE和POINT派生而來POINT center_point;//圓弧圓心POINT start_point;//圓弧起點POINT end_point;//圓弧終點float radius;//圓弧半徑……//在此定義其他內部變量和函數}結點:struct Node //定義結點,便于鏈表內部刪除,增加和修改{SHAPE *Item;//內容域Node *llink;//左指針Node *rlink;//右指針} 鏈表:class LIST { //鏈表類private:
Node *head;//結點頭指針public:
LIST();//構造函數,進行變量初始化void~LIST();//析構函數,釋放內存void addEntity(SHAPE *);//定義增加圖形元素的函數……//在此定義其他函數}由此,回轉體零件的幾何圖形元素不難用上述數據結構以線性鏈表進行存儲。完整的特征識別系統不僅僅包含幾何信息,還要包括加工工藝信息,而常用的幾何造型CAD系統并不提供后者。為此,我們在AutoCAD系統中定義了一套工藝信息塊,其全部以圖形文件塊的形式存儲,這些信息包括:形狀公差(直線度、平面度、圓度、圓柱度、線輪廓度和面輪廓度)、位置公差(平行度、垂直度、傾斜度、同軸度、對稱度、位置度、圓跳動和全跳動)、表面粗糙度和基準等。
四、小結
本文首先介紹了DXF文件的結構,分析組值和組代碼的含義,然后說明讀取DXF文件的方法,最后簡單介紹了實現此功能模塊的數據結構。該方法在回轉類零件CAD/CAPP集成系統中的使用取得了較好的效果。
核心關注:拓步ERP系統平臺是覆蓋了眾多的業務領域、行業應用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業務管理理念,功能涉及供應鏈、成本、制造、CRM、HR等眾多業務領域的管理,全面涵蓋了企業關注ERP管理系統的核心領域,是眾多中小企業信息化建設首選的ERP管理軟件信賴品牌。
轉載請注明出處:拓步ERP資訊網http://m.hanmeixuan.com/
本文標題:CAD/CAPP集成的方法實踐