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

news2024/12/24 18:38:47

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

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

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

HOOPS中文网icon-default.png?t=N7T8http://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天试用icon-default.png?t=N7T8http://x7pfmmn259623uby.mikecrm.com/zYYmLCW 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1084528.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

互动设计:深入了解用户体验的关键

交互是人与计算机系统之间的互动过程。在计算机领域中,交互是人机交互技术的核心内容之一。交互设计是一种基于人类行为科学、心理学、人体工程学等领域的专业设计,目的是创造用户友好的、易于使用的计算机软件、网络、移动应用等。交互的本质在于用户的…

JUC并发编程:Monitor和对象结构

JUC并发编程:Monitor和对象结构 1. Monitor1.1 对象的结构1.1.1 MarkWord1.1.2 Klass Word1.1.3 数组长度1.1.4 🌰 1. Monitor Monitor官方文档 我们可以把Monitor理解为一个同步工具,也可以认为是一种同步机制。它通常被描述为一个对象&…

零基础Linux_15(基础IO_文件)软硬链接+动静态库详解

目录 1. 软硬链接 1.1 创建软链接 1.2 创建硬链接 1.3 硬链接数和unlink 2. 动静态库 2.1 制作静态库 2.2 查看和打包静态库 2.3 使用静态库 2.3.1 安装在默认搜索路径 2.3.2 告知路径库路径库名 2.4 制作动态库 2.5 使用动态库 2.5.1 安装在默认搜索路径 2.5.2 …

轻松虚拟gps定位 AnyGo中文 for mac

AnyGo是一款旨在帮助用户模拟和改变iPhone的GPS位置,以实现虚拟定位的功能。该软件适用于iOS设备,并提供了一系列强大的功能,让用户能够自由地模拟不同地理位置,以满足各种需求。 以下是AnyGo可能提供的一些主要功能和特点&#…

设置全局滚动条样式

需求:统一滚动条样式,不需要每次都要在页面一个一个的设置,整个项目只要内容超出了显示滚动条了就会是自己设置的那个滚动条样式显示 1.效果 2. 创建scroll.scss文件 滚动条样式如下,可以自行更改 /* // 滚动条样式重写-chrome …

新闻api接口,新闻资讯,社交媒体,体育赛事,全国热门带正文新闻查询API接口

一、接口介绍 解决同一类新闻在不同平台上的内容获取问题,在归档主流新闻平台的内容数据基础上,对外提供统一的调用方式来完成实时、最新的相关新闻的获取,极大方便各类企业在自有软件中集成新闻内容的功能。支持200余个新闻大站,…

官网安装Python包太慢?教你三种Pytorch的下载安装方式,保证你再也不用出现Error

这一期教大家如何在Anaconda中使用CUDA来进行加速、神经网络依赖cuDNN的下载安装,以及下载和安装Pytorch-GPU安装包的三种方式(conda、pip、轮子)。 还未下载安装 CUDA 和 Anaconda,请看往期文章,是全套系列的总结&am…

@Scope 注解失效了?咋回事

scope 属性,相信大家都知道,一共有六种: 取值含义生效条件singleton表示这个 Bean 是单例的,在 Spring 容器中,只会存在一个实例。prototype多例模式,每次从 Spring 容器中获取 Bean 的时候,才…

如何解决MidJourney错过付费后被暂停

问题 假定你已经成功订阅购买了 MidJourney 一段时间,下个月扣费周期到了。 如果你卡里余额不足,卡被封或失效了,或者你想着最近没啥用得上 MidJourney 的地方先省着不续费,等要用的时候就用不了。 如果想要去官网的续费页&…

软文撰写技巧:中小企业品牌形象塑造新方法

在激烈的市场竞争中,企业仅靠产品质量和服务态度很难站稳脚跟,在互联网时代下,品牌形象才是中小企业的取胜法宝,良好的品牌形象能够赢得消费者的信赖,还能让企业占据市场资源优势,软文推广就是帮助企业塑造…

机器人控制算法——两轮差速驱动运动模型

1.Introduction 本文主要介绍针对于两轮差速模型的逆运动学数学推导。因为在机器人控制领域,决策规划控制层给执行器输出的控制指令v(车辆前进速度)和w(角速度),因此,我们比较关心,当底层两个驱动电机接收到此信息,如何…

企业可以申请ov泛域名SSL证书吗

OV泛域名SSL证书是企事业单位和其他组织合法申请的数字证书,具有组织实名认证和域名解析授权的双重功能。与DV泛域名SSL证书相比,它的申请流程更加复杂,需要提交更多的资质和证明文件,当然,OV泛域名证书的安全等级也更…

如何提取视频文件中的元数据

最近在用gyroflow做视频稳定,但需要校准镜头,而校准需要知道拍摄时的一些设置参数,而用一些普通的工具获取到的视频元数据不全,所以就希望能有什么工具能获取到所有的元数据。找来找去发现Exiftool满足我的需求。 ExifTool 这是个…

机器人控制算法——移动机器人横向控制最优控制LQR算法

1.Introduction LQR (外文名linear quadratic regulator)即线性二次型调节器,LQR可得到状态线性反馈的最优控制规律,易于构成闭环最优控制。LQR最优控制利用廉价成本可以使原系统达到较好的性能指标(事实也可以对不稳定的系统进行整定) ,而且方法简单便于实现 ,同时利用 Ma…

vue3 封装自定义指令,监听元素宽高的变化

最近做一个项目,涉及到echart图,要去根据父元素去自适应宽高,所以需要监听到元素的宽高变化、 因为是监听某一元素的宽高变化,所以这里用的是ResizeObserver. ResizeObserver是可以监听到DOM元素,宽高的变化&#xf…

HarmonyOS/OpenHarmony原生应用开发-华为Serverless服务支持情况(三)

文档中的TS作者认为就是ArkTS之意。 一、云函数,从开发文档上已经说明,是已经支持HarmonyOS/OpenHarmony(Stage模型-API9),但是在开发语言上,没有ArkTS,是否支持,正在实践测试中。 文档地址: …

【PCIE732】基于Kintex UltraScale系列FPGA的2路40G光纤通道适配器(5GByte/s带宽)

PCIE732是一款基于PCIE总线架构的高性能数据传输卡,板卡具有1个PCIe x8主机接口、2个QSFP 40G光纤接口,可以实现2路QSFP 40G光纤的数据实时采集、传输。板卡采用Xilinx的高性能Kintex UltraScale系列FPGA作为实时处理器,板载2组独立的72位DDR…

计算机网络面试常问问题--保研及考研复试

前言: Hello大家好,我是Dream。今年保研上岸山东大学人工智能专业 (经验贴),现在将我自己的专业课备考知识点整理出来,分享给大家,希望可以帮助到大家!这是重点知识总结,…

idea插件开发javax.net.ssl.SSLException: No PSK available. Unable to resume.

idea插件开发,编译出错 javax.net.ssl.SSLException: No PSK available. Unable to resume.at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:129)at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:117)at java.base/sun.security.ssl.…

【网络基础】IP 子网划分(VLSM)

目录 一、 为什么要划分子网 二、如何划分子网 1、划分两个子网 2、划分多个子网 一、 为什么要划分子网 假设有一个B类IP地址172.16.0.0,B类IP的默认子网掩码是 255.255.0.0,那么该网段内IP的变化范围为 172.16.0.0 ~ 172.16.255.255,即…