两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

具有若干面的模型化對象的計算機輔助設計方法

文檔序號:6558131閱讀:246來源:國知局
專利名稱:具有若干面的模型化對象的計算機輔助設計方法
技術領域
本發(fā)明涉及計算機程序和系統(tǒng)的領域,更具體而言涉及計算機輔助設計(CAD)系統(tǒng)和計算機輔助制造(CAM)的領域。
背景技術
市場上提供了許多用于設計部件或部件的組合的系統(tǒng)和程序,諸如達索系統(tǒng)公司(DASSAULT SYSTEMES)所提供的商標為CATIA的系統(tǒng)和程序。這些所謂的計算機輔助設計(CAD)系統(tǒng)允許用戶構建和操縱對象或對象的組合的復雜的三維(3D)模型。這樣CAD系統(tǒng)使用邊或線,在某些情況下使用面,提供了模型化對象的表示。線或邊可以以各種方式表示,例如非均勻有理B樣條(non-uniform rationalB-splines,NURBS)。這些CAD系統(tǒng)管理作為模型化對象的部件或部件的組合,其主要是幾何形狀的規(guī)范。特別地,CAD文件包含從其生成幾何形狀的規(guī)范。從幾何形狀生成了表示。規(guī)范、幾何形狀和表示可以存儲在一個或多個CAD文件中。CAD系統(tǒng)包括用于向設計者展示模型化對象的圖形工具;這些工具用于復雜對象的顯示——CAD系統(tǒng)中表示對象的文件的典型大小是在每個部件一兆字節(jié)的范圍內,并且組合可以包括數千個部件。CAD系統(tǒng)管理存儲在電子文件中的對象的模型。
顯然,至少對于一些應用來說,在CAD系統(tǒng)的幫助下設計的模型化對象旨在盡可能接近地模擬最終制造的產品。
例如,在產品/部件模制領域中使用模具,所述模具可以看作是可能由銳邊分開的連續(xù)面。然而真實的邊例如真實模具的邊并不是完全的銳邊,而是呈現(xiàn)稍稍被倒圓或被倒角的截面。因此,當在相應的理論模型中忽略這樣的特征時,需要用于模制的材料的用量與理論模型的期望用量稍稍不同。顯然,只要真實對象和模型化對象之間的總體一致性是關注的焦點,這樣的細節(jié)可以被看作是無關緊要的。然而,當考慮大量/連續(xù)生產時,例如在一年期間用于生產所必需的材料的理論和實際用量之間的差異是相當大的,這變得重要起來。作為一個簡單例子,讓我們考慮邊長為L的立方體模制產品的大量生產。隨著實際模制而產生的立方體的十二條邊的倒圓(有時被稱為“磨斜邊”)總計去除了3Lr2(4-π)的體積,其中r是密切圓的半徑。因此,例如考慮r=L/10,完美立方體的體積和最終產品的體積之間的差值總計約為2.6%。所以,可以理解需要盡可能可靠地預測最終“實際”產品的特征,應當提高預測。換句話說,必須提高理論模型和實際模型之間的一致性。在這方面以及對于一些特定應用,例如可制造性或美學原因,CAD用戶有時必須用倒圓邊代替理論模具或產品的銳邊。
為了實現(xiàn)該目標,傳統(tǒng)的建模方法是逐一地創(chuàng)建產品邊緣的倒圓狀截面(應用于所有凸邊上的半徑)或倒角狀截面(例如,應用于凹邊上的半徑)。如圖1所示,模型產品10因此可以呈現(xiàn)倒角狀截面12(以下稱為“倒角(fillet)”)和/或倒圓截面14(以下稱為“倒圓(round)”)。
圖2以逐一的過程顯示了模型產品10的倒圓14和倒角12的設計步驟的典型結果。當模型的元件數量增加時,根據這樣的過程產生倒圓和/或倒角很快變得非常復雜。用戶必須考慮到步驟的一定順序,而該順序可能會根據模型化對象而改變。否則,倒圓或倒角設計可能失敗。模型化對象的復雜性(邊、角隅區(qū)(corner area)等的多樣性)可能是失敗的另一原因。特別地,模制邊緣相交處(角隅,困難區(qū)域等)的倒圓或倒角是一種痛苦。此外,傳統(tǒng)的倒角處理限制模型由每個操作之間的有效封閉幾何形狀構成(由于所使用的算法的內在限制)。這種限制常常導致手動倒角或倒圓失敗。為了避免該情況,用戶不得不花費大量的時間以便確定需要修改銳邊的倒角或倒圓的創(chuàng)建順序。
所以,需要一種解決方案來提高產品表面精細設計的效率,尤其是提高倒圓和/或倒角處理的效率。

