3D模型格式轉換工具如何與Parasolid集成?

概述

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.pswp.cn/news/40941.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/40941.shtml
英文地址,請注明出處:http://en.pswp.cn/news/40941.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

主數據管理案例-某政務

1、 背景介紹及難點分析 近年來&#xff0c;我國在大數據發展方面持續發力&#xff0c;取得了明顯成效。但也要看到&#xff0c;目前我國大數據發展還存在“孤島化”“碎片化”等問題&#xff0c;無序參與過度與創新參與不足并存&#xff0c;導致大數據資源配置統籌不&#xff…

【C++】list容器

1.list基本概念 2.list構造函數 #include <iostream> using namespace std;#include<list> //鏈表list容器構造函數//輸出list鏈表 void printList(const list<int>& L) {for (list<int>::const_iterator it L.begin(); it ! L.end(); it){cout &…

STM32入門學習之定時器PWM輸出

1.脈沖寬度調制PWM(Pulse Width Modulation)是利用微處理器的數字輸出來對模擬電路進行控制的一種非常有效的技術。PWM可以理解為高低電平的占空比&#xff0c;即輸出高電平時間與低電平時間的比值。PWM的應用是否廣泛&#xff0c;比如在步進電機的控制中&#xff0c;可以通過P…

【MySQL系列】-回表、覆蓋索引真的懂嗎

【MySQL系列】-回表、覆蓋索引真的懂嗎 文章目錄 【MySQL系列】-回表、覆蓋索引真的懂嗎一、MYSQL索引結構1.1 索引的概念1.2 索引的特點1.3 索引的優點1.4 索引的缺點 二、B-Tree與BTree2.1 B-Tree2.2 BTree2.3 B-Tree 與BTree樹的區別2.4 那么為什么InnoDB的主鍵最好要搞成有…

記一次 .NET 某外貿ERP 內存暴漲分析

一&#xff1a;背景 1. 講故事 上周有位朋友找到我&#xff0c;說他的 API 被多次調用后出現了內存暴漲&#xff0c;讓我幫忙看下是怎么回事&#xff1f;看樣子是有些擔心&#xff0c;但也不是特別擔心&#xff0c;那既然找到我&#xff0c;就給他分析一下吧。 二&#xff1…

【軟件測試】接口測試工具APIpost

說實話&#xff0c;了解APIpost是因為&#xff0c;我的所有接口相關的文章下&#xff0c;都有該APIpost水軍的評論&#xff0c;無非就是APIpost是中文版的postman&#xff0c;有多么多么好用&#xff0c;雖然咱也還不是什么啥網紅&#xff0c;但是不知會一聲就亂在評論區打廣告…

【力扣每日一題】2023.8.14 合并二叉樹

目錄 題目&#xff1a; 示例&#xff1a; 分析&#xff1a; 代碼&#xff1a; 題目&#xff1a; 示例&#xff1a; 分析&#xff1a; 給我們合并兩棵二叉樹&#xff0c;合并的方式就是把對應位置的節點的值相加&#xff0c;最后把合并后的二叉樹的根節點返回出去。 這類二…

You have docker-compose v1 installed, but we require Docker Compose v2.

curl -SL https://github.com/docker/compose/releases/download/v2.2.3/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose chmod x /usr/local/bin/docker-compose docker-compose --version

一文看盡R-CNN、Fast R-CNN、Faster R-CNN、YOLO、SSD詳解

一文看盡R-CNN、Fast R-CNN、Faster R-CNN、YOLO、SSD詳解 以下六篇文章總結詳細&#xff1a; 1. 一文讀懂目標檢測&#xff1a;R-CNN、Fast R-CNN、Faster R-CNN、YOLO、SSD 2. 【深度學習】R-CNN 論文解讀及個人理解 3、R-CNN論文詳解 4、一文讀懂Faster RCNN 5、學一百遍都…

JAVA基礎知識(六)——異常處理

異常 一、異常概述與異常體系結構二、常見異常三、異常處理機制一&#xff1a;try-catch-finally四、異常處理機制二&#xff1a;throws五、手動拋出異常&#xff1a;throw六、用戶自定義異常類七、開發中如何選擇使用try-catch-finally還是使用throws八、如何看待代碼中的編譯…

