如下图所示,三根杆件组成的结构。在ANSYS中提取该结构的刚度矩阵,验证和公式解完全一致,然后输出到.csv格式的文件。
本文提供的脚本也可以用于更复杂的结构,可以成功提取更复杂结构的刚度矩阵。
获取.full文件
在ANSYS Workbench求解完成后。右击求解,打开文件目录,找到file.full文件。
打开MAPDL
拖拉一个MADPL模块,右击打开MAPDL:
打开对应文件夹:
获取刚度矩阵
读取脚本Get_MatrixV1.inp:
查看刚度矩阵:
输出刚度矩阵
读取脚本Write_MatrixV1.inp:
查看刚度矩阵:
脚本内容
Get_MatrixV1.inp
/aux2
file,,full
hbmat,hbfile,txt,,ascii,stiff,yes
finish
!获取hb格式的矩阵
!从hbfile.txt读入数据,并还原为满矩阵存储
*dim,contline,,5
*vread,contline(1),hbfile,txt,,,5,,,1
(5f14.0)
totcrd=contline(1)
ptrcrd=contline(2)
indcrd=contline(3)
valcrd=contline(4)
rhscrd=contline(5)
*vread,contline(1),hbfile,txt,,,4,,,2
(a3,11x,4f14.0)
nrow=contline(2)
ncol=contline(3)
strline=
contline=
*if,rhscrd,eq,0,then
ls0=4
*else
ls0=5
*endif
*dim,pointr,,ptrcrd
*dim,rowind,,indcrd
*dim,values,,valcrd
*dim,rhsval,,rhscrd
*vread,pointr(1),hbfile,txt,,,ptrcrd,,,ls0
(f14.0)
*vread,rowind(1),hbfile,txt,,,indcrd,,,ls0+ptrcrd
(f14.0)
*vread,values(1),hbfile,txt,,,valcrd,,,ls0+ptrcrd+indcrd
(d25.15)
*vread,rhsval(1),hbfile,txt,,,rhscrd,,,ls0+ptrcrd+indcrd+valcrd
(d25.15)
*dim,smatr,,nrow,ncol
*do,icol,1,ncol
stacol=pointr(icol)
endcol=pointr(icol+1)
*do,irow,stacol,endcol-1
truerow=rowind(irow)
smatr(truerow,icol)=values(irow)
*enddo
*enddo
*do,irow,1,nrow
*do,icol,1,ncol
smatr(irow,icol)=smatr(icol,irow)
*enddo
*enddo
pointr=$rowind=$values=$rhsval=$icol=$irow=$ls0=$stacol=
endcol=$truerow=$totcrd=$ptrcrd=$indcrd=$valcrd=$rhscrd=
!脚本完结
Write_MatrixV1.inp: