!   TITLE:  jucas_motor_hous_pres.mac (J-UCAS)
!
!---------------------------------------------------------------------------
!   Rev -   05/30/2005      J. Rinaldi
!---------------------------------------------------------------------------
!
!   This macro creates the motor housing, P/N 428842-1, for the Lockheed
!   J-UCAS nose-wheel steering system.
!
!   CSmh0:  Cartesian Motor Housing Coordinate System
!   CSmh1:  Cylindrical Motor Housing Coordinate System
!   CSmh2:  Spherical Motor Housing Coordinate System
!
!******************************* TABLE OF CONTENTS **************************
!
!       Model Assembly Preparation
!
!   1.  Parameter List
!   2.  Model Coordinate System
!   3.  Solid Model
!       3.1  Cross-Sectional Area
!   4.  FE Model
!   5.  Loading and Constraints
!   7.  Solve
!
!********************* Model Assembly Preparation *********************
!
mod_assemb_prep,arg1,arg2,arg3
!
!<<<<<<<<<<<<<<<<<<<<<<<< 1.  Parameter List >>>>>>>>>>>>>>>>>>>>>>>>>>
!
jucas_motor_hous_pres.parm
!
!<<<<<<<<<<<<<<<<<<<< 2.  Model Coordinate System >>>>>>>>>>>>>>>>>>>>>
!
mod_coord_system,acs,xc,yc,zc,rotxyc,rotyzc,rotzxc
!
!<<<<<<<<<<<<<<<<<<<<<<<<<<< 3.  Solid Model >>>>>>>>>>>>>>>>>>>>>>>>>>
!
!
!---------------------- 3.1  Cross-Sectional Area ---------------------
!
csys,CSmh1
!
k,,r07,0,0
k,,r20,0,0
k,,r20,0,l18
k,,r21,0,l18
k,,r21,0,l07                    ! 1 thru 5
!
k,,r25,0,l07
k,,r25,0,l07+l05
k,,r20,0,l07+l05
k,,r20,0,l07+l05+l06
k,,r25,0,l07+l05+l06            ! 6 thru 10
!
k,,r25,0,l07+l05+l06+l08
k,,r23,0,l07+l05+l06+l08
k,,r23,0,l01
k,,r18,0,l01
k,,r18,0,l01-l10                ! 11 thru 15
!
k,,r17,0,l01-l10
k,,r17,0,l11
k,,r16,0,l11
k,,r16,0,l12
k,,r14,0,l12                    ! 16 thru 20
!
k,,r14,0,l13
k,,r12,0,l13
k,,r12,0,l14
k,,r10,0,l14
k,,r10,0,l15                    ! 21 thru 25
!
k,,r26,0,l15
k,,r26,0,l16
k,,r27,0,l16
k,,r27,0,l17
k,,r09,0,l17                    ! 26 thru 30
!
k,,r09,0,l03+l04
k,,r08,0,l03+l04
k,,r08,0,l03
k,,r09,0,l03
k,,r09,0,l02                    ! 31 thru 35
!
k,,r07,0,l02
!
create_lines
!
ln_fillet_group,km-26,r01,km-25,r01,km-30,r01,km-29,r01,km-31,r01
ln_fillet_group,km-29,rfil1,km-27,rfil2,km-25,rfil3,km-23,r28,km-19,r29
ln_fillet_group,km-26,r03,km-27,r05,km-24,r30,km-23,r30,km-20,r31
!
chamfer_area,1,lm-27,lm-26,chmf1
chamfer_area,1,lm-30,lm,chmf2
chamfer_area,1,lm-38,lm-8,chmf3
chamfer_area,1,lm-53,lm-52,(r19-r18),l09
chamfer_area,1,lm-50,lm-49,(r13-r12),l09
!
chamfer_area,1,lm-57,lm-56,(r15-r14),chmf1
chamfer_area,1,lm-47,lm-46,chmf4
chamfer_area,1,lm-53,lm-3,chmf5
chamfer_area,1,lm-61,lm-60,chmf5
chamfer_area,1,lm-69,lm-68,chmf2
!
csys,CSmh0
create_cs,0,'filcs1',1,r20-r24,0,l20,0,90,0
!
create_arcs,r01,0,,1,150,300
!
csys,CSmh0
create_cs,0,'filcs2',1,r22,0,l21,0,90,0
!
create_arcs,r01,0,,1,170,330
!
lsel,s,line,,lm-1,lm
profile_lines,km-2,km-1
ln_fillet,km,r32
!
lovlap,all
init_entity_num
!
ldele,lm-6,lm-5
ldele,lm-3,lm-2
!
init_entity_num
!
csys,CSmh0
create_cs,0,'filcs3',1,r18-r02,0,l01-l10+l22,0,90,0
!
create_arcs,r02,0,,1,30,270
!
lovlap,all
init_entity_num
!
ldele,lm-4,lm-3
ldele,lm-106
ldele,lm
!
init_entity_num
!
create_area-lines
!
view,'f'
!
lplot
!
!---------------------- 3.2  Remove Excess Areas ---------------------
!
csys,CSmh0
create_cs,0,'plane0',0,0,0,0,0,90,0
!
ara_create_part,plane0,90,r06
ara_create_part,plane0,90,r33
!
csys,plane0
asel,s,loc,x,r33,r20
asel,r,loc,y,0,l18
adele,all,,,1
init_entity_num
!
asel,s,loc,x,r06,r20
asel,r,loc,y,l05+l07,l01
adele,all,,,1
init_entity_num
!
aadd,all
ln_seg
init_entity_num
!
lplot
!
!-------------------------- 3.3  Motor End Cap ------------------------
!
csys,plane0
!
k,,0,l01-(t_tot-t_flng),0
k,,r18-rtol,l01-(t_tot-t_flng),0
k,,r18-rtol,l01,0
k,,r06,l01,0
k,,r06,l01+t_flng,0
!
k,,0,l01+t_flng,0
!
create_area
!
aglue,all
init_entity_num
!
lplot
!
!---------------------- 3.4  Mesh Partition Areas ---------------------
!
csys,plane0
!
k,,pc1_x,pc1_y,pc1_z
k,,pc2_x,pc2_y,pc2_z
k,,pc3_x,pc3_y,pc3_z
!
init_entity_num
!
csys,plane0
create_cs,0,'pc1',0,pc1_x,pc1_y,pc1_z,0,0,0
create_circle,0.200,,120
!
csys,plane0
create_cs,0,'pc2',0,pc2_x,pc2_y,pc2_z,0,0,0
create_circle,0.300,,120
!
csys,plane0
create_cs,0,'pc3',0,pc3_x,pc3_y,pc3_z,0,0,0
create_circle,0.140,,120
!
isolate_lines
cm,part_lns,line
init_entity_num
!
asbl,am-2,part_lns,,delete,delete
init_entity_num
a_endcap=am-4
motr_a=am
!
lplot
!
!----------------------------- 4.  FE Model ---------------------------
!
!              (1)     (2)     (3)   (4)    (5)    (6)    (7)  (8)   (9)
!   MSH_AREA, mstyp, mshdens, etpa, elmnl, elmxl, lszmsh, mat, real, ecs
!
asel,u,area,,motr_a
asel,u,area,,a_endcap
msh_area,0,0,1,esz_2df/4,esz_2df/4,1,al7075a        ! mesh housing
init_entity_num
!
asel,s,area,,motr_a
msh_area,0,0,1,esz_2df,esz_2df,1,al7075a        ! mesh housing
init_entity_num
!
asel,s,area,,a_endcap
msh_area,0,0,1,esz_2df,esz_2df,1,c17_4          ! mesh end cap
init_entity_num
!
eplot
!
!------------------------ 5.  Loading, Constraints --------------------
!
csys,plane0
!
nsel,s,loc,x,0              ! constrain axis nodes
d,all,ux
!
init_entity_num
!
nsel,selv,loc,x,r33         ! constrain axial flange nodes
d,all,ux
!
init_entity_num
!
nsel,selv,loc,y,0           ! constrain surface flange nodes
d,all,uy
!
init_entity_num
!
lsel,u,line,,lm-50
lsel,u,line,,lm-14
lsel,u,line,,lm-13
lsel,u,line,,lm-10
lsel,u,line,,lm-6
lsel,u,line,,lm-5
!
ln_group,km-23,km-22,km-66
!
sfl,all,pres,pload
!
init_entity_num
!
lplot
!
!------------------------------- 6.  Solve ------------------------------
!
/title,J-UCAS Motor Housing 428842-1 @ %pload% psi Internal
!
finish
/config,fsplit,250
/solu
eqslv,iter,5,3
solve
!
finish
!
csys,plane0
nsel,u,loc,y,l07+l05,l01+t_flng
esln,s,0,active
!
/post1
/eface,1
avprin,0,0,
!
plnsol,s,eqv,0,1
/eface,1
avprin,0,0,
!
*get,Smax,plnsol,,max
!
/title,J-UCAS Motor Housing 428842-1 @ %pload% psi Internal, Smax=%Smax%
/replot
!
round_num,Sy/Smax,3
sfy=num_                        ! calculated safety factor @ yield
round_num,Su/Smax,3
sfu=num_                        ! calculated safety factor @ ultimate
!
round_num,(Sy/Smax)-1,3
msy=num_                        ! calculated margin of safety @ yield
round_num,(Su/Smax)-1,5
msu=num_                        ! calculated margin of safety @ ultimate
!
round_num,smax,0
smax=num_
!
s=smax
p=pload
y=sfy
u=sfu
!
/title,%p% psi Internal,  Smax=%s%,  SFy=%y%,  MSy=%msy%,  sfu=%u%,  MSu=%msu%
/replot