多心圓隧道用FLAC3D直接建模的方法_第1頁
多心圓隧道用FLAC3D直接建模的方法_第2頁
多心圓隧道用FLAC3D直接建模的方法_第3頁
多心圓隧道用FLAC3D直接建模的方法_第4頁
多心圓隧道用FLAC3D直接建模的方法_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、多心圓隧道直接用FLAC3D建模丁其樂 2013/6/18多心圓隧道模型使用 FLAC3D建模的難點在于FLAC3D中并沒有以不規(guī)則曲線為邊界的原 始3D基本網格,隧道的斷面圖見圖一O4隧道內輪廓線是由多個圓弧做成的,所以內部區(qū)域模型只能通過3D基本網格拼接而成,這時我想到了使用cylinder (圓柱體形網格)拼接,但是這個圓弧的圓心并不是一個點,怎么 辦?這時我想到了通過 fish來調整圓心位置,使得各圓弧的圓心都調整到O1位置,同時又要保證各圓弧的圓弧線不變,且內部網格點的相對位置不變。下面我以一個簡單的例子來說明我調整的過程:圖二在圖二中圓弧 O1AB的圓心為O1,圓心坐標為(X1,Z

2、1 ),現在通過坐標調整把圓弧 O1AB 所占區(qū)域調整到 O2AB (如上圖所示),O2的坐標為(X2 , Z2),同時O1A上面一點M1 , 調整之后在 O2A上為M2。 A和M1的坐標分別為 A(Ax,Az)和M1(M1x,M1z)。|O1M1|O1A|(i)|M1A|O1A|= 1-k(2)M2的坐標為M2x,M2y則:M 2x M1x = k (O2xO1x)(3)M2z-M1z = k(O2z-O1z)(4)由(3)、(4)就以求出來 M2的坐標。下面用一個簡單的例子說明實現代碼。newtitle調整圓弧區(qū)域到指定位置;定義參數def para;O1的平面坐標O1x=-2.9O1z=

3、0;O2的平面坐標O2x=0O2z=0r1=5.9; O1的半徑a1=0*degrad ;A點與X軸的夾角a2=30*degrad ;B點與X軸的夾角;A B點的坐標Ax=r1*cos(a1)+O1xAz=r1*sin(a1)+O1zBx=r1*cos(a2)+O1xBz=r1*sin(a2)+O1zendpara;生產模型調整'原始'為了gen zo cyl p0 (O1x,0,O1z) p1 (Ax,0,Az) p2(O1x,1,O1z) p3(Bx,0,Bz) size 4 1 6 group gen zo cyl p0 (O1x,2,O1z) p1 (Ax,2,Az)

4、p2(O1x,3,O1z) p3(Bx,2,Bz) size 4 1 6 group 對比而建;調整節(jié)點位置def dingpg=gp_headloop while gp_group(pg,1)='調整'xx=gp_xpos(pg)zz=gp_zpos(pg)k=sqrt(xx-O1x)A2+(zz-O1z)A2)/r1 k1=1-kgp_xpos(pg)=k1*(O2x-O1x)+xx gp_zpos(pg)=k1*(O2z-O1z)+zz pg=gp_next(pg)end_loopenddingpl bl gr結果圖三圖三從圖中可以看出來兩個區(qū)域的圓弧線完全一樣,但是圓心

5、和對應的節(jié)點已經調整到了我們想要的位置。克服了這個難關,再建立多心圓隧道的模型就簡單多了。下面給出圖一模型的代碼:newtitle隧道建模;定義參數def set_para;O1的平面坐標O1x=0O1z=0;O2的平面坐標O2x=2.9O2z=0;O3的平面坐標 O3x=-1.70 O3z=-1.40;O4的平面坐標O4x=0 O4z=3.66 r1=3.0;O1的半徑r2=5.9;O2的半徑r3=1.09;O3 的半徑r4=6.44;O4 的半徑a1=90*degrad a2=180*degrad a3=197*degrad a4=251*degrad a5=270*degrad d=0.

6、5;襯砌的厚度end set_para ;各關鍵點的坐標 def keypoint;襯砌內層關鍵點 x1=r1*cos(a1)+O1x z1=r1*sin(a1)+O1z x2=r2*cos(a2)+O2x z2=r2*sin(a2)+O2z x3=r3*cos(a3)+O3x z3=r3*sin(a3)+O3z x4=r4*cos(a4)+O4x z4=r4*sin(a4)+O4z x5=r4*cos(a5)+O4x z5=r4*sin(a5)+O4z ;襯砌外層關鍵點 x6=(r1+d)*cos(a1)+O1x z6=(r1+d)*sin(a1)+O1z x7=(r2+d)*cos(a2)

7、+O2x z7=(r2+d)*sin(a2)+O2z x8=(r3+d)*cos(a3)+O3x z8=(r3+d)*sin(a3)+O3z x9=(r4+d)*cos(a4)+O4x z9=(r4+d)*sin(a4)+O4z x10=(r4+d)*cos(a5)+O4xz10=(r4+d)*sin(a5)+O4z;圍巖外層關鍵點x11=0z11=6x12=-6z12=6x13=-6z13=0x14=-6z14=-2.4x15=-6z15=-4.8x16=-6z16=-6x17=-4.8z17=-6x18=-2.4z18=-6x19=0z19=-6endkeypoint;調整節(jié)點位置def

8、set_position pg=gp_head loop while pg#nullinnerID=int(gp_group(pg,1) caseof innerID case 1Bef_centreX=O1xBef_centreZ=O1zEnd_centreX=O1xEen_centreZ=O1z R=r1 case 2Bef_centreX=O2xBef_centreZ=O2zEnd_centreX=O1xEen_centreZ=O1z R=r2 case 3Bef_centreX=O3xBef_centreZ=O3z;調整前的圓心坐標;調整后的圓心坐標;調整前的圓心坐標;調整后的圓心坐標

