!   TITLE:  ssgear0.mac (MMA)
!
!-----------------------------------------------------------------------
!       Rev -   09/10/2009      D. Edwards
!-----------------------------------------------------------------------
!
!   Stop screw gear assy
!
!
!   CS_0:       Cartesian axis of rotation Coordinate System
!   CS_1:       Cylindrical axis of rotation Coordinate System
!   CS_2:       Spherical axis of rotation Coordinate System
!
!
!************************** TABLE OF CONTENTS **************************
!
!       Model Assembly Preparation
!
!   1.  Parameter List
!   2.  Model Coordinate System
!   3.  Solid Model
!
!********************* Model Assembly Preparation **********************
!
mod_assemb_prep,arg1,arg2,arg3      ! prepare database for assembly
!
!<<<<<<<<<<<<<<<<<<<<<<<< 1.  Parameter List >>>>>>>>>>>>>>>>>>>>>>>>>>
!
ssgear0.parm
!
!<<<<<<<<<<<<<<<<<<<< 2.  Model Coordinate System >>>>>>>>>>>>>>>>>>>>>
!
mod_coord_system,acs,xc,yc,zc,rotxyc,rotyzc,rotzxc
!
!<<<<<<<<<<<<<<<<<<<<<<<<<<< 3.  Solid Model >>>>>>>>>>>>>>>>>>>>>>>>>>
!

!
!--------------------------- 3.1) Stop Screw Gear --------------------------
!
k,km+1,ssgPx1,ssgPy1,ssgPz1          ! km + 1
k,km+2,ssgPx2,ssgPy2,ssgPz2          ! km + 2
k,km+3,ssgPx3,ssgPy3,ssgPz3          ! km + 3
k,km+4,ssgPx4,ssgPy4,ssgPz4          ! km + 4
k,km+5,ssgPx5,ssgPy5,ssgPz5          ! km + 5
k,km+6,ssgPx6,ssgPy6,ssgPz6          ! km + 6
k,km+7,ssgPx7,ssgPy7,ssgPz7          ! km + 7
k,km+8,ssgPx8,ssgPy8,ssgPz8          ! km + 8
k,km+9,ssgPx9,ssgPy9,ssgPz9          ! km + 9
k,km+10,ssgPx10,ssgPy10,ssgPz10      ! km + 10
k,km+11,ssgPx11,ssgPy11,ssgPz11      ! km + 11
k,km+12,ssgPx12,ssgPy12,ssgPz12      ! km + 12
k,km+13,ssgPx13,ssgPy13,ssgPz13      ! km + 13
k,km+14,ssgPx14,ssgPy14,ssgPz14      ! km + 14
k,km+15,ssgPx15,ssgPy15,ssgPz15      ! km + 15
k,km+16,ssgPx16,ssgPy16,ssgPz16      ! km + 16
k,km+17,ssgPx17,ssgPy17,ssgPz17      ! km + 17
k,km+18,ssgPx18,ssgPy18,ssgPz18      ! km + 18
k,km+19,ssgPx19,ssgPy19,ssgPz19      ! km + 19
k,km+20,ssgPx20,ssgPy20,ssgPz20      ! km + 20
k,km+21,ssgPx21,ssgPy21,ssgPz21      ! km + 21
k,km+22,ssgPx22,ssgPy22,ssgPz22      ! km + 22
k,km+23,ssgPx23,ssgPy23,ssgPz23      ! km + 23 (center)
k,km+24,ssgPx24,ssgPy24,ssgPz24      ! km + 24
k,km+25,ssgPx25,ssgPy25,ssgPz25      ! km + 25
k,km+26,ssgPx26,ssgPy26,ssgPz26      ! km + 26
k,km+27,ssgPx27,ssgPy27,ssgPz27      ! km + 27
k,km+28,ssgPx28,ssgPy28,ssgPz28      ! km + 28
k,km+29,ssgPx29,ssgPy29,ssgPz29      ! km + 29 (center)
k,km+30,ssgPx30,ssgPy30,ssgPz30      ! km + 30
k,km+31,ssgPx31,ssgPy31,ssgPz31      ! km + 31
k,km+32,ssgPx32,ssgPy32,ssgPz32      ! km + 32 (center)
k,km+33,ssgPx33,ssgPy33,ssgPz33      ! km + 33
k,km+34,ssgPx34,ssgPy34,ssgPz34      ! km + 34
k,km+35,ssgPx35,ssgPy35,ssgPz35      ! km + 35 (center)
k,km+36,ssgPx36,ssgPy36,ssgPz36      ! km + 36
k,km+37,ssgPx37,ssgPy37,ssgPz37      ! km + 37
k,km+38,ssgPx38,ssgPy38,ssgPz38      ! km + 38
k,km+39,ssgPx39,ssgPy39,ssgPz39      ! km + 39
k,km+40,ssgPx40,ssgPy40,ssgPz40      ! km + 40 (center)
k,km+41,ssgPx41,ssgPy41,ssgPz41      ! km + 41
k,km+42,ssgPx42,ssgPy42,ssgPz42      ! km + 42
k,km+43,ssgPx43,ssgPy43,ssgPz43      ! km + 43
k,km+44,ssgPx44,ssgPy44,ssgPz44      ! km + 44 (center)
k,km+45,ssgPx45,ssgPy45,ssgPz45      ! km + 45
k,km+46,ssgPx46,ssgPy46,ssgPz46      ! km + 46 (center)
k,km+47,ssgPx47,ssgPy47,ssgPz47      ! km + 47
k,km+48,ssgPx48,ssgPy48,ssgPz48      ! km + 48
k,km+49,ssgPx49,ssgPy49,ssgPz49      ! km + 49
k,km+50,ssgPx50,ssgPy50,ssgPz50      ! km + 50 (center)
k,km+51,ssgPx51,ssgPy51,ssgPz51      ! km + 51
k,km+52,ssgPx52,ssgPy52,ssgPz52      ! km + 52 (center)
k,km+53,ssgPx53,ssgPy53,ssgPz53      ! km + 53
k,km+54,ssgPx54,ssgPy54,ssgPz54      ! km + 54 (center)
k,km+55,ssgPx55,ssgPy55,ssgPz55      ! km + 55
k,km+56,ssgPx56,ssgPy56,ssgPz56      ! km + 56
k,km+57,ssgPx57,ssgPy57,ssgPz57      ! km + 57 (center)

