VS2022+OpenCasCade配置编译

 一、Open CASCADE Technology介绍及安装(windows10)

        Open CASCADE Technology(简称OCCT)是一款开源的 3D CAD/CAM/CAE 软件开发平台,广泛应用于工业设计、工程仿真、制造等领域。开源OCC对象库是一个面向对象C++类库,用于快速开发设计领域的专业应用程序。OCC主要用于开发二维和三维几何建模应用程序,包括通用的或专业的计算机辅助设计CAD系统、制造或分析领域的应用程序、仿真应用程序或图形演示工具。OCC通过有机组织的C++库文件提供了六个模块。可视化模块作为OCC的核心部分,是可视化技术的具体体现。

1.1 核心功能

1.几何建模内核:提供曲面和实体建模的核心算法,支持 NURBS 曲线/曲面、布尔运算(交/并/差)、倒角、抽壳等高级建模功能

2. 数据交换:支持多种CAD格式,如STEP、IGES、STL、OBJ、VRML 等,可导入/导出行业标准文件,兼容主流CAD软件(如 SolidWorks、CATIA)

3. 可视化与渲染,集成OpenGL渲染引擎,支持3D模型的交互式显示,提供 选择、缩放、旋转 等交互操作功能

4. 网格处理:生成三角网格(用于 3D 打印、有限元分析),支持网格优化、修复、简化等操作

5. 参数化建模:支持历史记录(Feature Tree),允许修改设计参数并自动更新模型。

1.2 源码下载

1.2.1 OpenCasCade源码下载

1、下载网址

Download - Open CASCADE Technology

2、点击Previous releases----》点击Open CASCADE Technology 7.7.0 - 07.11.2022

3、 点击opencascade-7.7.0-vc14-64.exeopencascade-7.7.0.tgz进行下载,注册账户。

4、点击3rd party Components------>点击Windows(win32)

5、下载第三方插件,下载freeimage-3.17.0-vc14-64、freetype-2.5.5-vc14-64、tcltk-86-64三个依赖包。

6、解压open CasCade源码压缩包,在改目录中创建install、build和product三个文件夹。

7、 将第三方库文件解压放到product文件下。

1.3 cmake工具下载及安装

1、进入官网下载CMake安装包,官网网址:Download CMake,往下滑,随便选择一个版本,下载.msi文件。2、下载完成后双击安装

3、进入安装界面,点击【Next】

4、同意协议,点击【Next】

5、将Cmake添加进用户变量,勾选创建桌面图标,点击【Next】。

6、选择路径,点击【Next】。

7、开始安装,点击【Install】

8、安装完毕,点击【Finish】

9、安装完毕,进行测试,打开cmd黑窗,输入命令查看版本,安装成功。

cmake /V


1.4  编译源码   

1、打开cmake工具首先配置occ的源码位置和build目录,点击Configure。

2、 选择“Visual Studio 17 2022”,X64编译----》Finish。    

3、弹出Error窗口,点击OK

 4、将cmake配置项中配置3RDPARTY_DIR为放置依赖的product目录,以及INSTALL_DIR目录目录为install。

5、点一下Configure----》Generate,最后点OpenProject。

6、Visual Studio自动打开,右键解决方案,生成解决方案开始构建,无报错就表示成功了。 

7、右键解决方案管理器中的INSTALL,点击生成,目的是将编译好的文件安装到install目录

8、测试,右键Modules---->Draw----->DRAWEXE,将DRAWEXE设为启动项目,然后CTRL+F5执行,在打开的命令行窗口中即可测试DRAWEXE命令。

9、在打开的终端中输入以下命令绘制测试图像 。

pload ALL
box b 1 1 1
axo
fit

二、Visual Studio环境配置(Debug版本)

1、创建一个新项目OCCT_test,设置平台为Debug x64,打开属性管理器,新建属性表,命名为 OCCT7.7.0_Debug _x64.props

2、修改属性表名字,点击添加即可。

3、双击OCCT_Debug_7.7.0属性表。

 4、VC++目录----》包含目录-----》小三角----》编辑----》添加四个目录-----》确定。

5、VC++目录----》库目录-----》小三角----》编辑----》添加四个目录-----》确定。

6、提取lib文件命配置链接器

1)通过这段python代码提取一下目录的lib文件

