CAD转换器:CAD Exchanger SDK --Crack

news2024/11/17 14:22:30

转换器

目录

  • 概述
  • 读取文件
    • 增量加载
  • 写入文件
  • 格式特定的详细信息
  • 进度状态支持
  • 例子

读取和写入多种 CAD 和 BIM 文件格式。

概述

读取(导入)和写入(导出)文件是使用 CAD Exchanger SDK 时的主流场景。支持的格式列表可在此处获取。

读取文件时,结果会转换为通用数据模型,该模型提供通用格式中立的数据表示和访问 API。同样,要写入文件,此通用表示形式将用作源。

如果您的应用程序已经可以读取某些(简单)文件格式,例如 STL 或 FBX,那么集成 CAD Exchanger SDK 的最快(尽管不是最佳)方法是添加其支持的任何格式的简单转换,包括读取文件,然后以您的应用程序可以读取的格式保存结果,如下所示:

#include <cadex/ModelData_ModelReader.hxx>
#include <cadex/ModelData_ModelWriter.hxx>
使用命名空间cadex;
ModelData_Model aModel;
ModelData_ModelReader aReader;
if (!aReader.Read ( " myfile.jt" , aModel)) {
//读取文件时出错
}
ModelData_ModelWriterer aWriter;
if (!aWriter.Write (aModel, "myfile.stl" )) {
//写入文件时出错
}

尽管上述方法需要最少的实现工作,但它涉及使用中间文件并承担数据质量恶化的风险(由于使用临时格式)。

另一种更可靠(因此推荐)的解决方案是使用数据模型API 访问内存中的数据,而不是将其转储到磁盘上。例如,最佳方法不是编写 STL 文件,而是查阅内存中的多边形表示(包含三角形网格)来访问网格节点坐标、法线和连接信息。

在 CAD Exchanger 中处理读写的主要方法有两种:

  • 使用通用API。ModelData_ModelReader和ModelData_ModelWriter类可用作单一入口点,能够处理 CAD Exchanger 支持的每种格式。
  • 使用特定于格式的 API。特定格式的读取器和写入器可用于更好地控制导入和导出过程。每种格式的类别均由相应的前缀指定,例如 JT_、ACIS_、IGES_ 等。

文件由磁盘上的(绝对)文件名来标识。许多转换器还支持任意 (C++) 流。

有关每种格式支持范围的详细信息,请参阅支持的格式。

读取文件

ModelData_ModelReader是读取文件的主要类,尤其是需要导入多种格式时。使用方法很简单,只需调用一个函数,其中包含应读取的文件的路径和目标ModelData_Model(对于 MCAD 格式)或ModelData_BIMModel(对于 BIM 格式)实例,该读取器本身确定文件的格式并执行相应的导入。

数据模型对象由从正在读取的文件导入的内容填充。转换前模型不会被清理,因此同一模型中可能会积累一些文件。

#include <cadex/ModelData_ModelReader.hxx>
使用命名空间cadex;
ModelData_Model aModel;
ModelData_ModelReader aReader;
if (!aReader.Read ( " myfile.igs" , aModel)) {
//读取文件时出错
}

或者,如果客户端应用程序需要对读取过程进行更严格的控制,则可以使用单独格式的读取器,如下所示:

#include <cadex/IGES_Reader.hxx>
使用命名空间cadex;
ModelData_Model aModel;
IGES_Reader aReader;
if (aReader.ReadFile ( "myfile.igs" ) && aReader.Transfer ( aModel)) {
//好的
}否则{
//读取IGES文件时出错
}

请注意,以这种方式读取文件需要调用两个函数:

  • Base_Reader::ReadFile()解析文件并在内存中构造内部特定格式的文件表示形式;
  • Base_Reader::Transfer()将内部特定于格式的文件表示转换为中性的与格式无关的数据模型。

增量加载

巨大的程序集可能需要大量时间来加载。您可以在根据请求加载单个零件或子组件时实现增量加载,而不是让最终用户等待整个读取阶段完成(例如,通过单击 UI 中与组件树视图中的节点相对应的复选框) )。

在这种情况下,可以非常快速地导入整个装配层次结构,并且可以推迟重要的几何图形。CAD Exchanger Lab 有一个选项可以激活此延迟模式,因此您可能需要检查它。

有关详细信息,请参阅延迟转换。

写入文件

ModelData_ModelWriter将 3D 数据写入各种格式的主要方式。与导入类似,只需调用指定文件路径的单个函数,编写器会根据文件扩展名自动确定如何导出模型。再次强调,如果在同一工作流程中使用导出为多种格式,这将特别有用。

#include <cadex/ModelData_ModelWriter.hxx>
使用命名空间cadex;
ModelData_Model aModel = ...;
ModelData_ModelWriter aWriter;
if (!aWriter.Write ( aModel, "myfile.stp" )) {
//写入STEP文件时出错
}

与导入类似,也可以使用每种格式的编写器类将模型导出为特定格式:

