HOOPS Exchange包含一个Parasolid连接器,允许Parasolid开发人员轻松将CAD数据导入活动的Parasolid会话。如果源数据是基于Parasolid的(NX、Solid Edge或SolidWorks),则数据将原封不动地导入。这意味着您可以假设数据的质量与您在SolidWorks、Solid Edge或NX中获得的数据完全相同。如果数据来自非Parasolid系统(例如CATIA、Creo或STEP等),则我们的连接器会利用Parasolid和可选的PS/BodyShop来确保以最高质量导入模型。Parasolid模型与其他数据(例如PMI、装配结构和元数据)之间的连接在映射表中维护。
使用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
一、先决条件
HOOPS Exchange和Parasolid独立运行。因此,为了使用任何与Parasolid相关的Exchange功能,您需要一个有效的Parasolid会话。HOOPS Exchange不会自动初始化Parasolid会话-会话管理由您决定。此外,请考虑以下事项:
- Parasolid的最低版本在Windows上为24.1,在Linux上为27.0。对于Parasolid收敛建模(多面数据),您至少需要28.1。
- 执行环境必须有一个名为P_SCHEMA的定义环境变量,该变量扩展为Parasolid Schema文件夹的路径。
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会话中:
A3DRWParamsExportParasolidData sExportOptions; A3D_INITIALIZE_DATA(A3DRWParamsExportParasolidData, sExportOptions); // ... set your desired export options here int iNbPkParts; 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
重要提示:Parasolid建模器使用米作为其默认单位。将文件导出到Parasolid会话时,Exchange会将模型中的比例转换为米。
四、在Exchange中设置Parasolid属性
拓扑实体中唯一可转换为Parasolid的属性是标题以H3DX_BRIDGE_*开头的字符串属性。这些属性将转换为名称以H3DX_BRIDGE/*开头的Parasolid。
例如,标题为H3DX_BRIDGE_MyAttributeName的字符串属性将转换为名称为H3DX_BRIDGE/MyAttributeName的Parasolid 。
以下是在Exchange中设置Parasolid属性的方法:
A3DMiscAttribute* pAttribute = 0; A3DMiscAttributeData sAttributeData; A3D_INITIALIZE_DATA(A3DMiscAttributeData, sAttributeData); sAttributeData.m_pcTitle = "Parasolid attributes."; // will create Parasolid attribute: H3DX_BRIDGE/MyAttributeName A3DMiscSingleAttributeData sSingleAttributeData; 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));
在这个例子中,pEntity是您想要定义属性的A3DEntity 。
慧都科技已经为100+企业提供一站式的3D开发解决方案,负责3D ACIS Modeler、Parasolid、HOOPS & CEETRON等3D产品的销售、试用、技术支持,赋能航空航天、建筑工程、船舶制造、机械加工、汽车等客户成功构建工程应用!欢迎咨询:023-6866168
↓↓扫码关注“HOOPS技术”,及时获取更多3D资讯↓↓
发表评论