会员登陆 | 会员注册 | 帮助中心 | 忘记密码? | 会员中心
搜索类型: 下载    文章    图片    影视    商城    商城   
       
ANSYS模型转到MSC.MARC
2008-01-29 07:10:43  作者:  来源:互联网  浏览次数:220  文字大小:【】【】【

!ANSYS命令流
! 写单元及节点数据文件
! 作者:陆新征,清华大学土木系
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!选中所有单元
ALLSEL,ALL
! 得到当前模型中的总节点数
*GET,NNode,NODE,,COUNT, , , ,
!输出节点
*CFOPEN,Node,txt
*VWRITE
('coordinates')
*VWRITE,chrval(3),chrval(NNode),chrval(0),chrval(1)
(4A5)
*DO,I,1,NNode
*VWRITE,I,NX(I),NY(I),NZ(I)
(F8.0,3F13.5)
*ENDDO
*CFCLOS

!打开单元文件
*CFOPEN,ELEM,txt
!得到所有单元数
ESEL,S,ENAME,,65
ALLSEL,ALL
*GET,NElem,ELEM,,COUNT, , , ,
*VWRITE,chrval(NElem)
('Number of Element: ', A8)
!对单元集进行循环
*DO,I,1,NElem
!得到当前单元的类型
*GET,ENAME,ELEM,I,ATTR,ENAM
!如果是65号(65号单元)
*IF,ENAME,EQ,65,THEN
!得到该单元的节点编号
*GET,EN1,ELEM,I,NODE,1
*GET,EN2,ELEM,I,NODE,2
*GET,EN3,ELEM,I,NODE,3
*GET,EN4,ELEM,I,NODE,4
*GET,EN5,ELEM,I,NODE,5
*GET,EN6,ELEM,I,NODE,6
*GET,EN7,ELEM,I,NODE,7
*GET,EN8,ELEM,I,NODE,8
*VWRITE,I,EN1,EN2,EN3,EN4,EN5,EN6,EN7,EN8
(F8.0,8F8.0)
*END IF
*ENDDO
*CFCLOS

!Fortran程序,把ansys结果转换为MARC模型文件格式
program main
implicit none;
integer Key;
write(*,*) "Input 1 for node, 2 for element"
read(*,*) Key
if (Key==1) then
call Node_IO()
end if
if (Key==2) then
call Elem_IO()
end if
stop
end program

subroutine Node_IO()
implicit none
integer NNode,I, J
real*8,pointer :: Node(:,:)
real*8 x;
character :: filename*10;
write(*,*) "Please input node filename"
read(*,'(A10)') filename
open(66,file=filename)
read(66,*) NNode
allocate (Node(NNode,3))
do I=1,NNode
read(66,*) x, (Node(I,J), J=1,3)
end do
close (66)
filename=filename//"NEW"
open (66,file=filename)
write(66,'(4I10)') 3, NNode, 0, 1
do I=1, NNode
write(66,'(I10, 3E20.8)') I, (Node(I,J), J=1,3)
end do
close (66)
return
end subroutine Node_IO

subroutine Elem_IO()
implicit none
integer NElem,NumNode,ElemTyp,I, J
integer,pointer :: Elem(:,:)
real*8 x;
real*8,pointer :: y(:)
character :: filename*10, outformat*11,CharEtype;
write(*,*) "Please input node filename"
read(*,'(A10)') filename
write(*,*) "Please input Element type & Number of Nodes per element"
read(*,*) ElemTyp, NumNode
open(66,file=filename)
read(66,*) NElem
allocate (Elem(NElem, NumNode))
allocate (y(NumNode))
do I=1, NElem
read(66,*) x, (y(j),j=1,NumNode)
do J=1, NumNode
Elem(I,J)=int(y(j))
end do
end do
close (66)
filename=filename//"NEW"
write(CharEtype,'(I1)') NumNode
write(outformat,'(A6,A,A4)') "(2I10,", CharEtype, "I10)"
open (66,file=filename)
write(66,'(3I10)') 0, 0, 1
do I=1, NElem
write(66,outformat) I, ElemTyp, (Elem(I,J), J=1,ElemTyp)
end do
close (66)
return
end subroutine Elem_IO


· Ansys学习笔记: 绘制椭圆
· ANSYS在外加纵向磁场移动GTAW焊接...
· ANSYS解读复杂CAE模型-FE MODELER
· ug 和 ansys 无缝转换解决方案
· 有限元分析的发展趋势
· ANSYS多物理场高频模块Emag HF典型...
· ANSYS多物理场高频模块Emag HF产品...
· 电磁分析体系产品概览
· AutoReaGas典型应用
· AutoReaGas产品综述
· Ansys学习笔记: 绘制椭圆
· ANSYS在外加纵向磁场移动GTAW焊接...
· ANSYS解读复杂CAE模型-FE MODELER
· ug 和 ansys 无缝转换解决方案
· 有限元分析的发展趋势
· ANSYS多物理场高频模块Emag HF典型...
· ANSYS多物理场高频模块Emag HF产品...
· 电磁分析体系产品概览
· AutoReaGas典型应用
· AutoReaGas产品综述
关于我们 | 联系我们 | 开发团队 | 免责申明 | 下载帮助
CAX频道 旗舰CAD/CAM/CAE/CAX下载专业网站   FMcaX.CoM 版权所有 ©2007-2009
     粤ICP备07502650号