CONSOLUS-MAXIMUS
MaxScript Beta 0.1.7 (04/26/2003) for 3ds max 4.x
and higher
Copyright (c) 2003 by Borislav Petrov |
|
SHORT
DESCRIPTION |
Consolus-Maximus
(C-M) is
a CAD-Style command line interface for quick access to some operations including
- Creating Objects
- Editing Properties
- Selecting Objects
- Filtering Selection by Classes
- Renaming Objects
- Deleting Objects,
- Adding Modifiers
- Moving Objects,
- Creating Splines using Absolute and
Relative input
and more.
In a way, it is like mini MAXScript Listener on
steroids - while it supports only a small set of commands, it is blazingly fast as it
features auto-completion logic and
usually calls commands with a single keystroke!
For example, just typing 'C G B ' causes the
command "Create GeometryClass Box" to be expanded and executed in
the Console, thus creating a new Box in the scene with just few keystrokes! |
|
PREVIEW
MOVIES!!! |
The following short Camtasia movies show some basic
workflow in C-M. Please note that the movies were recorded in real time without
any time compression. C-M could work even faster, but you wouldn't see a thing
;o)
For best results, you can install the TechSmith
CODEC which is also part of the Camtasia package. The DivX versions are
lower quality and larger.
-
Basic Object Creation
-
Spline Creation with Absolute, Relative, Polar and
Incremental input
|
VERSION
HISTORY |
-
v.0.1.7- 04/26/2003 - First public download version.
Added access to Modifier properties.
-
v.0.1.5- 04/25/2003 - WorldPolar and PolarIncrement
modes for Knot Input implemented.
-
v.0.1.4- 04/24/2003
- Basic Toolset implemented and stabilized. First documentation.
-
v.0.1.0- 04/22/2003
- Proof of concept (works!)
|
FEATURES (W.I.P.) |
|
USER
INTERFACE |
C-M has a floating dialog UI
containing
- a large text field displaying the results of
the console typing,
- a line to type in the commands,
- a list showing command hints,
- a button for displaying and picking the
Current Object
- a button for displaying and picking the User
Coordinate System Origin Offset.
|
WORKFLOW |
C-M lets you either
- type shortcuts in the command line, or
- double-click in the Hints list to the right
to copy complete commands to the command line.
In addition, you can
- double-click command sentences in the console
output to copy them to the command line for editing
- double-click the result report in the console
output to repeat the execution of the code directly.
Every time you type in a character, the command
line is evaluated and the first matching command appears in the command line
(blue) of the console prefixed by ">".
If there are multiple commands starting with the
same character(s), you should keep on typing until the desired command is
recognized.
If you type in an invalid character, it will be
usually removed to avoid mistakes.
The Hints list will also update dynamically to
show you the possible commands and parameters at any stage of the input.
When entering values, you can use any valid
mathematical operations by enclosing the input in brackets, for example you can
type in (10*10) instead of 100.
Commands and parameters are separated by spaces.
When the expected number of parameters has been detected, pressing Space
key again will evaluate the line.
After successful evaluation, a new line prefixed
by "+" will appear reporting the results.
After an unsuccessful evaluation a new line
prefixed by "--" will appear reporting the failure.
|
CREATE |
The Create command lets you create new objects.
It requires two parameters:
- SuperClass (Category) of the object. Can be GeometryClass,
Light, Camera, Helper, Modifier, Shape
- Class (Type) of the object. Can be any sub-class of the above
SuperClass.
For example, Box is a sub-class of the GeometryClass, while OmniLight is from the Light
SuperClass.
For Example :
- 'c g b ' -Creates a new Box with default parameters.
- 'c h p ' -Creates a new Point Helper
- 'c l o ' -Creates a new Omni light
|
PROPERTY |
The Property command lets you change
properties of the Current Object and its modifier stack.
It requires the following parameters:
- ObjectToEdit Can be
BaseObject or a Modifier from the stack. Currently, if there are two
modifiers of the same class on the stack, only the top one will be
accessible. For complex stack editing, use the Max UI.
- PropertyName to edit. Can be
any property available in the object to edit.
- Value to assign to the property.
Should be a compatible value type.
For Example, after typing 'c g s ' to create a new Sphere, you can type
- 'p b r 112 ' to change the radius of the
Sphere to 112.0 units
- 'p b s false ' to set Smoothing to false
- 'p b se 6 ' to set the number of
segments to 6. Note that since Smooth and Segs both start with 's',
you need to type 'se' to access the latter.
- 'a p t ' to add a Taper modifier to
the current object.
- 'p t a 2 ' to set the Amount of the
Taper modifier to 2.0.
|
SELECT |
The Select command lets you select scene
objects by different criteria.
It requires two parameters:
- SelectMode Can be one of the
following: Previous, Objects, Hidden, Geometry, Lights, Cameras, Shapes,
Helpers, None, Invert, All, Named
- NamePattern . Only when Named
is specified. In all other cases, just hit space twice to enter a blank
name.
For Example :
- 's a ' -Selects all scene object.
- 's l ' -Selects only Lights
- 's n ' -Deselects all
- 's na sph ' -Selects all objects whose
name starts with "Sph"
|
FILTER |
The Filter command is similar to Select but
gives you controls to select by SuperClass and Class.
It requires two parameters:
- SuperClass (Category) of the
objects to select. Can be GeometryClass, Light, Camera, Helper, Modifier,
Shape
- Class (Type) of the object. Can be any sub-class of the above
SuperClass.
For example, Box is a sub-class of the GeometryClass, while OmniLight is from the Light
SuperClass.
For Example :
- 'f g b ' -Selects all GeometryClass -
Box objects.
- 'f h d ' -Selects all Helper Dummy
objects.
- 'f l o ' -Selects all Omni Lights.
|
GETCURRENT |
In addition to being able to work with selections,
C-M keeps track of object creation and stores the last created object in the so-called
"Current Object".
C-M lets you
apply further operations on the last created object which is accessed
through the keyword "Previous". Using the GetCurrent command, you can also get any scene object as the Current Object, for example to
apply series of modifiers on top of it or to move it around.
The Current Object is displayed on a button just
below the entry field. You can use this button to pick any scene object with the
mouse.
Using the GetCurrent command, you can:
- Get any scene object by name: 'g n SomeName'
- Get an object by name from the current
selection, 'g s SomeName' . Note that you can
enter any object name, but only names that are actually in the current
selection will be accepted. If the typed name isn't currently in the
selection, the first object in the selection will be used instead!
- Get the first object in the current selection
without providing a name but just pressing Space instead. 'g s '
This can be used to quickly select a single selected object.
|
NAME |
The Name command lets you rename the Current
Object or the whole Selection by specifying a base name. A unique number will be
added to the base name to ensure no duplicate names will occur.
Name requires two parameters:
- ObjectsToRename. Can be either Previous
or Selection.
- NewName. Any
valid name string.
For Example, after typing 'c g c ' to
create a new Cylinder, you can type
- 'n p Bobo' to rename
the Cylinder to Bobo01 where 01 is a unique number.
- 's a ' to select all objects in the
scene
- 'n s Test ' to rename all objects in
the scene to TestNN where NN is a unique number
- 's na Test ' to select
all objects whose name starts with Test
- 'n s OtherTest ' to rename all
selected TestNN objects to OtherTestNN...
|
MOVE |
The Move command lets you reposition the
Current Object or Selection to an absolute coordinate, or move relatively by a
specified distance in orthogonal or polar coordinates.
Note that the absolute coordinate is
relative to the Current Origin which is identical to World [0,0,0] by default
but can be offset using the UCS command.
Move requires the following parameters:
- ObjectsToMove. Can be either Previous
or Selection.
- MoveMode. Can be either Absolute,
Relative, WorldPolar or PolarIncrement.
- Values. 3 Integers or Floats
for X, Y and Z position or offset depending on MoveMode. Only spaces
required between the 3 values!
For Example, after typing 'c g c ' to
create a new Cylinder, you can type
- 'm p a 0 0 100 ' to reposition the
last created object to 0,0,100
- 'm p r 100 0 0 ' to move the same
object relatively by 100 units along X.
- 's a ' to select all objects in the
scene
- 'm s a 0 0 0 ' to move all selected
objects to the Origin.
- 'm p w 100 45 0 ' to move the current
object 100 units along a vector at 45 degrees to the X axis and 0 degrees
to the XY plane.
- 'm p p 10 5 0 ' to move the current
object 10 units more and 5 degrees more to the X than the last polar move
while keeping the same angle to the XY plane. (This will move at 110 units
and 50 degrees, repeating the command will further increment the distance and
angle)
|
ADDMODIFIER |
The AddModifier command lets you add a
modifier to the Current Object or Selection .
It requires
the following parameters:
- TargetObjects.
Can be either Previous or Selection.
- Modifier. Any supported
Modifier class.
For Example,
- 'c g c ' to create a Cylinder
- 'a p b ' to add a Bend modifier to the
Cylinder.
- 'a s t ' to add a Taper modifier to all
selected objects
|
DELETE |
The Delete command lets you delete the
Current Object or the Selection.
It requires
only one parameter:
- ObjectsToDelete. Can be either Previous
or Selection.
For Example, you can type
- 's na box ' to select all objects
whose Name starts with "box". ('n' is used by 'None')
- 'd s ' to delete the selected objects.
|
KNOT |
The Knot command lets you add Knots
(Vertices) to the Current Object when it is a SplineShape. This is probably the
main reason for the existence of C-M!
Knot requires the following parameters:
- InputMode.
Can be Absolute, Relative, WorldPolar or PolarIncrement
- KnotCoordinates or KnotOffset
Values - Expects 3 Floats or Integers separated by spaces.
For Example, you can type
- 'c s s ' to create a new SplineShape.
- 'k a 0 0 0' to add a new knot to
position 0,0,0
- 'k r 100 50 0 ' to add a next knot
relatively to the first one with offset 100 along X and 50 along Y axis.
- 'k w 200 45 0 ' to add a new knot at
distance of 200 at 45 degrees to the X axis and 0 degrees to the XY plane
- 'k w 100 30 5 ' to add a new knot at
distance of 100 at 30 degrees to the X axis and 5 degrees to the XY plane
- 'k p 0 10 0 ' to add a new knot at the
last Polar distance (100) at 10 degrees more than the last Polar Knot
command and the last angle to the XY plane. Each time you call PolarIncrement, the values are added to the last known Polar values set by
WorldPolar or PolarIncrement. Repeating the PolarIncrement command, for
example by double-clicking an existing one in the Console window, lets you
create complex shapes like Curve, Circle, Helix and more.
Note that currently all knots are added
as Corners with Linear segments to the first spline in the SplineShape. You can
add knots to the first spline of any SplineShape by making it the Current Object
using the GetCurrent command. You can also quickly close the first spline
of the SplineShape using the CloseSpline command (see below)
|
CLOSESPLINE |
The CloseSpline command lets you Close the
Current Object when it is a SplineShape.
It requires
no parameters!
For Example, you can type
- 'c s s ' to create a new SplineShape.
- 'k a 0 0 0' to add a new knot to
position 0,0,0
- 'k r 100 0 0 ' to add a next knot
relatively to the first one with offset 100 along X.
- 'k r 0 100 0 ' to add a next knot
relatively to the second one with offset 100 along Y.
- 'cl ' to close the SplineShape.
- 'k a 20 20 0 ' to add a new knot with
absolute coordinates - it will refine the last segment of the SplineShape.
|
UCS |
The UCS command lets you specify the Origin
Offset for object creation.
It requires
3 Floats separated by spaces defining the Offset. Note that the Offset can also
be set by picking a scene object using the button below the console edit field.
The button also displays the current Offset value.
For Example, you can type
- 'c g b ' to create a new Box
- it will appear at 0,0,0
- 'u 100 0 0' to change
the Origin to 100,0,0
- 'c h p' to create a new Point Helper.
Note that it will be created at 100,0,0
|
LASTCOMMAND |
The LastCommand command lets you repeat
the last line type in the command line. You can always use the mouse to repeat
older commands from the console, but this is a quick shortcut especially when
using PolarIncrement or Move Relative commands. Just type in L and Space and the
last command will be executed immediately.
For Example, you can type
- 'm s r 0 0 10 ' to move the current
selection 10 units along Z
- 'l ' to repeat the same and move the
current selection 10 more units along Z
|
FUTURE FEATURES TO DO |
-
Rotate and Scale commands
-
Lots more...
|
PUBLIC
BETA DOWNLOAD |
CONSOLUS-MAXIMUS
v.0.1.7 |
INSTALLATION |
- Download the file
- Unzip to your \Scripts directory,
- Select MAXScript>Run from the main menu,
run the file.
- Go to Customize UI...>Toolbar, select
the script from "Bobo_s Tools" Category
- Drag to a toolbar.
- Press the button to launch the Console...
|
Copyright
© 2003 by Borislav Petrov |