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

激光切割編程連通性檢查問題分析

2017-11-16 21:54:40張向良
科技創(chuàng)新與應(yīng)用 2017年33期
關(guān)鍵詞:二次開發(fā)

張向良

摘 要:激光切割程序需要將二維圖形進行一系列處理后導(dǎo)入到專用的軟件中進行編制,圖形中的外緣、終孔、視口等部位的輪廓必須是封閉的,才能被激光程序識別。然而,大多數(shù)尺寸大、曲度大、形狀復(fù)雜的零件,其二維圖通常都含有許多肉眼難以發(fā)現(xiàn)的不連通位置。這些位置肉眼難以發(fā)現(xiàn),而此前業(yè)內(nèi)使用的一種圖形處理程序SYLBDxfProcess實用性較差,性能與實際需求相差甚遠(yuǎn)。文章將探討在AutoCAD工作環(huán)境下,激光切割圖形連通性的檢查方法,以期為該工作提供高效的解決方案。

關(guān)鍵詞:激光切割;圖形處理;連通性;封閉性;ObjectARX;二次開發(fā)

中圖分類號:TG485 文獻標(biāo)志碼:A 文章編號:2095-2945(2017)33-0079-02

引言

進行激光切割,需要將二維圖形導(dǎo)入到專用軟件中生成切割程序。對于零件輪廓、通孔、視口等區(qū)域需要保證其圖形在激光編程程序中是連通(輪廓封閉)的,否則切割機和相關(guān)軟件無法識別。然而,大多數(shù)壁板、框等尺寸大、曲度大、形狀復(fù)雜的零件,其二維圖形中的傾斜邊、圓角、曲線結(jié)構(gòu)等位置的圖形質(zhì)量通常都不好,含有許多肉眼難以發(fā)現(xiàn)的不連通位置,如斷開、交疊、多余線條和端頭錯位等。這些圖形缺陷肉眼難以發(fā)現(xiàn),人工處理幾乎不可能;而此前業(yè)內(nèi)使用的SYLBDxfProcess每次只能檢查一個鏈,而且運行極慢,檢查結(jié)果也不可靠,對解決問題助益甚微。本文將探討激光切割圖形連通性問題及檢查算法,以及如何在基于ObjectARX(VC)開發(fā)的程序中實現(xiàn)。該方法可以一鍵式地找出上述圖形缺陷的精確位置,將為設(shè)計人員提供極大方便,同時也極大保證了工作質(zhì)量。

1 連通性檢查問題描述

用于編制激光切割程序的二維圖形中所有的輪廓,包括外緣、視口、各種孔等,必須是連通的才能被識別。在投影圖形質(zhì)量不佳的情況下,很多肉眼看起來連通的輪廓實際上被系統(tǒng)認(rèn)為是開放的。放大圖形后可知,這是由于線與線的連接處存在著尺度極小的斷開、重疊、毛刺等。如圖1。

2 算法分析

圖元的拓?fù)潢P(guān)系判定需要考慮一個因素——公差。假設(shè)約定的公差值為geTol(長度變量單位默認(rèn)為mm,下同),則兩點距離小于geTol時,認(rèn)為兩點重合。這個值應(yīng)根據(jù)所選用的設(shè)備、設(shè)備的配套軟件設(shè)置和使用的CAD軟件設(shè)置來確定。

在激光切割圖形中,允許存在的圖元包括且限于直線、圓弧和圓。由于圓自封閉,不需要判斷連通性,故只需檢查直線與圓弧(以下簡稱曲線)。當(dāng)曲線pCurve1的某一端點與曲線pCurve2的某一端點重合時,稱兩曲線鄰接。

在一組曲線中,如果每條曲線都與其他至少1條曲線鄰接,稱這組曲線為一個鏈;如果一個鏈中每條曲線的每個端點最多只與其他一條曲線鄰接,則稱這個鏈為一個單鏈。如果一個單鏈?zhǔn)孜蚕嘟樱瑒t稱該鏈連通。激光切割圖形中的輪廓最終應(yīng)達(dá)到這種狀態(tài)(由于激光切割圖形的特性,此處不考慮諸如8字形之類的曲線相交情形)。于是可根據(jù)以上條件設(shè)計出檢查連通性的算法:(1)獲得所有圖形元素,分解其中的組合元素。(2)將所有元素分成若干個鏈。(3)對于每個鏈,獲取一個元素,遞歸檢查與之鄰接的元素,以確定是否為連通鏈。(4)重復(fù)2、3步驟,檢查所有鏈。(5)在用戶界面突出顯示連通的鏈。

