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

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

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