OCC+VS+QT项目配置

1、安装好VS2022、QT、OCC安装包后,在VS2022中创建一个项目,具体如下:

2、配置步骤1中创建的项目的属性,具体如下:

VC++目录>>>包含目录:

 添加文件目录如上三个。

 VC++目录>>>库目录:

 添加文件目录如上两个。

 依赖项内容:

TKBin.lib
TKBinL.lib
TKBinTObj.lib
TKBinXCAF.lib
TKBO.lib
TKBool.lib
TKBRep.lib
TKCAF.lib
TKCDF.lib
TKD3DHost.lib
TKD3DHostTest.lib
TKDCAF.lib
TKDFBrowser.lib
TKDraw.lib
TKernel.lib
TKExpress.lib
TKFeat.lib
TKFillet.lib
TKG2d.lib
TKG3d.lib
TKGeomAlgo.lib
TKGeomBase.lib
TKHLR.lib
TKIGES.lib
TKIVtk.lib
TKIVtkDraw.lib
TKLCAF.lib
TKMath.lib
TKMesh.lib
TKMeshVS.lib
TKMessageModel.lib
TKMessageView.lib
TKOffset.lib
TKOpenGl.lib
TKOpenGles.lib
TKOpenGlesTest.lib
TKOpenGlTest.lib
TKPrim.lib
TKQADraw.lib
TKRWMesh.lib
TKService.lib
TKShapeView.lib
TKShHealing.lib
TKStd.lib
TKStdL.lib
TKSTEP.lib
TKSTEP209.lib
TKSTEPAttr.lib
TKSTEPBase.lib
TKSTL.lib
TKTInspector.lib
TKTInspectorAPI.lib
TKTObj.lib
TKTObjDRAW.lib
TKToolsDraw.lib
TKTopAlgo.lib
TKTopTest.lib
TKTreeModel.lib
TKV3d.lib
TKVCAF.lib
TKView.lib
TKViewerTest.lib
TKVInspector.lib
TKVRML.lib
TKXCAF.lib
TKXDE.lib
TKXDECascade.lib
TKXDEDRAW.lib
TKXDEIGES.lib
TKXDESTEP.lib
TKXMesh.lib
TKXml.lib
TKXmlL.lib
TKXmlTObj.lib
TKXmlXCAF.lib
TKXSBase.lib
TKXSDRAW.lib

注意:可用快捷方法获取上述列表名单,具体如下:

在以上目录下创建一个文本文件,并输入以上内容,保存后将后缀名改成.bat,双击运行该bat文件,就可在目录下生成一个lib.txt文件。里面包含了该目录下所有.lib文件的名称,具体如下:

 接着在【链接器】>>>【输入】>>>【附加依赖项】中,添加上述获取的lib列表。

 3、在系统环境变量中,添加所有的bin文件夹,具体如下:

上图中,第一个未完整显示的OCC目录如下:

E:\OpenCASCADE-7.7.0-vc14-64\opencascade-7.7.0\win64\vc14\bin 

这里根据OCC版本不同,需要添加的也不同,主要宗旨就是尽可能将OCC中包含的bin文件夹包含进来,免得VS2022编译的时候报错。

注意:修改完系统环境变量后,需要重启电脑才生效。 

4、添加如下代码

.h文件中:

#pragma once

#include <QtWidgets/QMainWindow>
#include "ui_TestOCC.h"

#include <Standard_Handle.hxx>
#include <V3d_Viewer.hxx>
#include <OpenGl_GraphicDriver.hxx>
#include <WNT_Window.hxx>
#include <V3d_View.hxx>
#include <AIS_InteractiveContext.hxx>
#include <BRepPrimAPI_MakeBox.hxx>
#include <TopoDs_Shape.hxx>
#include <AIS_Shape.hxx>

class TestOCC : public QMainWindow
{
    Q_OBJECT

public:
    TestOCC(QWidget *parent = nullptr);
    ~TestOCC();

protected:
    //重写绘图事件
    void paintEvent(QPaintEvent* event) override;
    //返回窗口绘图引擎
    QPaintEngine* paintEngine() const;

private:
    Ui::TestOCCClass ui;

    //定义查看器viewer 3D查看器
    Handle(V3d_Viewer) viewer;
    //视图
    Handle(V3d_View) view;
    //交互式上下文,管理一个或者多个viewer
    Handle(AIS_InteractiveContext) context;
    //window NT窗口
    Handle(WNT_Window) window;
};