#include <cadex/Para_Writer.hxx>
使用命名空间cadex;
ModelData_Model aModel = ...;
Para_Writer aWriter;
if ( aWriter.Transfer (aModel) && aWriter.WriteFile ( " myfile.x_t" )) {
//好的
}否则{
//写入Parasolid文件时出错
}

与读取文件对称,写入文件也包含两个步骤:

  • Base_Writer::Transfer()将内部数据模型转换为内存中特定格式的文件表示形式;
  • Base_Writer::WriteFile()根据内部格式特定的文件表示形式格式化文件。

格式特定的详细信息

有关每种格式的详细信息,包括支持的格式版本、范围、参数等,请参阅转换器详细信息。

进度状态支持

通用和特定格式的读取器和写入器都支持进度状态更新。下面的示例演示了如何将观察者添加到内部进度状态对象:

ModelData_Model aModel;
//MyObserver是Base_ProgressStatus::Observer的子类
MyObserver anObserver (...);
Base_ProgressStatus aStatus;
a 状态。注册(观察者);
ModelData_ModelReader aReader;
一位读者。ProgressStatus () = aStatus;
一位读者。读取(a文件名,a模型);

当使用特定于格式的读取器和写入器时,需要将进度状态分为多个范围,以确保在导入的两个阶段中连续填充状态:

