

                        Imagine Manual Documentation
                        ============================
                          Imagine 5.0 AREXX manual

                          Rev 1.0 4-26-96 K.Piepho
                 Copyright 1996 Impulse Inc., Mpls, MN 55444



    Hello Imagine users, this is the documentation file for Imagine-5.0.  Keep
this file handy as you'll want to refer back to it often for the exact syntax
of Imagine's Arexx commands.

    Imagine's Arexx port is named 'Imagine.1'  Make sure you have RexxMast
either in your WBstartup drawer or in your s:startup-sequence.  Use the 'About'
menu to see if Imagine is able to open a Arexx port in your system.

    There are no shortcuts for Imagine Arexx commands.  If you want to use the
Imagine-Arexx command 'DETAILEDITOR', you must use the full command name.
'DETAILED' will not match.  Imagine Arexx commands are case-insensitive however
as Arexx itself changes commands to uppercase before passing them to Imagine.

    Some variable names are reserved.  They are documented in their related
commands and again later in the reserved names section of this manual.  Don't
use these variables because this is how Imagine and Arexx pass large amounts
of data back and forth.  It's much easier and cleaner than building up and 
passing all the arguments on a single command line.  More on this later.

    Alot of error checking is done on Imagine-Arexx commands, but it's not
so easy to foresee every possible command & argument combination.  Use common
sense, ie. don't use Action Editor commands in the Detail Editor. Most commands
that are used out of context are simply ignored (NO Arexx commands will be
recognized while you are in the preferences editor-they will simply queue up.
The same thing goes for any requesters which you bring up-for instance, you
cannot use the Imagine-Arexx command QUICKRENDER while in the attributes
requester), some will inform you that "you can't do that!".  There are several
Imagine-Arexx commands that will query Imagine for specific information about
Objects, Projects, etc and put the results in reserved variables for your
Arexx scripts to then manipulate as you please.

    Imagine-Arexx scripts/commands/macros can be invoked from a shell or from
