论坛首页    职业区    学术与写作    工程技术区    软件区    资料区    商务合作区    社区办公室
 您好! 欢迎 登录注册 最新帖子 邀请注册 活动聚焦 统计排行 社区服务 帮助
 
  • 帖子
  • 日志
  • 用户
  • 版块
  • 群组
帖子
  • 8358阅读
  • 36回复

自己用C语言写的FLAC3D建模小软件-根据surfer差分数据-更新windows版 [复制链接]

上一主题 下一主题
离线龙biscuit

发帖
323
土币
2510
威望
55
原创币
0
只看该作者 24楼 发表于: 2016-09-24
回 ythugh 的帖子
ythugh:想问下,我导入到FLAC里面的是曲面的网格,如何进行曲面层分组。
我的X Y坐标不是从0 0 开始,当我涉及到开挖、支护的时候怎么确定位置坐标? (2016-04-28 16:40) 

一组一组的导入啊,然后用group命令给各个组命名就行了啊
邮箱:blzhu@buaa.edu.cn ,欢迎交流!
离线uranusmoon

发帖
14
土币
66
威望
11
原创币
0
只看该作者 25楼 发表于: 2016-09-28
牛。三维地形看着逼真。
离线lhyeven

发帖
70
土币
12
威望
146
原创币
0
只看该作者 26楼 发表于: 2016-10-02
太棒了,谢谢共享。
离线yantucy123

发帖
68
土币
24
威望
-10
原创币
0
只看该作者 27楼 发表于: 2016-10-05
感谢楼主分享
离线lhyeven

发帖
70
土币
12
威望
146
原创币
0
只看该作者 28楼 发表于: 2016-10-07
很有便捷的工具,谢谢分享。

发帖
53
土币
894
威望
0
原创币
0
只看该作者 29楼 发表于: 2016-10-10
不错的东西,很好
离线龙biscuit

发帖
323
土币
2510
威望
55
原创币
0
只看该作者 30楼 发表于: 2018-01-06
回 1115900334 的帖子
1115900334:这个模型5.0能用么? (2016-04-24 17:30) 

5.0和3.0不一样,稍微改动一下就行了,见下面的博文:
http://blog.sina.com.cn/s/blog_8dd135170102wuy5.html
邮箱:blzhu@buaa.edu.cn ,欢迎交流!
离线龙biscuit

发帖
323
土币
2510
威望
55
原创币
0
只看该作者 31楼 发表于: 2018-01-06
回 1115900334 的帖子
1115900334:这个模型5.0能用么? (2016-04-24 17:30) 

2.3.4.4 flac3d5.0版本和3.0版本模型网格信息差异
要把FLAC3D5.0建立的模型带组导入3.0版本使用,首先需要知道两个版本网格信息文档*.flac3d之间格式的差别,将5.0版本的*.flac3d修改成3.0版本的*.flac3d格式即可供3.0版本使用,否则导入的模型将没有分组信息,给后续开挖等步骤带来不便。
分别在5.0和3.0版本FLAC3D中运行如下命令:
Flac3d Code
1
2
3
4
5
6        new
gen zon bri size 3 3 3
group roof range z 2 3
group floor range z 0 1
plot zone
expgrid flac3d300modelgroup.flac3d
与前面flac3d3.0版本建立同样模型并导出网格信息,内容简要如下:
* FLAC3D grid produced by FLAC3D 5.00 Release 093
* 周四 四月 23 13:51:42 2015
* GRIDPOINTS
G 1   0.00000000000000e+00   0.00000000000000e+00   0.00000000000000e+00
G 2   1.00000000000000e+00   0.00000000000000e+00   0.00000000000000e+00
G 3   0.00000000000000e+00   1.00000000000000e+00   0.00000000000000e+00
......
* ZONES
Z B8 1 1 2 3 4 5 6 7 8
Z B8 2 2 9 5 7 10 8 11 12
Z 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

可以看出flac3d3.0版本和5.0版本只有第一行注释行内容以及各组组名后内容不同,其余信息完全一样。需要注意的是,flac3d5.00可以直接读入flac3d3.00版本用expgrid 输出的带组的模型信息,但3.0版本直接读5.0版本expgrid 输出的带组的模型信息会忽略已经分好的组。基于此做法就是把相应的题头改为相同即可。把组名的单引号和后面的SLOT 1去掉,比如 'floor' SLOT 1改为floor即可,余同。FLAC3D5.0版本生成的模型信息文档做此改动完成后即可供3.0版本带组读入。
2.3.4.5 flac3d5.0版本建模供3.0版本使用的Python语言处理
根据以上原理,只需要替换的函数将之替换为符合要求的形式即可,具体代码如下:
Python Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23        # -*- coding: cp936 -*-
"""
Created on Sun Dec 27 08:00:44 2015
@author: binglongzhu
"""
temp=input('flac3d5.0model.flac3d模型信息文档输出后改名为flac3d5.flac3d,然后把这个小软件和flac3d5.flac3d放在同目录文件夹下,双击这个小程序就可以得到结果,最后会在同目录下生成flac3d300.flac3d供flac3d3.0直接使用。下面输入1后回车开始转换:')
import os
os.chdir(os.getcwd())       # 跳到当前目录
if not os.path.exists('flac3d5.flac3d'): # 看一下这个文件是否存在
    print('没有找到flac3d5.flac3d')
    exit(-1)  
