一、概述
前面講解過模型在內(nèi)存中的結(jié)構(gòu),現(xiàn)在回顧一下,當模型導(dǎo)入成功后,整個模型數(shù)據(jù)會以原生結(jié)構(gòu)的 PRC 組裝樹形式存放到內(nèi)存中。()
PRC結(jié)構(gòu)的主要類型包含四種,分別是模型文件(Model file)、產(chǎn)品結(jié)構(gòu)節(jié)點(Product Occurrence)、零件定義(Part definitions)和表示項(Representation items),其具體結(jié)構(gòu)圖如下:

下面我們根據(jù)這個脈絡(luò),從文件的指針入手,簡單說一下如何獲取到模型的幾何數(shù)據(jù)。
二、遍歷模型
1、模型入口
我們在導(dǎo)入模型后,會獲取到導(dǎo)入模型的文件指針(A3DAsmModelFile* m_psModelFile),它是我們遍歷模型所有數(shù)據(jù)的入口。
2、解析產(chǎn)品結(jié)構(gòu)節(jié)點(Product Occurrence)
接下來我們根據(jù)文件指針m_psModelFile查找其對應(yīng)的A3DAsmModelFileData數(shù)據(jù),在A3DAsmModelFileData數(shù)據(jù)中可以獲取到“產(chǎn)品結(jié)構(gòu)節(jié)點(Product Occurrence)”的數(shù)量和子節(jié)點集合。
之后判斷子節(jié)點的類型,如果子節(jié)點也是“產(chǎn)品結(jié)構(gòu)節(jié)點”類型,則進行遞歸,查找子節(jié)點下面的子節(jié)點,這樣不斷遞歸,就可以將模型中所有的“產(chǎn)品結(jié)構(gòu)節(jié)點”找出。
如果子節(jié)點的類型是“零件定義(Part definitions)”類型,則就進行下面的解析“零件定義(Part definitions)”節(jié)點的操作。
3、解析零件定義(Part definitions)
在獲取到“零件定義(Part definitions)”節(jié)點后,我們可以獲取到“零件定義(Part definitions)”節(jié)點對應(yīng)的“零件定義數(shù)據(jù)”,通過“零件定義數(shù)據(jù)”就可以獲取到該節(jié)點對應(yīng)的“表示項(Representation items)”的數(shù)量和集合。
這一級節(jié)點的解析比較簡單,沒有遞歸。
4、解析表示項(Representation items)
在獲取到“表示項(Representation items)”節(jié)點后,我們就可以獲取該節(jié)點封裝的細分數(shù)據(jù)和 B-rep數(shù)據(jù)。
其中細分數(shù)據(jù)一定會有,即便源模型中沒有,HOOPS Exchange也會生成;B-rep數(shù)據(jù)可能會有,因為有的源模型格式并不支持B-rep數(shù)據(jù)。
下面分別介紹這兩種數(shù)據(jù)。
三、細分曲面數(shù)據(jù)(Tessellation)
細分曲面數(shù)據(jù)可以理解成我們?nèi)庋鬯姷木W(wǎng)格數(shù)據(jù)。我們可以獲取到表示項中默認的細分曲面數(shù)據(jù),但對于許多應(yīng)用程序,獲得默認曲面細分是不夠的,因此可以設(shè)置細分曲面數(shù)據(jù)中的參數(shù),根據(jù)這些參數(shù)重新生成符合要求的細分曲面數(shù)據(jù)。
A3DRWParamsTessellationData可以影響細分曲面數(shù)據(jù)的生成,其參數(shù)如下:
-
TessellationLevelOfDetail - 由其它A3DRWParamsTessellationData預(yù)設(shè)值組成的高級設(shè)置。如果選擇UserDefined,我們可以自定義自己的一組值。
-
AccurateTessellation - 將此值設(shè)置為true將生成更適合分析的細分。可用于所有細分級別。
-
AccurateTessellationWithGrid - 一種精確的曲面細分模式,其中在網(wǎng)格布局中插入點。
-
ChordHeightRatio - 指定邊界框的對角線長度與弦高的比率。
-
AngleToleranceDeg - 指定邊的兩個連續(xù)段之間的角度。
-
MaxChordHeight(和UseHeightInsteadOfRatio) - 指定曲面和生成的細分之間的最大距離。
-
KeepUV - 將參數(shù)點保留為紋理點。
-
AccurateSurfaceCurvatures. 曲面細分傾向于沿曲率創(chuàng)建更適合的三角形。
TessellationLevelOfDetail 和AccurateTessellation 設(shè)置的效果如下:
AccurateTessellationWithGrid 的設(shè)置效果如下:
標準精確細分

通過插入網(wǎng)格對齊點進行精確細分
AccurateTessellationWithGridMaximumStitchLength、AccurateSurfaceCurvatures設(shè)置效果如下:
四、B-rep 數(shù)據(jù)(B-rep Data)
B-rep 數(shù)據(jù)是用數(shù)學(xué)來描述模型的數(shù)據(jù),它是幾何造型中最成熟、無二義的表示數(shù)據(jù)。
以下實體包含表示 B-rep 數(shù)據(jù)的幾何數(shù)據(jù):
-
Face:一個曲面和一組Loop。
-
Shell:Face實體的集合。
-
Connex:Shell實體的集合。
-
Topology B-rep 數(shù)據(jù):拓撲邊界表示法,由邊界框和對多個Connex實體的引用組成。
以下為HOOPS Exchange B-rep 的拓撲結(jié)構(gòu)圖:
關(guān)于HOOPS可視化
Tech Soft 3D的旗艦圖形引擎已為20多年來成功合作的程序提供最先進的圖形支持,這些軟件包括來自O(shè)racle,SOLIDWORKS,Trimble,Hexagon,ANSYS,3D Systems,Mitutoyo,Actify等。全球各地的公司都依賴HOOPS Visualize在平臺,設(shè)備和圖形卡之間實現(xiàn)極高的性能,和一致的穩(wěn)定性。有興趣探索HOOPS Visualize API功能的開發(fā)人員可以。
關(guān)于Tech Soft 3D
Tech Soft 3D是全球領(lǐng)先的開發(fā)工具提供商,可幫助軟件團隊交付成功的應(yīng)用程序。Tech Soft 3D成立于1996年,總部位于俄勒岡州本德市,并在加利福尼亞州,法國,英國和日本設(shè)有辦事處。該公司的工具包產(chǎn)品為全球數(shù)億臺計算機上運行的近500個獨特應(yīng)用程序提供支持。
慧都科技是Tech Soft 3D-HOOPS在中國區(qū)的唯一增值服務(wù)商,負責試用,咨詢,銷售,技術(shù)支持,售后,旨在為企業(yè)提供一站式的3D開發(fā)解決方案。如果您的企業(yè)目前也有、的需求,歡迎咨詢在線客服申請3D 輕量化引擎的60天免費試用。
↓↓掃碼添加客服微信,及時獲取“HOOPS技術(shù)”支持↓↓
經(jīng)過10余年的經(jīng)驗沉淀,慧都3D研發(fā)團隊推出了一系列的工業(yè)3D解決方案,包括BIM解決方案、PDM解決方案、CAE解決方案、機器人運動仿真解決方案、協(xié)同設(shè)計解決方案、3D打印解決方案,詳情請點擊此處了解。
如果您的企業(yè)目前也有、的需求,歡迎訪問慧都網(wǎng)咨詢在線客服或直接撥打023-68661681,我們將免費為您定制3D解決方案并發(fā)送相關(guān)案例資料!
標簽:
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn