3D模型格式转换工具如何与Parasolid集成?

news2024/9/27 9:22:17

概述

HOOPS Exchange包括一个 Parasolid 连接器,它允许 Parasolid 开发人员轻松地将 CAD 数据导入到活动的 Parasolid 会话中。如果源数据基于 Parasolid(NX、Solid Edge 或 SolidWorks),则数据将按原样导入。

这意味着您可以假设数据的质量与您在 SolidWorks、Solid Edge 或 NX 中获得的数据完全相同。如果数据源自非 Parasolid 系统(例如 Catia、Creo 或 STEP 等),那么我们的连接器会利用 Parasolid 和可选的 PS/BodyShop 来确保模型以最高质量导入。

Parasolid 模型与附加数据(例如 PMI、装配结构和元数据)之间的连接维护在映射表中。


HOOPS中文网http://techsoft3d.evget.com/

使用 Parasolid 连接器的 API 为:func:A3DAsmModelFileTranslateToPkParts:struct:A3DRepresentationItemTranslateToPkParts。在这两种情况下,可以导出到 Parasolid 会话的所有内容都会被传输,并且 Exchange 提供映射 ( :struct:A3DMiscPKMapper ) 以保持 PRC 数据和生成的PK_ENTITY之间的双向链接。例如:

  • A3DAsmProductOccurrence <-> PK_ASSEMBLY
  • A3DRiRepresentationItem <-> PK_BODY
  • A3DTopoFace <-> PK_FACE

即使面或边缘被缝合或合并在桥中,该方法也有效。在“完全集成”中,零件被一一传输,整个装配结构被传输到场景图中,允许您管理可见性、视图和其他元数据。

下图是基于 Parasolid 的应用程序的屏幕截图,显示了导入的 CatiaV5 模型,并维护了语义 PMI

../../_images/ParasolidDemoViewer.png

加载选项

中的加载选项A3DRWParamsTranslateToPkPartsData会对性能和模型质量产生重大影响,因此下面对每个选项进行回顾。

场地

类型

描述

m_eHealing

A3DETranslateToPkParts修复

枚举来控制愈合。修复控制拓扑公差的调整、消除几何不连续性、消除切片器面等。可以启用、禁用此选项,或仅对非 Parasolid 文件启用此选项。

m_eComputeAccurateEdges

A3DETranslateToPkPartsAccurate

枚举来控制精确的边缘计算。可以启用、禁用此选项,或仅对非 Parasolid 文件启用此选项。

m_bDisjoinIfFaceFaceError

A3D布尔

如果为 TRUE,则具有面-面错误的实体将被分离。这意味着当检测到错误时,有问题的人脸将与模型的其余部分隔离。仅在 PK_FACE_state_bad_face_face_c 错误的情况下才将面视为分离:自相交体。

m_bSew

A3D布尔

控制是否启用缝纫。

m_dSewingTolerance

A3D双

缝纫算法的公差。

m_eSimplifyGeometry

A3DETranslateToPkPartsSimplifyGeometry

通过尽可能将曲线数据转换为相应的分析形式(例如圆锥体、平面或球体)来简化几何和拓扑。可以启用、禁用此选项,或仅对非 Parasolid 文件启用此选项。

m_eMergeEntities

A3DETranslateToPkPartsMergeEntities

删除多余的边缘和表面,以减少内存占用并提高性能。可以启用、禁用此选项,或仅对非 Parasolid 文件启用此选项。

m_pcPSBodyShopPath

A3DUTF8Char*

PSBodyshop DLL 的路径。Exchange 将使用 PSBodyshop 来提高非 Parasolid 模型的导出质量。也就是说,更多的实体被近似为分析,并且更多的实体被合并。这是一个可选字段:仅当您想提供自己的库时才可以考虑设置它。

m_pMapper

A3DMiscMapper**

Mapper 用于检索 PRC 和 Parasolid 实体之间的链接。请参阅下面的部分。

m_bUseColour2Attribute

A3D布尔

使用 SDL/TYSA_COLOUR_2 Parasolid 属性

m_bUseUNameAttribute

A3D布尔

使用 SDL/TYSA_UNAME Parasolid 属性。

m_bUseLayerAttribute

A3D布尔

使用 SDL/TYSA_LAYER Parasolid 属性。

m_uiNbProc

A3D布尔

