999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于 ObjectARX的復雜圖形拆分及其實現

2016-01-16 23:03:46陳旭東劉伯穎
智能制造 2015年12期
關鍵詞:指令

陳旭東++劉伯穎

在數控機床的操作過程中,編程工作是枯燥而乏味的,指令測試往往伴隨著工件的浪費。以 Visual C++為開發工具,使用 ObjectARX開發接口,可直接讀出 AutoCAD數據庫中的設計圖形數據。由設計圖形數據出發,實現數控機床指令的自動編碼與仿真,將大大提高工作的效率和準確性。本文提出的算法用可以將復雜的圖形數據拆分為簡單圖形序列,從而提高自動編碼系統的準確性,使系統自動編制出的數控機床機器指令達到最優。

一、引言

沖裁成型技術是工業中應用廣泛的板材加工技術,一般是使用數控機床進行加工,數控機床使用特定的語句指令進行編程。這種編程一般使用數控系統高級語言FAGOR,通常稱為G代碼,如:G00 G90 X400 Y300,表示快速定位,G90表示絕對坐標。數控機床工作的過程就是執行 G代碼的過程。使用 G代碼不僅要控制加工位置,還要控制模具的切換,代碼量較大。例如沖壓 100個間隔相等的孔,通常需要編制至少200條指令。編寫G代碼的過程往往是繁瑣枯燥的,正確性難以保證,進行指令的測試往往伴隨著原材料的浪費。使用計算機輔助設計系統可以實現數控機床所需 G代碼的自動化編程。

AutoCAD是美國 Autodesk公司推出的計算機輔助設計軟件,廣泛用于二維繪圖、設計文檔和基本的三維設計。其開放的體系結構,允許用戶進行二次開發,根據自己的需要擴充新的功能。ObjectARX(Object AutoCAD Runtime eXtension)是 AutoCAD系統配套的面向對象的 C++應用程序開發接口,使用 ObjectARX可以在運行狀態下直接訪問 AutoCAD的內部數據庫,圖形系統及幾何造型核心。使用 VC++開發基于 ObjectARX的應用,還可充分利用Windows系統資源,包括MFC基本類庫和Visual C++開發環境。可以在運行時從 AutoCAD中讀取設計圖形數據。通過分析這些圖形數據,可以實現沖床指令的自動編程與仿真,從而可以大大提高工作效率,降低甚至杜絕板材的測試浪費,提高經濟效益。

二、問題的提出

數控機床對于簡單的圖形,如三角形、矩形、圓形及長圓孔等(以下稱為基本圖形),都有成熟的加工指令或指令序列。而工業中需要加工的形狀要復雜得多,包括凸多邊形,凹多邊形,甚至可能包括曲線邊在內(以下稱之為復雜圖形),如圖 1所示為典型的復雜圖形示意圖。這些圖形在機床上無法簡單的加工出來,需要編寫機床控制程序。如果能將這些圖形做一定的拆分,將其分解為多個矩形,就可以使用矩形的加工指令組成復雜多邊形的加工指令。

通過 ObjectARX接口,可以讀出 AutoCAD中的設計圖形數據,并進行分析處理。本文提出的拆分算法的目的就是將各種各樣的復雜形狀拆分為較簡單的基本圖形,即把復雜圖形看成是由基本圖形拼成的,為復雜圖形找到一組合理的基本圖形序列,從而可以使用基本圖形的加工指令進行復雜圖形的加工。

三、復雜圖形拆分算法描述

圖形拆分算法的程序流程如圖2所示。簡要敘述如下。

(1)讀取 AutoCAD中的設計圖形數據,數據的順序和設計圖繪制過程有關,在數據排序鏈接模塊中,需要對讀出的數據進行預處理,按順序依次排列組成封閉圖形。因為工件上一般需要加工多處孔,所以此處得到的是一個封閉圖形的序列。

(2)對序列中的圖形依次進行處理,每次取出一個封閉圖形。檢測圖形數據的轉向,確保封閉圖形數據按逆時針轉向排列。否則對圖形數據進行翻轉處理。

(3)在圖形數據逆時針轉向的基礎上,可以確定各頂點的內角。對凹多邊形來講,內角值有可能會大于 180°,確定圖形內角對圖形拆分模塊有重要意義。

(4)圖形拆分模塊。這一部分將綜合使用圖形數據的各種信息進行圖形的拆分,拆分的結果是形成一個基本圖形的序列。

(5)最后輸出拆分后的基本幾何圖形序列。

四、算法的實現

下面以L形圖形的拆分為例,介紹復雜圖形拆分的執行過程。本文的介紹是針對由直線段組成的多邊形,在實際的應用中,可以根據具體的需要對算法進行擴展。

1.圖形邊框的數據定義

