24小时热门版块排行榜    

CyRhmU.jpeg
查看: 4166  |  回复: 9

陈蛐蛐

金虫 (小有名气)

[求助] ANSYS *DO*IF循环体已有2人参与

在一个模型在加载两个力,一个力F2固定不变,另外一个力F6持续加大(*DO,F6,-60,-200,-1),直到提取的节点等效应力超过345时候(循环终止的条件),给出F6的数值
我的命令流如下,但是我的命令流似乎不能够循环,不知道是不是末尾的 *IF里面的/CLEAR和*CYCLE等出现问题

而且有没有可能简化我的循环,就是循环体直接在施加载荷那一块进行就可以了,不要每次循环都要重新建模。


FINISH
/CLEAR
*DO,F6,-60,-200,-1         !F6载荷从-1增加到-200

!建模
/UNITS,SI
/PREP7  
ET,1,SOLID186   
MPTEMP,1,0  
MPDATA,EX,1,,2.06E11
MPDATA,PRXY,1,,0.3  
CYLIND,0.021,0.018,0,0.3,0,360  
/VIEW,1,1,1,1   
/PNUM,VOLU,1
WPOFF,0,0,0.15  
WPROT,0,45,0
CYLIND,0.015,0.012,0,0.15,0,360  
VOVLAP,1,2
VDELE,       5  
VADD,       3 ,4,7
NUMMRG,ALL      
NUMCMP,ALL         
VGLUE,1,2
ALLSEL,ALL  
SMRT,2  
MSHAPE,1,3D
MSHKEY,0
VMESH,ALL
FINISH
!建模
!求解
/SOL
ANTYPE,STATIC
DA,1,ALL
!施加载荷
F2=-190
SFA,2,,PRES,F2
SFA,6,,PRES,F6
SOLVE
FINISH

*GET,yingli,NODE,1161,S,EQV         !获取节点1161号等效应力
*IF,yingli,GE,345,THEN            !如果等效应力小于345MPA,则结束当前循环,进入
                                 !下一个循环过程
/PARSAV
/CLEAR,START
PARRES
*CYCLE
*ELSE                             !否则跳出循环,执行*ENDDO命令行的下一个命令
*EXIT
*ENDIF
*ENDDO
*STATUS       !列表显示已定义的所有参数@wuming524
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

不知道适合科研否,我只是很聪明
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mxwq

新虫 (正式写手)

2楼2016-04-21 07:41:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mxwq

新虫 (正式写手)

引用回帖:
2楼: Originally posted by mxwq at 2016-04-21 07:41:23
当然能了…

重启动…网上查查就明白了

发自小木虫Android客户端
3楼2016-04-21 07:41:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

陈蛐蛐

金虫 (小有名气)

引用回帖:
3楼: Originally posted by mxwq at 2016-04-21 07:41:59
重启动…网上查查就明白了
...

能不能帮我解决一下呢?真的万分感谢!!!
不知道适合科研否,我只是很聪明
4楼2016-04-21 18:57:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

regressional

铜虫 (初入文坛)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
陈蛐蛐: 金币+15, ★★★很有帮助 2016-04-22 14:14:29
*DO, Par, IVAL, FVAL, INC
你是写错了吗,应该是从-60增加到-200吧.
而且你的循环*do可以写到模型后面啊.....
5楼2016-04-21 21:58:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

霜小妹二

木虫 (正式写手)

哈哈

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
陈蛐蛐: 金币+15, ★★★很有帮助 2016-04-22 14:14:09
首先我有个建议,那就是*Do循环中的控制变量,不要使用你实际使用的量,你可以建立一个控制变量与i之间的关系,比如*DO,i,1,200,1……F6=-i;
其次正如上面所说,循环没必要将建模也包含在其中,********而且不能包含在其中***********。
如果按照你的循环方式,每次循环都要建立一个模型,然后划分网格什么的。那你这个到最后就会有很多个模型重叠在一起,第n次计算的时候实际是计算了n个模型;从第二次开始的每次循环施加的载荷都不在第一个模型上面,所以你获得的节点1161的等效应力肯定只能是第一次循环(第一个模型)的结果了。因此, 在你看来就是没有循环。
建议你通过提取节点最大编号。来看看每次循环过程中你的模型中节点是不是在不断增多(不停建立模型)。
没事儿就进行交流~
6楼2016-04-22 10:39:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

陈蛐蛐

金虫 (小有名气)

引用回帖:
5楼: Originally posted by regressional at 2016-04-21 21:58:36
*DO, Par, IVAL, FVAL, INC
你是写错了吗,应该是从-60增加到-200吧.
而且你的循环*do可以写到模型后面啊.....

谢谢你!
嗯…那个地方我描述错了。我第一次做的时候就是尝试把*do放在建模之后的,好像那时候*do放在了/sol之后,还是什么原因,出现了闪退的现象。这次我把*do这个循环放到了建模之后,/sol之前。已经可以完美解决问题啦!
不过ansys的赋值i=i+1,好像第一个i是之前的,等号右边的i是最后个给出的。。和c语言正好相反

发自小木虫Android客户端
不知道适合科研否,我只是很聪明
7楼2016-04-22 14:07:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

陈蛐蛐

金虫 (小有名气)

引用回帖:
6楼: Originally posted by 霜小妹二 at 2016-04-22 10:39:22
首先我有个建议,那就是*Do循环中的控制变量,不要使用你实际使用的量,你可以建立一个控制变量与i之间的关系,比如*DO,i,1,200,1……F6=-i;
其次正如上面所说,循环没必要将建模也包含在其中,********而且不能 ...

谢谢你!!!
你的建议我采纳了,不过早上的时候我也是直接用*do,F6,-60,-200,-1软件也可以识别呢
*do循环放在开头,然后在每次循环的时候清楚原来的模型,就是第一个*if后面加上
parsav
/clear,start
parres
*cycle
也是可以的,但是运行慢太多,每次都要重新建模 。
把*do放在/sol前面就行循环,就可以解决了
谢谢你

发自小木虫Android客户端
不知道适合科研否,我只是很聪明
8楼2016-04-22 14:13:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

regressional

铜虫 (初入文坛)

引用回帖:
7楼: Originally posted by 陈蛐蛐 at 2016-04-22 14:07:19
谢谢你!
嗯…那个地方我描述错了。我第一次做的时候就是尝试把*do放在建模之后的,好像那时候*do放在了/sol之后,还是什么原因,出现了闪退的现象。这次我把*do这个循环放到了建模之后,/sol之前。已经可以完美解 ...

恩?我印象中不是啊,第一个I就是最后的值啊.
比如
i=1
i=i+1
最后输出结果就是2啊
你会不会是因为你的叠加是-1弄错了啊
9楼2016-04-22 15:15:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

陈蛐蛐

金虫 (小有名气)

引用回帖:
9楼: Originally posted by regressional at 2016-04-22 15:15:41
恩?我印象中不是啊,第一个I就是最后的值啊.
比如
i=1
i=i+1
最后输出结果就是2啊
你会不会是因为你的叠加是-1弄错了啊...

哦!!!对!可能因为我叠加是-1的原因。明天试试看。哈哈

发自小木虫Android客户端
不知道适合科研否,我只是很聪明
10楼2016-04-23 00:30:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 陈蛐蛐 的主题更新
信息提示
请填处理意见