3D Web轻量化引擎HOOPS Communicator如何实现对BIM桌面端的支持?

HOOPS Communicator是一款简单而强大的工业级高性能3D Web轻量化渲染开发包,其主要应用于Web领域,主要加载其专有的SCS、SC、SCZ格式文件;HOOPS还拥有另一个桌面端开发包HOOPS Visualize,主要加载HSF、HMF轻量化格式文件。两者虽然同为Tech Soft 3D公司的图像处理引擎,但两者加载的文件却并不通用,对于同时使用两个开发包的用户来说,需要维护两套文件系统。



HOOPS中文网icon-default.png?t=N6B9http://techsoft3d.evget.com/

Tech Soft 3D公司也注意到这个问题,因此在内部提出了两个图像引擎使用归一的计划。从HOOPS Visualize HPS 2020 SP2(桌面端)版本开始,HPS开始集成HOOPS Communicator Sprocket,该工具支持HPS打开SCS文件(本地文件)以及从HOOPS Communicator服务端读取SC文件(流缓存文件),实现了Web端和桌面端读取统一格式文件的计划。下面,让我们来看一看在HPS中如何读取HOOPS Communicator服务端文件。

一、加载文件

(1)加载本地模型文件
SCS文件在HOOPS作为本地文件使用,HPS加载它并不需要服务器,直接打开就好。

首先打开HPS软件包随附的应用程序hps_mfc_hca_sandbox.exe,然后打开相应版本的SCS文件。

显示效果如下:

HOOPS Communicator Sprocket加载文件的过程如下:
1.在HPS :: HCA :: NetworkImportOptionsKit中设置访问参数。
2.使用HPS :: HCA :: File :: Import导入文件。
3.等待程序通知,使得我们知道模型何时完成加载。
加载本地模型的示例代码如下:

以这种方式加载模型时,调用Wait()将等待整个文件加载,就像加载其它本地文件类型一样。

(2)加载网络模型

除了直接加载本地模型外,HPS还可以加载HOOPS Communicator服务器上的流缓存模型(SC文件)。加载流缓存模型与从文件系统加载文件不同,需要使用到HOOPS Communicator服务器通过网络传输文件。除了客户端应用程序之外,我们还需要一个可被访问的HOOPS Communicator服务器。其整个过程如下:
1.首先需要启动HOOPS Communicator服务器,打开HOOPS Communicator根目录\quick_start文件夹,运行start_server.bat批处理文件启动服务。

HOOPS Communicator服务器启动成功:

2.打开HPS软件包随附的应用程序hps_mfc_hca_sandbox.exe,设置需要访问的HOOPS Communicator服务器路径以及访问文件名称,这里访问的文件格式是SCZ,它是SC格式的单文件格式。

3.点击Connet,加载服务端流缓存模型。

加载流缓存模型的示例代码如下:

通过网络加载模型时,调用Wait()将仅等待到开始导入流式传输数据,在将几何体添加到场景时会将控制权返回给用户。这是因为通过网络导入的文件可能非常大,也许永远无法完全加载。
二、注意事项
HOOPS Communicator Sprocket加载模型文件,需要注意一些问题:
(1)所需要的功能库
HOOPS Communicator Sprocket是在HPS正常功能外添加的功能插件,需要一些额外的功能库,如果缺少这些功能库,HOOPS Communicator Sprocket将不能正常工作,HOOPS Communicator Sprocket所需要的功能库如下:

  • cc_exchange_lib.dll
  • hc_access.dll
  • libeay32.dll
  • ssleay32.dll
  • v8.dll
  • v8_libbase.dll
  • v8_libplatform.dll
  • websockets.dll

(2)版本对应
HOOPS Communicator Sprocket与HOOPS Communicator的版本必须对应,否则将无法加载文件,比如HPS 2020 SP2集成HOOPS Communicator Sprocket版本,需要使用对应的HOOPS Communicator版本为2020 SP1 U2,具体版本的对应关系,需要查询HPS的版本发布页面,其上有该版本HPS的HOOPS Communicator Sprocket对应的HOOPS Communicator版本。