else:                       #不存在就退出
    os.rename('flac3d5.flac3d','flac3d5.txt')
    lines = open('flac3d5.txt').readlines()  #打开文件,读入每一行
    fp = open('flac3d3.txt','w')  #打开你要写得文件test2.txt
    for s in lines:
    # replace是替换,write是写入
        fp.write( s.replace("'",'').replace('SLOT 1',''))    
    fp.close()  # 关闭文件
    os.rename('flac3d3.txt','flac3d300.flac3d')
    os.rename('flac3d5.txt','flac3d5.flac3d')    
print '已经在同目录下生成了flac3d5.flac3d供flac3d3.0使用'
但这段代码仅适用于电脑上安装有Python2.7的用户,若没有安装则无法使用。若把这段代码转换为可执行程序就可以使用了,下面介绍这一过程。
写好Python代码调试成功后另存为myscript.py。之后下载py2exe软件软件链接:http://pan.baidu.com/s/1qWTeGwO 密码:kqhx(或在网上下载一个)并安装。
首先在D盘新建一个example的文件,里面存放着mysetup.py和自己的Python代码myscript.py文档。其中mysetup.py的内容为:
Python Code
1
2
3
4
5
        # mysetup.py
from distutils.core import setup
import py2exe

setup(console=["myscript.py"])
myscript.py文档内容即为上述不能直接执行的转换代码。
菜单-运行-输入cmd-进入控制台命令窗口:
依次输入:
d:                        回车(进入d盘)
cd "D:\example"            回车(进入d盘的example文件夹)
mysetup.py py2exe        回车(开始执行转换,最终在dist文件夹内生成myscript.exe)

图2.35 控制台输入命令执行py2exe
Fig.2.35 Input command in console to execute py2exe
执行成功结果:

图2.36 转换成功提示
Fig.2.36 Tips of successful conversion

软件作用:解决flac3d5.0版本模型节点信息供FLAC3D3.0版本建模时无法带组导入的问题。
使用方法:把flac3d500生成的模型节点信息export为flac3d5.flac3d后,将软件和flac3d5.flac3d放在“flac3d模型格式转换软件.exe”同目录下(即“flac3d5.0版本带组export供3.0版本import转换软件”文件夹里),运行“flac3d模型格式转换软件.exe”即可生成flac3d300.flac3d直接供flac3d3.0软件import生成模型。
注意:
1.如果想自己在flac3d 3.0版本里给已经命名的组重新命名的话请用:group new_name range group old_name[81]。
2.如果在flac3d3.0里发现有None组的情况,请运行:group my_name_none range group  即可,group后面不加老名称即默认把None重命名为my_name_none。
3.如果想观察到底哪些部分是None组,在进行第2步之后,可以输入: model null range group my_name_none  然后再输入:  plot  sur yellow null on即可。
4.需要注意的是,flac3d500可以直接读入flac3d300版本用expgrid 输出的带组的模型信息
邮箱:blzhu@buaa.edu.cn ,欢迎交流!
离线龙biscuit

发帖
323
土币
2510
威望
55
原创币
0
只看该作者 32楼 发表于: 2018-01-06
回 1115900334 的帖子
1115900334:[图片]运行就是这个结果了……
 (2016-04-25 10:43) 

更新了一个windows版本的,你试试
邮箱:blzhu@buaa.edu.cn ,欢迎交流!
离线87642189

发帖
5
土币
102
威望
0
原创币
0
只看该作者 33楼 发表于: 2018-04-28
厉害了,赞一个!

发帖
1
土币
31
威望
0
原创币
0
只看该作者 34楼 发表于: 2019-04-21
很实用,非常感谢

发帖
604
土币
40
威望
-7
原创币
0
只看该作者 35楼 发表于: 2020-04-05
快速回复
限100 字节
温馨提示:欢迎交流讨论,请勿纯表情、纯引用!
 
上一个 下一个

      浙公网安备 33010602003799号 浙ICP备14021682号-1

      工业和信息化部备案管理系统网站