You are on page 1of 5

--MACRO FOR SCALE EQUI

--Input the Scale, if the value is wrong, return an error


do !i
!sca = !!alert.input ('Input Scale','Real')
!SCALE = abs(!sca.real())
handle any
!!alert.error('That is not Real. Please Input Real Scale again!')
elsehandle none
break
endhandle
enddo
--Prompt the user to choose an equipment
PROMPT OFF
PROMPT LOAD ESCAPE 'Select EQUI:'
ID EQUI @
!CE = !!CE.NAME

--Collect all primitive types for this equipment


VAR !MEM COLL ALL (SUBE BOX CYLI PYRA NBOX NCYL NPYR CTOR NCTOR RTOR NRTOR SNOU
NSNO EXTR NXTR DISH NDISH SLCY NSLC CONE NCON VERT NOZZ PANE REVO) FOR $!CE
DO !I VALUE !MEM
$!I
--
VAR !TYPE TYPE
--------------------------------------
--for basic primitives, change their position and related dimensions
IF (|$!TYPE| INSET (|CYLI|,|NCYLI|,|BOX|,|NBOX|,|CTOR|,|NCTOR|,|PYRA|,|NPYRA|,|
DISH|,|NDISH|,|NXTR|,|SLCY|,|NSLCY|,|RTOR|,|NRTOR|,|SNOU|,|NSNOU|,|CONE|,|NCONE|,|
NREV|,|NOZZ|)) THEN
VAR !E E WRT OWN
HANDLE ANY
VAR !E 0
ENDHANDLE
VAR !N N WRT OWN
HANDLE ANY
VAR !N 0
ENDHANDLE
VAR !U U WRT OWN
HANDLE ANY
VAR !U 0
ENDHANDLE
VAR !E ($!E * $!SCALE)
VAR !N ($!N * $!SCALE)
VAR !U ($!U * $!SCALE)

AT E$!E N$!N U$!U WRT OWN

IF (|$!TYPE| INSET (|BOX|,|NBOX|)) THEN


XLEN (XLEN * $!SCALE)
YLEN (YLEN * $!SCALE)
ZLEN (ZLEN * $!SCALE)
ENDIF
IF (|$!TYPE| INSET (|CYLI|,|DISH|,|NCYL|,|NDIS|)) THEN
HEIG (HEIG * $!SCALE)
DIAM (DIAM * $!SCALE)
ENDIF
IF (|$!TYPE| INSET (|NCON|,|CONE|)) THEN
DBOT (DBOT * $!SCALE)
DTOP (DTOP * $!SCALE)
HEIG (HEIG * $!SCALE)
ENDIF
IF (|$!TYPE| INSET (|PYRA|,|NPYR|)) THEN
XBOT (XBOT * $!SCALE)
YBOT (YBOT * $!SCALE)
XTOP (XTOP * $!SCALE)
YTOP (YTOP * $!SCALE)
XOFF (XOFF * $!SCALE)
YOFF (YOFF * $!SCALE)
HEIG (HEIG * $!SCALE)
ENDIF
IF (|$!TYPE| INSET (|SNOU|,|NSNO|)) THEN
DBOT (DBOT * $!SCALE)
DTOP (DTOP * $!SCALE)
XOFF (XOFF * $!SCALE)
YOFF (YOFF * $!SCALE)
HEIG (HEIG * $!SCALE)
ENDIF
IF (|$!TYPE| INSET (|CTOR|,|NCTO|)) THEN
RINS (RINS * $!SCALE)
ROUT (ROUT * $!SCALE)
ENDIF
IF (|$!TYPE| INSET (|RTOR|,|NRTO|)) THEN
RINS (RINS * $!SCALE)
ROUT (ROUT * $!SCALE)
HEIG (HEIG * $!SCALE)
ENDIF
IF(|$!TYPE| EQ |NOZZ|) THEN
HEIG (HEIG * $!SCALE)
ENDIF
IF(|$!TYPE| INSET (|SLCY|,|NSLC|)) THEN
XTSH (XTSH * $!SCALE)
YTSH (YTSH * $!SCALE)
XBSH (XBSH * $!SCALE)
YBSH (YBSH * $!SCALE)
DIA (DIA * $!SCALE)
HEIG (HEIG * $!SCALE)
ENDIF
ENDIF
----------------------------------------
--if it is a revolution, change the position and pave element position
IF (|$!TYPE| INSET (|REVO|)) THEN
VAR !E E WRT OWNER
HANDLE ANY
VAR !E 0
ENDHANDLE
VAR !N N WRT OWNER
HANDLE ANY
VAR !N 0
ENDHANDLE
VAR !U U WRT OWNER
HANDLE ANY
VAR !U 0
ENDHANDLE
VAR !EP ($!E * $!SCALE)
VAR !NP ($!N * $!SCALE)
VAR !UP ($!U * $!SCALE)
AT E$!EP N$!NP U$!UP WRT OWNER
VAR !LOOP COLL ALL LOOP FOR $!I
DO !K VALUES !LOOP
$!K
VAR !PAVE COLL ALL VERT FOR $!K
DO !J VALUE !PAVE
$!J
VAR !E E WRT OWN
HANDLE ANY
VAR !E 0
ENDHANDLE
VAR !N N WRT OWN
HANDLE ANY
VAR !N 0
ENDHANDLE
VAR !U U WRT OWN
HANDLE ANY
VAR !U 0
ENDHANDLE
VAR !E ($!E * $!SCALE)
VAR !N ($!N * $!SCALE)
VAR !U ($!U * $!SCALE)
FRAD (FRAD * $!SCALE)
AT E$!E N$!N U$!U WRT OWN
ENDDO
ENDDO
ENDIF
----------------------------------------
--if it is an extrusion, change their height
--then change the vertex position
IF(|$!TYPE| INSET (|EXTR|,|NXTR|)) THEN
HEIG (HEIG * $!SCALE)
ENDIF

