首页/文章/ 详情

PFC后处理之批量化出图导出数据

6月前浏览10352

PFC可以凭借自身代码在运算过程中就导出数据与图片,但是有些图片是需要等待运算完成以后调成统一参数才能出图,如果有多个结果文件需要导出图片,每一个单独导出太过繁琐,因此我们可以借助Python可以实现PFC批量化导出图片与数据。下面是具体过程:

1、

设置好PFC中Plot中显示的内容与Plot的名称,如过需要导出多个信息的图片可以多建一些Plot。但是需要注意自己的模型复杂成都,例如我这个5w个rblock的模型,多个Plot会导致PFC闪退。

5AF5028D0E061768A776AFEFB7EF084B.png

2、开始写代码

    Python代码,以我的模型为例,我总共生成了16个过程文件,是按照每1%应变保存一次,因此我的主要变量就是应变在改变

import itasca as it #导入itasca,不导入Python无法识别相关命令
for n in range(0,16): #循环,我的结果从0,开始到15,因此要从0循环16次,
jipei_name = '40-1-S-800-'  #设置我的级配名字
yingbian_name='result_'+str(n)+'.sav' #设置文件名,我的文件名是result_0.sav的格式,这里的变量就是‘0’。
wenjian_name = "'{}'".format(yingbian_name)  #PFC6.0以后的文件名必须用''标记,因此要在上一步的文件名基础上加上''
commandRestoreStr="model restore "+wenjian_name  #设置PFC的命令
it.command(commandRestoreStr)  #将命令传递给PFC
it.fish.set('jipei_name',jipei_name) #为PFC中的fish变量传递参数,‘’中的是fish中的变量,后面的是Python中的变量
it.fish.set('yingbian',n) 
it.command("program call 'jihuojiechu.dat'") #调用PFC的文件并运行


3、PFC中dat文件

plot 'jiechu' export bitmap filename [string.build("%1jichu-%2.png",jipei_name,yingbian)] size 2560 1440
;这里是导出Plot为图片文件名采用占位符的形式,可以文件名统一命名为xxx-x的形式
def export_his
               if yingbian=15 then
                     command
                                       history export 'stressXX1'       file  [string.build("%1stressXX1.csv",jipei_name)]
     endcommand
   endif
end
@export_his
这里是导出history的内容,通常history只需要导出最后一个结果文件就是全过程的监测,因此加入了一个if进行判断,这样就可以只导出最后一个应变结果文件的history

结语

Python中的代码只需要根据自己的需求改成自己的内容,只要的文件输出还在PFC 中使用fish编写,Python的作用是可以一次连续restore保存的文件。下面是我批量导出的结果

9C695F3A5826BCBCF58530E86F9E4349.png




后处理分析二次开发代码&命令岩土离散元PFC
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-05-13
最近编辑:6月前
孙可乐
签名征集中
获赞 6粉丝 10文章 2课程 0
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