- 积分
- 0
- 注册时间
- 2006-5-6
- 仿真币
-
- 最后登录
- 1970-1-1
|
发表于 2010-11-9 00:05:24
|
显示全部楼层
来自 辽宁丹东
我编写了一个,也不行,大家可以帮我看看吗?
title '屈服接近度计算'
range name weiyan1 group 2 ;对需要输出屈服率的组进行命名
config zextra 1
def yeild1
pnt=zone_head
loop while pnt # null
if inrange('weiyan1',pnt)=1 then
c0=0.1e5 ;----------输入粘聚力
fai0=20*3.14/180 ;----------输入内摩擦角
st=0.1e7 ;----------输入抗拉强度
s3=z_sig1(pnt)
s2=z_sig2(pnt)
s1=z_sig3(pnt)
s13=(s1+s3)/2.0
;应力罗德角
ylldj=(atan(1.0/(sqrt(3)))*(2.0*s2-s1-s3)/(s1-s3))
i1=s1+s2+s3
j2=(1/6.0)*((s1-s2)*(s1-s2)+(s1-s3)*(s1-s3)+(s3-s2)*(s3-s2))
;GR计算
sigmr=(s1*(2-sin(fai0))-2*c0*cos(fai0))/(2*(1-sin(fai0)))
if s13>sigmr then
z_extra(pnt,1)=(st-s1)/(st-sigmr)
if z_extra(pnt,1)>1 then
z_extra(pnt,1)=1
else
endif
if z_extra(pnt,1)<0 then
z_extra(pnt,1)=0
else
endif
else
z_extra(pnt,1)=(i1*sin(fai0)+(3*cos(ylldj)-sqrt(3)*sin(ylldj)*sin(fai0))*sqrt(j2)-c0*cos(fai0))/(i1*sin(fai0)-3*c0*cos(fai0))
if z_extra(pnt,1)>1 then
z_extra(pnt,1)=1
else
endif
if z_extra(pnt,1)<0 then
z_extra(pnt,1)=0
else
endif
endif
endif
pnt=z_next(pnt)
endloop
end
yeild1
plot contour zextra 1 alias 'Contour of yield rate zone' out on |
|