高性能Web端BIM 3D轻量化引擎HOOPS Commuicator的破碎模式是什么?

2023-11-07 17:28

本文主要是介绍高性能Web端BIM 3D轻量化引擎HOOPS Commuicator的破碎模式是什么?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

HOOPS Web Viewer组件使将多个模型聚合在一起变得容易。此类模型可能由联合BIM模型中的各种学科、汽车配置中的底盘不同变体或复杂MCAD装配的子组件组成。复杂的组件,例如汽车或飞机,由成百上千的单个零件组成。

通常在原始CAD装配中,装配的每个子组件都将保存在其自己的文件中。HOOPS Communicator破碎模式”支持的目标是在将装配体转换为SC格式时在很大程度上保留该结构。

 我们没有为装配创建单个的整体式高速缓存(SC)模型,而是为每个零件生成了单独的SC模型,然后是将这些零件聚合为表示完整装配“master主模型”或XML产品结构文件。

破碎模式的优势

在HOOPS Communicator中查看复杂CAD装配的一种方法是使用我们的转换工具或通过直接创作创建一个包含装配的所有零件的SC模型。尽管此SC模型可能会变得很大,但Stream Cache Server中的智能流式支持可确保几乎立即查看此模型。结合内存限制或使用服务器端渲染,甚至可以在一般的笔记本电脑或移动电话上查看大型整体模型。您还可以使用OnDemand模式将模型保留在服务器上,并且仅请求用户感兴趣的零部件或子装配。

与单片模式不同,破碎模式的主要优势在于它如何处理装配体的变体和配置(子模型变更),而PLM系统就是一个最好的示例。在同一装配体上工作的多个用户意味着数据在不断发展和变化,零件的新变体正在“检入”,一些可能被删除,添加并重新配置子装配。

此外,用户可能希望查看装配体的较旧状态或模拟其他配置。在大多情况下,每次请求模型更改或模型的不同变体时,必须生成一个新的单片SC模型,该模型可能速度慢且资源量大。使用破碎的方法,创建装配体的新配置只需更新装配体的XML产品层次结构,然后重新转换已更改的模型的组件。在大多数情况下,它使查看模型的不同变体几乎是即时的。

为了快速查看,这首先涉及创建XML产品结构文件。该文件描述了模型的结构及其对其他SC模型的依赖关系,而后者又通常代表装配的零件。然后,在可选步骤中,我们的转换工具可以从此XML文件生成SC master主模型。可以像其他任何SC模型一样,通过流缓存服务器将该文件加载到查看器中。

请参阅下面的两个图,其中显示了典型的稍微简化的装配树层次结构以及与此层次结构关联的文件。

Catia装配的简化。请注意,每个唯一零件由单个"catpart"文件表示,而每个装配体(和子装配体)由"catproduct"文件表示。实例零件(如螺钉)只表示一次,但在层次结构中多次显示。

将第一个关系图中显示的装配体转换为破碎SC模型时,将为装配体中的每个唯一零件创建SC文件。此外,可能从包含装配体结构和引用零件级流缓存模型的XML产品结构文件创建SC master模型。SC的破碎实现不支持引用子装配,因此这些子装配被展平。

客户端破碎

尽管您可以在服务器上创建一个与顶层装配体文件等效的“master主模型”,但这种方法的缺点是,每次装配体结构发生更改时,都需要重新生成此主模型 。此外,SC主模型必须通过HOOPS流缓存服务器进行流传输,并且不能为SCS文件。 该方法的替代方法是“客户端破碎”。

在之前,我们已经谈到了客户端支持的功能。通常的方法是您利用我们的导入工具转换CAD装配时或直接由您的应用程序生成的XML产品结构文件。您只需将此文件传递给相关的loadSubtree函数:

  • loadSubtreeFromXMLFile
  • loadSubtreeFromXMLBuffer
  • loadSubtreeFromScsXMLFile
  • loadSubtreeFromScsXMLBuffer

如您所见,客户端破碎也支持SCS文件,这意味着它不需要流缓存服务器。

客户端破碎的缺点是,您需要将XML产品结构文件传输到浏览器客户端(或在那里生成)。流加载性能和一般帧速率也不如服务器端破碎,因为流式处理之前对模型进行的优化较少。

使用HTTP压缩来减少资源大小

具有许多零件的复杂装配体的XML文件可能会变得很大。随着此文件的增加,将资源传输到客户端进行处理的时间增加了,从而降低了用户体验,因为他们必须等待更长的时间才能看到屏幕上的内容。

HTTP压缩是处理大型XML装配文件时获得性能提升的一种简单方法。此方案在服务器或浏览器级别实现,不需要修改客户端代码。启用压缩后,压缩算法将应用于服务器上的数据,然后再发送给客户端。在浏览器和服务器之间协商编码。