通過 ObjectARX接口,從 AutoCAD中讀出數據后,將邊框用以下數據結構來表示: b(x1,y1,x2,y2,angle)

式中, x1,y1表示邊 b的起點坐標; x2,y2表示邊 b的終點坐標;angle表示其與下一條邊的內夾角。

設 L形的坐標數據如圖 3所示。

以圖 1中L形的分析為例,假設坐標如圖 3所示,邊框依次定義為 b1、b2、b3、b4、b5和 b6,數據自 AutoCAD中讀出后,按點坐標檢測數據是否組成封閉圖形。經過處理后,邊框數據表示如下:

2.封閉圖形轉向檢測

由于在進行圖形數據封閉連接的運算中,無法確定圖形數據的順序是按逆時針排序,還是順時針排序。進行數據轉向檢測可以使用向量法,選取任一頂點,計算其指向其他各頂點的向量,如圖 4所示。

計算各向量的向量角——即各向量與x軸的夾角。角度取值范圍為 0~360°。向量角計算如下: v1:(370-120)+i(100-100)=250 向量角:arctan(0/250)=0° v2:(370-120)+i(300-100)=250+i200 向量角:arctan(200/250)]=38.70° v3:(270-120)+i(300-100)=150+i200 向量角:arctan(200/150)=53.1° v4:(270-120)+i(200-100)=150+i100 向量角:arctan(100/150)=33.69° v5:(120-120)+i(200-100)=i100 向量角:90°

由此可見,向量角從 0°增大到 90°,則可以確定封閉圖形的旋轉方向為逆時針方向,符合數據處理的要求。如果向量角檢測的結果為減小,則說明數據的順序為順時針方向,需要對圖形邊框數據進行反向處理。

3.計算頂點對應的內角值

在封閉圖形數據轉向確定的情況下,無論是凸多邊形,還是凹多邊形,都很容易確定圖形每個頂點所對應的內角大小。如圖5所示。

4.圖形拆分處理

將復雜圖形拆分為基本圖形是本算法的核心內容,前面的處理都是為這一步做準備。首先應該確定拆分的最終結果有幾種基本圖形。然后才能確定圖形分割的具體過程如何。在此假設圖形分割的最終目的是得到一個三角形和矩形的序列。該過程是一個循環,步驟簡述如下。

(1)首先檢測剩余邊數,如果等于0,表示已沒有剩余邊框數據需要處理,轉(8);如果剩余邊數小于 3且不等于0,則輸出錯誤信息。

(2)如果等于三,則得到一個三角形。將三角形加入到基本圖形列表,轉(8)。

(3)查找內角值最大的邊,取其下一條邊作為起始邊。檢測其與末端頂點的內角,如果大于 180°,則繼續選取下一條邊。

(4)檢測當前邊與下一條邊的夾角,如果為 90°,則繼續讀取下一條邊。

(5)查看已讀取到的邊數,如果已讀取到4條邊,則轉6,否則轉(4)繼續讀取。

(6)檢測讀取到的四條邊是否組成封閉矩形。如果是則將矩形合并到數據序列,轉(1)開始下一次循環,否則轉(7)進行圖形運算。

(7)已讀取的四條邊,因為自第一條邊起,到第四條邊都是 90度,而圖形現在沒有封閉。必然是第一條邊的起點和第四邊的終點沒有重合。可以將第一條邊和第四條邊轉化為直線方程,求其交點。求出的矩形輸出到基本圖形列表。然后轉(1)繼續執行。

(8)得到基本圖形序列后,按一定的規則進行優化,對于不符合最終要求的基本圖形進行優化運算。

(9)最后輸出優化后的所有矩形。

仍以 L形為例。首先查找到內夾角最大的點為p5,對應內角值為 270°;然后逆時針讀取到b5、b6、b1和 b2共 4條邊;進行圖形封閉檢測,可發現起點和終點不重合。以第一條邊 b5和第四條邊 b2為直線接方程,可求得交點p7,其坐標為(250,100)。

以點 p7為分割點,將原有線段 p2-p3分割為兩個線段,將線段 p2-p7插入到輸出矩形中,p7-p3插入到原始數據;線段p5-p7插入到原始數據組成新的封閉圖形;插入p7-p5到輸出矩形數據,由于 p7-p5和 p5-p6直線方程完全相同,可以合并為線段 p7-p6。繼續循環,可得 p1-p7-p3-p4為一個矩形,輸出到基本圖形列表。 然后可按照一定的規則進行優化,使最終的分割結果近似最優,程序成功退出。至此一個圖形拆分完成,如圖 6所示。

