!   TITLE:  ssgear1.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 >>>>>>>>>>>>>>>>>>>>>>>>>>
!
ssgear1.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 (center)
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
k,km+24,ssgPx24,ssgPy24,ssgPz24      ! km + 24
k,km+25,ssgPx25,ssgPy25,ssgPz25      ! km + 25 (center)
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
k,km+36,ssgPx36,ssgPy36,ssgPz36      ! km + 36
k,km+37,ssgPx37,ssgPy37,ssgPz37      ! km + 37 (center)
k,km+38,ssgPx38,ssgPy38,ssgPz38      ! km + 38
k,km+39,ssgPx39,ssgPy39,ssgPz39      ! km + 39
k,km+40,ssgPx40,ssgPy40,ssgPz40      ! km + 40
k,km+41,ssgPx41,ssgPy41,ssgPz41      ! km + 41 (center)
k,km+42,ssgPx42,ssgPy42,ssgPz42      ! km + 42
k,km+43,ssgPx43,ssgPy43,ssgPz43      ! km + 43 (center)
k,km+44,ssgPx44,ssgPy44,ssgPz44      ! km + 44
k,km+45,ssgPx45,ssgPy45,ssgPz45      ! km + 45
k,km+46,ssgPx46,ssgPy46,ssgPz46      ! km + 46
k,km+47,ssgPx47,ssgPy47,ssgPz47      ! km + 47 (center)
k,km+48,ssgPx48,ssgPy48,ssgPz48      ! km + 48
k,km+49,ssgPx49,ssgPy49,ssgPz49      ! km + 49 (center)
k,km+50,ssgPx50,ssgPy50,ssgPz50      ! km + 50
k,km+51,ssgPx51,ssgPy51,ssgPz51      ! km + 51 (center)
k,km+52,ssgPx52,ssgPy52,ssgPz52      ! km + 52
k,km+53,ssgPx53,ssgPy53,ssgPz53      ! km + 53
k,km+54,ssgPx54,ssgPy54,ssgPz54      ! km + 54
k,km+55,ssgPx55,ssgPy55,ssgPz55      ! km + 55
k,km+56,ssgPx56,ssgPy56,ssgPz56      ! km + 56
k,km+57,ssgPx57,ssgPy57,ssgPz57      ! km + 57
k,km+58,ssgPx58,ssgPy58,ssgPz58      ! km + 58 (center)

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

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

!
!--------------------------- 3.2) Top two Washers (w0 & 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
k,km+8,w1Px8,w1Py8,w1Pz8             ! km + 8
k,km+9,w1Px9,w1Py9,w1Pz9             ! km + 9
k,km+10,w1Px10,w1Py10,w1Pz10         ! km + 10
k,km+11,w1Px11,w1Py11,w1Pz11         ! km + 11
k,km+12,w1Px12,w1Py12,w1Pz12         ! km + 12
k,km+13,w1Px13,w1Py13,w1Pz13         ! km + 13
k,km+14,w1Px14,w1Py14,w1Pz14         ! km + 14
k,km+15,w1Px15,w1Py15,w1Pz15         ! km + 15

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
L,km+8,km+9                          ! lm + 8
L,km+10,km+9                         ! lm + 9
L,km+11,km+12                        ! lm + 10
L,km+13,km+14                        ! lm + 11
L,km+14,km+10                        ! lm + 12
L,km+12,km+13                        ! lm + 13
L,km+11,km+15                        ! lm + 14
L,km+15,km+8                         ! lm + 15

lsel,u,line,,1,lm_ssg
lsel,u,loc,y,0,w1Py3
al,all                  !Upper washer (w0)
init_entity_num
aw0=am

alls
lsel,u,line,,1,lm_ssg
lsel,u,loc,y,w1Py8,w1Py8+.1
al,all                  !Lower washer (w1)
init_entity_num
aw1=am

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
k,km+11,bPx11,bPy11,bPz11            ! km + 11
k,km+12,bPx12,bPy12,bPz12            ! km + 12 (center)

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+3                          ! lm + 4
L,km+7,km+6                          ! lm + 5
L,km+8,km+9                          ! lm + 6
L,km+8,km+4                          ! lm + 7
L,km+10,km+11                        ! lm + 8
larc,km+9,km+11,km+12,bDr1           ! lm + 9
L,km+1,km+10                         ! lm + 10
L,km+5,km+7                          ! lm + 11

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

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

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

!
! Line Definitions
!

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+6,km+9                          ! lm + 6
L,km+7,km+10                         ! lm + 7
L,km+10,km+4                         ! lm + 8
L,km+9,km+11                         ! lm + 9
L,km+8,km+11                         ! lm + 10

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

!
!--------------------------- 3.7) Simulated Thrust Bearing Rollers -----
!
k,km+1,brgPx1,brgPy1,brgPz1          ! km + 1
k,km+2,brgPx2,brgPy2,brgPz2          ! km + 2
k,km+3,brgPx3,brgPy3,brgPz3          ! km + 3
k,km+4,brgPx4,brgPy4,brgPz4          ! km + 4

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

lsel,u,line,,1,lm_w2
al,all
init_entity_num
km_brg=km
lm_brg=lm
abrg=am

!
!--------------------------- 3.8) Brake Slide --------------------------
!
k,km+1,sldPx1,sldPy1,sldPz1          ! km + 1
k,km+2,sldPx2,sldPy2,sldPz2          ! km + 2
k,km+3,sldPx3,sldPy3,sldPz3          ! km + 3
k,km+4,sldPx4,sldPy4,sldPz4          ! km + 4

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

lsel,u,line,,1,lm_brg
al,all
init_entity_num
km_sld=km
lm_sld=lm
asld=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.015     ! 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 Bottom Washer
init_entity_num

asel,s,area,,asld
msh_area,0,0,1,esize,esize,1,ph13_8          ! Mesh Brake Slide
init_entity_num

asel,s,area,,aw0
msh_area,0,0,1,esize,esize,1,ph13_8          ! Mesh Upper Top 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

asel,s,area,,abrg
msh_area,0,0,1,esize,esize,1,mroll           ! 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,sldPx3,sldPx1             ! Constrain Upper surface of Brake Slide
nsel,r,loc,y,sldPy2,sldPy2+.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,93,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'