基于OpenCASCADE的三维工厂浏览程序的开发

简介: 基于OpenCASCADE的三维工厂浏览程序的开发 eryar@163.com 摘要:本文简要介绍了借助于开源的几何造型内核OpenCASCADE把从AVEVA Plant(PDMS)中导出的数据重新以三维展示,类似AVEVA Review的功能;以及利用OCC的数据交换功能模块,将导出的数据转换成常见三维数据标准存储格式,便于其它CAD之间的数据交换,类似Mechanical Equipment Interface的功能。

基于OpenCASCADE的三维工厂浏览程序的开发

eryar@163.com

摘要:本文简要介绍了借助于开源的几何造型内核OpenCASCADE把从AVEVA Plant(PDMS)中导出的数据重新以三维展示,类似AVEVA Review的功能;以及利用OCC的数据交换功能模块,将导出的数据转换成常见三维数据标准存储格式,便于其它CAD之间的数据交换,类似Mechanical Equipment Interface的功能。

关键字AVEVA PlantPDMSAVEVA ReviewOpenCASCADESTEPIGESSTL

 

一、引言 Introduction

工厂设计系统是工程设计人员利用计算机进行工厂模型设计的辅助工具。随着当前计算机软、硬件的飞速发展,我国经济建议规模的日益扩大,在设计施工单位进行工程招标投标,都需要有快速有效的反应速度。工厂设计系统正是帮助工程技术人员提高设计效率的强有力工具。

PDMSPlant Design Management System)是英国剑桥CAD中心从1974年起与Isopipe and Akzo Engineering公司合作开发的,1977年后作为产品进入市场,至今已有3000多个用户,遍及30多个国家。我国目前也有很多用户。

PDMS的核心是一功能强大的多用户项目数据库,配合使用11全尺寸的三维实体实体造型系统。项目设计进程中的所有详细信息都进入数据库,包括元件的几何属性与连接属性等。项目的规模和复杂程度不受限制。

PDMS包括许多集成模块:如三维建模、图纸生成、工厂浏览等,功能强大。在当前的版本中,还提供与应力分析软件CAESAR的接口,与IntergraphFrameWorks的接口等。PDMS对数据库的安全性也做了很多工作,可以使用NT授权,及分配设计人员对相关数据库的权限。

AVEVA Review可以对三维工厂模型进行真实化的渲染,且对模型的规模和复杂程度不作限制。可对RVMSTEPIGESSAT的模型文件进行渲染。这样对模型的审核就变得非常便捷,并且可用AVEVA Review来对劳动者进行工厂安全和装置的操作性上的培训。

AVEVA Review rendered picture

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模型输入输出功能和标准版的数据交换功能,如IGESSTEP。由于OCC技术是一个开源的软件开发平台,因此在数值建模软件如CAD\CAE\CAM的开发上得到了广泛的应用。

本文简要介绍在OCC几何造型平台上,将从PDMS中导出的数据进行显示,并将其数据导成常见的标准文件格式。本文的意义在于:

u 对开源几何造型平台OCC的基本实体的造型能力进行一点检验;

u 对AVEVA PDMS产品进行深一步的研究;

u 为有使用AVEVA Review需求的用户提供一个替代品,从而减轻软件授权的费用;

u 为有使用Mechanical Equipment Interface需求的用户也提供一个方法,使其有能力开发与其它CAD系统的数据交换的接口程序;

二、数据的导出 Export Model

AVEVA提供了三种二次开发的方式:DARsData Access Routines)、C#、PMLAVEVA Programmable Macro Language)。

DARsFORTAN77的一些函数,可用于创建与其它程序的接口。如编写生成材料报表程序、管子应力分析程序、生成轴测图程序等。使用DAR就像在PDMS中的命令中使用命令一样方便,对数据的导航和定位方式相似。

C#是AVEVA使用.NET来二次开发的推荐语言,功能是这三种二次开发方式中最强大的。

PMLAVEVA内置二次开发语言,简单易学,可以在AVEVA中很快开发出实用的程序。

为了使用OCC提供的框架,这里选用DARs来进行模型数据的导出。DARs提供从模型中提取属性必要的函数。这些函数分为以下几种类型:

u 初始化(Initialisation);

u 数据导航(Navigation);

u 读取属性(Attribute retrieval);

u 错误处理(Error Handling);

u 功能函数(Utility routines);

上述这些函数对数据都只有读的权限,不能对数据库进行写和更新。DARs程序的运行需要FORTRAN的两个库文件:libifcoremd.dlllibmmd.dll,并且要确保d3lib.dll库文件的环境变量的正确设置。在AVEVA的安装目录中有个dars文件夹,其中有使用DARs的库和示例程序。参考这些文件,对熟悉C++的人来说使用DARs还是很简单的。

OpenCASCADE的数据框架(Data Framework)对来自不同程序的数据提供了统一的处理环境。这就简化了数据交换、修改,也保证了数据统一性、稳定性。实现方法需要用到以下部分:

u 标号Tha tag

u 标签The label

u 属性The attribute

