“頂級系統(tǒng)”公司論壇上的幾何核心 RGK
“頂級系統(tǒng)”公司論壇上的幾何核心 RGK ?
? ? ? ? ?

? ? ? ??
在5月24日舉行的“頂級系統(tǒng)”論壇上,主要會議之一專門介紹了“頂級系統(tǒng)”公司的產(chǎn)品——RGK幾何核心。會議由公司開發(fā)總監(jiān) 謝爾蓋·科茲洛夫 和 3D 建模技術(shù)開發(fā)總監(jiān) 列昂尼德*巴拉諾夫 主持。他是 RGK 幾何核心開發(fā)小組的負(fù)責(zé)人。?
在本節(jié)的第一部分,謝爾蓋·科茲洛夫 講述了幾何核心的創(chuàng)造歷史和現(xiàn)狀。事實(shí)上,幾何核心RGK的開發(fā)早在1984年就開始了,當(dāng)時(shí)莫斯科機(jī)床研究所(后來的 “莫斯科車床工具研究所”)組建了一個(gè)小組,在副教授雷巴科夫的指導(dǎo)下進(jìn)行幾何建模領(lǐng)域的研究和3D核心的開發(fā)。雷巴科夫和蘇濟(jì)洛夫斯基。正是從那時(shí)起,列昂尼德·巴拉諾夫開始以數(shù)學(xué)家程序員的身份從事這項(xiàng)工作,后來在斯坦金完成學(xué)業(yè)后,他領(lǐng)導(dǎo)了這個(gè)小組。工作成果顯著。
1995年,發(fā)布了T-FLEX CAD版本,其中3D建模功能由其自己的幾何內(nèi)核提供。當(dāng)時(shí),該公司沒有足夠的資源來進(jìn)行如此科學(xué)密集且昂貴的開發(fā)。同時(shí),可以授權(quán) ACIS 幾何內(nèi)核,然后是 Parasolid。因此,1996 年,T-FLEX CAD 第 6 版在 ACIS 幾何內(nèi)核上發(fā)布,1998 年第 7 版在 Parasolid 內(nèi)核上發(fā)布。因此,T-FLEX CAD 開發(fā)人員有機(jī)會使用所有主要幾何內(nèi)核并評估其架構(gòu)和功能。
2011年,“莫斯科車床工具研究所”獲得了俄羅斯幾何核心開發(fā)合同,作為國內(nèi)機(jī)床項(xiàng)目開發(fā)的一部分。作為這項(xiàng)工作的積壓工作,采用了“頂級系統(tǒng)”公司的開發(fā)。為了提供最新水平的解決方案,內(nèi)核算法幾乎完全現(xiàn)代化,但保留了主要的實(shí)現(xiàn)方法。2013年合同工作完成后,“頂級系統(tǒng)”并沒有停止RGK的開發(fā)(該產(chǎn)品就是在那時(shí)命名的),而是繼續(xù)開發(fā)。

