APP下载

基于CATIA二次开发的土石坝三维参数化建模方法

2018-11-06隋国栋张幸幸董福品

水电站设计 2018年3期
关键词:石坝二次开发分区

隋国栋, 张幸幸, 董福品

(1. 华北电力大学, 北京 102206; 2. 中国水利水电科学研究院流域水循环模拟与调控国家重点实验室, 北京 100038)

0 前 言

近十几年来,随着土石坝的施工工艺的创新和新型材料的应用,我国高土石坝的建设处于高速发展阶段[1]。随着坝高的增加,对土石坝安全性也提出了更高的要求。在土石坝的设计流程中,土石坝的数值分析是其中的重要环节,而数值分析过程中工作量最大的环节莫过于建模。传统土石坝三维建模采用交互式方法。交互式建模的优点在于其直观的表达方式,且能适应较为复杂场景。但其创建过程复杂、耗时长,且不易修改[2]。所以寻找一种速度快、精度高的土石坝三维建模方法有其必要性。参数化建模能有效解决上述问题,尤其是在坝型方案比选和坝体材料分区比较分析中,参数化建模能大大提高工作效率。

1 参数化建模

参数化建模,是指在建模之前首先对模型的构造特征进行分析,提取模型特征参数,通过建立参数与模型之间的对应关系,输入控制参数即可创建模型[3]。

参数化建模的优点在于[4]:(1)速度快。输入特征参数后,建模过程会通过预先编写的程序自动快速完成。(2)易修改。利用模型中施加的几何约束,修改某一特征参数,其他几何特征也会随之改变,不用全盘修改。(3)通用性强。初次建模程序设计完成后,可以通过输入不同的参数,达到对同一系列其他不同规格模型建模的目的。

充分发挥参数化建模优越性的一个重要的前提是所建模型系列的相似性,即所建模型为同一“类”。这样即可把工作重心放在以二次开发的方式搭建参数与模型之间的联系上。CATIA的二次开发完成后,输入不同的参数即可快速创建同一“类”不同参数的模型。土石坝发展近百年来,其坝型也逐渐趋于稳定,现高土石坝的坝型主要有土质心墙堆石坝、混凝土面板堆石坝和沥青混凝土心墙堆石坝。基于此前提,对CATIA进行二次开发,实现土石坝的参数化建模,能够大大提高土石坝建模的效率。

2 CATIA及CATIA二次开发

CATIA是法国达索公司出品的CAD/CAE/CAM一体化软件,在航空航天、汽车制造、机械制造、电子电器等领域得到广泛应用。其优点在于强大的三维参数化建模能力,并且CATIA开放了大部分接口,提供了很好的二次开发平台[5]。

通过C/C++、VB等语言编写程序,在CATIA上实现自定义功能,这种技术叫作CATIA二次开发。CATIA二次开发的方式主要有两种:CAA(组件应用构架)和Automation API(自动化应用接口)。两种方式各有其优缺点,具体介绍如下。

(1)CAA是基于组件的定制开发方式。用户在快速应用开发环境RADE(Rapid Application Development Environment)中,利用CATIA开放接口,采用C++语言编程,把自己的知识集成到特定的 CATIA 应用模块中,实现对CATIA的二次开发[6]。RADE为集成在Microsoft Visual Studio平台中的CATIA二次开发环境,包含完整的编程工具组。该开发方式运行速度快、扩展性强,但对开发技术要求较高,且系统维护较复杂。

(2)Automation API。利用CATIA提供的Automation API,用VB语言对CATIA进行二次开发。大多以Visual Basic 6.0作为开发环境[7]。具体的操作流程为:以CATIA中录制宏的功能生成的VBScript代码为基础,在Visual Basic 6.0开发环境中进行编译,将模型的重要参数作为输入变量,生成可执行文件,达到参数化建模的目的[8]。另外,也可将生成的VBScript嵌入到HTML的网页中。第三种常用的开发环境为Excel-VBA。VBA(Visual Basic for Application)为Visual Basic的一种宏语言,主要用来扩展Windows的应用程序功能,特别是Microsoft Office软件。Excel-VBA即为Excel中以VB为基础的宏语言。

3 土石坝三维参数化建模技术路线

本文选择Automation API二次开发方式,此方式学习成本较低,基础代码可以通过CATIA录制宏的功能获得。开发环境为Excel-VBA,较前两种开发环境,采用Excel-VBA对CATIA进行二次开发的优点在于可以方便快捷地读取Excel单元格中的大量数据。开发模式概括见图1,在Excel软件提供的Visual Basic编辑器中采用Excel-VBA语言编程,创建Excel中存储的参数与土石坝三维模型之间的联系,达到土石坝三维参数化建模的目的。

4 程序设计

4.1 程序设计的思路和程序结构

只要确定土石坝的几个典型断面,便可确定土石坝的基本几何形状。在典型断面中加密断面便可提高土石坝三维建模的精度。所以,本文采用“断面法”实现土石坝三维模型的建立,即:先绘制控制断面的节点,连结节点生成控制断面,重复上述过程生成若干控制断面,最后由控制断面“放样”得到土石坝实体。

