白曉燦,陳永明
(廈門大學(xué)機電工程系,福建廈門361005)
隨著現(xiàn)代經(jīng)濟的不斷發(fā)展,CAD/CAM一體化技術(shù)在企業(yè)中的地位越來越重要,而CAD/CAM集成的一個重要環(huán)節(jié)就是如何將CAD中的幾何圖形信息提取出來,進(jìn)而轉(zhuǎn)化成CAM信息[1]。
DXF(Drawing Exchange Files)文件是AutoCAD的一種支持開放數(shù)據(jù)交換的數(shù)據(jù)格式,其包含圖形和非圖形信息,這些信息被組織成塊,并通過特定的格式進(jìn)行記錄。由于DXF文件格式易于閱讀分析,故一直是廣大CAD/CAM研發(fā)人員研究分析的對象[2]。本文提出通過讀入DXF文件,實現(xiàn)橋切機數(shù)控代碼的自動編寫。本系統(tǒng)以VB6.0為開發(fā)工具,進(jìn)行編程,提供了簡潔、友好的人機操作界面。
為了從DXF文件中提取有用的圖形信息,有必要首先對DXF的文件結(jié)構(gòu)進(jìn)行剖析。一個完整的DXF文件由七大段(SECTION)組成。這些段分別為:HEADER段,CLASSES段,TABLES段,BLOCKS段,ENTITIES段,OBJECTS段,文件結(jié)束符號(組碼為 0,組值為 EOF)[3]。
標(biāo)題段(HEADER Section)包含了AutoCAD系統(tǒng)的所有標(biāo)題變量的當(dāng)前狀態(tài),這些標(biāo)題變量記錄了AutoCAD系統(tǒng)當(dāng)前工作環(huán)境,如AutoCAD的版本號,繪圖界限的左下角、右上角,當(dāng)前圖名、線型、顏色等。
類段(CLASSES Section)主要包含了應(yīng)用類的信息,這些類的實例出現(xiàn)在塊、實體以及對象數(shù)據(jù)庫中尺寸類型表、層表、線型表、文本風(fēng)格表、用戶坐標(biāo)系表、視圖表和視窗配置表。
表段(TABLES Section)包括9個表,每個表又包含不變數(shù)目的表項,這些表在文件中出現(xiàn)的順序依次為:應(yīng)用程序標(biāo)識符表,塊引用描述表,層描述表,線型定義表,文本格式表,用戶坐標(biāo)系統(tǒng)表,視圖表,視口配置表。
塊段 (BLOCKS Section)記錄了圖形中塊的定義信息及塊中的實體信息。
實體段(ENTITES Section)主要記錄了圖形中幾何實體的幾何圖形信息。
對象段 (OBJECTS Section)主要記錄了圖形中非幾何實體的信息。
DXF文件中每一個段均以一個組碼為0、組值為字符串SECTION的組開始,后跟一個組碼為2、組值為表示該段名的字符串的組,其后為組成該段的各個組。最后以一個組碼為0、組值為字符串ENDSEC的組來表示該組結(jié)束。以實體段為例,其結(jié)構(gòu)如下:
0
SECTION
2
ENTITIES
……
0
ENDSEC
本文主要是針對AutoCAD的DXF文件的自動編程。對于數(shù)控編程來說,所需要的最重要編程信息是刀具軌跡。DXF文件的信息豐富,7大段中與幾何圖形有關(guān)的幾何信息均包含在實體段中(圖形中若含有塊,將塊打散后,塊包含的圖形信息也將出現(xiàn)在實體段中),因而DXF文件中圖形信息的提取,就是在實體段中對圖形幾何信息的提取,其他幾段可以忽略。
在提取過程中,主要有以下兩個問題:
(1)DXF文件包含了豐富的信息,其中有用的信息主要是存儲在實體段中,但并不是實體段中存儲的所有的信息都是我們的編程信息,因此需要對實體段的信息進(jìn)行篩選。
(2)在DXF文件中,實體段存儲實體幾何信息的出現(xiàn)先后次序,是根據(jù)實體幾何信息的輸入次序而定的,即繪圖時產(chǎn)生的,這一順序與實際的加工順序不一定會相符,因此需要對實體的加工順序進(jìn)行重新排序。
實體段中的實體有:點、直線、圓、圓弧、折線、線、文本、形等,本文將以數(shù)控加工中常見特征直線和圓弧為例,說明提取數(shù)據(jù)的方法,對于其他實體類型,方法是相同的。一個DXF文件的實體段由若干個組構(gòu)成,每個組占兩行,第一行為組的代碼,第二行為組值。組碼為整型的代碼,組值為具體的數(shù)值和代碼,兩者結(jié)合起來,表示一個數(shù)據(jù)的含義和它的值。不同實體在DXF文件中記錄的要素不同,表征一條直線的實體數(shù)據(jù)如表1,表征一個圓弧的實體數(shù)據(jù)如表2。
表1 直線的實體數(shù)據(jù)
表2 圓弧的實體數(shù)據(jù)
通過分析,發(fā)現(xiàn)圖形文件中包含的圖形對象與實體段組碼和組值提供的信息一致。據(jù)此可以采用判斷組碼獲得組值內(nèi)容的方法提取出有用的信息。圖1為用VB6.0提取有用信息的流程圖[3~4]。
圖1 DXF文件信息提取流程
通過上述方法所得到的幾何實體的順序,是以DXF文件中的先后順序出現(xiàn)的,這不一定是實際的加工順序,在一般情況下要對其進(jìn)行重新排序。采用的方法是:
(1)先將通過上述方法所獲得的數(shù)據(jù)做進(jìn)一步處理成以下格式:
LINE 起點坐標(biāo) 終點坐標(biāo)
ARC 起點坐標(biāo) 終點坐標(biāo) 圓心坐標(biāo) 半徑 順逆方向
(2)根據(jù)處理完數(shù)據(jù)的格式,運用VB6.0的畫圖命令,將幾何圖形以縮放一定的比例顯示出來;
(3)由操作者點擊顯示圖形的連接點,由于所點擊的每個連接點實際上都是DXF文件里一個特定幾何實體的起點坐標(biāo),因此按照操作者點擊起點坐標(biāo)的順序,即可生成所需的加工順序(如圖2)。
圖2 加工順序編輯圖形
處理后的數(shù)據(jù)按照加工順序存于一個二維數(shù)組Data(a,b)里。格式如下:
當(dāng)實體為直線時:
Data(a,0)=L INE,Data(a,1)=起點坐標(biāo),Data(a,2)=終點坐標(biāo);
當(dāng)實體為圓弧時:
Data(a,0)=ARC,Data(a,1)=起點坐標(biāo),Data(a,2)=終點坐標(biāo),
Data(a,3)=圓心坐標(biāo),Data(a,4)=半徑,Data(a,5)=順逆方向
后置處理是一個文本編輯處理的過程,其作用是將讀取的圖形信息根據(jù)指定數(shù)控機床的特點及規(guī)定的格式進(jìn)行分析、判斷和處理,轉(zhuǎn)化為機床能夠識別的NC代碼并輸出。
生成數(shù)控加工程序時需要由操作者確定其他加工參數(shù),可通過人機對話的方式來確定(如圖3)。
圖3 其他加工參數(shù)人機對話框
后置處理程序流程圖如圖4[4]。
圖4 后置處理程序流程
本系統(tǒng)成功實現(xiàn)了數(shù)控加工的自動編程,不再需要人工編程,從而解塊了人工數(shù)控編程繁瑣易錯的問題,縮短了編程及調(diào)試時間,提高了數(shù)控機床利用率。該系統(tǒng)通用性良好,既可以作為橋切機的實現(xiàn)自動編程的功能模塊,又可整合到其他數(shù)控系統(tǒng)中使用。
[1]江平宇,周光輝.CAD/CAM基本原理與應(yīng)用[M].北京:機械工業(yè)出版社,2008.
[2]葉建華,謝明紅,賈敏忠.基于DXF文件的自動編程系統(tǒng)研究[J].機械設(shè)計制造,2005,(8):149-151.
[3]徐世林,宋國寶,陳亞東.基于AutoCAD的數(shù)控加工自動編程系統(tǒng)的開發(fā)[J].機床與液壓,2006,(3):214-215,224.
[4]郭圣路,張榮圣.Visual Basic 6.0從入門到精通[M].北京:電子工業(yè)出版社,2008.