CAD转换器:CAD Exchanger SDK --Crack

转换器

目录

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

读取和写入多种 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);
}
}

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

HTML-fieldset与legend的使用

fieldset 可以对表单组件进行分组 legend 可以对分组进行命名 效果&#xff1a; 源码&#xff1a; <form action""><fieldset><legend>主要信息</legend><!-- 第一种方法:用id的方式绑定账户(文字)和输入框 --><label for"z…

合作共赢 共克时艰

​ 采访人&#xff1a;最近财政部11月6日通报隐性债务问责典型案例&#xff0c;这中间涉及湖北多所重要地市&#xff0c;形成新增隐性债务200多亿&#xff0c;您怎么看这件事&#xff1f; 辜渝傧&#xff1a;是的&#xff0c;无论是数字还是涉及的范围都可以明显感觉到“防范…

④【数据查询】MySQL查询语句,拿来即用。

个人简介&#xff1a;Java领域新星创作者&#xff1b;阿里云技术博主、星级博主、专家博主&#xff1b;正在Java学习的路上摸爬滚打&#xff0c;记录学习的过程~ 个人主页&#xff1a;.29.的博客 学习社区&#xff1a;进去逛一逛~ MySQL查询操作 ④【数据查询】MySQL查询语句&a…

2023.11-9 hive数据仓库,概念,架构,元数据管理模式

目录 0.数据仓库和数据库 数据仓库和数据库的区别 数据仓库基础三层架构 一.HDFS、HBase、Hive的区别 二.大数据相关软件 三. Hive 的优缺点 1&#xff09;优点 2&#xff09;缺点 四. Hive 和数据库比较 1&#xff09;查询语言 2&#xff09;数据更新 3&#xff09;…

SQL 存储过程优化

问题&#xff1a;一个复杂的6个表的left jion 语句&#xff0c;发现设置为定时任务后最高时长为18分钟 1、原因分析&#xff1a;对复杂SQL 进行拆分验证 发现是合同明细表和 产品表的left jion 时间过长&#xff0c;发现 合同明细表每天为3w条&#xff0c;之前做过优化 对每个…

1024程序员节特辑 | Spring Boot实战 之 MongoDB分片或复制集操作

Spring实战系列文章&#xff1a; Spring实战 | Spring AOP核心秘笈之葵花宝典 Spring实战 | Spring IOC不能说的秘密&#xff1f; 国庆中秋特辑系列文章&#xff1a; 国庆中秋特辑&#xff08;八&#xff09;Spring Boot项目如何使用JPA 国庆中秋特辑&#xff08;七&#…

【Recap教程】autodesk recap软件的安装、认识与使用

一、autodesk recap概述 1. recap介绍 Autodesk Recap是一款由Autodesk公司推出的三维扫描软件,它能够转换多种数据源(如点云、激光雷达、照片)为可视的三维模型。该软件的使用使得用户可以更容易地生成高质量、完整的三维模型。Autodesk Recap通常用于建筑、土木工程、汽…

将VS工程转为Qt的pro工程及VS安装Qt插件后没有create basic .pro file菜单问题解决

目录 1. 前言 2. VS工程转为pro工程 3. 没有create basic .pro file菜单 1. 前言 很多小伙伴包括本人&#xff0c;如果是在Windows下开发Qt程序&#xff0c;偏好用Visual Studio外加装个Qt插件进行Qt开发&#xff0c;毕竟Visual Studio确实是功能强大的IDE&#xff0c;但有时…

谷歌黑客(google hacking)

免责声明 由于传播、利用本公众号CSJH网络安全团队所提供的信息而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;公众号CSJH网络安全团队及作者不为此承担任何责任&#xff0c;一旦造成后果请自行承担&#xff01;如有侵权烦请告知&#xff0c…

【藏经阁一起读】(76)__《“DNS+”发展白皮书》