RGK幾何核心已在"植物標(biāo)本室"項(xiàng)目中得到應(yīng)用,該項(xiàng)目是“頂級系統(tǒng)”根據(jù)高級研究基金會(FPI)的要求于2015-2016年進(jìn)行的,以及數(shù)字企業(yè)(SARUS)項(xiàng)目,其第一階段最近完成“頂級系統(tǒng)”積極參與了該項(xiàng)目的開發(fā)。目前,“頂級系統(tǒng)”已獲得獨(dú)立開發(fā)RGK并將其作為商業(yè)產(chǎn)品推向市場的所有機(jī)會。該產(chǎn)品將同時(shí)交付多個(gè)平臺,包括各種版本的Linux,包括國內(nèi)認(rèn)證版本。該產(chǎn)品計(jì)劃作為用于 C++ 編程語言的類庫以及在終端系統(tǒng)中方便使用所需的所有組件提供。開發(fā)工具包 (SDK) 包括:
可執(zhí)行模塊;
構(gòu)建最終應(yīng)用程序所需的庫和頭文件;
超文本幫助形式的電子手冊文件;
源代碼中的一組示例;
可執(zhí)行程序RGKWorkshop——測試和調(diào)試外殼,既是分析工具又是調(diào)試幾何模型的工具;
RGK模型存儲格式的描述-RGK_XML。
另外,需要注意的是,RGK_XML數(shù)據(jù)存儲格式是開放和指定的。它具有清晰的結(jié)構(gòu),符合組織 RGK 數(shù)據(jù)模型的一般原則。該格式可用于標(biāo)準(zhǔn)化目的,以確保表示這些對象的準(zhǔn)確幾何模型。該部分的第二部分由列昂尼德·巴拉諾夫領(lǐng)導(dǎo)。他談到了構(gòu)建RGK幾何核心數(shù)據(jù)模型的原理、其架構(gòu)特點(diǎn)以及模塊開發(fā)人員必須解決的最復(fù)雜和有趣的任務(wù)。故事附有大量插圖和對比測試演示。RGK 幾何內(nèi)核根據(jù)經(jīng)典邊界表示方案 (B-Rep) 和“精確”幾何形狀提供幾何對象建模 - 使用各種類型的曲線和曲面的解析表示。這種表示允許您以高精度對對象進(jìn)行建模,同時(shí)當(dāng)計(jì)算的精度與模型對象一起存儲時(shí),提供使用容錯(cuò)幾何體的能力。公差幾何精度設(shè)置適用于內(nèi)核代碼中執(zhí)行的所有計(jì)算。即使對于非常復(fù)雜的幾何形狀和源數(shù)據(jù)的低精度,此功能也能夠保持幾何模型的完整性。幾何核提供以下主要功能:
幾何模型的存儲(物體、表面、曲線的幾何/拓?fù)洌?/p>
創(chuàng)建和編輯幾何模型;
幾何模型的標(biāo)識和屬性管理;
控制幾何模型的完整性和質(zhì)量;
幾何模型的測量與分析;
構(gòu)建模型的平面表示(曲面細(xì)分),以便可視化或準(zhǔn)備用于生成計(jì)算 (CAE) 網(wǎng)格的數(shù)據(jù);
預(yù)測和觀點(diǎn)的生成。
可在最終應(yīng)用程序中使用的 RGK 幾何內(nèi)核類提供用于創(chuàng)建和編輯幾何圖形的低級功能,以及內(nèi)核中稱為生成器的高級專用功能。例如,內(nèi)核類庫包含以下生成器:
基元(棱柱、環(huán)面、球體、圓柱體、圓錐體);
運(yùn)動學(xué)操作(拉伸、旋轉(zhuǎn)、沿軌跡、沿截面);
布爾運(yùn)算(全局、局部、選擇性);
各種類型的平滑操作(倒角、邊緣平滑、三面體平滑、面平滑);
殼體/本體位移/加厚操作;
端面錐度操作;
面部去除/替換/變換操作(所謂的直接建模操作);
縫合/切割操作;
復(fù)制/變換實(shí)體的操作,包括沿軸使用不同的比例;
許多低級實(shí)體操作以及許多曲線操作。
RGK 中許多生成器的功能相當(dāng)先進(jìn)。讓我們詳細(xì)討論一下內(nèi)核支持的一些操作的特性。例如,“按軌跡”和“按部分”生成器支持許多相當(dāng)高級的選項(xiàng)??梢詥为?dú)或組合設(shè)置所繪制輪廓的扭轉(zhuǎn)和縮放定律(圖 1),以及設(shè)置多個(gè)軌跡及其同步的各種方式。

此外,還支持運(yùn)動路徑上的中斷處理(圖2.3)。


? ?
在內(nèi)核中構(gòu)造曲面時(shí),要特別注意其質(zhì)量,既要滿足構(gòu)造精度的要求,又要最小化控制點(diǎn)的數(shù)量并規(guī)范參數(shù)化。由于 RGK 開發(fā)人員可以直接訪問可以說是世界上最好的固態(tài)核心 Parasolid 的功能,因此可以進(jìn)行公正的研究和結(jié)果比較。目前,RGK中的表面生成算法的質(zhì)量總體上與該核心相當(dāng),并且還在不斷提高,因?yàn)殚_發(fā)人員當(dāng)前的任務(wù)是實(shí)現(xiàn)與世界上最好的核心的功能對等。在這方面,在開發(fā)過程中,進(jìn)行了大量的研究工作來分析算法的質(zhì)量,并與“重”級的其他競爭解決方案進(jìn)行比較。

眾所周知,無論是在數(shù)學(xué)上還是在算法上,最復(fù)雜的幾何建模問題之一是平滑(圓化)表面的問題。鑒于此,在開發(fā) RGK 內(nèi)核時(shí),特別關(guān)注這一特殊功能。目前,邊緣平滑支持幾乎所有基本形狀控制模式(從所謂的“重型”類系統(tǒng)的功能中得知):恒定和可變半徑的截面;指定寬度,無論是在恒定模式還是可變模式下;具有二階曲線的可變截面(橢圓、拋物線、雙曲線);所有類型平滑的平滑過渡和邊緣保留模式;曲率保持 - G2 平滑度(圖 4);設(shè)置從頂點(diǎn)的縮進(jìn)以進(jìn)行頂點(diǎn)平滑。特別值得注意的是該算法的架構(gòu),它允許在單一形式中同時(shí)支持邊面平滑和三面體平滑,從而提供了算法非常高的靈活性和開發(fā)的可能性。在平滑算法的拓?fù)漪敯粜苑矫嬉呀?jīng)做了很多工作。例如,根據(jù)給定的半徑,算法可以對身體的拓?fù)浣Y(jié)構(gòu)進(jìn)行較大的改變(圖5.6)。


在較小半徑上構(gòu)建較大半徑的平滑是可以接受的。這樣的問題在實(shí)際建模中經(jīng)常出現(xiàn)(圖7)。

支持各種“溢出”,即過渡到平滑的相鄰面,以及必要時(shí)保留邊緣(圖 8-10)。