within Imagine itself.  A new menu has been added to each Imagine Editor
allowing ten distinct Arexx macros per Editor.  These are all tied to hotkeys,
beginning with Right-Amiga/Right-Shift 1 thru 0.  They show up in the menus as
" ! @ # $ % ^ & * ( ) ".  You can also call up a filerequester to execute an
Arexx macro by using the hotkey combination Right-Amiga/Right-Shift "~" key
(that's next to the 1 key on your keyboard.  By convention, Imagine-Arexx
macros will have a ".irx" file extension.

    Use the preferences editor to customize the Arexx menus.  The 'value' field
holds the Arexx script name and the 'comment' field holds the text that will
appear in the Arexx menu.  The menu labels are limited to 14 characters for
those running Imagine on lower resolution screens to make sure they fit. Any-
thing beyond 14 characters is ignored.

    Using the preferences editor, you can tie your Arexx scripts to the user-
gadgets or to function keys if you wish.



===============================================================================
===============================================================================


Here is a list of the Imagine's Arexx commands and the arguments they expect:
(arguments should be seperated by spaces.)


===============================================================================


 These commands can be called while in any editor -


Command Name      Command Args    Description
++++++++++++      ++++++++++++    +++++++++++++++++++++++++++++++++++++++++++++

PROJECTEDITOR        none         Switch to Project Editor.  Actually, when
                                  switching to another editor from either the
                                  ACTION or STAGE editors, all of the EDITOR
                                  commands check for an argument switch
                                  'SAVECHANGES'.  If not present, you won't be
                                  asked.
                                  ex:

                                      DETAILEDITOR SAVECHANGES
                                      SPLINEEDITOR
                                      STAGEEDITOR 100  (see below)

DETAILEDITOR         none         Switch to Detail Editor

FORMSEDITOR          none         Switch to Forms Editor

CYCLEEDITOR          none         Switch to Cycle Editor

STAGEEDITOR           #           Switch to Stage Editor - if # is specifed,
                                  starts editor at that frame #.

ACTIONEDITOR         none         Switch to Action Editor

SPLINEEDITOR         none         Switch to Spline Editor

GETPREFS         prefsfilename    Load new Imagine.config file. Like this:
                                  ex:
                                      GETPREFS 'imagine:Imagine.config2'

SETZONE          x1 y1 x2 y2      Set zone for renders/quickrender.  Order of
                                  arguments is important!  Upper left corner to
                                  lower right corner.

CLEARZONE            none         Turn off zone rendering

DISPLAYREXXPTR      ON/OFF        This command can be used to change Imagine's
                                  mouse pointer from the regular crosshair
                                  image to a arrow with the 'arexx' attached to
                                  it.  This can be useful in letting the user
                                  know an arexx script is running.  If no args
                                  are specified, defaults to toggle pointer.

NOTIFY              string        This command displays the 'string' using
                                  Imagine's standard requester.
                                  ex:
                                      NOTIFY 'WAITING TO PROCEED'

BEEP                none          Flash Imagine's screen.

IMAGINETOFRONT      none          These commands manage shuffling Imagine's
IMAGINETOBACK                     screen with Workbench.  Just bringing
WORKBENCHTOFRONT                  Imagine's screen to the front may not be
WORKBENCHTOBACK                   enough, you may also have to 'Activate' it
ACTIVATEIMAGINE                   if you were working in some other window.

===============================================================================
===============================================================================


 These commands can be called only from the PROJECT editor


command name      command args    description
++++++++++++      ++++++++++++    +++++++++++++++++++++++++++++++++++++++++++++

ABOUT                none         Brings up the 'about' requester on Imagine's
                                  screen.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

NEWPROJECT        project-name    Creates a new project.  If no project name is
                                  specified, brings up Imagine's filerequester
                                  to get project name.
                                  ex:

                                      NEWPROJECT 'ram:TestProject'
                                  or  NEWPROJECT

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

OPENPROJECT       project-name    Opens a previously created project.  If no
                                  project name is given, brings up Imagine's
                                  filerequester to get one.
                                  ex:

                                      OPENPROJECT 'ram:TestProject'
                                      OPENPROJECT

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

NEWSUBPROJECT     subproj-name    Creates a new subproject. You _must_ specify
                                  a subproject name and you _must_ already have
                                  a project opened.  The new subproject will
                                  use either the default subproject properties
                                  or those of the last subproject worked on.
                                  Use the 'MODIFYSUBPROJECT' command to change
                                  these to your liking - but do it after you've
                                  created your subproject.
                                  ex:

                                      NEWSUBPROJECT 'testname'

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

OPENSUBPROJECT    subproj-name    Works the same as 'NEWSUBPROJECT' above.  You
                                  must have a project already opened and you
                                  must specify a subproject name.
                                  ex:

                                      OPENSUBPROJECT 'testname'

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

MODIFYSUBPROJECT     none         This command modifies a subproject based on
                                  reserved variables values.  You must already
                                  have a project/subproject opened.  Set up the
                                  variables you want to change - if you don't
                                  want to change them all, leave them undefined

 variable name:    
 -----------------
 SUBPROJMETHOD          Select from:  'B/W Wire'       case is unimportant, but
                                      'B/W Shade'     make sure you inclose
                                      'Color Wire'    values in quotes.
                                      'Color Shade'
                                      'Scanline'
                                      'Trace'   ex: SUBPROJMETHOD = 'B/W Shade'

 SUBPROJPRESET          Select from any of the presets names you have defined
                        in the preferences editor under 'rendering presets'.
                        Specifying a SUBPROJPRESET over-rides the following
                        variables - SUBPROJWIDTH SUBPROJHEIGHT SUBPROJXASPECT
                        SUBPROJYASPECT SUBPROJVIEWMODE


 SUBPROJWIDTH           Sets subproject rendering width in pixels.
                        ex:  SUBPROJWIDTH = 640   or   SUBPROJWIDTH = '752'

 SUBPROJHEIGHT          Same as SUBPROJHEIGHT, but, duh, for image height.
                        Range of values for both is 2-32768.

 SUBPROJXASPECT         Sets subproject aspect ratio. Smaller values work best.
 SUBPROJYASPECT         Keep it below 1000.


 SUBPROJVIEWMODE        Select from:  'AAcs'  Use as many of these as you like
                                      'HAM' ex: SUBPROJVIEWMODE = 'HIRES LACE'
                                      'HIRES'   SUBPROJVIEWMODE = 'HAM'
                                      'LACE'    SUBPROJVIEWMODE = 'HAM AACS'

 SUBPROJOPTIONS         Select from:  'Stereo'  Use any combination of these
                                      'Field'   too.
                                      'Flip'  ex: SUBPROJOPTIONS = 'Flip Field'
                                      'Reset' <- selects none of the above.

 SUBPROJBLUR            Sets number of extra frames for motion blur.
                        ex: SUBPROJBLUR = '2'  or  SUBPROJBLUR = 0

 SUBPROJSHUTTER         Sets fractional time shutter is 'open' for motion blur.
                        Values range from 0 to 1.
                        ex: SUBPROJSHUTTER = .9864  or SUBPROJSHUTTER = '.5'

 SUBPROJSTILLSPATH      Sets path for saved stills.
                        ex: SUBPROJSTILLSPATH = 'ram:pix'
                            SUBPROJSTILLSPATH = 'ddr:imagineanim' <-use for PAR

 SUBPROJMOVIEPATH       Sets path for anim/movie.
                        ex: SUBPROJMOVIEPATH = 'ram:'  or...
                            SUBPROJMOVIEPATH = 'dh1:imagineprojects/anims'

 SUBPROJSTILLSFORMAT    Select from:  'RGBN-12bit'  Use any one of these.
                                      'ILBM-12bit'
                                      'RGB8-24bit'
                                      'ILBM-24bit'
                                      'Seperate'
                                      'DCTV'  
                        ex: SUBPROJSTILLSFORMAT = 'ILBM-12bit'

 SUBPROJMOVIEFORMAT     Select from:  'Imagine'    Use either of these.
                                      'ANIM'

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

GETSUBPROJECTINFO                 This command is rather the complement of
                                  MODIFYSUBPROJECT.  Use this command to get
                                  information about a subproject from Imagine.

 variable name:
 -----------------
 PROJECTNAME            The current project's name.
 SUBPROJECTNAME         The current subproject's name.

 SUBPROJWIDTH
 SUBPROJHEIGHT
 SUBPROJXASPECT         These are the same as above for MODIFYSUBPROJECT.
 SUBPROJYASPECT
 SUBPROJSTILLSPATH
 SUBPROJMOVIEPATH
 SUBPROJSTILLSFORMAT
 SUBPROJMOVIEFORMAT

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

PROJECTRANGE      from to step    Selects frames for rendering.  Other args
                                  that work are 'ALL' 'NONE' and 'TOGGLE'  If
                                  no args are specified, defaults to toggle all
                                  frames.
                                  ex:

                                  PROJECTRANGE '1 100 2'
                                  PROJECTRANGE 'ALL'
                                  PROJECTRANGE '1 100'  <-default step = last
                                                        used, in this case 2

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

STARTRENDER          none         This command starts rendering a subproject
                                  based on the reserved variable PALETTEMETHOD's
                                  value.  Set the PALETTEMETHOD variable and
                                  then use this command.

 variable name:    
 -----------------
 PALETTEMETHOD       Select from: 'Generate All'
                                  'Generate 1st'
                                  'Use Previous'
                                  ...or to use a picture for your palette, use
                                  the picture name.
                                  ex:

                                      PALETTEMETHOD = 'Generate All'
                                      PALETTEMETHOD = 'imagine:imagine.pic'


===============================================================================
===============================================================================


 This command can be called from the CYCLES/DETAIL/FORMS/SPLINE/STAGE editors


command name      command args    description
++++++++++++      ++++++++++++    +++++++++++++++++++++++++++++++++++++++++++++

QUICKRENDER          none         Start a 'quickrender'.  Use these variables
                                  to direct the quickrender.

 variable name:    
 -----------------
 QRPALETTEMETHOD     Select from: 'Generate Palette'
                                  'Use Previous'
                                  ...or to use a picture for your palette, use
                                  the picture name.

  QRLIGHTSOURCE      ON/OFF       Tells Imagine to supply a lightsource for
  QRHORZLIGHT          #          your quickrender.  QRHORZLIGHT & QRVERTLIGHT
  QRVERTLIGHT          #          control the lighting angle.

  QRDEFOCUS            #          Sets quickrender camera defocus. Default 0.

  QRSHOWPIC        TRUE/FALSE     Displays picture when render is complete.
                                  setting this to false skips the display of
                                  your picture.

  QRKEEPPIC        TRUE/FALSE     Tells Imagine whether or not to save your
                                  quickrender picture when finished.


===============================================================================
===============================================================================


 These three commands can be called at any time a Render or Quickrender
 are in progress.


command name      command args    description
++++++++++++      ++++++++++++    +++++++++++++++++++++++++++++++++++++++++++++

STOPRENDER           none         This command immediately stops the render.
                                  Just like you clicked the 'CANCEL' button.
                                  The picture will _not_ be deleted.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

PAUSERENDER          none         Stops render and changes the Imagine 'CANCEL'
                                  requester to 'RESUME'.  To contiue, click the
                                  new 'RESUME' button or send Imagine a
                                  'RESUMERENDER' command.  A 'STOPRENDER'
                                  command will stop the render.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

RESUMERENDER         none         Resumes a render which has been suspended.

===============================================================================
===============================================================================


 These command can be called from the CYCLES/DETAIL/FORMS/SPLINE/STAGE editors


command name      command args    description
++++++++++++      ++++++++++++    +++++++++++++++++++++++++++++++++++++++++++++

GRID             ON/OFF or size   This command works in all editors except the
                                  PROJECT & ACTION editors.  If no args are
                                  specified, defaults to toggle grid on/off.
                                  If arg is a number, sets grid size to that
                                  number.
                                  ex:

                                      GRID 'on'
                                      GRID
                                      GRID '100.54'

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

COORDS               ON/OFF       Display mouse coords in window title bar.
                                  This command works in all editors except the
                                  PROJECT & ACTION editors.  If no args are
                                  specified, defaults to toggle coords on/off.
                                  ex:

                                      COORDS 'ON'
                                      COORDS

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

ZOOM                   #          Sets the 'Zoom' level.  Valid range is
                                  from .0118 to 100.0
                                  ex:
                                      ZOOM 10.0

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

CENTERAT             # # #        This command centers Imagine's windows at the
                                  coords you specify, or at the name of an
                  objectname      object, or if no argument, at the selected
                                  object, or if no selected object, at the
                                  picked object.
                                  ex:

                                      CENTERAT 20.0 -100.5 15.34
                                      CENTERAT 'DISK.1'
                                      CENTERAT
                                      CENTERAT X Y Z

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

DISPLAYWIREFRAME     none         Change display to Wireframe.

DISPLAYSOLID         none         Change display to Solid.

DISPLAYSHADED        none         Change display to Shaded.

DISPLAYNEWMODE       none         Change display to 'NewMode'.  This one only
                                  works in the DETAIL editor.

DISPLAYREDRAW        none         Tells Imagine to redraw the display - in case
                                  it gets mucked up.

DISPLAYSTOPREDRAW    none         Tells Imagine to stop updating the display.
                                  Sometimes you'll need to call this repeatedly
                                  to tell Imagine to stop drawing each line
                                  segment, depending on what mode you're in.
                                  No harm can come from overusing this command.
                                  Sometimes it can be useful (not to mention
                                  faster) to use this command lots of other
                                  commands and then use DISPLAYREDRAW when
                                  you're done.

DISPLAYRESETVIEWS    none         This command only works in the DETAIL/FORMS/
                                  SPLINE & STAGE editors.  It resets Imagine's
                                  windows to world coord 0,0,0 and resets the
                                  perspective window angle.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

MOUSE_GET            none         Use this command to get the current world
                                  coords of the mouse.  Also gets the 'view'
                                  that the mouse is working in.  This command
                                  sets these variables:
 variable name:
 -----------------
  MOUSE_X
  MOUSE_X            The current mouse X,Y,Z position.
  MOUSE_Z                                                        _______
  MOUSE_VIEW         The current view the mouse is working in.  |       |
                           0 = perspective                      | 3 | 0 |
                           1 = X-Z                              |  -+-  |
                           2 = Y-Z                              | 1 | 2 |
                           3 = X-Y                              |_______|

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

MOUSE_MOVETO         none         Use this command to 'move' the mouse to a new
                                  world position.  It uses the same variables
                                  as the other MOUSE_ commands.
                                  ex:

                                      MOUSE_GET
                                      do i = 0 to 10
                                        MOUSE_X = MOUSE_X + i*10
                                        MOUSE_MOVETO
                                        ADDAXIS
                                      end

MOUSE_BUTTONDOWN     none         Use these commands the same as MOUSE_MOVETO.
MOUSE_BUTTONUP                    They simulate mouse clicks.  You usually use
                                  them back to back unless you want to simulate
                                  dragging an object in interactive mode.
                                  ex:

                                      ADDPOINTMODE
                                      MOUSE_GET
                                      do i = 0 to 10
                                        MOUSE_X = MOUSE_X + i*10
                                        MOUSE_BUTTONDOWN
                                        MOUSE_BUTTONUP
                                      end


 IMPORTANT! There isn't much error checking posible with these commands, so it
 is up to you not to abuse them.  Imagine may choke if you move the mouse
 outside the limits of whatever view you are working in, so it may be advisable
 to 'ZOOM' out far enough to give yourself room to work.

 ALSO, these three commands have no effect unless the variables MOUSE_X,
 MOUSE_Y, MOUSE_Z, and MOUSE_VIEW are defined in your rexx script.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


 These commands simulate keypresses.


MULTIPICKON          none         Simulates pressing the 'Shift' key down.
MULTIPICKOFF                      'Shift' key up.

KEY_L                none         LOCAL
KEY_W                             WORLD

KEY_X                none         X   (again these commands have different
KEY_Y                             Y    functions depending on the value of
KEY_Z                             Z    the shift key)
                                      ex:

                                          MULTIPICKON   (Sets X to on, Y & Z
                                          KEY_X          to off.)

                                          MULTIPICKOFF
                                          KEY_X         (toggles X)


KEY_SPACE            none         Accepts whatever interactive changes are made.
KEY_ESCAPE                        Cancels interactive mode.


KEY_C                none         PINCH        These commands start interactive
KEY_E                             STRETCH      mode.  They rely add the MOUSE_X
KEY_O                             SMOOTH       value to the mousedelta for each
KEY_P                             TAPER        MOUSE_ command.  The BEND/SHEAR/
KEY_R                             ROTATE       & MOVE commands add the MOUSE_Y
KEY_S                             SCALE        and MOUSE_Z values to the mouse-
KEY_T                             TWIST        delta.

KEY_B                none         BEND
KEY_H                             SHEAR
KEY_M                             MOVE



 Here are a few example code fragments:

      MOUSE_GET             /*defines MOUSE_ X/Y/Z/VIEW variables
                              we don't care what their values are
                              we just need them to be defined*/
      MULTIPICKON           /*shift on*/
      KEY_R                 /*rotate axis*/
      KEY_X                 /*rotate on x-axis*/
      MOUSE_BUTTONDOWN
      MOUSE_X = 20          /* 20 * .6 = 12degrees*/
      MOUSE_BUTTONUP
      KEY_SPACE



      MOUSE_GET             /*defines MOUSE_ this time we want
                              MOUSE_ X/Y because SHEAR depends
                              on world deltamouse*/
      MULTIPICKOFF          /*shift off*/
      KEY_H                 /*shear object*/
      MOUSE_BUTTONDOWN
      MOUSE_X = MOUSE_X+15
      MOUSE_Y = MOUSE_Y-10
      MOUSE_BUTTONUP
      KEY_SPACE

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

LOADBACKDROP       filename       Loads a backdrop picture in an editor view.

 variable name:
 -----------------
 FRAME_NUM              If variable is set, Imagine will load FRAME_NUM of anim


CLEARBACKDROP        none         Clears view.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

LAYERS             list           This command sets the 'layers' visible in
                                  the STAGE editor.
                                  ex:

                                      LAYERS '1-20,77,99'

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

LOADOBJECT         filename       Loads a object into the DETAIL/FORMS/SPLINE/
                                  STAGE editor.  There are a few variables to
                                  control what frame & layer the object should
                                  be loaded in the STAGE editor.

 variable name:
 -----------------
 FRAME_START            Frame start, if undefined defaults to current frame.
 FRAME_END              Frame end, if undefined defaults to current frame.

 LAYER                  Layer to load object into, if undefined defaults to
                        layer 0.

 STATE.1                Load specified object state.  If undefined defaults
                        to NULL.


+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

SAVEOBJECT        filename        Saves picked object as filename.  Saves
                                  'snapshot' in STAGE editor.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

LOADDXFOBJECT     filename        Loads DXF file in DETAIL editor.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

SAVEDXFOBJECT     filename        Saves DXF file from DETAIL editor.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

SAVEPOINTS        filename        Saves points in SPLINE editor.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

PICKMETHOD         type           Changes the pick method where type is one of
                                  the following:

                                  CLICK        These are all pretty much self-
                                  DRAGBOX      explanatory, thou DRAGBOX &
                                  LASSO        LASSO are not usable with the
                                  LOCKON       MOUSE_ commands.
                                  LOCKOFF

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

SNAPTOGRID         none           Same as the menu items in the DETAIL & FORMS
                                  editors.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

PICK               type           This is a very powerful and dynamic command.
                                  It is most useful in the DETAIL editor, but
                                  can also be used the SPLINE & STAGE editors
                                  to 'Pick' the object/group you want to work
                                  on.  If no argument is specifed, the default
                                  is to 'Pick' the 'Selected' object.  Use the
                                  rexx command 'MULTIPICKON' to multipick
                                  objects.

                                  Type may be any of the following:

                                  ALL         picks all.
                                  NEXT        picks next.
                                  PREV        picks previous.
                                  SELECT      picks 'Select'.

                                  MORE        picks 'More' in point or edge
                                              mode in DETAIL editor.

                                  SHARP       picks 'Sharp' edges.

                                  (name)      picks an object by name.  Or,
                                              if in edge or face mode in the
                                              DETAIL editor, will pick the
                                              subgroup 'name'.

                                    #         picks a face/edge/point by
                                              number.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

UNPICK             type           This is the complement to 'PICK'.  If no
                                  argument is specified, the default is to
                                  'Unpick' the 'Selected' object.

                                  Type may be any of the following:

                                  ALL         unpicks all.
                                  SELECT      unpicks 'Select'.
                                  LAST        unpicks last 'Picked'

                                  (name)      unpicks an object by name.  Or,
                                              if in edge or face mode in the
                                              DETAIL editor, will unpick the
                                              subgroup 'name'.

                                    #         unpicks a face/edge/point by
                                              number.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

PICKRANGE          list           This command picks a range of faces/edges/
                                  points in the DETAIL editor.
                                  ex:

                                      PICKRANGE 1 10 2

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

UNPICKRANGE        list           This command unpicks a range of faces/edges/
                                  points in the DETAIL editor.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

SORT               none           Same as in Imagine's menus.  Sorts objects/
                                  faces/edges/points in the order you've picked
                                  them.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

'SELECT'           type           This command is used to 'Select' an object/
                                  face/edge/point/ or subgroup.  Note that
                                  the command is enclosed in quotes - this is
                                  because there is a rexx command clause named
                                  SELECT, to make rexx pass the command to
                                  Imagine, it is necessary to enclose it within
                                  quotes.  Also, this command requires an
                                  argument.

                                  Type may be any of the following:

                                  HOME        selects first object/point...
                                  NEXT        selects next.
                                  PREV        selects previous.

                                  (name)      selects an object by name.  Or,
                                              if in edge or face mode in the
                                              DETAIL editor, will select the
                                              subgroup 'name'.

                                    #         selects a face/edge/point by
                                              number.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

UNSELECT           none           This command 'Unselects' all selected
                                  objects.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

HIDEUNPICKED       none           This command 'Hides' the 'Unpicked' points in
                                  the DETAIL editor.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

UNHIDE             name           This command 'Unhides' the named subgroup in
                                  the DETAIL editor.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

UNHIDEALL          none           This command 'Unhides' all points in the
                                  DETAIL editor.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

GETMULTIPICKLIST   none           This command gets the names or face/edge/
                                  point numbers of the 'MultiPicked' objects
                                  from Imagine and places them in an array. The
                                  following variables are used:
 variable name:
 -----------------
 MULTIPICK_NUM          The actual number of groups/objects/faces/edges/points
                        picked.  From 0 to 32767.

 MULTIPICK.#####        The names or face/edge/point numbers, depending on what
                        pickmode Imagine is in.  '#####' ranges from 1 on up.
                        ex:

                            OBJECTMODE
                            KEY_A
                            GETMULTIPICKLIST
                            do i = 1 to MULTIPICK_NUM while (MULTIPICKNUM ~=0)
                              say i' : 'MULTIPICK.i
                            end

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

GETMULTIPICKNUM    none           This command is the same as GETMULTIPICKLIST
                                  except that it is faster because it only
                                  gets MULTIPICK_NUM rather than the entire
                                  Multipick list.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

GETOBJECTNAMELIST  none           This command gets the names of all objects
                                  in the DETAIL/SPLINE/STAGE editors.  Works
                                  the same as GETMULTIPICK list but doesn't
                                  matter if object is 'Picked' or not.  Also
                                  uses different variables:
 variable name:
 -----------------
 OBJECTNAME_NUM         The actual number of groups/objects/faces/edges/points
                        picked.  From 0 to 32767.

 OBJECTNAME.#####       The names or objects in the DETAIL/SPLINE/STAGE editor.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

GETAXISINFO        none           Gets the world coords of the 'Picked' object.
                                  Sets these variables:

 variable name:
 -----------------
 AXIS_POSITION_X        Axis position.
 AXIS_POSITION_Y
 AXIS_POSITION_Z

 AXIS_ALIGNMENT_X       Axis alignment.
 AXIS_ALIGNMENT_Y
 AXIS_ALIGNMENT_Z

 AXIS_SIZE_X            Axis size.
 AXIS_SIZE_Y
 AXIS_SIZE_Z

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

TRANSFORM_ROTATE       # # #      Use these commands to bypass Imagine's
TRANSFORM_SCALE                   'Transform' requester.
TRANSFORM_TRANSLATE               ex:
TRANSFORM_ALIGNMENT                   PICK 'DISK.1'
TRANSFORM_SIZE                        TRANSFORM_POSITION 0 0 0
TRANSFORM_POSITION                    TRANSFORM_ALIGNMENT 30 0 0

TRANSFORMA_ROTATE      # # #      Transforms only the object's AXIS.
TRANSFORMA_SCALE                  ex:
TRANSFORMA_TRANSLATE                  PICK 'PLANE.1'
TRANSFORMA_ALIGNMENT                  TRANSFORMA_TRANSLATE 0 50 50
TRANSFORMA_SIZE
TRANSFORMA_POSITION

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

GETATTRIBUTES      options        This command gets the desired attributes from
                                  an object and sets several rexx variables to
                                  these values.  You can then change any of
                                  these variables and use the rexx command
                                  SETATTRIBUTES to send them back to Imagine.



             'Options' can be any combination of the following all on the
             command line (if no options are specified, default is all
             object attributes):

   (option)       variable name:               description:
 -------------  --------------------        -----------------------------------
 OBJECTNAME     ATTRIB.OBJECTNAME           set to object's name

 COLOR          ATTRIB.COLOR_R              set to object's color values
                ATTRIB.COLOR_G
                ATTRIB.COLOR_B

 REFLECT        ATTRIB.REFLECT_R            set to object's reflect values
                ATTRIB.REFLECT_G
                ATTRIB.REFLECT_B

 FILTER         ATTRIB.FILTER_R             set to object's filter values
                ATTRIB.FILTER_G
                ATTRIB.FILTER_B

 SPECULAR       ATTRIB.SPECULAR_R           set to object's specular value
                ATTRIB.SPECULAR_G
                ATTRIB.SPECULAR_B

 HARDNESS       ATTRIB.HARDNESS             set to object's hardness value

 ROUGHNESS      ATTRIB.ROUGHNESS            set to object's roughness value

 SHININESS      ATTRIB.SHININESS            set to object's shininess value

 BRIGHTNESS     ATTRIB.BRIGHTNESS           set to object's brightness value

 REFRACTIVE     ATTRIB.REFRACTIVE           set to object's index of refraction

 FOGLENGTH      ATTRIB.FOGLENGTH            set to object's fog length

 PHONG          ATTRIB.PHONG                set to ON or OFF

 BOUNDINGBOX    ATTRIB.BOUNDINGBOX          set to ON or OFF

 LIGHT          ATTRIB.LIGHT                set to ON or OFF.  If ON, these
                                            variables are set too:

                ATTRIB.LIGHT_R              set to light color
                ATTRIB.LIGHT_G
                ATTRIB.LIGHT_B
                ATTRIB.LIGHT_PS             ON if Point Source, else OFF
                ATTRIB.LIGHT_PR             ON if Parallel Rays, else OFF
                ATTRIB.LIGHT_ROUND          ON if Round Shape, else OFF
                ATTRIB.LIGHT_RECT           ON if Rectangular, else OFF
                ATTRIB.LIGHT_CS             ON if Cast Shadows, else OFF
                ATTRIB.LIGHT_SS             ON if Soft Shadows, else OFF
                ATTRIB.LIGHT_DI             ON if Diminishing Intensity,
                                            else OFF
                ATTRIB.LIGHT_CF             ON if Controlled Falloff, else OFF
                ATTRIB.LIGHT_NOLF           ON if No Lens Flare, else OFF


 TEXTUREBRUSH   ATTRIB.TXBR_NUM             set to number of textures and
                                            brushes object has. Also sets
                                            these variables:

                ATTRIB.TXBR_TYPE.##         set to TEXTURE or BRUSH

                ATTRIB.TXBR_NAME.##         filename of texture/brush
                ATTRIB.TXBR_LABEL.##        label to identify texture/brush

                ATTRIB.TXBR_SUBGROUP.##     name of subgroup applied to

                ATTRIB.TXBR_LOCKSTATE.##    name of lockstate

                ATTRIB.TXBR_MIXMORPH.##     set to texture/brush mix morph value

                ATTRIB.TXBR_CHILDREN.##     ON if 'Apply to Children', else OFF

                ATTRIB.TXBR_POSITION_X.##   texture/brush axis position
                ATTRIB.TXBR_POSITION_Y.##
                ATTRIB.TXBR_POSITION_Z.##
                ATTRIB.TXBR_ALIGNMENT_X.##  texture/brush axis alignment
                ATTRIB.TXBR_ALIGNMENT_Y.##
                ATTRIB.TXBR_ALIGNMENT_Z.##
                ATTRIB.TXBR_SIZE_X.##       texture/brush axis size
                ATTRIB.TXBR_SIZE_Y.##
                ATTRIB.TXBR_SIZE_Z.##


                ATTRIB.TXTR_VALUE1.##       **If ATTRIB.TXBR_TYPE is TEXTURE,
                ATTRIB.TXTR_VALUE2.##       these variables contain the 16
                         .                  values that control the texture.
                         .
                ATTRIB.TXTR_VALUE15.##
                ATTRIB.TXTR_VALUE16.##

                                            **If ATTRIB.TXBR_TYPE is BRUSH,
                                            these variables are set too:
                ATTRIB.BRSH_FSV.##          set to 'Full Scale Value'
                ATTRIB.BRSH_MAXSEQ.##       set to 'Max Sequence #'
                ATTRIB.BRSH_REPEAT.##       ON if Repeat, else OFF
                ATTRIB.BRSH_MIRROR.##       ON if Mirror, else OFF
                ATTRIB.BRSH_INVERSE.##      ON if Inverse Video, else OFF
                ATTRIB.BRSH_GENLOCK.##      ON if Use Genlock, else OFF
                ATTRIB.BRSH_TYPE.##         set to one of the following:
                                                     COLOR
                                                     REFLECT
                                                     FILTER
                                                     SPECULAR
                                                     AMBIENT
                                                     ENVIRONMENT
                                                     ALTITUDE
                                                     HARDNESS
                                                     ROUGHNESS
                                                     BRIGHTNESS
                                                     SHININESS
                                                     REFRACT
                                                     FOG
                ATTRIB.BRSH_FOGFROM.##      If ATTRIB.BRSH_TYPE is FOG, these
                ATTRIB.BRSH_FOGTO.##        are set to the fog from & to
                ATTRIB.BRSH_WRAP.##         set to one of the following:
                                                     FLAT
                                                     CYLINDERX
                                                     CYLINDERZ
                                                     SPHERE

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

SETATTRIBUTES      options        This command sets an object's attributes to
                                  those variables represented by the options
                                  you specify on the command line.  'Options'
                                  can be any combination of the valid options
                                  for the GETATTRIBUTES command - but you must
                                  specify at least one 'option' - if you want
                                  to set all options, include them all on the
                                  command line.

                                  For the list of options and the variables
                                  they are connected to, look back at the
                                  GETATTRIBUTES command.

      ---------------------------------------------------------------------

      Here are a few example code fragments:


      PICK 'AXIS.1'               /*changes name of object*/
      ATTRIB.NAME = 'UPPER_ARM'   /*don't use spaces in your object*/
      SETATTRIBUTES 'OBJECTNAME'  /*names as it tends to confuse*/
                                  /*arexx when parsing some commands*/

      ---------------------------------------------------------------------

      GETATTRIBUTES
      t = 0; b = 0
      do i = 1 to ATTRIB.TXBR_NUM while (TXBR_NUM ~= 0)
        if ATTRIB.TXBR_TYPE.i = 'BRUSH' then
          b = b + 1
        else
          t = t + 1
      end
      NOTIFY b' brushes, 't' textures'

      ---------------------------------------------------------------------

      PICK 'AXIS.1'               /*use 'AXIS.1' to position a texture on*/
      GETAXISINFO                 /*object 'PLANE'*/
      UNPICK 'AXIS.1'
      PICK 'PLANE'
      ATTRIB.TXBR_NUM = 1         /*a note here about ATTRIB.TXBR_NUM, when
                                    'SETATTRIBUTES'ing an object, you must
                                    define all textures/brushes up to TXBR_NUM.
                                    This is fine when you GETATTRIBUTES
                                    'TEXTUREBRUSH' first and then modify
                                    individual TXBR_ variables becuase they
                                    are set by the GETATTRIBUTES command.  If
                                    ATTRIB.TXBR_NUM is set to 0, all textures/
                                    brushes are dropped.*/
      ATTRIB.TXBR_TYPE.1        = 'TEXTURE'
      ATTRIB.TXBR_NAME.1        = 'imagine:textures/checks'  /*no .itx*/
      ATTRIB.TXTR_VALUE1.1      = 20
      ATTRIB.TXBR_POSITION_X.1  = AXIS_POSITION_X
      ATTRIB.TXBR_POSITION_Y.1  = AXIS_POSITION_Y
      ATTRIB.TXBR_POSITION_Z.1  = AXIS_POSITION_Z
      ATTRIB.TXBR_ALIGNMENT_X.1 = AXIS_ALIGNMENT_X
      ATTRIB.TXBR_ALIGNMENT_Y.1 = AXIS_ALIGNMENT_Y
      ATTRIB.TXBR_ALIGNMENT_Z.1 = AXIS_ALIGNMENT_Z
      ATTRIB.TXBR_SIZE_X.1      = AXIS_SIZE_X
      ATTRIB.TXBR_SIZE_Y.1      = AXIS_SIZE_Y
      ATTRIB.TXBR_SIZE_Z.1      = AXIS_SIZE_Z
      SETATTRIBUTES 'TEXTUREBRUSH'

      ---------------------------------------------------------------------

      PICK 'SPHERE'
      FACEMODE
      PICK 'LEFTQUADRANT'
      ATTRIB.COLOR_R = 255; ATTRIB.COLOR_G = 0 ; ATTRIB.COLOR_B = 0
      ATTRIB.FILTER_R = 0; ATTRIB.FILTER_G = 0 ; ATTRIB.FILTER_B = 0
      SETATTRIBUTES 'COLOR FILTER'

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

STRIPOBJECT        options        This command is used in the DETAIL editor to
                                  remove various attributes from objects. You
                                  can use any combination of the following
                                  options on the command line to 'Strip' things
                                  from objects.  If no options are specified,
                                  default is 'ALL'.  Select from:
                                    ALL
                                    ATTRIBS
                                    BRUSHES      ex:
                                    TEXTURES         STRIPOBJECT 'BONES STATES'
                                    SUBGROUPS        STRIPOBJECT
                                    FORMS
                                    STATES
                                    BONES
                                    SHARPEDGES
                                    QUICKEDGES
                                    PARTICALS

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

ADDAXIS            none           This command adds a default axis.

ADDCSGSPHERE       none           This command adds a CSG (perfect) sphere.

ADDGROUND          none           This command adds a ground object.

ADDOPENPATH        filename       This command adds a default open path to the
                                  DETAIL or STAGE editor.  If used in the STAGE
                                  editor, specify the filename to save it as as
                                  the lone argument.

ADDCLOSEDPATH      filename       This command adds a default closed path to
                                  the DETAIL or STAGE editor.  If used in the
                                  STAGE editor, specify the filename to save it
                                  as as the lone argument.

ADDSPHERE          # # # FLAG     This command adds a sphere to the DETAIL
                                  editor.  The arguments, in order, are Radius,
                                  CircleSections, VerticalSections, & Stagger
                                  Points(ON/OFF).
                                  ex:

                                      ADDSPHERE '50.25 12 8 ON'

ADDTUBE            # # # # FLAG   This command adds a tube to the DETAIL
                   FLAG FLAG      editor.  The arguments, in order, are Radius,
                                  Height, CircleSections, VerticalSections,
                                  StaggerPoints(ON/OFF), CloseBottom(ON/OFF), &
                                  CloseTop(ON/OFF).
                                  ex:

                                      ADDTUBE '25 15.8 15 3 OFF ON ON'

ADDCONE            # # # # FLAG   This command adds a cone to the DETAIL
                   FLAG           editor.  The arguments, in order, are Radius,
                                  Height, CircleSections, VerticalSections,
                                  StaggerPoints(ON/OFF), & CloseBottom(ON/OFF).
                                  ex:

                                      ADDCONE '15 100 8 20 OFF ON'

ADDTORUS           # # # # FLAG   This command adds a Torus to the DETAIL
                                  editor.  The arguments, in order, are
                                  RingRadius, TubeRadius, RingSections,
                                  TubeSections, & StaggerPoints(ON/OFF).
                                  ex:

                                      ADDTORUS '100 50 24 12 ON'

ADDDISK            # #            This command adds a Disk to the DETAIL
                                  editor.  The arguments are Radius, and
                                  Sections.
                                  ex:

                                      ADDDISK '50 24'

ADDPLANE           # # # #        This command adds a Plane to the DETAIL
                                  editor.  The arguments, in order, are Width,
                                  Height, HorzSections, & VertSections.
                                  ex:

                                      ADDPLANE '100 100 10 10'

ADDDEFORMTOOL      # # # # # #    This command adds a 'Deform' tool to the
                                  DETAIL editor.  The arguments, in order, are
                                  X Size, Y Size, Z Size, X Divisions, Y
                                  Divisions, & Z Divisions.
                                  ex:

                                      ADDDEFORMTOOL '100 100 100 3 3 3'

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

GETGEOMETRY        none           This command gets the face, edge and point
                                  lists of the picked object in the DETAIL
                                  editor.  This command sets several variables
                                  which you may manipulate and then SETGEOMETRY
                                  SETATTRIBUTES to send them back to Imagine.

 variable name:
 -----------------
 PNT_NUM                The number of points in the object.  From 0 to 32767.
 PNT_X.#####
 PNT_Y.#####            The coords of point #####.
 PNT_Z.#####

 EDGE_NUM               The number of edges in the object.  From 0 to 32767.
 EDGE_1.#####           1st point of edge.
 EDGE_2.#####           2nd point of edge.

 FACE_NUM               The number of faces in the object. From 0 to 32767.
 FACE_1.#####           1st point of face.
 FACE_2.#####           2nd point of face.
 FACE_3.#####           3rd point of face.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

SETGEOMETRY        none           This command changes the picked object's
                                  geometry based on the values you set or have
                                  changed in your rexx script.  It uses the
                                  same variables as GETGEOMETRY.  If you change
                                  the number of points/edges/faces, your object
                                  will lose any States or Subgroups which were
                                  defined for that object.  No error checking
                                  is done, so there's plenty of room for you
                                  to create bad objects.  This could give
                                  unpredictable raytraces and possibly (well,
                                  probably) crash Imagine.
                                  ex:

                                      GETGEOMETRY    /*scale object by 80%*/
                                      do i = 1 to PNT_NUM while (PNT_NUM ~= 0)
                                        PNT_X.i = PNT_X.i * .8
                                        PNT_Y.i = PNT_Y.i * .8
                                        PNT_Z.i = PNT_Z.i * .8
                                      end
                                      SETGEOMETRY

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

ADDPOINT           # # #          This command adds a point at the specified
                                  coordinates in the DETAIL editor when in
                                  Add Points mode.

ADDEDGE            # #            This command adds a edge between the two
                                  specified points.  Works in Add Edge mode.

ADDFACE            # # #          This command adds a face between the three
                                  specified points.  Works in Add Face mode.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

MAKEPATH           none           Makes picked axis into path in DETAIL editor.

MAKECLOSEDPATH     none           Makes picked axis into closed path in DETAIL
                                  editor.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

GROUPCASCADE       none           Same as 'Cascade Group' in Imagine's DETAIL
                                  editor menu.

GROUP              none           Same as in Imagine's DETAIL editor menu.

UNGROUP            none           Same as in Imagine's DETAIL editor menu.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

UNHOOK             none           Same as in Imagine's DETAIL editor menu.

REHOOK             none           Same as in Imagine's DETAIL editor menu.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

DELETE             none           This command may be used in the DETAIL,
                                  SPLINE, or STAGE editor.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

APPLY              none           Same as in Imagine's DETAIL editor menu.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

JOIN               none           Same as in Imagine's DETAIL editor menu.

MERGE              none           Same as in Imagine's DETAIL editor menu.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

SKIN               none           Same as in Imagine's DETAIL editor menu.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

SLICE              none           Same as in Imagine's DETAIL editor menu.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

SPLIT              none           Same as in Imagine's DETAIL editor menu.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

LATTICIZE          #              This command works the same as in Imagine's
                                  DETAIL editor menu.  The command expects the
                                  'Latticize' percent as its only argument.
                                  ex:

                                      LATTICIZE 50.42

FRACTURE           #              This command works the same as in Imagine's
                                  DETAIL editor menu.  The command expects the
                                  'Fracture' percent as its only argument.
                                  ex:

                                      FRACTURE .8

SMOOTHFRACTURE     #              This command works the same as in Imagine's
                                  DETAIL editor menu.  You must be in Pick
                                  Edge mode.  The command expects the 'Curve
                                  Complexity' as its only argument.
                                  ex:

                                      SMOOTHFRACTURE 3

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

SMOOTHINGTOOL      #              This command works the same as in Imagine's
                                  DETAIL editor menu.  The command expects the
                                  'Smoothing Iterations' as its only argument.
                                  'Lock Perimeter Points' is off by default.
                                  ex:

                                      SMOOTHINGTOOL 5

SMOOTHINGTOOLLOCK  #              This command is the same as SMOOTHINGTOOL
                                  except that 'Lock Perimeter Points' is on by
                                  default.
                                  ex:

                                      SMOOTHINGTOOLLOCK 5

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

DEFORMTOOL         toolname       This command uses the 'Deform Tool' toolname
                                  on the 'picked' object in the DETAIL editor.
                                  ex:

                                      DEFORMTOOL 'DTOOL_3_3_3'

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

MAKESHARPEDGES     none           Makes 'Picked' edges 'sharp'.  Same as in
                                  Imagine's DETAIL editor menu.

MAKESOFTEDGES      none           Same as in Imagine's DETAIL editor menu.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

MAKEQUICKEDGES     none           Same as in Imagine's DETAIL editor menu.

UNMAKEQUICKEDGES   none           Same as in Imagine's DETAIL editor menu.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

SETEDGELINE        none           Same as in Imagine's DETAIL editor menu.

FILLTOEDGELINE     none           Same as in Imagine's DETAIL editor menu.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

SMOOTHEDGELINE     #              This command works the same as in Imagine's
                                  DETAIL editor menu.  You must be in Pick
                                  Edge mode.  The command expects the 'Curve
                                  Complexity' as its only argument.
                                  ex:

                                      SMOOTHEDGELINE 3

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

TAUT               none           Same as in Imagine's DETAIL editor menu.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

WAVE               none           Same as in Imagine's DETAIL editor menu.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

CONVERTIFF         filename       This command loads the picture 'filename' and
                                  tries to make it into an Imagine object.
                                  Same as in Imagine's DETAIL editor menu.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

MAKESUBGROUP       name           This command will create a new subgroup for
                                  an object consisting of the 'picked' faces.

UNMAKESUBGROUP     name           This command will 'Unmake' the named
                                  subgroup.  Same as in Imagine's DETAIL editor
                                  menu.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

GETSUBGROUPLIST    none           This command gets the names of an object's
                                  subgroups from Imagine and places them in an
                                  array. The following variables are used:
 variable name:
 -----------------
 SUBGROUP_NUM           The number of subgroups in the 'picked' object.

 SUBGROUP.#####         The names of the object's subgroups.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

MAKEBIGBONESUBGRP     axisname    Same as in Imagine's DETAIL editor menu.
                                  Must be in Pick Face mode.  Makes 'picked'
                                  faces the 'Big Bone' subgroup of 'axisname'.                                  

MAKESMALLBONESUBGRP   axisname    Same as MAKEBIGBONESUBGRP but instead makes
                                  the 'Small Bone' subgroup for 'axisname'.


+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

GETBIGBONESUBGRP      none        This command sets the rexx variable BONE to
                                  the 'Big Bone' subgroup name for the picked
                                  axis.
 variable name:
 -----------------
 BONE                   The name of the subgroup for the given bone axis.


GETSMALLBONESUBGRP    none        Same as GETBIGBONESUBGRP but for the 'Small
                                  Bone' subgroup name.  If the selected axis
                                  doesn't have a bone subgroup defined for it,
                                  BONE will be NULL.

SETBIGBONESUBGRP      none        This command sets the 'Big Bone' subgroup of
                                  the picked axis to the value of BONE.

SETSMALLBONESUBGRP    none        Same as SETBIGBONESUBGRP but sets the name of
                                  the 'Small Bone' subgroup.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

STATES_GETLIST     none           This command gets the names of an object's
                                  states from Imagine and places them in an
                                  array. The following variables are used:
 variable name:
 -----------------
 STATE_NUM              The number of states in the 'picked' object.

 STATE.#####            The names of the object's states.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

STATES_GETINFO     statename      This command gets the state's properties
                                  for the 'statename' of the picked object.
                                  It sets the following variables:
 variable name:
 -----------------
 STATE_SHAPE            Each can be either ON or OFF.  All must be defined
 STATE_COLOR            when modifying a state with the STATES_ commands.
 STATE_GROUP
 STATE_PROPS            - this is object props
 STATE_TXBRS            - this is texture/brushes


STATES_SETINFO     statename      Sets the states of 'statename' according to
                                  the values of the STATE_ variables listed
                                  above.

STATES_DELETE      statename      Deletes 'statename' from the picked object.
                                  All properties are deleted from the given
                                  state.  The STATE_ variables do not affect
                                  this command.

STATES_SETTO       statename      Modifies the picked object to the named
                                  state 'statename'.  This modifies only the
                                  properties STATE_ variables that are 'ON'.

STATES_TWEEN       statename #    This modifies the picked object '# percent'
                                  towards the object state 'statename'.  It
                                  modifies the properties only of the STATE_
                                  variables that are 'ON'.
                                  ex:

                                      STATES_TWEEN 'RUNNING 45'

STATES_CLONE       statename      This command creates a new state named
                                  'statename'.  It clones the picked object's
                                  state whose name is in the rexx variable
                                  STATE.1  Only those STATE_ variables that
                                  are 'ON' are cloned.

STATES_CREATE      statename      This command creates a new state named
                                  'statename'.  Only the properties of the
                                  STATE_ variables that are 'ON' are saved in
                                  the state.  If a STATE_ variable is not 'ON'
                                  it must be set to 'OFF'.

STATES_IMPORT      objectname     This command 'imports' a state from another
                                  object.  This command uses the rexx variable
                                  STATE.1 to select the state of the object
                                  'objectname' to import into the currently
                                  picked object.  Only those STATE_ variables
                                  that are 'ON' are imported.

STATES_UPDATE      statename      This command updates the state 'statename'
                                  according to the values of the STATE_
                                  variables that are 'ON'.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

ALIGNMENTBAR       none           These commands work in the STAGE editor.
                                  they set new keyframes for the picked
POSITIONBAR        none           object's Alignment, Position, and Size.
                                  To save changes, you must change editors
SIZEBAR            none           with the SAVECHANGES argument.
                                  ex:
                                      POSITIONBAR
                                      PROJECTEDITOR SAVECHANGES

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

GROUPMODE          none           This command switches to 'Pick Groups' mode.

OBJECTMODE         none           This command switches to 'Pick Objects' mode.

FACEMODE           none           This command switches to 'Pick Faces' mode.

EDGEMODE           none           This command switches to 'Pick Edges' mode.

POINTMODE          none           This command switches to 'Pick Points' mode.

ADDFACEMODE        none           This command switches to 'Add Faces' mode.

ADDEDGEMODE        none           This command switches to 'Add Edges' mode.

ADDPOINTMODE       none           This command switches to 'Add Points' mode.

ADDLINEMODE        none           This command switches to 'Add Lines' mode.

DRAGPOINTMODE      none           This command switches to 'Drag Points' mode.

HIDEPOINTMODE      none           This command switches to 'Hide Points' mode.

EDITPATHMODE       none           This command switches to 'Edit Path' mode.

FORMEDITMODE       none           This commnad switches to 'Edit' mode in the
                                  FORMS editor.

FORMADDMODE        none           This command switches to 'Add' mode in the
                                  FORMS editor.

FORMDELETEMODE     none           This command switches to 'Delete' mode in
                                  the FORMS editor.

CYCLEPIVOTMODE     none           This command switches to 'Pivot' mode in the
                                  CYCLES editor.

CYCLETWISTMODE     none           This command switches to 'Twist' mode in the
                                  CYCLES editor.

CYCLEMOVEMODE      none           This command switches to 'Move' mode in the
                                  CYCLES editor.

CYCLEADDMODE       none           This command switches to 'Add' mode in the
                                  CYCLES editor.

CYCLEDELETEMODE    none           This command switches to 'Delete' mode in
                                  the CYCLES editor.

CYCLEASSIGNMODE    none           This command switches to 'Assign' mode in
                                  the CYCLES editor.

CYCLEDEASSIGNMODE  none           This command switches to 'DeAssign' mode in
                                  the CYCLES editor.

SPLINEPICKKNOTMODE     none       This command switches to 'Pick Knot' mode in
                                  the SPLINE editor

SPLINEADDKNOTMODE      none       This command switches to 'Add Knot' mode in
                                  the SPLINE editor

SPLINEKNOTCONTROLMODE  none       This command switches to 'Knot Control' mode
                                  in the SPLINE editor

===============================================================================
===============================================================================

     Here is a alphabetical list of Imagine's 195 arexx commands:

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

 ABOUT                      GETPREFS                  QUICKRENDER
 ACTIONEDITOR               GETSMALLBONESUBGRP        REHOOK
 ACTIVATEIMAGINE            GETSUBGROUPLIST           SAVEDXFOBJECT
 ADDAXIS                    GETSUBPROJECTINFO         SAVEOBJECT
 ADDCSGSPHERE               GRID                      SAVEPOINTS
 ADDCLOSEDPATH              GROUP                     SELECT
 ADDCONE                    GROUPCASCADE              SETATTRIBUTES
 ADDDEFORMTOOL              GROUPMODE                 SETBIGBONESUBGRP
 ADDDISK                    HIDEPOINTMODE             SETEDGELINE
 ADDEDGE                    HIDEUNPICKED              SETGEOMETRY
 ADDEDGEMODE                IMAGINETOFRONT            SETSMALLBONESUBGRP
 ADDFACE                    IMAGINETOBACK             SETZONE
 ADDFACEMODE                JOIN                      SIZEBAR
 ADDGROUND                  KEY_B                     SKIN
 ADDLINEMODE                KEY_C                     SLICE
 ADDOPENPATH                KEY_E                     SMOOTHEDGELINE
 ADDPLANE                   KEY_ESCAPE                SMOOTHFRACTURE
 ADDPOINT                   KEY_H                     SMOOTHINGTOOL
 ADDPOINTMODE               KEY_L                     SMOOTHINGTOOLLOCK
 ADDSPHERE                  KEY_M                     SNAPTOGRID
 ADDTORUS                   KEY_O                     SORT
 ADDTUBE                    KEY_P                     SPLINEADDKNOTMODE
 ALIGNMENTBAR               KEY_R                     SPLINEEDITOR
 APPLY                      KEY_S                     SPLINEKNOTCONTROLMODE
 BEEP                       KEY_SPACE                 SPLINEPICKKNOTMODE
 CENTERAT                   KEY_T                     SPLIT
 CLEARBACKDROP              KEY_W                     STAGEEDITOR
 CLEARZONE                  KEY_X                     STARTRENDER
 CONVERTIFF                 KEY_Y                     STATES_CLONE
 COORDS                     KEY_Z                     STATES_CREATE
 CYCLEADDMODE               LATTICIZE                 STATES_DELETE
 CYCLEASSIGNMODE            LAYERS                    STATES_GETINFO
 CYCLEDEASSIGNMODE          LOADBACKDROP              STATES_GETLIST
 CYCLEDELETEMODE            LOADDXFOBJECT             STATES_IMPORT
 CYCLEEDITOR                LOADOBJECT                STATES_SETINFO
 CYCLEMOVEMODE              MAKEBIGBONESUBGRP         STATES_SETTO
 CYCLEPIVOTMODE             MAKECLOSEDPATH            STATES_TWEEN
 CYCLETWISTMODE             MAKEPATH                  STATES_UPDATE
 DEFORMTOOL                 MAKEQUICKEDGES            STOPRENDER
 DELETE                     MAKESHARPEDGES            STRIPOBJECT
 DETAILEDITOR               MAKESMALLBONESUBGRP       TAUT
 DISPLAYNEWMODE             MAKESOFTEDGES             TRANSFORM_ALIGNMENT
 DISPLAYREDRAW              MAKESUBGROUP              TRANSFORM_POSITION
 DISPLAYRESETVIEWS          MERGE                     TRANSFORM_ROTATE
 DISPLAYREXXPTR             MODIFYSUBPROJECT          TRANSFORM_SCALE
 DISPLAYSHADED              MOUSE_BUTTONDOWN          TRANSFORM_SIZE
 DISPLAYSOLID               MOUSE_BUTTONUP            TRANSFORM_TRANSLATE
 DISPLAYSTOPREDRAW          MOUSE_GET                 TRANSFORMA_ROTATE
 DISPLAYWIREFRAME           MOUSE_MOVETO              TRANSFORMA_SCALE
 DRAGPOINTMODE              MULTIPICKOFF              TRANSFORMA_TRANSLATE
 EDGEMODE                   MULTIPICKON               TRANSFORMA_ALIGNMENT
 EDITPATHMODE               NEWPROJECT                TRANSFORMA_SIZE
 FACEMODE                   NEWSUBPROJECT             TRANSFORMA_POSITION
 FILLTOEDGELINE             NOTIFY                    UNGROUP
 FORMADDMODE                OBJECTMODE                UNHIDE
 FORMDELETEMODE             OPENPROJECT               UNHIDEALL
 FORMEDITMODE               OPENSUBPROJECT            UNHOOK
 FORMSEDITOR                PAUSERENDER               UNMAKEQUICKEDGES
 FRACTURE                   PICK                      UNMAKESUBGROUP
 GETATTRIBUTES              PICKMETHOD                UNPICK
 GETAXISINFO                PICKRANGE                 UNPICKRANGE
 GETBIGBONESUBGRP           POINTMODE                 UNSELECT
 GETGEOMETRY                POSITIONBAR               WAVE
 GETMULTIPICKLIST           PROJECTEDITOR             WORKBENCHTOFRONT
 GETMULTIPICKNUM            PROJECTRANGE              WORKBENCHTOBACK
 GETOBJECTNAMELIST          RESUMERENDER              ZOOM
===============================================================================
===============================================================================

   Here is the list of arexx variables used to communicate with Imagine:

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

      ATTRIB.OBJECTNAME
      ATTRIB.COLOR_R                        SUBPROJMETHOD
      ATTRIB.COLOR_G                        SUBPROJPRESET
      ATTRIB.COLOR_B                        SUBPROJWIDTH
      ATTRIB.REFLECT_R                      SUBPROJHEIGHT
      ATTRIB.REFLECT_G                      SUBPROJXASPECT
      ATTRIB.REFLECT_B                      SUBPROJYASPECT
      ATTRIB.FILTER_R                       SUBPROJVIEWMODE
      ATTRIB.FILTER_G                       SUBPROJOPTIONS
      ATTRIB.FILTER_B                       SUBPROJBLUR
      ATTRIB.SPECULAR_R                     SUBPROJSHUTTER
      ATTRIB.SPECULAR_G                     SUBPROJSTILLSPATH
      ATTRIB.SPECULAR_B                     SUBPROJMOVIEPATH
      ATTRIB.HARDNESS                       SUBPROJSTILLSFORMAT
      ATTRIB.ROUGHNESS                      SUBPROJMOVIEFORMAT
      ATTRIB.SHININESS                      SUBPROJECTNAME
      ATTRIB.BRIGHTNESS                     PROJECTNAME
      ATTRIB.REFRACTIVE
      ATTRIB.FOGLENGTH                      PALETTEMETHOD
      ATTRIB.PHONG                          QRPALETTEMETHOD
      ATTRIB.BOUNDINGBOX                    QRLIGHTSOURCE
      ATTRIB.LIGHT                          QRHORZLIGHT
      ATTRIB.LIGHT_R                        QRVERTLIGHT
      ATTRIB.LIGHT_G                        QRDEFOCUS
      ATTRIB.LIGHT_B                        QRSHOWPIC
      ATTRIB.LIGHT_PS                       QRKEEPPIC
      ATTRIB.LIGHT_PR
      ATTRIB.LIGHT_ROUND                    PNT_NUM
      ATTRIB.LIGHT_RECT                     PNT_X.#####
      ATTRIB.LIGHT_CS                       PNT_Y.#####
      ATTRIB.LIGHT_SS                       PNT_Z.#####
      ATTRIB.LIGHT_DI                       EDGE_NUM
      ATTRIB.LIGHT_CF                       EDGE_1.#####
      ATTRIB.LIGHT_NOLF                     EDGE_2.#####
      ATTRIB.TXBR_NUM                       FACE_NUM
      ATTRIB.TXBR_TYPE.##                   FACE_1.#####
      ATTRIB.TXBR_NAME.##                   FACE_2.#####
      ATTRIB.TXBR_LABEL.##                  FACE_3.#####
      ATTRIB.TXBR_SUBGROUP.##
      ATTRIB.TXBR_LOCKSTATE.##              SUBGROUP_NUM
      ATTRIB.TXBR_MIXMORPH.##               SUBGROUP.#####
      ATTRIB.TXBR_CHILDREN.##               BONE
      ATTRIB.TXBR_POSITION_X.##
      ATTRIB.TXBR_POSITION_Y.##             STATE_NUM
      ATTRIB.TXBR_POSITION_Z.##             STATE.#####
      ATTRIB.TXBR_ALIGNMENT_X.##            STATE_SHAPE
      ATTRIB.TXBR_ALIGNMENT_Y.##            STATE_COLOR
      ATTRIB.TXBR_ALIGNMENT_Z.##            STATE_GROUP
      ATTRIB.TXBR_SIZE_X.##                 STATE_PROPS
      ATTRIB.TXBR_SIZE_Y.##                 STATE_TXBRS
      ATTRIB.TXBR_SIZE_Z.##
      ATTRIB.TXTR_VALUE1.##                 FRAME_NUM
      ATTRIB.TXTR_VALUE2.##                 FRAME_START
      ATTRIB.TXTR_VALUE3.##                 FRAME_END
      ATTRIB.TXTR_VALUE4.##                 LAYER
      ATTRIB.TXTR_VALUE5.##                 STATE.1
      ATTRIB.TXTR_VALUE6.##
      ATTRIB.TXTR_VALUE7.##                 MULTIPICK_NUM
      ATTRIB.TXTR_VALUE8.##                 MULTIPICK.#####
      ATTRIB.TXTR_VALUE9.##
      ATTRIB.TXTR_VALUE10.##                OBJECTNAME_NUM
      ATTRIB.TXTR_VALUE11.##                OBJECTNAME.#####
      ATTRIB.TXTR_VALUE12.##
      ATTRIB.TXTR_VALUE13.##                AXIS_POSITION_X
      ATTRIB.TXTR_VALUE14.##                AXIS_POSITION_Y
      ATTRIB.TXTR_VALUE15.##                AXIS_POSITION_Z
      ATTRIB.TXTR_VALUE16.##                AXIS_ALIGNMENT_X
      ATTRIB.BRSH_FSV.##                    AXIS_ALIGNMENT_Y
      ATTRIB.BRSH_MAXSEQ.##                 AXIS_ALIGNMENT_Z
      ATTRIB.BRSH_REPEAT.##                 AXIS_SIZE_X
      ATTRIB.BRSH_MIRROR.##                 AXIS_SIZE_Y
      ATTRIB.BRSH_INVERSE.##                AXIS_SIZE_Z
      ATTRIB.BRSH_GENLOCK.##
      ATTRIB.BRSH_TYPE.##                   MOUSE_X
      ATTRIB.BRSH_FOGFROM.##                MOUSE_X
      ATTRIB.BRSH_FOGTO.##                  MOUSE_Z
      ATTRIB.BRSH_WRAP.##                   MOUSE_VIEW


===============================================================================
===============================================================================

     Well, that's it.  Have fun and remember the best way to use this software

is to experiment.


     The Gang at Impulse.

