The birth of modern 3D app…
upFront.eZine reported that Triple Squid Software Design released a beta of its Moment of Inspiration 3D modeling software.
July-16-2006
First public beta
Origin snap: There is now an "origin" osnap point available at 0,0,0. This is a convenient way to grab this point for stuff like mirroring around a world axis. It can be turned off by the pop-up menu above the "Object Snap" button on the bottom bar, uncheck "Origin" there if you don't want it.
Grid axes display: Slightly darker lines are drawn on the grid x and y axes so you can visually locate the origin of the grid. This can be turned off under Grid Options, which is available on the pop-up menu above the "Grid Snap" button on the bottom bar. There are also options for changing the colors.
Enter key, right-click: Pushing the Enter key now has the same effect as pushing the "Done" button. Right-click can also be used for the same thing.
Extrude: New "Both Sides" extrude option.
Fixed 16-bit color bug – MoI previously wouldn't work properly on lower than 32-bit color.
Several small bug fixes, fix warnings on shutdown a few people ran into.
Improved logging for crash dumps. Some more information is captured for crash reports.
History: Surfaces remember how they were created, and update with edits. For example, revolve a curve and then edit the curve to update the revolved surface.
History updates are enabled by default for these commands: Extrude, Revolve, Rail Revolve, Sweep, Blend, Offset curve, Planar curve, and Loft.
If you want to prevent the updating, you can turn history off by selecting the generated object (for instance, the revolved surface), then use the new History button on the Edit tab. Updating can be disabled there. Updating can also be turned on there for several other tools that have it off by default, such as Transform/Copy, and some others.
Object cloning: Hold down Ctrl when dragging an object to drag away a copy of the object. Rotate and Scale transforms also support holding down Ctrl and clicking to drag a copy, and also a "Make copies" checkbox as well, which makes every click drop a copy.
Untrim: You can untrim a surface by selecting all the edges of one of its boundaries and using Delete. This erases the trim and gets you back to the underlying surface.
Updated crash handling: It shows a dialog when there is a crash with a "Send e-mail" button on it, instead of opening up an e-mail immediately.
Right-click: Make Right-click work the same as cancel if there is no "Done" button available. Previously it would only work for "Done".
Got an updated geometry library that has several bug fixes, especially for fillet-related crashes.
Fixed a bug where Alt key shortcuts didn't work properly.
Fixed a bug where MoI would seem to start fine but no buttons would work on a few people's machines. This would happen if the file registrations for ".js" files were messed up.
File format: Additional file format support – export to .obj and .stl polygon files, and export/import to IGES NURBS file format. The polygon export is still a work in progress, there will be some more tuning happening there.
Repeat last command: A right click in a viewport will repeat the last command. You can also assign a keyboard shortcut for it by editing the moi.ini file like this:
[Shortcut Keys] Space=script:moi.command.repeatLastCommand();
Incremental save: You can set a keyboard shortcut to do an incremental save, where a number in the filename will be bumped up on each save (like file01.3dm, file02.3dm). To do this, use a shortcut like this:
[Shortcut Keys] S=IncrementalSave
Fillet curve: Option to fillet corners of a single curve – you can now select a single curve made up of multiple segments with corners (for example a polyline), then do Fillet. You can then select which corner points to fillet, or push done without selecting any to fillet all corners.
Fillet edge: New edge fillet/chamfer option: straight corners. Checking this will cause the fillet pieces to intersect each other directly instead of having a corner piece connecting in between them.
Copy/Paste: Copy/Paste support between MoI and Rhino. You can now transfer geometry back and forth between Rhino and MoI just by Ctrl+C in one, and then Ctrl+V in the other. Note: MoI must remain running for the transfer from MoI to Rhino to work.
Extrude: "Set path" option for extrude. You can now push the new "Set path" button in extrude and pick a curve that will guide the extrusion. This is a little different than sweep, the shape is guided by the extrusion path but will not move perpendicular to it (use sweep for that). The resulting extrusion surface will have the same control point structure as the path curve, so you can use this to control how many control points will be created along the extrusion. For example, if you want an extrusion with 5 points along it, draw a 5 point curve and use it as the path.
Circle: Vertical option for circles. Check "Vertical" when inside Circle/Center or Diameter, to have the circle rotated so that it comes up vertically from the plane instead of being within the drawing plane.
Alt+Left drag: Added Alt+Left drag as another way to rotate the 3D view (in addition to right-drag or the view tools), for those that are used to this from other programs. It will also pan the top/front/right view, and you can use Alt+Shift+Left drag to pan the 3D view.
Fixed a bug where MoI would crash when reading certain 3DM files that had very tiny edges in them.
Fixed a bug where curves would not join together unless their endpoints were very close to one another. Now they are allowed to join if they are within the modeling tolerance of each other.
Fixed a bug where shortcut keys would get accidentally triggered when using the numeric keypad on the keyboard.
A bunch of other small bug fixes.
OBJ export: Updated .obj saving – it now support quads, and also N-gons on planar surfaces for cleaner polygon output. Also switched to output Y as up, this seems to be the most commonly expected orientation.
Display options: New display options while meshing – show shaded + edges, shaded only, or wireframe to help you examine the meshing before you export.
Fixed a bug where the less/more polygons slider didn't work with certain regional settings.
Several other minor bug fixes.
N-gon meshing technology: Revolutionary new N-gon meshing technology! Generate an .obj file that contains 100% N-gons with no excess triangles.
This industry-unique mesh output is amazingly clean and clear. Meshes have a very "hand optimized" feel to them, completely the opposite of typical NURBS mesh output.
The new mesher also allows for much more gradual changes in density. You can now increase or decrease density in much finer steps, so it is easier to add just a little bit more detail without the density suddenly increasing by a major jump like in the older version.
Reverse views: Enabled reverse views – Bottom / Back / Left. To get a reverse view, click on the view control again after it is active. So for example to get the bottom view, set the "Top" view in the toolbar, and then click on "Top" a second time and it will flip to "Bottom". Click on it another time to flip it back.
Meshing: Added some additional ways to control the meshing when saving to .obj or .stl files. More details and examples on this below.
The mesh dialog remembers its placement now.
When the mesh dialog is showing, there is now a readout in the upper-right corner of the main window (where command options normally are shown) that gives the total number of polygons and points for the current meshes.
Smoothing groups are written to .obj files. Polygons that share vertex normals are grouped together with a smoothing group. But it doesn't seem like very many programs read this data from the .obj file right now.
Optional scale factor for OBJ export. You can cause MoI to scale .obj output by setting this in the moi.ini file (just add it if it is not present already):
[OBJ Export] Scale=1
The mesh dialog can be expanded by the arrow in the lower left to show more options.
Welding – by default .obj meshes are now welded, this can be controlled by checking the option on or off. Welding refers to points along edges, for whether polygons share a single point in common (welded), or whether the polygons on each side have their own individual points which are stacked up in the same location (unwelded).
Some systems may have problems with welded points and might function better with unwelded, and sometimes you may want to have unwelded points for certain special effects, such as doing a sketch rendering – unwelded edges will get an accent line in a sketch rendering.
Divide larger than – You can enter a distance here which will force additional subdivisions of quads larger than this value. This can be used to add detail to large areas that have shallow curvature. Areas of shallow curvature will tend to get few polygons in them because the regular density control that is adjusted by the slider is based off of curvature, not lengths. "Split larger than" only affects curved surfaces, not planar surfaces (Edit – whoops, it looks like there is a bug where it does affect planar surfaces too, I will be fixing this for the next beta).
Avoid smaller than – You can enter a distance here which will restrict the number of subdivisions for quads that are smaller than this value. This can be used to reduce the number of polygons generated in small areas – normally the same density can 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, but if you're never going to zoom in to a small area you may wish to have fewer polys there.
Aspect ratio limit – you can enter a value here 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:
After you enter a value in any one of these 3 controls (Divide larger than, Avoid smaller than, and Aspect ratio limit), you need to push the "Update mesh" button to see the change reflected. It doesn't automatically do it because it can be fairly time consuming to create the mesh and you may want to tweak each of these values a little bit before doing the update.
If you want to turn off any of these constraints, you can either use backspace to clear the value, or enter a value of 0.
Zoom: Alternate way to zoom – Alt+Ctrl+Left drag in a viewport, or Ctrl+Right drag to zoom, for compatability with other software.
Hide: When un-hiding objects, they are now selected.
A variety of bug fixes for some shapes that made incorrect meshes.
Fixed the File open / save dialog so it can be resized.
Some other miscellaneous minor bug fixes.
Language support: New translation infrastructure and new language support. You can now switch the current language for the UI in the Options dialog, the current choices are English, French, German, and Spanish.
Translations are thanks to:
French: Pilou
German: Tony Kluever
Spanish: David de las Heras
Dutch: Edwin Klijn
Italian: MrBraun
Thanks!
Array: New Transform/Array tools for replicating objects. Includes Array/Grid for copying objects into a rectangular or cubic block, Array/Circular for copying objects around in a circular pattern with optional steps for spiral-staircase type patterns, and Array/Curve for copying objects along a path curve.
File format: Added support for .3ds file format export.
IGES export: Updated IGES export – exported surfaces from solids and joined objects should now all have a consistent normal direction.
Loft: Update to Loft so that it is not as sensitive to the spacing between sections.
Curve Through points: Similar update to Curve / Through points, it does not bulge out as wildly with uneven spacing.
Major boolean and trim bug fix, many booleans and trims that used to fail now work.
Fixed a bug in Shell and Offset, where some non-solid joined surfaces could offset surfaces in different normal directions.
Bug fix for Scale1D – this didn't work properly if you were scaling in some direction other than one of the world axis directions.
Plus a variety of smaller bug fixes.
Image backgrounds: You can now bring images into MoI's viewports for use as visual tracing or proportion guides.
This is available under View/Image. After starting the Image command, push the "Add" button to insert a new image. The list of images is shown, allowing you to remove or hide/show any particular image. Pausing over an image name will show you the full path.
The following options are also available, and affect all images:
Draw below objects – choosing this option draws images as a backdrop behind everything else.
Draw with objects – this option draws images mixed in as if they were regular objects.
Draw above objects – this option draws images on top of everything else as an overlay. This is intended to be used with transparency, it gives you a way to always see a faint image without objects blocking the way.
Show in all views – shows the image in all viewports.
Show in ortho only – only shows the image in the Top/Front/Right views, not in the 3D view.
Transparency – you can put in a percentage value here from 0% (fully opaque with no transparency) to 100% (completely transparent).
It currently isn't possible to edit the location or size of an image after you place it, this will be coming for the next beta release.
Align: New Transform/Align command. This new tool makes it easy to line up either control points or objects. This can be used for example if you have 2 points that you want to adjust so they are exactly horizontal or vertical. If you select entire objects instead of points then you also have an option for which sides of the objects you want to line up with each other.
Sweep, Loft: New "Cap ends" option for sweep and loft so you can create a solid in one step when sweeping with planar curves.
Array: Toggle switch for Circular array so you can switch between "fill angle" and a new "step angle" mode.
Variety of bug fixes, including some for meshing small-sized objects.
Polygon star command
Warning indicator: New red rectangle warning indicator when you have curve control points stacked up (stacked up points tends to cause various problems with intersections and some other stuff).
Undo for selection: If you make a selection mistake you can now hit undo to recover the previous selection.
Undo for picked point: Undo now works to remove the last picked point in the curve and polyline tools.
File handling: Made opening a file by double-clicking a .3dm file in Windows Explorer work, once you have set MoI.exe as the program to handle .3dm files.
Background image: Updated background images – you can now move or scale background images. To do this, click and drag on either the image or the corner scaling grip while inside of the View/Image command.
Select all: Tuned up select all – if you have a drilled-in selection (edges or faces), it will only select all that object's edges or faces instead of also including every other object.
Reset All: A right-click on a viewport's "Reset" button will now do a reset all.
Cap option: Added cap ends option to revolve and rail revolve.
Elliptical option: New elliptical option for arc center.
Arc option: New point order options for arc through 3 points.
Revolve: Updated revolve so that cases where you pick the revolve axis down the center of a curve will work, it now automatically trims the revolve profile by the axis if the curve crosses the axis.
Mesh settings: New setting in mesh dialog that allows "Divide larger than" to also apply to planar faces.
OBJ export: Added a new option in moi.ini to keep OBJ export with z-up coordinate system:
[OBJ Export] SwapAxes=n
Crash handling: Updated crash handling – the crash dialog now has a button you can use to save your model data in the event of a program crash.
Direct3D: Tuned Direct3D display engine to reduce peak video memory usage, this solves some problems on devices with lower amounts of video memory.
Bug fix for picking the final point pick in rotate, cylinder, and cone commands – previously the final point pick in these wouldn't get tan or perp straight snaps on it.
Fixed bug with planar end caps – was using too tight of a tolerance for these which could cause unnecessary failures.
Fixed a bug that would cause half-folded-over sweeps and lofts in certain circumstances.
Fixed a crash bug in .3ds export.
Fixed a bug in untrim when untrimming the last hole in an object which turned it into a solid.
Fixed a couple of different meshing bugs.
Fixed Join so it doesn't try to join edges that are already glued to other edges.
Fixed extrude with Set Path where the path has kinks and cap ends is enabled.
Plus quite a bunch of other bug fixes...
Units support: You can now set the unit system that you are using in the Options dialog. The units for the current file are set in the main options dialog, and under additional units options you can set the default units for startup and a couple other options.
Array-Dir: New one-directional "Dir" Array under Transform/Array/Dir makes it easier to replicate an object along a single column. You pick 2 points, the spacing between these points becomes the array spacing (use distance constraint in the bottom bar to enter an exact distance for the 2nd point same as drawing a line of a specific length), and the direction between the 2 points defines the direction of the array column.
Light direction: There is now the ability to toggle the light direction through scripting – see this post for how to set up a keyboard shortcut that switches the light to different directions – this can be helpful if you want to see details in what is currently a darker area.
Fillet: New shape option for the fillet command lets you choose different blend-style shapes for the fillet surface. These can let you get a more organic style blend instead of the regular mechanical-style exact circular fillet surface. This option works for curve fillets as well.
Blend: Updated Blend command to also work on curves to produce a curve blend. G3 is supported for curve blending.
Background image: Background images support rotation now, while inside of the View/Image command. There is a new rotation grip on the image. There are 2 rotation methods – you can click and drag on the rotation grip to do an immediate rotation around the image's plane normal (2D rotate style), or click and release on the rotation grip instead of dragging it to bring up a 3-wheel rotation gizmo. 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 rotation mode.
Command handling: Canceling is now supported for Fillet, Chamfer, Booleans, Offset and Shell commands. If the command is taking a long time to complete, you can hit cancel or escape to bail out – previously MoI would just lock up until the calculation was complete. You can also change parameters in mid-calculation which will cancel the current calculation and start a new one with the updated parameters. This should greatly improve the overall stability of MoI since about 95% of reported crashes have been in these commands that perform complex calculations.
The major change for this beta is a big overhaul for Fillet, Chamfer, Booleans, Offset, and Shell. Stability for these commands has been greatly increased – all previously reported crash bugs in these areas should now be fixed with this release.
Fixed a bug in sweep where it would fail when using more than one profile when the rails stuck out past the ends of the profiles instead of ending directly on the profiles.
Various other bug fixes.
Boolean curves: You can now use boolean operations on a curve to curve level – this is applied if you select only all curves that are on the same plane when using the boolean commands. Closed curves form regions which can include holes for nested closed curves. Closed regions boolean against closed regions in the same way that solids boolean against solids. Closed curves and open curves can interact in a variety of ways – for instance you can difference a circle with some lines that go through it to cut the circle into smaller closed loops. You can model hatch-type patterns by intersecting a grid layout of open curves against a closed loop. Union will work to find a common closed region or regions to a set of overlapping open curves or lines.
Merge operator: There is a new boolean "merge" operation available which is activated when you select objects, run boolean intersection, but push "Done" without selecting anything for the second intersection set. This can be used to find a common volume to a set of surfaces where some of the surfaces are sticking through each other. It will also generate all combinations of volumes between 2 intersecting solids.
Boolean operations – auto-extrude: Allows for difference and intersection booleans between a solid/surface and a planar curve or a line. So for example draw a circle and use boolean difference to cut a cylindrical hole through a solid by using the circle as the object to subtract. MoI handles the extrusion of the circle for you automatically. Or another example is draw a sphere, and then draw a line flat on a plane that appears to cut the sphere in 2. Now you can boolean difference the sphere with the line to split the sphere into 2 solid chunks – this is different than using trim since the results are 2 solids instead of a surface like Trim generates.
Scripting: There is a new method moi.ui.getActivePointPicker() that returns the pointpicker which is currently waiting for a point, or null if none is currently waiting. Then there is a new setDistanceConstraint() and setAngleConstraint() which is available on a point picker.
Boolean operations: Booleans between surfaces and solids now work well – previously a boolean between a solid and a surface could create a sort of messed up object.
Esc key: Updated Escape key handling – Escape will still cancel the currently running command as before, but now it can also be used to deselect all objects and turn off points if pushed repeatedly.
A couple other bug fixes.
Sweep: New "scaling rail" option for sweep and new "preserve tangent" mode for 2-rail sweep.
Scaling rail option allow you to pick an additional guide curve for sweeps by pushing the new "Pick scaling rail" button. The scaling rail gives the opportunity to further control the shaping of the profiles as they travel along the rail.
For a 2 rail sweep the scaling rail should run down the center line of the sweep and basically acts as a 3rd rail. Each profile is stretched vertically so that it fits against the scaling rail.
For a 1-rail sweep the scaling rail should run along one side of the central rail and allows you to add bumps or flared ends to a tube-like shape by using one additional guide curve instead of many different profiles which would have been previously required for such shapes.
Preserve tangent mode – if you have all open planar profiles that share a common end tangent and are on parallel planes, there is a new "preserve tangent" checkbox that can be enabled which will perform the sweep with a different method that guarantees that all in-between profiles will continue to be on the same set of parallel planes and will maintain the end tangent for all created in-between profiles. This is useful when attempting to create a 2 rail sweep that you want to mirror later on without leaving a crease down the mirror line. The normal 2 rail sweep does not work well for this situation due to the rotations of the profiles as endpoints slide along the rails.
Loft: There is now a new closed option for loft.
ShrinkTrimmedSrf: This command contracts the underlying untrimmed surface close to trimming boundaries – excess control points are thrown away. You will see no visible change in the surface itself, only the underlying untrimmed surface alters. There is no button for this command. It's necessary to select surface and push shortcut you define by editing the moi.ini file like this:
[Shortcut Keys] Alt+S=ShrinkTrimmedSrf
Object snap: Made a midpoint object snap available on arc curves.
Ellipse: Updated ellipse command, there are now width and height input boxes.
Offset: Update curve offset - planar curves will now always offset within their own plane. Also offset will now join together touching curve segments automatically, it is not necessary to join them manually. Together these changes allow for offseting the selected edges of a box to get a trimmed smaller or extended larger rectangle.
Fillet: When using blend shapes for fillets, there is now a "Bulge" slider that you can use to tweak the shape.
Blend: added a slider for adjusting the bulge factor of the blend. Besides, surface blending has been completely rewritten and generates much better results.
Blend, Loft: Instead of being sensitive to the end which is picked for matching up open curve with one another, an automatic calculation is always done and you can now flip the direction of any section by clicking on the section (either the blend edge or the loft curve).
Blend, Loft, Sweep: These commands can now be canceled if they are taking a long time to complete.
Join, Separate: Updated Join and Separate so that the results are selected when the command finishes.
Moi.ini: It is now possible to set the colors for the selection inside of moi.ini.
[View] LineUnselectedColor=0,0,0 LineSelectedColor=255,255,32 SurfaceUnselectedColor=255,255,255 SurfaceUnselectedTransitionColor=255,255,208 SurfaceSelectedTransitionColor=255,255,128 SurfaceSelectedColor=239,239,0 TextColor=51,51,51
Fixed bug in reading .3dm files where block definitions were read as ordinary objects, making extra objects appear.
Various bug fixes.
Network surface: New Construct/Network command, for building a surface from an intersecting network of curves. Also commonly called a "Gordon surface", or a "Coons surface" for the variety where there are 3 or 4 curves just on an exterior outline.
Project: New Construct / Curve / Project command for projecting a curve to a surface.
Intersect: New Construct / Curve / Intersect command for generating curves where 2 surfaces or solids intersect each other. This will also generate point objects at intersections between curves and other objects.
Boolean Merge: Updated boolean Merge command. Previously boolean Merge was a special mode of Intersection. This was pretty hard to find so I branched this out into its own Boolean/Merge command. Merge will extract a common volume from a set of intersecting surfaces, or also combine different solids together and extract all volumes as separate pieces. Merge was also tuned up to work with curve inputs as well now, so for example you can draw a sphere and a rectangle in front if it, select them both, and then do Boolean/Merge to "imprint" the rectangle on to the sphere and leave all the pieces.
Construction line – rotate: New construction line option to rotate a construction line by a specific amount. This shows up in the construction line menu that can be launched by clicking and holding down on the tag that appears after you create a construction line. This makes it possible to easily construct a new line that is at an angle relative to some other line in the scene rather than relative to the world grid which the normal angular options allow for.
Construction line – snap: New div snap option for construction lines allows for snapping to different increments between 2 points. For example, setting a div snap of 3 divisions allows for snaps at 1/3 and 2/3 the distance between 2 points (or 11/3, or -5/3, etc...). To activate this, draw a construction line and pop up the menu, there is a new "Division Snap" entry there.
Rotate View: Added scripting support for rotating the view. This allows for creating keyboard shortcuts to rotate the 3D view with the arrow keys. To do this, use these keyboard shortcuts:
[Shortcut Keys] UpArrow=script:moi.ui.mainWindow.viewpanel.getViewport('3D').rotate( 'up', 6.0 ); DownArrow=script:moi.ui.mainWindow.viewpanel.getViewport('3D').rotate( 'down', 6.0 ); LeftArrow=script:moi.ui.mainWindow.viewpanel.getViewport('3D').rotate( 'left', 6.0 ); RightArrow=script:moi.ui.mainWindow.viewpanel.getViewport('3D').rotate( 'right', 6.0 );
Clipboard: Update copy to clipboard - if the only things selected are control points, copy those points to the clipboard as separate point objects. This provides a way to extract control points from an object.
Revolve / Rail Revolve: Updated revolve and rail revolve so they can be canceled. Tuned up Rail revolve so it will trim the profile curve if it crosses the axis like regular revolve did, and also fixed a crash bug in rail revolve.
Separate: Tuned up Edit/Separate to preserve selection when you have a face sub-selection.
Fixed a bug where Transform commands would generate a lot of unnecessary object copies on every move of the mouse, until the command was finished. For larger objects this could consume a lot of excess memory and slow things down quite a bit.
Some other various minor bug fixes.
Text: New Text command under Draw solid / Text allows for creating text geometry (curves, surfaces, solid) from TrueType fonts.
Helix: New Helix command under Draw curve / More / Helix. This allows you to draw a coiled-spring type curve.
Hide: Updated Hide command to allow for showing only a subset of the hidden objects. The way this works is when you go to show objects, instead of just showing everything it will display all the hidden objects on the screen and allow you to select some. When you push "Done" (or right-click), only those selected objects will be shown and the rest will remain hidden. If you push "Done" or right-click without selecting anything, then everything will be shown just as in the old version. This should help out when working with more complex scenes.
Mesh export: Added new Angle field to advanced settings in the mesh export dialog. Normally the slider sets the angle, but now you can also enter an exact angle if you want which also allows for values outside of the slider range. For example, the roughest value for the slider is 35 degrees, but if you want a very rough low-poly mesh you can now enter an angle of something like 90 degrees.
Updated mesh export so that open objects that are simple surfaces of revolution will have their normals oriented outward from the revolve axis.
Fixed a bug with filleting curve corners where the fillet would fail on closed curves made up of only 2 segments.
Export: Added LWO file export. This should help for getting N-gon mesh geometry into Modo and LightWave.
Import: Adobe Illustrator file import. MoI will now grab out the curves from .ai, .eps, or .pdf files. Since Illustrator version 9, AI has used a pretty complex PDF-based file format. MoI will usually read stuff out from those files too, but it may miss some stuff in more complex ones. If that happens, try saving as a version 8 or lower AI file if possible, or as an EPS. Those tend to have a somewhat more simple structure and don't have as much stuff hidden away in different encoded chunks.
Option dialog: New Options dialog holds all the options in one place. It shouldn't be necessary to edit the moi.ini directly anymore.
Extend: Updated Edit/Extend - extend can now drive history updates. For example if you extrude a line, and then extend the line, the extrusion will update. Previously this didn't work.
Invert Selection: Update invert selection. If there is a drilled-in selection to face or edge sub-objects, invert will only flip the selection state of those sub-objects instead of everything in the scene, similar to how select all works.
Helix: Updated helix command - new "Flat spiral" option.
Hide: Update Hide - made it so a second click on the "Hide" button is the same thing as pushing "Done" or right-click. So 2 clicks on hide will show all objects.
History: Updated history to make it interruptable. Previously you had to wait for history to be recalculated on every single movement of your mouse. This was awkward if you had a complex history calculation taking place, it made editing the original curves very jerky. This has been changed now so that moving your mouse will edit the original curves fluidly and history will update when it has a chance to calculate if you hold the mouse still or finish the edit, instead of being forced to recalc on every single mouse move.
Loft: Tuned up Loft so that the "closed" option works better.
Meshing: Updated mesh save dialog - changed "apply to planes" setting to allow for 3 states. Apply to curved will only apply the maximum length to curved surfaces only, not to planar ones. Apply to planes will only apply it to planar surfaces and not curved ones, and apply to all does it to everything.
Updated display mesher to handle large surfaces better. When it encounters a large surface, it will automatically reduce the meshing angle and turn off add details to inflections to prevent large display meshes from consuming too much memory. Also the memory consumption spike during the meshing process has been reduced by 1/3.
Meshing tune-up to improve quad output when using Quads and Triangles mode. MoI will convert a few more types of n-gons into quads for this mode now.
Network surfaces: Completely rewrote Construct / Network to work better. Previously there could often be a kind of lump near the "seam" point of a closed network - this has been eliminated. Also previously networks using many curves with different structures in them could often fail to generate a result because the output was too excessively dense with control points. There is now an automatic simplification process that solves this problem - networks that previously failed should work now.
Revolve: Updated revolve to handle the case where there is a planar shape being revolved, but the picked axis is slightly off from the shape's plane. This gets automatically tuned up now.
Sweep, Loft: New "profiles" option in Loft and Sweep. Both Loft and Sweep need to combine multiple profile curves into one common structure for the surface. Previously this was done only by combining together all the curve structures which can generate a large number of points in the resulting surface, which could cause failures when it got to a certain density (particularly if many points were clustered very close to each other). There is a new mechanism in place to prevent this problem, and it is controllable with the "Profiles" option. The default is "Auto" which makes an automatic decision between "Exact" and "Refit" modes. Exact mode is the old method that combines everything together - it preserves the shape very well but leads to high point density. Refit is a new mechanism that approximates the original curves in a way that produces much fewer points. However in some situations the result may have slight wiggles in it. The final option is #Points mode - this lets you type in a specific number of points and the profiles are reconstructed just through that many sampled points. This produces very smooth results, but the shapes will be only a somewhat rough approximation of your originals and may deviate from them by a fair amount. Whew, I wish this area was not so complicated to explain, however to sum it up, just leave it as "auto" mode most of the time, if you get some wrinkles in the surface then try switching to "exact" or "#Points" mode.
Text: Tune up to TrueType text. Some letters could fail to project due to small deviations in curve tangents between different segments. These are now tuned up.
Fixed STL export bug - previously it produced an incorrect STL file structure when exporting multiple objects. Some programs would still read all the objects but some would stop after the first one. Also switched STL to save using a binary STL file type which is much more compact than the text variant that was previously used. You can change back to the text-file type under Options / Import/Export.
Various other minor bug fixes...
Export: Added Adobe Illustrator (.AI) file export.
3D navigation: Added support for 3Dconnexion devices such as the Space Navigator. Various options are available for this under View / Rotate/Pan/Zoom options / 3Dconnexion options.
Shell: New Centerline option for Shell.
Extrude: Extrude can now handle a multiple selection of many planar objects at once, and each of them will extrude along their own normal. You can force them all to go along a single direction by using Set Dir.
Join: Join can now be canceled.
Separate: Fixed to be faster when working with large objects.
Trim: Trim can now be used on edges, this will split an edge into multiple edges. This can be useful for some things that work between edges such as Blend.
View: Added dialog to control specific up/down, left/right, and tilt angles of the 3D view direction, this is available under Options / View / 3D view angles.
Axis icon: Added option to turn on an x,y,z axis icon in the lower-left corner of the viewport, this is under Options / View / Show axis icon.
Navigation tab: Added sensitivity controls for the Zoom/Pan/Rotate buttons at the bottom of viewports, under Options / View / Rotate/Pan/Zoom options.
History: Turned on history updates for mirror by default now.
Enter: You can now use the Enter key to repeat the last command, in addition to right-click.
Export: Updated LWO export to have a more common ordering of internal chunks, plus fix a bug that messed up Blender and Wings3D's LWO importers.
Updated LWO export to write vertex normals, using the format that should work with Modo 301.
Handle 3DM: Updated .3dm file reading so that information in the file that MoI does not directly use, such as dimensions or light objects, will be preserved instead of just discarded. Layer assignments will also be preserved for objects that you do not edit.
Install: The installer now sets up a file association so that you can launch MoI by double-clicking a .3dm file in Windows Explorer. If you already have an association set up, it will not overwrite it but instead add MoI to the "Open With" menu which is available by right-click on a file.
Script: A couple of new scriptable features...
Fixed some bugs in Adobe Illustrator file import.
Fixed several meshing bugs, both in mesh file export as well as the display meshing.
Plus quite a few smaller bug fixes...
3D navigation: Updated zooming for 3Dconnexion devices - zooming in the 3D view now allows for a more free movement forward instead of only approaching towards and stopping at the pivot point.
Fixed a crash bug in IGES importing, and AI exporting.
Fixed a problem that caused Script errors on some people's machines.
A few other minor bug fixes.
LWO export: Now proper vertex normals should be going into Modo 203 when doing a LWO export from MoI. This makes a pretty big difference for getting improved smooth shading.
Fixed a bug in AI export when using the 3D view, the resulting curves would be a little squished.
Added additional diagnostic information to try and help track down the cause of the script error problems that some people are seeing.
LWO export: Updated LWO export to turn on double-sided lighting material by default on open meshes.
Fix for the script error problem that happened on some machines.
Fixed bugs in Chamfer when clicking the "use 2 distances" checkbox.
Patch 1: Join patch
Patch 2: This fixes a few meshing bugs and a few other assorted bugs.
Minor bug fixes and extended expiration date
Patch: LWO units patch.
Patch 1: Tuned up the "2-distance" chamfer to work better.
Patch 2: There are a couple of new things.
Axis snap First is a new snap - Axis snap. This snaps on to the major axis lines of the grid in any viewport, just as if there was a permanent construction line there.
Michael has been noticing that he tends to create a lot of axis-aligned construction lines for building many kinds of simple shapes. So he figured it would be a good idea to just build those in so they are always available to snap on to without doing any extra action. At the moment there isn't any UI to turn them off, but you can set up this keyboard shortcut to do it:
script:moi.drawingAids.objectSnapAxis = !moi.drawingAids.objectSnapAxis;
IGES import The other major thing is an update to IGES import - now when you import an IGES file that has individual surfaces in it, those surfaces will be automatically joined into a solid. A lot of people are using MoI as a converter from IGES to OBJ, and to get the best quality output with no cracks between surfaces, the surfaces should be joined so there are common shared edges. This now makes that happen automatically instead of as an extra step. The auto joining can be turned off in moi.ini under this section:
[IGES] JoinOnImport=n
Batch processing Also you can now pass moi.exe the name of a script file (enclosed in quotes if there are any spaces in the file name or path) and it will run that script on startup. This allows MoI to be used for automatic batch processing type operations.
Bug fixes There are also a few assorted minor bug fixes.
Patch 3:
Snapping:
We can now hold down Alt when clicking to temporarily turn off snapping.
Object snap menu supports batch processing by using either right click or Alt+click on one of the menu items. The way that it works is that will either become the single checked item and everything else will get unchecked with that one click, or if it already was the only item it will turn on everything. So this gives a quick way to either turn everything on or off.
Bug fixes:
Fixed the new axis snap so it co-exists with grid snap instead of overriding grid snap.
Fixed some bugs and improved triangulation to help generate fewer skinny triangles, when exporting using "Quads & Triangles" or "Triangles only" settings.
Patch 4
Added something to allow for creating larger snapshot than the regular window size
Some fix for the PDF import problem.
Patch: Everything from the previous patches is included.
Help: Documentation is now included in the install. The introduction section is not finished yet, but the tutorial and reference sections are finished. Also now if you push F1 or click the help button while you are running a command, the reference section will open to the entry for that command.
Arc: Updated Arc continue so that you can start the arc from any point inside of a curve instead of always forcing it to start only at the endpoint of a curve.
AI: Updated AI export so it works better with smaller sized curves.
Display: Performance update for higher entity counts - streamlined some stuff to speed up the case where you have a large quantity of individual simple entities like 200,000 separate line segment curves. This draws about twice as fast now.
MeshExport: New style of triangulation which breaks n-gons into triangles using a radial type style in order to avoid long skinny triangles. It can be enabled/disabled by a setting in the moi.ini file.
[Mesh Export] CentroidTriangulation=y
Various bug fixes...
Patch 1: this patch fixes the triangulation bug that was creating improper UV coordinates in certain circumstances
New program icon.
Selection: You can now hold down shift+control when selecting to make the initial click ignored and force a window type selection instead. This can help when there is no empty space available to click in to start window selection, particularly when you want to window select surface points.
Image: Improved texture management for image backgrounds - very large images will be automatically limited in size to avoid consumign too much video memory.
Updated extrusion / projection: Updated extrusion / projection direction for lines that are on a world axis. This will now pay attention to the last viewport that was clicked. So for instance if you want to cut an object by a line that is running along the world x axis, if you select the line as a cutting object in the front viewport, it will cut perpendicular to the front view, and if you select it in the top viewport, it will cut in the world z direction.
AI import: Updated AI reader to handle some additional kinds of .eps files.
Fixed a couple of bugs with Network that was causing it to fail in some circumstances.
Fixed a problem where filleting internal corners of a curve where the fillets would not pass over any adjacent segments even if they were smooth.
Fixed a bug where UV coordinates were not being created properly when the new centroid-type triangulation was being used.
Patch 1:
Selection – Improved selection for canceling and undo - the selection state of objects are now preserved when you cancel a command or do an undo. So for example if you select some edges and then fillet them, if you cancel or undo the fillet those edges will be selected again. Previously the selection was lost in this case.
Deselection – Added ability to do a deselection window by holding down the Ctrl key when doing a window select.
3D navigation – Updated Space Navigator support so that the 3D view and the Top/Front/Right views handled zoom in a consistent manner. Previously the 3D view was reversed from the others.
If the new way seems backwards to you, you can reverse the direction of the zooming by going to Options / View / Rotate/Pan/Zoom options / 3Dconnexion options / Reverse zoom.
You can also restore the previous behavior where the 3D view and Ortho view behave differently by setting this switch in the moi.ini file:
[3Dconnexion] Reverse3DViewZoom=n
Bug fixes:
Fixed a bug that messed up specifying the name of the .ini file as a command line parameter to moi.exe
Fixed a bug where unicode text was not being saved to the moi.ini file correctly, causing a few things like file names on the recent files list to get messed up in some circumstances.
Fixed a bug where the seam point of a closed curve could get used as a cutting point in Trim when it shouldn't be.
Switched back to using only power-of-2 texture sizes, to see if this reduces some problems with the last beta on some video cards.
Updated AI export to fix some problems with small sized curves being refit too roughly.
January-18-2008: After 4 years of development, Michael Gibson announced that the final release of MoI version 1.0 was available!
upFront.eZine reported that Triple Squid Software Design quietly released the tablet-friendly MoI v1 [moment of inspiration] 3D NURBS modeler for US$195.
Jan-29-2008