基于3DEXPERIENCE平台的CATIA二次开发下的拱坝结构快速建模

2020-03-10 07:15包腾飞
水利水运工程学报 2020年1期
关键词:拱坝拱圈二次开发

楼 涛 ,包腾飞 ,

(1. 河海大学 水利水电学院,江苏 南京 210098;2. 河海大学 水文水资源与水利工程科学国家重点实验室,江苏南京 210098;3. 三峡大学 水利与环境学院,湖北 宜昌 443002)

拱坝是一种高次超静定空间壳体结构,加之常位处高山峡谷,所以其结构和边界条件十分复杂。其中的双曲拱坝在水平和铅直界面都呈拱形,且双曲拱坝的每个横切面都不相同,参数严格约束,一般的三维软件无法如此精细化建模[1-2]。随着技术的发展,黄艳芳等[3]将CATIA引入水利工程三维建模中[4-5],但拱坝模型中存在许多异型体,这些异型体的模型参数复杂,且不易更改,如果光靠设计人员去一一构建,需要花费较多的时间,且效率不高。因此,本文基于CATIA进行了二次开发,开发出了能够实现拱坝结构快速构建功能的自动化建模程序,提高模型构建效率。CATIA 二次开发方法[7-8]主要有: 自动化对象编程(Automation API)和基于构件的应用编程(CAA-RADE)。达索公司的3DEXPERIENCE(3DE)平台作为CATIA V6版本,集成了CATIA所有功能,并提供并行、修改协同等功能,因此对3DE平台的CATIA模块进行二次开发更具有应用价值。本文基于3DE平台利用Automation API接口开发了拱坝三维建模二次开发程序,以某拱坝模型为例,对其三维模型进行构建,全过程以Python程序驱动CATIA模块,通过模型特征参数构建拱坝[6,9],实现了拱坝三维模型快速、准确、智能的构建。

1 基于3DE平台的建模系统

与其他主流三维软件不同,3DE平台以多阶段建模、叠加模型、关联模型为技术核心[10-12],为实现三维环境下的模型并行协同设计提供了基础。

1.1 多阶段建模

以往的工程设计中,常以二维图纸为主,通过二维图纸转化为三维模型的方法,在三维软件中进行建模。对于实际工程设计而言,以点线面为基础元素,将一个设计对象划分为多个基础结构,分为多个阶段进行建模,从低维叠加生成高维,使得整个工程设计也可以划分为多个阶段,提高效率的同时也降低了设计压力。多阶段建模使得三维模型在工序上也能将其分割。

1.2 可叠加的模型

要实现并行设计,最重要的一点就是要实现多人负责不同层级的信息,并能让这些信息以一定的规则添加至同一个对象中,3DE平台引用装配的概念,使得一个模型能够被若干子模型叠加组合,不同层级的信息也同时叠加在一起,组合成一个具备完整信息的模型。

1.3 模型关联性

在3DE平台中,通过选择支撑与约束的方法,可以将各个单独的子模型关联起来。3DE具有协同功能,就是通过对象的链接、引用等方法,将平台中他人制作的模型作为自己的建模基础,对其进行修改或进一步的建模操作,但任何操作均与原模型独立开来,不会修改他人模型,也不会占用他人模型使其无法编辑。这一特性实现了多人之间的协同修改,并统一了数据源。

2 拱坝三维模型构建方法

拱坝的外形和边界条件都很复杂,其坝体上游面受到的荷载通过拱的作用传递到两岸坝肩,并通过梁的作用传递到坝基,承载能力很大,大大减小坝身断面面积,从而减少混凝土用量,故在水工建筑中得到了广泛应用。

拱坝的建模难度较高,主要是因为:(1)坝型繁多:按照水平拱圈的拱轴线的几何性质,可划分为圆弧型、抛物线型、椭圆型、对数螺旋线型等;对于圆弧双曲拱坝,又可根据拱弧圆心数量划分为单心、双心、三心等。(2)不对称性:由于拱坝的设计依托于地形,或受地质条件的影响,其左右拱往往不对称,从而使左右拱弧拱心、两端拱厚及圆心角都不相同。(3)对于双曲拱坝,每层拱弧的拱心、拱厚及圆心角都不相同。

拱坝三维建模总体设计思想是从整体到局部,即先构建拱坝整体,再对其局部结构进行单独建模,根据约束关系对其进行装配,形成一个整体,最后根据地形等高线构建坝体周围的开挖岩体,形成一个完整的拱坝三维模型。具体步骤如下:

(1)构建坝体整体骨架模型。根据给定的模型参数,建立一系列高程参考平面,在参考平面内生成拱圈样条曲线,连接形成闭合截面,然后根据多个截面,通过多截面实体放样生成坝体三维实体模型,得到坝体整体模型。

(2)构建局部结构。根据给定的模型参数,构建表孔、深孔、导流底孔和放空底孔等局部结构的三维模型,然后根据约束关系与坝体整体进行布尔运算,达到建孔的目的,装配成一个整体。

(3)构建开挖岩体。根据给定的地形图和等高线,构建坝体开挖面,生成开挖岩体模型,与坝体装配成一个完整的产品。