Contents of a document

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的模型,需要提取出模型类型及相应的位置、朝向数据等。如下图所示为一个设备中的一个圆柱数据,读取其中的TypePositionOrientation、及DiameterHeight的属性,可以用来对一个圆柱进行造型。

Attributes of Cylinder in PDMS

Figure 4. Attributes of Cylinder in PDMS

对管子和型材部件,需要读取其规格书SPEC中引用的标准部件库的模型数据。

Attributes of Flange Componet

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系统进行数据交换。如下图所示:

Mechanical Equipment Interface of AVEVA

Figure 7. Mechanical Equipment Interface of AVEVA

OCCData Exchange模块提供了丰富的数据转换功能。如下图所示:

Data Exchange module of OCC

Figure 8. Data Exchange module of OCC

使用OCC的程序框架(OCAF)将数据转换成上图所示的格式是非常容易的。

clip_image022

五、结论 Conclusion

通过使用DARsAVEVA PDMS的数据进行导出,对PDMS的数据结构有了更深入的认识。通过使用OCC对导出的模型数据进行显示,测试了OCC的基本实体的造型算法和显示算法。对相对复杂些的模型进行显示时,OCC的速度还是不错的。若只对简单实体进行造型时,OCC算法应该还是比较正确的。

若需要将PDMS的数据导入到其它CAD系统中,使用OCC还是能完成任务的。另外OCC是开源免费的,不会因软件授权而产生额外费用。唯一的不足就是可能有些OCC的算法不正确,而解决这些bug可能比较麻烦。

若对本文或对AVEVA PDMSOCC有任何意见、建议都可与我取得联系,电子邮箱地址为: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

 

 

目录
相关文章
|
3月前
|
JavaScript 前端开发 API
在线三维CAD中创建一个三维管道模型(网页浏览编辑三维CAD)
本文介绍了如何使用mxcad3d创建三维管道模型。mxcad3d提供了丰富的API,使复杂的管道结构设计变得直观简便。首先需安装mxcad包并初始化项目。接着,通过编写JavaScript函数实现圆角方管的绘制,并将其添加到web界面中。点击绘制按钮即可生成管道模型并实时展示。这为网页CAD中的三维建模任务提供了强大支持。相关代码与项目可在[mxcad3d官方仓库](https://gitee.com/mxcadadox/mxcad_docs/tree/master/examples3D/Test3dPipe.7z)获取。
在线三维CAD中创建一个三维管道模型(网页浏览编辑三维CAD)
|
定位技术
ArcGIS Pro无需数据轻松制作三维效果
ArcGIS Pro无需数据轻松制作三维效果
186 0
|
存储 C# 开发工具
C#编程的构成要素(结合unity做实例分析)
C#编程的构成要素(结合unity做实例分析)
C#编程的构成要素(结合unity做实例分析)
|
数据可视化
Qt开发技术:Q3D图表开发笔记(三):Q3DSurface三维曲面图介绍、Demo以及代码详解
qt提供了q3d进行三维开发,虽然这个框架没有得到大量运用也不是那么成功,性能上也有很大的欠缺,但是普通的点到为止的应用展示还是可以的。其中就包括华丽绚烂的三维图表,数据量不大的时候是可以使用的。前面介绍了基础的q3d散点图、柱状图,本篇介绍基础的三维曲面图。Q3DSurface类提供了渲染3D曲面图的方法。该类使开发人员能够渲染3D表面图,并通过自由旋转场景来查看它们。可以通过QSurface3DSeries控制曲面的视觉财产,例如绘制模式和着色。
|
编解码 Shell C#
基于C#的ArcEngine二次开发38: 几何关系描述接口- ISpatialFilter 最全解析(一)
基于C#的ArcEngine二次开发38: 几何关系描述接口- ISpatialFilter 最全解析
基于C#的ArcEngine二次开发38: 几何关系描述接口- ISpatialFilter 最全解析(一)
|
SQL 数据库 C#
基于C#的ArcEngine二次开发38: 几何关系描述接口- ISpatialFilter 最全解析(二)
基于C#的ArcEngine二次开发38: 几何关系描述接口- ISpatialFilter 最全解析
基于C#的ArcEngine二次开发38: 几何关系描述接口- ISpatialFilter 最全解析(二)
从0开发游戏引擎之三维几何体数据类
Shape类只是单纯的形状数据,并不能用具真正的绘制,真正的绘制工作是Gizmo类去做的。该类只是作为Gizmo的一个成员去使用的。Shape的函数只是提供了加工数据的,然后把加工后的数据存下来。不多哔哔了,直接贴代码。原理有空了再详细写。
|
存储 vr&ar C#
Unity学习4:如何实现2D图像跟踪(涂色类AR项目实践1)
AR tracked image manager(2D图像检测追踪管理器)
431 0
Unity学习4:如何实现2D图像跟踪(涂色类AR项目实践1)
|
iOS开发 开发者
iOS开发CoreGraphics核心图形框架之四——变换函数
iOS开发CoreGraphics核心图形框架之四——变换函数
149 0