国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

CATIA 知識(shí)工程在錨桿支護(hù)和排水帷幕中的應(yīng)用

2020-11-20 08:47補(bǔ)舒棋
陜西水利 2020年8期
關(guān)鍵詞:輪廓線洞室列表

補(bǔ)舒棋,楊 蕾

(陜西省水利電力勘測(cè)設(shè)計(jì)研究院,陜西 西安 710001)

0 前言

CAITA(法國(guó)達(dá)索軟件)在水利水電行業(yè)中的應(yīng)用已經(jīng)越來(lái)越廣泛,其知識(shí)工程模塊的應(yīng)用對(duì)解決工程設(shè)計(jì)智能批量化非常具有優(yōu)勢(shì),該模塊為通過(guò)提供方便易用的知識(shí)工程環(huán)境來(lái)創(chuàng)建、訪問(wèn)以及應(yīng)用企業(yè)知識(shí)庫(kù)[1]。利用軟件的知識(shí)工程陣列功能可以實(shí)現(xiàn)幾何元素的批量實(shí)例化,CATIA 軟件自帶的陣列功能有時(shí)不能滿足復(fù)雜的設(shè)計(jì)要求,因此可利用知識(shí)工程陣列來(lái)達(dá)到目的。本文以某地下廠房洞室群為例,利用知識(shí)工程陣列及UDF(User Defined Feature)知識(shí)工程模板分別完成地下洞室錨桿及排水帷幕的自動(dòng)批量實(shí)例化設(shè)計(jì)布置。

1 知識(shí)工程陣列

通過(guò)CATIA 知識(shí)工程模塊中的product knowledge template 創(chuàng)建知識(shí)工程陣列特征,該特征以腳本語(yǔ)言批處理(非交互)方式在CATIA 零件文檔中進(jìn)行模板實(shí)例化、生成目標(biāo)幾何元素(點(diǎn)、直線、曲線、圓、平面、曲面、體等),其特點(diǎn)能一次性自動(dòng)在CATIA 零件文檔中處理生成重復(fù)性的幾何結(jié)構(gòu),是CATIA 知識(shí)工程高級(jí)應(yīng)用[2]。

1.1 錨桿支護(hù)參數(shù)及其布置

某地下洞室群布置見圖1,從左至右,三大洞室分別為主廠房洞室、主變洞室、尾水閘洞室。經(jīng)過(guò)有限元計(jì)算分析,地下洞室群錨桿布置型式為:主廠房、主變洞頂拱、上下游邊墻按Φ28@L=6 m/9 m 間隔布置,排距為1.5 m×1.5 m,尾水閘室按Φ28@L=6 m/9 m 間隔布置,排距為1.5 m×1.5 m。按照以上參數(shù)在CATIA 中運(yùn)用知識(shí)工程陣列模板布置出三大洞室的錨桿型式及知識(shí)工程應(yīng)用界面。

圖1 地下廠房主要洞室群錨桿布置

1.2 洞室錨桿布置知識(shí)工程代碼

在知識(shí)工程陣列編輯器中來(lái)輸入代碼,并創(chuàng)建若干列表,列表對(duì)應(yīng)相應(yīng)的幾何圖形集,通過(guò)代碼定義列表(利用CATIA知識(shí)工程中的詞典Gernerative functions)來(lái)實(shí)現(xiàn)把創(chuàng)建的元素(利用詞典中的點(diǎn)構(gòu)造函數(shù)、運(yùn)算構(gòu)造函數(shù)、線構(gòu)造函數(shù)、平面構(gòu)造函數(shù)等來(lái)創(chuàng)建幾何元素)依次按循環(huán)放入相應(yīng)的幾何圖形集,相互關(guān)系見圖2,其設(shè)計(jì)難點(diǎn)主要在于如何實(shí)現(xiàn)長(zhǎng)短錨桿交錯(cuò)布置及參數(shù)的循環(huán)算法,設(shè)計(jì)步驟思路如下:

