怎样输出制定节点的应力值
我计算一个模型有几万个节点,我怎么才能把指定的节点应力输出。
指定节点的应力?到底是节点的力嘛,还是单元的应力哦?两个办法:
1. 先plot block model id on,然后找到你想看的那个单元的id,假设是10,然后就plot con szz out on range id 10;
2. 用fish,通过gp_head,gp_near,gp_id等等获得你要的节点,然后可以得到gridpoint的各种信息。
通过flac的fish语言,写节点信息和相关的力到文件
既然,ansys的格式文件能够导入到flac文件,那么用fish肯定能够导出相关的数据,然后再看处理结果。
如题,我建议,
通过flac的fish语言,写节点信息和相关的力,请帮主支持。
如果能够把相关的信息导入到文件,那么就很容易的对数据进行处理。
我先贴一个:
用fish写文件的,当然也是从这个网络上找到的,我解释一下,也不算直接抄袭。
;; Initialization
;初始化
def ini_mesh2tec
IO_READ = 0
;定义读文件关闭吧?!!
IO_WRITE = 1
;定义写文件
IO_FISH = 0
;定义一个???
IO_ASCII = 1
;定义用asci码i
array buf(1)
;定义一个数组,
tec_file = 'tec10.dat'
;打开文件的名字
zone_ngp = z_numgp(zone_head)
;zone 的标志数
end
ini_mesh2tec
;; Write Tecplot File Head
def write_mesh_head
buf(1) = 'TITLE = "Flac3d Mesh to Tecplot Version 10" \n'
buf(1) = buf(1) + 'VARIABLES = "X" "Y" "Z" "XDISP" "YDISP" "ZDISP"\n' buf(1) = buf(1) + 'ZONE T="Tecplot v10" \n'
buf(1) = buf(1) + ' N=' + string(ngp) + ','
buf(1) = buf(1) + ' E=' + string(nzone) + ','
if zone_ngp = 4 then
buf(1) = buf(1) + ' ZONETYPE=FETETRAHEDRON \n'
else
buf(1) = buf(1) + ' ZONETYPE=FEBrick \n'
endif
buf(1) = buf(1) + ' DATAPACKING=POINT \n'
buf(1) = buf(1) + ' DT=(SINGLE SINGLE SINGLE SINGLE SINGLE SINGLE)' status = write(buf,1)
end
;; Write Grid Point Coordinates and Displacements
;写节点信息
def write_gp
p_gp = gp_head
loop while p_gp # null
;这个循环,叫做遍历所有节点
buf(1) = string(gp_xpos(p_gp))
buf(1) = buf(1) + ' ' + string(gp_ypos(p_gp))
buf(1) = buf(1) + ' ' + string(gp_zpos(p_gp))
buf(1) = buf(1) + ' ' + string(gp_xdisp(p_gp))
buf(1) = buf(1) + ' ' + string(gp_ydisp(p_gp))
buf(1) = buf(1) + ' ' + string(gp_zdisp(p_gp))
;这就是传说中的写
status = write(buf,1)
p_gp = gp_next(p_gp)
endloop
end
;; Write Zone Connectivity
;写单元信息
def write_zone
p_z = zone_head
;获得单元的最高号码
loop while p_z # null
;循环,或者叫做遍历
buf(1) = ''
if zone_ngp = 4 then
buf(1) = buf(1) + string(gp_id(z_gp(p_z, 1))) + ' '
buf(1) = buf(1) + string(gp_id(z_gp(p_z, 2))) + ' '
buf(1) = buf(1) + string(gp_id(z_gp(p_z, 3))) + ' '
buf(1) = buf(1) + string(gp_id(z_gp(p_z, 4))) + ' '
else
buf(1) = buf(1) + string(gp_id(z_gp(p_z, 1))) + ' '
buf(1) = buf(1) + string(gp_id(z_gp(p_z, 2))) + ' '
buf(1) = buf(1) + string(gp_id(z_gp(p_z, 5))) + ' '
buf(1) = buf(1) + string(gp_id(z_gp(p_z, 3))) + ' '
buf(1) = buf(1) + string(gp_id(z_gp(p_z, 4))) + ' '
buf(1) = buf(1) + string(gp_id(z_gp(p_z, 7))) + ' '
buf(1) = buf(1) + string(gp_id(z_gp(p_z, 8))) + ' '
buf(1) = buf(1) + string(gp_id(z_gp(p_z, 6))) + ' '
endif
status = write(buf,1)
p_z = z_next(p_z)
endloop
end
;; Main Function
def mesh2tec
status = close
status = open(tec_file,IO_WRITE,IO_ASCII)
if status = 0 then
write_mesh_head
write_gp
write_zone
status = close
;关闭文件
ii = out('Successfully Write Data Into File ' + tec_file)
;显示信息
else
ii=out('Open File Error! Status = ' + string(status))
endif
end
mesh2tec
;调用
把所有的记录文件写到文件中,名字不一样,
那出来给大家共享,如果谁知道谁自动获得最大的记录的编号,
那么这个程序就真正完美了,不过,可以凑合一下哦!!!
文件名是循环生成的哦,最大数是300,请使用的时候,修改这个值 loop iixx_ (1,300)
上面的300,是根据自己的项目变化的哦!!!
def write_log
loop iixx_ (1,300)
logfile11= 'log' + string ( iixx_ ) + '.his'
command
his write iixx_ file logfile11
end_command
end_loop
end
write_log
自动生成的,乖乖,好多哦!!!!
一个一个的看吧!!!
一下是异想天开几点:
1.一个文件写n行,现在是一个文件写2行
2.直接导入到excel,然后就作图
3.想办法和上面的那个loop结合起来,导入到能够画等值线的程序中,如ansys,显示结果!!!
set log on
pr hist
set log off
然后算一下有多少行
就知道有多少纪录了
如何寻求cable中的应力值
试试plot add sel cable grout
可以通过直径显示应力大小,加颜色可以表示出应力方向
补充一下plot add sel cable grout stress
首先谢谢ying111
您所说的是,从图像上确定cable的受力性状;如何确定cable中沿轴线方向任何一点的具体应力值,能否说的更清楚一些!请赐教。
可以试试:
hist sel cable id=n grout stress x,y,z
请问大虾们,print gp disp出来的数据如何保存吗??
使用命令中的文件菜单显示记录功能。logfile
设置log打开
刚才试了一下好象不行:仅给出这样一个文件:
;****************************************
;Log File Started 13:17:48 Thu Apr 15 2004
;Using FLAC3D version 2.10-239
;By: Itasca Consulting Group, Inc.
; Minneapolis, MN USA
;Job:
Flac3D>
;Log File Ended 13:18:47 Thu Apr 15 2004
;****************************************
不知道问题出在什么地方。
最好的办法是:hist write 1(或你前面记录的任何因素,作为纵坐标;最多可以写12个因素)vs (或你前面记录的任何因素,作为横坐标)(skip 步数)file 你定义的文件名。这样可以任意输出你需要点的或区域的位移历史或应力历史的数据,保存在记事本文件中很方便应用的。比print 好多了!
log file配合list命令
FLAC的缺省计算模式就是平面应变问题.如要进行平面应力分析,设定命令: config P_stress
understand it?