找回密码
 注册
Simdroid-非首页
查看: 514|回复: 12

[后处理] 求取ANSYS单元的体积及质量(包含壳单元)

[复制链接]
发表于 2009-3-5 11:19:55 | 显示全部楼层 |阅读模式 来自 上海
最近,要进行一个优化分析,有一个约束条件就是求取总体单元的质量,由于建模过程中使用壳单元(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

查看全部评分

 楼主| 发表于 2009-3-6 11:57:18 | 显示全部楼层 来自 上海
Simdroid开发平台
自己顶起来,哈哈,否则就沉了。
回复 不支持

使用道具 举报

发表于 2009-3-6 14:08:57 | 显示全部楼层 来自 天津
有奉献精神!谢谢!
回复 不支持

使用道具 举报

发表于 2009-3-6 15:55:10 | 显示全部楼层 来自 挪威
感谢分享
回复 不支持

使用道具 举报

发表于 2009-3-6 18:00:41 | 显示全部楼层 来自 湖南长沙
1# lordtomorrow

须指出,以上命令流仅适用于单元编号连续的情况
回复 不支持

使用道具 举报

发表于 2009-3-6 22:40:00 | 显示全部楼层 来自 北京
我在以前的帖子中总结过,应该有五种方法
回复 不支持

使用道具 举报

 楼主| 发表于 2009-3-9 13:56:32 | 显示全部楼层 来自 上海
5# midasgalaxy
说的有道理,要在程序前做一次单元编号的压缩,谢谢提醒。
回复 不支持

使用道具 举报

 楼主| 发表于 2009-3-9 13:57:48 | 显示全部楼层 来自 上海
6# sh_lin30
有没有相关的链接,我拜读一下
回复 不支持

使用道具 举报

发表于 2009-7-9 09:36:15 | 显示全部楼层 来自 湖北武汉
*if,esel(i),eq,1,then
可用于单元编号不连续的情况
回复 不支持

使用道具 举报

发表于 2009-10-29 16:53:32 | 显示全部楼层 来自 河南郑州
学习了,正一直为没法得到体积苦恼那
回复 不支持

使用道具 举报

发表于 2010-10-6 23:54:22 | 显示全部楼层 来自 北京西城
神人啊 正需要 谢谢
回复 不支持

使用道具 举报

发表于 2015-9-30 07:31:19 | 显示全部楼层 来自 四川成都
sh_lin30 发表于 2009-3-6 22:40
我在以前的帖子中总结过,应该有五种方法

楼主的总结能不能发上来看看,我没搜到,谢谢啊。
回复 不支持

使用道具 举报

发表于 2016-3-10 10:13:33 | 显示全部楼层 来自 中国
有奉献精神!谢谢!
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-6-16 04:43 , Processed in 0.049923 second(s), 15 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表