Moi3D 4 Documentation
Moi3D 4 Documentation
Moi3D 4 Documentation
Please see the regular help file for the video tutorials and
links to other resources.
Introduction to MoI
Moment of Inspiration (MoI) is a 3D modeling program that is focused on combining CAD
accuracy with an intuitive, fluid UI.
On this page:
Visual guide to the UI
Manipulating the view
Running commands
Drawing / Picking points
Selection
Basic modeling concepts
Exporting to other applications
1. File menu and frequently used tools. The File menu contains a list of recently opened files as well as
several commands for opening and saving files. In the menu, Import combines the selected file with the current
one (instead of replacing it which is what Open does), and Export can be used to write only the selected objects
out to a file.
2. Viewport configuration tabs. This controls whether the viewport area shows the split view or only a large
single view. You can switch ortho views to the reverse direction by clicking on their tab a second time. For
example, a second click on the Top tab will flip it to a Bottom view. You can also right click on an ortho view tab to
reverse it.
3. Point, Distance, and Angle controls. These display the coordinates of the current point under the mouse
and the distance and angle from the previous point. You can also use this area to enter exact numeric values for
placing a point. You can enter values just by typing numbers directly or by clicking on the control to pop up the
input panel. You can also set the distance or angle to specific values to cause a distance or angle constraint to
be activated.
1 of 99
4. Snap controls. Use these to toggle the different kinds of snapping on or off. When a snap control is
highlighted in orange, it is turned on.
5. Options / Help. The little arrow button next to the Help button controls whether MoI displays as full screen or
not, covering up the Windows taskbar (Windows version only). The Browser button will show or hide the Scene
browser panel which lets you work with a list of different kinds of object categories.
6. View controls. These controls at the bottom of a viewport are one of two different methods that you can use
to manipulate the view. They become opaque when you move the mouse over them. For more information,
please see the section below: Manipulating the view.
7. Window minimize / restore / close buttons. Use the X button in the corner to close the window and exit MoI.
These are only shown if the window is maximized (Windows version only). For non-maximized windows a
standard Windows title bar is displayed. The name of the currently open file is displayed immediately under these
controls.
8. Command options. This area holds the different options that are available for the currently running
command. There is a prompt at the top of this area that tells you what type of input the command is currently
expecting. The Done and Cancel buttons are at the bottom of this area. Often times you'll need to push the Done
button when you are done with the current task and want to go to the next stage of a command. You can also
click the right mouse button inside of a viewport as a shortcut for pushing Done. When you are in selection mode
before launching a command this area will show the Properties panel which gives some information about the
currently selected objects.
9. Command palettes. This is where the majority of commands are located. Click on a tab to show different sets
of commands. If you click again on an already highlighted tab, it will collapse that palette.
Pan by dragging with the Middle Mouse Button (press down on the scroll wheel) inside any view. You can also
pan by dragging the Right Mouse Button in the Top, Front, or Right views.
Use the Reset button at the bottom of the viewport to fit the view to frame objects. This will also set the rotation
pivot point to the center of the objects. The first time you click Reset, it will focus on selected objects. If you click
it a second time, it will switch to frame all objects regardless of selection. Clicking with the right mouse button on
Reset will apply the reset to all viewports.
Use the Area button at the bottom of the viewport to zoom into a specific smaller area. The center point that you
pick will also become the rotation pivot point, so you can also use this to control the exact location that the 3D
view will rotate around.
You can also rotate, pan, or zoom by using the buttons at the bottom of the viewport. To use these buttons, you
click and hold down on the button and move the pointer. These controls are pretty sensitive, so you only need to
move the pointer a small distance - don't use large motions. The behavior of these buttons can be tweaked by
going to Options > View > Rotate/Pan/Zoom options.
Running commands
You accomplish different tasks in MoI by running commands.
Some commands may apply their work immediately and then exit, while other commands may go through
different stages waiting for you to pick points, select additional objects, or adjust various options before they are
finished. Sometimes you may need to click the Done button to signal that you are finished with a stage. You can
also right-click inside of a viewport, or push the Enter key as shortcuts for clicking Done.
For commands that edit or manipulate an object, you usually select the objects to be edited prior to running the
command.
While a command is running, it shows information in the command options area in the upper right area of the
main MoI window, labeled #8 in the screenshot above.
The top of the command options area will show a prompt that will tell you what kind of input the command is
waiting for you to provide. For example, when you run the Line command, the prompt will read "Pick start point" -
this is signaling that the command is waiting for you to specify a point location, either by clicking in the viewport
or by typing an x,y,z value. If you get stuck wondering what to do next, it can help to read the prompt.
Below the prompt, a command may have several controls such as text inputs, buttons, checkboxes, and drop-
2 of 99
downs to adjust different options for how the command behaves.
You can cancel a command by pushing the Cancel button or by using the Esc key.
When you are not running a command you are in "Selection Mode", which allows you to select and drag objects.
Normally when you exit a command you return back to Selection Mode so that you can adjust the selection in
preparation for running the next command. While in Selection Mode you can use Right click or Enter to repeat
the last command. For some commands you can also click the "Repeat" checkbox located at the very bottom of
the command options area while the command is still running. This will cause the command to automatically
restart until you hit cancel. For example, this can be done if you want to draw a large number of lines, then you
don't have to right click to repeat the line command every single time.
To pick a point with the mouse, press and release the left mouse button inside of a viewport.
There are several mechanisms to help you accurately place your point, including Grid snap, Straight snap,
Object snap, and Construction lines.
Grid snap, Straight snap, and Object snap can be enabled or disabled by using the controls shown in area #4 in
the screenshot above. When one of these controls is highlighted in orange, that snap is enabled.
Grid snap causes the point to lock on to intersections of the grid. The snap size can be adjusted under Options >
Grid. Grid snap has a lower priority than Object snap, so you may need to turn Object snap off if it is getting in
the way of targeting the grid.
Straight snap locks points to a straight line from the previous point. It activates when you move your mouse close
to that axis line. By default Straight snap uses a 90 degree angle, but this can be altered under Snaps > Straight
snap options > Snap angle. However, it may be more convenient to leave Straight snap to 90 degrees and set a
temporary angle constraint when you need to lock on to other angles.
Object snap enables the point to lock on to different pieces of existing objects, such as the end or midpoint of a
line, the center of a circle, etc...
You can hold down the Alt key as a shortcut to temporarily disable snapping.
Construction lines are an additional tool that can be used to help with accurate point placement. A temporary
Construction line will be created if you press down the left mouse button and hold down and drag instead of
doing a press and release. This enables you to quickly create alignment edges and extension lines for various
types of snapping. See the reference section of the documentation under Construction lines for more details on
the many different types of snapping that can be performed with construction lines.
In addition to picking points with the mouse, you can also enter a numeric x,y,z value.
To enter a specific x,y,z value you can type the value in directly, and you will see your keystrokes go to the point
control on the bottom toolbar, labeled #3 in the screenshot above. You can also click on the point control and
enter numbers by clicking on the buttons of the input panel that pops up.
The distance and angle controls are underneath the x,y,z point control. While drawing, these will display the
distance and angle of the current point from the previous point, and you can also enter values in either one of
these to activate a distance or angle constraint. For example, if you want to draw a line at a 45 degree angle, you
can click on the angle constraint box and enter 45.
For more information on different ways to enter typed-in coordinates, see the reference section of the help file
under XYZ / Distance / Angle.
Selection
You can select or unselect a curve by clicking on it.
When you move your pointer over an unselected curve, it will get a yellow glow around it. This indicates that if
you click there, that curve will become selected. If you move over an already selected curve it will instead get a
dark glow around it, indicating that if you click there it will get unselected.
Multiple select is enabled at all times, you don't need to hold down the Shift key to select multiple objects.
To deselect all objects, click out in empty space or press the Esc key.
3 of 99
When you are in Selection Mode (not running any command), you can also click and drag on an object or a point
to reposition it. If you drag on an unselected object or point, it will become the only selected item. For example,
you can adjust individual points one by one without needing to click in empty space to clear the selection before
each drag.
Clicking in empty space and dragging the pointer (instead of click and release in empty space) will result in an
area selection box. If you drag from the left towards the right, you will get a solid area selection box which will
select only objects that are completely captured inside the box. If you drag starting from the right and then move
towards the left direction, you will get a dashed area selection box which will select any object that intersects the
box even partially.
For some operations you may need to select an edge or face sub-object part of a solid. For example, to fillet just
one specific edge of a solid, select that edge first before running the Fillet command.
The first click on a solid will select the solid as a whole object. A second click on it will "drill-in" to select an edge
or face sub-object.
Once an initial drill-in selection is made, further clicks or area selects will target the same type of sub-object. For
example, if you drill-in to select an edge, you can then do area selections which will only target other edges.
There is a preference to selecting edges over faces in the initial drill-in - if you're having difficulty selecting a face
you may need to zoom in so that the face takes up a larger area of the screen and can be more easily targeted in
a spot not close to any edges.
If you have a scanned bitmap you want to use as a guide, it can be placed into the scene by using the View >
Image command.
Next, surfaces or solids are created from the outline curves using commands on the Construct palette such as
Revolve, Extrude, Loft, Sweep, etc...
After some initial pieces are created, they are often times refined by using Boolean operations. Booleans can cut
pieces away using other profile curves and can also combine or subtract different solids together into larger
assemblies.
Finally, the sharp curves where the different pieces intersected each other are rounded out by applying fillets.
Please see the tutorials section of the help file for some example videos.
Note that the modeling approach used in MoI is significantly different than the way you create objects in a
polygon/sub-d type program. In a sub-d program you tend to manipulate individual points of your object's surface
a lot, kind of like sculpting. MoI's approach tends to be more like illustration or drawing because you create
objects constructed from curves that you draw. Each method has strengths and weaknesses in different areas.
Sub-d is stronger for shapes that have a lot of small organic details in them, like a human face for example. MoI's
approach is faster and more accurate for industrial or semi-mechanical type shapes where you can identify key
profile curves that define the shape. Also see Frequently Asked Questions for some more details on how MoI's
objects are structured differently than a polygon mesh type model.
For example, you might want to take your model into a rendering program and set up lights and assign materials
to produce a high quality realistic image, or you may want to take your model into a CAM program to calculate
toolpaths for cutting your design on a CNC device.
Some file formats supported by MoI can contain curves and surfaces, and others can contain only polygon mesh
type data.
When saving to a polygon mesh file format, surfaces that you created in MoI will get converted into polygon
mesh facets, and the Meshing options dialog will be shown to give you some options to control the meshing
process. For example, you can adjust the mesh to be made up of fewer polygons which is smaller in data size
but has a rougher appearance, or you can use a denser mesh which produces a large file size but will have a
smoother look. See Meshing options in the reference section for details on how to control the mesher.
Typically polygon mesh file formats do not have a way to store wireframe curves in them. If your model consists
4 of 99
only of wireframe curves (for instance 2D lines and circles drawn in the Top view), you need to create surfaces
first before you can create polygon data.
.3dm, .igs, .stp, and .sat file formats support curves and surfaces, so these formats hold the most accurate
representation of MoI's model data.
.obj, .stl, .3ds, .lwo, .fbx, and .skp are all polygon-based file formats.
.pdf and .ai formats generate a flattened 2D drawing for printing or import into 2D illustration programs.
.dxf format can hold either a 2D drawing for import into a 2D CAD program for annotation and printing, or also if
you export wireframe curves to DXF there is an option for writing the 3D curve data.
Normally you use File > Save As to write your model out to a different format. File > Export can also be used.
Export is short for "Export Selected", and it will write only the selected objects out to the file, while Save As will
write everything regardless of selection.
Most rendering programs are focused on handling polygon mesh data. Some do support .3dm or .igs import and
then convert those surfaces into polygons, but often times they will not perform a very good conversion. It is
typically better to let MoI do the conversion to polygons instead.
Usually you will want to use the .obj format to bring polygon mesh data into a rendering program. However, use
.lwo for Modo or LightWave, and use .fbx format for 3ds Max.
Some programs cannot handle N-gons (polygons made up of more than 3 or 4 sides) very well, so if you are
getting bad results you may need to switch the Mesh options from Output: N-gons, to Output: Quads & Triangles,
or Output: Triangles only.
Also, some programs may function better if you uncheck "Weld vertices along edges" which you can access by
clicking the arrow in the lower-left corner of the Meshing options dialog box.
.3ds format has several limitations, so only use it if you have no other choice.
Some kinds of CAM programs may prefer to read .3dm, .igs, or .stp data, and others may be focused on taking in
facets using the .stl format.
It is possible to write wireframe curve data to SketchUp .skp format, which will convert the curves into polylines.
In order to avoid curves being duplicated on top of polygon edges, curves are only exported to .skp format if
there are only curves being written to the .skp file and not any meshed surfaces.
You can share data back and forth between Rhino and MoI by using Copy and Paste instead of saving to a file.
It is also possible to use copy/paste between MoI and Adobe Illustrator and some other 2D illustration programs.
MoI will recognize PDF or AI formats on the clipboard and be able paste those into MoI using the regular paste
function. Use one of the following scripts on a shortcut key for going the other direction from MoI into Illustrator:
script: /* Copy AI format to clipboard */ moi.geometryDatabase.copyToClipboardAI();
script: /* Copy PDF format to clipboard */ moi.geometryDatabase.copyToClipboardPDF();
If your object is made up of individual separate surfaces, use Edit/Join to glue the surfaces together at their
common edges before exporting. The mesher will do extra work to create a unified mesh along joined edges. If
surfaces get meshed individually without knowledge of their neighbors, it can lead to different vertex structures in
each mesh which can cause cracks.
You can control the materials that are applied to .obj, .lwo, and .fbx format exports by assigning styles in MoI.
File > Open, Save As, New, Import, Export, Open template, Import part
Save
Undo, Redo
Delete
Split / 3D / Top / Front / Right
XYZ / Distance / Angle
Grid Snap, Straight Snap, Object Snap
Options, Help, Full Screen, Browser
5 of 99
Side pane:
Draw curve
Lines > Line, Polyline
Freeform > Control points, Through points, Sketch
Rect > Corner, Center, 3 pts
Polygon > Center, Edge, Star
Circles > Center, Diam, 3 pts, Tan
Arc > Center, Cont, 3 pts, Tan
Ellipse > Center, Diameter, Corners
More > Point, Helix, Conic
Draw solid
Plane > Corner, Center, 3 pts
Box > Corner, Center, 3 pts
Sphere
Cylinder
Cone
Text
Edit
Join, Separate
Trim
Extend
Show pts, Add pt
Copy, Copy with origin, Paste, Paste part
Hide
Lock
History
View
Reset all
Image
CPlane
Display hidden lines
Select
Sel all
Desel all
Invert
Construct
Boolean > Diff, Union, Isect, Merge
Fillet > Fillet, Chamfer
Offset > Offset, Shell, Inset
Planar
Extrude
Revolve > Revolve, Rail revolve
Loft
Sweep
Blend
NSided
Network
Curve > Project, Isect, Silhou, Iso
Transform
Move
Copy
Rotate > Rotate, Rotate Axis
Scale > Scale, Scale 2D, Scale 1D
Mirror
Array > Grid, Dir, Circular, Curve
Align
Orient > Orient, Line/Line, View/View
Deform > Flow, Twist
SubD
Create > From file
Dim
Horiz
Vert
Aligned
6 of 99
Radius
Angle
Leader
Text
Viewport controls
Area
Zoom
Pan
Rotate
Reset
Additional commands
Incremental save
Rebuild
Flip
Merge
ArrayGem
ExplodeMove
BoundingBox
BoundingBoxCenter
ShrinkTrimmedSrf
Make2D
RemoveDuplicates
Meshing options
Hidden line options
Repeat
Construction lines
Shortcut keys
Edit frame
Properties panel
Object properties dialog
Scene browser
Orientation picker
Drawing on surfaces
Numeric expressions
Multitouch view navigation
File
Opens a file.
MoI supports reading in curve and surface data from 3DM, IGES, STEP, and SAT files. 2D curves can be opened
from PDF and AI files, and curves and drafting entities like lines, circles, and arcs can be opened from DXF files.
Open
3DM is considered the "native" file format that supports all MoI data.
A right click on the Open button will perform an Open template operation instead.
Curves and surfaces can be saved to 3DM, IGES, STEP, and SAT formats. A hidden line drawing can be saved
to the PDF, AI, or DXF formats for printing or transfer to 2D illustration or 2D CAD programs. Polygon mesh data
Save As can be saved to OBJ, STL, 3DS, LWO, FBX, and SKP formats.
When saving to a polygon mesh format, the Meshing options dialog will be shown to allow adjusting the mesh density.
When saving to a 2D drawing format, the Hidden line options dialog will be shown.
Deletes all current model content and resets the current file name to blank.
7 of 99
New
Import is similar to Open, except the data from the chosen file will be added to the current model instead of
replacing the current model.
Export is similar to Save As, except only the selected objects are written to the file.
Export
When you open a file as a template file, the current file name will remain blank so that it is not so easy to save over top of the
template file itself.
If you want to have a template file loaded at every startup of MoI (for example to control the default set of styles or view
settings or any other properties stored in files), that can be specified under Options > General > Template file.
This will merge the chosen file with the current model but has an additional step for adjusting the orientation of the imported
part, for example to align it to be perpendicular to an existing surface.
The base origin of the part is defined by the CPlane that was set in the saved file, or the world origin if no custom CPlane had
been set.
For more information on how the orient step works, see Orientation picker.
Also see Incremental save for a way to save using incremented version numbers (file01.3dm, file02.3dm, file03.3dm,
etc...)
Save
Undo is normally used to reverse edits to objects, but it can also be used to restore the previous selection or visibility
state. So for example, if you are building up a selection and accidentally click somewhere and mess it up, use Undo to
Undo get your selection back. Selection undo only works for one step back, after that further undos will switch to undoing
geometry edits.
Redo
8 of 99
Control points of a curve can be removed with this command.
If all the edges of a trimming boundary (for example, a hole trimmed in a surface) are selected, then delete can be used to remove
that trimming boundary and restore the original underlying surface. This is sometimes referred to as "untrimming".
Split / 3D / Top / Front / Right These tabs on the bottom toolbar control the viewport configuration, switching between the split
view or a maximized single view.
Clicking a second time on the Top, Front, or Right tabs will toggle back and forth between the reversed views (Bottom, Back, Left).
You can also right click on an ortho view tab to reverse it.
XYZ / Distance / Angle These controls in the middle of the bottom toolbar allow for viewing and entering exact numeric data
when picking points during a drawing command.
The x,y,z edit box shows the coordinates of the current point under the mouse. The distance edit box shows the distance between
the previous picked point and the current point, and the angle box shows the angle of the line formed between the previous picked
point and the current point.
Distance constraint can be activated by entering a value in the distance edit box. This will force the next point to be the given
distance away from the previous point. This can be used for example when drawing a line to restrict the length of the line to a
certain value while allowing it to be oriented freely.
Angle constraint can be activated by entering a value in the angle edit box. This will force the next point to snap to the given angle
from the previous point.
If you want to type in an x,y,z coordinate using the keyboard, it is usually not necessary to actually click in the xyz box before typing.
Just start typing and your keystrokes will go there automatically.
The x,y,z edit box allows point entry using several different forms:
x,y,z - 3 numbers separated by commas or spaces will use that x,y,z point in world coordinates, or in cplane coordinates when a
global cplane has been set.
x,y - 2 numbers will use z as 0
0 - A single 0 character can be used as a shortcut for the origin (0,0,0).
rx,y,z or rx,y - prefix a 3D or 2D coordinate with "r" to make the new point relative to the previous picked point. This can also be
used for the first point pick as well, where it will set up an offset distance from the point under the mouse.
wx,y,z or wx,yz or w0 - prefix a coordinate with "w" for it to be taken in world coordinates instead of in the current cplane
coordinate system, when a global cplane has been set.
number - a single number other than 0 activates distance constraint, so you can easily type in a distance constraint without
needing to click on the distance box.
<number - a < symbol followed by a number activates angle constraint.
dist<angle a distance value followed by a < symbol followed by an angle (for example, 4<45) will plot a polar coordinate relative to
the previous point. This can be prefixed with "w" to make the polar coordinate relative to the origin.
The XYZ field can also be used as a mini command line entry for typing in commands. To use it in this way, press the Tab key first
to put keyboard focus into this control, then type a name and push Enter. That will launch any command of that name, or select any
named objects that match that name. For named object selection you can also include wildcard characters, for example if you have
some objects named "upper deck" and "lower deck", you can type in *deck to select both of them.
Grid Snap Clicking on this button allows toggling grid snap on or off. The button will show with an orange highlight when grid
snap is enabled. The size of the grid can be changed under Options > Grid, or on the popup menu that can be
launched by clicking the arrow that appears when you move the mouse over this button.
Straight Snap Clicking on this button toggles straight snap on or off. The button will show with an orange highlight when straight
snap is enabled. Different options for straight snap can be set under Options > Snaps. By default the snap angle
is set to 90 degrees, and the default can be changed under options. It is also possible to use Angle constraint to define a custom
snap angle that stays in effect for just one pick, see XYZ / Distance / Angle above. Snapping to too many angles by default can get
in the way of doing freeform drawing, so it can be a good idea to leave the default to 90 and use Angle constraint when necessary
to get other angles.
Object Snap Clicking on this button toggles object snap on or off. The button will show with an orange highlight when object
snap is enabled. When you move over this button, an arrow will appear above it, and you can use that to show a
menu that allows enabling or disabling specific types of object snaps. It is recommended to leave all the snap types enabled, and
instead disable or enable Object Snap completely by clicking on the main button for it. You can also hold down the Alt key when
picking points to temporarily suppress object snaps.
9 of 99
Opens the Options dialog which allows for changing various options for how MoI works.
Options
Launches the help file. When moving over the help button, you can use the arrow that appears above it to open the
About dialog to show version information.
Help
This allows for MoI to switch back and forth from full screen mode (Windows version only). When full screen mode
is enabled, MoI's window will expand past the Windows system task bar to give you a larger working area. This
button only appears when MoI's window is maximized.
Full Screen
Browser Clicking on this button will hide or show the Scene Browser pane when the browser is in Adjacent or Opposite position
modes.
Draw curve
Lines
You can use Straight Snap, Object Snap and Construction lines to assist in placing the line.
Line Use Distance constraint or Angle constraint to draw a line of a particular length or angle.
You can enable the Both sides option to have the first point taken as the midpoint of the line.
Polyline While drawing the polyline, undo can be used to remove the last picked point.
Freeform
The line through the first and second point defines the starting tangent direction of the curve, and the line
through the last 2 points defines the ending tangent, so you may want to place the second and second-to-
Control points last point with care to control the exact starting or ending direction of the curve
If you want the curve to come to a sharp point, check the "Make corner point" checkbox, or hold down the Ctrl key when
clicking.
When drawing the curve, undo can be used to remove the last picked point.
10 of 99
Draw a freeform curve that is forced to pass through the points that you pick.
This can be useful if you want to force the curve to go through a particular spot, but this can also easily
introduce wiggles in the curve. Using control points is generally preferred since it will create a more relaxed
Through points curve.
If you want the curve to come to a sharp point, check the "Make corner point" checkbox, or hold down the Ctrl key when
clicking.
When drawing the curve, undo can be used to remove the last picked point.
Draw a freeform curve using a click, hold down, and drag method like a brush stroke.
The curve will close automatically if your stroke comes nearby the start point.
Sketch If you want to draw many sketch curves in a row, use the Repeat checkbox.
Rect
Corner Options are available for entering a specific width and/or height. For quick keyboard entry of width or height, it is
not necessary to actually click anywhere. Just start typing and your keystrokes will go to the width box, and push
Tab to move to the height box. Press Enter when you are finished with the height.
Checking the "Rounded corners" option will allow you to specify a radius for the corners of the rectangle after the 2 corners
have been picked.
Center
Draw a rectangle using 3 points, with 2 points for one edge and then a 3rd point for the width.
When picking the 3rd point, Square snaps are available to form an exact square.
Polygon
Center The Circumscribed option controls whether the polygon is contained inside the radius, or whether it is positioned
to the outside of the radius.
Edge
11 of 99
Draw a star shaped polygon by center and radius points.
Style:Auto will draw one using the classic proportions. Switching to Style:Custom allows specifying a third point to
define the inside radius.
Star
Circles
Click on the Radius label with the small arrow to switch between entering radius or diameter.
Center The Vertical checkbox will flip the circle 90 degrees to point vertically up from the plane.
The Vertical checkbox will flip the circle 90 degrees to point vertically up from the plane.
Diam
3 pts
Tan After the first 2 points are placed, you can either enter a radius value, pick a point for the circle to pass through,
or pick a point snapped on to another curve to make a circle tangent to all 3 curves.
Arc
The Elliptical option can be checked to create an elliptical arc that passes directly through the final picked point.
Center
Draw an arc that continues tangent from the end of an existing curve.
The first picked point should be nearby the end of an existing curve
Cont
The order of the picked points can be changed using the Style option.
3 pts
12 of 99
Draw an arc tangent to existing curves.
Tan After the first 2 points are placed, you can either enter a radius value, pick a point for the base circle to pass
through, or pick a point snapped on to another curve to make a base circle tangent to all 3 curves.
After the the base circle has been established, an additional click is required to specify which of the available arc choices you
want to keep. Click close to the portion that you want.
Ellipse
A specific width and height for the full ellipse can also be entered.
Center
Draw an ellipse by 2 diameter points followed by a point for the second axis.
Diameter
Draw an ellipse by specifying the 2 corner points for its bounding box.
Corners
More
Point objects can be used to place a marker somewhere that can easily be snapped back to later on.
Point
Two points are picked to define the central axis and length of the helix. After the axis is defined, the next pick
defines the start radius. If you want to have a different radius at the end for a tapered effect, check the Tapered
Helix option before finishing the first radius.
After the radius has been defined, you can adjust options for the number of turns of the helix, or the pitch which is the distance
traveled by one coil.
If you want to draw a completely flattened 2D spiral use the "Flat spiral" option that shows up after the first point has been
picked. That will cause the first point to become the center of the 2D flat spiral.
Draw a conic section curve (either a parabola, hyperbola, or ellipse segment) from a 3 point frame plus a
"through point" or Rho value.
The frame defines the end points and the tangent directions of the generated curve.
Conic
If the ends of the frame are snapped on to curves, the intersection of the curve tangents is available as a Tan/Tan
snap point for placing the middle point of the frame.
13 of 99
With a Rho value equal to 0.5, the curve is a segment of a parabola.
With Rho greater than 0.5 and less than 1, the curve is a segment of a hyperbola.
Draw solid
Plane
Corner
Draw a rectangular plane surface by center and corner point, similar to Rectangle center.
Center
Draw a rectangular plane surface using 3 points, with 2 points for one edge and then a 3rd point for the width.
Similar to Rectangle 3 points.
3 pts
Box
Draw a solid box, starting with a base rectangle corner to corner followed by an extrusion value.
Corner
Draw a solid box, starting with a base rectangle from a center point to a corner, followed by an extrusion value.
Center
Draw a solid box, starting with a base rectangle from 3 points, with 2 points for one edge and then a 3rd point for
the width, followed by an extrusion value.
Click on the radius label with the small arrow to switch to diameter entry mode.
Sphere
Draw a solid cylinder, from a base center point, radius, and height.
14 of 99
Click on the radius label with small arrow to switch to diameter entry mode.
Cylinder
Draw a solid cone, from a base center point, radius, and height.
Click on the radius label with small arrow to switch to diameter entry mode.
Cone
First pick a base point - this will become the lower left corner of the text, and the grid of the viewport that you click in
will be used to orient the text. For example, if you click the base point in the front view your text will be oriented flat to
Text the front view so it will be pointing upwards in Z.
After your base point is defined, you can then edit various options such as the text and font. You can also change the Create option
to create curves or just planar surfaces instead of extruded solids.
Some elaborate fonts may have crossing or intersecting outlines which may cause problems when MoI tries to distinguish solid
areas from holes.
Edit
Joins together curves into longer single curves, or joins surfaces along common edges into solids.
Surfaces will only be joined at common unattached edges. If you need to combine 2 objects that will require some
kind of intersection and pieces removed during the combining process, then use the Boolean Union command
Join instead.
Surface edges must be within 0.005 units from one another to be joined.
Breaks joined objects into individual separate objects. Curves will break up into individual segments; for example, a
rectangle will convert into 4 separate line objects. A solid will break up into individual faces; for example, a box will
separate out into 6 plane objects.
Separate If a solid has face sub-objects selected, just those selected faces will be extracted from the solid. This allows for
extracting just one particular sub-assembly from a larger solid.
Cuts up an object. Some portions may be removed to make holes, or optionally all sliced up pieces may be retained.
Trim works on curves, surfaces, or solids. The general procedure is to first select the object to be trimmed, and then
run the Trim command. Next select the cutting objects, then select which pieces to discard. If you want to keep all the
Trim pieces instead of discarding any, then click Done (or right-click in a viewport) without selecting anything at that final
stage.
Sometimes if you want to remove a lot of pieces, it can be easier to select the items you want to keep instead of the portions to
discard. This can be controlled by switching the Mode: option to Mode: Keep.
When trimming curves, it is possible to add cuts to the curve at specific points by clicking the "Add trim points" button. For example,
if you want to split a line at its midpoint, select the line, run Trim, click "Add trim points" and then click a point at the midpoint of the
line and click Done. This will split the line at that point. It is also possible to trim a curve by selecting point objects as the cutting
objects.
When trimming an individual surface, an "Isocurve" option will show up, which will allow you to pick one of the surface's own natural
U/V directional lines as the cutting object.
It is not necessary to project curves on to surfaces before trimming. Trimming already includes projection built in, so just use the
curve as a cutting object directly.
If 2 objects intersect one another and you want to cut each of them with the other, then select both of them, run Trim, and then click
Done at the prompt for selecting cutting objects. This is called a "mutual trim" operation, it will use those objects as both sources
and cutters.
Trim will slice just the outside surface skin of a solid. If you want to make cuts through an object where it stays as a solid, use the
Boolean operations instead of Trim.
15 of 99
You can also use Trim on surface edges to split the edges into smaller separate segments. The Merge command can be used to
reverse this and glue split edges into longer single edges.
Extend a curve to meet the selected boundary objects. The boundary objects can be curves, surfaces, or solids.
Currently only curves are supported as the object to be extended.
Lines and curves will be extended by a straight line. Arcs will be extended as arcs.
Extend
Example for extending curves to a boundary:
It is also possible to extend 2 curves to meet each other instead of meeting a single boundary. This is called mutual extend, and can
be activated by selecting both curves, running Extend, and then clicking Done instead of choosing a boundary object.
You can also use the Esc key to turn points off, see Shortcut keys for more information.
Show pts When a curve has control points turned on, an additional edit mode is enabled if you click and drag on the body of an
unselected curve. This enables "drag point on curve" mode where the curve will be deformed to pass through the
point you dragged on. This works by moving several nearby control points in one single action, so it can be useful for roughing out
the shape of the curve.
Curves and individual surfaces can always have points turned on. Solids made up of surfaces joined together at common edges
can only have points turned on if all the surfaces share the same points along the common edge. If 2 joined surfaces have different
structures along a joined edge, points cannot be turned on for that object because it would be easy to pull the surfaces apart and
ruin the shared edge. In this situation it is possible to use Edit/Separate to break the joined object into multiple independent
surfaces and you can turn on points for the individual surfaces.
For curves you can make a point that will form a sharp corner when it is moved by checking the "Make corner point"
option, or holding down Ctrl when clicking.
Add pt
To add many points, enable the Repeat checkbox, or right-click to repeat the last command.
There are 2 different methods for adding curve points. If points for the curve are turned on and you click on the dashed hull between
2 existing points, a new point will be added with the same effect as if you had drawn the curve with that additional point. Other
points will stay where they are currently located and the shape of the curve will change slightly.
The second mode for adding curve points is activated by clicking directly on a curve that does not have control points turned on -
16 of 99
this will create a new point nearby the area you clicked, and existing points will shift slightly, but the shape of the curve will remain
exactly the same as before.
For surfaces you add in an entire row of points in the U or V directions and you pick a point on the surface to indicate the area of
refinement. The shape of the surface itself will remain the same and the existing control points near the refinement area will shift
slightly.
You can copy an edge of a solid to the clipboard, which will copy the curve of the edge. You can then use paste to
create a copy of the edge as an independent curve object.
Copy
You can use copy/paste to move objects back and forth between MoI and Rhino. You should keep both MoI and
Rhino open at the same time when doing this type of transfer.
It is also possible to use copy/paste between MoI and Adobe Illustrator and some other 2D illustration programs. MoI will recognize
PDF or AI formats on the clipboard and be able paste those into MoI using the regular paste function. Use one of the following
scripts on a shortcut key for going the other direction from MoI into Illustrator (it's not part of the regular copy function because it
has its own set of controls with various options):
script: /* Copy AI format to clipboard */ moi.geometryDatabase.copyToClipboardAI();
script: /* Copy PDF format to clipboard */ moi.geometryDatabase.copyToClipboardPDF();
Copy with origin Copies selected objects to the clipboard, with an additional step to define an origin point.
This is intended to be used in combination with the Paste part command which allows the pasted objects to be positioned and
oriented to align to existing shapes. The origin point for the objects will be mapped to the target point picked during the paste.
This can be called either by right-clicking on the Copy button, or by the keyboard shortcut Ctrl+Shift+C.
It is also possible to copy/paste objects between MoI and some other applications, see the Copy command above for
some more information.
Paste
Paste part Pastes in objects from the clipboard, with an additional step for adjusting the orientation of the pasted objects, for
example to align them to be perpendicular to an existing surface.
This is intended to be used in combination with the Copy with origin command which allows specifying an origin point for the copied
objects, but it can also be used with the regular Copy as well. When regular Copy is used, the origin will be either the world origin or
the cplane's origin if a custom construction plane has been set.
For more information on how the orientation works, see Orientation picker.
This can be called either by right-clicking on the Paste button, or by the keyboard shortcut Ctrl+Shift+V
If objects are selected when you press Hide, those objects will be hidden.
Hide If no objects are selected when you press Hide, all hidden objects will be shown.
There is also an Isolate function available by right-clicking on the Hide button. Isolate will keep just the selected objects visible and
hide all unselected objects. When you run Isolate a second time, everything will be restored to its pre-Isolate state.
If you only want to show some of the hidden objects instead of all of them, that is possible by holding down the Ctrl key when
clicking the Hide button to perform a "show subset" operation. When doing "show subset", all the hidden objects will be temporarily
displayed so that you can select which of them you wish to display. Once you have finished selecting, click Done or right-click and
the regular display will be restored and any objects you did not select will return to being hidden.
In addition to this button, you can also use the Scene browser to hide and show objects in batches by clicking on the eye icons for
different object categories. A left click on an eye in the scene browser will switch it between hidden and visible and a right click on
an eye will isolate just that item and hide everything else.
17 of 99
When objects are locked, it prevents them from being selected but keeps them visible in the scene for either a visual
or snapping reference. Snapping to locked objects can be enabled or disabled by a checkbox under Options > Snaps
> Object snap options > Snap to locked objects.
Lock By default when objects are locked, they switch to a grayed out color. It's possible to disable the color switch or adjust
the color used under Options > View > Locked objects use alternate color. Uncheck the checkbox to avoid color
switching, or click the swatch to adjust the color.
The Lock button works the same as the Hide button next to it.
Left click on Lock with objects selected to lock all selected objects.
Right click on Lock to "Isolate" the current selection by locking everything else other than the current selection. Right click again
later on to restore back to the pre-isolate state.
Ctrl+Left click to do an "Unlock subset" which will temporarily show all current locked objects and allow you to select just a few of
them to unlock. Once you have finished selecting, click Done or right-click and the regular display will be restored and any objects
you did not select will return to being locked.
In addition to this button, you can also use the Scene browser to lock and unlock objects in batches. Hold down the Ctrl key when
clicking on an eye in the scene browser to switch it back and forth between locked and unlocked.
Some commands have history updates enabled by default. For example, the Loft command will update the lofted
surface if you edit one of the original curves. If you want to stop that updating, you can select the lofted surface, run
History the History command and click "Disable update". After that the lofted surface will no longer update when you edit the
original input curves. Also, some commands have history disabled by default such as Transform > Copy or Transform
> Rotate. You can use History > Enable update to turn history updates on for the results of these commands.
View
Applies a view reset to all viewports.
The first click will reset views to focus in on just the selected objects, and clicking a second time will switch to focusing
on everything regardless of selection.
Reset all
You can also reset all viewports by right-clicking the Reset button inside of an individual viewport.
Image After an image has been added, it will show up in the list of all images. An entry in the list can be selected to hide,
show, or remove it. Pausing your mouse over top of one entry in the list will show the full path to that image.
The Align button allows you to do image registration of the selected image by picking 2 points on the image, then 2 points in the
model. The image will be moved, rotated, and scaled to make the picked lines coincide.
The Properties button will pull up an image properies dialog which allows editing the path to the image if you have moved it
somewhere else. Also the image can be reloaded from disk, and also an option can be enabled here to embed the image data
directly inside of the 3DM model file. You can also right-click on an image's file name as a shortcut for pushing the properties
button.
The following options are also available and affect all images:
Draw below objects - choosing this option draws images as a backdrop behind everything else.
Draw with objects - this option draws images mixed in as if they were regular objects.
Draw above objects - this option draws images on top of everything else as an overlay. This is intended to be used with
transparency, it gives you a way to always see a faint image without objects blocking the way.
Show in ortho only - only shows the image in the Top/Front/Right views, not in the 3D view.
Transparency - you can put in a percentage here from 0% (fully opaque with no transparency) to 100% (completely transparent).
Background images are editable while you are inside this command. Click and drag on an image to reposition it. Dragging on a
18 of 99
corner frame widget allows scaling of the image, and dragging on the rotation widget allows rotating the image. A click and release
on the rotation widget instead of click and drag enables a different rotation mode that shows a 3-wheel rotation gizmo. When that
gizmo is enabled you can click and drag on any of the 3 wheels to rotate around any of the 3 axes - click off of a wheel to exit this
mode. Undo can be used to undo edits of the background images while still inside the Image command.
The CPlane (Construction Plane) tool allows the drawing plane and ortho views to be relocated to more easily work
on objects that are not aligned to the world axis directions.
Note that you can also draw directly on surfaces by using object snaps (see Drawing on surfaces for more info), so it
CPlane is not always necessary to set up a CPlane manually. But you can set one if there is no surface already available
where you want to draw, or if you want more detailed control over the drawing grid.
The CPlane will be situated by an origin point and x/y/z axis locations which are specified using the Orientation picker, and which
can be snapped on to a surface or curve in the model to provide a working environment local to that area.
After you have set a CPlane, when you want to return back to the default world planes, press the "Reset CPlane" button that shows
up in the command options area after launching the CPlane tool. You can also right-click on the View > CPlane button as a shortcut
for resetting back to world planes.
Some options are available to set before placing the CPlane origin point.
When the "Apply to all views" option is enabled, the CPlane will be global and used in all viewports. If "Apply to all views" is
disabled, then the CPlane will only be applied to the 3D view and the Top/Front/Right views will remain using their regular world axis
planes instead.
When setting a global CPlane, by default the Top/Front/Right views will shift to become plan views of the CPlane, for example the
Top view will shift to be looking straight down at the CPlane's Z axis rather than looking down the world Z axis direction. Views that
have been shifted in this way will have an additional (cplane) label displayed in their titles. This view direction shift can be disabled
by unchecking the "Orient ortho views" option.
Setting a global CPlane will also affect x,y,z coordinate point entry, with the coordinates evaluated in the CPlane's coordinate
system instead of in world coordinates. For example typing in 0,0,0 will place a point at the CPlane's origin instead of the world
origin. You can prefix typed in points with a w (for example w5,2,1) to enter in a world coordinate point instead when a CPlane is
active. The x,y,z point coordinate readout in the bottom toolbar will also show the location of the mouse in CPlane coordinates
instead, with a "c" being displayed in front of them to indicate they are CPlane coordinates and not world coordinates.
Display hidden lines Enables or disables the hidden line display. When enabled, curves and edges that would normally be
hidden are instead drawn in a faint dashed line style and also can be targeted for selection.
Select
Selects all objects that are not hidden.
If sub-objects are selected, the selection will be limited to other sub-objects. For example, if you have an edge of a
solid selected, this will select all edges of that solid and not other objects.
Sel all
You can also use the Esc key to deselect objects, see Shortcut keys for more information.
Desel all
Inverts the selection - selected objects will become unselected and unselected objects will become selected.
If sub-objects are selected, the changes will be limited to other sub-objects. For example, if you have an edge
selected, this will invert the selection of all edges of that solid and not other objects.
Invert
Construct
Boolean
19 of 99
Cut an object by subtracting another object from it.
Select the objects to be cut first, then run Boolean Difference and select the cutting objects.
Diff Different kinds of objects can interact with each other. For example, a solid can be cut by another solid, surface,
or a 2D curve. It is also possible to cut a 2D curve using another 2D curve.
The Boolean can be limited to only cut specific faces of a solid by making a face sub-object selection before doing the boolean
rather than selecting entire objects.
It is also possible to difference a solid by a 2D curve directly, creating a solid as the final result. It is not necessary to extrude
2D cutting shapes into solids if you want to cut all the way through. Here is an example of a solid being differenced by a set of
2D curves:
Another example of solid/curve Booleans - here the solid is being cut by line segments, resulting in smaller sliced pieces each
of which is a solid (result shown slightly separated here for illustration):
20 of 99
It is also possible to difference a solid with an open non-solid surface. This will slice the solid into multiple pieces. Select and
delete any pieces you don't want to keep (result shown slightly separated for illustration):
Boolean difference also works between curves that are all on one common plane. Closed curves can also have other closed
curves nested inside of them to form hollow 2D regions:
21 of 99
Solids can be unioned with other solids or surfaces, and 2D curves can be unioned with other 2D curves.
The Boolean can be limited to only intersect with specific faces of a solid and ignore others by making a face sub-
object selection before doing the boolean rather than selecting entire objects. This can be useful to union just to
Union one side of a thin walled object.
Here's an example of unioning 2 solids - at the start there are 2 different box objects. The skinny box is positioned so that it
punches through the wider box. After selecting them and running Boolean Union, the boxes are combined into one object. New
edges are formed where the boxes intersected each other, and portions of each box that were inside each other have been
discarded to make one single connected volume.
Curves that are all on the same plane can be combined in a similar way:
An example of subset booleans, where the boolean is limited to a specific area by face selections. Here are 2 solids pushing
through each other:
If only the outer face sub-object of the other object is selected instead of the whole object, as shown here:
22 of 99
Then when doing a Boolean Union, only the outside face will get intersected and the unselected faces along the interior will be
temporarily ignored, producing this type of result:
This can be useful for combining objects on only side of a thin walled object.
Objects to be intersected are treated as 2 different sets. Select one set, run Boolean Intersection, then select the
other set.
Isect
Solids can be intersected with other solids, surfaces, or curves, and 2D curves can be intersected with each
other. 2D curves that are all on a single plane will generate a curve result, or 2D curve profiles on different planes can be
combined to generate a solid result.
Here is an example of intersection between a solid and a 2D curve. The area inside the curve will be kept. In a sense this is the
23 of 99
opposite of Boolean difference, which would instead drill a star shaped hole through the sphere.
Boolean Intersection can also be useful for creating a quick blocky 3D model that is the combination of 2 2D profiles arranged
90 degrees to each other. For example, here 2 curves are intersected to create a basic blocky car shape. History is available
for this type of intersection, so you can adjust the curves and watch the 3D result update.
Another example of combining 2D profiles - final stage shown after using Fillet to round the sharp edges:
Boolean Intersection can also be used on curves that are all in the same plane to create a curve result:
24 of 99
Combines objects together and extracts all volumes.
Boolean Difference, Union, or Intersection all discard certain pieces. Boolean Merge cuts up objects in a similar
way as those other commands except it keeps all the solid pieces. Merge can be used on solids, surfaces, or
Merge curves in different combinations.
Here is an example of Boolean Merge between 2 solids (pieces have been separated for illustration):
2D curves can be Merged onto a solid to cut the solid by an imprint of the curve, leaving all pieces:
Boolean Merge can also be used to extract a common solid volume from a set of intersecting surfaces:
25 of 99
Merge can also be used on curves in the same plane:
Fillet
Fillet will apply the rounding in different ways depending on what is selected.
Fillet Selecting an entire solid object will fillet all edges of the solid.
Selecting faces of a solid will fillet all the edges that belong to those faces.
Selecting 2 individual surfaces will perform a surface/surface fillet operation, instead of an edge-based one.
Selecting 2 curves will create a fillet between them, extending or trimming them if necessary.
Selecting a single curve that has corners in it (for example, a rectangle curve) will allow filleting of some or all of those corners.
26 of 99
At the "Pick fillet radius" prompt, you can either click 2 points to define the radius as the distance between those 2 points or
enter a radius value directly. If you want to type in a value, it is not necessary to click in the Radius edit box first, you can just
start typing and keystrokes will go there.
The Shape: option controls whether the fillet will be shaped as an exact arc or as a more organic blend type shape. The blend
options show a slider that can be used to adjust the amount of bulge.
The Straight corners option controls whether rounded corners will be placed where fillets meet, or whether the fillets will be
extended to intersect each other directly:
Enabling straight corners will cause failures in some situations where the fillets do not directly intersect each other when they
are extended. Here is an example that won't work, notice the hole that would be created if this were attempted to be filleted
with straight corners. The final step shows how a corner patch is needed in this case to connect the pieces together:
27 of 99
Fillets tend to be a complex area of calculation, and places that have small slivery surfaces or a lot of edges coming together at
one shared point will tend to increase the chances that the fillets will fail to calculate. Trying to build things using broader
surfaces and with more simple corner structures can help.
Also one common cause for fillets failing to calculate is asking for too large of a radius than will fit inside the model. Try starting
with a small value such as 0.1 and gradually increasing it. Often times it is surprising how much space a fillet of a seemingly
small radius like 1 or 2 will occupy in a model, especially if the model has any thin or concave type areas.
Areas with tight bends in them can also limit the maximum possible fillet size. Here is an example to demonstrate - imagine that
the bent curve corresponds to a tightly curved area of a model, and the line represents a fillet radius that is larger than the size
of the bend. As the filleter travels along the curve, it will try to maintain this distance, but you can see how this will cause a
pinched and bunched up area around the tight bend where the lines are not cleanly separated and intersect with each other.
The same kind of self-intersecting and bunching would happen to a fillet surface that tried to maintain a large radius as it goes
through a tight bend. If you want to place larger fillets on your model you usually need to avoid making very tightly bent areas
like this:
Normally fillets on a solid are applied to edges of the model. An alternative filleting mechanism is available by selecting 2
individual unjoined surfaces and running Fillet (you can use Edit/Separate to break a joined model up into individual separate
surfaces). This style of surface/surface fillet is created by processing just the 2 surfaces instead of making the fillet try to follow
edges, so it can succeed in places where the edge-based fillet will fail. This can sometimes be used to create fillets one piece
at a time in difficult areas. The tradeoff is that these fillets will tend to require more manual trimming where pieces meet up
while the edge-based filleting automatically trims and handles corner areas.
A variable radius fillet can be performed where the fillet radius changes at certain spots along the edges like this:
You can use variable radius fillets by expanding the "Fillet set" section in the fillet options, and adding in a new point set by
picking points on the edges. Once you have defined a point set, the next radius you enter will control the radius just at those
points. You can click on the "Current set" line to pop up a menu to control which set is currently active and being manipulated
by the Radius control, and also to delete prior point sets. There is a demonstration video for variable radius fillets here: Variable
28 of 99
radius demo on YouTube.
Chamfer is used to chop off sharp corners with a small flat piece.
It is very similar to Fillet, but instead of placing a rounded area it places a facet.
Chamfer also has the option of specifying 2 different distances to control the slope of the facet. If faces were selected to
chamfer, those selected faces will have distance 1 associated with them, with distance 2 applied to the adjacent unselected
29 of 99
faces. If edges instead of faces are selected to chamfer, the edges are examined to see if they have a face in common and if
they do that common face will use distance 1, with distance 2 applied to the adjacent faces. Here is an example - the top face
is selected and a chamfer is then applied using distances of 1 and 3:
Offset
30 of 99
Offset tends to be used more often on curves, with the Shell command being used instead more frequently on solids or
surfaces.
For curve offsets, Through Pt mode will let you pick a point and calculate the offset that passes through that point. Distance
mode allows entering a specific offset distance and then you pick which side of the curve to offset towards by clicking with the
mouse.
Offset for surfaces or solids allows you to either pick 2 points to define the offset by the distance between the points, or enter a
specific distance.
If an entire solid is selected, the result will be an object with a hollow cavity inside of it. If faces of a solid are
selected (which is the more typical way to use it), openings will be created along those faces with the thickness
Shell applied to the unselected faces. If an individual surface is selected, it will be thickened into a slab-like solid.
At the "Pick thickness" prompt, 2 points can be clicked and the distance between them used as the thickness, or an exact
thickness can be entered numerically. The Direction option controls which side the thickness will be added to, with Centerline
placing half of the distance in either direction.
Usually it is best to shell either a completely closed solid, or a single surface. Trying to shell objects made up of several joined
surfaces that do not form a closed solid can tend to fail. It is difficult for MoI to create corners that match up with one another in
that situation. Try to create a fully completed solid to shell instead to have a better chance at success.
Surfaces with tight bends or twists in them can cause problems in shelling, especially if the radius of the bend is tighter than the
shell thickness.
Examples of shelling:
31 of 99
Generates either a depressed or raised panel that follows the outline of faces.
The Inset command takes a selection of face sub-objects for its input.
32 of 99
The thickness distance sets the border size of how far the panel shrinks in from the border, and also how far it protrudes as
well. The protrusion amount can be adjusted separately if you want by the "Use separate height" option. You can set the
thickness either by typing a value or by clicking 2 points inside of a viewport which will take the distance between those points
as the thickness.
The Direction option sets whether the protrusion goes towards the inside of the object, or towards the outside. The first
example here has Direction = Inwards, the second has Direction = Outwards:
When Direction is set to "Outwards" an additional "Expand" checkbox will appear which can be set to make the panel outline
grow in size rather than shrink. This makes a kind of hat placing effect:
33 of 99
The "Grooved" option can be checked which will enable an additional Groove width that can be set to produce results like this
(first one with Direction = Inwards, second one with Direction = Outwards):
If you set the "Grooved" option but do not enter a groove width or set groove width = 0, that will cause an interior plug part to
be generated as a separate object from the main one.
Create a planar surface from outline curves, or fill in end caps on planar openings on surface edges.
Curves that form a closed loop will be turned into a trimmed planar surface. It is possible to have nested outlines to
form holes. Planar will join curves together during its processing, it is not necessary to run join before it as a separate
Planar step.
For surfaces, unattached edges will be examined, and if they form a closed planar loop a trimmed plane will be created and joined
together there.
34 of 99
Creates a solid or surface by tracing an outline along a direction.
Extrude works on selected curves or faces. Closed curves may contain other closed curves inside them to form holes
in the final result. If the automatic assigned direction is not what you want, you can click the "Set dir" button and click
Extrude 2 points to define a specific extrusion direction.
Example of extrusion:
Extrude also has a "Set path" option which enables you to pick a path curve to be used as the extrusion shape instead of the
regular straight line path. The outline and the path curve are combined together to make the output shape. This is different than
sweep since sweep rotates the profile staying perpendicular along the path while Extrude will not rotate it. Extrude with Set path has
the special property that the output surface will have the exact same control point structure as the curves used to generate it, so
sometimes this can be useful if you want to set up a surface and manipulate the surface's control points to deform it.
35 of 99
Other options for Extrude include extrude to point which can be useful for making pyramid or cone-like objects:
For extrude to point, initially the point will track along the same vertical line through the shape's centroid that the regular extrude
also tracks along. If you want to pick a point away from that line for the tip you can push the "Unlock direction" button which will then
allow you to place the top point anywhere.
The "Tapered" option allows you to produce an extrusion with a draft angle applied to make the side walls at a specific angled
slope. You can also have interior outlines which will flare in the opposite direction. The height of the tapered extrusion will generally
be limited to be less than whatever amount would cause different sides of the profiles to collide into one another:
If you select a face sub-object of a solid as the input for extrude, the result of the extrusion will get automatically booleaned with the
36 of 99
base object, allowing for a "push/pull" type action on solids. Extruding the face in an outward direction makes a Boolean Union of
the results, while going inwards does a Boolean Difference. See here for an animated example of face extrusions with auto
booleans: Face extrusion forum post.
Revolve
Two points are picked as the revolve axis, which acts as a kind of hinge that rotates the outline around it. If you
want to alter the angle of revolution, change the option for it before you finish picking the points for the revolve
Revolve axis.
Examples of revolution:
Creates a solid or surface similar to revolve, but an additional path curve is specified.
In a simple revolve, the profile sweeps a uniform circular path around the axis. In rail revolve, you can supply a
custom path instead of the regular circular path. The resulting surface will be scaled from the axis to conform
Rail revolve to the custom path.
37 of 99
Creates a solid or surface passing through cross-section profile curves.
Examples of lofting:
Loft
The option for Loft Style can be adjusted. The "Normal" style creates a loft that passes through the profile sections. "Loose" creates
a surface that is guided by the profiles but not forced to go exactly through each one, this can help to create a more relaxed and
smooth surface if you are having problems with wiggly output. The "Straight" style creates straight sections in between each profile
38 of 99
instead of making a smooth surface through all the profiles.
MoI automatically aligns the profiles together to minimize twist, but this can be adjusted. At the Loft options prompt, you can click on
any profile to reverse the direction of the profile, and on closed profiles a point will appear that can be dragged to edit the
connecting seam point.
Part of the process of lofting is combining the multiple profiles together into one common structure to make a single surface. The
Profiles option controls how this combining is done. The "Exact" option combines the curve structures by inserting all the points for
every curve together. This preserves the shape of each profile, but can result in a very complex surface with too many points if each
curve had different point structures. The "Refit" option reconstructs each curve to a common structure. This results in a less
complex final result, but can sometimes introduce wiggle artifacts in the reconstructed curve. The default "Auto" option tries to do
Exact mode, but switches to Refit mode if Exact mode generates too complex of a result. Finally, the "# Points" mode is another
style of rebuilding that samples a uniform number of points along the curve for the reconstructed curves. You can choose how many
points are used. This mode results in very smooth output, but small details in the profiles tend to be lost.
It's possible for a point object (created under Draw curve > More > Point) to be selected for the start and/or end profile section of a
loft. This can work well with Loft Style = "Loose" mode for generating an organic shape with a smoothly closed tip. Put the ending
point object in the same plane as the last planar profile curve with Loft Style = "Loose" for results like these examples:
39 of 99
Creates a solid or surface passing through cross-section profiles, guided by one or two rail path curves.
Select the profiles first, then run Sweep and select the rails next.
Sweep Sweep has different options and behavior depending on whether you use one or two rails. Selecting 3 or more rails
will be treated as a batch operation performing a one-rail sweep along each rail.
Sweep using one rail will trace the profiles as they move along the rail, staying perpendicular to the rail as they slide along it. It is
the main tool for making tubular type shapes. Profiles may be either placed directly along the rail, or you may place the profiles all
flat on a plane away from the rail and MoI will automatically move and rotate the profiles into place along the rail for you. To enable
auto-place mode make sure the profiles are positioned outside of the bounding box around the rail curve. Multiple profiles may be
used in auto-place mode by placing the profiles in a left to right order.
If the rail has sharp corners in it, and there is only one profile curve, the resulting sweep will be mitered at the corner areas:
40 of 99
You can use the Ends: option to make a one-rail sweep collapse to a single point at the start or end to make a tentacle type shape.
By default, a one-rail sweep will gradually rotate the profile as it travels along the rail curve. This works well for paths that loop all
over in 3D, but you can change the Twist: option to Twist:Flat to only allow rotations in the world Z axis direction, which keeps the
profiles stabilized with respect to the ground x/y plane. When Twist:Flat is set, an additional "Set flat direction" button will show up in
the command options, which you can push to pick 2 points to define which direction to use instead of the default Z axis direction.
Twist:Freeform is the default since it works on any shape of path, while Flat does not work on paths that have a tangent in them that
goes straight upwards in Z. In this example the second image has Freeform twist, and the last one has Flat twist:
The scaling rail option allows you to pick an additional rail curve which will deform the sweep. The profiles from the original sweep
will be scaled up to match up with the scaling rail. In a sense it provides a way to control the length-wise profile of the sweep. When
a scaling rail is active, the "Maintain height" option can be used to control whether the scaling will be applied only in one direction
towards the rail resulting in a kind of stretching effect, or whether the profile will be scaled in all directions uniformly. A scaling rail
allows you to further refine the shape of the sweep using just one curve that can be more easily controlled than using a large
number of cross-sections. The scaling rail should cover the full extent of the sweep, with each profile being able to extend
perpendicular to touch it. An example of using a scaling rail, shown first with the regular sweep then with the scaling rail active:
Sweep with two rails traces one or more profiles as they slide along 2 guide rails on either side of the profiles. The profiles can
either be positioned directly on the rails, or same as one-rail sweep the profiles can also be positioned flat on a plane away from the
rails (outside the bounding box around the rails), and they will be automatically positioned. An example of two rail sweep:
41 of 99
When the "Maintain height" option is enabled, the profiles will stretch just in one direction to fit between the rails. When it is
disabled, the profiles will scale in all directions uniformly when they are fit between the rails.
The scaling rail option works similar to one-rail sweep, it allows you to pick an additional rail curve to stretch the profiles up to. In
this case the scaling rail should generally run down the middle between the 2 rails. An example of two-rail sweep with a scaling rail:
The Maintain tangent option can be used in certain situations to make a sweep that will mirror without a crease. Consider this
sweep and the result after mirroring it:
The reason for the creasing is that the different shaped rails cause some twisting of the profile shape as it slides along them at
slightly different distances. Preserve tangent mode can be activated in situations like this to prevent this kind of twisting. To enable
preserve tangent mode, all the profiles must share a common tangent direction along one rail, and they all must be parallel planar
shapes. This mode slides the profiles along keeping them in the same plane. Here is the previous example swept with Preserve
tangent active and then mirrored:
Both one-rail and two-rail sweep also combine profiles together into one common structure similar to Loft. See Loft above for details
on the Profiles option.
42 of 99
Creates a new piece that makes a smooth connection in the empty space between 2 existing pieces.
Blend can be used on either curves or surfaces. To use it on curves, select near the ends of the 2 curves you want to
blend between. To use it on surfaces, select a sequence of unattached surface edges on either side of the blend area.
Blend Note that if you have independent curve objects overlapping your surface edges (for instance some of the original
curves used to build the surface), it is easy for those curve objects to get selected when you click instead of selecting
the edge of the surface. It may be necessary to delete or hide these original curves so that the edge of the surface object can be
selected instead, that is an easy problem to run into when using Blend.
Blend is used when objects are not touching but you wish to connect them together. If they are already touching, then use Fillet
instead - Fillet will trim back areas to make space for the radius that you request, unlike Blend.
For surface blending, the edges are connected by distance traveled along the rail. If that results in some amount of skew, you can
use the "Add sync points" option to pick specific locations for where the rails should be connected together.
For surface blending, by default each side of the blend will come off perpendicular from the edge curve. Around tight bends that can
cause bunching where the blend sections run over top of each other. The "Planar sections" option enables a different mode for the
blend cross-section behavior where each cross-section goes on a plane which can help reduce this type of bunching. See here for
some more information on the Planar sections option: Planar sections forum post.
43 of 99
Creates a radial set of surfaces to fill in a hole bounded by open edges.
NSided takes an input of at least 3 surface edges that touch end-to-end to form a closed loop. Make sure edges are
selected, not curve objects. A star-like pattern of surfaces will be calculated to fill in the loop around a central point.
NSided Surface density and a bulge factor can be adjusted in options.
NSided examples:
44 of 99
Creates a surface from a 2-directional network of curves.
To create a network surface, select all the curves that make up the network before running the command.
Network The curves that make up the network should form a kind of 2-directional grid, similar to a fishing net. A network
surface is sort of like doing a loft in 2 directions simultaneously. MoI needs to be able to organize the curves into 2
different sets for this command to work. It is not necessary for the curves to exactly intersect, but they should come close to each
other since that helps MoI detect the organization and separate them into 2 different sets. The network can be closed in either
direction and can also come to a point.
You can also use Network to create a surface from 3 or 4 curves that touch end to end in a loop, sometimes this is referred to as a
"Coons patch".
The "Mode" option can be adjusted to modify the fitting behavior. You can use one of the other modes than "Normal" if you want to
output a less constrained and lighter surface at the expense of it not hugging as tightly to the boundary curves.
Mode = "Normal" fits the boundary curves by the regular fitting tolerance. This makes the resulting surface hug the shape of the
boundary curves accurately enough so that it can be joined to other surfaces built off of those same curves.
Mode = "Lighter" makes the surface fit to a looser tolerance, making a lighter surface but that adheres less to the boundary curves.
Mode = "Custom" - allows you to enter in a numeric tolerance value of your own choosing.
Mode = "Uniform" - allows you to enter in a number of points - each section of the Network is fit with that fixed number of control
points per region rather than refining things adaptively to meet a distance tolerance like the other modes.
Mode = "Exact" - enabled for 3 or 4 sided networks only. This mode makes a Coons path with no refitting of the input curves. The
surface's edges will exactly coincide with the input curves but if the curves have uneven parameterization the surface can tend to
be awkwardly bunched in places.
45 of 99
Curve
First select the curve, then run Project and then select the surface or solids that will receive the curve. A default
direction will be used, and you can pick 2 points to define a different projection direction.
Project
Example of curve projection:
Isect Curves will be created at the intersections between 2 surfaces or solids, and points will be created at the
intersections between a curve and other objects.
Unlike the Booleans, this does not modify the objects, it just creates new curve or point objects.
This command can also be used to create a "curve from 2 views" when the inputs are 2 planar profile curves facing different
directions. This is the equivalent of doing an extrusion of each curve and intersecting the extruded surfaces.
So for example with these 2 curves one of which was drawn in the Top view and one in the Front view:
46 of 99
You can select both of those curves, and run Construct / Curve / Isect to generate this result curve:
Creates silhouette curves that give the profile of a curved surface from a particular view.
This can be useful to run before exporting to AI format - set up your view how you want it, then run Silhouette to
generate the outline curves, then immediately export all of that to AI format. Make sure not to rotate or zoom your
Silhou view in between generating the silhouettes and exporting because the silhouettes are tied to a particular
viewpoint when they are done in the 3D view.
The "Include edges" option controls whether to include trim edges that are silhouettes (for example the edges on a box) in the
results in addition to curved surface silhouette calculations.
47 of 99
Creates an Isocurve going through a point on a surface. An Isocurve is a curve on a surface that runs along the
surface's own U or V directions. They can be convenient for some operations since they follow the natural
rectangular layout of a surface.
Iso On several types of primitives isocurves will be key features of the object like for example on a sphere one
isocurve direction will be a circle of latitude on the sphere and the other direction will be an arc of longitude on it.
Example of Isocurves:
Transform
Moves objects by the displacement between 2 points.
Generally most object movement is done by directly dragging on an object while not inside of any command, instead
of using this command. However, the Move command is provided so that it is possible to do precision movement
Move using any 2 snapped points. Here is an example of moving a circle so it is centered about the origin. This is done by
snapping the base point to the center of the circle and the target point to the origin.
This would be more difficult to do with the quick dragging method since dragging is activated by clicking directly on the object, so it
is not possible to grab the center point of a circle as the base point when dragging.
When picking the target point the "Distance from edge" option can be clicked and a distance specified, which will then place the
target point at that distance away from any line that is snapped on to.
You can click the "Bounding box center" button at the first prompt to use the center of the object's bounding box as the base point.
48 of 99
Copy works similar to Move, but allows you to click multiple target points and drops a copy of the objects at each one.
Use Edit/Copy and Edit/Paste instead if you want to create a duplicate of an object in its exact same location.
Copy
Rotate
To rotate objects, first select the objects and then run the Rotate command. Next pick a center point for the
rotation. After you have picked the center of rotation you can then either type in a number for the angle to rotate
Rotate by, or you can use the mouse to pick an angle. To use the mouse you pick 2 additional points that act as arms or
handles coming out from the center point. The angle between these 2 arms will be the angle of rotation. The
angle is specified using these 2 clicks so that it is possible to snap on to existing objects to calculate a precise rotation.
After selecting the rectangle and running Rotate, pick the center point for the rotation, in this case the center of the rectangle:
Next, the first angle reference point is placed off to the right snapped to the x axis. This sets the starting point for the angle:
Finally, the second angle reference point is placed off to the top snapped on to the y axis. This sets the ending point for the
angle. The object will rotate by the angle between the 2 reference lines:
49 of 99
Here's an example showing how the points can be snapped to calculate a precise rotation relative to existing objects, in this
case snapping on to the corners of the rectangle, with the center of rotation off to the left side:
You can check the "Make copies" button or hold down the Ctrl key when clicking the last point to drop rotated copies of the
object.
The regular Rotate command operates in a 2D fashion relative to the grid. Rotate axis allows you to pick 2
points to define an axis line to rotate around. It can be used to rotate around an arbitrary direction that is not
Rotate Axis aligned with any grid.
The operation is similar to 2D rotate, except instead of a center point you pick 2 points to make an axis line. Then you can
enter a numeric angle to rotate by, or use the mouse in the same way as 2D rotate, with 2 reference arms tracking out from the
first point of the axis.
An example of rotating a polygon up 30 degrees from the x/y plane around one of its own edges:
After selecting the polygon and running Rotate Axis, the first axis point is picked at one corner of the polygon:
The second axis point is picked at the other end of the polygon's edge:
Then 30 was entered for the angle, resulting in the polygon rotating up from the x/y plane by 30 degrees:
50 of 99
The rotation axis works as kind of a hinge and the objects pivot around that hinge.
You can check the "Make copies" button or hold down the Ctrl key when clicking the last point to drop rotated copies of the
object.
Scale
This type of scaling is sometimes called a "Uniform" or "3D" scale since it scales equally in all axis directions.
Scale To scale objects, first select the objects then run the Scale command. Next pick an origin point for the scale. This
will be the fixed point which the objects will scale around. After you have picked the origin for the scale you can
then either type in a number for the scale factor, or you can use the mouse to pick a scale factor.
When entering in a number for the scale factor, 1 represents no scaling. So for example:
2 will double the size of the object,
0.5 will shrink the object to one-half the original size,
10 will increase size by 10 times,
0.1 will shrink the object to one-tenth the original size,
etc...
You can set the scale factor using the mouse by picking 2 additional reference points. The relative distances of these points
from the scale origin determines the scale factor. For example, if the second point is twice as far away from the origin as the
first point, the scale factor will be 2.0 .
Example of scaling a rectangle using the mouse to set the scale factor:
After selecting the rectangle and running Scale, pick the center point for the scale, in this case the corner of the rectangle:
Next pick the first reference point. In a certain sense this point will calibrate the scale and set the distance that will correspond
to a scale factor of 1. In this case the opposite corner of the rectangle was picked. Often times the first reference point may be
snapped on to the perimeter of the object away from the scale origin:
Then the final reference point determines the scale factor, comparing its distance with the first distance. If you move the second
reference point further away from the scale origin than the first reference point, the object will become larger:
51 of 99
If you move the second reference point closer to the scale origin than the first reference point, the object will become smaller:
Scale works with reference points in this way to make it possible to snap points on to strategic areas to calculate scaling
measured to existing objects. For example, say you want to scale up a rectangle by just the exact right amount so that it would
touch an object above it. This is possible by careful picking of the reference points to measure the existing distance, and then
the desired new distance. The proper scale factor for converting the existing distance into the desired distance will be
calculated and applied to scale the object:
You can check the "Make copies" button or hold down the Ctrl key when clicking the last point to drop scaled copies of the
object.
Scales objects around a center point, stretching them just in 2 axis directions.
Scale 2D works similar to Scale except the scaling is not applied in all directions, it is only applied in one 2D
plane. The plane used depends on which viewport the origin point is picked in, so you will get a different effect if
Scale 2D you pick in the Top view versus the Front view for example. The directions used correspond to the x and y axes
of the viewport's grid.
See regular Scale for details on how the reference points work.
52 of 99
Example of scaling a cylinder with Scale 2D. The cylinder is widened in the x/y plane, but its height remains fixed:
Scale 1D is similar to scale, except the scaling is only applied in one direction. The direction is defined by the line
between the origin and the first reference point.
Scale 1D
See regular Scale for details on how the reference points work.
Scale 1D can be used to stretch or compress an object to a new height while leaving its shape unchanged in X and Y. For
example, here a piece is stretched in z by picking the scale origin at the bottom of the piece, the first reference at the top of the
piece directly above scale origin (this forms a line going along the z axis which will be used as the scaling direction), and then
the final reference point at the new height above it.
In the previous example, picking the final point lower than the first reference point would result in the piece squishing down to
be shorter instead.
To mirror an object, select it then run the Mirror command. Next 2 points are picked to define the axis that the object
will be reflected around.
Mirror
The new mirrored object has history updates enabled by default so the mirrored version will update when you edit the
original.
53 of 99
Array
To create a grid of duplicated objects, select the objects to duplicate and run the Array Grid command. At the
"Choose number of copies" prompt, enter the number of elements to use for the grid in x, y, and z and click Done.
Grid Then the final stage is for entering the spacing that will be used between each element of the grid. This can either
be typed in, or you can draw a rectangle or box around one element to define it.
Here is an example of drawing the spacing with the mouse and the result (result shown zoomed out):
To create a duplicated column of objects, select the objects to duplicate and run the Array Dir command.
With "Mode: Offset, Count", the "Item count" option controls how many copies will be made, and you pick 2 points to define
both the direction and the spacing between the copies.
With "Mode: Extent, Count", you also give an item count and 2 points, but the distance between the points is taken as the full
extent, with the offset distance between copies being calculated as a distribution to fit inside of that.
With "Mode: Offset, Extent", you instead pick 2 distances and the item count is calculated for you and displayed in the options
panel. Either start with the small distance as the offset, and then move your mouse further for the second distance to create as
many copies as will fit within that longer distance, or start with the long distance first and move your mouse closer to the base
point to reduce the offset and generate more copies within that extent.
Example of Array Dir with Mode: Offset, Count. In this case a 5-sided polygon is being duplicated. The first point was placed in
the lower-left corner, and the second point was placed in the opposite corner as indicated. The distance and direction between
these 2 points defines the placement of the duplicates:
54 of 99
Duplicates objects in a circular pattern around a center point.
To duplicate objects in a circular pattern, select the objects to duplicate and run the Array Circular command.
Next, pick the center point for the pattern, and finally different options for item count and angle can be adjusted.
Circular
You can click on the "Angle to fill" label with the small arrow on it to switch between specifying the angle for the
full pattern, or the angle for just one single step.
The vertical and radial step options allow you to specify a distance to move each item for every step in the pattern. Vertical
controls up and down movement, and radial controls movement away from or in towards the center point. This can be used to
create spiral type patterns. Here is an example that used an Item count of 50, Angle to fill of 900 degrees, Vertical step of 1 to
move upwards one unit for each step, and Radial step of -0.3, to slide a small distance in towards the center on every step:
To duplicate objects along a path curve, select the objects to duplicate, then run the Array Curve command. Next,
select the path curve. Finally, you can adjust options for spacing and rotation and click Done when you are
Curve finished.
You can enter either the number of items you want to have along the path, or the distance between items. If you enter in a total
number of items, the distance will be calculated for you. If you enter in a distance, the number of items that fit along the path
using that distance will be calculated for you.
There are different options for controlling the orientation of the objects as they travel along the path.
Rotation:Freeform calculates a change in orientation by doing a gradual rotation around the curve tangent. This means that
there isn't any abrupt change at any one point, but the orientation will be constantly changing and in some cases can end up
upside-down.
Rotation:Flat will only do rotations about the world Z axis. It will swing the object around the z axis to point it as much as
possible in the tangent direction of the curve, but it will always stay pointing upwards, giving it a kind of stabilizing effect with
regard to the z axis. This can work well for simple path curves, but it doesn't work well if the path curve slopes upwards very
sharply with any parts tangent or nearly tangent to the z axis.
Rotation:None performs no orientation of the object at all and just moves it along the path curve.
Example of duplicating along a path curve. In this case the object to be duplicated is a box and the path curve is a circle that
has been edited to have a wavy shape:
55 of 99
Rotation:Flat produces this:
To align objects, select the objects or points to modify and run the Align command. You can then adjust the options for
performing either a vertical or horizontal alignment and how objects will stack up against the alignment edge (like
Align along the tops or bottoms of the objects or through the center, etc...). To finish the alignment, pick a point to define the
location of the alignment edge.
When multiple objects are selected for the align, a "Move as group" checkbox option will appear. When enabled it causes the
objects to move as an entire set to their overall combined bounding box rather than each one moving individually.
Example of using align to center objects along a horizontal edge through the center of a rectangle:
56 of 99
Another use for Align is to adjust the 2 control points at the end of a curve to be exactly horizontal or vertical with each other. The 2
points at the end of a curve control the ending tangent direction of the curve, and if the end tangent is lined up it will allow for
mirroring the curve without any sharp crease between the mirrored copies.
An example of aligning control points in preparation for mirroring around the vertical axis. This curve had points turned on by
Edit/Show pts. The points are not aligned horizontally - if this curve is mirrored now there will be a sharp corner between the
mirrored copies. To fix this, select the 2 points:
Next, set the alignment option for "Horizontal center", and then pick the point to define the alignment edge, in this case picking the
end point will define the alignment edge through the end point:
This results in the 2 points being lined up with one another and now the curve can be mirrored without a sharp crease forming:
57 of 99
Orient
Positions and rotates objects from a base frame to a target frame, with a focus on positioning objects relative to
one another.
Orient can be used to match a planar face on one object to coincide with another plane on a different object, or to
Orient map an object to a surface normal on a curved surface.
Here is an example where a cylinder is being reoriented to match the side of a pyramid:
To use Orient you pick a base orientation, and then a target orientation, and the selected objects will be mapped from the base
to the target. In the example above, the base orientation was picked at the center of the cylinder's cap and the target
orientation was picked on the sloped pyramid side.
Each orientation pick consists of 2 steps. The first step is to place the origin point. If the origin point is snapped on to an object
the x/y/z axis directions will be initialized to be aligned to that object, unless you disable the "Align to objects" option. After the
origin point is placed, the second step is to optionally adjust the axis directions by dragging on an axis line to alter where it
points towards. Press the "Done" button or right click in a viewport when the axis directions are configured how you want.
For simple placements where you don't need to adjust the rotation you will do 4 clicks total: 1 click to pick the base origin point,
1 right-click to accept the default rotation, 1 click to pick the target origin point, and 1 more right-click to accept the default
target rotation.
You can enable the "Make copies" option or hold down the Ctrl key when clicking the target origin point to drop copies of the
selected objects and keep the original in place.
First 2 points are picked to define the base line, often times these points will be snapped on to the ends of a
curve that is being transformed. Then 2 more points are picked to define the target line.
Line/Line
The objects are moved, rotated, and also optionally scaled to match the first line to the second.
The Scaling option allows for scaling to be disabled, or for scaling to happen by stretching in one direction only instead of
uniformly.
58 of 99
You can enable the "Make copies" option or hold down the Ctrl key when clicking the target line to drop copies and keep the
original objects in place.
Here's an example where a curve is being transformed so that its ends coincide with another curve's endpoints:
You control which views are used by clicking inside of them, first do one click inside the source viewport
(anywhere in it, it doesn't matter on which specific point), and then click once in the target viewport.
View/View
So for example if you have imported some 2D curves that are flat in the Top view, you can use this command to
quickly shift them to be flat in the Front view instead, same as rotation by 90 degrees but without needing to do the rotation in
some other side view.
You can also click in the 3D view as either a source or target view which will use the camera's view direction for the orientation.
Deform
Deforms objects by mapping them from one backbone curve or surface to another.
Flow is a versatile deformation tool which can help with the construction of curved pattern details, by taking
objects that were initially modeled as flat 2D patterns and warping them into a curved shape. Being able to
Flow initially construct a rigid 2D shape made up of straight pieces can often times be an easier approach than trying
to model the final curved shape directly in place.
Flow works with 2 different modes, curve-to-curve mode or surface-to-surface mode. The mode is determined by whether you
select a curve or a surface at the prompt for picking the base object.
For curve-to-curve mode, start by selecting the objects you want to deform, then run the Transform > Deform > Flow command,
then click on the base curve followed by a click on the target curve. The ends closest to where you click on the base and target
curves will be matched together to be used as the starting points for the deformation. Usually the base curve is a line running
down the center of the straight shape and the target curve is a bendy curve.
By default curve-to-curve Flow will match distance traveled along the base curve to the same distance traveled along the target
curve. If you enable the "Stretch" option this will change to instead map by percentage along each curve, stretching or
squishing the result if one curve is longer or shorter than the other.
Mapping some text onto a curve, here the base curve is the line under the text, the bendy curve is the target curve:
59 of 99
You can use curve-to-curve flow to bend an object into a circular shape by using a straight line through the object as the base
curve, and a circular arc as the target curve:
60 of 99
Deforming a pattern created with Transform > Array tools onto a curved shape:
61 of 99
A helix can be deformed to follow a curve to make a path for a phone cord sweep:
62 of 99
Sometimes it can be useful to position objects vertically above the curves, for example here text positioned vertically above the
base line is wrapped into a cylinder shape by using a circle as the target curve:
For Flow surface-to-surface mode, start by selecting the objects you want to deform, then run the Transform > Deform > Flow
command, then click on the base surface followed by a click on the target surface. Usually the base surface is a flat plane
running underneath or through the middle of the objects and the target surface is a curved surface.
Surface-to-surface Flow has 2 different ways of working, regular mode and "Projective" mode. Regular mode works by applying
63 of 99
objects across the entire target surface similar to texture mapping. Projective mode works by projecting onto a small region of
the target object, more like applying a decal. Projective mode is activated by enabling the "Projective" checkbox that shows up
in the stage where you pick the target surface. For regular mode the particular location of the base plane in relation to the
target surface does not matter (but the click locations on each do matter, see below), while for Projective mode the objects to
deform and base plane should be positioned above the area that receives the projection.
An example of regular surface-to-surface mode, the base plane matches to the entire width and height of the target surface:
An example of projective mode, the base plane projects down along the plane's surface normal direction onto a local area of
the target object. The position and orientation of the base plane above the target object is significant in this mode:
64 of 99
For non projective mode, the locations that you click on both the base surface and target surface are significant and control
how the horizontal and vertical directions of each surface will be matched to one another. You need to click nearby an edge of
each surface, towards the start or end of the edge. The pattern will be rotated and reflected as needed to make the picked
locations match with one another. If you do not click each surface with care it is easy for unwanted rotations to happen.
Following is a visual example for where to pick.
In this example there is a pattern on a base plane that we want to put on the cylinder:
65 of 99
Note that before doing the Flow only the objects to be deformed should be selected, the base plane running under them should
not be selected yet. You will select the base plane only after starting the Flow command. At the prompt for selecting the base
surface, click on the base plane nearby one of these 8 locations marked here with a red dot:
66 of 99
Those 8 locations are spots along an edge towards the start or end of the edge. You do not want to click exactly on the corner
of the base surface because you want to target an edge and clicking directly on the corner creates ambiguity between the 2
different edges that are connected to that corner. You can use any one of these 8 click locations, but since in the next step you
will be clicking on the equivalent spot on the target surface it can be good to use a location that is easily reachable on the
target surface.
For this case, let's say you picked this location on the base surface:
67 of 99
Picking in that location means we are going to be controlling the upper horizontal direction of the pattern. We want that
direction to map to the upper circumference of the cylinder surface, so at the next prompt to select the target surface we want
to click on the cylinder surface in this spot here, near the top edge but a little ways in from the corner:
68 of 99
That will then produce a result like this:
69 of 99
For projective mode the target object can be made up of multiple joined surfaces if they are all smooth to one another.
In projective mode, rays are fired out from the base plane along the base plane's surface normals and intersected with the
target object. The target object should be large enough so that these rays actually hit it and do not just fire out into empty
space.
The "Rigid" option is available for all Flow modes. When enabled the "Rigid" option causes objects to be only moved and
rotated into a new position (using a "Rigid body transformation") rather than the object being deformed. This will keep a sphere
for example to still be a sphere in the result without it being bent or warped into a different shape. This works by deforming only
a single point of at the center of the object's bounding box and then moving and rotating the object accordingly. Usually this is
used to apply a pattern of small objects across the target surface.
If you plan to do a Boolean union or difference with the result of the Flow, it is usually a good idea to position the objects so that
they are pushing through the base plane a little bit rather than sitting exactly flush on top of the base plane. That will then make
the deformed results similarly push through the target surface rather than having pieces with overlapping surface areas that
just barely touch each other. It tends to be much more difficult for the Boolean mechanisms to make sense of skimming
overlapping surfaces.
The Twist command starts by picking 2 points which defines the twist axis.
Twist By default the twist will apply uniformly and extend through the axis direction:
70 of 99
If the "Limit to axis" option is set, the twist will only be applied between the start and end points of the axis, with no twisting
happening outside that region. When "Limit to axis" is enabled, the "Ease in" and "Ease out" options control how quickly the
twist ramps up from the start or ramps down towards the end. Here's an example with "Limit to axis" enabled, note how at the
ends there is no twisting:
71 of 99
SubD
Create
From file Converts a SubD control polygon cage in .obj format to NURBS surfaces.
This converter allows you to use a hybrid modeling approach of constructing some surfaces in a SubD modeling program and
then bringing those over into MoI where you can apply further details using MoI's CAD toolset such as booleans. This can be
helpful for working with some kinds of organic shapes.
There are some options for the conversion process under Options > Import/Export > SubD import options. You can set Patch
type to "Fewer patches, more control points" which will make a smaller number of surfaces but each individual surface will have
a denser control point structure, or "More patches, fewer control points" which will make a larger number of fragmented surface
patches especially around star points, but those surfaces have a lower control point density.
You can also get some control over patch formation by assigning materials - polys that have different material assignments will
not be merged together into larger combined patches unless the "Use materials" option is disabled.
When using this converter make sure to have the base level coarse control cage in the .obj file, without any subdivision applied
to it already.
Dim
Dimensions have various properties to control things like spacing, arrowhead style, text positioning, etc... These properties can be
set on a selected dimension object through the "Details..." extended object properties dialog.
Annotation presets control the property values that will be applied to a newly drawn dimension. Presets are created and edited in
the Options dialog > Dimensions section. Different presets can be created to make different styles and when you are drawing a
dimension there is an option for which property preset to use. The "Default" preset is stored in the moi.ini file and so is globally
available in all projects. Additional presets are project specific and saved in .3dm files.
If you want additional presets beyond "Default" to be available in new files, set up a .3dm file with the presets you want and set that
72 of 99
as the startup template file under Options > General > "Template file". The presets will be read from that template file when MoI
starts up or when you use File > New.
Dimensions can have customized text set in addition to the numeric value. To show the numeric value include <> characters in the
text and the <> will be replaced with the number value in the dimension's displayed text.
The sizing behavior of annotation elements like arrowheads and text is controlled by the "Scaling" property. There are 2 different
options, Scaling: "By screen size", or Scaling: "By model units".
Scaling: "By screen size" is a scale independent mode where arrowheads and text stays the same size on screen independent from
the current zoom level. So with this mode if you set text to a 12pt size for example, the text will be 12pt on screen and also 12pt on
the printed page for PDF/AI format output. For simple drawings this keeps text to always be at a legible size. However, if you have a
lot of text they can overlap with each other when you zoom out.
Scaling: "By model size" is a scale dependent mode where you specify sizes for text and arrowheads in model units. With this mode
the text and arrowheads will size the same as regular geometry, when you zoom in they will display larger and when zoomed out
they will be smaller. This can take more work to get a legible text size but it also will prevent neighboring text from overlapping on
top of each other when you zoom out. CAD programs usually use this method and it is also good if you want to place text to be
contained inside of line geometry like in a title block grid.
Creates a linear dimension displaying distance in the construction plane's x-axis direction.
The "From object" button can be clicked to set the start and end points to the ends of a preselected line segment.
Horiz
Creates a linear dimension displaying distance in the construction plane's y-axis direction.
The "From object" button can be clicked to set the start and end points to the ends of a preselected line segment.
Vert
The "From object" button can be clicked to set the start and end points to the ends of a preselected line segment.
73 of 99
Aligned
Radius
Angle
Leader
74 of 99
Creates a block of annotation text without any arrows.
Text
Viewport controls
Zooms in and centers the view on a smaller specified area.
The area is defined by a center point and then a corner forming a rectangle.
Area For the 3D view, the picked center point will become the new rotation pivot point as well, so sometimes Zoom Area
can be useful to focus in on a particular spot that you want the 3D view to pivot around.
In addition to this zoom button, you can also spin the scroll wheel on a mouse to zoom in or out.
Zoom To use this zoom button, click and hold down on the button and then while still holding down, drag up to zoom in or
drag down to zoom out.
By default the button is fairly sensitive so you don't need to move the mouse pointer very far to control it. Try moving only a pretty
small distance up or down.
You can flip the up/down action and adjust the sensitivity under Options > View > Rotate/Pan/Zoom options.
In addition to this pan button, you can also click and drag inside a viewport with the middle mouse button (or also the
right mouse button in the Top, Front, or Right views). If you have a mouse wheel pushing down on the wheel also acts
Pan as a middle button.
To use this pan button, click and hold down on the button and then while still holding down, drag up, down, left, or right to reposition
the view towards that direction.
By default the button is fairly sensitive so you don't need to move the mouse pointer very far to control it. Try using smaller motions
instead of moving by a large distance.
Panning works with a kind of accelerated motion. You can drag a small distance and then hold still, and the view will continue to
move in that direction. If you move a further distance the movement will accelerate.
You can reverse the directions of the movement and adjust the sensitivity under Options > View > Rotate/Pan/Zoom options.
In addition to this rotate button, you can also click and drag inside the 3D view with the right mouse button as a
different way to rotate.
Rotate
It often helps to use the Reset button to set the pivot point to the center of the selected objects before doing a rotation.
You can also use the Area zoom button to set the rotation pivot to a point directly on one specific part of an object if you want to
pivot around one particular area.
To use this rotate button, click and hold down on the button and then while still holding down, drag up, down, left, or right to rotate
the view towards that direction.
By default the button is somewhat sensitive so you don't need to move the mouse pointer too far to control it. Try using smaller
motions instead of moving by a large distance.
Rotation using the button works with a kind of accelerated motion. You can drag a small distance and then hold still, and the view
will continue to rotate in that direction. If you move a further distance the rotation will accelerate in speed.
You can reverse the directions of the movement and adjust the sensitivity under Options > View > Rotate/Pan/Zoom options.
Fills the view with either the selected objects or all objects.
On the first click Reset will target just the selected objects and adjust the view so the selected objects fill up the viewport.
75 of 99
If you click the button a second time, Reset will target all objects in the model regardless of selection, zooming to fit
everything within the view.
Reset also places the pivot point for rotating the 3D view at the center of what it zoomed to.
Reset
If you right-click on the Reset button, the reset will be applied to all viewports.
If there are no objects visible, Reset will restore the view to the initial startup default view.
Additional commands
Incremental save It is possible to set up a keyboard shortcut to do an incremental save, where a number in the filename will be
bumped on each save, like file01.3dm, file02.3dm, file03.3dm, etc...
To do this, go to Options > Shortcut keys, and add a new entry with a key of whatever you like (for example, Alt+S), and
IncrementalSave for the command.
Rebuild Reconstructs a curve by sampling points and generating a new curve through those points.
The Rebuild command does not currently have a button in the UI, it must be set up on a keyboard shortcut (under Options >
Shortcut keys) or have its command name typed in (press Tab first to enter a command name) to launch it.
Rebuild can be used to simplify a curve that is overly complex or messy or has too many points in it to be easily manipulated by
control point editing. It can also be used for the reverse as well, to add a lot more points to a simple curve if you want to have a
higher level of detail available for editing.
There are 2 modes, a "Refit to tolerance" mode where you enter a distance tolerance value and as many points are added as
needed (not necessarily uniformly) to maintain the new curve within that distance of the original curve, or a "# of points" mode
where you tell it a specific number of evenly spaced points to sample for creating the new curve.
Flip Flips the positive normal direction of an open surface to the other side.
This doesn't affect much in MoI itself but can be used to reverse the normals for polygons generated from open surfaces when
saving to a polygon mesh file format.
The Flip command does not currently have a button in the UI, it must be set up on a keyboard shortcut (under Options > Shortcut
keys) or have its command name typed in (press Tab first to enter a command name) to launch it.
The edges must be tangent where they touch each other in order to be merged together into a single edge.
The Merge command does not currently have a button in the UI, it must be set up on a keyboard shortcut (under Options > Shortcut
keys) or have its command name typed in (press Tab first to enter a command name) to launch it.
ArrayGem Replicates a gemstone along a set of curves on a surface, aligning the gem to the surface normal.
The ArrayGem command does not currently have a button in the UI, it must be set up on a keyboard shortcut (under Options >
Shortcut keys) or have its command name typed in (press Tab first to enter a command name) to launch it.
ArrayGem uses a different spacing method than the other array commands - along with the objects to be arrayed you also include a
base circle and the spacing that you provide becomes the separating distance between each placed circle along the target area.
For the targets you pick a surface, and a set of curves that have been projected on to that surface.
Note that for this command to work properly, there must be a base circle previously drawn and also included among the objects that
you want to have copied. The base circle should be selected at the same time along with the objects to copy.
The center of the base circle will become the point that is placed on to the surface, and the diameter of the base circle will be taken
as the size of the object.
An example:
76 of 99
ExplodeMove Moves objects away from a common center point giving an effect similar to an exploded diagram.
If a single solid is selected, its faces will be separated and moved apart, otherwise if multiple objects are selected the objects will
stay whole and move apart from one another.
The ExplodeMove command does not currently have a button in the UI, it must be set up on a keyboard shortcut (under Options >
Shortcut keys) or have its command name typed in (press Tab first to enter a command name) to launch it.
The BoundingBox command does not currently have a button in the UI, it must be set up on a keyboard shortcut (under Options >
Shortcut keys) or have its command name typed in (press Tab first to enter a command name) to launch it.
77 of 99
BoundingBoxCenter Creates a point object marking the center point of the bounding box around the current selection.
The BoundingBoxCenter command does not currently have a button in the UI, it must be set up on a keyboard shortcut (under
Options > Shortcut keys) or have its command name typed in (press Tab first to enter a command name) to launch it.
ShrinkTrimmedSrf Shrinks the underlying surfaces of the selected objects to remove areas of the surface that were extending
larger than the trimming boundaries.
The ShrinkTrimmedSrf command does not currently have a button in the UI, it must be set up on a keyboard shortcut (under
Options > Shortcut keys) or have its command name typed in (press Tab first to enter a command name) to launch it.
Make2D Generates a hidden line drawing with the curves inserted directly inside of MoI. Similar to exporting to a 2D drawing
format like PDF/AI/DXF and importing that drawing back in again.
The Make2D command does not currently have a button in the UI, it must be set up on a keyboard shortcut (under Options >
Shortcut keys) or have its command name typed in (press Tab first to enter a command name) to launch it.
RemoveDuplicates Currently only works on curves, removes other curves that are duplicates within a specified tolerance (curve
endpoints must be in tolerance too).
The RemoveDuplicates command does not currently have a button in the UI, it must be set up on a keyboard shortcut (under
Options > Shortcut keys) or have its command name typed in (press Tab first to enter a command name) to launch it.
Misc
Meshing options When saving to a polygon file format, MoI needs to convert from smooth surface data into faceted polygon
data. The "Meshing options" dialog is shown during this process to control different aspects of how the
polygon data is generated.
During the meshing process the number of generated polygons and points are displayed in the upper-right corner of the main
window where command options normally are shown.
MoI does extra work to align mesh vertices along shared edges between joined surfaces. So you'll generally want to make sure
surfaces that are next to one another have been joined together into one connected solid object before exporting mesh data.
Move the slider to the left to create a lighter mesh with fewer polygons. This will reduce the amount of data generated but will also
give a more jagged appearance to the mesh. Move the slider to the right to create a denser mesh with more polygons in it. A denser
mesh will be smoother visually but will also contain a lot more data.
The Output: option controls the type of polygon data that will be created, whether to allow creation of N-gons (polygons with more
than 3 or 4 sides), or whether to break polygons up to only allow 3 or 4 sided polygons. Some programs have difficulty dealing with
complex N-gon shapes. If you see bad results when importing N-gons into your polygon application, try reducing this option to
Quads & Triangles, or Triangles only. Some polygon file formats don't allow N-gons, for example STL or 3DS files can only contain
triangles, so you won't see this option when exporting to these formats.
You can click on the arrow in the lower-left corner of the compact dialog to expand it to show more options:
78 of 99
Weld vertices along edges option:
Welding controls how polygons are connected to points along shared edges between surfaces. When welding is on, polygons will
share a single point in common along the shared edge. When welding is off, the polygons on each side of the edge will have their
own individual points which are stacked up in the same location.
Example of welded polygons - each polygon from either side of a joined edge will be hooked into the same vertex. The vertices are
shared between polygons:
Example of unwelded polygons - in this case each polygon across the unwelded edge has its own individual vertices. The points
are stacked on top of each other, shown slightly separated here for illustration:
Typically welding is left on for normal rendering use but some programs may have difficulties with welded meshes. Also, sometimes
you may want to have points unwelded for certain special effects, such as doing a sketch or toon style rendering. Unwelded edges
will get an accent line in a sketch rendering. Turning welding off may also help separate polygons out into different chunks for each
original surface during later polygon editing.
Angle option:
The Angle option controls the maximum angle allowed between the surface normals at the corners of each polygon. When the
79 of 99
maximum allowed angle is small, it will force additional subdivisions along more tightly curved areas. When the maximum angle is
larger, fewer subdivisions will be forced in curved areas and coarser polygons will be allowed. This is the same value that is
controlled by the slider. This option just allows you to control it more directly and to allow for values outside of the normal slider
range. For example, if you want a very low polygon mesh you may want to type in a larger angle here than the slider normally
permits.
The "Divide larger than" option provides another way to refine the mesh in certain areas. You can enter a distance here which will
force polygons that are larger than this length to be broken down into smaller pieces. This can be used to add detail to larger areas
that have shallow curvature. Areas that have shallow curvature will tend to get fewer polygons in them because the regular density
control that is adjusted by the slider is based only on curvature and not lengths. You can also adjust the drop-down to limit
additional subdivisions to a specific type of surface. By default it will be applied only to curved surfaces leaving planar surfaces
unaffected, but this can be changed to only apply to planar surfaces for special meshing needs, or to apply to all surfaces.
Here is an example of a large area with shallow curvature that didn't get many polygons. Because it is covering a larger area the
lack of refinement here can be more noticeable:
By entering a distance of 5 in the "Divide larger than" option, it will force more divisions along the large shallowly curved surface.
Any polygon larger than 5 units along an edge will be further broken down:
The "Avoid smaller than" option can be used to avoid creating too many polygons in small areas where they may be difficult to see,
in order to reduce polygon counts. You enter a distance here, and subdivisions will be restricted for any polygon that is smaller than
80 of 99
this value. Normally the same density will be generated in both small and large areas because it is controlled only by the curvature.
This is good if you are going to be zooming into a smaller area for a rendering, but if you're never going to zoom in to a small area
you may wish to have fewer polygons there to reduce the amount of data being processed and speed things up.
By setting an "Avoid smaller than" distance of 0.5, it will reduce the number of divisions there since this knob is close to that size:
The "Aspect ratio limit" option offers another way to force additional subdivisions for quads that are short in one direction but long in
another. This affects all surfaces, including planar ones. Here is an example of a mesh with long and skinny quads:
If you want to get more regularly sized quads here, you can enter 2 in the aspect ratio control, which will force a division in any quad
that has one edge more than twice as long as the other:
Once you enter a value into one of the extended controls, you can clear it by either using backspace to clear the field or by entering
a value of 0.
81 of 99
Hidden line options When saving to a 2D drawing file format such as PDF, AI, or DXF, a dialog will pop up to allow you to
control various options:
The "Scale" option can be either "Fit to page" or "Preserve units". When Preserve units is picked, additional controls will be
displayed that let you set the scale factor for how units in MoI map to units on the 2D page. Preserve units won't function with a
perspective 3D view.
"Generate outlines" creates curves in areas where objects are adjacent to the viewport background. This can be used to give a bold
accented border surrounding the entire object. It works in combination with the shaded background image, since the background
image masks out the inner half of the border.
"Generate hidden lines" creates curves that are hidden in a dashed line style.
The "Line style options" button opens up a second dialog where the point width, color, and layer attributes of the different kinds of
curves can be set. Colors and layers can either by set to "From style" for the color or layer to come from the style assignment, or
can be set to a specific value by choosing "Custom".
The "Canvas megapixel resolution" field controls the density of the shaded image and depth buffer used to determine what is visible
and hidden. Increasing this value can help generate more detailed results on small areas of the model, it can go up to a maximum
of 75 megapixels, but it consumes quite a bit of memory at that level. Try something around 30 or 40 here to get more detail if
needed.
If you're doing a wireframe export that contains only curves and not any solids or surfaces, only the projection view and scale
options will be shown.
The hidden line DXF export is more oriented towards shop drawing type output, it doesn't have the outline, silhouette, or shaded
background image options.
Repeat You can repeat the most recently used command by right-clicking inside a viewport or by pushing the Enter key on the
keyboard.
It is also possible to turn on repeat automatically for a period of time by clicking the "Repeat" checkbox that shows up at the bottom
of the command options area in the upper-right area of the window. When that option is checked, a drawing command will
automatically repeat until you cancel it or uncheck that box.
Construction lines Construction lines allow you to quickly place additional guide lines to help with precise snapping and
alignment while drawing shapes.
You can create a construction line anytime that MoI is asking you to specify a point location, like for the start or end of a line, the
center of a circle, the next point of a curve, etc... To create a construction line, hold down and drag the mouse.
When MoI is asking you for a point, clicking and releasing the mouse button will finish picking that point. If you hold the button down
and drag instead of releasing, you will drag out a construction line. Construction lines are automatically erased at the end of each
82 of 99
command.
Here is an example of how a construction line can be used to help accurately place a point. Imagine you have a drawing as shown
here in the first image, and you want to create a new horizontal line as shown in yellow in the second image, such that the end is
exactly aligned as indicated by the dashed line:
To draw such a line, start the line command and click the first point at the end that you can easily grab:
Next, move to the end that you want to be aligned with. Click down on that point, but do not release the mouse button. Instead hold
the button down and drag away and a construction line will be created. Drag downward to make the construction line go downward,
and release the mouse when you see the construction line has snapped vertically:
Now that a construction line has been created dropping down from that point, you can find a snap point at the intersection between
the horizontal line and the vertical construction line, and click it to place the end of the line:
83 of 99
You can drag out any number of these construction lines to set up additional intersection snaps. They can be dragged along the x,
y, or z axes, perpendicular or tangent from a curve, etc... The construction line is formed through 2 points - the point you started the
drag on and then the point where you release the mouse. After a construction line has been defined by these 2 points, the midpoint
between them is available as another snap as well as the reflected endpoints. The reflected endpoints are calculated by taking the
distance between the start and end and repeating that same distance in both directions. For example, creating a construction line
through the 2 points in the first image will provide the additional snaps shown in the second image:
This makes it possible to find the midpoint between any 2 points by dragging a construction line through those 2 points. Also the
reflected endpoints can be useful for snapping symmetrically around a centerline.
Here is an example of how the reflected endpoints can be useful. Let's say you have a line, and you want to draw a square at the
end of the line, centered around it, like so:
To do this, start the Rectangle 3 points command. Before placing any points for the rectangle, go to the end of the line and drag out
a construction line perpendicular to it:
Thanks to the reflected endpoints, this now sets up all the snaps you need to draw the square. Place the first point at the original
end of the construction line, point #2 marked above. Then for the next point of the rectangle, pick the reflected endpoint on the other
side:
84 of 99
Finally, the square snap built into the rectangle tool can be used for placing the 3rd point to form an exact square:
Construction lines can be used in this manner to form a kind of quick temporary scaffolding or grid adapted to the size and
orientation of existing objects.
After you drag out a construction line, a small marker will appear above your mouse pointer that looks like this:
If you move your mouse over that marker the marker will brighten up and if you press and hold down on the marker for a moment a
menu will pop up with additional options for controlling the construction line:
The "Relocate cline" option allows you to pick a new point for the construction line to go through, basically dragging the construction
line to a new location. This allows you to capture a direction and then move it to a different area to use for a parallel construction
guide.
The "Reorient cline" option allows you to pick a new point and pivot the construction line to point in a new direction going through
that point. The original endpoints, midpoint, and reflected endpoints of the construction line are still available as snaps at the same
distances after the reorientation. This, combined with the relocation option, allows you to use a construction line as a kind of
measuring stick to capture a distance between any 2 snapped points and then apply that distance to a different area or different
direction.
Here is one example of measuring a distance and applying it in a different direction while drawing a cylinder on top of a box. After
starting the cylinder command, a construction line is created from the midpoint of the box's edge to the end:
85 of 99
Then the construction line is re-oriented to point perpendicular to the edge, towards the inside of the box:
Now there are snap points available at the same spacing as the edge of the box to draw an exactly placed cylinder:
The "Rotate cline" option allows you to rotate the construction line around its base point by the given angle. This allows you to set
up a guide line at the given angle relative to some existing edge of an object. It is also possible to use Distance or Angle constraint
while initially drawing the construction line by dragging outside the viewport to the distance or angle controls and clicking and
entering a constraint value there, then returning to the viewport and clicking to place the second point of the construction line.
The "Division snap" option enables you to snap to different fractional increments along the construction line instead of only the
midpoint. For example, entering 5 here will provide snaps at 1/5, 2/5, 3/5, 4/5, as well as -1/5, -2/5, 6/5, 7/5, etc...
The "Project next pt" option forces the next picked point to be projected to the closest point along the construction line. This allows
you to snap on to a different object and find the relative height of that point along the line. For example, here a construction line has
been pulled up in z along side of a different object. When projection is turned on you can move to a snap point on the other object
and the relative height of that object will be captured by the projection on to the line:
Here is an example of this projection being used to place the top point of a cylinder at an equal height as an existing box object:
Shortcut keys Keys or key combinations can be assigned to different actions under Options > Shortcut keys.
The Enter and Esc keys have predefined functions. You can use Enter as a shortcut for clicking the "Done" button while inside of a
86 of 99
command, and pressing it outside of a command will repeat the last used command. Esc is used to cancel or turn off modes. If you
are currently running a command, Esc will cancel the command same as clicking the "Cancel" button. If you are outside of a
command, Esc will deselect objects on the first tap, and then turn off any points that were enabled with the "Show pts" command on
the next tap.
To create a new shortcut key, click the "Add" button. A dialog will pop up asking you to press the shortcut key combination that you
want to assign. After you have set the shortcut key, you can then fill in the Command entry with either a command name or also
script code can be inserted directly here as well. Script macros are prefixed with the keyword "script:".
Command names:
AddPoint, Align, AnnotationText, Arc3pt, ArcCenter, ArcContinue, ArcTangent, ArrayCircular, ArrayCurve, ArrayDir, ArrayGem,
ArrayGrid, Blend, BooleanDifference, BooleanIntersection, BooleanMerge, BooleanUnion, BoundingBox, BoundingBoxCenter,
Box, Box3pts, BoxCenter, Chamfer, Circle, Circle3pt, CircleDiameter, CircleTangent, Cone, Conic, Copy, CopyClipboard,
CopyClipboardWithOrigin, Curve, Cut, Cylinder, Delete, DimAligned, DimAngle, DimHorizontal, DimRadius, DimVertical,
Ellipse, EllipseCorner, EllipseDiameter, ExplodeMove, Export, Extend, Extrude, Fillet, Flip, Flow, Helix, History, Image, Import,
ImportPart, ImportSubD, IncrementalSave, Inset, InterpCurve, Intersect, Isocurve, Join, Leader, Line, Loft, Make2D, Merge,
Mirror, Move, Network, New, NSided, Offset, Open, OpenTemplate, Orient, OrientLinetoLine, OrientViewToView, Paste,
PastePart, PlanarSrf, Plane, Plane3pts, PlaneCenter, Point, Polygon, PolygonEdge, PolygonStar, Polyline, Project,
RailRevolve, Rebuild, Rect3pts, Rectangle, RectCenter, RemoveDuplicates, Revolve, Rotate, RotateAxis, Save, SaveAs,
Scale, Scale1D, Scale2D, Separate, Shell, ShowPoints, ShrinkTrimmedSrf, Silhouette, SketchCurve, Sphere, Sweep, Text,
Trim, Twist
So for example, a shortcut for E to activate extrude would look like this:
E Extrude
There are a few buttons in the UI that run script macros instead of commands: Hide, Reset all, Select all, Deselect all, and Invert.
This is so they can be used while a command is still running, so these functions are slightly different than a regular command. To
hook these up to a shortcut key fill in the Command part with one of the following scripts:
Hide:
script:moi.geometryDatabase.hide();
Lock:
script:moi.geometryDatabase.lock();
script:moi.view.resetAll();
Select all:
script:moi.geometryDatabase.selectAll();
Deselect all:
script:moi.geometryDatabase.deselectAll();
Invert selection:
script:moi.geometryDatabase.invertSelection();
Here are some frequently requested scripts that can be assigned to a key to perform a custom action. To use these, copy the entire
line that begins with script: and paste it into the Command part of the shortcut key:
Maximize the view the mouse is over, or switch back to split view (usually assigned to Space key):
Go to split view:
script:moi.ui.mainWindow.viewpanel.mode = 'Split';
87 of 99
script:moi.ui.mainWindow.viewpanel.mode = '3D';
script:moi.ui.mainWindow.viewpanel.mode = 'Front';
script:moi.ui.mainWindow.viewpanel.mode = 'Right';
script:moi.geometryDatabase.invertSelection(); moi.geometryDatabase.hide(true);
Select all open curves (curves that do not form a closed loop):
script:moi.drawingAids.gridSnap = !moi.drawingAids.gridSnap;
script:moi.drawingAids.objectSnap = !moi.drawingAids.objectSnap;
script:moi.drawingAids.straightSnap = !moi.drawingAids.straightSnap;
Many other scripts are possible, see the web site for a larger list, and post any requests for custom scripts to the discussion forum.
Edit frame The edit frame shows up around the outside of selected objects and allows you to quickly perform scaling or rotation
without having to launch any commands.
The edit frame's starting position is based on the bounding box of the selected objects, and is made up of 5 grips - 4 scaling grips in
the corners and one rotation grip at the top:
88 of 99
The grips are drawn with a semi-transparent effect to maintain a low profile, but will light up when you move the mouse over top of
one.
Primarily the edit frame is intended to be used in the 2D Top/Front/Right views, but it will also show in the 3D view if the selected
objects are all planar.
To scale with the edit frame, grab one of the corner grips and drag it to size the object. By default objects will be scaled from the
center point, but you can switch to scale from the opposite corner instead by clicking on one of the corners instead of dragging it.
Each click will toggle the scaling origin between the center or the corner. When the mouse is over a corner grip, a marker will
appear at the current scaling origin.
When scaling, if you drag your mouse in a horizontal or vertical direction, a guideline will appear and the scale will happen as a 1D
stretch along that direction. Stay close to this guideline if you want to do a stretch, otherwise if you drag diagonally it will scale the
object in all directions. If you move far enough away from the 1D scaling guides, stretch mode will be turned off for that drag. You
can also hold down the Shift key when scaling to perform a 2D scale which will stretch only in 2 directions and leave the vertical
direction untouched.
While stretching an object, a "Flat" snap is available at the point where the frame collapses completely down to a line. This can be
used as a quick way to flatten objects from a side view:
You can also create a mirrored copy of an object using the corner grips as well. To do that, grab a corner and drag it all the way
over to the opposite side of the object. There will be a snap point available there and if you snap on to it, a mirrored copy of your
object will be produced same as doing the Transform > Mirror command:
Also if you are scaling from the center, there are mirror snap points at the other 3 corners to enable an exact "in-place" type flipping
or mirroring.
To rotate with the edit frame, grab and drag the rotation grip which is located in the middle of the top edge of the bounding frame.
You can rotate by a specific angle by entering an angle constraint before dragging the rotation grip. There are 2 ways you can enter
an angle constraint, either by typing <angle (like <45) just by typing directly without clicking anywhere, or by clicking on the angle
box in the bottom toolbar and entering your value there. So for example if you want to rotate something by 30 degrees, type in <30
and push enter, then grab that rotation grip and it will rotate in 30 degree increments.
If you click instead of drag on the rotation grip, it will switch to a different "wheel mode" which makes it possible to grab the center
rotation pivot and move it to whatever spot you would like to rotate around. Also while in this mode there is a tri-wheel rotation
89 of 99
widget displayed in the 3D view which allows you to grab any one of 3 rotation axes.
Properties panel The Properties panel shows up in the upper-right area of the main window and lets you view and edit
properties of the currently selected objects.
This panel shows up when you are in Selection mode, before you have launched a command.
In addition to viewing properties, you can also click on different areas to pop up menus or dialogs that allow you to edit them. As
you move your mouse over this area you will see different clickable areas highlight.
1. Object name indicator - this displays the name of the currently selected objects. You can assign a name by clicking on this line to
bring up the "Edit object name" dialog box. Named objects will have entries show up in the Objects section of the Scene Browser to
be quickly accessed for hiding, showing, or selecting.
2. Object type indicator - this displays some basic information about the selected object, for example if it is a fully closed solid it will
display "Solid" here. The type can be one of the following: Curve, Closed crv, Edge, Face, Surface, Joined srf, Solid, Point. Also if
you have multiple objects selected, the number of objects currently selected will be shown here as well.
3. Style indicator - this displays the style that is assigned to the current selection. You can assign a different style by clicking on this
line to pop out the styles menu. There is also an alternate way for assigning styles available by clicking on a style's color swatch in
the Scene browser. You can right click on this line as a shortcut to edit the style.
4. Size indicator - this displays the bounding dimensions around the current selection, and you can click on it to scale the objects to
a different size. The bounding size will be displayed in either world coordinates, or in cplane coordinates if a custom cplane is
currently set. Certain objects have special size values - a line will display length, a circle, arc, sphere, or trimmed cylinder will
display radius, and a full cylinder or cone will display radius and height.
When editing the size, there is a "Maintain proportions" option you can turn on or off to control whether objects will be scaled
uniformly or whether to allow them to stretch in only one direction when a value is edited.
When you enter in a new size, you can enter in numeric formulas (for example: 22 / 5 * 4) and there are also the following variables
that be used as part of the formula:
x : bounding x size
y : bounding y size
z : bounding z size
r : radius
d : diameter
h : height of cone or cylinder
l : length of a line
So for example if you want to set a cylinder's height to be twice its current radius you can do that by unchecking "Maintain
proportions", and then enter r * 2 into the Height: field.
You can also enter a value starting with + or -- in a field to make it a relative adjustment. For example if you enter in radius: +5 it will
add 5 to the current radius.
Object properties dialog The object properties dialog can be opened by clicking the "Details..." button on the properties panel
that displays in the upper right corner of the window when objects are selected.
There are controls here for calculating length of curves and surface area or volumes of surfaces or solids.
Some more detailed information on the object type is available here with a report on all the styles used on a multi-style solid,
whether curves are line segments, polylines, circles, arcs, ellipses, elliptical arcs, planar, open or closed and the number of faces
and edges in a solid.
The type report can be used for selection filtering, if you click on a type label the selection will narrow down to only objects that
90 of 99
match that type. So for example if it reports that there are "3 lines, 3 circles, 1 ellipse, 4 planar" curves selected, if you click on the
"3 lines" label the selection will narrow down so only the line curves will be selected. You can hold down Shift to click on multiple
labels, and if you hold down Ctrl when you click on a label it will remove those objects from the selection rather than narrowing
selection down to them.
There are also numerous properties here that can be set on annotation objects for controlling details like arrowhead types and
extension lengths, etc...
Scene browser The scene browser helps to organize larger projects by categorizing objects in different ways and allowing you
to perform actions (such as hiding, showing, locking, selecting) to all the objects that belong to a particular
category.
The scene browser's appearance and location in the UI can be set under Options > General > "Scene browser position".
When set to "Adjacent" or "Opposite" the scene browser will be displayed as a separate full height panel either along side or on the
opposite side from the regular side pane, and a Browser button will be displayed in the bottom of the main window next to the Help
button. The Browser button can be clicked to hide or show the scene browser.
When set to "Inside" mode, the scene browser will be displayed as an additional palette at the bottom within the side pane. In this
mode, the browser can be shown or collapsed by clicking on the palette title area.
The scene browser has different sections, with each section using a different categorization method. They include:
Objects - for working with objects that have been assigned a name. You can assign a name to a selected object (or multiple
objects) by clicking on the name part of the properties panel that shows up in the upper-right area of the main window. Once you
have assigned a name, that name will appear as an item under this section of the scene browser.
Types - for dealing with all objects of a certain type, like all curves, or all solids. This section allows you to perform actions like hide
all curves, or select all solids, etc...
Styles - for organizing objects into different colored categories. This section allows you to work on all objects that have been
assigned a particular style. You can assign a style to the selected objects by either clicking on the style line in the properties panel,
or by clicking on the colored swatch of a style item within the scene browser. Style assignments will become material assignments
when you export to OBJ or LWO mesh formats.
The default set of styles can be altered by setting up a 3DM file that contains the styles you want to have as the default, and then
specifying that file as the startup template file under Options > General > Template file. That will cause the styles (and other per-file
settings) to come from that file when MoI starts up or when you do a File > New.
The Styles section also has a menu which can be launched by the arrow on the right-hand side of its header, here:
Add new style - brings up a dialog box for entering a name and color for adding a new style to the styles list. The current
selection will also be assigned to the new style.
Edit styles - brings up the Edit styles dialog box that allows you to edit the styles list in different ways including adding new
styles, deleting styles, editing the name and/or color of an existing style and moving styles up and down in the list.
Add default styles - adds in the set of default styles to the current model, either from the standard default, or from the
template file if you have specified a startup template under Options > General > Template file. You can use this if you are working
on a model that someone else has sent to you, and you want to bring in all the styles that you normally use.
- In the Edit styles dialog, right-clicking on a style works as a shortcut for selecting it and pushing the "Edit" button.
- On a scene browser swatch, Ctrl+left click will pop up the color picker as a quick way to edit a style's color.
- On the properties panel, right-clicking on the style line will pop up the Edit style dialog and let you edit the name and/or color
of that style.
You can control which style is applied to newly drawn objects by setting the "Active style". You can set a style as the Active style by
right-clicking (or left-clicking when there is nothing selected) on the style's color swatch.
The active style is marked in the scene browser style list by an extra ring around its color swatch. For example here the Green style
91 of 99
is marked as the Active style:
Every item listed under a scene browser section represents a category of objects, and you can click on different parts of the item to
perform an action on all objects that belong to that category.
For example here the Objects section is showing 4 items, each of which represents a different group of named objects in the model:
When you move the mouse over each item you will see different clickable areas highlight.
92 of 99
Style items have an additional color swatch area in the middle:
The status indicator can be used for hiding, showing, or locking objects. The selection indicator dot can be used for selecting,
deselecting, or setting selection filters. The color swatch for style items can be used for assigning the current selection to that style
or to set the style used for newly drawn objects.
The status indicator will display an eye icon if all the objects belonging to that category are set to be shown, or a blank spot if all the
objects belonging to that category are hidden. For example here all the objects belonging to "Lower deck" are shown, and all the
objects belonging to "Upper deck" have been hidden:
You can switch a category between hidden and shown by clicking on the status area.
You can also right-click on the status area to "isolate" that item, which will hide everything else leaving just that item being shown.
Right-click on it a second time later on to show everything.
You can press and hold the mouse button down and swipe over the status area of several adjacent items to set multiple items in
one mouse action.
The status area also shows whether items are locked. If all objects belonging to that item are shown and locked, a lock icon will be
displayed instead of the eye. If all of that item's objects are hidden and locked, a fainter lock is displayed, for example:
To switch between locked and unlocked, hold down the Ctrl key and click on the status area.
The status area will also show a mixed state indicator if the item's objects have a variety of different states. If some of the item's
objects are shown, and some are hidden, a half-eye icon will be displayed. If there is a mixture of some locked and some unlocked
objects, there will be a diagonal dividing line with both an eye icon portion and a lock icon portion. To clear this kind of mixed lock
state, hold down Ctrl and click:
The selection indicator dot on the right side gives feedback about the selection of objects belonging to that item and can also be
clicked on to perform selection actions:
93 of 99
The selection indicator dot will display a full yellow dot if all objects belonging to that category are selected, or it will be blank if all
the objects belonging to that category are unselected. It will display a half dot if some are selected and some are unselected.
You can click on the selection dot area to toggle selection on or off similar to how clicking on the eye toggles visibility on or off.
When you click on the selection dot it will only select objects that are not hidden. Use Shift+click on the selection dot to select all
objects of that slot regardless of current visibility state (any hidden objects will become shown if you do that).
Right click on the selection dot to do an "isolated selection" - it will select the item's objects and deselect all other objects.
You can also use Ctrl+click on the selection indicator dot area to activate a selection filter. When you do this a filter icon will appear:
When a selection filter is active only objects that belong to that slot will be targeted for selection actions. So for example if you want
to select all red curves, you can tag Style=Red with a filter, and then go the Types section of the Scene Browser and click on the
selection indicator dot for curves and it will only target curves that have Style=Red.
Selection filters influence all types of selection actions, including selecting things with the mouse, select all, using the Scene
Browser to select things, etc...
It is possible to set many selection filters to be active at the same time. Only objects which pass all the active filters will be targeted
for selection.
When you activate a selection filter, it does not immediately change any already existing selection, it only influences any new
selection actions after that. This allows for building a selection in several steps. If you don't want the existing selection then clear
the selection before setting the filter.
A second Ctrl+click will clear the filter, or you can push the Escape key as a shortcut to clear any active selection filters when you
are done using them. Usually it is best to only leave selection filters active for a short time, if you forget you have one active it can
easily seem like selection is not working at all.
Orientation picker The orientation picker is used in several commands (CPlane, Orient, Import part, Paste part) that need to
specify a base point and x/y/z axis orientation.
The orientation is represented visually by a base point with 3 perpendicular axis lines, sometimes with one axis (called the "primary
axis") marked with an extra outlined dot at its end:
94 of 99
The orientation defines a localized coordinate system with its own position and rotation.
The first step is to pick the origin point. During this step the z axis of the picker will align itself to a surface normal if the origin point
is being snapped on to an existing object. For example:
In addition to surface normals, the picker can also align itself to the plane of a circle or rectangle curve when snapped to their center
points, or to the tangent of a curve when snapped to a point on a curve.
This alignment can be disabled by unchecking the "Align to objects" option, or the direction can be reversed by checking the "Flip
aligned z axis" option.
After the origin point has been placed, the second step is to optionally adjust the axis directions to control what they are pointing
towards.
When you are done adjusting the directions (or if the default directions were already fine), right-click or press the "Done" button to
finish picking the orientation.
An axis direction can be adjusted by moving your mouse to the axis line, and dragging on that axis, keeping the mouse button held
down and releasing it over the target location you want it to point towards.
Here's an example - say you have placed the origin point on the side of a cube like this:
95 of 99
If you would like to adjust the orientation so that the x axis is pointing towards a corner of the cube instead, you can do that by
moving your mouse to the x axis line (labels will be displayed on each one as you move over them to indicate which one is which),
like this:
Then press and hold the mouse button down and drag on that axis line. As you drag the picker will adjust that direction to point
towards what you are dragging over. Release the mouse button when you are over the desired target point:
96 of 99
The "primary axis" is the axis line that is marked with an extra outline dot at its end. When you drag one of the other axis lines, its
motion will be restricted so as to only pivot around the primary axis, keeping the primary axis unmodified.
You can switch the primary axis to a different axis line by clicking on the axis line rather than holding the mouse button down and
dragging on it.
If the picker was aligned to an object when picking its initial origin point, the z axis will start out as the primary axis. Otherwise the
first axis that is repositioned will become the primary axis.
You can also drag on the origin point to relocate it during the axis adjustment step as well as dragging on the axis lines.
Drawing on surfaces In MoI you can control how newly drawn objects are oriented by either setting the construction plane using
View/CPlane, or by snapping points directly on to existing surfaces.
First, there is an "On srf" object snap that lets you snap a point directly on to the surface that is under the mouse.
Another related area is surface normal snapping - this is an additional kind of straight snap similar to perpendicular or tangent
snaps, except coming off of a surface. For example here the first point of the cylinder was placed on the sphere, then when picking
the second point, a surface normal snap is available:
To avoid over-snapping, there will only be one surface normal straight snap line at a time. If your base point is snapped on to an
area common to more than one surface (for example the corner of a box), you will only get a surface normal snap if just one of
those surfaces is selected.
The last piece of on-surface drawing is surface snap plane alignment. This is when a surface gets used as a temporary construction
plane for a drawing command, aligning the drawn object to the surface instead of to the default world x/y/z planes. Some examples:
97 of 99
Snap plane alignment will only happen when you are picking points in the 3D view. Using your mouse in the 2D Top/Front/Right
views will keep alignment to the regular view plane.
Different commands align to surfaces with slightly different intensities. The draw commands that are symmetrical around a center
point like Circle from center, Rectangle from center, Polygon center, and Polygon Star, will align to a surface if just their initial center
point is snapped on to any surface, including both planar and curved surfaces.
Most other commands such as Line, Polyline, Rectangle, Curve, etc... will only align their snap planes (which for example with
Polyline controls which direction straight snaps will go in) if you have both the base point and the current point snapped on to a
planar (not curved) surface.
If the base point and the current point are snapped on to areas that are common to more than one planar face (like with both points
snapped on to an edge of a box so that the points touch 2 faces of the same box), then the planar face that is pointing most towards
the eye point direction will be used. So for example if you snap one point on to a corner of a box, rotate the view so that you are
facing more towards the face of the box you want to draw on to control which face will be used when there are multiple candidates.
Numeric expressions You can type in an expression or formula into numeric edit fields that are asking for distance or radius
values.
For example when you are drawing a circle for the radius you can type 15/4*2 and the result 7.5 will be calculated for you.
Another example is if you're drawing a line, you can type <360/12 to set an angle constraint of 360/12 = 30 degree angle snap for
that line.
You can also use functions like sin - for example typing in sin(45) will calculate the sin of 45 degrees. All trig functions take angles in
degrees. Angle input in radians is available by prefixing the function name with an underscore character, for example: _sin(PI/4).
Any of the functions on the JavaScript "Math" object are available for use, including: sin(), cos(), tan(), sqrt(), pow(), round(),
random(), the constant PI, and also rad() which takes a parameter in degrees and returns it in radians, and deg() which takes a
parameter in radians and returns it in degrees.
You can also type in a "relative expression" to modify the value of an edit field that has previously been initialized to some other
value. To make a relative expression, start it with one of these symbols: + -- * / which will alter the value by the given amount rather
than inputting a completely new value. So for instance in a grid size input field you can type /2 to modify the existing value by
dividing it by 2. Note that for subtraction a double minus sign is used to avoid any conflict with entering in a regular non-relative
negative value.
You can also use expressions for x,y,z point values. If your regional settings for the operating system uses a comma character as
the decimal point separator for numeric values, then surround each coordinate with parentheses to separate them, for example:
(2+2)(5/2-1)(5).
Multitouch view navigation You can use multitouch gestures (pinch or drag fingers) to do zoom/pan/rotate view manipulations.
This works on Mac OSX 10.7+ using a trackpad or on Windows 8 using a touch screen. There's a
demo video here: Multitouch view demo on forum.
2 finger double tap for view reset (zoom to selected objects or zoom to all if done a second time).
98 of 99
Twist thumb and index fingers for 2D ortho view spin or 3D view tilt if those are enabled under settings.
Zooming in and out with multitouch can be easier to control in the 3D view if you have a parallel view projection rather than
perspective. You can set a parallel projection under Options > View > "3D view projection". To set the default projection on startup,
save a 3DM file with a parallel projection set and then put that 3DM file as the startup template under Options > General > Template
file.
On OSX, 3 finger dragging for rotation in the 3D view will not work if any 3 finger swiping is already being used for OSX system
functions. Check under System Preferences > Trackpad > More Gestures. If "Swipe between full-screen apps" or "Mission Control"
are set to use 3 finger swiping, change them to use 4 finger swiping instead, then MoI will be able to receive the 3 finger dragging
events.
There are some options available for changing multitouch behavior under Options > Rotate/Pan/Zoom options > MultiTouch options
(in lower-right area):
Reverse rotation checkbox - when enabled the 3D view rotation directions will be reversed.
Rotate ortho views checkbox - when enabled thumb/index spin will spin the 2D ortho (top/front/right) views.
Swap 3D rotate and pan checkbox - when enabled 2 finger dragging in the 3D view will do rotation and 3 fingers will do
panning instead.
Allow 3D rotation tilt - when enabled thumb/index spin will tilt the 3D view left or right.
Rotation speed, Pan speed, and Zoom speed - a scale factor can be entered in here to adjust the speed of these movements,
for example putting in 0.5 will make that operation half speed, putting in 2 will double the speed.
There are also a few additional settings available in moi.ini under the [MultiTouch] section:
[MultiTouch]
SingleFingerRotation=n
TiltSpeed=1.0
TiltCenterMode=0
SingleFingerRotation can be set to =y on Windows to make just one finger dragging do 3D view rotation instead of 3 finger
dragging. This will prevent things like window selection from happening with touch so you should probably only try this if you also
have a mouse or pen to use for selection.
TiltSpeed can be set to a scale factor to speed up or slow down thumb/index finger spin action in 3D views.
TiltCenterMode can be set to 0, 1, or 2 and controls how the center point works for 3D view tilting.
With TiltCenterMode = 0 the current centroid of the touch points is used for the tilt center. With this one the tilt center moves
right along with your fingers.
With TiltCenterMode = 1 it will use the centroid between the 2 fingers just at the initial start of the 2 finger gesture, it won't
update as you move your finger around, only when you start a new gesture.
With TiltCenterMode = 2 it will use the center of the viewport as the tilt center, it won’t make any difference where on the screen
you are at as far as tilting goes.
99 of 99