现今的CAD 系统大多通常都基于CAD 系统提供的二次开发包,用户根据要求定制符合自己要求的功能。AutoCAD就提供了AutoLISP、ADS 等都是比较通用的开发工具包。UG 也提供了多种二次开发工具:UG/Open MenuScript、UG/Open API 等。然而此类开发有着自身的缺点:
1.各个CAD 系统提供的二次开发工作各不相同,他们只能提供对特定CAD 系统的支持,甚至不支持相同CAD 系统的不同版本。
2.二次开发构建的协同设计平台,开放性能不够理想,很难充分利用企业现有的软、硬件条件,也很难利用将来增加的各类设施。因为在开发期间,很多功能已和具体的CAD系统静态绑定了。
3.一般CAD 系统功能强大,操作复杂,二次开发只能开发其中的一部分功能。如果要开发一个功能强大的平台,其工作量非常大,从而成本相当高。
Open CASCADE,一个开放源码CAD 内核,可以定制和扩展(添加新的功能组件,类的进一步继承),面向CAD/CAM , 对主流CAD 数据格式提供支持(STEP/STL/IGES 等,可自行开发转换程序提供特定数据格式的支持),提供高级建模函数(拟合,有理样条曲线,拉
伸、旋转、扫出、层叠拉伸、圆角、倒角、薄壳、修剪、偏移等),参数化模型,提供几何模型的特征提取,对Visual C++/MFC 有很好的支持。
Open CASCADE是一套开放源代码的CAD/CAM/CAE几何模型核心,源自于法国的Matra Datavision公司,这一套函式库系统原来是著名的CADCAM软体EUCLID的开发平台,但是在1998年, Matra Datavision改变了经营策略,从以销售软体为主改变为提供CAD/CAM/CAE软体服务为主的获利模式,并且在1999年公布Open CASCADE的程式原始码,任何人都可以在该公司的网站上下载并且使用这些程式码,而Matra Datavision则以此函式库为基础位客户建立客制化的数值模拟软体,国内CADCAM产业所需的套装软体常常动辄数百万甚至上千万,如此高昂的软体 费用对于中小企业来说确实是非常沉重的负担,而且套装软体中的功能有些其实根本用不到,但是软体使用者却必须花钱购买这些用不到的功能,如果能够针对中小 企业的需求建构一个精简化的CAD/CAM软体,并且在生产需求改变的时候才增加新的功能,将可以有效节省软体成本,而Open CASCADE的成功经验或许可以提供产业界甚至学术界一些新的思考方向。
Open CASCADE是一个功能强大的三维建模工具,提供了点、线、面、体和复杂形体的显示和交互操作,经过深度开发后可实现纹理、光照、图元填充、渲染等图形操作和放大、缩小、旋转、漫游、模拟飞行、模拟穿越等动态操作。
开源Open CASCADE从底层构建的CAD平台,所以在做机械仿真方面会好用很多,比如数控加工中模拟切屑的去除过程,对于干涉的检查等,使用CASCADE的实体布尔运算即可都可以实现。
OpenCascade提供二维和三维几何体的生成、显示和分析。主要功能有:
1.创建锥、柱、环等基本几何体;
2.对几何体进行布尔操作(相加,相减,相交运算);
3.倒角,斜切,镂空,偏移,扫视;
4.几何空间关系计算(法线,点积,叉积,投影,拟合等);
5.几何体分析(质心,体积,曲率等);
6.空间变换(平移,缩放,旋转)。
高级功能:
1.应用框架服务;
2.数据交换服务。
OCC是基于OO概念的C++类库,用于精密设备等设计应用程序。典型的应用是CAD(2D/3D)应用程序的开发,制造业,仿真,或者一些其他的图形工具。OCC让你能够很快的开发这些程序。
OCC提供以下模块:
n 提供2D/3D几何模型库,用以创建任意模型: 创建基本图元包含:棱柱,圆柱,棱锥,圆环等实现了布尔运算(交并差)
l 对实体进行倒角,圆角等操作
l 用偏移,壳,镂空等方式创建实体
l 计算属性,例如:surface, volume, center of gravity, curvature
l 计算几何 projection, interpolation, approximation
n 模型的显示,和视图操作等这些可视化模块:
l 3D 旋转
l 缩放
l 阴影
n 一个应用程序框架设计:
l 让没有几何信息的应用程序联合几何信息
l 参数化模型
l Java Application Desktop (JAD), a framework for creating your Graphical User Interfaces (GUI)
n 数据交换模块提供了将OCC模型导入,导出为IGES和STEP等这些标准格式的功能。
Open CASCADE 模型库是Open CASCADE公司基于 CAS.CADE 技术 开发和销售的。它的设计是组件化的。 As such, they separate C++ classes for:
l 定义数据结构 (geometric modeling, display 和 graphic selection)
l 实现复杂算法
l 提供应用程序接口 (APIs)
让有关系的或者相似的类在同一个包内可以防止类的冲突;
C++ 类名的前面加上了包的名字做前缀。比如所有用来定义3D几何对象的类都在前面加上 Geom前缀。在 Geom中, 实现 Bezier surfaces 的类被命名为 BezierSurface, 它的全名是Geom_BezierSurface。
大的模块划分为6个:
基础类:Foundation Classes
模型数据:Modeling Data
建模算法:Modeling Algorithms
可视化:Visualization
数据交换:Data Exchange
程序框架:Application Framework
OpenCasCade 6.3目录结构:
l data -这里面包含各种不同格式的模型文件。都是occ支持的格式。
l doc–occ的文档。
l ros/adm - occ团队工具,可以用来重新生成occ。
l ros/adm/win32 -包含Visual C++ 6.0., 7.1. 和 8.0.的工程文件, 用来生成occ的win32版本。
l ros/adm/win64 -包含 Visual C++ 8.0.工程,用来生成win平台64位版本。
l ros/drv -此文件夹包含WOK生成的源码文件。
l ros/inc -包含所有的occ头文件。
l ros/src -此文件夹包含occ源码,根据开发模块组织存放。
l ros/win32 -此文件夹包含了occ的可执行程序(dll)和lib,有debug,release。
l Samples -此文件夹包含了帮助文档中的标准例程。
l tools -包含OCAF 浏览器 和 MFC 应用程序向导工具;
l wok– 此文件夹包含 WOK (Workshop Organization Kit) 工具包,用以组织大型项目和开发团队。
l 3rdparty -此文件夹包含用以支持occ工作的第三方库(Java, QT and Tcl) 和例程。
l uninstall -卸载要用到的文件。
VS 下 Open Cascade Source Code 编译及自定义工程设置:
源码编译--工程编译顺序:
l Foundation Classes (file FoundationClasses.*)
l Modeling Data (file ModelingData.*)
l Modeling Algorithms (file ModelingAlgorithms.*)
l Visualization (file Visualization.*)
l Application Framework (file ApplicationFramework.*)
l Data Exchange (file DataExchange.*)
l Draw (file Draw.*)
l WOK (file WOK.*):WOK (Workshop Organization Kit) is Open CASCADE development environment。
l Wrappers (file Wrappers.*)
OCC的结构框图
1.1 Foundation Classes基础类提供了一些通用的服务:
n 基本数据类型,字符串等
n 堆内存的自动化管理
n 异常处理
n 局部支持多线程
n 数据集合的处理
n 向量、矩阵及原始几何类型的数据计算工具
n 用ASCLL文件保存数据的基本服务
以上服务组织在以下三个类库中:
n Kernel Classes(内核- TKernel)
n Math Utilities(数据- TKMath)
n Basic Persistence(基础持久存储-TKAdvTools)
项目
目录名
功能描述
TKernel
Dico
FSD
Message
MMgt
NCollection
OSD
Quantity
数据及物理数量,是一个REAL 值;包括了所有您所需要的物理量。
R