ansys查轴力弯矩新版

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

查轴力:首先定义单元表grneral postproc>element table >define table add 左侧选by sequence num,右侧选择smisc, 在下面输入smisc,1 然后在plot results>contour plot》line elem res 查看

弯矩

1.绘制弯矩图

建立弯矩单元表。例如梁单元

i节点单元表名称为imom,j节点单元表名称为jmom,

ETABLE,NI,SMISC,1 !单元I点轴力

ETABLE,NJ,SMISC,7 !单元J点轴力

ETABLE,QI,SMISC,2 !单元I点剪力

ETABLE,QJ,SMISC,8 !单元J点剪力

ETABLE,MI,SMISC,6 !单元I点弯矩

ETABLE,MJ,SMISC,12 !单元J点弯矩

plls,MI,MJ

2.标注弯矩图

PLOTCTRLS>>NUMBERING>>SVAL ON即可在画出弯矩图的同时在图上标出弯矩值的大小

3.调整弯矩图

如果弯矩图方向错误,则绘制弯矩图命令为

plls,imom,jmom,-1

同一个节点处两边的单元内力有细微差别,

导致内力数字标注出现重影。观察上面整体轴力图也可以发现,

一段一段的,好像马赛克,其实上面整体弯矩图也是,不过不是

很明显罢了。这是EULER-BEONOULI梁理论以及ANSYS输出定义造成

的(详细原因就不展开了,看看梁理论的书和ANSYS的说明吧)。

为了修正重影和节点两边内力值不一样的问题,遍制了宏文件ITFAVG.MAC

命令文件内容如下:

!---------------------------------------------------------------------

!宏:ITFAVG.MAC(INTERNAL FORCE AVERAGE MACRO)

!获取线性单元内力,并对单元边界处的内力进行平衡

!输入信息

!内力类型:MFORX,MFORY,MFORZ,MMOMX,MMOMY,MMOMZ

*ASK,ITFTYPE,'PLEASE INPUT THE TYPE OF INTERNAL FORCE','MMOMY'

!需处理的单元包

*ASK,EASSEMBLY,'PLEASE INPUT THE COMPONENT NAME OF ELEMENTS TO BE PROCESSED!',

'EOUTER'

!需处理的节点包

*ASK,NASSEMBLY,'PLEASE INPUT THE COMPONENT NAME OF NODE TO BE PROCESSED!','NOU TER'

!无需处理的节点包

*ASK,UNASSEMBLY,'PLEASE INPUT THE COMPONENT NAME OF THE UNCHANGED NODE!(NONE I F THERE'S NO SUCH COMPONENT)','NONE'

/POST1

!输入信息:内力类型,欲处理单元的集合,欲处理节点的集合

!ITFTYPE='MMOMY'

!EASSEMBLY='EOUTER'

!NASSEMBLY='NOUTER'

!按内力类型确定ANSYS输出信息SMISC的编号

*IF,ITFTYPE,EQ,'MFORX',THEN

ITFINUM=1

ITFJNUM=7

*ELSEIF,ITFTYPE,EQ,'MFORY',THEN

ITFINUM=2

ITFJNUM=8

*ELSEIF,ITFTYPE,EQ,'MFORZ',THEN

ITFINUM=3

ITFJNUM=9

*ELSEIF,ITFTYPE,EQ,'MMOMX',THEN

ITFINUM=4

ITFJNUM=10

*ELSEIF,ITFTYPE,EQ,'MMOMY',THEN

ITFINUM=5

ITFJNUM=11

*ELSEIF,ITFTYPE,EQ,'MMOMZ',THEN

ITFINUM=6

ITFJNUM=12

*ELSE

*ENDIF

!对不需平均的节点进行处理

*IF,UNASSEMBLY,NE,'NONE',THEN

!选出不进行处理的节点包并获取不进行处理节点的数目

CMSEL,S,UNASSEMBLY

*GET,UNNODNUM,NODE,0,COUNT

!定义长度为UNNODNUM的数组(UNNOD),以存放选中单元的单元编号

*DIM,UNNOD,ARRAY,UNNODNUM

!将选中单元的编号按顺序存入数组UNNOD

*DO,I,0,UNNODNUM-1,1

UNNOD(I+1)=NDNEXT(I)

*ENDDO

UNNODNUM=0

*ENDIF

!选出所需的单元和节点包

CMSEL,S,EASSEMBLY

CMSEL,S,NASSEMBLY

!获得当前选中单元总数(存入变量SELELENUM)

*GET,SELELENUM,ELEM,0,COUNT

!定义长度为SELELENUM的数组(ELENUM),以存放选中单元的单元编号

*DIM,ELENUM,ARRAY,SELELENUM

!将选中单元的编号按顺序存入数组ELENUM

*DO,I,0,SELELENUM-1,1

ELENUM(I+1)=ELNEXT(I)

*ENDDO

!获得当前选中节点总数(存入变量SELNODNUM)

*GET,SELNODNUM,NODE,0,COUNT

!定义长度为SELNODNUM的数组(NODNUM),以存放选中单元的单元编号*DIM,NODNUM,ARRAY,SELNODNUM

!将选中单元的编号按顺序存入数组NODNUM

*DO,I,0,SELNODNUM-1,1

NODNUM(I+1)=NDNEXT(I)

*ENDDO

!定义所需的线性单元内力ETABLE,节点I的内力存入数组ITNFI,

!节点J的内力存入数组ITNFJ

ETABLE,ITNFI,SMISC,ITFINUM

ETABLE,ITNFJ,SMISC,ITFJNUM

!定义所需的结果数组,并将其置零

ETABLE,ITNFINEO,SMISC,5

SADD,ITNFINEO,ITNFI,,1

ETABLE,ITNFJNEO,SMISC,11

SADD,ITNFJNEO,ITNFJ,,1

*DO,K,1,SELNODNUM,1

!处理不需平均的节点

INDEX=0

*IF,UNNODNUM,GE,1,THEN

*DO,J,1,UNNODNUM

*IF,NODNUM(K),EQ,UNNOD(J),THEN

INDEX=1

*ELSE

*ENDIF

*ENDDO

*ELSE

相关文档
最新文档