加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

flac3d500建立的模型怎样带组(group)输出供flac3d300读入

(2015-04-23 13:24:08)
标签:

flac3d500

flac3d300

建模互导入

分类: flac3d

 

 C++ Code 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
我们都知道,自从flac3d500版本加入了自身建模功能后,可以很方便的通过描图、建块、划分、拉伸等步骤建立起适合flac3d分析的模型,而flac3d300版本软件不能直接读入500版本生成的模型,那么怎样将500建立的模型读入300版本中且保留组(group)的信息呢?
目的:将flac3d500版本建模信息完整的导入flac3d300中
原因:部分同学不会用flac3d500高级命令,但500版本建模易学;flac3d300不能直接读入500版本的建模信息
首先让我们分析一下flac3d300中模型是按怎样的格式读入读出的。
new
gen zon bri size 
3 3 3
group roof range 
2 3 
group floor range 
0 1
expgrid flac3d300modelgroup.flac3d

;观察生成的带组的节点文档内容,可见组成如下:
FLAC3D grid produced by FLAC3D
GRIDPOINTS
1 0.000000000e+000 0.000000000e+000 0.000000000e+000
2 1.000000000e+000 0.000000000e+000 0.000000000e+000
3 0.000000000e+000 1.000000000e+000 0.000000000e+000
......
ZONES
B8 
1 1 2 3 4 5 6 7 8
B8 
2 2 9 5 7 10 8 11 12
B8 
3 9 13 10 11 14 12 15 16
......
GROUPS
ZGROUP roof
 
19 20 21 22 23 24 25 26 27
ZGROUP floor
 
1 2 3 4 5 6 7 8 9
通过上面可以看出有gridpoint、zones和zgroup三部分组成,其中省略号是我添加上代表还有很多信息没贴上。
那flac3d500是怎样的输出格式呢?建立模型:
gen zon bri size 
3 3 3
group roof range 
2 3 
group floor range 
0 1
plot zone
expgrid flac3d300modelgroup.flac3d

观察500版本输出的模型信息如下:

new
FLAC3D grid produced by FLAC3D 
5.00 Release 093
周四 四月 
23 13:51:42 2015
GRIDPOINTS
1   0.00000000000000e+00   0.00000000000000e+00   0.00000000000000e+00
2   1.00000000000000e+00   0.00000000000000e+00   0.00000000000000e+00
3   0.00000000000000e+00   1.00000000000000e+00   0.00000000000000e+00
......
ZONES
B8 
1 1 2 3 4 5 6 7 8
B8 
2 2 9 5 7 10 8 11 12
B8 
3 9 13 10 11 14 12 15 16
......
GROUPS
ZGROUP 
'floor' SLOT 1
 
1 2 3 4 5 6 7 8 9
ZGROUP 
'roof' SLOT 1
 
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
 
25 26 27

那么将flac33d500建立的模型输出为*.flac3d后,把格式改为完全相同即可。
做法就是把相应的题头改为相同即可。把组名的单引号和后面的SLOT 1去掉,比如 
'floor' SLOT 1改为floor即可,余同。
后来自己补充:其实可以把'floor' SLOT 1改为floor-1,这样可以避免丢失组的信息。最后可以给组重命名以满足要求。
如果想自己在flac3d 3.0版本里给已经命名的组重新命名的话请用:group new_name range group old_name
如果发现有None组的情况,请运行:group my_name_none range group  即可,group后面不加老名称即默认把None重命名为my_name_none
;*************************************
需要注意的是,flac3d500可以直接读入flac3d300版本用expgrid 输出的带组的模型信息。

http://s11/mw690/002B1i7lgy6RIExA5Ie3a&690

http://s14/mw690/002B1i7lgy6RIEfPN7v6d&690

http://s6/mw690/002B1i7lgy6RIEfTZhbd5&690

http://s9/mw690/002B1i7lgy6RIEfXDJe28&690



可以用Python快速替换一下省去手动替换(把5.0生成的*.flac3d放入test1.txt中,把test1放入d盘根目录,运行下面代码(下面代码放入*2.txt中,并重命名为*2.py),需要电脑装了Python2.7或Python(x,y)):

 

 C++ Code 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
-*- coding: cp936 -*-
"""
Created on Sun Dec 27 08:00:44 2015
@author: Zhubinglong
"""
import os
os.chdir(
'D:\\'      跳到D盘
if not os.path.exists('test1.txt'): 看一下这个文件是否存在
    exit(-
1 
else                      #不存在就退出
    lines open(
'test1.txt').readlines()  #打开文件,读入每一行
    fp open(
'test2.txt','w' #打开你要写得文件test2.txt
    
for in lines:
    replace是替换,write是写入
        fp.write( s.replace(
"'",'').replace('SLOT 1',''))    
    fp.close()  关闭文件
print 
'end'

 

下面的代码可将代码和要处理数据放在同目录下:

 C++ Code 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
-*- coding: cp936 -*-
"""
Created on Sun Dec 27 08:00:44 2015

@author: Administrator
"""
import os
os.chdir(os.getcwd())       跳到D盘
if not os.path.exists('test1.txt'): 看一下这个文件是否存在
    exit(-
1 
else                      #不存在就退出
    lines open(
'test1.txt').readlines()  #打开文件,读入每一行
    fp open(
'test2.txt','w' #打开你要写得文件test2.txt
    
for in lines:
    replace是替换,write是写入
        fp.write( s.replace(
"'",'').replace('SLOT 1',''))    
    fp.close()  关闭文件
print 
'end'

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有