• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于ObjectArx的相貫線小角度算法研究

      2016-10-29 07:55:15馬文正周春立
      關(guān)鍵詞:類庫母管外壁

      馬文正,周春立

      (1.上海理工大學(xué) 機(jī)械工程學(xué)院,上?!?00093;2.上海寶業(yè)機(jī)電科技有限公司,上海 201900)

      ?

      基于ObjectArx的相貫線小角度算法研究

      馬文正1,周春立2

      (1.上海理工大學(xué) 機(jī)械工程學(xué)院,上海200093;2.上海寶業(yè)機(jī)電科技有限公司,上海201900)

      在實(shí)際工程應(yīng)用中遇到支管與母管夾角較小時(shí),在保證支管內(nèi)壁與母管外壁理想相貫的情況下,割炬沿管件軸向擺動角度就會很大,導(dǎo)致對管件的實(shí)際切割厚度增加。為了解決這種夾角較小時(shí)存在的問題,文章按照實(shí)際的切割工藝,基于objectarx技術(shù)對AutocAD進(jìn)行二次開發(fā),建立管件的三維空間搭接模型,重新規(guī)劃并提取所需要的相貫線數(shù)據(jù)。過渡區(qū)域內(nèi)相貫線數(shù)據(jù)是由支管內(nèi)壁與母管外壁的相貫過渡到支管外壁與母管外壁相貫。上述方法利用圖形數(shù)據(jù)規(guī)劃切相貫線,保證了小角度處理過程中,過渡區(qū)域內(nèi)支管與母管完美貼合。

      Objectarx;相貫線;小角度處理

      0 引言

      在現(xiàn)代社會中,鋼管的運(yùn)用領(lǐng)域極為廣泛,船舶、橋梁等行業(yè),都大量地需要對鋼管進(jìn)行交叉焊接[1]。現(xiàn)有的數(shù)控相貫線切割機(jī)所使用的切割算法大多基于傳統(tǒng)的數(shù)學(xué)建模。傳統(tǒng)的數(shù)學(xué)建模方法對每種搭建情況進(jìn)行數(shù)學(xué)分析,推導(dǎo)出對應(yīng)的相貫線計(jì)算公式。但是,這些理論求取的相貫線公式在實(shí)際工程運(yùn)用中會與具體的切割工藝產(chǎn)生矛盾。本文研究的相貫線小角度問題就是基于理論公式很難推導(dǎo)解決的。相貫線小角度切割一直是圓管切割的技術(shù)難點(diǎn),很多相貫線切割機(jī)制造廠商無法滿足客戶這一技術(shù)要求。

      本文拋開傳統(tǒng)的數(shù)學(xué)建模推導(dǎo),基于ObjectArx,在AutoCAD中完成管件在三維空間的搭建模型,對小角度相貫時(shí)相貫數(shù)據(jù)進(jìn)行研究,規(guī)劃并提取所需要的相貫線數(shù)據(jù),并將最終的相貫線數(shù)據(jù)轉(zhuǎn)化為數(shù)控軟件的切割代碼,在相貫線切割機(jī)上完成試切,驗(yàn)證本文所提取的相貫線。

      1 ObjectArx和AutoCAD數(shù)據(jù)庫簡介

      ObjectArx的本質(zhì)其實(shí)是一個(gè)軟件開發(fā)包,是AutoDesk公司為了方便用戶對AutoCAD進(jìn)行二次開發(fā)所研發(fā)的。ObjectArx可以真正快速的對AutoCAD圖形數(shù)據(jù)庫進(jìn)行訪問和提取[2]。本文的開發(fā)環(huán)境的配置為Visual Studio2005+AutoCAD2008+ObjectArx 2008,由于這三者不斷的更新?lián)Q代,造成了它們所含的標(biāo)準(zhǔn)庫的改變,所以這三者的選擇版本是要相對應(yīng)的。

      AutoCAD圖由對象和實(shí)體組成,它們存儲在AutoCAD庫中。數(shù)據(jù)庫的基本對象是實(shí)體、詞典和符號表。實(shí)體是在AutoCAD圖內(nèi)部表示圖的一種特殊數(shù)據(jù)庫對象。符號表和詞典是用于存儲數(shù)據(jù)庫對象的容器。層表是符號表之一,包含層表記錄;塊表也是一個(gè)符號表,包含塊表記錄,所有的AutoCAD實(shí)體都是屬于塊表記錄,詞典給存儲對象提供了比符號表更加普通的容器[3]。AutoCAD數(shù)據(jù)庫結(jié)構(gòu)如圖1所示。

      圖1 AutoCAD數(shù)據(jù)庫的組成

      2 小角度問題與處理方法

      圖2 小角度問題

      當(dāng)支管與母管夾角很小時(shí),在它們所形成的理論相貫線上存在一部分線段,該線段上的點(diǎn)所處在的支管內(nèi)壁切平面與母管外壁切平面的夾角會在會小于一定的度數(shù)(即工程中所說的小角度相貫)如圖2a所示。假設(shè)這段部分依舊按照支管內(nèi)壁與母管外壁相貫來計(jì)算,割炬在這段部分沿管件軸向的擺動角度就會很大,而實(shí)際上由于設(shè)備機(jī)械結(jié)構(gòu)的限制,這個(gè)擺角常常有一個(gè)限制的最大值,并且這樣導(dǎo)致了對管件的實(shí)際切割厚度增加。由于實(shí)際的切割厚度增加,火焰切割時(shí),在這一段切割區(qū)域內(nèi)就會突然的要求更高的溫度和切割時(shí)間,所以這一部分常常無法切穿透。

      按照實(shí)際的切割工藝[4],在該線段部分內(nèi),采取支管外壁與母管外壁相貫,并且割炬垂直不擺動,如圖2b 所示。問題的難點(diǎn)在于將內(nèi)壁相貫線與外壁相貫線重新組合,而且在過渡部分依舊保證支管與母管的貼合。

      3 管件實(shí)體的搭建

      管件的實(shí)體是由ObjectArx自定義實(shí)體產(chǎn)生而來。通過將兩個(gè)不同直徑的圓形成的面域進(jìn)行拉伸,形成管件的內(nèi)外壁,兩個(gè)同心圓的半徑差就是管件的厚度,拉伸的高度為管件的長度。

      new AcDbArc(const AcGePoint,double Radius,0,2*pi) //該函數(shù)通過圓心加半徑的方式構(gòu)建一個(gè)圓

      兩個(gè)同心圓可以形成一個(gè)圓環(huán)面域。

      Acad::ErrorStatus createFromCurves(cons ptArray,regions) // ptArry為上述形成的圓環(huán)數(shù)組

      將圓環(huán)面域進(jìn)行拉伸處理。

      AcDb3dSolid*pSolid =new AcDb3dSolid

      pSolid->extrude(pRegion,dHeight,0.0)

      // pSolid為所建立的管件指針

      圖3 兩管的疊加狀態(tài)

      完成管件的建立,接下來要考慮管件在空間中搭接。管件的搭接情況涉及到管件的平移與旋轉(zhuǎn)。AcGeMatrix3d是ObjectArx包含的專用求值類。AcGeMatrix3d類中派生出一些如rotation()和translation()可以完成管件在空間中的平移、旋轉(zhuǎn)操作。

      此時(shí)的管件的搭接還只是疊加的狀態(tài),如圖3所示。實(shí)際的搭接狀態(tài)需要對兩個(gè)圓管實(shí)體進(jìn)行布爾運(yùn)算。

      Virtual Acad::ErrorStatus booleanOper(

      圖4 兩管的相貫狀態(tài)

      BooleanOperType,AcDb-

      3dSolid

      * pSolid ,AcDb3dSolid* pOtherSolid)

      選擇對兩個(gè)管件進(jìn)行求差(kBoolSubtract)運(yùn)算。這樣管件才是實(shí)際的相貫狀態(tài),如圖4所示。

      4 圓管三維相貫線數(shù)據(jù)的提取

      4.1理論相貫線的數(shù)據(jù)提取

      基于ObectARX,通過調(diào)用函數(shù)的方式提取子實(shí)體數(shù)據(jù),需要AcBr類庫與AcGe類庫的協(xié)調(diào)配合[5]。AcBr類庫是ObectARX中的邊界描述庫,調(diào)用AcBr類庫中的函數(shù),以只讀的方式創(chuàng)建實(shí)體建模器,這樣可以進(jìn)一步訪問實(shí)體數(shù)據(jù)庫中的信息。然后利用AcGe類庫對得到的的實(shí)體數(shù)據(jù)信息進(jìn)行數(shù)學(xué)處理,得到兩管件相貫線的幾何數(shù)據(jù)。

      利用AcGe類庫進(jìn)行數(shù)學(xué)計(jì)算的過程如下:

      ①將上述獲得的AcGe對象強(qiáng)制轉(zhuǎn)換為AcGeExternalXXX類型。

      ②調(diào)用isNativeCurve()函數(shù),將AcGe實(shí)例本地化。

      ③根據(jù)實(shí)體的不同類型,進(jìn)入分支結(jié)構(gòu)匹配合適AcGe實(shí)體類型。

      ④調(diào)用該實(shí)體類型所提供的相關(guān)函數(shù)接口,輸出相關(guān)實(shí)體的幾何數(shù)據(jù)[6-7]。

      圖5 兩管相貫的理論相貫線

      如圖5所示,紅色小線段區(qū)域?yàn)橹Ч艿膬?nèi)、外壁與母管外壁的相貫線,白色小線段區(qū)域?yàn)闆]有做小角度處理的切割線。此時(shí)的切割線完全以支管內(nèi)壁作為依據(jù),當(dāng)考慮到割炬擺角的限制,這樣切成來的支管無法騎座在母管上。

      4.2重新規(guī)劃相貫線數(shù)據(jù)

      通過判定二面角大小[8],確定過渡區(qū)域的起點(diǎn)與終點(diǎn),也就是過渡線段的一端與內(nèi)壁相貫線連接,另一端與外壁相貫線連接。將這空間上由起點(diǎn)和終點(diǎn)組成的線段分成若干段,運(yùn)用closestPointTo()函數(shù)找出母管外壁上與上述節(jié)點(diǎn)距離最近的點(diǎn)。具體函數(shù)

      Void GetSurfacePoint(PointList& curveList,const AcGePoint3d & firstPoint,const AcGePoint3d& scdPoint,int nCount = 50)

      {

      AcGeVector3d vOffset= (scdPoint-firstPoint)/(nCount+1);

      AcGePoint3d myFirstPoint = firstPoint;

      for (int i =0 ;i < nCount+1;++i)

      {

      curveList.push_back(pSurface->closestPointTo(myFirstPoint)); // pSurface為母管外壁面的指針

      myFirstPoint += vOffset;

      }

      }

      此時(shí)AcGePoint3d myFirstPoint中存放了過渡點(diǎn),這些點(diǎn)確保了相貫線由內(nèi)壁過渡到外壁時(shí)始終與母管貼合。

      整合的切割數(shù)據(jù)點(diǎn)由三部分組成,支管外徑相貫的一部分?jǐn)?shù)據(jù)、過渡段數(shù)據(jù)和支管內(nèi)徑相貫的一部分?jǐn)?shù)據(jù)。數(shù)據(jù)的整理由下列三個(gè)函數(shù)完成。

      GetWaijinData(cutdata,&cutwaijin,index_small[0],index_small[1]);

      ConnectGuoduPoint(&cutwaijin,guodupoint1,guodupoint2);

      GetNeijinData(cutdata,guodupoint1,guodupoint2,index_small,index_big);

      圖6為重新規(guī)劃后的相貫線。對比圖5,此時(shí)的白色切割線在管件小角度區(qū)域是以支管的外壁相貫線為依據(jù),通過myFirstPoint中的存放的空間過渡點(diǎn),將小角度區(qū)域外壁相貫線與其他部分內(nèi)壁相貫線連接起來。如圖6重新提取的相貫線正是實(shí)際工程切割所需的相貫線。圖7將相貫線分離出來,此時(shí)的相貫線由多段曲線組成,不在是原先簡單的相貫線曲線。

      圖6 重組后的相貫線

      圖7 重組后的相貫線的提取

      5 實(shí)際應(yīng)用

      運(yùn)用該方法得到的相貫線數(shù)據(jù)經(jīng)過上海寶業(yè)機(jī)電科技有限公司的相貫線切割機(jī)上的試切(如圖8所示),切割效果非常滿意。如圖9所示,支管根部是外壁與母管相貫,然后過渡到內(nèi)壁相貫,管件的搭接效果良好。

      圖8 實(shí)際切割圖

      圖9 實(shí)際搭接圖

      6 結(jié)束語

      本文基于ObjectArx對CAD進(jìn)行二次開發(fā),在CAD基礎(chǔ)上搭建圓管,提取圓管相貫線數(shù)據(jù),并將這些數(shù)據(jù)重新規(guī)劃,成功的解決了在管件焊接時(shí)的小角度問題。并且此思想相較于傳統(tǒng)的公式計(jì)算更加準(zhǔn)確、方便,同時(shí)可以擴(kuò)展到一些其他的搭接情況下的相貫線計(jì)算。

      [1] 甄洪棟.數(shù)控切管機(jī)控制軟件的研究[D].濟(jì)南:山東大學(xué),2005.

      [2] 陳大東. 基于ObjectARX技術(shù)的船體型線生成系統(tǒng)[J]. 中國科技縱橫,2011(15):391.

      [3] 杜剛,劉東學(xué). AutoCAD二次開發(fā)中對圖形數(shù)據(jù)庫的訪問[J].化工裝備技術(shù),2004,25(6):53-55.

      [4] 葛國政. 數(shù)控管子相貫線火焰切割機(jī)的研制[J].焊接技術(shù),2006,35(2):45-47.

      [5] 袁文輝.三維AutoCAD中實(shí)體曲面邊界數(shù)據(jù)的提取及應(yīng)用[J].機(jī)械研究與應(yīng)用,2001,14(3):44-45,48 .

      [6] 屈振生,何恒利. ObjectARX應(yīng)用程序開發(fā)中AcBr與AcGe類庫的應(yīng)用[J].計(jì)算機(jī)應(yīng)用,2001, 21(7):66-67.

      [7] 王堯.基于ObjectARX的管端三維模型數(shù)據(jù)生成與提取研究[D].哈爾濱:哈爾濱工程大學(xué),2013.

      [8] 李小剛,呂碧峰,姚偉偉,等.相交雙管焊接坡口的數(shù)據(jù)化處理[J].中國機(jī)械工程,2004,15(4):355-357.

      (編輯趙蓉)

      Research On Algorithm of Intersecting Line Based on ObjectArx

      MA Wen-zheng1,ZHOU Chun-li2

      (1.School of Mechanical Engineering ,University of Shanghai for Science and Technology,Shanghai 200093,China; 2.Shanghai Baoye M&E Technical Co., Ltd, Shanghai 201900,China)

      Encountered branch pipe and main pipe angle is small in practical engineering applications, while ensuring branch pipe wall with the parent tube wall intersecting ideal situation, the torch along the tube axial oscillation angle will be great, cause the actual cutting thickness of the pipe increased .To solve this problem,the paper according to the actual cutting process, based objectarx technology to build three-dimensional solid model, re-planning and extracted intersecting line data needed, intersecting line data in the transition region is a branch pipe wall and the main pipe intersecting the outer wall of the outer wall of the transition to branch pipe tube wall intersecting with the parent.The above-described method ensures that small-angle process, the branch pipe and main pipe fit perfectly within the transition zone.

      Objectarx;intersecting line;small angle processing

      1001-2265(2016)04-0066-03DOI:10.13462/j.cnki.mmtamt.2016.04.018

      2015-05-08;

      2015-06-12

      馬文正(1989—),男,武漢人,上海理工大學(xué)碩士研究生,研究方向?yàn)閿?shù)控技術(shù),(E-mail)1098402599@qq.com。

      TH166;TG506

      A

      猜你喜歡
      類庫母管外壁
      一起220kV變電站母管接頭脫開原因分析及防范措施
      壓水堆二回路凝汽器母管內(nèi)壁的成膜胺保養(yǎng)工藝研究
      用Java編寫客戶機(jī)/服務(wù)器端應(yīng)用程序
      Python在數(shù)據(jù)可視化中的應(yīng)用
      壁掛式鋼板立表面除銹機(jī) 在利舊鋼制儲罐外壁除銹的應(yīng)用
      數(shù)據(jù)結(jié)構(gòu)課程教學(xué)改革方案和應(yīng)用效果
      軟件工程(2017年12期)2018-01-29 17:35:55
      數(shù)據(jù)結(jié)構(gòu)可視化類庫的設(shè)計(jì)與實(shí)現(xiàn)
      燒水時(shí)燒水壺外壁為何會“出汗”
      微管微纜技術(shù)的發(fā)展探討與推廣
      一種煙氣脫硫吸收塔交互式噴淋系統(tǒng)
      昭平县| 绥宁县| 大同市| 双鸭山市| 广南县| 环江| 石景山区| 盘锦市| 无锡市| 阿克苏市| 安康市| 扶风县| 扎囊县| 平果县| 商河县| 雷山县| 宣恩县| 聊城市| 昆山市| 陆河县| 浦东新区| 汝阳县| 五大连池市| 澄迈县| 长岭县| 香格里拉县| 莱阳市| 扶余县| 平定县| 淮滨县| 拜城县| 蒲城县| 通榆县| 瓦房店市| 周口市| 郯城县| 宝清县| 大厂| 浮山县| 文水县| 西乌珠穆沁旗|