!   TITLE:  ms_mid.mac
!
!---------------------------------------------------------------------------
!       Rev -   RELEASED    08/27/2001      D. Edwards/J. Rinaldi
!---------------------------------------------------------------------------
!
!   This is a macro that builds the AAAV CRES 410 mirror support using
!   the Lincoln Dreher configuration.
!
!               P/N: SK400A007
!
!   CSmirsp0:   Cartesian Mirror Support Coordinate System
!   CSmirsp1:   Cylindrical Mirror Support Coordinate System
!   CSmirsp2:   Spherical Mirror Support Coordinate System
!
!
!************************** TABLE OF CONTENTS **************************
!
!      Model Assembly Preparation
!
!   1.  Parameter List
!   2.  Model Coordinate System
!   3.  Solid Model
!       3.1  Create Initial Profile Volume
!       3.2  Create Top Surface Cut
!       3.3  Create Rib Pockets
!       3.4  Modify Bottom Surface
!           3.4.1  Beveled Rectanglular Cut
!           3.4.2  Beveled Surface Cut
!           3.4.3  Left Beveled Surface Material Cut
!           3.4.4  Balance holes (12 PL)
!       3.5  Center Hole Bores
!           3.5.1  Center Hole
!           3.5.2  Counterbore
!       3.6  Elevation Axis Journals
!           3.6.1  Resolver Journal
!           3.6.2  Torquer Journal
!           3.6.3  Center cut on back (extrude)
!           3.6.4  Chamfer at top edge of feature 3.4.4
!           3.6.5  Balance weight holes (12 PL)
!   4.  FEA Model
!       4.1  Prepare Volumes
!           4.1.1  Long Axis Cut
!           4.1.2  Left Journal Volumes
!           4.1.3  Left Side Rib Volumes
!           4.1.4  Right Side Rib Volumes
!           4.1.5  Short Axis Cut
!           4.1.6  Right Journal Volumes
!           4.1.7  Back Surface Cuts
!           4.1.8  Back Contour Cuts
!           4.1.9  Rib Pocket Contours
!
!
!********************* Model Assembly Preparation **********************
!
mod_assemb_prep,arg1,arg2,arg3      ! prepare database for assembly
!
!<<<<<<<<<<<<<<<<<<<<<<<< 1.  Parameter List >>>>>>>>>>>>>>>>>>>>>>>>>>
!
ms_mid.parm
!
!<<<<<<<<<<<<<<<<<<<< 2.  Model Coordinate System >>>>>>>>>>>>>>>>>>>>>
!
mod_coord_system,acs,xc,yc,zc,rotxyc,rotyzc,rotzxc
!
!<<<<<<<<<<<<<<<<<<<<<<<<<<< 3. Solid Model >>>>>>>>>>>>>>>>>>>>>>>>>>>
!
!
!----------------- 3.1  Create Initial Profile Volume ----------------
!
csys,CSmirsp0
!
k,,l4,h1,0
k,,-l3,h1,0
k,,-l3,-h2,0
k,,l4,-h2,0
!
init_entity_num
!
lstr,km-3,km-2
lstr,km,km-1
!
k,,l2,h1,0
k,,l2,-h2,0
k,,-l1,h1,0
k,,-l1,-h2,0
!
init_entity_num
!
lstr,km-3,km-2
lstr,km,km-1
!
create_cs,1,,1,km-7,km-3,km-4           ! create 1st beveled line
k,,l2,phi1,0
lstr,km+1,km-7
!
create_cs,1,,1,km-6,km-1,km-5           ! create 2nd beveled line
k,,l1,phi1,0
lstr,km+2,km-6
!
create_cs,1,,1,km-5,km,km-6             ! create 3rd beveled line
k,,l1,phi1,0
lstr,km+3,km-5
!
create_cs,1,,1,km-4,km-2,km-7           ! create 4th beveled line
k,,l2,phi1,0
lstr,km+4,km-4
!
init_entity_num
!
lsbl,lm-3,lm-5,,delete,keep
lsbl,lm,lm-5,,delete,delete
!
lstr,km+1,km+2
!
lsbl,lm-2,lm-4,,delete,keep
lsbl,lm-1,lm-4,,delete,delete
!
lstr,km+3,km+4
!
init_entity_num
!
ldele,lm-7,lm-1,2,1
!
create_vol-lines,extd1
!
lplot
!
!----------------------- 3.2  Create Top Surface Cut -------------------
!
csys,CSmirsp0
!
create_cs,0,'CStprof',0,0,-(1.2*h2),0,0,90,0
!
k,,-l1,h4,0                 ! create horizontal surface line
k,,l2,h4,0
!
create_lines,,1
!
create_cs,0,,1,-l1,h3,0,0,0,0
!
k,,l1,-phi2,0               ! create left beveled surface line
k,,l1,180-phi2,0
!
create_lines,,1
!
csys,CStprof                ! create right beveled surface line
!
create_cs,0,,1,l2,h3,0,0,0,0
!
k,,l2,180+phi2,0
k,,l2,phi2,0
!
create_lines,,1
!
lsbl,lm-1,lm-2,,delete,keep
    csys,CSmirsp0       ! left partition distance, for meshing purposes
    pdl=kx(km+1)
    csys,csn
lsbl,lm,lm-2,,delete,delete
    csys,CSmirsp0       ! right partition distance, for meshing purposes
    pdr=kx(km+2)
    csys,csn
lstr,km+1,km+2
ldele,lm+1,lm+3,2,1
!
csys,CStprof
!
k,,kx(km-2),2*extd1,0
k,,kx(km),2*extd1,0
!
init_entity_num
!
lstr,km,km-1
lstr,km-1,km-6
lstr,km,km-4
!
init_entity_num
!
a,km,km-1,km-6,km-3,km-2,km-4
!
init_entity_num
!
voffst,am,-(1.5*(h1+h2))
!
init_entity_num
!
vsbv,vm-1,vm,,delete,delete
!
init_entity_num
!
lplot
!
!----------------- 3.3  Create Rib Pockets on Mirror Side -----------------
!
csys,CSmirsp0
!
k,,l4,h1,2*extd1        ! For creating CS
*afun,deg
k,,l2,h1-(l2-l4)*tan(phi1),2*extd1
*afun,rad

k,,0,h6,2*extd1
k,,1.2*l2,h6,2*extd1
!
init_entity_num
!
lstr,km,km-1
lstr,km-2,km-3

create_cs,1,,0,km-3,km-2,km-1

k,,-2.00,h5,0
k,,l2,h5,0

init_entity_num

lstr,km-1,km

csys,CSmirsp0

k,,l5,0,2*extd1
k,,l5,h1,2*extd1

init_entity_num

lstr,km,km-1

init_entity_num

lsbl,lm-1,lm,,delete,keep
lsbl,lm-3,lm,,delete,delete

init_entity_num

lstr,km-1,km

create_cs,1,,1,km,km-7,km-1

k,,l2,phi3,0

lstr,km,km+1

csys,CSmirsp0           ! formation of rib lines

k,,l10,h1,2*extd1
k,,l10,-h1,2*extd1

init_entity_num

lstr,km-1,km

init_entity_num

lsel,s,line,,lm-6
lsel,a,line,,lm-1,lm

ln_part_ln,lm

lstr,km,km-1

init_entity_num

lfillt,lm,lm-3,rfil
lfillt,lm-3,lm-7,rfil2
lfillt,lm-7,lm-2,rfil
lfillt,lm-2,lm,rfil

init_entity_num

al,lm-11,lm-7,lm-6,lm-4,lm-3,lm-2,lm-1,lm

init_entity_num

csys,CSmirsp0

lsel,selv,loc,z,2*extd1
asel,selv,loc,z,2*extd1
lsla,u

ldele,all

arsym,y,am,,,,1,0

create_cs,0,'CSsymm0',0,(l2-l1)/2,0,0,0,0,0

arsym,x,am,am+1,1,,1,0

init_entity_num

*do,i,am-3,am,1
    voffst,i,2*extd1-h7     ! Floor thickness of h7
    ! voffst,i,2*extd1+h7   ! Cut through
*enddo

init_entity_num

vsel,u,volu,,vm-4
cm,vset1,volu
vsel,a,volu,,vm-4

vsbv,vm-4,vset1,,delete,delete

init_entity_num

lplot
!
!--------------- 3.4  Create Rib Pockets Opposite Mirror ------------------
!
*go,:skip_34
!
csys,CSmirsp0
!
k,,l4,h1,-2*extd1       ! For creating CS
*afun,deg
k,,l2,h1-(l2-l4)*tan(phi1),-2*extd1
*afun,rad
!
k,,0,h6a,-2*extd1
k,,1.2*l2,h6a,-2*extd1
!
init_entity_num
!
lstr,km,km-1
lstr,km-2,km-3

create_cs,1,,0,km-3,km-2,km-1

k,,-2.00,h5a,0
k,,l2,h5a,0

init_entity_num

lstr,km-1,km

csys,CSmirsp0

k,,l5,0,-2*extd1
k,,l5,h1,-2*extd1

