第29 卷第2 期2014 年06 月
西南科技大学学报
resistant是什么意思Journal of Sout hwest University of Scie nce and Te chnology
V o l〃29N o〃2
June2014
基于Open CASCADE 平台的CAD 系统开发研究
丁华王忠
( 西南科技大学制造科学与工程学院四川绵阳621010)
摘要: 探讨了开源几何内核库Open CASCADE 的特点,着重介绍了基础类、造型数据类、造型算法类、可视化类等主要功能模块,给出了几何模型构建、几何运算、可视化操作等功能开发的基本过程,研究了基于O pen CASCADE平台的CAD 系统开发的一般方法。使用该方法开发了一款小型三维CAD 系统,能够实现几何建模、几何运算和数据转换等功能。
关键词: 几何建模几何内核Open CASCADE CAD 开发
中图分类号: T P391〃9文献标志码:A文章编号:1671-8755( 2014) 02-0072-05
mortalityDevelopment and Rearch of CAD System
Bad on an Open CASCADE Platform
DING Hua,WANG Zhong
( School of Manufacturing Science and Engineering,Southwest University of Science and Technology,
Mianyang 621010,Sichuan,China)
A b s t ract:T he cha racteristics of an open source geometr y ke rnel libra r y named Open CA SA DE w ere dis- cusd〃T he main f unction modules like Foundation Class,M odeling Data,M odeling Al gor ithms,Vis u- ali z ation w ere particularl y introduced〃T he basic pr og r amming process of geometric modeling,geometric computing,visuali z ation operation w ere p rented t o f igure out a general method of CAD s of t w are devel op- ment bad on Open CA SC ADE plat f
orm〃Bad on this method,a small 3D CAD s of t w a re w hich enables geometric modeling,geometric computing,and data conversion w as developed〃
Key words: Geometry Modeling; Geometric Kernel; Open CASCADE; CAD Developmenttpr
田垄随着科学技术的飞跃发展,CAD /C AM 技术在冲压工业中的应用将愈加广泛,而我国目前几乎还没有专用于冲压行业的商用CAD /C AM 软件。因而对该领域的CAD /C AM 研究仍旧具有十分重要的意义。大部分CAD /C AM 软件都是在几何内核的基础上开发的[1]。目前,可用于开发CAD 系统的底层几何内核平台有美国Spatial technology 公司的ACIS、英国EDS 公司的Parasolid 平台以及法国Matra Datavision 公司的Open CASCADE 等。如著名的Auto CAD 软件使用的开发平台是ACIS,Unigraphics,Solid Works 使用的是Parasolid[2]。Open CASCADE 作为一款开源开发工具包,因其功能上的全面和强大,在业内也颇受好评,如HeeksCAD,MIDAS FX + 等软件均选用Open CASCADE 作为开发平台[3]。考虑到开源库在开发研究中具有更大的优越性,故选择Open CAS-CADE 作为底层开发工具。
1 Open CASCADE 平台
1〃 1 Open CA SC ADE平台简介
Open CASCADE 是一款功能强大的软件开发平台,它包括3D 曲面和实体建模组件、可视化组件、数据交换组件和适合快速开发的应用程序开发框架
收稿日期: 2013 -10 -17
作者简介: 丁华,男,硕士研究生,主要研究方向为机械制造及自动化。E - mail: thua f air@ 163〃 c o m
第2 期丁华,等:基于O pen CASCADE 平台的CAD 系统开发研究73
( OCAF -Open CASCADE Application Framework) 。Open CASCADE 技术可以用于数字仿真软件的开发,包括CAD,CAM,CAE,PDM 等应用程序。该技术是20 世纪90 年代中期出现的,已经被许多不同领域的商业客户用来开发自己的软件产品。
Open CASCADE 提供了一个巨大的类库,可以帮助用户进行快速开发。类库实际上就是几何内核,定义了图形数据的存储格式以及大量的图形算法,包含了许多方便快速设计面向对象的功能类。基于Open CASCADE 的应用程序可以开发处理二维、三维几何模型等其他目的的CAD 系统,如: 制造、分析应用和仿真应用等。
1〃 2 Open CA SC ADE功能特点
作为一款底层开发平台,Open CASCADE 提供了全面而强大的图形运算类、快速开发应用框架OCAF、图形显示操作功能包等[4]。主要功能特点有: ( 1) 支持多系统平台开发。 Open CASCADE 支持Linux,Windows NT 和Sun Solaris 等 3 种操作系统[5]。( 2) 提供快速软件应用框架,简化用户CAD 应用的开发[6]。( 3) 提供基于建模数据分离可视化操作服务,便于图形显示的选择和管理。( 4 ) 使用Open CASCADE 平台独有的组件定义语言(CDL -Component Definition Language) ,既方便用户使用,又为用户自定义功能开发提供了规范。( 5 ) 提供丰富、全面的几何运算功能,主要如下: 支持几何实体创建,如创建六面体、柱体、锥体等; 支持自由曲面造型,如Bezier 曲面、NURBS 曲面等; 支持几何实体布尔操作,提供与、或、交集运算; 支持基于特征的几何运算,如倒角、偏置、脱壳、拔模等; 支持常用几何运算,如求相贯线、投影、曲面缝合等。
1〃 3 Open CA SC ADE几何类库
Open CASCADE 提供了由大量C + + 类文件构成的几何类库[7],不仅功能丰富,而且便于使用和开发。功能相关的类被组织成包,相关的包被归类成不同的模块。Open CASCADE 类库共包括六大模块[8],如表1 所示。
表1 类库的模块和功能
Table 1 Class library modules a nd the ir func tions
基础类造型数据类造型算法类可视化类数据转换类应用框架类
核心类二维几何,三数学工具维几何,几
何工具拓扑基本构造,布尔运算,倒角运算,偏
移、拔模、缝合与扫略,特征操作,
隐藏线移除,几何工具,拓扑工具
二维三维通用类
二维可视化
三维可视化
STEP AP203 AP214
Extende d data
exchange ( XDE)
数据框架
数据存储
应用界面
在六大类模块中,与CAD 系统几何功能开发和数据处理关系尤为密切的模块为基础类、造型数据类、造型算法类以及数据转换类等4 个模块。
1〃 3〃 1基础类模块
基础类模块提供一系列基础服务,如定义基本实体类型、根类、内存管理、异常处理、数组操作、数据文件保存基础服务等。例如gp_Pnt 类定义几何点,gp_Dir 类定义空间向量,TColgp _Array2OfPnt 定义一维点数组,gp _Ax3 定义三维坐标系,Materials_ Color 定义颜色属性等等。
1〃 3〃 2造型数据类模块
该模块提供了各类二维、三维几何模型的数据结构定义。其中Geom2d 类包集合了各种二维模型数据结构类,每种数据类名前冠以前缀Geom2d_,如Geom2d_BSplineCurve 表示二维B 样条曲线; Geom 类包中集合了各种三维模型数据结构类,每种数据类名前冠以前缀Geom_,如Geom_Curve 定义了三
维曲线,并提供各种相应的运算方法,包括求参数空间值范围、曲线连续性、周期性等运算,其子类涵盖圆锥、Bezier、B 样条、剪裁线等各种类型曲线; Geom_ Surface 类及其子类则定义了各种类型的空间曲面及相关运算方法; TopoDS_Shape 类及其子类则定义了各种拓扑数据结构和运算方法。
1〃 3〃 3造型算法类模块造型算法类模块集合了大量的用于建模和几何
运算的逻辑算法类,按功能主要分为以下几个部分: (1)几何工具。提供二维曲线之间、三维曲线与曲面以及曲面与曲面之间的求交运算,点到曲线、点到曲面及曲线到曲面的投影计算,各类曲线、曲面基于约束的构造运算,曲线、曲面的插值运算等。主要类文件集中在T KGeomAl go,GeomAPI,GeomInt 等类包中。(2)拓扑工具。提供拓扑型体局部和全局特性定义、几何变换操作以及拓扑型体到NURB S几何表达的转换等运算。主要类文件集中在BRepBuil d- erAPI,GeomConvert,M A T等类包中。(3 )基本几何构造。主要包括棱柱体、圆柱体、圆锥体和圆环体等
74 西南科技大学学报第29 卷
拓扑模型的构造。该部分功能主要位于BRepPri- mAPI 类包中。( 4 )特征运算。提供基于已有拓扑型体上的形状和机械特征运算,如增加圆柱体、拔模、拉伸、特征旋转、管体等。主要的类包有BRep- Fill,BRep Feat,L ocOpe 等。( 5 )其他运算。造型算法模块还提供有布尔操作、消除隐藏线、偏置面、脱壳、缝合、扫略、拓扑型体修补等运算。主要包括BRepAl goA PI,H LRBRe p,BRepO ff
tAPI,ShapeFi x等类包。
1〃 3〃 4数据转换类模块
该模块为基于Open CASCADE 平台的软件与各种其他CAD 软件之间的数据交换提供了转换接口,确保软件具有较好的协同工作能力。能够实现对IGES,STEP,STL,VRML 等通用数据格式的兼容和相互转换[9]。
2 三维CAD 系统的开发
基于Open CASCADE 平台的CAD 系统采用Visual Studio 2010 编程平台和C + + 编程语言来开发。软件实现分为可视化界面搭建和C AD 基础功能开发两个部分。
2〃 1 可视化界面开发
软件框架和可视化窗口为用户使用软件提供了方便和直观感受,是CAD 系统很重要的一部分。Open CASCADE 提供了MFC 和Qt 两款GUI 应用范例,可以直接作为软件可视化开发基础。Qt 是一款基于C + + 程序设计语言的开源图形用户界面开发框架,它具有优越的图形视觉效果、丰富的应用接口、良好的封装性和可扩展性,支持跨平台开发。因此,选用Qt 作为可视化界面开发框架具有较好的可操作性。
在开发过程中,当程序调用了类库的功能,就应该将相应的库文件连接到工程属性的附加依赖项中。可视化界面框架开发的部分重要原代码如下: int main ( int argc,char* argv[]) { / / 主程序入口
QApplication a( argc,argv ) ; / / 定义一个应用对象
ApplicationWindow* mw = new Application_
tagsWindow( ) ; / / 定义一个主窗口对象
mw ->tWindowTitle( QObject: : tr( “Simple_ CAD”) ) ; / / 设置窗口标题
mw ->tWindowIcon ( QPixmap ( resDir + QString( “/ ”) + QObject: : tr( “ICON_CAD”) ) ) mw ->show( ) ; / / 调用显示函数
return a〃 exec();/ / 消息循环
}
在可视化图形界面开发的过程中,还会用到几个重要的类。可视化模块的类AIS_ InteractiveCon- text,V3d _ View 用来控制几何对象的显示模式、状态、控制图形视窗的尺寸,基础模块中的Quantity_ Color 用来设置几何模型的显示颜色。创建后的软件界面如图1 所示。
图1 软件可视化界面
Fi g〃1 Sof t w are GUI
2〃 2 基本几何功能开发
基本几何功能是CAD 软件的核心模块,它提供了必要的几何模型生成和几何运算操作。通过Open CA SC ADE 类库所提供的相关类和函数不仅能够建立各种几何形状,还可以对这些几何模型进行布尔运算、求相贯线以及投影等基本运算操作。
2〃 2〃 1输入输出( IO)设计
IO 接口可以使不同CAD / CAM 软件之间进行数据交换,为软件间的协同工作提供可能。 Open CASCADE 在数据交换功能模块提供了对STEP,IG-ES,STL,VRML 等通用标准数据格式的输入输出支持及各数据格式之间的转换功能。
数据转换模块中,类IGESCAFControl_ Reader,IGESCAFControl _ Writer 用于IGES 文件和Open CASCADE 模型之间的转换[10],实现CAD 系统对IGES 格式数据文件的输入输出功能; STEPCAFCon-trol_ Reader,STEPCAFControl _W riter 类则用于实现STEP 数据与Open CASCADE 模型之间的转换,实现CAD 软件对STEP 格式数据文件的输入输出功能; 类StlAPI_Reade
r 和StlAPI_Writer 用于实现STL 数据与OCC 模型之间的转换,实现CAD 软件对STL
第 2 期
丁 华,等: 基于 O pen CASCADE 平台的 CAD 系统开发研究 75
格式数据文件的输入输出功能。
此外,类 B RepTools 中的 Read 和 Write 函数可 以实现对 B REP 格式数据的输入输出; 类 VrmlAPI_ Writer 可以实现 OCC 模型数据向 V RML 数据格式 的转换。
2〃 2〃 2 构造功能开发
Open CASCADE 提供了非常丰富的几何构造功 能类,用于实现不同类型的曲线、曲面构造功能。例 如,类 包 Geom ,GC ,gce ,GeomAPI ,B RepPrimAPI 提 供了数 10 种几何构造功能函数。下面是部分构造 类使用介绍:
类 Geom_ Circle ,GC _ MakeCircle ,gce _ MakeCirc 均可用于绘制圆; Geom_Hyperbola ,GC_MakeHyper- bola 用于绘制双曲线; Geom_OfftCurve 用于绘制偏 置 于 某 一 曲 线 一 定 距 离
的 偏 置 曲 线; Geom _ TrimmedCurve 用于绘制某一曲线的特定参数区域的 一段 剪 裁 曲 线; Geom _ BezierCurve ,Geom _ Bez- ierCurve 分 别 用 于 绘 制 Bezier 曲 线,曲 面; Geom _ BsplineCurve ,Geom_BSplineSurface 则分别用于绘制 有理 B 样条曲线曲面; GeomAPI_PointsToBSpline 用 于离散点拟合 B 样条曲面; B RepPrimAPI_ MakeBox 用于创建箱体。
例如,可以用类 GeomAPI_PointsToBSpline 提供 的功能构建一个 B 样条曲面:
TColgp_Array2OfPnt & Points; / / 用于构建 B 样 条曲面的型值点
GeomAPI_PointsToBSplineSurface
* PntToBSurf = new GeomAPI_ PointsToBSplineSurface ( ) ; / / 定义一
个 GeomAPI_PointsToBSplineSurface 类型指针
PntToBSurf - > Interpolate ( Points ) ; / / 将型值
点赋给 PntToBSurf 进行拟合运算
Handle ( Geom _ BSplineSurface ) BSurf = Pnt-
ToBSurf - > Surface ( ) ; / / 构 建 出 一 个 B 样 条 曲
面 BSurf惟妙惟肖造句
图 2 所示即为用上述方法构造出的一个 B 样
条曲面。
此外,该部分还进行了扫略曲面、旋转曲面等功
能的开发工作。图 3 为曲线曲面构造功能应用的几
个实例。
图 2 构造 B 样条曲面
Fi g 〃 2 Mo delin g of B - spline sur f ace
图 3 几何建模应用实例
Fi g 〃 3 T he e x amples of g e o metr y m o delin g
2〃 2〃 3 几何运算功能开发
几何运算功能主要是基于几何实体的运算操 作,也是 CAD 软件不可或缺的功能模块之一。Open CASCADE 也提供许多功能类用于实现几何运算操 作,比如求交、投影等。以下是对部分几何运算类的 开发使用介绍:
GeomAPI_IntCS ,GeomAPI_IntSS 用来实现曲线
与曲面之间以及曲面与曲面之间的求交运算,可以 得到交点或者交线; GeomAPI_ProjectPointOnC_urve ,
GeomAPI_ProjectPointOnSurf 可以用来计算点到曲面
以及点到曲面的投影运算,得到相应的投影点; 类 B
RepAlgoAPI_BooleanOperation 及其子类提供了几 何
体间的与集、或集、交集等布尔运算功能; B Rep-
FilletAPI _ M akeFillet ,B RepFilletAPI _ M a _ k eChamfer
提供了倒直角和倒圆角功能; gp_Trsf 提供了旋转、
镜像、缩放、比例变换等功能。类 Rep_Tool 可以用
于实现不同数据类型之间的转换操作。简单英语故事
图 4 所示,为几何运算功能的几个应用实例。
通过对几何功能模块以及可视化界面的集成和优
76 西南科技大学学报第29 卷
化,完成CAD 软件的整体开发。图5 为通过该方法开发出的CAD 系统的部分应用实例,上图为使用旋转、双线性曲面等三维构造功能生成的导弹模型,下图为使用旋转、倒角等三维造型和求余布尔运算等功能绘制的阶梯轴零件。
图4 几何运算应用实例
Fi g〃4 T he e x amples of g e o metric al go rithms
图5 应用实例
Fi g〃5Applicati o n dem o nstrati o ns
3 结论
本文基于开源几何内核库Open CASCADE,主要做了以下几点研究: ( 1 ) 研究了该开源几何内核库的体系结构、功能特点以及功能库的使用方法; ( 2) 探讨了基于该平台开发CAD 软件的一般方法和重要步骤,并着重介绍了标准数据格式文件的输入输出、三维几何模型的构建、求交和投影等几何运
算等功能实现,为同类开发提供了参考; ( 3 ) 通过VC + + 编程开发了一款CAD 软件,使用该软件可
以实现复杂几何模型的构建、图形显示、输入输出等功能,验证了基于该平台开发CAD 系统的可行性。
参考文献
2012安徽中考英语试卷[1]郑盈盈,周来水,孙金虎〃基于O pen C A S ADE的DXF 接口研究[J]〃中国制造业信息化,2010,( 1) : 45-47〃[2]苑国强,张渊〃采用o pen C A S CA DE的三维建模平台的开发研究[J]〃工程图学学报,2008,( 4) : 146-149〃[3]Open CA S CADE T E CKN O L OGY〃 S creensh o ts[E B/ O L]〃http: // www〃 o pencascade〃 o r g /sh ow r oo m/screen-
sh o ts,2013〃
[4]王玥,付梅艳,陈再高,等〃用于全电磁粒子模拟的复杂建模及网格生成技术[J]〃强激光与粒子束,2011,
23( 11) : 2994-2996〃
[5]马铁利〃机械CAD几何建模核心技术及其发展趋势[J]〃计算机工程,2003,( 11) : 2-3〃
[6]O pen CA S CADE T E CKN O L OGY〃Object L ibraries Appli- cati o n Frame wo rk Ur’s Guide[EB/O L]〃http: //
www〃o pencascade〃 o r g,2013〃
[7] M OUNIRH,NI Z ARA,ABDE LM AJID B〃CA D m o del simpli f icati o n usin g a rem ov in g details and mer g in g f aces
technique fo r a FE M simulati o n[J]〃J o urnal of M echani-
cal S cience and T echn o l ogy ,2012,26 ( 11 ) :
3539-3548〃
[8]李绍珍,张渊〃基于Open C A S CADE的虚拟三维建模平台的开发研究[J]〃第一届中国图形大会,2007,
财务部负责人职责( 8) : 267-268〃
[9]张渊〃基于Open CA S CADE的虚拟三维建模平台的开发[M]〃济南: 山东大学,2007〃61-62〃
negative
[10]陈宏孙,刘子建,艾彦迪〃基于Open CA S CADE的“一元四体”模型实现技术研究[J]〃计算机工程与应
用,2012,34( 3) : 102-104〃