罗 通, 练章华, 牟易升, 王进丰
(1.西南石油大学 工程学院, 四川 南充 637001; 2.西南石油大学 油气藏地质及开发工程国家重点实验室,四川 成都 610500; 3.长江勘测规划设计研究院, 湖北 武汉 430010)
渠道是整个干渠工程项目必不可少的组成部分,在水利水电行业发挥着调水与输配水[1]的重要作用。渠道规划与设计是关系国计民生的大事,近年来,三维设计技术已被国内外学者应用于渠道的规划与设计中,如黄少华等[2]将CATIA引入了渠道施工详细设计,采用参数设计方法和模板技术建立了渠道的三维模型;覃志浩[3]将GEOPAK site运用在渠道三维设计中,论述了渠道三维设计流程;桑国庆等[4]探索了三维动态可视化设计技术在大型渠道设计中的应用,并与传统二维设计方法进行对比发现该三维设计技术能够明显提高设计效率;易平等[5]叙述了Autodesk Civil3D设计渠道的方法,应用效果较好。但他们的渠道设计都需要操作复杂的通用软件,设计过程繁琐,设计工作量大,设计周期长,不仅要提前做好多种类型的模板,还要提前规划好模型的设计参数,这也对设计人员的设计经验和素质提出了更苛刻的要求,由此可见通用三维设计软件在渠道设计中实用性不强。但是,目前没有一款专门用于渠道设计并能简化设计的三维软件。因此,非常有必要对通用三维设计软件进行二次开发。
CATIA V5是法国达索(Dassault Systems)公司与美国IBM (International Business Machines Corporation)公司合作开发的、面向对象CAD/CAE/CAM的产品,目前已广泛运用于飞机、汽车、船舶、水利水电等领域。它采用了全新的、基于组件的开放式体系应用架构,允许使用者根据自己的需求进行二次开发或定制相应的应用解决方案。目前,许多专家学者基于CATIA的二次开发技术分别在汽车零件部设计[6-10]、飞机零部件设计[11-15]、风电叶片的建模技术[16]、船舶设计[17-19]、水电站工程的地质开挖与处理[20-23]、大坝拱圈设计[24]、重力坝建模设计[25]等多个领域进行了研究与探索。但是,目前没有专家学者将CATIA的二次开发技术用于渠道的三维设计,因此,需要基于CATIA的二次开发技术对渠道三维设计进行研究。
CATIA V5的内部模块是基于CNEXT并能支持多种组件架构,具有多个二次开发接口,能够运用各种开发工具如CAA、JAVA、VB、脚本语言等实现二次开发。由于JAVA、脚本语言虽然简单方便,但人机交互性较差[15],只适用于简单的二次开发。利用VB(Visual Basic)二次开发CATIA的入门简单,开发速度较快,但与CATIA本身底层架构的紧密性不是最优的,用其来实现渠道三维设计这样复杂的程序比较困难。
CAA(Component Application Architecture)采用面向对象的编程语言C++,在CATIA底层对其进行二次开发,包含了一整套函数库和组件库,具有强大的交互、集成和自定义[20]的功能扩展能力,非常适于深层次开发CATIA以实现复杂和功能强大的程序。因此,本文基于CAA的CATIA二次开发技术,以渠道三维设计为研究对象,研究开发出一种比较实用的渠道三维设计应用程序,以期简化渠道设计工作量,缩短渠道设计周期,提高工作效率,同时也降低对设计人员的严格要求,以便让更多的新技术应用于渠道设计及水利水电工程设计中。
基于开放式、可扩展的CAA组件架构,设计人员能通过二次开发完成对Dassault Systemes产品功能扩展,也利于世界范围内的开发商以及使用者能够参与软件研发。CAA支持各种二次开发工作,并能与CATIA底层软件系统无缝集成,非常便于设计人员的二次开发。CAA二次开发是依靠以Microsoft Visual Studio VC++为开发工具载体的可视化集成开发环境RADE和各种API接口程序来实现的。Dassault Systemes主要有CAA RADE快速开发环境、CAA CATIA V5 API、CAA ENOVIA LCA V5 API、CAA DELMIA V5 API、CAA ENOVIA PORTAL V5 API等CAA产品。
目前,采用所见即所得的面向对象程序设计OOP已经成为软件开发领域的主流,推动了软件封装性、抽象性、可复制性的发展。CAA基于面向对象程序设计OOP的组件对象模型(COM)和对象的连接与嵌入(OLE)技术,更有利于设计标准化程序并使程序设计工作变得更简单容易。Dassault Systemes的CAA组件系统架构如图1表示,其展示了Dassault Systemes各组件及产品之间的层次关系。基于CAA组件架构,以搭积木方式建立Dassault Systemes产品系统,非常有利于系统的发展。为了更好地商业运作,CAA分别被分设为多个软件包(Configuration)和模块(Product)。其中,CAA主要包括了CAA-Multi-workspace Application Building、CAA-C++ Extended Development、CAA-C++ Base Development、CAA-Java Base Development、CAA-Legacy Data Integration Development Configuration等5个配置软件包;CAA主要包括的模块(Product)有:CAA-C++ Source Checker、CAA-Teamwork Release Manager、CAA-C++ API Documentation Generator、CAA-Multi-Workspace Application Builder、CAA-CAA Data Model Customizer、CAA-Source Code Manager、CAA-Java Unit Test Manager、CAA-Web Application Generator for Legacy Database、CAA-Java Interactive Dashboard[26]。
图1 CAA的组件系统架构图
CAA的安装主要包括两大部分(如图2所示),首先应安装Dassault Systemes的CATIA V5、ENOVIA相关应用软件,然后安装CAA和RADE模块,便能利用VC++编程语言对CATIA进行二次开发。
图2 CAA的安装顺序图
在进行渠道规划与设计时,需要比选渠道布置线路;在施工时也需要根据现场具体施工情况,对渠道设计进行变更,可见一个设计方案的最终确定可能会经历多次的“设计-反馈-重新设计-评价”的环节,若采用传统的三维设计方法势必会给设计人员带来巨大的工作量,也会延长设计周期。因此,需要将CAA二次开发技术引入CATIA中,实现交互式、所见即所得的渠道三维设计功能程序。渠道三维设计程序实现的主要功能(如图3所示)主要包括渠道分段功能、渠道总体设计、渠道详细设计,渠道总体设计包括渠道轴线规划、确定渠底高程、设计与放置渠道截面;渠道详细设计包括渠道布置区域的地质数据导入、渠道面与渠道体的生成、渠顶公路设计。
图3 渠道三维设计程序的功能分解
渠道尤其是大型渠道如南水北调的渠道一般都比较长,将渠道规划模型进行分段设计与处理是适宜、合理的,其理由如下:
(1) 如果渠道特别长,设计时将对计算机软硬件性能要求非常高,带来不必要的巨大设计成本,因此需将渠道规划模型进行分段设计与处理;
(2) 在与建筑物交接处、渠道断面变化处[2]、地形变化显著处,需将渠道规划模型进行分段设计与处理;
(3) 将渠道规划模型进行分段设计与处理有利于支持在线、异地协同设计和模型数据的管理。
根据CATIA本身的数据处理能力和当前各设计单位的软、硬件配置情况来看,建议将渠道规划模型的分段长度设定在15 km左右。
利用CAA提供的交互方式开发渠道分段功能。在CATIA原有的Product的Workbench中插入新的“渠道分段”工具条及“规划模型分段”命令。执行“规划模型分段”命令后,程序会自动读取《渠道模型分段控制表.xls》中关于渠道的起始桩号和终止桩号数据(如表1所示),据此将渠道规划模型进行分段处理,同时自动将渠道分块的Catpart文件名信息写入《渠道模型分段控制表》中。
表1 渠道模型分段控制表
为了更好地集成渠道三维总体设计功能,也为了设计人员能更方便、快捷地转换到总体设计功能模块,采用CAA批处理方式二次开发CATIA,即在CATIA“开始”菜单下的“机械设计”模块中开发出一个名为“渠道总体设计”的Workbench工作台,并在这个环境下插入能够完成总体设计的各菜单和相应的工具条及命令按钮,如图4所示。
(1) 进入渠道总体设计模块后,渠道轴线规划命令、确定渠底高程命令、放置渠道截面命令才能够被激活,否则呈暗色,这主要是防止渠道设计人员误调用程序命令而开发的规避错误机制,以便减少程序系统不必要的运行时间。
(2) 调用“渠道轴线规划”命令后,程序会自动根据《渠道中心线坐标表.xls》的中心线各端点的坐标、端点所在渠道分段长度、桩号、中心线的转弯半径、角度、圆心坐标等参数(如表2所示),绘制出该渠道中心轴线。
图4 渠道三维总体设计模块
表2 渠道中心线坐标表
(3) 执行“确定渠底高程”命令后,程序会根据《渠道总体布置表.xls》的各分段的桩号、坐标、渠道水位、堤顶或一级马道高程、渠底高程数据(如表3所示) 自动绘制出空间渠道线,最后程序运行结果为平面渠道线和空间渠道线两条。
表3 渠道总体布置表
(4) 点击“放置渠道截面”命令后,程序会自动识别和筛选《渠道总体布置表.xls》的各分段渠道截面是否发生变化并记录,在渠道截面发生变化的位置处自动放置该渠道截面;再调用预先定义好的渠道UDF模型,程序根据表3中的渠道截面参数自动将UDF模型中的截面形状参数(如图5所示)进行更改生成与其匹配的某一截面形状。
与渠道三维总体设计开发方法一样,开发渠道三维详细设计时也采用CAA批处理方式二次开发CATIA,即在CATIA“开始”菜单下的“机械设计”模块中分别开发出一个名为“渠道详细设计”的Workbench工作台,并在这个环境下插入能够完成总体设计的各菜单和相应的工具条及命令按钮,如图6所示。
(1) 进入渠道详细设计模块后,地质数据导入命令、渠道面生成命令、渠道体生成命令、渠顶公路设计命令才能够被激活,否则呈暗色,其目的与意义与前面总体设计类似。
(2) 点击“地质数据导入”命令后,程序会自动将起始桩号到终止桩号所指定的渠道分段区域内的地质数据导入。其中,导入的地质数据包括地形网格、地形曲面、地质边界(在xy平面创建,须小于所获取的地形范围)。
(3) 为了弥补总体设计时放置截面的不足,同时也是为了增加放置截面的灵活性,在此增设了一个“手动放置截面”命令,以便设计人员能够自由地在工程需要的部位放置一个截面。
(4) 点击“生成渠道面”命令,程序会自动将截面沿着渠道中心线“扫略”成原始开挖面,然后再进行自动修剪、切割等操作,最后将这些渠道面各要素缝合成一个完成的渠道面。
(5) 调用“生成渠道体”命令,程序会自动调用CATIA的“加厚”命令将前面生成的渠道面生成三维渠道体。
(6) 单击“渠顶公路设计”命令后,程序会自动读取《渠道总体布置表.xls》中渠顶公路相关参数,自动选择渠顶面、渠道方向,解析相关参数,并调用空间曲面相关命令完成渠顶公路设计。
图5 渠道UDF模型
图6 渠道三维详细设计模块
本文以南水北调总干渠陶岔至沙河段渠道的设计为例,以便验证、测试程序的合理性与实用性。
(1)将CAA开发成果解压放置在磁盘根目录下,并检查内容和目录格式是否完整;
(2)新建渠道三维设计的运行环境,如图7所示。
图7 渠道三维设计程序的运行环境
至此程序发布完成,同时在桌面上会生成一个名为“Channel CAA”的CATIA类型图标。双击该图标,会启动CATIA,用户便可使用CATIA原所有功能和新开发的功能。
准备和确定总干渠陶岔至沙河段的《渠道模型分段控制表.xls》《渠道中心线坐标.xls》《渠道总体布置表.xls》3个表格数据资料,注意文件格式的一致性、数据的准确性。根据南水北调工程需要,在《渠道模型分段控制表.xls》(如表4)将此渠道分为7段进行分别设计;为了保证此渠道中心线的精度,在《渠道中心线坐标.xls》(如表5)取了共计240个坐标点;此渠道较长,为了考虑在其设计与施工中遇到的河渠交叉、公路桥交叉、渠渠交叉、铁路交叉、分水口、节制闸、退水闸等情况,在《渠道总体布置表.xls》(如表6)共取了560组渠道数据。
表4 总干渠陶岔至沙河段渠道模型分段控制表
(1) 双击桌面上名为“Channel CAA”的CATIA类型图标,启动CATIA软件并将将默认创建的Product文件窗口关闭;
表5 总干渠陶岔至沙河段渠道中心线坐标表
表6 总干渠陶岔至沙河南段总体布置表
图8 总干渠陶岔至沙河段的渠道模型分段
(1) 从“开始”菜单—“机械设计”—“渠道总体设计”模块,将工作台切换到渠道总体设计模块并激活其下关联的各命令;
图9 渠道轴线规划命令的执行结果
图10 确定渠底高程命令的执行结果
图11 放置渠道截面命令的执行结果
选择CATIA的保存管理器保存此渠道设计文件,保存后的文件如图12所示。至此,渠道规划与设计完成,关闭渠道规划模型视图窗口。
图12 保存的渠道规划与设计文件
使用“打开”文件命令将需设计渠道段读入,在此以桩号“4+992m”至“17+335m”渠道段为例,模型中包含本段渠道轴线、渠底中心线,起始桩号面、终止桩号面以及相关渠道截面。通过“开始”菜单—“机械设计”—“渠道详细设计”模块,将工作台切换到渠道详细设计模块。
打开包含地质信息的文件包,该文件包含桩号“4+992m”至“17+335m”渠道段的地形网格、地形曲面、地质边界等。复制Geo几何图形集,将其粘贴到“4+992m”至“17+335m”渠道段的模型中,注意渠道段起始桩号和终止桩号必须在该地形之内,如图13所示。
在需要补充渠道截面的位置放置渠道截面,可直接调用模板进行放置,并单击“生成渠道面”命令,其运行结果如图14所示。
图13 导入准备好的地质数据
图14 生成的渠道面
图15 生成的渠道体
图16 设计的渠顶公路
(1)本文将CAA开发技术与CATIA软件相结合所开发的渠道三维设计程序自动化程度较高、实用性较好,能解决水利水电行业渠道设计难题;
(2)通过南水北调的渠道设计实际运用情况来看,本文的渠道三维设计方法能简化水利水电行业的渠道设计;
(3)通过与传统三维设计渠道方法相比,本文的渠道设计方法能够将渠道设计效率提高20%左右,明显缩短了设计周期,同时也保证了设计质量;
(4)因本程序的开发比较系统与复杂,所以排水沟、垫板的设计以及工程量统计与报表等功能还正在开发中。