亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        數(shù)控激光加工路徑鏈表快速搜索優(yōu)化

        2014-02-27 02:47:51王學(xué)華劉莉君馬凡杰王華龍劉文琪李存榮
        關(guān)鍵詞:優(yōu)化

        王學(xué)華,劉莉君,馬凡杰,王華龍,劉文琪,李存榮

        1.武漢工程大學(xué)材料科學(xué)與工程學(xué)院,湖北 武漢 430074;2.武漢桑普瑞奇科技有限公司,湖北 武漢 430073

        0 引 言

        在傳統(tǒng)的激光加工系統(tǒng)中,均采用數(shù)控代碼手工編程,只能處理簡(jiǎn)單軌跡零件的加工過(guò)程,在編程中容易出錯(cuò),效率低.隨著CAD技術(shù)的不斷發(fā)展,國(guó)內(nèi)外研究人員將CAD技術(shù)應(yīng)用于激光加工中.其中圖形交換文件(Drawing Exchange File,以下簡(jiǎn)稱: DXF)作為Autodesk公司開發(fā)的用于AutoCAD與其它軟件之間進(jìn)行CAD數(shù)據(jù)交換的一種文件格式,其可讀性好,占用內(nèi)存小,易于二次開發(fā),被用于各種圖形化數(shù)控加工系統(tǒng)[1-5].胡勝紅[6]等人利用Visual C++成功對(duì)DXF文件進(jìn)行解析,完成對(duì)簡(jiǎn)單幾何面域圖形的快速掃描.

        由于在DXF文件中,圖形元素的記錄順序是以設(shè)計(jì)人員在CAD中隨機(jī)繪制圖形的先后順序?yàn)橹饕罁?jù),且控制點(diǎn)的順序是隨系統(tǒng)默認(rèn),容易導(dǎo)致激光加工過(guò)程中路徑的無(wú)序性,增加了激光加工過(guò)程中的空程路徑[7].因此,快速搜索合適的最短激光加工路徑對(duì)提高加工效率十分必要.筆者采用高級(jí)語(yǔ)言Delphi編程完成DXF文件的解析,并對(duì)圖元信息進(jìn)行存儲(chǔ)優(yōu)化,實(shí)現(xiàn)了DXF數(shù)據(jù)與激光加工路徑之間的數(shù)據(jù)轉(zhuǎn)換,減少激光空程加工時(shí)間,提高加工效率.

        1 DXF圖形文件與加工過(guò)程轉(zhuǎn)換

        1.1 DXF文件解析

        一個(gè)完整的DXF文件由表1所列的各部分組成.DXF文件是由很多的代碼和值組成的數(shù)據(jù)對(duì)構(gòu)造而成,這里的代碼稱為組碼.需指定組碼的值的類型和用途,每個(gè)組碼的值必須為單獨(dú)的一行.該組碼不僅指出了其對(duì)應(yīng)組值的類型,而且與此組值配對(duì).通過(guò)以上配對(duì)的組碼和組值,DXF文件被組織成由記錄構(gòu)成的段,而記錄又是由按順序排列的組碼和數(shù)據(jù)條目所構(gòu)成的[8-9].

        表1 DXF文件的基本構(gòu)成

        1.2 加工數(shù)據(jù)的獲取

        DXF文件中的內(nèi)容都是以組碼/組值的形式出現(xiàn),在讀取DXF文件的時(shí)候,只需要了解模型的幾何信息,因此只用掃描解析DXF文檔的ENTITIES實(shí)體段區(qū)域,它包含了所繪制圖形的所有數(shù)據(jù),其中實(shí)體類型包括直線(LINE)、圓(CIRCLE)、圓弧(ARC)、橢圓(ELLIPSE)、多段線(POLYLINE)、文本(TEXT)等十幾種[10-11].

        DXF文件的解析過(guò)程可以分解成搜索各種圖元并將各種圖元組合起來(lái)的過(guò)程.針對(duì)DXF文件的每一個(gè)段及子類,只需搜索到對(duì)應(yīng)的字符串,然后順序去讀取其后的圖元數(shù)據(jù)信息[12-13],解析流程如圖1所示.

        圖1 DXF文件實(shí)體段解析

        1.3 加工過(guò)程轉(zhuǎn)換

        以直線段(LINE)為例,該圖元的第一行組碼10、20、30 和 11、21、31 分別代表直線段的坐標(biāo)起點(diǎn)(X1,Y1,Z1)和終點(diǎn) (X2、Y2、Z2)標(biāo)志,而其具體的坐標(biāo)數(shù)值則存在其對(duì)應(yīng)的下一行(組值)中.與直線相關(guān)的數(shù)據(jù)信息以及與直線圖元相關(guān)的讀取、寫入、繪制等函數(shù)在Delphi中定義類的過(guò)程如下:

        Type Dxf_Cline= Class

        Public Movetype:Integer; //0:表示移動(dòng),不加工;1:表示加工.

        startX,startY,endX,endY:Integer; //定義直線的起點(diǎn)和終點(diǎn)

        Previous:Dxf_Cline;

        Next:Dxf_Cline;

        ……

        將DXF文件中的圖元按其類型進(jìn)行分類解析,提取的各圖元信息存儲(chǔ)于各類數(shù)據(jù)結(jié)構(gòu)中,將各圖元類作為鏈表結(jié)構(gòu)中的結(jié)點(diǎn)并按DXF文件中圖元出現(xiàn)的先后順序存儲(chǔ)在給定的鏈表結(jié)構(gòu)中,鏈表中的每一結(jié)點(diǎn)元素即為一種類型的圖元,則可以構(gòu)成圖元的數(shù)據(jù)鏈表結(jié)構(gòu).在鏈表中每個(gè)結(jié)點(diǎn)中有兩個(gè)用于鏈接其他結(jié)點(diǎn)的指針,一個(gè)指向前趨結(jié)點(diǎn)(Previous),另一個(gè)指向后繼結(jié)點(diǎn)(Next),構(gòu)成雙向鏈表,如圖2所示.

        圖2 圖元的鏈表結(jié)構(gòu)

        讀取直線段并顯示在界面上的部分程序示例如下:

        Define DXF_line_count:Integer // DXF文件文本的行數(shù)

        i:Integer; // 行數(shù)計(jì)數(shù)

        str:String;// 中間變量,儲(chǔ)存DXF文本的一行內(nèi)容

        if str='AcDbLine' then // 讀取直線圖元信息

        startX:= round(strtofloat(mdxf.Lines[i+2])) ; // 讀取直線段起始坐標(biāo)X

        startY:= height_coordiate-round(strtofloat(mdxf.Lines[i+4])) ;//讀取直線段起始坐標(biāo)Y

        endX:= round(strtofloat(mdxf.Lines[i+8])) ; //讀取終點(diǎn)坐標(biāo)X

        endY:= height_coordiate-round(strtofloat(mdxf.Lines[i+10])) ;//讀取終點(diǎn)坐標(biāo)Y

        Image.Canvas.MoveTo(startX, startY) ;

        Image.Canvas.LineTo(endX,endY) ;//繪制直線

        ……

        2 加工路徑優(yōu)化實(shí)例

        在實(shí)體段ENTITIES中,若交換圖形元素出現(xiàn)的先后順序和改變?cè)搱D元的控制點(diǎn)排序,對(duì)實(shí)體圖形的位置和形狀沒有影響,因此在解析提取DXF文件的有效圖元數(shù)據(jù)信息時(shí),對(duì)隨機(jī)無(wú)序的離散圖元進(jìn)行連接處理之后再應(yīng)用最近距離排序算法,可以有效的提高激光加工過(guò)程的效率.圖3為路徑加工優(yōu)化示意圖,以圖3為例,虛線箭頭表示模擬加工路徑,優(yōu)化前的加工順序是和設(shè)計(jì)人員的繪圖順序一致,從編程零點(diǎn)V0→V1→V2→V3,依次完成后回到加工原點(diǎn)V0.通過(guò)采取最近距離法優(yōu)化之后,讀取第一個(gè)圖形的起點(diǎn),開始進(jìn)行加工,到直線的終點(diǎn)結(jié)束,在進(jìn)行下一個(gè)圖元拾取時(shí),找尋離上一個(gè)終點(diǎn)距離最近的端點(diǎn)為新的起始點(diǎn),完成下一個(gè)圖元的加工,路線則變?yōu)閺腣0→V1→V3→V2→V0,大大縮短加工距離,提高了加工效率.

        圖3 路徑優(yōu)化加工示意圖

        圖4為路徑優(yōu)化前后數(shù)據(jù)點(diǎn)的位置狀態(tài).優(yōu)化前圖形數(shù)據(jù)只是按照初始的CAD存儲(chǔ)順序進(jìn)行,優(yōu)化后,激光加工路徑從某個(gè)圖元起點(diǎn)開始,移動(dòng)至該圖元終點(diǎn)后,尋找離其距離最近的下一個(gè)圖元的起點(diǎn).

        圖4 路徑優(yōu)化前后數(shù)據(jù)點(diǎn)的位置變化

        結(jié)合MPC03運(yùn)動(dòng)控制卡的驅(qū)動(dòng),將優(yōu)化后直線段的數(shù)據(jù)轉(zhuǎn)換為激光數(shù)控加工路徑的關(guān)鍵程序示例如下:

        ……

        hDll:=LoadLibrary('mpc03LS.dll');//獲取動(dòng)態(tài)鏈接庫(kù)句柄,加載板卡驅(qū)動(dòng)函數(shù)庫(kù)

        If hDll<>0 then

        Begin

        @init_board:=GetProcAddress(hDll,'init_board');

        @set_vector_profile:=GetProcAddress(hDll,'set_vector_profile');

        @con_hmove2:=GetProcAddress(hDll,'con_hmove2');

        @fast_hmove2:=GetProcAddress(hDll,

        'fast_hmove2');

        @fast_pmove:=GetProcAddress(hDll,'fast_pmove');

        @con_line2:=GetProcAddress(hDll,'con_line2');

        @fast_line2:=GetProcAddress(hDll,'fast_line2');

        ……

        End

        ……//運(yùn)動(dòng)函數(shù)聲明

        Tinit_board=function():integer; stdcall;//對(duì)控制卡硬件和軟件初始化

        Tcon_line2=function(ch1:integer;pos1:INTEGER;ch2:integer;pos2:INTEGER):integer; stdcall;//兩軸做常速直線運(yùn)動(dòng)

        Tfast_line2=function(ch1:integer;pos1:INTEGER;ch2:integer;pos2:INTEGER):integer; stdcall;//兩軸做快速直線運(yùn)動(dòng)

        Var //變量聲明

        hDll: THandle;

        init_board: Tinit_board;

        con_hmove2:Tcon_hmove2 ;

        con_line2:Tcon_line2;

        fast_line2:Tfast_line2;

        Dline: Dxf_Cline;

        If init_board< >0 then

        Begin

        While Dline < > nil Do // 以下代碼實(shí)現(xiàn)連續(xù)加工

        Begin

        set_laser_mode(Dline.Movetype); //激光開

        set_vector_conspeed(1000); //設(shè)置加工速度

        con_line2(m_card.Y_axis, Dline.endY,m_card.X_axis, Dline.endX); //正常加工

        While not (check_done(0) = 0 and check_done(1) = 0) do

        application.processmassage;

        set_laser_mode(0); //激光關(guān)

        Dline.next;

        End

        End

        ……

        3 運(yùn)行結(jié)果與結(jié)論

        通過(guò)對(duì)AutoCAD中DXF文件的構(gòu)成及數(shù)據(jù)格式的解析,以直線段LINE圖元為例在Delphi開發(fā)平臺(tái)上建立了DXF文件與激光數(shù)控加工過(guò)程的數(shù)據(jù)轉(zhuǎn)換接口,運(yùn)行結(jié)果如圖4所示.通過(guò)遍歷圖元數(shù)據(jù)鏈表結(jié)點(diǎn)及搜索最近鄰距離的方式,重新對(duì)圖元數(shù)據(jù)排序,以MPC03運(yùn)動(dòng)控制卡為實(shí)例,實(shí)現(xiàn)了激光數(shù)控加工過(guò)程路徑的優(yōu)化,減少了空程路徑,提高了激光數(shù)控加工的效率.

        致 謝

        感謝武漢桑普瑞奇科技有限公司和武漢工程大學(xué)提供的開發(fā)和試驗(yàn)平臺(tái)!

        [1] 胡方霞,劉杰,任艷君. 基于AUTOCAD二次開發(fā)的激光標(biāo)記機(jī)軟件設(shè)計(jì)[J]. 激光雜志,2006,27(6):82-83.

        HU Fang-xia, LIU Jie,REN Yan-jun. A design of laser marking system based on second developing AutoCAD[J]. Laser Journal,2006,27(6):82-83. (in Chinese)

        [2] 劉啟生,邵東偉,杜云明,等. 基于DXF文件的數(shù)控加工系統(tǒng)的實(shí)現(xiàn)研究[J]. 佳木斯大學(xué)學(xué)報(bào):自然科學(xué)版,2009,27(4):542-544.

        LIU Qi-sheng, SHAO Dong-wei DU Yun-ming,et al. The realization of research for CNC machining systems based oil DXF file[J]. Journal of Jiamusi University:Natural Science Edition,2009,27(4):542-544. (in Chinese)

        [3] SLUEV V A, SMIRNOV K K. A system for controlling laser writing devices[J]. Optoelectronics Instrumentation and Data Processing,2007,43(5):481-487.

        [4] 趙英偉.計(jì)算機(jī)控制激光二維復(fù)雜圖形掃描加工[D].天津:河北工業(yè)大學(xué),2002:23-27.

        ZHAO Ying-wei.Computer controlling laser two-dimension scanning complex figure progressing[D].Tianjin:Hebei University of Technology,2002:23-27. (in Chinese)

        [5] 王明,孫進(jìn). 基于DXF文件的圖形自動(dòng)編程數(shù)控系統(tǒng)設(shè)計(jì)[J]. 中國(guó)農(nóng)機(jī)化,2011(2):122-124.

        WANG Ming, SUN Jin. Design of graphic automatic programmed numerical control system based on DXF[J].Chinese Agricultural Mechanization, 2011(2): 122-124. (in Chinese)

        [6] 胡勝紅,劉曉東. 基于AutoCAD面域的圖形接口開發(fā)及其應(yīng)用[J]. 工程圖學(xué)學(xué)報(bào),2007(5):1-6.

        HU Sheng-hong,LIU Xiao-dong. Development and implementation of the graphic interface based on region in AutoCAD[J].Journal of Engineering Graphics,2007(5):1-6. (in Chinese)

        [7] 甘明,陳曉亮,張科威. 基于DXF的數(shù)控切割加工優(yōu)化算法的研究與實(shí)現(xiàn)[J].煤礦機(jī)械,2010,31(11):130-132.

        GAN Ming, CHEN Xiao-liang, ZHANG Ke-wei. Research and realization of optimization algorithm for NC cutting machine based on DXF[J]. Coal Mine Machinery,2010,31(11):130-132. (in Chinese)

        [8] 李芳珍,許倫輝. DXF文件格式及其外部接口的研究[J]. 兵工自動(dòng)化,2008,27 (7):83-85.

        LI Fang-zhen, XU Lun-hui. Study on file format and exterior interface of DXF[J]. Ordnance Industry Automation,2008,27(7):83-85. (in Chinese)

        [9] 張永超,岳建平,王海青.基于VB6.0和OpenGL的DXF文件讀取與交互控制[J].計(jì)算機(jī)時(shí)代,2009(9):39-41.

        ZHANG Yong-chao,YUE Jian-ping,WANG Hai-qing. DXF document reading and interaction control based on VB6.0 and OpenGL[J]. Computer Era. 2009(9):39-41. (in Chinese)

        [10] 但永平,張蕾,張國(guó)濤,等. 基于VC++的DXF數(shù)據(jù)文件接口程序設(shè)計(jì)[J]. 電子設(shè)計(jì)工程,2012,20(23):70-74.

        DAN Yong-ping,ZHANG Lei,ZHANG Guo-tao,et al. Design of DXF data file interface program based on the VC++[J]. Electronic Design Engineering,2012,20(23):70-74. (in Chinese)

        [11] 沈志榮,謝明紅. 基于DXF的數(shù)控切割優(yōu)化排序算法的研究與實(shí)現(xiàn)[J]. 計(jì)算機(jī)工程與應(yīng)用,2013,49(15):32-35,96.

        SHEN Zhi-rong, XIE Ming-hong. Research and implementation of optimized sorting algorithm for NC cutting machine based on DXF[J].Computer Engineering and Applications, 2013, 49(15):32-35,96. (in Chinese)

        [12] 張國(guó)慶. DXF文件在激光打標(biāo)系統(tǒng)的應(yīng)用研究[J].光電技術(shù)應(yīng)用,2010,25(5):8-11.

        ZHANG Guo-qing. Application research of DXF file in laser marking system[J]. Electro-optic Technology Application,2010,25(5):8-11. (in Chinese)

        [13] 李晨. 用VC實(shí)現(xiàn)基于DXF文件的AutoCAD數(shù)據(jù)共享接口[J]. 工業(yè)控制計(jì)算機(jī),2010,23(4):76-77.

        LI Chen. Implementation of Data interface to DXF format in AutoCAD using visual C++[J].Industrial Control Computer,2010,23(4):76-77. (in Chinese)

        猜你喜歡
        優(yōu)化
        超限高層建筑結(jié)構(gòu)設(shè)計(jì)與優(yōu)化思考
        PEMFC流道的多目標(biāo)優(yōu)化
        能源工程(2022年1期)2022-03-29 01:06:28
        民用建筑防煙排煙設(shè)計(jì)優(yōu)化探討
        關(guān)于優(yōu)化消防安全告知承諾的一些思考
        一道優(yōu)化題的幾何解法
        由“形”啟“數(shù)”優(yōu)化運(yùn)算——以2021年解析幾何高考題為例
        圍繞“地、業(yè)、人”優(yōu)化產(chǎn)業(yè)扶貧
        事業(yè)單位中固定資產(chǎn)會(huì)計(jì)處理的優(yōu)化
        4K HDR性能大幅度優(yōu)化 JVC DLA-X8 18 BC
        幾種常見的負(fù)載均衡算法的優(yōu)化
        電子制作(2017年20期)2017-04-26 06:57:45
        亚洲成av人片一区二区| 精品久久人妻av中文字幕| 国产一区二区三区视频网| 极品少妇被猛的白浆直喷白浆| 中文字幕喷水一区二区| 久久精品国产精品亚洲艾| 国产精品亚洲一区二区三区在线看| 国产亚洲精品成人aa片新蒲金| 人妻少妇av无码一区二区| 国产在线天堂av| 日日麻批免费高清视频| 成年女人vr免费视频| 亚洲另类自拍丝袜第五页| 一区二区无码精油按摩| 亚洲精品中文字幕导航| 波多野结衣的av一区二区三区| 伊人色综合视频一区二区三区| 国产福利一区二区三区视频在线看| 国产精品成人av大片| 北条麻妃国产九九九精品视频| 伊人久久综合影院首页 | 国产青春草在线观看视频| 水蜜桃在线观看一区二区| 国产人妻久久精品二区三区特黄| 91华人在线| 99久久婷婷国产精品综合网站| 国产成人精品亚洲日本在线观看| 最近中文字幕视频高清| 无码啪啪熟妇人妻区| 性生大片免费观看性少妇| 中文字幕久久久人妻无码| 在线播放国产女同闺蜜| 日韩日本国产一区二区| 久久人人爽av亚洲精品| 香蕉久久人人97超碰caoproen | 蜜桃视频网址在线观看| 亚洲va韩国va欧美va| 国产98在线 | 免费| 亚洲区福利视频免费看| 国产精品久久久天天影视| 国内a∨免费播放|