3D模型格式转换工具HOOPS Exchange对工业级3D产品HOOPS的支持与应用
一、概述
HOOPS Exchange是一套高性能模型转换软件库,可以给软件提供强大的模型的导入和导出功能,我们可以将其单独作为转换工具使用,也可以将其集成到自己的软件中。
同样,HOOPS 的其它产品,也离不开HOOPS Exchange的支持,它们也需要HOOPS Exchange为其提供模型的导入和导出功能,下面分别介绍HOOPS Exchange在HOOPS VisualizeHPS、HOOPS Visualize 3DF和HOOPS Communicator中的应用。
申请HOOPS Exchange试用
http://x7pfmmn259623uby.mikecrm.com/l9292M9 二、对HOOPS Visualize HPS的支持
在集成之前,应首先注意HOOPS Visualize HPS对应的HOOPS Exchange版本,版本不对(高了低了都不行),即便其它设置都对,也不会成功。测试环境HOOPS HPS 2021支持的HOOPS Exchange版本是HOOPS Exchange 2021。
具体版本对应关系,请查看HOOPS Visualize HPS的发行说明:
HOOPS Visualize HPS Documentation — HOOPS Visualize HPS 2023 SP2 U2 Documentation

(一)添加hps_cs_sprk_exchange库文件
要在HOOPS VisualizeHPS中使用HOOPS Exchange,首先需要导入Visualize-Exchange 集成库,C++ 用户需要链接到hps_sprk_exchange.lib。C# 用户需要添加对位于bin目录中的hps_cs_sprk_exchange.dll的引用。
这里演示在hps_wpf_sandbox中使用HOOPS Exchange,首先在其引用中添加hps_cs_sprk_exchange.dll库。

hps_cs_sprk_exchange.dll的路径如下:

(二)设置HOOPS Exchange的搜索路径
接下来,在Path环境变量中设置HOOPS Exchange的环境目录(或者将HOOPS Exchange的环境目录中的DLL复制到应用程序执行目录),不进行这一步,在运行程序的时候,会找不到库文件。

HOOPS Exchange的环境目录如下:

(三)添加HOOPS Exchange的条件编译符号
最后,设置条件编译符号,打开hps_wpf_sandbox工程的属性→生成,在条件编译符号中添加USING_EXCHANGE。

到此,在hps_wpf_sandbox中集成HOOPS Exchange的设置完成。
(四)运行效果
运行hps_wpf_sandbox工程,然后读取并显示catia模型,该过程使用了HOOPS Exchange软件库来导入模型。

三、对HOOPS Visualize 3DF的支持
接下来,介绍在HOOPS Visualize3DF中集成HOOPS Exchange,在集成之前,也应注意HOOPS Visualize 3DF对应的HOOPS Exchange版本,版本不对,集成不会成功。测试环境HOOPS_3DF_2510支持的HIO对应Exchange版本是HOOPS Exchange 2020 SP2。
具体版本对应关系,请查看HOOPS Visualize 3DF的发行说明:
HOOPS Visualize 3DF Documentation — HOOPS Visualize 3DF 28.20 Documentation

(一)使用HOOPS Exchange HIO组件
HOOPS Visualize 3DF使用HOOPS Exchange HIO组件来集成HOOPS Exchange,HOOPS Exchange HIO组件以.hio文件的形式提供。
首先在我们自己的应用程序的工作目录中创建一个hio_plugins目录,将在<hoops> / bin / <platform> /
hio_plugins / hio_exchange中的hioexchange <version> .hio文件复制到我们之前创建的工作目录中。

(二)设置HOOPS Exchange的搜索路径
接下来,在Path环境变量中设置HOOPS Exchange的环境目录(或者将HOOPS Exchange的环境目录中的DLL复制到应用程序执行目录),不进行这一步,在运行程序的时候,会找不到库文件。

HOOPS Exchange的环境目录如下:

(三)文件加载
接下来,在HOOPS Visualize 3DF中读取模型。
#include "HIOManager.h"
HFileInputResult result = InputOK;
HInputHandlerOptionsinput_options;
//使用HOOPS Exchange许可证密钥和HBaseView对象设置输入选项
//注意:如果在启动时通过对HC_Define_System_Options的初始调用已经包含了许可证密钥,则无需在此处包含它
constchar* licensekey="<license_key_string>";
input_options.m_license= licensekey;
input_options.m_pHBaseView= my_view;
// 打开所需的HOOPS / MVO模型段并读取文件
HC_Open_Segment_By_Key(<my model key>);
result =HBaseModel::Read("c:\\temp\\myFile.CATProduct", view,true, &input_options);
HC_Close_Segment();
(四)运行效果
运行HOOPS Visualize 3DF程序,使用HOOPS Exchange读取并显示了一个catia模型。

四、对HOOPS Communicator的支持
在HOOPS Communicator中,使用HOOPS Exchange很简单,因为HOOPS Communicator的软件包中,已经集成了HOOPS Exchange,名称为:converter.exe,其位置位于<HOOPS_Communicator>\authoring\converter\bin\win64中。

要转换模型也很简单,首先打开<HOOPS_Communicator>\quick_start目录:

