AutoCAD中二維圖形消隱的一種新方法.doc_第1頁
AutoCAD中二維圖形消隱的一種新方法.doc_第2頁
AutoCAD中二維圖形消隱的一種新方法.doc_第3頁
AutoCAD中二維圖形消隱的一種新方法.doc_第4頁
AutoCAD中二維圖形消隱的一種新方法.doc_第5頁
免費預(yù)覽已結(jié)束,剩余6頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

AutoCAD中二維圖形消隱的一種新方法第31卷第3期2011年9月遼寧石油化工大學(xué)J0URNAL0FLIA()NINGSHIHUAUNIVERSITYVo1.3】NO.3Sep.2()II文章編號:16726952(2011103007004AutoCAD中二維圖形消隱的一種新方法藍曉民,王盛智(1.遼寧石油化工大學(xué)機械學(xué)院,遼寧撫順113001;2.遼寧石油化工大學(xué)石油與天然氣工程學(xué)院,遼寧撫順113001)摘要:論述了在AutoCAD下實現(xiàn)二維圖形消隱的方法,提出基于Wipeout命令實現(xiàn)二維圖形消隱的方法,分析了使用Wipeout命令消隱存在的問題.通過對圓弧的離散化處理,定義匿名圖塊等方法,解決了應(yīng)用Wipeout命令對二雛圖形進行消隱的問題.采用AutoIISP語言編寫了二維圖形消隱命令,為應(yīng)用AutoCAD繪制裝配圖提供了一種新的作圖方法.關(guān)鍵詞:AutoCAD;裝配圖;消隱中圖分類號:TH126.2文獻標(biāo)識碼:Adoi:10.3696/j.issn.16726952.2011.03.019ANewMethodofTWODimensionGraphsConcealinAutoCADLANXiaomin.WANGSheng-zhi(1.SchoolofMechanicalEngineering,LiaoningShihuaUniversity,FushunLiaoning113001,P.R.Chian;2.CollegeofPetroleumEngineering,LiaoningShihuaUniversity,FushunLiaoning113001,P.R.China)Received16December2010;revised25April2011;accepted30April2011Abstract:ThemethodtOhidetWOdimensionaldrawinginAutoCADwasdiscussed.ThemethodtOhidetWOdimensionaldrawingwithWipeoutwasputforward.TheexistentproblemstohidetwodimensionaldrawingaboutusingWipeoutwereanalyzed.ThroughthearcintodiscreteandthedefinitionofanonymousdrawingandSOon,theproblemtOhidetWOdimensionaldrawingwithWipeoutwassolved.AnorderprogramtOhidetWOdimensionaldrawingwithAutoIISPwaswrote.ItprovidesanewvaluabledraftingmethodtOdrawaassemblydrawingwithAutoCAD.Keywords:AutoCAD;Assemblagedrawing;ConcealC0rrespondingauthor.Te1.:+8613624133835;e-mail:13624133835163.com由于AutoCAD沒有提供二維圖形消隱命令,在使用AutoCAD繪制裝配圖時,通常需要由設(shè)計人員判斷圖形遮擋關(guān)系,采用修剪命令刪除被遮擋圖形.因此繪圖效率低,并且破壞了被遮擋圖形的完整性.如何在AutoCAD中實現(xiàn)二維圖形消隱是廣大CAD應(yīng)用者關(guān)心的問題.在AutoCAD中實現(xiàn)二維圖形消隱通常有兩種方法L1.:第一種方法,采用裁剪算法,通過編程計算圖形邊界與其它圖形相交點,剪去被遮擋區(qū)域內(nèi)的實體;第二種方法,采用AutoCAD提供的Boundary和Shademode命令,利用圖形之間不同的深度來實現(xiàn)消隱.第一種方法缺點是計算量較大,編程復(fù)雜.而且修剪后刪除的圖形不能再編輯或恢復(fù).第二種方法利用了收稿日期:20101216作者簡介:藍曉民(1960一),男(畬),浙江青田縣,教授.AutoCAD提供的命令,由于是利用兩圖深度不同,利用系統(tǒng)提供的三維消隱命令(Shademode)來實現(xiàn)消隱的.由于圖形之間的高度不同,不能保證圖形之間的幾何度量關(guān)系.經(jīng)過編輯后的圖形還需要重新進行深度設(shè)置,而且不能實時消隱,并且操作步驟繁瑣.本文提出了利用AutoCAD提供的Wipeout命令實現(xiàn)二維圖形消隱的方法.Wipeout命令是AutoCAD2004及以上版本提供的區(qū)域覆蓋命令.該方式相當(dāng)于用一不透明的平面遮擋其它圖形,由于不破壞被遮擋的圖形,還可以對被遮擋的圖形進行再編輯.與通常使用Boundary和Shademode組合命令消隱方法相比較,基于Wipeout命令開發(fā)的二維圖形消隱命令使用更簡單,并可實現(xiàn)實時消隱.Wipeout命令要求覆蓋邊界必須由封閉的直線段構(gòu)成.而裝配圖形的邊界除直線外,通常還包含圓弧,橢圓弧等曲線段.本研究目的是為AutoCAD第3期藍曉民等.AutoCAD中二維圖形消隱的一種新方法71開發(fā)一自動生成消隱圖形塊的命令.如何自動獲取二維圖形的輪廓邊界,及將輪廓邊界中的圓弧離散化成直線是本文研究的重點.其次,為便于對遮擋圖形進行整體編輯(移動),需要將其制作成圖形塊.為避免出現(xiàn)重名問題,需要將圖形塊定義成匿名圖形塊.1獲取二維圖形輪廓線邊界獲得消隱圖形的輪廓邊界是利用AutoCAD系統(tǒng)提供的邊界命令boundary實現(xiàn)的,它通過在一封閉區(qū)域內(nèi),零件外點取一點,便可以自動生成封閉區(qū)域內(nèi)圖形輪廓的邊界多義線(1wpolyline).多義線只能由直線和圓弧組成,對樣條曲線(spline)和橢圓(ellipse)需要經(jīng)過處理方能使用boundary命令生成邊界.在機械工程圖樣中,樣條曲線主要用于繪制波浪線.可以先使用Pline命令繪制成折線,然后用pedit命令(選項s)擬合成Polyline曲線來替代樣條曲線.用Polyline曲線生成的邊界均由直線段組成.在AutoCAD中,橢圓有兩種生成方式,一種是按橢圓方程繪制的橢圓,另一種是按多段圓弧擬合成的近似橢圓,兩種橢圓的生成方式是通過設(shè)置系統(tǒng)變量pellipse的值來確定的.其值為0時生成的是橢圓,其值為1時生成的橢圓為Polyline曲線,是用圓弧擬合成的近似橢圓.由于這種近似橢圓與橢圓有著非常好的幾何逼近度,因此采用近似橢圓完全可滿足工程制圖的需要,而且可以簡化編程.要獲得圖1所示零件(如圖1(a)所示)的外輪廓線(如圖1(b)所示),只要在零件圖形外繪制一矩形框(任何由直線和圓弧構(gòu)成的封閉圖形),利用boundary命令在矩形框內(nèi)與零件圖形外取一點pt,系統(tǒng)便自動生成兩條多義線,一條是與矩形外框重和的多義線,另一條是零件的外輪廓多義線.(b)提取后圖1零件外輪廓提取使用下式:(commandrectangpausepause)繪制一矩形框,通過下式:(setqsl(entlast)(setqpl(cdr(nth14(entgets1)(setqp2(cdr(nth22(entgets1)可得到矩形框角點坐標(biāo)p1,p2.使用下式:(setqpt(polarpl(angleplp2)1.O)可以計算出選定區(qū)域內(nèi)點取點坐標(biāo)pt.由于boundary命令生成的多義的順序是固定的,按照從內(nèi)到外的順序排列,為使程序得到該輪廓線實體,使用下式:(commanderase(entlast)先刪除外層矩形框多義線,然后用下式:(setqss(entlast)即可獲得零件的外輪廓線實體ss.利用下式:(entgetss)即可得到零件的外輪廓實體數(shù)據(jù):(一1.<圖元名:7ef6cb98>)(0.LWPOLYLINE)(330.<圖元名:7ef66cf8>)(5.1E03)(100.AcDbEntity)(67.0)(410.Model)(8.1)(100.AcDbPolyline)(90.19)(70.1)(43.0.0)(38.0.0)(39.0.0)(10127.393317.096)(40.0.O)(41.0.0)(42.0.0)(10129.807312.916)(40.0.0)(41.0.0)(42.0.0)(10129.807309.872)(40.0.0)(41.0.0)(42.0.0)(10129.807288.2)(40.0.0)(41.0.0)(42.0.0)(10129.807263.485)(40.0.0)(41.0.O)(42.0.0)(10127.393259.304)(40.0.0)(41.0.0)(42.0.0)(10114.825259.304)(40.0.0)(41.0.0)(42.0.0)(10114.825272.056)(40.0.0)(41.0.0)(42.0.0)(10112.078272.056)(40.0.0)(41.0.0)(42.0.0)(10110.484269.296)(40.0.0)(41.0.0)(42.0.0)(1094.7084269.296)(40.0.0)(41.0.0)(42.0.0)(1092.6193271.385)(40.0.0)(41.0.0)(42.0.0)(1092.6193288.2)(40.0.0)(41.0.0)(42.0.0)(1092.6193305.016)(40.0.0)(41.0.0)(42.0.0)(1094.7O843O7.105)(40.0.0)(41.0.0)(42.0.0)(10110.484307.105)(40.0.0)(41.0.0)(42.0.0)(10112.078304.345)(40.0.0)(41.0.0)(42.0.0)(10114.825304.345)(40.0.0)(41.0.0)(42.0.0)(10114.825317.096)(40.0.O)(41.0.0)(42.0.0)(2100.00.01.0)在上述實體數(shù)據(jù)中,組代碼為1O的相鄰兩點為多義線中直線段和圓弧段的數(shù)據(jù),兩點間組代碼4272遼寧石油化工大學(xué)的值等于0的數(shù)據(jù)為直線段,組代碼42的值不等于0的數(shù)據(jù)為圓弧段.將數(shù)據(jù)中的圓弧離散化成直線段,并與直線段編輯成一封閉復(fù)線,即可實現(xiàn)用Wipeout命令建立輪廓圖形的覆蓋區(qū)域.根據(jù)外輪廓實體數(shù)據(jù)中組代碼10的數(shù)量,可計算出輪廓實體數(shù)據(jù)中直線段與圓弧段的數(shù)量n.利用下式:(commandexplode(entlast)將外輪廓實體分解成直線段或圓弧段.用(entlast)函數(shù)從1到n逐個選取輪廓邊界實體,如果實體為圓弧需將圓弧按下面的函數(shù)(arcp1)離散化成由直線段組成的線段端點表.2圓弧的離散化處理函數(shù)將圓弧轉(zhuǎn)換成直線端點表的LISP程序如下:(defunarcpl(pranglang2/dtls)(if(>anglang2)(setqang2(+ang2(*2pi)(setqdt(dtr3.0)(while(<anglang2)(setqIs(cons(polarPanglr)Is)(setqangl(+dtang1)(setqIs(cons(polarPang2r)Is)(commandpline)(repeat(1engthls)(command(carIs)(setqls(cdrIs)(command)(entlsat)函數(shù)arcpl中的參數(shù)P為圓弧中心點坐標(biāo),其形參為(Xy);r為圓弧半徑;angl為圓弧起始角(弧度);ang2為圓弧終止角(弧度).函數(shù)返回一由多段直線段端點組成的表(XY)(X.Y)(xY).圓弧離散成直線段時,是按其定角增量dt計算弦長.dt的增量大小決定離散后圓和圓弧逼近精度.工程圖一般取35度左右即可獲得較好的視覺效果(增量角過小將使圖形存儲數(shù)據(jù)量增大).上述函數(shù)中的函數(shù)dtr函數(shù)為將度角轉(zhuǎn)成弧度角函數(shù),其函數(shù)定義如下:(defundtr(ang/)(*(/pi180.0)ang)3生成直線段多義線輪廓線邊界對于分解后的直線段使用下式:(setqls(entget(entlast)可得到直線實體數(shù)據(jù):(一1.<圖元名:7ef28lf8>)(0.LINE)(330.<圖元名:7ef71cf8>)(5.B7)(100.AcDhEntity)(67.0)(410.Model)(8.2)(100.AcDbLine)(10161.7528.94180.0)(11227.32516.05760.0)(2100.00.01.0)其中組代碼1o為直線起始點坐標(biāo),組代碼lll為直線終點坐標(biāo),利用下式:(1ist(assoc10ls)(assocllIs)可得到直線段端點坐標(biāo)表(161.7528.94180.0)(227.32516.05760.0).對于分解后的圓弧段經(jīng)函數(shù)arcpl離散化后成直線端點表(XY)(xY2)(xY).將直線段表和圓弧離散化后的直線端點表經(jīng)過連接組成新表.其格式為:(X1Y1)(X2Y2)(XY)其中,n為輪廓邊界總的直線段數(shù).使用下式:(commandpline)(repeat(1engthls)(command(carIs)(setqSS(cdris)(commandC)將表ls中各點繪制成一封閉的多義線.使用命令Wipeou將邊界多義線實體轉(zhuǎn)換成覆蓋區(qū)域,其格式為:(commandwipeout(entlast)y)然后將覆蓋區(qū)域與二維圖形做成匿名圖形塊.4建立匿名消隱圖形塊建立匿名圖形塊的作用是避免同一圖中出現(xiàn)相同的圖形塊名.在同一圖中如果定義相同的圖形塊,后建立的圖形塊將更新原有的圖形塊.本研究是開發(fā)一交互式建立消隱圖形塊的命令,不需要輸入塊名.匿名圖形塊名均為*U.利用下式:(setqss(ssgetwp1p2)選擇輪廓邊界及消隱圖形實體SS.將圖形實體建立成匿名圖形塊的IASP程序如下:(defunnmk(SS/innum)第3期藍曉民等.AutoCAD中二維圖形消隱的一種新方法73(entmake(1ist(0.BLOCK)(2.*U)(70.1)(cons10(00)(setqi(sslengthSS)n(一1)(repeati(entmake(cdr(entget(ssnameSS(setqn(1+n)(setqnum(entmake(0.ENDBLK)(entmake(1ist(0.INSERT)(cons2num)(cons10(00)(commanderaseSS)(princ)函數(shù)nmk中參數(shù)SS為圖形邊界與圖形實體.5在裝配圖中的應(yīng)用在圖2所示的裝配圖中,零件1遮擋零件2,圖2(a)為未消隱的裝配圖圖形,圖2(b)為對零件1進行消隱后的裝配圖.對于這種簡單的螺紋結(jié)構(gòu),如果采用人工判斷,處理消隱也較為繁雜,而且容易出錯.采用消隱技術(shù)可以使消隱過程簡單化.21潮韻(a)消隱前(b)消隱后圖2

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論