[OCCT] Open CASCADE Technology的编译(包含示例的编译)

2023-11-14

QQ交流群:604668232
OCCT知识库:yuque.com/softdev/occt,持续更新

相关文档

  1. 官方文档:构建、调试和升级
  2. 官方文档:OCCT的构建

源代码目录

  • adm目录:包含编译OCCT的相关工程;
    • adm/cmake目录:包含使用CMake构建OCCT的相关处理脚本;
    • adm/msvc目录:包含window平台 Visual C++ 2010, 2012, 2013, 2015, 2017 and 2019等版本的32/64平台solutinon文件;
  • data目录: 包含用于OCCT功能测试的CAD文件
  • doc目录:包含OCCT的html和pdf格式帮助文档;
  • dox目录:包含了基于MarkDown文件格式的文本文档;
  • inc目录:OCCT头文件依赖;
  • samples目录:OCCT示例项目;
  • src目录:OCCT源码目录;
  • tests目录:包含测试脚本文件
  • tools目录:包含Inspector工具的源码.
  • win64/vc14目录:OCCT在window平台预编译的可执行程序和lib库;
  • gendoc.bat: 将occt的Markdown格式文件编译为html格式
  • inspector.bat occinspector工具运行环境
  • msvc.bat: visual studio编译工程和运行环境
  • draw.bat: draw工具运行环境

编译源代码

官方提供的文件中,带有预编译的第三方库,因此我们能很方便的编译OCCT

代码下载:https://old.opencascade.com/content/latest-release

方法一:使用官方提供的VS工程

  1. 打开msvc.bat
  2. 修改以下内容
@echo off
rem This file has been generated by genproj.tcl script from CASROOT/adm/templates/msvc.bat

rem Setup environment
call "%~dp0env.bat" vc141 win64 %3 #修改成vc141 win64
  1. 双击msvc.bat,它自动会打开VS17的工程

方法二:使用cmake构建工程

  1. 源代码路径:D:\OpenCASCADE-7.5.0-vc14-64\opencascade-7.5.0
  2. build路径(自定义):D:\OpenCASCADE-7.5.0-vc14-64\build
  3. 3RDPARTY_DIR设置为D:\OpenCASCADE-7.5.0-vc14-64
    1. 安装包提供了vc14版本的第三方库,可以直接指定
  4. 勾选安装例子Build_SAMPLES_QT
  5. INSTALL_DIR设置为D:\OpenCASCADE-7.5.0-vc14-64\install,再点击Configure
  6. 编译 ,vs中install出错,用管理员身份打开

软件介绍

Full安装之后,你能得到以下内容:

在这里插入图片描述

  1. Class Reference 类图(包括方法与注释等等),应该是由doxygen自动生成的
  2. Documentation文档
  3. Guides指南,官方的教程
  4. Release Notes发布说明(即更新记录)
  5. Sample 例子
  6. Draw Test Harness 绘制测试工具
  7. TInspector查看器(可查看OCCT官方的模型文件)

Draw Test Harness绘制测试工具

此工具可以输入OCCT的脚本,完成快速绘制图形的功能,并且提供给我们一些示例

  1. 点开Load -> pload all加载标准命令

在这里插入图片描述

  1. 然后就有一些示例可以查看与学习

在这里插入图片描述

相关错误:您的图形供应商 (Intel) 已提供损坏的 OpenGL 驱动程序,因此该消息建议要求供应商更新驱动程序以解决该问题。

Error: no active view!
TKOpenGl | Type: Error | ID: 0 | Severity: High | Message:
  Error! OpenGL context reports version 4.6 but does not export required functions for 4.5 (glGetnTexImage)
Please report this issue to OpenGL driver vendor 'intel'

TInspector查看器

查看STEP模型文件的节点关系与信息。

示例

原始链接:OCCT教程与例子

如果要查看对应的例子,在编译OCCT的时候勾选相应的例子即可。

OCCT提供了各种平台与各种框架的示例

  1. C++:MFCQt
  2. C#:Windows Forms、WPF+Direct3D Viewer
  3. Android:jniviewer(java)和AndroidQt(qt + qml)
  4. IOS:Apple UIKit框架
  5. Web:Emscripten SDK
  6. OCAF使用示例
  7. OCAF机制用法
  8. Draw绘制脚本

MFC示例

编译

  1. 修改C:\OpenCASCADE-7.5.0-vc14-64\opencascade-7.5.0\samples\mfc\standard下面的msvc.bat,用call "%~dp0env.bat" vc141 win64 %3启动vs2017
  2. 编译时报找不到头文件:在vs2017的“C/C++”的“附加包含目录”中增加D:\OpenCASCADE-7.5.0-vc14-64\opencascade-7.5.0\inc
  3. 报找不到lib:在vs2017的“连接器”-“常规”-“附加库目录”中增加D:\OpenCASCADE-7.5.0-vc14-64\opencascade-7.5.0\win64\vc14\lib
  4. 无法启动程序:在vs2017的“调试”的“环境”中增加PATH=D:\OpenCASCADE-7.5.0-vc14-64\opencascade-7.5.0\win64\vc14\bin;%PATH%
  5. 编译通过