L,km+1,km+2                          ! lm + 1
L,km+3,km+4                          ! lm + 2
L,km+3,km+5                          ! lm + 3
L,km+6,km+4                          ! lm + 4
L,km+5,km+7                          ! lm + 5
L,km+8,km+9                          ! lm + 6
L,km+6,km+10                         ! lm + 7
L,km+11,km+12                        ! lm + 8
L,km+13,km+14                        ! lm + 9
L,km+15,km+14                        ! lm + 10
L,km+16,km+17                        ! lm + 11
L,km+18,km+19                        ! lm + 12
L,km+20,km+18                        ! lm + 13
larc,km+21,km+22,km+23,ssgDr1        ! lm + 14
L,km+24,km+25                        ! lm + 15
L,km+26,km+17                        ! lm + 16
L,km+27,km+21                        ! lm + 17
L,km+28,km+24                        ! lm + 18
larc,km+28,km+27,km+29,ssgDr2        ! lm + 19
L,km+19,km+15                        ! lm + 20
L,km+20,km+25                        ! lm + 21
L,km+16,km+22                        ! lm + 22
L,km+30,km+31                        ! lm + 23
larc,km+9,km+31,km+32,ssgDr3         ! lm + 24
L,km+33,km+34                        ! lm + 25
larc,km+33,km+10,km+35,ssgDr4        ! lm + 26
L,km+36,km+37                        ! lm + 27
L,km+38,km+39                        ! lm + 28
larc,km+39,km+37,km+40,ssgDr5        ! lm + 29
L,km+7,km+38                         ! lm + 30
L,km+41,km+11                        ! lm + 31
L,km+42,km+30                        ! lm + 32
L,km+13,km+43                        ! lm + 33
larc,km+42,km+43,km+44,ssgDr6        ! lm + 34
L,km+45,km+26                        ! lm + 35
larc,km+45,km+41,km+46,ssgDr7        ! lm + 36
L,km+47,km+48                        ! lm + 37
larc,km+49,km+48,km+50,ssgDr8        ! lm + 38
larc,km+47,km+51,km+52,ssgDr9        ! lm + 39
L,km+51,km+34                        ! lm + 40
larc,km+12,km+53,km+54,ssgDr10       ! lm + 41
L,km+55,km+56                        ! lm + 42
larc,km+53,km+56,km+54,ssgDr11       ! lm + 43
L,km+36,km+1                         ! lm + 44
L,km+49,km+55                        ! lm + 45
larc,km+2,km+8,km+57,ssgDr12         ! lm + 46

al,all
init_entity_num
km_ssg=km
lm_ssg=lm
assg=am

!
!--------------------------- 3.2) Top Washer (w1) --------------------------
!
k,km+1,w1Px1,w1Py1,w1Pz1             ! km + 1
k,km+2,w1Px2,w1Py2,w1Pz2             ! km + 2
k,km+3,w1Px3,w1Py3,w1Pz3             ! km + 3
k,km+4,w1Px4,w1Py4,w1Pz4             ! km + 4
k,km+5,w1Px5,w1Py5,w1Pz5             ! km + 5
k,km+6,w1Px6,w1Py6,w1Pz6             ! km + 6
k,km+7,w1Px7,w1Py7,w1Pz7             ! km + 7

L,km+1,km+2                          ! lm + 1
L,km+3,km+2                          ! lm + 2
L,km+4,km+5                          ! lm + 3
L,km+6,km+7                          ! lm + 4
L,km+7,km+3                          ! lm + 5
L,km+5,km+6                          ! lm + 6
L,km+4,km+1                          ! lm + 7

lsel,u,line,,1,lm_ssg
al,all
init_entity_num
km_w1=km
lm_w1=lm
aw1=am

!
!--------------------------- 3.3) Bushing (b) ------------------------------
!
k,km+1,bPx1,bPy1,bPz1                ! km + 1
k,km+2,bPx2,bPy2,bPz2                ! km + 2
k,km+3,bPx3,bPy3,bPz3                ! km + 3
k,km+4,bPx4,bPy4,bPz4                ! km + 4
k,km+5,bPx5,bPy5,bPz5                ! km + 5
k,km+6,bPx6,bPy6,bPz6                ! km + 6
k,km+7,bPx7,bPy7,bPz7                ! km + 7
k,km+8,bPx8,bPy8,bPz8                ! km + 8
k,km+9,bPx9,bPy9,bPz9                ! km + 9
k,km+10,bPx10,bPy10,bPz10            ! km + 10

L,km+1,km+2                          ! lm + 1
L,km+3,km+1                          ! lm + 2
L,km+2,km+4                          ! lm + 3
L,km+5,km+6                          ! lm + 4
L,km+7,km+4                          ! lm + 5
L,km+5,km+8                          ! lm + 6
L,km+9,km+7                          ! lm + 7
L,km+8,km+10                         ! lm + 8
L,km+10,km+9                         ! lm + 9
L,km+6,km+3                          ! lm + 10

lsel,u,line,,1,lm_w1
al,all
init_entity_num
km_b=km
lm_b=lm
ab=am

!
!--------------------------- 3.4) Thermal Spacer (ts) ----------------------
!
k,km+1,tsPx1,tsPy1,tsPz1             ! km + 1
k,km+2,tsPx2,tsPy2,tsPz2             ! km + 2
k,km+3,tsPx3,tsPy3,tsPz3             ! km + 3
k,km+4,tsPx4,tsPy4,tsPz4             ! km + 4
k,km+5,tsPx5,tsPy5,tsPz5             ! km + 5
k,km+6,tsPx6,tsPy6,tsPz6             ! km + 6

L,km+1,km+2                          ! lm + 1
L,km+3,km+2                          ! lm + 2
L,km+4,km+5                          ! lm + 3
L,km+6,km+4                          ! lm + 4
L,km+5,km+1                          ! lm + 5
L,km+3,km+6                          ! lm + 6

lsel,u,line,,1,lm_b
al,all
init_entity_num
km_ts=km
lm_ts=lm
ats=am

!
!--------------------------- 3.5) Spacer (s) -------------------------------
!
k,km+1,sPx1,sPy1,sPz1                ! km + 1
k,km+2,sPx2,sPy2,sPz2                ! km + 2
k,km+3,sPx3,sPy3,sPz3                ! km + 3 (center)
k,km+4,sPx4,sPy4,sPz4                ! km + 4
k,km+5,sPx5,sPy5,sPz5                ! km + 5
k,km+6,sPx6,sPy6,sPz6                ! km + 6
k,km+7,sPx7,sPy7,sPz7                ! km + 7
k,km+8,sPx8,sPy8,sPz8                ! km + 8
k,km+9,sPx9,sPy9,sPz9                ! km + 9
k,km+10,sPx10,sPy10,sPz10            ! km + 10
k,km+11,sPx11,sPy11,sPz11            ! km + 11
k,km+12,sPx12,sPy12,sPz12            ! km + 12 (center)
k,km+13,sPx13,sPy13,sPz13            ! km + 13

larc,km+1,km+2,km+3,sDr1             ! lm + 1
L,km+4,km+2                          ! lm + 2
L,km+1,km+5                          ! lm + 3
L,km+5,km+6                          ! lm + 4
L,km+7,km+8                          ! lm + 5
L,km+9,km+10                         ! lm + 6
L,km+8,km+11                         ! lm + 7
larc,km+11,km+9,km+12,sDr2           ! lm + 8
L,km+6,km+10                         ! lm + 9
L,km+7,km+13                         ! lm + 10
L,km+13,km+4                         ! lm + 11

lsel,u,line,,1,lm_ts
al,all
init_entity_num
km_s=km
lm_s=lm
as=am

