基于OCCT的三维矢量弯管软件的开发和研究

2022-01-08 02:15卢宇坤王梓榆
中国科技纵横 2021年22期
关键词:句柄表示法管材

卢宇坤 王梓榆

(常州固高智能装备技术研究院有限公司,江苏常州 213000)

0.引言

弯管作为大多数气体、液体的输送结构,在许多领域都拥有着广泛的应用,如汽车工业、航天航空等,随着弯管应用市场进一步扩大,传统的绕弯式弯管机,压弯式弯管机等已经不能够满足工业上的应用要求,因此发展出了最新的三维矢量弯管机,这种弯管机的工作原理比传统弯管机更为复杂,因此需要在进行弯制前,能够实现对于管材模型的显示,便于技术人员更好的加工管材。

本文旨在基于Open CASCADE Technology这一开源的几何内核,研究开发出一款专门针对三维矢量弯管机的小型软件平台[1]。通过该软件能够便捷地导入外部管材的STEP模型,实现STEP模型的整体展示,并能够对于模型进行操作。开源几何内核再实际的开发应用中具有许多优势,并且针对三维矢量弯管开发相应的软件平台,能够大大降低成本,同时还能够保证后续加工的稳定性,这无疑有着广阔的前景和市场。

1.Open CASCADE Technology简介

Open CASCADE Technology简称OCCT,是基于C++开发出的一个几何内核,提供了多种C++的类,旨在快速生成复杂的特定领域CAD/CAM/CAE应用程序。使用OCCT开发的典型应用程序处理通用或专用计算机辅助设计(CAD)系统、制造或分析应用程序、模拟应用程序甚至插图工具中的二维或三维(2D或3D)几何建模。利用OCCT开发特定领域CAD/CAM/CAE应用程序,具有功能模块化和可扩展性高的优点,以下各项为OCCT所提供主要C++类:

基本数据结构(几何建模、可视化、交互式选择和特定于应用程序的服务);建模算法;网格数据处理算法;IGES、STEP格式的数据互操作性。

Open CASCADE 采用C++11中的新特性智能指针来管理引用,这种管理机制利用句柄来实现。Open CASCADE中的句柄由Standard_Transient(临时)类或Standard_Persistent(持久类)类派生。同时Open CASCADE提供了一个宏预处理函数Handle()。通过声明句柄的方式来创建出需要处理的对象,并采用new操作符初始化句柄。在本文的研究与开发中,常需要利用到该特点[2]。

2.三维矢量管材模型软件平台的开发与研究

基于Open CASCADE Technology平台,采用Visual Studio 2019编程平台和C++编语言来开发。开发出一款具有可视化界面,能够实现三维矢量管材STEP文件导入以及对于管材模型操作的软件平台[3-4]。

2.1 可视化界面的开发

可视化界面的开发是整体软件平台的框架,选用Qt作为可视化界面开发框架具有较好的可操作性。Open CASCAS CADE与程序的交互环境接口通过AIS_Interactive-Context类实现,该类通过接受一个高级的API信号控制显示过程。本文选择在文档类中实现对象的创建与初始化,在视图类中设置程序交互环境界面背景。部分实现代码如下:

其可视化界面的初始化界面如图1所示。

图1 可视化界面的初始化界

2.2 STEP文件导入技术

OCCT中,模型是使用B-rep(边界表示法)描述的。所以STEP文件导入是实现将STEO文件表示的模型,转换为OCCT使用的B-rep表示的模型。

描述一个物体的方法有许多,而在实体建模中,经常使用物体的一个封闭的边界来描述一个物体,这个方法就叫作边界表示法。因为通常情况下来说,一组面的集合可以组成一个完全封闭的边界,所以说边界表示法是高效且准确的描述出整个模型的。在OCCT中,有一个总的拓扑类叫作TopoDS_Shape,以此类作为父类,派生出许多的子类,这些子类能够基本上概括出组成模型的所有基本拓扑类型,其中与边界表示法最为相关的的几大子类分别如下:

TopoDS_Vertex是最基本的拓扑类型,也就是我们常说的顶点;2个顶点可以构成一条线,那么这条线相对应的拓扑类型叫作TopoDS_Edge;当许多条TopoDS_Edge连接起来,就能够构成一个面,也就是TopoDS_Face;将多个TopoDS_Face拼接,就会获得一个新的拓扑类型,叫作体,也就是TopoDS_Solid。但我们把多条TopoDS_Edge组成一个集合时,这个集合对应的拓扑类型也就是TopoDS_Wire;把多个TopoDS_Face组成一个集合时,这个由TopoDS_Face组成的集合对应的拓扑类型就是TopoDS_Shell。当我们拥有一个包含了各种拓扑类型的集合时,这个集合称之为TopoDS_Compound。所有拓扑结构的关系如图2所示。

图2 各拓扑之间的结构关系

在OCCT中,有STEPAPI_Reader类,我们可以运用此类来读取STEP格式的文件,每一个STEP文件中,都包含了自己的网格信息。因为在OCCT中,是采用B-rep表示法来表示一个模型,想获取STEP模型,就需要将STEP模型里的数据全部转换为B-rep表示的模型,这个操作我们同时调用STEPAPI_Reader类和STEP Mesh_Mesh类就可以完成。在读取STEP文件的同时,会获得该STEP文件中所有的三角面片的信息,这些信息会保存到STEP Mesh_Mesh类中的网格信息中,根据所有获得的网格信息,就可以生成只拥有单个拓扑结构的TopoDS_Shell模型中,也可以生成拥有多种拓扑结构的TopoDS_Compound模型中。

为了将生成的TopoDS_Shell模型或者是TopoDS_Compound模型显示出来,OCCT 也提供了相应的显示模块,这个模块叫作AIS(Application Interactive Services)模块。AIS模块提供了多种的显示有关的功能,通过合理的组合使用这些功能,就能够实现几何和拓朴对象的显示、选择和管理。其中对象的显示可以显示出对象的颜色,也可以自己指定显示模式。对于对象的选择而言,如果被选中那么就将此对象进行高亮显示。实现读取STEP文件的部分关键代码如下:

外部管材STEP文件在本软件平台中的显示效果如图3所示。

图3 STEP模型显示效果

2.3 管材模型的操作

通过AIS模块可以读取三维模型文件中的特征,并将三维模型在程序视图框架中显示出来,而无法对模型实现旋转、放缩、移动等基本的交互操作。OCCT提供了V3d_View类,在这个类中有丰富的图形操作函数,通过枚举CurAction3d能及时响应渲染模型表面、场景、纹理等,想要完成对于模型的旋转、平移、缩放等交互。STEP 模型操作显示如图4所示。

图4 STEP模型操作显示

3.结语

本文基于Open CASCADE Technology这一开源几何内核,研究并开发出了一款三维模型软件,并且该软件应用到三维矢量弯管技术中,从而能够实现管材STEP文件的显示,以及对于STEP模型操作的功能,能够让工程技术人员更好地了解管材的数据结构,以便于后续的开发。如今,在CADCAM系统中,对于STEP文件进行数据交互在整体的协同工作中占据了重要的地位,但是相比于现较成熟的三维软件,利用Open CASCADE Technology这一几何内核,针对性的对于三维矢量弯管开发软件,并对STEP模型进行处理,在能够确保降低成本的同时也能获得较好的稳定性,这无疑能够给管材加工带来极大的便利。本文研究的软件,能够进一步的再借助Open CASCADE Technology,开发出具有更多功能的软件平台,这无疑对有十分重大的意义和更加广阔的市场前景。

猜你喜欢
句柄表示法管材
否定意义的四种特殊表示法
编译程序语法分析句柄问题分析与探讨
从一道小题联想到的整数表示法
大型管材在线切割设备的设计
名词易错点透视
SA-213T23管材焊后热处理工艺
建筑室内给排水管材的合理选择
芯层微孔发泡管材的制备
日期和时间