滚石 发表于 2007-1-19 11:39:08

再谈FLAC3D建模(复杂边坡)问题!!!

总在论坛里面看帖子,学习到了很多建模的技巧,觉得基本上是通过ansys与surfer导网格到FLAC3D进行建模,这其中就存在一些问题,如果模型比较复杂的话,可能会严重失真,例如边坡(我是岩土工程专业的,比较关注边坡),如果边坡内部存在多条断层,且存在崩积物、坡积物叠加分布的现象,我们假设存在基岩上覆盖10层崩坡积物,那用ansys与surfer导入的网格是否能够真实反映边坡的真实情况呢?(我没有具体用ansys与surfer做过,所以并不知道是否可行!),最近做的一个边坡,强风化基岩上存在15层叠加分布的崩坡积物,且边坡内部存在3条断层,考虑了很久,觉得用ansys与surfer做的话可能不合适(如果有朋友能做的话,请告诉我,先谢谢了!),最后考虑用AutoCAD建模,然后导入FLAC3D的方法,模型建立起来后,觉得效果还不错,下面就说下我的方法,有什么不恰当之处,还请各位批评指正。
1、首先在AutoCAD中建模,因为我觉得我们的剖面图基本上是AutoCAD绘制的,尽量就CAD建模的话可以省下不少事(个人观点),建立3维模型需要尽量多的剖面,因此,在边坡表面地形变化处、坡体内部不同成因岩土体处都需要做剖面;
2、剖面做好后,进行剖面分层,就是在剖面上尽量细致的划分出不同成因性质的岩土体层,例如崩积物、坡积物,之后利用AutoCAD的3dmesh功能进行网格划分;
3、基本上只需要brick与wedge就可以了,自己编写一个VB的程序,可以读出3dmesh网格节点并输出成*.dat文件;
例如:Z方向为单位长度,读取3dmesh(brick)程序
Dim AcadApp As AutoCAD.AcadApplication
Set AcadApp = GetObject(, "AutoCAD.Application")
Dim Mydocument As AcadDocument
Set Mydocument = AcadApp.ActiveDocument
Dim Myentity As AcadPolygonMesh
Dim Mysel As AcadSelectionSet
Dim fil_type(0) As Integer
Dim fil_data(0) As Variant
Dim Mycoordinates As Variant
    fil_type(0) = 0
    fil_data(0) = "PolygonMesh"
Set Mysel = Mydocument.SelectionSets.Add("Mysel")
Dim i, j, k As Integer
Mysel.SelectOnScreen
For Each Myentity In Mysel
    Mycoordinates = Myentity.Coordinates
Next
Open App.Path & "\" & ".dat" For Append As #1
For i = 0 To (j * 6 - 1) Step 6
    Print #1, "gen zone brick size 1,1,1" & " &"
    Print #1, "p0" & "(" & Round(Mycoordinates(i), 4) & "," & Round(Mycoordinates(i + 1), 4) & "," & Round(Mycoordinates(i + 2), 4) & ")&"
    Print #1, "p1" & "(" & Round(Mycoordinates(i + 3), 4) & "," & Round(Mycoordinates(i + 4), 4) & "," & Round(Mycoordinates(i + 5), 4) & ")&"
    Print #1, "p2" & "(" & Round(Mycoordinates(i), 4) & "," & Round(Mycoordinates(i + 1), 4) & "," & Round((Mycoordinates(i + 2) - 1), 4) & ")&"
    Print #1, "p3" & "(" & Round(Mycoordinates(i + 6), 4) & "," & Round(Mycoordinates(i + 7), 4) & "," & Round(Mycoordinates(i + 8), 4) & ")&"
    Print #1, "p4" & "(" & Round(Mycoordinates(i + 3), 4) & "," & Round(Mycoordinates(i + 4), 4) & "," & Round(Mycoordinates(i + 5) - 1, 4) & ")&"
    Print #1, "p5" & "(" & Round(Mycoordinates(i + 6), 4) & "," & Round(Mycoordinates(i + 7), 4) & "," & Round(Mycoordinates(i + 8) - 1, 4) & ")&"
    Print #1, "p6" & "(" & Round(Mycoordinates(i + 9), 4) & "," & Round(Mycoordinates(i + 10), 4) & "," & Round(Mycoordinates(i + 11), 4) & ")&"
    Print #1, "p7" & "(" & Round(Mycoordinates(i + 9), 4) & "," & Round(Mycoordinates(i + 10), 4) & "," & Round(Mycoordinates(i + 11) - 1, 4) & ")"
   Next
Print #1, ";*****************************"
Close #1
4、因为边坡表面地形变化处、坡体内部不同成因岩土体处都已经做好剖面了,你只需要将两个剖面之间网格建立好就达到将两个剖面连接起来的目的了,这里建议采用VB编程的方法,利用插值的方法就可以了,这样能够比较准确的反映边坡真实特征的3维模型就建立好了。
缺点:建立模型费时较长,而且需要做大量的剖面,网格数量大,计算起来可能费时较长;
这是我做复杂边坡的一点体会,希望大家能够积极讨论,得出更好的解决方案。

elite1218 发表于 2007-1-19 12:00:13

同意楼主的观点
我也在整理复杂边坡的建模思路,我们的想法基本一致
到发出来交流

elite1218 发表于 2007-1-19 12:07:03

做剖面和读坐标的步骤建议在cad中二次开发

chunhuo420 发表于 2007-1-19 12:40:07

别人好像用gocad 建立的,挺不错的,但俺还不会,有没有高手做个讲座..才好。.....

lyx2005 发表于 2007-8-17 17:37:53

请问gocad软件哪里可以下载?

chenzhou1883 发表于 2007-8-17 20:31:03

我们这里也是这样做的!感觉有点麻烦!特别是网格的处理~希望有好的方法的出现!

wuzhide 发表于 2008-4-8 18:46:17

好思路啊!能不能做个解释啊!

wuzhide 发表于 2008-4-8 20:28:54

支持解释啊!

haibingcai 发表于 2008-4-8 22:40:50

支持解释a

wsf2008 发表于 2008-5-5 01:21:05

牛人一个!呵呵谢谢了!

llhhcc 发表于 2008-8-27 19:35:23

这个读写坐标的程序怎么在cad运行啊!
这个文件是txt还是 lsp文件啊

fly119 发表于 2008-8-28 14:07:36

我觉得用ansys划分网格很不错啊
对不同的岩层定义不同的材料
断层也可以用实体单元划分,计算的时候把材料参数定义的很低就可以了
不知道你所说的失真是指哪方面?

51746170 发表于 2008-10-17 22:53:13

不错,是个不错的思路,用SURFER和ANSYS确实存在太多的问题,我解决不了,但是用楼主的办法的话,要求剖面多,但是实际中,勘察报告也就几个剖面,无法满足建模的需要啊:L

disciple_ 发表于 2009-12-8 23:49:11

学习了@@!@@!@

kjj0501 发表于 2009-12-27 22:16:57

建模真是件费时费力的事

fangweino1 发表于 2010-1-18 20:50:30

13楼兄弟言之有理,楼主方法似乎理论性强于实践操作性。但这种钻研精神还是得赞一个~!

air_sea611 发表于 2012-12-19 09:37:46

好思路啊!能不能做个解释啊

air_sea611 发表于 2012-12-19 09:40:28

建模真是件费时费力的事

我想说给你听 发表于 2013-1-18 12:46:44

一起加油,一起感动

lw123 发表于 2015-3-21 00:45:59

可以可以可以可以可以可以可以
页: [1]
查看完整版本: 再谈FLAC3D建模(复杂边坡)问题!!!