專利名稱:基于三維vrml模型的虛擬裝配方法
技術(shù)領(lǐng)域:
基于三維VRML模型的虛擬裝配方法屬于計算機輔助協(xié)同產(chǎn)品設計工具領(lǐng)域。
背景技術(shù):
對于異構(gòu)CAD信息的集成問題,目前常用的解決方法是基于STEP標準的信息集成,由于STEP標準仍處于發(fā)展階段,各軟件廠商采用的應用協(xié)議不完全一致,難以做到通用化的集成,而基于點對點的專用化集成方式得到了較好的應用。隨著CAD技術(shù)的不斷發(fā)展,“虛擬工廠”、“動態(tài)企業(yè)聯(lián)盟”等將會是各企業(yè)內(nèi)部和企業(yè)之間的主要工作方式,在這種應用背景下,點對點的專用化集成方法無法滿足要求,而且,基于STEP的CAD模型文件通常比較龐大,受到網(wǎng)絡傳輸速度和容量的限制,也不適合在Internet上傳送。
VRML(虛擬現(xiàn)實建模語言Virtual Reality Modeling Language)格式文件具有交互性強、文件短小、易擴展性強、分布式、平臺無關(guān)等特點,而且它以腳本語言定義的動畫也比其它格式的文件小的多,是目前網(wǎng)絡環(huán)境下描述三維場景的主要語言。VRML作為一種虛擬現(xiàn)實建模語言,提供了適合在Internet上可視化顯示和操縱3D實體模型的理想方式。VRML在Internet上提供了有景深、有立體感的三維世界,使得在Internet上基于3D模型進行可視化協(xié)同成為可能,成為支持協(xié)同設計的一種切實可行的解決方案。同時,VRML受到眾多CAD軟件廠商的支持,目前,主流CAD軟件均提供VRML格式的3D和2D圖形輸出。因此許多網(wǎng)絡化產(chǎn)品協(xié)同設計支持系統(tǒng)采用基于VRML標準的信息集成來解決異構(gòu)CAD信息的集成問題。
對于一個通用型的協(xié)同設計平臺而言,異地協(xié)同虛擬裝配工具是一個非常重要的工具。來自不同平臺的CAD模型,尤其是跨地域、跨平臺的CAD模型,需要在網(wǎng)絡環(huán)境中由單人或多人(包括專家、設計師、銷售人員和用戶)相互協(xié)同進行產(chǎn)品的預裝配,以達到檢驗來自不同任務組的零部件的可裝配性,或?qū)Ξa(chǎn)品進行可視化協(xié)同評價的目的。跨平臺的直接預裝配給基于VRML標準的信息集成帶來了新的挑戰(zhàn)。
VRML在擁有以上適于協(xié)同設計的優(yōu)點,同時也存在某些不足之處,這些不足給異地協(xié)同虛擬裝配帶來了困難。其主要原因是VRML標準化的文件格式,VRML文件的基本格式如下
從上面的格式描述可以看出,對于復雜的零部件其VRML文件都是采用高級造型方式,即通過IndexedFaceSet節(jié)點描述面的形狀并通過面的拼接實現(xiàn)任意形狀的幾何體外觀(如圖1),即使用IndexedFaceSet節(jié)點造型。IndexedFaceSet是由coord域給出一系列的空間點,然后在coordIndex域中對其進行引用,即選取coord域中的某三點構(gòu)成一個三角面片域,這些三角面片就構(gòu)成了我們最終看到的零部件的形體。采用IndexedFaceSet造型幾乎不受形體復雜性的限制,生成的VRML文件也比較簡單和短小。但同時當CAD模型轉(zhuǎn)換為VRML模型之后,將會丟失精確性和具體的裝配特征,從而不利于裝配時對其進行精確的控制,所以采用IndexedFaceSet造型是以犧牲零部件形體的幾何信息參數(shù)為代價的。最終得到的VRML文件中除了記錄了一些三角面片的頂點外,就別無任何其它信息了。并且,一些基于VRML的裝配系統(tǒng)正是收到這種限制,所以只能依托于其它CAD系統(tǒng)的支持而完成裝配操作、裝配規(guī)劃等工作的,VRML模型只是用于瀏覽功能,所以這樣的系統(tǒng)并不是完全的“基于VRML”的結(jié)構(gòu),也不是獨立的系統(tǒng)。這就在系統(tǒng)的使用過程中造成不便,也給系統(tǒng)與其它系統(tǒng)集成帶來困難。
在進行裝配操作時,首先要親自恢復零部件的幾何信息參數(shù),以便完成零部件產(chǎn)品的預裝配。本發(fā)明提出了幾種主要的裝配方法,以滿足大部分虛擬裝配操作的要求,并根據(jù)定位需要,采用同步移動搜索算法計算出軸心等重要幾何信息,實現(xiàn)了對VRML模型的預處理,解決了預裝配操作種缺少幾何信息的問題。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種基于三維VRML模型的虛擬裝配方法。
本發(fā)明特征在于它是一種在計算機網(wǎng)絡上基于虛擬現(xiàn)實建模語言,即VRML格式文件的異地跨平臺協(xié)同直接預裝配方法,它由一下三種裝配方法共同組成,它們各依次含有以下步驟圓柱、軸孔配合,即fit裝配方法,它依次含有以下步驟設定裝配基礎件的一個頂面定位點為P0,一個頂面定位法向量為 三個側(cè)面定位點為P1,P2,P3,三個側(cè)面定位法向量為 零部件軸的一個頂面定位點為Pi0,一個頂面定位法向量 三個側(cè)面定位點Pi1,Pi2,Pi3,三個側(cè)面定位法向量 i為零部件的編號; 與裝配基礎件和零部件的幾何位置有關(guān),可由已有的軟件包Cortona SDK得到,在本申請文件中是給定的;(一)用同步移動搜索算法計算軸心的位置,依次含有一下步驟(1)對各已知定位向量 單位化,再把單位化后的新分量值賦給上述各向量;(2)保持點P1的位置不變,把不在同一平面的點P2,P3投射到與 垂直且點P1所在的平面內(nèi),點P′2,P3′表示點P2,P3在平面ψ內(nèi)的投影,得到 (3)計算 且單位化;(4)計算出ψ平面內(nèi)點P1,P2′,P3′各自沿著所在弦的搜索方向向量 (5)在平面ψ內(nèi)找出點P1,P2′,P3′所在各弦的中點,它依次含有以下步驟(5.1)分別計算P1點的搜索方向向量 和矢量 夾角α的余弦、矢量 與P2′點的搜索方向向量 夾角β的余弦cosα=TP1→·P2′P1→,]]>cosβ=P2′P1→·TP2′→]]>(5.2)比較α,β,根據(jù)比較結(jié)果,移動P1,P2′點若α>β,則把P1,P2′分別移動到P1′,P2″點,移動步長分別為Step·TP1→,Step·TP2′→,]]>即 若α<β,則同α>β時所述,即 再重新計算cosα,cosβ,比較α,β大小,直到α=β,轉(zhuǎn)入下一步;(5.3)分別計算P2′點的搜索方向向量 和矢量 夾角_的余弦、P3′點的搜索方向向量 和矢量 夾角γ的余弦 (5.4)比較γ與_,根據(jù)比較結(jié)果移動P1,P2′,P3′點若γ>_,則把P1,P2′,P3′點分別移至P1′,P2″,P3″點,移動步長分別為Step·TP1→,Step·TP2′→,Step·TP3′→:]]> 若γ<_,則同γ>_所述,即 再重新比較γ與_,直到γ=_,進入下一步驟;(5.5)分別計算點P3′的搜索方向向量 和矢量 的夾角λ的余弦、點P1的搜索方向向量 和矢量 夾角δ的余弦cosλ=TP3′→·P3′P1→,]]>cosδ=TP1→·P3′P1→]]>(5.6)比較λ與δ,根據(jù)比較結(jié)果移動P1,P2′,P3′點若λ>δ,則把P1,P2′,P3′分別移動至P1′,P2″,P3″,移動步長分別為Step·TP1→,Step·TP2′→,Step·TP3′→:]]> 若λ<δ,則同λ>δ所述,即
再重新比較λ與δ,直到λ=δ,進入下一步驟;(6)根據(jù)步驟(5)得到的各弦中點P1,P2′,P3′,計算得圓心PcPc-P1→=|P1-P2→||V1→-V2→|·V1→]]>(二)根據(jù)裝配的條件,計算變換矩陣,完成裝配操作,它依次含有以下步驟(1)單位化步驟(一)得到的所有向量;(2)判別 是否同向或反向若同向,則按下述方法直接作平移計算;若反向,則令旋轉(zhuǎn)角θ=π,以 為軸翻轉(zhuǎn)π角;若不同向也不反向,則轉(zhuǎn)入下一步驟(3)按下式得到的旋轉(zhuǎn)向量 和旋轉(zhuǎn)角θ,再設置旋轉(zhuǎn)域cosθ=Vi0→·V0→,]]>R→=Vi0→×V0→]]>按下式得到第i零部件的變換矩陣Ti[4][4]Ti[4][4]=Rx2+(1-Rx2)cosθRx·Ry(1-cosθ)+Rz·sinθRx·Rz(1-cosθ)-Ry·sinθ0Rx·Ry(1-cosθ)-Rz·sinθRy2+(1-Ry2)cosθRy·Rz(1-cosθ)+Rx·sinθ0Rx·Rz(1-cosθ)+Ry·sinθRy·Rz(1-cosθ)-Rx·sinθRz2+(1-Rz2)cosθ00001]]>(4)按下式把零部件軸的坐標體系Mi[4][4]變換到裝配基礎件坐標體系M[4][4]內(nèi),即M[4][4]=Mi[4][4]×Ti[4][4](5)將Pi0,Pi1,Pi2,Pi3各點分別經(jīng)過旋轉(zhuǎn)變換矩陣Ti[4][4]變換為新的坐標位置
Pi0′,Pi1′,Pi2′,Pi2′,Pi3′;(6)利用同步移動搜索算法分別計算裝配基礎件的軸心Pc和零部件的軸心Pic (7)由下式計算Pi0′,Pic在裝配基礎件坐標系下經(jīng)過平移變換后的位置Pi0*,Pic′ 其中與Pi0′與Pi0′,Pic與Pic′滿足如下關(guān)系(Δx,Δy,Δz未知) 其中,Pi0′(P′i0x,Pi0y′,Pi0z′)為Pi0在零部件坐標系下經(jīng)過旋轉(zhuǎn)變換后的三維坐標;Pi0″(Pi0x′,Pi0y′,Pi0z′)為Pi0′在裝配基礎件坐標系下經(jīng)過平移變換后的三維坐標;Picx,Picy,Picz為Pic在零部件坐標系下的三維坐標;Picx′,Picy′,Pic′在裝配基礎件坐標系下的三維坐標;(8)按下式計算平移域,得到(Δx,Δy,Δz) (9)把Δx,Δy,Δz代入Ti[4][4]得到最終變換矩陣Ti[4][4];Rx2+(1-Rx2)cosθRx·Ry(1-cosθ)+Rz·sinθRx·Rz(1-cosθ)-Ry·sinθ0Rx·Ry(1-cosθ)-Rz·sinθRy2+(1-Ry2)cosθRy·Rz(1-cosθ)+Rx·sinθ0Rx·Rz(1-cosθ)+Ry·sinθRy·Rz(1-cosθ)-Rx·sinθRz2+(1-Rz2)cosθ0ΔxΔyΔz1]]>
(10)將平移域的值(Δx,Δy,Δz)和旋轉(zhuǎn)域的值 寫入VRML模型,完成位置變換實現(xiàn)裝配;(三)Align即面貼和裝配和Against即面對齊裝配,它們依次含有以下步驟(1)對于法向量 構(gòu)成的裝配基礎件坐標系M[4][4],首先判斷 是否正交,若正交,則執(zhí)行下述步驟,否則終止執(zhí)行;(2)對于法向量 構(gòu)成的零部件坐標系Mi[4][4],判斷 是否正交,若正交,則執(zhí)行下述步驟,否則終止執(zhí)行;(3)利用式Ti[4][4]=Mi[4][4]-1×M[4][4]或Ti[4][4]=Mi′[4][4]-1×M[4][4]算出坐標系變換矩陣Ti[4][4]其中,Ti[4][4]=Mi[4][4]-1×M[4][4]由Align的裝配關(guān)系必須滿足的下述關(guān)系式得到M[4][4]=Mi[4][4]×Ti[4][4]Ti[4][4]=Mi′[4][4]-1×M[4][4]由Against的裝配關(guān)系必須滿足的下述關(guān)系式得到M[4][4]=Mi′[4][4]×Ti[4][4](4)Ti[4][4]還可以表示為Ti[4][4]=Rx2+(1-Rx2)cosθRx·Ry(1-cosθ)+Rz·sinθRx·Rz(1-cosθ)-Ry·sinθ0Rx·Ry(1-cosθ)-Rz·sinθRy2+(1-Ry2)cosθRy·Rz(1-cosθ)+Rx·sinθ0Rx·Rz(1-cosθ)+Ry·sinθRy·Rz(1-cosθ)-Rx·sinθRz2+(1-Rz2)cosθ0ΔxΔyΔz1]]>根據(jù)步驟(3)(4)中的Ti[4][4],求出旋轉(zhuǎn)矢量 和轉(zhuǎn)角為θ,以及平移域值(Δx,Δy,Δz);
將旋轉(zhuǎn)域和平移域值寫入VRML模型,完成Against/Align裝配。
實驗證明網(wǎng)絡化產(chǎn)品協(xié)同設計理論及支持系統(tǒng)(CodesignSpace)包括協(xié)同平臺和協(xié)同工具兩個部分,我們將上述基于三維VRML模型的虛擬裝配方法應用于其中的一個協(xié)同工具--Via-VRML(基于VRML的虛擬裝配系統(tǒng))——的開發(fā),本發(fā)明有效地實現(xiàn)了對不同CAD系統(tǒng)生成的VRML模型文件進行幾何信息恢復預處理和裝配操作,成為該系統(tǒng)實現(xiàn)異構(gòu)CAD系統(tǒng)生成零部件的裝配和異地用戶的協(xié)同裝配的關(guān)鍵技術(shù)。目前該系統(tǒng)已通過專家組驗收。以下是該系統(tǒng)的一些運行實例。
表1是Via-VRML的運行環(huán)境表1 Via-VRML運行環(huán)境
本算法對于VRML這種適于在網(wǎng)絡上傳輸?shù)娜S模型進行分析和計算,能夠恢復其主要幾何信息,使其在具有豐富網(wǎng)絡瀏覽功能的基礎上又具有了可裝配性,使得網(wǎng)絡化的協(xié)同裝配成為可能。本算法完全基于向量空間,采用搜索比較方式大大降低了計算難度,具有易于實現(xiàn),計算效率高的優(yōu)點。如果定義誤差計算公式如下
同步移動搜索算法的計算誤差在0.02%以下。Fit、Align、Against三種裝配方法能夠有效準確實現(xiàn)裝配的約束。綜上所述,這幾種基于三維VRML模型的虛擬裝配方法可以完成對異構(gòu)CAD系統(tǒng)生成VRML模型的完整裝配操作,使異地的協(xié)同裝配成為可能,可普遍應用于基于網(wǎng)絡的虛擬設計系統(tǒng)。
圖1VRML模型的特點。
圖2常用的三種裝配方法。
圖3裝配基礎件坐標系及其初始幾何數(shù)據(jù)。
圖4零部件坐標系及其初始幾何數(shù)據(jù)。
圖5裝配基礎件坐標系與零部件坐標系裝配結(jié)果。
圖6將P2,P3投射到ψ平面內(nèi)。
圖7ψ平面內(nèi)各參量。
圖8步長搜索結(jié)果及計算軸心各量關(guān)系。
圖9同步移動搜索算法計算軸心程序流程圖。
圖10fit裝配流程圖。
圖11Align/Against裝配流程圖。
圖12Via-VRML的運行界面。
圖13Align與Against的裝配結(jié)果。
圖14、15fit的裝配方式及裝配結(jié)果。
具體實施例方式
零部件模型的裝配最后要落實到零部件表面的幾何約束上。裝配方法有許多種,常用的主要有面貼合(Against),軸對齊(Fit),面對齊(Align)三種。
約定點P1與 所在的體為裝配基礎件, 為所在平面的法向量,點Pi1與 所在的體為零部件(Pi0,Pi1,Pi2,Pi3, 表示第i個零部件的定位點和定位法向量), 為所在平面的法向量,裝配操作是將零部件裝配到裝配基礎件上。
1.Against-面貼合實現(xiàn)貼面裝配(圖2(a))需要滿足兩個約束1)端面重合 2)端面法矢方向相反 2.Align-面對齊實現(xiàn)平面對齊(圖2(b))同樣需要滿足兩個約束1)表面平齊 2)面法矢方向一致 從圖形變換的角度面對齊與面貼合是相同的,只是面法矢由反向變?yōu)橥颉?br>
3.Fit-圓柱軸孔配合實現(xiàn)軸、孔配合(圖2(c))Pc為裝配基礎件軸線上一點,Pic為零部件軸線上一點,同樣需要滿足兩個約束1)圓柱、圓柱孔軸線對齊Pc-Pic→×V0→=0]]>2)端部面貼合P0-Pi0→·V0→=0]]>本發(fā)明的實現(xiàn)方法如下(一)同步移動搜索算法計算軸心首先通過選取裝配基礎件的一個頂面定位點P0,一個頂面定位法向量 和三個側(cè)面定位點P1,P2,P3三個側(cè)面定位法向量 同樣,選取零部件的一個頂面定位點Pi0,一個頂面定位法向量 和三個側(cè)面定位點Pi1,Pi2,Pi3,三個側(cè)面定位法向量 (Pi0,Pi1,Pi2,Pi3, 表示第i個零部件的定位點和定位方向)。大致情況如圖3,圖4所示。
計算軸心時,以裝配基礎件為例,已知幾何條件如上所述,首先將不在同一平面的P1,P2,P3映射到與 垂直的ψ平面內(nèi)P2′,P3′點(見圖6),由VRML模型的幾何特征可知P1,P2′,P3′在以軸心為圓心,以軸橫截面半徑為外切圓半徑的正多邊形的弦上,所以應首先將在弦上位置任意的P1,P2′,P3′移至各自所在弦的中點,其方法大致為首先計算出P1,P2,P3各自的搜索方向向量 (即P1,P2′,P3′移動的方向),把平面的已知條件整理如圖7,依照以下步驟進行循環(huán)搜索,即可使P1,P2′,P3′到達各自所在弦的中點,最后根據(jù)簡單的幾何關(guān)系計算得到軸心,具體步驟如下(1)為了方便計算,首先要對各已知定位向量 進行單位化,以 為例,設 在x,y,z方向上的分量為(V1x,V1y,V1z),單位化公式如下
將單位化后的新分量值再賦給 即 對 進行類似 的操作;(2)將不在同一平面的P1,P2,P3映射到與 垂直的同一平面,為了便于幾何計算,保持P1位置不變,將P2,P3投射到與 垂直,P1所在的平面ψ內(nèi),如圖6所示,關(guān)系如下, 利用式表示的關(guān)系即可將P2,P3映射到與 垂直,P1所在的平面ψ內(nèi)的P2′,P3′點;(3)計算三點各自的連線方向,用于后面計算 單位化P1P2′→,P2′P3′→,P3′P1→;]]>(4)計算出P1,P2′,P3′各自的移動搜索方向向量 如下式,使P1,P2′,P3′分別同時沿 按照指定步長移動至弦中點; (5)得到平面ψ內(nèi)各參量的初始情況如圖7;(6)計算cosα=TP1→·P1P2′→]]>和cosβ=P1P2′→·TP2′→,]]>得到cosα和cosβ值;(7)比較α,β,根據(jù)比較結(jié)果移動P1,P2′點,具體如下(Step為搜索步長,其具體值可由計算精度要求及VRML模型幾何尺寸確定)
如果α=β,則進入步驟(8)設P1′,P2″為P1,P2′移動后的新位置,如果α>β,則令 如果α<β,則令 令P1=P1′,P2′=P2″,P1P2′→=P2′-P1→]]>重復步驟(6),(7)直到α=β,進入步驟(8)(8)同理計算cosγ,cos_,然后移動P1,P2′,P3′,使γ=_如果γ=_,則進入步驟(9)設P1′,P2″,P3″,為P1,P2′,P3′移動后的新位置,如果γ>_,則令 如果γ<_,則令 令P1=P1′,P2=P2,P3=P3′,P2′P3′→=P3′-P2′→,]]>重復步驟(8)直到γ=_,進入步驟(8)(9)同理計算cosδ,cosλ,然后移動P1,P1,P2′,P3′,使δ=λ如果δ=λ,則進入步驟(10)設P1′,P2″,P3″為P1,P2′,P3′移動后的新位置,
如果λ>δ,則令 如果λ<δ,則令 令P1=P1′,P2′=P2″,P3′=P3″,P3′P1→=P1-P3′→]]>重復步驟(9)直到δ=λ,進入步驟(10);(10)計算軸心Pc。得到P1,P2′,P3′現(xiàn)均為各弦中點,如圖8所示,可由比例相似得到Pc-P1→=|P1-P2|→|V1→-V2→|·V1→,]]>Pc即為軸心。
同步移動搜索算法的流程如圖9依據(jù)同步移動搜索算法確定軸心的位置后,根據(jù)頂面定位法向量計算旋轉(zhuǎn)軸 和旋轉(zhuǎn)角θ,然后得到旋轉(zhuǎn)變換矩陣Ti[4][4],利用Ti[4][4]對零部件坐標系進行旋轉(zhuǎn)變換,最后根據(jù)裝配約束的條件計算平移域值(Δx,Δy,Δz),將旋轉(zhuǎn)域值的旋轉(zhuǎn)軸 旋轉(zhuǎn)角θ和平移域值(Δx,Δy,Δz)寫入VRML模型文件,完成裝配的操作。具體步驟如下(1)單位化所有向量。
(2)判斷兩個頂面定位向量 和 是否同向或反向,因為這屬于變換中的特殊情況(此時叉積為0,無法求出旋轉(zhuǎn)軸),要首先排除。如同向則直接進行平移計算,不用指定旋轉(zhuǎn)軸和旋轉(zhuǎn)角;如反向則直接令θ=π,指定 為旋轉(zhuǎn)軸(見圖5);(3)如既不同向也不反向,則由式得到旋轉(zhuǎn)軸向量 和旋轉(zhuǎn)角θ,然后進行旋轉(zhuǎn)域的設置;
cosθ=Vi0→·V0→]]>R→=Vi0→×V0→]]>(4)由上面得到旋轉(zhuǎn)軸向量 和旋轉(zhuǎn)角θ,由計算機圖形學知識,而Ti[4][4]可由向量 和旋轉(zhuǎn)角θ確定,于是得旋轉(zhuǎn)矩陣Ti[4][4](Ti[4][4]為第i個零部件坐標系與裝配基礎件之間的變換矩陣)Rx2+(1-Rx2)cosθRx·Ry(1-cosθ)+Rz·sinθRx·Rz(1-cosθ)-Ry·sinθ0Rx·Ry(1-cosθ)-Rz·sinθRy2+(1-Ry2)cosθRy·Rz(1-cosθ)+Rx·sinθ0Rx·Rz(1-cosθ)+Ry·sinθRy·Rz(1-cosθ)-Rx·sinθRz2+(1-Rz2)cosθ00001]]>得到Ti[4][4]即為裝配基礎件坐標系M[4][4](可未知)與零部件坐標系Mi[4][4](可未知)之間的變換矩陣,即M[4][4]=Mi[4][4]×Ti[4][4]求出了Ti[4][4]即可將零部件坐標系內(nèi)的任何點變換到裝配基礎件坐標系內(nèi);(5)將Pi0,Pi1,Pi2,Pi3各點分別經(jīng)過旋轉(zhuǎn)變換矩陣Ti[4][4]變換為新的坐標位置Pi0′,Pi1′,Pi2′,Pi3′;(6)使用上述同步移動搜索算法分別計算裝配基礎件和零部件的軸心Pc,Pic;(7)由下式計算Pi0′,Pic在裝配基礎件坐標系下經(jīng)過平移變換后的位置Pi0″,Pic′ 其中Pi0′與Pi0″,Pic與Pic′滿足如下關(guān)系(Δx,Δy,Δz未知)
(8)計算平移域,得到(Δx,Δy,Δz) (9)得到最終的變換矩陣Ti[4][4]Rx2+(1-Rx2)cosθRx·Ry(1-cosθ)+Rz·sinθRx·Rz(1-cosθ)-Ry·sinθ0Rx·Ry(1-cosθ)-Rz·sinθRy2+(1-Ry2)cosθRy·Rz(1-cosθ)+Rx·sinθ0Rx·Rz(1-cosθ)+Ry·sinθRy·Rz(1-cosθ)-Rx·sinθRz2+(1-Rz2)cosθ0ΔxΔyΔz1]]>(10)將平移域的值(Δx,Δy,Δz)和旋轉(zhuǎn)域的值 寫入VRML模型,完成位置變換實現(xiàn)裝配。
將軸裝配算法的流程如圖10(二)Align、Against裝配方法在虛擬裝配系統(tǒng)中,面對面的裝配所要實現(xiàn)的是將“平移域”和“旋轉(zhuǎn)域”都不同的兩個物體按照一定的裝配約束裝配到一起。
首先得到裝配基礎件的三個定位點P1,P2,P3和三個定位法向量 和零部件的三個定位點Pi1,Pi2,Pi3和三個定位法向量 由此得到裝配基礎件的坐標系為M[4][4],且M[4][4]可表示為M[4][4]=V1xV1yV1z0V2xV2yV2z0V3xV3yV3z00001]]>其中V1x,V1y,V1z為 在x,y,z方向上的各分量,其它類似。
零部件的坐標系為Mi[4][4],Mi[4][4]可表示為Mi[4][4]=Vi1xVi1yVi1z0Vi2xVi2yVi2z0Vi3xVi3yVi3z00001]]>裝配操作本質(zhì)上就是將零部件的坐標矩陣Mi[4][4]通過變換成為與裝配基礎件的坐標矩陣M[4][4]同向(Align)或某一個方向相反(Against)。設該變換矩陣為Ti[4][4]。Align的裝配關(guān)系下三個矩陣滿足如下關(guān)系M[4][4]=Mi[4][4]×Ti[4][4]Against的裝配關(guān)系下三個矩陣滿足如下關(guān)系M[4][4]=Mi′[4][4]×Ti[4][4](Mi′[4][4]與Mi[4][4]某一個向量方向相反)由于Mi[4][4]、Mi′[4][4]均已知,由上式可以得到Ti[4][4]Ti[4][4]=Mi[4][4]-1×M[4][4] (1)或Ti[4][4]=Mi′[4][4]-1×M[4][4]如果旋轉(zhuǎn)變換的軸為 旋轉(zhuǎn)角為θ;X,Y,Z方向上的平移量為(Δx,Δy,Δz),則Ti[4][4]還可表示為Rx2+(1-Rx2)cosθRx·Ry(1-cosθ)+Rz·sinθRx·Rz(1-cosθ)-Ry·sinθ0Rx·Ry(1-cosθ)-Rz·sinθRy2+(1-Ry2)cosθRy·Rz(1-cosθ)+Rx·sinθ0Rx·Rz(1-cosθ)+Ry·sinθRy·Rz(1-cosθ)-Rx·sinθRz2+(1-Rz2)cosθ0ΔxΔyΔz1----(2)]]>這樣便在裝配關(guān)系與VRML模型旋轉(zhuǎn)平移域值之間找到了關(guān)系,只要通過式(1)得到Ti[4][4]矩陣的值,再通過式(1)與式(2)的等量關(guān)系解出旋轉(zhuǎn)變換的軸向量(Rx,Ry,Rz)、旋轉(zhuǎn)角θ和平移域(Δx,Δy,Δz),照一定的位置約束實現(xiàn)Align及Against方式的預裝配。如果給了一定的偏移值,此算法還可以擴展到有一定位移間距的裝配。具體步驟如下(1)法向量 構(gòu)成的裝配基礎件坐標系M[4][4],首先判斷 是否正交,若正交,繼續(xù)計算,否則終止計算;(2)法向量 構(gòu)成的零部件坐標系Mi[4][4],判斷 是否正交,若正交,繼續(xù)計算,否則終止計算;(3)利用式Ti[4][4]=Mi[4][4]-1×M[4][4]或Ti[4][4]=Mi′[4][4]-1×M[4][4]求出坐標系變換矩陣Ti[4][4];(4)由Ti[4][4]=Rx2+(1-Rx2)cosθRx·Ry(1-cosθ)+Rz·sinθRx·Rz(1-cosθ)-Ry·sinθ0Rx·Ry(1-cosθ)-Rz·sinθRy2+(1-Ry2)cosθRy·Rz(1-cosθ)+Rx·sinθ0Rx·Rz(1-cosθ)+Ry·sinθRy·Rz(1-cosθ)-Rx·sinθRz2+(1-Rz2)cosθ0ΔxΔyΔz1]]>求出旋轉(zhuǎn) 和旋轉(zhuǎn)θ,以及平移域值(Δx,Δy,Δz);(5)將旋轉(zhuǎn)域和平移域值寫入VRML模型,完成Against/Align裝配。Align、Against裝配方法算法的流程如圖11。
權(quán)利要求
1.基于三維VRML模型的虛擬裝配方法,其特征在于,它是一種在計算機網(wǎng)絡上基于虛擬現(xiàn)實建模語言,即VRML格式文件的異地跨平臺協(xié)同直接預裝配方法,它由一下三種裝配方法共同組成,它們各依次含有以下步驟圓柱、軸孔配合,即fit裝配方法,它依次含有以下步驟設定裝配基礎件的一個頂面定位點為P0,一個頂面定位法向量為 三個側(cè)面定位點為P1,P2,P3,三個側(cè)面定位法向量為 零部件軸的一個頂面定位點為Pi0,一個頂面定位法向量 三個側(cè)面定位點Pi1,Pi2,Pi3,三個側(cè)面定位法向量 i為零部件的編號; 與裝配基礎件和零部件的幾何位置有關(guān),可由已有的軟件包Cortona SDK得到,在本申請文件中是給定的;(一)用同步移動搜索算法計算軸心的位置,依次含有一下步驟(1)對各已知定位向量 單位化,再把單位化后的新分量值賦給上述各向量;(2)保持點P1的位置不變,把不在同一平面的點P2、P3投射到與 垂直且點P1所在的平面內(nèi),點P′2,P′3表示點P2,P3在平面ψ內(nèi)的投影,得到 (3)計算 且單位化;(4)計算出ψ平面內(nèi)點P1,P′2,P′3各自沿著所在弦的搜索方向向量 (5)在平面ψ內(nèi)找出點P1,P′2,P′3所在各弦的中點,它依次含有以下步驟(5.1)分別計算P1點的搜索方向向量 和矢量 夾角α的余弦、矢量 與P′2點的搜索方向向量 夾角β的余弦cosα=TP1→·P2′P1→,]]>cosβ=P2′P1→·TP2′→]]>(5.2)比較α,β,根據(jù)比較結(jié)果,移動P1,P′2點若α>β,則把P1,P′2分別移動到P′1,P″2點,移動步長分別為 即 若α<β,則同α>β時所述,即 再重新計算cosα,cosβ,比較α,β大小,直到α=β,轉(zhuǎn)入下一步;(5.3)分別計算P′2點的搜索方向向量 和矢量 夾角_的余弦、P′3點的搜索方向向量 和矢量 夾角γ的余弦 cosγ=TP3′→·P2′P3′→]]>(5.4)比較γ與_,根據(jù)比較結(jié)果移動P1,P′2,P′3點若γ>_,則把P1,P′2,P′3點分別移至P′1,P″2,P″3點,移動步長分別為 若γ<_,則同γ>_所述,即 再重新比較γ與_,直到γ=_,進入下一步驟;(5.5)分別計算點P′3的搜索方向向量 和矢量 的夾角λ的余弦、點P1的搜索方向向量 和矢量 夾角δ的余弦cosλ=TP3′→·P3′P1→,]]>cosδ=TP1→·P3′P1→]]>(5.6)比較λ與δ,根據(jù)比較結(jié)果移動P1,P′2,P′3點若λ>δ,則把P1,P′2,P′3分別移動至P′1,P″2,P″3,移動步長分別為 若λ<δ,則同λ>δ所述,即 再重新比較λ與δ,直到λ=δ,進入下一步驟;(6)根據(jù)步驟(5)得到的各弦中點P1,P′2,P′3,計算得圓心PcPc-P1→=|P1-P2→||V1→-V2→|·V1→]]>(二)根據(jù)裝配的條件,計算變換矩陣,完成裝配操作,它依次含有以下步驟(1)單位化步驟(一)得到的所有向量;(2)判別 是否同向或反向若同向,則按下述方法直接作平移計算;若反向,則令旋轉(zhuǎn)角θ=π,以 為軸翻轉(zhuǎn)π角;若不同向也不反向,則轉(zhuǎn)入下一步驟(3)按下式得到的旋轉(zhuǎn)向量 和旋轉(zhuǎn)角θ,再設置旋轉(zhuǎn)域cosθ=Vi0→·V0→,]]>R→=Vi0→×V0→]]>按下式得到第i零部件的變換矩陣Ti[4][4]Ti[4][4]=Rx2+(1-Rx2)cosθRx·Ry(1-cosθ)+Rz·sinθRx·Rz(1-cosθ)-Ry·sinθ0Rx·Ry(1-cosθ)-Rz·sinθRy2+(1-Ry2)cosθRy·Rz(1-cosθ)+Rx·sinθ0Rx·Rz(1-cosθ)+Ry·sinθRy·Rz(1-cosθ)-Rx·sinθRz2+(1-Rz2)cosθ00001]]>(4)按下式把零部件軸的坐標體系Mi[4][4]變換到裝配基礎件坐標體系M[4][4]內(nèi),即M[4][4]=Mi[4][4]×Ti[4][4](5)將Pi0,Pi1,Pi2,Pi3各點分別經(jīng)過旋轉(zhuǎn)變換矩陣Ti[4][4]變換為新的坐標位置P′i0,P′i1,P′i2,P′i3;(6)利用同步移動搜索算法分別計算裝配基礎件的軸心Pc和零部件的軸心Pic (7)由下式計算P′i0,Pic在裝配基礎件坐標系下經(jīng)過平移變換后的位置P″i0,P′ic 其中與P′i0與P″i0,Pic與P′ic滿足如下關(guān)系(Δx,Δy,Δz未知) 其中,P′i0(P′i0x,P′i0y,P′i0z)為Pi0在零部件坐標系下經(jīng)過旋轉(zhuǎn)變換后的三維坐標;P″i0(P′i0x,P′i0y,P′i0z)為P′i0在裝配基礎件坐標系下經(jīng)過平移變換后的三維坐標;Picx,Picy,Picz為Pic在零部件坐標系下的三維坐標;P′icx,P′icy,P′icz為P′ic在裝配基礎件坐標系下的三維坐標;(8)按下式計算平移域,得到(Δx,Δy,Δz) (9)把Δx,Δy,Δz代入Ti[4][4]得到最終變換矩陣Ti[4][4];Rx2+(1-Rx2)cosθRx·Ry(1-cosθ)+Rz·sinθRx·Rz(1-cosθ)-Ry·sinθ0Rx·Ry(1-cosθ)-Rz·sinθRy2+(1-Ry2)cosθRy·Rz(1-cosθ)+Rx·sinθ0Rx·Rz(1-cosθ)+Ry·sinθRy·Rz(1-cosθ)-Rx·sinθRz2+(1-Rz2)cosθ0ΔxΔyΔz1]]>(10)將平移域的值(Δx,Δy,Δz)和旋轉(zhuǎn)域的值 寫入VRML模型,完成位置變換實現(xiàn)裝配;(三)Align即面貼和裝配和Against即面對齊裝配,它們依次含有以下步驟(1)對于法向量 構(gòu)成的裝配基礎件坐標系M[4][4],首先判斷 是否正交,若正交,則執(zhí)行下述步驟,否則終止執(zhí)行;(2)對于法向量 構(gòu)成的零部件坐標系Mi[4][4],判斷 是否正交,若正交,則執(zhí)行下述步驟,否則終止執(zhí)行;(3)利用式Ti[4][4]=Mi[4][4]-1×M[4][4]或Ti[4][4]=M′i[4][4]-1×M[4][4]算出坐標系變換矩陣Ti[4][4]其中,Ti[4][4]=Mi[4][4]-1×M[4][4]由Align的裝配關(guān)系必須滿足的下述關(guān)系式得到M[4][4]=Mi[4][4]×Ti[4][4]Ti[4][4]=M′i[4][4]-1×M[4][4]由Against的裝配關(guān)系必須滿足的下述關(guān)系式得到M[4][4]=M′i[4][4]×Ti[4][4](4)Ti[4][4]還可以表示為Ti[4][4]=Rx2+(1-Rx2)cosθRx·Ry(1-cosθ)+Rz·sinθRx·Rz(1-cosθ)-Ry·sinθ0Rx·Ry(1-cosθ)-Rz·sinθRy2+(1-Ry2)cosθRy·Rz(1-cosθ)+Rx·sinθ0Rx·Rz(1-cosθ)+Ry·sinθRy·Rz(1-cosθ)-Rx·sinθRz2+(1-Rz2)cosθ0ΔxΔyΔz1]]>根據(jù)步驟(3)(4)中的Ti[4][4],求出旋轉(zhuǎn)矢量 和轉(zhuǎn)角為θ,以及平移域值(Δx,Δy,Δz);(5)將旋轉(zhuǎn)域和平移域值寫入VRML模型,完成Against/Align裝配。
全文摘要
基于三維VRML模型的虛擬裝配方法,其特征在于,它是一種在計算機網(wǎng)絡上基于虛擬現(xiàn)實建模語言的異地跨平臺協(xié)同直接預裝配的方法,它能夠恢復基礎裝配件和零部件的主要幾何信息使VRML在具有網(wǎng)絡瀏覽功能的同時又具有可裝配性。它提出了圓柱軸孔配合、面貼面配合、面對齊配合共三種裝配方法,能夠準確地實現(xiàn)裝配的約束,完成對異構(gòu)CAD系統(tǒng)生成VRML模型的完整裝配操作,實現(xiàn)異地協(xié)同裝配,具有易于實現(xiàn),計算效率高的優(yōu)點,計算誤差在0.02%以下,可普遍用于基于網(wǎng)絡的虛擬設計系統(tǒng)。
文檔編號G06F17/50GK1564165SQ200410033618
公開日2005年1月12日 申請日期2004年4月13日 優(yōu)先權(quán)日2004年4月13日
發(fā)明者田凌, 王巧玉, 尤國平, 陳繼忠, 童秉樞 申請人:清華大學