C3D 的幾何核心是建立設計系統 ( CAD ) 及其應用程式、計算系統 (CAE)、為 CNC 機器準備控制程式的系統 (CAM) 以及建模工藝流程的關鍵元件。從 1995 年的開發到 2012 年,Ascon 專門使用這個核心來滿足自己的需求,作為CAD KOMPAS-3D 的一個元件。2012 年,Ascon 開放了 C3D 核心進行第三方授權。核心的開發和市場推廣由 Ascon的成員C3D Labs 進行,該實驗室於 2013 年成為斯科爾科沃的居民。
該解決方案包含在數字科學部的“俄羅斯電子計算機和資料庫程式統一登記冊”中。
幾何建模的核心:
Geometric Modeling Package (也稱為 Geometric Core)是一組允許您使用幾何(如實體)建模功能的API。許多領先的CAD系統(如CATIA、Pro/E、NX)都是建立在它們自己的幾何核心(分別為CGM、GRANITE和Parasolid)的基礎上,而其他的(SolidWorks、T-FLEX、ADEM)等)是建立在許可幾何核心的基礎上的。流行的商業核心(用於大多數 CAD 系統)有Parasolid(來自Siemens PLM Software)、ACIS(來自Spatial Corp.,Dassault Systèmes的子公司)和 GRANITE ( PTC )。Open CASCADE核心在開源中免費分發。國內華雲三維DGM
只有來自生產尖端裝置和武器的國家的大公司才有這樣的核心——美國、法國、德國和中國,俄羅斯,日本幾個國家,”MSTU Stankin 工程中心的總經理 Sergey Kuraksin 告訴 Izvestia。- 在俄羅斯,90% 的情況下,使用西方程式,在外國核心的基礎上建立,但我們沒有自己的核心供國內開發人員使用。
1.核心是什麼?
3D 建模在背後擁有30 多年的經驗。歷史。並非所有提出的想法都富有成效。並非所有 3D 建模公司都能在市場動盪中倖存下來。但最好的經驗是在稱為 3D 建模核心的軟體元件中獲得的,它現在是幾乎所有 CAD(以及 CAE 和 CAM)的基礎。這些元件要麼由工程軟體開發人員自己設計、編碼和維護,要麼從第三方技術供應商處獲得許可。3D 核心是構建任何現代 CAD 建築的基礎。其他一切都取決於這個基礎——各種工具的能力、它們的效能、抗錯誤能力,甚至系統的整體智慧。
從程式設計師的角度來看,幾何核心是一個函式/類庫,用於建立幾何物件(點、線段/圓弧/曲線、一塊曲面、實體),改變它們的形狀和大小,建立基於幾何物件的新物件他們,在計算機螢幕上視覺化模型並與其他程式交換 3D 資料。核心函式的列表可以壓縮成一句話,但它們的實現需要幾十個幾百人年的時間。事實是,在每個基本操作(例如 NURBS 類的兩個曲面的交集)背後都有一個計算演算法,該演算法的實現和除錯是一項非常費力的任務,需要對計算數學裝置的無懈可擊的知識和學科領域的專業知識。
並非所有 CAD 開發人員(尤其是 CAE 和 CAM)都準備好在底層技術上進行如此大量的投資,因此他們中的大多數人更願意從第三方製造商(有時從他們的直接競爭對手那裡)獲得現成的 3D 核心的許可),定期向核心開發公司付款(通常包括為每份售出的最終產品支付一定金額)。作為回報,他們有機會使用已經在其他系統中“測試過”的核心,因此它具有豐富的功能和高度的可靠性。最後,透過採用現成的核心,CAD 開發人員將能夠快速將其軟體產品推向市場。有時這個因素是決定性的——如果你的產品釋出晚了一兩年,市場可能會被競爭對手佔領。最引人注目的例子是 MCAD(機械 CAD)SolidWorks 的釋出,它成為世界上第一個 Windows 平臺的引數化實體建模系統,並且在銷售許可數量方面仍然是 MCAD(機械工程)行業的絕對領導者.這條道路隨後被許多其他成功系統的開發人員遵循,包括俄羅斯公司 ADEM 和 Top Systems。
基於 Parasolid 核心的 T-FLEX CAD(頂級系統)
然而,在 CAD 世界中,有少數公司優先考慮完全控制原始碼的可能性、及時修復錯誤和增強功能、快速移植到新平臺,因此準備為此付出代價。自己的資源。該集團包括收入數十億美元的 CAD 市場的四大領導者(達索、Autodesk、西門子和 PTC)和俄羅斯開發商 ASKON以及華雲三維:CrownCAD。
KOMPAS-3D (ASCON),基於自己的核心建立
CrownCD (DGM),基於自己的核心建立
下表列出了相當完整的開發人員示例列表,包括第一類和第二類。它表明,獲得許可最多的核心是 ACIS(由 Dassault Systemes 的子公司 Spatial 開發和支援)和 Parasolid(Siemens PLM Software)。
Продукт |
Производитель |
Область |
3D-ядро |
4MCAD IntelliCAD |
4M S.A., Греция |
CAD, AEC |
Open CASCADE Technology |
Adams |
MSC Software, США |
CAE |
Parasolid |
ADEM |
Группа компаний ADEM, Россия-Израиль-Германия |
CAD, CAM, CAPP |
ACIS |
ADINA Modeler |
ADINA R&D Inc., США |
CAE |
Parasolid и Open CASCADE Technology |
Alibre Design |
3D Systems, США |
MCAD |
ACIS |
Allplan |
Nemetschek AG, Германия |
AEC/BIM |
SMLib |
AMPSolid |
AMPS Technologies, США |
CAE |
ACIS |
ANSYS |
ANSYS Inc., США |
CAE |
ACIS и Parasolid |
APM Studio |
НТЦ АПМ, Россия |
MCAD |
Собственное (APM Engine) |
ArchiCAD |
Graphisoft, Венгрия |
AEC/BIM |
Собственное |
ARES |
Graebert, Германия |
CAD |
ACIS |
Ashlar-Vellum Cobalt, Xenon, Argon |
Ashlar-Vellum, США |
MCAD |
ACIS |
AutoCAD |
Autodesk, США |
CAD, AEC, GIS |
Собственное (ASM), совместимое с ACIS |
Autodesk Inventor |
Autodesk, США |
MCAD |
Собственное (ASM), совместимое с ACIS |
Autodesk Moldflow |
Autodesk, США |
CAE |
Parasolid |
Autodesk Revit Architecture |
Autodesk, США |
AEC/BIM |
Собственное (ASM), совместимое с ACIS |
bonzai3d |
AutoDesSys, США |
CAD |
ACIS в комбинации с собственным ядром |
Bricscad |
Bricsys NV, Бельгия |
AEC, MCAD |
ACIS |
BtoCAD |
YuanFang Software Co., Ltd., Китай |
CAD |
ACIS |
CADopia |
CADopia Inc., США |
CAD |
ACIS |
CATIA |
Dassault Systemes, Франция |
CAD/CAM/CAE, AEC |
CGM |
Cimatron |
Cimatron Limited, Израиль |
CAM |
ACIS |
CollabCAD |
National Informatics Centre, Индия |
CAD/CAM |
Open CASCADE Technology |
Creo (прежнее название – Pro/Engineer) |
Parametric Technology, США |
MCAD |
GRANITE |
Creo Elements/Direct Modeling (прежнее название – CoCreate) |
Parametric Technology, США |
CAD |
ACIS |
Edgecam |
Planit Software, Великобритания |
CAM |
Parasolid и GRANITE |
ESPRIT |
DP Technology Corp., США |
CAM |
Parasolid |
form-Z |
AutoDesSys, США |
CAD |
ACIS в комбинации с собственным ядром |
FreeCAD |
Открытый онлайн-проект |
CAD |
Open CASCADE Technology |
GibbsCAM |
Cimatron, Израиль |
CAD/CAM |
Parasolid и GRANITE |
GstarCAD |
Suzhou Gstarsoft Co., Ltd, Китай |
CAD |
ACIS |
IRONCAD |
IronCAD LLC, США |
MCAD |
ACIS и Parasolid |
KeyCreator |
Kubotek USA Inc., Япония-США |
CAD |
ACIS |
Mastercam |
CNC Software, США |
CAD/CAM |
ACIS |
Masterwork |
Tecnos G.A., Италия |
CAM |
Open CASCADE Technology |
MicroStation |
Bentley Systems, США |
AEC |
Parasolid (ранние версии – ACIS) |
Moment of Inspiration |
Triple Squid Software Design, США |
CAD |
SOLIDS++ |
NX |
Siemens PLM Software, Германия |
CAD/CAM/CAE |
Parasolid |
Patran |
MSC Software, США |
CAE |
Parasolid |
Power NURBS |
Ideate Inc., США |
CAD |
SOLIDS++ |
PowerSHAPE |
Delcam plc, Великобритания |
CAD/CAM |
Parasolid |
progeCAD |
progeCAD Srl Uninominale, Италия |
CAD |
ACIS |
Radan |
Planit, Великобритания |
CAD/CAM |
ACIS |
Rhinoceros |
Robert McNeel and Associates, США |
CAD |
SOLIDS++ (отдельные модули) |
Shark LT |
Encore, США |
CAD |
ACIS |
SmartCAM |
SmartCAMcnc |
CAM |
ACIS |
Solid Edge |
Siemens PLM Software, Германия |
MCAD |
Parasolid (ранние версии – ACIS) |
SolidWorks |
Dassault Systemes, Франция |
MCAD |
Parasolid |
SpaceClaim |
SpaceClaim Corp., США |
MCAD |
ACIS |
STAR-CCM+ |
CD-adapco, Великобритания-США |
CAE |
Parasolid |
StruCad |
AceCad Software, Великобритания |
AEC/BIM |
Собственное |
T-FLEX |
Топ Системы, Россия |
MCAD |
Parasolid |
ThinkDesign |
Versata, США |
MCAD |
Собственное ядро |
TopSolid |
Missler Software, Франция |
CAD/CAM |
Parasolid |
TurboCAD |
IMSI/design, США |
AEC, MCAD |
ACIS |
Vectorworks |
Nemetschek, Германия |
AEC |
Parasolid (ранние версии – SMLib) |
ViaCAD 2D/3D |
Encore, США |
CAD |
ACIS |
ZW3D (прежнее название – VX CAD/CAM) |
ZWCAD Software, Китай |
MCAD |
Собственное ядро (VX Overdrive) |
ZWCAD |
ZWCAD Software, Китай |
CAD |
ACIS |
SINOVATION |
華天軟體 |
MCAD |
CRUX V |
CrownCAD |
華雲三維 |
MCAD, |
DGM |
目前,有兩種主要的幾何核心可供許可:Spatial的ACIS(由達索所有)和西門子的Parasolid。這兩個模型都是在1985年左右建立的,並在90年代被CAD公司廣泛採用。Parasolid是達索SolidWorks、西門子NX和Solid Edge、Bentley MicroStation和Nemetschek Vectorworks的核心建模引擎。ACIS用於多種產品中。它是AutoCAD中的核心建模工具,目前仍用於各種產品,包括SpaceClaim、Bricscad和Kubotek。在開發Inventor時,Autodesk正在開發其ShapeManager(ASM)核心,作為ACIS 7.0的分支。Autodesk現在在ASM上構建其產品。有趣的是,由於使用ACIS開發ASM,Autodesk被達索起訴違反合同。達索最終敗訴,因為Autodesk與Spatial的原始交易授予Autodesk進行更改的權利。
達索希望看到CGM成為授權抽獎的主要競爭者,達索也明確表示希望將SolidWorks視為CGM產品,但它必須謹慎行事,以保持對其龐大的SolidWorks使用者群的支援。與此同時,大公司正表現出對專利發動機的偏好。PTC擁有自己的Granite引擎,Nemetschek也在內部構建了自己的大部分技術。
這並不是說這些新的幾何核心實際上都是新的。達索的CGM和阿斯康的C3D開發始於90年代中期。Autodesk的ShapeManager於2001年開發。
CPDA和CIMdata的分析員肯·維斯普里爾(Ken Versprille)一直深入於所謂的核心戰爭。作為CAD先鋒Computervision的研發主管,他負責監督CADD的開發,CADD現在是PTC產品。Versprille今天在聖彼得堡的C3D釋出會上談到了geometry核心的市場。他說,一些小型獨立公司和組織已經構建了幾何核心,但他指出,隨著新的幾何核心的出現,CAD世界正在進入一個新時代。Versprille列舉了幾個有助於推動新引擎需求的因素。CAD供應商面臨著利用平行計算的挑戰。對直接製造方法(包括CAM、鐳射切割、3D列印和FEA)的興趣激增,也促使人們對建立用於製造的3D模型的新方法產生興趣。Versprille還對CAD程式適應點雲資料的能力感興趣。他認為這是未來CAD系統的一項重要功能。
在國內有一個誤傳,就是LEDAS LGS約束求解器並沒有用於KOMPAS-3D,ASCON公司有自己的元件部門,自主的C3D核心和約束求解器,只是選項產品VDM(變分建模)用的是LGS元件,一般發行版不提供。
華雲三維:CrownCAD核心DGM由梅敬成博士團隊2011年開發。
當然,在開發新的 3D 核心時,需要依靠前人的經驗,才能從這次經驗中汲取精華,不再重蹈覆轍。
2.ASCON C3D核心
蘇聯和俄羅斯數學流派獨特的高水平在世界範圍內得到普遍認可,但遺憾的是,其在我國領土上精確實現並獲得全球認可的市場技術實施卻寥寥無幾。此類全球性成就包括 Nikolai Golovanov 與 3D-modeler 相關的工作,該工作多年前出現並開始作為 Askon 的 KOMPAS-3D 的幾何核心,並且最近被廣泛稱為獨立分散式 C3D 核心。
ASCON 是設計和資料管理工程軟體的領先開發商,推出了幾何核心 C3D - 建立設計系統 (CAD) 及其應用程式、計算系統 (CAE)、為 CNC 機器準備控制程式的系統 (CAM) 的關鍵元件),工藝流程建模。
自 1995 年以來,ASCON 一直在開發自己的幾何核心。第一個基於它的計算機輔助設計系統 KOMPAS-3D 5.9 於 2000 年釋出。從那時起,核心一直在不斷髮展,並已達到足以將其作為獨立產品推向 PLM 市場的水平。
C3D 核心的潛在使用者包括需要處理 3D 模型和 2D 圖形的 CAD/CAM/CAE 系統和應用程式的開發人員。其中有供應商公司和大型工業公司的部門,它們為內部需求建立軟體。對於第三方開發人員,使用 ASCON 核心將允許擴充套件其產品的功能,提高其效能和可靠性;基於現有 2D 系統快速建立 3D 建模器;降低自身開發成本。
我們稱幾何核心為構建真實和虛構物件的數值模型的系統部分。我們的核心是一個單獨的模組。它由五組物件和演算法組成:第一組 - 基本物件和演算法,包括向量、矩陣、點、曲線、曲面、用於構建投影、交集、共軛的演算法。
第二組是用於構造物體的物件和演算法。
第三組 - 用於構建三角測量的物件和演算法,計算模型的慣性特徵,檢查其元素的碰撞,構建模型的關聯投影。
第四組 - 幾何約束的物件和演算法,在幾何模型的元素之間建立變分關係。
第五組 - 提供與其他系統資料交換的轉換器的物件和演算法。
核心有什麼特點?什麼標準可以用來比較它們?
首先,幾何核心的特點是功能性,即提供給幾何建模系統的一組功能、運算、計算等能力。其其他特點是操作的速度和可靠性。整個系統的質量很大程度上取決於幾何核心。
對於我們這些開發人員來說,幾何核心的結構性、演算法的簡單性和清晰度非常重要。這些品質使您能夠以最少的時間和其他資源投資來開發核心。
“曲面建模”和“實體建模”介紹:
“曲面建模”和“實體建模”這兩個術語的出現是由於建立模型的順序和方法的一些特點。
在曲面建模中,會根據需要建立和修改曲面,這些曲面描述了建模物件的各個元素。然後,透過縫合,從產生的表面組裝模型。曲面建模使您可以專注於複雜的形狀。在表面建模中,動作是在一組點上執行的,這些點描述了被建模物件的表面。
在實體建模中,工作是透過位於建模物件表面和內部的許多點來完成的。模型構建過程首先建立具有簡單形狀的模型。然後根據需要更改模型。
幾何建模也使用類似於雕刻的建模過程。為此,可以使用任何準備階段的模型:簡單形式的毛坯或幾乎完成的模型。這種可能性在我們的系統中尚未實現。已經為此奠定了基礎。(1)誰需要幾何核?
幾何核心是應用程式解決方案開發人員的軟體元件。它是一種數學方法的軟體實現,用於構建真實和虛構物體的幾何形狀的數值模型,以及控制這些模型的數學方法。數值模型用於執行建模物件的設計 (CAD)、計算 (CAE) 和生產準備 (CAM) 的系統中。
應用解決方案的每個開發人員都面臨著一個選擇:是自己編寫必要的數學演算法還是購買第三方元件。每種方法都有其優點和缺點。
開發人員從使用第三方核心中得到什麼?最重要的是能夠在不解決幾何建模問題的情況下快速增加產品的功能,而是解決應用程式的應用問題。第二個重點是降低產品開發成本,因為數學演算法是計算機輔助設計系統中最複雜、最耗時的部分。
幾何核心的主要消費者是 CAD 開發人員和 3D 封裝製造商。但不要忘記核心對教育機構也很有用!特別是,它將幫助教授學生描述幾何、計算機圖形學、幾何建模和計算幾何等課程,以培養未來的數學家-程式設計師和 CAD 開發人員。對於需要 3D 幾何模型的研究和開發專案,您可以直接使用核心(而不是 CAD 系統 API)。此外,幾何建模的核心既可用於編寫大學專用軟體,也可用於在大學積極建立的小型創新企業的框架內建立商業軟體。
順便說一下,關於企業。如果一個組織有複雜的、高度專業化的任務,而市場上沒有軟體(或由於某種原因無法使用),那麼許可核心將允許您自己建立此類軟體。當然,企業的員工應該包括具有必要經驗和知識的程式設計師和分析師。
如您所見,幾何核心有很多工,但核心本身很少。成熟的商業幾何建模核心已由世界上的各個團隊開發,在俄羅斯,ASCON 是唯一成功的公司。現在是談論我們的 C3D 的時候了。
幾何建模包的典型功能是提供一組用於建立線框、曲面、實體或點陣圖建模應用程式的程式設計介面(資料結構、函式和類)。通常相關的介面被分組為模組,其中有:
基本型別和操作;
邊界表示拓撲建模;
幾何物件和對它們的操作;
布林和表面編輯操作;
隱藏線去除和渲染;
用於讀取和寫入流行格式的幾何檔案的模組。
(2)什麼是 C3D?
上世紀末,俄羅斯幾乎所有的CAD系統都有自己的幾何核心。然而,在功能方面,這些核心落後於它們的世界同行。此外,系統本身並未進入商業狀態。為了使國內系統與世界同類系統競爭,它們需要改進。由於幾何核心的開發難度較大,國內很多CAD廠商都離開了自己的開發,購買了現成的幾何核心。ASCON 採取了不同的行動:它決定建立自己的核心。因此,KOMPAS-3D系統是目前國內唯一成功與世界同類產品競爭並以自身幾何核心執行的CAD系統。
作為建立三維建模系統 KOMPAS-3D 工作的一部分,ASCON 於 1995 年決定編寫自己的幾何核心,該系統於 2000 年進行商業釋出。直到 2012 年,核心才成為商業產品,僅用作其自己的 CAD KOMPAS-3D 的一部分。這些年來它一直在改進,確保了 KOMPAS-3D 的功能開發。讓我們列出主要的里程碑:
- 2000 年:建立了足夠數量的三維實體建模演算法以用於 CAD;
- 2001 年:實現幾何約束求解器和主要交換資料格式的轉換器;
- 2002:建立從三維模型構建關聯檢視的機制;
- 2003年:曲面造型基礎的出現;
- 2004 年:描述用於建立表體元素的數學演算法;
- 2005:多體建模的實現;
- 2007:支援線框模型;
- 2008 年:實現用於建模機構的運動學耦合;
- 2009:支援幾何模型的屬性;
- 2010年:出現成熟的曲面建模;
- 2011年:實現跨平臺;
- 2012 年:實施直接建模元素。
- 2013年:English documentation localized; support for test applications added
- 2014年:Model conversion to text formats appeared
- 2015年Objects thread safety provided
- 2016年:Development environments extended, theC3D Visionvisualization engine released
- 2017年:FreeC3D Viewerfor reading 3D models from files in standard CAD data formats released
- 2018年:Adding support for new file formats JT, grdecl toC3D Converter
- 與 APM Studio 整合
- NASA、微軟和戴爾的 CAD 供應商將使用 C3D 核心
- 2019年:C3D B-Shaperfor converting polygonal mesh models to B-rep solids released
- C3D 的幾何核心成為 Altium Designer 19 和 Altium Nexus 的一部分
- 2021 年:釋出 Astra Linux Common Edition 幾何核心 C3D 版本
17 年來,開發團隊一直在開發幾何核心:改進其架構、建立新功能、對以前實施的方法進行現代化改造。如果沒有基於 KOMPAS-3D 在數萬個工作場所的實際應用的獨特體驗,就不可能談論將 C3D 釋出到免費商業導航中的可能性。沒有實踐經驗,根本不可能從零開始打造具有競爭力的核心。
作為軟體開發工具,C3D Toolkit執行三維建模、三維約束求解、多邊形網格到B-rep轉換、三維視覺化和三維檔案轉換。它包括五個模組:
(1)C3D Modeler構建幾何模型,生成模型的平面投影,執行三角剖分,計算模型的慣性特徵,並確定模型元素之間是否發生碰撞;
ODA的C3D Modeler透過開放設計聯盟的ODA標準“OdDb3DSolid”API實現高階3D建模操作;
(2)C3D解算器在幾何模型的元素之間建立連線,並考慮正在編輯的模型的幾何約束;
(3)C3D B-Shaper將多邊形模型轉換為邊界表示(B-rep)實體
(4)C3D Vision使用數學儀器和軟體以及工作站硬體控制三維模型的渲染質量;
(5)C3D轉換器以各種標準交換格式讀取和寫入幾何模型
所有這些模組現在不僅可供 ASCON 內的開發團隊使用,而且可供所有人使用。
C3D核心由尼古拉·戈洛瓦諾夫領導的阿斯康團隊開發。它是用C++開發的,並在Visual Studio中編寫。1995年,Ascon的Kompas 3D核心開始工作。如今,阿斯康表示,他們擁有57000名使用者,其中大部分在俄羅斯。顯然,C3D作為構建Kompas 3D補充產品和附加元件的工具已經有了堅實的基礎。C3D業務團隊由Oleg Zykov領導。
阿斯康對其技術和俄羅斯數學家向世界提供更好的幾何核心的能力深感自豪。Golovanov說,核心的速度和效率會影響基於它構建的產品的效能。
Zykov說,C3D的產品開發正在進行中,新的改進即將到來。例如,C3D有志於更好地建立一個能夠利用現代處理器並行性的建模引擎。到目前為止,遺留CAD在這方面遠遠落後。此外,正在開發C3D,以更好地使產品能夠進行直接建模以及基於約束的建模。
在2D和3D兩種方面都能解決問題。它與Parasolid、ACIS或其他核心一樣好。
在俄羅斯的活動中,戈洛瓦諾夫告訴觀眾,C3D核心非常重要,因為它是目前功能最全的建模工具。除三維建模器外,該引擎還包括二維繪圖和草圖繪製、三維曲面和實體建模、引數化約束以及到大多數主要格式的轉換。
戈洛瓦諾夫說,該團隊正在繼續對C3D建模器進行改進。特別是,他說,他們正專注於核心的直接建模功能,以實現混合工作流。他們也在改進它以匯入STL和VRML。目前,C3D讀取STEP、IGES、X_T(Parasolid)和SAT(ACIS),並寫入STEP、IGES、X_T(Parasolid)、SAT(ACIS)、STL和VRML。C3D支援Windows 32位和64位以及Linux 64位。這家新興公司的員工將C3D視為小型公司新一代設計工具的推動者。除了三個月的免費評估期外,他們還提供慷慨的支援。他們有早期顧客。除了用於其母公司的Kompas 3D產品外,俄羅斯Esprit CAM分銷商ZAO“LO CNITI”也在使用C3D,並將其作為Bazis中心的傢俱設計工具。
C3D Modeler執行構建二維草圖和全尺寸三維模型所需的所有幾何計算。它使用邊界表示(b-rep)方法定義形狀並基於三維實體構建幾何模型。對於合成三維實體,它使用曲面和曲線。在建立更復雜的部件之前,它會將生成的三維實體編組為構建塊。
除了b-Rep之外,C3D Modeler還支援幾何模型的多邊形表示。核心透過三角剖分建立多邊形三維模型。邊界表示和多邊形模型的總體結構完全相同,但多邊形模型通常由近似的板形和多邊形形狀的項組成,因此便於進行計算和生成視覺化效果。
當實體和框架構建到幾何模型中時,它們會生成單獨的構建日誌。系統記錄所有采用的方法、採取的順序和輸入的資料。日誌使以後編輯幾何圖形,然後使用新引數重建模型變得更容易。有關物件幾何體(以曲面、曲線和點的形式)的詳細資訊儲存在模型物件的拓撲元素中,如面、邊和頂點。每個物件的項或物件作為一個整體的附加資訊可以以屬性的形式儲存在它們內部。
C3D的團隊包括經驗豐富的專家和年輕員工。他們是莫斯科國立大學莫斯科物理技術學院的畢業生。羅蒙諾索夫和其他大學。球隊的“骨幹”由亞歷山大·馬克西緬科、安德烈·彭金、尤里·科祖林組成。他們每個人都負責一個重要的工作領域。我們一直在尋找能夠開發新方向的有才華的專家。
從事核心工作的專家受過什麼樣的教育?去哪裡學習才能為你工作?
Nikolai Nikolaevich Golovanov:幾何建模。它借鑑了數學領域,如微分幾何和數值方法。對於想法的實際實施,需要程式設計。
具有高等技術教育、瞭解 C++ 程式語言、數值方法和高等數學知識的專家從事幾何核工作。所列知識可以在任何高等技術教育機構獲得。專家在數值方法的軟體實現方面具有經驗以及應用高等數學知識解決實際問題的能力對我們來說很重要。您可以在大學學習期間或畢業後工作期間獲得指定的經驗和技能。
核心開發:Nikolai Nikolaevich Golovanov
N. Golovanov 的專著“幾何建模”的英文翻譯的出版和籌備支援以及該翻譯的出版由分析機構Cyon Research的支柱和元老之一 Joel Orr 積極開展。在美國版的註釋中,喬爾寫道:戈洛瓦諾夫創作了一篇課文,讓每個幾何設計的學生都能充分理解工具箱背後數學的力量和美感,並將其應用到他們的工作中。教材的邏輯性、方法論和清晰的呈現給我留下了深刻的印象。強烈推薦!
同樣的註解還引用了 Ken Versprill 的話: 幾何建模的作用不斷增長……瞭解幾何建模所基於的基本結構將使學生和開發人員獲得當今設計水平的能力。尼古拉·戈洛瓦諾夫 (Nikolai Golovanov) 憑藉其令人印象深刻的書幫助走上了通往這種理解的道路。
尼古拉·戈洛瓦諾夫出生在柏林,他的父親是一名軍官。像所有軍人家庭一樣,他們經常搬家:Davlekanovo、Patrikeevo、Borisoglebsk、Balashov。尼古拉畢業於波蘭斯普羅塔瓦市的高中。我進入了 MVTU im 的機械工程學院。Bauman 並獲得了太空運載火箭設計師的專長。然後他來到了機械工程設計局(Kolomna),ASCON Alexander Golikov 和 Tatyana Yankina 的未來創始人在那裡工作,這裡成為了 KOMPAS 系統的祖地。尼古拉·戈洛瓦諾夫處理力量:他準備實驗,進行計算,包括使用計算機。當時,許多設計局和研究機構正在開發使企業工作自動化的應用程式。在 KBM,系統開發允許使用計算機進行各種工程計算和繪製圖紙。除了其他工作外,Nikolai Nikolaevich 還開發了一個分析殼結構強度和穩定性的程式。
1989 年,Alexander Golikov 和 Tatyana Yankina 離開了 KBM,建立了 ASCON 公司。儘管這一切都是從電子繪圖板開始的,但即便如此,他們還是構想了一個三維引數化建模系統,該系統將允許以三維模型而不是平面繪圖的形式來確定設計理念。ASCON 的創始人與 Nikolai Golovanov 分享了他們的想法,並於 1996 年在 ASCON 找到了一份固定工作。
當時,固態和表面建模系統已經在工作站上執行。KOMPAS 開發人員夢想在一臺普通的個人計算機上建立類似甚至更好的東西。三個人在 ASCON 參與了數學問題 - Yuri Pokidov、Vladimir Zorin 和 Nikolai Golovanov。今天,尼古拉·尼古拉耶維奇是三人中唯一的一位。Vladimir Zorin 離開俄羅斯,在 PTC(專業/工程師開發人員)工作,然後轉到 SolidWorks。幾年前,尤里·波基多夫 (Yuri Pokidov) 因重病去世。
Nikolay Golovanov 和 15 年前一樣,繼續推導公式並開發演算法,用於核心的開發和改進。與他一起工作的年輕專家 - 新一代的數學家。他們共同創造了知識填充物,即 KOMPAS-3D 系統的大腦。
(3)C3D解算器
C3D Solver 是一個強大的 2D 約束求解器,用於 2D 繪圖和 3D 草圖繪製,以及用於裝配和運動分析的 3D 約束求解器。
能夠診斷覆蓋的約束系統。在 KOMPAS-3D 中,此功能以橙色突出顯示“不必要”限制的形式實現。
NURBS 曲線的引數化得到了改進:約束系統的可解性得到了改進,NURBS 與其他曲線的多次接觸成為可能。對末端情況給予了特別關注 - 現在提供了帶有樣條的輪廓的平滑連線
3.C3D元件---C3D Mesh2Brep 將網格轉換為實體
C3D 元件:將多邊形模型轉換為邊界表示 (b-rep) 體。名為 C3D Mesh2Brep 的模組新增到C3D 工具包中,旨在與C3D Modeler幾何核心一起工作。
B-rep 是大多數現有幾何建模系統的主要表示方法。多邊形模型最常從 3D 掃描和非 CAD 設計系統中獲得。藉助 C3D Mesh2Brep,CAD 開發人員將能夠將多邊形模型轉換為 b-rep 實體。生成的 b-rep 模型允許使用者使用 CAD 工具進行更改(例如布林運算和倒角),並生成額外的資料,例如透過投影和截面。
C3D Mesh2Brep 有許多有用的應用。一種可能的用途是在逆向工程領域,它涉及對零件進行 3D 掃描,然後將其轉換為可編輯的 CAD 模型。在 CAE 系統中,開發人員可以使用 Mesh2Brep 模組來處理拓撲最佳化的結果。計算機圖形設計人員可以使用新模組進行網格平滑、抽取和應用壓縮演算法。
C3D Mesh2Brep 如何工作
多邊形網格的變換是 C3D Mesh2Brep 的三步過程:
- 在第一步中,C3D Mesh2Brep 透過將原始網格的多邊形集劃分為子集(段)來分割網格,同時考慮到它們與特定表面的關係。
- 接下來,這些段用於表面重建。
- 最後,將前面步驟中獲得的資料用於構建 b-rep 模型。
如果使用者發現結果不合適,他們可以使用 C3D Mesh2Brep 中包含的高階工具來編輯分割和表面識別控制元件。
“我們新的 C3D Mesh2Brep 模組有兩種主要模式:全自動和互動式”,C3D Modeler 幾何核心的首席開發人員Andrey Tumanin說。«自動模式為高質量多邊形網格生成可接受的結果,這些網格是主要包含基本曲面的 CAD 模型的三角剖分。但是,如果多邊形網格是由 3D 物件掃描構建的,因此包含一般表面,則使用者將必須參與該過程»。
4.C3D元件C3D Toolkit 提供多執行緒支援
程式設計師中有一句話提醒我們多執行緒在應用程式中的重要性,“平行計算是我們的未來。而那是永遠的!” 它讓我們對平行計算所涉及的內容有一個看法,並暗示了它的複雜性。我們需要新增它,一旦加入,我們就永遠無法刪除它。
在我們的 C3D 工具包中實現多執行緒計算的工作始於幾年前,並一直持續到今天。工具包中對多執行緒的支援包括以下功能:
- 透過核心使用多執行緒計算
- 保證核心中的資料執行緒安全,從而為平行計算期間與核心互動的使用者應用程式提供安全性
OpenMP 是一種開放標準,它透過 С、С++ 和 FORTRAN 等程式語言為軟體產品新增並行化。使用 OpenMP 的應用程式還解決了跨平臺和相容性問題。我們將 OpenMP 技術用於 C3D 工具包中的多執行緒機制。
然而,事實證明編譯器在不同程度上支援 OpenMP。Intel 當前的 C++ 編譯器實現了 OpenMP v4.5 並且只實現了 OpenMP v5.0 的一些特性,而微軟的 C++ 編譯器只支援 OpenMP v2.0。
C3D 工具包中的平行計算
在 C3D Toolkit 中,我們主要為以下操作實現了多執行緒操作:
- 建築平面投影
- 計算多邊形網格
- 計算質量慣性特性
- 轉換檔案格式
除了列表中的函式,C3D Toolkit 中還提供了多執行緒操作。
實現獨立資料的並行處理通常相對簡單有效。但是,當在不同執行緒中工作的物件相互依賴時,有時會遇到問題,例如當它們都使用相同的資料集時,或者當一個物件參與另一個執行緒計算時。那麼訪問資料的執行緒安全問題就來了。
最簡單的解決方案是使用鎖定(互斥或“互斥”),其中一個執行緒透過阻止其他執行緒訪問共享資料來獲得對共享資料的獨佔訪問。這種直接的方法往往會導致等待時間增加,這可能會降低平行計算的其他潛在好處,有時甚至會降低整體計算速度。
在 C3D 核心中,我們採用了一種不同的方法,提供了一種稱為“多執行緒快取”的特殊機制,如下所述。
資料結構的執行緒安全
計算中使用的一種最佳化方法是快取。快取背後的想法是執行計算的某些重要引數不是任意的,而是遵循一些預定義或統計預測規則。這允許重複使用預先計算的結果。
使用快取資料對於平行計算下的後續計算通常是有效的,因此當多個執行緒競爭訪問共享快取資料時,可能會引發所謂的資料競爭。
多執行緒快取的工作原理
多執行緒快取機制提供了對核心中資料結構的執行緒安全訪問,因此可以實現有效的並行化,其中資料由多個執行緒同時處理。每個執行緒建立自己的快取資料副本。這可以防止執行緒之間的資料競爭,並最大限度地減少鎖的使用。
快取管理器控制每個物件的多執行緒快取,並負責為當前執行緒的物件建立、儲存和檢索快取資料。多執行緒快取機制由C3D Toolkit 的多執行緒模式管理。
多執行緒快取對於順序計算和平行計算都有效,因此它在轉換到多執行緒快取時提供了無可爭議的好處,因為它需要對現有程式碼進行最少的更改。
C3D Toolkit 的多執行緒模式
C3D 工具包提供了多種多執行緒模式來管理結構的執行緒安全。模式決定了哪個操作將在並行模式下執行:
- 關閉模式——C3D Toolkit中的多執行緒關閉,所有操作都按順序執行;執行緒安全機制也被禁用
- 標準模式——這是標準的多執行緒模式,它在 C3D 工具包中啟用有限的並行性。並行化只對處理獨立資料的操作進行;C3D Toolkit 中禁用了資料結構的執行緒安全
- SafeItems 模式——類似於標準模式,但啟用了多執行緒快取機制的執行緒安全模式;開發此選項是為了支援使用者應用程式中的多執行緒操作
- 專案模式——最大多執行緒模式,多執行緒快取機制開啟,所有可以並行執行的操作都由 C3D 工具包完成
在使用者應用程式中支援多執行緒
在SafeItems多執行緒模式及以上模式下,當啟用多執行緒快取機制時,C3D Toolkit中的所有幾何物件都是執行緒安全的。同樣,大多數操作(包括那些看起來不是多執行緒的)都是執行緒安全的,因此當使用 SafeItems 或以上模式時,可以由多個執行緒使用。
鎖在 C3D 工具包中基於系統同步機制實現,例如 Windows 上的 WinAPI 和 Linux 上的 pthread API。這些為具有不同並行化機制的使用者應用程式中的使用者介面提供資料安全性。
C3D 工具包提供了用於通知工具包平行計算的開始和結束的介面。重要的!從多個執行緒呼叫 C3D 介面的自定義應用程式必須在開始和完成平行計算時通知 C3D Toolkit。
管理 C3D Toolkit 的多執行緒模式
C3D Toolkit 允許使用者動態改變多執行緒模式,如下:
- 透過開啟和關閉多執行緒快取來管理 C3D Toolkit 資料物件的執行緒安全
- 確定哪些 C3D Toolkit 操作將並行化——所有或僅處理獨立資料的操作
當內部並行 C3D 週期對使用者應用程式中的外部並行效能產生影響時,這些開關非常有用。重要的!分析每種特定情況下可切換多執行緒 C3D 模式的必要性非常重要。
在多執行緒處理中使用 C3D 介面
在開始在多個執行緒中使用C3D介面之前,需要確保工具包設定為至少SafeItems或以上的多執行緒模式。預設情況下,工具包在最大多執行緒模式下執行。
當使用不同於 OpenMP 的並行機制時,使用者應用程式有義務在開始並行會話和完成並行會話時通知工具包。這可以透過以下任何一種方式應用:
- 類ParallelRegionGuard保護範圍內的並行區域
- 函式EnterParallelRegion和ExitParallelRegion
- 宏ENTER_PARALLEL和EXIT_PARALLEL
- C3D Toolkit 在進入和離開平行區域時的通知示例。
結論
C3D 工具包可以針對在自定義應用程式中使用多執行緒的特定客戶需求進行配置。該工具包支援使用者應用程式中的多執行緒,提供工具包中操作的執行緒安全性,並允許對工具包資料物件的執行緒安全資料訪問。
總之,我們注意到 C3D Toolkit 積極使用其多執行緒計算的內部機制。此工具包的主要功能是您可以為數學計算選擇不同的多執行緒模式,但我們也允許使用者在內部多執行緒模式之間動態切換。
5.開發用於幾何建模的跨平臺核心
2021年8月,我們C3D實驗室(ASCON)團隊首次釋出了國內作業系統@AstraLinux的C3D幾何核心版本,加入了支援的Linux發行版列表。目前,C3D 幾何建模核心可用於多種作業系統上的軟體開發:除了 Windows,還有 MacOS、IOS、FreeBSD 和幾個 Linux 發行版。核心 SDK 還提供了多種編譯器:MSVC 2012 - 2019、GCC 4.8 - 7.2、Clang 6.0 - 10.0。
情況並非總是如此。2012 年,當 C3D 核心作為單獨的產品從 KOMPAS-3D CAD 系統中分離出來時,它只適用於 MSVC 編譯器的幾個版本,當然也只適用於 Windows。但隨著時間的推移,核心開發出來的需求和願望開始強加於它,如果我們想擁有同類產品中真正最好的產品,我們就不能忽視這一點。下面是一個關於我們如何將核心移植到各種作業系統和平臺的故事。