發(fā)明內容
為了該目標,本發(fā)明建議了具有若干面的模型化對象的計算機輔助設計方法,該方法包括以下步驟-對于所述面中的每個面,根據幾何學標準識別與所述面相關的所述若干面中的至少另一個面;-計算形成所述若干面中的每個面的網格狀表示的多個點;-對于所述若干面中的每個面;對于所述面的所示網格狀表示的每個點;確定和存儲數據,該數據代表與所述點相接觸的三維幾何圖形和被識別為與所述面相關的另一個面之間的相交;-根據它們各自存儲的數據計算點之間的邊界;-根據所述計算的邊界確定區(qū)域;以及-根據所述確定的區(qū)域計算新面。
在其它實施例中,根據本發(fā)明的處理可以包括以下特征中的一個和多個-形成所述計算的網格狀表示的所述多個點中的每個點是網格狀多邊形的頂點;-所述計算邊界的步驟包括確定連接頂點的線段上的邊界點,所述頂點具有分別指示相交和不相交的存儲數據;-所述計算邊界的步驟包括,在計算所述邊界點之前,細分具有頂點的多邊形,所述頂點具有分別指示相交和不相交的存儲數據;-所述數據代表所述圖形和所述另一個面之間的所述相交的量;-所述方法還包括步驟用戶選擇不被處理的面并且隨后從待處理的面中去除該面;-所述方法還包括步驟外推與被去除的所述面鄰近的多個面;-所述幾何學標準至少包括待被識別為相關面的所述面的外角在180.5°至360°之間;-對于與經由用戶選擇的面相關的若干面的每一配對,還執(zhí)行所述確定和存儲代表相交的數據的步驟;-所述確定區(qū)域的步驟包括通過使用函數f1和條件C1調用配對例程確定一個或多個區(qū)域,所述區(qū)域包括一條邊并且具有倒角狀或倒圓狀截面;
-所述確定區(qū)域的步驟包括通過使用函數f2和條件C2調用配對例程確定一個或多個區(qū)域,所述區(qū)域包括兩條邊并且具有臺階狀截面,所述兩條邊具有小于與所述三維對象相關的尺寸的最小距離;-所述確定區(qū)域的步驟包括通過使用函數f3和條件C3調用配對例程確定一個或多個區(qū)域,所述區(qū)域包括由至少兩條邊分離的兩個基本平行的面部分并且具有壁狀截面,所述兩條邊具有小于與所述三維對象相關的尺寸的最小距離;-所述確定區(qū)域的步驟包括通過使用函數f1和條件C1調用配對例程確定一個或多個區(qū)域,所述區(qū)域包括一條邊并且具有倒角狀或倒圓狀截面;然后通過分別使用函數f2和條件C2或者函數f3和條件C3調用配對例程確定一個或多個區(qū)域,所述區(qū)域包括兩條邊并且分別具有臺階狀截面或者壁狀截面,所述兩條邊具有小于與所述三維對象相關的尺寸的最小距離;-所述確定區(qū)域的步驟還包括根據所述已經確定的一個或多個區(qū)域和所述計算出的邊界確定一個或多個剩余區(qū)域;-所述調用的配對例程包括對于每個邊界Fi;對于所述邊界Fi的每個點Pi,j;對于不同于所述邊界Fi的邊界Fk;對于所述邊界Fk的每個點Pk,l;根據正在被確定的一個或多個區(qū)域來計算yi,j,k,l=fm(Pi,j,Pk,l),其中fm是所述函數f1,f2或f3;根據正在被確定的所述一個或多個區(qū)域來選擇使yi,j,k,l-1和yi,j,k,l滿足所述條件Cm的一個或多個特殊配對Pk,l-1*和Pk,l*,其中Cm是所述條件C1,C2或C3;根據進一步的條件Cs在所述一個或多個特殊配對Pk,l-1*和Pk,l*中選擇特殊點Pk,l***;存儲所述配對Pi,j,Pk,l***。
-對于每個確定區(qū)域,所述計算新面的步驟調用適合所述確定區(qū)域的類型的面計算例程;
-所述方法還包括根據所述計算的新面修改模型化對象數據面的步驟;-所述三維幾何圖形包括半徑為r的球面,該球面在所述面的所述網格狀表示的所述點處與所述面相接觸;-所述三維幾何圖形包括半徑分別為rx和rc的兩個球面,所述球面在所述面的所述網格狀表示的所述點處相切;以及-所述三維幾何圖形包括錐面,并且其中,在所述確定和存儲代表三維幾何圖形的相交的數據的步驟中,所述圖形與所述點相接觸并且被賦予特定的縱向和橫向角。
本發(fā)明還涉及執(zhí)行本發(fā)明的方法的計算機程序。