{.cp。
ModelData_Model aModel;
//MyObserver是Base_ProgressStatus::Observer的子类
MyObserver anObserver (...);
Base_ProgressStatus aStatus;
aStatus.Register (anObserver);
{
ACIS_Reader aReader;
aReader.ProgressStatus() = aStatus;
布尔anIsOK = false ;
{
Base_ProgressScope aScope(aStatus, 25); // 25%
anIsOK = aReader.ReadFile(aFileName);
}
if (anIsOK) {
Base_ProgressScope aScope(aStatus, 75); // 75%
anIsOK = aReader.Transfer (aModel);
}
}

有关详细信息,请参阅进度状态支持和进度栏示例。

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

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

相关文章

Misc | bucket 第二届“奇安信”杯网络安全技能竞赛

题目描述&#xff1a; 解密Base全家桶。 密文&#xff1a; 下载附件&#xff0c;解压得到一个txt文本&#xff0c;打开如下。 3441344134363435344435323442344534423441343635353334353333323442343935413442353434393535354135333441344534353536353535333332353534413436…

酷柚易汛ERP-自定义打印整体介绍

1、产品介绍 每种单据系统预设常用模板&#xff0c;提供A4纸张、三等分、二等分&#xff0c;销货单额外提供80mm、58mm供用户选择&#xff1b;每张单据可设置一个默认模板和多个常用模&#xff1b;除默认模板外&#xff0c;其他模板都允许删除&#xff0c;用户可以根据公司业务…

ArcGIS实现矢量区域内所有要素的统计计算

1、任务需求&#xff1a;统计全球各国所有一级行政区相关属性的总和。 &#xff08;1&#xff09;有一个全球一级行政区的矢量图&#xff0c;包含以下属性&#xff08;洪灾相关属性 province.shp&#xff09; &#xff08;2&#xff09;需要按照国家来统计各个国家各属性的总值…

前端前沿技术

文章目录 网站静态化PWA - Progressive Web APP, 渐进式 Web 应用PWA 简介解决了哪些问题?PWA 的优势浏览器支持情况参考文档 Weex 是一个可以使用现代化的 Web 技术开发高性能原生应用的框架。高性能跨平台贴近前端生态被大规模的使用 GraphQL[一种用于 API 的查询语言](http…

并发事务下,不同隔离级别可能出现的问题

并发事务下&#xff0c;不同隔离级别可能出现的问题 1、事务的 ACID2、并发事务下&#xff0c;不同隔离级别可能出现的问题2.1、脏写2.2、脏读2.3、不可重复读2.4、幻读 3、SQL 中的四种隔离级别 1、事务的 ACID 原子性&#xff08;Atomicity&#xff09;&#xff1a;原子性意味…

数据结构 | 栈的实现

数据结构 | 栈的实现 文章目录 数据结构 | 栈的实现栈的概念及结构栈的实现 Stack.h初始化栈入栈出栈获取栈顶元素获取栈中有效元素个数检测栈是否为空销毁栈 Stack.c 栈的概念及结构 栈&#xff1a;一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和删除元素操作。…

勘察设计考试公共基础之数学篇

1、数学 向量点积&#xff1a;向量叉积&#xff1a;平面的法向量为n&#xff08;A&#xff0c;B&#xff0c;C&#xff09;&#xff0c;则该平面的点法式方程为&#xff1a; A&#xff08;x-x0&#xff09;B&#xff08;y-y0&#xff09;C&#xff08;z-z0&#xff09;0 两平…

爬虫,TLS指纹 剖析和绕过

当你欲爬取某网页的信息数据时&#xff0c;发现通过浏览器可正常访问&#xff0c;而通过代码请求失败&#xff0c;换了随机ua头IP等等都没什么用时&#xff0c;有可能识别了你的TLS指纹做了验证。 解决办法&#xff1a; 1、修改 源代码 2、使用第三方库 curl-cffi from curl…

【T690 之十一】基于方寸EVB2开发板,结合 Eclipse+gdb+gdbserver 调试 CCAT 的流程总结

目录 1. 准备工作1.1 Eclipse1.2 工程编译1.3 烧写固件 2. 创建工程2.1 搭建调试工程2.2 配置Dbug调试信息 3. 调试4. 手动调试过程4. 总结 备注&#xff1a; 1&#xff0c;假设您已对方寸微电子的T690系列芯片的使用方式都有了一定的了解&#xff0c;可以根据此文的配置进行Li…

3D模型人物换装系统二(优化材质球合批降低DrawCall)

3D模型人物换装系统 介绍原理合批材质对比没有合批材质核心代码完整代码修改总结 介绍 本文使用2018.4.4和2020.3.26进行的测试 本文没有考虑法线贴图合并的问题&#xff0c;因为生成法线贴图有点问题&#xff0c;放在下一篇文章解决在进行优化 如果这里不太明白换装的流程可以…

基于物理的多偏置射频大信号氮化镓HEMT建模和参数提取流程

标题&#xff1a;Physics-Based Multi-Bias RF Large-Signal GaN HEMT Modeling and Parameter Extraction Flow 来源&#xff1a;JOURNAL OF THE ELECTRON DEVICES SOCIETY 摘要 本文展示了一种一致的Al镓氮化物&#xff08;AlGaN&#xff09;/氮化镓&#xff08;GaN&#x…

CSS省略号n行公式

记得改图中的n&#xff0c;这是你需要的几行省略号&#xff01;复制中间的5行就行了。 .text {overflow: hidden;text-overflow: ellipsis;display: -webkit-box;-webkit-line-clamp: n; //n为你想省略的行数&#xff0c;需要改-webkit-box-orient: vertical; } 这是…

卷积神经网络(1)

目录 卷积 1 自定义二维卷积算子 2 自定义带步长和零填充的二维卷积算子 3 实现图像边缘检测 4 自定义卷积层算子和汇聚层算子 4.1 卷积算子 4.2 汇聚层算子 5 学习torch.nn.Conv2d()、torch.nn.MaxPool2d()&#xff1b;torch.nn.avg_pool2d()&#xff0c;简要介绍使用方…

时间序列预测实战(十三)定制化数据集FNet模型实现滚动长期预测并可视化结果

论文地址->官方论文代码地址 官方代码地址->官方下载地址Github 个人修改代码地址-> 个人修改版本呢的下载地址CSDN 一、本文介绍 本博客将介绍一种新的时间序列预测模型——FNet&#xff0c;它通过使用傅里叶变换代替自注意力机制&#xff0c;旨在解决传统Transf…

瑞吉外卖Day03

小张推荐:瑞吉外卖Day02 1.启用/禁用员工账号 1.1 思路分析 1.2Controller层 PutMapping()public R<String> update(RequestBody Employee employee, HttpServletRequest request) {log.info(employee.toString());Long emp (Long) request.getSession().getAttribu…

AI毕业设计生成器(基于AI大模型技术开发)

这是一个辅助生成计算机毕业设计的工具&#xff0c;可以自动完成毕业设计的源码。它基于几百个github上面开源的java和python项目&#xff0c;运用tengsorflow技术&#xff0c;训练出了AI大模型。基本实现了计算机毕业设计生成器&#xff0c;能够初步生成Java或python基本源码。…

遇到问题,我该如何提问?

作为IT行业的从业者&#xff0c;我们深知程序员在保障系统安全、数据防护以及网络稳定方面所起到的重要作用。他们是现代社会的护城河&#xff0c;用代码构筑着我们的未来。那程序员的护城河又是什么呢&#xff1f;是技术能力的深度&#xff1f;是对创新的追求&#xff1f;还是…

一些分享| 在线笔记、GIF图片生成方法

文章目录 在线笔记视频转GIF 本片博客旨在挖掘一些好用且免费的在线平台&#xff0c;持续更新中~ 正所谓科技解放双手&#xff0c;使用在线平台可以方便快捷地学习办公&#xff0c;节省时间。 在线笔记 语雀 https://www.yuque.com/dashboard 语雀是笔者用得最长最久的平台了…

Pandas教程(非常详细)(第五部分)

接着Pandas教程&#xff08;非常详细&#xff09;&#xff08;第四部分&#xff09;&#xff0c;继续讲述。 二十五、Pandas sample随机抽样 随机抽样&#xff0c;是统计学中常用的一种方法&#xff0c;它可以帮助我们从大量的数据中快速地构建出一组数据分析模型。在 Pandas…

2.5 CE修改器:寻找数值指针

上一步阐述了如何使用代码替换功能对付变化位置的数据地址&#xff0c;但这种方法往往不能达到预期的效果&#xff0c;所以我们需要学习如何利用指针&#xff0c;在本关的Tutorial.exe窗口下面有两个按钮&#xff0c;一个会改变数值&#xff0c;另一个不但能改变数值而且还会改…