OpenCascade简介
OpenCascade简介
Overview of OpenCascade Library
摘要Abstract:对OpenCascade库的功能及其实现做简要介绍。
关键字Key Words:OpenCascade、occ、Modeling Kernel、CAD
Open CASCADE Technology 是为特定领域快速开发程序而设计的面向对象的C++类库。可以使用OCCT来开发二维和三维的通用几何造型的计算机辅助设计程序CAD(Computer Aided Design),计算机辅助制造程序CAM(Computer Aided Manufacturing)和计算机辅助分析程序CAA(Computer Aided Analysis);仿真程序和绘图程序。OCCT库可以明显快速程序的开发进度。
OCCT库提供如下功能:
l 2D和3D几何造型工具箱,可对任何物体造型;
- n 创建基本图元,如prism,cylinder, cone, torus;
- n 对实体进行布尔操作,addition, subtraction and intersection;
- n 根据倒圆、倒角、草图拉伸出几何实体;
- n 使用偏移offsets、成壳shelling、挖空hollowing和挤压sweeps构造几何实体;
- n 计算几何实体属性,如表面积、体积、重心、曲率半径;
- n 使用插值interpolation、逼近approximation、投影projection计算出几何体;
l 可视化功能提供对几何实体的显示、控制功能,例如:
- n 三维旋转3D rotation;
- n 缩放Zoom;
- n 着色Shading;
l 程序框架提供如下功能:
- n 将非几何数据与几何实体关联;
- n 参数化模型;
- n Java Application Desktop(JAD);
OCCT库是由Open CASCADE公司开发和市场运作的。库被设计成模块化和易扩展。将C++类与以下内容分离:
- l 定义数据结构(几何建模、显示和交互选择);
- l 实现复杂算法;
- l 提供编程接口;