9、;調整前的圓心坐標;調整后的圓心坐標End_centreX=O1xEen_centreZ=O1zR=r3case 4Bef_centreX=O4x;調整前的圓心坐標Bef_centreZ=O4zEnd_centreX=O1x;調整后的圓心坐標Een_centreZ=O1z R=r4 endcase xx=gp_xpos(pg) zz=gp_zpos(pg) dist=sqrt(xx-Bef_centreX)A2+(zz-Bef_centreZ)A2) k=dist/R k1=1-kgp_xpos(pg)=(End_centreX-Bef_centreX)*k1+xx gp_zpos(pg)=(

10、End_centreZ-Bef_centreZ)*k1+zz pg=gp_next(pg) end_loopend;生成模型;生成內部洞室區(qū)域gen zo cyl p0(O1x,0,O1z)p1(x1,0,z1)p2(O1x,1,O1z) p3(x2,0,z2) size6 110 group 1;01扇形gen zo cyl p0(O2x,0,O2z)p1(x2,0,z2)p2(O2x,1,O2z) p3(x3,0,z3) size6 14group 2;O2扇形gen zo cyl p0(O3x,0,O3z)p1(x3,0,z3)p2(O3x,1,O3z) p3(x4,0,z4) size

11、6 12group 3;O3扇形gen zo cyl p0(O4x,0,O4z)p1(x4,0,z4)p2(O4x,1,O4z) p3(x5,0,z5) size6 14group 4;O4扇形set_position;調整節(jié)點位置group inner;重命名;生成襯砌gen zo cshell p0 (O1x,0,O1z) p1 (x6,0,z6) p2(O1x,1,O1z) p3(x7,0,z7) p8 (x1,0,z1) p9(x2,0,z2) & p10 (x1,1,z1) p11(x2,1,z2) size 1 1 10 6 group linner ;01 圓環(huán)gen z

12、o cshell p0 (O2x,0,O2z) p1 (x7,0,z7) p2(O2x,1,O2z) p3(x8,0,z8) p8 (x2,0,z2) p9(x3,0,z3) & p10 (x2,1,z2) p11(x3,1,z3) size 1 1 4 6 group linner ;02 圓環(huán)gen zo cshell p0 (O3x,0,O3z) p1 (x8,0,z8) p2(O3x,1,O3z) p3(x9,0,z9) p8 (x3,0,z3) p9(x4,0,z4) & p10 (x3,1,z3) p11(x4,1,z4) size 1 1 2 6 group li

13、nner ;03 圓環(huán)gen zo cshell p0 (O4x,0,O4z) p1 (x9,0,z9) p2(O4x,1,O4z) p3(x10,0,z10) p8 (x4,0,z4) p9(x5,0,z5)& p10 (x4,1,z4) p11(x5,1,z5) size 1 1 4 6 group linner ;04 圓環(huán);生成圍巖gen zo radcyl p0 (O1x,0,O1z) p1 (x11,0,z11) p2(O1x,1,O1z) p3(x13,0,z13)p6(x12,0,z12) p7 (x12,1,z12) p8 (x6,0,z6) &p9 (x7,

14、0,z7) p10(x6,1,z6) p11(x7,1,z7) size 7 1 10 3 group rock ;01 圍巖gen zo radcyl p0 (O2x,0,O2z) p1 (x13,0,z13) p2(O2x,1,O2z) p3(x15,0,z15)p6(x14,0,z14) p7 (x14,1,z14) p8 (x7,0,z7) &p9 (x8,0,z8) p10(x7,1,z7) p11(x8,1,z8) size 7 1 4 3 group rock ;02 圍巖gen zo radcyl p0 (O3x,0,O3z) p1 (x15,0,z15) p2(O3x

15、,1,O3z) p3(x17,0,z17)p6(x16,0,z16) p7(x16,1,z16) p8 (x8,0,z8) &p9 (x9,0,z9) p10(x8,1,z8) p11(x9,1,z9) size 7 1 2 3 group rock ;03 圍巖gen zo radcyl p0 (O4x,0,O4z) p1 (x17,0,z17) p2(O4x,1,O4z) p3(x19,0,z19)p6(x18,0,z18) p7 (x18,1,z18) p8 (x9,0,z9) &p9 (x10,0,z10) p10(x9,1,z9) p11(x10,1,z10) siz

16、e 7 1 4 3 group rock ;04 圍巖gen merge 0.01;合并同一位置節(jié)點gen zo ref norm 1 0 0;映射pl bl gr模型結果如圖四所示:圖四從圖四中可以看出隧道的內輪廓線和設計的一致,符合實際情況。然而有很多人直接用cylinder模塊建模,他們往往是直接指定幾個關鍵點,把每個圓弧區(qū)域的圓心都指定在O1處,我以在仿真論壇里看到很多網友這樣的實例。下面我以他們的思路來建立O2區(qū)域的模型。他們也許是這樣:Gen zo cyl p0 0 0 0 p1 -3 0 0 p2 0 1 0 p3 -2.742 0 -1.725 group their'再給出原始的扇形區(qū)域作為參考Gen zo cyl p0 2.9 3 0 p1 -3 3 0 p2 2.9 4 0 p3 -2.742 3 -1.725 group primitive '對比圖如圖五圖五從圖五中能夠看出用這種方法建立的模型輪廓線已經與原來的圓弧形不一致,這種方法建立的模型只能算作一種與設計圖的近似,究竟這種近似與真實的情況相差多少還沒人研究,所以我

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論