3 基于3DE平台的CATIA模块二次开发

Python作为一门新兴的高级编程语言,它的特点是简洁明了。它的开源性、可移植性、可扩展性和可嵌入性使其能够被广泛应用。本文使用Python语言通过3DEXPERIENCE Automation(自动化)接口进行CATIA模块的二次开发,在Python3.6.5编译器中通过仿写VB代码,利用CATIA模块本身带有的VB接口,通过简单的代码即可完成Python与3DE平台的CATIA模块的连接,后续就可以利用Python语言对需要的功能进行代码编写,实现模型构建的快捷操作。要对CATIA模块进行二次开发首先要添加其编程接口的引用,在Python中操作CATIA COM部件根对象,需要先添加CATIA编程接口的引用。Python是面向对象的编程语言,在3DE的Automation中,每个对象都有相应的接口,要对某个对象进行操作必须先引用相对应的接口。3DE平台提供了Automation帮助文档,在帮助文档中,可以方便快捷地查看某个对象所对应的接口。通过引用接口,可以获取对象进行操作,构建所需模型。对CATIA进行二次开发的程序结构如图1所示。

图 1 对CATIA进行二次开发的程序结构Fig. 1 Program structure of CATIA secondary development

3.1 基于骨架设计的拱坝建模方法

骨架模型是从拱坝整体层面以及所处的地理位置考虑的控制性结构,由点、线、面3种要素组成,其中点是最基本的,起控制性作用。拱坝骨架主要由不同高程的拱圈构成,其设计难点主要在于各层拱圈都不相同,模型参数复杂,因此,对CATIA模块进行了二次开发,针对不同类型的拱圈控制方程开发出相对应的建模程序,以达到快速构建拱坝模型的目的。本文以拱圈控制方程为抛物线型的某拱坝为例,控制方程分为4个区域,拱圈上的控制点平面(x,y)坐标根据所在位置满足以下控制方程,参数根据不同高程而变化:

式中: Ruli为上游左岸拱圈曲率半径;Ruri为上游右岸拱圈曲率半径;Rdli为下游左岸拱圈曲率半径;Rdri为下游右岸拱圈曲率半径;Ouli为上游左岸拱圈曲率中心y坐标;Ouri为上游右岸拱圈曲率中心y坐标;Odli为下游左岸拱圈曲率中心y坐标;Odri为下游右岸拱圈曲率中心y坐标;αuli为上游左岸端点和拱圈曲率中心的连线与拱坝中心线之间的夹角;αuri为上游右岸端点和拱圈曲率中心的连线与拱坝中心线之间的夹角;αdli为下游左岸端点和拱圈曲率中心的连线与拱坝中心线之间的夹角;αdri为下游右岸端点和拱圈曲率中心的连线与拱坝中心线之间的夹角。

为实现参数化设计,将给定的模型特征参数制成EXCEL表格。在Python编译器中,导入xlrd模块,调用EXCEL表格,读取所需的模型参数。以该方法调用数据,可以方便快捷地批量导入数据,同时也方便寻找和更改某一特定的模型参数,提高设计效率。

对于抛物线型拱圈,可以通过在CATIA草图中直接生成抛物线的方式来构建,为达到批量生成的目的,通过获取Factory 2D对象(用于操作二维对象)的方法,来绘制控制断面。首先调用模型特征参数,通过AddNewPointCoord(添加点坐标)方法生成高程参考点。以高程参考点为基准,通过AddNewPlaneOffsetPt(通过偏移创建平面)方法可以生成一系列不同高程的草图参考平面,然后在各个草图中根据顶点坐标、抛物线轴线矢量、焦点距离,通过CreateParabola(创建抛物线)方法就能够准确生成抛物线,以起始位置和终止位置截取所需要的抛物线段。为提高设计效率,该程序采用了for循环语句,高效批量生成各高程的拱圈抛物线,通过CreateLine(创建直线)命令连接各个抛物线的端点,以AddNewJoin(接合)命令将各条线拼接在一起(用于闭合线框),就形成了各个拱圈的闭合截面。

给定模型特征参数,以Python程序驱动3DE平台中的CATIA模块,可以快速得到拱坝骨架三维模型(图2),且易于修改,并根据需求更改调用的模型参数即可获得不同的拱坝骨架模型。在此基础上,通过CreateSpline(创建样条曲线)命令绘制边坡线,通过CreateReferenceFromObject(以目标对象创建参考对象)命令添加接合后的各高程截面为参考截面,再以相同方法添加边坡线作为参考线,最后通过AddGuide(添加引导)命令添加参考线作为引导线,以AddSectionToLoft(添加截面到体)命令添加参考截面,即多截面实体放样生成拱坝主体,其中添加多条引导线可以避免坝体曲面的扭曲,使得到的拱坝模型更为精确(图3)。该部分仅生成拱坝主体,且不包含孔洞和局部结构,故通过多截面实体命令就能生成实体。

图 2 拱坝骨架模型Fig. 2 Arch dam skeleton model

图 3 拱坝主体模型Fig. 3 Main model of arch dam

