ANSYS APDL 学习:时间相关的应力线性化的数据提取

1.GUi操作

1.1打开后处理post1,找到路径选项

 

1.2定义路径,

节点1660,节点3373,确定这些节点有数据,不然报错,可以先在模型图上点选。

1.3命名后,打印出数据

可以看出,载荷步为100,第6子步是,时间为100,内外节点为1660,3373

得出薄膜应力,弯曲应力还有峰值应力等。

由于我只需要薄膜应力和弯曲应力的MISES值,只需对该数据进行提取。

如果数据需求少,可以直接复制打印文本,如果需要提取部分时间或者所有时间的数据,找出最大值的话,则只能用命令流的方式。

2.命令流

1.提取时间变量

2.通过set命令,对每个时间变量下的路径参数进行提取

3.汇总到一个文件里面

4.通过python提取需要的数据到EXCEL

2.1命令流内容如下,

*create,path2
resume
*del,all
/POST1
!结果文件保存地址,定义为变量方便python修改
pr = 'C:\Users\20720\Desktop\test\p1'
!提取弹性应变的节点number
!取最后一步的最大值节点,为定义路径做准备
set,last
NSORT,eppl,int,0,1,ALL
*GET,MAX_eppl,SORT,0,IMAX
*GET,MAXeppl,NODE,MAX_eppl,eppl,int
NSEL,s,NODE,,MAX_eppl
ESLN
ELEM=ELNEXT(0)
allsel
Finish
!获取时间变量
/post26
NUMVAR,200          !指定变量数目
SOLU,191,NCMIT      !定义变量
STORE,MERGE         !合并时间点数据
*GET,setnum,VARI,1, nsets
*dim,sj,array,setnum
vget,sj(1),1
finish
!每次循环输出一次数据,对应一个时间点
*do,i,1,setnum
/POST1
set,,,,,sj(setnum-i+1)                  !定义不同时间步
!定义路径
!a=1660            !58Mpa
!定义路径
a =1652            !25Mpa
path,path2,2,30,20
!path,STRCAT('Path',CHRVAL(i)),2,30,20
allsel
ppath,1,a
ppath,2,MAX_eppl
allsel
!presect为打印功能,打印到txt文本中
!append不能忘记,避免文件覆盖,详情可以看帮助文档/output
/output,pr,txt,,append
prsect,,0,0
/output,term
!删除定义的路径,避免循环里的名字冲突,也可以为变量名设置循环,!path,STRCAT('Path',CHRVAL(i)),2,30,20
PADELE,all     
*enddo
finish
*del,all     !清空变量
resume
*end
/input,path2

2.2得到结果文件

2.3用python处理结果文件提取需要的数据

这里代码的话,可以自己研究,只是提取文本

2.4可以用批处理的方法直接运行宏文件

2.4.1选择ANSYS Batch

2.4.2输入工作目录,

job文件,和宏文件,输出文件不用考虑,因为宏文件里面指定了输出

2.4.3点击tools-display command line,获取代码格式

2.4.4复制最后一行到python

2.4.5代码以及运行

def batch1():
    """
    调用宏文件和结果文件,对结果文件的数据进行处理
    -找出文件目录
    -修改文件目录格式,适合批处理格式。
    """

    work_dir = r"D:\apdl\aaaces"  # 文件工作目录
    ansys_filename = r"D:\Program Files\ANSYS Inc\v202\ansys\bin\winx64\MAPDL.exe"  # ansys.exe工作目录
    # 调整文本格式
    ansys_filename = ansys_filename.split('\\')
    ansys_filename[1], ansys_filename[2] = f'"{ansys_filename[1]}"', f'"{ansys_filename[2]}"'
    ansys_filename = '\\'.join(ansys_filename)
    # 切换到工作目录
    os.chdir(work_dir)
    # job文件
    project_name = '17F'
    # 宏文件
    mac_filename = r"D:\apdl\aaaces\path2"
    # 结果文件
    out_filename = r'D:\apdl\aaaces\pathresults'
    # 批处理运行格式
    line = f'"{ansys_filename}' + "  -p ane3fl -smp -np 8 -lch -dir " + f'"{work_dir}"' \
           + " -j " + f'"{project_name}"' + " -s read -m 2048 -db 1024 -l en-us -b -i " + \
           f'"{mac_filename}"' + " -o " + f'"{out_filename}""'
    os.system(line)  # 运行


batch1()

2.4.5运行结果相似,后面可以直接从结果文件提取数据

比如这样,

这是处理完的结果

  • 44
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值