在下图中,大型装配的XML文件为11.6mb。发送回客户端的响应为717kb,而资源大小为11.6mb。检查响应头,我们可以看到content-encoding设置为gzip,而content-type是application/xml。

启用压缩所需的步骤将因服务器和框架而异。但是,必须确保为xml文件启用压缩。

申请HOOPS试用icon-default.png?t=N7T8http://x7pfmmn259623uby.mikecrm.com/l9292M9

如果您的企业也有相关需求,可以联系我们哦~

这篇关于高性能Web端BIM 3D轻量化引擎HOOPS Commuicator的破碎模式是什么?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/365152

相关文章

Linux系统配置NAT网络模式的详细步骤(附图文)

《Linux系统配置NAT网络模式的详细步骤(附图文)》本文详细指导如何在VMware环境下配置NAT网络模式,包括设置主机和虚拟机的IP地址、网关,以及针对Linux和Windows系统的具体步骤,... 目录一、配置NAT网络模式二、设置虚拟机交换机网关2.1 打开虚拟机2.2 管理员授权2.3 设置子

JSON Web Token在登陆中的使用过程

《JSONWebToken在登陆中的使用过程》:本文主要介绍JSONWebToken在登陆中的使用过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录JWT 介绍微服务架构中的 JWT 使用结合微服务网关的 JWT 验证1. 用户登录,生成 JWT2. 自定义过滤

一文教你如何将maven项目转成web项目

《一文教你如何将maven项目转成web项目》在软件开发过程中,有时我们需要将一个普通的Maven项目转换为Web项目,以便能够部署到Web容器中运行,本文将详细介绍如何通过简单的步骤完成这一转换过程... 目录准备工作步骤一:修改​​pom.XML​​1.1 添加​​packaging​​标签1.2 添加

SpringBoot如何通过Map实现策略模式

《SpringBoot如何通过Map实现策略模式》策略模式是一种行为设计模式,它允许在运行时选择算法的行为,在Spring框架中,我们可以利用@Resource注解和Map集合来优雅地实现策略模式,这... 目录前言底层机制解析Spring的集合类型自动装配@Resource注解的行为实现原理使用直接使用M

C#原型模式之如何通过克隆对象来优化创建过程

《C#原型模式之如何通过克隆对象来优化创建过程》原型模式是一种创建型设计模式,通过克隆现有对象来创建新对象,避免重复的创建成本和复杂的初始化过程,它适用于对象创建过程复杂、需要大量相似对象或避免重复初... 目录什么是原型模式?原型模式的工作原理C#中如何实现原型模式?1. 定义原型接口2. 实现原型接口3

大数据spark3.5安装部署之local模式详解

《大数据spark3.5安装部署之local模式详解》本文介绍了如何在本地模式下安装和配置Spark,并展示了如何使用SparkShell进行基本的数据处理操作,同时,还介绍了如何通过Spark-su... 目录下载上传解压配置jdk解压配置环境变量启动查看交互操作命令行提交应用spark,一个数据处理框架

MySQL常见的存储引擎和区别说明

《MySQL常见的存储引擎和区别说明》MySQL支持多种存储引擎,如InnoDB、MyISAM、MEMORY、Archive、CSV和Blackhole,每种引擎有其特点和适用场景,选择存储引擎时需根... 目录mysql常见的存储引擎和区别说明1. InnoDB2. MyISAM3. MEMORY4. A

web网络安全之跨站脚本攻击(XSS)详解

《web网络安全之跨站脚本攻击(XSS)详解》:本文主要介绍web网络安全之跨站脚本攻击(XSS)的相关资料,跨站脚本攻击XSS是一种常见的Web安全漏洞,攻击者通过注入恶意脚本诱使用户执行,可能... 目录前言XSS 的类型1. 存储型 XSS(Stored XSS)示例:危害:2. 反射型 XSS(Re

MySQL InnoDB引擎ibdata文件损坏/删除后使用frm和ibd文件恢复数据

《MySQLInnoDB引擎ibdata文件损坏/删除后使用frm和ibd文件恢复数据》mysql的ibdata文件被误删、被恶意修改,没有从库和备份数据的情况下的数据恢复,不能保证数据库所有表数据... 参考:mysql Innodb表空间卸载、迁移、装载的使用方法注意!此方法只适用于innodb_fi

解决JavaWeb-file.isDirectory()遇到的坑问题

《解决JavaWeb-file.isDirectory()遇到的坑问题》JavaWeb开发中,使用`file.isDirectory()`判断路径是否为文件夹时,需要特别注意:该方法只能判断已存在的文... 目录Jahttp://www.chinasem.cnvaWeb-file.isDirectory()遇