Before invoking any modelling action you should select one or more objects using the object hierarchy in the main window or using the pick action!
Every action can be started with a key press (a shortcut) when the keyboard focus is in a view window or by clicking on the associated button in the toolbox window. Using a keyboard shortcut starts that action in the current view only, the other views are not affected. In multi window GUI mode, starting an action from the toolbox window will cause the action to be started in all view windows that are currently open simultaneously. In single window GUI mode, the action will be started in the current internal view only.
It is perfectly ok to start and work with many different actions at the same time in different views: you can have e.g. a view, where you move objects, a second where you rotate objects and a third, where you pick objects. The layout, drawing style, and grids may also differ between the different views. Together with the feature, that you may change the selection while actions are active and even pan and zoom views (using the rightmost and middle mouse buttons respectively) while actions are active and without breaking them, this is the key to unsurpassed flexibility in modelling using Ayam.
To break an action, the <Esc>
key may be used.
The default action for all views, which is also in effect after
use of the <Esc>
key, is "None"
or "Pick"
(depending on the preference setting "Modelling/DefaultAction"
).
See section
Selecting Objects within a View
for more information about picking objects.
Note that the modelling actions are not available in perspective views.
If an action is in effect for a view, the views title will be changed appropriately.
A modelling action is performed by clicking into the view with the leftmost mouse button to mark a point in space or to pick a vertex and then by dragging the mouse.
You may undo/redo the effects of a modelling action using <Ctrl+z>
and <Ctrl+y>
(see section
The Undo System for more information).
Grids are available to restrict the modelling actions to certain points and help in exact modelling.
Also note that you may use the middle and rightmost mouse button to zoom and move the view while modelling actions are active.
For actions that modify the camera of a view please see section View Window Shortcuts and Actions.
This section gives an overview over the various modelling actions. Note that a more complete collection of shortcuts is available as separate reference card document in the Ayam distribution.
Name | Shortcut | Icon | Name | Shortcut | Icon |
Transform: | |||||
Move | <m> |
![]() | Rotate | <r> |
![]() |
Move X | <mx> |
![]() | Rotate About | <ra> |
![]() |
Move Y | <my> |
![]() | Set Mark | <a> |
![]() |
Move Z | <mz> |
![]() | |||
Scale 3D | <S> |
![]() | Scale 3D About | <Sa> |
![]() |
Scale 2D | <s> |
![]() | Scale 2D About | <sa> |
![]() |
Scale 1D X | <sx> |
![]() | Scale 1D X About | <sxa> |
![]() |
Scale 1D Y | <sy> |
![]() | Scale 1D Y About | <sya> |
![]() |
Scale 1D Z | <sz> |
![]() | Scale 1D Z About | <sza> |
![]() |
Stretch 2D | <T> |
![]() | Stretch 2D About | <Ta> |
![]() |
Edit: | |||||
Edit | <e> |
![]() | Tag Points | <t> |
![]() |
Edit Weights | <w> |
![]() | Insert Points | <i> |
![]() |
Edit Direct | <E> |
![]() | Delete Points | <d> |
![]() |
Modelling Actions Overview
Many modelling actions either work on objects transformation attributes
or coordinates of selected points. Before Ayam 1.18 this was controlled
implicitly by the point selection, if points were selected, they would
be transformed. Since Ayam 1.18 there are two new
keyboard shortcuts (<o>
and <p>
) that let the
user control this behaviour directly per view, <o>
switches
to object transformations and <p>
to point transformations.
These shortcuts can be used anytime, even in the middle of any other
actions. If points are to be modified, a little red point will appear
in the modelling mode icon in the view menu.
Using the modelling action "Move"
(shortcut: <m>
)
you may move selected objects or the selected (tagged) points
of the selected objects.
Note that the objects/points will be moved in the XY-plane for Front-views, the ZY-plane for Side-views, and the XZ-plane for Top-views only, no matter how the view is rotated.
Since Ayam 1.17, the move action may be restricted to a certain
axis, by pressing <x>
, <y>
, or <z>
right after the <m>
.
See also the table below.
Name | Shortcut | Icon |
Move | <m> |
![]() |
Move X | <mx> |
![]() |
Move Y | <my> |
![]() |
Move Z | <mz> |
![]() |
Move Actions Overview
Using the modelling action "Rotate"
(shortcut: <r>
)
you may rotate objects or the selected (tagged) points
of the selected objects.
The axis of rotation is always parallel to the Z-axis in Front-views, the Y-axis in Top-views, and the X-axis in Side-views of the local object coordinate system. The orientation of the object coordinate system may change in respect to the world coordinate system if a sequence of rotate modelling actions is applied.
Note that if multiple objects are selected, each object is rotated around the center of its own local coordinate system. Only the Rotate_X(_Y,_Z) property of the selected objects will be changed by this action.
Name | Shortcut | Icon |
Rotate | <r> |
![]() |
Rotate Action
Using the rotate about modelling action one may interactively rotate objects or the selected (tagged) points of the selected objects about a specific point in space.
To start the rotate about action, invoke the normal rotate action,
then press <a>
.
See also the table below.
Name | Shortcut | Icon |
Rotate About | <ra> |
![]() |
Rotate About Action
To rotate about a different point, one needs to restart the
intermediate set mark action (simply press <a>
again).
After setting the mark, the action works the same way as the Rotate action, except that it rotates the selected object(s) or points about the mark. This, consequently, also works with multiple selected objects. Note that this action does not only change the Rotate_X(_Y,_Z) properties of the selected objects, but also the Translate_X(_Y,_Z) properties.
To avoid degenerated coordinates due to roundoff errors it is highly suggested to use grids with this action.
There are several different actions available to interactively scale objects or the selected (tagged) points of the selected objects:
The modelling action "Scale 3D"
(shortcut: <S>
, note the
big S!) scales all three axes of the selected objects or
the selected (tagged) points of the selected objects
by the same factor.
The modelling action "Scale 2D"
(shortcut: <s>
)
scales just two axes of the selected objects or
the selected (tagged) points of the selected objects. Those axes are
XY in a Front-view, ZY in a Side-view, and XZ in a Top-view.
It is also possible to restrict the scaling of objects or selected
points to just one axis.
For that one needs to press <x>
, <y>
, or
<z>
right after <s>
(e.g. <sx>
for
scale 1D about x).
Since Ayam 1.17, direct access to the 1D scale modelling actions
"Scale X"
(old shortcut: <x>
),
"Scale Y"
(old shortcut: <y>
), and
"Scale Z"
(old shortcut: <z>
) is no longer available.
The modelling action "Stretch 2D"
(shortcut: <T>
)
works much like "Scale 2D"
but the scale factor for each
axis may be different. Never start this action by a click
near one of the axes to be changed, as this will cause
very big scale factors for the other axis. Try it first with
a centered box by starting from one of the box corners,
then try it once starting on the X-axis.
See also the table below.
Name | Shortcut | Icon |
Scale 3D | <S> |
![]() |
Scale 2D | <s> |
![]() |
Scale 1D X | <sx> |
![]() |
Scale 1D Y | <sy> |
![]() |
Scale 1D Z | <sz> |
![]() |
Stretch 2D | <T> |
![]() |
Scaling Actions Overview
Using the scale about modelling actions one may interactively scale objects or the selected (tagged) points of the selected objects about a specific point in space.
To start a scale about action, invoke the normal scale action,
then press <a>
(e.g. <sa>
for scale 2D about,
<sya>
for scale 1D Y about).
See also the table below.
Name | Shortcut | Icon |
Scale 3D About | <Sa> |
![]() |
Scale 2D About | <sa> |
![]() |
Scale 1D X About | <sxa> |
![]() |
Scale 1D Y About | <sya> |
![]() |
Scale 1D Z About | <sza> |
![]() |
Stretch 2D About | <Ta> |
![]() |
Scaling About Actions Overview
To scale about a different point, one needs to restart the
intermediate set mark action (simply press <a>
again).
After setting the mark, the action works the same way as the scale action, except that it scales the selected object(s) or points about the mark. This, consequently, also works with multiple selected objects. Note that this action does not only change the Scale_X(_Y,_Z) properties of the selected objects, but also the Translate_X(_Y,_Z) properties.
Also note, that the three dimensional scaling about the mark
occurs in all three dimensions, however, in the interactive
set mark action one is only able to specify two dimensional
coordinates using a mouse click (the third coordinate is always
set to zero). To specify a true three dimensional mark one
can use the corresponding view object attributes or select
a point and set the mark to it (shortcut <C>
).
To avoid degenerated coordinates due to roundoff errors it is highly suggested to use grids with this action.
Front View With Mark Set At 1,-1,0
This action may be invoked to mark a point in space for perusal
of other modelling actions that e.g. rotate or scale about a point.
The corresponding keyboard shortcut is <a>
.
Consequently, this action is also active as intermediate action
for e.g. rotate about, where the keyboard shortcuts <r>
and then <a>
would be used.
See also the table below.
Name | Shortcut | Icon |
Set Mark | <a> |
![]() |
Set Mark Action
A single click with the mouse sets the mark. If grids are active in the view, the mark will be snapped to the nearest grid coordinates. Additionally, when this action is active, the following keyboard shortcuts are available:
<Return>
accept the current mark (useful, if one
first rotates about a point then decides to also scale about
the same point: <ra>
, drag mouse, <sa>
,
<Return>
, drag mouse ...),<c>
set the mark to the center of gravity of all
currently selected objects coordinate systems,<C>
set the mark to the center of gravity of all
currently selected points.The mark may also directly be set using the corresponding view object property (see also section ViewAttrib Property).
Also note, that one is only able to specify two dimensional mark
coordinates using a mouse click (the third coordinate is always
set to zero). To specify a true three dimensional mark one
can use the corresponding view object attributes or select
a point and set the mark to the center (shortcut <C>
).
Another way of setting the mark is via the "FindU"
special action
for curves
(see also section
Finding Points on Curves)
or the "FindUV"
special action
for surfaces
(see also section
Finding Points on Surfaces)
.
Finally, remember that certain operations like e.g. changing the view type will clear the mark.
The modelling action "Select Points"
(shortcut: <t>
;
for tag points) may be applied to objects that support single
point editing or read only points. Such objects usually
draw their selectable points using small white or blue rectangular handles
(when a modelling action is active):
Objects With Read Only And With Editable Points/Handles (right: NCircle, left: NCurve)
Selected points will be drawn in dark red when the select points modelling action or a modelling action that would modify the selected points is active:
Object With Selected Points (red)
The selected editable points may be modified subsequently using the
modelling actions Move, Rotate, and Scale as discussed above when the
view is switched to point transformations using the shortcut <p>
.
See also the table below.
Name | Shortcut | Icon |
Tag Points | <t> |
![]() |
Tag Action
After the pick (the selection of a point), the picked point will be added to the list of selected points for the selected object. If the selected point is already in that list it will be removed from the list instead, the picked point will be deselected.
All points can be selected easily using the keyboard shortcut <A>
.
The list of selected points will not be deleted from the object until
an explicit deselection is performed using the keyboard shortcut
<N>
or if certain modelling tools (e.g. inserting points)
are used.
The point selection can also be inverted using the keyboard shortcut
<I>
.
All three above shortcuts can be used anytime without interference wrt. active modelling actions.
Note that the list of selected points is not copied, if the object is copied using the clipboard. The selection is also not saved to Ayam scene files. Since Ayam 1.16, selected points survive undo/redo. However, the selection action iself is not an operation recorded in the undo buffer, thus cannot directly be undone.
The point selection does not interfere with single point modelling actions: It is perfectly legal to select some points, move them using the move action, then switch to single point editing, edit some other or even one of the selected points, switch back to the selection action, add other points to the selection or delete some points from the selection, switch to rotate, rotate the selected points and so on.
One may also add a bigger number of points to the selection using a click and drag operation. All points that are inside the rectangular region defined by the click and drag will be added to the selection. In fact, this approach is the only way to safely add points to the selection that occlude each other.
Since Ayam 1.16.1, holding down the <Ctrl>
-key while
dragging the mouse removes all selected points within the rectangular
region from the selection.
To edit the points of an object three actions ("Edit"
,
"Edit Weights"
, and "Direct Point Edit"
) are available.
All those actions may be applied to objects that support single point
editing only.
See also the table below.
Name | Shortcut | Icon |
Edit | <e> |
![]() |
Edit Weights | <w> |
![]() |
Edit Direct | <E> |
![]() |
Edit Actions Overview
Objects mark themselves editable by drawing the editable points using small white rectangular handles if one of the single point editing actions is activated and the object is selected (see also section Selecting Points).
"Edit"
(shortcut: <e>
)
works much like the move action, but it moves single points instead of
objects. In contrast to the move action, you need to directly pick on
the handle of the point you want to move. Furthermore, it is not possible
to move points of multiple selected objects, only the first selected
object is considered.
If a multiple point is edited, this action modifies all single points that make up the multiple point, i.e. you can not move single points apart from a multiple point using the point edit action.
"Edit Weights"
(shortcut: <w>
)
changes the w coordinate of a single point by dragging the mouse left
or right. The weights may be reset for all points
using the shortcut: <W>
. Furthermore, it is
not possible to edit the weights of multiple selected objects, only
the first selected object is considered.
If a NURBS curve has multiple points, this action modifies all single points that make up the multiple point.
"Direct Point Edit"
(shortcut:
<E>
)
starts an intermediate point selection action and upon a click
with the mouse opens a small window where you may change the
coordinates of the selected editable point(s) directly by entering
new coordinate values on the keyboard.
Nothing will be changed unless the "Return"
key is pressed
in a coordinate entry field or the "Apply"
button is used.
In contrast to the normal point selection action, clicking on new
points while the edit point dialog is open deselects the old point(s),
selects the new point and loads its coordinate values. In case
of multiple selected objects, the deselection is only performed
on the object with a new selection.
Note that the w coordinate setting will be ignored if a selected point does not have weight information (is not homogenous).
Using the small menu on top of the coordinate window you may determine whether editing takes place in local object or global world space.
Since Ayam 1.18, this modelling action may affect
multiple points of multiple selected objects.
Snapping points of different objects together is now possible too:
Just select two objects, start direct point editing (press <E>
),
pick a point on the first object (where a point of the second object
should be snapped to), the point edit window opens, now drag select
the point of the second object (do not use a single click as this
would load new coordinates) and press apply.
Since Ayam 1.18 the direct point editing action also supports read only points, their coordinates may be retrieved, but applying any values will have no effect.
If a multiple point is edited, this action modifies all single points that make up the multiple point, i.e. you can not move single points apart from a multiple point using the direct point edit action.
Notice that since Ayam 1.4 the direct point editing dialog may stay open all the time. Furthermore, it is not necessary that the original object stays selected while working with the direct point edit dialog, you may select other objects to e.g. infer new point coordinates from their properties and apply them to the original object. Furthermore notice that the coordinate values displayed in the direct point editing window will not update when the point is modified by another modelling action. Simply click on the point again in a view where the direct point editing action is active, to update the coordinate values in the direct point editing dialog.
Even though the dialog may display point coordinates in degraded
accuracy (due to floating point to string conversion, see also
the discussion of the "TclPrecision"
preference option in
section
Miscellaneous Preferences),
the original point data is unchanged and its accuracy is not affected
as long as the new data is not applied.
Since Ayam 1.11 there are two actions available that let
you snap points to the current grid of a view.
The actions are initiated using the shortcuts <g>
and <G>
. If an object has selected (tagged)
editable points, only those points will be snapped to the grid,
otherwise all editable points of the object will be snapped to the grid.
If <g>
is used, the snapping only occurs in
the modelling plane associated with the view (i.e. in 2D).
To snap all three coordinate values to the grid use <G>
.
Note that the snapping also occurs, if the view has the preference
option "Use Grid"
turned off.
This action can be used without affecting other active actions.
Since Ayam 1.18 the snap points to mark action is available.
This action is initiated using the shortcut <M>
.
All selected editable points of the selected objects are snapped to
the current mark coordinates (see section
Setting the Mark
for more information about the mark).
This action can be used without affecting other active actions.
Since Ayam 1.18 the snap objects to mark action is available.
This action is initiated using the shortcut <K>
.
All selected objects are snapped to the current
mark coordinates (see section
Setting the Mark
for more information about the mark).
This action can be used without affecting other active actions.
The modelling action "Insert Point"
(shortcut: <i>
)
may be applied to NURBS, interpolating, and approximating curves
(objects of type NCurve, ICurve, and ACurve) only.
A new control point will be inserted in the curve right
after the picked point. The new point will be inserted in the
middle between the selected point and the next point, changing
the shape of the curve. (It is also possible to insert control
points into certain types of NURBS curves without changing
their shape using knot insertion;
see also the insert knot tool section
The Insert Knot Tool.)
The modelling action "Delete Point"
(shortcut: <d>
)
may be applied to NURBS, interpolating, and approximating curves
(objects of type NCurve, ICurve, and ACurve) only.
The selected control point will be deleted from the curve.
Deleting points from a curve with knot type "Custom"
may currently lead to an incorrect knot sequence, please
check and correct the new sequence manually.
See also the table below.
Name | Shortcut | Icon |
Insert Points | <i> |
![]() |
Delete Points | <d> |
![]() |
Insert/Delete Points Actions
The modelling action "FindU"
(shortcut: <u>
)
may be applied to NURBS curves (objects of type NCurve or
objects that provide NCurve objects) only.
This action may be used to get the corresponding parametric
value u from a point on a curve. For every picked point
the appropriate value for u is calculated, stored
in the global variable u, and additionally written to the console.
The mark is set to the position of the picked point (see section
Setting the Mark
for more information about the mark).
Remember to exactly pick a point on the curve or nearby, otherwise
the calculation may fail.
See also the table below.
Name | Shortcut | Icon |
Find U | <u> |
![]() |
Find Point on Curve Action
The modelling action "FindUV"
(shortcut: <U>
)
may be applied to NURBS surfaces (objects of type NPatch or
objects that provide NPatch objects) only.
This action may be used to get the corresponding parametric
values u and v from a point on a surface. For every picked point
the appropriate values for u and v are calculated, stored
in the global variables u and v, and additionally written to the console.
The mark is set to the position of the picked point (see section
Setting the Mark
for more information about the mark).
Remember to exactly pick a point on the surface or nearby, otherwise
the calculation may fail.
See also the table below.
Name | Shortcut | Icon |
Find UV | <U> |
![]() |
Find Point on Surface Action
The modelling action "Split Curve"
(shortcut <c>
)
may be applied to NURBS curves (objects of type NCurve) only.
Using this action you may split a NURBS curve into two new curves
at a point on the curve that may be specified by picking a point
on the curve.
Remember to exactly pick a point on the curve or nearby otherwise
the calculation of the parametric value for the split will fail.
The selected curve will be changed by this action, and
a new curve will be created. It is currently not possible to undo
the changes of a split!
Normally, all editing takes place in world space and the input plane of all modelling actions is constrained to the world XY-, ZY-, or XZ-plane (depending on the type of view used).
However, if a view is aligned and switched to local, one can also edit in local object space. This means one can e.g. edit a planar parameter curve of a skin object where both objects (curve and skin) are rotated and scaled arbitrarily and make sure that the parameter curve remains planar all the time.
In other words, this means that the input plane of an aligned local view
will match the XY-, ZY-, or XZ-plane of the local object space,
depending on the type of the view ("Front"
, "Side"
, or "Top"
).
Editing and other modelling actions take place in that plane.
Furthermore, grids will also act as if defined in local object space. Note that in contrast to their normal behaviour, grids can also be scaled differently in X-window and Y-window coordinates in aligned local views (if the local object space is deformed this way).
How to make a view local and align it?
All you need to do is to first select an object and then press
<l>
twice to make the view object-local (one can
also use <Ctrl+l>
in external views).
In Ayam versions prior to 1.18 one also needed to manually align
the view using <L>
(or <Ctrl+a>
in external
views). Since Ayam 1.18, the view is automatically aligned to the
selected object or current level when cycling through the global/local
modes. Manually aligning a view may still be necessary, if the camera
of the view is e.g. changed by a view action (however, realigning is also
always possible by cycling the modelling mode three times).
But let us get back to our local view.
To illustrate local a views little bit further, see the following example images:
Global Front View with Rotated Sweep
A Sweep object with a circular B-Spline curve as cross section (rotated about the y axis by 90 degrees) and a straight standard curve as trajectory. The Sweep itself is rotated about the z axis by 30 degrees. The view is a front view, the cross section and trajectory are both selected. Note how inadequate the grid spacing would be to edit the trajectory curve (it is e.g. near impossible to edit the curve and keep it straight).
Press <l>
.
Local (Level) Aligned View
The view has been switched to level-local using a single press of the
<l>
key (see the modelling mode icon, it is displaying a
L in the lower right corner. The view is now aligned to the 30 degree
rotated space of the Sweep object (note the Root object coordinate
system, it is tilted). The grid is also rotated (with respect to the
root coordinate system) but now much more useful for editing the
trajectory, in fact it is perfectly aligned to the trajectory.
Press <l>
again.
Local (Object) Aligned View
Now the view is object-local and aligned to the first of the selected objects (the cross section curve), note again the modelling mode icon, it is now displaying a O in the lower right corner. As the selected cross section curve was rotated by 90 degrees around the y axis, the front view now again displays a circle. Note again the orientation of the Root object coordinate system. One can safely edit the cross section curve, it will stay planar.
Note, that object-local aligned views only align to the first of multiple selected objects; if all selected objects have the same transformation attributes, everything is fine, but if not, some objects will be misaligned.
Also remember: when a view is level-local, changing the current level
does not automatically realign the view. If the view is object-local,
changing the object selection will also possibly lead to a misaligned
view. To realign the view after changing the current level or object
selection simply press <L>
. Note that aligning the view changes
the aim point of the view camera to the origin of the respective local
coordinate system which might not be appropriate for modelling purposes;
so, after a selection change, one may want to also zoom the view to the
newly selected object: <LO>
.