Opencascade+Qt+C++三维图像建模窗体点线面拾取igs/iges/stp/step

程序示例精选
Opencascade+Qt+C++三维图像建模窗体点线面拾取igs/iges/stp/step
如需安装运行环境或远程调试,见文章底部个人QQ名片,由专业技术人员远程协助!

前言

这篇博客针对《Opencascade+Qt+C++三维图像建模窗体点线面拾取igs/iges/stp/step》编写代码,代码整洁,规则,易读。 学习与应用推荐首选。


运行结果

在这里插入图片描述


文章目录

一、所需工具软件
二、使用步骤
       1. 主要代码
       2. 运行结果
三、在线协助

一、所需工具软件

       1. VS2019, Qt
       2. C++

二、使用步骤

代码如下(示例):
#include <BRep_Builder.hxx>
#include <StepData_StepModel.hxx>
#include <STEPControl_Reader.hxx>
#include <TCollection_AsciiString.hxx>
#include <XSControl_Controller.hxx>
#include <Interface_Static.hxx>
#include <Transfer_TransientProcess.hxx>
#include <gp_Circ.hxx>
#include <gp_Elips.hxx>
#include <gp_Sphere.hxx>
#include <TopTools_ListIteratorOfListOfShape.hxx>
#include <TopTools_HSequenceOfShape.hxx>
#include <IGESControl_Controller.hxx>
#include <IGESControl_Writer.hxx>
#include <IGESControl_Reader.hxx>
#include <TopoDS_Edge.hxx>
#include <TopoDS_Face.hxx>
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    ui.setupUi(this);
	occView = new occview(this);
	setCentralWidget(occView);
	InitMenu();
}
void MainWindow::InitMenu()
{
	QMenuBar* menuBar = ui.menuBar;
	QMenu* menuCreate = menuBar->addMenu(tr("&Create"));
	menuCreate->addAction(tr("&Box"));
	menuCreate->addAction(tr("&Sphere"));
	connect(menuBar, SIGNAL(triggered(QAction*)), this, SLOT(trigerMenu(QAction*)));
}

TopoDS_Shape MainWindow::createBox()
{
	return BRepPrimAPI_MakeBox(10.0, 10.0, 10.0).Shape();
}
TopoDS_Shape MainWindow::createSphere()
{
	return BRepPrimAPI_MakeSphere(10.0).Shape();
}
void MainWindow::trigerMenu(QAction* action)
{
	if (action->text() == "&Box")
	{
		TopoDS_Shape box = createBox();
		Handle(AIS_Shape) aisBox = new AIS_Shape(box);
		occView->GetInteractiveContext()->Display(aisBox, Standard_True);
		occView->GetView()->FitAll();
	}
	else if (action->text() == "&Sphere")
	{
		TopoDS_Shape sphere = createSphere();
		Handle(AIS_Shape) aisSphere = new AIS_Shape(sphere);
		occView->GetInteractiveContext()->Display(aisSphere, Standard_True);
		occView->GetView()->FitAll();
	}
	else
	{
		QMessageBox::warning(this, tr("Warning"), action->text());
	}
}

occview::occview(QWidget *parent)
	: QWidget(parent)
{
	ui.setupUi(this);
	if (m_context.IsNull()) {
		Handle(Aspect_DisplayConnection) m_display_connection = new Aspect_DisplayConnection();
		if (m_graphic_driver.IsNull())
		{
			m_graphic_driver = new OpenGl_GraphicDriver(m_display_connection);
		}
		WId window_handle = (WId)winId();
		Handle(WNT_Window) wind = new WNT_Window((Aspect_Handle)window_handle);
		m_viewer = new V3d_Viewer(m_graphic_driver);
		m_view = m_viewer->CreateView();
		m_view->SetWindow(wind);
		if (!wind->IsMapped()) {
			wind->Map();
		}
		m_context = new AIS_InteractiveContext(m_viewer);
}
运行结果

在这里插入图片描述
在这里插入图片描述

三、在线协助:

如需安装运行环境或远程调试,见文章底部个人 QQ 名片,由专业技术人员远程协助!

1)远程安装运行环境,代码调试
2)Visual Studio, Qt, C++, Python编程语言入门指导
3)界面美化
4)软件制作
5)云服务器申请
6)网站制作

当前文章连接:https://blog.csdn.net/alicema1111/article/details/132666851
个人博客主页https://blog.csdn.net/alicema1111?type=blog
博主所有文章点这里:https://blog.csdn.net/alicema1111?type=blog

博主推荐:
Python人脸识别考勤打卡系统:
https://blog.csdn.net/alicema1111/article/details/133434445
Python果树水果识别https://blog.csdn.net/alicema1111/article/details/130862842
Python+Yolov8+Deepsort入口人流量统计:https://blog.csdn.net/alicema1111/article/details/130454430
Python+Qt人脸识别门禁管理系统:https://blog.csdn.net/alicema1111/article/details/130353433
Python+Qt指纹录入识别考勤系统:https://blog.csdn.net/alicema1111/article/details/129338432
Python Yolov5火焰烟雾识别源码分享:https://blog.csdn.net/alicema1111/article/details/128420453
Python+Yolov8路面桥梁墙体裂缝识别:https://blog.csdn.net/alicema1111/article/details/133434445

  • 17
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

荷塘月色2

您的鼓励将是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值