OpenCASCADE开发指南:专栏内容介绍及目录

1、专栏介绍

1.1 几何内核

  在三维建模软件和仿真软件中,我们经常能听到到"几何内核 "一词。那么几何内核是究竟什么是几何建模内核?先说结论:几何没有内核,就没有CAD软件

  从软件的历史中可以清楚地看到,创建工业级几何建模内核是开发工程软件中最困难的任务之一。找到正确的解决方案需要具备数学、计算机系统架构、软件设计和CAD专业知识等方面的顶级能力。目前全球市场上只有少数内核供应商;CAD市场的很大一部分以及相关产品在商业和技术上都依赖于它们。

  CAD技术从60年代诞生以来,经历了二维绘图、线框模型、自由曲面模型、实体造型、特征造型等重要发展阶段。几何三维核是一种软件组件,用于在计算机上以3D形式表示和精确建模物理对象。从内核开始开发最终用户应用程序,如CAD(计算机辅助设计)、CAM(计算机辅助制造)、CAE(计算机辅助工程)以及许多其他工程领域的产品。所有这些系统都需要精确、高效的工具来使用软件模型来创建、存储和分析3D数据,执行专门的计算等等。随着CAD技术的发展也诞生了许多成熟和知名的CAD引擎和软件。其中最重要的CAD引擎一般指的就是几何内核。要在计算机上建模实体,需要一个内核。内核执行复杂的方程,生成屏幕上显示的对象的视觉表示

  目前,商用CAD引擎主要包括了ACIS、HOOPS、ParaSolid等。其中使用ACIS引擎的底层产品主要包括了AutoCAD、Inventer、Catia、MicroSolid等;使用ParaSolid引擎的主要包括了UG、Solidworks、SolidEdge等。但由于关注点的差别及商业保密的因素,不同的CAD软件都有自己的一套建模方式和存储体系,这导致了系统间数据无法进行直接的传递。目前采用的方式是通过中间标准格式文件为媒介进行传递,但是这种方式会丢失一些细节特征,这就还需要进行一些其它额外的修补工作,这也一定程度上影响了CAD技术的发展。

1.2 OpenCASCADE

  在商用CAD软件外,还有一些比较成熟的开源CAD引擎 ,其中使用的比较多的是OpenCascade(简称OCC)。OCC平台是由法国Matra Datavision公司开发的CAD/CAE/CAM软件平台,可以说是世界上最重要的几何造型基础软件平台之一。它是一个开放源码CAD 内核,可以定制和扩展(添加新的功能组件,类的进一步继承),面向CAD/CAM,对主流CAD 数据格式提供支持(STEP/STL/IGES 等,可自行开发转换程序提供特定数据格式的支持),提供高级建模函数(拟合,有理样条曲线,拉伸、旋转、扫出、层叠拉伸、圆角、倒角、薄壳、修剪、偏移等),参数化模型,提供几何模型的特征提取,对Visual C++/MFC 有很好的支持。

  在当前国内大力自主发展技术,知识产权保护趋严的背景下,几何内核作为工业软件的一项基本底层技术,应该被拿到产业链的战略地位上来,否则永远只能在国外产品基础上开发,利润大头送给他人。

2、专栏目录

OpenCASCADE开发指南<一>:OCC库编译和环境搭建
OpenCASCADE开发指南<二>:OCC 体系结构和基本概念
OpenCASCADE开发指南<三>:OCC 基础类概述
OpenCASCADE开发指南<四>:OCC 数据类型和句柄
OpenCASCADE开发指南<五>:OCC 内存管理器和异常类
OpenCASCADE开发指南<六>:OCC 中的集合容器(Array、Map)类和迭代器
OpenCASCADE开发指南<七>:OCC 中的数学基本类型和数学算法
OpenCASCADE开发指南<八>:OCC 数据结构分析之二三维几何数据
OpenCASCADE开发指南<九>:OCC 数据结构分析之拓扑数据结构
OpenCASCADE开发指南<十>:OCC三维建模基础知识
OpenCASCADE开发指南<十一>:OCC基本三维几何体建模类BRepBuilderAPI、BRepPrimAPI介绍
OpenCASCADE开发指南<十二>:OCC创建三维瓶子模型

3、效果





相关推荐
zmzb01034 小时前
C++课后习题训练记录Day157
开发语言·c++
从零开始的代码生活_7 小时前
C++ 多态详解:虚函数、动态绑定、抽象类与虚表原理
开发语言·c++·后端·学习·算法
大彼方..8 小时前
C++ STL Vector 深度剖析:从内存管理到性能优化
开发语言·c++
炸薯条!8 小时前
从零开始学C++ (内存管理)
java·jvm·c++
cpp_250110 小时前
P6625 [省选联考 2020 B 卷] 卡牌游戏
数据结构·c++·算法·前缀和·贪心·洛谷题解·省选
旖-旎13 小时前
《LeetCode 416 分割等和子集》
c++·算法·leetcode·动态规划·背包问题
Mortalbreeze13 小时前
深入理解 Linux 线程机制(四):线程同步——条件变量与信号量
linux·运维·服务器·开发语言·c++
郝学胜-神的一滴14 小时前
中级OpenGL教程 020:巧用数组与循环实现多点点光源渲染,告别冗余代码重构方案
c++·unity·游戏引擎·godot·图形渲染·unreal
zmzb010314 小时前
C++课后习题训练记录Day160
开发语言·c++
沫璃染墨15 小时前
现代C++⊂C++11篇(一)列表初始化全解 & std::initializer_list
开发语言·c++