提取洞室外輪廓面→錨桿間距相隔的洞室輪廓線(用等間距的面橫向切割洞室輪廓面得到輪廓線)→將輪廓線由中心面一分為二→左半部分偶數(shù)序號(hào)輪廓線錨桿布置(單輪廓線上的的長(zhǎng)短錨桿交錯(cuò)布置通過(guò)內(nèi)部判斷輪廓線的等間距的點(diǎn)的奇偶來(lái)實(shí)現(xiàn))→左半部分奇數(shù)序號(hào)輪廓線錨桿布置(左半部分所有輪廓線的錨桿交錯(cuò)布置通過(guò)輪廓線的奇偶數(shù)進(jìn)行判斷)。

右半部分輪廓線錨桿布置與左半部分相同,只需在選擇halfc=split(c,`主要輪廓中心面`,true)中修改“true”為“false”得到另一側(cè)輪廓,再執(zhí)行知識(shí)工程陣列得到另一邊的錨桿布置,其最終布置見圖2。

圖2 知識(shí)工程陣列中列表、幾何元素之間的關(guān)系

代碼開始前先進(jìn)行循環(huán)變量定義及幾何元素定義:let i(integer);let k(integer);let p(point);let pl(plane);let c(curve);let top(point);let halfc(curve);let phf(point);let j(integer);let L(line)。其中循環(huán)創(chuàng)建幾何元素是通過(guò)i,j,k 來(lái)進(jìn)行實(shí)現(xiàn):k 為輪廓線總數(shù)目,i 為輪廓線的序號(hào),j 為輪廓線上錨桿布置點(diǎn)的序號(hào)。

需實(shí)現(xiàn):第1 根輪廓線第1 點(diǎn)長(zhǎng)錨桿,第2 點(diǎn)短錨桿,第3點(diǎn)長(zhǎng)錨桿,第4 點(diǎn)短錨桿……

第2 根輪廓線第1 點(diǎn)短錨桿,第2 點(diǎn)長(zhǎng)錨桿,第3 點(diǎn)短錨桿,第4 點(diǎn)長(zhǎng)錨桿……

……

第i 根輪廓線第1 點(diǎn)短錨桿,第2 點(diǎn)長(zhǎng)錨桿,第3 點(diǎn)短錨桿,第4 點(diǎn)長(zhǎng)錨桿……

通過(guò)((j+i)+(i-1)*(k-1)-1)來(lái)實(shí)現(xiàn)循環(huán)輪廓線上每一個(gè)點(diǎn)的錨桿布置并存儲(chǔ)在列表中。

實(shí)現(xiàn)錨桿布置的關(guān)鍵代碼如下所示:

i=1 /*設(shè)定起始循環(huán)數(shù)值*/

k=int(length(`主要輪廓走線`)/`拱頂支護(hù)參數(shù)錨桿間距`)/*

設(shè)定外圍參數(shù)來(lái)控制循環(huán)數(shù)量*/

for i while i<=k

