有没有FLAC3D 导入ANSYS 的程序
注意是FLAC3D 导入ANSYS,我的是4节点tet单元。谢谢 有的,你搜索一下,以前Haitang(海棠)大侠发过这么一个程序,你搜索一下先。本版还是高人多多的。 哦,谢谢版主啦!我去找找看 我找到一个,但是转化后原来点的参数都被四舍五入了,如3.886363636变成3.8864e+000,不知会不会有影响。点的序号也变了,而且我原来有10个group化出来变成一个 group 了,那位高手指点一下,谢谢。FLAC转ANSYS程序如下;********************** 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 flac导出,小数点没有语法控制。
group出问题,有可能是flac中用英文名字,改用数字名可以。
还不行,就分组导出为apdl文件。注意序号要累加。 能不能具体说下怎样操作,我把flac文件改名为FLAC-ANSYS_MODEL.dat,用flac call“Flac_To_Ansys060530.txt”文件,怎么出现“bad pointer conversion”啊,怎么回事,给解释下吧 eeeeeeeeeeeeeeeeeeeeeeeeeeee
页:
[1]