nomsg
mod_assemb_prep
tstart
Plink=arg1
s314a120.parm
mod_coord_system,acs,xc,yc,zc,rotxyc,rotyzc,rotzxc
k,km+1,x1,y1,z1
k,km+2,x2,y2,z2
k,km+3,x3,y3,z3
k,km+4,x4,y4,z4
k,km+5,x5,y5,z5
k,km+6,x6,y6,z6
k,km+7,x7,y7,z7
k,km+8,x8,y8,z8
k,km+9,x9,y9,z9
k,km+10,x10,y10,z10
k,km+11,x11,y11,z11
L,km+1,km+2
L,km+3,km+2
L,km+4,km+1
L,km+4,km+3
L,km+5,km+6
L,km+7,km+8
L,km+9,km+10
L,km+11,km+9
L,km+7,km+11
L,km+10,km+5
L,km+8,km+6
L,km+5,km+4
L,km+6,km+3
view,'iso'
lfillt,lm+8,lm+7,r1
lsel,s,loc,x,x3,0
al,all
lsel,s,loc,x,x5,x3
al,all
lsel,s,loc,x,x7,x5
al,all
voffst,am+1,h1
voffst,am+2,h2
voffst,am+3,h3
alls
vglue,all
vdele,all
asel,s,loc,x,x5
asel,r,loc,y,0,h3
adele,all
asel,s,loc,x,x3
asel,r,loc,y,0,h2
adele,all
init_entity_num
asel,s,loc,y,0
cm,a_bot,area
agen,2,all,,,0,0,0,,,0
asel,s,area,,a_bot
adele,all,,,1
init_entity_num
*if,case,ge,3,then
csys,CShsg0
k,,x7,h3,zp1
k,,xn1-xp1,h3,zp1
k,,xn1-xp1,h3,zp2
k,,x7,h3,z7
create_lines
ln_fillet,kp(xn1-xp1,h3,zp2),rp1
ln_fillet,kp(xn1-xp1,h3,zp1),rp1
create_area-lines
asel,s,loc,y,h3
asel,a,loc,x,x7
aglue,all
init_entity_num
*endif
*if,case,eq,4,then
csys,CShsg0
wpcsys,-1,0
wpoffs,xn1,h3,zn1+Cwid/2
wprota,,-90
cyl4,0,0,rp4
asba,am-1,am+1,,delete,delete
cyl4,0,Cwid,rp4
asba,am+2,am+1,,delete,delete
init_entity_num
csys,4
k
k,,0,0,1
circle,km+1,rp4+.03,km+2
init_entity_num
isolate_lines
asel,s,area,,am
asbl,am,all,,delete,keep
init_entity_num
k,,0,Cwid
k,,0,Cwid,1
circle,km+1,rp4+.03,km+2
init_entity_num
isolate_lines
asel,s,area,,am
asbl,am,all,,delete,keep
init_entity_num
*if,rivet,eq,1,then
xp2=-xp2
*endif
cyl4,xp2,-zp3,rp3
cyl4,xp2,zp3,rp3
cyl4,xp2,Cwid-zp3,rp3
cyl4,xp2,Cwid+zp3,rp3
asel,s,area,,am+1,am+4
cm,aset,area
alls,all,area
asba,am,aset,,delete,delete
init_entity_num
*endif
csys,CShsg0
k,,xw3,0,zw2
k,,xw2,0,zw2
k,,xw2,0,zw2+zwid
k,,xw3,0,zw2+zwid
create_area
asel,s,loc,y,0
asel,r,loc,x,x5,x3
*get,a1,area,0,num,min
*get,a2,area,0,num,max
asba,a1,a2,,delete,keep
Apost=am
Abase=am+1
init_entity_num
asel,s,loc,y,h3
*get,a1,area,0,num,min
kps=km+1
hptcreate,area,a1,kps,coord,xs1,h3,zs1
asel,s,loc,y,0
asel,r,loc,x,x7,x5
*get,a2,area,0,num,max
hptcreate,area,a2,kps+1,coord,xs1,0,zs1
create_cs,0,CSjoint1,1,xs1,h4,zs1,0,0,Aarm+180
k,kps+2
k,kps+3,darm
init_entity_num
*if,case,eq,2,then
csys,CShsg0
lsel,s,loc,y,h3
lsel,r,loc,x,x7
*get,LnumC,line,0,num,max
kpC=km+1
hptcreate,line,LnumC,kpC,coord,x7,h3,zn1
init_entity_num
*elseif,case,eq,3,then
csys,CShsg0
asel,s,loc,y,h3
asel,r,loc,x,2*x7,x7
*get,a1,area,0,num,max
kpN=km+1
hptcreate,area,a1,kpN,coord,xn1,h3,zn1-Cwid/2
hptcreate,area,a1,kpN+1,coord,xn1,h3,zn1+Cwid/2
init_entity_num
*endif
csys,CShsg0
kpW=km+1
hptcreate,area,Apost,kpW,coord,xw1,0,zw1
nW=nm+1
n,nW,xw1,yw1,zw1
init_entity_num
csys,CShsg0
kpRE1=km+1
*if,Plink,gt,0,then
lsel,s,loc,x,0
lsel,r,loc,z,0
*get,L1,line,0,num,max
hptcreate,line,L1,kpRE1,coord,0,.65,0
alls
kpRE2=kp(0,0,z1)
*else
lsel,s,loc,x,0
lsel,r,loc,z,z1
*get,L1,line,0,num,max
hptcreate,line,L1,kpRE1,coord,0,.65,z1
alls
kpRE2=kp(0,0,0)
*endif
kpRE3=kp(0,h1,z1)
init_entity_num
m1=.015625
m2=.0625
m3=.250
m4=.350
*if,case,eq,4,then
lsel,s,loc,x,xn1-rp4-abs(xp2),xn1+abs(xp2)+rp3
lsel,r,loc,z,zn1-Cwid,zn1+Cwid
lesize,all,m1
asel,s,loc,x,2*x7,x7
asel,r,loc,y,h3
lsla
msh_area,0,,1,m2,m2,-1,ala356,1
*endif
asel,s,loc,x,2*x7,x5
asel,r,loc,y,0,h3
asel,a,area,,Apost
asel,a,area,,Abase
cm,a_end,area
*if,case,eq,4,then
asel,u,loc,x,2*x7,x7-.01
*endif
msh_area,0,1,1,m2,m2,,ala356,1
cmsel,s,a_end
asel,inve
msh_area,0,1,1,m3,m4,,ala356,1
nsel,s,loc,x,0
nsel,r,loc,y,0
nsel,r,loc,z,0
cp,next,all,all
nsel,s,loc,x,0
nsel,r,loc,y,0
nsel,r,loc,z,z1
cp,next,all,all
nsel,s,loc,x,x5
nsel,r,loc,y,0
nsel,r,loc,z,0
cp,next,all,all
nsel,s,loc,x,x5
nsel,r,loc,y,0
nsel,r,loc,z,z1
cp,next,all,all
nsel,s,loc,x,x7
nsel,r,loc,y,0
nsel,r,loc,z,0
cp,next,all,all
nsel,s,loc,x,x7
nsel,r,loc,y,0
nsel,r,loc,z,z7
cp,next,all,all
nsel,s,loc,x,x3
nsel,r,loc,y,0
nsel,r,loc,z,0
cp,next,ux,all
cp,next,uz,all
cp,next,rotx,all
cp,next,rotz,all
nsel,s,loc,x,x3
nsel,r,loc,y,0
nsel,r,loc,z,z1
cp,next,ux,all
cp,next,uz,all
cp,next,rotx,all
cp,next,rotz,all
init_entity_num
asel,s,area,,Apost
nsla,s,1
cp,next,all,all
init_entity_num
csys,CSjoint1
type,2
real,2
mat,c17_4
e,node(kx(kps),ky(kps),kz(kps)),node(kx(kps+1),ky(kps+1),kz(kps+1))
nkpt,,kps+2
nkpt,,kps+3
e,node(kx(kps),ky(kps),kz(kps)),node(kx(kps+2),ky(kps+2),kz(kps+2))
*if,case,eq,2,then
csys,CShsg0
real,4
init_entity_num
n,,xn1,h3,zn1
e,node(kx(kpC),ky(kpC),kz(kpC)),nm+1
*endif
csys,CShsg0
real,5
e,node(kx(kpW),ky(kpW),kz(kpW)),nW
init_entity_num
*if,gload,eq,0,then
f,node(kx(kps+2),ky(kps+2),kz(kps+2)),fz,Plink
f,nW,fx,-sign(Fw,Plink)
*else
return,,1
*endif
*if,case,eq,1,then
csys,CShsg0
d,node(x7,h3,0),ux,,,,,uy,uz
d,node(x7,h3,z1),ux,,,,,uy,uz
*elseif,case,eq,2,then
csys,CShsg0
d,node(xn1,h3,zn1),all
*elseif,case,eq,3,then
csys,CShsg0
n1=node(xn1,h3,zn1-Cwid/2)
n2=node(xn1,h3,zn1+Cwid/2)
nsel,s,node,,n1
nsel,a,node,,n2
d,all,all
*elseif,case,eq,4,then
lsel,s,loc,x,xn1-rp4,xn1+rp4
lsel,r,loc,z,zn1-Cwid,zn1+Cwid
nsll,s,1
cm,nset1,node
esln,s
nsle,s,corner
cmsel,r,nset1
d,all,ux,,,,,uy,uz
*endif
alls
csys,CShsg0
d,node(kx(kpRE1),ky(kpRE1),kz(kpRE1)),ux,,,,,uy,uz
d,node(kx(kpRE2),ky(kpRE2),kz(kpRE2)),ux,,,,,uy,uz
d,node(kx(kpRE3),ky(kpRE3),kz(kpRE3)),ux,,,,,uy,uz
*if,contact,eq,1,then
csys,CShsg0
asel,s,loc,x,2*x7,x7-.005
nsel,s,loc,x,xn1-rp4-abs(xp2),xn1+abs(xp2)+rp3
nsel,r,loc,z,zn1-Cwid,zn1+Cwid
nsla,a,0
cm,Ninner,node
esla
nsle,s,corner
cmsel,u,Ninner
cm,Nouter,node
ngen,2,nm+1,all,,,,-.1
nsel,r,loc,y,h3-.1
cm,Nbase,node
type,3
real,30
cmsel,s,Nouter
nsel,u,loc,x,x7-.1,x7
*get,numE,node,0,count
*get,j,node,0,num,min
cmsel,a,Nbase
skip=1
*do,i,1,numE/skip
*if,j,ne,0,then
jj=node(nx(j),ny(j)-.1,nz(j))
e,j,jj
d,jj,ux,,,,,uy,uz
*do,k,1,skip
j=ndnext(j)
*enddo
*endif
*enddo
init_entity_num
*endif
alls
fini
/solu
*if,contact,eq,1,then
nsubst,50
*endif
solv
fini
/post1
asel,s,area,,Apost
nsla,s,1
cm,Npost,node
alls
esel,s,type,,1
nsel,u,node,,Npost
/pbc,all,,0
/pbc,f,,1
/dscale,,100
plnsol,s,eqv,2
*if,case,eq,1,then
nsel,s,loc,x,2*x7,x7
nsel,r,loc,y,h3
*elseif,case,eq,2,then
nsel,s,node,,node(xn1,h3,zn1)
*endif
/out,s314a120,out
prrsol
/out
*uilist,s314a120,out
tstop