李成華,周盼盼,張文光,蘇旭斌,馬思亮
(航空工業(yè)成都飛機(jī)工業(yè)(集團(tuán))有限責(zé)任公司,成都 610092)
?
基于AutoCAD二次開發(fā)的圖元識別及數(shù)控程序生成技術(shù)的研究
李成華,周盼盼,張文光,蘇旭斌,馬思亮
(航空工業(yè)成都飛機(jī)工業(yè)(集團(tuán))有限責(zé)任公司,成都 610092)
在開發(fā)AutoCAD自動編程系統(tǒng)中,解決圖元識別問題以及程序輸出問題是實(shí)現(xiàn)自動編程的兩大核心問題。在圖元識別方面文章提出了基于優(yōu)化多線段的圖元識別技術(shù)。 依靠線型的凸度實(shí)現(xiàn)了對順逆圓弧以及直線的判斷;同時,利用優(yōu)化多線段的線型數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)圖元的排序,避免人為對圖元進(jìn)行排序的操作,簡化了編程,提高了圖元識別的效率。在程序輸出方面,采取基于模板的程序輸出方式,為每一臺機(jī)床定制程序模板實(shí)現(xiàn)程序的規(guī)范輸出,柔性解決了現(xiàn)場機(jī)床多樣性帶來的工作繁復(fù)問題。利用上述技術(shù)開發(fā)的自動編程系統(tǒng),不僅識圖效率高,而且程序輸出樣式靈活,提高了編程系統(tǒng)的適應(yīng)能力。
圖元識別;凸度;自動編程;優(yōu)化多線段
隨著社會的高速發(fā)展以及人們時間觀念的不斷加強(qiáng),傳統(tǒng)手工編程逐漸被自動編程系統(tǒng)所取代。各類自動編程系統(tǒng)的研究成為熱點(diǎn),其中基于AutoCAD的自動編程為一個重要的分支。在航空制造業(yè)中,零件不僅結(jié)構(gòu)復(fù)雜、種類繁多而且屬于單件小批量生產(chǎn)。通常機(jī)加車間具有數(shù)控銑,數(shù)控車,線切割等多種加工設(shè)備,而且由于不同廠家的機(jī)床各有優(yōu)勢,現(xiàn)場設(shè)備基本沒有重復(fù),數(shù)控系統(tǒng)種類多,造成數(shù)控程序樣式多。因此在開發(fā)應(yīng)用于航空制造業(yè)的自動編程系統(tǒng)的過程中,首先必須解決圖元識別的問題,其次還得具備快速輸出適應(yīng)各類機(jī)床所需的數(shù)控程序的能力。
目前,基于圖形的計(jì)算機(jī)輔助編程技術(shù)快速發(fā)展,提高了編程效率和程序準(zhǔn)確度[1],文獻(xiàn)[2]通過讀取DXF文件自動建立圖元信息數(shù)據(jù)庫,按照特定工藝自動生成加工代碼,對零件進(jìn)行加工。文獻(xiàn)[3]針對停車設(shè)備中H型鋼加工要求,通過讀取DXF文件獲取圖元信息,為H型鋼加工專用組合機(jī)床設(shè)計(jì)一種自動編程算法,完成型鋼加工。以上自動編程系統(tǒng)對于零件圖元信息的獲取及輪廓識別技術(shù)復(fù)雜,效率低;程序輸出格式在系統(tǒng)后臺定義,無法靈活改變程序的輸出樣式。
本文針對輔助編程技術(shù)中的關(guān)鍵環(huán)節(jié)進(jìn)行研究,在輪廓識別和程序輸出環(huán)節(jié)提出了新的處理方式。在輪廓識別階段,通過將不同幾何線型的圖元統(tǒng)一轉(zhuǎn)換為優(yōu)化多段線(LightweightPolyline)線型提高了輪廓識別的效率;在程序輸出階段,采取了基于程序模板生成數(shù)控程序的方式,程序輸出時通過選擇不同的模板能夠快速生成適用于不同機(jī)床的數(shù)控加工程序,使編程系統(tǒng)適應(yīng)性更強(qiáng)。
1.1 圓弧順逆的判斷
由AutoCAD設(shè)計(jì)的圖紙一般由線段和圓弧構(gòu)成[4]。線段的圖元信息中包含兩端點(diǎn)坐標(biāo),可以為生成數(shù)控程序所用;圓弧圖元信息中包含圓心,半徑,起始角和結(jié)束角,沒有圓弧的方向,不能直接利用圖元信息生成數(shù)控程序,程序必須將圓弧的圖元信息轉(zhuǎn)化為等價的起點(diǎn),終點(diǎn),半徑并判斷順逆性,才可生成數(shù)控程序。因此,圖元識別技術(shù)中的第一個關(guān)鍵點(diǎn)即圓弧方向的判斷。文獻(xiàn)[3,5]中利用向量的叉乘,結(jié)合右手定則進(jìn)行圓弧順逆的判斷。
1.2 圖元的排序
零件的圖形中包括多條線段和圓弧的組合,針對單個圖元的幾何信息的提取不足以生成數(shù)控程序,要完成零件數(shù)控程序的生成,必須對各個圖元按加工方向進(jìn)行排序,依次提取各圖元幾何信息用以生成數(shù)控程序。
對于圖元的排序,通常是采用順次搜索法,方法的核心思想是通過人工選擇起點(diǎn),程序自動計(jì)算第一個圖元的終點(diǎn),然后依據(jù)第一圖元的終點(diǎn),尋找與其端點(diǎn)重合的另一圖元,以此類推,直至尋找不到符合條件的圖元為止。圖元搜索示意圖如圖1所示,搜索算法流程圖如圖2所示。
圖1 圖元搜索示意圖
圖2 圖元搜索流程圖
通過對上述算法的分析可知,依靠程序不停的對所有圖元進(jìn)行遍歷,判斷,排序,不但規(guī)則定義復(fù)雜,而且效率也不高。
2.1 優(yōu)化多線段(LightweightPolyline)線型介紹
優(yōu)化多段線是由直線和圓弧段組成的可調(diào)節(jié)寬度的二維線,它將直線和圓弧組合為一個有機(jī)整體。優(yōu)化多線段不僅將線段中各個節(jié)點(diǎn)的點(diǎn)位坐標(biāo)以二維數(shù)組的方式順次存儲,便于訪問;而且可以通過每個節(jié)點(diǎn)的凸度值來判斷各線段線型是圓弧還是直線。
凸度是多段線頂點(diǎn)列表中選定頂點(diǎn)和下一頂點(diǎn)之間的圓弧所包含角度的1/4的正切值。負(fù)的凸度值表示圓弧從選定頂點(diǎn)到下一頂點(diǎn)為順時針方向,正的凸度值表示圓弧從選定頂點(diǎn)到下一頂點(diǎn)為逆時針方向,凸度為0 表示直線段,凸度為1表示半圓。由凸度定義可知當(dāng)圖形為半圓時候無法判斷順逆,因此當(dāng)圖元中存在半圓時候,將半圓拆分為兩段圓弧處理。凸度與線型的關(guān)系如圖3所示。
圖3 凸度與線型的關(guān)系
2.2 數(shù)據(jù)的獲取與組織
優(yōu)化多線段的各節(jié)點(diǎn)的坐標(biāo)點(diǎn)位存儲在Coordinate(Index)屬性中,Index是在頂點(diǎn)數(shù)組中你所要設(shè)置或查詢的頂點(diǎn)的索引號,整數(shù)類型。頂點(diǎn)數(shù)組的基數(shù)為 0。Coordinate為二維數(shù)組,數(shù)組邏輯結(jié)構(gòu)形式如圖4所示。
圖4 Coordinate數(shù)組邏輯結(jié)構(gòu)形式
節(jié)點(diǎn)的凸度值可以通過優(yōu)化多線段的Object.GetBulge(Index)方法提取,Index含義與Coordinate(Index)中的相同。為了方便數(shù)據(jù)管理與排序,將優(yōu)化多線段的節(jié)點(diǎn)坐標(biāo)和凸度值存儲在n行3列的二維數(shù)組FullInfo(Index)中,數(shù)組結(jié)構(gòu)僅比Coordinate數(shù)組結(jié)構(gòu)多一個凸度值的列。
2.3 數(shù)控圖元的完善及加工方向的選擇
以數(shù)控車零件加工為例子來講解編程圖形的制作,數(shù)控車編程圖形如圖5所示,在編制粗車程序時候需要明確零件毛坯尺寸及輪廓信息,零件輪廓和毛坯邊界之間的區(qū)域?yàn)檐囅饔嗔咳コ齾^(qū)域(圖中斜線填充區(qū)域),除了明確零件加工必須的信息外,需要添加P1-P2進(jìn)刀線。
當(dāng)圖形制作完成之后需要將零散的圖形線轉(zhuǎn)換為優(yōu)化多線段線型,轉(zhuǎn)換的具體步驟為:在命令框中依“PE”調(diào)出合成優(yōu)化多線段命令,然后框選圖形,選擇類型為“合并”,輸入合并距離值“0”,然后回車。
轉(zhuǎn)換為優(yōu)化多線段線型后,程序可以依次提取節(jié)點(diǎn)的相關(guān)信息,但是此時依據(jù)FullInfo數(shù)組從行坐標(biāo)0到n-1依次提取各點(diǎn)位信息的方向可能與加工方向相同(即圖5所示),也可能與加工方向相反。點(diǎn)位的順序與在合成優(yōu)化多線段線型時線條選擇的先后順序有關(guān)[6]。因此在程序輸出前需要彈出對話框讓用戶選擇加工位置的起點(diǎn),起點(diǎn)的選擇支持模糊輸入(程序后臺會將與選擇加工起點(diǎn)距離較近的優(yōu)化多線段端點(diǎn)作為程序輸出的起點(diǎn)),起點(diǎn)的選擇決定FullInfo數(shù)組按0到n-1輸出還是n-1到0輸出。
圖5 數(shù)控車編程圖形
基于優(yōu)化多線段的圖元識別,充分利用了AutoCAD關(guān)于該線型的方法和屬性,避免了通過人為定義規(guī)則判別圓弧順逆和對節(jié)點(diǎn)進(jìn)行排序,簡化了編程,提高了程序生成的效率和準(zhǔn)確率,此種圖元識別的方式具有明顯的優(yōu)勢。
為了使軟件便于使用,采用帶示意圖的窗體設(shè)計(jì),用戶只需要按照給出的示意圖作圖,設(shè)置好加工的轉(zhuǎn)速、進(jìn)給、加工余量等參數(shù)即可生成數(shù)控程序。程序設(shè)置窗體樣式如圖6所示。
圖6 程序設(shè)置窗體樣式
4.1 程序代碼結(jié)構(gòu)分析
數(shù)控程序的組成通常包含三部分:程序頭,刀具軌跡,程序尾。程序頭主要包含G指令,轉(zhuǎn)速,進(jìn)給等信息;軌跡部分為G01,G02,G03組成的刀具運(yùn)動路徑;程序尾包含主軸停止,機(jī)床回零等固定操作。程序結(jié)構(gòu)圖如圖7所示。
圖7 數(shù)控程序結(jié)構(gòu)圖
4.2 基于模板的程序輸出方式
為了使編程系統(tǒng)輸出的數(shù)控程序具有更強(qiáng)的適應(yīng)性,采取基于模板的程序輸出方式,預(yù)先在系統(tǒng)中定制多種加工循環(huán)的代碼模板,模板中存在常量和變量兩種數(shù)據(jù),常量包括程序頭中和程序尾中的固定G96,M03,M30等代碼,變量包括:轉(zhuǎn)速,進(jìn)給,刀具,刀具軌跡點(diǎn)位等。程序生成時候通過在系統(tǒng)里設(shè)置的值替換模板中的變量,即可生成相應(yīng)的程序,例如:在編程系統(tǒng)中設(shè)置零件轉(zhuǎn)速S=80,那么在程序生成時,將相應(yīng)模板中的轉(zhuǎn)速變量“S”替換為“S80”,即生成了我們想要的代碼。刀具軌跡部分的插補(bǔ)指令,由系統(tǒng)識別輪廓圖元后直接生成。如果要更改程序的樣式或添加刪改常用指令,只需更改模板中的常量即可,避免了修改編程系統(tǒng)的后臺源碼,對用戶來說使用更方便。
本文通過對基于AutoCAD的自動編程系統(tǒng)的研究,提出了基于優(yōu)化多線段的圖元識別技術(shù)和基于模板的程序輸出方式的兩種新方法。利用上述新方法開發(fā)的自動編程系統(tǒng)充分利用多線段的線型結(jié)構(gòu),避免了人為對圖元進(jìn)行識別的復(fù)雜數(shù)學(xué)計(jì)算;通過對模板的更改達(dá)到程序樣式的更改,解決了程序輸出樣式更改困難的問題;最終使得編程系統(tǒng)不但圖元識別效率高,而且程序輸出樣式靈活,圓滿的解決了航空制造業(yè)對自動編程系統(tǒng)的特殊需求。
[1] 肖蘇華.圖形交互式數(shù)控線切割自動編程系統(tǒng)的研究與開發(fā)[J].機(jī)電工程技術(shù),2011(1):24-26.
[2] 張友兵,史旅華,馮霞.汽車縱梁數(shù)控沖床系統(tǒng)的數(shù)據(jù)庫設(shè)計(jì)與開發(fā)[J].機(jī)電工程,2004(4):1-4.
[3] 馬少華,張承瑞,胡天亮,等.基于AutoCAD的停車設(shè)備組合機(jī)床自動數(shù)控編程算法[J].組合機(jī)床與自動化加工技術(shù),2013(2):117-120.
[4] Nafis Ahmad,A F M Anwarul Haque.Manufacturing feature recognition of parts using DXF fiels[J].4# international Conference on Mechanical Engineering, 2001,26-28:111-115.
[5] 張歡,余麗. 基于AutoCAD 的數(shù)控自動編程系統(tǒng)[J].機(jī)械研究與應(yīng)用,2009(6):76-81.
[6] 張帆,鄭立楷,盧擇臨,等. AutoCAD VBA 二次開發(fā)教程[M].北京: 清華大學(xué)出版社,2006.
(編輯 李秀敏)
Research on Graphic Element Recognition and Create Numerical Control Program Based on AutoCAD Re-Developing Technology
LI Cheng-hua,ZHOU Pan-pan,ZHANG Wen-guang, SU Xu-bin,MA Si-liang
(AVIC Chengdu Aircraft Industrial (Group)Co.,Ltd.,Chengdu 610092,China)
In the process of developing AutoCAD automatically programming system, solving the problem of graphics primitive recognition and program output is two core issues in realizing automatically programming. In the aspects of graphics primitive recognition, a graphics primitive recognition technology which is based on the optimization of multiple line segment is proposed in this paper. Rely on linear convexity realized the judgment of good or poor arc and straight line; meanwhile, using optimizing the linear data structure of multiple line segment to achieve graphics primitives’ ranking, avoid manual operation, simplified the programming, improved the efficiency of the graphics primitive recognition. In the aspects of program output, adopting the program output mode which is based on template, customizing programming template for each machine tools to realize the standard output of program, flexibly solved the problem of the complicated work which is brought by machine tools’ diversity. A automatically programming system proposed by this article , is not only high efficiency in graphics primitive recognition, and standardly outputting NC program also can quickly adapt to different machine tools, from the perspective of programming, realize the manufacture process flexibility.
graphics primitive recognition; bulge; automatic programming; optimize multiple line segment
1001-2265(2017)07-0116-03
10.13462/j.cnki.mmtamt.2017.07.027
2016-09-10;
2016-10-26
李成華(1989—),男,重慶北碚人,航空工業(yè)成飛公司工程師,電子科技大學(xué)碩士研究生,研究方向?yàn)闄C(jī)械制造,企業(yè)信息化管理,(E-mail)269762930@qq.com。
TH166;TG659
A