我的计算和你的计算结果的差别可能是密度定义的区别 这个暂且不说 问题是加上弹簧以后计算的结果和没有加上的计算结果一样,相当于没有定义,我本来定义的是一维弹簧单元,但是在和45号单元连接之后都变成自由度ux,uy,uz了 我把耦合了也不行,现在倒是能计算了
命令流还是这些:
finish
/clear
/prep7
ka=0.8
/view,1,1,1,1
blc4,,,12,3.5,0.3
et,1,45
r,1
*do,i,1,35,1
mp,ex,i,2.8e10
mp,prxy,i,0.2
mp,dens,i,576*(0.1*i-0.05)+2500
*enddo
wprota,,90
*do,i,1,34,1
wpoff,,,-0.1
vsbw,all
*enddo
wpcsys,-1
*do,i,1,35,1
vsel,s,loc,y,0.1*i-0.1,0.1*i
vatt,i,1,1
vsel,none
*enddo
esize,0.1
vsell,all
vmesh,all
wpcsys,-1
et,2,154
r,2
rmodif,2,4,1.1e8
nsel,s,loc,z,0
type,2
real,2
esurf
allsel,all
*get,tmmax,node,,num,max !获取整个模型的最大节点号,以便创建弹簧节点时用
nsel,none
nsel,s,loc,z,0 !选择z=0的节点,形成当前的选择集
*get,ntol,node,,count !获取选择集下的节点总数
*get,nmax,node,,num,max !获取选择集下的最大节点号
*dim,nodno,,ntol !定义数组,存储各个节点号
*get,nmin,node,,num,min !获取选择集下的最小节点号
nodno(1)=nmin
*do,i,2,ntol
nodno(i)=ndnext(nmin)
nmin=nodno(i)
*enddo
allsel
et,3,14,,2
keyopt,3,2,2
*do,i,1,ntol
ni=nodno(i)
r,i+2,3*e10*0.1*0.1*(ka*18000*ny(ni))**0.7
*enddo
type,3
*do,i,1,ntol
ni=nodno(i)
n,tmmax+i,nx(ni),ny(ni)
n,tmmax+ntol+i,nx(ni),ny(ni)
real,i+2
e,tmmax+i,tmmax+ntol+i
*enddo
*do,i,1,ntol
ni=nodno(i)
nsel,none
nsel,s,,,ni
nsel,a,,,tmmax+i
cpintf,uy
d,tmmax+i,ux,,,,,uz
*enddo
nsel,none
nsel,s,,,tmmax+ntol+1,tmmax+ntol+ntol
d,all,all
/solu
nsel,none
nsel,s,loc,y,0
d,all,all
allsel,all
antype,2
modopt,lanb,10,,,,1
mxpand,10,,,yes
lumpm,off
solve
/post1
set,list
真的快被逼疯了
|