仅适用于 A3DAsmModelFileTranslateToPkParts:使用它来决定使用的进程数。如果为 0 1 或 A3DAsmModelFileTranslateToPkParts 将仅在当前进程中运行。对于任何其他值,操作将使用请求的进程数执行。如果系统不支持,该字段可能会自动限制为较低的值。

先决条件

HOOPS Exchange和Parasolid独立运行。因此,为了使用任何与Parasolid相关的Exchange功能,您将需要有效的Parasolid会话。HOOPS Exchange不会自动初始化Parasolid会话-会话管理由您决定。此外,请考虑以下事项:

  • Parasolid 的最低版本在 Windows 上为24.1 ,在 Linux 上为27.0。对于 Parasolid 收敛建模(多面数据),您至少需要28.1。

  • 执行环境必须有一个名为P_SCHEMA的已定义环境变量,该变量扩展为 Parasolid Schema文件夹的路径。

  • Parasolid 桥在 macOS 上不可用。

IOS环境具体配置

iOS 版 HOOPS Exchange 仅作为静态库 ( libA3DLIBS.a ) 提供。Parasolid 桥是一个名为libhepb.a 的静态库,可在我们的软件包中使用。如果您想在应用程序中使用我们的 Parasolid 桥,则必须将其链接到libhepb.a。如果你不使用它,它的功能就会被假冒的功能所取代。必须通过定义 A3DAPI_NO_IOS_HEPB_STUB` 来禁用此默认行为。因此,对于要在 iOS 上使用 Parasolid Bridge 运行 HOOPS Exchange 的客户端应用程序,必须满足以下条件:

  • 您的应用程序必须链接到libA3DLIBS.a和libhepb.a

  • 加载API时代码必须定义A3DAPI_NO_IOS_HEPB_STUB

测绘

翻译后,了解 PRC 中的哪些拓扑实体对应于 Parasolid 实体可能会很有用,反之亦然。此外,匹配并不总是“一对一”,因为治疗是在过程中完成的:

  • 缝纫过程可以根据提供的缝纫公差将两个闭合边缘合并为一个。

  • 太小的边可能会从生成的拓扑中删除

将模型加载到 Parasolid 会话中

以下代码片段演示了如何使用:func:A3DAsmModelFileTranslateToPkParts将模型加载到 Parasolid 会话中:

<span style="color:#000000">A3DRWParamsExportParasolidDatasExportOptions;A3D_INITIALIZE_DATA(A3DRWParamsExportParasolidData,sExportOptions);// ... set your desired export options hereintiNbPkParts;PK_PART_t*pPkParts;A3DAsmModelFileTranslateToPkParts(sHoopsExchangeLoader.m_psModelFile,&sOptions,// Parasolid options structure&pParamsTranslateToPkPartsData,// Parasolid translation structure&iNbPkParts,// [out] length of pPkParts&pPkParts);// [out] PK_PART_t entity IDs
</span>

重要提示: Parasolid 建模器使用米作为默认单位。将文件导出到 Parasolid 会话时,Exchange 会将模型中的比例转换为米。

在 Exchange 中设置 Parasolid 属性

转换为 Parasolid 的拓扑实体的唯一属性是标题以 H3DX_BRIDGE_* 开头的字符串属性。这些属性将被转换为 Parasolid,其名称以H3DX_BRIDGE/*开头。例如,标题为H3DX_BRIDGE_MyAttributeName的字符串属性将被转换为名称为H3DX_BRIDGE/MyAttributeName 的Parasolid 。

以下是在 Exchange 中设置 Parasolid 属性的方法:

<span style="color:#000000">A3DMiscAttribute*pAttribute=0;A3DMiscAttributeDatasAttributeData;A3D_INITIALIZE_DATA(A3DMiscAttributeData,sAttributeData);sAttributeData.m_pcTitle="Parasolid attributes.";// will create parasolid attribute: H3DX_BRIDGE/MyAttributeNameA3DMiscSingleAttributeDatasSingleAttributeData;A3D_INITIALIZE_DATA(A3DMiscSingleAttributeData,sSingleAttributeData);sSingleAttributeData.m_bTitleIsInt=false;sSingleAttributeData.m_eType=kA3DModellerAttributeTypeString;sSingleAttributeData.m_pcTitle=(char*)"H3DX_BRIDGE_MyAttributeName";sSingleAttributeData.m_pcData=(char*)"My string attribute.";sAttributeData.m_uiSize=1;sAttributeData.m_pSingleAttributesData=&sSingleAttributeData;A3DMiscAttributeCreate(&sAttributeData,&pAttribute);sBaseData.m_uiSize=1;sBaseData.m_ppAttributes=(A3DMiscAttribute**)malloc(sBaseData.m_uiSize*A3DUns32(sizeof(A3DMiscAttribute*)));sBaseData.m_ppAttributes=&pAttribute;CHECK_RET(A3DRootBaseSet(pEntity,&sBaseData))
</span>

在此示例中,pEntity是您要为其定义属性的A3DEntity 。

点击申请HOOPS试用http://x7pfmmn259623uby.mikecrm.com/l9292M9

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

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

相关文章

京东门详一码多端探索与实践 | 京东云技术团队

本文主要讲述京东门详业务在支撑过程中遇到的困境&#xff0c;面对问题我们在效率提升、质量保障等方向的探索和实践&#xff0c;在此将实践过程中问题解决的思路和方案与大家一起分享&#xff0c;也希望能给大家带来一些新的启发 一、背景 1.1、京东门详介绍 1.1.1、京东门…

python怎么下载以前的版本,python怎么下载第三方库

大家好&#xff0c;给大家分享一下python怎么下载以前的版本&#xff0c;很多人还不知道这一点。下面详细解释一下。现在让我们来看看&#xff01; Python 下载安装&#xff08;文末附python全套学习资料&#xff09; 安装python分三个步骤&#xff1a;1.下载python 2.安装pyth…

计网第三章(数据链路层)(二)

目录 一、可靠传输 二、可靠传输的三种实现机制 1.停止等待协议SW&#xff08;自动重传协议ARQ&#xff09; &#xff08;1&#xff09;理想情况&#xff08;即无差错情况&#xff09;&#xff1a; &#xff08;2&#xff09;有误码的情况&#xff1a; &#xff08;3&#…

Python中5种下划线的含义,你都知道吗

前言 大家早好、午好、晚好吖 ❤ ~欢迎光临本文章 话不多说&#xff0c;直接开搞&#xff0c;如果有什么疑惑/资料需要的可以点击文章末尾名片领取源码 1.单前导下划线&#xff1a;_var 当涉及到变量和方法名称时&#xff0c;单个下划线前缀有一个约定俗成的含义。 它是对程…

【04 英语语法:非谓语动词(不定式、分词、动名词)详解】

非谓语动词 非谓语动词&#xff1a;不定式&#xff0c;分词&#xff0c;动名词1. 不定式&#xff1a;动词原形&#xff08;do/原形不定式&#xff09;&#xff0c;带 to 不定式 &#xff08;to do&#xff09;1.1 带 to 不定式&#xff08;to do&#xff09;的功能&#xff1a;…

Apipost预执行脚本如何调用外部jar包

近期版本更新中Apipost推出插件管理&#xff0c;可以直接在预、后执行脚本中调用本地的脚本文件 导入脚本 在「系统设置」—「插件管理」中打开目录将要执行的脚本文件拖入到文件夹下 执行脚本 需要获取请求参数&#xff1a; const requestData request.request_bodys; 在…

版本控制工具Git集成IDEA的学习笔记(第二篇GitHub)

目录 一、团队内协作和跨团队协作讲述 1、团队内协作 2、跨团队协作 二、团队内合作交互方式 1、初始化本地库 2、创建远程库 3、在本地创建远程库地址的别名 4、推送操作 5、克隆操作 6、邀请加入团队&#xff0c;push操作 7、远程库修改的拉取操作 8、远程库修改…

【Vue】yarn 安装包时权限不足或者文件夹被占用导致安装失败

在一个 Vue3 项目中&#xff0c;用 yarn 安装 Vue 插件或者 Vue-Router 时&#xff0c;出现同样的 error &#xff0c;如下&#xff1a; An unexpected error occurred: “EPERM: operation not permitted, unlink ‘C:\Codefield\项目\yupao-frontend\node_modules\esbuild\w…

zabbix配置微信报警

如有错误&#xff0c;敬请谅解&#xff01; 此文章仅为本人学习笔记&#xff0c;仅供参考&#xff0c;如有冒犯&#xff0c;请联系作者删除&#xff01;&#xff01; 6.1 注册企业微信 企业微信注册地址&#xff1a;https://work.weixin.qq.com 设置总部门名称添加成员 也可以…

小程序项目组件的基本应用

宿主环境&#xff1a;程序运行必须依赖的环境 小程序的宿主环境 ---->手机微信(定位、扫码、支付等) 小程序的通信模型&#xff1a; 渲染层和逻辑层之间的通信(微信客户端转发)逻辑层和第三方服务器之间的通信(微信客户端转发) 小程序的运行机制&#xff1a; 启动&#xff1…

chrome屏幕共享插件的获取和配置

文章目录 1. 下载插件2. 加载插件3. 打开这个文件4. 关掉开发者模式 1. 下载插件 https://github.com/webrtc/samples/blob/gh-pages/release/desktopCaptureExtension.zip 不过我下载不了&#xff0c;找别人要了这个文件 解压 2. 加载插件 选择 扩展程序—》管理扩展程序 加…

拥抱变革 展现PMO力量 | 易趋受邀出席2023第十二届中国PMO大会

2023年8月12-13日&#xff0c;由PMO评论主办的第十二届中国PMO大会&#xff08;以下简称PMO大会&#xff09;在北京成功落幕。 &#xff08;主论坛一现场&#xff09; 本届大会以“拥抱变革 展现PMO力量”为主题&#xff0c;设置了“PMO与组织变革”、“PMO与组织战略”2个主论…

vueuse常用方法

useDateFormat 时间格式化 <script setup lang"ts">import { useNow, useDateFormat } from vueuse/coreconst formatted useDateFormat(useNow(), YYYY-MM-DD HH:mm:ss)</script><template><div>{{ formatted }}</div> </templa…

【爱书不爱输的程序猿】公网访问本地搭建的WEB服务器之详细教程

欢迎来到爱书不爱输的程序猿的博客, 本博客致力于知识分享&#xff0c;与更多的人进行学习交流 本地电脑搭建Web服务器并用cpolar发布至公网访问 前言1. 首先将PHPStudy、WordPress、cpolar下载到电脑2. 安装PHPStudy3. 安装cpolar&#xff0c;进入Web-UI界面4.安装wordpress5.…

赋能智慧零售,美格智能助力升级科技感购物体验

近期&#xff0c;一段消费者在商场使用智能购物车的视频冲上社交平台热搜榜&#xff0c;获得百万点赞&#xff0c;网友纷纷感慨科技进步的速度。许多人会好奇智能购物车和普通购物车有什么区别呢&#xff1f;智能购物车具有用户识别、室内定位、数据采集、精准营销、自助结算、…

低代码PaaS平台源码:基于Kubernetes云原生技术,快速构建企业级应用程序

低代码PaaS平台 低代码PaaS平台可以在云端开发、部署、运行低代码应用程序。使用独立数据库模型&#xff0c;基于Kubernetes云原生技术&#xff0c;每个租户均可拥有一套独立的存储、数据库、代码和命名空间&#xff0c;实现了100%的租户数据隔离&#xff0c;并可以随时迁移到…

【RP2040】香瓜树莓派RP2040之LED

本文最后修改时间&#xff1a;2022年09月05日 11:02 一、本节简介 本节介绍如何编写一个LED驱动。 二、实验平台 1、硬件平台 1&#xff09;树莓派pico开发板 ①树莓派pico开发板*2 ②micro usb数据线*2 2&#xff09;电脑 2、软件平台 1&#xff09;VS CODE 三、版权声…

ppt转pdf免费的工具哪个好用?免费PPT转换为PDF的方法分享

在我们的工作和学习中&#xff0c;将PPT文件转换为PDF格式对于分享和储存具有重要意义。PPT文件是一种常用的演示工具&#xff0c;用于展示和传达信息。然而&#xff0c;PPT文件在不同的平台和设备上可能存在格式兼容性的问题&#xff0c;而且文件大小较大&#xff0c;不方便共…

C#__使用Type类反射数据的基本用法

// 简单介绍 // 元数据&#xff08;metadata&#xff09;&#xff1a;与程序及其类型有关的数据。 // 反射&#xff1a;一个运行的程序查看本身元数据或其他程序集中的元数据的行为 // Assembly类&#xff1a;允许访问给定程序集的元数据&#xff0c;包含了可以加载和执行程序…

爬虫IP时效问题:优化爬虫IP使用效果实用技巧

目录 1. 使用稳定的代理IP服务提供商&#xff1a; 2. 定期检测代理IP的可用性&#xff1a; 3. 配置合理的代理IP切换策略&#xff1a; 4. 使用代理IP池&#xff1a; 5. 考虑代理IP的地理位置和速度&#xff1a; 6. 设置合理的请求间隔和并发量&#xff1a; 总结 在爬虫过…