严 沾 谋
(中国电建集团贵阳勘测设计研究院有限公司 贵州 贵阳 550081)
随着BIM技术的发展,促进了BIM技术在水利水电工程的广泛应用[1-4]。而钢闸门作为水利水电工程重要的组成部分,BIM设计[5-6]和分析[7-9]技术也得到了深入应用。同时由于行业的特殊性和设计软件的局限性,衍生了水利水电工程BIM技术的开发[10-11]。鉴于平面钢闸门的传统设计具有低效率、规范性和标准性不可控等缺点,平面钢闸门计算、三维设计和出图等软件应运而生[11-16]。为了避免从最底层开始开发,降低软件开发难度,提高开发效率,本文充分利用现有三维设计软件的强大参数化设计建模功能,集成C#、CATIA、CAA等工具和技术手段,按照平面钢闸门BIM设计方法体系进行系统顶层设计。基于BIM技术对平面钢闸门三维设计计算和出图一体化软件进行开发,实现了计算、三维建模和工程出图一体化,大大提高了设计效率。
平面钢闸门三维设计计算和出图一体化软件的开发涉及闸门计算、BIM模型构建和工程出图。鉴于C#语言的应用普及性,以及CATIA软件的强大参数化功能、在机械行业的通用性和二次开发要求,选择的软件开发环境主要包括:
• Windows 7 64位操作系统;
• .Net Frameworks 4.0;
• C#、C++混合编程环境;
• SQL Server 2008 R2数据库;
• CATIA V5R21三维设计软件;
• CAA——CATIA二次开发环境。
平面钢闸门三维设计计算和出图一体化软件采用基于BIM技术的先进顶层设计,系统功能架构如图1所示。
图1 系统功能架构图
开发内容包括设计计算模块、三维参数化设计模板、BIM模型构建模块、工程出图模板、企业标准图框和标题栏插件、行业化材料表统计插件,输出成果包括算稿、BIM模型和工程图纸。主要思路为:
(1) 应用C#语言进行平面钢闸门设计计算模块开发,输出平面钢闸门设计参数,并存储入数据库;
(2) 应用CATIA软件完成平面钢闸门三维参数化设计模板的开发;
(3) 建立数据库内平面钢闸门参数与平面钢闸门三维参数化设计模板参数的关联关系;
(4) 应用C#语言进行平面钢闸门BIM模型构建模块开发,关联数据库内平面钢闸门的参数,构建平面钢闸门BIM模型;
(5) 应用平面钢闸门BIM模型进行平面钢闸门工程出图模板的开发;
(6) 在CAA开发环境下应用C++语言完成企业标准图框和标题栏插件、平面钢闸门行业化材料表统计插件的开发;
(7) 应用企业标准图框和标题栏插件、平面钢闸门行业化材料表统计插件和平面钢闸门工程出图模板完成平面钢闸门的工程出图。
为了规范平面钢闸门的设计计算,提高设计效率和标准化程度,将平面钢闸门按型式(表孔、潜孔)、支承方式(滑块、定轮)和操作条件(静水启闭、动水启闭、动下静启)进行归类。根据《水利水电工程钢闸门设计规范》,应用C#语言进行平面钢闸门设计计算模块开发,内容包括总水压力和面板厚度计算、主梁计算、次梁计算、启闭力计算、吊耳计算、埋件计算、定轮计算等。模块输出内容包括闸门算稿和设计参数,其中设计参数存储入SQL Server数据库。
为了提高BIM模型的构建效率,应用CATIA三维设计软件对闸门底层零件和标准件进行参数化建模。根据各种类型闸门特征将参数化零部件进行组装,关联零部件参数和装配件参数,形成一系列闸门总装模板。在模板中大量应用知识工程功能,如图2所示,可提高模板智能化水平。同时应用装配特征可自动完成大批量螺栓的装配,如图3所示,大大提高了模板制作效率和智能化水平。
图2 知识工程应用示意图
图3 装配特征应用示意图
为了规范BIM模型的构建,应用C#语言进行平面钢闸门BIM模型构建模块开发,建立数据库内闸门参数与参数化设计模板参数的关联关系,完成平面钢闸门BIM模型的构建,如图4所示。
图4 平面钢闸门BIM模型
平面钢闸门的材料明细表具有行业化特征,材料表的关键字为“序号”、“图号/规格”、“名称”、“材料”、“数量”、“单重”、“总重”和“备注”,其中板材的规格样式为“-厚度×宽度×长度”。但CATIA图框和材料表统计工具不能满足平面钢闸门出图的行业化需求,需在CAA开发环境下应用C++语言完成企业标准图框和标题栏插件、平面钢闸门行业化材料表统计插件的开发。开发完成的插件界面如图5所示。
图5 图框和材料表插件界面
图框和标题栏插件开发的主要内容是绘制线条和生成文本,其中绘制线条采用命令“CreateLine”,生成文本采用命令“CreateDftText”。部分代码如下:
startPoint[0]=X[0];
startPoint[1]=Z[0];
endPoint[0]=X[0];
endPoint[1]=Z[12];
spGeomFactory->
CreateLine(startPoint,endPoint);
材料表统计插件开发中的重点和难点是获取BIM模型的属性值和参数值,属性值的获取使用命令“GetProperty”,部分代码如下:
CATListOfCATUnicodeString oPropertyList;
if (SUCCEEDED(hxPDMItem->
GetPropertyNames(oPropertyList)))
{
CATUnicodeString propertyvalue1;
CATUnicodeString propertyvalue3;
CATUnicodeString propertyvalue8;
hxPDMItem->GetProperty
(oPropertyList[1],propertyvalue1);
hxPDMItem->GetProperty
(oPropertyList[3],propertyvalue3);
hxPDMItem->GetProperty
(oPropertyList[8],propertyvalue8);
zpartnumber=propertyvalue1;
zdescription=propertyvalue3;
zmass=propertyvalue8;
}
参数值的获取使用命令“Value”,部分代码如下:
for(j=l;j<=size;j++)
{
CATICkeParm_var parm=list[j];
CATUnicodeString hd="厚度";
CATUnicodeString pname=parm->
Name().CastToCharPtr();
double pvalueT=parm->Value()->AsReal();
double pvalue=pvalueT*1000;
hdvalue="temp";
hdvalue.BuildFromNum(pvalue,"%g");
if(hd==pname)
{
k=2;
break;
}
}
应用平面钢闸门BIM模型在CATIA平台进行工程出图模板的定制化开发,图纸包括总图和零部件图,内容包括尺寸、公差、焊缝等标注。生成工程图后,应用企业标准图框和标题栏插件生成图框,应用材料表统计插件生成材料明细表,完成工程出图,如图6所示。
图6 平面钢闸门工程出图
平面钢闸门三维设计计算和出图一体化软件基于BIM技术进行开发,集成了设计计算、BIM模型构建和工程出图,实现了计算、建模和出图一体化。软件可自动输出计算算稿、BIM模型和工程图纸,在企业内得到了金属结构专业的广泛应用,大大降低了BIM应用的难度,提高了平面钢闸门设计、计算、出图效率和标准化程度。与传统开发模式比较,本软件的开发避免了从最底层开始开发,降低了软件开发难度,提高了软件开发效率。本软件按照平面钢闸门BIM设计方法进行系统顶层设计,具有较强的可扩展性,可根据需要增加闸门模板。本文的开发思路也可应用于弧形闸门、拦污栅和启闭设备等金属结构的三维设计计算和出图一体化软件的开发。