程序设计过程中,断面上每个节点的生成可以采用循环语句,连结节点生成每个控制断面的过程可以模块化,使程序易读、易修改、易维护。对CATIA进行二次开发的程序结构如图2所示。

图2 对CATIA进行二次开发的程序结构

程序结构中几个重要应用程序编程接口(API)简介[9]如下。

Application:要对CATIA进行操作,首先是要连接到它的com接口,打开CATIA文件。

Documents:是零件(Part)、产品(Product)、工程图(Drawing)等对象的合集。

Part:是零件文档最上层的对象,获取Part对象后可以操作零件文档。

Bodies:实体对象的合集。

Body:是Bodies中某一特定的实体对象,它包含了操作零件文档所需的大部分重要的属性、方法和对象。

Sketches:草图对象的合集,Part对象的一个属性,获取Sketches对象即可创建修改草图。

Factory2D:草图元素的构造器,可以通过它在草图特征中绘制点、线、圆弧、整圆等。

OriginElements:Part对象的一个属性,用来描述零件文件的三维轴系统。获取该属性后,可以访问零件文档的参考平面。

Shapefactory:实体特征构造器,获取该对象后,可以完成凸台、放样、旋转体等实体特征的创建。

4.2 土石坝三维参数化建模实例

以白云混凝土面板堆石坝为例,介绍土石坝三维参数化建模过程(见图3)。

图3 土石坝参数化建模过程

(1)数据前处理。在AutoCAD中获取断面信息,其中包括每个控制断面垂直坝轴线的位置,以及每个控制断面草图中节点的绝对坐标。本文统一获取每个断面的13个节点信息,将1节点设为原点(0,0),其他节点的绝对坐标转换为相对坐标(单位:m)。以“0+4”断面为例,节点编号及相对坐标如图4所示。将断面位置及节点相对坐标输入到Excel相应的单元格中,如图5所示(省略部分断面及节点信息)。

图4 “0+4”断面中节点编号规律及相对坐标

图5 Excel中输入的断面信息

(2)创建参考面。依次获取Application、Documents、Part、Bodies、Body对象,打开CATIA软件并新建一个零件文件。获取OriginElements对象,以X-Z面为基准面,读取Excel表格中“断面位置”列中每个断面的偏移距离,创建25个参考面,如图6所示。创建参考面的目的是确定控制断面垂直坝轴线的位置,为各控制断面的绘制提供基准面。

图6 创建参考面

(3)在参考面上绘制控制断面。获取Sketches对象,打开草图编辑器。随后获取Factory2D对象,绘制控制断面。分别以创建的25个参考面为基准面,读取Excel中的节点坐标,生成节点,将节点依次连结生成闭合平面。最终绘制成25个控制断面,如图7所示。

(4)利用放样工具生成实体。获取Shapefactory对象,打开实体特征构造器。依次选取相邻的两个断面“放样”生成24个实体,完成土石坝三维参数化建模。土石坝三维实体最终效果如图8所示。

基于此模型便可开展随后的坝体分区工作。采用图9所示的坝体材料分区,将分区边界依次输出,并拉伸为曲面。利用轮廓曲面便可将土石坝实体依次切割为8个分区。在CATIA装配模块中将8个模块装配为一个“产品”,达到三维土石坝分区的目的,坝体分区后的效果见图10。

图7 创建控制断面

图8 土石坝实体

图9 坝体材料分区

注:①混凝土面板;②垫层区;③过渡区;④新鲜、微风化灰岩主堆石区;⑤弱风化砂岩,灰岩次堆石区;⑥弱风化、非级配灰岩石区;⑦新鲜、微风化灰岩石区;⑧干砌石护面

(a)坝体最大剖面

(b)三维模型

5 结 语

本文采用的基于CATIA二次开发的土石坝三维参数化建模方法,能够快速准确地创建精度较高的土石坝模型。整个建模过程中,工作量相对较大的环节在于前期数据的处理,需人工处理断面节点坐标信息,并将其输入到相应的单元格中,而其他建模步骤,只需单击“创建”按钮,程序会自动化完成。该方法对于缩短创建土石坝模型时间具有明显效果,如有必要,随后的廊道和防渗墙等其他水工设施的建立可以在该方法所创建模型的基础上展开。总之,本文探索出的基于CATIA二次开发技术的参数化建模方法可以大大提高土石坝三维建模的效率,进而缩短土石坝仿真分析周期。

猜你喜欢

石坝二次开发分区
上海实施“分区封控”
土石坝坝体失稳破坏降水阈值的确定方法
水利土石坝工程筑坝的施工技术要点
浅谈基于Revit平台的二次开发
浅谈Mastercam后处理器的二次开发
无限元法在深覆盖层土石坝动力分析中的应用
浪莎 分区而治
西门子Easy Screen对倒棱机床界面二次开发
大空间建筑防火分区设计的探讨
基于SAGA聚类分析的无功电压控制分区