调试方法

  1. VS > 视图 > 资源视图 > Modeling > Modeling.rc > Toolbar > 找到对应图标 > 右键图标,属性 > 杂项 > 复制ID

在这里插入图片描述

  1. 在项目中搜索这个ID,找到命令。找到对应的回调函数即可

在这里插入图片描述

Qt OCCT示例

内容

D:\OpenCASCADE-7.5.0-vc14-64\opencascade-7.5.0\samples\qt\OCCTOverview包含了“Qt OCCT概述”应用程序的文件夹和文件:

  • 文件OCCTOverview.proOCCTOverview0.pro是Qt项目文件。
  • 使用genproj.bat文件对MS Visual Studio项目进行降级。
  • 文件msvc.bat以运行MS Visual Studio项目。
  • 文件make.sh以在Linux上构建应用程序。
  • 使用文件run.batrun.sh运行应用程序。
  • 从_genproj.bat_,msvc.batrun.bat_调用文件env.batcustom.bat。用户应该定义文件_custom.bat_来提供QT目录和OCCT安装目录的路径(请参见_custom.bat.template)。
  • srcres目录提供源文件和资源文件。

D:\OpenCASCADE-7.5.0-vc14-64\opencascade-7.5.0\samples\OCCTOverview\code包含了示例的源代码。

如何构建Qt OCCT概述的应用程序
  • 编辑custom.bat文件。有必要定义以下变量:
    • 安装Qt的QTDIR路径
    • 安装Open CASCADE二进制文件的CASROOT路径。
  • 生成应用程序:
    • 在Windows上:
      • 生成项目文件: > genproj.bat vc141 win64 Debug
      • 启动MS Visual Studio: > msvc.bat vc141 win64 Debug
      • 使用MS Visual Studio生成应用程序。
    • 在Linux上:通过make.sh脚本启动应用程序的构建