3.2 坝体局部结构建模方法

拱坝建模的一个难点在于其曲面的设计和异型体的构建,而拱坝模型除了主体坝体之外,还包括各种类型的局部结构,如表孔、深孔、导流底孔和放空底孔等,都属于较难构建的异型体。3DE平台中的CATIA模块具有强大的3D设计功能,正好可以解决此类问题。依据给定的模型特征参数,在草图中构建异型体断面形状,通过凸台、凹槽、倒模等操作就可以生成异型体模型。根据约束关系,可以将这些局部结构模型与坝体主体进行布尔运算,装配成一个整体。以表孔为例,整体可分为3部分,即上游坝面部分、下游坝面部分、中空挖孔部分,全过程也分为3个步骤,即实体构建、定位、装配。

实体构建:3个部分实体均以Python输入尺寸参数构建截面草图,如图4和5所示。

图 4 表孔下游坝面截面Fig. 4 Sketch of downstream dam surface section for crest outlet

图 5 中空挖孔截面Fig. 5 Sketch of hollowed-out section

参考平面通过CreateReferenceFromObject(以目标对象创建参考对象)命令添加AxisYZ(YZ平面),再以AddNewPad(凸台)命令以指定厚度拉伸成实体,如图6和7所示。

图 6 表孔下游坝面实体结构Fig. 6 Solid structure of downstream dam surface for crest outlet

图 7 中空挖孔实体结构Fig. 7 Hollowed-out solid structure

定位:以指定位置与原点的X,Y,Z坐标向量作为偏移方向和数值,通过AddNewTranslate(位移)命令将原处于原点位置的实体移动至指定位置,再以AddNewRotate(偏转)命令以Z轴为旋转轴,添加给定的偏转角度,使其中截面与坝体正交。

装配:上下游坝面部分以AddNewAssemble(装配)命令与坝体装配成一个整体,其中相交重叠部分会自动融合。中空挖孔部分作为要切除的对象,这里采用AddNewRemove(移除)命令使之前已装配的整体移除该部分实体(图8),即生成了表孔溢流面,因不是分别建孔后拼接的情况,所以不会发生表孔溢流面建模与坝体交叉错位的情况。

全过程以Python程序驱动,调用模型数据,获取并添加Body对象,在草图编辑器中自动生成断面形状,在空间中拉伸为三维实体,通过倒模等操作修正其形态,最终得到准确的局部结构模型,达到参数化建模的功能,完成设计参数向模型的传递过程,实现了拱坝局部结构三维模型快速、准确、智能的构建。

3.3 开挖岩体构建与整体装配方法

拱坝除自身结构复杂外,其边界条件也很复杂,如果要对拱坝进行全面的分析或者结构计算,拱坝周围的开挖岩体必不可少,因此本文还构建了坝体开挖岩体以作分析。坝体开挖岩体的构建主要通过LSV软件和global mapper软件获取坝体周围地形等高线图,在CAD中对地形图进行处理,提取点云数据,导入3DE中。在3DE的Terrain Preparation(地形)模块中以点云生成地形网格面,修正之后根据拓扑关系生成质量较好的地形曲面,最后通过凸台命令将整个曲面拉伸成三维实体结构,达到生成坝体开挖岩体的目的。左岸混凝土垫座作为单独的部分以相同的方法生成三维实体模型。依据约束关系,将拱坝模型与开挖岩体装配成一个产品,整体产品模型如图9所示。该模型还可以输出为CAE文件以作计算,这也是CATIA模块的一大优势所在。

图8 表孔装配结果Fig.8 Assembly result of crest outlet

图 9 整体产品模型Fig. 9 Integrated product model

4 结 语

基于3DE平台的CATIA模块的二次开发,利用Python语言简洁、开源、可移植性、可扩展性、可嵌入性和具有丰富的库的特点,能够高效、准确、智能地完成拱坝骨架三维模型的构建,后续再通过多截面实体、凸台、装配等命令和布尔运算依次构建生成坝体整体和开挖岩体。3DE平台的CATIA模块功能强大,可以进行复杂的曲面设计,应用于多种领域;在水工建筑物方面也有很大的应用空间,3DE平台更是提供了协同设计的功能,从设计到施工到管理,包含了多种强大功能,有待利用。针对CATIA模块,可以通过对其进行二次开发,实现智能、高效、快捷的三维模型构建的功能,发展潜力巨大。对于开发语言,如VB,Matlab,Python和C都可以使用,而简洁的Python语言更是较好的选择。

猜你喜欢
拱坝拱圈二次开发
Phytochemicals targeting NF-κB signaling:Potential anti-cancer interventions
高双曲拱坝碾压混凝土夏季施工实践探究
新型装配式拱圈节段的转动刚度分析与设计研究
整体浇筑堆石混凝土拱坝拱梁分载法分析研究
兰香沟管桥拱圈施工技术
浅谈Mastercam后处理器的二次开发
基于联合截面的圬工拱桥最小加固层分析
例谈课本习题的“二次开发”
复合主拱圈加固技术应用计算分析
ANSYS Workbench二次开发在汽车稳定杆CAE分析中的应用