(3)支持的文件类型
HOOPS Communicator在提供模型服务之前,需要将其它CAD格式文件转换为自己专有SC、SCS和SCZ文件格式。与通常为B-rep的CAD文件格式不同,它们针对流进行了优化,并且经过镶嵌处理。这三种文件格式HOOPS Communicator Sprocket都可以读取,三种文件格式描述如下:
SCS文件不需要Communicator服务器即可访问。它们可以通过HOOPS Communicator Sprocket直接加载。在这种情况下,整个SCS文件将被加载到Visualize中。
SC文件通过服务器的网络流式传输,通常会在后台分解为多个文件。
SCZ文件是SC格式的单文件格式。

点击此处>>>申请HOOPS试用  

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

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

相关文章

git一次错误merge的回滚

场景:提交到sit的代码,结果解决冲突merge了DEV的代码,所以要回滚到合并之前的代码 (原因是我再网页上处理了冲突,他就自动merge了,如图—所以还是idea处理冲突,可控) 方式二: &…

详解C语言函数:深入了解函数的使用和特性

目录 引言 一、函数的概念 1.1 函数关键特点 1.2 函数的组成部分 1.3 函数声明和定义格式 二、函数分类 2.1 库函数 使用库函数的步骤 2.2 自定义函数 创建自定义函数的步骤 三、函数的参数类型 3.1 形式参数(形参): 格式&#x…

springboot工程集成前端编译包,用于uni-app webView工程,解决其需独立部署带来的麻烦,场景如页面->画布->图片->pdf

前端工程 访问方式 http://127.0.0.1:8080/context/frontEnd/index放行 public class SecurityConfig extends WebSecurityConfigurerAdapter { "/frontEnd/**",SysFrontEndController import lombok.extern.slf4j.Slf4j; import nl.basjes.shaded.org.springfram…

【Mybatis】调试查看执行的 SQL 语句

1. 问题场景: 记录日常开发过程中 Mybatis 调试 SQL 语句,想要查看Mybatis 中执行的 SQL语句,导致定位问题困难 2. 解决方式 双击shift找到mybatis源码中的 MappedStatement的getBoundSql()方法 public BoundSql getBoundSql(Object para…

leetcode - 75. 颜色分类(java)

颜色分类 leetcode - 75. 颜色分类题目描述双指针代码演示 双指针算法专题 leetcode - 75. 颜色分类 难度 - 中等 原题链接 - 颜色分类 题目描述 给定一个包含红色、白色和蓝色、共 n 个元素的数组 nums ,原地对它们进行排序,使得相同颜色的元素相邻&…

栈和队列详解(1)

目录 一、什么是栈? 二、创建一个我们自己的栈 1.前置准备 1.1需要的三个文件 1.2结构体的创建和头文件的引用 2.接口的实现 2.1初始化栈结构体 2.2尾插(压栈) 2.3栈存放的元素个数和判断栈是否为空 2.4获取栈顶元素 2.5出栈 2.6摧毁栈 2.7测试接口 三、…

Java基础入门篇——IDEA开发第一个入门程序(五)

目录 一、IDEA层级结构分类 二、IDEA层级结构介绍 三、IDEA层级关系 四、创建IDEA中的第一个代码 一、IDEA层级结构分类 IntelliJ IDEA的项目结构主要分为以下几个层级: Project: 项目Module: 模块Package: 包Class: 类 一个项目里面…

预测赢家(力扣)dfs + 备忘录 JAVA

给你一个整数数组 nums 。玩家 1 和玩家 2 基于这个数组设计了一个游戏。 玩家 1 和玩家 2 轮流进行自己的回合,玩家 1 先手。开始时,两个玩家的初始分值都是 0 。每一回合,玩家从数组的任意一端取一个数字(即,nums[0]…

【LeetCode】45. 跳跃游戏 II - 贪婪算法

目录标题 2023-8-11 09:49:25 45. 跳跃游戏 II 2023-8-11 09:49:25 自己没做出来&#xff0c;废物Orz class Solution {public int jump(int[] nums) {int length nums.length;int end 0;int maxPosition 0;int steps 0;for (int i 0; i < length - 1; i) {maxPosit…

首批获得金融级行业云平台认证,天翼云深耕行业云

云计算下半场看什么&#xff1f; 无疑是金融、政务、制造等传统政企用户的上云与用云。随着数字经济发展和产业数字化的提速&#xff0c;上云已是政企用户推动其数字化转型不断深入的重要抓手&#xff0c;成为不可阻挡的趋势。 与互联网用户相比&#xff0c;政企用户上云极为…

从数据仓库到数据结构:数据架构的演变之路

在上个世纪&#xff0c;从电子商务巨头到医疗服务机构和政府部门&#xff0c;数据已成为每家组织的生命线。有效地收集和管理这些数据可以为组织提供宝贵的洞察力&#xff0c;以帮助决策&#xff0c;然而这是一项艰巨的任务。 尽管数据很重要&#xff0c;但CIOinsight声称&…

那些年的Java开发经验记录

Java同步锁(浅显易懂&#xff0c;精简讲解) 详细讲解可以看这篇文章Java对象锁和类锁全面解析&#xff08;多线程synchronized关键字&#xff09; 精简如下&#xff1a; 1.不管什么锁&#xff0c;都是属于对象锁(类也是一种对象) 2.一个对象只有一个锁 3.锁最大可以锁整个…

【框架类】—Vue3的生命周期

一、生命周期的相关函数 onBeforeMount 页面渲染之前 和 onMounted渲染之后 示例 <template><div class"test"><div ref"el">组件初始化</div></div> </template> <script> //按需引入所需方法 import { ref,…

Redux - Redux在React函数式组件中的基本使用

文章目录 一&#xff0c;简介二&#xff0c;安装三&#xff0c;三大核心概念Store、Action、Reducer3.1 Store3.2 Reducer3.3 Action 四&#xff0c;开始函数式组件中使用4.1&#xff0c;引入store4.1&#xff0c;store.getState()方法4.3&#xff0c;store.dispatch()方法4.4&…

04-4_Qt 5.9 C++开发指南_时间日期与定时器

文章目录 1. 时间日期相关的类2. 源码2.1 可视化UI设计2.2 dialog.h2.3 dialog.cpp 1. 时间日期相关的类 时间日期是经常遇到的数据类型&#xff0c;Qt 中时间日期类型的类如下。 QTime:时间数据类型&#xff0c;仅表示时间&#xff0c;如 15:23:13。 QDate:日期数据类型&…

虹科方案 | 汽车总线协议转换解决方案

汽车总线&#xff1a; 汽车总线是一种用于在车辆电子系统中传输数据和控制信息的通信系统。它允许不同的电子控制单元&#xff08;ECU&#xff09;在车辆中相互通信&#xff0c;协调各个系统的操作&#xff0c;以实现功能的集成和协同工作。 在现代汽车中&#xff0c;综合通信…

微信公众号模板消息推送测试Python版无需服务器-保姆级教程

手上有个项目&#xff0c;是服务器挂着自动化的爬虫的&#xff0c;但我用的那个IP代理商没有用尽报警&#xff0c;导致几次IP用尽&#xff0c;程序爬不到数据&#xff0c;进程死循环了。之前想过发邮箱提醒我&#xff0c;但是邮箱把又不及时&#xff0c;老忘记看&#xff0c;因…

C语言必会题目(1)

W...Y的主页 &#x1f60a; 代码仓库分享❤️ 在学习语言时&#xff0c;最重要的就是练习&#xff0c;光听不练假把式。下面我就推荐一些C语言必会的题。 执行下面程序&#xff0c;正确的输出是&#xff08; &#xff09; int x5,y7; void swap() { int z; zx; xy; yz; } int…

数字孪生三剑客来了!MapGIS Earth for Unreal的自述

嗨&#xff0c;大家好&#xff01;我的名字叫MapGIS Earth for Unreal&#xff0c;是MapGIS数字孪生平台产品家族的一员。提起我&#xff0c;大家可能不熟悉&#xff0c;但是提起数字孪生&#xff0c;想必大家倍感兴趣。 数字孪生是充分利用物理模型、传感器更新、运行历史等数…