运行应用程序
  1. Windows:run.bat vc141 win64 Debug
  2. Linux:run.sh
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[OCCT] Open CASCADE Technology的编译(包含示例的编译) 的相关文章

  • EF Core Group By 翻译支持条件总和

    听说 EF Core 2 1 将支持翻译小组 我感到非常兴奋 我下载了预览版并开始测试它 但发现我在很多地方仍然没有得到翻译分组 在下面的代码片段中 对 TotalFlagCases 的查询将阻止翻译分组工作 无论如何 我可以重写这个以便我
  • 没有强命名的代码签名是否会让您的应用程序容易被滥用?

    尝试了解authenticode代码签名和强命名 我是否正确地认为 如果我对引用一些 dll 非强命名 的 exe 进行代码签名 恶意用户就可以替换我的 DLL 并以看似由我签名但正在运行的方式分发应用程序他们的代码 假设这是真的 那么您似
  • Web 客户端和 Expect100Continue

    使用 WebClient C NET 时设置 Expect100Continue 的最佳方法是什么 我有下面的代码 我仍然在标题中看到 100 continue 愚蠢的 apache 仍然抱怨 505 错误 string url http
  • 秒表有最长运行时间吗?

    多久可以Stopwatch在 NET 中运行 如果达到该限制 它会回绕到负数还是从 0 重新开始 Stopwatch Elapsed返回一个TimeSpan From MSDN https learn microsoft com en us
  • 在哪里可以找到列出 SSE 内在函数操作的官方参考资料?

    是否有官方参考列出了 GCC 的 SSE 内部函数的操作 即 头文件中的函数 除了 Intel 的 vol 2 PDF 手册外 还有一个在线内在指南 https www intel com content www us en docs in
  • HTTPWebResponse 响应字符串被截断

    应用程序正在与 REST 服务通信 Fiddler 显示作为 Apps 响应传入的完整良好 XML 响应 该应用程序位于法属波利尼西亚 在新西兰也有一个相同的副本 因此主要嫌疑人似乎在编码 但我们已经检查过 但空手而归 查看流读取器的输出字
  • OleDbDataAdapter 未填充所有行

    嘿 我正在使用 DataAdapter 读取 Excel 文件并用该数据填充数据表 这是我的查询和连接字符串 private string Query SELECT FROM Sheet1 private string ConnectStr
  • Clang 3.1 + libc++ 编译错误

    我已经构建并安装了 在前缀下 alt LLVM Clang trunk 2012 年 4 月 23 日 在 Ubuntu 12 04 上成功使用 GCC 4 6 然后使用此 Clang 构建的 libc 当我想使用它时我必须同时提供 lc
  • 不同枚举类型的范围和可转换性

    在什么条件下可以从一种枚举类型转换为另一种枚举类型 让我们考虑以下代码 include
  • 在 ASP.NET 5 中使用 DI 调用构造函数时解决依赖关系

    Web 上似乎充斥着如何在 ASP NET 5 中使用 DI 的示例 但没有一个示例显示如何调用构造函数并解决依赖关系 以下只是众多案例之一 http social technet microsoft com wiki contents a
  • 使用 WebClient 时出现 System.Net.WebException:无法创建 SSL/TLS 安全通道

    当我执行以下代码时 System Net ServicePointManager ServerCertificateValidationCallback sender certificate chain errors gt return t
  • C++ OpenSSL 导出私钥

    到目前为止 我成功地使用了 SSL 但遇到了令人困惑的障碍 我生成了 RSA 密钥对 之前使用 PEM write bio RSAPrivateKey 来导出它们 然而 手册页声称该格式已经过时 实际上它看起来与通常的 PEM 格式不同 相
  • 带动态元素的 WPF 启动屏幕。如何?

    我是 WPF 新手 我需要一些帮助 我有一个加载缓慢的 WPF 应用程序 因此我显示启动屏幕作为权宜之计 但是 我希望能够在每次运行时更改屏幕 并在文本区域中显示不同的引言 这是一个生产力应用程序 所以我将使用非愚蠢但激励性的引言 当然 如
  • 覆盖子类中的字段或属性

    我有一个抽象基类 我想声明一个字段或属性 该字段或属性在从该父类继承的每个类中具有不同的值 我想在基类中定义它 以便我可以在基类方法中引用它 例如覆盖 ToString 来表示 此对象的类型为 property field 我有三种方法可以
  • 链接器错误:已定义

    我尝试在 Microsoft Visual Studio 2012 中编译我的 Visual C 项目 使用 MFC 但出现以下错误 error LNK2005 void cdecl operator new unsigned int 2
  • 向现有 TCP 和 UDP 代码添加 SSL 支持?

    这是我的问题 现在我有一个 Linux 服务器应用程序 使用 C gcc 编写 它与 Windows C 客户端应用程序 Visual Studio 9 Qt 4 5 进行通信 是什么very在不完全破坏现有协议的情况下向双方添加 SSL
  • 将控制台重定向到 .NET 程序中的字符串

    如何重定向写入控制台的任何内容以写入字符串 对于您自己的流程 Console SetOut http msdn microsoft com en us library system console setout aspx并将其重定向到构建在
  • C# 成员变量继承

    我对 C 有点陌生 但我在编程方面有相当广泛的背景 我想做的事情 为游戏定义不同的 MapTiles 我已经像这样定义了 MapTile 基类 public class MapTile public Texture2D texture pu
  • 混合 ExecutionContext.SuppressFlow 和任务时 AsyncLocal.Value 出现意外值

    在应用程序中 由于 AsyncLocal 的错误 意外值 我遇到了奇怪的行为 尽管我抑制了执行上下文的流程 但 AsyncLocal Value 属性有时不会在新生成的任务的执行范围内重置 下面我创建了一个最小的可重现示例来演示该问题 pr
  • Windows 和 Linux 上的线程

    我在互联网上看到过在 Windows 上使用 C 制作多线程应用程序的教程 以及在 Linux 上执行相同操作的其他教程 但不能同时用于两者 是否存在即使在 Linux 或 Windows 上编译也能工作的函数 您需要使用一个包含两者的实现

