Object Transformation via the Keyboard
Mark Meier, 76330,3402, Version 1.0a
This routine is free.

*** Please note: This routines REQUIRES 800x600 min resolution.  If you are
running at less than this, 3ds will crash. 

Save your work before you begin.  I've tested this on my ONE machine and 
it works okay, but there is always the chance for bugs, and if so, protect
your precious data!!! ***

The following is a brief description of the dialog box and the options 
available.  Please experiment and I think you'll get the idea pretty
quickly.

=========================================================================
*Transformation: [Translate]  [Scale]  [Rotate]

From the Transformation radio buttons, select which operation you desire.

=========================================================================
*Translate / Scale Mode: [Relative]  [Absolute]

The Translate / Scale Mode operates as follows:

For Translation, if the mode selected is Relative, any displacement you
enter in the first Coords entry area will indicate how far to translate 
the object.  If the mode selected is Absolute, you specify two points, 
a source point in the first set of coord boxes, and a destination point
in the second set of coord boxes (at the bottom of the dialog).  The routine
will move the object such the the source point is moved to the destination
point.  For scale transformations, Relative lets you specify a floating
point number to scale the object by. Absolute allows you to scale the 
bounding volume of the object to fit within the size you specify (see below).

Coordinate Options: A few examples should suffice.
-------------------------------------------------------------------------
2        (This would indicate 2 of whatever units you are in (", ', CM or M))
2.0"     (2 inches...)
5'2"
5'2-3/8" (Seperate the fraction from the whole number with the '-' sign)
5/32'    (3ds's denominator is not relevent.  Use whatever you need).
525.125'

These characters are valid.  All others cause an error. (No spaces allowed).
+-0123456789/'"

=========================================================================
*Translation Displacement (if Mode = Absolute) -or-
*Translation Source Point (if Mode = Relative) -or-
*Center of Rotation / Scale

*[Width Min ]  [Width Cen ]  [Width Max ]  [Coord->]  __________
*[Depth Min ]  [Depth Cen ]  [Depth Max ]  [Coord->]  __________
*[Height Min]  [Height Cen]  [Height Max]  [Coord->]  __________

The radio buttons above allow the user to specify a 3d point.  This point
may be a translation displacement, a translation source point, or the center
point for scale and rotation operations.  (For scale and rotate, this is 
the point which will not move, all motion will take place about this point).

The radio buttons for Height/Depth/Width allow you to choose coords from 
the source object.  For example say you were scaling an object.  If you 
would like the object to be scaled about the center of the source object,
select the [Width Cen], [Depth Cen], and [Height Cen] buttons.  The program
will read these coords from the source object and use them as the center point
of the scale operation.  If you'd rather keep the lower left corner point 
intact, select [Width Min], [Depth Min], [Height Min] and the object will be
scaled about that corner.  If you wish to specify your own coordinate, 
select the [Coord->] radio button, and type in the value you desire.
(Please note: You need to select the [Coord->] button AND type in the value.
Typing in the value alone is not enough!).  You may mix and match any 
combination of buttons and typed in coordinates.  Experiment with these
combinations as they are quite powerful.
 
=========================================================================
*Scale: Width:  ________  Depth: ________  Height: ________

If you have selected the the Scale transformation, you may fill in the 
Scale parameters.  If Relative mode is active, specify a decimal amount
to scale the object.  For example: 0.5, 0.5, 0.5 will scale the object 1/2
as large in each dimension of the object.  If you specify a negative 
scale factor, the object will be mirrored about that axis.  For example if 
you specify a height of -1.0, the object will turn upside down.
By choosing an appropriate 'Center' point, you can mirror and position 
objects very accurately.

If Absolute mode is active, the values you specify are real world sizes, 
and the object is scaled so its bounding volume will exactly fit the size 
you indicate.  Again, be aware of the center point you choose for absolute
scaling.

=========================================================================
*Rotation Axis: [Width]  [Depth]  [Height]  Angle->  _______

If you have selected the Rotation transformation, you may select an axis
and angle to rotate about.  Angles are specified in decimal degrees.
The 'Right Hand Rule' applies.

=========================================================================
*Translation Destination Point (if Mode = Absolute)

*[Width Min ]  [Width Cen ]  [Width Max ]  [Coord->]  __________
*[Depth Min ]  [Depth Cen ]  [Depth Max ]  [Coord->]  __________
*[Height Min]  [Height Cen]  [Height Max]  [Coord->]  __________

If you have selected the translation transformation, AND are using 
Absolute mode, this is where you specify the destination point of the 
translation.  The coordinate you select as the souce point will be 
translated such that it is moved to exactly this destination point.

=========================================================================
*Transformed Object Name __________

Enter the name of the transformed object here.  You will need to change
this value each time, as it is not automatically incremented.

=========================================================================
Common Errors:

1) Be sure to select the Transformation type each time!  It is easy to jump
down and just fill in the parameters, and forget to indicate which 
transformation.  It defaults to whatever one you ran last.  Same holds 
true for the Mode (Relative or Absolute).
 
2) When you enter coordinates from the keyboard, make sure you
also check the appropriate [Coord->] button.

3) Make sure you change the Transformed Object Name before you exit
the dialog box (it is not automatically updated).  If you forget and hit
OK, the program will prompt you to enter a new name if the default name
already exists.

=========================================================================
Please E-mail any bugs to Mark Meier, CIS: 76330,3402.  I'll do my best
to fix them.  Be gentle with me, I haven't been with that many PXP's yet <g>.

Mark
