背景技術(shù):
本發(fā)明的實(shí)施例總體上涉及計(jì)算機(jī)程序和系統(tǒng)的領(lǐng)域,并且具體地涉及產(chǎn)品設(shè)計(jì)和模擬的領(lǐng)域。在市場(chǎng)上提供用于零件或零件的組件的設(shè)計(jì)和模擬的多個(gè)現(xiàn)有的產(chǎn)品和模擬系統(tǒng)。這樣的系統(tǒng)一般采用計(jì)算機(jī)輔助設(shè)計(jì)(cad)和計(jì)算機(jī)輔助工程(cae)程序。這些系統(tǒng)允許用戶構(gòu)造、操縱以及模擬對(duì)象或?qū)ο蟮慕M件的復(fù)雜三維模型。這些cad和cae系統(tǒng)因此在具有面的某些情況下使用邊緣或線來(lái)提供經(jīng)建模的對(duì)象的表示。可以用各種方式(例如,非均勻有理b樣條(nurbs))來(lái)表示線、邊緣、面或多邊形。
這些cad系統(tǒng)管理經(jīng)建模的對(duì)象的零件或零件的組件,其主要是幾何結(jié)構(gòu)的規(guī)范。具體而言,cad文件包含規(guī)范,幾何結(jié)構(gòu)由規(guī)范產(chǎn)生。根據(jù)幾何結(jié)構(gòu),產(chǎn)生表示。規(guī)范、幾何結(jié)構(gòu)和表示可以存儲(chǔ)在單個(gè)cad文件或多個(gè)cad文件中。cad系統(tǒng)包括用于向設(shè)計(jì)者表示經(jīng)建模的對(duì)象的圖形工具;這些工具專用于復(fù)雜對(duì)象的顯示。例如,組件可包含數(shù)千個(gè)零件。
cad和cae系統(tǒng)的出現(xiàn)允許對(duì)象的各種各樣的表示可能性。一個(gè)這樣的表示是有限元素分析(fea)模型。術(shù)語(yǔ)“fea模型、有限元素模型(fem)、有限元素網(wǎng)格和網(wǎng)格”在本文中可互換地使用。fem一般表示cad模型,并且因此可以表示一個(gè)或多個(gè)零件或整個(gè)組件。fem是被互連以產(chǎn)生被稱為網(wǎng)格的柵格的稱為節(jié)點(diǎn)的點(diǎn)的系統(tǒng)。因此,fem可以由頂點(diǎn)、邊緣和/或面表示。fem(包括邊緣、頂點(diǎn)和面)可以以使得fem具有其表示的基礎(chǔ)對(duì)象或?qū)ο蟮奶匦缘姆绞竭M(jìn)行編程??梢詾閒em的每個(gè)實(shí)體(例如,邊緣、面和頂點(diǎn))存儲(chǔ)額外的信息以完善描述。例如,有限元素模型可以根據(jù)本領(lǐng)域中已知的原理而被編程以具有結(jié)構(gòu)特性,例如其表示的對(duì)象的質(zhì)量、重量和剛度。此外,fem可以包括信息,例如fem的各種實(shí)體的吸引和用于識(shí)別的標(biāo)記。當(dāng)fem或如在本領(lǐng)域中已知的其它這樣的對(duì)象表示以這樣的方式進(jìn)行編程時(shí),其可以用于執(zhí)行其表示的對(duì)象的模擬。例如,fem可以用于表示車輛的內(nèi)艙、圍繞結(jié)構(gòu)的聲學(xué)流體以及任何數(shù)量的真實(shí)世界對(duì)象。此外,cad和cae系統(tǒng)連同fem一起被用于模擬工程系統(tǒng)。例如,cae系統(tǒng)可以用于模擬車輛的噪聲和振動(dòng)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的實(shí)施例提供用于修改三維(3d)模型的有限元素網(wǎng)格表示的方法和系統(tǒng)。
本發(fā)明的實(shí)施例通過(guò)由用戶定義有限元素網(wǎng)格的對(duì)稱約束來(lái)開始,有限元素網(wǎng)格表示主體(subject)3d模型,其中對(duì)稱約束包括要被對(duì)稱地修改的有限元素網(wǎng)格的兩個(gè)非對(duì)稱區(qū)。接著,這樣的實(shí)施例識(shí)別在兩個(gè)非對(duì)稱區(qū)之間的對(duì)應(yīng)的有限元素,并且響應(yīng)于用戶交互,對(duì)兩個(gè)非對(duì)稱區(qū)的至少一個(gè)有限元素執(zhí)行拓?fù)浣Y(jié)構(gòu)操縱。進(jìn)而,在與至少一個(gè)元素相對(duì)應(yīng)的所識(shí)別的有限元素上對(duì)稱地執(zhí)行拓?fù)浣Y(jié)構(gòu)操縱。根據(jù)實(shí)施例,對(duì)稱地執(zhí)行操縱導(dǎo)致有限元素網(wǎng)格的兩個(gè)非對(duì)稱區(qū)在拓?fù)浣Y(jié)構(gòu)上被對(duì)稱地修改,表示主體3d模型中的拓?fù)浣Y(jié)構(gòu)上的對(duì)稱修改。
在實(shí)施例中,識(shí)別兩個(gè)非對(duì)稱區(qū)之間的對(duì)應(yīng)的有限元素包括識(shí)別兩個(gè)非對(duì)稱區(qū)的對(duì)稱邊緣、頂點(diǎn)和面。替代的實(shí)施例還包括確定局部對(duì)稱平面,所述局部對(duì)稱平面由有限元素網(wǎng)格的兩個(gè)非對(duì)稱區(qū)的質(zhì)心定義并垂直于由有限元素網(wǎng)格的兩個(gè)非對(duì)稱區(qū)定義的方向。此外,使用所確定的局部對(duì)稱平面,這樣的實(shí)施例還可以包括更新對(duì)稱約束和所識(shí)別的對(duì)應(yīng)的有限元素以反映所執(zhí)行的拓?fù)浣Y(jié)構(gòu)操縱。根據(jù)實(shí)施例,更新對(duì)稱約束包括重新構(gòu)造與兩個(gè)非對(duì)稱區(qū)中的每個(gè)區(qū)相關(guān)聯(lián)的相應(yīng)邊緣輪廓以及重新構(gòu)造與兩個(gè)非對(duì)稱區(qū)中的每個(gè)區(qū)相關(guān)聯(lián)的相應(yīng)邊界面。
由實(shí)施例執(zhí)行的拓?fù)浣Y(jié)構(gòu)操縱可以是本領(lǐng)域中已知的任何這種拓?fù)浣Y(jié)構(gòu)修改。在一個(gè)這種實(shí)施例中,拓?fù)浣Y(jié)構(gòu)操縱包括以下各項(xiàng)中的至少一項(xiàng):面擠壓、邊緣切割、面細(xì)分、斜邊切割、和面去除。
在替代的實(shí)施例中,定義對(duì)稱約束包括以下各項(xiàng)中的至少一項(xiàng):識(shí)別第一組經(jīng)連接的面和第二組經(jīng)連接的面,識(shí)別平面和一組經(jīng)連接的面,識(shí)別一組面,以及識(shí)別平面。根據(jù)又一實(shí)施例中,對(duì)稱約束只應(yīng)用于有限元素網(wǎng)格的子部分。在另一個(gè)實(shí)施例中,利用相應(yīng)的唯一標(biāo)記來(lái)識(shí)別有限元素網(wǎng)格的兩個(gè)非對(duì)稱區(qū)的元素。
在本發(fā)明的實(shí)施例中,定義對(duì)稱約束包括確定在兩個(gè)非對(duì)稱區(qū)之間的分離形狀。在這樣的實(shí)施例中,分離形狀可以是平面。此外,在又一實(shí)施例中,在識(shí)別在兩個(gè)非對(duì)稱區(qū)之間的對(duì)應(yīng)的有限元素中使用分離形狀。
本發(fā)明的替代的實(shí)施例涉及用于修改3d模型的有限元素網(wǎng)格表示的計(jì)算機(jī)系統(tǒng)。這樣的系統(tǒng)包括處理器和存儲(chǔ)器,存儲(chǔ)器具有存儲(chǔ)在其上的計(jì)算機(jī)代碼指令,其中處理器和具有計(jì)算機(jī)代碼指令的存儲(chǔ)器被配置為使系統(tǒng)實(shí)現(xiàn)本文中所述的各種實(shí)施例。在一個(gè)這樣的實(shí)施例中,處理器和具有計(jì)算機(jī)代碼指令的存儲(chǔ)器使系統(tǒng):響應(yīng)于第一用戶交互作用,定義代表主體3d模型的有限元素網(wǎng)格的對(duì)稱約束,對(duì)稱約束包括要被對(duì)稱地修改的有限元素網(wǎng)格的兩個(gè)非對(duì)稱區(qū);以及識(shí)別在兩個(gè)非對(duì)稱區(qū)之間的對(duì)應(yīng)的有限元素。此外,在這樣的計(jì)算機(jī)系統(tǒng)實(shí)施例中,處理器和具有計(jì)算機(jī)代碼指令的存儲(chǔ)器還使系統(tǒng)響應(yīng)于第二用戶交互作用而對(duì)兩個(gè)非對(duì)稱區(qū)的至少一個(gè)有限元素執(zhí)行拓?fù)浣Y(jié)構(gòu)操縱,并且在與至少一個(gè)元素相對(duì)應(yīng)的所識(shí)別的有限元素上對(duì)稱地執(zhí)行拓?fù)浣Y(jié)構(gòu)操縱。根據(jù)實(shí)施例,對(duì)稱地執(zhí)行操縱導(dǎo)致有限元素網(wǎng)格的兩個(gè)非對(duì)稱區(qū)在拓?fù)浣Y(jié)構(gòu)上被對(duì)稱地修改,并且表示主體3d模型中的對(duì)稱拓?fù)浣Y(jié)構(gòu)修改。
根據(jù)計(jì)算機(jī)系統(tǒng)的實(shí)施例,在識(shí)別兩個(gè)非對(duì)稱區(qū)之間的對(duì)應(yīng)的有限元素時(shí),處理器和具有計(jì)算機(jī)代碼指令的存儲(chǔ)器還被配置為使得系統(tǒng)識(shí)別兩個(gè)非對(duì)稱區(qū)的對(duì)稱邊緣、頂點(diǎn)和面。此外,根據(jù)另一實(shí)施例,處理器和具有計(jì)算機(jī)代碼指令的存儲(chǔ)器還被配置為使得系統(tǒng)確定局部對(duì)稱平面,所述局部對(duì)稱平面由有限元素網(wǎng)格的兩個(gè)非對(duì)稱區(qū)的質(zhì)心定義并垂直于由有限元素網(wǎng)格的兩個(gè)非對(duì)稱區(qū)定義的方向,并且使用所確定的局部對(duì)稱平面來(lái)更新對(duì)稱約束和所識(shí)別的對(duì)應(yīng)的有限元素以反映所執(zhí)行的拓?fù)浣Y(jié)構(gòu)操縱。在又一實(shí)施例中,在更新對(duì)稱約束時(shí),處理器和具有計(jì)算機(jī)代碼指令的存儲(chǔ)器還被配置為使得系統(tǒng):重新構(gòu)造與兩個(gè)非對(duì)稱區(qū)中的每個(gè)區(qū)相關(guān)聯(lián)的相應(yīng)邊緣輪廓以及重新構(gòu)造與兩個(gè)非對(duì)稱區(qū)中的每個(gè)區(qū)相關(guān)聯(lián)的相應(yīng)邊界面。
根據(jù)計(jì)算系統(tǒng)的實(shí)施例,拓?fù)浣Y(jié)構(gòu)操縱包括以下各項(xiàng)中的至少一項(xiàng):面擠壓、邊緣切割、面細(xì)分、斜邊切割和面去除。在又一個(gè)實(shí)施例中,對(duì)稱約束只應(yīng)用于有限元素網(wǎng)格的子部分。此外,根據(jù)另一個(gè)實(shí)施例,在定義對(duì)稱約束中,處理器和具有計(jì)算機(jī)代碼指令的存儲(chǔ)器還被配置為使系統(tǒng)識(shí)別以下各項(xiàng)中的至少一項(xiàng):第一組經(jīng)連接的面和第二組經(jīng)連接的面、平面和一組經(jīng)連接的面、一組面以及平面。在又一實(shí)施例中,利用相應(yīng)的唯一標(biāo)記來(lái)識(shí)別有限元素網(wǎng)格的兩個(gè)非對(duì)稱區(qū)。
在一個(gè)這樣的計(jì)算機(jī)系統(tǒng)實(shí)施例中,在定義對(duì)稱約束中,處理器和具有計(jì)算機(jī)代碼指令的存儲(chǔ)器還被配置為使得系統(tǒng)確定在兩個(gè)區(qū)之間的分離形狀。在識(shí)別兩個(gè)區(qū)之間的對(duì)應(yīng)的有限元素時(shí)實(shí)施例利用分離形狀。此外,在又一實(shí)施例中,分離形狀是平面。
本發(fā)明的另一實(shí)施例涉及用于修改表示3d模型的有限元素網(wǎng)格的云計(jì)算實(shí)施方式。這樣的實(shí)施例涉及在跨網(wǎng)絡(luò)與一個(gè)或多個(gè)客戶端的通信中由服務(wù)器執(zhí)行的計(jì)算機(jī)程序產(chǎn)品,計(jì)算機(jī)程序產(chǎn)品包括計(jì)算機(jī)可讀介質(zhì)。計(jì)算機(jī)可讀介質(zhì)包括程序指令,其當(dāng)由處理器執(zhí)行時(shí)使得:響應(yīng)于第一用戶交互作用,定義有限元素網(wǎng)格的對(duì)稱約束,有限元素網(wǎng)格表示主體3d模型,對(duì)稱約束包括要被對(duì)稱地修改的有限元素網(wǎng)格的兩個(gè)非對(duì)稱區(qū);以及識(shí)別在兩個(gè)非對(duì)稱區(qū)之間的對(duì)應(yīng)的有限元素。此外,在這樣的實(shí)施例中,程序指令當(dāng)被執(zhí)行時(shí)還使得:響應(yīng)于第二用戶交互作用,對(duì)兩個(gè)非對(duì)稱區(qū)的至少一個(gè)有限元素執(zhí)行拓?fù)浣Y(jié)構(gòu)操縱并且在與至少一個(gè)元素相對(duì)應(yīng)的所識(shí)別的有限元素上對(duì)稱地執(zhí)行拓?fù)浣Y(jié)構(gòu)操縱。在這樣的實(shí)施例中,對(duì)稱地執(zhí)行操縱導(dǎo)致有限元素網(wǎng)格的兩個(gè)非對(duì)稱區(qū)在拓?fù)浣Y(jié)構(gòu)上被對(duì)稱地修改,并表示主體3d模型中的對(duì)稱拓?fù)浣Y(jié)構(gòu)修改。
本申請(qǐng)涉及在本申請(qǐng)的優(yōu)先權(quán)日在epo并由同一申請(qǐng)人提交的、標(biāo)題為“modificationofaconstrainedasymmetricalsubdivisionmesh”并且具有相同的發(fā)明人的申請(qǐng),其全部教導(dǎo)通過(guò)引用被并入本文中。在其它示例當(dāng)中,對(duì)本申請(qǐng)的兩個(gè)非對(duì)稱區(qū)的至少一個(gè)所識(shí)別的對(duì)應(yīng)的有限元素的操縱可以是如在相關(guān)申請(qǐng)中所述執(zhí)行的操縱,并且此外這兩個(gè)申請(qǐng)可以利用用于定義對(duì)稱約束、識(shí)別對(duì)應(yīng)的有限元素并相應(yīng)地執(zhí)行操縱的相同或類似的方法。
附圖說(shuō)明
前述內(nèi)容將根據(jù)本發(fā)明的示例性實(shí)施例的以下的更具體的描述而顯而易見,如在附圖中所示的,其中相似的附圖標(biāo)記在全部不同的視圖中指代相同的部件。附圖并不一定是按照比例的,相反強(qiáng)調(diào)的是說(shuō)明本發(fā)明的實(shí)施例。
圖1描繪了可以在實(shí)施例中利用的表面和有限元素網(wǎng)格。
圖2示出了具有根據(jù)本發(fā)明的實(shí)施例的原理的受到對(duì)稱約束的部分的有限元素網(wǎng)格。
圖3描繪了可以在一個(gè)或多個(gè)實(shí)施例中利用的具有幾何差異和對(duì)稱拓?fù)浣Y(jié)構(gòu)的有限元素網(wǎng)格。
圖4示出了由實(shí)施例提供的示例性功能,其中可以移動(dòng)網(wǎng)格并且維持對(duì)稱約束。
圖5描繪了由本發(fā)明的示例性實(shí)施例提供的功能。
圖6是示出根據(jù)實(shí)施例的原理的修改有限元素網(wǎng)格的計(jì)算機(jī)實(shí)現(xiàn)的方法的流程圖。
圖7示出了根據(jù)實(shí)施例定義的對(duì)稱約束。
圖8描繪了包括根據(jù)示例實(shí)施例的原理定義的對(duì)稱約束的有限元素網(wǎng)格。
圖9是具有根據(jù)實(shí)施例的方法定義的對(duì)稱約束區(qū)的有限元素網(wǎng)格。
圖10描繪了根據(jù)實(shí)施例對(duì)稱地約束的有限元素網(wǎng)格。
圖11示出了分析可以在實(shí)施例中利用的有限元素網(wǎng)格的方法。
圖12描繪了具有可以在本發(fā)明的實(shí)施例中利用的唯一標(biāo)記系統(tǒng)的有限元素網(wǎng)格。
圖13a-k示出了具有可以利用本發(fā)明的實(shí)施例的原理來(lái)執(zhí)行的拓?fù)浣Y(jié)構(gòu)變化的有限元素網(wǎng)格。
圖14描繪了根據(jù)示例性實(shí)施例的在約束創(chuàng)建時(shí)的有限元素網(wǎng)格和在修改之后的有限元素網(wǎng)格。
圖15a-d描繪了利用實(shí)施例的原理的有限元素網(wǎng)格的拓?fù)浣Y(jié)構(gòu)變化。
圖16描繪了受到根據(jù)實(shí)施例的原理定義的對(duì)稱約束的有限元素網(wǎng)格的拓?fù)浣Y(jié)構(gòu)變化。
圖17是定義根據(jù)實(shí)施例的對(duì)稱約束的計(jì)算機(jī)自動(dòng)化的方法的流程圖。
圖18是根據(jù)示例性實(shí)施例的原理利用對(duì)稱約束修改網(wǎng)格的計(jì)算機(jī)實(shí)現(xiàn)的方法的流程圖。
圖19是根據(jù)實(shí)施例的原理的用于修改有限元素網(wǎng)格的計(jì)算機(jī)系統(tǒng)的簡(jiǎn)化方框圖。
圖20是可以實(shí)現(xiàn)本發(fā)明的實(shí)施例的計(jì)算機(jī)網(wǎng)絡(luò)環(huán)境的簡(jiǎn)化圖。
具體實(shí)施方式
本發(fā)明的示例性實(shí)施例的描述如下。
本發(fā)明的實(shí)施例涉及完全由表示3d模型的細(xì)分網(wǎng)格定義的細(xì)分表面。更具體地,實(shí)施例處理“對(duì)稱形狀”的概念,其可以是cad軟件中的標(biāo)準(zhǔn)功能。實(shí)施例提供用于提供這樣的功能的更有效的方法和系統(tǒng)。
如本文中所提到的,本發(fā)明的實(shí)施例涉及cad和3d模型。圖1描繪了由網(wǎng)格101定義的一個(gè)這樣的表面100。設(shè)計(jì)者例如可以利用本發(fā)明的實(shí)施例來(lái)增加效率,同時(shí)修改網(wǎng)格101。因此,有效地反映對(duì)表面100的期望修改。
很多所制造的對(duì)象是對(duì)稱的或具有對(duì)稱的一些部分,例如屏幕和電視機(jī)、電話、頭戴式耳機(jī)、馬克杯(mugs)、汽車座椅等。此外,很多真實(shí)世界對(duì)象本身或其部分可以是非對(duì)稱的,但對(duì)稱地對(duì)這些部分產(chǎn)生變化依然可能是合乎需要的。因此,對(duì)維持表示真實(shí)世界對(duì)象的有限元素網(wǎng)格的對(duì)稱特性的約束是在cad軟件中的有用功能。本發(fā)明的實(shí)施例可以用于增加在幾乎任何對(duì)象的設(shè)計(jì)和建模中的效率,因?yàn)榇蟛糠謱?duì)象包含可以利用本發(fā)明的實(shí)施例的原理來(lái)約束的局部或全局對(duì)稱或非對(duì)稱部分。例如,可以在具有針對(duì)用戶的拇指的槽的計(jì)算機(jī)鼠標(biāo)、具有針對(duì)揚(yáng)聲器或按鈕位置的非對(duì)稱邊界的電視機(jī)、移動(dòng)電話、以及具有兩個(gè)不同尺寸的手指孔的一對(duì)剪刀的設(shè)計(jì)中使用本發(fā)明的實(shí)施例。在本文中所述的方法和系統(tǒng)的示例中,3d模型表示頭戴式耳機(jī),并且對(duì)稱約束涉及兩個(gè)耳機(jī),并且操縱是由cad設(shè)計(jì)者執(zhí)行以修改兩個(gè)耳機(jī)中的任一個(gè)的形狀和/或定位的設(shè)計(jì)操作。在又一實(shí)施例中,3d模型表示汽車的后座椅,并且整個(gè)座椅受到對(duì)稱約束。因此,當(dāng)對(duì)例如座椅的左頭枕進(jìn)行改變時(shí),可以有效且自動(dòng)地利用本發(fā)明的實(shí)施例的原理來(lái)對(duì)右頭枕執(zhí)行這個(gè)改變。
在現(xiàn)有技術(shù)中處理問(wèn)題的主要方式是提供從普通細(xì)分網(wǎng)格和平面構(gòu)建或看到整個(gè)對(duì)稱網(wǎng)格(即,從原始網(wǎng)格創(chuàng)建完全對(duì)稱的網(wǎng)格)的方式。然而,雖然這樣的現(xiàn)有解決方案允許用戶創(chuàng)建完整的對(duì)稱網(wǎng)格,這意味著在拓?fù)浣Y(jié)構(gòu)上和在幾何上是對(duì)稱的,這從人機(jī)工程學(xué)觀點(diǎn)來(lái)看不一定是對(duì)以上所提及的所制造的對(duì)象的設(shè)計(jì)的最有效的解決方案。然而,現(xiàn)有的解決方案不提供可能需要的所有功能。因此提出一種方法和系統(tǒng)作為改進(jìn),該方法和系統(tǒng)允許用戶:只將網(wǎng)格的子部分定義為對(duì)稱的;修改對(duì)稱區(qū)的右側(cè)或左側(cè);具有與對(duì)稱拓?fù)浣Y(jié)構(gòu)的一些幾何差異;在不同的地方中朝著所選定平面移動(dòng)網(wǎng)格而不破壞對(duì)稱約束;和/或改善或簡(jiǎn)化細(xì)分表面并保持對(duì)稱約束盡可能遠(yuǎn)。除其它功能外,現(xiàn)有的解決方案不提供前面提到的功能。
如上所述,為整個(gè)細(xì)分網(wǎng)格和平面設(shè)計(jì)現(xiàn)有的解決方案。本發(fā)明的實(shí)施例利用在細(xì)分網(wǎng)格內(nèi)部被約束的對(duì)稱區(qū),并且在網(wǎng)格的整個(gè)修改中維持這個(gè)約束。這改進(jìn)了人機(jī)工程學(xué)。
本發(fā)明的實(shí)施例提供現(xiàn)有的方法不支持的很多功能。例如,本發(fā)明的實(shí)施例只允許網(wǎng)格的子部分被約束為對(duì)稱的。圖2示出了網(wǎng)格220,其中只有部分221被約束為關(guān)于平面224是對(duì)稱的。此外,實(shí)施例實(shí)現(xiàn)功能,其中對(duì)稱區(qū)的右側(cè)或左側(cè)可以被修改。這個(gè)功能允許例如對(duì)稱區(qū)221的左側(cè)222和/或右側(cè)223被修改。此外,如圖3中所示的,本發(fā)明的實(shí)施例支持利用對(duì)稱拓?fù)浣Y(jié)構(gòu)來(lái)創(chuàng)建幾何差異。在圖3中,有限元素網(wǎng)格331和332在拓?fù)浣Y(jié)構(gòu)上是等同的,但在幾何上是不同的。除了其它原因以外,網(wǎng)格332還包括在與相應(yīng)的邊緣335和336不同的角度下的邊緣333和334。因此,網(wǎng)格331和332本身在拓?fù)浣Y(jié)構(gòu)上關(guān)于339和340是對(duì)稱的,但它們?cè)趲缀紊详P(guān)于那些相同的平面不是對(duì)稱的。
另外的實(shí)施例提供用于移動(dòng)網(wǎng)格而不破壞對(duì)稱約束的能力。圖4描繪了被約束為朝著平面441是對(duì)稱的第一位置442a處的網(wǎng)格440。隨后,網(wǎng)格440移動(dòng)到位置442b并被修改(從443a到443b所示的差別)。通過(guò)利用平面441嚴(yán)格地定義網(wǎng)格440的對(duì)稱約束,用戶能夠總是利用約束修改形狀,并朝著所選定的平面將網(wǎng)格移動(dòng)到不同的地方而不破壞對(duì)稱約束。本發(fā)明的實(shí)施例可以通過(guò)在約束的定義之后不考慮平面數(shù)據(jù)來(lái)實(shí)現(xiàn)此。這個(gè)解決方案允許為將被移動(dòng)的網(wǎng)格的所有元素維持對(duì)稱操縱。這也實(shí)現(xiàn)了對(duì)非對(duì)稱網(wǎng)格的操縱。例如,在圖4中,網(wǎng)格440關(guān)于平面441是非對(duì)稱的,并且因此通過(guò)不利用平面數(shù)據(jù),在對(duì)稱約束被定義之后,網(wǎng)格440可以相對(duì)于平面441移動(dòng),如在框442b中所示的,并且可以維持對(duì)稱約束。根據(jù)實(shí)施例,這可以在網(wǎng)格440被移動(dòng)之后通過(guò)確定新對(duì)稱平面來(lái)實(shí)現(xiàn)。
另外的實(shí)施例提供要改善或簡(jiǎn)化的有限元素網(wǎng)格的功能,同時(shí)一直保持對(duì)稱約束為盡可能多的修改。圖5描繪了網(wǎng)格550和所修改的網(wǎng)格551,其中通過(guò)所需的各種修改以得到所修改的網(wǎng)格551,維持對(duì)稱約束。雖然實(shí)施例通過(guò)很多修改來(lái)維持對(duì)稱約束,在替代的實(shí)施例中,存在對(duì)可以被執(zhí)行的修改的限制,同時(shí)維持對(duì)稱約束。例如,在特定的條件(例如強(qiáng)烈和破壞性拓?fù)浣Y(jié)構(gòu)的修改被執(zhí)行)的實(shí)施例中,可能難以識(shí)別對(duì)稱區(qū)的輪廓。在實(shí)施例中,提供功能以當(dāng)約束不能被維持時(shí)編輯對(duì)稱約束和/或重新定義對(duì)稱約束。
沒有進(jìn)行已知的嘗試來(lái)定義、存儲(chǔ)并維持這樣的“對(duì)稱約束”以能夠執(zhí)行前面提到的功能。在本發(fā)明的實(shí)施例中,對(duì)稱區(qū)通過(guò)在網(wǎng)格本身上被驗(yàn)證并創(chuàng)建來(lái)進(jìn)行定義。約束通過(guò)在網(wǎng)格表面中的集成被“存儲(chǔ)”,并且被流式傳送和復(fù)制,以使得網(wǎng)格表面不再是簡(jiǎn)單的基本網(wǎng)格。此外,通過(guò)在網(wǎng)格的兩側(cè)上執(zhí)行所有操作(例如,頂點(diǎn)平移、面擠壓和面移除)來(lái)維持約束。沒有已知的cad或其它軟件之前對(duì)此成功地處理。
圖6是根據(jù)本發(fā)明的實(shí)施例的原理的用于修改有限元素網(wǎng)格的計(jì)算機(jī)實(shí)現(xiàn)的方法660的流程圖。方程660通過(guò)定義有限元素網(wǎng)格的對(duì)稱約束來(lái)開始,其中對(duì)稱約束包括在步驟661對(duì)稱地修改的兩個(gè)非對(duì)稱區(qū)。根據(jù)實(shí)施例,兩個(gè)非對(duì)稱區(qū)均包括一組網(wǎng)格元素,例如面、頂點(diǎn)和/或邊緣。根據(jù)方法660的實(shí)施例,有限元素網(wǎng)格代表主體3d模型??梢允褂酶鞣N方法(例如,識(shí)別第一組經(jīng)連接的面和第二組經(jīng)連接的面、識(shí)別平面和一組經(jīng)連接的面、識(shí)別一組面和識(shí)別平面)來(lái)定義約束。此外,方法660的實(shí)施例可以利用用于定義本文中所述的對(duì)稱約束的任何方法或方法的組合。以下關(guān)于圖7-10在本文中描述關(guān)于用于定義可以在方法660中利用的對(duì)稱約束的方法的另外的細(xì)節(jié)。例如,在實(shí)施例中,主體網(wǎng)格顯示在監(jiān)視器上,并且用戶使用鼠標(biāo)、觸摸屏或本領(lǐng)域中已知的任何用戶/界面方法來(lái)選擇包括對(duì)稱區(qū)的網(wǎng)格的面、邊緣和/或頂點(diǎn)。在另一實(shí)施例中,可以通過(guò)選擇對(duì)稱的平面來(lái)識(shí)別對(duì)稱約束。此外,對(duì)稱約束可以被定義為包括網(wǎng)格的任何部分,例如整個(gè)網(wǎng)格或有限元素網(wǎng)格的一些子部分。
如在上文中所述的,方法660定義包括要被對(duì)稱地修改的兩個(gè)非對(duì)稱區(qū)的對(duì)稱約束。方法660的實(shí)施例可以用于修改各種有限元素網(wǎng)格,其中例如網(wǎng)格是非對(duì)稱的,但需要對(duì)稱地執(zhí)行修改。這樣的網(wǎng)格的示例在圖2中被描繪,在上文中被描述,其中網(wǎng)格220包括對(duì)稱約束221,其包括兩個(gè)非對(duì)稱區(qū)222和223。根據(jù)實(shí)施例,在步驟661定義對(duì)稱約束包括確定在兩個(gè)非對(duì)稱區(qū)之間的分離形狀。在這樣的實(shí)施例中,分離形狀可以是期望的任何這樣的形狀。此外,根據(jù)實(shí)施例,分離形狀可以是默認(rèn)形狀,例如在這兩個(gè)區(qū)之間的平面。此外,在又一實(shí)施例中,分離形狀被識(shí)別為位于兩個(gè)非對(duì)稱區(qū)的質(zhì)心處并垂直于在這兩個(gè)區(qū)之間的方向的平面。根據(jù)實(shí)施例,可以使用本領(lǐng)域中已知的任何方法來(lái)確定所述平面和質(zhì)心。例如,可以使用等式:σnagia=0。此外,在其它示例當(dāng)中,可以使用每個(gè)區(qū)的每個(gè)閉合輪廓的質(zhì)心來(lái)識(shí)別在這兩個(gè)區(qū)之間的方向。在這樣的示例中,在那兩個(gè)質(zhì)心之間的區(qū)段可以定義在這兩個(gè)區(qū)之間的方向。在圖2中描繪了示例性分離形狀224。此外,雖然方法660定義包括兩個(gè)非對(duì)稱區(qū)的對(duì)稱約束,本發(fā)明的實(shí)施例不被這樣限制,并且在替代的實(shí)施例中,對(duì)稱約束可以包括兩個(gè)對(duì)稱區(qū)。
在步驟661定義對(duì)稱約束之后,方法660在步驟662繼續(xù)并識(shí)別在兩個(gè)非對(duì)稱區(qū)之間的對(duì)應(yīng)的有限元素。根據(jù)實(shí)施例,識(shí)別對(duì)應(yīng)的元素包括識(shí)別兩個(gè)區(qū)的對(duì)稱邊緣、頂點(diǎn)和面。例如關(guān)于圖12整體描述了對(duì)應(yīng)的有限元素的示例。例如,在圖12中描繪的頂點(diǎn)(7,13)和(6,16)和面(7,13)都可被考慮為可以在方法660的步驟662期間識(shí)別的對(duì)應(yīng)的元素。此外,根據(jù)實(shí)施例,在步驟662識(shí)別對(duì)應(yīng)的有限元素可以包括識(shí)別在兩個(gè)非對(duì)稱區(qū)之間的所有這樣的對(duì)應(yīng)的元素,或替代地任何數(shù)量的對(duì)應(yīng)的元素。在實(shí)施例中,使用近鄰傳播方法(例如以下關(guān)于圖11在本文中所述的方法)在步驟662自動(dòng)識(shí)別對(duì)應(yīng)的元素。還進(jìn)一步地,在又一實(shí)施例中,可以響應(yīng)于操縱(即例如,在擠壓面之后)僅識(shí)別對(duì)應(yīng)的有限元素,隨后可以識(shí)別對(duì)應(yīng)的對(duì)稱頂點(diǎn)。在方法660的另一實(shí)施例中,當(dāng)在步驟661定義對(duì)稱形狀時(shí)確定的分離形狀可以用于在步驟662識(shí)別在兩個(gè)區(qū)之間的對(duì)應(yīng)的元素。例如,所定義的分離形狀用于識(shí)別這兩個(gè)區(qū),并且使用本文中所述的原理,可以識(shí)別這兩個(gè)區(qū)的對(duì)應(yīng)的元素。
方法660的又一實(shí)施例對(duì)受到所定義的約束的每個(gè)元素利用相應(yīng)的唯一標(biāo)記。這些唯一標(biāo)記進(jìn)而可以在步驟662在識(shí)別在兩個(gè)非對(duì)稱區(qū)之間的對(duì)應(yīng)的有限元素時(shí)被使用。以下關(guān)于圖12在本文中描述了關(guān)于唯一標(biāo)記的另外的細(xì)節(jié)。
在步驟661定義對(duì)稱約束并在步驟662識(shí)別對(duì)應(yīng)的有限元素之后,方法660通過(guò)在步驟663執(zhí)行對(duì)兩個(gè)非對(duì)稱區(qū)的至少一個(gè)所識(shí)別的對(duì)應(yīng)的有限元素的拓?fù)浣Y(jié)構(gòu)操縱來(lái)繼續(xù)。根據(jù)實(shí)施例,可以響應(yīng)于用戶輸入或命令而執(zhí)行操縱。本發(fā)明的實(shí)施例可以提供功能以實(shí)現(xiàn)本領(lǐng)域中已知的任何拓?fù)浣Y(jié)構(gòu)。示例性拓?fù)浣Y(jié)構(gòu)操縱包括面擠壓、邊緣切割、面細(xì)分、斜邊切割和面移除。
響應(yīng)于在步驟663的操縱,拓?fù)浣Y(jié)構(gòu)操縱進(jìn)而在步驟664在與至少一個(gè)元素相對(duì)應(yīng)的所識(shí)別的有限元素上被對(duì)稱地執(zhí)行。換句話說(shuō),在例如面上執(zhí)行拓?fù)浣Y(jié)構(gòu)操縱之后,在其它非對(duì)稱區(qū)中在對(duì)應(yīng)的面上對(duì)稱地自動(dòng)執(zhí)行操縱。這樣的功能的示例在圖13a-k中被描繪并且在下本文中被描述。在步驟664對(duì)稱地執(zhí)行操縱導(dǎo)致有限元素網(wǎng)格的兩個(gè)非對(duì)稱區(qū)在拓?fù)浣Y(jié)構(gòu)上被非對(duì)稱地修改。此外,在步驟663和664的這樣的修改可以表示主體3d模型中的非對(duì)稱修改。
在方法660的實(shí)施例中,在步驟664對(duì)稱執(zhí)行操縱包括確定局部對(duì)稱平面,所述局部對(duì)稱平面由至少一個(gè)有限元素和與至少一個(gè)元素相對(duì)應(yīng)的所識(shí)別的有限元素定義并垂直于由至少一個(gè)有限元素和與至少一個(gè)元素相對(duì)應(yīng)的所識(shí)別的有限元素定義的方向。此外,這樣的實(shí)施例使用局部對(duì)稱平面來(lái)計(jì)算拓?fù)浣Y(jié)構(gòu)操縱的對(duì)稱變換,并且進(jìn)而在與至少一個(gè)有限元素相對(duì)應(yīng)的所識(shí)別的有限元素上執(zhí)行所計(jì)算的對(duì)稱變換。在示例性實(shí)施例中,計(jì)算并執(zhí)行確切的對(duì)稱變換,例如,如果面擠壓1厘米,則對(duì)應(yīng)的面也擠壓1厘米。在另一實(shí)施例中,計(jì)算并執(zhí)行比例變換。例如,如果10厘米高的面擠壓2厘米,則對(duì)應(yīng)的面也被擠壓其高度的20%。
根據(jù)方法660的實(shí)施例,有限元素網(wǎng)格是3d模型的表示。如在本文中所述的,3d模型以及因而表示同一對(duì)象的有限元素模型可以代表任何種類的真實(shí)世界對(duì)象,例如汽車、電話和運(yùn)動(dòng)設(shè)備等。有限元素模型可以根據(jù)本領(lǐng)域中已知的原理被編程以具有結(jié)構(gòu)特性,例如其表示的對(duì)象的質(zhì)量和剛度。因此,方法660的實(shí)施例可以用于提高在這樣的真實(shí)世界對(duì)象的設(shè)計(jì)中的效率,其中期望對(duì)稱修改。
可以利用本發(fā)明的實(shí)施例,從而使網(wǎng)格受到任何數(shù)量的對(duì)稱約束。因此,對(duì)稱約束可以作為網(wǎng)格的部分進(jìn)行累積,因而通過(guò)對(duì)有限元素網(wǎng)格的多個(gè)部分對(duì)稱地執(zhí)行操縱來(lái)為用戶增加設(shè)計(jì)效率。多個(gè)約束可以被定義為具有相同或不同組的有限元素的網(wǎng)格。此外,方法660的實(shí)施例可以用于同時(shí)對(duì)有限元素網(wǎng)格的多個(gè)元素執(zhí)行拓?fù)浣Y(jié)構(gòu)修改。例如,一次可以擠壓若干面,并且進(jìn)而可以使用本文中所述的實(shí)施例的原理對(duì)稱地?cái)D壓在另一對(duì)稱區(qū)中的每個(gè)對(duì)應(yīng)的面。此外,本發(fā)明的示例性實(shí)施例還可以包括在適當(dāng)?shù)那闆r下忽略所定義的約束的功能。例如,在用戶選擇被包括在兩個(gè)非對(duì)稱區(qū)中的多個(gè)元素的情況下,可以確定設(shè)計(jì)意圖,以便于當(dāng)在這兩個(gè)非對(duì)稱區(qū)中同時(shí)對(duì)元素作出變化時(shí)忽略對(duì)稱約束。這可能在例如用戶將整個(gè)網(wǎng)格二等分的情況下是必要的。關(guān)于圖13e在下文中描述了關(guān)于這種功能的細(xì)節(jié)。
根據(jù)本文中所述的原理定義和存儲(chǔ)對(duì)稱約束提供了在網(wǎng)格修改的大部分情況下重新構(gòu)造受到約束的網(wǎng)格的兩個(gè)部分的能力。此外,本文所述的方法還確保在每次修改(切割、擠壓、細(xì)分、斜邊切割等)之后右邊緣和左邊緣輪廓的重新構(gòu)造。
在步驟663和664利用方法660執(zhí)行的拓?fù)浣Y(jié)構(gòu)變化可以例如產(chǎn)生具有額外的面、邊緣和頂點(diǎn)的主體有限元素網(wǎng)格。因此,方法660的實(shí)施例提供了用于更新所定義的對(duì)稱約束和所識(shí)別的對(duì)應(yīng)的有限元素的功能以在步驟663和664反映拓?fù)浣Y(jié)構(gòu)變化。方法660的一個(gè)這樣的實(shí)施例還包括確定局部對(duì)稱平面,所述局部對(duì)稱平面由有限元素網(wǎng)格的兩個(gè)非對(duì)稱區(qū)的質(zhì)心定義并垂直于由有限元素網(wǎng)格的兩個(gè)非對(duì)稱區(qū)定義的方向。進(jìn)而,使用所確定的局部對(duì)稱平面,這樣的實(shí)施例更新對(duì)稱約束和所識(shí)別的對(duì)應(yīng)的有限元素以反映在步驟663和664所執(zhí)行的拓?fù)浣Y(jié)構(gòu)操縱。根據(jù)實(shí)施例,更新對(duì)稱約束包括重新構(gòu)造與兩個(gè)對(duì)稱區(qū)中的每個(gè)區(qū)相關(guān)聯(lián)的相應(yīng)邊緣輪廓,以及重新構(gòu)造與兩個(gè)非對(duì)稱區(qū)中的每個(gè)區(qū)相關(guān)聯(lián)的相應(yīng)邊界面。關(guān)于圖15a-d在本文中描述了關(guān)于這樣的方法的另外的細(xì)節(jié)。
實(shí)施例可以利用各種技術(shù)來(lái)定義對(duì)稱約束。一種這樣的方法利用具有在一組面當(dāng)中的右元素和左元素對(duì)的自動(dòng)計(jì)算來(lái)定義對(duì)稱約束。其它實(shí)施例提供使用戶成對(duì)地定義所約束的元素的方式。可以在實(shí)施例中利用的一種示例性方法是利用經(jīng)連接的面的兩個(gè)單獨(dú)組來(lái)定義對(duì)稱約束。在這樣的實(shí)施例中,可以自動(dòng)檢測(cè)平面,這兩個(gè)組關(guān)于該平面是對(duì)稱的。
圖7描繪了在由面771的左邊組和面772的右邊組定義的網(wǎng)格770上的對(duì)稱約束。在這樣的示例中,用戶可以選擇兩個(gè)組的面771和772或選擇面的組的其中之一771或772,以定義對(duì)稱約束。在這個(gè)示例中,中心面773和774不受到約束。此外,在這樣的示例中,可以例如通過(guò)計(jì)算在左組771和右組772之間的質(zhì)心并考慮在兩組面771和772之間的方向來(lái)自動(dòng)識(shí)別平面775,面771的左組和面772的右組關(guān)于平面775是對(duì)稱的。在這樣的示例中,所計(jì)算的質(zhì)心識(shí)別在這兩組面之間的中點(diǎn),并且然后對(duì)稱平面被識(shí)別為包含質(zhì)心并正交于(即垂直于)在兩個(gè)區(qū)之間的方向的平面。
圖8示出了另一示例性實(shí)施例,其中對(duì)稱約束由面的兩個(gè)單獨(dú)組定義。在網(wǎng)格880上的對(duì)稱約束包括面881和882的單獨(dú)組,每個(gè)組包括五個(gè)面??梢耘c在圖7中所描繪的前面提到的示例實(shí)施例類似地自動(dòng)確定平面885,組881和882關(guān)于平面885是對(duì)稱的。
圖9示出了具有根據(jù)又一實(shí)施例的原理定義的對(duì)稱約束的網(wǎng)格990。在圖9中所描繪的實(shí)施例中,使用一組面991來(lái)定義約束。在這樣的實(shí)施例中,這組面991的一半992位于平面994的一側(cè)上,并且這組991的另一半993位于平面994的另一側(cè)上。在這個(gè)示例性實(shí)施例中,在約束由單組面定義的情況下,平面994可以再次被自動(dòng)識(shí)別。
此外,雖然本發(fā)明的實(shí)施例提供功能,其中只有有限元素網(wǎng)格的一部分受到對(duì)稱約束,本發(fā)明的實(shí)施例不限于這樣的方法。圖10描繪了有限元素網(wǎng)格1000,其中整個(gè)網(wǎng)格受到約束。如在圖10中所描繪的,左部分1001和右部分1002受到關(guān)于平面1003的對(duì)稱約束。
對(duì)稱約束還可以由平面和一組經(jīng)連接的面定義。在這樣的實(shí)施例中,隨后可以識(shí)別中間接合點(diǎn)以重新得到單獨(dú)的對(duì)稱區(qū)。還進(jìn)一步地,實(shí)施例可以利用平面來(lái)識(shí)別對(duì)稱區(qū),其中該平面可以由網(wǎng)格的元素(例如頂點(diǎn)、面和/或邊緣)定義。雖然描述了用于定義對(duì)稱區(qū)的各種不同功能,但實(shí)施例可以在任何組合中使用這些功能。此外,可以使用相同或不同組的所選定面來(lái)為網(wǎng)格定義約束。
實(shí)施例還可以包括確保在受到對(duì)稱約束的頂點(diǎn)、邊緣和/或面之間存在對(duì)應(yīng)性的功能。一個(gè)這樣的示例性實(shí)施例依賴于基于網(wǎng)格的拓?fù)浣Y(jié)構(gòu)的遞歸算法以確定對(duì)應(yīng)性。在實(shí)施例中,這通過(guò)分析每個(gè)對(duì)稱區(qū)的輪廓來(lái)執(zhí)行。在圖11中描繪了這樣的示例,其中網(wǎng)格1100被分析以確認(rèn)在受到約束的頂點(diǎn)、邊緣和面之間的對(duì)應(yīng)性。這樣的實(shí)施例從輪廓的邊緣1101開始,并且從網(wǎng)格結(jié)構(gòu)識(shí)別相鄰循環(huán)1102。從循環(huán)1102和循環(huán)1102的定向中,頂點(diǎn)和邊緣以正確的順序被重新得到并一起成對(duì)。一旦循環(huán)1102被處理,這樣的方法就接著移動(dòng)到下一循環(huán)1103并類似地識(shí)別頂點(diǎn)和邊緣。這在網(wǎng)格1100的兩側(cè)上被執(zhí)行,并且一旦兩個(gè)區(qū)域的所有元素被處理,方法就停止并且所有元素成對(duì)。以這種方式,因?yàn)橛邢拊鼐W(wǎng)格的約束區(qū)的邊緣輪廓和邊界面是相關(guān)聯(lián)的,所以這兩組經(jīng)連接的面(即,約束的一側(cè)和約束的另一側(cè))的所有元素在近鄰傳播中是2乘2地相關(guān)聯(lián)的。此外,當(dāng)做出這樣的確定時(shí),在接合點(diǎn)上的元素(例如,平面的對(duì)稱性)可以是其自身的對(duì)稱元素,但在這樣的實(shí)施例中,選定面在沒有對(duì)稱面的情況下沒有被留下。
本發(fā)明的實(shí)施例還存儲(chǔ)在每個(gè)對(duì)稱區(qū)中所包含的每個(gè)元素(面、邊緣或頂點(diǎn))的對(duì)應(yīng)性。這實(shí)現(xiàn)在兩個(gè)方向上(例如,從右到左和從左到右)跨對(duì)稱平面應(yīng)用修改的能力。許多約束可以被定義為具有相同或不同組的選定面的網(wǎng)格。約束以有效的方式被存儲(chǔ),以使得可以執(zhí)行所有情形,并且本發(fā)明可以通過(guò)對(duì)網(wǎng)格的任何種類的修改來(lái)維持兩個(gè)對(duì)稱區(qū)定義。這意味著通過(guò)細(xì)分網(wǎng)格的所有修改來(lái)保持兩組面、邊緣和/或頂點(diǎn)。在一些實(shí)施例中,還可以存儲(chǔ)右面的輪廓、左面的輪廓、以及右和左輪廓的每個(gè)邊緣的邊界面。關(guān)于圖12在下文中描述了關(guān)于前面提到的存儲(chǔ)的另外的細(xì)節(jié)。
本發(fā)明的實(shí)施例可以利用用于識(shí)別有限元素網(wǎng)格的元素的唯一標(biāo)記系統(tǒng)。圖12描繪了在具有網(wǎng)格1220b上所描繪的標(biāo)記的有限元素網(wǎng)格1220a上的一個(gè)這樣的示例性標(biāo)記系統(tǒng)。在實(shí)施例中,可以在網(wǎng)格中使用標(biāo)記(例如數(shù)字)來(lái)識(shí)別面和頂點(diǎn)。圖12描繪了具有識(shí)別頂點(diǎn)的唯一數(shù)字的網(wǎng)格1220b。面可以類似地被標(biāo)記。例如,可以用標(biāo)記17來(lái)識(shí)別由頂點(diǎn)5、6、7和8劃界的面1221。在又一實(shí)施例中,可以使用給面劃界的頂點(diǎn)來(lái)識(shí)別面。類似地,邊緣可以利用唯一的標(biāo)識(shí)符被識(shí)別或者邊緣可以由它們的兩個(gè)頂點(diǎn)標(biāo)記來(lái)識(shí)別。例如,邊緣1222可以被識(shí)別為邊緣(1,2)。
在這個(gè)示例性實(shí)施例中,存儲(chǔ)分別與頂點(diǎn)(11,12,9,10)和(5,8,4,1)有關(guān)的右輪廓1223和左輪廓1224。類似地,實(shí)施例可以對(duì)輪廓1223和1224的相對(duì)邊界面完成相同的事。本發(fā)明的實(shí)施例還可以存儲(chǔ)每對(duì)對(duì)稱頂點(diǎn)以及每對(duì)對(duì)稱面。例如,可以存儲(chǔ)所有對(duì)的對(duì)稱頂點(diǎn)(7,13)、(6,16)、(3,14)、(2,15)、(8,12)、(5,11)、(4,9)和(1,10)。還可以類似地存儲(chǔ)除其它面以外的對(duì)稱面,例如面(17,19)和(1221,1225)。實(shí)施例可以對(duì)每個(gè)邊緣使用唯一標(biāo)識(shí)符,或每個(gè)邊緣可以由其相應(yīng)的頂點(diǎn)標(biāo)記識(shí)別。例如,左輪廓包括邊緣(5,8)、邊緣(8,4)、邊緣(4,1)和邊緣(1,5),并且右輪廓包括邊緣(11,12)、邊緣(12,9)、邊緣(9,10)和邊緣(10,11)。
圖13a-k描繪了利用本發(fā)明的實(shí)施例實(shí)現(xiàn)的各種拓?fù)浣Y(jié)構(gòu)變化。圖13a描繪了原始受約束的網(wǎng)格1330。網(wǎng)格1330關(guān)于平面1340受約束。因此,除了其它方面,左側(cè)區(qū)1343包括面1331、1332、1335和1338并且右側(cè)區(qū)1344包括面1333、1337、1334和1336。此外,左側(cè)區(qū)1343包括邊緣1341并且右側(cè)區(qū)包括邊緣1342。雖然網(wǎng)格1330和約束應(yīng)用于網(wǎng)格1330的附加有限元素,但僅需要描述圖13b-k中所描繪的各種拓?fù)浣Y(jié)構(gòu)變化的那些元素已經(jīng)被分配附圖標(biāo)記。
圖13b分別描繪了面1335和1336的擠壓1350和1351。根據(jù)實(shí)施例,例如用戶可以擠壓面1335從而產(chǎn)生擠壓1350,并且隨后,因?yàn)榫W(wǎng)格1330受到如本文中所述的對(duì)稱約束,所以在對(duì)應(yīng)的面1336上自動(dòng)地執(zhí)行擠壓1351。圖13c分別類似地描繪了面1331、1332、1333和1334的擠壓1352、1353、1354和1355。再次,通過(guò)利用本發(fā)明的實(shí)施例,用戶可以在受到約束的一個(gè)區(qū)上執(zhí)行擠壓,例如屬于右側(cè)區(qū)1344的面1333和1334,并且有限元素網(wǎng)格在拓?fù)浣Y(jié)構(gòu)上被自動(dòng)對(duì)稱地修改,從而產(chǎn)生擠壓1352和1353。
圖13d描繪了邊緣1341的垂直邊緣切割1357。這進(jìn)而產(chǎn)生了邊緣1342的拓?fù)浣Y(jié)構(gòu)上的對(duì)稱邊緣切割1358。如本文中所述,本發(fā)明的實(shí)施例包括用于在約束與設(shè)計(jì)意圖相矛盾的情況下忽略約束的功能。這例如可能發(fā)生在用戶同時(shí)修改受到約束的兩個(gè)區(qū)中的元素時(shí)。如圖13e中所示的,一個(gè)這樣的示例是水平切割整個(gè)網(wǎng)格1330e的水平切割1360。當(dāng)執(zhí)行這樣的操作時(shí),忽略約束。在執(zhí)行切割1360之后,在其它情況下出現(xiàn)不正確的結(jié)果,嘗試對(duì)稱地執(zhí)行切割1360。然而,如果例如只有左側(cè)區(qū)被切割,即在平面1340e的左側(cè)的元素上執(zhí)行切割,那么根據(jù)本發(fā)明的實(shí)施例的原理,然后對(duì)稱地執(zhí)行切割,從而切割平面1340e的右側(cè)的元素。
圖13f描繪了可以使用本發(fā)明的實(shí)施例執(zhí)行的又一拓?fù)浣Y(jié)構(gòu)操縱。在圖13f中,細(xì)分1361的原始網(wǎng)格1330的面1338,并且作為響應(yīng),在面1337上對(duì)稱地執(zhí)行該細(xì)分從而產(chǎn)生被細(xì)分的面1362。
圖13g描繪了右側(cè)1344被斜邊切割的情況下的示例。斜邊切割操作用至少兩個(gè)邊緣(或邊緣的組)代替邊緣(或邊緣的組)以便于“擠壓”所產(chǎn)生的表面。在圖13g中,右側(cè)1344g被斜邊切割并且這導(dǎo)致左側(cè)1343被對(duì)稱地斜邊切割,如左側(cè)1343g所示。圖13h和13i描繪了分別在面1338和1337上執(zhí)行的斜邊切割1363、1364、和1365、和1366。還進(jìn)一步地,另一示例性拓?fù)浣Y(jié)構(gòu)變化是面移除。圖13j和13k示出了被去除的原始網(wǎng)格1330的面1334。如針對(duì)本文中所述的其它示例,在去除面1334之后,去除面1331從而導(dǎo)致網(wǎng)格在拓?fù)浣Y(jié)構(gòu)上被對(duì)稱地修改。
本發(fā)明的實(shí)施例允許用戶快速和容易地創(chuàng)建具有對(duì)應(yīng)于網(wǎng)格的一些部分或完整的網(wǎng)格的區(qū)的3d細(xì)分表面。這可以極大地減少執(zhí)行對(duì)有限元素網(wǎng)格的設(shè)計(jì)變化所花費(fèi)的時(shí)間。圖14示出了在約束創(chuàng)建時(shí)的原始有限元素網(wǎng)格1440a和在設(shè)計(jì)變化被執(zhí)行之后的網(wǎng)格1440b的示例。在圖14中,網(wǎng)格1440a被定義為具有應(yīng)用于整個(gè)網(wǎng)格1440a的對(duì)稱約束。進(jìn)而,當(dāng)在網(wǎng)格上執(zhí)行設(shè)計(jì)變化時(shí),它們又只需要由用戶在對(duì)稱約束的一側(cè)上執(zhí)行。因此,加速設(shè)計(jì)過(guò)程以更快地產(chǎn)生經(jīng)修改的網(wǎng)格1440b。此外,這可以加速完成3dcad模型1441。
如在本文中所述的,本發(fā)明的實(shí)施例的方法可以以定義對(duì)稱約束開始??梢酝ㄟ^(guò)選擇用戶想要維持為對(duì)稱的區(qū)的面來(lái)定義對(duì)稱約束。在定義約束之后,用戶可以開始整個(gè)形狀的修改。圖15a示出了網(wǎng)格1550,其中選擇了左側(cè)1551上的面。默認(rèn)平面zx1554用于使約束的左側(cè)1551與約束的右側(cè)1555分離。在選擇面并識(shí)別平面(這可以包括使用默認(rèn)平面1554)之后,計(jì)算輪廓1552和1553。在實(shí)施例中,反饋被提供給用戶以指示所選擇的面和對(duì)應(yīng)的面可以被識(shí)別出,以便于創(chuàng)建對(duì)稱區(qū)。在實(shí)施例中,可以通過(guò)彈出消息或通過(guò)視覺指示(例如突出顯示輪廓1552和1553)來(lái)提供這個(gè)反饋。此外,本發(fā)明的實(shí)施例可以通過(guò)本領(lǐng)域中已知的任何手段向用戶提供進(jìn)一步的反饋:約束被成功地創(chuàng)建。當(dāng)約束被成功地創(chuàng)建時(shí),每個(gè)面、邊緣和頂點(diǎn)具有其自身的對(duì)應(yīng)的面、邊緣和頂點(diǎn)。此外,申請(qǐng)人要注意到,雖然在整個(gè)說(shuō)明書中使用了術(shù)語(yǔ)“左”和“右”以便于描述平面的與另一側(cè)對(duì)稱的一側(cè)上的有限元素,但實(shí)施例不被這樣限制,并且實(shí)施例可以利用跨任何形狀/方向定義的對(duì)稱約束。
圖15b描繪了網(wǎng)格1550,其中,唯一標(biāo)記系統(tǒng)用于識(shí)別網(wǎng)格1550的各種有限元素。圖15c示出了在邊緣被切割之后的網(wǎng)格1550。在該示例中,邊緣(5,1)被切割,對(duì)對(duì)應(yīng)的對(duì)稱邊緣(11,10)做相同的事。在輪廓中,邊緣(5,1)被兩個(gè)邊緣(5,18)和(18,1)替代,并且邊緣(11,10)被兩個(gè)邊緣(11,17)和(17,10)替代。通過(guò)更新輪廓,本發(fā)明的實(shí)施例可以響應(yīng)于拓?fù)浣Y(jié)構(gòu)變化而更新受到對(duì)稱約束的網(wǎng)格的元素和與元素相關(guān)的所存儲(chǔ)的數(shù)據(jù)。
圖15d描繪了與圖15c類似的功能,然而示出了在已經(jīng)執(zhí)行擠壓時(shí)的功能。在圖15c中,邊緣(1,4)被三個(gè)邊緣(1,17)、(17,20)、以及(20,4)替代。同樣,對(duì)對(duì)稱邊緣(10,9)做相同的事,對(duì)稱邊緣(10,9)被三個(gè)邊緣(10,24)、(24,23)和(23,9)替代。
本發(fā)明的實(shí)施例提供了優(yōu)于提供約束功能的現(xiàn)有方法的多個(gè)優(yōu)點(diǎn)。一個(gè)這樣的優(yōu)點(diǎn)是用于吸收拓?fù)浣Y(jié)構(gòu)變化而保持對(duì)稱約束的能力。在實(shí)施例中,這通過(guò)重新構(gòu)造兩個(gè)邊緣輪廓和受約束的相關(guān)聯(lián)的邊界面來(lái)實(shí)現(xiàn)。在這樣的實(shí)施例中,邊緣輪廓被當(dāng)作頂點(diǎn)鏈并且總是存在于新的網(wǎng)格(即,在操作之后的網(wǎng)格)中頂點(diǎn)被過(guò)濾。根據(jù)這樣的實(shí)施例,當(dāng)對(duì)輪廓進(jìn)行修改時(shí),重新得到由頂點(diǎn)鏈組成的新輪廓。一旦這被完成,在操作之前處于輪廓中的頂點(diǎn)從計(jì)算中被移除(即,過(guò)濾)以重新得到被插入到新的輪廓中作為操作的結(jié)果的新頂點(diǎn)。根據(jù)這一點(diǎn),對(duì)另一側(cè)上的對(duì)應(yīng)的成對(duì)頂點(diǎn)進(jìn)行識(shí)別以更新其它輪廓。根據(jù)實(shí)施例,當(dāng)在受到對(duì)稱約束的網(wǎng)格上執(zhí)行操作時(shí),如果早先的輪廓的兩個(gè)頂點(diǎn)不是新網(wǎng)格的邊緣的部分(即,不再是鄰近的),那么填充兩個(gè)頂點(diǎn)之間的空間以便于使輪廓閉合。本發(fā)明的實(shí)施例可以使用兩個(gè)頂點(diǎn)之間的最短路徑來(lái)填充輪廓。這樣的方法有助于使對(duì)稱輪廓以及整個(gè)“對(duì)稱區(qū)”穩(wěn)定,因?yàn)檫@些區(qū)可以由從輪廓到區(qū)中的所有元素的傳播來(lái)定義。
本發(fā)明的實(shí)施例提供了用于維持通過(guò)所有拓?fù)浣Y(jié)構(gòu)變化的約束的功能。實(shí)施例還整合了所有的新的頂點(diǎn)、面和邊緣。例如,如關(guān)于圖15a-d在上文中所述的,原始輪廓(及相關(guān)聯(lián)的面)被輪廓替代,其中每個(gè)邊緣已經(jīng)被一個(gè)或多個(gè)邊緣替代、被移除、或保持不變。對(duì)于被另一面替代的、被去除的、或保持不變的邊界面也是如此。
在本發(fā)明的示例性實(shí)施例中,約束的產(chǎn)生修改了所存儲(chǔ)的網(wǎng)格的模型,但不會(huì)修改網(wǎng)格的形狀。以這種方式,約束成為原始網(wǎng)格的部分。因此,利用實(shí)施例的原理的網(wǎng)格可以被交互式地識(shí)別。例如,在非對(duì)稱的網(wǎng)格的元素(面、邊緣或頂點(diǎn))可以通過(guò)其對(duì)稱元素來(lái)進(jìn)行修改的情況下,例如在擠壓面的情況下;或者如果受約束的元素在一起被修改,則維持拓?fù)浣Y(jié)構(gòu)對(duì)稱,但約束與非對(duì)稱元素一起繼續(xù)。這樣的示例在圖16中被描繪,其中網(wǎng)格1660具有約束以及非對(duì)稱元素,例如元素1661和1662。
圖17是根據(jù)本發(fā)明的實(shí)施例的用于修改有限元素網(wǎng)格的計(jì)算機(jī)自動(dòng)化的方法1770的流程圖。當(dāng)用戶開始在步驟1772通過(guò)選擇面、邊緣和/或選擇/定義對(duì)稱平面時(shí),方法1770開始1771。用戶可以根據(jù)本領(lǐng)域中已知的任何方法來(lái)選擇面/邊緣/頂點(diǎn)/平面。例如,通過(guò)使用鼠標(biāo)在顯示器上選擇面。替代地,用戶可以在觸摸屏上或通過(guò)輸入面標(biāo)記或位置來(lái)選擇面。類似的方法可以用于平面選擇和定義。當(dāng)平面被定義或選擇時(shí),方法1770繼續(xù)進(jìn)行以在步驟1776識(shí)別兩個(gè)輪廓。當(dāng)面被選擇時(shí),接著在步驟1773確定是否存在具有自由邊緣的面的兩個(gè)封閉和分離的組。如果沒有具有自由邊緣的兩個(gè)分離且封閉的組,則在步驟1774默認(rèn)使用平面zx。如果存在具有自由邊緣的兩個(gè)分離且封閉的組,則在步驟1775在面的兩個(gè)區(qū)之間計(jì)算組之間的正中平面。在通過(guò)步驟1773-1775繼續(xù)進(jìn)行或在步驟1772定義平面之后,方法1770繼續(xù)在步驟1776識(shí)別對(duì)稱約束的兩個(gè)輪廓。使用受到如下文中所述的約束的面和平面識(shí)別輪廓。兩個(gè)輪廓是受到約束的在對(duì)稱平面的相對(duì)側(cè)上的網(wǎng)格元素的輪廓線。根據(jù)實(shí)施例,輪廓由選定區(qū)的“邊界”邊緣組成。根據(jù)又一實(shí)施例,當(dāng)在如本文中所述的拓?fù)浣Y(jié)構(gòu)修改期間插入新的頂點(diǎn)時(shí),每個(gè)輪廓由鏈接點(diǎn)組成并且由兩個(gè)頂點(diǎn)之間的最接近的路徑定義。兩個(gè)輪廓是受到約束的在對(duì)稱平面的相對(duì)側(cè)上的網(wǎng)格元素的輪廓線。在圖15中示出并且在上文中示出了示例性輪廓1552和1553。在步驟1776識(shí)別出輪廓之后,在步驟1777確定頂點(diǎn)、面和邊緣的所有對(duì)稱對(duì)。可以使用本文中所述的任何方法(例如,在上文中關(guān)于圖11所述的近鄰傳播方法)在步驟1777識(shí)別對(duì)稱對(duì)。進(jìn)而,步驟1776的所識(shí)別的輪廓和步驟1777的所計(jì)算的對(duì)稱對(duì)又接著被測(cè)試以確定正確的約束是否可在步驟1778被定義。根據(jù)實(shí)施例,測(cè)試過(guò)程瀏覽元素(例如面、邊緣和頂點(diǎn))的組,并且確定每個(gè)元素是否具有一對(duì)。在步驟1778的測(cè)試確定是否存在具有產(chǎn)生兩個(gè)相似組的面、邊緣和頂點(diǎn)的兩組邊界面的兩個(gè)輪廓。換句話說(shuō),測(cè)試確定每個(gè)面、邊緣和頂點(diǎn)是否具有對(duì)應(yīng)的面、邊緣和頂點(diǎn)。當(dāng)滿足步驟1778的條件時(shí),在步驟1779創(chuàng)建約束,當(dāng)不滿足條件時(shí),方法1770重新開始1771。在替代的實(shí)施例中,用戶可以不接受失敗的測(cè)試并在測(cè)試失敗時(shí)識(shí)別成對(duì)的元素。
圖18是根據(jù)示例性實(shí)施例的原理修改具有對(duì)稱約束的網(wǎng)格的計(jì)算機(jī)實(shí)現(xiàn)的方法1880的流程圖。方法1880開始1881并在步驟1882確定被修改(例如斜邊切割)的元素或多個(gè)元素是否具有對(duì)稱性。因?yàn)榉椒?880的實(shí)施例允許用戶一次修改多個(gè)元素,對(duì)在每個(gè)對(duì)稱區(qū)中修改的每個(gè)元素進(jìn)行測(cè)試以確定其是否具有適當(dāng)?shù)膶?duì)稱性。該方法重新開始1881,如果每個(gè)元素不具有對(duì)稱性。然而,當(dāng)每個(gè)約束的每個(gè)選定元素具有對(duì)稱性時(shí),在步驟1883計(jì)算每個(gè)元素的對(duì)稱變換,并且進(jìn)而在步驟1884執(zhí)行每個(gè)對(duì)稱變換。可以使用本領(lǐng)域中已知的原理來(lái)計(jì)算對(duì)稱變換。此外,在實(shí)施例中,對(duì)于每個(gè)修改的頂點(diǎn)、邊緣或面,重新得到變換t(例如,移動(dòng)矢量、變換矩陣、加權(quán)值)。進(jìn)而,計(jì)算局部對(duì)稱平面(成對(duì)點(diǎn)的中點(diǎn)、從質(zhì)心計(jì)算的對(duì)稱平面和由兩個(gè)成對(duì)點(diǎn)定義的法線)。隨后,對(duì)應(yīng)的對(duì)稱變換(矩陣)應(yīng)用于這個(gè)原始變換t以計(jì)算要被應(yīng)用于成對(duì)元素(頂點(diǎn)或邊緣或面)的對(duì)稱修改。
圖19是根據(jù)本發(fā)明的實(shí)施例的可以用于執(zhí)行fem修改的基于計(jì)算機(jī)的系統(tǒng)1930的簡(jiǎn)化方框圖。系統(tǒng)1930包括總線1935??偩€1935用作系統(tǒng)1930的各種部件之間的互連。連接到總線1930的是用于將各種輸入和輸出設(shè)備(例如,鍵盤、鼠標(biāo)、顯示器、揚(yáng)聲器等)連接到系統(tǒng)1930的輸入/輸出設(shè)備接口1938。中央處理單元(cpu)1932連接到總線1935并且提供計(jì)算機(jī)指令的執(zhí)行。存儲(chǔ)器1937為執(zhí)行計(jì)算機(jī)指令提供數(shù)據(jù)的易失性存儲(chǔ)。存儲(chǔ)器1936為軟件指令提供非易失性存儲(chǔ),例如操作系統(tǒng)(未示出)。系統(tǒng)1930還包括用于連接到本領(lǐng)域中已知的任何種類的網(wǎng)絡(luò)(包括廣域網(wǎng)(wan)和局域網(wǎng)(lan))的網(wǎng)絡(luò)接口1931。
應(yīng)當(dāng)理解的是,可以用很多不同的方式實(shí)現(xiàn)本文中所述的示例性實(shí)施例。在一些實(shí)例中,本文中所述的各種方法和機(jī)器均可以由物理、虛擬或混合通用計(jì)算機(jī)(例如,計(jì)算機(jī)系統(tǒng)1930)或計(jì)算機(jī)網(wǎng)絡(luò)環(huán)境(例如,以下關(guān)于圖20描述的計(jì)算機(jī)環(huán)境2000)來(lái)實(shí)現(xiàn)。可以例如通過(guò)將軟件指令載入存儲(chǔ)器1937或非易失性儲(chǔ)存器1936中以用于由cpu1932執(zhí)行來(lái)將計(jì)算機(jī)系統(tǒng)1930轉(zhuǎn)換為執(zhí)行本文中所述的方法(例如660、1770和/或1880)的機(jī)器。本領(lǐng)域中的普通技術(shù)人員應(yīng)當(dāng)進(jìn)一步理解,系統(tǒng)1930及其各種部件可以被配置為執(zhí)行本文中所述的本發(fā)明的任何實(shí)施例。此外,系統(tǒng)1930可以實(shí)現(xiàn)利用操作地在內(nèi)部或在外部耦合到系統(tǒng)1930的硬件、軟件和固件模塊的任何組合的本文中所述的各種實(shí)施例。
圖20示出了可以實(shí)現(xiàn)本發(fā)明的實(shí)施例的計(jì)算機(jī)網(wǎng)絡(luò)環(huán)境2000。在計(jì)算機(jī)網(wǎng)絡(luò)環(huán)境2000中,服務(wù)器2001通過(guò)通信網(wǎng)絡(luò)2002鏈接到客戶端2003a-n。環(huán)境2000可以用于允許客戶端2003a-n單獨(dú)地或與服務(wù)器2001組合地來(lái)執(zhí)行本文中所述的任何方法(例如,660、1770和/或1880)。
可以采用硬件、固件或軟件的形式來(lái)實(shí)現(xiàn)實(shí)施例或其方面。如果在軟件中實(shí)現(xiàn),則軟件可以存儲(chǔ)在被配置為使處理器能夠載入軟件或其指令的子集的任何非暫態(tài)計(jì)算機(jī)可讀介質(zhì)。處理器隨后執(zhí)行指令并被配置為操作或使得裝置以如本文中所述的方式進(jìn)行操作。
此外,固件、軟件、例程或指令在本文中可以被描述為執(zhí)行數(shù)據(jù)處理器的某些動(dòng)作和/或功能。然而,應(yīng)當(dāng)認(rèn)識(shí)到,在本文中包含的這樣的描述僅僅是為了方便,并且這樣的動(dòng)作事實(shí)上由計(jì)算設(shè)備、處理器、控制器或執(zhí)行固件、軟件、例程、指令等的其它設(shè)備產(chǎn)生。
應(yīng)當(dāng)理解,流程圖、方框圖和網(wǎng)絡(luò)圖可以包括更多或更少的元件,這些元件被不同地布置或被不同地表示。但還應(yīng)當(dāng)理解,某些實(shí)施方式可以規(guī)定塊和網(wǎng)絡(luò)圖以及塊和網(wǎng)絡(luò)圖的數(shù)量,從而示出以特定的方式實(shí)現(xiàn)的實(shí)施例的執(zhí)行。
因此,還可以用各種計(jì)算機(jī)架構(gòu)、物理、虛擬、云計(jì)算機(jī)和/或其一些組合來(lái)實(shí)現(xiàn)另外的實(shí)施例,并且因此本文中所述的數(shù)據(jù)處理器旨在僅出于說(shuō)明的目的而不是作為實(shí)施例的限制。
雖然本發(fā)明已經(jīng)參考其示例性實(shí)施例被特別示出和描述,但本領(lǐng)域中的技術(shù)人員將理解,可以在形式和細(xì)節(jié)上做出各種改變而不偏離由所附權(quán)利要求涵蓋的本發(fā)明的范圍。