--then calculate the position for extrusion


IF (|$!TYPE| INSET (|EXTR|)) THEN
VAR !E E WRT OWNER
HANDLE ANY
VAR !E 0
ENDHANDLE
VAR !N N WRT OWNER
HANDLE ANY
VAR !N 0
ENDHANDLE
VAR !U U WRT OWNER
HANDLE ANY
VAR !U 0
ENDHANDLE
VAR !EP ($!E * $!SCALE)
VAR !NP ($!N * $!SCALE)
VAR !UP ($!U * $!SCALE)

AT E$!EP N$!NP U$!UP WRT OWNER

--and calculate all vert position


VAR !LOOP COLL ALL LOOP FOR $!I
DO !K VALUES !LOOP
$!K
VAR !VERT COLL ALL VERT FOR $!K
DO !J VALUE !VERT
$!J
VAR !E E WRT OWN
HANDLE ANY
VAR !E 0
ENDHANDLE
VAR !N N WRT OWN
HANDLE ANY
VAR !N 0
ENDHANDLE
VAR !U U WRT OWN
HANDLE ANY
VAR !U 0
ENDHANDLE
VAR !E ($!E * $!SCALE)
VAR !N ($!N * $!SCALE)
VAR !U ($!U * $!SCALE)
FRAD (FRAD * $!SCALE)
AT E$!E N$!N U$!U WRT OWN
ENDDO
ENDDO
ENDIF

-----------------------------------------
IF(|$!TYPE| INSET (|PANE|)) THEN
VAR !E E WRT OWNER
HANDLE ANY
VAR !E 0
ENDHANDLE
VAR !N N WRT OWNER
HANDLE ANY
VAR !N 0
ENDHANDLE
VAR !U U WRT OWNER
HANDLE ANY
VAR !U 0
ENDHANDLE
VAR !EP ($!E * $!SCALE)
VAR !NP ($!N * $!SCALE)
VAR !UP ($!U * $!SCALE)

AT E$!EP N$!NP U$!UP WRT OWNER

VAR !PLOO COLL ALL PLOO FOR $!I


DO !K VALUES !PLOO
$!K
HEIG (HEIG * $!SCALE)
VAR !PAVE COLL ALL PAVE FOR $!K
DO !J VALUE !PAVE
$!J
VAR !E E WRT OWN
HANDLE ANY
VAR !E 0
ENDHANDLE
VAR !N N WRT OWN
HANDLE ANY
VAR !N 0
ENDHANDLE
VAR !U U WRT OWN
HANDLE ANY
VAR !U 0
ENDHANDLE
VAR !E ($!E * $!SCALE)
VAR !N ($!N * $!SCALE)
VAR !U ($!U * $!SCALE)
FRAD (FRAD * $!SCALE)
AT E$!E N$!N U$!U WRT OWN
ENDDO
ENDDO
ENDIF
--------------------------------
--change the position of sub
IF(|$!TYPE| INSET (|SUBE|)) THEN
VAR !E E WRT OWNER
HANDLE ANY
VAR !E 0
ENDHANDLE
VAR !N N WRT OWNER
HANDLE ANY
VAR !N 0
ENDHANDLE
VAR !U U WRT OWNER
HANDLE ANY
VAR !U 0
ENDHANDLE
VAR !EP ($!E * $!SCALE)
VAR !NP ($!N * $!SCALE)
VAR !UP ($!U * $!SCALE)
AT E$!EP N$!NP U$!UP WRT OWNER
ENDIF
-----------------------------------
ENDDO
EQUI

You might also like