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 ...
随机推荐
- JAVA简单Swing图形界面应用演示样例
JAVA简单Swing图形界面应用演示样例 package org.rui.hello; import javax.swing.JFrame; /** * 简单的swing窗体 * @author l ...
- ArcEngine载入中SDE问题栅格数据
当直接加载矢量数据到IFeatureWorkspace接口可,但是,在装载门格当要传送的数据IRasterWorkspaceEx接口. 效果如下面的,对可以被添加到双击Globe在. watermar ...
- C# - object有哪些基本方法类有
Name Description Equals(Object) Determines whether the specified object is equal to the current obje ...
- PHP实例——输出安全的HTML代码
原文:PHP实例--输出安全的HTML代码 //输出安全的htmlfunction h($text, $tags = null){ $text = trim($text); //完全过滤注释 $tex ...
- Github资源汇集
Github资源汇集 突然发现申请博客园已经两年有余,没有发表过一篇文章,十分惭愧.言归正传,先分享一下两年来收集的部分编程资源,大部分为Github上的项目.虽然网上这样的分享已不在少数,但不如我理 ...
- JavaScript中的单引号和双引号报错的解决方法
在使用JavaScript显示消息或者传递字符数据的时候,经常会碰到数据中夹杂单引号(')或者双引号("),这种语句往往会造成JavaScript报错.对此一般采用/'或者/"的解 ...
- C#备份还原MySql数据库
原文:C#备份还原MySql数据库 项目结束,粘点代码出来让Google或Baidu一下,原因是现在还搜不到这么现成的 调用MySql的工具mysqldump来实现. 类Cmd来实现调用cmd命令, ...
- php 模拟POST提交的2种方法
1.通过curl函数 $post_data = array(); $post_data['clientname'] = "test08"; $post_data['clientpa ...
- 在ubuntu下把php的网页调试功能打开
我这儿的环境是 Ubuntu 14.04 + Lighttpd + PHP5.5 默认情况下php的网页调试功能是不打开的,当PHP解析到一个错误的语法时会直接输出为空白. 我在网上找一许多文章,说 ...
- ASP.NET DataTable的操作大全
DataTable表示一个与内存有关的数据表,可以使用工具栏里面的控件拖放来创建和使用,也可以在编写程序过程中根据需要独立创建和使用,最常见的情况是作为DataSet的成员使用,在这种情况下就需要用在 ...