OpenCascade VTK STEP/IGES文件读取显示

OpenCascade & VTK STEP/IGES文件读取显示,OpenCascade读取转成STL,VTK显示STL。

Download - Open CASCADE Technology
https://dev.opencascade.org/release

下载exe并安装,可以把source下载下来学习,官网速度慢,可到网盘下载

链接:https://pan.baidu.com/s/1_ARH9jRMPxO_GWNWXT64fw 
提取码:zyes

安装完成后,把除了qt和vtk的文件夹的bin都加到环境变量,在不同的电脑有可能openvr没被自动安装,需要下载然后win64的bin加环境变量

GitHub - ValveSoftware/openvr: OpenVR SDK
https://github.com/ValveSoftware/openvr

pro添加

INCLUDEPATH += C:/OpenCASCADE-7.7.0-vc14-64/opencascade-7.7.0/inc
LIBS += C:/OpenCASCADE-7.7.0-vc14-64/opencascade-7.7.0/win64/vc14/lib/*.lib

基于OCC,将IGES模型文件转换为STL,进而在VTK中显示。网上别的一般都是错的。-CSDN博客
https://blog.csdn.net/hbwhzc/article/details/131571397

GitHub - Jelatine/JellyCAD: The simple CAD software which is based on OCC.
https://github.com/Jelatine/JellyCAD

Open Cascade Data Exchange --- STL - eryar - C++博客
http://www.cppblog.com/eryar/archive/2013/05/01/199882.aspx

#include <TopoDS_Shape.hxx>
#include <StlAPI_Writer.hxx>
#include <STEPControl_Reader.hxx>
#include <vtkSTLReader.h>
#include <TDocStd_Document.hxx>
#include <STEPCAFControl_Reader.hxx>
#include <BRepMesh_IncrementalMesh.hxx>
#include <IGESControl_Reader.hxx>
#include <IGESCAFControl_Reader.hxx>#define vtkNewMember(Var, Type) \if (Var) \{ \Var->Delete(); \} \Var = Type::New();void MainWindow::on_pushButton_stp_clicked()
{QString file = QFileDialog::getOpenFileName(this, QStringLiteral("打开IGES/STEP文件"), ".", "*.step;; *.iges");if (!file.isEmpty()){TopoDS_Shape shape;if (file.endsWith("step")){STEPControl_Reader reader;IFSelect_ReturnStatus stat = reader.ReadFile(file.toUtf8().data());if (stat != IFSelect_RetDone){return;}reader.TransferRoots();shape = reader.OneShape();}else if (file.endsWith("iges")){IGESControl_Reader reader;reader.ReadFile(file.toUtf8().data());reader.TransferRoots();shape = reader.OneShape();}StlAPI_Writer writer;const Standard_Real deflection = 0.1;BRepMesh_IncrementalMesh(shape,deflection,Standard_True);Standard_Boolean ret = writer.Write(shape, "output.stl");if (!ret){return;}vtkNewMember(mSTPSTLReader, vtkSTLReader);mSTPSTLReader->SetFileName("output.stl");mSTPSTLReader->Update();vtkNewMember(mSTPSTLMapper, vtkPolyDataMapper);mSTPSTLMapper->SetInputData(mSTPSTLReader->GetOutput());if (mSTPSTLRenderer && mSTPSTLActor){mSTPSTLRenderer->RemoveActor(mSTPSTLActor);ui->widget_stp->GetRenderWindow()->RemoveRenderer(mSTPSTLRenderer);}vtkNewMember(mSTPSTLActor, vtkActor);mSTPSTLActor->SetMapper(mSTPSTLMapper);vtkNewMember(mSTPSTLRenderer, vtkRenderer);mSTPSTLRenderer->AddActor(mSTPSTLActor);mSTPSTLRenderer->SetBackground(0.1, 0.2, 0.3);ui->widget_stp->GetRenderWindow()->AddRenderer(mSTPSTLRenderer);ui->widget_stp->GetRenderWindow()->Render();}
}

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

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

相关文章

电商API的应用价值:淘宝1688京东API接口系列

API接口是一种软件应用程序&#xff0c;它充当两个不同软件应用程序之间的中介。它帮助不同的应用程序相互通信&#xff0c;共享数据&#xff0c;从而使用户能够完成不同的任务。API接口的用途非常广泛&#xff0c;下面是一些常见的用途&#xff1a; 数据共享&#xff1a;API接…

logstash通过kafka通道采集日志信息

1.修改文件/opt/app/elk/logstash-7.5.1/config.d/config1.conf&#xff0c;在input下添加kafka采集配置 #192.168.128.130:9103:kafka地址 #topics:主题 kafka {bootstrap_servers > ["192.168.128.130:9103"]group_id > "logstash"topics > [&…

python3对文件编码的转换处理

前言&#xff1a; 嗨喽~大家好呀&#xff0c;这里是魔王呐 ❤ ~! python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取 公司同事邀我一起给SQLSERVER 2008导数&#xff0c; 数据来源有高斯和ORACLE, 数据文件保存格式有UTF-8和GBK。 当我在做测试导入的时候发现S…

机器故障预测:未来24小时的决胜时刻!!!

一、背景介绍 这个竞赛的焦点是预测机器是否会在未来24小时内故障。数据包括与机器性能相关的各种特征&#xff0c;例如温度、振动、功耗和传感器读数。目标变量是二进制的&#xff0c;表示机器是否在未来24小时内故障&#xff08;1&#xff09;或未故障&#xff08;0&#xf…

2023年最新水果编曲软FL Studio Producer Edition 21.1.1.3750中文版功能介绍下载图文安装教程

各位&#xff0c;大家好&#xff0c;今天兔八哥给大家带来最新最新2023水果编曲软件FL Studio Producer Edition 21.1.1. Build 3750中文版中文版下载安装激活图文教程。我们一起先了解一些FL Studio 21 。FL Studio21是目前流行广泛使用人数最多音乐编曲宿主制作DAW软件&#…

【计算机视觉】Image Data Augmentation算法介绍合集(二)

文章目录 一、Random Grayscale二、GridMask三、Adversarial Color Enhancement四、Population Based Augmentation五、MaxUp六、SuperpixelGridCut, SuperpixelGridMean, SuperpixelGridMix七、InstaBoost八、Random Mix-up九、Sample Redistribution十、Batchboost十一、CutB…

SpringMVC之JSON返回及异常处理

目录 JSON处理 导入依赖 配置Spring-mvc.xml ResponseBody注解使用 测试 目录 JSON处理 导入依赖 配置Spring-mvc.xml ResponseBody注解使用 测试 Jackson 定义 用法 常用注解 统一异常处理 为什么要全局异常处理&#xff1f; 异常处理思路 SpringMVC异常分类 综…

【C++】类和对象核心总结

类和对象目录&#xff1a; 一、面向过程和面向对象初步认识 二、类的引入定义&#xff08;struct > class&#xff09; 2.1自定义类型 struct 和 class 的区别 2.2类放在内存中的什么存储区&#xff1f; 2.3类中函数定义的方式 2.3.1声明和定义分离&#xff08;增强代…

【Stable Diffusion】安装 Comfyui 之 window版

序言 由于stable diffusion web ui无法做到对流程进行控制&#xff0c;只是点击个生成按钮后&#xff0c;一切都交给AI来处理。但是用于生产生活是需要精细化对各个流程都要进行控制的。 故也就有个今天的猪脚&#xff1a;Comfyui 步骤 下载comfyui项目配置大模型和vae下载…

图像数据通道格式:NCHW和NHWC的区别

在深度学习中&#xff0c;图像数据通道格式有两种&#xff1a; NCHW&#xff0c;又称&#xff1a;“channels_first”&#xff0c;是nvidia cudnn库原生支持的数据模式&#xff1b;在GPU中&#xff0c;使用NCHW格式计算卷积&#xff0c;比NHWC要快2.5倍左右&#xff08;0:54 v…

leetcode:69. x 的平方根

一、题目 函数原型&#xff1a;int mySqrt(int x) 二、思路 利用二分查找思想&#xff0c;在0与x区间进行查找。 设置左边界 left &#xff08;初始值为0&#xff09;&#xff0c;右边界 right&#xff08;初始值为x&#xff09;和中值 mid &#xff08;值为区间的中间值&#…

基于matlab实现的弹簧振动系统模型程序(动态模型)

完整代码&#xff1a; clear all; %System data m1.0; zeta0.01; omega01.0; Dt1.0; f01.0; x00.0; dotx00.0; xmaxsqrt(x0^2(dotx0/omega0)^2)min([0.5*abs(f0)*Dt/(m*omega0) f0/omega0^2]); omegadomega0*sqrt(1-zeta^2); dt00.1*pi/omega0; nstep500; a0.70; b0.…

[转]MySQL索引底层实现原理(此文个人觉得非常好收藏一下)

索引的本质 MySQL官方对索引的定义为&#xff1a;索引&#xff08;Index&#xff09;是帮助MySQL高效获取数据的数据结构。提取句子主干&#xff0c;就可以得到索引的本质&#xff1a;索引是数据结构。 我们知道&#xff0c;数据库查询是数据库的最主要功能之一。我们都希望查…

OPC HDA扫盲

目录 1 基本概念 1.1 历史数据服务器类型 1.2 数据源 1.3 对象和接口概述 1.4 所需接口定义 1.5 可选接口定义 1.6 定义 1.7 边界值和时域 2 HDA聚合 2.1 生成间隔 2.2 数据类型 2.3 数据质量 3 聚合示例 3.1 示例数据 3.2 内插&#xff08;INTERPOLATIVE&#x…

《C++API设计》读书笔记(3):模式

本章内容 本章涵盖了一些与CAPI设计相关的设计模式和惯用法。 “设计模式(Design Pattern)”表示软件设计问题的一些通用解决方案。该术语来源于《设计模式&#xff1a;可复用面向对象软件的基础》&#xff08;Design Patterns: Elements of Reusable Object-Oriented Softwar…

【C++】map,set简单操作的封装实现(利用红黑树)

文章目录 一、STL中set与map的源码二、 红黑树结点的意义三、仿函数的妙用四、set&#xff0c;map定义迭代器的区别五、map&#xff0c;set迭代器的基本操作&#xff1a;1.begin&#xff08;&#xff09; end&#xff08;&#xff09;2.operator3.operator-- 六、迭代器拷贝构造…

傅里叶变换应用 (02/2):频域和相位

一、说明 到目前为止&#xff0c;在我们的讨论中&#xff0c;我已经交替使用了“傅里叶变换”和“快速傅里叶变换&#xff08;FFT&#xff09;”。在这一点上&#xff0c;值得注意的是区别&#xff01;FFT 是“离散”傅里叶变换 &#xff08;DFT&#xff09; 的有效算法实现。“…

JavaScript-Ajax-axios-Xhr

JS的异步请求 主要有xhr xmlHttpRequest 以及axios 下面给出代码以及详细用法&#xff0c;都写在了注释里 直接拿去用即可 测试中默认的密码为123456 账号admin 其他一律返回登录失败 代码实例 <!DOCTYPE html> <html lang"en"> <head><…

科技抗老新突破,香港美容仪品牌内地重磅上市

近年来&#xff0c;新消费时代“颜值经济”的火热促使美容行业市场规模增长迅速&#xff0c;越来越多的人愿意为“美”买单&#xff0c;对美的需求也随之增长&#xff0c;美容行业已经成为成长最快的新锐产业。随着经济和科技的发展&#xff0c;“快捷”也成为了当今社会的时代…

想要精通算法和SQL的成长之路 - 最长回文子串

想要精通算法和SQL的成长之路 - 最长回文子串 前言一. 最长回文子串1.1 中心扩散法的运用 前言 想要精通算法和SQL的成长之路 - 系列导航 一. 最长回文子串 原题链接 1.1 中心扩散法的运用 这类具有回文性质的题目&#xff0c;我们如果用常规的从左往右或者从右往左的遍历方…