楊佳帆等
摘 要:研究了DXF文件的讀取和識別過程,通過LabVIEW編程工具將DXF文件關(guān)鍵信息提取出來,解決了DXF文件復(fù)雜信息內(nèi)容的識別,最終得到圖形的運動路徑。
關(guān)鍵詞:三軸控制系統(tǒng);運動控制卡;LabVIEW;DXF文件識別
中圖分類號:TB
文獻(xiàn)標(biāo)識碼:A
文章編號:1672-3198(2015)15-0182-02
0 引言
隨著圖形識別技術(shù)的發(fā)展,現(xiàn)代數(shù)控雕刻機已經(jīng)不需要人工編程,直接可以導(dǎo)入圖形進(jìn)行雕刻,這極大地簡化了雕刻機操作流程,也使得操作人員不需要具有豐富的編程知識。其中,DXF識別是數(shù)控雕刻機的關(guān)鍵技術(shù),通過對DXF文件的讀取和識別,可以直接生成運動加工軌跡,從而控制數(shù)控雕刻機運動。
國外研究者們在如何將CAD軟件與數(shù)控加工的NC代碼進(jìn)行聯(lián)系方面做了很多研究:如Omirou和 Barouni提出一系列機器碼將先進(jìn)編程能力集成到對現(xiàn)代數(shù)控銑床系統(tǒng)的控制。國內(nèi)研究者在關(guān)于DXF文件和數(shù)控加工的理論性研究和應(yīng)用也取得了一些成就。
1 主要研究內(nèi)容
(1)分析DXF文件數(shù)據(jù)格式和應(yīng)用特點,通過利用高級語言開發(fā)的界面程序從CAD圖形中提取圖形信息并將其轉(zhuǎn)換為參數(shù)化數(shù)據(jù)。
(2)結(jié)合三軸運動平臺,將數(shù)據(jù)轉(zhuǎn)換為運動控制卡能夠識別的底層程序代碼,生成軌跡運動的程序。
2 系統(tǒng)平臺軟硬件介紹
2.1 三軸運動控制機械平臺
三軸運動平臺是一個具有開放式體系結(jié)構(gòu)的綜合平臺,所開發(fā)的系統(tǒng)構(gòu)筑于一個開放的平臺之上,可以以此設(shè)備為基礎(chǔ)開發(fā)包括圖像處理、數(shù)控加工等多種不同功能的應(yīng)用系統(tǒng),具備較好的適應(yīng)性和拓展性。
2.2 LabVIEW軟件
LabVIEW是一種程序開發(fā)環(huán)境,由美國國家儀器(NI)公司研制開發(fā),相對于C和BASIC開發(fā)環(huán)境,LabVIEW與其他計算機語言的區(qū)別是:其他計算機語言都是采用基于文本的語言產(chǎn)生代碼,而LabVIEW使用的是圖形化編輯語言G編寫程序,產(chǎn)生的程序是框圖的形式。
3 圖形文件DXF與圖元信息提取
3.1 DXF文件簡介
DXF(Drawing Exchange File)是 AutoCAD圖形文件中所包含的全部信息的標(biāo)記數(shù)據(jù)的一種表示方法,是AutoCAD圖形文件的ASCⅡ或二進(jìn)制文件格式,可用于在AutoCAD與其它圖形應(yīng)用程序之間的輸入、輸出與交換圖形文件。由于在實際應(yīng)用過程中,ASCⅡ碼DXF文件比二進(jìn)制DXF文件更常用,因此通常情況下所指的DXF文件為ASCⅡ格式文件。
3.2 DXF文件結(jié)構(gòu)
一個完整的DXF文件應(yīng)該由六大段(SECTION)組成。這些段分別為HEADER段,CLASSES段、TABLES段、BLOCKS段、ENTITIES段、文件的結(jié)束符號(組碼為0,組值為EOF)。DXF文件基本結(jié)構(gòu)如圖1所示。
3.3 DXF文件解析及信息提取
DXF文件中所包含的信息十分復(fù)雜,但有需要的只是圖形的一些線形,長度,坐標(biāo)等一些基本參數(shù),所以我們只需要用LabVIEW提取ENTITIES中的信息即可。
根據(jù)上文所提到的DXF文件的格式特殊性,即每一個圖元在DXF文件中都以固定的格式存儲,因此方便了數(shù)據(jù)交互,也可以稱作其本身具有較好的可讀性。并且,保存在DXF文件中的每個單獨圖元的圖形特征都是由成對的組碼(組代碼)與組值所構(gòu)成的參數(shù)(組)來描述的。DXF文件的通用組碼及其含義如表1所示。
在文件格式中,每個組占兩行。其中第一行為組的代碼,第二行為組值。組代碼就相當(dāng)于是數(shù)據(jù)類型的代碼,它由CAD圖形系統(tǒng)所制定。組值為具體的數(shù)值,將兩者結(jié)合起來才能描述一個數(shù)據(jù)的含義和值。
因此,根據(jù)本設(shè)計的目標(biāo)要求,只需要讀取DXF文件中實體段(ENTITIES)的內(nèi)容就足夠可以描述目標(biāo)幾何輪廓進(jìn)行操作了。具體讀取思路是識別到標(biāo)識“ENTITIES”,建立一個圖元對象,然后根據(jù)圖形類型采取對應(yīng)的組碼識別。提取圖形信息流程圖如圖2所示。
例如:現(xiàn)有某三角形的坐標(biāo)保存在DXF文件中。三角形的DXF文件中ENTITIES段信息如圖3所示。
為了使提取的范圍盡量的小,首先需要將ENTITIES段從整個DXF文件中提出來。這里就需要運用LabVIEW中的搜索一維數(shù)組,搜索至ENTITIES,然后將ENTITIES以后的元素放在一個數(shù)組中,再對該數(shù)組進(jìn)行從元素SECTION開始拆分,保留SECTION以上的元素,這樣就可以先把實體段從整個文件中提出。提取ENTITIES段的LabVIEW程序如圖4所示。
將ENTITIES段提取出來后就可以提取圖形的線形,起始點坐標(biāo),終點坐標(biāo)等參數(shù)。在ENTITIES段中,無論圖形是什么,都有一個固定的格式。
如圖3中:
表示線形行數(shù)的上一行為__0下一行為__5,于是就可以用提取ENTITIES段一樣的方法來提取線形。
同樣圖形的起點,終點的x,y軸坐標(biāo)也都有固定的格式,只要搜索相應(yīng)的元素就能提取信息。坐標(biāo)點信息如圖5所示。
最后用while循環(huán)結(jié)構(gòu)將所有元素提取。提取線性和起始點坐標(biāo)的程序如圖6所示。
4 結(jié)論
通過DXF文件的讀取和識別過程,運用Lab-VIEW編程工具將DXF文件關(guān)鍵信息提取出來,解決了DXF文件復(fù)雜信息內(nèi)容,最終得到圖形的運動路徑。
參考文獻(xiàn)
[1]王明紅.數(shù)控技術(shù)[M].北京:清華大學(xué)出版社,2009.
[2]鄭堤.數(shù)控機床與編程[M].北京:機械工業(yè)出版社,2005.
[3]馬凱等.基于DXF文件的CAD/CAM刀具路徑優(yōu)化與生成[J].機床與液壓,2011,39(10).
[4]李芳珍,許倫輝.DXF文件格式及其外部接口的研究[J].兵工自動化,2008年,27(7).