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