在三維場景中設(shè)計連接第一點到第二點的路徑的制作方法
【專利摘要】本發(fā)明提出了一種用于在三維場景中設(shè)計連接第一點到第二點的路徑的計算機實現(xiàn)的方法。該方法包括:提供耦合有第一向量的第一點;提供耦合有第二向量的第二點;通過遵循平行六面體的最多三個部分而提供一組路徑,所述平行六面體包括在第一頂點所提供的第一點和在第二頂點所提供的第二點,所述平行六面體的部分是邊、面的對角線、空間對角線。
【專利說明】在三維場景中設(shè)計連接第一點到第二點的路徑
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及計算機程序和系統(tǒng)領(lǐng)域,更具體地涉及用于在三維場景中設(shè)計連接第 一點到第二點的路徑的方法、計算機輔助系統(tǒng)和計算機程序。
【背景技術(shù)】
[0002] 市場上提供有許多系統(tǒng)和程序以用于對象的設(shè)計、工程和制造。CAD是計算機輔助 設(shè)計的首字母縮寫詞,例如,它涉及用于設(shè)計對象的軟件解決方案。CAE是計算機輔助工程 的首字母縮寫詞,例如,它涉及用于模擬未來產(chǎn)品的物理行為的軟件解決方案。CAM是計算 機輔助制造的首字母縮寫詞,例如,它涉及用于定義制造工藝和操作的軟件解決方案。在這 樣的計算機輔助設(shè)計系統(tǒng)中,圖形用戶界面在關(guān)于技術(shù)的效率方面發(fā)揮了重要的作用。這 些技術(shù)可以被嵌入到產(chǎn)品生命周期管理(PLM)系統(tǒng)中。PLM指的是貫穿延伸企業(yè)的概念幫 助公司為從概念到其壽命結(jié)束的產(chǎn)品開發(fā)分享產(chǎn)品數(shù)據(jù)、應(yīng)用公共工藝、以及平衡公司知 識的商業(yè)策略。
[0003] 由 Dassault Syst細(xì)es (商標(biāo) CATIA、EN0VIA 以及 DELMIA)提供的 PLM 解決方案提 供了工程中心,其組織產(chǎn)品工程知識;制造中心,其管理制造工程知識;以及企業(yè)中心,其 使得企業(yè)能夠集成和連接到工程中心和制造中心。所有系統(tǒng)一起提供了鏈接產(chǎn)品、工藝、資 源的開放對象模型,以實現(xiàn)動態(tài)的、基于知識的產(chǎn)品創(chuàng)造和決策支持,其推動優(yōu)化的產(chǎn)品定 義、制造準(zhǔn)備、產(chǎn)品和服務(wù)。
[0004] 在CAD/CAE/CAM的上下文中,設(shè)計產(chǎn)品可以包括設(shè)計兩點之間的路由。設(shè)計路由 通常被執(zhí)行用于諸如以下的操作:裝管以路由管道、裝管以路由管件、HVAC(供暖、通風(fēng)和 空調(diào))以路由通風(fēng)管道、裝電纜以路由電纜、裝軌道以路由路由托盤。路由的設(shè)計通常是為 了工業(yè)產(chǎn)品(諸如汽車、建筑物、船舶、飛機)而完成,并且這些工業(yè)產(chǎn)品導(dǎo)致所設(shè)計的路由 是現(xiàn)實的。由于工業(yè)產(chǎn)品的規(guī)則形狀,所以路由通常是連續(xù)的以規(guī)則角度和標(biāo)準(zhǔn)彎曲半徑 連接的直部。例如,建筑物包括通常以法角相互連接的墻壁。因此墻壁是當(dāng)設(shè)計通風(fēng)管道 路由時需要考慮的約束:例如,該路由將遵循沿著墻壁的路徑。
[0005] -些CAD系統(tǒng)包括管件和管道設(shè)計能力,或者提供這些能力的插件可以被安裝在 CAD軟件中。然而,現(xiàn)有的解決方案有若干缺點。首先,它們并不幫助設(shè)計者用正確的輸入 快速選擇正確的路徑。特別地,在解決方案是唯一的一條線的情況中,設(shè)計者不能以正確的 精度檢查與上下文的沖突。此外,設(shè)計者查核所有的解決方案可能需要花費時間,這是因為 解決方案被逐個示出。此外,不可行的解決方案被示出:不可行的解決方案是一種不現(xiàn)實的 解決方案。例如,遵循同一墻壁的三個部分的通風(fēng)管道路由被認(rèn)為是不可行的解決方案,因 為這種解決方案在真實世界中是不現(xiàn)實的。
[0006] 在這個上下文中,仍然需要用于在三維場景中設(shè)計連接第一點到第二點的路由的 改進方法。
【發(fā)明內(nèi)容】
[0007] 根據(jù)一個方面,本發(fā)明因此提供了一種用于在三維場景中設(shè)計連接第一點到第二 點的路徑的計算機實現(xiàn)的方法,包括 :
[0008] -提供耦合有第一向量的第一點;
[0009] -提供耦合有第二向量的第二點;
[0010]-通過遵循平行六面體的最多三個部分而提供一組路徑,所述平行六面體包括在 第一頂點所提供的第一點和在第二頂點所提供的第二點,所述平行六面體的部分是邊、面 的對角線、空間對角線。
[0011] 所述方法可以包括以下的一個或多個:
[0012] -所述第一頂點和第二頂點在平行六面體的相對面上,所述一組路徑包括:一個 路徑,其包括由連接所述第一點和第二點的空間對角線組成的一個部分;六個路徑,其包括 具有平行六面體的公共頂點的兩個部分,一個部分是平行六面體的面的對角線,該對角線 包括所述第一點或第二點,以及一個部分是邊;六個路徑,其包括三個連續(xù)的部分,每個部 分是邊。
[0013] -所述第一頂點和第二頂點屬于同一面,所述一組路徑包括:一個路徑,其包括是 第一頂點和第二頂點所屬的面的對角線的一個部分;兩個路徑,包括兩個連續(xù)的部分,每個 部分是邊。
[0014] _在三維場景中關(guān)于以下定向之一來定向所述平行六面體:三維場景的全局定向 的一個方向,由第一向量所提供的方向,由第二向量所提供的方向。
[0015] -提供連接用于連接第一點和第二點的路徑的至少兩個部分的彎曲半徑;
[0016] -在提供彎曲半徑后:為一組路徑的每個路徑根據(jù)彎曲半徑計算連接所述第一點 和第二點到路徑的平行六面體;
[0017] -為一組路徑的每個路徑計算平行六面體包括:通過以下步驟計算第一頂點的新 位置和第二頂點的新位置:
[0018] -計算所述第一點和所述第一頂點之間的距離Di,使得Di = Bend RadiusX (sin a J,其中Bend Radius是所提供的彎曲半徑的值,以及a 1是第一向量的方 向和連接第一頂點的路徑的部分之間的角度;
[0019] -計算所述第二點和所述第二頂點之間的距離D2,使得D2 = Bend RadiusX (sin a 2),其中Bend Radius是所提供的彎曲半徑的值,以及a 2是第二向量和連 接第二頂點的路徑的部分之間的角度;
[0020] -計算所述路徑的每個邊的長度(L),確定所述長度(L)使得L彡Bend RadiusX (sin a x+sin a y),其中Bend Radius是所提供的彎曲半徑的值,a x是所述路徑 的所述每個邊和所述路徑的共享所述路徑的所述每個邊的第一公共頂點的另一部分之間 的角度的值或者所述路徑的所述每個邊和所述第一向量的方向之間的角度的值,以及a y 是所述路徑的所述每個邊和所述路徑的共享所述路徑的所述每個邊的第二公共頂點的另 一部分之間的角度的值或者所述路徑的所述每個邊和所述第二向量的方向之間的角度的 值;
[0021] -所述平行六面體的一個或多個部分形成連接所述第一點到所述第二點的折線;
[0022] -提供工業(yè)產(chǎn)品的截面的尺寸;沿折線形成形狀,其中該折線是該截面的中心;
[0023] _提供耦合有第一向量的第一點包括:在三維場景中放置第一三維對象,該第一 向量在三維場景中定向該三維對象;提供耦合有第二向量的第二點包括:在三維場景中放 置第二三維對象,該第二向量在三維場景中定向該三維對象;
[0024] -顯示所提供的一組路徑的每個路徑的預(yù)覽;以及突顯該預(yù)覽的一個以顯示連接 第一個點到第二點的路徑。
[0025] 本發(fā)明進一步提出一種包括由計算機執(zhí)行的指令的計算機程序,該指令包括用于 執(zhí)行以上所述方法的模塊。
[0026] 本發(fā)明進一步提出一種計算機輔助設(shè)計系統(tǒng),其包括圖形用戶界面和耦合到存儲 器的處理器,該存儲器具有記錄在其上的上述計算機程序。
[0027] 本發(fā)明進一步提出一種三維對象,其沿著通過上述方法獲得的路徑被路由。
[0028] 本發(fā)明進一步提出一種計算機可讀存儲器介質(zhì),其上記錄有上述計算機程序。
【專利附圖】
【附圖說明】
[0029] 通過非限制性例子的方式并參照附圖描述本發(fā)明的實施例,其中:
[0030] -圖1示出了遵循路由的折線的示例;
[0031] -圖2示出了平行六面體的示例;
[0032] -圖3示出了路徑的示例;
[0033] -圖4-16示出了路徑的示例;
[0034] -圖17示出了沖突檢測的示例;
[0035] -圖18示出了一組路徑在同一個面上的示例;
[0036] -圖19示出了路徑的對角線部分的幾個角度的示例;
[0037] -圖20示出了其中該組路徑中的一個或多個路徑被移除的情形;
[0038] -圖21-25示出了解決方案的顯示的示例;
[0039] -圖26-28示出了圖示本發(fā)明的方法的示例的流程圖;
[0040] -圖29示出了 CAD系統(tǒng)的圖形用戶界面的示例;
[0041] -圖30示出了 CAD系統(tǒng)的結(jié)構(gòu)的示例;以及
[0042] -圖31示出了為每一路徑計算新的平行六面體的示例。
【具體實施方式】
[0043] 參照圖26-28的流程圖,提出了一種用于在三維場景中設(shè)計連接第一點到第二點 的路徑的計算機實現(xiàn)的方法。路徑是通過但不限于直線、弧線、曲線等連接的一組點。路徑 可以通過折線來表示(也被稱為多邊鏈),其包括連接的一系列線段。所述一組點包括至 少兩個點,也就是第一點和第二點。第一點也可以被稱為起始點,且第二點也可以被稱為終 點。該方法包括提供耦合有第一向量的第一點以及提供耦合有第二向量的第二點。向量是 具有幅度(或長度)、方向和定向的幾何對象。例如,向量通常由具有限定定向的線段表示, 或圖形表示為連接初始點A與終端點B的箭頭。因此,第一向量和第二向量分別提供第一 點和第二點在3D場景中的定向。該方法進一步包括通過遵循平行六面體的最多三個部分 提供一組路徑。換句話說,提供連接第一點和第二點的一組路由。該平行六面體包括在它 的一個頂點上的每一條路徑的第一點,即第一頂點,以及在它的一個頂點上的每一條路徑 的第二點,即第二頂點。但是應(yīng)當(dāng)理解的是,第一定點和第二頂點是不同的;也就是,第一點 和第二點并不位于平行六面體的同一頂點上。平行六面體的一部分的意思是邊、面的對角 線、空間對角線。
[0044] 這種方法高度地改進了為諸如管道、管件、HVAC、布線等操作連接兩點的路由的設(shè) 計,其中其后跟隨建模工業(yè)產(chǎn)品(如管道、管件、通風(fēng)管道、電纜)的路由需要遵守在3D場 景中模擬的真實世界的物理規(guī)則和標(biāo)準(zhǔn)。首先,該方法提高工效:確實,為了跟蹤路徑使用 平行六面體的部分允許容易地獲得連接兩點的所有可能的路徑,也就是說,所有可能的解 決方案可以一次提出給設(shè)計者。一種理解是設(shè)計者可以容易地在所有可能的解決方案中選 擇保留的解決方案。此外,使用平行六面體作為路徑的支持提供了模擬真實世界條件的有 效方式:確實,路徑被跟蹤用于工程上下文(例如,汽車工程、航空器工程、輪船工程、電子 工程…),其中在其中工業(yè)產(chǎn)品被路由的環(huán)境主要包括以標(biāo)準(zhǔn)角度(例如45°、60°、90° ) 互相連接的平面(例如墻壁)。例如,在建筑物中的電纜遵循垂直路徑來提供到每層的電 力,并遵循水平路徑來在每層的每個公寓分布電力。此外,因為路徑是從平行六面體的部分 獲得的,所以能更容易地提供給設(shè)計者在真實世界中可接受的解決方案:例如,可以決定遵 循多于三個邊的路徑是不可接受的,因為它將涉及沿著該路徑路由的浪費的工業(yè)產(chǎn)品(例 如,管件、管道、通風(fēng)管道、電纜)。另外,因為該提出的解決方案是在真實世界中可接受的解 決方案,所以由于無效的解決方案不需要被計算因而使用更少的計算機資源。此外,通過使 用平行六面體的部分計算路徑降低了獲取所有解決方案的總體時間,因為平行六面體的部 分在多個解決方案之間被共享,并且因此用于一個部分的一次計算可以被重新利用。
[0045] 該方法是計算機實現(xiàn)的。這意味著該方法的步驟(或?qū)嵸|(zhì)上所有的步驟)由至少 一個計算機執(zhí)行。在示例中,該方法的至少一些步驟的觸發(fā)可以通過用戶計算機的交互執(zhí) 行。所需要的用戶計算機的交互水平可以取決于自動化預(yù)見的水平并與實現(xiàn)用戶的希望的 需求平衡。在示例中,這個水平可以是用戶定義和/或預(yù)先定義的。
[0046] 例如,提供分別耦合有第一向量和第二向量的第一點和第二點的步驟可以基于用 戶動作執(zhí)行,例如設(shè)計者可以使用諸如鼠標(biāo)的觸覺設(shè)備在三維場景中輸入兩個點,并可以 通過對向量所位于的參考系的圖形表示進行定向來提供每個向量的值(例如參考系的原 點為向量的原點)。點的方向也可以由顯示在3D場景上的向量表示,并且用戶為了修改該 點的方向而可以在向量的圖形表示上動作。
[0047] 該計算機實現(xiàn)的方法的一個典型示例是使用適于這個目的的包括圖形用戶界面 (GUI)的系統(tǒng)執(zhí)行該方法。該⑶I與存儲器和處理器耦合。儲存數(shù)據(jù)庫的存儲器僅僅是適 于這種存儲的任何硬件。這樣的系統(tǒng)改進了在三維場景中連接第一點到第二點的路徑的設(shè) 計。
[0048] 通過"數(shù)據(jù)庫",它意味著為搜索和取回而組織的任何數(shù)據(jù)(例如,信息)集合。當(dāng) 被儲存在存儲器中,數(shù)據(jù)庫允許通過計算機快速搜索和取回。數(shù)據(jù)庫被真正地構(gòu)建為結(jié)合 各種數(shù)據(jù)處理操作促進數(shù)據(jù)的儲存、取回、修改、以及刪除。數(shù)據(jù)庫可以包含文件或一組文 件,其可以被分解成記錄,其每一個包括一個或多個字段。字段是數(shù)據(jù)儲存的基本單元。用 戶可以主要通過查詢?nèi)』財?shù)據(jù)。使用關(guān)鍵字和排序命令,用戶可以根據(jù)使用的數(shù)據(jù)庫管理 系統(tǒng)的規(guī)則在許多記錄中快速地搜索、重排、分組、以及選擇字段以取回或創(chuàng)建特定數(shù)據(jù)聚 合的報告。
[0049] 在該方法的情形下,數(shù)據(jù)庫可以儲存三維建模對象。第一三維建模對象可以提供 耦合有第一向量的第一點,并且第二三維建模對象可以提供耦合有第二向量的第二點。數(shù) 據(jù)庫還可以儲存耦合有第一向量的第一點和耦合有第二向量的第二點。
[0050] 該方法可以一般地操縱建模對象。建模對象是由儲存在數(shù)據(jù)庫中的數(shù)據(jù)定義的任 意對象。通過擴展,表述"建模對象"指定數(shù)據(jù)自身。根據(jù)系統(tǒng)的類型,建模對象可以由不同 種類的數(shù)據(jù)定義。該系統(tǒng)實際上可以是以下項的任意組合:CAD系統(tǒng)、CAE系統(tǒng)、CAM系統(tǒng)、 和/或PLM系統(tǒng)。在那些不同的系統(tǒng)中,建模對象由相應(yīng)的數(shù)據(jù)定義??梢韵鄳?yīng)地稱為:CAD 對象、PLM對象、CAE對象、CAM對象、CAD數(shù)據(jù)、PLM數(shù)據(jù)、CAM數(shù)據(jù)、CAE數(shù)據(jù)。然而,這些系 統(tǒng)不是排除其他的一個,作為建模對象可以由與這些系統(tǒng)的任意組合相應(yīng)的數(shù)據(jù)定義。一 種系統(tǒng)因而可以適當(dāng)?shù)厥荂AD和PLM系統(tǒng),這將從以下提供的這樣的系統(tǒng)的定義中顯而易 見。
[0051] 通過CAD系統(tǒng),它意味著至少合適于在建模對象的圖形表示的基礎(chǔ)上設(shè)計建模對 象的任何系統(tǒng),例如CATIA。在這種情形下,定義建模對象的數(shù)據(jù)包括允許建模對象的表示 的數(shù)據(jù)。CAD系統(tǒng)可以例如使用邊或線條,在特定的情形下使用面或者表面,來提供CAD建 模對象的表示。可以以各種方式表示線條、邊、或表面,例如,非均勻有理B樣條(NURBS)。 特別地,CAD文件包含根據(jù)其生成幾何圖形的規(guī)范,其依次允許生成表示。建模對象的規(guī)范 可以被儲存在單個CAD文件或多個CAD文件中。在CAD系統(tǒng)中表示建模對象的文件的典型 大小為每部件一兆字節(jié)的范圍。并且建模對象通??梢允菐浊€部件的組合。
[0052] 在CAD的上下文中,建模對象通??梢允?D建模對象,例如表示諸如部件和部件 的組合的產(chǎn)品,或者可能是產(chǎn)品的組裝。通過" 3D建模對象",它意味著通過允許其3D表示 的數(shù)據(jù)建模的任何對象。3D表示允許從所有角度觀看部件。例如,3D建模對象在被3D表 示時,可以繞它的任何軸被處理和旋轉(zhuǎn),或者繞表示被顯示的場景中的任何軸。這顯著地排 除了沒有被3D建模的2D圖標(biāo)。3D表示的顯示促進了設(shè)計(即,提高了設(shè)計者在統(tǒng)計學(xué)上 完成他們的任務(wù)的速度)。這加速了工業(yè)中的制造過程,因為產(chǎn)品的設(shè)計是制造過程的一部 分。
[0053] CAD系統(tǒng)可以是基于歷史的。在這樣的情況下,建模對象進一步由包括幾何特征 的歷史的數(shù)據(jù)定義。建模對象實際上可以由自然人(即設(shè)計者/用戶)使用標(biāo)準(zhǔn)模型特征 (例如,拉伸、旋轉(zhuǎn)、剪切、和/或旋轉(zhuǎn),等等)和/或標(biāo)準(zhǔn)表面特征(例如,掃描、混合、放樣、 填充、變形、平滑和/或其它)被設(shè)計。支持這樣的建模功能的許多CAD系統(tǒng)是基于歷史的 系統(tǒng)。這意味著設(shè)計特征的創(chuàng)建歷史通常通過經(jīng)由輸入和輸出鏈路而將所述幾何特征鏈接 到一起的非循環(huán)數(shù)據(jù)流被保存?;跉v史的建模范例從80年代初期就被眾所周知。建模 對象由兩個不變的數(shù)據(jù)表示描述:歷史和B-rep (即邊界表示)。B-rep是在歷史中定義的 計算的結(jié)果。當(dāng)建模對象被表示時顯示在計算機的屏幕上的部件的形狀是B-rep(的棋盤 花紋)。部件的歷史是設(shè)計意圖?;旧希瑲v史收集關(guān)于建模對象已經(jīng)經(jīng)歷的操作的信息。 B-rep可以和歷史一起被保存,以使得更容易地顯示復(fù)雜部件。歷史可以與B-rep -起被保 存以便允許根據(jù)設(shè)計意圖改變部件的設(shè)計。
[0054] CAM代表計算機輔助制造。通過CAM解決方案,它意味著任何解決方案、硬件的軟 件,適于管理產(chǎn)品的制造數(shù)據(jù)。制造數(shù)據(jù)一般包括與要制造的產(chǎn)品、制造過程和需要的資源 有關(guān)的數(shù)據(jù)。CAM解決方案被用于計劃和優(yōu)化產(chǎn)品的整個制造過程。例如,它可以向CAM用 戶提供關(guān)于可行性的信息、制造過程的持續(xù)時間或資源號碼,諸如特定的機器人,其可以被 用在制造工程的特定步驟上;并且因而允許關(guān)于管理或需喲啊的投資的決策。CAM是CAD 過程和潛在的CAE過程后的后續(xù)過程。這樣的CAM解決方案由Dassault Syst細(xì)es以商標(biāo) DELMIA?提供。
[0055] CAE代表計算機輔助工程。通過CAE解決方案,它意味著任何解決方案、硬件的軟 件,適于分析建模對象的物理行為。眾所周知并廣泛使用的CAE技術(shù)是有限元法(FEM),其 通常涉及將建模對象劃分為通過方程可以計算和模擬其物理行為的元素。這樣的CAE解決 方案由Dassault Syst細(xì)es以商標(biāo)SIMULIA?提供。另一種成長的CAE技術(shù)涉及建模和 分析由源自不同物理字段而不具有CAD幾何數(shù)據(jù)的多個組件組成的復(fù)雜系統(tǒng)。CAE解決方 案允許模擬、以及因此優(yōu)化、改進和驗證待制造的產(chǎn)品。這樣的CAE解決方案由Dassault Syst細(xì)es以商標(biāo)DYMOLA?提供。
[0056] PDM代表產(chǎn)品數(shù)據(jù)管理。通過PDM解決方案,它意味著任何解決方案、硬件的軟件, 適于管理有關(guān)特定產(chǎn)品的所有類型的數(shù)據(jù)。PDM解決方案可以被涉及產(chǎn)品生命周期的所有 行動者使用:初級工程師也包括項目管理者、金融人士、銷商人士和購買者。PDM解決方案 一般地基于產(chǎn)品定向的數(shù)據(jù)庫。它允許行動者共享他們產(chǎn)品的一致數(shù)據(jù)并因此避免行動者 使用不一致的數(shù)據(jù)。這樣的PDM解決方案由Dassault Syst細(xì)es以商標(biāo)ENOVIA?提供。
[0057] 圖29示出了系統(tǒng)的圖形用戶界面(GUI)的示例,其中該系統(tǒng)可以是但并不限于 CAD系統(tǒng)。
[0058] ⑶12100可以是典型的類CAD界面,具有標(biāo)準(zhǔn)菜單欄2110、2120,以及按鈕和側(cè)邊 工具欄2140、2150。這樣的菜單和工具欄包括一組用戶可選擇的圖標(biāo),每個圖標(biāo)關(guān)聯(lián)于一 個或多個操作或功能,如在現(xiàn)有技術(shù)中已知的。這些圖標(biāo)中的一些關(guān)聯(lián)于軟件工具,適合 于編輯和/或工作顯示在⑶12100中的3D建模對象2000。軟件工具可以被在工作臺中分 組。每個工作臺包括軟件工具的子集。特別地,工作臺之一是編輯工作臺,適于編輯建模產(chǎn) 品2000的幾何特征。在操作中,設(shè)計者可以例如預(yù)先選擇對象2000的一部分并然后開始 操作(例如,改變維度、顏色,等等),或者通過選擇合適的圖標(biāo)編輯幾何約束。例如,典型的 CAD操作是對顯示在場景中的3D建模對象的穿孔或折疊進行建模。
[0059] ⑶I可以例如顯示有關(guān)于所顯示的產(chǎn)品2000的數(shù)據(jù)2500。在圖29的示例中,數(shù) 據(jù)2500被顯示為"特征樹",并且它們的3D表示2000屬于包括剎車鉗和圓盤的剎車總成。 ⑶I可以進一步示出各種類型的圖形工具2130、2070、2080,例如用于促進對象的3D定向、 用于觸發(fā)所編輯的產(chǎn)品的操作模擬或渲染所顯示的產(chǎn)品2000的各種屬性。光標(biāo)2060可以 由觸覺設(shè)備控制以允許用戶與圖形工具交互。
[0060] 圖30示出了一種計算機系統(tǒng),例如CAD系統(tǒng)。
[0061] 該計算機系統(tǒng)包括被連接到內(nèi)部通信總線100的中央處理器單元(CPU) 1010、 也被連接到總線的隨機存取存儲器(RAM) 1070。該計算機系統(tǒng)還設(shè)置有圖形處理器單元 (GPU) 1110,其與被連接到總線的視頻隨機存取存儲器1100相關(guān)聯(lián)。視頻RAM1100在本領(lǐng) 域中也公知為幀緩沖器。大容量存儲設(shè)備控制器1020管理對大容量存儲器設(shè)備的存取,諸 如硬盤驅(qū)動器1030。大容量存儲器設(shè)備適于有形地具體化計算機程序指令和數(shù)據(jù),包括所 有形式的非易失性存儲器,通過示例包括半導(dǎo)體存儲器設(shè)備,諸如EPR0M、EEPR0M、以及閃存 存儲器設(shè)備;磁盤,諸如內(nèi)部硬盤和可移除硬盤;磁光盤;以及CD-ROM盤1040。前述的任意 內(nèi)容可以由專門設(shè)計的ASIC(專用集成電路)補充或合并。網(wǎng)絡(luò)適配器1050管理對網(wǎng)絡(luò) 1060的訪問??蛻舳擞嬎銠C還可以包括觸覺設(shè)備1090,諸如光標(biāo)控制設(shè)備、鍵盤等。光標(biāo) 控制設(shè)備被用在客戶端計算機內(nèi)以允許用戶選擇性地在顯示器1080的任何期望位置上放 置光標(biāo),如參考圖29所提到的。此外,光標(biāo)控制設(shè)備允許用戶選擇各種命令,以及輸入控制 信號。光標(biāo)控制設(shè)備包括用于輸入控制信號到系統(tǒng)的大量信號生成設(shè)備。通常,光標(biāo)控制 設(shè)備可以是鼠標(biāo),鼠標(biāo)的按鈕被用于生成信號。信號也可以通過觸摸顯示器被生成,例如, 顯示器1080是觸敏顯示器。
[0062] 參照圖26到28的流程圖,討論本發(fā)明的一個示例。
[0063] 在步驟S10,提供耦合有第一向量的第一點。術(shù)語"點"意味著在3D場景中具有位 置的實體。3D場景是3D空間,在其中描述了對象之間的空間關(guān)系。一般地,3D建模對象被 表示在3D場景中。3D場景可以是受限的或非受限的空間。在實踐中,3D場景由于計算機 分辨率而是受限的。該點耦合有第一向量。第一向量提供點在3D場景中的方向。在實踐 中,第一向量位于這樣的參考系中:其中該參考系的原點是該向量的原點并且其中該參考 系的原點為第一點。換句話說,第一向量包括在參考系(x,y,z)內(nèi)的一組尺寸( Xl,yi,Zl)。 參考系的原點、向量的原點、以及第一點在3D場景中可以具有相同的坐標(biāo)( X(l,y(l,Z(l),可以 理解的是3D場景被定向。在實踐中,參考系可以具有可以被顯示的圖形表示。用戶可以 通過在參考系上操作改變第一向量的一個或多個值,如本領(lǐng)域已知的。第一向量可以具有 在3D場景中的圖形表示,并且用戶可以在這個表示上操作以修改點的方向。提供耦合有第 一向量的第一點意味著執(zhí)行根據(jù)本發(fā)明的方法的系統(tǒng)可以訪問與點和向量有關(guān)的數(shù)據(jù);例 如,與第一點和向量有關(guān)的數(shù)據(jù)儲存在系統(tǒng)的存儲器中,并通過與存儲器耦合的CPU(計算 機處理單元)訪問。
[0064] 在步驟S12,提供耦合有第二向量的第二點。這個步驟類似于步驟S10。
[0065] 在實踐中,步驟S10和S12通過在三維場景中放置3D建模對象被分別執(zhí)行,其中 3D對象通過向量在三維場景中被定向,可以理解的是耦合有向量的點被包含在3D對象中。 點可以位于但不限于在3D對象的幾何中心上。人們可以理解3D對象可以是3D建模對象。 [0066] 接下來,在步驟S20,提供平行六面體。平行六面體是由三對平行四邊形形成的三 維圖像,三對平行面的任何一對面可以被看做棱柱的基本面。平行六面體具有三組四個平 行邊;每組內(nèi)的邊具有相等的長度。平行六面體具有8個頂點。平行六面體可以被看作具 有六個面的多面體,每一個為平行四邊形。
[0067] 在實踐中,平行六面體可以是長方體,其中平行四邊形是矩形。長方體有益地在平 行六面體的邊之間提供法角,這樣的法角適于真實世界中工業(yè)產(chǎn)品的規(guī)律形狀。
[0068] 平行六面體包括在第一頂點所提供的第一點和在第二頂點所提供的第二點???以理解的是該第一定點和第二頂點并不相同,也就是,它們在3D場景中并不具有相同的位 置。
[0069] 平行六面體包括一組部分:一個部分可以是邊、面的對角線、空間對角線。面的對 角線是連接(或結(jié)合)平行六面體的面(例如,平行四邊形)的兩個非連續(xù)頂點的線。空 間對角線是結(jié)合平行六面體的一個角到相對角的線。空間對角線也可以被稱為三角或體對 角線,如現(xiàn)有技術(shù)中已知的。
[0070] 平行六面體可以在三維場景中被定向。這相當(dāng)于說平行六面體關(guān)于第一定點和第 二頂點位于3D場景中:實際上,穿過第一定點和第二頂點的軸可以被預(yù)期作為旋轉(zhuǎn)軸,并 因此平行六面體在3D場景中可以具有多個位置。平行六面體的定向因而允許在3D場景中 固定該平行六面體。
[0071] 平行六面體的定向可以相對于該平行六面體被嵌入的三維場景的全局定向。3D場 景的全局定向一般關(guān)于3D場景的主參考系被執(zhí)行。在實踐中,三維場景的全局定向的三個 方向中的一個被確定為根據(jù)重力定向。標(biāo)準(zhǔn)的實踐是選擇方向垂 直于模擬世界的虛擬地。換句話說,方向根據(jù)虛擬世界的重力被定向。例如,平行六 面體可以在三維場景中關(guān)于全局定向的定向方向的一個被定向,例如,平行六面體的一個 邊具有與全局定向的z sc;e;ne;軸相同的方向。
[0072] 平行六面體的定向可以相對于第一向量的方向,如現(xiàn)有技術(shù)中已知的。例如,耦合 有第一點的第一向量可以共線于具有平行六面體的一個邊的方向的向量。作為另一個示 例,第一向量可以共線于附接到平行六面體的向量,例如起始于平行六面體的一個頂點的 向量。
[0073] 第二向量的方向有關(guān)的定向可以如關(guān)于第一向量而被執(zhí)行。
[0074] 平行六面體的定向有益地允許考慮路徑將結(jié)合第一點和第二點的上下文。實際 上,取決于平行六面體關(guān)于第一向量、第二向量、或3D場景的定向而被定向,路徑的一些解 決方案可以被拒絕,例如,取決于平行六面體的定向可能出現(xiàn)路徑和3D場景中的其他對象 之間的沖突。
[0075] 現(xiàn)在參考圖2,顯示的是步驟S10到S20的示例。兩個3D建模對象300、302被放 置在3D場景中。第一和第二3D建模對象是T連接頭管道。T連接頭管道具有兩個出口, 位于到主線的連接的90°處。這里,第一點310和第二點312并不位于3D建模對象上,但 是它們是3D模型的部分:它們被放置在T連接頭管道的一個管道的軸上。兩個對象310、 312中的每一個在3D場景中由耦合有其相應(yīng)點的向量320、322定向。在圖2的示例中,向 量320、322分別共線于邊330、332,并且每個T連接頭管道因而具有與平行六面體的邊對齊 的出口的軸。長方體已經(jīng)根據(jù)方向z seene被定向以使垂直邊(例如344)共線于方向zseene : 包括邊330、340、342的平行六面體的面因而平行于模擬世界的虛擬地。因而,在這個示例 中,向量320共線于邊330,但也共線于方向y seene,并且方向xseene共線于邊340。一種理解 是這個不例中的3D場景的主參考系(x seene,yseene,zseene)是標(biāo)準(zhǔn)正受參考系。
[0076] 回到圖26的流程圖,在步驟S30,確定分別位于第一頂點和第二頂點的第一點和 第二點是否在平行六面體的相對面上。相對面意味著平行六面體的不具有公共頂點的一對 面。這相當(dāng)于說確定第一點和第二點是否在平行六面體的相對頂點上,其中相對頂點意味 著連接到第一頂點的三個邊不與連接到第二頂點的三個邊相鏈接。取決于步驟S30的結(jié) 果,連接第一點到第二點的兩組不同的路徑可以被提供給用戶。
[0077] 圖18示出了本發(fā)明的在第一點和第二點并不位于平行六面體的相對面的情況的 示例,也就是說,第一頂點和第二頂點屬于平行六面體的相同的面。在這種情形下,提供了 一組三個路徑,其中每個路徑起始于第一點并終結(jié)于第二點(或相反),并且其中一組路徑 包括以下三個路徑:
[0078] (i) -個路經(jīng)包括平行六面體的一部分,該一部分是第一頂點和第二頂點所屬的 面的對角線;
[0079] (ii)兩個路徑包括平行六面體的兩個連續(xù)的部分,其中平行六面體的每個部分是 邊。
[0080] 圖18示出了其中表示T連接頭管道的兩個3D建模對象被放置在3D場景的相同 的平面上的情形。3D建模對象300、302如圖2中的一樣,除了第一點310和第二點312屬 于平行六面體的相同的面。在這個圖中,僅表示了對兩個點所共有的面。連接第一點310 和第二點312的路徑1900由第一點和第二點所屬的面的對角線組成。一個路經(jīng)包括兩個 連續(xù)的邊1902、1904,并且另一路徑包括兩個連續(xù)的邊1906、1908。
[0081] 現(xiàn)在參考圖28,在步驟S400,提供了彎曲半徑。彎曲半徑是被測量的內(nèi)部曲率, 其是可以彎曲管件、管道、薄片、電纜或軟管而不彎折它、損壞它、或縮短它的壽命的最小半 徑,在現(xiàn)有技術(shù)中已知。最小彎曲半徑是在其之下對象不應(yīng)被彎曲的半徑。提供彎曲半徑 可以根據(jù)用戶動作而執(zhí)行,例如,用戶輸入彎曲半徑的值??蛇x地,彎曲半徑可以通過執(zhí)行 方法的系統(tǒng)自動提供,例如提供默認(rèn)值,并且該默認(rèn)值可以取決于意圖遵循該路徑的對象 (例如,管件、電纜等)。提供彎曲半徑意味著彎曲半徑的值對該系統(tǒng)是可用的,例如,儲存 于系統(tǒng)的存儲器中并被耦合到存儲器的CPU訪問。
[0082] 然后,在步驟S402,為一組路徑的每一路徑根據(jù)彎曲半徑計算連接第一點和第二 點的平行六面體。該彎曲半徑為連接第一點和第二點的路徑的至少兩個部分的連接引入幾 何約束。特別地,被放置在第一頂點和第二頂點上的第一點和第二點可以不被定向為使得 提供的連接第一點或第二點的路徑的彎曲半徑可以被遵守:實際上,起始于第一點的路徑 應(yīng)當(dāng)與耦合有第一點的向量具有相同的方向,以及到達第二點的路徑應(yīng)當(dāng)與耦合有第二點 的向量具有相同的方向。因此,取決于第一點和/或第二點的定向和平行六面體的定向,彎 曲半徑可以被遵守或不被遵守。
[0083] 在所提供的彎曲半徑在起始于第一點或第二點上的部分對于給定的路徑無法遵 守的情況下,新的平行六面體被計算以使彎曲半徑可以被應(yīng)用。在實踐中,這可以涉及第一 頂點和第一點不再位于3D場景中的相同位置,并且第二頂點和第二點不再位于3D場景中 的相同位置。
[0084] 為新的平行六面體的每一路徑的計算可以包括計算第一頂點的新位置和第二頂 點的新位置。
[0085] 第一頂點的新位置是通過計算第一點和第一頂點之間的距離Di獲得的,并考慮 (i)耦合有第一點的第一向量的方向,以及(ii)連接到第一頂點的路徑的部分的方向,例 如,由該路徑遵循的第一邊。距離Di是在第一點和第一頂點之間的距離,可以理解的是第 一點和第一頂點均位于由耦合有第一點的第一向量提供的方向上。
[0086] 可選地,第三向量可以被提供給連接到第一頂點的路徑的部分,以使得角度a :的 確定更容易。該第三向量的方向是連接到第一頂點的路徑的部分,且第三向量可以根據(jù)該 路徑的方向被定向(例如,從第一點到第二點)。
[0087] 距離Di由關(guān)系Di=Bend RadiusX (sin a丨)定義,其中Bend Radius是在步驟 S400處所提供的彎曲半徑的值,并且ai是第一向量和連接到第一頂點的路徑的部分的方 向之間的角度的值。Di因而是Bend Radius和(sinaD的乘積。
[0088] 相似地,第二頂點的新位置是通過計算第二點和第二頂點之間距離D2獲得的,并 考慮a)耦合有第二點的第二向量的方向,以及ai)連接到第二頂點的路徑的部分的方 向,例如,由該路徑遵循的最后一個邊。距離D2是第二點和第二頂點之間的距離,可以理解 的是第二點和第二頂點均位于由耦合有第二點的第二向量提供的方向上。
[0089] 距離D2類似地由關(guān)系D2 = Bend Radius X (sin a 2)定義,其中Bend Radius是在 步驟S400處所提供的彎曲半徑的值,并且a 2是第二向量和連接到第一頂點的路徑的部分 的方向之間的角度的值。D2因而是Bend Radius和sin a2的乘積。在實踐中,Bend Radius 以及a 2的值可以是度數(shù)。
[0090]對于角度ai,向量(例如第四向量)可以可選地被提供給連接到第二頂點的路徑 的部分,以使得角度a2的確定更容易。這個第四向量的方向是連接到第二頂點的路徑的 部分,并且其可以根據(jù)遵循該路徑的方向被定向(例如,從第二點到第一點)。
[0091] 可以理解的是平行六面體的定向與用于計算距離h-樣,也就是,平行六面體的 定向在距離Di和D2的計算期間保持不變。
[0092] 特別地,第三和第四向量(其被提供到連接第一或第二頂點的路徑的部分)可以 使用平行六面體的三個主方向(即Dir. A、Dir. B、Dir. C)被獲得。
[0093] Dir. A取決于平行六面體在3D場景中的定向,如前討論的。這意味著Dir. A可以 是以下中的一個:
[0094]a)在平行六面體已經(jīng)關(guān)于第一向量被定向的情況下,耦合有第一點的第一向量 的方向;
[0095] (ii)在平行六面體已經(jīng)關(guān)于第二向量被定向的情況下,耦合有第二點的第二向量 的方向;
[0096] (iii)隨機選擇的場景的全局定向的方向中的一個(xSM;ne;,ySM;ne;,z s_J)。
[0097] Dir. B是被選擇為垂直于模擬世界的虛擬地的方向。標(biāo)準(zhǔn)實踐是選擇根據(jù)模擬世 界的重心定向的方向23。_??梢岳斫獾氖窃谥鞣较?11'^是方向2 3。_(情形(^1))的情 況下,然后全局定向的另一方向可以被選擇作為主方向Dir. B。
[0098] Dir. C是通過計算表示Dir. A和Dir. B的向量之間的向量乘積(交叉乘積)獲得 的。
[0099] 因此,它導(dǎo)致長方體(預(yù)先定向的)的每個邊共線于三個主方向Dir. A、Dir. B和 Dir. C中的一個。
[0100] 一旦第一頂點和第二頂點的新位置被知道,則可能減少平行六面體的六個剩余頂 點的位置。
[0101] 參考圖31,顯示的是點和點所位于其上的頂點之間的距離D。該距離沿著耦合于 該點的向量的方向被測量,并且這個方向包括點和頂點。該距離通常為歐式距離。點初始 所位于的頂點被耦合有表示屬于為其計算新的平行六面體的路徑的平行六面體的部分的 方向的向量。角度 a在向量和由向量表不的部分的方向之間(圖31上被表不為點線)。
[0102] 接著,在步驟S404,計算連接第一點和第二點的折線,如在下面參考附圖1、2和3 將被解釋的。
[0103] 圖5到17示出了在第一點(在左邊)和第二點(在右邊)位于平行六面體的相 對面的情況下保持為可能的解決方案的一組路徑的路徑的示例,也就是說,第一頂點和第 二頂點并不屬于平行六面體的相同面。在這種情形下,提供了一組路徑,其中每個路徑起始 于第一點并終結(jié)于第二點(或相反),并且其中一組路徑包括以下十三條路徑:
[0104] (i) 一個路徑包括由連接第一點和第二點的中心對角線組成的一部分,如圖4示 出的;
[0105] (ii)六個路徑,其中每個路徑包括三個連續(xù)的部分,其中每個部分是邊。這些六個 路徑被示出在圖5到10中;
[0106] (iii)三個路徑,其中每個路徑包含具有平行六面體的共同頂點的兩個部分,其 中:
[0107] - 一部分是平行六面體的面的對角線,該對角線包括第一點,以及
[0108] _-部分是包括第二點的邊。
[0109] 這三個路徑被示出在圖12、14和16中。
[0110] (iv)三個路徑,其中每個路徑包含具有平行六面體的共同頂點的兩個部分,其 中:
[0111] _平行六面體的一部分是平行六面體的面的對角線,該對角線包括第二點,以及
[0112] -平行六面體的一部分是包括第一點的邊。
[0113] 這三個路徑被示出在圖11、13和15中。
[0114] 現(xiàn)在參考圖27,在步驟S500,提供了彎曲半徑。這個步驟類似于步驟S400。
[0115] 接著,在步驟502,為十三個路徑的每一個根據(jù)彎曲半徑計算連接第一點和第二點 的平行六面體。這個步驟類似于步驟S402。
[0116] 然后,在步驟S504,為步驟S502所計算出的每個平行六面體確定是否路徑的每一 邊的長度 L 使得 L > Bend Radius X (sin a x+sin a y),其中:
[0117] -Bend Radius是在步驟S500所提供的彎曲半徑的值;
[0118] -a x是路徑的邊(為其測量L)和路徑的共享邊的第一公共頂點的另一部分之間 的角度的值。可替代地,a x可以是邊和第一向量的方向之間的角度的值;在這種情形下, 角度a x是當(dāng)遵循從第一點到第二點的路徑時遇到的路徑的第一彎曲的角度。
[0119] -a y是邊(為其測量L)和路徑的共享邊的第二公共頂點的另一部分之間的角 度的值??商娲兀琣 y可以是邊和第二向量的方向之間的角度的值;在這種情形下,角度 a y是當(dāng)遵循從第一點到第二點的路徑時遇到的路徑的最后彎曲的角度,或者相反,角度 a y是當(dāng)遵循從第二點到第一點的路徑時遇到的路徑的第一彎曲的角度。在實踐中,Bend Radius、a x和a y的值可以是度數(shù)。
[0120] 當(dāng)角度a x(或a y)是結(jié)合邊的兩個頂點到一起的平行六面體的兩個部分之間的 角度時,角度a x (或a y)通常為90°,例如,對于長方體。
[0121] 當(dāng)角度a x(或a y)是邊和第一(或第二)點的方向之間的角度時,角度a x(或 a y)可以具有任何值。在這種情形下,角度a x (或a y)可以預(yù)期作為耦合有第一(或第 二)點的第一(或第二)向量和可選地提供第三向量之間的角度,如之前所示。
[0122] 在路徑的邊的長度小于所計算的長度值L的情況下,不保持該路徑,也就是,該路 徑不是建議的解決方案。實際上,長度L有益地允許驗證路徑的邊足夠長以允許在路徑的 兩個部分之間或在第一點和部分之間或在第二點和部分之間的正確的彎曲半徑。
[0123] 現(xiàn)參考圖20,示出的是平行六面體的一個示例,其中邊的長度L太短而一方面允 許對象300的第一點310和邊340上的路徑的部分之間的路徑的正確地彎曲,以及另一方 面允許邊340和另一邊350上的路徑的部分之間的路徑的部分正確地彎曲。因此,包括遵 循邊340的路徑的部分的所有路徑不保持作為可能的解決方案。
[0124] 接著,在步驟S508,計算連接第一點到第二點的折線。折線的計算如現(xiàn)有技術(shù)中已 知地被執(zhí)行。
[0125] 現(xiàn)參考圖1,示出了在圖5中表示的解決方案的路徑的所計算的折線的示例,其中 該路徑包括平行六面體的三個連續(xù)的邊。圖1示出了為圖2中的示例由本發(fā)明提供的路徑。
[0126] 圖1上描述的折線包括結(jié)合邊340的頂點310和102的第一部分110,結(jié)合邊342 的頂點102和104的第二部分114,以及結(jié)合平行六面體的部分344的頂點104和312的第 三部分118。平行六面體的連續(xù)部分110、114、118被通過曲線互相連接,該曲線的值由提 供的彎曲半徑固定。一種理解是平行六面體的連續(xù)部分11〇、114、118被互相連接的表達意 味著部分110通過共同頂點102與部分114結(jié)合,以及部分114通過共同頂點104與部分 118結(jié)合。因此,折線包括直線部分110U14以及1189,和連接連續(xù)的直線部分的曲線部分 112 和 114。
[0127] 現(xiàn)參考圖3,討論根據(jù)彎曲半徑重新計算平行六面體的示例。所提供的點A1和B1 與向量耦合,并不再位于平行六面體的頂點上,因為平行六面體已經(jīng)被重新計算以使在彎 曲1和彎曲4提供的彎曲半徑能夠被遵守。所顯示的路徑包括平行六面體的邊D7、D2和 D10。這三個連續(xù)的部分段1、段2、段3通過曲線彎曲2、彎曲3被互相連接,并且點A1通過 曲線彎曲1被結(jié)合到段1以及點A2通過曲線彎曲4被結(jié)合到段3。
[0128] 有趣地禹合有起始點A1的向量A1共線于邊D12的一個向量(未表示),并且邊 D7和向量A1之間的角度 〇!£是90°,可以理解的是平行六面體為長方體。相反,耦合有終 點A2的向量A2與邊D10形成角度ay,其不同于90°,因為向量A2不共線于邊D4、D6、D10 的任一向量(未示出)。特別地,向量B1的方向和為其計算新的平行六面體的路徑采用的 邊D10之間的角度a y不同于90°。有趣地,向量A1的方向包括點A1和頂點C1,以及向 量B1的方向包括點B1和頂點C4。
[0129] 步驟S404類似于步驟S508。
[0130] 在實踐中,一旦已經(jīng)為一組路徑的每一路徑計算折線,可以沿著所計算的折線形 成形狀。折線是形狀的截面的中心。工業(yè)產(chǎn)品的截面的尺寸通常根據(jù)用戶動作被提供,可 以理解的是截面的默認(rèn)尺寸可以由執(zhí)行本發(fā)明的系統(tǒng)所提供。工業(yè)產(chǎn)品是意圖在工業(yè)上被 使用的產(chǎn)品,或至少涉及工業(yè)工藝。例如,管件、電纜,通風(fēng)管道、托盤等是工業(yè)產(chǎn)品。工業(yè) 產(chǎn)品通常被建模有沿線(例如,所計算的折線)延伸的規(guī)則形狀。形狀的截面可以是但不 限于圓形、方形、矩形、橢圓、平橢圓,等等
[0131] 現(xiàn)參考圖17,示出的是其中一組路徑的路徑并不作為解決方案提出給設(shè)計者的示 例,因為沖突分析已經(jīng)發(fā)生。在圖17中,示出的是平行六面體的幾個部分的彎曲表面。包 括平行六面體的一個或多個交叉部分的每個路徑從顯示給設(shè)計者的一組路徑中丟棄。將要 理解的是沖突分析被促進,因為計算被執(zhí)行在平行六面體的部分上,而不是在路徑本身。
[0132] 可替代地,該分析可以由設(shè)計者直接執(zhí)行,其可以看到被建議為解決方案的一個 或多個路徑之間的沖突。實際上,由于根據(jù)本方法的所有解決方案的表示是逼真的,所以設(shè) 計者可以看見與場景中的其他對象的沖突并且因而不選擇bas解決方案。
[0133] 現(xiàn)在參考圖19,示出的是本發(fā)明的一個示例,其中面的對角線部分被修改以使對 角線起始的邊和對角線之間包括的角度具有預(yù)定的值。對角線起始的邊被定義為包括當(dāng)遵 循從第一點到第二點的路徑時被穿過的面的第一頂點的面的邊。因而,對角線并不再連接 面的兩個相對的點,但它連接面的第一頂點與位于連接包括第一頂點的面的邊的邊上的新 的點。在實踐中,角度的這一預(yù)定值被選擇以使它是遵循該路徑的關(guān)于工業(yè)產(chǎn)品的標(biāo)準(zhǔn)值。 例如,如果路徑意圖路由管件,那么在管件【技術(shù)領(lǐng)域】中標(biāo)準(zhǔn)角度是45°、60°、90°。更一般 地,預(yù)定的值可以是45°、60°、90°。
[0134] 例如,在圖19,所表示的面的對角線部分之間的初始角度是55. 12°,其不是標(biāo)準(zhǔn) 值。一旦面的對角線被修改,新的角度具有標(biāo)準(zhǔn)值45°。
[0135] -種理解是具有修改的對角線的路徑包括結(jié)合位于由對角線結(jié)合的前頂點上的 新的點的新的部分。
[0136] 現(xiàn)在參考圖21到25,表示解決方案的顯示的幾個例子。解決方案是作為本發(fā)明的 結(jié)果被獲取的一組路徑。
[0137] 在圖21中,示出所有的解決方案(其是一組路徑的所有路徑)。
[0138] 在圖22中,僅示出邊上的路徑。此外,默認(rèn)的解決方案也被示出,這里路徑具有平 行六面體的空間對角線的部分。
[0139] 在圖23中,示出了面(對角線)上的路徑,和默認(rèn)的解決方案一起,在這里路徑具 有平行六面體的空間對角線的部分。
[0140] 在圖24中,根據(jù)觀看的軸定向所顯示的一組解決方案。定向平行六面體的軸系統(tǒng) 不鏈接到所提供的與第一和第二向量耦合的第一點和第二點。
[0141] 在圖25中,平行六面體遵循觀看軸中的一個,也就是,3D場景的全局定向,以及第 一點的方向。從之前的兩個軸計算第三軸以保持正交軸系統(tǒng)??商娲?,平行六面體遵循 觀看軸中的一個以及第二點的方向。從之前的兩個軸計算第三軸以保持正交軸系統(tǒng)。
[0142] 該設(shè)計方法用于在三維場景中設(shè)計連接第一點到第二點的路徑。"設(shè)計路徑"指明 制作路徑的過程的至少一部分的任何動作或一系列動作。
[0143] 計算機程序可以包括通過計算機的指令,指令包括用于使得以上系統(tǒng)執(zhí)行以上方 法的構(gòu)件。本發(fā)明可以例如被實現(xiàn)在數(shù)字電子電路、或計算機硬件、固件、軟件中,或它們的 組合中。本發(fā)明的裝置可以被實現(xiàn)為計算機程序產(chǎn)品,其有形地體現(xiàn)在機器可讀存儲設(shè)備 中通過可編程處理器被執(zhí)行;本發(fā)明的方法步驟可以由可編程處理器執(zhí)行,所述可編程處 理器通過操作輸入數(shù)據(jù)和生成輸出執(zhí)行指令的程序以執(zhí)行本發(fā)明的功能。
[0144] 本發(fā)明可以有益地的被實現(xiàn)在可編程系統(tǒng)上執(zhí)行的一個或多個計算機程序,該可 編程系統(tǒng)包括耦合以從數(shù)據(jù)儲存系統(tǒng)接收數(shù)據(jù)和指令、以及發(fā)送數(shù)據(jù)和指令到數(shù)據(jù)儲存系 統(tǒng)的至少一個可編程處理器,至少一個輸入設(shè)備,以及至少一個輸出設(shè)備。應(yīng)用程序可以高 級過程或面向?qū)ο蟮木幊陶Z言實現(xiàn),或如果需要的話以匯編或機器語言實現(xiàn);并且在任何 情形下,語言可以是編譯或解釋語言。
【權(quán)利要求】
1. 一種用于在H維場景中設(shè)計連接第一點到第二點的路徑的計算機實現(xiàn)的方法,包 括: -提供(S10)禪合有第一向量的第一點; -提供(S12)禪合有第二向量的第二點; -通過遵循平行六面體的最多H個部分而提供一組路徑,所述平行六面體包括在第一 頂點所提供的第一點和在第二頂點所提供的第二點,所述平行六面體的部分是邊、面的對 角線、空間對角線。
2. 根據(jù)權(quán)利要求1所述的計算機實現(xiàn)的方法,其中,所述第一頂點和第二頂點在所述 平行六面體的相對面(S50)上,所述一組路徑包括: -一個路徑,其包括由連接所述第一點和第二點的空間對角線組成的一個部分; -六個路徑,其包括具有所述平行六面體的公共頂點的兩個部分,一個部分是所述平行 六面體的面的對角線,所述對角線包括所述第一點或所述第二點,并且一個部分是邊; -六個路徑,其包括H個連續(xù)部分,每個部分是邊。
3. 根據(jù)權(quán)利要求1所述的計算機實現(xiàn)的方法,其中,所述第一頂點和第二頂點屬于所 述平行六面體的同一面(S40),所述一組路徑包括: -一個路徑,其包括是所述第一頂點和第二頂點所屬的面的對角線的一個部分; -兩個路徑,其包括兩個連續(xù)部分,每個部分是邊。
4. 根據(jù)權(quán)利要求1至3之一所述的計算機實現(xiàn)的方法,進一步包括在所述H維場景中 關(guān)于W下定向之一來定向所述平行六面體: -所述H維場景的全局定向的一個方向; -由所述第一向量所提供的方向; -由所述第二向量所提供的方向。
5. 根據(jù)權(quán)利要求1至4之一所述的計算機實現(xiàn)的方法,進一步包括提供(S400, S500) 連接用于連接所述第一點和第二點的路徑的至少兩個部分的彎曲半徑。
6. 根據(jù)權(quán)利要求5所述的計算機實現(xiàn)的方法,進一步包括,在提供彎曲半徑后: -為所述一組路徑的每個路徑根據(jù)所述彎曲半徑計算(S402,S502)連接所述第一點和 所述第二點到所述路徑的平行六面體。
7. 根據(jù)權(quán)利要求6所述的計算機實現(xiàn)的方法,其中,為所述一組路徑的每個路徑計算 平行六面體包括;通過W下步驟計算所述第一頂點的新位置和所述第二頂點的新位置: -計算所述第一點和所述第一頂點之間的距離〇1,使得= Bend Radius X (sin a 1), 其中Bend Radius是所提供的彎曲半徑的值,W及a 1是所述第一向量的方向和連接所述 第一頂點的路徑的部分之間的角度; -計算所述第二點和所述第二頂點之間的距離〇2,使得化=Bend Radius X (sin a 2), 其中Bend Radius是所提供的彎曲半徑的值,W及a 2是所述第二向量和連接所述第二頂 點的路徑的部分之間的角度。
8. 根據(jù)權(quán)利要求6或7之一所述的計算機實現(xiàn)的方法,進一步包括: -計算所述路徑的每個邊的長度(L); -確定所述長度(U 使得 L > Bend Radius X (sin a x+sin a y),其中 Bend Radius 是所 提供的彎曲半徑的值,a y是所述路徑的所述每個邊和所述路徑的共享所述路徑的所述每 個邊的第一公共頂點的另一部分之間的角度的值或者所述路徑的所述每個邊和所述第一 向量的方向之間的角度的值,W及a y是所述路徑的所述每個邊和所述路徑的共享所述路 徑的所述每個邊的第二公共頂點的另一部分之間的角度的值或者所述路徑的所述每個邊 和所述第二向量的方向之間的角度的值。
9. 根據(jù)權(quán)利要求1至8之一所述的計算機實現(xiàn)的方法,其中,所述平行六面體的一個或 多個部分形成連接所述第一點到所述第二點的折線。
10. 根據(jù)權(quán)利要求9所述的計算機實現(xiàn)的方法,進一步包括: -提供工業(yè)產(chǎn)品的截面的尺寸; -沿所述折線形成形狀,其中所述折線是所述截面的中也。
11. 根據(jù)由權(quán)利要求1至10之一所述的計算機實現(xiàn)的方法,其中: -提供禪合有第一向量的第一點包括:在所述H維場景中放置第一H維對象,所述第 一向量在所述H維場景中定向所述H維對象;W及 -提供禪合有第二向量的第二點包括:在所述H維場景中放置第二H維對象,所述第 二向量在所述H維場景中定向所述H維對象。
12. 根據(jù)權(quán)利要求1至11中任一項所述的計算機實現(xiàn)的方法,進一步包括: -顯示所提供的一組路徑的每個路徑的預(yù)覽;W及 -突顯所述預(yù)覽的一個W顯示連接所述第一點到所述第二點的路徑。
13. -種包括由計算機執(zhí)行的指令的計算機程序,所述指令包括用于執(zhí)行如權(quán)利要求 1至12中任一項所述的方法的模塊。
14. 一種計算機輔助設(shè)計系統(tǒng),其包括圖形用戶界面和禪合到存儲器的處理器,所述存 儲器具有記錄在其上的如權(quán)利要求13所述的計算機程序。
15. -種H維對象,其沿著通過如權(quán)利要求1至12中任一項所述的方法獲得的路徑被 路由。
【文檔編號】G06F17/50GK104346830SQ201410512380
【公開日】2015年2月11日 申請日期:2014年7月24日 優(yōu)先權(quán)日:2013年7月25日
【發(fā)明者】G·勒雷 申請人:達索系統(tǒng)公司