随机推荐

  • [Git专题] 环境搭建

    环境搭建 在正式使用 Git 之前 首先应当安装 Git 并完成一些基础配置 本章内容就教大家在 Ubuntu 和 CentOS 上安装 Git 的方法 安装 Git 客户端 如果你使用的是基于 Debian 的 Linux 发行版本 那么
  • SpringBoot+redis RedisTemplate/jedis 配置多个数据源 灵活切库 选择库

    目录 1 这里也介绍两种方式 一种是redis的 RedisTemplate 另一种是jedis 大家需要哪一种 自己选择 2 这里先说redis 的 RedisTemplate 1 加入依赖并在在yml 文件里面加入配置 2 添加配置文件
  • 推荐106个软件工程本科的计算机毕业设计,有手就会

    对于即将面临毕业设计的计算机专业学生来说 如何选题和成功完成项目是一个艰难的问题 今天 我们将与大四的学生分享一些毕业设计项目 希望能为你提供一些帮助 一 成品列表 以下所有springboot框架项目的源码博主已经打包好上传到百du云了
  • Java操作Excel - Easy Excel

    一 介绍 官网 https easyexcel opensource alibaba com EasyExcel是阿里巴巴开源的 一个基于Java的 快速 简洁 解决大文件内存溢出的Excel处理工具 他能让你在不用考虑性能 内存的等因素的
  • 抖音跳微信小程序(抖音分享卡片和链接)图文教程

    序 1 本博文参考一下资料 获取接口调用凭据 微信开放文档 获取scheme码 微信开放文档 获取授权帐号调用令牌 微信开放文档 用H5打开微信小程序 weixin 46746389的博客 CSDN博客 2 注意 只能是企业认证的小程序才可
  • Vue面试系列之十:watch和computed的区别以及怎么选用

    1 区别 1 1 定义 语义区别 watch
  • 函数模板与普通函数的区别

    函数模板与普通函数的区别 1 普通函数调用时可以发生自动类型转换 隐式转换 2 函数模板调用时 如果利用自动类型推导 不会发生隐式类型转换 3 如果利用显示指定类型的方式 可以发生隐式类型转换 代码示例 include
  • Java物联网方向_物联网专业课程安排——未来主要方向之一

    课程1 物联网产业与技术导论 使用电子工业出版社 物联网 技术 应用 标准 安全与商业模式 等等教材 在学完高等数学 物理 化学 通信原理 数字电路 计算机原理 程序设计原理等课程后开设本课程 全面了解物联网之RFID M2M 传感网 两化
  • 关于加法溢出问题

    开个题目 关于加法溢出问题 以后想到什么情况就在这里更新吧 1 freeRTOS 的时钟节拍函数 要实现一个定时任务A 当前时钟节拍计数器xTickCount 需要延时的时钟节拍 delayTick 延时的时钟节拍时间点tickTime 由
  • 05智慧杆塔

    一张图读懂一个产业之智慧杆塔 智慧杆塔是综合承载多种设备和传感器并具备智慧能力的杆 塔等设施的总称 包括但不限于通信杆 塔 路灯杆和监控杆 智慧杆塔具备的功能由其挂载的设备和传感器决定 这些设备和传感器可通过各种通信技术接入网络和平台 并在
  • R语言实用教程薛毅清华出版社课后题答案

    有R语言实用教程薛毅课后题答案习题1 5 详情请到我的页面资源查看
  • NVMe Cli 使用教程 -- NVMe Read / Write 使用实践

    1 NVMe Write Write命令的官方说明 nvme write
  • C Primer Plus 第五章 编程练习

    第五章 编程练习 5 1 题 目 编写一个程序 把用分钟的时间转换用小时和分钟表示的时间 使用 define或者const创建一个表示60的符号常量或const变量 通过while循环让用户重复输入值 直到用户输入小于或者等于0 的值才停止
  • 网络安全工程师

    岗位职责 1 分析网络现状 对网络系统进行安全评估和安全加固 设计安全的网络解决方案 2 在出现网络攻击或安全事件时 提高服务 帮助用户恢复系统及调查取证 3 针对客户网络架构 建议合理 的网络安全解决方案 4 负责协调解决方案的客户化实施
  • CISSP-安全和风险管理

    俗话说什么是网络安全 那网络安全的基本原则有哪些呢 主要是有可用性 保密性 完整性 1 那什么是可用性 可用性的话 那就是在我们的数据和资源需要随时保持能够授权用户进行访问 用户想要访问想要用的时候 你就应该能用 而不是不能用 2 那什么是
  • Vijava 学习笔记之 DataStore(基础配置信息)

    vijava 代码 实体类 package com vmware pojo import java util ArrayList import java util Calendar 存储信息 author zhb public class
  • R语言实战笔记 基本统计分析-相关

    相关 相关系数可以用来描述定量变量之间的关系 将使用R基础安装中的state x77数据集 提供了美国50个州在1977年的人口 收入 文盲率 预期寿命 谋杀率和高中毕业率数据等 数据如下 相关的类型 Pearson Spearman和Ke
  • Markdown语法详解

    Markdown语法 标题 一级标题 一级标题 二级标题 二级标题 三级标题 三级标题 四级标题 四级标题 五级标题 五级标题 段落 前后空行超过一行 即为一个段落 标题 副标题 正文 表格 ID 用户名 昵称 1 root ROOT 2
  • Node 调试利器,前端、Node 开发必备 - VSCode JS Debug Terminal

    经常看到有同学抱怨 Node 调试麻烦或者是搞不清怎么调试各种脚本 Jest Webpack 等等 而偶尔看到的调试相关的文章又全都是在写 inspect launch json 这些方案 其实有一定学习成本 而其实在 VSCode 中早已
  • [OCCT] Open CASCADE Technology的编译(包含示例的编译)

    QQ交流群 604668232 OCCT知识库 yuque com softdev occt 持续更新 相关文档 官方文档 构建 调试和升级 官方文档 OCCT的构建 文章目录 源代码目录 编译源代码 方法一 使用官方提供的VS工程 方法二