專利名稱:使用3d掃描數據識別初始設計意圖的系統和方法
技術領域:
本發明的示例性實施例一般涉及CAD(計算機輔助設計),更具體涉及反向工程3D掃描數據,以識別部件重新設計過程中的初始設計意圖。
背景技術:
計算機輔助設計(CAD)應用程序被用于生成二維和三維對象的計算機模型,作為用于被建模的實際物理裝置生成過程的一部分。這些模型通常包括必須單獨設計的多個部件體。模型部件的設計者可以使用專用的建模特征以設計模型部件。示例性建模特征(其可被稱作設計意圖)包括拉伸、旋轉、抽殼、圓角、掃描、放樣、混合、浮雕、圖案復制等。設計意圖可以被參數化,并且模型設計者經常對設計過程中的設計意圖以不同參數值進行實驗。一旦設計者對設計滿意,就可以使用模型生成實際的物理裝置。
3D掃描通過收集代表被掃描三維對象形狀的高分辨率點來捕獲三維對象的物理幾何信息。一旦捕獲了原始3D掃描數據,就可以將其轉換成CAD部件模型,以進一步處理,從而復制或修改三維對象的設計。這種捕獲三維對象的3D掃描數據以將其提供給CAD應用程序、從而可以重新設計對象的過程被稱作反向工程。
令人遺憾的是,反向工程過程中3D掃描儀捕獲的原始掃描數據僅代表對象的最終幾何形狀。3D掃描數據僅代表對象最終幾何形狀的事實使得難于追溯初始設計意圖和其參數值。例如,難于從3D掃描數據測定初始設計意圖和其特征參數值,如拉伸2D輪廓、方向和距離、旋轉2D輪廓、軸和角、恒定或變化圓角半徑、拔模平面和拔模角、掃描軌跡曲線、曲線管的中心線等等。不能測定初始設計意圖使得反向工程過程更不精確并且生產性更低。需要提供一種使用CAD系統的計算機化方法,以程序化地輔助用戶使用原始3D掃描數據研究和計算關鍵初始設計意圖。
發明內容
本發明的示例性實施例能夠使用戶程序化地提取和管理源于原始3D掃描數據的實體和表面建模參數。自動化方法讀取原始3D掃描數據,并與能夠執行CAD部件建模的CAD系統通訊而起作用。用戶具有自動功能以通過估計幾何值如網格標準值或曲率值將(從原始3D掃描數據形成的)網格模型分割成許多網格區域。圖形用戶界面能夠使用戶選擇被計算設計意圖的設計意圖類型以及一個或多個網格區域。可以程序化地發現具有良好形狀特征區域的一些設計意圖。取決于設計意圖的類型,每種設計意圖由向量、平面或多義線表示。此外,響應于用戶對建模特征參數的要求,通過使用一組功能處理原始3D掃描數據而計算出被請求的參數值的最佳近似。然后,用戶可以使用近似值或對近似值進行手動修改。
在本發明的一個方面中,一種使用3D掃描數據在反向工程中近似初始設計意圖的方法,包括提供代表三維對象形狀的3D掃描數據集合。所述3D掃描數據組合成多個網格,所述多個網格組合成代表所述三維對象的網格模型。所述方法還使用分割工具將所述網格模型分割成多個網格區域。此外,所述方法選擇網格區域和設計意圖類型,所述設計意圖是初始設計特征。對于所選網格區域,程序化地計算所選設計意圖類型的近似值。所述計算使用所選網格區域的所述3D掃描數據。
在本發明的另一個方面中,一種使用3D掃描數據近似初始設計意圖的系統,包括分割工具。所述分割工具將從三維對象的3D掃描數據形成的網格模型程序化地分割成多個網格區域。所述系統還包括用戶界面,所述用戶界面能夠選擇網格區域和設計意圖類型。所述設計意圖是初始設計特征。此外,所述系統包括與計算機輔助設計(CAD)應用程序通訊的設計意圖工具。所述設計意圖工具對于所選網格區域,程序化地計算所選設計意圖類型的近似值。對于所選網格區域,使用所述3D掃描數據計算所選設計意圖類型的近似值。
本發明由所附權利要求中的特征來限定。參考下面結合附圖所作的說明,可以更好地理解本發明的上述優點以及本發明的其他優點,在附圖中圖1示出適于實施本發明示例性實施例的環境;圖2是本發明實施例的順序步驟的流程圖,用于使用原始3D掃描數據識別初始設計意圖;圖3A示出網格區域的選擇,以計算拉伸方向;圖3B示出對于圖3A中所選網格區域計算出的拉伸向量;圖4A示出網格區域的選擇,以計算旋轉中心;圖4B示出對于圖4A中所選網格區域計算出的表示旋轉中心的向量;圖4C示出對于多個所選網格區域計算出的旋轉中心;圖5A示出網格區域的選擇,以計算拉伸輪廓;圖5B示出對于圖5A中所選網格區域計算出的表示拉伸輪廓的多義線;圖6A示出網格區域的選擇,以計算旋轉輪廓;圖6B示出對于圖6A中所選網格區域計算出的表示旋轉輪廓的多義線;圖7A示出網格區域的選擇,以計算鏡面;圖7B示出對于圖7A中所選網格區域計算出的表示鏡面的平面;圖8A示出三個網格區域的選擇,以計算掃描軌跡曲線;圖8B示出對于圖8A中所選網格區域計算出的表示掃描軌跡曲線的多義線;圖9A示出網格區域的選擇,以計算曲線管的中心線;圖9B示出對于圖9A中所選網格區域計算出的表示曲線管中心線的多義線;圖9C示出用于測定曲線管中心線的最大擬合球和中軸;圖9D示出最小生成樹(MST)和連接連續MST點的多義線;圖10示出在發現分膜方向意圖時使側凹最小化;圖11A示出生成不正確的CAD實體的差網格;圖11B示出圖11A用的差網格的差數據;圖11C示出網格編輯之后的網格;圖11D示出組合各組數據之后的網格;圖11E示出重新生成的CAD實體;圖12A和圖12B示出旋轉角的計算;圖13示出本發明拉伸距離的計算;圖14示出本發明拔模角的計算;圖15A示出局部表面法向的計算;圖15B示出從網格外部生成的實體;圖15C示出圖15B的實體的橫截面;圖15D示出本發明執行打凹成形操作之后的圖15B的實體;以及圖16示出本發明的圓角操作。
具體實施例方式
本發明的示例性實施例為用戶提供從3D掃描數據對三維對象進行反向工程時近似初始模型設計意圖的工具。自動化方法允許用戶以特定網格區域為目標并規定用戶有興趣獲得參數值的特定類型的初始設計特征。本發明程序化地分析基礎網格數據,以推斷出初始設計意圖并呈現給用戶關于初始設計意圖值的最佳估計。然后,在生成實體模型部件時用戶能夠使用這種近似或根據需要修改這種近似。
圖1示出適于實施本發明示例性實施例的環境。計算設備2包括被掃描三維對象的原始3D掃描數據4的集合。從三維掃描儀收集原始3D掃描數據4。計算設備2還是CAD應用程序6、設計意圖工具8和分割工具10的主機。計算設備2可以是工作站、服務器、膝上型電腦、大型計算機、PDA、一起操作的設備群組、虛擬設備或能夠支持所述CAD應用程序6、設計意圖工具8和分割工具10的另一種計算設備。設計意圖工具8和分割工具10是下面進一步解釋的可執行軟件處理。設計意圖工具8和分割工具10可以作為應用處理、應用插件或獨立應用程序來執行。在本發明的一種實施中,設計意圖工具8與CAD應用程序6集成為一個工具。在另一種實施中,設計意圖工具8與CAD應用程序6通訊,但不是CAD應用程序的一部分。在另一種實施中,所述分割工具是設計意圖工具8的一部分。
原始掃描數據4是代表被掃描對象形狀的三維高分辨率點的集合。在一種實施中,原始掃描數據4是一組三角形網格,但使用其他形式的掃描數據也被認為是在本發明的范圍內。例如,原始掃描數據4可以是點、四邊形網格、四面體網格或六面體網格。網格組一起形成代表被掃描對象表面的網格模型。分割工具10允許用戶根據曲率值將網格模型12程序化地分割成網格區域14、16和18。應該理解,網格模型的曲線段越多,那么生成的網格數量越大,從而呈現平滑表面的錯覺。設計意圖工具8在與計算設備2通訊的顯示器30上生成圖形用戶界面(GUI)32。GUI32能夠使用戶20選擇用戶意圖計算初始參數值的網格模型中的特定網格區域14、16和18和特定類型的設計意圖。設計意圖工具8使用下面進一步闡述的一組功能分析原始掃描數據4,并計算用戶20請求的設計意圖的近似值。
圖2是本發明實施例的順序步驟的流程圖,用于使用原始3D掃描數據識別初始設計意圖。所述順序步驟從提供原始3D掃描數據4的集合開始(步驟110)。原始3D掃描數據可以作為測定設計意圖過程的動態部分被收集,或者可以是預先存儲的掃描數據。如果數據之前沒有組合成模型,那么從掃描數據4生成網格模型12(步驟112)。可以響應于用戶命令利用分割工具10將網格模型12程序化地分割成多個網格區域14、16和18(步驟114)。然后,設計意圖工具可以從特征保持良好的區域自動地發現一些設計意圖。然后,觀察顯示器30上的網格模型12的用戶20可以使用GUI 32選擇用戶希望設計意圖工具8計算近似初始設計參數值的一個或網格區域14、16和/或18和設計意圖類型(步驟116)。然后,設計意圖工具8按下面進一步闡述的分析原始掃描數據4,以計算所選網格區域14、16和/或18的設計意圖類型的值(步驟118)。
如上所述,本發明允許用戶選擇用戶需要設計意圖工具8測定初始設計意圖值用的網格區域。為了更好地解釋本發明,下面將討論測定許多不同類型的設計意圖。可以理解,下面的討論僅是說明性的,沒有具體討論的其他設計意圖也在本發明的范圍內。
取決于設計意圖的類型,計算出的設計意圖由向量、平面或多義線中的一個或多個表示。例如,拉伸方向、旋轉中心和分膜方向由向量表示,分膜方向由一個或多個向量表示,拉伸輪廓、旋轉輪廓、掃描軌跡曲線、曲線管中心線、圓角中心、虛擬銳利邊緣、珠線(bead line)、輪廓曲線和分膜曲線由多義線表示,正交面和鏡面由平面表示。設計意圖工具執行誤差最小化過程,以從網格測定向量、平面和多義線方向。向量具有變量位置X,Y,Z和方向I,J,K。平面具有變量位置X,Y,Z和法向I,J,K。多義線是源于多邊形邊緣(即源于多邊形邊緣投影到平面生成的輪廓多義線)的許多直線線段。
設計意圖工具8執行誤差最小化過程,以從網格測定設計意圖。矩形形狀的一個例子如下1)使用基本草圖產生拉伸。形狀已知是矩形。可以調用矩形尺寸X&Y,拉伸距離Z;X,Y&Z是矩形盒的寬度、深度和高度。它們是模型的參數。
2)固有地增強相互垂直的草圖線的約束,可以增加其他約束。
3)用戶可能需要使整個網格的誤差最小化(最小化偏差),或可選擇地,用戶可以使所選網格區域內的誤差最小化。
4)使用多變量優化處理調節參數X,Y,Z,以及使用自動離群點(噪音數據)除去技術使偏差最小化(或最大化CAD VALUE)。
5)在許多數值設置中使用多變量優化。例如,為將直線擬合成數據,用戶從直線方程y=m*x+b開始,其中b和m是變量,y和x是2個數據組。用戶選擇起始m&b。誤差是數據組y與使用起始m&b和x計算的y之間的差值(或“平方”距離;平方距離和)。然后調節m&b,直到誤差最小化。這是最小二乘法使誤差最小化,或多變量優化。
設計意圖工具8可以用于測定拉伸方向設計意圖。用戶選擇當拉伸平面輪廓時可以是側面的一個或多個網格區域。然后,設計意圖工具8計算可以最佳表現拉伸方向的向量。這種方法可以參考圖3A和圖3B。在圖3A中,用戶通過圖形用戶界面32中的控制器180選擇網格模型200中的前面四個圓柱形區域202,204,206和208。用戶也可以通過另一個控制器190選擇‘拉伸軸’方法。從對拉伸軸(A)的估計開始,并測定其與區域中所有面的所有法向量之間的角度(N),對區域中所有面得到值AN(這是多邊形面法向和當前對拉伸軸的最佳估計之間的角度)。執行最小化過程,使AN測量組之間的差異最小化。在最小化過程之后,得到平均AN。AN=90°-拔模角(因此,如果AN=90°,那么在拉伸部件中沒有拔模斜度)。用戶通過第三控制器195也可以配置關于軸的額外選項,如除去離群點、取樣比和拉伸向量的最大角度。在選擇四個區域202,204,206和208之后,設計意圖工具8計算拉伸方向的向量。使用的網格數據拉伸方向算法包括求解矩陣方程。用戶所選網格區域的計算出的拉伸方向向量220在圖3B中被圈出來。拉伸方向向量220在網格區域主體內的部分用虛線指示。
測定旋轉中心設計意圖的方法是相似的。用戶選擇一個或多個網格區域(當旋轉平面輪廓時可以是側面)。然后,設計意圖工具8計算可以最佳表現旋轉中心軸的向量。這種方法可以參考圖4A,圖4B和圖4C。在圖4A中,用戶使用選擇控制器180選擇錐形的第一草圖圓柱202 (區域2)。需要估計這個圓柱的旋轉軸。用戶使用圖形用戶界面32中的方法控制器190選擇‘旋轉軸’方法。使用的旋轉向量算法包括求解矩陣方程。對于圖4A中的所選區域而言,在圖4B中圈出的虛線表明計算出的旋轉中心230。也可以檢測多個區域的旋轉中心。在圖4C中,用戶使用選擇控制器180選擇網格模型240中的區域1(242),2(244)和3(246)。設計意圖工具8計算出用戶所選三個區域242,244和246的圖示旋轉中心250。
設計意圖工具8也可用于測定拉伸輪廓設計意圖。用戶選擇一個或多個網格區域(當拉伸平面輪廓時可以是側面)和在其上生成輪廓的草圖平面。設計意圖工具8生成拉伸實體的區域數據的輪廓曲線,并將輪廓曲線投影在草圖平面上(使用拉伸軸法向)。平面上的一系列線性線段(輪廓曲線的投影)表示多義線(拉伸輪廓)。這種方法可以參考圖5A和圖5B。在圖5A中,如果用戶選擇前面四個202,204,206和208和后面四個圓柱形區域201,203,205和207,并選擇‘拉伸輪廓’命令,那么生成圖5B中所示的計算出的拉伸輪廓260設計意圖。設計意圖工具8使用拉伸方向命令在內部測定拉伸方向。使用所有變平的(投影的)數據,設計意圖工具8將一系列線最佳地擬合成這種數據,從而生成作為拉伸輪廓的多義線。結果是多義線而不是精確的圓形。
為測定旋轉輪廓設計意圖,用戶選擇一個或多個網格區域(當旋轉平面輪廓時可以是側面)和旋轉中心軸。設計意圖工具8生成所選一個或多個網格區域的旋轉圖像,并在旋轉圖像和穿過旋轉軸的平面之間生成橫截面多義線。這種方法可以參考圖6A和圖6B。在圖6A中,用戶從模型240選擇三個區域242,244和246,并使用設計意圖工具8通過圖形用戶界面32的‘旋轉輪廓’命令測定旋轉部分或“旋轉輪廓”。旋轉輪廓是估計的2D草圖,其可用于繞旋轉軸旋轉并生成實體。對于圖6A的模型240中所選區域計算出的旋轉輪廓270示于圖6B。繞中心軸旋轉圖6B的圖案270將最佳地擬合所選區域242,244和246。為測定旋轉輪廓270,按與上述拉伸輪廓相同的方式執行設計意圖工具,除了使用“旋轉中心”命令,并且相應于旋轉實體的所有區域數據繞中心旋轉地投影在與旋轉軸共平面的草圖平面上(與使用“拉伸方向”功能和區域數據投影相反)。各點變稀疏,并使用最小生成樹技術形成多義線。示例性最小生成樹技術記載在“Curve Reconstruction from Unorganized Points”,In-Kwon Lee,PO STECH Information Research Laboratories中。
當給定網格區域相對于某一平面對稱時,設計意圖工具8也可用于測定鏡面設計意圖。為識別鏡面,用戶選擇網格區域,并規定大致接近鏡面的平面作為初始近似。設計意圖工具8復制給定的一個或多個網格區域,并將它/它們變換成與給定平面對稱。設計意圖工具8變換復制的一個或多個網格區域,通過使用ICP(迭代最近點)算法使重疊部分的各點間的距離之和最小化,并且從ICP算法生成的變換矩陣用于調節鏡面平面。設計意圖工具8存儲變換矩陣,并將其迭代應用到給定平面,直到算法收斂,然后向用戶20輸出結果。
測定鏡面的過程可以參考圖7A和圖7B。在圖7A中,顯示了模型300的鏡面302。鏡面302代表用戶給定的初始近似。使用本發明的設計意圖工具8對于所有區域執行‘鏡面’命令,計算模型300的鏡面304,如圖7B所示。通過將變換矩陣應用于用戶提供的近似平面302計算鏡面304。
為了測定掃描軌跡曲線設計意圖,當掃描輪廓曲線時,用戶選擇一個或多個網格區域(可以是側面)。這種方法可以參考圖8A和圖8B。在圖8A中,用戶選擇包括被掃描表面的模型310的三個區域312,314和316(在圖8A中僅能直接看到上部區域/面312)。然后,設計意圖工具估計模型300的掃描曲線318,如圖8B所示。然后,通過沿所示的多義線318掃描三個側面輪廓,生成表面。這種算法給出掃描輪廓上的起點。(導向曲線是用戶希望最終測定的)。在網格表面上局部測定(在離散點)截面曲率(曲率與截面方向相關,并且是離散計算的)。計算導致局部最小和最大曲率的截面方向,并是主要的曲率方向。截面方向在每個給定點相互正交。軟件基于主要曲率方向追蹤曲率流(基于離散的截面曲率估計)。基于初始搜索位置計算一條導向曲線(因為對于給定表面,存在無數條導向曲線)。
設計意圖工具8也可用于測定曲線管設計意圖的中心線。這種工具使用與掃描導向曲線設計意圖相似的工作流程。當掃描圓形輪廓時,用戶20選擇一個或多個網格區域(可以是側面)。此過程與上述掃描導向曲線相似。這種方法可以參考圖9A和圖9B。在圖9A中,顯示出中心350中的曲線管不完整掃描的數據。設計意圖工具通過測定管350的中心線可以計算初始設計意圖,并生成穿過中心線的最佳擬合曲線352,如圖9B所示。在圖9C和圖9D中進一步解釋測定中心線的過程,此過程從測定所選區域的‘中軸’開始,如圖9C所示。中軸是一組點(軌跡),其中點355是在區域(最大球)353中內接球的中心點。中軸點變稀疏,計算最小生成樹(MST)357,如圖9D所示。生成多義線,其是連續連接MST點的一組線段。使用最大球,利用中軸逼近法,使初始點云變稀疏,并從中軸點生成最小生成樹。在下面的圖中圈住連續線段,其是代表曲線管中心的多義線359。
設計意圖工具還可以計算分膜方向意圖。當使用兩個模具生成模制部件時,其中一個模具在上部,另一個模具在下部,模具必須能夠滑動,并且不被模制部件撞擊。例如,通過在側面放置兩個模具,可以僅模制出沙漏(的外表面)。如果在上部和下部都有模具,那么不可能除去它們。軟件計算一個或多個可能的分離方向(分膜方向)。這些可以一個或多個向量或錐體顯現,所有的向量或錐體都是可行的分離方向。分膜方向試圖使部件的側凹最小化。關于允許的側凹量的公差參數適于這種工具。側凹的最小化可以參考圖10。模制部件360包括表面362,364,366,368,370,372,374和376。設計意圖工具8試圖發現與最小數量的表面相交的分膜方向。如果垂直線的方向380用作分膜方向,那么將產生大量側凹,因為此方向的向量與多于2個表面相交(其將與表面362,364,366和368相交)。相反,水平線的方向390將產生更少的側凹,是更可能的候選分膜方向(因為其僅與表面374和376相交)。計算網格上相對于假定分膜方向的法向角,并用于測定一個(以及后面的多個)可能用于分膜方向的方向。本發明也將生成分膜曲線,其是當沿著給定的分膜方向和拔模角移動模型時將模型分裂成兩個無側凹模型的曲線。
此外,設計意圖工具8也可用于測定圓形圖案軸設計意圖。為測定圓形圖案軸設計意圖,用戶選擇可以由圓形圖案生成的一個或多個網格區域。然后,設計意圖工具通過區域之間的配準計算變換矩陣。區域之間的配準在幾何上對齊三維模型。配準過程利用PAT(主軸變換)和ICP(迭代最近點)算法。PAT算法對齊模型的重心和主軸。ICP算法迭代地在變換的模型的標準內最小化各匹配點間的距離之和。PAT用作初始粗對齊,ICP用作微對齊。配準過程的結果表示為變換矩陣(旋轉,平移)。設計意圖工具8從輸入的n個區域選擇一個參考區域。通過從每個n-1區域到參考區域的n-1個配準來計算n-1階變換矩陣。然后,應用程序從計算的變換矩陣提取旋轉中心軸。
相似地,設計意圖工具8也可用于測定線性圖案軸設計意圖。為測定線性圖案軸設計意圖,用戶選擇可以由線性圖案生成的一個或多個網格區域。然后,設計意圖工具通過區域之間的旋轉鎖定約束配準計算變換矩陣。旋轉鎖定約束配準過程按與上述配準過程相同方式操作,除了忽略了關于配準的變換旋轉項(即僅有平移變換)。然后,應用程序從計算的變換矩陣提取平移圖案軸。
此外,設計意圖工具8也可用于測定由多義線表示的圓角中心、虛擬銳利邊緣、珠線和輪廓曲線。對于圓角中心,用戶選擇可以由圓角生成的一個或多個網格區域。設計意圖工具8使用從圓角區域提取的中心計算多義線。對于虛擬銳利邊緣,用戶選擇一個或多個網格區域,并且設計意圖工具計算延展擬合的表面或網格。然后,設計意圖工具計算延展實體之間的相交多義線。對于珠線,用戶選擇包括珠線區域的一個或多個網格區域。然后,設計意圖工具8從網格區域提取槽區域,并計算穿過槽中心線的多義線。對于輪廓曲線,用戶選擇一個或多個網格區域和方向向量(或平面)。如果選擇平面,那么設計意圖工具將網格區域投影到所選平面上。然后,設計意圖工具從投影的一個或多個網格區域的邊界環生成多義線。如果選擇向量,那么設計意圖工具計算作為分型線的多義線。
一旦本發明的示例性實施例計算出了被請求的設計意圖,那么用戶可以修改網格區域,通過在其中包括更多網格,從其中排除網格,平滑化幾何形狀,或使用其他網格編輯工具。當加入網格時,本發明允許用戶選擇網格文件,并將其輸入程序中。可以在新輸入的網格之外生成區域,然后用戶可以使用“合并區域”命令將其加到一個區域中。用戶也可以執行基本網格操作,如‘網格合并’和‘網格組合’。‘網格合并’操作通過對重疊區域執行平均化操作將網格合并成一個網格。在下面起始網格中存在孔的例子中,如果用戶使用輸入的無孔網格執行合并操作,那么“合并的網格”是有孔的起始網格和輸入的無孔網格的平均。源于輸入的網格的數據用于填充起始網格中的孔。‘網格組合’功能相似,但沒有平均化處理。
在網格編輯步驟之后,設計意圖工具8自動地重新計算設計意圖。然后對于新數據,執行上述設計意圖測定過程。設計意圖工具8通過追蹤所有其他實體如3D主體建模特征、對齊和2D草圖輪廓的聯合,傳遞變化。
上述特征的優點可以參考圖11A-11E。從差質量掃描數據開始,并沒有執行修改,生成不正確的CAD實體。圖11A示出差網格400,從其將生成不正確的CAD實體。圖11B示出用于生成不正確的CAD實體的差數據402。然而,本發明允許用戶通過執行網格操作如‘平滑化’和‘孔填充’或通過加入或除去網格來修整掃描數據,以生成更好的網格。對于差掃描數據402執行網格編輯操作之后的改進網格示于圖11C的模型404中。如上所述,本發明的示例性實施例允許各組掃描數據組合,如圖11D的模型410所示。組合的各組數據用于填充網格中的空穴412,414,416和418,平均噪音,或除去劣質數據。重新計算設計意圖的設計意圖工具自動地追蹤網格操作,包括加入或除去網格數據。這些變化影響向量、平面和多義線的計算。重新計算影響其他實體,如3D主體建模特征、對齊、2D草圖輪廓和其他實體,這反映在圖11E所示的更新的CAD實體420的自動重新生成中。
對于‘旋轉角’和‘拉伸距離”特征,在旋轉的圓形方向或拉伸的線性方向中生成各多邊形的一組測量,以測定這些量度(角度或距離)。這兩種量度都需要初始草圖平面(并且旋轉角還需要旋轉中心線)。旋轉角特征的測定可以參考圖12A和圖12B。測量草圖平面434和模型430的區域432中每一面中心之間的角(角1(440),角2(442),和角3(444))。基于每個多邊形面的法線、草圖法線和旋轉軸436過濾離群點。由與數據點(所選區域中的所有點)的所有方位法向量相交的線限定旋轉軸。“數據點的方位法向量”是從掃描數據點開始朝著法向的方向向量。一起平均區域中各面的可行角(通過離群點過濾處理未除去的那些)測量(還存儲可行面的最大和最小角)。平均值(各可行面的平均角)呈現給用戶20,同時最大/最小角用作草圖的旋轉角。
拉伸距離特征的計算參考圖13。與上述旋轉角的計算相似,測量從每個面中心542,544和546到草圖平面540的拉伸距離5 50,552和554。基于每個多邊形面的法線和草圖法線540(它們必須在容許角度公差之內平行)過濾離群點。一起平均區域中各面的可行距離(通過離群點過濾處理未除去的那些)測量(還存儲可行面的最大和最小距離)。平均值(各可行面的平均距離)呈現給用戶20,同時最大/最小距離用作草圖的拉伸距離。
當設置拔模、打凹成形和圓角特征需要的尺寸時,本發明的示例性實施例也為用戶計算最佳估計。
當用戶加入拔模特征時,彈出拔模對話窗口。在對話窗口中,用戶可以點擊圖形按鈕計算拔模角,其是對于原始3D掃描數據幾何形狀的最適角。本發明計算原始3D掃描數據和從測量拔模角的中性面略向上移動的平面之間的相交曲線。在相交曲線上的取樣點處,生成其法向量與相交曲線相切的平面。然后,計算那些平面與原始3D掃描數據之間的相交線。平均中性面和各平面(其拔模角正在考慮的各平面)限定的各法向量之間的角。本發明將3個角度值呈現給用戶最小角、最大角和平均角。
計算拔模角的過程示于圖14。通過選擇模型500中的兩個區域502和504(法向區域-圖14中的平坦、基本區域502;和拔模區域-圖14中的成角、傾斜區域504),這兩個區域可以擬合成平表面506和508。可以理解,這種操作不限于平面擬合表面,因為擬合表面可以是曲線表面。利用這些表面的延伸相交,確定相交線510(對于非平表面,將確定曲線)。通過分別擬合每一平面上的兩條線516和518、520和522,生成垂直于相交曲線的兩個平面512和514,并測定這些線的相交角(或拔模角)524和526,對拔模角取樣兩次。用戶可以使用平均、最大或最小相交(拔模)角來選擇反向設計過程中的拔模角。使用各平面生成截面數據,以定向數據收集(在圖14中有兩個用于計算角度的平面)。使用誤差最小化技術將向量(線)擬合成這種截面數據。基于這些向量計算角度。平面擬合遵循誤差最小化技術。應該注意到,兩條非平行線將在直線或向量上相交。
如上所述,本發明的示例性實施例可以用于測定打凹成形(或抽殼)厚度,如圖15A-15C所示。當用戶加入打凹成形特征時,彈出打凹成形對話窗口。在對話窗口中,用戶可以點擊圖形按鈕計算壁厚,其是對于原始3D掃描數據幾何形狀的最適壁厚。設計意圖工具8從應該加入打凹成形特征的主體上取樣點,然后沿可以通過得到局部表面U&V方向的交叉向量積(dU×dV)估計的法向生成射線。這種方法示于圖15A中。平均取樣點580和590之間的距離,確定射線582和592與原始3D掃描數據之間的相交點。應該注意到,可以使用誤差最小化代替距離平均化,其中誤差最小化基于空殼之間的偏差,并調節中空距離,直到偏差最小。三個厚度值呈現給用戶最小、最大和平均厚度。可以基于相交點的射線和法向量之間的角度差異除去離群點。如果角度大于指定的容許公差,那么在打凹成形厚度計算中不予考慮。
打凹成形技術首先使用網格的外表面生成非空的實體。存在未用于外表面的網格內部。網格的內部用于測定打凹成形厚度。首先通過計算表面周圍的局部法向量(垂直于局部生成的表面/實體上的局部UV軸方向)來計算厚度。法向上的表面和原始網格(原始3D掃描數據)之間的距離是局部打凹成形距離。從這些局部打凹成形距離(厚度)生成完全打凹成形區(所有距離測量)。用戶可以選擇打凹成形區具有均勻的打凹成形厚度,即平均、最大或最小厚度。在現有的實體/表面內部上生產新表面,從而生成由初始實體/表面和新生成的中空表面構成的新實體。圖15B示出從網格外部生成的實體600。圖15C示出圖15B的實體600的橫截面610。橫截面610表明局部UV軸612和614、法向616和法向616與網格620之間的局部相交線618。圖15D示出本發明執行打凹成形操作之后的圖15B的實體630。
圓角是邊緣的凹陷或凸起平滑化。本發明還可用于計算圓角半徑。圓角半徑可以是常量或變量。當用戶加入圓角特征時,彈出圓角對話窗口。在對話窗口中,用戶可以點擊圖形按鈕計算圓角半徑,其是對于原始3D掃描數據幾何形狀的最適圓角半徑。本發明從用戶規定圓角的邊緣取樣點。然后,限定法向量與點處的邊緣相切的平面。設計意圖工具8計算原始3D掃描數據和具有與點處的邊緣相切的法向量的平面之間的相交曲線。每條相交曲線自動分解成圓弧和線。對于原始3D掃描數據和上述限定的平面之間計算出的所有相交曲線,應用程序對源于分解的相交曲線的中心弧半徑進行平均。如果圓角選項是定值,那么將三個半徑值呈現給用戶最小、最大和平均半徑。如果圓角選項具有變化的半徑,那么在新的2D圖形窗口中繪制半徑圖,從而允許用戶知道半徑變化的趨向。用戶可以在2D圖形中交互式地精選多個半徑。設計意圖工具8還可以從2D圖形自動地擬合最佳近似曲線。
計算圓角半徑的過程示于圖16。選擇部分650中具有圓角的區域。在此部分上繪制曲線,生成垂直于該曲線的平面662,664,666,668和670。通過選擇圓角周圍的幾個點,從插值生成曲線。用戶可以選擇曲線并規定在曲線周圍均等分布的多個部分(如圖所示),或者用戶可以沿曲線選擇各點,以研究圓角半徑。在圖16中,研究五個樣本區域,以測定這種不均勻圓角的圓角輪廓。對于圓角選定的結果半徑可以是所有圓角測量的平均值、最大值、最小值,或在不均勻圓角半徑的情況下,以下插值(如圖形680所示)用作半化的半徑圓角。
本發明可以作為記錄在一種或多種介質之上或之中的一種或多種計算機可讀程序而提供。這類介質可以是軟盤、硬盤、光盤、通用數字光盤、閃存卡、PROM、RAM、ROM或磁帶。通常,計算機可讀程序可以任何編程語言執行。可以使用的語言的一些例子包括FORTRAN、C、C++、C#或JAVA。軟件程序可以存儲在一種或多種介質之上或之中作為目標代碼。可以使用硬件加速,并且所有或部分代碼可以在FPGA或ASIC上運行。代碼可以在虛擬環境如虛擬機中運行。用于運行代碼的多個虛擬機可以設在單一處理機上。
因為可以在不脫離本發明范圍的情況下作出一定變化,因此上述說明書所包含的或者附圖中所顯示的全部內容均應被解釋成說明性的,而不僅僅是字面含義。本領域技術人員應該意識到,在不脫離本發明范圍的情況下,附圖所示的順序步驟和結構可以改變,并且這里所包含的說明僅是對本發明多種可能描述的個別例子。
權利要求
1.一種使用3D掃描數據在反向工程中近似初始設計意圖的方法,包括提供代表三維對象形狀的3D掃描數據的集合,所述3D掃描數據組合成多個網格,所述多個網格組合成代表所述三維對象的網格模型;使用分割工具將所述網格模型分割成多個網格區域;選擇網格區域和設計意圖類型,所述設計意圖是初始設計特征;以及對于所選網格區域,程序化地計算所選設計意圖類型的近似值,所述計算使用所選網格區域的所述3D掃描數據。
2.如權利要求1所述的方法,其中所述分割工具通過估計幾何值將所述網格模型分割成所述多個網格區域。
3.如權利要求2所述的方法,其中所述幾何值是網格曲率值和網格標準值之一。
4.如權利要求1所述的方法,還包括從所述網格模型形成的CAD模型中選擇規定的特征;使用所述3D掃描數據程序化地計算所述規定的特征的估計參數值。
5.如權利要求1所述的方法,其中所述多個網格是三角形網格、四邊形網格和點之一。
6.如權利要求1所述的方法,其中所述設計意圖由向量的計算表示。
7.如權利要求6所述的方法,其中所述設計意圖是拉伸方向、分膜方向、圓形圖案軸、線性圖案方向、圓錐軸、圓柱軸和旋轉中心之一。
8.如權利要求1所述的方法,其中所述設計意圖由平面的計算表示。
9.如權利要求8所述的方法,其中所述設計意圖是正交面和鏡面之一。
10.如權利要求1所述的方法,其中所述設計意圖由多義線的計算表示。
11.如權利要求10所述的方法,其中所述設計意圖是拉伸輪廓、旋轉輪廓、掃描軌跡曲線、曲線管中心線、圓角中心、虛擬銳利邊緣、珠線、輪廓曲線和分膜曲線之一。
12.如權利要求1所述的方法,其中所述設計意圖是拔模角、恒定圓角半徑、變化圓角半徑、旋轉角、拉伸距離和打凹成形壁厚特征之一。
13.一種使用3D掃描數據近似初始設計意圖的系統,包括分割工具,所述分割工具將從三維對象的3D掃描數據形成的網格模型程序化地分割成多個網格區域;用戶界面,所述用戶界面能夠選擇網格區域和設計意圖類型,所述設計意圖是初始設計特征;以及與計算機輔助設計(CAD)應用程序通訊的設計意圖工具,所述設計意圖工具對于所選網格區域,程序化地計算所選設計意圖類型的近似值,所述計算使用所選網格區域的所述3D掃描數據。
14.如權利要求13所述的系統,還包括3D掃描儀,所述3D掃描儀掃描代表三維對象形狀的多個點,所述點組合成多個網格,所述多個網格組合成代表所述三維對象表面的網格模型。
15.如權利要求13所述的系統,其中所述設計意圖由向量、平面和多義線之一表示。
16.一種計算設備用的有形物理介質,所述有形物理介質容納用于使用3D掃描數據在反向工程過程中近似初始設計意圖的計算機可執行指令,所述指令包括用于提供代表三維對象形狀的3D掃描數據集合的指令,所述3D掃描數據組合成多個網格,所述多個網格組合成代表所述三維對象的網格模型;用于使用分割工具將所述網格模型分割成多個網格區域的指令;用于選擇網格區域和設計意圖類型的指令,所述設計意圖是初始設計特征;以及用于對于所選網格區域程序化地計算所選設計意圖類型的近似值的指令,所述計算使用所選網格區域的所述3D掃描數據。
17.如權利要求16所述的介質,其中所述分割工具通過估計幾何值將所述網格模型分割成所述多個網格區域。
18.如權利要求17所述的介質,其中所述幾何值是網格曲率值和網格標準值之一。
19.如權利要求16所述的介質,其中所述指令還包括用于從所述網格模型形成的CAD模型中選擇規定的特征的指令;用于使用所述3D掃描數據程序化地計算所述規定的特征的估計參數值的指令。
20.如權利要求16所述的介質,其中所述多個網格是三角形網格、四邊形網格和點之一。
21.如權利要求16所述的介質,其中所述設計意圖由向量的計算表示。
22.如權利要求21所述的介質,其中所述設計意圖是拉伸方向、分膜方向、圓形圖案軸、線性圖案方向、圓錐軸、圓柱軸和旋轉中心之一。
23.如權利要求16所述的介質,其中所述設計意圖由平面的計算表示。
24.如權利要求23所述的介質,其中所述設計意圖是正交面和鏡面之一。
25.如權利要求16所述的介質,其中所述設計意圖由多義線的計算表示。
26.如權利要求25所述的介質,其中所述設計意圖是拉伸輪廓、旋轉輪廓、掃描軌跡曲線、曲線管中心線、圓角中心、虛擬銳利邊緣、珠線、輪廓曲線和分膜曲線之一。
27.如權利要求16所述的介質,其中所述設計意圖是拔模角、恒定圓角半徑、變化圓角半徑、旋轉角、拉伸距離和打凹成形壁厚特征之一。
28.一種使用3D掃描數據在反向工程中近似初始設計意圖的方法,包括提供代表三維對象形狀的3D掃描數據的集合,所述3D掃描數據組合成多個網格,所述多個網格組合成代表所述三維對象的網格模型;使用分割工具將所述網格模型分割成多個網格區域;通過用戶界面選擇網格區域和設計意圖類型,所述設計意圖是初始設計特征,在程序化識別所述網格模型中的網格區域的至少一種設計意圖之后執行所述選擇;以及對于所選網格區域,程序化地計算所選設計意圖類型的近似值,所述計算使用所選網格區域的所述3D掃描數據。
全文摘要
本發明公開了程序化提取和管理源于原始3D掃描數據的實體和表面建模參數。自動化方法讀取原始3D掃描數據,并與能夠執行CAD部件建模的CAD系統通訊而起作用。用戶具有自動功能以將(從原始3D掃描數據形成的)網格模型分割成許多網格區域。圖形用戶界面能夠使用戶選擇被計算設計意圖的設計意圖類型以及網格區域。取決于設計意圖的類型,各設計意圖由向量、平面或多義線表示。響應于用戶對建模特征參數的要求,通過使用一組功能處理原始3D掃描數據而計算出被請求的參數值的最佳近似。
文檔編號G06F17/50GK101071453SQ20071009733
公開日2007年11月14日 申請日期2007年5月8日 優先權日2006年5月9日
發明者裴奭勛, 李東勛, 梁暢允 申請人:樂必峰軟件公司