Back to reference index    Prev page    Next page


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.

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.

Example of Boolean difference between solids:

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):

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:


Fuse objects together where they intersect.

Solids can be unioned with other solids or surfaces, and 2D curves can be unioned with other 2D curves.

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:


Combine objects together, only keeping areas contained by all objects.

Objects to be intersected are treated as 2 different sets. Select one set, run Boolean Intersection, then select the other set.

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.

Example of solid/solid intersection:

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 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:

Another curve intersection example:


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 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:

Merge can also be used on curves in the same plane:


Fillet is used to round off sharp corners.

Fillet will apply the rounding in different ways depending on what is selected.

Selecting an entire solid object will fillet all edges of the solid.

Selecting edges of a solid will fillet just those edges.

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.

Some examples of filleting:

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:

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.


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.

Examples of chamfering:

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 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:


Create a new object at a constant distance away from an existing one.

Offset can be used on solids, surfaces, or curves.

Examples of Offset:

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.


Modify a solid or surface to have a wall or slab thickness.

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 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:


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.

Examples of inset:

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:

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 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.

Examples of creating planar surfaces:


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 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.

An example of Extrude with a path:


Creates a solid or a surface by tracing an outline as it pivots around an axis.

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 axis.

Examples of revolution:

Rail revolve

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 to the custom path.

Some examples of rail revolve:


Creates a solid or surface passing through cross-section profile curves.

Examples of lofting:

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 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.


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 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.

One rail sweep:

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.

Example of sweep with one rail:

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:

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:

Two rail sweep:

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:

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.


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 end of the curve that you want to blend from. To use it on surfaces, select an unattached edge of a surface. 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.

Some examples of blending:


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.

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".

Some examples of network surface:


Projects a curve on to a surface or solid.

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.

Example of curve projection:


Creates curves or points at intersections between objects.

Select all the objects to be intersected before running the command.

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:

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 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.

For example given this model:

Running Silhouette on it will generate these result curves:


Back to reference index    Prev page    Next page

© 2010 Triple Squid Software Design