3D模型格式转换工具HOOPS Exchange对工业级3D产品HOOPS的支持与应用

一、概述

HOOPS Exchange是一套高性能模型转换软件库,可以给软件提供强大的模型的导入和导出功能,我们可以将其单独作为转换工具使用,也可以将其集成到自己的软件中。

同样,HOOPS 的其它产品,也离不开HOOPS Exchange的支持,它们也需要HOOPS Exchange为其提供模型的导入和导出功能,下面分别介绍HOOPS Exchange在HOOPS VisualizeHPS、HOOPS Visualize 3DF和HOOPS Communicator中的应用。

申请HOOPS Exchange试用icon-default.png?t=N7T8http://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上

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

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

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

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

相关文章

鸿蒙应用开发取消标题栏

在config.json中的module下添加如下内容&#xff1a; "metaData": {"customizeData": [{"name": "hwc-theme","extra": "","value": "androidhwext:style/Theme.Emui.Light.NoTitleBar"}] }…

【Java 进阶篇】Java文件下载案例详解

文件下载是Web应用程序中常见的功能之一。它允许用户从Web服务器上下载文件&#xff0c;例如文档、图片、音频、视频等。在本文中&#xff0c;我们将详细解释如何在Java Web应用程序中实现文件下载功能。我们将提供示例代码和逐步说明&#xff0c;以帮助您理解和实现这一功能。…

【漏洞复现】Aapache_Tomcat_AJP协议_文件包含漏洞(CVE-2020-1938)

感谢互联网提供分享知识与智慧&#xff0c;在法治的社会里&#xff0c;请遵守有关法律法规 文章目录 1.1、漏洞描述1.2、漏洞等级1.3、影响版本1.4、漏洞复现1、基础环境2、漏洞扫描3、漏洞验证 说明内容漏洞编号CVE-2020-1938漏洞名称Aapache_Tomcat_AJP文件包含漏洞漏洞评级高…

Minium:专业的小程序自动化工具

小程序架构上分为渲染层和逻辑层&#xff0c;尽管各平台的运行环境十分相似&#xff0c;但是还是有些许的区别&#xff08;如下图&#xff09;&#xff0c;比如说JavaScript 语法和 API 支持不一致&#xff0c;WXSS 渲染表现也有不同&#xff0c;所以不论是手工测试&#xff0c…

【Java】三种方案实现 Redis 分布式锁

序言 setnx、Redisson、RedLock 都可以实现分布式锁&#xff0c;从易到难得排序为&#xff1a;setnx < Redisson < RedLock。一般情况下&#xff0c;直接使用 Redisson 就可以啦&#xff0c;有很多逻辑框架的作者都已经考虑到了。 方案一&#xff1a;setnx 1.1、简单实…

深度学习_9_图片分类数据集

散装代码&#xff1a; import matplotlib.pyplot as plt import torch import torchvision from torch.utils import data from torchvision import transforms from d2l import torch as d2ld2l.use_svg_display()# 通过ToTensor实例将图像数据从PIL类型变换成32位浮点数格式…

数据库的事务四大特性(ACID)、详解隔离性以及隔离级别、锁

文章目录 &#x1f389;数据库的事务四大特性&#xff08;ACID&#xff09;以及隔离性一、事务的四大特性✨1、原子性&#xff08;Atomicity&#xff09;&#x1f38a;2、一致性&#xff08;Consistency&#xff09;&#x1f38a;3、隔离性&#xff08;Isolation&#xff09;&a…

leetcode:389. 找不同

一、题目 函数原型&#xff1a;char findTheDifference(char * s, char * t) 二、思路 作者原先的思路是先将两个字符串从小到大排序&#xff0c;然后两个字符串依次比较。若出现字符串t中的元素和字符串s不相等&#xff0c;则说明该元素就是被添加的字母。 但是&#xff0c;该…

【LeetCode】118. 杨辉三角

118. 杨辉三角 难度&#xff1a;简单 题目 给定一个非负整数 *numRows&#xff0c;*生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中&#xff0c;每个数是它左上方和右上方的数的和。 示例 1: 输入: numRows 5 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]示例…

农业水土环境与面源污染建模及对农业措施响应