图1. OpenCascade架构图
相关的类由包来分组,避免了类名的冲突。C++类名前加上包名作为前缀。如包Geom中所有的3D几何体,实现Bezier曲面的类为BezierSurface,其全称为Geom_BezierSurface。
包组成库,即提供给程序链接使用。
最的,库分组成六个模块,最小的模块Foundation Classes包含两个库,最大的模块Modeling Algorithms,包含八个库。(eryar: 可能是早期版本,最新版本的库的数量有变化。)这些模块如下图所示:
图2:Object Libraries modules and their contents
|
Foundation Classes基础类 |
Modeling Data 建模数据 |
Modeling Algorithms 建模算法 |
Visualization 可视化 |
Data Exchange 数据交换 |
Application Framework 程序框架 |
|
Kernel Classes 核心类 |
2D Geometry 二维几何体 |
Primitives 基本实体 |
2D和3D通用功能 |
IGES STEP |
Data Framework |
|
Math Utilities 数学工具 |
3D Geometry 三维几何体 |
Boolean Operations 布尔操作 |
2D Visualization 2D 可视化 |
AP203 AP214 |
Data Storage |
|
Geometry Utilities 几何工具 |
Fillets and Chamfers 倒圆和倒角 |
3D Visualization 3D 可视化 |
Extended data Exchange (XDE) |
Application Desktop |
|
|
Topology 拓朴结构 |
Offsets, Drafts, Sewing, Sweeps, |
||||
|
Hidden Line Removal 消隐 |
|||||
|
Geometric Tools 几何工具 |
|||||
|
Topological Tools 拓朴工具 |
另外,Draw Test Harness(Draw)为可视化、建模算法、程序框架和数据交换模块提供测试。
eryar
Shanghai Pudongxin China
2012-8-16
OpenCascade简介的更多相关文章
- Introduction of OpenCascade Foundation Classes
Introduction of OpenCascade Foundation Classes Open CASCADE基础类简介 eryar@163.com 一.简介 1. 基础类概述 Foundat ...
- Package gp in the OpenCASCADE
Package gp in the OpenCASCADE eryar@163.com China 一.简介 Introduction to Package gp gp是几何处理程序包(Geometr ...
- OpenCASCADE 包说明
转载地址:http://www.cppblog.com/eryar/archive/2012/06/30/180916.html 一.简介 Introduction to Package gp gp是 ...
- ASP.NET Core 1.1 简介
ASP.NET Core 1.1 于2016年11月16日发布.这个版本包括许多伟大的新功能以及许多错误修复和一般的增强.这个版本包含了多个新的中间件组件.针对Windows的WebListener服 ...
- MVVM模式和在WPF中的实现(一)MVVM模式简介
MVVM模式解析和在WPF中的实现(一) MVVM模式简介 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 MVVM模式解析和在 ...
- Cassandra简介
在前面的一篇文章<图形数据库Neo4J简介>中,我们介绍了一种非常流行的图形数据库Neo4J的使用方法.而在本文中,我们将对另外一种类型的NoSQL数据库——Cassandra进行简单地介 ...
- REST简介
一说到REST,我想大家的第一反应就是“啊,就是那种前后台通信方式.”但是在要求详细讲述它所提出的各个约束,以及如何开始搭建REST服务时,却很少有人能够清晰地说出它到底是什么,需要遵守什么样的准则. ...
- Microservice架构模式简介
在2014年,Sam Newman,Martin Fowler在ThoughtWorks的一位同事,出版了一本新书<Building Microservices>.该书描述了如何按照Mic ...
- OpenCASCADE AIS Manipulator
OpenCASCADE AIS Manipulator eryar@163.com Abstract. OpenCASCADE7.1.0 introduces new built-in interac ...
随机推荐
- 创建位图画刷(CreatePatternBrush)
3.创建位图画刷(CreatePatternBrush) CBitMap bmp; bmp.LoadBitMap(IDB_MYBITMAP) ; CBrush bs ; bs.CreatePatter ...
- 编写一个程序,将a.txt文件中的单词与b.txt文件中的单词交替合并到c.txt文件中,a.txt文件中的单词用回车符分隔,b.txt文件中用回车或空格进行分隔
package sundemo2; import java.io.File; import java.io.FileReader; import java.io.FileWriter; public ...
- netty 3.9.2 UDP协议服务器和客户端DEMO
说明:基于netty 3.9.2的udp协议实现的(如果你使用的版本是4.X或5.X,请参考其他方法):程序的逻辑结构是,客户端发送给服务端一串数据,服务器端返回给客户端“A”.在进行游戏开发时需要对 ...
- Swift入门教程:基本语法(四)
可选类型 可选类型的使用场合 当一个值可能存在,可能不存在的时候,就用可选类型 比如查找字符k在某个字符串中的位置 如果字符串是"jake",说明k的位置存在,是2 如果字符串是& ...
- windows下exfat无法写入修复
为了可以实现mac与windows文件共享,把移动硬盘格式化为exfat了,但是在osx中放入文件后,在windows上紧进行读取写入时出现错误,提示使用chkdsk进行修正,以下是修正步骤. ①wi ...
- Git基础教程
Git是一个分布式的版本控制工具,本篇文章从介绍Git开始,重点在于介绍Git的基本命令和使用技巧,让你尝试使用Git的同时,体验到原来一个版 本控制工具可以对开发产生如此之多的影响,文章分为两部分, ...
- 收集整理的非常有用的PHP函数
原文:收集整理的非常有用的PHP函数 项目中经常会需要一些让人头疼的函数,作为开发者应该整理一个自己的函数库,在需要之时复制过来即可.本文作者收集整理数十个PHP项目中常用的函数,保证能正常运行,你只 ...
- Wijmo 5 + Ionic Framework之:费用跟踪 App
Wijmo 5 + Ionic Framework之:费用跟踪 App 费用跟踪应用采用了Wijmo5和Ionic Framework创建,目的是构建一个hybird app. 我们基于<Mob ...
- Progit Update Check Page
######### ######### #########
- mysql基础之基本数据类型
原文:mysql基础之基本数据类型 列类型学习 mysql三大列类型 整型 Tinyint/ smallint/ mediumint/int/ bigint(M) unsigned zerofill ...