【藏经阁一起读】&#xff08;76&#xff09;__《“DNS”发展白皮书》 作者&#xff1a; 梁卓 宋林健 陈剑 刘志辉 刘保君 郭丰 马晨迪 马永 孙俊哲 沈建伟 嵇叶楠 孙宛月 张建光 李贤达 张晓军 赵华 发布时间&#xff1a;2023-10-31 章节数&#xff1a;6 一、基础知识 1.1、…

SOLIDWORKS实用技巧之焊件轮廓应用

1.焊件轮廓库官方下载入口 焊件轮廓可以自制&#xff0c;也可以从软件中在线下载获取直接使用&#xff0c;如图1&#xff0c;联网状态按ctrl左键点击下载&#xff0c;解压后获得库文件。 图1 图2 2.库放置的位置和配置 从SOLIDWORKS2014版起&#xff0c;软件焊件轮廓库支持可…

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

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

Xilinx Artix7-100T低端FPGA解码MIPI视频,基于MIPI CSI-2 RX Subsystem架构实现,提供工程源码和技术支持

目录 1、前言免责声明 2、我这里已有的 MIPI 编解码方案3、本 MIPI CSI2 模块性能及其优缺点4、详细设计方案设计原理框图OV5640及其配置权电阻硬件方案MIPI CSI-2 RX SubsystemSensor Demosaic图像格式转换Gammer LUT伽马校正VDMA图像缓存AXI4-Stream toVideo OutHDMI输出 5、…

RT-DETR算法改进:超多种主干网络改进,包括CNN和Transformer多种核心网络结构

💡本篇内容:RT-DETR算法改进:超全集成超多种Loss损失函数,包括WIoU、SIoU、XIoU、EfficiLoss、EIoU、DIoU、CIoU、α-IoU多种损失函数 💡本博客 改进源代码改进 适用于 RT-DETR目标检测算法(ultralytics项目版本) 按步骤操作运行改进后的代码即可🚀🚀🚀 💡…

桌面图标设置-将“我的电脑”、“控制面板”添加到桌面

桌面图标设置 1、将“我的电脑”、“控制面板”添加到桌面 桌面鼠标右键-个性化-主题-桌面图标设置-勾选”计算机“、”回收站“、”控制面板“-应用-确定-桌面鼠标右键-排序-名称

移动端扫描APP解决方案(一)——使用传统图像处理方法提取与矫正拍照文档边缘

一、概述 1.拍照扫描应用 在日常办公中&#xff0c;使用手机拍照扫描文件是一种高效、环保的方式。通过手机扫描&#xff0c;可以将纸质文件转化为电子版&#xff0c;不仅减少了纸张的使用&#xff0c;还节省了时间和精力。扫描后的电子版文件可以方便地储存和管理&#xff0…

在Vue.js中,什么是mixins?它们的作用是什么?

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 欢迎来到前端入门之旅&#xff01;感兴趣的可以订阅本专栏哦&#xff01;这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…

QML14、Qt之Q_PROPERTY宏理解

在初学Qt的过程中,时不时地要通过F2快捷键来查看QT类的定义,发现类定义中有许多Q_PROPERTY的东西,比如最常用的QWidget的类定义: Qt中的Q_PROPERTY宏在Qt中是很常用的,那么它有什么作用呢? Qt提供了一个绝妙的属性系统,Q_PROPERTY()是一个宏,用来在一个类中声明一个属…

谈谈前端如何防止数据泄露

shigen日更文章的博客写手&#xff0c;擅长Java、python、vue、shell等编程语言和各种应用程序、脚本的开发。记录成长&#xff0c;分享认知&#xff0c;留住感动。 最近突然发现了一个好玩的事情&#xff0c;部分网站进去的时候几乎都是死的&#xff0c;那种死是区别于我们常见…

【Hadoop】MapReduce详解

&#x1f984; 个人主页——&#x1f390;开着拖拉机回家_大数据运维-CSDN博客 &#x1f390;✨&#x1f341; &#x1fa81;&#x1f341;&#x1fa81;&#x1f341;&#x1fa81;&#x1f341;&#x1fa81;&#x1f341; &#x1fa81;&#x1f341;&#x1fa81;&#x1f…