,以使整個(gè)組件符合所有關(guān)系。
[0065] 樣式約束的典型應(yīng)用為車身設(shè)計(jì)。圖6示出了通過利用曲線和表面來設(shè)計(jì)的車身 的形狀。工業(yè)設(shè)計(jì)者首先創(chuàng)建曲線,然后表面通過選擇曲線的閉合輪廓而被創(chuàng)建。工業(yè)設(shè) 計(jì)者還創(chuàng)建匹配和相切關(guān)系,所述匹配和相切關(guān)系鏈接曲線對(duì)或表面對(duì)。曲線1至7通過 根據(jù)圖7的圖的樣式關(guān)系來連接。為清晰起見,應(yīng)當(dāng)理解,曲線1的端點(diǎn)為點(diǎn)8和10,而曲 線2的端點(diǎn)為點(diǎn)9和11。曲線1和3為固定曲線。曲線6和7的端點(diǎn)共享曲線1的端點(diǎn)。 曲線2的端點(diǎn)相應(yīng)地被約束于曲線6和曲線7。曲線4的端點(diǎn)相應(yīng)地被約束于曲線1和曲 線2。曲線5的端點(diǎn)相應(yīng)地被約束于曲線2和曲線3。最終,取決于曲線2的曲線5的端點(diǎn) 與取決于曲線2的曲線4的端點(diǎn)重合,并且,此時(shí),曲線4和曲線5之間的連接是連續(xù)曲率。 當(dāng)工業(yè)設(shè)計(jì)者改變幾何形狀時(shí),例如通過沿曲線3滑動(dòng)曲線5的端點(diǎn),樣式解算器能夠保持 所有這些關(guān)系。
[0066] 實(shí)體建模的經(jīng)典特征列于表I中。在本討論的上下文中,"特征"表示輸入和輸出 對(duì)象之間的"過程關(guān)系"。輸入對(duì)象的特性被詳細(xì)描述。輸出對(duì)象始終為實(shí)體。表I的過程 關(guān)系可以全部或部分地由該方法考慮。
[0067]
[0068] 表I實(shí)體建模中的經(jīng)典特征
[0069] 現(xiàn)討論步驟S30。
[0070] 如上文提到的,對(duì)定義3D建模對(duì)象的數(shù)據(jù)的修改可以為已有幾何對(duì)象和/或已有 關(guān)系的任何參數(shù)的修改。其還可以指代新的幾何對(duì)象或關(guān)系的添加(如在S20)或已有幾 何對(duì)象或已有關(guān)系的刪除。在修改時(shí),該方法確定所謂的"強(qiáng)連通圖"。強(qiáng)連通圖是唯一的 并且指代建模圖的強(qiáng)連通分量的圖(具有節(jié)點(diǎn)和弧,所述節(jié)點(diǎn)表示幾何對(duì)象,每一個(gè)弧表 示鏈接由弧的入射節(jié)點(diǎn)表示的兩個(gè)幾何對(duì)象的關(guān)系,其中過程關(guān)系由具有與過程關(guān)系相同 的方向的單向弧表示,并且其中活躍關(guān)系由雙向弧表示)。強(qiáng)連通分量概念在下文詳細(xì)描述 并且從圖論中已知。來自圖論的多個(gè)結(jié)果被用于本文的討論。經(jīng)典參考為:FrankHarary, GraphTheory,AddisonWesley1969。在該優(yōu)先權(quán)申請(qǐng)被提交時(shí),維基百科提供了強(qiáng)連通 分量概念的討論。
[0071 ] 在對(duì)3D建模對(duì)象進(jìn)行任何修改時(shí),該方法提供了對(duì)象的活躍更新。其在3D建模 對(duì)象向工業(yè)設(shè)計(jì)者呈現(xiàn)/顯示的情況下特別有用。在該情況下,設(shè)計(jì)者可以直接看到修改 的效果。更新還可以發(fā)生在較晚的時(shí)間,如上文所提到的。在任何情況下,更新基于強(qiáng)連通 圖來執(zhí)行,并且更特別地根據(jù)強(qiáng)連通圖的遍歷執(zhí)行。換言之,強(qiáng)連通圖的弧之后是該方法的 更新S30/強(qiáng)連通圖的弧由該方法的更新S30進(jìn)行瀏覽。再換言之,方法根據(jù)強(qiáng)連通圖的結(jié) 構(gòu),并且更特別地根據(jù)強(qiáng)連通圖的弧的方向來執(zhí)行更新。在下文詳細(xì)描述的特定示例中,強(qiáng) 連通圖的遍歷為公知的深度優(yōu)先遍歷。其允許快而魯棒的更新,而很好地使用了關(guān)聯(lián)于S20 的準(zhǔn)則。特別地,在強(qiáng)連通圖的遍歷期間,每一個(gè)強(qiáng)連通分量可以獨(dú)立于建模圖的剩余部分 而被求解。換言之,該方法使用幾何對(duì)象的結(jié)構(gòu)和鏈接它們的關(guān)系,其結(jié)構(gòu)由建模圖所捕 獲,并且該方法將該結(jié)構(gòu)重新組織為另一結(jié)構(gòu),即,強(qiáng)連通圖。然后,通過充分改變該求解和 重復(fù)鏈接其之間的不同強(qiáng)連通分量的對(duì)象的過程,該方法獨(dú)立地求解對(duì)應(yīng)于強(qiáng)連通分量的 幾何對(duì)象的組。其允許僅活躍關(guān)系被實(shí)現(xiàn)的針對(duì)模型的專用解算器的重用。例如,每一個(gè) 強(qiáng)連通分量可以通過公式系統(tǒng)解算器(即將一組活躍關(guān)系轉(zhuǎn)換為公式系統(tǒng)并且實(shí)質(zhì)上求 解系統(tǒng)的解算器)或通過迭代解算器(即迭代地測試3D建模對(duì)象的參數(shù)值以達(dá)到基本遵 守該組活躍關(guān)系涉及的約束的狀態(tài)的解算器)來進(jìn)行求解。這些解算器從現(xiàn)有技術(shù)已知。 其包括變量解算器和樣式解算器。解算器的特性取決于應(yīng)用以及要求解的強(qiáng)連通分量所涉 及的活躍關(guān)系的特性。
[0072] 該方法因此定義限制,"按序準(zhǔn)則",以用于將過程關(guān)系與活躍關(guān)系混合。該限制在 包括S30的方法的示例中保證按序更新可以被執(zhí)行。并且,在包括S20的示例中的方法以 所述按序準(zhǔn)則被保持的方式提供了用于編輯關(guān)系網(wǎng)絡(luò)的便利。
[0073] 圖8的圖示示出了以上討論的按序準(zhǔn)則診斷和按序更新的示例的過程。有向(建 模)圖和強(qiáng)連通圖為被該方法轉(zhuǎn)換為用于執(zhí)行計(jì)算的特定數(shù)據(jù)的數(shù)學(xué)概念。圖9的圖示示 出了用于在網(wǎng)絡(luò)中創(chuàng)建活躍或過程關(guān)系期間保存按序準(zhǔn)則的過程。再次,有向(建模)圖 和強(qiáng)連通圖為被該方法轉(zhuǎn)換為用于執(zhí)行計(jì)算的特定數(shù)據(jù)的數(shù)學(xué)概念。
[0074] 在數(shù)據(jù)模型的角度以及在更新的角度上,該方法提供了過程和非過程關(guān)系的真正 水平的集成。繼而,工業(yè)設(shè)計(jì)者的價(jià)值是更加靈活的和有力的設(shè)計(jì)系統(tǒng)以及擴(kuò)展的設(shè)計(jì)能 力。由本發(fā)明定義的按序準(zhǔn)則是一種引導(dǎo)而非限制。其有助于工業(yè)設(shè)計(jì)者受益于異構(gòu)網(wǎng)絡(luò), 并且避免任何復(fù)雜的循環(huán)情形下的手工管理。按序準(zhǔn)則在整個(gè)設(shè)計(jì)過程中可以被安全地保 持,隨時(shí)保證按序更新。其保持了CAD系統(tǒng)的整體性和可靠性。本發(fā)明的另一優(yōu)點(diǎn)是已有 過程估計(jì)和活躍解算器的可能的重用。新的算法是總的操作,其定義和執(zhí)行更新序列。這 使該實(shí)現(xiàn)更加簡單和魯棒。
[0075] 現(xiàn)提供圖論【背景技術(shù)】來更好地理解該方法。
[0076] 第一,現(xiàn)討論該方法使用的有向圖的概念(建模圖為有向圖)
[0077] 有向圖為四元組G= (X,U,α,ω),其中X為節(jié)點(diǎn)的集合,U為弧的集合,并且其 中a:U-X并且ω:U-X為連接函數(shù)。表述a(u) =X表示XeX為弧ueU的初始節(jié) 點(diǎn)。弧u為節(jié)點(diǎn)X的輸出弧。表述ω(u) =y表示yeX為弧ueU的結(jié)束節(jié)點(diǎn)?;為 節(jié)點(diǎn)y的輸入弧。
[0078] 根據(jù)該表示,設(shè)置ω1 (y)為節(jié)點(diǎn)y的輸入弧的集合,α1 (X)為節(jié)點(diǎn)X的輸出弧的 集合,設(shè)置α(ωYy))為節(jié)點(diǎn)y的輸入節(jié)點(diǎn)的集合并且設(shè)置ω(αΥχ))為節(jié)點(diǎn)y的輸出 節(jié)點(diǎn)的集合。
[0079] 通過定義,根節(jié)點(diǎn)r沒有輸入弧,表示ω」(Γ) = □。葉子節(jié)點(diǎn)1沒有輸出弧,表 示a^1) =□〇
[0080] 現(xiàn)討論該方法使用的其它圖論概念。
[0081] 環(huán):環(huán)為弧 . . .,un的列表,以使ω(u;) =a(ui+1),其中i= 1,. . .,n-1 而 ω(un) =a(uj。環(huán)可以由節(jié)點(diǎn)Χρ. . .,xn的列表較好地定義,以使對(duì)于i= 1,. . .,n-1, 存在弧W,以使a(uj=Xi,而ω(uj=xi+1,以及弧!^,使a(un) =xn,并且ω(un) =Χρ 圖10示出了有向圖。節(jié)點(diǎn)的集合為Χ=U,2,...,11}。具有雙方向的箭頭為表示相反方 向的兩個(gè)箭頭的圖形快捷方式。節(jié)點(diǎn)3、10、11定義環(huán)。
[0082] 子圖:給定節(jié)點(diǎn)YcX的子集,G的對(duì)應(yīng)子圖Η由連接節(jié)點(diǎn)Y的G的所有的弧定義。 公式上,H= (Y,V,α,ω),其中V={ueU,a(u)eΥ,ω(u)eΥ}。
[0083] 有向無環(huán)圖:
[0084] 根據(jù)定義,有向無環(huán)圖不包括環(huán)。
[0085] 強(qiáng)連通分量:
[0086] 強(qiáng)連通分量的目標(biāo)用于以如下方式將有向圖組織為子圖,即子圖包括所有環(huán)并且 其以無環(huán)方式被連接在一起。該圖論概念最有效地組織有向圖的環(huán)特性和無環(huán)特性。該方 法的關(guān)鍵特征如下詳細(xì)描述。
[0087] 公式上,第一步驟用于在節(jié)點(diǎn)X集合中定義關(guān)系P。如果存在從X到y(tǒng)的弧的路 徑和從y到X的弧的路徑,則兩個(gè)節(jié)點(diǎn)x,yex為相關(guān)聯(lián)的,其表示為XPy。顯然,p為等 價(jià)關(guān)系(自反,對(duì)稱,過渡)。因此,由于基本代數(shù),關(guān)系P將集合X劃分為等價(jià)類&,..., )^,其定義乂的劃分。這表示;^;=11=1^",以及如果1乒」,\門1=口。
[0088] 根據(jù)定義,每一個(gè)&為圖G的強(qiáng)連通分量。當(dāng)然,可以存在連接從一個(gè)節(jié)點(diǎn)Xjlj 另一節(jié)點(diǎn)X,的弧,但其不屬于任何環(huán)。
[0089] 所有環(huán)在由Xi定義的子圖中捕獲,相應(yīng)表示為G1<3
[0090] 映射類X-仏,...,XP}由class(X)=Xi定義,如果X eXi(3該映射被較好地定 義,這是因?yàn)槊恳粋€(gè)X準(zhǔn)確地屬于一個(gè)&。
[0091] 圖11示出了先前圖的強(qiáng)連通分量(點(diǎn)狀線包圍)。公式上,X1= {7},X2= {4, 5},父3={1,2,6,8},而父4={3,9,10,11}。此外,(:1&88(6)=父 3,(31&88(4)=父2,等。
[0092] 強(qiáng)連通分量計(jì)算:
[0093] 強(qiáng)連通分量可以由以下算法計(jì)算。核心算法計(jì)算包括給定節(jié)點(diǎn)的強(qiáng)連通分量。在 開始之前,所有節(jié)點(diǎn)未被標(biāo)記并且強(qiáng)連通分量的計(jì)數(shù)器η為零。
[0094] 1.如果存在未被標(biāo)記的節(jié)點(diǎn)X,則η:=η+1,否貝1】,到達(dá)步驟6。
[0095] 2.將標(biāo)記±η設(shè)置至節(jié)點(diǎn)X。
[0096] 3.通過使用其原始方向的圖的弧來將標(biāo)記+η設(shè)置至可以從節(jié)點(diǎn)X到達(dá)的所有節(jié) 點(diǎn)。
[0097] 4.通過使用其相反方向的圖的弧來將標(biāo)記-η設(shè)置至可以從節(jié)點(diǎn)X到達(dá)的所有節(jié) 點(diǎn)。
[0098] 5.創(chuàng)建新的強(qiáng)連通分量,所述新的強(qiáng)連通分量包括被標(biāo)記為土η的節(jié)點(diǎn)的列表并 且到達(dá)步驟1。
[0099] 6.結(jié)束。
[0100] 圖12示出了包括節(jié)點(diǎn)3的(第一)強(qiáng)連通分量的計(jì)算。最左側(cè)圖片為在步驟2 之后的圖,中間圖片為步驟3之后的圖,最右側(cè)圖片為步驟4之后的圖。節(jié)點(diǎn)3的強(qiáng)連通分 量為{3,9,10,11}。
[0101] 強(qiáng)連通圖:
[0102] 根據(jù)定義,強(qiáng)連通圖S的節(jié)點(diǎn)為強(qiáng)連通分量&,而強(qiáng)連通圖S的弧為連接來自不同 的子集&的兩個(gè)節(jié)點(diǎn)的圖G的?。承┻@樣的弧可能對(duì)相同的子集Xi對(duì)是存在的,并且某 些弧可能連接強(qiáng)連通圖的相同的節(jié)點(diǎn)對(duì))。最終,S= {Xs,Us,as,ωs),其中:
[0103]Xs= {X!,· · ·,Χρ}
[0104]Us={ueU,class(α(u))辛class(ω(u))}
[0105]as (u) =class(a(u))
[0106]ωs (u) =class(ω(u))
[0107] 根據(jù)構(gòu)造,強(qiáng)連通圖始終無環(huán)。
[0108] 圖13示出了示例的強(qiáng)連通圖。
[0109] 有向無環(huán)圖中的父/子節(jié)點(diǎn)和部落:
[0110] 令K= (Z,W,α,ω)