3D模型格式转换工具HOOPS Exchange:模型数据自由导入和导出

HOOPS Exchange是一套高性能软件库,可以为软件开发人员提供导入和导出3D文件格式的能力。HOOPS Exchange导入3D数据后,会将3D数据转换为PRC格式存放到内存中,最后导出成为其他3D格式。(点击申请HOOPS Exchange免费试用

HOOPS Exchange可以从CAD格式中导入如下信息:

  • 装配和零件
  • 三维模型树,包括坐标系、线框、曲面和实体。
  • 面和实体模型拓扑结构
  • 曲线和曲面的精确几何表示
  • 细分曲面数据,它从文件中获取,也可以从B-rep定义中自动生成
  • 标记数据,包括产品制造信息(PMI)
  • 元数据,例如名称、颜色、图层和其它非几何信息

HOOPS中文网http://techsoft3d.evget.com/

一、模型的导入和导出

在模型进行导入和导出之前,应首先设置HOOPS Exchange的支持环境(HOOPS Exchange运行需要大量的支持库),并检查HOOPS Exchange状态。

如果环境路径没问题,并且设置了正确的HOOPS license,就可以进行具体的转换操作了。

HOOPS Exchange有两种方式可以实现模型的加载和导出,分别是:

  • 间接集成方式
  • 直接集成方式

具体描述如下:

(一)间接集成方式

间接集成方式是最简单应用HOOPS Exchange的方式,整个过程分为两步,第一步导入模型,第二步导出模型。

1、导入模型

可以使用如下代码导入模型,其中acSrcFileName是导入模型路径:

2、导出模型

间接集成的导出模型的操作也简单,只需要设置好导出路径acDstFileName,使用sHoopsExchangeLoader.Convert(sImport, sExport)就可以导出模型。

(二)直接集成方式

间接集成方式只适合于非常简单的导入和导出操作,如果要进行更复杂的操作,还需要使用直接集成方式。

1、导入模型

在使用直接集成方式导入模型时,我们可以通过设置A3DRWParamsLoadData 参数来设置导入的具体内容:

之后使用A3DAsmModelFileLoadFromFile()函数来传入读取参数,并读取模型。

2、修改模型

我们在导入模型成功后,有时候需要对模型的内容(属性值、模型几何信息、PMI信息等)进行更进一步访问,这时候,就需要对模型进行更深层次的解析。

在使用直接集成方式导入模型时,会获得一个A3DAsmModelFile模型指针,这个模型指针指向整个模型的根节点,每个模型有且只有一个模型指针。

我们可以通过A3DAsmModelFile模型指针来遍历模型的所有内容,查找到目标内容后,就可以对目标内容进行增、删、改等操作。

3、导出模型

在使用直接集成方式导出模型时,我们可以通过设置参数来设置导出的具体内容,导出设置因文件类型不同而不同。但所有导出数据结构都具有类似A3DRWParamsExport*Data名称,其中 "*" 替换为文件类型。

这里以导出Step文件为例,如果我们要导出Step文件,我们需要设置A3DRWParamsExportStepData的参数来实现导出不同的模型内容:

之后使用A3DAsmModelFileExportToStepFile()函数来传入导出参数,并导出模型。

二、模型在内存中的结构
HOOPS Exchange导入模型成功后,整个模型数据会以原生结构的 PRC 组装树形式存放到内存中。

PRC结构可能非常复杂,其复杂程度由导入的原生模型复杂程度决定。模型的几何体经常被实例化,材质也可能被多次引用,整个子装配体可能嵌套数百层深。因此,要完全解析PRC 结构并不容易。

下面,我来介绍一下PRC结构的主要类型,让大家对PRC结构有个基本的了解,PRC结构的主要类型包含四种:

模型文件(Model file):

Model file是PRC结构的根节点,由A3DAsmModelFile模型指针指向它,每颗装配树只有一个Model file。Model file节点包含模型全局信息(例如单位比例和创建模型的系统等)和对Product Occurrence节点的引用。
产品结构节点(Product Occurrence):

Product Occurrence是几何信息的逻辑组概念,类名是A3DAsmProductOccurrence,有点类似于建模环境中的子装配概念,从根节点到零件节点中间可以包含多级Product occurrence节点,同一级Product Occurrence节点可能拥有多个兄弟节点。
件定义 (Part definitions):

Part definitions包含零件几何的元数据,类名是A3DAsmPartDefinition,有点类似于建模环境中的零件概念,包含例如注释、视图、包围盒和对零件几何表示(representation)的引用。

表示项(Representation items):

Representation items包含绘制几何的信息,类名是A3DRiRepresentationItem,有点类似于建模环境中零件的body概念。包括了模型的曲面细分数据和B-rep信息,复杂的零件可能包含多个表示项。

点击申请HOOPS 60天试用http://x7pfmmn259623uby.mikecrm.com/zYYmLCW

相关推荐
weixin_4684668512 小时前
从“建模城市”到“按需查询”:D4RT如何用200+FPS重新定义动态3D世界
人工智能·3d·具身智能·d4rt·4d重建
PhotonixBay3 天前
3D共聚焦显微镜与探针式粗糙度仪:谁更适合亚表面损伤检测?
图像处理·人工智能·测试工具·3d
自动化监测Learner3 天前
Cesium 加载大雁塔 3D Tiles 实录:从模型结构剖析到局部虚拟化(剖切 + 骨架线)实现
3d
FOORIR 客流统计3 天前
智能客流系统未来趋势:3D视觉、AI识别与数据分析的融合架构
人工智能·3d·数据分析
3D小将3 天前
3D格式转换之Rhino转换为IGS格式技术
3d·stp模型·igs模型·glb模型
PhotonixBay4 天前
InGaAs微透镜3D形貌怎么测?共聚焦显微镜在光通信的应用实践
功能测试·测试工具·3d·测试标准
学习星球4 天前
AI 一句话生成 3D 游戏世界:腾讯 HY-World 2.0 开源深度解析与本地实战
开发语言·人工智能·游戏·3d·ai·课程设计·ai编程
ai小陈4 天前
Hunyuan3D-2云端部署实战:图生3D、文生3D怎么跑更稳
人工智能·科技·3d·ai·音视频·gpu算力
独立开发之道5 天前
Three.js 创建 VR 内容:四步把一个普通 3D 场景送进头显
javascript·3d·vr
k4m7v2pz5 天前
Bevy 0.18.1 雨雪天气粒子系统排障实录:四个“想当然“如何让 3D/2D 粒子全部不可见
3d·游戏开发·3d渲染·bevy·天气粒子·2d渲染