init_entity_num

lstr,km,km-1

init_entity_num

lsbl,lm-1,lm,,delete,keep
lsbl,lm-3,lm,,delete,delete

init_entity_num

lstr,km-1,km

create_cs,1,,1,km,km-7,km-1

k,,l2,phi3,0

lstr,km,km+1

csys,CSmirsp0           ! formation of rib lines

k,,l10,h1,-2*extd1
k,,l10,-h1,-2*extd1

init_entity_num

lstr,km-1,km

init_entity_num

lsel,s,line,,lm-6
lsel,a,line,,lm-1,lm

ln_part_ln,lm

lstr,km,km-1

init_entity_num

lfillt,lm,lm-3,rfil
lfillt,lm-3,lm-7,rfil2
lfillt,lm-7,lm-2,rfil
lfillt,lm-2,lm,rfil

init_entity_num

al,lm-11,lm-7,lm-6,lm-4,lm-3,lm-2,lm-1,lm

init_entity_num

csys,CSmirsp0

lsel,selv,loc,z,-2*extd1
asel,selv,loc,z,-2*extd1
lsla,u

ldele,all

arsym,y,am,,,,1,0

create_cs,0,'CSsymm0',0,(l2-l1)/2,0,0,0,0,0

arsym,x,am,am+1,1,,1,0

init_entity_num

*do,i,am-3,am,1
    voffst,i,-(2*extd1+h7a)     ! Floor thickness of h7
    ! voffst,i,-(2*extd1-h7a)   ! Cut through
*enddo

init_entity_num

vsel,u,volu,,vm-4
cm,vset1,volu
vsel,a,volu,,vm-4

vsbv,vm-4,vset1,,delete,delete

init_entity_num

lplot
:skip_34

!
!------------------------ 4.4  Modify Bottom Surface ---------------------
!
!
!--------------------- 4.4.1  Beveled Rectanglular Cut -------------------
!
!csys,CSmirsp0
!
!rec_bore,7,0,0,0,0,0,2*rtangle,l12,l11,abs(h2-h9),abs(h2-h8),dcut,phi4
!
!init_entity_num
!
!lplot
!
!------------------------ 3.4.2  Beveled Surface Cut ---------------------
!
*go,:sk_bsc

csys,CSmirsp0
!
create_cs,0,'CSbevsf0',0,-(1.5*l1),-(1.5*h2),(h10+chmf1),90,-90,0
!
k,,0,0,0
k,,(1.5*h2)-h2,0,0
k,,(1.5*h2)-h2+chmf1,chmf1,0
k,,(1.5*h2)-h2+l13,chmf1,0
k,,(1.5*h2)-h2+l13,chmf1+h10,0
!
k,,(1.5*h2)-h2+l14,chmf1+h10,0
k,,(1.5*h2)-h2+l14,chmf1,0
k,,(1.5*h2)+h1-chmf2,chmf1,0
!
init_entity_num
!
lstr,km-7,km-6
lstr,km-6,km-5
lstr,km-5,km-4
lstr,km-3,km-2
lstr,km-1,km
!
create_cs,1,,1,km-4,km-1,km-3
!
k,,3*h10,phi5,0
lstr,km-4,km+1
!
create_cs,1,,1,km-1,km,km-2             ! create 2nd beveled line
!
k,,3*h10,180-phi5,0
lstr,km-1,km+2
!
init_entity_num
!
lsbl,lm-1,lm-3,,delete,keep
lsbl,lm,lm-3,,delete,delete
!
init_entity_num
!
lstr,km-1,km
!
ldele,lm-2,lm,2,1
!
init_entity_num
!
csys,CSbevsf0
!
k,,(1.5*h2)+h1,chmf1-chmf2,0
k,,(1.5*h2)+(1.5*h1),chmf1-chmf2,0
k,,(1.5*h2)+(1.5*h1),2*(h10+chmf1),0
k,,0,2*(h10+chmf1),0
!
init_entity_num
!
lstr,km,km-1
lstr,km-1,km-2
lstr,km-2,km-3
lstr,km-3,km-8
lstr,km,km-15
!
init_entity_num
!
lsel,selv,line,,lm-5,lm,1
lsel,a,line,,lm-9,lm-7,2
lsel,a,line,,lm-16,lm-14,1
lsel,a,line,,lm-12
!
al,all
!
lsel,all
lsel,u,line,,lset
!
init_entity_num
!
voffst,am,-(1.75*(l1+l2))
!
init_entity_num
!
vsbv,vm-1,vm,,delete,delete
!
init_entity_num
!
lplot

