- 积分
- 3
- 注册时间
- 2007-4-26
- 仿真币
-
- 最后登录
- 1970-1-1
|
最近,要进行一个优化分析,有一个约束条件就是求取总体单元的质量,由于建模过程中使用壳单元(SHELL93),当应用ETABLE时,出现了"Item VOLU has not been stored in the database.The ETAB command is ignored"的错误提示,估计因为是壳单元的缘故,况且本次分析涉及到两种材料,即使把整个体积读取出来,也不能进行质量的计算,本人经过网上搜索,沿习了作者fanta1014的思路及摸索,终于把单元的体积及质量求取了出来。
具体程序如下:
--------------------------------------------
FMASS=0
SMASS=0
FVOLU=0
SVOLU=0
EMASS=0
*GET,NMAX,ELEM,,NUM,MAX
*GET,NMIN,ELEM,,NUM,MIN
*DO,K,NMIN,NMAX,1
*GET,EVOLU,ELEM,K,VOLU !获取第K个单元的体积赋值给EVOLU
*GET,EMAT,ELEM,K,ATTR,MAT 获取第K个单元的材料属性赋值给EMAT
*IF,EMAT,EQ,1,THEN !如果材料属性为1,进行下行运算
FVOLU=EVOLU+FVOLU !将所有材料属性为1的单元体积进行相加
*ELSEIF,EMAT,EQ,2 !如果材料属性为2,进行下行运算
SVOLU=EVOLU+SVOLU !将所有材料属性为2的单元体积进行相加
*ENDIF !如果还有其它材料属性,可以继续应用ELSE语句
*ENDDO
FMASS=FVOLU*7800 !求材料属性为1的质量(本例采用材料的密度为7800)
SMASS=SVOLU*400 !求材料属性为1的质量(本例采用材料的密度为400)
EMASS=FMASS+SMASS !求单元的总质量
此命令流部分来源于网上,本人做了修改和整理
------------------------------------------
当材料属性单一时,可以采用下列命令流:
TVOLU=0
*GET,MaxEleNum,ELEM,,NUM,MAX
*do,i,1,MaxEleNum,1
*get,volu,elem,i,volu
TVOLU=TVOLU+volu
*enddo
TolWEIGHT=TVOLU*7800
此命令流来源于网上 |
评分
-
1
查看全部评分
-
|