p1gx 发表于 2007-7-17 20:01

*if嵌套到*do循环中运行不了,请各位帮忙看一下

我看了很久也没找出原因,烦请各位前辈费心指点:
加荷载的时候有两段程序,第一段可以运行:
csys,0
asel,s,area,,2
esla,s
nsla,s,1
*get,enmax,elem,,num,max
*get,enmin,elem,,num,min
fcum,add
*do,i,enmin,enmax,1
*if,esel(i),eq,1,then
*get,ae,elem,i,area
ze=centrz(i)
p_e=-(ka*gama2*(depth-0.05)+ka*gama1*0.050)
f_tot=p_e*ae
esel,s,elem,,i
nsle,s,corner
*get,nn,node,,count
f_n=f_tot/nn
*do,j,1,nn
f,nelem(i,j),fz,f_n
*enddo
*endif
esla,s
*enddo
但是把第一段中加一个*if循环,成为第二段就运行不了了:
csys,11                                    
asel,s,area,,1                              
esla,s                                       
nsla,s,1                                    
*get,enmax,elem,,num,max                     
*get,enmin,elem,,num,min                     
fcum,add                                    
*do,i,enmin,enmax,1                        
*if,esel(i),eq,1,then                        
*get,ae,elem,i,area                        
ze=centrz(i)                                 
*if,ze,ge,0,and,ze,lt,depth-0.05,then      
p_e=-(ka*gama2*(depth-ze-0.050)+ka*gama1*0.05
*elseif,ze,ge,depth-0.05,and,ze,le,depth,then
p_e=-(ka*gama1*(depth-ze))                  
*else                                       
p_e=0                                       
*endif                                     
f_tot=p_e*ae                                 
esel,s,elem,,i                              
nsle,s,corner                              
*get,nn,node,,count                        
f_n=f_tot/nn                                 
*do,j,1,nn                                 
f,nelem(i,j),fx,f_n                        
*enddo                                       
*endif                                       
esla,s                                       
*enddo
加上这段,就会在file.err 中出现 Specified forces from the previous F command were applied only to the   
selected NODAL LOAD set.

[ 本帖最后由 p1gx 于 2007-7-17 20:49 编辑 ]

xinyuxf 发表于 2007-7-18 08:01

这不是你题目中所说的问题,一步一步调试一下,看看每一步的结果是否和你要求的一致

cyh3278 发表于 2007-7-18 14:29

*elseif,ze,ge,depth-0.05,and,ze,le,depth,then
把这句的then去掉试试。
页: [1]
查看完整版本: *if嵌套到*do循环中运行不了,请各位帮忙看一下