import osdef Extract_lib(path):# 检查路径是否存在且是目录if not os.path.isdir(path):raise ValueError(f"路径 '{path}' 无效或不是目录。")# 使用追加模式 'a'(而不是写入模式 'w')with open("ooct_debug_lib.txt", 'a', encoding='utf-8') as release:  # 'a' 表示追加for file in os.listdir(path):if file.lower().endswith('.lib'):  # 不区分大小写检查扩展名release.write(file + '\n')  # 写入文件名并换行if __name__ == '__main__':# 修改提取lib文件的目录path = r"D:\Software_Setup_Path\OpenCASCADE-7.7.0-vc14-64\build\win64\vc14\libd"Extract_lib(path)path = r"D:\Software_Setup_Path\OpenCASCADE-7.7.0-vc14-64\product\freeimage-3.17.0-vc14-64\lib"Extract_lib(path)path = r"D:\Software_Setup_Path\OpenCASCADE-7.7.0-vc14-64\product\freetype-2.5.5-vc14-64\lib"Extract_lib(path)path = r"D:\Software_Setup_Path\OpenCASCADE-7.7.0-vc14-64\product\tcltk-86-64\lib"Extract_lib(path)

2)需要提取lib文件的四个库目录

D:\Software_Setup_Path\OpenCASCADE-7.7.0-vc14-64\build\win64\vc14\libd
D:\Software_Setup_Path\OpenCASCADE-7.7.0-vc14-64\product\freeimage-3.17.0-vc14-64\lib
D:\Software_Setup_Path\OpenCASCADE-7.7.0-vc14-64\product\freetype-2.5.5-vc14-64\lib
D:\Software_Setup_Path\OpenCASCADE-7.7.0-vc14-64\product\tcltk-86-64\lib

3)提取结果

FreeImage.lib
FreeImagePlus.lib
DRAWEXE.lib
ExpToCasExe.lib
TKBin.lib
TKBinL.lib
TKBinTObj.lib
TKBinXCAF.lib
TKBO.lib
TKBool.lib
TKBRep.lib
TKCAF.lib
TKCDF.lib
TKDCAF.lib
TKDraw.lib
TKernel.lib
TKExpress.lib
TKFeat.lib
TKFillet.lib
TKG2d.lib
TKG3d.lib
TKGeomAlgo.lib
TKGeomBase.lib
TKHLR.lib
TKIGES.lib
TKLCAF.lib
TKMath.lib
TKMesh.lib
TKMeshVS.lib
TKOffset.lib
TKOpenGl.lib
TKOpenGlTest.lib
TKPrim.lib
TKQADraw.lib
TKRWMesh.lib
TKService.lib
TKShHealing.lib
TKStd.lib
TKStdL.lib
TKSTEP.lib
TKSTEP209.lib
TKSTEPAttr.lib
TKSTEPBase.lib
TKSTL.lib
TKTObj.lib
TKTObjDRAW.lib
TKTopAlgo.lib
TKTopTest.lib
TKV3d.lib
TKVCAF.lib
TKViewerTest.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
FreeImage.lib
FreeImagePlus.lib
freetype.lib
itclstub40.lib
tcl86.lib
tclstub86.lib
tk86.lib
tkstub86.lib
DRAWEXE.lib
ExpToCasExe.lib
TKBin.lib
TKBinL.lib
TKBinTObj.lib
TKBinXCAF.lib
TKBO.lib
TKBool.lib
TKBRep.lib
TKCAF.lib
TKCDF.lib
TKDCAF.lib
TKDraw.lib
TKernel.lib
TKExpress.lib
TKFeat.lib
TKFillet.lib
TKG2d.lib
TKG3d.lib
TKGeomAlgo.lib
TKGeomBase.lib
TKHLR.lib
TKIGES.lib
TKLCAF.lib
TKMath.lib
TKMesh.lib
TKMeshVS.lib
TKOffset.lib
TKOpenGl.lib
TKOpenGlTest.lib
TKPrim.lib
TKQADraw.lib
TKRWMesh.lib
TKService.lib
TKShHealing.lib
TKStd.lib
TKStdL.lib
TKSTEP.lib
TKSTEP209.lib
TKSTEPAttr.lib
TKSTEPBase.lib
TKSTL.lib
TKTObj.lib
TKTObjDRAW.lib
TKTopAlgo.lib
TKTopTest.lib
TKV3d.lib
TKVCAF.lib
TKViewerTest.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
FreeImage.lib
FreeImagePlus.lib
freetype.lib
itclstub40.lib
tcl86.lib
tclstub86.lib
tk86.lib
tkstub86.lib

 7、打开ooct_debug_lib.txt将txt中的lib文件名复制粘贴到链接器----》输入----》附加依赖项----》小三角----》编辑-----》粘贴lib文件名----》确定

