嚴(yán) 沾 謀
(中國電建集團(tuán)貴陽勘測(cè)設(shè)計(jì)研究院有限公司 貴州 貴陽 550081)
隨著BIM技術(shù)的發(fā)展,促進(jìn)了BIM技術(shù)在水利水電工程的廣泛應(yīng)用[1-4]。而鋼閘門作為水利水電工程重要的組成部分,BIM設(shè)計(jì)[5-6]和分析[7-9]技術(shù)也得到了深入應(yīng)用。同時(shí)由于行業(yè)的特殊性和設(shè)計(jì)軟件的局限性,衍生了水利水電工程BIM技術(shù)的開發(fā)[10-11]。鑒于平面鋼閘門的傳統(tǒng)設(shè)計(jì)具有低效率、規(guī)范性和標(biāo)準(zhǔn)性不可控等缺點(diǎn),平面鋼閘門計(jì)算、三維設(shè)計(jì)和出圖等軟件應(yīng)運(yùn)而生[11-16]。為了避免從最底層開始開發(fā),降低軟件開發(fā)難度,提高開發(fā)效率,本文充分利用現(xiàn)有三維設(shè)計(jì)軟件的強(qiáng)大參數(shù)化設(shè)計(jì)建模功能,集成C#、CATIA、CAA等工具和技術(shù)手段,按照平面鋼閘門BIM設(shè)計(jì)方法體系進(jìn)行系統(tǒng)頂層設(shè)計(jì)?;贐IM技術(shù)對(duì)平面鋼閘門三維設(shè)計(jì)計(jì)算和出圖一體化軟件進(jìn)行開發(fā),實(shí)現(xiàn)了計(jì)算、三維建模和工程出圖一體化,大大提高了設(shè)計(jì)效率。
平面鋼閘門三維設(shè)計(jì)計(jì)算和出圖一體化軟件的開發(fā)涉及閘門計(jì)算、BIM模型構(gòu)建和工程出圖。鑒于C#語言的應(yīng)用普及性,以及CATIA軟件的強(qiáng)大參數(shù)化功能、在機(jī)械行業(yè)的通用性和二次開發(fā)要求,選擇的軟件開發(fā)環(huán)境主要包括:
? Windows 7 64位操作系統(tǒng);
? .Net Frameworks 4.0;
? C#、C++混合編程環(huán)境;
? SQL Server 2008 R2數(shù)據(jù)庫;
? CATIA V5R21三維設(shè)計(jì)軟件;
? CAA——CATIA二次開發(fā)環(huán)境。
平面鋼閘門三維設(shè)計(jì)計(jì)算和出圖一體化軟件采用基于BIM技術(shù)的先進(jìn)頂層設(shè)計(jì),系統(tǒng)功能架構(gòu)如圖1所示。
圖1 系統(tǒng)功能架構(gòu)圖
開發(fā)內(nèi)容包括設(shè)計(jì)計(jì)算模塊、三維參數(shù)化設(shè)計(jì)模板、BIM模型構(gòu)建模塊、工程出圖模板、企業(yè)標(biāo)準(zhǔn)圖框和標(biāo)題欄插件、行業(yè)化材料表統(tǒng)計(jì)插件,輸出成果包括算稿、BIM模型和工程圖紙。主要思路為:
(1) 應(yīng)用C#語言進(jìn)行平面鋼閘門設(shè)計(jì)計(jì)算模塊開發(fā),輸出平面鋼閘門設(shè)計(jì)參數(shù),并存儲(chǔ)入數(shù)據(jù)庫;
(2) 應(yīng)用CATIA軟件完成平面鋼閘門三維參數(shù)化設(shè)計(jì)模板的開發(fā);
(3) 建立數(shù)據(jù)庫內(nèi)平面鋼閘門參數(shù)與平面鋼閘門三維參數(shù)化設(shè)計(jì)模板參數(shù)的關(guān)聯(lián)關(guān)系;
(4) 應(yīng)用C#語言進(jìn)行平面鋼閘門BIM模型構(gòu)建模塊開發(fā),關(guān)聯(lián)數(shù)據(jù)庫內(nèi)平面鋼閘門的參數(shù),構(gòu)建平面鋼閘門BIM模型;
(5) 應(yīng)用平面鋼閘門BIM模型進(jìn)行平面鋼閘門工程出圖模板的開發(fā);
(6) 在CAA開發(fā)環(huán)境下應(yīng)用C++語言完成企業(yè)標(biāo)準(zhǔn)圖框和標(biāo)題欄插件、平面鋼閘門行業(yè)化材料表統(tǒng)計(jì)插件的開發(fā);
(7) 應(yīng)用企業(yè)標(biāo)準(zhǔn)圖框和標(biāo)題欄插件、平面鋼閘門行業(yè)化材料表統(tǒng)計(jì)插件和平面鋼閘門工程出圖模板完成平面鋼閘門的工程出圖。
為了規(guī)范平面鋼閘門的設(shè)計(jì)計(jì)算,提高設(shè)計(jì)效率和標(biāo)準(zhǔn)化程度,將平面鋼閘門按型式(表孔、潛孔)、支承方式(滑塊、定輪)和操作條件(靜水啟閉、動(dòng)水啟閉、動(dòng)下靜啟)進(jìn)行歸類。根據(jù)《水利水電工程鋼閘門設(shè)計(jì)規(guī)范》,應(yīng)用C#語言進(jìn)行平面鋼閘門設(shè)計(jì)計(jì)算模塊開發(fā),內(nèi)容包括總水壓力和面板厚度計(jì)算、主梁計(jì)算、次梁計(jì)算、啟閉力計(jì)算、吊耳計(jì)算、埋件計(jì)算、定輪計(jì)算等。模塊輸出內(nèi)容包括閘門算稿和設(shè)計(jì)參數(shù),其中設(shè)計(jì)參數(shù)存儲(chǔ)入SQL Server數(shù)據(jù)庫。
為了提高BIM模型的構(gòu)建效率,應(yīng)用CATIA三維設(shè)計(jì)軟件對(duì)閘門底層零件和標(biāo)準(zhǔn)件進(jìn)行參數(shù)化建模。根據(jù)各種類型閘門特征將參數(shù)化零部件進(jìn)行組裝,關(guān)聯(lián)零部件參數(shù)和裝配件參數(shù),形成一系列閘門總裝模板。在模板中大量應(yīng)用知識(shí)工程功能,如圖2所示,可提高模板智能化水平。同時(shí)應(yīng)用裝配特征可自動(dòng)完成大批量螺栓的裝配,如圖3所示,大大提高了模板制作效率和智能化水平。
圖2 知識(shí)工程應(yīng)用示意圖
圖3 裝配特征應(yīng)用示意圖
為了規(guī)范BIM模型的構(gòu)建,應(yīng)用C#語言進(jìn)行平面鋼閘門BIM模型構(gòu)建模塊開發(fā),建立數(shù)據(jù)庫內(nèi)閘門參數(shù)與參數(shù)化設(shè)計(jì)模板參數(shù)的關(guān)聯(lián)關(guān)系,完成平面鋼閘門BIM模型的構(gòu)建,如圖4所示。
圖4 平面鋼閘門BIM模型
平面鋼閘門的材料明細(xì)表具有行業(yè)化特征,材料表的關(guān)鍵字為“序號(hào)”、“圖號(hào)/規(guī)格”、“名稱”、“材料”、“數(shù)量”、“單重”、“總重”和“備注”,其中板材的規(guī)格樣式為“-厚度×寬度×長(zhǎng)度”。但CATIA圖框和材料表統(tǒng)計(jì)工具不能滿足平面鋼閘門出圖的行業(yè)化需求,需在CAA開發(fā)環(huán)境下應(yīng)用C++語言完成企業(yè)標(biāo)準(zhǔn)圖框和標(biāo)題欄插件、平面鋼閘門行業(yè)化材料表統(tǒng)計(jì)插件的開發(fā)。開發(fā)完成的插件界面如圖5所示。
圖5 圖框和材料表插件界面
圖框和標(biāo)題欄插件開發(fā)的主要內(nèi)容是繪制線條和生成文本,其中繪制線條采用命令“CreateLine”,生成文本采用命令“CreateDftText”。部分代碼如下:
startPoint[0]=X[0];
startPoint[1]=Z[0];
endPoint[0]=X[0];
endPoint[1]=Z[12];
spGeomFactory->
CreateLine(startPoint,endPoint);
材料表統(tǒng)計(jì)插件開發(fā)中的重點(diǎn)和難點(diǎn)是獲取BIM模型的屬性值和參數(shù)值,屬性值的獲取使用命令“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;
}
參數(shù)值的獲取使用命令“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;
}
}
應(yīng)用平面鋼閘門BIM模型在CATIA平臺(tái)進(jìn)行工程出圖模板的定制化開發(fā),圖紙包括總圖和零部件圖,內(nèi)容包括尺寸、公差、焊縫等標(biāo)注。生成工程圖后,應(yīng)用企業(yè)標(biāo)準(zhǔn)圖框和標(biāo)題欄插件生成圖框,應(yīng)用材料表統(tǒng)計(jì)插件生成材料明細(xì)表,完成工程出圖,如圖6所示。
圖6 平面鋼閘門工程出圖
平面鋼閘門三維設(shè)計(jì)計(jì)算和出圖一體化軟件基于BIM技術(shù)進(jìn)行開發(fā),集成了設(shè)計(jì)計(jì)算、BIM模型構(gòu)建和工程出圖,實(shí)現(xiàn)了計(jì)算、建模和出圖一體化。軟件可自動(dòng)輸出計(jì)算算稿、BIM模型和工程圖紙,在企業(yè)內(nèi)得到了金屬結(jié)構(gòu)專業(yè)的廣泛應(yīng)用,大大降低了BIM應(yīng)用的難度,提高了平面鋼閘門設(shè)計(jì)、計(jì)算、出圖效率和標(biāo)準(zhǔn)化程度。與傳統(tǒng)開發(fā)模式比較,本軟件的開發(fā)避免了從最底層開始開發(fā),降低了軟件開發(fā)難度,提高了軟件開發(fā)效率。本軟件按照平面鋼閘門BIM設(shè)計(jì)方法進(jìn)行系統(tǒng)頂層設(shè)計(jì),具有較強(qiáng)的可擴(kuò)展性,可根據(jù)需要增加閘門模板。本文的開發(fā)思路也可應(yīng)用于弧形閘門、攔污柵和啟閉設(shè)備等金屬結(jié)構(gòu)的三維設(shè)計(jì)計(jì)算和出圖一體化軟件的開發(fā)。