OpenCascade VTK STEP/IGES文件读取显示

2024-02-07 12:20

本文主要是介绍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();}
}

这篇关于OpenCascade VTK STEP/IGES文件读取显示的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/687702

相关文章

解决Java中基于GeoTools的Shapefile读取乱码的问题

《解决Java中基于GeoTools的Shapefile读取乱码的问题》本文主要讨论了在使用Java编程语言进行地理信息数据解析时遇到的Shapefile属性信息乱码问题,以及根据不同的编码设置进行属... 目录前言1、Shapefile属性字段编码的情况:一、Shp文件常见的字符集编码1、System编码

利用Python实现添加或读取Excel公式

《利用Python实现添加或读取Excel公式》Excel公式是数据处理的核心工具,从简单的加减运算到复杂的逻辑判断,掌握基础语法是高效工作的起点,下面我们就来看看如何使用Python进行Excel公... 目录python Excel 库安装Python 在 Excel 中添加公式/函数Python 读取

Linux虚拟机不显示IP地址的解决方法(亲测有效)

《Linux虚拟机不显示IP地址的解决方法(亲测有效)》本文主要介绍了通过VMware新装的Linux系统没有IP地址的解决方法,主要步骤包括:关闭虚拟机、打开VM虚拟网络编辑器、还原VMnet8或修... 目录前言步骤0.问题情况1.关闭虚拟机2.China编程打开VM虚拟网络编辑器3.1 方法一:点击还原VM

CSS模拟 html 的 title 属性(鼠标悬浮显示提示文字效果)

《CSS模拟html的title属性(鼠标悬浮显示提示文字效果)》:本文主要介绍了如何使用CSS模拟HTML的title属性,通过鼠标悬浮显示提示文字效果,通过设置`.tipBox`和`.tipBox.tipContent`的样式,实现了提示内容的隐藏和显示,详细内容请阅读本文,希望能对你有所帮助... 效

Python如何实现读取csv文件时忽略文件的编码格式

《Python如何实现读取csv文件时忽略文件的编码格式》我们再日常读取csv文件的时候经常会发现csv文件的格式有多种,所以这篇文章为大家介绍了Python如何实现读取csv文件时忽略文件的编码格式... 目录1、背景介绍2、库的安装3、核心代码4、完整代码1、背景介绍我们再日常读取csv文件的时候经常

C#中读取XML文件的四种常用方法

《C#中读取XML文件的四种常用方法》Xml是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具,下面我们就来看看C#中读取XML文件的方法都有哪些吧... 目录XML简介格式C#读取XML文件方法使用XmlDocument使用XmlTextReader/XmlTextWr

如何设置vim永久显示行号

《如何设置vim永久显示行号》在Linux环境下,vim默认不显示行号,这在程序编译出错时定位错误语句非常不便,通过修改vim配置文件vimrc,可以在每次打开vim时永久显示行号... 目录设置vim永久显示行号1.临时显示行号2.永www.chinasem.cn久显示行号总结设置vim永久显示行号在li

Java读取InfluxDB数据库的方法详解

《Java读取InfluxDB数据库的方法详解》本文介绍基于Java语言,读取InfluxDB数据库的方法,包括读取InfluxDB的所有数据库,以及指定数据库中的measurement、field、... 首先,创建一个Java项目,用于撰写代码。接下来,配置所需要的依赖;这里我们就选择可用于与Infl

C#读取本地网络配置信息全攻略分享

《C#读取本地网络配置信息全攻略分享》在当今数字化时代,网络已深度融入我们生活与工作的方方面面,对于软件开发而言,掌握本地计算机的网络配置信息显得尤为关键,而在C#编程的世界里,我们又该如何巧妙地读取... 目录一、引言二、C# 读取本地网络配置信息的基础准备2.1 引入关键命名空间2.2 理解核心类与方法

SpringBoot使用Apache POI库读取Excel文件的操作详解

《SpringBoot使用ApachePOI库读取Excel文件的操作详解》在日常开发中,我们经常需要处理Excel文件中的数据,无论是从数据库导入数据、处理数据报表,还是批量生成数据,都可能会遇到... 目录项目背景依赖导入读取Excel模板的实现代码实现代码解析ExcelDemoInfoDTO 数据传输