8、设置系统变量:右键此电脑-----》属性-----》高级系统设置------》高级------》环境变量------》Path------》编辑-----》添加以下四条路径。

D:\Software_Setup_Path\OpenCASCADE-7.7.0-vc14-64\product\tcltk-86-64\bin
D:\Software_Setup_Path\OpenCASCADE-7.7.0-vc14-64\product\freetype-2.5.5-vc14-64\bin
D:\Software_Setup_Path\OpenCASCADE-7.7.0-vc14-64\product\freeimage-3.17.0-vc14-64\bin
D:\Software_Setup_Path\OpenCASCADE-7.7.0-vc14-64\build\win64\vc14\bind

  9、配置项目调试环境:解决方案-----》右键OCCT_QT项目-----》属性-----》调试-----》环境------》小三角------》编辑-----》,添加同样的路径。

D:\Software_Setup_Path\OpenCASCADE-7.7.0-vc14-64\product\tcltk-86-64\bin
D:\Software_Setup_Path\OpenCASCADE-7.7.0-vc14-64\product\freetype-2.5.5-vc14-64\bin
D:\Software_Setup_Path\OpenCASCADE-7.7.0-vc14-64\product\freeimage-3.17.0-vc14-64\bin
D:\Software_Setup_Path\OpenCASCADE-7.7.0-vc14-64\build\win64\vc14\bind

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/78793.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【OSG学习笔记】Day 12: 回调机制——动态更新场景

UpdateCallback 在OpenSceneGraph(OSG)里,UpdateCallback是用来动态更新场景的关键机制。 借助UpdateCallback,你能够实现节点的动画效果,像旋转、位移等。 NodeCallback osg::NodeCallback 是一个更通用的回调类&…

全新升级:BRAV-7601-T003高性能无风扇AI边缘计算系统,助力智能未来!

在数字化与智能化飞速发展的今天,AI边缘计算正成为各行各业的核心驱动力。BRAV-7601作为一款高性能无风扇AI边缘计算系统,凭借其强大的硬件配置与丰富的扩展能力,为车路协同、特种车辆车载、机器视觉、医疗影像等领域提供了卓越的解决方案。最…

删除 Git 远程记录并重新设置

删除 Git 远程记录并重新设置 以下是在 Windows 平台上删除当前项目的 Git 远程记录并重新设置远程存储库的步骤: 步骤一:查看当前远程仓库 首先,检查当前设置的远程仓库: git remote -v这会显示所有已配置的远程仓库及其 URL…

有哪些和PPT自动生成有关的MCP项目?

随着AI技术的快速发展, Model Context Protocol(MCP) 作为一种连接大型语言模型(LLMs)与外部工具的开放协议,正在重塑自动化办公领域。在PPT自动生成场景中,MCP通过标准化接口实现了AI模型与设计工具、数据源的无缝整合。以下从技术框架、项目案例、应用场景三个维度展开…

PostgreSQL psql 命令和常用的 SQL 语句整理