同理,對圖 1中的(b)的工字型執行該算法,可得拆分結果如圖 7所示。對圖1中的(c)執行該算法,可得拆分結果如圖8所示。對于該任意形的拆分,由于拆分后所得矩形 4的寬度太小,不符合加工的最小寬度要求。可以將其與并列的矩形 2進行優化運算,得矩形 5和矩形6,如圖8(b)所示。

五、結語

使用 VC++程序開發語言,通過 ObjectARX接口對AutoCAD系統進行二次開發,是擴展 AutoCAD系統功能的重要手段。本文所提供的算法是在進行轉塔沖床輔助設計制造系統的基礎上總結出來的圖形分析處理方法。在本文的敘述中,針對的是由線段組成的多邊形,一般可拆分為矩形和三角形。如果出現更復雜的圖形情況,如包含任意內角值的頂點,有圓弧或任意曲線的邊,則需要對該算法進行擴展。可首先對特殊邊進行處理,再對其兩側的直線段延長,求其交點,便可得到曲線圖形和直線段組成的復雜多邊形。本算法的目的不是提供萬能的算法,而是提供一種解決問題的思路,在實際應用中,還需根據實際情況做相應的處理。IM

猜你喜歡
指令
聽我指令:大催眠術
ARINC661顯控指令快速驗證方法
測控技術(2018年5期)2018-12-09 09:04:26
LED照明產品歐盟ErP指令要求解讀
電子測試(2018年18期)2018-11-14 02:30:34
殺毒軟件中指令虛擬機的脆弱性分析
電信科學(2016年10期)2016-11-23 05:11:56
巧用G10指令實現橢圓輪廓零件倒圓角
時代農機(2015年3期)2015-11-14 01:14:29
中斷與跳轉操作對指令串的影響
科技傳播(2015年20期)2015-03-25 08:20:30
基于匯編指令分布的惡意代碼檢測算法研究
一種基于滑窗的余度指令判別算法
歐盟修訂電氣及電子設備等產品安全規定
家電科技(2014年5期)2014-04-16 03:11:28
MAC指令推動制冷劑行業發展
汽車零部件(2014年2期)2014-03-11 17:46:27
主站蜘蛛池模板: 国产精品自在拍首页视频8| 国产在线观看人成激情视频| 自慰网址在线观看| 欧美中文字幕在线视频| 亚洲视频免| 久久一级电影| 四虎精品国产AV二区| 日韩精品久久久久久久电影蜜臀| 亚洲精品久综合蜜| 91精品国产一区自在线拍| 欧美在线网| 欧美色图第一页| 国精品91人妻无码一区二区三区| 久久99热66这里只有精品一| 2021国产精品自拍| 日本道综合一本久久久88| 国产精品一老牛影视频| 国内99精品激情视频精品| 婷婷色在线视频| 久久久成年黄色视频| 伊在人亞洲香蕉精品區| 欧美国产综合色视频| 无码AV日韩一二三区| 日韩毛片在线视频| 欧美第九页| 在线精品欧美日韩| 国产91视频免费观看| 少妇精品久久久一区二区三区| 在线视频亚洲欧美| 亚洲视频色图| 久久亚洲国产最新网站| 超碰精品无码一区二区| 无码福利视频| 九九视频在线免费观看| 亚洲热线99精品视频| 亚洲AV无码久久精品色欲| 亚洲天堂视频网站| 欧美成人午夜在线全部免费| 精品欧美一区二区三区久久久| 国产精品短篇二区| 在线毛片免费| 午夜不卡视频| 极品性荡少妇一区二区色欲| 日本少妇又色又爽又高潮| 午夜福利无码一区二区| 亚洲精品无码日韩国产不卡| 免费高清毛片| 亚洲欧美在线看片AI| 免费高清毛片| 少妇精品在线| AV无码无在线观看免费| 久久人妻xunleige无码| 黄色不卡视频| 国产精品亚洲精品爽爽| 国产高清毛片| 91在线精品麻豆欧美在线| 日韩免费毛片视频| 国产99在线| 亚洲天堂日韩av电影| 国产无人区一区二区三区| 91亚瑟视频| 国禁国产you女视频网站| 呦女精品网站| 男人的天堂久久精品激情| 国产成人无码AV在线播放动漫| a级毛片免费在线观看| 国产丝袜无码精品| 日本人妻一区二区三区不卡影院| 国产亚洲欧美日韩在线一区| 亚洲午夜久久久精品电影院| 一本大道无码高清| 欧美视频在线第一页| 国产在线视频二区| 日本a∨在线观看| 精品国产91爱| 青青热久麻豆精品视频在线观看| 日本在线亚洲| 国产福利微拍精品一区二区| 国产永久免费视频m3u8| 亚洲视频欧美不卡| 国模粉嫩小泬视频在线观看| 第九色区aⅴ天堂久久香|