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

        ?

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

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

        張向良

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

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

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

        引言

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

        1 連通性檢查問題描述

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

        2 算法分析

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

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

        在一組曲線中,如果每條曲線都與其他至少1條曲線鄰接,稱這組曲線為一個鏈;如果一個鏈中每條曲線的每個端點最多只與其他一條曲線鄰接,則稱這個鏈為一個單鏈。如果一個單鏈首尾相接,則稱該鏈連通。激光切割圖形中的輪廓最終應達到這種狀態(tài)(由于激光切割圖形的特性,此處不考慮諸如8字形之類的曲線相交情形)。于是可根據(jù)以上條件設計出檢查連通性的算法:(1)獲得所有圖形元素,分解其中的組合元素。(2)將所有元素分成若干個鏈。(3)對于每個鏈,獲取一個元素,遞歸檢查與之鄰接的元素,以確定是否為連通鏈。(4)重復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,確認其是直線或圓弧。將pEnt移入鏈,提取其兩端點,在查找范圍數(shù)組中查找與之鄰接的元素。如果有,則將這個元素移入鏈,并檢查這個元素;否則新建一個鏈繼續(xù)查找。遞歸地執(zhí)行上述過程,直至檢查完所有元素,并獲得一個鏈列表。

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

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

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

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

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

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

        4 結(jié)束語

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

        參考文獻:

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

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

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

        猜你喜歡
        二次開發(fā)
        淺談基于Revit平臺的二次開發(fā)
        甘肅科技(2020年20期)2020-04-13 00:30:02
        西門子Operate高級編程的旋轉(zhuǎn)坐標系二次開發(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ā)在變壓器抗短路性能分析中的應用
        基于CATIA的橡皮囊成形毛料展開的二次開發(fā)
        機械工程師(2015年9期)2015-02-26 08:38:10
        ANSYS Workbench二次開發(fā)在汽車穩(wěn)定桿CAE分析中的應用
        汽車零部件(2014年5期)2014-11-11 12:24:32
        婷婷综合五月| 美国少妇性xxxx另类| 欧美寡妇xxxx黑人猛交| 精品久久久久久久久久久aⅴ| 国产精品无码mv在线观看| 亚洲熟女av在线观看| 亚洲欧洲成人a∨在线观看 | av无码久久久久久不卡网站| 97超级碰碰碰久久久观看| 美国黄色av一区二区| 无码人妻精品一区二区三区蜜桃| a级毛片在线观看| 蜜桃在线播放免费一区二区三区 | 国产三级黄色在线观看| 老熟妇嗷嗷叫91九色| 综合五月激情二区视频| 97午夜理论片在线影院| 亚洲中文字幕精品久久久久久直播| 国产精品国产三级国产专区50| 337p粉嫩日本欧洲亚洲大胆| 亚洲精品一区二区三区大桥未久| 免费一级欧美大片久久网| 久久精见国产亚洲av高清热| 久久久中文久久久无码| 中文幕无线码中文字蜜桃| 日韩精品免费在线视频| 少妇免费av一区二区三区久久 | 亚洲毛片网| 性色av一区二区三区密臀av| 伊人久久大香线蕉av不变影院| 欧美日韩中文国产一区发布| 国产精品一卡二卡三卡| 91久久精品美女高潮喷白浆| 久久久久无码国产精品一区| 亚洲AV日韩AV永久无码电影| 在线观看中文字幕一区二区三区| 蜜桃视频国产一区二区| 中文字幕一区二区三区人妻少妇| 伊香蕉大综综综合久久| 黄色潮片三级三级三级免费| 精品乱码一区内射人妻无码|