本發(fā)明涉及計算機程序和系統領域,并且更加具體地,涉及用于設計表示機械部件的3d建模對象的方法、系統、和程序。
背景技術:
市場上提供了用于對象的設計、工程、和制造的許多系統和程序。cad是計算機輔助設計的首字母縮寫,例如,其涉及用于設計對象的軟件解決方案。cae是計算機輔助工程的首字母縮寫,例如,其涉及用于模擬未來產品的物理行為的軟件解決方案。cam是計算機輔助制造的首字母縮寫,例如,其涉及用于定義制造過程和操作的軟件解決方案。在這樣的計算機輔助設計系統中,圖形用戶界面在該技術的效率方面扮演重要角色。可以將這些技術嵌入到產品生命周期管理(plm)系統內。plm是指一種商業(yè)策略,其幫助公司跨越經擴展的企業(yè)的概念地針對從概念到其壽命結束的產品的開發(fā)而共享產品數據、應用通用流程、利用企業(yè)知識。由dassaultsystèmes(在catia、enovia、和delmia的商標下)所提供的plm解決方案提供了組織產品工程知識的工程中心、管理制造工程知識的制造中心、以及使能企業(yè)集成和連接到工程中心和制造中心兩者中的企業(yè)中心。所有這些系統提供了將產品、過程、資源聯系起來的開放的對象模型以實現動態(tài)的、基于知識的產品創(chuàng)建和決策支持,其驅動了經優(yōu)化的產品定義、制造準備、生產、和服務。
現有技術通過使用b-rep建模cad系統(相比于基于歷史的cad系統)允許實體建模。因此,大多數商業(yè)cad系統提供一些b-rep建模能力。代表性示例是dassaultsystèmes的catianaturalshape、siemens的solidedgesynchronous技術、以及parametrictechnology公司的ptccreo(全都是注冊商標)。在這樣的系統和這樣的建模功能中,輸入對象是實體的邊界表示。不存在相關聯的歷史(或者其不能夠容易地被使用)。典型的b-rep建模操作接著用于由用戶選擇一個面并且通過使用鼠標光標來移動它。在該移動結束后,用戶釋放鼠標按鈕,并且系統根據該面的新位置來更新實體的形狀。該更新是通過外推和調整相鄰的面來執(zhí)行的,以使得結果是閉合且定向的蒙皮。沿其向外法向量的方向來移動實體的面將材料添加至該實體,如在圖1中所示。沿相反的方向來移動面將材料從該實體移除,如在圖2中所示。
當用戶想要選擇單個面并將其沿著小距離移動時,在執(zhí)行更新以及用戶-機器交互方面不存在具體的困難。然而,當用戶想要執(zhí)行涉及多個面和/或相對大距離的復雜設計時,問題就出現了。這是由于b-rep建模的公知的行為:擦除器副作用。由于拖動面而被刪除的實體的細節(jié)不會由于執(zhí)行反向的推動操作而被恢復,如在圖3中所示。在圖3上所示出的示例中,在第一步驟中,用戶拖動豎直面以使得圓柱形槽被厚墻壁覆蓋。接著,在第二步驟中,用戶將該豎直面推動回到其初始位置??梢钥吹?,圓柱形槽確實丟失了。當用戶想要執(zhí)行與該細節(jié)無關的復雜設計操作(例如,扭轉設計操作)時,該行為被證明是個問題。對于這樣的操作,如ianstroud和hildegardenagy所著的標題為solidmodellingandcadsystems(springer2011)一書中所解釋的,現有系統在能夠被工業(yè)設計者使用之前需要繁瑣的測試和實驗。實際上,第一個缺點是用戶需要通過一次選擇一個面來進行修改,這需要長的設計時間。此外,由于擦除器副作用,用戶可能無意地刪除了實體的重要細節(jié)。這樣的細節(jié)必須被再一次設計,這是浪費時間的。
在該上下文內,存在對改進cad系統的b-rep建模功能的人機工程學的需要。
技術實現要素:
因此,提供了一種用于設計表示機械部件的3d建模對象的計算機實現的方法。所述3d建模對象是由b-rep(s)定義的。所述方法包括:選擇所述b-rep的一組面;針對所述一組面中的每個相應的面而定義軌跡;針對所述一組面中的每個面而計算相應的掃掠體積,所述掃掠體積與由關于所述軌跡的所述相應的面所掃掠的體積相對應。所述方法還包括根據所述掃掠體積在相應的面處關于所述3d建模對象內部的位置,向每個掃掠體積分配(s32-s36)材料移除標簽(r)或材料添加標簽(a)。所述方法還包括利用材料移除體積并且接著利用材料添加體積來更新所述b-rep。所述材料添加體積對應于具有材料添加標簽的所有掃掠體積的并集,所述并集中具有所述材料添加標簽的每個相應的掃掠體積減去具有材料移除標簽并且結束面與具有所述材料添加標簽的相應的掃掠體積沖突的所有掃掠體積。所述材料添加體積對應于具有所述材料移除標簽的所有掃掠體積的并集,所述并集中具有所述材料移除標簽的每個相應的掃掠體積減去具有所述材料添加標簽并且結束面與具有所述材料移除標簽的相應的掃掠體積沖突的所有掃掠體積。
所述方法可以包括以下中的一個或多個:
-所述機械部件是具有軸線的軸向機械部件,并且所述一組面包括定義了所述軸向機械部件的至少一個功能特征的面;
-所述軌跡是由對沿著和/或圍繞著所述機械部件的軸線的功能特征的滑動編輯所定義的;
-所述軌跡是由用戶經由至少一個滑動移動圖形用戶交互所定義的;和/或
-在所述滑動編輯期間,所述功能特征與至少一個其他功能特征交叉。
還提供了包括用于執(zhí)行所述方法的指令的計算機程序。
還提供了一種其上記錄有所述計算機程序的計算機可讀存儲介質。
還提供了一種系統,其包括耦合至存儲器的處理器以及圖形用戶界面,所述存儲器具有記錄在其上的所述計算機程序。
還提供了一種用于制造機械部件的方法。所述制造方法包括根據上述設計方法設計表示機械部件的3d建模對象。所述制造方法接著包括產生在幾何上與所述3d建模對象相對應的機械部件。
還提供了一種由這樣的制造方法所制造的機械部件。
附圖說明
現在將通過非限制性示例并且參考附圖來描述本發(fā)明的實施例,其中:
圖1-3示出了現有技術的b-rep建模能力;
圖4示出了該方法的示例的流程圖;
圖5示出了該系統的圖形用戶界面的示例;
圖6示出了該系統的示例;
圖7示出了與圖4的示例相一致的、示出了該方法的示例的主要步驟的圖。
圖8-12示出了b-rep格式;
圖13-15示出了可以通過示出了該方法的方法而高效地設計的軸向機械部件;
圖16-18示出了典型的編輯場景,其中軌跡是通過對沿著和/或圍繞軸向機械部件的軸線的功能特征的滑動編輯定義的;以及
圖19-27示出了該方法的示例。
具體實施方式
參考圖4的流程圖,提出了一種用于設計表示機械部件的3d建模對象的計算機實現的方法,其中,3d建模對象(至少)是由b-rep(即,表示機械部件的b-rep數據結構存在于待處理的輸入數據中)所定義的。該設計包括人機工程學的用戶-機器交互,其中,用戶對b-rep進行操作。圖4中被標記為“用戶”的方法的步驟是經由用戶-機器交互來執(zhí)行的(至少包括用戶-機器交互),而被標記為“系統”的步驟可以完全自動地執(zhí)行。在其他示例中,圖4中被標記為“用戶”的步驟可以可替代地由求解器來執(zhí)行(例如,在自動地更新b-rep的過程中,在該情況下,該方法允許求解器快速地執(zhí)行且不會不必要地擦除細節(jié))。如將詳細討論的,圖4的方法允許用戶與cad系統進行交互以通過在s10處一次選擇多個面并且執(zhí)行相對復雜的編輯(取決于在s20處所定義的軌跡)來執(zhí)行b-rep建模。歸功于在s100處所執(zhí)行的計算與正在執(zhí)行的用戶-機器交互設計的類型是相關的,系統確保了設計意圖被尊重,以及受到擦除器副作用的干擾相對較少(或者沒有),這在機械設計領域中具有特別的重要性。
該方法可以包括由系統(向用戶)顯示3d建模對象的圖形表示。能夠在顯示器上選擇b-rep的面。在這樣的示例中,交互可以是圖形的,并且用戶可以與3d建模對象的圖形表示直接地交互。該方法的其他示例包括系統不顯示3d建模對象或者用戶不與圖形表示進行交互,而是以另一種方式輸入命令,例如經由對話框。圖形用戶交互呈現了高度人機工程學。
用戶可以啟動系統的具體功能,例如“b-rep建?!惫δ?。接著,用戶選擇s10b-rep的(例如,無序的)一組(即,集合)(至少兩個)面。這樣的選擇可以通過順序地和/或同時地與在分組中被選擇的面中的每個面進行交互來執(zhí)行,例如通過在顯示器中與所述面相對應的位置上激活觸覺裝置,所述激活例如利用位于一個面上的鼠標光標來按壓鼠標按鈕和/或一個接一個地或同時地感應性觸摸一個或多個面。用戶還定義s20針對分組中面中的每個面的軌跡。這樣的軌跡是與面相關聯的(即,在數據結構中鏈接的)并且代表場景(即,其中定義了3d建模對象的參考空間)中的面的一組位置的任何信息。這樣的一組位置可以在s20處被定義為具有從所述面的當前位置開始的順序,但是這樣的順序信息也可以是被自動確定的,并且因此不一定是由用戶所定義的(例如,由于軌跡的末端是相應面的當前定位,由此確定起始定位)。所述軌跡可以是離散的或連續(xù)的。
所述軌跡由此代表相應的面從其當前位置到結束位置的移動。所述移動可以對于在s10處所選擇的所有面都是相同的,或者所述移動可以包括差異。如果所有移動都是相同的,則設計意圖可以例如包括一組功能面的剛性移動。在s20處所定義的軌跡可被約束以便使系統啟動計算。例如,要求軌跡遵循以下約束:在軌跡期間所述面不能扭轉,和/或在軌跡期間,所述面必須在相鄰的表面上滑動(例如在軸向機械部件中,相鄰的表面是旋轉曲面或是垂直于軸的表面)。之后詳述了這樣的約束。如果在s20處所定義的軌跡不遵循這樣的約束中的任何一個約束或其組合,則系統可以拒絕執(zhí)行剩余的該方法,系統可以自動地校正所述軌跡(例如,定義類似于用戶請求但遵循所述約束的軌跡),和/或該方法可以簡單地被執(zhí)行并且潛在地得出相對較不相關的結果(例如,并且向用戶顯示警告)。這是實現的問題。
每個軌跡可以在s20處由用戶經由滑動移動圖形用戶交互(例如,由系統的觸覺設備所定義的顯示器的圖形軌跡的連續(xù)移動)來定義,例如移動鼠標光標或移動連續(xù)觸摸。如何定義平移和/或旋轉(或其序列)是gui領域公知的。定義s20可以在拖-放動作中(例如,在相應的面上)與選擇s10進行組合。拖-放動作可以包括按下鼠標按鈕,接著在保持按鈕被按下的同時移動鼠標光標,并且接著釋放按鈕。和/或,拖-放動作可以包括感應屏幕或板上的觸摸按壓、滑動該觸摸、以及釋放按壓。這些是公知的用戶-機器交互。
在圖4中,順序地表示了所述選擇s10和所述定義s20,但這不一定代表由該方法被執(zhí)行的實際順序。實際上,所述選擇s10和所述定義s20可以是交錯的。該方法可以例如包括:用戶選擇s10面并且接著定義s20針對該面的相應的軌跡(例如,組合在針對該面而個性化的拖-放動作中),接著針對盡可能多的面而重復該序列,以使得已經被選擇的每個面具有相應的軌跡,由此在s20的不同重復處所定義的移動有可能彼此不同??蛇x地或額外地,用戶可以在s10處一次選擇多個面(順序地和/或同時地),并且接著在s20處定義應用于當前所選擇的所有面的單個(公共)移動,并且由此確定它們相應的軌跡。這樣的單個移動也可以在s20處經由滑動移動來定義,并且還可以經由拖-放(例如以整體選擇,例如經由在最后選擇的面上的拖-放)來定義。用戶可以例如點擊幾個面,并且接著在最后一個面上執(zhí)行拖-放,由此將定義s20鉤住至最后的選擇s10。系統可以提供交互中的任何一種類型或兩種類型的交互,其因此可以針對不同的面和/或面的分組而被組合。同樣,系統可以需要具體的命令來執(zhí)行將來的計算s100,或者在自動地識別到s20的結束之后執(zhí)行它們(以任何方式)。
圖1所示方法的選擇s10和定義s20可以是對現有技術(其中用戶可以通過一次拖動或推動單個面來更新b-rep)的任何方法的直接改編,但是其具有圖1的方法的特性,在經由計算s100進行b-rep更新之前,用戶在s10處選擇一組幾個面并且接著在s20處為每個相應的面而定義任何相應的軌跡,現在對其進行討論??梢杂上到y完全自動地執(zhí)行在下文中所討論的計算s100。然而,該系統還可以提供用戶交互,例如以細化計算和/或允許用戶輸入期望。圖4的示例的計算s100包括不同的循環(huán),但這僅是算法性表示,因為該循環(huán)實際上可以是并行化的。同樣,循環(huán)是實現選項,但是該方法可以實現其他方式來達到相同的代數結果。
圖4的方法首先在s10處選擇的每個面上循環(huán),以計算s30相應的掃掠體積。再一次,計算s30是關于定義s20順序地表示的,但不一定是這樣的情況。該方法實際上可以等待對所有軌跡的定義s20結束之后再啟動計算s30,或者可替代地每次在s20處定義在s10處所選擇的面的軌跡時,關于該面而啟動計算s30,或者甚至對于單個面,計算s30可以與定義s20交錯(例如,當該軌跡被定義s20時計算30持續(xù)地執(zhí)行)。該掃掠體積自然地與由關于在s20處針對被循環(huán)的面而定義的軌跡的相應的面所掃掠的體積相對應。可以以任何經典方式來執(zhí)行計算s30。接著,可以以任何方式來表示在s30處所計算的掃掠體積,例如通過b-rep(其允許僅僅執(zhí)行b-rep布爾算子的更新s50,并且因此可以是快速的)。
在該第一循環(huán)中,該方法還在s32處評估(再一次,其可以是順序的或者與計算s30交錯)掃掠體積在相應的面(即,被循環(huán)的面)處關于3d建模對象內部的位置。換句話說,如果該給定的掃掠體積本地地(即在沿著軌跡的移動的開始處)進入實體或從實體出來,該方法在s32處針對給定的掃掠體積來進行評估。這可以是以任何方式執(zhí)行的,例如通過在軌跡的開始處評估面的方向,并且確定該方向是朝向3d建模對象的內部還是朝向外部(切線方向是以任何方式被處理的情況,例如經由系統錯誤)。稍后提供這樣的示例,其中該操作是通過評估代表這樣的方向的向量與在該表面處b-rep的外法線的標量積的符號來執(zhí)行的。如果掃掠體積被定位成朝向b-rep的內部,則系統將材料移除標簽(即,標記或標志)分配s34給掃掠體積。換句話說,系統創(chuàng)建了指示掃掠體積旨在移除材料這一事實的數據(以任何方式,例如通過預先確定的和專用的數據字段中的布爾值),并且將該數據鏈接至在s30處所計算并且代表掃掠體積的數據,這樣的數據因此被豐富了。在另一種情況下(掃掠體積被定位成朝向b-rep的外部),系統將材料添加標簽分配s36給該掃掠體積??梢砸匀魏谓浀浞绞?例如,根據現有技術)來執(zhí)行這樣的過程s32-s36。
此時,系統正在處理被標記的掃掠體積(“材料添加”或“材料移除”)。該方法執(zhí)行具體的經細化的更新,而不是利用這些掃掠體積來直接更新b-rep(通過粗略地添加材料添加掃掠體積以及移除材料移除掃掠體積)。即,該更新考慮了掃掠體積的經細化的版本(在圖4的示例中的s46和s48處),以使得用戶意圖被保持(并且尤其是擦除器副作用不會引入不希望的擾動)。此外,為了執(zhí)行這樣的細化,該方法可以包括將快速執(zhí)行的測試(在圖4的示例中的s42和s44處),這是因為可以測試體積與面(而非另一個體積)的沖突。事實上,兩個體積之間的沖突測試時間較長。在該示例中,細化與先前的過程(s32-s36)是按順序呈現的,但是再一次,一旦所需的輸入可用,該方法就可以使計算交替。
該方法根據在s10和s20處所提供的用戶交互命令,利用具體的材料移除體積(即,要從b-rep移除的體積,例如整體地或部分地)來更新(在圖4的示例中的s50處)初始b-rep,并且接著(即,以下第二更新應用于b-rep數學地證明了基于材料移除體積的第一更新的結果,所述第二更新可以通過順序地從b-rep移除該材料移除體積并且接著添加材料添加體積而實際地實現,或者利用得出相同代數結果的任何其他實現來實現)利用材料添加體積(即要添加到b-rep的體積,例如整體或部分)來更新。材料移除體積和/或材料添加體積可以以任何格式(例如,作為b-rep本身)提供,以使得可以以任何方式來執(zhí)行更新s50(例如,經由b-rep布爾算子,例如,首先利用預先確定b-rep減法算子的一個應用而從b-rep中減去材料移除體積,例如,并且接著利用b-rep加法/并集算子的一個應用而向先前操作的結果添加材料添加體積)。這樣的順序允許考慮到用戶意圖。
可以以任何方式來計算材料添加體積。在任何情況下,材料添加體積與具有材料添加標簽(并且稱為“材料添加體積元素”)的掃掠體積的可能經細化的版本的并集(例如,全部)相對應(在其值方面,例如,其值相等)。包含在該并集中的具有材料添加標簽的每個相應的掃掠體積不一定是這樣被添加的。實際上,在(要被減去的掃掠體積的)結束面與待添加的體積沖突(例如,具有非零交叉點,即所述面的一部分具有嚴格正面積)的情況下,該方法從每個這樣相應的掃掠體積(待添加到并集中)中減去(以任何方式執(zhí)行的減法,條件是其得出正確的代數結果)具有材料移除標記的所有掃掠體積。接著,這樣的減法的所有結果(如果沒有發(fā)現沖突面,則該結果可能是初始掃掠體積本身,術語“減法”由此指代代數結果,從給定的體積中減去了零體積與給定的體積本身相對應,例如,實際上沒有必要實現的任何具體的減法處理)實際上被加在一起以得出材料添加體積。該方法可以對稱地操作以計算材料移除體積(即,通過確定體積,所述體積對應于具有所述材料移除標簽的所有掃掠體積的并集,所述并集中具有所述材料移除標簽的每個相應的掃掠體積減去具有所述材料添加標簽并且結束面與具有所述材料移除標簽的相應的掃掠體積沖突的所有掃掠體積)。因此,材料添加體積和/或材料移除體積可以被快速地計算。實際上,減法被聚焦(而不是被系統地減去每個添加掃掠體積的所有移除掃掠體積和/或反之亦然,這將導致組合的分解)。聚焦可以源于計算容易的條件評估。然而,通過該方法操作的具體的聚焦得出良好的結果(即,在被需要和考慮用戶意圖的情況下執(zhí)行對掃掠體積的更新,擦除器作用不會出現在不想要的地方,并且不會添加未預期的材料),這歸功于該方法很好地適用于b-rep建模的上下文,特別是在機械設計領域中。例如,在b-rep的面每個都在相鄰b-rep表面上滑動(在s10-s20)(例如,軌跡是由用戶在s20處經由至少一個滑動移動圖形用戶-交互來定義的)的情況下,該方法特別適用。這樣的用戶-交互實際上與材料拉伸或收縮或移位相對應,這樣的設計操作對機械部件設計者特別有用,例如以便高效地定義機械部件特性。該方法優(yōu)化了這樣具體的上下文中的計算。
在圖4的示例中,細化是經由第二循環(huán)s42-48來執(zhí)行的,所述第二循環(huán)是針對在s30處所計算的每個掃掠體積而執(zhí)行的,并且該第二循環(huán)被表示為分成兩個分支(一個針對源自s34的掃掠體積,另一個針對源自s36的掃掠體積)。這僅僅是表示的問題?,F在,在該第二循環(huán)期間,在s30處所計算的掃掠體積有可能被細化(在它們被包含在針對更新s50的并集中之前)。這意味著在s30處所計算的掃掠體積有可能被修改(取決于測試s42和s44的結果),例如它們有可能被減少。這樣的減少充分地考慮了其中由于用戶意圖,擦除器副作用不應當應用的b-rep區(qū)域,同時仍然移除期望移除的材料。
在圖4的示例中,將在s30處被計算并在s34或s36處被標記的掃掠體積記為x。這些掃掠體積x是在潛在的細化(分別取決于測試s42或s44的減法s46或s48)之后由第二循環(huán)s42-s48輸出的,并且被輸入至更新s50。測試s42和s44以及潛在的減法s46和s48每個是對所輸入的相應的掃掠體積x(在s30處被計算并在s34或s36處添加標簽)執(zhí)行的,并且接著被輸出為經修改的,但是計算涉及不會被輸出的其他所輸入的掃掠體積(也在s30處被計算并在s34或s36處添加標簽)。在示例中,這些其他掃掠體積被記為y。實際上,第二循環(huán)包括掃掠體積x上的循環(huán)、以及在掃掠體積x上的循環(huán)以及掃掠體積y上的另一循環(huán)的每次迭代內的循環(huán)。雙循環(huán)的結果x被輸入到更新s50。可以看出,s30-s36輸出的掃掠體積的值可以作為在循環(huán)期間的掃掠體積y來包含。這可以以任何方式來處理,例如通過使用中間變量。此外,可以以任何方式來確定掃掠體積的重新分配,以確定哪些是x和/或y以及哪些掃掠體積是y。換句話說,可以以任何方式來執(zhí)行雙循環(huán)的組織。
在示例中,該方法復制在s30處所計算的掃掠體積x,由此得出復制y。圖4的方法將掃掠體積x分為兩個類別(材料添加標簽和材料移除標簽),并且對作為初始掃掠體積x的復制的掃掠體積y(材料添加標簽和材料移除標簽)執(zhí)行相同的分離。該方法接著在每個材料添加(相應地移除)掃掠體積x上循環(huán),并且針對每個所迭代的x,該方法還在具有材料移除(相應地,添加)標簽的所有掃掠體積的復制y上循環(huán)。在每次迭代時,如果y的結束(相應地,開始)面與x沖突,則該方法在s44(相應地,s42)處測試,并且如果是這樣的情況,則該方法在s48(相應地,s46)處通過從其中減去y來更新x。接著,如上所述并且如隨后例示的,該方法使用體積x來執(zhí)行b-rep的更新s50(例如,體積y可被丟棄)。在這樣的配置中,快速地執(zhí)行s42和s44處的測試,而僅僅在相關時執(zhí)行s46和s48處的減法。這使得該方法在計算上非常高效。
該方法是計算機實現的。這意味著該方法的步驟(或大體上所有步驟)是由至少一個計算機或任何類似的系統來執(zhí)行的。因此,該方法的步驟是有可能全自動地或者半自動地由計算機執(zhí)行的。該方法的計算機實現的典型示例是利用適用于該目的的系統來執(zhí)行該方法。所述系統可以包括耦合至存儲器的處理器以及圖形用戶界面(gui),所述存儲器具有記錄在其上的計算機程序,所述計算機程序包括用于執(zhí)行該方法的指令。所述存儲器還可以存儲數據庫。所述存儲器是適用于這樣的存儲的任何硬件,有可能包括幾個區(qū)別的物理部件(例如,一個用于程序,而有可能一個用于數據庫)。
該方法通常對建模對象進行操縱。建模對象是由存儲在例如數據庫中的數據所定義的任何對象。作為擴展,表述“建模對象”指代數據本身。根據系統的類型,建模對象可以是由不同種類的數據所定義的。該系統實際上可以是cad系統、cae系統、cam系統、pdm系統、和/或plm系統的任何組合。在那些不同的系統中,建模對象是由對應的數據所定義的。從而,所述數據可以是說cad對象、plm對象、pdm對象、cae對象、cam對象、cad數據、plm數據、pdm數據、cam數據、cae數據。然而,這些系統不是彼此排他的,這是因為建模對象可以是由與這些系統的任何組合相對應的數據所定義的。因此,系統可以是cad系統和plm系統兩者,如從在下文中所提供的這樣的系統的定義將是顯而易見的。
通過cad系統,額外地表示至少適用于基于建模對象的圖形表示來設計建模對象的任何系統,諸如catia。在該情況下,對建模對象進行定義的數據包括允許對建模對象的表示的數據。cad系統可以例如使用邊或線(在某些情況下利用面或表面)來提供對cad建模對象的表示。線、邊、或表面可以是以各種方式來表示的,例如,非均勻有理b樣條(nurbs)。具體地,cad文件包含從中可以生成幾何形狀的規(guī)范,這進而允許生成表示??梢詫⒔ο蟮囊?guī)范存儲在單個cad文件或多個cad文件中。在cad系統中表示建模對象的文件的典型大小在每個部件一兆字節(jié)的范圍內。并且建模對象通??梢允蔷哂袛登€部件的組件。
在cad的上下文中,建模對象通常可以是3d建模對象,例如表示諸如部件或多個部件的組件的產品,或者有可能是產品的組件。通過“3d建模對象”,是指通過允許其3d表示的數據來建模的任何對象。3d表示允許從所有角度查看部件。例如,當被3d表示時,3d建模對象可以圍繞其軸中的任何軸或者圍繞表示在其上顯示的屏幕中的任何軸來處理和旋轉3d建模對象。這特別地排除了不是3d建模的2d圖標。3d表示的顯示有助于設計(即,增加設計者在統計上完成他們的任務的速度)。這加速了工業(yè)中的制造過程,因為產品的設計是制造過程的一部分。
3d建模對象可以表示在利用例如cad軟件解決方案或者cad系統完成其虛擬設計之后要在真實世界中制造的產品(即,其代表性的所測量的數據是方法的輸入的真實對象)的幾何形狀,例如機械部件或多個部件的組件(或等價地,多個部件的組件,因為所述多個部件的組件可以從該方法的角度被視為部件本身,或者該方法可以被獨立地應用至組件的每個部件),或者更加一般地,任何剛體組件(例如,移動機制)。cad軟件解決方案允許對各種和無限制的工業(yè)領域中的產品的設計,所述領域包括:航天、建筑、結構、消費品、高科技設備、工業(yè)設備、運輸、海洋、和/或海上石油/天然氣生產或運輸。因此,通過該方法所設計的3d建模對象可以表示工業(yè)產品,其可以是任何機械部件,例如,陸上交通工具的部件(包括例如汽車和輕型卡車設備、賽車、摩托車、卡車和機動設備、卡車和公共汽車、火車)、空中交通工具的部件(包括例如機身設備、航天設備、推進設備、國防產品、航空設備、空間設備)、海洋交通工具的部件(包括例如海軍設備、商業(yè)船、海上設備、游艇和工作船、船舶設備)、一般機減部件(包括例如工業(yè)制造機械、重型移動機械或設備、所安裝的設備、工業(yè)設備產品、金屬制品、輪胎制造產品)、機電或電子部件(包括例如消費性電子產品、安全和/或控制和/或儀器產品、計算和通信設備、半導體、醫(yī)療裝置和設備)、消費品(包括例如家具、家庭和花園產品、休閑用品、時尚產品、耐用品零售商產品、紡織品零售商產品),包裝(包括例如,食品和飲料和煙草、美容和個人護理、家用產品包裝)。
通過plm系統,額外地表示適用于管理表示物理制造產品(或待制造的產品)的建模對象的任何系統。在plm系統中,建模對象因此是由適用于制造物理對象的數據來定義的。這些通??梢允浅叽缰岛?或公差值。為了正確地制造對象,具有這樣的值確實是更好的。
通過cam解決方案,額外地表示適用于管理產品的制造數據的任何解決方案、硬件的軟件。制造數據通常包括與要制造的產品、制造過程、和所需的資源有關的數據。cam解決方案用于計劃和優(yōu)化產品的整個制造過程。例如,其可以給cam用戶提供可以在制造過程的具體步驟中使用的關于可行性、制造過程的持續(xù)時間、或資源的數量(例如具體的機器人)的信息;并且因此,允許對管理或所需投資進行決策。cam是cad過程和潛在的cae過程之后的后續(xù)過程。這樣的cam解決方案是由dassaultsystèmes在商標
通過cae解決方案,額外地表示適用于分析建模對象的物理行為的任何解決方案、硬件的軟件。公知并且廣泛使用的cae技術是有限元方法(fem),其通常涉及將建模對象劃分成可以通過方程來計算和模擬其物理行為的元素。這樣的cae解決方案是由dassaultsystèmes在商標
pdm代表產品數據管理。通過pdm解決方案,表示適用于對與特定產品相關的所有類型的數據進行管理的任何解決方案、硬件的軟件。pdm解決方案可以由參與產品生命周期的所有參與者使用:主要是工程師,但也包括項目經理、財務人員、銷售人員、和購買者。pdm解決方案通常是基于面向產品的數據庫的。這允許參與者共享關于他們的產品的一致的數據,并且因此防止參與者使用有分歧的數據。這樣的pdm解決方案是由dassaultsystèmes在商標
圖5示出了系統的gui的示例,其中該系統是cad系統。該方法可被應用在顯示器上,例如通過對在圖中所表示的b-rep面進行圖形操作。
gui2100可以是典型的類cad界面,其具有標準菜單欄2110、2120以及底部和側邊工具欄2140、2150。這樣的菜單欄和工具欄包含一組用戶可選擇的圖標,每個圖標與如在本領域中已知的一個或多個操作或功能相關聯。這些圖標中的一些圖標與適于對在gui2100中所顯示的3d建模對象2000進行編輯和/或工作的軟件工具相關聯??梢詫⑺鲕浖ぞ叻纸M為多個工作臺。每個工作臺包括所述軟件工具的子集。特別地,工作臺中的一個工作臺是編輯工作臺,其適用于對建模產品2000的幾何特征進行編輯。在操作中,設計者可以通過選擇合適的圖標來例如預先選擇對象2000的部件、并且接著開始操作(例如,改變尺寸、顏色等)或者編輯幾何約束。例如,典型的cad操作是對屏幕上所顯示的3d建模對象的沖孔或折疊進行建模。gui可以例如顯示與所顯示的產品2000相關的數據2500。在圖5的示例中,被顯示為“特征樹”的數據2500及其3d表示2000關于包括制動鉗和盤的制動組件。gui還可以示出各種類型的圖形工具2130、2070、2080,例如用于便于對象的3d定向、用于觸發(fā)對所編輯的產品的操作的模擬、或者呈現所顯示的產品2000的各種屬性。光標2060可以由觸覺設備控制以允許用戶與圖形工具進行交互。
圖6示出了該系統的示例,其中,所述系統是客戶端計算機系統,例如,用戶的工作站。
示例的客戶端計算機包括連接至內部通信總線1000的中央處理單元(cpu)1010,同樣連接至總線的隨機存取存儲器(ram)1070。還給客戶端計算機提供有與連接至總線的視頻隨機存取存儲器1100相關聯的圖形處理單元(gpu)1110。視頻ram1100在本領域中也被稱為幀緩沖器。大容量存儲設備控制器1020管理對諸如硬盤驅動器1030之類的大容量存儲設備的訪問。適用于有形地實施計算機程序指令和數據的大容量存儲設備包括所有形式的非易失性存儲器,其作為示例包括諸如eprom、eeprom、和閃速存儲器設備之類的半導體存儲設備;諸如內置硬盤和可移動盤之類的磁盤;磁光盤;以及cd-rom盤1040。任何前述內容可以由專門設計的asic(專用集成電路)補充或并入其中。網絡適配器1050管理對網絡1060的訪問??蛻舳擞嬎銠C還可以包括觸覺設備1090,例如光標控制設備、鍵盤等。光標控制設備被用在客戶端計算機中以允許用戶選擇性地將光標定位在顯示器1080上的任何期望的位置處。另外,光標控制設備允許用戶選擇各種命令,并且輸入控制信號。光標控制設備包括用于向系統輸入控制信號的多個信號生成設備。通常地,光標控制設備可以是鼠標,鼠標的按鈕用于生成信號。可替代地或額外地,客戶端計算機系統可包括感應墊、和/或感應屏幕。
計算機程序可以包括能夠由計算機執(zhí)行的指令,所述指令包括用于使得上述系統執(zhí)行方法的單元。程序可以是能夠記錄在任何數據存儲介質(包括系統的存儲器)上的。所述程序可以例如在數字電子電路中、或者在計算機硬件、固件、軟件或它們的組合中實現??梢詫⑺龀绦驅崿F為裝置,例如有形地在機器可讀存儲設備中實施以用于由可編程處理器執(zhí)行的產品。方法步驟可以由可編程處理器執(zhí)行,該可編程處理器執(zhí)行指令的程序以通過對輸入數據進行操作并且生成輸出來執(zhí)行該方法的功能。因此,所述處理器可以是可編程的并且被耦合以從數據存儲系統、至少一個輸入設備、和至少一個輸出設備接收數據和指令,以及向數據存儲系統、至少一個輸入設備、和至少一個輸出設備發(fā)送數據和指令。應用程序可以以高級過程式或面向對象的編程語言來實現,或者如果需要的話,以匯編或機器語言來實現。在任何情況下,所述語言可以是經編譯或經解譯的語言。程序可以是完全安裝程序或更新程序。系統上的程序的應用在任何情況下都得出執(zhí)行該方法的指令。
“對3d建模對象進行設計”指代作為制作3d建模對象的過程的至少一部分的任何動作或一系列動作。因此,該方法可以包括從頭開始創(chuàng)建3d建模對象??商娲?,該方法可以包括提供先前所創(chuàng)建的3d建模對象,并且接著修改3d建模對象。該方法可以被包括在制造流程中,其可以包括在執(zhí)行該方法后,生產幾何地對應于該建模對象的物理產品。
圖7示出了根據圖4的示例的方法的高級示例。
圖7的方法允許設計者通過選擇和定義針對面的軌跡(經由示例中的移動)(例如,通過拖動/推動它們)來修改由3d建模對象所表示的實體的邊界表示(b-rep)。其目的是限定由該實體所表示的機械部件的形狀。利用該方法,可以同時移動多個面,條件是它們相應的影響區(qū)域彼此分離。此外,設計者可以預期到所得到的形狀,以使得系統能夠預測并且易于使用。圖7的方法的輸入對象是實體的邊界表示s、在該實體上所選擇的一組(即,集合)面、以及待應用于所有所選擇的面的移動軌跡。輸出對象是根據面位移的實體的經更新的邊界表示s′。
通過使用初始選擇的面和移動軌跡,圖7的方法計算對應的掃掠體積。取決于軌跡的相對朝向和所選擇的面的外法向量,如果假設要將材料添加到實體,則每個體積被標記為“a-塊”,或者如果假設要從實體移除材料,則被標記為“r-塊”。接著,通過研究以下幾何形狀之間的干擾來定義重疊a-塊和r-塊之間的優(yōu)先級:a-塊、r-塊、所選擇的面的初始位置、所選擇的面的最終位置。歸功于該優(yōu)先級,a-塊和r-塊被組合在一起以使得很好地定義待添加至輸入實體的材料m+的合適量以及待從實體移除的材料m-的合適的量。最后一個步驟是根據公式s′=(s-m-)∪m+移除m-并將m+添加至輸入實體。在圖7中示出的圖示出了這些主要步驟。
允許用戶通過同時選擇多個面來執(zhí)行修改顯然是生產力的提高,并且避免了擦除器副作用保持了輸入實體的完整性,通過避免部分檢查和局部重新設計而使得設計改變更加安全。
該方法的輸入是對實體建模的公知的b-rep格式。如公知的,b-rep模型包括拓撲實體和幾何實體。拓撲實體是:面、邊、和頂點。幾何實體是3d對象:表面、平面、曲線、線、點。作為定義,面是表面的有界的部分,被稱為支撐表面。邊是曲線的有界部分,被稱為支撐曲線。頂點是3d空間中的點。他們彼此之間相關如下。曲線的有界部分是由位于曲線上的兩個點(頂點)所定義的。表面的有界部分是由其邊界限定的,該邊界是位于表面上的一組邊。面的邊界的邊是通過共享頂點而連接在一起的。面通過共享邊連接在一起。根據定義,如果兩個面共享邊,則它們是相鄰的。類似地,如果兩個邊共享頂點,則它們是相鄰的。這樣的信息是針對該方法的足夠的輸入數據。
圖8和圖9示出了圓柱形槽80(其可以例如表示在該方法的示例中涉及的功能特征)的b-rep模型,并且其由在圖中標記為1、2、和3的三個面構成:頂平面1和兩個側圓柱面2和3。圖8示出了槽80的透視圖。圖9示出了所有面的分解視圖。重復的數字示出了邊和頂點是共享的。面1是平面的有界部分。面1的邊界包括邊4和5,它們中的每個是被頂點10和11界定的。它們具有相同的支撐圓。面2是被位于無限圓柱形表面(即面2的支撐表面)上的邊6、8、5、和13界定的。面1和2是相鄰的,因為它們共享邊5。面2和3是相鄰的,因為它們共享邊8和13。面1和3是相鄰的,因為它們共享邊4。
圖10示出了槽80的b-rep模型的“被界定”的拓撲關系。較高層的節(jié)點101是面,中間層的節(jié)點103是邊,而較低層105的節(jié)點是頂點。圖11和12示出了拓撲實體(面、邊、和頂點)與支持幾何形狀(無限圓柱、無限平面、無限線、點)之間的關系。在cad系統中,b-rep模型在合適的數據結構中收集“被界定”的關系、拓撲實體與支持幾何形狀之間的關系、以及支持幾何形狀的數學描述。換句話說,在圖10和11中所示出的數據結構是該示例的拓撲數據的一部分,其包括至幾何數據的幾何實體的鏈接(這是圖11)以及拓撲實體之間的鏈接(這是圖10)。
通過該方法所設計的機械部件可以是軸向機械部件(即,具有例如主軸線以及例如具有關于該軸線的軸向功能的機械部件)。例如,機械部件具有到配合部件(其因此是軸向機械本身并且可以經由該方法的另一實例來設計)的接合(例如圓柱形的或旋轉的)的軸線。在這樣的情況下,用戶針對設計操作而選擇的一組面可以包括用于定義軸向機械部件的至少一個功能特征的面。換句話說,該方法是在限定了一個或多個功能特征(不一定是所有這樣的限定面)的一組面上執(zhí)行的。功能特征是機械部件的至少一部分和/或至少一個孔的集合,其約束部件相對于其配合部件的移動和/或影響這樣的移動對部件的作用。用戶可以想要通過選擇該部分和/或該孔周圍的一個或多個面并且在其余部分上滑動所述面來編輯功能特征,這樣的設計操作與物理材料拉伸、收縮、或位移相對應,例如經由例如面的推動/拖動/位移來進行調整。
現在提供這樣的機械部件的示例。該方法旨在促進軸向機械部件的這樣的示例的設計。
軸向機械部件可以具有配合部件,并且通過旋轉接頭或圓柱形接頭而連接至其配合部件。這意味著它的相對移動最多受兩個自由度的控制:沿著軸線(圓柱形接頭)的平移、圍繞所述軸線(圓柱形接頭和旋轉接頭)的旋轉。軸部分的幾何形狀主要是在其上添加功能特征的旋轉實體形狀。這樣的部件可以是任何旋轉機器的軸部件(例如,渦輪發(fā)動機、轉向柱、離合器、齒輪箱、混合器、和/或栓式機槍),或任何涉及流動過程的組件的軸部件(例如,消音器、槍口制退器、和/或聲音抑制器)。
功能特征可以表示機械部件的一部分,其限定該部件關于配合部件的移動的自由度。功能特征因此可以表示凹口、銷、槽、或凸耳。功能特征因此可以限定引導的和/或停止的自由度,其是平移和/或旋轉。功能特征可以可選地或額外地表示通過移除/添加材料來貢獻于減少和/或平衡部件重量的機械部件的一部分。在該情況下,出于旋轉穩(wěn)定性的目的,功能特征必須圍繞旋轉軸線適當地布置。類似地,出于平衡的目的,可以添加一些材料以便保有旋轉穩(wěn)定性。
旋轉機器可用于所有機械工業(yè),例如:航天、國防、工程、建筑、消費品、能源、工業(yè)設備、海洋和海上、交通和移動。從制造的角度來看,旋轉形狀是通過使用車床獲得的,而細節(jié)是通過使用銑床獲得。當使用cad系統時,根據部件的軸向突出,功能細節(jié)常常是通過旋轉圍繞部件的軸線的幾何形狀來創(chuàng)建和修改的。選擇s10和定義s20可以是以該方式執(zhí)行的。
圖13-15示出了可以由該方法高效地設計的軸向機械部件的示例。圖13示出了典型的離合器部件。圖14示出了典型的轉向柱部件。圖15示出了典型的槍口制退器。
現在,在s20處所定義的軌跡可以是通過將軸向機械部件的功能特征沿著和/或圍繞著機械部件的軸線的滑動編輯來定義的(即,這意味著用戶意圖使定義該功能特征的機械部件的部分或孔關于機械部件的其余部分滑動)。換句話說,該軌跡是在s20處經由用戶編輯而定義的,該用戶編輯包括在機械部件的恒定軸-形成主體(例如,圓柱形)上滑動功能特征的面(即,限定功能特征并且在滑動時產生非零掃掠體積的面,因為它們相應的所定義的軌跡不能使它們在其初始限定的表面上滑動)?;瑒舆€可以包括功能特征的維度的重新確定,例如如果不是相同的軌跡被用于功能特征的所有互補面,或者功能特征可以是剛性滑動?;瑒涌梢耘c功能特征關于軸向機械部件的軸線的調整操作相對應。
例如,功能部件形成關于軸向機械部件的軸線徑向延伸的至少一個突起和/或至少一個孔。在示例中,突起或孔是由徑向面(即其支撐表面包含軸線的或平行于軸線的面)、垂直于軸線的面、和/或極面(即其支撐表面是基于軸的圓柱的面)來定義的。在其他示例中,這樣的幾何形狀僅僅是實質性的。接著,功能部件的滑動編輯可以包括僅選擇徑向面并且旋轉它們(即,旋轉軸是部件的軸線),所有其它面保持不動?;瑒泳庉嬁梢钥商娲匕▋H僅選擇垂直于軸線的面,并且沿著軸線平移它們(即,平移方向是軸線),所有其他面保持不動??商娲?,可以選擇這兩種類型的面,并且可以定義這樣的旋轉和/或這樣的平移的任何組合。在所有這些示例中,滑動移動可以經由類似拖-放的手勢同時應用于所有所選擇的面,如先前所解釋的。
例如,可以執(zhí)行該方法以轉換位于機械部件上的相同高度(即,軸向橫坐標)上的突起和/或孔(例如,因為用戶最初在定向功能特征時出錯)。這可以受到預先確定的轉換目標的約束,例如目標角度列表??梢越浻梢韵路绞饺菀椎貓?zhí)行所述轉換:一次僅選擇徑向面的突起和/或孔,并且接著滑動旋轉整個選擇(以使得每個突起和/或孔位于示例中的預先確定的目標角度列表中正確的一個處)。在該流程中涉及的任何功能特征保持不變。
在另一示例中,可以執(zhí)行該方法以編輯軸向機械部件上的幾個突起和/或孔的高度(例如,因為用戶最初在所選擇的高度上犯錯誤)。這可以受到預先確定的編輯目標(例如,目標高度)的約束??梢越浻梢韵路绞饺菀椎貓?zhí)行所述編輯:一次僅僅選擇突起和/或孔的垂直面,并且接著滑動平移整個選擇(至該示例中的預先確定的目標高度)。在該過程中涉及的任何功能特征保持不變。
向機械設計者提供這樣的設計操作在軸向機械部件上下文中特別有用,因為與功能特征的位置和/或尺寸相對應的功能特征的參數、或與功能特征的面沿著和/或圍繞軸向機械部件的軸線的位置相對應的功能特征的參數是最經常需要重新調整和重新定義并且有可能在長距離(與半徑值相比)上的參數。此外,軸向機械部件可以相對地擠滿了許多功能特征。在這樣的情況下,該方法允許用戶經由滑動移動其面來容易地重新定義功能特征的位置(沿著和/或圍繞軸線),而不用費心繞過其他所遇到的功能特征(因此,其可以交叉但不會被該交叉和擦除器副作用所編輯,這在軸向機械部件設計領域是實用的)。因此在這樣的情況下,該方法是特別人機工程學的。在示例中,軸向機械部件包括至少兩個或至少五個功能特征。
現在參考圖16-18來討論其中定義了這樣的軌跡的典型的編輯場景。典型的機制是螺栓。其由具有兩個凸耳的圓柱形部件a構成。圖16示出了由該方法所設計的這樣的機械部件。部件a以凸耳與開口對齊的方式沿軸線b平移到部件c中。接著,部件a圍繞軸線b旋轉,直到凸耳與開口的內壁接觸為止。伸縮銷d用于防止部件a在部件c內的反向旋轉。圖17示出了組件。第一編輯場景用于通過圍繞軸線b移動面來調整凸耳尺寸和軸向定位。第二編輯場景用于調整部件c的開口以與部件a正確適配。再一次,這是通過圍繞軸線b移動開口的面來完成的。當然,當調整相鄰的面時,伸縮銷d一定不能丟失。第三編輯場景用于利用三個凸耳螺栓a′來執(zhí)行相同類型的調整,如在圖18中所示。該方法允許高效地執(zhí)行這些設計場景。
現在討論該方法的實現的示例。
現在討論為了實現而選擇的面(例如,在s10處)和目標面(例如,涉及的開始和結束面,例如,在計算s100中)的示例。
輸入對象是輸入實體s、用戶在該實體上選擇的面(記為fi,i=1,…,n)、以及移動軌跡(記為w:[0,1]→so(3),其中so(3)是三維空間中的剛性移動的集合)。針對每個t∈[0,1],w(t)是剛性移動,這意味著對于任何
示例性實現的方法處理線性移動或旋轉移動。線性移動由下式定義:
w(t)(x)=x+tt
其中向量t是與t無關的。旋轉移動由下式定義:
w(t)(x)=r(t)(x-p)
其中r(t)是圍繞由點p和向量u所定義的軸的旋轉,所述點p和向量u兩者都是與t無關的。
示例性實施很好地處理這樣的情況,在滑動編輯期間,所選擇(經由對面的分組的選擇)的和旨在被設計/編輯(經由軌跡的定義)的功能特征穿過(即,交叉)至少一個其他功能特征。該方法證明在該示例中是特別有效的,因為所述其它功能特征不被該方法編輯,由此避免了擦除器副作用。此外,該避免是經由快速計算確保的,現在詳述其示例。這確保了系統保持響應并且快速執(zhí)行b-rep的更新。
首先詳述針對添加塊(即,具有材料添加標簽的掃掠體積)和移除塊(具有材料移除標簽的掃掠體積)的數據結構。
針對每個i∈{1,…,n}和任何點x∈fi,令ni(x)是在點x處的面fi的外法向量。點x的軌跡是由cx(t)=r(t)x+t(t)所定義的3d參數化曲線
sign<c′x(0)|ni(x)>=sign<c′x(t)|r(t)ni(x)>
針對所有t∈[0,1]并且針對所有x∈fi。
如果不遵循該條件,則實現示例的方法可以以任何方式輸出系統錯誤或處理該情況。認為該條件在下面中是被遵循的。
如果該常數符號為正,則移動軌跡朝向外法向量的方向,并且面fi的掃掠體積被標記(即,標簽分配)為a-塊。該方法理解這理應向實體添加材料,并被記為ai,其中:
如果該常數符號為負,則移動軌跡朝向外法向量的相反方向,并且面fj的掃掠體積是r-塊。其理應從實體中移除材料,并被記為rj,其中:
索引的集合{1,…,n}現在可以被拆分成兩個不相交的子集{1,…,n}=i∪j,以使得a-塊是ai,i∈i,并且r-塊是rj,j∈j。
圖19示出了以正符號為特征的面的規(guī)則移動。面f0圍繞點p旋轉直到其最終位置f1。圖20示出了對應的a-塊。圖21示出了其中標量積符號不是常數的奇異情況。所得的掃掠體積是扭曲的并且將通過區(qū)域a添加材料,而同時通過區(qū)域r移除材料。
現在呈現根據該方法的示例的核心算法。
該算法運行三個步驟。第一步計算待添加至輸入實體s的材料m+的合適的量。通過測試a-塊ai與r-塊的結束面fj1之間的沖突來識別重疊的塊,其被寫為
第二步計算待從輸入實體s移除的材料m-的合適的量。通過測試r-塊rj與a-塊的起始面fi0之間的沖突來識別重疊的塊,其被寫為
第三步也是最后一步實際上從輸入實體s移除材料并向輸入實體s添加材料,其產生所得到的實體s′。
s′=(s-m-)∪m+
現在討論運行該算法的示例。
利用特征在于重疊的塊和被包含但是沒有明確地選擇的小細節(jié)的示例示出了該算法。在圖22中的實體上選擇面f1,f2,f3和f4。移動w是圍繞豎直軸的180度旋轉。細節(jié)是面f3和f4之間的圓柱形槽。結束面分別是f11,f21,f31和f41,如結合外部法線向量在圖23中所示的。標量積分析產生“添加”對“移除”分型i={1,4}和j={2,3}。與輸入實體一起在圖24中示出了相應的掃掠體積a1,r2,r3和a4。為了清楚起見,將掃掠體積沿著旋轉軸平移。a-塊的a1,a4與r-塊r2,r3的結束面f21,f31之間的沖突如下:
根據核心算法的第一步,這得出:
m+=(a1-r3)∪(a4-r2)
圖25示出了m+以及輸入實體s。應當注意,m+是由兩個連接的組件組成的。為了清楚起見,將m+稍微向上平移。應該注意的是m+是如何保存圓柱形槽的鄰域的。r-塊r2,r3與a-塊a1,a4的起始面f10,f40之間的沖突如下:
根據核心算法的第二步,這得出:
m-=(r2-a4)∪(r3-a1)
圖26示出了m-以及輸入實體。應當注意,m-是由兩個連接的組件組成的。為了清楚起見,將m-稍微向上平移。在這里再一次,應該注意的是m-是如何保存圓柱形槽的鄰域的。根據核心算法的第三步,所得到的實體是如圖27所示的s′=(s-m-)∪m+以及中間結果s-m-。