OCC开源框架学习分享资料
4.OCC基础数据
1.Abstraction 主要分两类
Basic:gp,例如gp_Pnt,gp_Circle…… Advance(句柄操作):Geom,Geom2d,例如 Geom_Pnt,Geom2d_Pnt ……
4.OCC基础数据
2.Control
4.OCC基础数据
3.Presentation
Presentation Packages Selection packages
Basic Management
PrsMgr
SelectMgr
2D objects 3D objects
V2d and Graphic2d
SelectBasics, Select2d, Select3d and StdSelect
OCC开源框架学习分享
目录
1.研究方法 2.总体描述 3.OCC与MFC框架 4.OCC的基础数据 5.OCC的显示 6.OCC与Smart Electrical数据的设计
1.研究方法(重点研究2D)
1.阅读ppt英文文档,不清楚的地方再参考OCCT帮助文 档。(达到对occ有个大致了解的目的)
3. Graphic Attributes Manager,用来设置交互实体的图形属性。置。
重点:熟练掌握
2.总体描述
Data Exchange(数据交互) 1. STEP等标准的数据结构。(免费) 2. DXF等标准的数据结构。(扩展,收费) 稍后研究
3.OCC与MFC框架
它是OCAF在MFC上的实现
CWinApp->OCC_App->MyApp
CDocument->OCC_BaseDoc->OCC_2dDoc->My2dDoc
Cview->OCC_BaseView->OCC_2dView->My2dView
pDocTemplateForView2d = new CMultiDocTemplate( IDR_2DTYPE, RUNTIME_CLASS(My2dDoc), RUNTIME_CLASS(MyFrame2D), // custom MDI child frame RUNTIME_CLASS(MyView2D));
3.OCC与MFC框架
主要功能
1.Doc完成图形数据的构建,图形数据的处理(移动,拷贝 等)。视图自动更新。 2.View接收事件的消息,并调用doc中的方法来完成响应。
3.OCC与MFC框架
学习方法 仔细读例子代码,理清逻辑关系。
4.OCC基础数据
一个图形数据(component)分为以下三部分,并分在不 同的package和class下面: Abstaction:图形的数据抽象(极简) Control:图形的各种创建方法 Presetation:图形的显示
2.总体描述
OCAF(应用程序框架)
1. 结合mfc,App,doc,view的建立。 2. 主要工作在doc和view上,doc建立数据,view完成交互。 3. 其他一些功能,拷贝,黏贴,回退,前进,外部数据交换,
文档保存等。
逐步仔细研究
3.OCC与MFC框架
它是OCAF在MFC上的实现
CDocument->OCC_BaseDoc->OCC_2dDoc
2.总体描述
MESS(3D网格呈现) 主要用于3D实体网格化显示,包括各种工具和方法 暂时可不研究
2.总体描述
Visualization(图形显示和交互)
1. Interactive Context 及AIS对象,最重要的显示及交互的环境, 所有的显示和交互由它来完成。
2. Interactive Objects,即交互实体,只有交互实体才能在交互环 境中显示。
2.重新建立一个OCC工程,在视图窗口中画一个死的基 本元素。 (能处理各种编译问题,了解occ架构和基本 运行原理)
3.在此基础上,参考occtry,OCAF的例子,完成对视图 中对象的动态绘制及交互处理。 (对occ的整个操作模 式有个基本的感受,基本入门)
4.仔细研究OCAF,在OCAF上实现cad的一些基础功能, 包括绘图,插入,移动,拷贝,回退,前进等操作。 (达到可以进行Smart Electrical开发的要求)
Cview->OCC_BaseView->OCC_2dView
pDocTemplateForView2d = new CMultiDocTemplate( IDR_2DTYPE, RUNTIME_CLASS(CMy2dDoc), RUNTIME_CLASS(CMyFrame2D), // custom MDI child frame RUNTIME_CLASS(CMyView2D));
2.总体描述
选取occ作为底层框架的原因:
1.基于C++ 2.易于实现CAD技术框架,2D,3D扩展性 3.支持windows,android,mac 4.发展多年,较为成熟,功能完善 5.EPLAN等商业软件也采用OCC
2.总体描述
2.总体描述
Foundation Classes(基本类)
1.基本的类型,变量,特殊字符串等定义,比如Standard_Integer 2.自动内存管理(handle管理机制) 3.对象集合的管理 4.基本的数学对象和运算定义,包括矢量,矩阵运算 5.内存对象的ACSII码存储?????
3.OCC与MFC框架
视图初始化过程
1.在app构造函数中得到opengl连接句柄。
2.在doc的构造函数中,用opengl连接创建viewer(仅创建 视图指针,而非视图窗口),并作初始化设置。同时通过 viewer再得到AISContext交互环境句柄。
3.在view的OnInitialUpdate()中,创建窗口(window),完 成显示设置。
知识零散,前3条必须掌握
2.总体描述
Modeling Data(数据类) 1.建立2D,3D几何对象 2.各种几何对象建立工具 3.建立3D(2D)的TOPO对象
重点:必须熟练运用
2.总体描述
Modeling Algorithms(几何计算类) 各种几何计算工具,包括插值,曲面计算等等,,,, 暂时可不研究