资料

官网下载:https://dev.opencascade.org/release

开发文档: https://dev.opencascade.org/doc/overview/html/

API 文档:

VS2019 配置 OCCT7.7.0 环境

编译 OCCT 静态库与动态库文件

教程:手把手教你 VS2019 编译、配置 Opencascade

  1. 进入https://dev.opencascade.org/release,再点击 Previous releases,点击Open CASCADE Technology 7.7.0 - 07.11.2022,注册,可下载到一个 exe 安装包
  2. 双击安装包,可一路默认安装
  3. 修改 C:\OpenCASCADE-7.7.0-vc14-64\opencascade-7.7.0\custom.bat 中 vcvarsall.bat 的路径
1
2
# 教程说把这一行修改成vcvarsall.bat的绝对路径,我实测就这样不改也行
set "VCVARS=%VS100COMNTOOLS%..\..\VC\vcvarsall.bat"
  1. 打开 C:\OpenCASCADE-7.7.0-vc14-64\opencascade-7.7.0\msvc.bat,把第五行修改为如下形式
1
call "%~dp0env.bat" vc142 Win64 %3
  1. 双击 msvc.bat 可自动打开 VS 软件
  2. 在解决方案上右键—属性—配置—最上面改成:Release, x64
  3. 在解决方案上右键–重新生成解决方案,最后输出如下
1
========== 全部重新生成: 成功 67 个,失败 0 个,跳过 0 个 ==========
  1. 此时 C:\OpenCASCADE-7.7.0-vc14-64\opencascade-7.7.0\win64\vc14 会有 bin,lib,obj 三个文件夹,这就是 occt 编译结果

使用 OCCT 库文件

参考方法

视频英文原版:https://www.youtube.com/playlist?list=PL_WFkJrQIY2iVVchOPhl77xl432jeNYfQ

视频中文译版:https://www.bilibili.com/video/BV1yM411x7Xx

文字中文译版:OCCT 教程二:在 visual studio 上创建一个 occt 工程_occt 教学-CSDN 博客

  1. 打开 VS2019,新建 C++空项目
  2. 在项目文件夹下新建一个 OCCT770 的文件夹,将前面得到的 bin,lib,以及一个 inc 文件夹拷贝到 OCCT770 文件夹下。其中 inc 文件夹在 C:\OpenCASCADE-7.7.0-vc14-64\opencascade-7.7.0 里面
  3. 在项目右键—属性—开始配置环境
    • 将最上面的配置与平台改成:Release, x64
    • C/C++—常规—附加包含目录—添加一条指向 OCCT770\inc
    • 链接器—常规—附加库目录—指向 OCCT770\lib
    • 调试—环境—添加 PATH=%PATH%;$(SolutionDir)\OCCT770\bin;,这里其实是用=添加了两个路径,其中路径可写绝对路径
    • 连接器—输入—附加依赖项目,可以仅添加你需要的 lib 文件名称,也添加 OCCT770\lib 下所有 lib 文件名称。获得所有 lib 文件名方法见附 1
  4. 源文件—添加 main.cpp 测试文件,测试文件见附 2
  5. 使用 Release,x64 配置—生成—重新生成解决方案—调试—开始执行不调试

附 1:获得 OCCT770\lib 下所有 lib 文件名的方法:(1)在 OCCT770\lib 文件夹新建一个 AAA.bat 文件;(2)使用记事本打开 AAA.bat 文件,添加 DIR .lib /B >LIST.TXT,保存;(3)双击运行 AAA.bat 文件,即可得到所有 lib 文件的文件名

附 2:main.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <TopoDS_Shape.hxx>
#include <BRepPrimAPI_MakeBox.hxx>
#include <STEPControl_Writer.hxx>

int main()
{
// 创建盒子
BRepPrimAPI_MakeBox boxMaker(10.0, 20.0, 30.0);
TopoDS_Shape boxShape = boxMaker.Shape();

// 保存为STEP文件
STEPControl_Writer writer;
writer.Transfer(boxShape, STEPControl_AsIs);
writer.Write("box_model.step");

std::cout << "盒子模型已保存为box_02.step" << std::endl;

return 0;
}

配置 AIS 可视化

视频资料:https://www.youtube.com/watch?v=PXkv7fmURnI

视频配套文件:https://gitlab.com/ssv/lessons

VTK: https://youtu.be/kZpr4ocnavA?feature=shared【没试】

首先按照上面一节介绍的配置好 OCCT 基础的环境,即可以正常建立模型,输入输出等,这里不再叙述。下面是配置 AIS 作为可视化的流程。

  1. VS—头文件—右键—添加—类,类名填写 Viewer

  1. VS—头文件—右键—添加—类,类名填写 ViewerInteractor

  1. 打开网站 https://gitlab.com/ssv/lessons/-/tree/master/Lesson04_HelloOpenCascade,找到以下四个文件,分别复制其内容到我们新建的四个文件中。蓝奏云备份
1
2
3
4
Viewer.h
Viewer.cpp
ViewerInteractor.h
ViewerInteractor.cpp
  1. VS—源文件—右键—添加—新建项,创建 main.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include "Viewer.h"
#include <BRepPrimAPI_MakeBox.hxx>

int main(int argc, char** argv)
{
// Cteate ashape
BRepPrimAPI_MakeBox abox(10, 10, 20);
abox.Build();
const TopoDS_Shape& ashape = abox.Shape();


// AIS Visualize
Viewer vout(50, 50, 500, 500);
vout << ashape;
vout.StartMessageLoop();

return 0;
}

关于 W 键与 S 键不能使用

  1. 打开文件 Viewer.cpp 文件,找到 StartMessageLoop()函数,注释掉下面语句
1
m_context->SetDisplayMode(shape, AIS_Shaded, true);
  1. 重新编译绘制形状后,可按 s 键显示阴影,按 w 键显示框线