基于OpenCASCADE的三维工厂浏览程序的开发
eryar@163.com
摘要:本文简要介绍了借助于开源的几何造型内核OpenCASCADE把从AVEVA Plant(PDMS)中导出的数据重新以三维展示,类似AVEVA Review的功能;以及利用OCC的数据交换功能模块,将导出的数据转换成常见三维数据标准存储格式,便于其它CAD之间的数据交换,类似Mechanical Equipment Interface的功能。
关键字:AVEVA Plant、PDMS、AVEVA Review、OpenCASCADE、STEP、IGES、STL
一、引言 Introduction
工厂设计系统是工程设计人员利用计算机进行工厂模型设计的辅助工具。随着当前计算机软、硬件的飞速发展,我国经济建议规模的日益扩大,在设计施工单位进行工程招标投标,都需要有快速有效的反应速度。工厂设计系统正是帮助工程技术人员提高设计效率的强有力工具。
PDMS(Plant Design Management System)是英国剑桥CAD中心从1974年起与Isopipe and Akzo Engineering公司合作开发的,1977年后作为产品进入市场,至今已有3000多个用户,遍及30多个国家。我国目前也有很多用户。
PDMS的核心是一功能强大的多用户项目数据库,配合使用1:1全尺寸的三维实体实体造型系统。项目设计进程中的所有详细信息都进入数据库,包括元件的几何属性与连接属性等。项目的规模和复杂程度不受限制。
PDMS包括许多集成模块:如三维建模、图纸生成、工厂浏览等,功能强大。在当前的版本中,还提供与应力分析软件CAESAR的接口,与Intergraph的FrameWorks的接口等。PDMS对数据库的安全性也做了很多工作,可以使用NT授权,及分配设计人员对相关数据库的权限。
AVEVA Review可以对三维工厂模型进行真实化的渲染,且对模型的规模和复杂程度不作限制。可对RVM、STEP、IGES、SAT的模型文件进行渲染。这样对模型的审核就变得非常便捷,并且可用AVEVA Review来对劳动者进行工厂安全和装置的操作性上的培训。
Figure 1. AVEVA Review rendered picture
Open CASCADE(简称OCC)平台是由法国Matra Datavision公司开发的CAD/CAE/CAM软件平台,可以说是世界上最重要的几何造型基础软件平台之一。开源OCC对象库是一个面向对象C++类库,用于快速开发设计领域的专业应用程序。OCC主要用于开发二维和三维几何建模应用程序,包括通用的或专业的计算机辅助设计CAD系统、制造或分析领域的应用程序、仿真应用程序或图形演示工具。OCC通过有机组织的C++库文件提供了六个模块。可视化模块作为OCC的核心部分,是可视化技术的具体体现。
OCC对象库提供如下服务:
1、提供二维和三维几何造型建模的工具:创建持久化的类,诸如:棱镜、圆柱、圆锥、圆环;演示布尔操作(加法,减法和交叉);应用嵌条,倒角和拉伸来拉伸结构;采用冲抵,去壳,变空,扫描制造结构模型;计算表面特性诸如表面、体积、重心、曲率;用投影,插值,近似计算几何体;管理实现对象的显示与操作行为的可视化服务,如三维旋转、变焦、遮光等操作。
2、应用框架主要有非几何应用数据和几何学的融汇、模型参数化以及创建图形用户界面的框架(GUI)等特色。
3、提供OCC模型输入输出功能和标准版的数据交换功能,如IGES和STEP。由于OCC技术是一个开源的软件开发平台,因此在数值建模软件如CAD\CAE\CAM的开发上得到了广泛的应用。
本文简要介绍在OCC几何造型平台上,将从PDMS中导出的数据进行显示,并将其数据导成常见的标准文件格式。本文的意义在于:
u 对开源几何造型平台OCC的基本实体的造型能力进行一点检验;
u 对AVEVA PDMS产品进行深一步的研究;
u 为有使用AVEVA Review需求的用户提供一个替代品,从而减轻软件授权的费用;
u 为有使用Mechanical Equipment Interface需求的用户也提供一个方法,使其有能力开发与其它CAD系统的数据交换的接口程序;
二、数据的导出 Export Model
AVEVA提供了三种二次开发的方式:DARs(Data Access Routines)、C#、PML(AVEVA Programmable Macro Language)。
DARs是FORTAN77的一些函数,可用于创建与其它程序的接口。如编写生成材料报表程序、管子应力分析程序、生成轴测图程序等。使用DAR就像在PDMS中的命令中使用命令一样方便,对数据的导航和定位方式相似。
C#是AVEVA使用.NET来二次开发的推荐语言,功能是这三种二次开发方式中最强大的。
PML是AVEVA内置二次开发语言,简单易学,可以在AVEVA中很快开发出实用的程序。
为了使用OCC提供的框架,这里选用DARs来进行模型数据的导出。DARs提供从模型中提取属性必要的函数。这些函数分为以下几种类型:
u 初始化(Initialisation);
u 数据导航(Navigation);
u 读取属性(Attribute retrieval);
u 错误处理(Error Handling);
u 功能函数(Utility routines);
上述这些函数对数据都只有读的权限,不能对数据库进行写和更新。DARs程序的运行需要FORTRAN的两个库文件:libifcoremd.dll和libmmd.dll,并且要确保d3lib.dll库文件的环境变量的正确设置。在AVEVA的安装目录中有个dars文件夹,其中有使用DARs的库和示例程序。参考这些文件,对熟悉C++的人来说使用DARs还是很简单的。
OpenCASCADE的数据框架(Data Framework)对来自不同程序的数据提供了统一的处理环境。这就简化了数据交换、修改,也保证了数据统一性、稳定性。实现方法需要用到以下部分:
u 标号Tha tag
u 标签The label
u 属性The attribute
Figure 2. Contents of a document
如上图所示,框架树的第一个标签(label)是根标签(root)。每个标签(label)有个以整数表示的标号(tag)。由当前标签的标号到根标签的标号,可以得到一个惟一的标号列表,如:0:1:2:1。
每个标签(label)可以一些属性(attribute),这些属性可以包含数据。每个属性由GUID来区分。标签最重要的性质是其入口只是数据框架的一个地址。
将DARs导出的数据结合OCC的程序框架,得到结果如下图3所示:
Figure 3. Export Model and Show in OCAF
三、数据的显示 Display Model
为了显示PDMS的模型,需要提取出模型类型及相应的位置、朝向数据等。如下图所示为一个设备中的一个圆柱数据,读取其中的Type、Position、Orientation、及Diameter、Height的属性,可以用来对一个圆柱进行造型。
Figure 4. Attributes of Cylinder in PDMS
对管子和型材部件,需要读取其规格书SPEC中引用的标准部件库的模型数据。
Figure 5. Attributes of Flange Componet
如上图所示为一个法兰(Flange)部件的部件数据。在设计模块中部件的spref属性找到其部件的catref,根据catref得到其部件定义的数据。部件包含点集(Point set)、形集(Geometry set)、数据集(Data set)等,若只需要显示部件形状,只需处理其形集Gmref中的几何形状数据。
如下图所示为从PDMS中导出的简单设备模型数据到OCC中显示的效果:
Figure 6. Export Model to OCC
四、数据的交换 Data Exchange
AVEVA提供了一个机械设备的接口用于将STEP AP203文件导入到3D模型中,和把模型数据转换成STEP AP203格式与其它CAD系统进行数据交换。如下图所示:
Figure 7. Mechanical Equipment Interface of AVEVA
OCC的Data Exchange模块提供了丰富的数据转换功能。如下图所示:
Figure 8. Data Exchange module of OCC
使用OCC的程序框架(OCAF)将数据转换成上图所示的格式是非常容易的。
五、结论 Conclusion
通过使用DARs对AVEVA PDMS的数据进行导出,对PDMS的数据结构有了更深入的认识。通过使用OCC对导出的模型数据进行显示,测试了OCC的基本实体的造型算法和显示算法。对相对复杂些的模型进行显示时,OCC的速度还是不错的。若只对简单实体进行造型时,OCC算法应该还是比较正确的。
若需要将PDMS的数据导入到其它CAD系统中,使用OCC还是能完成任务的。另外OCC是开源免费的,不会因软件授权而产生额外费用。唯一的不足就是可能有些OCC的算法不正确,而解决这些bug可能比较麻烦。
若对本文或对AVEVA PDMS、OCC有任何意见、建议都可与我取得联系,电子邮箱地址为:eryar@163.com 。
六、参考资料 Bibliography
1. AVEVA Review website
2. AVEVA Mechanical Equipment Interface User Guide
3. AVEVA Data Access Routines User Guide
4. AVEVA Data Model Reference Manual
5. Overview of OCCT Library
6. OCCT Modeling Data User's Guide
7. OCCT Application Framework User's Guide
8. OCCT Modeling Algorithms User's Guide
PDF: 基于OpenCASCADE的三维工厂浏览程序的开发