!
!--------------------------- 3.6) Lower Washer (w2) ------------------------
!
k,km+1,w2Px1,w2Py1,w2Pz1             ! km + 1
k,km+2,w2Px2,w2Py2,w2Pz2             ! km + 2
k,km+3,w2Px3,w2Py3,w2Pz3             ! km + 3
k,km+4,w2Px4,w2Py4,w2Pz4             ! km + 4
k,km+5,w2Px5,w2Py5,w2Pz5             ! km + 5
k,km+6,w2Px6,w2Py6,w2Pz6             ! km + 6
k,km+7,w2Px7,w2Py7,w2Pz7             ! km + 7

L,km+1,km+2                          ! lm + 1
L,km+3,km+2                          ! lm + 2
L,km+4,km+3                          ! lm + 3
L,km+5,km+6                          ! lm + 4
L,km+7,km+4                          ! lm + 5
L,km+5,km+7                          ! lm + 6
L,km+6,km+1                          ! lm + 7

lsel,u,line,,1,lm_s
al,all
init_entity_num
km_w2=km
lm_w2=lm
aw2=am

! Turn on KP and line numbers & switch to front view.
/pnum,kp,1
/pnum,line,1
view,'f'
lplot

!
!----------------------------- 4.  FE Model ---------------------------
!
!              (1)     (2)     (3)   (4)    (5)    (6)    (7)  (8)   (9)
!   MSH_AREA, mstyp, mshdens, etpa, elmnl, elmxl, lszmsh, mat, real, ecs
!
esize=0.005     ! Element sizing parameter / 2d-free mesh section

asel,s,area,,assg
msh_area,0,0,1,esize,esize,1,ph13_8          ! Mesh Stop Screw Gear
init_entity_num

asel,s,area,,aw1
msh_area,0,0,1,esize,esize,1,ph13_8          ! Mesh Upper Washer
init_entity_num

asel,s,area,,ab
msh_area,0,0,1,esize,esize,1,AlNiBr          ! Mesh Bushing
init_entity_num

asel,s,area,,ats
msh_area,0,0,1,esize,esize,1,Delrin          ! Mesh Thermal Sapcer
init_entity_num

asel,s,area,,as
msh_area,0,0,1,esize,esize,1,ph13_8          ! Mesh Spacer
init_entity_num

asel,s,area,,aw2
msh_area,0,0,1,esize,esize,1,ph13_8          ! Mesh Lower Washer
init_entity_num

alls

eplot

!
! Select Contact12 and create elements
!
!type,typec                     
!mat,matc
!real,realc
!
!nummrg,node
cpintf,UY
!eintf,,,low,0

! Uncomment lines below to check contact elements
!esel,s,type,,typec
!nsle,s,all
!nplot

!
!------------------------ 5.  Loading, Constraints --------------------
!
csys,CS_0

nsel,s,loc,x,w1Px6,w1Px7              ! Constrain Upper Washer at roller  
nsel,r,loc,y,w1Py3,w1Py3+.01
d,all,uy

alls

! Apply 8,900# to end of bumper at 454880-1 Screw shoulder interface
Aend=pi*(w2Px4*w2Px4-w2Px7*w2Px7)
Pend=8900/Aend
sfl,85,pres,Pend

fini

!
!------------------------------- 6.  Solve ------------------------------
!
/solu

antype,static

!DELTIM, DTIME, DTMIN, DTMAX, Carry
!NSUBST, NSBSTP, NSBMX, NSBMN, Carry
!nsubst,100,200,10,OFF

solve

finish

!
!------------------------------- 7.  Post Process -----------------------
!

/post1

plnsol,s,eqv,2,1.0
/eof
create_image

! Display loads on Brake Slide side of Bearing
prtsel,abrg
nsel,r,loc,x,brgPx1,brgPx2
nsel,r,loc,y,brgPy1-esize/8,brgPy1
PRNLD,FY,,ALL
rplot_nodal,CS_0,'x','S','3'
create_image
!
nsel,s,loc,x,brgPx1,brgPx2
nsel,r,loc,y,brgPy1-esize/8,brgPy1
esln,s,1
etable,FNu,smisc,1
etable,FSu,smisc,2

/out,ssgear,out
pretab,FNu,FSu
/out

! Display loads on Bumper side of Bearing
prtsel,abrg
nsel,r,loc,x,brgPx1,brgPx2
nsel,r,loc,y,brgPy3,brgPy3+esize/8
PRNLD,FY,,ALL
rplot_nodal,CS_0,'x','S','3'
create_image
!
nsel,r,loc,x,brgPx1,brgPx2
nsel,r,loc,y,brgPy3,brgPy3+esize/8
esln,s,1
etable,FNl,smisc,1
etable,FSl,smisc,2

/out,ssgear,out,,append
pretab,FNl,FSl
/out

prtsel,ats
nsel,r,loc,y,tsPy1
rplot_nodal,CS_0,'x','U','Y'