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的简单过程