ÿþ<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <META http-equiv="Content-Type" content="text/html; charset=UTF-16"> <title>MoI Command Reference</title> <style> body { font:12pt Arial, sans-serif; } table { font-size:100%; } h3 { font-style:italic; } .linkpaletteindent { margin-left:2em; } .icontable { text-align:center; border:1px solid gray; background-color:#EFEFFF; } .icontablefloat { text-align:center; float:left; margin-right:1em; border:1px solid gray; background-color:#EFEFFF; } .indent { margin-top:1em; margin-left:2em; } .palettelabel { font-size:130%; } .scriptcode { font-family:monospace; margin-left:4em; padding:0.15em 0.4em; overflow:auto; border:1px solid gray; } </style> </head> <body><a href="moi_help.htm">Back to help Table of Contents</a><h2>MoI Command Reference</h2> <h3>Bottom toolbar:</h3> <div><a href="#_File">File</a> &gt; <a href="#open">Open</a>, <a href="#saveas">Save As</a>, <a href="#new">New</a>, <a href="#import">Import</a>, <a href="#export">Export</a></div> <div><a href="#save">Save</a></div> <div><a href="#undo">Undo</a>, <a href="#redo">Redo</a></div> <div><a href="#delete">Delete</a></div> <div><a href="#__Split / 3D / Top / Front / Right">Split / 3D / Top / Front / Right</a></div> <div><a href="#__XYZ / Distance / Angle">XYZ / Distance / Angle</a></div> <div><a href="#__Grid Snap">Grid Snap</a>, <a href="#__Straight Snap">Straight Snap</a>, <a href="#__Object Snap">Object Snap</a></div> <div><a href="#options">Options</a>, <a href="#help">Help</a>, <a href="#__Full Screen">Full Screen</a></div> <h3>Side pane:</h3><a href="#Draw curve">Draw curve</a><div class="linkpaletteindent"> <div><a href="#Draw curve_Lines">Lines</a> &gt; <a href="#line">Line</a>, <a href="#polyline">Polyline</a></div> <div><a href="#Draw curve_Freeform">Freeform</a> &gt; <a href="#curve">Control points</a>, <a href="#interpcurve">Through points</a>, <a href="#sketchcurve">Sketch</a></div> <div><a href="#Draw curve_Rect">Rect</a> &gt; <a href="#rectangle">Corner</a>, <a href="#rectcenter">Center</a>, <a href="#rect3pts">3 pts</a></div> <div><a href="#Draw curve_Polygon">Polygon</a> &gt; <a href="#polygon">Center</a>, <a href="#polygonedge">Edge</a>, <a href="#polygonstar">Star</a></div> <div><a href="#Draw curve_Circles">Circles</a> &gt; <a href="#circle">Center</a>, <a href="#circlediameter">Diam</a>, <a href="#circle3pt">3 pts</a>, <a href="#circletangent">Tan</a></div> <div><a href="#Draw curve_Arc">Arc</a> &gt; <a href="#arccenter">Center</a>, <a href="#arccontinue">Cont</a>, <a href="#arc3pt">3 pts</a>, <a href="#arctangent">Tan</a></div> <div><a href="#Draw curve_Ellipse">Ellipse</a> &gt; <a href="#ellipse">Center</a>, <a href="#ellipsediameter">Diameter</a>, <a href="#ellipsecorner">Corners</a></div> <div><a href="#Draw curve_More">More</a> &gt; <a href="#point">Point</a>, <a href="#helix">Helix</a></div> </div><br><a href="#Draw solid">Draw solid</a><div class="linkpaletteindent"> <div><a href="#Draw solid_Plane">Plane</a> &gt; <a href="#plane">Corner</a>, <a href="#planecenter">Center</a>, <a href="#plane3pts">3 pts</a></div> <div><a href="#Draw solid_Box">Box</a> &gt; <a href="#box">Corner</a>, <a href="#boxcenter">Center</a>, <a href="#box3pts">3 pts</a></div> <div><a href="#sphere">Sphere</a></div> <div><a href="#cylinder">Cylinder</a></div> <div><a href="#cone">Cone</a></div> <div><a href="#text">Text</a></div> </div><br><a href="#Edit">Edit</a><div class="linkpaletteindent"> <div><a href="#join">Join</a>, <a href="#separate">Separate</a></div> <div><a href="#trim">Trim</a></div> <div><a href="#extend">Extend</a></div> <div><a href="#showpoints">Show pts</a>, <a href="#addpoint">Add pt</a></div> <div><a href="#copyclipboard">Copy</a>, <a href="#paste">Paste</a></div> <div><a href="#hide">Hide</a></div> <div><a href="#history">History</a></div> </div><br><a href="#View">View</a><div class="linkpaletteindent"> <div><a href="#resetall">Reset all</a></div> <div><a href="#image">Image</a></div> </div><br><a href="#Select">Select</a><div class="linkpaletteindent"> <div><a href="#selectall">Sel all</a></div> <div><a href="#deselectall">Desel all</a></div> <div><a href="#invert">Invert</a></div> </div><br><a href="#Construct">Construct</a><div class="linkpaletteindent"> <div><a href="#Construct_Boolean">Boolean</a> &gt; <a href="#booleandifference">Diff</a>, <a href="#booleanunion">Union</a>, <a href="#booleanintersection">Isect</a>, <a href="#booleanmerge">Merge</a></div> <div><a href="#Construct_Fillet">Fillet</a> &gt; <a href="#fillet">Fillet</a>, <a href="#chamfer">Chamfer</a></div> <div><a href="#Construct_Offset">Offset</a> &gt; <a href="#offset">Offset</a>, <a href="#shell">Shell</a></div> <div><a href="#planarsrf">Planar</a></div> <div><a href="#extrude">Extrude</a></div> <div><a href="#Construct_Revolve">Revolve</a> &gt; <a href="#revolve">Revolve</a>, <a href="#railrevolve">Rail revolve</a></div> <div><a href="#loft">Loft</a></div> <div><a href="#sweep">Sweep</a></div> <div><a href="#blend">Blend</a></div> <div><a href="#network">Network</a></div> <div><a href="#Construct_Curve">Curve</a> &gt; <a href="#project">Project</a>, <a href="#intersect">Isect</a></div> </div><br><a href="#Transform">Transform</a><div class="linkpaletteindent"> <div><a href="#move">Move</a></div> <div><a href="#copy">Copy</a></div> <div><a href="#Transform_Rotate">Rotate</a> &gt; <a href="#rotate">Rotate</a>, <a href="#rotateaxis">Rotate Axis</a></div> <div><a href="#Transform_Scale">Scale</a> &gt; <a href="#scale">Scale</a>, <a href="#scale2d">Scale 2D</a>, <a href="#scale1d">Scale 1D</a></div> <div><a href="#mirror">Mirror</a></div> <div><a href="#Transform_Array">Array</a> &gt; <a href="#arraygrid">Grid</a>, <a href="#arraydir">Dir</a>, <a href="#arraycircular">Circular</a>, <a href="#arraycurve">Curve</a></div> <div><a href="#align">Align</a></div> </div><br><a href="#Viewport controls">Viewport controls</a><div class="linkpaletteindent"> <div><a href="#zoomarea">Area</a></div> <div><a href="#zoom">Zoom</a></div> <div><a href="#pan">Pan</a></div> <div><a href="#rotateview">Rotate</a></div> <div><a href="#reset">Reset</a></div> </div><br><div><a href="#meshdialog">Meshing options</a></div> <div><a href="#incrementalsave">Incremental save</a></div> <div><a href="#repeat">Repeat</a></div> <div><a href="#constructionlines">Construction lines</a></div> <div><a href="#shortcutkeys">Shortcut keys</a></div><br><br><!--split--><div id="_File" class="indent"> <table class="icontable"> <tr><td><img src="icons/File.png" width="64" height="64"></td></tr> <tr><td>File</td></tr> </table> <div id="open" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/Open.png" width="64" height="64"></td></tr> <tr><td>Open</td></tr> </table> <p>Opens a file.</p> <p>MoI supports reading in curves and surfaces from .3dm or .igs files, and 2D curves can be opened from .ai files.</p> <p>3DM is considered the "native" file format that supports all MoI data.</p> </div> <div style="clear:left"> </div><br><div id="saveas" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/SaveAs.png" width="64" height="64"></td></tr> <tr><td>Save As</td></tr> </table> <p>Saves a file to a new file name.</p> <p>Curves and surfaces can be saved to .3dm or .igs formats. 2D flattened curves can be saved to the .ai format for data transfer to a 2D illustration program. Polygon mesh data can be saved to .obj, .stl, .3ds, or .lwo formats.</p> <p>When saving to a polygon mesh format, the <a href="#meshdialog">Meshing options</a> dialog will be shown to allow adjusting the mesh density.</p> </div> <div style="clear:left"> </div><br><div id="new" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/New.png" width="64" height="64"></td></tr> <tr><td>New</td></tr> </table> <p>Deletes all current model content and resets the current file name to blank.</p> </div> <div style="clear:left"> </div><br><div id="import" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/Import.png" width="64" height="64"></td></tr> <tr><td>Import</td></tr> </table> <p>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.</p> <p>This could also be described as "Merge" or "Combine" files.</p> </div> <div style="clear:left"> </div><br><div id="export" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/Export.png" width="64" height="64"></td></tr> <tr><td>Export</td></tr> </table> <p>Export is similar to Save As, except only the selected objects are written to the file.</p> <p>This could also be described as "Export selected".</p> </div> <div style="clear:left"> </div><br></div> <div id="save" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/Save.png" width="64" height="64"></td></tr> <tr><td>Save</td></tr> </table> <p>Saves the model using the current file name.</p> <p>Also see <a href="#incrementalsave">Incremental save</a> for a way to save using incremented version numbers (file01.3dm, file02.3dm, file03.3dm, etc...)</p> </div> <div style="clear:left"> </div><br><div id="undo" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/Undo.png" width="64" height="64"></td></tr> <tr><td>Undo</td></tr> </table> <p>Reverses the most recent action.</p> <p>Undo is normally used to reverse edits to objects, but it can also be used to restore the previous selection. So for example, if you are building up a selection and accidentally click somewhere and mess it up, use Undo to get your selection back. Selection undo only works for one step back, after that further undos will switch to undoing geometry edits.</p> </div> <div style="clear:left"> </div><br><div id="redo" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/Redo.png" width="64" height="64"></td></tr> <tr><td>Redo</td></tr> </table> <p>Reapplies the last action that was undone.</p> </div> <div style="clear:left"> </div><br><div id="delete" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/Delete.png" width="64" height="64"></td></tr> <tr><td>Delete</td></tr> </table> <p>Deletes or removes an object, or certain portions of an object depending on the selection.</p> <p>If a whole object is selected, that entire object will be deleted.</p> <p>If faces of a solid are selected, those faces will be removed.</p> <p>Control points of a curve can be removed with this command.</p> <p>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".</p> </div> <div style="clear:left"> </div><br><div id="__Split / 3D / Top / Front / Right" class="indent"> <table class="icontablefloat"> <tr><td>Split / 3D / Top / Front / Right</td></tr> </table> <p>These tabs on the bottom toolbar control the viewport configuration, switching between the split view or a maximized single view.</p> <p>Clicking a second time on the Top, Front, or Right tabs will toggle back and forth between the reversed views (Bottom, Back, Left).</p> </div> <div style="clear:left"> </div><br><div id="__XYZ / Distance / Angle" class="indent"> <table class="icontablefloat"> <tr><td>XYZ / Distance / Angle</td></tr> </table> <p>These controls in the middle of the bottom toolbar allow for viewing and entering exact numeric data when picking points during a drawing command.</p> <p>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.</p> <p>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.</p> <p>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.</p> <p>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.</p> <p> <div>The x,y,z edit box allows point entry using several different forms:</div> <div><b>x,y,z</b> - 3 numbers separated by commas or spaces will use that x,y,z point in world coordinates.</div> <div><b>x,y</b> - 2 numbers will use z as 0</div> <div><b>0</b> - A single 0 character can be used as a shortcut for the origin (0,0,0).</div> <div><b>rx,y,z or rx,y</b> - prefix a 3D or 2D coordinate with "r" to make the new point relative to the previous picked point.</div> <div><b>number</b> - 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.</div> <div><b>&lt;number</b> - a &lt; symbol followed by a number activates angle constraint.</div> <div><b>dist&lt;angle</b> a distance value followed by a &lt; symbol followed by an angle (for example, 4&lt;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.</div> </p> </div> <div style="clear:left"> </div><br><div id="__Grid Snap" class="indent"> <table class="icontablefloat"> <tr><td>Grid Snap</td></tr> </table> <p>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.</p> </div> <div style="clear:left"> </div><br><div id="__Straight Snap" class="indent"> <table class="icontablefloat"> <tr><td>Straight Snap</td></tr> </table> <p>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, 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 <a href="#__XYZ / Distance / Angle">XYZ / Distance / Angle</a> 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. </p> </div> <div style="clear:left"> </div><br><div id="__Object Snap" class="indent"> <table class="icontablefloat"> <tr><td>Object Snap</td></tr> </table> <p>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. </p> </div> <div style="clear:left"> </div><br><div id="options" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/Options.png" width="64" height="64"></td></tr> <tr><td>Options</td></tr> </table> <p>Opens the Options dialog which allows for changing various options for how MoI works.</p> <p>Also see <a href="#shortcutkeys">Shortcut keys</a></p> </div> <div style="clear:left"> </div><br><div id="help" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/Help.png" width="64" height="64"></td></tr> <tr><td>Help</td></tr> </table> <p>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.</p> </div> <div style="clear:left"> </div><br><div id="__Full Screen" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/ExpandFullScreen.png" width="64" height="64"></td></tr> <tr><td>Full Screen</td></tr> </table> <p>This allows for MoI to switch back and forth from full screen mode. 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.</p> </div> <div style="clear:left"> </div><br><!--split--><div id="Draw curve" class="palettelabel">Draw curve</div> <div id="Draw curve_Lines" class="indent"> <table class="icontable"> <tr><td><img src="icons/LineSetIcon.png" width="64" height="64"></td></tr> <tr><td>Lines</td></tr> </table> <div id="line" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/LineIcon.png" width="64" height="64"></td></tr> <tr><td>Line</td></tr> </table> <p>Draws a line by specifying the 2 end points.</p> <p>You can use Straight Snap, Object Snap and <a href="#constructionlines">Construction lines</a> to assist in placing the line.</p> <p>Use <a href="#__XYZ / Distance / Angle">Distance constraint or Angle constraint</a> to draw a line of a particular length or angle.</p> </div> <div style="clear:left"> </div><br><div id="polyline" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/PolylineIcon.png" width="64" height="64"></td></tr> <tr><td>Polyline</td></tr> </table> <p>Draws a polyline which is a curve made up of multiple joined line segments.</p> <p>You can use Edit/Separate to break a polyline up into individual lines.</p> <p>While drawing the polyline, undo can be used to remove the last picked point.</p> </div> <div style="clear:left"> </div><br></div> <div id="Draw curve_Freeform" class="indent"> <table class="icontable"> <tr><td><img src="icons/FreeformSetIcon.png" width="64" height="64"></td></tr> <tr><td>Freeform</td></tr> </table> <div id="curve" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/CurveControlPointsIcon.png" width="64" height="64"></td></tr> <tr><td>Control points</td></tr> </table> <p>Draw a freeform curve using control points.</p> <p>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-last point with care to control the exact starting or ending direction of the curve</p> <p>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.</p> <p>When drawing the curve, undo can be used to remove the last picked point.</p> </div> <div style="clear:left"> </div><br><div id="interpcurve" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/CurveThroughPointsIcon.png" width="64" height="64"></td></tr> <tr><td>Through points</td></tr> </table> <p>Draw a freeform curve that is forced to pass through the points that you pick.</p> <p>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 curve.</p> <p>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.</p> <p>When drawing the curve, undo can be used to remove the last picked point.</p> </div> <div style="clear:left"> </div><br><div id="sketchcurve" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/CurveSketchIcon.png" width="64" height="64"></td></tr> <tr><td>Sketch</td></tr> </table> <p>Draw a freeform curve using a click, hold down, and drag method like a brush stroke.</p> <p>The curve will close automatically if your stroke comes nearby the start point.</p> <p>If you want to draw many sketch curves in a row, use the <a href="#repeat">Repeat</a> checkbox.</p> </div> <div style="clear:left"> </div><br></div> <div id="Draw curve_Rect" class="indent"> <table class="icontable"> <tr><td><img src="icons/RectSetIcon.png" width="64" height="64"></td></tr> <tr><td>Rect</td></tr> </table> <div id="rectangle" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/RectCornerIcon.png" width="64" height="64"></td></tr> <tr><td>Corner</td></tr> </table> <p>Draw a rectangle by specifying the 2 corner points.</p> <p>Move the mouse near a 45 degree angle to get a square snap.</p> <p>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.</p> <p>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. </p> </div> <div style="clear:left"> </div><br><div id="rectcenter" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/RectCenterIcon.png" width="64" height="64"></td></tr> <tr><td>Center</td></tr> </table> <p>Draw a rectangle by specifying the center and a corner point.</p> <p>Options are the same as Rect Corner above.</p> </div> <div style="clear:left"> </div><br><div id="rect3pts" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/Rect3ptIcon.png" width="64" height="64"></td></tr> <tr><td>3 pts</td></tr> </table> <p>Draw a rectangle using 3 points, 2 points for one edge and then a 3rd point for the width.</p> <p>When picking the 3rd point, Square snaps are available to form an exact square.</p> <p>Other options are the same as Rect Corner above.</p> </div> <div style="clear:left"> </div><br></div> <div id="Draw curve_Polygon" class="indent"> <table class="icontable"> <tr><td><img src="icons/PolygonSetIcon.png" width="64" height="64"></td></tr> <tr><td>Polygon</td></tr> </table> <div id="polygon" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/PolygonCenterIcon.png" width="64" height="64"></td></tr> <tr><td>Center</td></tr> </table> <p>Draw a polygon from a center and radius point.</p> <p><a href="#__XYZ / Distance / Angle">Distance constraint</a> can be used to specify an exact radius.</p> </div> <div style="clear:left"> </div><br><div id="polygonedge" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/PolygonEdgeIcon.png" width="64" height="64"></td></tr> <tr><td>Edge</td></tr> </table> <p>Draw a polygon by specifying 2 points along the polygon's edge.</p> <p><a href="#__XYZ / Distance / Angle">Distance constraint</a> can be used to control the length of the edge.</p> </div> <div style="clear:left"> </div><br><div id="polygonstar" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/PolygonStarIcon.png" width="64" height="64"></td></tr> <tr><td>Star</td></tr> </table> <p>Draw a star shaped polygon by center and radius points.</p> <p>Style:Auto will draw one using the classic proportions, switching to Style:Custom allows specifying a third point to define the inside radius.</p> </div> <div style="clear:left"> </div><br></div> <div id="Draw curve_Circles" class="indent"> <table class="icontable"> <tr><td><img src="icons/CircleSetIcon.png" width="64" height="64"></td></tr> <tr><td>Circles</td></tr> </table> <div id="circle" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/CircleCenterIcon.png" width="64" height="64"></td></tr> <tr><td>Center</td></tr> </table> <p>Draw a circle by center and radius.</p> <p>Click on the Radius label with the small arrow to switch between entering radius or diameter.</p> <p>The Vertical checkbox will flip the circle 90 degrees to point vertically up from the plane.</p> </div> <div style="clear:left"> </div><br><div id="circlediameter" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/CircleDiameterIcon.png" width="64" height="64"></td></tr> <tr><td>Diam</td></tr> </table> <p>Draw a circle by specifying 2 diameter points.</p> <p>The Vertical checkbox will flip the circle 90 degrees to point vertically up from the plane.</p> </div> <div style="clear:left"> </div><br><div id="circle3pt" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/Circle3ptIcon.png" width="64" height="64"></td></tr> <tr><td>3 pts</td></tr> </table> <p>Draw a circle by specifying 3 points on the circumference.</p> </div> <div style="clear:left"> </div><br><div id="circletangent" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/CircleTangentIcon.png" width="64" height="64"></td></tr> <tr><td>Tan</td></tr> </table> <p>Draw a circle of the specified radius tangent to 2 existing curves.</p> <p>The first 2 points must be picked snapped on to existing curves. The third point determines the radius by the distance between it and the second picked point, or a specific radius can be typed in.</p> </div> <div style="clear:left"> </div><br></div> <div id="Draw curve_Arc" class="indent"> <table class="icontable"> <tr><td><img src="icons/ArcSetIcon.png" width="64" height="64"></td></tr> <tr><td>Arc</td></tr> </table> <div id="arccenter" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/ArcCenterIcon.png" width="64" height="64"></td></tr> <tr><td>Center</td></tr> </table> <p>Draw an arc by center point, start point, and angle.</p> <p>The Elliptical option can be checked to create an elliptical arc that passes directly through the final picked point.</p> </div> <div style="clear:left"> </div><br><div id="arccontinue" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/ArcContinueIcon.png" width="64" height="64"></td></tr> <tr><td>Cont</td></tr> </table> <p>Draw an arc that continues tangent from the end of an existing curve.</p> <p>The first picked point should be nearby the end of an existing curve</p> </div> <div style="clear:left"> </div><br><div id="arc3pt" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/Arc3ptsIcon.png" width="64" height="64"></td></tr> <tr><td>3 pts</td></tr> </table> <p>Draw an arc that passes through the 3 picked points.</p> <p>The order of the picked points can be changed using the Style option.</p> </div> <div style="clear:left"> </div><br><div id="arctangent" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/ArcTangentIcon.png" width="64" height="64"></td></tr> <tr><td>Tan</td></tr> </table> <p>Draw an arc of the specified radius tangent to 2 existing curves.</p> <p>The first 2 points must be picked snapped on to existing curves. The third point determines the radius by the distance between it and the second picked point, or a specific radius can be typed in.</p> <p>After the radius has been specified, an additional click is required to specify which of the 2 arc choices you want to keep. Click close to the half you want.</p> </div> <div style="clear:left"> </div><br></div> <div id="Draw curve_Ellipse" class="indent"> <table class="icontable"> <tr><td><img src="icons/EllipseSetIcon.png" width="64" height="64"></td></tr> <tr><td>Ellipse</td></tr> </table> <div id="ellipse" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/EllipseCenterIcon.png" width="64" height="64"></td></tr> <tr><td>Center</td></tr> </table> <p>Draw an ellipse by center and 2 axis points.</p> <p>A specific width and height for the full ellipse can also be entered.</p> </div> <div style="clear:left"> </div><br><div id="ellipsediameter" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/EllipseDiameterIcon.png" width="64" height="64"></td></tr> <tr><td>Diameter</td></tr> </table> <p>Draw an ellipse by 2 diameter points followed by a point for the second axis.</p> </div> <div style="clear:left"> </div><br><div id="ellipsecorner" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/EllipseCornersIcon.png" width="64" height="64"></td></tr> <tr><td>Corners</td></tr> </table> <p>Draw an ellipse by specifying the 2 corner points for its bounding box.</p> </div> <div style="clear:left"> </div><br></div> <div id="Draw curve_More" class="indent"> <table class="icontable"> <tr><td><img src="icons/MoreDrawCurvesIcon.png" width="64" height="64"></td></tr> <tr><td>More</td></tr> </table> <div id="point" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/PointIcon.png" width="64" height="64"></td></tr> <tr><td>Point</td></tr> </table> <p>Draw a single point object.</p> <p>Point objects can be used to place a marker somewhere that can easily be snapped back to later on.</p> </div> <div style="clear:left"> </div><br><div id="helix" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/HelixIcon.png" width="64" height="64"></td></tr> <tr><td>Helix</td></tr> </table> <p>Draw a helix or spiral type curve.</p> <p>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 option before finishing the first radius.</p> <p>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.</p> <p>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.</p> </div> <div style="clear:left"> </div><br></div><!--split--> <div id="Draw solid" class="palettelabel">Draw solid</div> <div id="Draw solid_Plane" class="indent"> <table class="icontable"> <tr><td><img src="icons/PlaneSetIcon.png" width="64" height="64"></td></tr> <tr><td>Plane</td></tr> </table> <div id="plane" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/PlaneCornerIcon.png" width="64" height="64"></td></tr> <tr><td>Corner</td></tr> </table> <p>Draw a rectangular plane surface by 2 corner points, similar to Rectangle corner.</p> </div> <div style="clear:left"> </div><br><div id="planecenter" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/PlaneCenterIcon.png" width="64" height="64"></td></tr> <tr><td>Center</td></tr> </table> <p>Draw a rectangular plane surface by center and corner point, similar to Rectangle center.</p> </div> <div style="clear:left"> </div><br><div id="plane3pts" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/Plane3ptIcon.png" width="64" height="64"></td></tr> <tr><td>3 pts</td></tr> </table> <p>Draw a rectangular plane surface using 3 points, 2 points for one edge and then a 3rd point for the width. Similar to Rectangle 3 points.</p> </div> <div style="clear:left"> </div><br></div> <div id="Draw solid_Box" class="indent"> <table class="icontable"> <tr><td><img src="icons/BoxSetIcon.png" width="64" height="64"></td></tr> <tr><td>Box</td></tr> </table> <div id="box" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/RectCornerIcon.png" width="64" height="64"></td></tr> <tr><td>Corner</td></tr> </table> <p>Draw a solid box, starting with a base rectangle corner to corner followed by an extrusion value.</p> <p>Snaps are available to make exact squares or a cube.</p> </div> <div style="clear:left"> </div><br><div id="boxcenter" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/RectCenterIcon.png" width="64" height="64"></td></tr> <tr><td>Center</td></tr> </table> <p>Draw a solid box, starting with a base rectangle from a center point to a corner, followed by an extrusion value.</p> <p>Snaps are available to make exact squares or a cube.</p> </div> <div style="clear:left"> </div><br><div id="box3pts" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/Rect3ptIcon.png" width="64" height="64"></td></tr> <tr><td>3 pts</td></tr> </table> <p>Draw a solid box, starting with a base rectangle from 3 points, 2 points for one edge and then a 3rd point for the width, followed by an extrusion value.</p> <p>Snaps are available to make exact squares or a cube.</p> </div> <div style="clear:left"> </div><br></div> <div id="sphere" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/SphereIcon.png" width="64" height="64"></td></tr> <tr><td>Sphere</td></tr> </table> <p>Draw a solid sphere, from center and radius.</p> <p>Click on the radius label with the small arrow to switch to diameter entry mode.</p> </div> <div style="clear:left"> </div><br><div id="cylinder" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/CylinderIcon.png" width="64" height="64"></td></tr> <tr><td>Cylinder</td></tr> </table> <p>Draw a solid cylinder, from a base center point, radius, and height.</p> <p>Click on the radius label with small arrow to switch to diameter entry mode.</p> </div> <div style="clear:left"> </div><br><div id="cone" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/ConeIcon.png" width="64" height="64"></td></tr> <tr><td>Cone</td></tr> </table> <p>Draw a solid cone, from a base center point, radius, and height.</p> <p>Click on the radius label with small arrow to switch to diameter entry mode.</p> </div> <div style="clear:left"> </div><br><div id="text" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/TextIcon.png" width="64" height="64"></td></tr> <tr><td>Text</td></tr> </table> <p>Create text geometry.</p> <p>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 the front view so it will be pointing upwards in Z.</p> <p>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.</p> <p>Some elaborate fonts may have crossing or intersecting outlines which may cause problems when MoI tries to determine solid areas from holes.</p> </div> <div style="clear:left"> </div><br><!--split--><div id="Edit" class="palettelabel">Edit</div> <div id="join" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/JoinIcon.png" width="64" height="64"></td></tr> <tr><td>Join</td></tr> </table> <p>Joins together curves into longer single curves, or joins surfaces along common edges into solids.</p> <p>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 instead.</p> <p>Surfaces must be within 0.005 units from one another to be joined.</p> </div> <div style="clear:left"> </div><br><div id="separate" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/SeparateIcon.png" width="64" height="64"></td></tr> <tr><td>Separate</td></tr> </table> <p>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.</p> <p>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.</p> </div> <div style="clear:left"> </div><br><div id="trim" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/TrimIcon.png" width="64" height="64"></td></tr> <tr><td>Trim</td></tr> </table> <p>Cuts up an object. Some portions may be removed to make holes, or optionally all sliced up pieces may be retained.</p> <p>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 pieces instead of discarding any, then click Done without selecting anything at that final stage.</p> <p>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.</p> <p>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.</p> <p>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.</p> <p>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.</p> <p>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.</p> </div> <div style="clear:left"> </div><br><div id="extend" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/ExtendIcon.png" width="64" height="64"></td></tr> <tr><td>Extend</td></tr> </table> <p>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.</p> <p>Lines and curves will be extended by a straight line. Arcs will be extended as arcs.</p> <p>Example for extending curves to a boundary:</p> <p><img src="screenshots/Extend1.jpg"> <img src="screenshots/Extend2.jpg"></p> <p>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.</p> <p>Example of mutual extend mode:</p> <p><img src="screenshots/Extend3.jpg"> <img src="screenshots/Extend4.jpg"></p> </div> <div style="clear:left"> </div><br><div id="showpoints" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/ShowPointsIcon.png" width="64" height="64"></td></tr> <tr><td>Show pts</td></tr> </table> <p>Turns edit points on or off.</p> <p>You can also use the Esc key to turn points off, see <a href="#shortcutkeys">Shortcut keys</a> for more information.</p> <p>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.</p> <p>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.</p> </div> <div style="clear:left"> </div><br><div id="addpoint" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/AddPointIcon.png" width="64" height="64"></td></tr> <tr><td>Add pt</td></tr> </table> <p>Adds a new point to a curve.</p> <p>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.</p> <p>To add many points, enable the Repeat checkbox, or right-click to repeat the last command.</p> <p>There are 2 different methods for adding 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.</p> <p>The second mode for adding points is activated by clicking directly on a curve that does not have control points turned on - 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.</p> </div> <div style="clear:left"> </div><br><div id="copyclipboard" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/Copy.png" width="64" height="64"></td></tr> <tr><td>Copy</td></tr> </table> <p>Copies an object to the clipboard.</p> <p>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.</p> </div> <div style="clear:left"> </div><br><div id="paste" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/Paste.png" width="64" height="64"></td></tr> <tr><td>Paste</td></tr> </table> <p>Pastes in an object from the clipboard.</p> <p>It is also possible to copy and paste objects between MoI and Rhino. Leave MoI running to enable this cross-application pasting.</p> </div> <div style="clear:left"> </div><br><div id="hide" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/HideIcon.png" width="64" height="64"></td></tr> <tr><td>Hide</td></tr> </table> <p>Hides or shows objects.</p> <p>If objects are selected when you press Hide, those objects will be hidden.</p> <p>If no objects are selected when you press Hide, hidden objects will be shown.</p> <p>When showing objects, all hidden objects will be temporarily displayed and you can select a subset of them to be actually finally displayed, or you can click on the Hide button a second time to show all objects.</p> </div> <div style="clear:left"> </div><br><div id="history" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/History.png" width="64" height="64"></td></tr> <tr><td>History</td></tr> </table> <p>Enables or disables history updating on an object.</p> <p>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 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.</p> </div> <div style="clear:left"> </div><br><!--split--><div id="View" class="palettelabel">View</div> <div id="resetall" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/ViewReset.png" width="64" height="64"></td></tr> <tr><td>Reset all</td></tr> </table> <p>Applies a view reset to all viewports.</p> <p>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.</p> <p>You can also reset all viewports by right-clicking the Reset button inside of an individual viewport.</p> </div> <div style="clear:left"> </div><br><div id="image" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/ImageIcon.png" width="64" height="64"></td></tr> <tr><td>Image</td></tr> </table> <p>Allows placement and editing of reference image planes.</p> <p>Click the Add button to create a new image plane.</p> <p>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.</p> <p>The following options are also available and affect all images:</p> <p>Draw below objects - choosing this option draws images as a backdrop behind everything else.</p> <p>Draw with objects - this option draws images mixed in as if they were regular objects.</p> <p>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.</p> <p>Show in all views - shows the image in all viewports.</p> <p>Show in ortho only - only shows the image in the Top/Front/Right views, not in the 3D view.</p> <p>Transparency - you can put in a percentage here from 0% (fully opaque with no transparency) to 100% (completely transparent).</p> <p>Background images are editable while you are inside this command. Click and drag on an image to reposition it. Dragging on a 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. </p> </div> <div style="clear:left"> </div><br><!--split--><div id="Select" class="palettelabel">Select</div> <div id="selectall" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/SelectAllIcon.png" width="64" height="64"></td></tr> <tr><td>Sel all</td></tr> </table> <p>Selects all objects that are not hidden.</p> <p>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.</p> </div> <div style="clear:left"> </div><br><div id="deselectall" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/DeselectAllIcon.png" width="64" height="64"></td></tr> <tr><td>Desel all</td></tr> </table> <p>Deselects all objects</p> <p>You can also use the Esc key to deselect objects, see <a href="#shortcutkeys">Shortcut keys</a> for more information.</p> </div> <div style="clear:left"> </div><br><div id="invert" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/InvertIcon.png" width="64" height="64"></td></tr> <tr><td>Invert</td></tr> </table> <p>Inverts the selection - selected objects will become unselected and unselected objects will become selected.</p> <p>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.</p> </div> <div style="clear:left"> </div><br><!--split--><div id="Construct" class="palettelabel">Construct</div> <div id="Construct_Boolean" class="indent"> <table class="icontable"> <tr><td><img src="icons/BooleanSetIcon.png" width="64" height="64"></td></tr> <tr><td>Boolean</td></tr> </table> <div id="booleandifference" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/BooleanDifferenceIcon.png" width="64" height="64"></td></tr> <tr><td>Diff</td></tr> </table> <p>Cut an object by subtracting another object from it.</p> <p>Select the objects to be cut first, then run Boolean Difference and select the cutting objects.</p> <p>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.</p> <p>Example of Boolean difference between solids:<br> <img src="screenshots/BoolDiff1.jpg"> <img src="screenshots/BoolDiff2.jpg"> <br><br> <img src="screenshots/BoolDiff3.jpg"> <img src="screenshots/BoolDiff4.jpg"> </p><br><p>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:<br> <img src="screenshots/BoolDiff5.jpg"> <img src="screenshots/BoolDiff6.jpg"> </p><br><p>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):<br> <img src="screenshots/BoolDiff7.jpg"> <img src="screenshots/BoolDiff8.jpg"> </p><br><p>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):<br> <img src="screenshots/BoolDiff9.jpg"> <img src="screenshots/BoolDiff10.jpg"> </p><br><p>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:<br> <img src="screenshots/BoolDiff11.jpg"> <img src="screenshots/BoolDiff12.jpg"> <br><br> <img src="screenshots/BoolDiff13.jpg"> <img src="screenshots/Booldiff14.jpg"> </p> </div> <div style="clear:left"> </div><br><div id="booleanunion" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/BooleanUnionIcon.png" width="64" height="64"></td></tr> <tr><td>Union</td></tr> </table> <p>Fuse objects together where they intersect.</p> <p>Solids can be unioned with other solids or surfaces, and 2D curves can be unioned with other 2D curves.</p> <p>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.<br> <img src="screenshots/BoolUnion1.jpg"> <img src="screenshots/BoolUnion2.jpg"> </p><br><p>Curves that are all on the same plane can be combined in a similar way:<br> <img src="screenshots/BoolUnion3.jpg"> <img src="screenshots/BoolUnion4.jpg"> </p> </div> <div style="clear:left"> </div><br><div id="booleanintersection" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/BooleanIntersectionIcon.png" width="64" height="64"></td></tr> <tr><td>Isect</td></tr> </table> <p>Combine objects together, only keeping areas contained by all objects.</p> <p>Objects to be intersected are treated as 2 different sets. Select one set, run Boolean Intersection, then select the other set.</p> <p>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.</p> <p>Example of solid/solid intersection:<br> <img src="screenshots/BoolInt1.jpg"> <img src="screenshots/BoolInt2.jpg"> </p><br><p>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.<br> <img src="screenshots/BoolInt3.jpg"> <img src="screenshots/BoolInt4.jpg"> </p><br><p>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.<br> <img src="screenshots/BoolInt5.jpg"> <img src="screenshots/BoolInt6.jpg"> </p><br><p>Another example of combining 2D profiles - final stage shown after using Fillet to round the sharp edges:<br> <img src="screenshots/BoolInt7.jpg"> <img src="screenshots/BoolInt8.jpg"> <img src="screenshots/BoolInt9.jpg"> </p><br><p>Boolean Intersection can also be used on curves that are all in the same plane to create a curve result:<br> <img src="screenshots/BoolMerge7.jpg"> <img src="screenshots/BoolInt10.jpg"> </p><br><p>Another curve intersection example:<br> <img src="screenshots/BoolInt11.jpg"> <img src="screenshots/BoolInt12.jpg"> </p> </div> <div style="clear:left"> </div><br><div id="booleanmerge" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/BooleanMergeIcon.png" width="64" height="64"></td></tr> <tr><td>Merge</td></tr> </table> <p>Combines objects together and extracts all volumes.</p> <p>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.</p> <p>Here is an example of Boolean Merge between 2 solids (pieces have been separated for illustration):<br> <img src="screenshots/BoolMerge1.jpg"> <img src="screenshots/BoolMerge2.jpg"> </p><br><p>2D curves can be Merged onto a solid to cut the solid by an imprint of the curve, leaving all pieces:<br> <img src="screenshots/BoolMerge3.jpg"> <img src="screenshots/BoolMerge4.jpg"> </p><br><p>Boolean Merge can also be used to extract a common solid volume from a set of intersecting surfaces:<br> <img src="screenshots/BoolMerge5.jpg"> <img src="screenshots/BoolMerge6.jpg"> </p><br><p>Merge can also be used on curves in the same plane:<br> <img src="screenshots/BoolMerge7.jpg"> <img src="screenshots/BoolMerge8.jpg"> </p> </div> <div style="clear:left"> </div><br></div> <div id="Construct_Fillet" class="indent"> <table class="icontable"> <tr><td><img src="icons/FilletIcon.png" width="64" height="64"></td></tr> <tr><td>Fillet</td></tr> </table> <div id="fillet" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/FilletIcon.png" width="64" height="64"></td></tr> <tr><td>Fillet</td></tr> </table> <p>Fillet is used to round off sharp corners.</p> <p>Fillet will apply the rounding in different ways depending on what is selected.</p> <p>Selecting an entire solid object will fillet all edges of the solid.</p> <p>Selecting edges of a solid will fillet just those edges.</p> <p>Selecting faces of a solid will fillet all the edges that belong to those faces.</p> <p>Selecting 2 individual surfaces will perform a surface/surface fillet operation, instead of an edge-based one.</p> <p>Selecting 2 curves will create a fillet between them, extending or trimming them if necessary.</p> <p>Selecting a single curve that has corners in it (for example, a rectangle curve) will allow filleting of some or all of those corners.</p> <p>Some examples of filleting:<br> <img src="screenshots/Fillet1.jpg"> <img src="screenshots/Fillet2.jpg"><br><br> <img src="screenshots/Fillet3.jpg"> <img src="screenshots/Fillet4.jpg"><br><br> <img src="screenshots/Fillet5.jpg"> <img src="screenshots/Fillet6.jpg"> <img src="screenshots/Fillet7.jpg"><br><br> <img src="screenshots/Fillet8.jpg"> <img src="screenshots/Fillet9.jpg"> </p> <p>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.</p> <p>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.</p> <p>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:<br> <img src="screenshots/Fillet10.jpg"> <img src="screenshots/Fillet11.jpg"> </p> <p>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:<br> <img src="screenshots/Fillet12.jpg"> <img src="screenshots/Fillet13.jpg"> <img src="screenshots/Fillet14.jpg"> </p> <p>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.</p> <p>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. </p> <p>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:<br> <img src="screenshots/Fillet15.jpg"> <img src="screenshots/Fillet16.jpg"> </p> <p>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.</p> </div> <div style="clear:left"> </div><br><div id="chamfer" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/ChamferIcon.png" width="64" height="64"></td></tr> <tr><td>Chamfer</td></tr> </table> <p>Chamfer is used to chop off sharp corners with a small flat piece.</p> <p>It is very similar to Fillet, but instead of placing a rounded area it places a facet.</p> <p>Examples of chamfering:<br> <img src="screenshots/Chamfer1.jpg"> <img src="screenshots/Chamfer2.jpg"><br> <img src="screenshots/Chamfer3.jpg"> <img src="screenshots/Chamfer4.jpg"> </p> <p>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:<br> <img src="screenshots/Chamfer5.jpg"> <img src="screenshots/Chamfer6.jpg"> <img src="screenshots/Chamfer7.jpg"> </p> </div> <div style="clear:left"> </div><br></div> <div id="Construct_Offset" class="indent"> <table class="icontable"> <tr><td><img src="icons/OffsetSetIcon.png" width="64" height="64"></td></tr> <tr><td>Offset</td></tr> </table> <div id="offset" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/OffsetIcon.png" width="64" height="64"></td></tr> <tr><td>Offset</td></tr> </table> <p>Create a new object at a constant distance away from an existing one.</p> <p>Offset can be used on solids, surfaces, or curves.</p> <p>Examples of Offset:<br> <img src="screenshots/Offset1.jpg"> <img src="screenshots/Offset2.jpg"><br><br> <img src="screenshots/Offset3.jpg"> <img src="screenshots/Offset4.jpg"> </p> <p>Offset tends to be used more often on curves, with the Shell command being used instead more frequently on solids or surfaces.</p> <p>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.</p> <p>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.</p> </div> <div style="clear:left"> </div><br><div id="shell" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/ShellIcon.png" width="64" height="64"></td></tr> <tr><td>Shell</td></tr> </table> <p>Modify a solid or surface to have a wall or slab thickness.</p> <p>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.</p> <p>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.</p> <p>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.</p> <p>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.</p> <p>Examples of shelling:<br> <img src="screenshots/Shell1.jpg"> <img src="screenshots/Shell2.jpg"><br> <img src="screenshots/Shell3.jpg"> <img src="screenshots/Shell4.jpg"><br> <img src="screenshots/Shell5.jpg"> <img src="screenshots/Shell6.jpg"><br> <img src="screenshots/Shell7.jpg"> <img src="screenshots/Shell8.jpg"> </p> </div> <div style="clear:left"> </div><br></div> <div id="planarsrf" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/PlanarSrfIcon.png" width="64" height="64"></td></tr> <tr><td>Planar</td></tr> </table> <p>Create a planar surface from outline curves, or fill in end caps on planar openings on surface edges.</p> <p>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.</p> <p>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.</p> <p>Examples of creating planar surfaces:<br> <img src="screenshots/Planar1.jpg"> <img src="screenshots/Planar2.jpg"><br> <img src="screenshots/Planar3.jpg"> <img src="screenshots/Planar4.jpg"> </p> </div> <div style="clear:left"> </div><br><div id="extrude" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/ExtrudeIcon.png" width="64" height="64"></td></tr> <tr><td>Extrude</td></tr> </table> <p>Creates a solid or surface by tracing an outline along a direction.</p> <p>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.</p> <p>Example of extrusion:<br> <img src="screenshots/Extrude1.jpg"> <img src="screenshots/Extrude2.jpg"><br> <img src="screenshots/Extrude3.jpg"> <img src="screenshots/Extrude4.jpg"> </p> <p>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.</p> <p>An example of Extrude with a path:<br> <img src="screenshots/Extrude5.jpg"> <img src="screenshots/Extrude6.jpg"> </p> </div> <div style="clear:left"> </div><br><div id="Construct_Revolve" class="indent"> <table class="icontable"> <tr><td><img src="icons/RevolveIcon.png" width="64" height="64"></td></tr> <tr><td>Revolve</td></tr> </table> <div id="revolve" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/RevolveIcon.png" width="64" height="64"></td></tr> <tr><td>Revolve</td></tr> </table> <p>Creates a solid or a surface by tracing an outline as it pivots around an axis.</p> <p>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.</p> <p>Examples of revolution:<br> <img src="screenshots/Revolve1.jpg"> <img src="screenshots/Revolve2.jpg"><br> <img src="screenshots/Revolve3.jpg"> <img src="screenshots/Revolve4.jpg"> </p> </div> <div style="clear:left"> </div><br><div id="railrevolve" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/RailRevolveIcon.png" width="64" height="64"></td></tr> <tr><td>Rail revolve</td></tr> </table> <p>Creates a solid or surface similar to revolve, but an additional path curve is specified.</p> <p>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.</p> <p>Some examples of rail revolve:<br> <img src="screenshots/RailRevolve1.jpg"> <img src="screenshots/RailRevolve2.jpg"><br> <img src="screenshots/RailRevolve3.jpg"> <img src="screenshots/RailRevolve4.jpg"><br> <img src="screenshots/RailRevolve5.jpg"> <img src="screenshots/RailRevolve6.jpg"> </p> </div> <div style="clear:left"> </div><br></div> <div id="loft" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/LoftIcon.png" width="64" height="64"></td></tr> <tr><td>Loft</td></tr> </table> <p>Creates a solid or surface passing through cross-section profile curves.</p> <p>Examples of lofting:<br> <img src="screenshots/Loft1.jpg"> <img src="screenshots/Loft2.jpg"><br> <img src="screenshots/Loft3.jpg"> <img src="screenshots/Loft4.jpg"><br> <img src="screenshots/Loft5.jpg"> <img src="screenshots/Loft6.jpg"><br> </p> <p>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.</p> <p>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.</p> <p>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. </p> </div> <div style="clear:left"> </div><br><div id="sweep" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/SweepIcon.png" width="64" height="64"></td></tr> <tr><td>Sweep</td></tr> </table> <p>Creates a solid or surface passing through cross-section profiles, guided by one or two rail path curves.</p> <p>Select the profiles first, then run Sweep and select the rails next.</p> <p>Sweep has different options and behavior depending on whether you use one or two rails.</p> <p><b>One rail sweep:</b></p> <p>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.</p> <p>Example of sweep with one rail:<br> <img src="screenshots/Sweep1.jpg"> <img src="screenshots/Sweep2.jpg"><br> </p> <p>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.</p> <p>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. 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:<br> <img src="screenshots/Sweep3.jpg"> <img src="screenshots/Sweep4.jpg"> <img src="screenshots/Sweep5.jpg"> </p> <p>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:<br> <img src="screenshots/Sweep6.jpg"> <img src="screenshots/Sweep7.jpg"> <img src="screenshots/Sweep8.jpg"> </p> <p><b>Two rail sweep:</b></p> <p>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:<br> <img src="screenshots/Sweep9.jpg"> <img src="screenshots/Sweep10.jpg"> </p> <p>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.</p> <p>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:<br> <img src="screenshots/Sweep11.jpg"> <img src="screenshots/Sweep12.jpg"> <img src="screenshots/Sweep13.jpg"> </p> <p>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:<br> <img src="screenshots/Sweep14.jpg"> <img src="screenshots/Sweep15.jpg"><br> 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:<br> <img src="screenshots/Sweep16.jpg"> </p> <p>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.</p> </div> <div style="clear:left"> </div><br><div id="blend" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/BlendIcon.png" width="64" height="64"></td></tr> <tr><td>Blend</td></tr> </table> <p>Creates a new piece that makes a smooth connection in the empty space between 2 existing pieces.</p> <p>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.</p> <p>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.</p> <p>Some examples of blending:<br> <img src="screenshots/Blend1.jpg"> <img src="screenshots/Blend2.jpg"><br> <img src="screenshots/Blend3.jpg"> <img src="screenshots/Blend4.jpg"><br> <img src="screenshots/Blend5.jpg"> <img src="screenshots/Blend6.jpg"><br> <img src="screenshots/Blend7.jpg"> <img src="screenshots/Blend8.jpg"> </p> </div> <div style="clear:left"> </div><br><div id="network" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/NetworkIcon.png" width="64" height="64"></td></tr> <tr><td>Network</td></tr> </table> <p>Creates a surface from a 2-directional network of curves.</p> <p>To create a network surface, select all the curves that make up the network before running the command.</p> <p>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.</p> <p>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".</p> <p> Some examples of network surface:<br> <img src="screenshots/Network1.jpg"> <img src="screenshots/Network2.jpg"><br> <img src="screenshots/Network3.jpg"> <img src="screenshots/Network4.jpg"> </p> </div> <div style="clear:left"> </div><br><div id="Construct_Curve" class="indent"> <table class="icontable"> <tr><td><img src="icons/ProjectIcon.png" width="64" height="64"></td></tr> <tr><td>Curve</td></tr> </table> <div id="project" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/ProjectIcon.png" width="64" height="64"></td></tr> <tr><td>Project</td></tr> </table> <p>Projects a curve on to a surface or solid.</p> <p>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.</p> <p>Example of curve projection:<br> <img src="screenshots/Project1.jpg"> <img src="screenshots/Project2.jpg"> </p> </div> <div style="clear:left"> </div><br><div id="intersect" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/IntersectIcon.png" width="64" height="64"></td></tr> <tr><td>Isect</td></tr> </table> <p>Creates curves or points at intersections between 2 objects.</p> <p>Select all the objects to be intersected before running the command.</p> <p>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.</p> <p>Unlike the Booleans, this does not modify the objects, it just creates new curve or point objects.</p> </div> <div style="clear:left"> </div><br></div><!--split--> <div id="Transform" class="palettelabel">Transform</div> <div id="move" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/MoveIcon.png" width="64" height="64"></td></tr> <tr><td>Move</td></tr> </table> <p>Moves objects by the displacement between 2 points.</p> <p>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 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.<br> <img src="screenshots/Move1.jpg"> <img src="screenshots/Move2.jpg"> </p> <p>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.</p> </div> <div style="clear:left"> </div><br><div id="copy" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/CopyIcon.png" width="64" height="64"></td></tr> <tr><td>Copy</td></tr> </table> <p>Create copies of an object, placed at specific points.</p> <p>Copy works similar to Move, but allows you to click multiple target points and drops a copy of the objects at each one.</p> <p>Use Edit/Copy and Edit/Paste instead if you want to create a duplicate of an object in its exact same location.</p> </div> <div style="clear:left"> </div><br><div id="Transform_Rotate" class="indent"> <table class="icontable"> <tr><td><img src="icons/RotateIcon.png" width="64" height="64"></td></tr> <tr><td>Rotate</td></tr> </table> <div id="rotate" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/RotateIcon.png" width="64" height="64"></td></tr> <tr><td>Rotate</td></tr> </table> <p>Rotates objects around a center point.</p> <p>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 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.</p> <p>Example of rotating a rectangle 90 degrees using the mouse:</p> <p>After selecting the rectangle and running Rotate, pick the center point for the rotation, in this case the center of the rectangle:<br> <img src="screenshots/Rotate1.jpg"> </p> <p>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:<br> <img src="screenshots/Rotate2.jpg"> </p> <p>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:<br> <img src="screenshots/Rotate3.jpg"> </p> <p>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:<br> <img src="screenshots/Rotate4.jpg"> <img src="screenshots/Rotate5.jpg"> </p> <p>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.</p> </div> <div style="clear:left"> </div><br><div id="rotateaxis" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/RotateAxisIcon.png" width="64" height="64"></td></tr> <tr><td>Rotate Axis</td></tr> </table> <p>Rotates objects around an axis line.</p> <p>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 aligned with any grid.</p> <p>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.</p> <p>An example of rotating a polygon up 30 degrees from the x/y plane around one of its own edges:</p> <p>After selecting the polygon and running Rotate Axis, the first axis point is picked at one corner of the polygon:<br> <img src="screenshots/RotateAxis1.jpg"> </p> <p>The second axis point is picked at the other end of the polygon's edge:<br> <img src="screenshots/RotateAxis2.jpg"> </p> <p>Then 30 was entered for the angle, resulting in the polygon rotating up from the x/y plane by 30 degrees:<br> <img src="screenshots/RotateAxis3.jpg"> </p> <p>The rotation axis works as kind of a hinge and the objects pivot around that hinge.</p> <p>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.</p> </div> <div style="clear:left"> </div><br></div> <div id="Transform_Scale" class="indent"> <table class="icontable"> <tr><td><img src="icons/ScaleIcon.png" width="64" height="64"></td></tr> <tr><td>Scale</td></tr> </table> <div id="scale" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/ScaleIcon.png" width="64" height="64"></td></tr> <tr><td>Scale</td></tr> </table> <p>Scales objects around a center point.</p> <p>This type of scaling is sometimes called a "Uniform" or "3D" scale since it scales equally in all axis directions.</p> <p>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.</p> <p>When entering in a number for the scale factor, 1 represents no scaling. So for example:<br> 2 will double the size of the object,<br> 0.5 will shrink the object to one-half the original size,<br> 10 will increase size by 10 times,<br> 0.1 will shrink the object to one-tenth the original size,<br> etc...</p> <p>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 .</p> <p>Example of scaling a rectangle using the mouse to set the scale factor:</p> <p>After selecting the rectangle and running Scale, pick the center point for the scale, in this case the corner of the rectangle:<br> <img src="screenshots/Scale1.jpg"> </p> <p>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:<br> <img src="screenshots/Scale2.jpg"> </p> <p>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:<br> <img src="screenshots/Scale3.jpg"> </p> <p>If you move the second reference point closer to the scale origin than the first reference point, the object will become smaller:<br> <img src="screenshots/Scale4.jpg"> </p> <p>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:<br> <img src="screenshots/Scale5.jpg"> <img src="screenshots/Scale6.jpg"> <img src="screenshots/Scale7.jpg"> <img src="screenshots/Scale8.jpg"> <br> </p> <p>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.</p> </div> <div style="clear:left"> </div><br><div id="scale2d" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/Scale2dIcon.png" width="64" height="64"></td></tr> <tr><td>Scale 2D</td></tr> </table> <p>Scales objects around a center point, stretching them just in 2 axis directions.</p> <p>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 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.</p> <p>See regular Scale for details on how the reference points work.</p> <p>Example of scaling a cylinder with Scale 2D. The cylinder is widened in the x/y plane, but its height remains fixed:<br> <img src="screenshots/Scale2D1.jpg"> <img src="screenshots/Scale2D2.jpg"> </p> </div> <div style="clear:left"> </div><br><div id="scale1d" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/Scale1dIcon.png" width="64" height="64"></td></tr> <tr><td>Scale 1D</td></tr> </table> <p>Scales objects along a single direction.</p> <p>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.</p> <p>See regular Scale for details on how the reference points work.</p> <p>Example of scaling a circle into an ellipse along a diagonal:<br> <img src="screenshots/Scale1D1.jpg"> <img src="screenshots/Scale1D2.jpg"> </p> <p>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.<br> <img src="screenshots/Scale1D3.jpg"> <img src="screenshots/Scale1D4.jpg"> </p> <p>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.</p> </div> <div style="clear:left"> </div><br></div> <div id="mirror" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/MirrorIcon.png" width="64" height="64"></td></tr> <tr><td>Mirror</td></tr> </table> <p>Creates a mirrored copy of an object around a dividing line.</p> <p>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.</p> <p>The new mirrored object has history updates enabled by default so the mirrored version will update when you edit the original.</p> </div> <div style="clear:left"> </div><br><div id="Transform_Array" class="indent"> <table class="icontable"> <tr><td><img src="icons/ArrayIcon.png" width="64" height="64"></td></tr> <tr><td>Array</td></tr> </table> <div id="arraygrid" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/ArrayIcon.png" width="64" height="64"></td></tr> <tr><td>Grid</td></tr> </table> <p>Duplicates objects in a rectangular or cube layout.</p> <p>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. 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.</p> <p>Here is an example of drawing the spacing with the mouse and the result (result shown zoomed out): <img src="screenshots/ArrayGrid1.jpg"> <img src="screenshots/ArrayGrid2.jpg"> </p> </div> <div style="clear:left"> </div><br><div id="arraydir" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/ArrayDirIcon.png" width="64" height="64"></td></tr> <tr><td>Dir</td></tr> </table> <p>Duplicates objects along one direction.</p> <p>To create a duplicated column of objects, select the objects to duplicate and run the Array Dir command. The "Item count" option controls how many copies will be made, and you pick 2 points to define both the direction and the spacing of the copies.</p> <p>Example of Array Dir. 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:<br> <img src="screenshots/ArrayDir1.jpg"> </p> </div> <div style="clear:left"> </div><br><div id="arraycircular" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/ArrayCircularIcon.png" width="64" height="64"></td></tr> <tr><td>Circular</td></tr> </table> <p>Duplicates objects in a circular pattern around a center point.</p> <p>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.</p> <p>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.</p> <p>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:<br> <img src="screenshots/ArrayCircular1.jpg"> </p> </div> <div style="clear:left"> </div><br><div id="arraycurve" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/ArrayCurveIcon.png" width="64" height="64"></td></tr> <tr><td>Curve</td></tr> </table> <p>Duplicates objects along a path curve.</p> <p>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 finished.</p> <p>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.</p> <p>There are different options for controlling the orientation of the objects as they travel along the path.</p> <p>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.</p> <p>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. </p> <p>Rotation:None performs no orientation of the object at all and just moves it along the path curve.</p> <p>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:<br> <img src="screenshots/ArrayCurve1.jpg"> </p> <p>Rotation:Freeform produces this result:<br> <img src="screenshots/ArrayCurve2.jpg"> </p> <p>Rotation:Flat produces this:<br> <img src="screenshots/ArrayCurve3.jpg"> </p> <p>Rotation:None produces this:<br> <img src="screenshots/ArrayCurve4.jpg"> </p> </div> <div style="clear:left"> </div><br></div> <div id="align" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/AlignIcon.png" width="64" height="64"></td></tr> <tr><td>Align</td></tr> </table> <p>Lines up control points or objects along a straight edge.</p> <p>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 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.</p> <p>Example of using align to center objects along a horizontal edge through the center of a rectangle:<br> <img src="screenshots/Align1.jpg"> <img src="screenshots/Align2.jpg"> </p> <p>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.</p> <p>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:<br> <img src="screenshots/Align3.jpg"> </p> <p>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:<br> <img src="screenshots/Align4.jpg"> </p> <p>This results in the 2 points being lined up with one another and now the curve can be mirrored without a sharp crease forming:<br> <img src="screenshots/Align5.jpg"> </p> </div> <div style="clear:left"> </div><br><!--split--><div id="Viewport controls" class="palettelabel">Viewport controls</div> <div id="zoomarea" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/ZoomArea.png" width="64" height="64"></td></tr> <tr><td>Area</td></tr> </table> <p>Zooms in and centers the view on a smaller specified area.</p> <p>The area is defined by a center point and then a corner forming a rectangle.</p> <p>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.</p> </div> <div style="clear:left"> </div><br><div id="zoom" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/Zoom.png" width="64" height="64"></td></tr> <tr><td>Zoom</td></tr> </table> <p>Zooms the view in or out.</p> <p>In addition to this zoom button, you can also spin the scroll wheel on a mouse to zoom in or out.</p> <p>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.</p> <p>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.</p> <p>You can flip the up/down action and adjust the sensitivity under Options / View / Rotate/Pan/Zoom options.</p> </div> <div style="clear:left"> </div><br><div id="pan" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/Pan.png" width="64" height="64"></td></tr> <tr><td>Pan</td></tr> </table> <p>Moves the view left, right, up or down.</p> <p>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 as a middle button.</p> <p>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.</p> <p>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.</p> <p>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.</p> <p>You can reverse the directions of the movement and adjust the sensitivity under Options / View / Rotate/Pan/Zoom options.</p> </div> <div style="clear:left"> </div><br><div id="rotateview" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/RotateView.png" width="64" height="64"></td></tr> <tr><td>Rotate</td></tr> </table> <p>Rotates the 3D view around the pivot point.</p> <p>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.</p> <p>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.</p> <p>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.</p> <p>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.</p> <p>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.</p> <p>You can reverse the directions of the movement and adjust the sensitivity under Options / View / Rotate/Pan/Zoom options.</p> </div> <div style="clear:left"> </div><br><div id="reset" class="indent"> <table class="icontablefloat"> <tr><td><img src="icons/ViewReset.png" width="64" height="64"></td></tr> <tr><td>Reset</td></tr> </table> <p>Fills the view with either the selected objects or all objects.</p> <p>On the first click Reset will target just the selected objects and adjust the view so the selected objects fill up the viewport.</p> <p>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.</p> <p>Reset also places the pivot point for rotating the 3D view at the center of what it zoomed to.</p> <p>If you right-click on the Reset button, the reset will be applied to all viewports.</p> <p>If there are no objects visible, Reset will restore the view to the initial startup default view.</p> </div> <div style="clear:left"> </div><br><!--split--><div id="Misc" class="palettelabel">Misc</div> <div id="meshdialog" class="indent"> <table class="icontablefloat"> <tr><td>Meshing options</td></tr> </table> <p>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.</p> <p>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.</p> <p>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.</p> <p>Initially the dialog is shown in its compact form:<br> <img src="screenshots/Meshing1.jpg"> </p> <p>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.</p> <p>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 &amp; 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.</p> <p>You can click on the arrow in the lower-left corner of the compact dialog to expand it to show more options:<br> <img src="screenshots/Meshing2.jpg"> </p> <p><b>Weld vertices along edges</b> option:</p> <p>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.</p> <p>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:<br> <img src="screenshots/Meshing3.jpg"> </p> <p>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: <img src="screenshots/Meshing4.jpg"> </p> <p>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.</p> <p><b>Angle</b> option:</p> <p>The Angle option controls the maximum angle allowed between the surface normals at the corners of each polygon. When the 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.</p> <p><b>Divide larger than</b> option:</p> <p>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.</p> <p>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:<br> <img src="screenshots/Meshing5.jpg"> </p> <p>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:<br> <img src="screenshots/Meshing6.jpg"> </p> <p><b>Avoid smaller than</b> option:</p> <p>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 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.</p> <p>Here's an example of a knob that is a tiny piece of a much larger model:<br> <img src="screenshots/Meshing7.jpg"> </p> <p>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:<br> <img src="screenshots/Meshing8.jpg"> </p> <p><b>Aspect ratio limit</b> option:</p> <p>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:<br> <img src="screenshots/Meshing9.jpg"> </p> <p>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:<br> <img src="screenshots/Meshing10.jpg"> </p> <p>After entering a value into one of the extended controls, you need to click the "Update mesh" button to see the change reflected on the screen. It doesn't do it automatically since it can be fairly time consuming to create the mesh, and you may want to tweak several of these values a little bit before doing the update.</p> <p>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.</p> </div> <div style="clear:left"> </div><br><div id="incrementalsave" class="indent"> <table class="icontablefloat"> <tr><td>Incremental save</td></tr> </table> <p>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...</p> <p>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.</p> </div> <div style="clear:left"> </div><br><div id="repeat" class="indent"> <table class="icontablefloat"> <tr><td>Repeat</td></tr> </table> <p>You can repeat the most recently used command by right-clicking inside a viewport or by pushing the Enter key on the keyboard.</p> <p>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.</p> </div> <div style="clear:left"> </div><br><div id="constructionlines" class="indent"> <table class="icontablefloat"> <tr><td>Construction lines</td></tr> </table> <p>Construction lines allow you to quickly place additional guide lines to help with precise snapping and alignment while drawing shapes.</p> <p>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.</p> <p>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 command.</p> <p>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:<br> <img src="screenshots/CLine1.jpg"> <img src="screenshots/CLine2.jpg"> </p> <p>To draw such a line, start the line command and click the first point at the end that you can easily grab:<br> <img src="screenshots/CLine3.jpg"> </p> <p>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:<br> <img src="screenshots/CLine4.jpg"> <img src="screenshots/CLine5.jpg"> </p> <p>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:<br> <img src="screenshots/CLine6.jpg"> </p> <p>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:<br> <img src="screenshots/CLine7.jpg"> <img src="screenshots/CLine8.jpg"> </p> <p>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.</p> <p>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:<br> <img src="screenshots/CLine18.jpg"> <img src="screenshots/CLine19.jpg"> </p> <p>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:<br> <img src="screenshots/CLine20.jpg"> </p> <p>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:<br> <img src="screenshots/CLine21.jpg"> </p> <p>Finally, the square snap built into the rectangle tool can be used for placing the 3rd point to form an exact square:<br> <img src="screenshots/CLine22.jpg"> </p> <p>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.</p> <p>After you drag out a construction line, a small marker will appear above your mouse pointer that looks like this:<br> <img src="screenshots/CLine9.jpg"> </p> <p>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:<br> <img src="screenshots/CLine10.jpg"> </p> <p>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.</p> <p>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.</p> <p>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:<br> <img src="screenshots/CLine14.jpg"> </p> <p>Then the construction line is re-oriented to point perpendicular to the edge, towards the inside of the box:<br> <img src="screenshots/CLine15.jpg"> </p> <p>Now there are snap points available at the same spacing as the edge of the box to draw an exactly placed cylinder:<br> <img src="screenshots/CLine16.jpg"> <img src="screenshots/CLine17.jpg"> </p> <p>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 <a href="#__XYZ / Distance / Angle">Distance or Angle constraint</a> 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.</p> <p>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...</p> <p>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:<br> <img src="screenshots/CLine11.jpg"> <img src="screenshots/CLine12.jpg"><br> 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:<br> <img src="screenshots/CLine13.jpg"> </p> </div> <div style="clear:left"> </div><br><div id="shortcutkeys" class="indent"> <table class="icontablefloat"> <tr><td>Shortcut keys</td></tr> </table> <p>Keys or key combinations can be assigned to different actions under Options / Shortcut keys.</p> <p>The Enter and Esc keys have predefined functions. You can use Enter as a shortcut for clicking the "Done" button while inside of a 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.</p> <p>To create a new shortcut key, click the "Add" button and then fill in the entries for Key and Command.</p> <p>The key can be defined using a letter (like "A") or one of these labels: F1 - F12, UpArrow, DownArrow, LeftArrow, RightArrow, Home, End, PageUp, PageDown, Insert, Delete, Backspace, Space. The key can be prefixed by one or more of these modifiers: Ctrl+ , Shift+, or Alt+ .</p> <p>Examples of some key assignments: <table> <tr> <td>A</td> <td> = push the A key with no other modifier keys.</td> </tr> <tr> <td>Ctrl+A</td> <td> = hold down Ctrl and push A</td> </tr> <tr> <td>Ctrl+Shift+A</td> <td> = hold down both Ctrl and Shift and push A.</td> </tr> <tr> <td>Ctrl+UpArrow</td> <td> = hold down Ctrl and push the Up arrow.</td> </tr> </table> </p> <p>The Command can be filled in with either the name of a command, or a script macro. Script macros are prefixed with the keyword "script:".</p> <p>Command names: <div class="indent"> AddPoint, Align, Arc3pt, ArcCenter, ArcContinue, ArcTangent, ArrayCircular, ArrayCurve, ArrayDir, ArrayGrid, Blend, BooleanDifference, BooleanIntersection, BooleanMerge, BooleanUnion, Box, Box3pts, BoxCenter, Chamfer, Circle, Circle3pt, CircleDiameter, CircleTangent, Cone, Copy, CopyClipboard, Curve, Cut, Cylinder, Delete, Ellipse, EllipseCorner, EllipseDiameter, Export, Extend, Extrude, Fillet, Helix, History, Image, Import, IncrementalSave, InterpCurve, Intersect, Join, Line, Loft, Mirror, Move, Network, New, Offset, Open, Paste, PlanarSrf, Plane, Plane3pts, PlaneCenter, Point, Polygon, PolygonEdge, PolygonStar, Polyline, Project, RailRevolve, Rect3pts, Rectangle, RectCenter, Revolve, Rotate, RotateAxis, Save, SaveAs, Scale, Scale1D, Scale2D, Separate, Shell, ShowPoints, ShrinkTrimmedSrf, SketchCurve, Sphere, Sweep, Text, Trim </div> </p> <p>So for example, a shortcut for E to activate extrude would look like this:<br> E <span style="margin-left:3.5em">Extrude</span> </p> <p>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:</p> <p>Hide: <div class="scriptcode">script:moi.geometryDatabase.hide();</div> </p> <p>Reset all views: <div class="scriptcode">script:moi.view.resetAll();</div> </p> <p>Select all: <div class="scriptcode">script:moi.geometryDatabase.selectAll();</div> </p> <p>Deselect all: <div class="scriptcode">script:moi.geometryDatabase.deselectAll();</div> </p> <p>Invert selection: <div class="scriptcode">script:moi.geometryDatabase.invertSelection();</div> </p><br><p>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:</p><br><p>Maximize the view the mouse is over, or switch back to split view (usually assigned to Space key): <div class="scriptcode">script:if ( moi.ui.mainWindow.viewpanel.mode != 'split' ) { moi.ui.mainWindow.viewpanel.mode = 'split' } else { var viewport = moi.ui.getViewportUnderMouse(); if ( viewport ) { viewport.viewPanel.mode = viewport.name } }</div> </p> <p>Go to split view: <div class="scriptcode">script:moi.ui.mainWindow.viewpanel.mode = 'Split';</div> </p> <p>Maximize the 3D view: <div class="scriptcode">script:moi.ui.mainWindow.viewpanel.mode = '3D';</div> </p> <p>Maximize the Front view: <div class="scriptcode">script:moi.ui.mainWindow.viewpanel.mode = 'Front';</div> </p> <p>Maximize the Right view: <div class="scriptcode">script:moi.ui.mainWindow.viewpanel.mode = 'Right';</div> </p> <p>Isolate the selection (hide everything else that is not selected): <div class="scriptcode">script:moi.geometryDatabase.invertSelection(); moi.geometryDatabase.hide(true);</div> </p> <p>Select all curve objects: <div class="scriptcode">script:moi.geometryDatabase.getObjects().getCurves().setProperty( 'selected', true );</div> </p> <p>Select all open curves (curves that do not form a closed loop): <div class="scriptcode">script:var curves = moi.geometryDatabase.getObjects().getCurves(); for ( var i = 0; i &lt; curves.length; ++i ) if ( !curves.item(i).isClosed ) curves.item(i).selected = true;</div> </p> <p>Hide all curve objects: <div class="scriptcode">script:moi.geometryDatabase.getObjects().getCurves().setProperty( 'hidden', true );</div> </p> <p>Hide all surface/solid objects: <div class="scriptcode">script:moi.geometryDatabase.getObjects().getBReps().setProperty( 'hidden', true );</div> </p> <p>Select all objects that were created by the last command: <div class="scriptcode">script:var a = moi.command.lastCommandRevisionStart; var b = moi.command.lastCommandRevisionEnd; var objects = moi.geometryDatabase.getObjects(); for ( var i = 0; i &lt; objects.length; ++i ) { var obj = objects.item(i); if ( obj.databaseRevision &gt; a &amp;&amp; obj.databaseRevision &lt;= b ) obj.selected = true; }</div> </p> <p>Toggle grid snap on or off: <div class="scriptcode">script:moi.drawingAids.gridSnap = !moi.drawingAids.gridSnap;</div> </p> <p>Toggle object snap on or off: <div class="scriptcode">script:moi.drawingAids.objectSnap = !moi.drawingAids.objectSnap;</div> </p> <p>Toggle straight snap on or off: <div class="scriptcode">script:moi.drawingAids.straightSnap = !moi.drawingAids.straightSnap;</div> </p> <p>Toggle the light direction: <div class="scriptcode">script:var dir = moi.view.lightDirection; if ( dir.x == 1 &amp;&amp; dir.y == 1 &amp;&amp; dir.z == -1 ) { dir.set(-0.5,1,0); } else { dir.set(1,1,-1); } moi.view.lightDirection = dir;</div> </p><br><p>Many other scripts are possible, see the web site for a larger list, and post any requests for custom scripts to the discussion forum.</p> </div> <div style="clear:left"> </div><br><p>© 2007 Triple Squid Software Design</p> </body> </html>