:sk_bsc
!
!--------------- 3.4.3  Left Beveled Surface Material Cut ------------
!

*go,:sk_lbsmc

csys,CSmirsp0
!
k,,-l15,-h2+l16,-0.5
k,,-l15,-(1.2*h2),-0.5
k,,-(1.2*l1),-(1.2*h2),-0.5
k,,-(1.2*l1),-h2+l16,-0.5
!
init_entity_num
!
lstr,km,km-1
lstr,km-1,km-2
lstr,km-2,km-3
lstr,km-3,km
!
init_entity_num
!
lfillt,lm,lm-1,rrad
!
init_entity_num
!
a,km,km-1,km-2,km-3,km-4
!
init_entity_num
!
voffst,am,0.5+h10
!
init_entity_num
!
vsbv,vm-1,vm,,delete,delete
!
init_entity_num
!
lplot
:sk_lbsmc
!
!------------------------ 3.5  Center Hole Bores ---------------------
!
!
!
!-------------------------- 3.5.1  Center Hole -----------------------
!
csys,CSmirsp1
!
*do,i,0,3*((pi/2)*dconv),((pi/2)*dconv)
    k,,dhole/2,i,-extd1
*enddo
!
create_area,1
!
voffst,am,2*extd1
!
init_entity_num
!
vsbv,vm-1,vm,,delete,delete
!
init_entity_num
!
!------------------------ 3.5.2  Counterbore ------------------------
!
csys,CSmirsp1
!
*do,i,0,3*((pi/2)*dconv),((pi/2)*dconv)
    k,,dbore1/2,i,2*h4
*enddo
!
create_area,1
!
!voffst,am,-(((2*h4)-h11)+boredpth)
voffst,am,-2*h4+boredpth
!
init_entity_num
!
vsbv,vm-1,vm,,delete,delete
!
init_entity_num
!
lplot
!
!-------------------- 3.6  Elevation Axis Journals -------------------
!
!----------------------- 3.6.1  Resolver Journal ---------------------
!
!*go,:skip
csys,CSmirsp0
!
create_cs,0,'CSm_res1',1,-l1,0,h11,0,0,-90
!
*do,i,0,3*((pi/2)*dconv),((pi/2)*dconv)
    k,,dlj/2,i,0
*enddo
!
create_area,1
!
voffst,am,extd2
!
init_entity_num
!
vadd,vm-1,vm
!
init_entity_num
!
*do,i,0,3*((pi/2)*dconv),((pi/2)*dconv)     ! machine inner bore
    k,,dbore2/2,i,1.2*extd2
*enddo
!
create_area,1
!
voffst,am,-(0.2*extd2+extd3)
!
init_entity_num
!
vsbv,vm-1,vm,,delete,delete
!
init_entity_num
!
*do,i,0,3*((pi/2)*dconv),((pi/2)*dconv)     ! machine outer surface
    k,,1.2*dlj/2,i,1.2*extd2
*enddo
!
create_area,1
!
*do,i,0,3*((pi/2)*dconv),((pi/2)*dconv)
    k,,dos/2,i,1.2*extd2
*enddo
!
create_area,1
!
asba,am-1,am,,delete,delete
!
init_entity_num
!
voffst,am,-(0.2*extd2+extd4)
!
init_entity_num
!
vsbv,vm-1,vm,,delete,delete
!
init_entity_num
!
lplot
!
!----------------------- 3.6.2  Torquer Journal ----------------------
!
csys,CSmirsp0
!
create_cs,0,'CSm_trq1',1,l2,0,h11,0,0,90
!
create_circle,drj/2                         ! 1st volume
!
create_vol-lines,extd5
!
create_circle,d1/2,extd5                    ! 2nd volume
!
create_vol-lines,l18
!
create_circle,d2/2,l18+extd5                ! 3rd volume
!
create_vol-lines,l19
!
create_circle,d3/2,l19+l18+extd5            ! 4th volume
!
create_vol-lines,l20
!
create_circle,d4/2,l20+l19+l18+extd5        ! 5th volume
!
create_vol-lines,l21
!
!
vadd,vm-5,vm-4,vm-3,vm-2,vm-1,vm
!
init_entity_num
!
lplot
!
!------------------ 3.6.3  Center cut on back (extrude) -----------------
!
csys,CSmirsp0