双击start_server.bat文件启动HOOPS Communicator,以下信息表示启动成功:

之后将要转换的模型拖动到convert_file.bat上

模型就会进行轻量化转换:

最后一行是转换后模型的访问地址,可以通过它查看轻量化后的模型:

相关文章:
3D模型格式转换工具HOOPS Exchange对工业级3D产品HOOPS的支持与应用
一、概述 HOOPS Exchange是一套高性能模型转换软件库,可以给软件提供强大的模型的导入和导出功能,我们可以将其单独作为转换工具使用,也可以将其集成到自己的软件中。 同样,HOOPS 的其它产品,也离不开HOOPS Exchange…...
table 表体滚动, 表头、表尾固定
在开发报表中,如果报表数据行过多页面无法全部显示,或者内容溢出div,需要把表头和表尾固定表体滚动这样就可以在页面上全部显示,并且不会溢出div 效果:最终实现效果 代码:<!DOCTYPE html> <html&g…...
第57篇-某钩招聘网站加密参数分析【2023-10-31】
声明:该专栏涉及的所有案例均为学习使用,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!如有侵权,请私信联系本人删帖! 文章目录 一、前言二、网站分析1.X-S-HEADER参数2.请求参数data3.响应机密值data一、前言 网址: aHR0cHM6Ly93d3cubGFnb3UuY29t…...
C语言数据结构之数据结构入门
目录 数据结构介绍 数据结构发展史 何为算法 数据结构基础 基本概念和术语 四大逻辑结构(Logic Structure) 数据类型 理解复杂度概念 时间空间复杂度定义 度量时间复杂度的方法 程序运行时的内存与地址 编程预备 数据结构介绍 数据结构发展…...
如何知道服务器的某个端口是否打开
1、telnet 命令:telnet ip port,port即端口,我们一般最常见的命令就是telnet,但是telnet使用的是tcp协议,换句话说telnet只能检测tcp的这个端口打开了没 若是端口打开,会出现下列信息 失败的是这个 如…...
【ICCV‘23】One-shot Implicit Animatable Avatars with Model-based Priors
文章目录 前置知识 前置知识 1)SMPL模型 \quad SMPL这类方法只建模穿很少衣服的人体(裸体模型),它只能刻画裸体角色的动画,并不能刻画穿衣服的人体的动画 2)data-efficient \quad 这个词推荐用ÿ…...
关于息肉检测和识别项目的总结
前言 整体的思路:首先息肉数据集分为三类: 1.正常细胞 2. 增生性息肉 3. 肿瘤要想完成这个任务,首先重中之重是分割任务,分割结果的好坏, 当分割结果达到一定的准确度后,开始对分割后的结果进行下游分类…...
Jetson Xavier NX FFmpeg支持硬件编解码
最近在用Jetson Xavier NX板子做视频处理,但是CPU进行视频编解码,效率比较地下。 于是便考虑用硬解码来对视频进行处理。 通过jtop查看,发现板子是支持 NVENC硬件编解码的。 1、下载源码 因为需要对ffmpeg进行打补丁修改,因此需要编译两份源码 1.1、编译jetson-ffmpeg …...
518抽奖软件,为什么说比别的抽奖软件更美观精美?
518抽奖软件简介 518抽奖软件,518我要发,超好用的年会抽奖软件,简约设计风格。 包含文字号码抽奖、照片抽奖两种模式,支持姓名抽奖、号码抽奖、数字抽奖、照片抽奖。(www.518cj.net) 精致美观功能 字体平滑无锯齿图片放大后清晰…...
React的组件学习
React的组件学习 参考资料:https://zh-hans.react.dev/learn/your-first-component 一、定义组件 export default function Profile() {return (<imgsrc"https://i.imgur.com/MK3eW3Am.jpg"alt"Katherine Johnson"/>) }以下是构建组件…...
uni-app配置微信开发者工具
一、配置微信开发者工具路径 工具->设置->运行配置->小程序运行配置->微信开发者工具路径 二、微信开发者工具开启服务端口...
肺癌不再是老年病:33岁作家的离世引发关注,有这些情况的请注意
近期,90后网络小说家七月新番和26岁男艺人蒋某某因肺癌去世,引发关注。他们都没有吸烟习惯,那么他们为什么会得肺癌呢?浙大二院呼吸内科副主任医师兰芬说,现在年轻人熬夜、加班导致身体过劳,在劳累情况下身…...
【兔子王赠书第4期】用ChatGPT轻松玩转机器学习与深度学习
文章目录 前言机器学习深度学习ChatGPT推荐图书粉丝福利尾声 前言 兔子王免费赠书第4期来啦,突破传统学习束缚,借助ChatGPT的神奇力量,解锁AI无限可能! 机器学习 机器学习是人工智能领域的一个重要分支,它的目的是让…...
Ubuntu18.04 ROS Melodic的cv_bridge指向问题(四种方式,包括opencv4)(转载)
转载自: 【精选】Ubuntu18.04 ROS Melodic的cv_bridge指向问题(四种方式,包括opencv4)_XiangrongZ的博客-CSDN博客...
Android任务栈和启动模式
Andrcid中的任务栈是一种用来存放Activity实倒的容器。任务最大的特点就是先进后出,它主要有两个基本操作,分别是压栈和出栈。通常Andaid应用程序都有一个任务栈,每打开一个Activity时,该Activity就会被压入任务栈。每销毁一个Act…...
电脑加密软件哪个好?电脑加密软件推荐
电脑是我们办公离不开的工具,而为了保护电脑数据安全,我们可以使用专业的电脑加密软件来进行加密保护。那么,电脑加密软件哪个好呢?下面我们就来了解一下。 文件加密——超级加密3000 想要安全加密电脑重要文件,我们可…...
如何优雅地单元测试 Kotlin/Java 中的 private 方法?
翻译自 https://medium.com/mindorks/how-to-unit-test-private-methods-in-java-and-kotlin-d3cae49dccd ❓如何单元测试 Kotlin/Java 中的 private 方法❓ 首先,开发者应该测试代码里的 private 私有方法吗? 直接信任这些私有方法,测试到…...
单元测试,集成测试,系统测试的区别是什么?
实际的测试工作当中,我们会从不同的角度对软件测试的活动进行分类,题主说的“单元测试,集成测试,系统测试”,是按照开发阶段进行测试活动的划分。这种划分完整的分类,其实是分为四种“单元测试,…...
数据结构(超详细讲解!!)第十八节 串(KMP算法)
1.BF算法 算法在字符比较不相等,需要回溯(即ii-j1):即退到s中的下一个字符开始进行继续匹配。 最好情况下的时间复杂度为O(m)。 最坏情况下的时间复杂度为O(nm)。 平均的时间复杂度为O(nm)。 2.KMP算法 KMP算法是D.E.Knuth、…...
软考_软件设计师
算法: 1、直接插入排序 详解:https://blog.csdn.net/qq_44616044/article/details/115708056 void insertSort(int data[],int n){int i,j,temp;for(i1;i<n;i){if(data[i]<data[i-1]){temp data[i];data[i] data[i-1];for(ji-1;j>0&&am…...
【网络】每天掌握一个Linux命令 - iftop
在Linux系统中,iftop是网络管理的得力助手,能实时监控网络流量、连接情况等,帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...
蓝桥杯 2024 15届国赛 A组 儿童节快乐
P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡,轻快的音乐在耳边持续回荡,小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下,六一来了。 今天是六一儿童节,小蓝老师为了让大家在节…...
最新SpringBoot+SpringCloud+Nacos微服务框架分享
文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的,根据Excel列的需求预估的工时直接打骨折,不要问我为什么,主要…...
站群服务器的应用场景都有哪些?
站群服务器主要是为了多个网站的托管和管理所设计的,可以通过集中管理和高效资源的分配,来支持多个独立的网站同时运行,让每一个网站都可以分配到独立的IP地址,避免出现IP关联的风险,用户还可以通过控制面板进行管理功…...
深入理解Optional:处理空指针异常
1. 使用Optional处理可能为空的集合 在Java开发中,集合判空是一个常见但容易出错的场景。传统方式虽然可行,但存在一些潜在问题: // 传统判空方式 if (!CollectionUtils.isEmpty(userInfoList)) {for (UserInfo userInfo : userInfoList) {…...
嵌入式常见 CPU 架构
架构类型架构厂商芯片厂商典型芯片特点与应用场景PICRISC (8/16 位)MicrochipMicrochipPIC16F877A、PIC18F4550简化指令集,单周期执行;低功耗、CIP 独立外设;用于家电、小电机控制、安防面板等嵌入式场景8051CISC (8 位)Intel(原始…...
十九、【用户管理与权限 - 篇一】后端基础:用户列表与角色模型的初步构建
【用户管理与权限 - 篇一】后端基础:用户列表与角色模型的初步构建 前言准备工作第一部分:回顾 Django 内置的 `User` 模型第二部分:设计并创建 `Role` 和 `UserProfile` 模型第三部分:创建 Serializers第四部分:创建 ViewSets第五部分:注册 API 路由第六部分:后端初步测…...
恶补电源:1.电桥
一、元器件的选择 搜索并选择电桥,再multisim中选择FWB,就有各种型号的电桥: 电桥是用来干嘛的呢? 它是一个由四个二极管搭成的“桥梁”形状的电路,用来把交流电(AC)变成直流电(DC)。…...
AxureRP-Pro-Beta-Setup_114413.exe (6.0.0.2887)
Name:3ddown Serial:FiCGEezgdGoYILo8U/2MFyCWj0jZoJc/sziRRj2/ENvtEq7w1RH97k5MWctqVHA 注册用户名:Axure 序列号:8t3Yk/zu4cX601/seX6wBZgYRVj/lkC2PICCdO4sFKCCLx8mcCnccoylVb40lP...
raid存储技术
1. 存储技术概念 数据存储架构是对数据存储方式、存储设备及相关组件的组织和规划,涵盖存储系统的布局、数据存储策略等,它明确数据如何存储、管理与访问,为数据的安全、高效使用提供支撑。 由计算机中一组存储设备、控制部件和管理信息调度的…...
