cy198243 发表于 2007-1-3 12:54:39

有没有FLAC3D 导入ANSYS 的程序

注意是FLAC3D 导入ANSYS,我的是4节点tet单元。谢谢

benjackxu 发表于 2007-1-3 13:59:04

有的,你搜索一下,以前Haitang(海棠)大侠发过这么一个程序,你搜索一下先。本版还是高人多多的。

cy198243 发表于 2007-1-3 14:21:49

哦,谢谢版主啦!我去找找看

cy198243 发表于 2007-1-3 15:34:25

我找到一个,但是转化后原来点的参数都被四舍五入了,如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

haitang 发表于 2007-1-4 11:01:15

flac导出,小数点没有语法控制。
group出问题,有可能是flac中用英文名字,改用数字名可以。
还不行,就分组导出为apdl文件。注意序号要累加。

sunxinpo 发表于 2011-5-17 12:28:41

能不能具体说下怎样操作,我把flac文件改名为FLAC-ANSYS_MODEL.dat,用flac   call“Flac_To_Ansys060530.txt”文件,怎么出现“bad pointer conversion”啊,怎么回事,给解释下吧

ruanqingsong 发表于 2011-5-24 23:07:10

eeeeeeeeeeeeeeeeeeeeeeeeeeee
页: [1]
查看完整版本: 有没有FLAC3D 导入ANSYS 的程序