{ /*根據(jù)知識(shí)工程陣列中的Generative functions 創(chuàng)建需要的幾何元素,將定義好的元素給定相應(yīng)的列表存放,并對(duì)應(yīng)PART 中的相應(yīng)的幾何圖形集,那么根據(jù)循環(huán)產(chǎn)生的元素就會(huì)依次生成放在幾何圖形集中。*/

p=CreateOrModifyDatum("point",`ALL point`,`關(guān)系知識(shí)工程陣列.2列表.1`,i)

/*定義外部幾何圖形集元素與列表對(duì)應(yīng),Dictionary 列表提供了可以在關(guān)系式中應(yīng)用的函數(shù)、操作符以及特征屬性等項(xiàng)[1]*/

p=pointoncurve (`主要輪廓走線`,`主要輪廓起點(diǎn)`,`拱頂支護(hù)參數(shù)錨桿間距` *i,true) /*點(diǎn)構(gòu)造函數(shù)*/

pl=CreateOrModifyDatum("plane",`ALL plane`,`關(guān)系 知識(shí)工程陣列.2列表.2`,i)

/*同上,在洞室中心線上建立面集*/

pl=planenormal(`主要輪廓走線`,p) /*平面構(gòu)造函數(shù)*/

c=CreateOrModifyDatum("curve",`ALL opcurve` ,`關(guān)系知識(shí)工程陣列.2列表.3`,i) /*同上建立曲線集*/

c=intersect(`主要輪廓掃掠.1` ,`關(guān)系知識(shí)工程陣列.2列表.2` ->GetItem(i))

/*線框構(gòu)造函數(shù),利用洞室外輪廓面與每一個(gè)中心線上相隔布置間距的法方平面相交得到一個(gè)相交輪廓線*/

c.Color="Green" /*給線條賦色*/

top=CreateOrModifyDatum ("point",`ALL oppoints` ,`關(guān)系知識(shí)工程陣列.2列表.4`,i)

top=intersect (`關(guān)系知識(shí)工程陣列.2列表.3`->GetItem(i),`主要輪廓中心面` )

/*建立相交輪廓線上的起始端點(diǎn),為陣列輪廓上錨桿布置做準(zhǔn)備*/

halfc=CreateOrModifyDatum ("curve",`ALL ophalfcurve`,`關(guān)系知識(shí)工程陣列.2列表.5`,i) /*將相交輪廓線切割成兩半,先得到一半輪廓線*/

halfc=split(c,`主要輪廓中心面`,true)

j=1

if mod(i,2)==0 /*偶數(shù)的半邊輪廓線布置錨桿*/

{

for j while j<=int(length(halfc)/`拱頂支護(hù)參數(shù)錨桿間距`)

{

/*在洞室一半的輪廓線上根據(jù)建好的點(diǎn)來(lái)放錨桿,交錯(cuò)布置*/

phf=CreateOrModifyDatum("point",`ALL halfcurvepoints` ,`關(guān)系知識(shí)工程陣列.2列表.6`,((j+i)+(i-1)*(k-1)-1))

phf=pointoncurve (halfc ,top ,`拱頂支護(hù)參數(shù)錨桿間距` *j ,true)

if mod(j,2)==0

{ L=CreateOrModifyDatum("line",linesonthehalfcurve,`關(guān)系知識(shí)工程陣列.2列表.7`,((j+i)+(i-1)*(k-1)-1))

L=lineangle (halfc,pl,phf,true,0mm,`錨桿1 長(zhǎng)`,90deg,true)

/*陣列錨桿,通過(guò)外部參數(shù)`錨桿1 長(zhǎng)`控制錨桿交錯(cuò)布置長(zhǎng)度*/

L.Color="green"

}

else

{ L=CreateOrModifyDatum("line",linesonthehalfcurve,`關(guān)系知識(shí)工程陣列.2列表.7`,((j+i)+(i-1)*(k-1)-1))

L=lineangle(halfc,pl,phf,true,0mm,`錨桿2 長(zhǎng)`, 90deg,true)

L.Color="blue"

}

}

}

else {……} /*奇數(shù)的半邊輪廓線布置錨桿在此不贅述*/

按以上知識(shí)工程代碼步驟創(chuàng)建錨桿陣列,通過(guò)替換相應(yīng)的洞室輪廓線,可創(chuàng)建其他洞室輪廓線上的錨桿陣列。

2 利用知識(shí)工程陣列布置防滲排水帷幕

排水系統(tǒng)布置見圖3,需要在地下廠房上游及兩側(cè)布置三層排水廊道及排水帷幕,排水帷幕主要為排水廊道頂拱和底板上布置的長(zhǎng)度不等的排水孔,排水孔為Φ76,間距3 m,通過(guò)排水帷幕攔截廠房周圍圍巖的地下水,從而達(dá)到降低廠區(qū)地下水的目的,與洞室輪廓線的錨桿知識(shí)陣列不同的是,在排水帷幕的布置中使用了結(jié)合UDF 知識(shí)工程模板進(jìn)行知識(shí)工程陣列的方式,首先需創(chuàng)建排水孔模板,將其加入自定的目錄庫(kù),定義其相應(yīng)特征及存儲(chǔ)名稱,以方便代碼中直接輸入相應(yīng)的名稱就可以識(shí)別并調(diào)用該UDF 模板,其次調(diào)用UDF 后,再編寫將其進(jìn)行陣列的代碼。

1)創(chuàng)建UDF 模板:建立排水孔“輸入條件”,即給定點(diǎn)、排水孔陣列的方向;其次創(chuàng)建相關(guān)參數(shù);排水孔長(zhǎng)度、孔間距、孔與排水廊道夾角等參數(shù),編輯草圖定義參數(shù)完成排水孔建模,最后插入知識(shí)工程模板中的用戶特征。定義用戶特征時(shí),內(nèi)部部件選擇“輸入條件”以外的所有參數(shù),發(fā)布相關(guān)參數(shù)。