3 算法的實現(xiàn)

考慮到業(yè)內(nèi)普遍的工作方式,本文選擇在AutoCAD平臺上實現(xiàn)上述算法。由于基于VC++的ObjectARX程序運行效率最高,擁有與AutoCAD自身幾乎相同的編程接口與控制能力[1],故使用ObjectARX(VC)2007開發(fā),編譯環(huán)境是Visual Studio 2005。與AutoCAD自身的功能一樣,該連通性檢查功能通過命令調(diào)用。如圖2。

部分代碼如下:

static void NITemplateAssistAutomaticChain(void)

{

std::list chainList;

std::list::iterator iter;

AcDbObjectIdArray entIds = GlobalFunction::GetAllEntityIds();

if (entIds.isEmpty())

{

acutPrintf(_T("\nThere's no entity in this drawing!"));

return;

}

// Divide entities into several chains

TopologicalFunction::DivideIntoGroups(entIds,chainList,1);

// For each chain, check its closure and mark the ents

int count = 0;

for (iter=chainList.begin();iter!=chainList.end();iter++)

{

AcGePoint3dArray points;

if (TopologicalFunction::IsClosed(*iter,points))

{

GlobalFunction::MarkEnt(*iter);

count++;

}

}

acutPrintf(_T("\n%d loops are found."),count);

}

所述的步驟(1):獲得所選擇的圖形元素,分解其中的組合元素:將模型空間中所有實體的ID加入查找范圍數(shù)組。對獲得的所有實體執(zhí)行分解動作,如果分解成功,則將所得的實體依次發(fā)送至模型空間,并將其ID加入查找范圍數(shù)組,然后在查找范圍數(shù)組中移除該組合元素的ID,并將該組合元素從模型空間刪除。

步驟(2):將所有元素分成若干個鏈:打開查找范圍的第一個元素pEnt,確認(rèn)其是直線或圓弧。將pEnt移入鏈,提取其兩端點,在查找范圍數(shù)組中查找與之鄰接的元素。如果有,則將這個元素移入鏈,并檢查這個元素;否則新建一個鏈繼續(xù)查找。遞歸地執(zhí)行上述過程,直至檢查完所有元素,并獲得一個鏈列表。

步驟(3):對于每個鏈,獲取一個元素,遞歸檢查與之鄰接的元素,以確定是否為連通鏈:對鏈中的每一條曲線pEnt,檢查它與其他曲線有沒有公共端點,所以當(dāng)所有元素都檢查完畢后,結(jié)果分為三種:a.pEnt兩端點均有唯一曲線鄰接;b.pEnt僅在起點或終點有唯一曲線鄰接;c.pEnt兩端點均無唯一曲線鄰接(無元素或多個元素)。

對于情形a,分為三種情況:一是pEnt兩端鄰接的曲線是同一個元素,則可以判定鏈連通,將這個元素移入鏈,查找結(jié)束;二是新起點與新終點重合,說明圖形由分別與pEnt兩端相連的兩條曲線閉合,將這2個元素移入連通元素集,查找結(jié)束;否則說明該鏈還沒有結(jié)束,對這2個元素執(zhí)行(3)的步驟。

對于情形b,分為兩種情況:一是新的起點與原終點相同,說明原終點處存在多于1條鄰接曲線,圖形在此出現(xiàn)分支,一定不連通,查找結(jié)束;否則應(yīng)將這條曲線移入鏈,繼續(xù)查找以確定斷開位置。

對于情形c,由于查找是遞歸的,所以忽略該情形,查找結(jié)束。

步驟(4):重復(fù)2、3步驟,檢查所有鏈。

步驟(5):在用戶界面突出顯示連通的鏈,如果一個鏈被判斷為連通的,則將其中每條曲線變?yōu)榧t色并加粗,令使用者一目了然;否則在該鏈的兩端繪制紅色粗實線圓圈,以標(biāo)明斷開位置。

4 結(jié)束語

本文描述了激光切割圖形連通性缺陷的成因與情形,給出了檢查連通性的一般方法,并說明了如何在基于ObjectARX(VC)開發(fā)的程序中實現(xiàn)。解決了激光切割圖形連通性缺陷肉眼難以察覺,之前業(yè)內(nèi)使用的方法實用性較差的問題,為相關(guān)工作提供了快速可靠的解決方案。

參考文獻:

[1]張帆,朱文俊.AutoCAD ObjectARX(VC)開發(fā)基礎(chǔ)與實例教程[M].中國電力出版社,2014.

[2]陸桂君.激光切割的機理與機械工藝技術(shù)[J].科技創(chuàng)新與應(yīng)用,2017(03):122.

[3]胡家兵,郭宇斌,梁依忱.圖像實時檢測技術(shù)在激光切割中的應(yīng)用研究[J].科技創(chuàng)新與應(yīng)用,2016(34):75.endprint

猜你喜歡
二次開發(fā)
淺談基于Revit平臺的二次開發(fā)
甘肅科技(2020年20期)2020-04-13 00:30:02
西門子Operate高級編程的旋轉(zhuǎn)坐標(biāo)系二次開發(fā)
淺談Mastercam后處理器的二次開發(fā)
模具制造(2019年3期)2019-06-06 02:11:02
基于C#的AutoCAD建筑構(gòu)件庫二次開發(fā)
江西建材(2018年2期)2018-04-14 08:01:14
西門子Easy Screen對倒棱機床界面二次開發(fā)
基于全站儀二次開發(fā)的覆冰厚度測量與實現(xiàn)
電測與儀表(2016年9期)2016-04-12 00:29:52
Micaps3.2 版本二次開發(fā)入門淺析
西藏科技(2015年12期)2015-09-26 12:13:51
基于VB的ANSYS二次開發(fā)在變壓器抗短路性能分析中的應(yīng)用
基于CATIA的橡皮囊成形毛料展開的二次開發(fā)
機械工程師(2015年9期)2015-02-26 08:38:10
ANSYS Workbench二次開發(fā)在汽車穩(wěn)定桿CAE分析中的應(yīng)用
汽車零部件(2014年5期)2014-11-11 12:24:32
主站蜘蛛池模板: 久久99精品久久久久纯品| 激情综合网址| 91人妻在线视频| 91亚瑟视频| 亚洲视频a| 亚洲欧洲日本在线| a级毛片免费网站| 爆操波多野结衣| 亚洲二区视频| 中文字幕无线码一区| 欧美乱妇高清无乱码免费| 日韩成人午夜| 欧美一级在线| 天天综合网亚洲网站| 欧美在线精品怡红院| 无码电影在线观看| 国产精品视频公开费视频| 国产成人禁片在线观看| 97青草最新免费精品视频| 亚洲欧美一级一级a| 91丝袜在线观看| 天天摸夜夜操| 亚洲成AV人手机在线观看网站| 久久人人妻人人爽人人卡片av| 99re在线视频观看| 99精品影院| 九九免费观看全部免费视频| 久久久久人妻精品一区三寸蜜桃| 亚洲视频无码| 免费毛片a| 亚洲中文字幕在线观看| 亚洲三级影院| 免费在线看黄网址| 婷婷伊人久久| 激情爆乳一区二区| 丰满的熟女一区二区三区l| 午夜日韩久久影院| 91国内视频在线观看| 亚洲乱码在线视频| 国产精品.com| 欧美性色综合网| 欧美人人干| 欧美国产日产一区二区| 欧美亚洲一区二区三区在线| 极品尤物av美乳在线观看| 国产精品短篇二区| 波多野结衣国产精品| 手机在线看片不卡中文字幕| 青青草a国产免费观看| 亚洲一区二区约美女探花| 国产不卡一级毛片视频| 国产日韩欧美在线视频免费观看| 日韩中文精品亚洲第三区| 人妻无码中文字幕一区二区三区| 亚洲一区二区三区国产精品| 色综合天天综合中文网| 免费国产好深啊好涨好硬视频| 欧美午夜在线视频| 99久久性生片| 九九热在线视频| 97综合久久| 伊人久久久大香线蕉综合直播| 青青青国产视频| 女高中生自慰污污网站| 成人午夜视频网站| 99这里精品| 99久久精品国产精品亚洲| 伊人久久婷婷五月综合97色| 亚洲欧美成人| av午夜福利一片免费看| 婷婷丁香色| 99热线精品大全在线观看| 亚洲国产欧美国产综合久久| 午夜不卡视频| 亚洲国产理论片在线播放| 欧美精品v欧洲精品| 97se亚洲综合在线韩国专区福利| 97se亚洲综合| 国产爽歪歪免费视频在线观看| 午夜福利无码一区二区| 免费A级毛片无码免费视频| 毛片免费在线视频|