PostgreSQL psql 命令和常用的 SQL 语句整理 1、登录PostgreSQL数据库2、psql 命令3、数据库操作4、模式操作5、表操作6、数据操作7、索引操作8、视图操作9、权限操作 1、登录PostgreSQL数据库 在系统的命令行界面(如 Windows 的 cmd 或者 PowerShell、Linux 的终端…

【unity游戏开发入门到精通——UGUI】文本输入控件 —— InputField旧控件

注意:考虑到UGUI的内容比较多,我将UGUI的内容分开,并全部整合放在【unity游戏开发——UGUI】专栏里,感兴趣的小伙伴可以前往逐一查看学习。 文章目录 前言1、文本输入控件2、InputField旧文本输入控件组成 一、InputField文本输入…

获得ecovadis徽章资格标准是什么?ecovadis评估失败的风险

EcoVadis徽章资格标准 EcoVadis徽章是对企业在可持续发展(环境、劳工与人权、商业道德、可持续采购)方面表现的认可。获得徽章需满足以下条件: 完成评估: 企业必须完成EcoVadis的问卷评估,并提交所有必要文件。 评分…

Python初学 有差异的知识点总结(一)

目录 一、基础语法规则 1.注释 2.代码编写 二、基础语法 1.变量 2.数据类型 3.数据类型的转换 (1)隐式转换 (2)显示转换 4.标识符 5.运算符 6.字符串 (1)定义 (2)拼接 …

Java面试场景深度解析

Java面试场景深度解析 在互联网大厂Java求职者的面试中,经常会被问到关于Java项目中的各种技术场景题。本文通过一个故事场景来展示这些问题的实际解决方案。 第一轮提问 面试官:马架构,欢迎来到我们公司的面试现场。请问您对Java内存模型…

【数据可视化艺术·应用篇】三维管线分析如何重构城市“生命线“管理?

在智慧城市、能源管理、工业4.0等领域的快速发展中,地下管线、工业管道、电力通信网络等“城市血管”的复杂性呈指数级增长。传统二维管理模式已难以应对跨层级、多维度、动态变化的管线管理需求。三维管线分析技术应运而生,成为破解这一难题的核心工具。…

Spring-全面详解(学习总结)

一:概述 1.1 为什么学 解决了两个主要问题 1. 2 学什么 1.3 怎么学 二:系统架构 作用:web开发、微服务开发、分布式系统开发 容器:用于管理对象 AOP:面向切面编程(不惊动原始程序下对其进行加强) 事…

企业架构之旅(2):解锁TOGAF ADM

文章目录 一、什么是 TOGAF ADM二、TOGAF ADM 的关键阶段架构愿景(Phase A)业务架构(Phase B)信息系统架构(Phase C)技术架构(Phase D)机会与解决方案(Phase E&#xff0…

MySQL 中 SQL 语句的详细执行过程

MySQL 中 SQL 语句的详细执行过程 当一条 SQL 语句在 MySQL 中执行时,它会经历多个阶段的处理。下面我将详细描述整个执行流程: 1. 连接阶段 (Connection) 客户端与 MySQL 服务器建立连接服务器验证用户名、密码和权限连接器负责管理连接状态和权限验…

ETL架构、数据建模及性能优化实践

ETL(Extract, Transform, Load)和数据建模是构建高性能数据仓库的核心环节。下面从架构设计、详细设计、数据建模方法和最佳实践等方面系统阐述如何优化性能。 一、ETL架构设计优化 1. 分层架构设计 核心分层: 数据源层:对接O…

快速上手Prism WPF 工程

1、Prism 介绍 ​定位​: Prism 是 ​微软推出的框架,专为构建 ​模块化、可维护的复合式应用程序​ 设计,主要支持 WPF、Xamarin.Forms、UWP 等平台。​核心功能​: ​模块化开发​:将应用拆分为独立模块&#xff0c…

React 单一职责原则:优化组件设计与提高可维护性

单一职责原则(SRP) 在 React 中,组件是构建 UI 的核心单位,而良好的组件设计是保证应用质量和可维护性的关键。单一职责原则是一种设计原则,也适用于 React 组件的开发。它强调每个组件应该只关注一个职责&#xff0c…

css网格布局Grid

一、网格布局适应场景 当涉及到的布局是二维布局(元素不止一行或者一列)且比较复杂的时候,可以用网格布局,看下面的一个例子: 上图上一个四行三列的网格,布局相对比较复杂。如果你用别的布局方案&#xff…

利用Python生成Xilinx FPGA ROM IP核 .coe初始化文件

以下是一个 Python 脚本,用于生成 Xilinx IP ROM 的.coe 格式初始化文件,假设ROM 深度为 1024,数据位宽为 32bit,使用随机的 32 位无符号数进行初始化: import random# 定义ROM的深度和数据位宽 rom_depth 1024 data…

8.2 段落格式

在word里,段落格式包括首行缩进、行间距、段前、段后等。LaTex同样支持这些功能。 段落间距 全局设置 段落间距用setlength命令来指定。如以下代码 \documentclass{article} \usepackage{ctex} \begin{document}\setlength{\parskip}{11em plus 1em minus 1em}\p…

OpenVLA-OFT

TL;DR 2025 年斯坦福提出的 OpenVLA 工作的续作 OpenVLA-OFT,优化 VLA 能够有效适应新的机器人平台和任务,优化的技术主要有并行解码、动作块处理、连续动作、L1 回归和(可选的)FiLM 语言调节 Paper name Fine-Tuning Vision-La…