RGK 平滑算法處理拓?fù)湓赝嘶哪芰χ档锰貏e關(guān)注(圖 11)。

支持平滑重疊的復(fù)雜拓?fù)洌@顯著提高了實(shí)際使用中算法的質(zhì)量(圖12)。

在構(gòu)造變量平滑方面取得了有趣的結(jié)果。特別是,通過重新計(jì)算重疊區(qū)域中的半徑變化規(guī)律來支持重疊平滑序列的處理(圖13)。

當(dāng)然,RGK 算法支持可變半徑的各個(gè)部分(圖 14)。
位移

?? ?
凸面

?? ?


? ?

此外,還開發(fā)了構(gòu)建 n 邊形區(qū)域的平滑“拉動”的數(shù)學(xué)方法(圖 19)。

這些發(fā)展尤其使得解決構(gòu)造具有頂部凹痕(縮進(jìn))的表面的問題成為可能 - 圖20和21。


平滑算法適用于實(shí)體和曲面體 - 在 RGK 中,這些拓?fù)渲g沒有差異(圖 22)。

在RGK核心中,邊緣平滑功能實(shí)際上是通過與邊緣平滑相同的算法來實(shí)現(xiàn)的——唯一的區(qū)別在于頂層接口,但是解決了邊緣平滑的經(jīng)典問題(圖23-25)。



由于RGK內(nèi)核最初是為了與世界上最好的工業(yè)內(nèi)核競爭而開發(fā)的,因此在內(nèi)核工具中添加了重型應(yīng)用系統(tǒng)所需的各種功能,以解決各種特殊問題。例如,構(gòu)建面的斜率的任務(wù)最初被制定為指示任意幾何形狀的固定邊緣以及在操作期間改變主體拓?fù)涞目赡苄缘娜蝿?wù)(圖26)。

當(dāng)然,也支持相對于分型面的斜率,作為更一般設(shè)置的特殊情況(圖 27)。? ?

? ??
另一個(gè)例子:在布爾運(yùn)算中,除了傳統(tǒng)的“全局”運(yùn)算模式(并集、減法和交集)之外,還有局部運(yùn)算模式,應(yīng)用程序可以指定哪些面執(zhí)行選擇性布爾運(yùn)算,并能夠選擇原始實(shí)體中將保留的部分作為結(jié)果。此外,還提供了廣義布爾運(yùn)算,可以生成表示沿面和邊緣彼此接觸的物體的拓?fù)淠P?。還需要注意的是,布爾運(yùn)算適用于實(shí)體和曲面體及其組合(圖 28-32)。

? ?




布爾運(yùn)算工具集支持處理實(shí)體實(shí)例(實(shí)例)的功能 - 用于優(yōu)化實(shí)體數(shù)組上的布爾運(yùn)算的技術(shù),這些實(shí)體的幾何形狀僅在實(shí)例在空間中的位置上有所不同。此外,當(dāng)元素沿給定面倍增時(shí),還支持“圖案化”操作(圖 33)。

多線程計(jì)算在幾何核算法中被廣泛且積極地使用。該功能從一開始就內(nèi)置于內(nèi)核算法中,因?yàn)樗翘岣咦罱K應(yīng)用程序整體效率的主要工具之一。同時(shí),RGK 支持計(jì)算的內(nèi)部并行化(當(dāng)自動啟動并行線程時(shí))和外部并行化(當(dāng)在內(nèi)核函數(shù)之外的應(yīng)用程序代碼中創(chuàng)建并行線程時(shí))。與現(xiàn)有的幾何內(nèi)核相比,并行計(jì)算使得在許多場景中獲得性能的倍數(shù)提升成為可能(圖34、35)。


在大多數(shù)其他計(jì)算密集型任務(wù)中也觀察到類似的行為。特別是檢查裝配體中物體相交、計(jì)算距離以及用移除的不可見線構(gòu)建投影的問題(圖 36)。


RGK開發(fā)套件(SDK)現(xiàn)已準(zhǔn)備好交給第三方開發(fā)者試用。那些希望嘗試 RGK 的人可以聯(lián)系 “頂級系統(tǒng)”。除了內(nèi)核本身的工作之外,相關(guān)工作也在 T-FLEX CAD 17 中完成。特別是,現(xiàn)在通過系統(tǒng)用戶界面和使用 Open API 支持 RGK (RGK_XML) 格式作為導(dǎo)入/導(dǎo)出功能的一部分。此外,還可以使用 T-FLEX CAD Open API 中的新功能來訪問 RGK 格式的模型對象(實(shí)體、曲線)。系統(tǒng)的這些功能可以讓您以最方便的方式獲取RGK格式的CAD系統(tǒng)的幾何對象。最新的 T-FLEX CAD 17 更新支持這些新功能。核心工作正在高速進(jìn)行,“頂級系統(tǒng)”公司給自己設(shè)定的任務(wù)是盡快達(dá)到幾何建模領(lǐng)域現(xiàn)有西方世界領(lǐng)先者的水平,并可能超越這一水平。