OpenCascade简介

 

Overview of OpenCascade Library

eryar@163.com

摘要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简介的更多相关文章

  1. Introduction of OpenCascade Foundation Classes

    Introduction of OpenCascade Foundation Classes Open CASCADE基础类简介 eryar@163.com 一.简介 1. 基础类概述 Foundat ...

  2. Package gp in the OpenCASCADE

    Package gp in the OpenCASCADE eryar@163.com China 一.简介 Introduction to Package gp gp是几何处理程序包(Geometr ...

  3. OpenCASCADE 包说明

    转载地址:http://www.cppblog.com/eryar/archive/2012/06/30/180916.html 一.简介 Introduction to Package gp gp是 ...

  4. ASP.NET Core 1.1 简介

    ASP.NET Core 1.1 于2016年11月16日发布.这个版本包括许多伟大的新功能以及许多错误修复和一般的增强.这个版本包含了多个新的中间件组件.针对Windows的WebListener服 ...

  5. MVVM模式和在WPF中的实现(一)MVVM模式简介

    MVVM模式解析和在WPF中的实现(一) MVVM模式简介 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 MVVM模式解析和在 ...

  6. Cassandra简介

    在前面的一篇文章<图形数据库Neo4J简介>中,我们介绍了一种非常流行的图形数据库Neo4J的使用方法.而在本文中,我们将对另外一种类型的NoSQL数据库——Cassandra进行简单地介 ...

  7. REST简介

    一说到REST,我想大家的第一反应就是“啊,就是那种前后台通信方式.”但是在要求详细讲述它所提出的各个约束,以及如何开始搭建REST服务时,却很少有人能够清晰地说出它到底是什么,需要遵守什么样的准则. ...

  8. Microservice架构模式简介

    在2014年,Sam Newman,Martin Fowler在ThoughtWorks的一位同事,出版了一本新书<Building Microservices>.该书描述了如何按照Mic ...

  9. OpenCASCADE AIS Manipulator

    OpenCASCADE AIS Manipulator eryar@163.com Abstract. OpenCASCADE7.1.0 introduces new built-in interac ...

随机推荐

  1. 兔子--gradle安装和配置

    1.下载gradle,下载--all的这个 点击进入下载页 2.下载下来后,解压.配置环境变量. 编辑path , ....;G:\soft\gradle-2.2.1-all\gradle-2.2.1 ...

  2. post与get,这两人到底神马区别??

    甲曰:“1. GET使用URL或Cookie传参.而POST将数据放在BODY中. 2. GET的URL会有长度上的限制,则POST的数据则可以非常大. 3. POST比GET安全,因为数据在地址栏上 ...

  3. orleans开篇之hello world

    orleans开篇之hello world 什么是orleans Orleans是一个建立在.NET之上的,设计的目标是为了方便程序员开发需要大规模扩展的云服务.Orleans项目基本上被认为是并行计 ...

  4. Thrift实现C#通讯服务程序

    Thrift初探:简单实现C#通讯服务程序 好久没有写文章了,由于换工作了,所以一直没有时间来写博.今天抽个空练练手下~最近接触了下Thrift,网上也有很多文章对于Thrift做了说明:       ...

  5. 前端构建利器Grunt—Bower

    runt + Bower—前端构建利器 目前比较流行的WEB开发的趋势是前后端分离.前端采用重量级的Javascript框架,比如Angular,Ember等,后端采用restful API的Web ...

  6. 【 c语言中无符号和有符号的加法运算】【深入理解】--【sky原创】

    原文:[ c语言中无符号和有符号的加法运算][深入理解]--[sky原创]   第一题 #include<stdio.h> int main() { unsigned int a=6; i ...

  7. C#调用Outlook来发送邮件

    原文:C#调用Outlook来发送邮件 写了一个简单的Windows Form程序,实现利用Outlook来发送电子邮件的功能.下面逐步讲解如何实现,再加上具体的代码. 打开VS2010, 新建一个W ...

  8. webBrowser 参数设置

    //禁用脚本错误等类似的窗口信息 this.webBrowser1.ScriptErrorsSuppressed = true; //禁用右键菜单 this.webBrowser1.IsWebBrow ...

  9. 转载:你需要知道的16个Linux服务器监控命令

    源址:http://web.itivy.com/article-653-1.html 如果你想知道你的服务器正在做干什么,你就需要了解一些基本的命令,一旦你精通了这些命令,那你就是一个 专业的 Lin ...

  10. SQL Server 远程链接服务器详细配置

    原文:SQL Server 远程链接服务器详细配置[转载] http://hi.baidu.com/luxi0194/blog/item/a5c2a9128a705cc6c2fd7803.html - ...