2)調(diào)用UDF 模板及相關(guān)代碼:定義用戶特征中應(yīng)自動(dòng)指定SuperType 及生成Type 類型,在目錄knowledgeTypesCustom 生成PktCylinder.CATGScript 文件,以此完成排水孔知識(shí)工程模板創(chuàng)建,以下為調(diào)用并陣列模板的知識(shí)工程代碼。

let i(integer) /*實(shí)數(shù)*/

let p(point) /*點(diǎn)*/

let udf(LDPS1) /*UDF 模板*/

i=1

for i while i<= int(length(`上層設(shè)計(jì)過(guò)程設(shè)計(jì)曲線`)/`排水孔間距`) /*創(chuàng)建UDF 輸入條件的點(diǎn)集*/

{

p=CreateOrModifyDatum ("point",`points`,`關(guān)系知識(shí)工程陣列.1points` ,i)

p=pointoncurve(`上層設(shè)計(jì)過(guò)程設(shè)計(jì)曲線`,`上層設(shè)計(jì)過(guò)程端點(diǎn)`,i*`排水孔間距` ,true)

udf=CreateOrModifyTemplate ("psk",`sldps`,`關(guān)系知識(shí)工程陣列.1PSK` ,i) /*調(diào)用UDF 模板*/

udf.P =p

udf.L =`上層設(shè)計(jì)過(guò)程設(shè)計(jì)曲線` /* 設(shè)置UDF 模板輸入條件*/

EndModifyTemplate(udf) /*結(jié)束模板實(shí)例化*/

}

按以上知識(shí)工程代碼步驟創(chuàng)建的排水帷幕見圖3。

圖3 排水廊道及錨桿布置

3 結(jié)論

通過(guò)以上知識(shí)工程陣列在洞室錨桿支護(hù)布置及排水帷幕布置中的應(yīng)用,實(shí)現(xiàn)了批量自動(dòng)可視化設(shè)計(jì)工作,利用碰撞檢查提高了洞室布置設(shè)計(jì)的合理性,同時(shí)其成果對(duì)于類似工作的批量化操作可重復(fù)利用,大大提高了工作效率和質(zhì)量,從側(cè)面也反映出CATIA 知識(shí)工程模塊解決類似問(wèn)題的優(yōu)越性,希望以上的設(shè)計(jì)思路及代碼能對(duì)其他工程技術(shù)人員解決類似問(wèn)題時(shí)起到一定的借鑒作用。

猜你喜歡
輪廓線洞室列表
立體圖像任意剖面輪廓線提取方法仿真研究
基于爆破等效荷載的大型地下洞室群合理間距分析
關(guān)于隧洞圍巖破壞特征的連續(xù)-離散耦合分析
學(xué)習(xí)運(yùn)用列表法
擴(kuò)列吧
一種有效的秦俑碎塊匹配算法①
列表畫樹狀圖各有所長(zhǎng)
大規(guī)模壓氣儲(chǔ)能洞室穩(wěn)定性和洞周應(yīng)變分析
水電站地下洞室塊體穩(wěn)定性研究
2011年《小說(shuō)月刊》轉(zhuǎn)載列表
金山区| 于都县| 化隆| 凌云县| 蕲春县| 桃江县| 石林| 南京市| 隆尧县| 玉田县| 象州县| 深水埗区| 湘阴县| 资阳市| 女性| 响水县| 乌拉特中旗| 汕尾市| 稻城县| 天峨县| 泉州市| 报价| 广水市| 沂水县| 逊克县| 华亭县| 定南县| 湟源县| 长春市| 宜宾市| 潞城市| 缙云县| 贵港市| 彝良县| 怀柔区| 卢湾区| 溧阳市| 濉溪县| 手游| 谢通门县| 宣汉县|