.cpp文件中:

#include "TestOCC.h"

TestOCC::TestOCC(QWidget *parent)
    : QMainWindow(parent)
{
    //ui.setupUi(this);

    //提供X server的连接,在window和Mac中不起作用
    Handle(Aspect_DisplayConnection) hAspect_DisplayConnect = new Aspect_DisplayConnection;
    //创建3D接口定义图形驱动
    Handle(OpenGl_GraphicDriver) driver = new OpenGl_GraphicDriver(hAspect_DisplayConnect);

    //该类的方法允许编辑、询问连接该类的其他参数(如视图、光)
    viewer = new V3d_Viewer(driver);
    view = viewer->CreateView();

    WId win_handle = winId();
    //在已有的窗口上创建窗口
    window = new WNT_Window((Aspect_Handle)win_handle);
    view->SetWindow(window);
    if (!window->IsMapped())
    {
        window->Map();//打开窗口
    }
    view->SetBackgroundColor(Quantity_NOC_BLACK);
    view->MustBeResized();
    viewer->SetDefaultLights();
    setAttribute(Qt::WA_PaintOnScreen);
    //交互式上下文
    context = new AIS_InteractiveContext(viewer);
    context->SetDisplayMode(AIS_Shaded, Standard_True);

    TopoDS_Shape box = BRepPrimAPI_MakeBox(10, 10, 10);
    Handle(AIS_Shape) abox = new AIS_Shape(box);
    context->Display(abox, Standard_True);
    view->FitAll();
}

TestOCC::~TestOCC()
{}

void TestOCC::paintEvent(QPaintEvent* event)
{
    view->Redraw();
}

QPaintEngine* TestOCC::paintEngine() const
{
    return 0;
}

 5、运行效果

如上,完成第一个VS+QT+OCC项目! 

注意:为保证代码顺利运行,在电脑上只能安装一个OCC版本,在系统环境变量中,只能有一个QT路径,一定要确保,否则显示不出效果。 

### 配置Visual Studio 2022中OpenCASCADE与Qt的集成 在Visual Studio 2022中实现OpenCASCADE Technology (OCC) 和 Qt 的集成是一个复杂的过程,涉及多个工具链和库的设置。以下是关于如何完成此任务的关键点: #### 工具准备 为了成功配置 OpenCASCADE 和 Qt,在 Visual Studio 中需要安装并正确配置以下组件: - **Microsoft Visual Studio 2022**: 确保已安装 C++ 开发工作负载以及必要的更新版本[^1]。 - **CMake**: 这是用于构建 OpenCASCADE 和 Qt 应用程序的重要工具之一[^2]。 - **Qt for MSVC**: 下载适用于 Microsoft Visual C++ 编译器的 Qt 版本,并将其路径添加到系统的环境变量 PATH 中[^3]。 #### 安装和编译 OpenCASCADE 下载最新的 OpenCASCADE 源码包或者预编译二进制文件。如果选择源码方式,则需通过 CMake 来生成适合 VS2022 的解决方案(.sln),之后可以利用 IDE 构建整个项目树。注意调整 CMakeLists.txt 文件中的选项来启用或禁用特定功能模块[^4]。 对于自定义构建过程可能还需要考虑如下参数设定: ```cmake set(USE_TKVIEWER TRUE CACHE BOOL "") ``` #### 设置 Qt 支持 一旦 OpenCASCADE 成功被引入至您的工程环境中,下一步就是整合 Qt GUI 组件支持。这通常意味着您得创建一个新的基于 Qt Widgets 或者 QML Application 的子类作为主窗口框架基础结构的一部分[^5]。 另外还需确认 `moc`、`rcc` 及其他相关元对象处理器能够正常访问所有头文件目录及其关联资源描述符(XML/JSON等形式)[^6]。 最后一步是在项目的属性页里指定附加依赖项列表,包括但不限于链接静态库(lib)形式存在的 OCC 动态连接库(DLL)导出符号表地址位置信息等细节处理部分[^7]。 ```cpp #include <QApplication> #include <AIS_Shape.hxx> int main(int argc, char *argv[]) { QApplication app(argc, argv); Handle(AIS_InteractiveContext) aCtx = new AIS_InteractiveContext(); // Initialize context and display shapes... return app.exec(); } ``` 问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值