目录 ​专题一 农业水土环境建模概述 专题二 ArcGIS入门 专题三 农业水土环境建模流程 专题四 DEM数据制备流程 专题五 土地利用数据制备流程 专题六 土壤数据制备流程 专题七 气象数据制备流程 专题八 农业措施数据制备流程 专题九 参数率定与结果验证 专题十 模型结…

算法随想录算法训练营第四十七天| 647. 回文子串 516.最长回文子序列

647. 回文子串 题目&#xff1a;给你一个字符串 s &#xff0c;请你统计并返回这个字符串中 回文子串 的数目。回文字符串 是正着读和倒过来读一样的字符串。子字符串 是字符串中的由连续字符组成的一个序列。具有不同开始位置或结束位置的子串&#xff0c;即使是由相同的字…

Python之Excel——复制一个sheet当做模板,生成多个sheet

目录 专栏导读背景思路1、加载模板2、项目文件2、完整版代码:3、视频演示:4、总结:&#x1f44d; 该系列文章专栏&#xff1a;[Python办公自动化专栏] 专栏导读 &#x1f338; 欢迎来到Python办公自动化专栏—Python处理办公问题&#xff0c;解放您的双手 &#x1f3f3;️‍&…

一文弄懂synchronized

简述 synchronized是什么? synchronized 关键字是一种同步锁&#xff0c;它可以保证在一个时刻只有一个线程可以执行某段代码。synchronized 关键字可以用在方法、代码块、静态方法和静态代码块上。 synchronized怎么用&#xff1f; synchronized是Java中用于实现线程同步…

Android和JNI交互 : 常见的图像格式转换 : NV21、RGBA、Bitmap等

1. 前言 最近在使用OpenCV处理图片的时候&#xff0c;经常会遇到需要转换图像的情况&#xff0c;网上相关资料比较少&#xff0c;也不全&#xff0c;有时候得费劲老半天才能搞定。 自己踩了坑后&#xff0c;在这里记录下&#xff0c;都是我在项目中遇到的图像转化操作&#xf…

AI开源 - LangChain UI 之 Flowise

原文&#xff1a;AI开源 - LangChain UI 之 Flowise 一、Flowise 简介 Flowise 是一个为 LangChain 设计的用户界面(UI)&#xff0c;使得使用 LangChain 变得更加容易&#xff08;低代码模式&#xff09;。 通过拖拽可视化的组件&#xff0c;组建工作流&#xff0c;就可以轻…

ScrapeKit库中Swift爬虫程序写一段代码

以下是一个使用ScrapeKit库的Swift爬虫程序&#xff0c;用于爬取网页视频的代码&#xff1a; import ScrapeKit// 创建一个配置对象&#xff0c;用于指定爬虫ip服务器信息 let config Configuration(proxyHost: "duoip", proxyPort: 8000)// 创建一个爬虫对象 let s…

diffusers-Load pipelines,models,and schedulers

https://huggingface.co/docs/diffusers/using-diffusers/loadinghttps://huggingface.co/docs/diffusers/using-diffusers/loading 有一种简便的方法用于推理是至关重要的。扩散系统通常由多个组件组成&#xff0c;如parameterized model、tokenizers和schedulers&#xff0c…

Spring-Spring 之底层架构核心概念解析

BeanDefinition BeanDefinition表示Bean定义&#xff0c;BeanDefinition中存在很多属性用来描述一个Bean的特点。比如&#xff1a; class&#xff0c;表示Bean类型scope&#xff0c;表示Bean作用域&#xff0c;单例或原型等lazyInit&#xff1a;表示Bean是否是懒加载initMeth…

LeetCode 421. 数组中两个数的最大异或值

原题链接&#xff1a;https://leetcode.cn/problems/maximum-xor-of-two-numbers-in-an-array/description/?envTypedaily-question&envId2023-11-04 题目分析 异或且时间复杂度在nlogn内第一反应想到字典树&#xff0c;扫一遍存进字典树&#xff0c;然后遍历每个数&…

【Git企业开发】第四节.Git的分支管理策略和bug分支

文章目录 前言一、Git的分支管理策略 1.1 Fast forward 模式和--no-ff 模式 1.2 企业分支管理策略二、bug分支三、删除临时分支四、总结总结 前言 一、Git的分支管理策略 1.1 Fast forward 模式和--no-ff 模式 通常合并分支时&#xff0c;如果可能&#xff0c;Git 会…