- 积分
- 11
- 注册时间
- 2004-7-7
- 仿真币
-
- 最后登录
- 1970-1-1
|
在学习了版主dynamax 的《用tecplot对flac3d计算结果进行后处理》后,借鉴了用一个字符串进行文件输入输出的思想,编制了以下的命令流,由于flac3d中不好剖分网格,所以将FLAC3D模型导入ANSYS中进行加密处理,再利用我前面编得从ansys转到flac3d的程序,输入到flac3d中进行计算,会是一个比较好的办法,可以供大家学习。
;********************** get nodetotal & zone total *********************
;; Initialization
def initialization
IO_READ = 0
IO_WRITE = 1
IO_FISH = 0
IO_ASCII = 1
SuferFile='FLAC-ANSYS_MODEL.dat'
array message(1)
end
initialization
def writehead
pnt1=zone_head
pnt2=gp_head
Z_total=0
P_total=0
loop while pnt1 # null
Z_total=Z_total+1
pnt1=z_next(pnt1)
endloop
loop while pnt2 # null
P_total=P_total+1
pnt2=gp_next(pnt2)
endloop
message(1)='!------------------------------------------------------------------ \n'
message(1)='!This is a free soft for converting the model from Flac3d to Ansys! \n'
message(1)='! Code by haitang 2006-05-30 \n'
message(1)='!------------------------------------------------------------------ \n'
message(1)='!The Number of Nodes and Elements \n'
message(1)=message(1)+'!'+string(P_total)+' , '+string(Z_total)+'\n'
message(1)=message(1)+'/prep7 \n'
message(1)=message(1)+'ET,1,SOLID45'
status = write(message,1)
end
define GetElements
Z1_p=zone_head
loop n (1,Z_total)
Z1_code=z_code(Z1_p)
Z1_No=z_id(Z1_p)
Z1_Group=z_group(Z1_p)
if Z1_code=0 then
message(1)='MAT, '+string(Z1_Group)+'\n'
message(1)=message(1)+'E, '+string(gp_id(z_gp(Z1_p,1)))
message(1)=message(1)+','+ string(gp_id(z_gp(Z1_p,2)))
message(1)=message(1)+','+ string(gp_id(z_gp(Z1_p,5)))
message(1)=message(1)+','+ string(gp_id(z_gp(Z1_p,3)))
message(1)=message(1)+','+ string(gp_id(z_gp(Z1_p,4)))
message(1)=message(1)+','+ string(gp_id(z_gp(Z1_p,7)))
message(1)=message(1)+','+ string(gp_id(z_gp(Z1_p,8)))
message(1)=message(1)+','+ string(gp_id(z_gp(Z1_p,6)))
status = write(message,1)
Z1_p=z_next(Z1_p)
endif
if Z1_code=1 then
message(1)='MAT, '+string(Z1_Group)+'\n'
message(1)=message(1)+'E, '+string(gp_id(z_gp(Z1_p,1)))
message(1)=message(1)+','+string(gp_id(z_gp(Z1_p,2)))
message(1)=message(1)+','+string(gp_id(z_gp(Z1_p,4)))
message(1)=message(1)+','+string(gp_id(z_gp(Z1_p,4)))
message(1)=message(1)+','+string(gp_id(z_gp(Z1_p,3)))
message(1)=message(1)+','+string(gp_id(z_gp(Z1_p,5)))
message(1)=message(1)+','+string(gp_id(z_gp(Z1_p,6)))
message(1)=message(1)+','+string(gp_id(z_gp(Z1_p,6)))
status = write(message,1)
Z1_p=z_next(Z1_p)
endif
if Z1_code=4 then
message(1)='MAT, '+string(Z1_Group)+'\n'
message(1)=message(1)+'E, '+string(gp_id(z_gp(Z1_p,1)))
message(1)=message(1)+','+string(gp_id(z_gp(Z1_p,2)))
message(1)=message(1)+','+string(gp_id(z_gp(Z1_p,3)))
message(1)=message(1)+','+string(gp_id(z_gp(Z1_p,3)))
message(1)=message(1)+','+string(gp_id(z_gp(Z1_p,4)))
message(1)=message(1)+','+string(gp_id(z_gp(Z1_p,4)))
message(1)=message(1)+','+string(gp_id(z_gp(Z1_p,4)))
message(1)=message(1)+','+string(gp_id(z_gp(Z1_p,4)))
status = write(message,1)
Z1_p=z_next(Z1_p)
endif
if Z1_code=2 then
message(1)='MAT, '+string(Z1_Group)+'\n'
message(1)=message(1)+'E, '+string(gp_id(z_gp(Z1_p,1)))
message(1)=message(1)+','+string(gp_id(z_gp(Z1_p,2)))
message(1)=message(1)+','+string(gp_id(z_gp(Z1_p,5)))
message(1)=message(1)+','+string(gp_id(z_gp(Z1_p,3)))
message(1)=message(1)+','+string(gp_id(z_gp(Z1_p,4)))
message(1)=message(1)+','+string(gp_id(z_gp(Z1_p,4)))
message(1)=message(1)+','+string(gp_id(z_gp(Z1_p,4)))
message(1)=message(1)+','+string(gp_id(z_gp(Z1_p,4)))
status = write(message,1)
Z1_p=z_next(Z1_p)
endif
endloop
END
DEFINE GetNodes
message(1)=''
P1_p=gp_head
loop n (1,P_total)
node_id=gp_id(p1_p)
message(1)='N, '+string(node_id)
message(1)=message(1)+','+string(gp_xpos(p1_p))
message(1)=message(1)+','+string(gp_ypos(p1_p))
message(1)=message(1)+','+string(gp_zpos(p1_p))
status = write(message,1)
P1_p=gp_next(P1_p)
endloop
END
; Main Function
def haitang
status = close
status = open(SuferFile,IO_WRITE,IO_ASCII)
if status = 0 then
writehead
message(1)='The Node coordination of "X" "Y" "Z" \n'
GetNodes
message(1)='!The Nodes id nums of Elements. \n'
GetElements
message(1)='/PNUM,MAT,1 \n'
message(1)=message(1)+ '/REPLOT '
status = write(message,1)
status = close
ii = out('Successfully Write Data Into File ' + SuferFile)
else
ii=out('Open File Error! Status = ' + string(status))
endif
end
haitang |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
×
评分
-
1
查看全部评分
-
|