k,km+1,ccPx1,ccPy1,ccPz1     ! km + 1
k,km+2,ccPx2,ccPy2,ccPz2     ! km + 2
k,km+3,ccPx3,ccPy3,ccPz3     ! km + 3
k,km+4,ccPx4,ccPy4,ccPz4     ! km + 4
k,km+5,ccPx5,ccPy5,ccPz5     ! km + 5
k,km+6,ccPx6,ccPy6,ccPz6     ! km + 6
k,km+7,ccPx7,ccPy7,ccPz7     ! km + 7
k,km+8,ccPx8,ccPy8,ccPz8     ! km + 8
k,km+9,ccPx9,ccPy9,ccPz9     ! km + 9 (center)
k,km+10,ccPx10,ccPy10,ccPz10 ! km + 10
k,km+11,ccPx11,ccPy11,ccPz11 ! km + 11
k,km+12,ccPx12,ccPy12,ccPz12 ! km + 12 (center)
k,km+13,ccPx13,ccPy13,ccPz13 ! km + 13 (center)
k,km+14,ccPx14,ccPy14,ccPz14 ! km + 14 (center)
k,km+15,ccPx15,ccPy15,ccPz15 ! km + 15 (center)
k,km+16,ccPx16,ccPy16,ccPz16 ! km + 16 (center)

!
! Line Definitions
!

L,km+1,km+2                  ! lm + 1
L,km+3,km+4                  ! lm + 2
L,km+5,km+6                  ! lm + 3
larc,km+7,km+8,km+9,ccDr1    ! lm + 4
L,km+10,km+11                ! lm + 5
larc,km+5,km+8,km+12,ccDr2   ! lm + 6
larc,km+7,km+10,km+13,ccDr3  ! lm + 7
larc,km+11,km+1,km+14,ccDr4  ! lm + 8
larc,km+2,km+4,km+15,ccDr5   ! lm + 9
larc,km+3,km+6,km+16,ccDr6   ! lm + 10

create_area-lines

arsym,y,am,,,,1,0

csys,CSsymm0

arsym,x,am,am+1,1,,1,0

init_entity_num

*do,i,am-3,am,1
    voffst,i,ccDext
*enddo

init_entity_num

vsel,u,volu,,vm-4
cm,vset1,volu
vsel,a,volu,,vm-4

vsbv,vm-4,vset1,,delete,delete

init_entity_num

lplot

!*go,:skip


*go,:sk_363

csys,CSmirsp0

k,,-width1/2,h1-thick,0
k,,-width1/2,-(h2-thick),0
k,,width1/2,-(h2-thick),0
k,,width1/2,h1-thick,0

create_lines

lfillt,lm-3,lm,rcut
lfillt,lm,lm-1,rcut
lfillt,lm-1,lm-2,rcut
lfillt,lm-2,lm-3,rcut

isolate_lines
al,all

init_entity_num

voffst,am,depth1

init_entity_num

vsbv,vm-1,vm,delete,delete

init_entity_num

lplot

:sk_363

!
!-------------- 3.6.4  Chamfer at top edge of feature 3.4.4 -----------
!
*go,:no_cham
!
csys,CSmirsp0

!CREATE_CS, mthd, cs_nam, cs_typ, xc, yc, zc, rotxy, rotyz, rotzx,
!   ratyx, ratzx
create_cs,0,ctcham,0,-width1/2,-h2+cham1,depth1,0,45,0

k,,0,0,2*cham1
k,,0,-2*cham1,2*cham1
k,,0,-2*cham1,-2*cham1
k,,0,0,-2*cham1

create_lines

isolate_lines
al,all

init_entity_num

voffst,am,width1

init_entity_num

vsbv,vm-1,vm,delete,delete

init_entity_num

lplot
!
:no_cham
!
!------------------ 3.6.5  Balance weight holes (12 PL) ---------------
!
*go,:nocuts

init_entity_num

v2bcut=vm

*do,i,1,3
    csys,CSmirsp0
    create_cs,,,0,xh(i),yh,0
    cir_bore,,hdia,0
    csys,CSmirsp0
    create_cs,,,0,-xh(i),yh,0
    cir_bore,,hdia,0
    csys,CSmirsp0
    create_cs,,,0,xh(i),-yh,0
    cir_bore,,hdia,0
    csys,CSmirsp0
    create_cs,,,0,-xh(i),-yh,0
    cir_bore,,hdia,0
*enddo

isolate_areas
extrude_aset,hdepth

init_entity_num

vsel,s,volu,,vm-11,vm
cm,vset1,volu

init_entity_num

vsbv,v2bcut,vset1,,delete,delete

init_entity_num

lplot
:nocuts


!<<<<<<<<<<<<<<<<<<<<<<<<<<< 4.  FEA Model >>>>>>>>>>>>>>>>>>>>>>>>>
!
!----------------------- 4.1  Prepare Volumes ----------------------
!
!

finalize_model

:skip

save