張新朋 谷 安 王立朝 方志軍
(青島卓東機(jī)械科技有限公司,青 島 266400)
摘要:通過(guò)分析DXF文件的數(shù)據(jù)結(jié)構(gòu),利用Visual C++6.0為開(kāi)發(fā)工具,設(shè)計(jì)了系統(tǒng)與AutoCAD的接口程序,獲取零件圖形的幾何信息。完成了數(shù)控沖壓加工的自動(dòng)編程,實(shí)現(xiàn)了折彎板料展開(kāi)后的尺寸計(jì)算,得出沖壓孔的準(zhǔn)確位置,自動(dòng)生成數(shù)控沖床加工系統(tǒng)的程序代碼。采用該系統(tǒng)更大地方便了數(shù)控沖壓加工。
關(guān)鍵詞:DXF文件 自動(dòng)編程 數(shù)控沖床
O前言
目前,我國(guó)生產(chǎn)母排的數(shù)控沖床主要依靠進(jìn)口,但是進(jìn)口的數(shù)控沖床價(jià)格昂貴,因此自主研發(fā)生產(chǎn)此數(shù)控沖床具有重要意義。
目前該類數(shù)控轉(zhuǎn)塔沖床的自動(dòng)編程系統(tǒng)多采用圖形輸入的方法.主要有兩種形式:一種是基于AutoCAD的二次開(kāi)發(fā),另一種是利用編程軟件來(lái)讀取AutoCAD的信息。本文介紹的系統(tǒng)就是通過(guò)讀取AutoCAD的DXF格式文件,實(shí)現(xiàn)集圖形編輯、程序生成予一體的自動(dòng)綰程系統(tǒng)。該系統(tǒng)以Visual C++6.0為開(kāi)發(fā)工具進(jìn)行編程,提供了簡(jiǎn)潔友好的人機(jī)操作界面。
1文件的讀取
DXF (drawing exchange file)文件是AutoCAD的一種支持?jǐn)?shù)據(jù)交換、按規(guī)定格式編寫(xiě)而成的ASCII或二進(jìn)制文件格式,
用于在應(yīng)用程序之間共享圖形數(shù)據(jù)。AutoCAD環(huán)境下生成的DXF文件主要有6個(gè)置(SECTION),依次是標(biāo)題(HEADER)段、類( CLASSES)段、表(TABLES)段、塊(BLOCKS)段、(ENTITIES)段和對(duì)象(OBJECTS)段。
數(shù)控沖床在編制程序時(shí)需要的只是圖形的幾何信息,而DXF文件中的ENIITIES段保存了圖形圖像的所有幾何信息,因此只要編寫(xiě)ENTITIES段就可完成DXF文件的準(zhǔn)確輸出,其余段可忽略。在讀取DXF文件時(shí)只需要提取直線的兩個(gè)端點(diǎn).圓弧的圓心坐標(biāo)、半徑、起始角、終止角,圓的圓心坐標(biāo)、半徑,矩形的4個(gè)頂點(diǎn)等。DXF文件數(shù)據(jù)讀取和處理流程圖見(jiàn)圖t。
各個(gè)圖形元素信息采用雙向鏈表來(lái)保存.結(jié)構(gòu)如下:
所有的幾何信息都由Read_dxf()函數(shù)讀取。
2零件尺寸的計(jì)算
一般數(shù)控沖床只需直接得到要加工的孔的位置;但該系統(tǒng)獲得孔的位置前需要對(duì)讀入的圖形作展開(kāi)處理(見(jiàn)圖2)。
零件從板料到最后零件成形要經(jīng)過(guò)兩道工序:首先母捧直板料在數(shù)控沖床上完成切頭、沖孔、切斷,然后把沖床送出的零件送入折彎?rùn)C(jī)完成折彎工序(沖壓完成后的零件示意圖見(jiàn)圖3);所以在計(jì)算沖孔的中心位置前先要計(jì)算折彎板料折彎前的實(shí)際長(zhǎng)度,即板料的展開(kāi)尺寸。該尺寸分兩部分來(lái)計(jì)算:
(1)把零件圖主視圖上各段尺寸相加得到基本尺寸Ll;(2)計(jì)算板料在折彎部分產(chǎn)生伸長(zhǎng)量L2,即長(zhǎng)度補(bǔ)償部分。由于飯科在折彎處仲長(zhǎng),所以在折彎前直板料的實(shí)際長(zhǎng)度工應(yīng)為L(zhǎng)l-L2。
由于CAD繪圖實(shí)體在DXF文件中是接其繪圖的順序存
放的H.而繪圖的順序是不固定的,因此必須對(duì)實(shí)體圖形各個(gè)元素進(jìn)行排序,將直線元素保存在雙向鏈表中,讓各個(gè)元素的首節(jié)點(diǎn)和尾節(jié)點(diǎn)首尾相連組成封閉環(huán).可以得到一個(gè)新的鏈表pl。這個(gè)鏈表中保存的信息就是零件圖主視圖的外輪廓線。然后找出該鏈表中直線長(zhǎng)度等于板料厚度的元素,即主視圖中兩側(cè)短豎線,并以此為分界點(diǎn),提取出一個(gè)新鏈表p2。p2中所包含的元素為主視圖中的5段直線,最后將p2中每條直線的長(zhǎng)度相加即可得尺寸Ll。部分程序如下:
折彎部分伸長(zhǎng)量與板科的厚度r、折彎角A、折彎半徑R等因素有關(guān)。板料厚度r和折彎半徑尺由外部輸入?yún)?shù)得到,折彎角^通過(guò)計(jì)算鏈表p2中各相鄰直線的夾角獲得,并將各種夾角的值放在教組A中,得到每個(gè)折夸處的伸長(zhǎng)量放在數(shù)組B中�?梢愿鶕�(jù)公式分別進(jìn)行計(jì)算:
將板料的每個(gè)折彎處的伸長(zhǎng)量相加,得到折彎后板料總的伸長(zhǎng)量L2.將基本尺寸L1和伸長(zhǎng)置L2相減,就可得到板料折彎前直板料的實(shí)際尺寸。計(jì)算出直板料尺寸后,獲得耍加工孔中心的準(zhǔn)確位置,并按照孔的類型和坐標(biāo)順序進(jìn)行排序保存在鏈表中,加工時(shí)按照此順序進(jìn)行。
3加工程序縮寫(xiě)
通過(guò)讀取DXF文件,可以得到要加工的孔中心相對(duì)于原點(diǎn)的坐標(biāo),并根據(jù)孔的類型和大小選擇模具型號(hào),根據(jù)要加工孔的位置和自動(dòng)選擇的模具號(hào)碼,來(lái)確定送料軸、模具軸和油缸軸的運(yùn)動(dòng)距離。我們建立如下結(jié)構(gòu)來(lái)保存加工代碼:
其中,A.B,C,D定義為bool型變量,值為l時(shí)動(dòng)作,值為0時(shí)不動(dòng)作;U.y.可定義為浮點(diǎn)型變量,用來(lái)表示三軸各自的位移,在各自的坐標(biāo)系中.均采用絕對(duì)位移。最后生成的代碼格式為
AO BO CO DO UO vo w0.字母后邊的數(shù)字由系統(tǒng)自動(dòng)生成。此加工代碼經(jīng)過(guò)譯碼后,將代碼轉(zhuǎn)化為散控沖床的運(yùn)動(dòng)。
部分譯碼程序如下:
4自動(dòng)編程實(shí)例
這里給出一個(gè)加工實(shí)例,先通過(guò)AuLoCAD繪制零件圖,然后生成DXF文件。在操作界面上輸入板料厚度7.,折彎半徑R等參數(shù),經(jīng)過(guò)前面所述的自動(dòng)編程,可以DXF文件提取圖形信息,點(diǎn)擊生成代碼按鈕,即可得到加工代碼:此外,通過(guò)圖形預(yù)覽,還可以在界面上顯示零件圖。最后結(jié)果見(jiàn)圖4。
5結(jié)束語(yǔ)
本系統(tǒng)基于AutoCAD平臺(tái),以Visual c++為開(kāi)發(fā)工具,成功地實(shí)現(xiàn)了三軸數(shù)控沖床的自動(dòng)編程。該系統(tǒng)通過(guò)對(duì)DXF文件數(shù)據(jù)的讀取、排序、計(jì)算等處理生成適于零件加工程序生成的幾何信息,保證了信息輸入的方便、準(zhǔn)確和高效,一定程度上實(shí)現(xiàn)了CAD與數(shù)控編程的信息集成,在實(shí)際應(yīng)用中效果良好。