現(xiàn)在參考附圖討論本發(fā)明的各個實施例,其中圖1是具有倒圓和倒角的模型化工件體的舉例顯示;圖2顯示了根據現(xiàn)有技術的逐一倒圓/倒角設計;圖3-7顯示了表示根據本發(fā)明的實施例的模型化對象的計算機輔助設計步驟的流程圖;圖8是表示在圖5中調用的配對例程的步驟的流程圖;圖9A-B示意性地示出了當從待處理的面去除一個面時工件體的設計管理的一個例子;圖10A-C例舉了具有裂片和裂縫的工件體的設計管理;圖11概述了三維幾何圖形和工件體面之間的相交,作為根據實施例的方法的一部分;圖12A-C圖示了在一個實施例中的邊界的提??;圖13A-E示出了在一個實施例中的配對步驟;圖14A-B例舉了具有各種邊部分的工件體的設計管理。
具體實施例方式
本發(fā)明涉及具有若干面的模型化對象的計算機輔助設計方法。該方法包括識別步驟,對于對象的所述若干面中的每個面,根據幾何標準識別與該面相關的所述若干面中的至少另一個面。由此將面標記為連接的。這是用于執(zhí)行該方法的隨后步驟所需的“拓撲預處理”的一部分。例如,所述標準可以涉及待識別的面的外角。該方法還包括計算形成所述面中的每個面的網格狀表示的多個點的步驟?;谠摼W格,該方法根據上述識別步驟通過確定和存儲數據來表征臨界區(qū),所述數據代表三維(3D)幾何圖形(接觸給定面)和與所述面相關的一個面之間的相交。對于一個面的網格狀表示的每個點和對于對象的每個面執(zhí)行確定是否出現(xiàn)相交的步驟。優(yōu)選地,根據用戶輸入,并非所有的面都需要處理。然后,作為“邊界提取”一般步驟的一部分,該方法根據點的各自存儲數據計算點之間的邊界(界定將進行表面重新計算的區(qū)域),并且根據所確定的邊界來確定區(qū)域。這樣,本方法是全局方法首先為整體確定邊界,然后從邊界確定區(qū)域,這與倒角/倒圓作為一個部分由部分處理局部地進行計算的以前的方法形成對比。優(yōu)選地,執(zhí)行漸進區(qū)域確定法;特別是包括通過調用合適的配對例程(coupling routine),來確定包括至少一條邊并且具有倒角/倒圓狀、臺階/壁狀截面或顯示更復雜型式的區(qū)域。最后,根據所確定的區(qū)域計算新面。
這樣,本發(fā)明有可能快速地和自動地計算所述區(qū)域中的倒圓和/或倒角。所有臨界區(qū)都可能被檢測并且所確定的區(qū)域由該方法進行處理。作為自動過程,它因此克服了先前的由于“手動地”考慮步驟的順序的難點。利用基于3D圖形和相鄰面的相交的方法允許提供規(guī)則的邊界。這樣使隨后的區(qū)域確定變得更容易。這種全局方法和該方法的漸進特征使模型體不必由每個操作之間的有效封閉幾何形狀構成,而這是以前的主要失敗原因。結果是,即使未完全克服,也大大降低了倒圓和/或倒角的失敗。所以,本發(fā)明提供的解決方案提高了產品表面精細設計的效率,尤其提高了角隅(corner)的倒圓和/或倒角處理的效率。例如,執(zhí)行根據本發(fā)明的方法使得計算的時間是傳統(tǒng)倒角任務的10%,同時提供了多種新穎的可能性和用戶選項。值得指出的是所需的CPU時間隨著待處理的元件的數量大致線性地增加。
上述步驟屬于可以如下表示的更一般的步驟
-“拓撲預處理”,其中可以根據選擇作為不倒角面的面和/或當選擇裂縫和裂片管理選項時將遇到的面而預備工件體。所述的特定面可以被看作“平滑表面”,這將在以后進行具體論述。此外,計算所述平滑表面之間的倒角凸度(fillet convexity)。
-“網格化”。在這里,如本領域所公知的,目標是將主體轉換成多面體。然而,需要特別注意控制輸入參數,從而平衡所產生的多面體的逼真度、方法精確性和可用的硬件資源。
-“邊界提取”。現(xiàn)在,多面體被分割成一組“可移動”頂點和一組“不可移動”頂點,其將在以后進行具體說明。返回子集之間的邊界并且收集用于后續(xù)步驟的信息。
另外,本發(fā)明的方法可能包括以下一般步驟-“精確倒角識別”,其中規(guī)則的倒角/到圓區(qū)域被確定并且三個面會聚處的面積被重新計算。
-“倒圓近似”?;谡{用的面-面倒角算子或者在倒角算子無效時可能基于混合算子,來創(chuàng)建被倒圓的表面(對于倒角狀倒角或倒圓狀倒角,根據“精確倒角識別”)。
-“困難區(qū)域(hard zone)管理”。創(chuàng)建角隅表面并調用填充算子。在困難區(qū)域對于填充例程來說太復雜時也可以調用混合算子。
-“縫合(sewing)”,其中所創(chuàng)建的表面被縫合到最終主體上并且未被倒角的邊保持不變。
這樣的一般步驟將在其后被分解成可選的子步驟,所述子步驟也可以有利地執(zhí)行以用于實現(xiàn)本發(fā)明。
在下文中,如本領域中經常允許的,除非另外指出,“倒角”和“倒圓”的概念通常包含在措詞“倒角”中。
圖3-7顯示了表示模型化對象的計算機輔助設計的步驟的流程圖,這將馬上進行解釋。由于圖9-14B顯示了在上述流程圖中的各個步驟獲得的典型模型體的面,因此對這些圖的參考將被結合在圖3-7的流程圖的描述中。
圖3涉及“拓撲預處理”的一般步驟,其本身包括兩個主要部分,分別涉及“功能”面(例如不被處理的面)和裂片/裂縫的管理。參考該圖,在步驟100,對于指定輸入體(例如參見圖9的輸入體10)啟動該處理。在步驟110,該過程測試用戶是否已經預先選擇了給定面作為不被處理的面或者允許用戶選擇這樣的面。如果沒有選擇任何面,則待處理的主體(工件體)保持與以前相同(步驟120)。否則,從輸入體中的待處理的一組面去除任何選定面。
這在圖9a中示出,其中模型對象10的面16從初始的一組面被去除。結果是(圖9b),該面和另一個面之間的邊未被重新計算,盡管可以看到它們可以通過計算其它面的配對而被蝕刻。當用戶希望定制表面重新計算時證明特定面的去除是有利的。
接著,返回圖3,很可能執(zhí)行自由邊界的外推,例如與被選擇作為不被處理的面鄰接的面中的每個面。這在實踐中是有利的,因為已經發(fā)現(xiàn)稍稍不規(guī)則的邊界型式可以在這樣的面的附近被計算。進而,在步驟114檢驗外推步驟是否成功。如果是,待考慮的工件體將是具有外推面的工件體(步驟118)。在發(fā)生外推失敗的情況下(例如如果外推面與其它面相抵觸),則外推體被丟棄并且工件體保持與以前的輸入體相同(步驟116),除了由用戶選擇作為不被處理的面將不予進一步考慮地被丟棄(步驟120)。
在接下來的步驟130-134中,該過程在主體的面之間創(chuàng)建連接(132-134)。尤其是,該方法根據幾何學標準為工件體的面中的每個面(步驟130)識別與所述一個面相關的主體面中的至少另一個面,例如外角在180.5°至360°之間的面?!巴饨恰笔窃跈M穿兩個相鄰面的截面中在外部形成的較大角。當面的所述角符合所述標準時,它們被認為由銳邊分離并且面被標記為連接的。相反地,不符合這些標準的面被認為是單一連續(xù)面,例如本領域中公知的“平滑表面”。結果是,在將會遇到平滑表面的該過程的其余階段不應當遇到屬于相同平滑表面的兩個面。
任選地,用戶可以選擇用于裂片和裂縫管理的選項(步驟140-144)。裂片和裂縫與共用凸邊和凹邊的相鄰平滑表面有關。這在圖10A中被例舉,其中工件體10的裂片由參考標記A表示,裂縫由C表示。如圖所示,裂片典型地具有凹/凸/凸/凹順序的截面,而裂縫則相反。這里,盡管B和D分別具有裂片狀和裂縫狀截面,但是由于他們的臨界邊是圓形的,因此認為它們是平滑表面。B和D的管理將在下一段進行解釋。如果裂片和裂縫選項都未被選擇,則該方法的缺省行為將導致如圖10B所示的形狀,也就是說,裂片/裂縫A或C被稍稍倒圓但是不能達到理想的倒圓/倒角半徑。相反地,當被選擇時,這樣的選項允許創(chuàng)建遠距離的面之間的連接。例如,面SA2可以被選擇,從而允許創(chuàng)建SA1和SA3之間的連接。結果是(圖10C),裂片A幾乎已經倒塌。反之,在裂縫管理向導中選擇SC2導致裂縫C幾乎被填滿。因而,對于A或C,現(xiàn)在所獲得的型式與倒圓/倒角半徑相一致。
進一步地,在圖10A-C中可以看到,在裂片B的頂部預先存在倒圓,并且在裂縫D的底部預先存在倒角。由于這種預先存在的倒角/倒圓抑制了各自裂縫/裂片的橫截面中的奇點,因此相應的面看起來像是單一連續(xù)平滑表面。結果是,沒有遇到這些面,這允許預先存在的倒角/倒圓(例如,具有小于圖10A-C中的輸入倒角/倒圓半徑的半徑)被保留,如圖10A至圖10C所示。附帶說明,取決于該過程的執(zhí)行,輸入體所允許的倒角只可以是設計倒角。在本階段,讓我們回想一下在待處理的主體的相鄰面之間已經創(chuàng)建了連接,并且僅僅有可能在下面遇到不同的相鄰(并且可能是遠距離的)平滑表面。
返回所述流程圖,圖4延續(xù)圖3并且通常涉及“網格化”和“邊界提取”的一般步驟。
參考該圖,在步驟150計算形成主體面的每個面的網格狀表示的多個點,從而產生網格狀工件體。典型地,網格狀表面由多邊形的組合組成。這些典型地為三角形,因而在不損失一般性的情況下以后將使用“三角形”。因此,網格狀表示的多個點中的每個點為三角形的頂點。顯然可以設想使用每個三角形的中心代替頂點。
在步驟160,考慮到以后將被存儲的數據,網格狀工作體的每個頂點可以被賦予一個相關的初始缺省值。例如,它們可以被標記為“不移動”,這將在其后更加清楚。
接著,對于工件體的每個面(例如步驟170的“面1”)和對于所述面的網格狀表示的每個頂點(步驟172),該方法確定并存儲數據(步驟170-182),該數據代表接觸所述頂點的3D幾何圖形和上述識別為連接所述面的一個面之間的相交。這特別有利,原因在于由于3D幾何形狀的考慮,待以后計算的倒角的半徑可以與以上使用的抵觸3D圖形的空間特征有關。特別地,所述3D圖形可以是在所述面的網格狀表示的所述頂點處接觸所述面(“面1”)的單個或兩個球面,與所述表面相切。這將參考圖11進行強調。因此,以下所述3D圖形由“球面”表示。在步驟172,該方法測試面1的特殊頂點。首先,它檢驗是否已經在該頂點規(guī)定了一個球面(步驟174)。如果為否,對于連接到面1的每個面(“面2”),該方法可以在所述頂點處規(guī)定具有適宜半徑的一個球面(缺省或用戶可選擇的球面)(步驟176-178)。接著,測試所述球面是否與面2相交(步驟180)。
顯然,可以設想用于抵觸檢測的其它方案,這對于本領域的技術人員來說是顯而易見的。然后代表所述抵觸的數據被歸屬于被測試的頂點。例如,所述數據可以限制為單個二進制值,例如若檢測出抵觸則為1,否則為0。作為另一選擇,所述數據例如可以基于與面2抵觸的球面的部分來代表抵觸的程度。進一步地,所述數據可以由對應于發(fā)現(xiàn)球面與另一個面相切或半相切處的三角形或頂點的數量組成。
參考圖11將更好地理解3D圖形與相鄰或遠距離面的相交,該圖顯示了給定工件體10的各部分和在網格狀面21、23、25、27、29、31、33和35的各種頂點20、22、24、26規(guī)定的球面30、32。在這里重要的是注意所述面可以是“平滑表面”,也就是由一條邊分離的面,所述面的外角大于給定值(例如180.5-360°)。
在該例子中,面23是包括垂直壁部分(垂直且鄰近面21)和鄰接的水平壁部分(垂直且鄰近面25)的平滑表面。此外,在圖11的例子中僅僅測試面的配對(21-23),(23-25),(25-27),(27-29),(29-31),(31-33),(33-35)和(35-21)(上述步驟172和176)。為了清楚起見,在圖11上沒有對所有面的配對表示出球面。
需要注意的是,所述球面可以在對象的外部30(用于檢測凹邊附近的凹型抵觸)或在內部32(用于檢測凸型抵觸),在被測試頂點(例如參見在頂點20附近的球面30、32)處與主體面相切。
這樣,一次只能夠測試給定類型的一個球面并且測試上述兩種類型(外部的或內部的)需要兩次循環(huán),或者作為另一選擇,可以在單個循環(huán)中一次測試兩個球面。
在同樣包含在圖11中的替換實施例中,3D圖形可以包括半徑分別為rx和rc的兩個球面30、32,在所述頂點處與所述面相切。
實際上,技術人員可以理解,一旦計算出相鄰面之間的倒角凸度,就只能夠使用一個球面,在識別相關面的步驟之后可以知道該球面的類型。因而,取決于計算出的測試抵觸的連接面(面1和2)的凸度,該方法可以適于選擇在給定點處的適宜球面(內部的或外部的)并且隨后測試它。例如,考慮面21和23之間的邊,其可以被看作是凸邊。一旦知道該邊的凸度,顯然外部球面的使用是無用的,因為后者不可能在所述球面和在所述邊附近的面21,23中的一個面或另一面之間產生任何抵觸。反之,如圖所示,利用內部球面則產生球面-面抵觸40。由于抵觸40在凸邊附近,因此方便地稱它為“凸抵觸”40。這樣,可以存儲與頂點22相關的表示抵觸的數據。需要注意的是,3D圖形的形狀(在這里為球面的半徑)確定了后面待計算的倒角/倒圓的半徑。因而,3D幾何圖形提供了用于確定規(guī)則邊界的對象工具,表面重新計算將在所述規(guī)則邊界附近發(fā)生。
接著,考慮凹邊,對稱的推理使得能夠推斷出箭頭42和44表示的相交是“凹”抵觸,這次是由外部球面30導致的。然而,由于上述實施例,在該例子中相交42未被標記為抵觸,這是因為它出現(xiàn)在兩個面屬于相同的平滑表面23的情況下。類似地,由于面23和31不是相鄰面,因此相交46在這里未被認為是凸抵觸。最后,在平滑表面23的例子中只有抵觸40和44被看作是有效抵觸。因此,代表相應的相交的數據被存儲,所述數據與各自的頂點22和26相關。這樣的數據例如可以由表示被標記成移動(參見步驟182)的頂點的值組成,在該情況下所述頂點很可能在隨后的步驟被去除。作為另一選擇,所述值可以根據抵觸的程度而連續(xù)變化,例如與所述球面的抵觸線段的高度成比例,等等。
記住這一點,然后簡要地回到涉及裂片和裂縫管理的圖10。如所述的,缺省方法僅僅允許相鄰的平滑表面相接。相反地,選擇用于裂片/裂縫管理的適宜選項不允許遇到相鄰平滑表面。因而,考慮到以上步驟170-180的描述,當用戶選擇裂片/裂縫時,測試在所選擇的裂片/裂縫附近的一個面處規(guī)定的3D圖形是否越過一個相鄰面與一個遠距離面相交。例如,選擇裂片/裂縫允許局部地測試第二相鄰面,甚至是第三相鄰面。例如,如果在圖10A中選擇平滑表面SA2,那么除了(SA1,SA2)和(SA2,SA3)之外,面(SA1,SA3)將會相遇(confronted),例如缺省相遇。如果不選擇平滑表面SA2(因而如果A不被看作是要保留的裂片),則只測試(SA1,SA2)和(SA2,SA3),從而導致圖10B的型式。
現(xiàn)在,再次參考圖4的流程圖,下一組步驟190-230用于根據頂點各自存儲的數據計算頂點之間的邊界。例如可以計算這樣一些頂點之間的邊界,所述頂點的存儲數據分別代表抵觸和不抵觸(由于倒圓/倒角半徑與測試球面的尺寸有關,因此這顯得很方便)。因而,在連結這樣一些頂點的線段上確定邊界點,所述頂點具有分別指示相交和不相交的存儲數據。
因此,在步驟190,對于每個網格狀三角形開始一個循環(huán);然后測試(步驟192)所述三角形是否具有在步驟182被標記為移動的一個或兩個頂點。如果是,例如測試所述三角形的面積是否大于閾值面積(步驟194),從而使三角形被標記為“可細分的”。盡管是可選的,但是這樣的可能性是有利的,因為它允許具有相反抵觸狀態(tài)的頂點之間的更精細的邊界計算。如果發(fā)現(xiàn)可細分的三角形(步驟198),它們因此被細分(步驟200),從而產生新頂點,所述新頂點再次通過開始一個新循環(huán)(步驟170)來測試抵觸。步驟(170)的循環(huán)不斷出現(xiàn)直到不再發(fā)現(xiàn)可細分的三角形(步驟198)。
接著,在步驟210開始一個新循環(huán),由此可以根據近似計算點的位置(步驟220)。特別地,代表抵觸量的存儲數據,例如基于抵觸球面的抵觸部分,允許計算點的理論位置。因而可以根據所述計算的點確定“折線”邊界。
在圖12A-12B中例舉了上述邊界計算,所述圖概述了根據上述實施例的邊界計算的連續(xù)階段。
所選的例子是圓柱體60的例子,該圓柱體60根據圖12A-C的左邊部分中的圓柱體60正上方所示的笛卡爾坐標系標記52被定向。所述圖的主要部分顯示了根據標記50所表示的平面(x,z)定向的圓柱體的放大的示意性四分之一圓截面62。換句話說,它被從上方觀察。所述圓柱體截面62包括根據上述實施例被標記為“移動”或“不移動”的多個頂點。標記為“移動”的頂點被表示為單點,而十字交叉表示不移動的頂點。虛線64代表(尚為)理論邊界。
圖12A代表關于將在步驟182之后獲得的所述四分之一圓截面62三角形包含0、1、2或3個移動頂點。
圖12B顯示了由上述步驟190-200產生的情況,即,正好帶有一個或兩個移動頂點的三角形被細分,由此在理論邊界64附近出現(xiàn)新頂點。
接著,圖12C示出了執(zhí)行步驟210-230的結果,由此根據具體計算的點(步驟220)(其在這里顯示為圓點),提供了“折線”邊界。因此,上述步驟的執(zhí)行使得能夠提取精細邊界。
再次參考該方法,圖5和6用于“精確倒角識別”、“倒圓近似”和“困難區(qū)域處理”的一般步驟。
返回流程圖,參考圖5,每當確定具有倒角狀或倒圓狀截面(步驟240)、臺階狀截面(步驟250)或壁狀截面(260)的區(qū)域時調用配對例程。盡管可以調用不同的例程,但是這些至少具有一組共同特征,所述共同特征將參考圖8進行具體描述。
首次調用所述例程之后返回精確倒角。由于通常在待處理的普通工件體上觀察上述截面型式,因此使用上述例程(或相繼的類似例程)證明是有利的。優(yōu)選地,首先調用用于確定倒圓/倒角區(qū)域的配對例程,然后以任意順序調用用于確定壁/臺階區(qū)域的配對例程。因而,只要有可能就搜索精確倒角,然后搜索壁/臺階區(qū)域。上述例程將參考圖8的流程圖進行具體描述。
由于困難區(qū)域位于未發(fā)現(xiàn)倒角/壁/臺階區(qū)域的地方,因此最好在以后處理它們。然后可以根據計算的邊界確定一個或多個剩余區(qū)域(步驟270),為此在280創(chuàng)建特定角隅區(qū)。
接著,參考圖6,在步驟290開始一個新循環(huán)。對于檢測出的每個倒角(參照步驟240),例如基于牛頓-拉弗森法(Newton-Raphson)或類似方法,使用精確重會聚法,從而“放大”待處理的區(qū)域(步驟292)。然后,只要有可能就通過調用面-面倒角算子來創(chuàng)建精確倒角表面(步驟294-298)。否則,調用混合算子(步驟296)。
相反地,考慮經由所述配對法檢測出的臺階/壁區(qū)域(上述步驟250和260),直接調用混合算子(步驟300和310),由此創(chuàng)建混合表面(步驟304和314)。
現(xiàn)在考慮在280創(chuàng)建的角隅區(qū),該方法按如下進行首先測試所述角隅是否為球形,在該情況下創(chuàng)建一個球面(步驟320-324),否則如本領域中公知的,產生一個傳統(tǒng)的填充表面(步驟326)。
按順序提供一些注釋。關于在步驟296、304和314所使用的混合算子采用以下步驟使用3D曲線近似邊界折線,然后,將所述3D曲線投影到輸入體上,從而產生2D曲線。然后,使用創(chuàng)建的2D曲線和所包含的支撐面作為輸入,調用混合算子。
現(xiàn)在考慮在步驟326使用的填充算子,出現(xiàn)類似的3D到2D的投影。然后,除了先前創(chuàng)建的倒角表面(參照步驟298)或混合表面(參照步驟296、304或314)的邊界之外,還使用產生的2D曲線來調用所述填充算子(本領域中公知的算子),從而創(chuàng)建平滑表面。
如果困難區(qū)域對于填充法的使用來說太復雜,在調用混合或填充算子之前可以將困難區(qū)域細分,這取決于局部幾何形狀的特征。
另外,可以調用合適的算子,從而提供表面曲率控制。
最后,參考圖7,用于最終縫合一般步驟,在步驟330開始一個循環(huán),從而為每個先前創(chuàng)建的表面觸發(fā)縫合例程(332)。需要注意的是,取決于縫合策略,可以同時在輸入體上縫合一個以上的表面。
該方法在340停止。
現(xiàn)在參考圖8,具體描述了圖5中的步驟240、250和260調用的配對例程。
對于每個計算出的邊界Fi(步驟410)和對于所述邊界Fi的每個點Pi,j(步驟412),首先應當測試(步驟414)點Pi,j是否已經包含在先前確定的任何配對中,在該情況下不對該點嘗試進一步的配對。否則,對于不同于所述邊界Fi的每個邊界Fk(步驟416)以及對于所述邊界Fk的每個點Pk,l(步驟418),在步驟420-422計算值yi,j,k,l=fm(Pi,j,Pk,l),其中使用的函數fm取決于當前試驗配對的類型。例如,當從步驟240(用于倒角區(qū)域檢測)調用例程時可以使用第一函數f1,當從步驟250(用于臺階區(qū)域檢測)調用時可以使用f2,或使用f3(用于壁區(qū)域檢測)。
然后優(yōu)選地,測試計算出的yi,j,k,l是否滿足一些“容許”條件(步驟422)。首先,特別地基于到Pi,j,Pk,l各自的法線,確定正被考慮的當前配對是否屬于倒角、倒圓、臺階或壁區(qū)域,由此將其保留作為候選,否則將其丟棄。此外,作為用于臺階狀截面的附加容許條件的一個例子,由于顯然的幾何學原因,將高度大于平均倒圓/倒角半徑兩倍的臺階附近的點放棄作為用于配對的可能候選點。類似的容許條件被用于任一類型的區(qū)域。另外,所述容許條件可以在計算yi,j,k,l之前進行計算。
然后,存儲(步驟426)一個或多個特殊配對(Pk,l-1*,Pk,l*),對于該一個或多個特殊配對(Pk,l-1*,Pk,l*),分別計算出的yi,j,k,l-1和yi,j,k,l(步驟420-426)滿足條件Cm(例如步驟424的符號變化,這將以后進行描述),其中與fm相同,Cm取決于當前試驗的配對。條件C1、C2或C3分別在步驟240、250和260使用。
如果在步驟426發(fā)現(xiàn)了若干配對(Pk,l-1*,Pk,l*)滿足條件Cm,則可以首先根據某個進一步的條件Cs1選擇一個更特殊的配對(Pk,l-1**,Pk,l**)(步驟430)。然后,可以根據進一步的條件Cs2選擇(例如l***=l-1**或l**)一個更特殊的點Pk,l***(步驟430-432)。需要注意的是,即使Cs1和Cs2被減少為單個任意選擇,只要點的配對(Pi,j,Pk,l)之間的步長足夠小,例程就可能很好地工作。
換句話說,最后選擇的點Pk,l***可以被看作滿足條件Cs(除了先前的條件Cm之外)時獲得的一個點,其中Cs包括Cs1和Cs2(尤其當要發(fā)現(xiàn)若干配對(Pk,l-1*,Pk,l*)時)。
最后,在步驟434存儲配對Pi,j,Pk,l***。
接著,當在步驟410開始的循環(huán)結束時,點與連續(xù)極點(例如形成配對的那些)的配對被識別(步驟440)并且被標記為屬于相同的組,從而邊界的部分被配對,由此形成區(qū)域。
例程在450結束。
顯然,并非邊界Fi,F(xiàn)k的所有配對以及點的配對(Pi,j,Pk,l)都需要在上述例程中考慮到。而是,最好根據進一步的條件限制yi,j,k,l的計算,所述進一步的條件被選擇成使得丟棄這樣的配對,所述配對例如由于距離標準而最后沒有機會被配對。
在配對例程中執(zhí)行以上方法有可能自動恢復“精確”倒角、臺階和壁區(qū)域。
在下文中,當調用圖8的配對法時使用的函數fm和條件Cm將關于圖13A-D進行說明。
圖13A-D顯示了具有邊70和邊界Fi(如從步驟230確定的)的工件體10。特別地,該工件體顯示了臺階狀截面72,壁狀截面74和“困難”區(qū)域(在這里為角隅)76。
作為例子,圖13A-C示出了在用于精確倒角識別的配對例程(參照圖8的步驟410-450)中使用的特定函數f1和條件C1,即,當從步驟240調用時的特定函數f1和條件C1。需要注意的是,為了清楚起見,僅僅顯示了兩個邊界F1和F2。
讓我們首先說明一下將要在該特定實施例中獲得的理論結果。為了該目標,考慮邊界F1的給定點P1,1和在所述點P1,1附近的“凸”(內部)球面111,在該點與包括邊界F1的面相切。對于所有不同的邊界(在該情況下F2),搜索用于配對的候選點P2,l-1,P2,l等,所述點具有大致相同的相關凸球面。例如,在圖13A中,規(guī)定了與點P2,1相切的凸球面121。由于球面111和121未在給定的容限內很好地匹配,因此點P2,1被放棄作為用于配對的可能候選點。相反地,在圖13B中,在點P2,1’處規(guī)定了球面121’,從而產生基本匹配球面111的一個球面(在圖13B的比例下差異看不出來)。因而,點104可以被保留作為用于配對的可能候選點。
現(xiàn)在,為了實現(xiàn)該目標,在下文中參考圖13C解釋了可能的實施方案。對于F1的一個給定點P1,1,如上面所解釋的,對于邊界F2的每個點P2,l(l=1,2,3,...)(例如P2,1和P2,2),計算值y1,1,2,l=f1(P1,1,P2,l)??梢赃x擇函數f1作為標量積f1(Pi,j,Pk,l)=(ck,l-ci,j)·(ni,j^nk,l),其中ni,j是在點Pi,j處垂直于所述面的法線,ci,j是指向與Pi,j相切的球面(在圖13C中l(wèi)ij=111,121,122)的中心的矢量。需要注意的是,這樣的矢量完全由Pi,j的位置信息定義。特別地,ni,j由在Pi,j計算的所述面的梯度導出。因而,注意在理論匹配點Pk,matching處,f1(Pi,j,Pk,l)正好為零,當滿足下式時可以選擇條件C1Sign(f1(Pi,j,Pk,l-1))≠Sign(f1(Pi,j,Pk,l))。
在圖13C中,點P2,1和P2,2關于P1,1滿足所述條件C1。因而,根據上述步驟428,存儲該特殊配對(P2,1,P2,2)。對于邊界F1的每個點P1,j執(zhí)行類似的操作。優(yōu)選地,已經包含在一個配對中的點不被重新計算,并且只測試相鄰的邊界Fk。用凹球面執(zhí)行類似的操作。
當在步驟240之后結束配對例程時,情況如圖13D中示意性地所示。精確倒角由參考數字90表示。從該圖中可以看到,還未在臺階區(qū)域72、壁區(qū)域74和“困難”區(qū)域76附近創(chuàng)建精確倒角,因為在這樣的區(qū)域沒有可能的精確(基于球面的)配對。
現(xiàn)在考慮臺階和壁區(qū)域,可以選擇函數f2=f3作為f2/3(Pi,j,Pk,l)=(Pk,l-Pi,j)·(τk,l-τi,j),其中τi,j是在點Pi,j處沿邊界線Fi與所考慮的面相切的矢量(τi,j和τk,l被選擇成具有相反方向)。與以前相同,τi,j和τk,l從Pi,j,Pk,l獲知,因此對Pi,j,Pk,l的依賴是隱含的。在該情況下適宜的條件C2/3是Sign(f2/3(Pi,j,Pk,l-1))≠Sign(f2/3(Pi,j,Pk,l)),
這與上述情況相同。
盡管f2=f3并且C2=C3,如圖13E中所示,臺階和壁固有的幾何形狀導致配對在本質上不同。當在步驟250和260之后配對例程結束時,情況如圖13E中所示臺階區(qū)域92和壁區(qū)域94被配對。
然而,還剩下困難區(qū)域76,為此將執(zhí)行特定處理(參照上述步驟320-326)。
作為可由本發(fā)明實現(xiàn)的結果的一個教導性例子,圖14A-B示出了具有各種邊部分的工件體10的管理的結果。銳邊70界定了各種面。參考數字72、74和76分別代表臺階、壁和角隅區(qū)。在該例子中,面16具體被選擇作為未被倒角的面,裂片選項被選擇用于壁狀截面74’。
執(zhí)行上述的方法導致了如圖14B中所示的修改的工件體(適當地選擇了尺寸以突出修改)。特別地,提供了倒角區(qū)域12和倒圓區(qū)域14,根據上述使用的術語,其受益于“精確配對”表面重新計算。另外,臺階和壁區(qū)域(分別為142和145)受益于混合算子(也參見調用了混合算子的152),然而角隅區(qū)140的一些被球表面的一部分近似,并且由于上述的填充算子而填充了更困難的角隅區(qū)150。
被選擇作為裂片的壁狀截面74’也受益于精確倒角表面重新計算148(“精確配對”),由此通過抵觸球面測試遠距離面。因而,可以看出,148中的倒圓半徑與用于倒圓14的半徑相同。而且,選定面16還未被處理,盡管它由于相鄰面的表面重新計算而部分地被蝕刻。
然后將修改的表面縫合到輸入體10上。
本發(fā)明并不限于參考附圖所述的優(yōu)選實施例。顯然,本發(fā)明涉及執(zhí)行根據本發(fā)明的方法的計算機程序。
此外,取決于期望的應用,所使用的三維幾何圖形可以包括各種幾何形狀。例如,它可以包括錐面或其一部分。因而,根據本發(fā)明的方法,在確定和存儲代表所述三維圖形的相交的數據的步驟中,所述錐面可以規(guī)定在所述面上,與所述面相切并且與網格的一個點相接觸,所述一個點當前用于測試錐面的抵觸。所述錐面可以被賦予特定的縱向和橫向角,其中例如使錐面主軸為r,所述角與球坐標中通常的θ和φ角有關。這些角進一步可以是用戶可選擇的。由此可以在工件體上獲得草圖。另外,只要錐面的利用適合所述的特定特征,就可以提供許多上述的優(yōu)點。
而且,盡管在此以一種簡單的方式描述了上述方法和例程,但是顯然可以出于算法效率的考慮而預見多種改進。
權利要求
1.具有若干面的模型化對象的計算機輔助設計方法,該方法包括以下步驟-對于所述若干面中的每個面,根據幾何學標準識別與所述面相關的所述若干面中的至少另一個面;-計算形成所述若干面中的每個面的網格狀表示的多個點;-對于所述若干面中的每個面;對于所述面的所述網格狀表示的每個點;確定和存儲數據,該數據代表與所述點相接觸的三維幾何圖形和被識別為與所述面相關的另一個面之間的相交;-根據它們各自存儲的數據計算點之間的邊界;-根據所述計算的邊界確定區(qū)域;以及-根據所述確定的區(qū)域計算新面。
2.根據權利要求1所述的方法,其中形成所述計算的網格狀表示的所述多個點中的每個點是網格狀多邊形的頂點。
3.根據權利要求2所述的方法,其中所述計算邊界的步驟包括確定連接頂點的線段上的邊界點,所述頂點具有分別指示相交和不相交的存儲數據。
4.根據權利要求3所述的方法,其中所述計算邊界的步驟包括,在計算所述邊界點之前,細分具有頂點的多邊形,所述頂點具有分別指示相交和不相交的存儲數據。
5.根據權利要求1至4的任一項所述的方法,其中所述數據代表所述圖形和所述另一個面之間的所述相交的量。
6.根據權利要求1至5的任一項所述的方法,還包括步驟用戶選擇不被處理的面并且隨后從待處理的所述面中去除該面。
7.根據權利要求6所述的方法,還包括步驟外推與被去除的所述面鄰近的多個面。
8.根據權利要求1至7的任一項所述的方法,其中所述幾何學標準至少包括待被識別為相關面的所述面的外角在180.5°至360°之間。
9.根據權利要求1至8的任一項所述的方法,其中對于與經由用戶選擇的面相關的若干面的每一配對,還執(zhí)行所述確定和存儲代表相交的數據的步驟。
10.根據權利要求1至9的任一項所述的方法,其中所述確定區(qū)域的步驟包括-通過使用函數f1和條件C1調用配對例程確定一個或多個區(qū)域,所述區(qū)域包括一條邊并且具有倒角狀或倒圓狀截面。
11.根據權利要求1至10的任一項所述的方法,其中所述確定區(qū)域的步驟包括-通過使用函數f2和條件C2調用配對例程確定一個或多個區(qū)域,所述區(qū)域包括兩條邊并且具有臺階狀截面,所述兩條邊具有小于與所述三維對象相關的尺寸的最小距離。
12.根據權利要求1至11的任一項所述的方法,其中所述確定區(qū)域的步驟包括-通過使用函數f3和條件C3調用配對例程確定一個或多個區(qū)域,所述區(qū)域包括由至少兩條邊分離的兩個基本平行的面部分并且具有壁狀截面,所述兩條邊具有小于與所述三維對象相關的尺寸的最小距離。
13.根據權利要求1至9的任一項所述的方法,其中所述確定區(qū)域的步驟包括-通過使用函數f1和條件C1調用配對例程確定一個或多個區(qū)域,所述區(qū)域包括一條邊并且具有倒角狀或倒圓狀截面;然后-通過分別使用函數f2和條件C2或者函數f3和條件C3調用配對例程確定一個或多個區(qū)域,所述區(qū)域包括兩條邊并且分別具有臺階狀截面或者壁狀截面,所述兩條邊具有小于與所述三維對象相關的尺寸的最小距離。
14.根據權利要求9至12的任一項所述的方法,其中所述確定區(qū)域的步驟還包括-根據所述已經確定的一個或多個區(qū)域和所述計算出的邊界確定一個或多個剩余區(qū)域。
15.根據權利要求10至12的任一項所述的方法,其中所述調用的配對例程包括對于第一邊界Fi;對于所述第一邊界Fi的一個或多個點Pi,j;對于第二邊界Fk;對于所述第二邊界Fk的一個或多個點Pk,l;根據正在被確定的所述一個或多個區(qū)域來計算yi,j,k,l=fm(Pi,j,Pk,l),其中fm是所述函數f1,f2或f3;根據正在被確定的所述一個或多個區(qū)域選擇使yi,j,k,l-1和yi,j,k,l滿足所述條件Cm的一個或多個特殊配對Pk,l-1*和Pk,l*,其中Cm是所述條件C1,C2或C3;根據進一步的條件Cs在所述一個或多個特殊配對Pk,l-1*和Pk,l*中選擇特殊點Pk,l***;存儲所述配對Pi,j,Pk,l***。
16.根據權利要求10至15的任一項所述的方法,其中對于每個確定區(qū)域,所述計算新面的步驟調用適合所述確定區(qū)域的類型的面計算例程。
17.根據權利要求16所述的方法,還包括根據所述計算的新面修改模型化對象數據面的步驟。
18.根據權利要求1至17的任一項所述的方法,其中所述三維幾何圖形包括半徑為r的球面,該球面在所述面的所述網格狀表示的所述點處與所述面相接觸。
19.根據權利要求1至17的任一項所述的方法,其中所述三維幾何圖形包括半徑分別為rx和rc的兩個球面,所述球面在所述面的所述網格狀表示的所述點處相切。
20.根據權利要求1至9的任一項所述的方法,其中所述三維幾何圖形包括錐面,并且其中,在所述確定和存儲代表三維幾何圖形的相交的數據的步驟中,所述圖形與所述點相接觸并且被賦予特定的縱向和橫向角。
21.一種計算機程序,其執(zhí)行權利要求1至19的任一項所述的方法。
全文摘要
本發(fā)明涉及具有若干面的模型化對象(10)的計算機輔助設計方法。該方法包括步驟對于對象(10)的所述若干面中的每個面,根據幾何學標準識別與所述面相關的所述若干面中的至少另一個面。由此將面標記為連接的。這是用于執(zhí)行該方法的隨后步驟所需的“拓撲預處理”的一部分。該方法還包括步驟計算形成所述若干面中的每個面的網格狀表示的多個點?;谠摼W格,該方法根據上述識別步驟通過確定和存儲數據來表征臨界區(qū),所述數據代表三維幾何圖形(接觸給定面)和與所述面相關的面之間的相交。對于一個面的網格狀表示的每個點和對于對象的每個面執(zhí)行確定是否發(fā)生相交的步驟。然后,作為“邊界提取”一般步驟的一部分,該方法根據點的各自存儲的數據計算點之間的邊界(界定將進行表面重新計算的區(qū)域)并且根據所確定的邊界來確定區(qū)域。優(yōu)選地,執(zhí)行漸進區(qū)域確定法;特別地包括通過調用合適的配對例程來確定包括倒角或倒圓狀、臺階狀和壁狀截面的區(qū)域。最后,根據所確定的區(qū)域來重新計算表面(12、14、140、142、145、148、150)。
文檔編號G06F17/50GK1869993SQ20061007467
公開日2006年11月29日 申請日期2006年4月7日 優(yōu)先權日2005年4月8日
發(fā)明者約蘭·馬耶, 雷米·羅拉托 申請人:達索系統(tǒng)公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
高青县| 陇南市| 四川省| 新河县| 康保县| 永定县| 湄潭县| 隆化县| 库车县| 新沂市| 天门市| 德兴市| 绥宁县| 白朗县| 文化| 普洱| 香港 | 育儿| 威海市| 大方县| 吴旗县| 娄烦县| 安远县| 上高县| 宁波市| 法库县| 广西| 斗六市| 焉耆| 灵寿县| 临潭县| 凯里市| 辉县市| 林甸县| 西城区| 丽江市| 长寿区| 蚌埠市| 吴旗县| 都安| 福鼎市|