OCAF初步
来源:互联网 发布:mac 8080端口被占用 编辑:程序博客网 时间:2024/06/06 20:01
OpenCASCADE不仅为用户提供了三位建模、几何体复杂运算、可视化模块等相关类库,还为用户提供了OCAF。
OCAF是the Open CASCADE Application Framework的简称,是一个用来管理应用程序数据的组织框架,使用它可以很容易组织管理常见的CAD/CAM应用程序数据,为开发人员提供了一个快速开发的手段。
它使产品设计工作在更高的层次上进行,设计人员的操作对象不再是原始的线条和体素,而是产品的功能要素,象螺纹孔、定位孔、键槽等。图形的引用直接体现设计意图,使得建立的产品模型容易为别人理解和组织生产,设计的图样更容易修改。设计人员可以将更多精力用在创造性构思上。
OCAF对于OpenCASCADE是一个其类库的辅助工具,在算法、拓扑或几何建模的过程中,OCAF能处理这些类库中的任何数据与算法,这个框架还可以用于组织、保存应用数据。
它提供了:
1.大部分应用程序通用的数据;
2.一套可升级的扩展协议,它可以使用新的应用程序数据;
3.一个体系:
•能够把数据和拓扑元素结合起来
•把由不同的应用程序生成的数据连接起来;
•注册建模过程创建历史或参数
3. 2. 2 OCAF工作原理
1应用程序和文档
在OCAF中,由是OCAF 应用程序来管理管理文档,用文档来管理数据;
应用程序的主要作用是:
--创建新的文档;
--保存与打开文档;
--初始化文档的视图;
文档除了是应用程序数据额的容器之外,还可以指向其他的文档。例如,文档A可以指向文档B的特定的标签。这功能是通过关键参数来实现的。
可以使用TKLCAF.dll类库中的TdocStd_Application派生出应用程序类来管理OCAF应用程序,在应用程序初始化完成后,应用程序类建立文档类,一个应用程序可以建立多个文档类,建立文档类时可以规定该文档类的文件格式。
Handle_TdocStd_ Application//声明应用程序
myOcafApplication=new OcafApplication;//初始化OCAF应用程序
Handle_TdocStd_Document OCAFDoc;//声明文档类
myOcafApplication->NewDocument(“MyFormat”,OCAFDoc);//使用应用程序类建立文档类
2.文档与数据结构
在文档内部,有一个数据框架,一个模型:
主要有以下特点:
(1) 第一个节点是树的根;
(2) 每一个节点都用一个整型值来表达,称为标记(tag) ;
(3) 子节点称为上一节点的孩子;
(4) 非根节点有一个父亲,在此节点的上一级;
(5) 有相同父亲的节点称为兄弟;
(6) 兄弟间不能有相同的标记;
(7) 一个标记在兄弟间是唯一的;
3. 2. 3 OCAF调用
OCAF的调用一般过程是;
1.要在程序的Document中加入一个OCAF变量:Handle_TDocStd_Document m_OcafDoc;用来表示OCAF的文档,注意,这个OCAF文档类和MFC的文档类并不是同一个内容;下面介绍的文档全是指OCAF的文档;
2.生成一个文档的实例:
_OCAFApp->NewDocument("文档名称", m_OcafDoc);
在这里可以设置撤消和恢复的数量
m_OcafDoc->SetUndoLimit(10);
3.创建一个TDF_Label L;生成L的相关参数;
4.利用L和对应的DriverID生成Function;
5.利用DriverID生成图形的Driver,比如生成一个Box的Dirver: myBoxDriver;
6.调用myBoxDriver->Init(L);将两者关联起来;
7.调用myBoxDriver->Execute()函数,在这里生成图形;
以上就是生成一个TDF_Label的简单过程
- OCAF初步
- 初步
- ASP初步
- 初步考虑
- 函数初步
- JSP初步
- 初步计划
- 外挂初步
- DirectX初步
- ITCL初步
- 初步设置
- Dom初步
- 进程初步
- RMI初步
- HOOK初步
- 模板初步
- CVS初步
- MapGuide 初步
- poj3277 线段树 + 离散化 WA2次 long long freopen
- Java报表概述
- 一种面向作业流(工作流)的轻量级可复用的异步流水开发框架JobFlow的设计与实现
- maven工程依赖JAR没有被Eclipse处理好
- win server 2008 安装oracle 的体会
- OCAF初步
- China and U.S. grapple with military mistrust
- The reference to entity "characterEncoding" must end with the ';' delimiter
- Could not read mappings from resource: hiber.hbm.xml
- 设计模式学习-Chain Of Responsiblity(责任链)
- 深入解析C语言声明
- emulator: ERROR: no search paths found in this AVD's configuration
- 在桌面應用程式中使用 WebKit (1) -雜論,以及用 Objective C 操作 DOM
- 求助啊