goland插件推薦Rider UI Theme Pack

推薦一個goland配色插件Rider UI Theme Pack&#xff0c;里面自帶visual assist配色&#xff0c;配色截圖如下&#xff1a; 直接在plugins里面進行搜索或者在插件home page下載后進行安裝&#xff0c; 然后按照下圖進行設置即可。 此插件還適用于Jetbrains旗下的Clion和Pycharm…

WX1860- ngbe-1.2.5 xdp程序在路由模式下,使用iperf工具測試數據包不轉發,用jmeter可以

本地驗證時重定向iperf包有出現calltrace錯誤&#xff0c;經推斷&#xff0c;系統PAGE_SIZE<8k時可能出現&#xff08;getconf PAGE_SIZE指令可查看&#xff09;&#xff0c;按下圖將ngbe_main.c的2350行ngbe_rx_bufsz改為ngbe_rx_pg_size可修復。其次&#xff0c;需要將加載…

鴻蒙3.1 基于Token的訪問控制

介紹 代碼路徑:security_access_token: ATM(AccessTokenManager)是OpenHarmony上基于AccessToken構建的統一的應用權限管理能力。 ATM(AccessTokenManager)是OpenHarmony上基于AccessToken構建的統一的應用權限管理能力。 應用的Accesstoken信息主要包括應用身份標識APPID、…

什么是游戲出海運營?

游戲出海運營&#xff0c;也稱為游戲海外運營&#xff0c;是指將原本面向國內市場的游戲產品拓展到國際市場&#xff0c;以在海外地區推廣、發行、運營游戲的過程。這涵蓋了從市場調研、產品適應性優化、本地化翻譯、推廣營銷、社區互動到客戶支持等一系列策略和活動&#xff0…

阿里云對象存儲服務OSS

1、引依賴 <dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>3.15.1</version> </dependency> <dependency><groupId>javax.xml.bind</groupId><artifa…

Mocha and Red and Blue

一、題目 題面翻譯 給定長為 n n n 的僅由 R \texttt{R} R、 B \texttt{B} B、 ? \texttt{?} ? 組成的字符串 S S S&#xff0c;請你在 ? \texttt{?} ? 處填入 R \texttt{R} R 或 B \texttt{B} B&#xff0c;使得相鄰位置字符相同的數量最少。 譯者 ajthreac 題…

Hadoop HA集群兩個NameNode都是standby或者主NameNode是standby,從NameNode是active的情況集錦

文章目錄 背景架構HDFS HA配置錯誤原因解決方案方案一方案二方案三&#xff08;首先查看自己各參數文件是否配置出錯&#xff09; 后記補充failovertransitionToActive 常用端口號及配置文件常用端口號hadoop3.xhadoop2.x 常用配置文件 這里說一下配置Hadoop HA集群可能出現的兩…

Linux多線程【初識線程】

?個人主頁&#xff1a; 北 海 &#x1f389;所屬專欄&#xff1a; Linux學習之旅 &#x1f383;操作環境&#xff1a; CentOS 7.6 阿里云遠程服務器 文章目錄 &#x1f307;前言&#x1f3d9;?正文1、什么是線程&#xff1f;1.1、基本概念1.2、線程理解1.3、進程與線程的關系…

分布式事務與解決方案

一、什么是分布式事務 首先我們知道本地事務是指事務方法中的操作只依賴本地數據庫&#xff0c;可保證事務的ACID特性。而在分布式系統中&#xff0c;一個應用系統被拆分為多個可獨立部署的微服務&#xff0c;在一個微服務的事務方法中&#xff0c;除了依賴本地數據庫外&#…

【深入理解ES6】塊級作用域綁定

1. var聲明及變量提升機制 提升&#xff08;Hoisting&#xff09;機制&#xff1a;通過關鍵字var聲明的變量&#xff0c;都會被當成在當前作用域頂部生命的變量。 function getValue(condition){if(condition){var value "blue";console.log(value);}else{// 此處…