




已閱讀5頁(yè),還剩2頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
摘要:深入研究了二維消隱的原理,設(shè)計(jì)了零件視圖內(nèi)、外邊界表示的數(shù)據(jù)結(jié)構(gòu),通過以零件視圖的內(nèi)外邊界對(duì)圖形實(shí)體的顯示進(jìn)行裁剪的方法實(shí)現(xiàn)了二維消隱。在實(shí)現(xiàn)中零件視圖的設(shè)計(jì)信息保存在該視圖的擴(kuò)展數(shù)據(jù)域中,用戶以交互方式定義零件視圖及零件視圖相互間的遮擋關(guān)系。 關(guān)鍵詞:消隱;零件視圖;邊界 產(chǎn)品裝配圖是產(chǎn)品設(shè)計(jì)與制造中不可缺少的技術(shù)文檔。為了提高裝配圖的繪圖效率,充分利用已繪制好的零件圖,仿照產(chǎn)品裝配過程把許多零件視圖“裝配”到一起,并加以少量的編輯修改來(lái)繪制裝配圖,是二維CAD系統(tǒng)不可缺少的手段。因此,能否實(shí)現(xiàn)二維工程繪圖的裝配消隱是衡量二維CAD系統(tǒng)的重要指標(biāo)。裝配圖的每個(gè)視圖可以看作由幾個(gè)零件的部分或全部視圖進(jìn)行遮擋消隱和裝配而成。 消隱是二維CAD系統(tǒng)向用戶提供具有正確遮擋關(guān)系的零件裝配圖顯示的功能。圖形設(shè)計(jì)用戶在使用繪制好的零件圖構(gòu)造裝配圖時(shí),零件間的遮擋關(guān)系使得圖紙中出現(xiàn)部分多余的線條,這種情況給用戶帶來(lái)很大不便,因此對(duì)零散的圖形單元進(jìn)行集成和在圖中加入設(shè)計(jì)信息,從而使得計(jì)算機(jī)能夠?qū)@樣的結(jié)構(gòu)化圖形進(jìn)行處理,消隱的概念由此產(chǎn)生。消隱功能可以這樣簡(jiǎn)單地描述:把零散的圖形實(shí)體定義成零件視圖塊,并指定不同零件視圖塊的遮擋關(guān)系,用戶通過命令的方式調(diào)用消隱功能,根據(jù)這些信息進(jìn)行計(jì)算并構(gòu)造具有正確遮擋關(guān)系的圖形顯示。 1零件視圖塊1 消隱是由于不同零件圖之間的遮擋而產(chǎn)生的概念,零件視圖塊是消隱的基本單位,用戶選擇零散圖形實(shí)體以塊的方式生成零件視圖塊。零件視圖塊具有遮擋能力,不同的零件視圖塊可以具有不同的遮擋能力,這由用戶指定零件視圖塊之間的遮擋關(guān)系并賦予消隱高度值的方法進(jìn)行實(shí)現(xiàn)。消隱高度值的不同確定了零件視圖塊之間的遮擋關(guān)系,零件視圖塊之間的遮擋關(guān)系可以表示為1棵樹,從樹根到樹葉逐級(jí)被遮擋,普通實(shí)體可以被任意零件視圖塊遮擋,它具有最低的消隱高度,這樣零件視圖之間的相互遮擋關(guān)系由它們的消隱高度值唯一確定。 2 消隱的原理2 裝配消隱的過程如圖1所示,用戶從圖形實(shí)體數(shù)據(jù)中選擇圖形實(shí)體并定義為零件視圖塊,利用邊界搜索算法得到該零件視圖塊的內(nèi)外輪廓信息,這些信息作為用于消隱的零件圖設(shè)計(jì)信息而被記錄于零件視圖塊的擴(kuò)展數(shù)據(jù)域中。然后用戶指定零件視圖塊之間的遮擋關(guān)系,對(duì)零件視圖塊賦予消隱高度值,同樣記錄在零件視圖塊的擴(kuò)展數(shù)據(jù)域中。最后系統(tǒng)利用零件視圖塊的輪廓信息、零件視圖的消隱高度等數(shù)據(jù),通過裁剪等基本算法進(jìn)行消隱的計(jì)算處理,最后得到具有消隱效果的圖形顯示和打印結(jié)果。 圖1消隱過程示意圖2.1由圖形定義零件視圖塊消隱操作首先要把若干個(gè)沒有邏輯聯(lián)系的圖形實(shí)體組合成零件視圖塊,并將用于消隱的設(shè)計(jì)信息存儲(chǔ)在零件視圖塊的擴(kuò)展數(shù)據(jù)域中,步驟如下:(1)檢查圖形實(shí)體集的外邊界和內(nèi)孔邊界情況零件視圖塊必須具有封閉的外邊界,為了找出圖形實(shí)體集合形成的外邊界,在利用邊界搜索算法進(jìn)行搜索時(shí),應(yīng)該選取在位于這一邊界之外的參考點(diǎn),最簡(jiǎn)單的選取方式是計(jì)算被選擇實(shí)體集合共同的包圍盒,任取包圍盒之外的1點(diǎn)即滿足要求。另外要檢查選擇的圖形實(shí)體集形成的零件視圖塊的內(nèi)孔情況。用戶以交互方式選擇決定內(nèi)孔位置的標(biāo)記點(diǎn),同樣利用基于參考點(diǎn)的邊界搜索算法找出該點(diǎn)指示的內(nèi)孔邊界。如果用戶選取的標(biāo)記點(diǎn)是錯(cuò)誤的,例如該標(biāo)記點(diǎn)指示的是外邊界或者已經(jīng)定義的內(nèi)孔邊界,或者標(biāo)記點(diǎn)不在希望搜索的內(nèi)孔邊界之內(nèi),那么內(nèi)孔邊界的檢查將會(huì)指示出錯(cuò)或得不到需要的結(jié)果。(2)以選擇的圖形實(shí)體生成塊利用塊的生成函數(shù)把選擇的圖形實(shí)體集合組合成1個(gè)賦名的塊,并插入該塊的Insert實(shí)體,同時(shí)刪除被選擇的圖形實(shí)體集合。(3)存儲(chǔ)零件視圖塊的遮擋信息零件視圖塊的遮擋信息就是用于構(gòu)造零件視圖塊的內(nèi)外輪廓邊界的基本數(shù)據(jù)為了重構(gòu)零件視圖塊的內(nèi)外邊界,除了需要構(gòu)成零件視圖塊的實(shí)體集外,還需要指示內(nèi)孔的標(biāo)記點(diǎn)序列,因此這里需要保存的數(shù)據(jù)主要就是各標(biāo)記點(diǎn)數(shù)據(jù),它們被存儲(chǔ)在零件視圖塊實(shí)體的Xdata擴(kuò)展數(shù)據(jù)域中。2.2建立零件視圖塊間的遮擋關(guān)系用戶對(duì)零件視圖塊間的遮擋關(guān)系的指定通過Above命令來(lái)進(jìn)行,該命令可以指定若干個(gè)零件視圖塊的遮擋能力大于另一個(gè)零件視圖塊。在實(shí)現(xiàn)中采用消隱高度值表示零件視圖塊的遮擋能力大小,通過消隱高度值的不同來(lái)建立零件視圖塊間的遮擋關(guān)系。消隱高度的數(shù)值作為零件視圖塊的遮擋信息,也保存在被插入的零件視圖塊的Insert實(shí)體的Xdata域中。2.3消隱消隱按如下的規(guī)則進(jìn)行:外輪廓之內(nèi)和內(nèi)輪廓之外的區(qū)域?qū)Ρ尘熬哂姓趽踝饔?,具有較高消隱高度的圖形實(shí)體遮擋具有較低消隱高度的圖形實(shí)體。利用保存于零件視圖實(shí)體中的遮擋信息,零件視圖塊的內(nèi)外輪廓邊界以及它的消隱高度在消隱步驟中被重構(gòu)出來(lái)。消隱的基本操作是掃描顯示鏈表,計(jì)算和修改當(dāng)前視圖中每一實(shí)體的顯示數(shù)據(jù)。為了減少計(jì)算工作量,首先要根據(jù)包圍盒數(shù)據(jù)對(duì)正在掃描的實(shí)體可能產(chǎn)生遮擋的零件視圖塊范圍,然后逐一進(jìn)行計(jì)算和修改。由于顯示鏈表中的顯示結(jié)構(gòu)是離散的線段和填充多變形,消隱的最終計(jì)算就是利用所有可能對(duì)實(shí)體產(chǎn)生遮擋的零件視圖塊的內(nèi)外輪廓邊界,對(duì)該實(shí)體的顯示鏈表項(xiàng)中的離散線段集合或填充多邊形集合進(jìn)行裁剪操作,得到位于零件視圖塊的外輪廓之內(nèi)和內(nèi)孔之外的部分作為裁剪結(jié)果,并用這一結(jié)果修改顯示鏈表項(xiàng),這樣就得到了該實(shí)體消隱后的正確顯示。由于顯示鏈表項(xiàng)中的基本圖形結(jié)構(gòu)是線段和填充多邊形,所以問題就轉(zhuǎn)化為遮擋圖形的各邊界對(duì)線段、多邊形的裁剪算法。由于零件視圖塊的邊界是由線段、圓弧或橢圓弧構(gòu)成的沒有自相交的任意形狀的封閉邊界,這種邊界對(duì)填充多邊形的裁剪較復(fù)雜,可采用對(duì)多邊形各邊進(jìn)行裁剪的替代處理方法,可以得到正確的輪廓線,但缺點(diǎn)是裁剪結(jié)果丟失了填充信息,真正的多邊形裁剪在下一階段的開發(fā)中進(jìn)行實(shí)現(xiàn)。3零件視圖塊的邊界表示零件視圖由零件的整個(gè)或部分視圖構(gòu)成,具有一個(gè)封閉的外邊界即外多邊形環(huán),可以沒有內(nèi)邊界或有若干個(gè)內(nèi)邊界。零件視圖的外邊界之內(nèi)和內(nèi)邊界之外的區(qū)域是零件視圖塊的遮擋區(qū)域,可以遮擋消隱高度在該零件視圖塊之下的各圖形實(shí)體或零件視圖塊。零件視圖塊的輪廓邊界是零件視圖塊的重要幾何特征和遮擋信息,外邊界和內(nèi)孔邊界唯一決定零件視圖塊的遮擋區(qū)域。二維CAD系統(tǒng)的若干圖形實(shí)體必須具有封閉的外邊界才能構(gòu)成零件視圖塊,邊界必須由輪廓線構(gòu)成,基本曲線單位是線段、圓弧和橢圓弧見圖2。 圖2零件視圖塊的內(nèi)、外邊界零件視圖塊的外邊界由基于回溯的參考點(diǎn)邊界搜索算法對(duì)于選擇的圖形實(shí)體集合進(jìn)行搜索,需要的參考點(diǎn)通過計(jì)算這些實(shí)體集的共同包圍盒之后,選擇該包圍盒之外任一點(diǎn)而得到。內(nèi)邊界的搜索需要由用戶交互定義內(nèi)孔的標(biāo)記點(diǎn)。在邊界搜索算法中,當(dāng)參考點(diǎn)在邊界外時(shí),搜索結(jié)果是最大和最靠外的邊界,其路徑方向?yàn)轫槙r(shí)針,而當(dāng)參考點(diǎn)在邊界內(nèi)部時(shí),搜索結(jié)果是圍繞參考點(diǎn)的最小邊界,其路徑方向?yàn)槟鏁r(shí)針。傳統(tǒng)的零件視圖塊都具有一個(gè)外邊界,可以沒有內(nèi)邊界或者有若干個(gè)內(nèi)孔邊界。但在系統(tǒng)的新版本中,由于要實(shí)現(xiàn)對(duì)于CTEXT實(shí)體的正確處理,零件視圖塊的概念被擴(kuò)展到具有多個(gè)外邊界和各自的多個(gè)內(nèi)邊界的情況。CTEXT是由多個(gè)分離的字符或漢字形成的特殊的文字實(shí)體,每個(gè)字符或漢字都有各自的包圍盒形成的邊界,因此CTEXT實(shí)體的輪廓邊界特征是具有多個(gè)不相交的外邊界,沒有內(nèi)邊界。零件視圖塊的邊界表示應(yīng)當(dāng)滿足這樣一些要求,一是完備表示零件視圖塊的內(nèi)、外邊界輪廓信息,二是應(yīng)采用數(shù)據(jù)冗余度最小的數(shù)據(jù)結(jié)構(gòu)。系統(tǒng)中采用這樣的數(shù)據(jù)結(jié)構(gòu)表示邊界,若干個(gè)有序關(guān)鍵點(diǎn)順次連結(jié)成沒有自相交的封閉邊界,一個(gè)零件視圖塊的各內(nèi)外邊界形成該零件視圖塊的邊界鏈表。3.1邊界上關(guān)鍵點(diǎn)的數(shù)據(jù)結(jié)構(gòu)typedefstructcHar tag;double x,y,r,r2,angle,twist;TSLoopEdge;在這一表示邊界關(guān)鍵點(diǎn)的數(shù)據(jù)結(jié)構(gòu)中,不僅記錄了構(gòu)成邊界的各點(diǎn)的坐標(biāo),還記錄了與該點(diǎn)與下一點(diǎn)構(gòu)成的曲線邊的基本信息,因此這一點(diǎn)的數(shù)據(jù)結(jié)構(gòu)和下一點(diǎn)的數(shù)據(jù)結(jié)構(gòu)中的坐標(biāo)值唯一決定這一段曲線邊,下面對(duì)該結(jié)構(gòu)各域作具體說明:tag:記錄與下一點(diǎn)共同構(gòu)成的曲線類型;為線段、圓弧、橢圓弧三種,當(dāng)曲線為圓弧、橢圓弧時(shí),還需要其中一空閑數(shù)據(jù)位記錄曲線由該點(diǎn)到下一點(diǎn)是逆時(shí)針方向還是順時(shí)針方向,以確定曲線幾何表示;(x,y):記錄這一點(diǎn)的坐標(biāo)值;r:當(dāng)曲線為圓弧時(shí)記錄其半徑,當(dāng)曲線為橢圓弧時(shí)記錄其半長(zhǎng)軸;r2:當(dāng)曲線為橢圓弧時(shí)記錄其半短軸;angle:當(dāng)曲線為橢圓或圓弧情況時(shí),記錄點(diǎn)對(duì)應(yīng)的參數(shù)角;twist:當(dāng)曲線為橢圓弧時(shí),記錄該橢圓弧的偏轉(zhuǎn)角度。用上面的邊界點(diǎn)的數(shù)據(jù)表示方法,當(dāng)前點(diǎn)的坐標(biāo)、下一點(diǎn)坐標(biāo)以及當(dāng)前點(diǎn)數(shù)據(jù)結(jié)構(gòu)中記錄的曲線邊的幾何參數(shù)可以唯一地決定這段曲線邊。以橢圓弧為例,首先根據(jù)當(dāng)前點(diǎn)的參數(shù)角和橢圓弧的長(zhǎng)短軸數(shù)據(jù),可以計(jì)算出橢圓模型坐標(biāo)系中當(dāng)前點(diǎn)的坐標(biāo),然后根據(jù)橢圓弧偏轉(zhuǎn)角計(jì)算出世界坐標(biāo)系中當(dāng)前點(diǎn)相對(duì)于橢圓心的坐標(biāo),這樣就可以計(jì)算出橢圓心坐標(biāo),再根據(jù)下一點(diǎn)的坐標(biāo)值以及標(biāo)志域中一位記錄的表示橢圓弧幾何形狀的信息,便能唯一確定這段橢圓弧曲線邊。3.2邊界表示數(shù)據(jù)結(jié)構(gòu)零件視圖塊的每一內(nèi)、外邊界采用下面的數(shù)據(jù)結(jié)構(gòu)進(jìn)行表示,若干個(gè)邊界項(xiàng)形成一個(gè)鏈表,完整地表示出零件視圖塊的邊界結(jié)構(gòu)。typedefstructMDSPartLoopHeadsHort tag;long xmin,ymin,xmax,ymax;unsignedsHort HeigHt,PtNum;TSLoopEdge pts;structMDSPartLoopHead next; TSLoopHead;tag:表示消隱時(shí)邊界對(duì)當(dāng)前掃描實(shí)體的是否可能遮擋標(biāo)志,以及表示邊界是外邊界還是內(nèi)邊界;當(dāng)被掃描圖形實(shí)體的消隱高度高于邊界對(duì)應(yīng)的零件視圖塊,或者被掃描圖形實(shí)體在邊界的包圍盒之外時(shí),該邊界對(duì)掃描實(shí)體無(wú)遮擋關(guān)系。(xmin,ymin,xmax,ymax):表示邊界的包圍盒數(shù)據(jù);HeigHt:邊界所在的零件視圖塊的消隱高度;PtNum:邊界的關(guān)鍵點(diǎn)個(gè)數(shù);邊界為1個(gè)圓時(shí)是特殊情況,此時(shí)關(guān)鍵點(diǎn)為圓心,點(diǎn)數(shù)為1。見圖3。 圖3線段被有內(nèi)孔的零件視圖快遮擋pts:邊界的有序關(guān)鍵點(diǎn)數(shù)組首指針;next:下一邊界指針;4裝配消隱的實(shí)現(xiàn)消隱的實(shí)現(xiàn)方法應(yīng)該保持圖形中各個(gè)實(shí)體的幾何數(shù)據(jù)不變,在消隱后圖形可以得到恢復(fù),因此,消隱通過對(duì)實(shí)體的顯示數(shù)據(jù)以及打印數(shù)據(jù)進(jìn)行處理而實(shí)現(xiàn)。由于顯示鏈表中存儲(chǔ)的最終實(shí)體數(shù)據(jù)是離散線段或者填充多邊形,而零件視圖塊邊界對(duì)填充多邊形的裁剪目前是通過邊界對(duì)填充多邊形的各邊的裁剪來(lái)實(shí)現(xiàn)的,因此裝配消隱就轉(zhuǎn)化為零件視圖塊內(nèi)、外邊界間的有效區(qū)域?qū)€段的遮擋問題,其實(shí)質(zhì)為:對(duì)具有一定消隱高度的直線段P1P2和具有一定消隱高度的由外邊界和零或多個(gè)內(nèi)孔構(gòu)成的平面區(qū)域,求線段不被遮擋的部分。假設(shè)一裝配圖具有N條離散直線段,其中l(wèi)i的消隱高度為Hi(i為0到N-1),同時(shí)有M個(gè)零件視圖形成的有效平面區(qū)域,其中j的消隱高度為Hj(j為0到M-1),消隱算法的流程描述如下:for(i=0;ili送入空的緩沖區(qū)1;for(j=0;j緩沖區(qū)2置空wHile(緩沖區(qū)1中有未取的線段)從緩沖區(qū)1取下一條線段Aif(HjHi)/直線段li可能被j遮擋if(線段A在j的包圍盒之內(nèi))求出A在j的外邊界外的部分;依次求出A在j各內(nèi)邊界內(nèi)的部分;兩部分求并集,加入緩沖區(qū)2else把A加入臨時(shí)緩沖區(qū)緩沖區(qū)2送緩沖區(qū)1/緩沖區(qū)1中的線段集就是不被遮擋的li的消隱結(jié)果在系統(tǒng)的新版本中,CTEXT文字是一種新的文字實(shí)體,它具有多個(gè)分離的字符或漢字,因此CTEXT實(shí)體構(gòu)成的零件視圖塊具有多個(gè)外邊界。具有多個(gè)外邊界的零件視圖快的消隱處理,與通常的具有唯一外邊界的零件視圖塊的處理有一定差別,具有一個(gè)外邊界的零件視圖區(qū)域?qū)€段進(jìn)行裁剪時(shí),裁剪結(jié)果是線段在外邊界外的部分與線段在各內(nèi)孔中的部分的并集,而具有多個(gè)外邊界和各自的若干內(nèi)孔邊界的零件視圖區(qū)域?qū)€段進(jìn)行裁剪時(shí),結(jié)果是線段逐一被各個(gè)外邊界內(nèi)區(qū)域裁剪的部分,與原線段在各內(nèi)孔邊界內(nèi)部的部分的并集,前一部分指被上一個(gè)外邊界內(nèi)部區(qū)域裁剪的結(jié)果作為輸入又被下一個(gè)外邊界內(nèi)部區(qū)域進(jìn)行裁剪,以此類推。參考文獻(xiàn):1吳懷軍,孫家廣.基于回溯的參考點(diǎn)邊界搜索算法J.計(jì)算機(jī)研
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 平鄉(xiāng)垃圾分選管理辦法
- 科技項(xiàng)目專家管理辦法
- 肺仟維化中醫(yī)課件
- 口腔護(hù)士種植培訓(xùn)課件
- 鞏義二模初三數(shù)學(xué)試卷
- 高中二檢數(shù)學(xué)試卷
- 定遠(yuǎn)初二數(shù)學(xué)試卷
- 廣東甘肅高考數(shù)學(xué)試卷
- 高2期中數(shù)學(xué)試卷
- 幼師課件制作培訓(xùn)體會(huì)
- 醫(yī)患之間暴力行為預(yù)防與處理管理制度
- 2022年版初中物理課程標(biāo)準(zhǔn)解讀-課件
- MOOC 大學(xué)物理實(shí)驗(yàn)-鄭州大學(xué) 中國(guó)大學(xué)慕課答案
- 眼科臨床路徑培訓(xùn)記錄課件
- 術(shù)后病人燙傷不良事件PDCA循環(huán)分析課件
- 學(xué)校作業(yè)檢查總結(jié)匯報(bào)
- 骨科手術(shù)后的康復(fù)輔助器具和輔助裝置
- 學(xué)校課程體系建設(shè)與調(diào)整情況匯報(bào)
- 鐵路路基施工與維護(hù)習(xí)題集
- 音樂考試真題
- 彩鋼屋面自粘卷材施工方案
評(píng)論
0/150
提交評(píng)論