From MoiWiki
Jump to navigationJump to search

Release notes for each V3 beta release are gathered here.


Forum announcement

New Flow command (Transform > Deform > Flow, no icon yet) for deforming objects from one "backbone" to another, some examples in these forum posts:   [1]   [2]

New selection indicator in the scene browser - shows a yellow dot on the right hand side to show if an item has selection or not, also now click on that spot to select or deselect things in the scene browser. Also you can use Ctrl+click on that same spot to set a selection filter which is also new. Some more descriptions here:   [3]   [4]

Major overhaul to many internals - the UI is now based off of WebKit/JavaScriptCore instead of mshtml.dll/JScript.dll , updated to new OpenNURBS v5 library for reading 3DM files - this enables reading of Rhino v5 files and should round trip stuff like extended layer properties to Rhino v4 better. Also updated to the newest release of the Solids++ geometry library which has some various bug fixes in it. There may be some regressions due to all this various library churn, let me know if something that worked in v2 doesn't seem to work in v3.


Forum announcement

New Twist command (Transform > Deform > Twist, no icon yet) for deforming objects by twisting them around an axis line. Some examples in this forum thread: [5]

New "Projective" option for Flow which can help for applying objects on to a localized area of a target object more like a decal rather than covering the entire surface like regular Flow. See here for a description: [6]

Updated Flow to pay attention to where you click on each surface to control how to match the results up - you click near the end of an edge on each surface and UVs will be flipped or swapped as needed to make those areas aligned, see this post for some more description: [7]

Added a "Flip surface normal" checkbox option to Flow so you can flip the result in the vertical surface normal direction if it is reversed from what you need.

Updated STL export for object names - if there is a single object being written to the STL file and it has a name, that name will be written as the object label in the file instead of just the generic "OBJECT".

New construction line snap plane feature - you can now make a "quick snap plane" by drawing 2 construction lines that share the same start point. Then when you snap on to that start point you can draw planar shapes like a circle from center point or rectangle from center and it will align perpendicular to those 2 crossing construction lines. It's also possible to use this to get a vertical straight snap line along that perpendicular as well. Some discussion in the forum here: [8] and some animated examples of its use here: [9]

Updated LWO export with an option for LightWave v10 style vertex normals - it seems that with LightWave v10 LW expects to see normals reversed in direction from LW 9.6 used. So now there are options for storing normals for Modo, LightWave 9.6 or LightWave 10, they each expect to see the normals in a slightly different coordinate system.

Updated scene browser text label display - clipped text so that a long text name won't overlap underneath the selection indicator area unless the selection indicator is going to be empty.

Fixed a bug in curve-to-curve Flow where it didn't work correctly unless both curves were in the world x/y plane.

Fixed a bug where the bounding box was not computed correctly for some kinds of curves imported from .ai files.

Fixed a bug where sliders did not work properly if the system locale used a comma as the decimal point separator.

Fixed a bug where an ignorable assert warning could pop up for some intersection object snap cases.

Fixed a regression bug in the geometry library that was causing some cases of "On surface" object snap to fail on some surfaces of revolution.

Fixed a regression bug in the geometry library that could cause extrusion to fail of planar surfaces that were actually made up of numerous control points instead of being simple planes.

Fixed a bug in accurate bounding box calculation on some kinds of surfaces that have an outwards flaring shape to them.

Fixed a problem where you couldn't use JPEG images in the UI, you could only use PNG. Now you can use any of PNG, JPEG, or GIF for images in any custom HTML UI.

Fixed a crash bug where running out of memory in one particular spot in mesh calculation would crash instead of giving the "Insufficient memory" warning message.

Fixed a bug where the previous window position was incorrectly still used with a different monitor arrangement when moving a laptop between docking stations, bug reported in the forum here: [10]

Fixed a bug with filtering on multi-style solids not working as expected reported in the forum here: [11]


Forum announcement

This release was just to extend the expiration date, no new major features in this build, just some minor bug fixes.


Forum announcement

Multiple cpu cores are now used in the draw engine - this should generally speed up the display of more complex models on multi-core machines. The exact amount varies depending on your machine and video card and the particular model features but speedups in the range of 2x to 3x seem to be the most common. There are some machines that are limited by some other bottleneck than CPU processing and on those there is no speedup at all. But it seems to deliver a good boost in most cases.

If you want to benchmark this new version with the old engine, you can set up a shortcut key with this script on it which will toggle a numeric readout of the display time in the upper-left corner of viewports: script: /* Toggle redraw time display */ moi.ui.showViewportDisplayTime = !moi.ui.showViewportDisplayTime;

The number of threads used can be limited by a new setting in moi.ini, the DisplayThreadLimit= setting inside the [View] section. If you set DisplayThreadLimit=1 there the multi-core use will be disabled.

PDF import has been totally overhauled, it should be a lot more robust and some kinds of PDFs that would previously get garbled should come through ok now. This should also improve .AI imports as well for AI files written in Illustrator v9 or higher versions since those newer style .AI files are actually PDF files. However, when saving these newer .AI files out from Illustrator you now need to set the "Create PDF Compatible File" option turned on in Illustrator, otherwise Illustrator ends up writing a file with a PDF outer structure but with all actual data in a private format.

New Extrude to point and Extrude tapered options for the Extrude command. These are 2 new buttons on the Extrude options panel:


Extrude to point connects the profile curve to a point that you pick, it's useful for making pyramid or cone-like objects:


Initially the point will track along the same vertical line through the shape's centroid that the regular extrude also tracks along. If you want to pick a point away from that line for the tip you can push the "Unlock direction" button which will then allow you to place the top point anywhere.

The "tapered" option allows you to produce an extrusion with a draft angle applied to make the side walls at a specific angled slope. You can also have interior outlines which will flare in the opposite direction:


The height of the tapered extrusion will generally be limited to be less than whatever amount would cause the different sloped profiles to collide into one another.

New functions for Isocurves - a new Isocurve curve construction command under Construct > Curve > Iso, and a new "Isocurve" option for the Trim command when trimming a single surface. An Isocurve is a curve on a surface that comes from the surface's own U or V directions. They can be convenient for certain operations since they follow the natural rectangular layout of a surface.

So for example say you have a fillet surface like this that you'd like to cut along one of its own arc cross-sections at the indicated spot:


The new Isocurve option for Trim can help make this operation more convenient - first use Edit > Separate to make sure the fillet is an individual surface not joined to anything else. Then when you run the Trim command there will be a new "Isocurve" button at the prompt for selecting cutting objects. If you push that button you can then pick a point on the surface and one of the natural U or V (or both) directions of the surface will be used as a cutting line. For a fillet surface one of those directions will be an exact arc curve like this:


You can place multiple isocurves to use as cutters, when you are done right-click or push "Done" and then the surface will be cut and you can pick which pieces to discard:



The Construct > Curve > Iso command will generate the Isocurve as a regular curve object so that you can use it for general construction like as a sweep path or whatever.

On several types of primitives isocurves will be key features of the object like for example on a sphere one isocurve direction will be a circle of latitude on the sphere and the other direction will be an arc of longitude on it.


Forum announcement

Updated Solids++ geometry library to latest version, includes various bug fixes but please also be on the lookout for any regressions (things that used to work previously but don't anymore after the update).

For Mac OSX this version should now work ok on OSX 10.8 Mountain Lion, please let me know if you still see any issues there.

Updated Network command - fixed a bug that was causing Network results to be extra lumpy in certain circumstances, the fix should give better quality surfaces. There is also a new "Mode" option that you can adjust to modify the fitting behavior.
    Mode = "Normal" fits the boundary curves by the regular fitting tolerance. This makes the resulting surface hug the shape of the boundary curves accurately enough so that it can be joined to other things built off of those same curves.
    Mode = "Lighter" makes the surface fit to a looser tolerance, making a lighter surface but that adheres less to the boundary curves.
    Mode = "Custom" - allows you to enter in a numeric tolerance value of your own choosing.
    Mode = "Uniform" - allows you to enter in a number of points - each section of the Network is fit with that number of control points per region rather than refining things adaptively to meet a distance tolerance like the other modes.
You can use one of the other modes than "Normal" if you want to output a less constrained and lighter surface at the expense of it not hugging as tightly to the boundary curves. So one thing to note if you use Network is that there is now an additional stage to the command where you can set the mode, and the command will not complete until you push "Done" or right click on that new additional step.

Updated curve fitting - the Rebuild command can now often generate a fit to the same accuracy as before but with fewer (often about half as many) control points used. The "Delete input objects" checkbox is now turned on by default for Rebuild.

Fixed a bug with Boolean Union when some open surfaces were used as part of the boolean, where in some circumstances it would not recognize and remove "interior cell walls" between 2 solid regions. This fixes the bug reported on the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=4388.160

Updated Alt so holding Alt will also suppress the "Closed" snap when drawing a curve or polyline same as it suppresses other snaps. Reported on the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=5338.1

Fixed file handling on Mac OSX so that any of the characters:     " * <> ? |     can be used ok in a file or directory name now - previously a file name with any of those characters would not work properly, which was a side effect of them being illegal filename characters in Windows.


Forum announcement

Mac version should now work fine with the latest OSX system updates 10.8.2 and 10.7.5 without needing any other settings adjusted.

New DXF file format support for import and export - focused on curve entities like lines, polylines, arcs, circles, splines. Should help with data transfer to and from various 2D CAD programs. When exporting you can choose to export either a 2D projected view which will flatten the curves by a view projection, or to export the 3D curve data. It's saved as an AutoCAD 2000 version DXF file.

Updated closed surface skinning to do periodic closed surfaces - fixes problems with closed fillets, blends, and sweeps where the generated surface was not smooth at its closing seam area. One recent one reported here: http://moi3d.com/forum/index.php?webtag=MOI&msg=5376.1 which should now be smooth in the seam area where there was a crease happening previously.

Fixed a regression in the last geometry library update that was causing failures with analytic intersections between planes and cylinders and preventing some Booleans from working. Also fixed another regression that was messing up Inset as reported here: http://moi3d.com/forum/index.php?webtag=MOI&msg=5508.1

New "Bounding box center" button for Transform > Move, Copy, Scale, and Scale1D commands. On the first prompt where you can pick the base point for these transform commands there is now a "Bounding box center" button you can push to use the center of the object's bounding box as the base point, to make it easier to move the object's center point to a specific location.

Update properties panel size readout - units calculator. Make the units label in the size: line of the properties panel to be clickable separately, when clicked it brings up a mini units calculator that allows displaying the size in different unit systems.
Requested on the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=5503.1
Demo here: http://moi3d.com/forum/index.php?webtag=MOI&msg=5503.14
It's also now possible to have a script change which units will be used inside of the top-level size: line inside the properties panel, here's a keyboard shortcut that switches the display in that one area from the current unit system to inches or back again:

script: /* Set property panel units display */ var sp = moi.ui.sidePane; sp.g_PropPanelUnits = (sp.g_PropPanelUnits == 'Inches' ? '' : 'Inches'); sp.UpdatePropertiesPanel();

Relabeled the vertex normals options for LWO format to make one setting labeled as "Modo 601 / LightWave v10" style normals, since as of Modo 601 it uses the same style as LightWave v10 for importing LWO vertex normals.

Updated Extrude to point - when extruding a line segment to a point, make a trimmed plane for the triangular face generated rather than a surface with a singularity (collapsed edge) at the tip.

Updated tapered extrude - added a "flip" checkbox, requested on the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=5403.1

Updated tessellator to fix triangulation issues in certain circumstances to fix the meshing bug reported on the forum here:
http://moi3d.com/forum/index.php?webtag=MOI&msg=5365.4 also fixed a crash bug in the tessellator reported here:

Updated curve antialiasing - new option for using thinner style antialiasing in the display engine. Can be set in moi.ini under:


Or toggled by a keyboard shortcut with: script: /* Toggle thin anti-aliasing */ moi.view.useThinAntiAliasing = !moi.view.useThinAntiAliasing;
Was requested on the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=5370.1

New project to cplane drawing aid - Implement new drawing aid mode which can be used to project all snap points onto the construction plane, by using the following scripts on a shortcut key:

 script: /* Toggle projecting snaps to CPlane in ortho views */ moi.drawingAids.projectToCPlaneOrtho = !moi.drawingAids.projectToCPlaneOrtho;
 script: /* Toggle projecting snaps to CPlane in ortho and 3D views */ moi.drawingAids.projectToCPlaneAll = !moi.drawingAids.projectToCPlaneAll;

Requested in forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=5371.1

Updated Network surfacing command - fixed bug where the new fitting options from the previous beta did not get applied to 3 or 4-sided networks since those were handled by a special case Coons patch method instead. Now 3 or 4 sided networks will generate a regular Network surface with the same option in effect, and there is a new "Exact" option which shows up for 3 or 4 sided networks which will make a Coons patch with no refitting of the input curves.

Fixed a bug where the main window did not store its size properly if the window was closed while it was minimized, when closing it by right-clicking on the Windows task bar.

Fixed a bug importing spheres and surfaces of revolution from Rhino when certain additional rotation properties were set on them, fixes a bug reported on the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=5389.1

Updated ArrayGem - allow point objects to also be selected as target objects for creating copies instead of only path curves.

Some scripting fixes - fix problem in function signature for moi.vectorMath.createFrame() that caused different behavior when arguments were left out between Windows and Mac, disabled script timeout that would abruptly cancel scripts that ran a tight loop for too long, fixed problem where pasting a script fragment into the xyz coordinate box would evaluate it twice, and make factory.getCreatedObjects() work with async factories by waiting for the async factory to finish its work before returning back to the script with the generated objects.

Updated installer - put full version name on the "MoI" program shortcut so that multiple versions will be more distinctly labeled when they show up in the MRU area of the Start menu. Fixes the problem reported here: http://moi3d.com/forum/index.php?webtag=MOI&msg=5405.9

Various other minor fixes.


Forum announcement

New stuff:

Multitouch view navigation - use multitouch gestures (pinch or drag fingers) to do zoom/pan/rotate view manipulations. This works on Mac OSX 10.7 or 10.8 using a trackpad or on Windows 8 using a touch screen. There's a demo video here: http://moi3d.com/forum/index.php?webtag=MOI&msg=5731.1

The supported gestures are:

   Pan by 2 fingers dragging left/right/up/down

   Zoom by pinching index finger and thumb together or apart.

   Rotate left/right/up/down in the 3D view by dragging 3 fingers.

   2 finger double tap for view reset (zoom to selected objects or zoom to all if done a second time).

   Twist thumb and index fingers for 2D ortho view spin or 3D view tilt if those are enabled under settings.

Zooming in and out with multitouch can be easier to control in the 3D view if you have a parallel view projection rather than perspective. You can set a parallel projection under Options > View > "3D view projection". To set the default projection on startup, save a 3DM file with a parallel projection set and then put that 3DM file as the startup template under Options > General > Template file.

On OSX, 3 finger dragging for rotation in the 3D view will not work if any 3 finger swiping is already being used for OSX system functions. Check under System Preferences > Trackpad > More Gestures. If "Swipe between full-screen apps" or "Mission Control" are set to use 3 finger swiping, change them to use 4 finger swiping instead, then MoI will be able to receive the 3 finger dragging events.

There are some options available for changing multitouch behavior under Options > Rotate/Pan/Zoom options > MultiTouch options (in lower-right area):

   Reverse rotation checkbox - when enabled the 3D view rotation directions will be reversed.

   Rotate ortho views checkbox - when enabled thumb/index spin will spin the 2D ortho (top/front/right) views.

   Swap 3D rotate and pan checkbox - when enabled 2 finger dragging in the 3D view will do rotation and 3 fingers will do panning instead.

   Allow 3D rotation tilt - when enabled thumb/index spin will tilt the 3D view left or right.

   Rotation speed, Pan speed, and Zoom speed - a scale factor can be entered in here to adjust the speed of these movements, for example putting in 0.5 will make that operation half speed, putting in 2 will double the speed.

There are also a few additional settings available in moi.ini under the [MultiTouch] section:


SingleFingerRotation can be set to =y on Windows to make just one finger dragging do 3D view rotation instead of 3 finger dragging. This will prevent things like window selection from happening with touch so you should probably only try this if you also have a mouse or pen to use for selection.

TiltSpeed can be set to a scale factor to speed up or slow down thumb/index finger spin action in 3D views.

TiltCenterMode can be set to 0, 1, or 2 and controls how the center point works for 3D view tilting.
   With TiltCenterMode = 0 the current centroid of the touch points is used for the tilt center. With this one the tilt center moves right along with your fingers.
   With TiltCenterMode = 1 it will use the centroid between the 2 fingers just at the initial start of the 2 finger gesture, it won't update as you move your finger around, only when you start a new gesture.
   With TiltCenterMode = 2 it will use the center of the viewport as the tilt center, it won’t make any difference where on the screen you are at as far as tilting goes.

Thanks to William Knop for implementing OSX touch event handling code, and Isaiah Coberly for testing the Windows version.

New Nsided hole filling command (under Construct palette, next to Blend), still kind of a work in progress, some previous discussion here: http://moi3d.com/forum/index.php?webtag=MOI&msg=5721.2

Other stuff:

Updated relative tolerance handling for small objects - make the small object relative tolerance to be 1e-4 of the bounding box diagonal rather than 1e-2 as it was previously. This should help small objects behave more like regular sized objects in things that use relative tolerance. Also made a mechanism that additionally tightens the tolerance by up to 1/100 more if there are small sized features within the object. Fixes a boolean bug reported on the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=5535.1

Updated curve offset - fixed having the command processor being re-created on every mouse move, which improves curve offset display performace especially on Mac.

Updated DXF export - Enable writing point objects to DXF format, and also fixed a crash bug reported through e-mail when using cubic splines export option with degenerate projected curves. Also don't send out degenerate projected curves at all which fixes importing into one particular version of AutoCAD that was sensitive to that.

Updated IGES, STEP, and SAT IO library to latest version.

Updated viewport scripting - added properties .pixelWidth and .pixelHeight on a viewport so that it can be possible to take the current viewport's size into account when doing something like a screenshot.

Added script interface for getting or setting the active style: moi.geometryDatabase.activeStyle

Added a new moi.ini flag to disable file caching under [UI] DisableFileCaching=n . When set to =y it will prevent MoI from caching scripts and UI files in memory so that they are loaded from disk on each use, this can help when you're working on doing some development with those files and you want to frequently test changes in them.

Updated Align command - Added a checkbox to the Align command for "Move as group", which is visible when multiple objects are selected for the align. When enabled it causes the objects to move as an entire set to their overall bounding box rather than each one moving individually. Requested on the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=5533.1 . Also fixed a bug in Align where object alignment did not use a custom cplane properly.

Updated Transform > Copy command - added a command specific Undo action for the Transform > Copy command so that hitting undo while in the command will remove the last placed copy. Requested on the forum here: http://moi3d.com/forum/messages.php?webtag=MOI&msg=5524.89

Fixed a bug in Solids++ in the curve coincidence checker when dealing with 2 closed curves. Helps to avoid some edge fragmentation that could happen previously and fixes an Inset bug reported in the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=5508.1

Update face domains as part of the default processing when a brep is added to the geometry database. Some Solids++ routines would not set the face domain and it was left the same as the surface domain, while on loading a 3DM file MOI would set the face domain to the bounding box around the UV trim curves. This difference in face domain could occasionally lead to slightly different behavior in intersection calculations, with things working better after doing a save and reload. This update should now give better consistency between how things behaved in a loaded file versus an in-session created one.

Fixed a selection bug where selecting just one curve and doing Join would deselect the curve but the edit frame would stay on the screen. Fixes a bug reported on the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=5524.97

Updated chamfer UI - fixed a word wrap bug reported on the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=5524.99

Fixed a bug for 3Dconnexion devices on OSX with multiple model windows open - previously the 3Dconnexion device would only work properly when there was only one window.

Added 3Dconnexion setting in moi.ini: [3Dconnexion] Swap3DViewPanZoom=n . This can be set to =y to swap pan and zoom motions for the 3D view only. Requested on the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=5574.1

Updated 3DConnexion / simultaneous mouse move behavior. Delay mouse move processing until at least a small amount of time has passed since the last 3DX event - helps reduce jerky viewport movement for some cases.

Updated control point editing with analytic surfaces - After control point editing, if the previous surface was analytic or the new surface is planar, try to create an analytic surface for the new result. Fixes a bug with inset after control point editing reported on the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=5583.1

Updated extrude to point - If the base curve is an arc or circle shape, try to make an analytic cone out of the result. Fixes a bug reported in the forum here with trying to offset the result: http://moi3d.com/forum/index.php?webtag=MOI&msg=5524.110

Updated properties panel arc resizing - don't look at closed curves when scanning for touching endpoints for an alternate origin for the scale. Fixes a bug report on the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=5524.113

Fixed a scene browser bug where editing an object's name where only the case of the letters changed between upper and lower case did not trigger an update in the scene browser's object section. Fixes a bug reported on the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=5635.1

Updated OBJ export settings - added a new setting in moi.ini for OBJ export to help with mesh transfer into Rhino. [OBJ Export] WriteStylesAsGroups=n When this is enabled by changing to WriteStylesAsGroups=y then the style name will be written as the group identifier when generating the mesh. This allows for using the setting in Rhino's OBJ importer for importing groups as layers to get the mesh back to the same layer as the original object. Requested in the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=5637.1

Updated filtering - when a curve is filtered out from selection, don't draw it at all in the hit test map so it won't occlude edges which may be the filter targets. Fixes an edge selection bug reported in the forum where with edge filtering turned on the edges were still unselectable if curves were on top of them: http://moi3d.com/forum/index.php?webtag=MOI&msg=5732.1

Update selection - fixed regression bug introduced with the Flow command, where post picking for extrude did not allow drill-in to select edges on a box because it took the clicked-on face immediately. Reported on the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=5732.1

Update hidden edges display - add a new checkbox setting in options dialog for controlling whether to show hidden edges on selected objects only, under Options > View > "Hidden edges on selected only". When enabled hidden lines are only displayed for selected breps only instead of on everything. This can help to disambiguate snapping onto or selecting hidden lines when there are many objects involved. This can also be toggled by script using: script: /* Toggle using hidden edge display for selected objects only */ moi.view.hiddenLinesSelectedOnly = !moi.view.hiddenLinesSelectedOnly;

Implement view spinning - Add a script method for view spinning that can be set on a keyboard shortcut: script: /* click and drag mouse to spin view */ moi.view.spinInteractive(); This allows for tilting/spinning the view using a mouse or tablet if no multi-touch is available.

Updated OSX crash reporting. Put moi_report.zip files into ~/Library/Logs/DiagnosticReports/ and also try to generate an OSX system crash report .crash file as well which goes in that same folder.


Forum announcement

Multi-edge blends - Update Blend so that multiple edge curves can be selected on each side of the blend rather than only one edge on each side as before.

Loft start/end in point - Enable point objects (created under Draw curve > More > Point) to be selected for the start and/or end of a loft.

Add points to surfaces - make Edit > Add pt work with surfaces, the surface should be preselected before running add point.

Implement PDF export - PDF now supported as a writable file type for making 2D PDF files. Style line color and styles becoming PDF "layers" (optional content groups) are also supported.

Update AI export with layers and colors - For AI export write MoI styles out as layers in the AI file and also set the line color to the style color as well.

Adobe Illustrator clipboard support - Enable copy/paste from MoI to Adobe Illustrator (and possibly other 2D illustration programs). MoI can now paste in either AI or PDF formats that are on the clipboard, and you can set up keyboard shortcuts to copy curve data from MoI into either AI or PDF format for pasting into Illustrator. Use the following scripts for setting up the clipboard transfer from MoI to Illustrator:
    script: /* Copy AI format to clipboard */ moi.geometryDatabase.copyToClipboardAI();
    script: /* Copy PDF format to clipboard */ moi.geometryDatabase.copyToClipboardPDF();

New Angle parameter for Cone command - Add in an angle input for the cone command, you can enter in either height or angle now, if you enter in height the angle will update to match, and if you enter in the angle value, the height will be calculated from that. The angle is the full angle of the cone from one side to the opposite side of the cone. Requested on the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=5921.1

Implement "Calculation failed" UI similar to the "Calculating..." message, but that is displayed if there was no output generated. Requested on the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=5803.1 .

Update project command - Add "Delete input objects" checkbox and "Use CPlane" button to Project command, requested on the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=5815.1 .

Update drawing on reversed planes - Make the snap plane for a reversed view use a view-relative cplane so drawing a background image in a reversed view will not make a reversed image. Also makes width and height values in reverse views for commands like rectangle to be view local.

Updated align command - fix bounding box caching issue which was slowing down the Align command after the previous update to it to use cplane coordinates.

Updated DXF export for better compatibility - Avoid writing an extrusion direction of straight down in the negative world z axis direction since some open source DXF readers have bugs when generating the coordinate systems of that particular direction. Fixes a problem reported through e-mail with circles not coming through correctly to several open source CAD programs.

Updated DXF importer to not error out when reading in technically illegal DXF files from software that writes polyface mesh data with more than 32767 faces or vertices in them. Fixes a problem reported through e-mail by Son Kim where a file saved from Modo would not import in MoI because of an illegal vertex count which previously stopped the entire file read.

Updated PDF import - Fix bug where nested transformations were not working correctly with PDF import. Fixes a bug reported through e-mail.

Fixed a bug with the closed curve seam matcher to use arc length distances in its twist analysis step, fixes an incorrect direction result in sweep reported on the forum by Mike Maynard where it was making a twisted sausage like result because of incorrect flipping determination.

Fixed a Solids++ bug with surface deformation used the Flow command where it was possible for some surfaces to not get refined as much as they were supposed to, fixes a bug with badly formed geometry getting created during Flow reported through e-mail by Mike Maynard.

Fixed a Solids++ bug with analytic cylinder/cone intersection that was a regression from MoI v2.

Fixed a bug with Trim where brep fragments would in some cases revert to default styles in the "Pick which piece to discard" stage of the command.

Updated startup template file loading - if the template file can't be found at its full path location, also look for it alongside moi.exe and in the appdata folder as well. This can help when running MoI from a portable USB key.

Fixed a crash bug in trim.

Fixed a problem with IGES/SAT/STEP format exports where a non-manifold structure on one trim boundary could trigger an error and bail out the entire file save.

Fixed object name bug - Fix bug where after blanking out the object name, the name could get reconstituted from Rhino round trip data. Fixes a bug reported in the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=5847.4 .

Fixed a Solids++ bug that caused a crash in STEP import on surfaces that had their trimming boundaries entirely made of really tiny sized curves.

Update 3DM file properties - avoid writing the current user name to the header of the saved 3DM file.

Update OSX 10.6 incompatibility with multi-touch processing - Don't try to initialize touch functionality on OSX 10.6, it does not work reliably there. Fixes bug in previous v3 beta where it would sporadically fail on OSX 10.6.

Fixed a filleting bug sent by Mike Maynard through e-mail where the update from the last beta resulted in a strange bulge in a particular fillet.

Updated the slider control so it will fire an onmousemovevaluechange="...." script event for every mouse move, so you'll be able to put in a script handler for that event instead of just onvaluechange="" if you want to get more interactive events.

Various other small fixes...


Forum announcement

New stuff:

Hidden line removal!!!

MoI can now generate a drawing with hidden lines removed when exporting to PDF, AI, or DXF formats.

Some examples, these are all screenshots of exported PDFs in Adobe Reader:





When you export to PDF or AI format, a new dialog pops up to control the different options:


The "Scale" option can be either "Fit to page" or "Preserve units". When Preserve units is picked, additional controls will be displayed that let you set the scale factor.

"Generate outlines" creates curves in areas where objects are adjacent to the viewport background. This can be used to give a bold accented border surrounding the entire object. It works in combination with the shaded background image, since the background image masks out the inner half of the border.

"Generate silhouettes" creates accented curves at all silhouette areas.

"Generate hidden lines" creates curves that are hidden in a dashed line style.

The "Line style options" button opens up a second dialog where the point width, color, and layer attributes of the different kinds of curves can be set. Colors and layers can either by set to "From style" for the color or layer to come from the style assignment, or can be set to a specific value by choosing "Custom".

The "Canvas megapixel resolution" field controls the density of the shaded image and depth buffer used to determine what is visible and hidden. Increasing this value can help generate more detailed results on small areas of the model, it can go up to a maximum of 75 megapixels, but it consumes quite a bit of memory at that level. Try something around 30 or 40 here to get more detail if needed.

If you're doing a wireframe export that contains only curves and not any solids or surfaces, only the projection view and scale options will be shown.

The hidden line DXF export is more oriented towards shop drawing type output, it doesn't have the outline, silhouette, or shaded background image options.

There's also a new command named Make2D which you can run to generate the hidden line result as curves directly inside of MoI. To use it set up a shortcut key and for the command name put in: Make2D.

Other stuff:

Holding down the Shift key while drawing now works as an enhanced straight snap. When you hold down Shift straight snap will have priority over object snap, and the current straight snap line will stay locked on for as long as you hold shift. Also when you hold down Shift straight snap will activate to the closest straight snap line regardless of how far away it is to the mouse.

Layers are exported to DXF format - styles in MoI will map to layers in the DXF file.

AI format for clipboard transfer should work on OSX now. See previous beta release notes for how to set that up: http://moi3d.com/forum/index.php?webtag=MOI&msg=6099.1 .

Fixed some bugs in surface/surface intersection in the geometry library, some cases that didn't work before with things like 2 pipes crossing each other should work better now.

Bug fixes to Blend between 2 edges that touch each other at sharp "pole points".

Overhauled the sorting mechanism for loft when doing loft to point, you should now be able to more easily group select the curves and points to loft instead of having to pick them in the specific order as you sometimes had to to previously.

Update viewport render scripting - Added a .render() method to viewports, which works like renderToClipboard except it generates an image object that can then be written to disk instead of being placed in the clipboard. Requested on the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=6111.2

Update moi.view.screenshot() method (this is the one that takes a snapshot of the visible screen only, not the one that renders a viewport image to a higher res image) to work properly on OSX.

Update rectangle snapping - Add an additional "square" snap point for rectangle drawing when just one of width or height has been typed in. Requested on the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=6117.1

PDF export bug fix - fix a crash when saving a PDF file when the file was not able to be opened for writing because it was open in Adobe Reader which locks it. Instead of a crash now there will be a warning dialog with a retry button on it.

New Greek language UI translation available thanks to Andrew Athanasiadis. It's included in this beta, go to Options > General > Language to activate it.

Fix bug where when relocating a construction line, pushing tab did not put focus on the XYZ control like it normally does during a drawing command. Bug reported on the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=6226.4

Update PDF import - process XObject content streams in addition to the main page content stream. This enables reading some content that was previously missed.

Update curve segment scripting - Add methods for .getStartPt(), getEndPt(), and getLength() on curve segments, so that some properties for individual segments can be retrieved by scripts.

Update filesystem scripting - Add moi.filesystem.fileExists( path ) and moi.filesystem.shellExecute( path ) script functions.

Update loft - fix script exception that happened when only 2 points and no curves were selected when doing the Loft.

Update Rebuild command, endpoints mode - Add a new "Endpoints" mode for the Rebuild command, this interpolates a new curve through the endpoints of the existing curve's segments. Can be useful for reconstructing a smooth curve through a dense polyline curve approximation that you can sometimes find in PDF or DXF imports.

Update RailRevolve for non-planar paths. RailRevolve can now build a surface that follows a 3D path curve. This height stretching mode is enabled for non planar paths when the profile curve is not a closed curve and has one curve endpoint on the revolve axis. Requested on the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=6189.1

Implement RemoveDuplicates command. Currently only works on curves, removes other curves that are a duplicate within tolerance (endpoints must be in tolerance too). Set up a keyboard shortcut with RemoveDuplicates as the command name to call it.

Fixed a bug on OSX where window resizing behaved strangely on Retina displays.


Forum announcement

New stuff:

Variable radius fillets - you can now define different radius values at particular points, using the "New point set" button as shown here:

New "Add sync points" option for Blend which lets you add in points to tell Blend which parts of the edges to connect together, overriding the default which just connects them by distance traveled along the curve.

Lots of tuneups for hidden line generation:

Update hidden line generation accuracy. Improve accuracy of hidden line results by performing curve/curve intersections when visibility changes, to align the transition point accurately to other geometry. Since it can use only local operations slowdown is only about 4%. Accuracy of the generated result is greatly improved.

Update hidden line generation for DXF output and Make2D - don't refit rationals (like circles and ellipses) as cubics for DXF or Make2D output since unlike AI/PDF format these can handle full rational bspline output. Previously all hidden line generation was refitting cubic curves to the hidden line output.

Calculate depth bias tolerance by relative tolerance factor using overall bounding box size. Helps with problems with poor visibility results on larger or smaller sized scenes.

Fix bug with incorrect bounds gathering for standalone curves.

Fix bug where clip planes were not necessarily being set in the renderview to encompass the geometry being rendered. This could lead to unwanted near/far clipping happening when scripting PDF/AI export. Fixes a bug reported through e-mail by Jeff Dierstein

Improve out of memory handling in hidden line generation, show "Insufficient memory" warning instead of just crashing like it previously did.

If an edge curve is hidden, don't use it in the hidden line calculation. And if a face is hidden don't generate shaded output or silhouettes for it.

Backfacing silhouette detection. Improvements in backfacing detection at concave silhouette areas, Helps to reduce "hook" type overshooting visible curve areas at bases of cylidner protrusions and similar features.

Some fillet fixes separate from variable radius fillets:

Updated fillets to fix problems with fillets occasionally splitting into 2 long strips down their centerlines.

Update fillet command - Allow 0 radius to be entered as a way to reset the fillet and restore the original object for preview.

Fixed a bug with periodic fillets reported on the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=6297.35

Other fixes:

Fixed a bug with viewport flickering when loading a 3DM file by double-clicking it in Explorer when the 3DM file had a single maximized view in it, under certain timing conditions. Fixes a bug reported a while ago by Steph3D and on the forum more recently by milkywaif and Colin.

Update extrude sorting tolerance Adjust coplanarity tolerance for curve cluster sorting, fixes a bug where curves that were only a teeny tiny bit different in elevation would not be extruded together, reported on the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=6567.1

Update deformations to allow attributes like style and names on faces and edges to persist. Fixes a bug reported on the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=6538.3

Update sweep mitering for near tangent cases. Fixes a regression in v3 in sweep mitering reported on the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=6529.1

Update osx version - Update wineskin mechanism to avoid accumulating a bunch of directories under ~/Library/Saved Application State/12345.wineskin.prefs.savedState When these grew too numerous startup time could slow down a lot, or even prevent MoI from being launched at all. This version will also automatically clear out any old wineskin.prefs.savedState files accumulated from previous versions and should not make new ones anymore.

Update projected intersection object snap - Cancel projected intersection solver calculation if it takes more than 500ms. Fixes problems reported with object snap freezing while picking points looking down on a helix.

Add Portuguese UI strings from Duarte Ramos

Update curve/curve flow to avoid problems with unwanted rotations on the target curve - should fix problems with curve to curve flow with the curves positioned in the Front view instead of the Top view for example.

Update history - fix file size bloating problem related to history reported in the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=6426.1 http://moi3d.com/forum/index.php?webtag=MOI&msg=6412.1

Update Silhouette command - fix logic for determining silhouette edges, fixes a bug reported through e-mail by James Elliott.

Update straight sections loft - Fix bug with straight sections loft, reported on the forum here (regression from v2): http://moi3d.com/forum/index.php?webtag=MOI&msg=6431.1

Fix excessive memory consumption for PlanarSrf reported on the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=6412.1

Update moi.filesystem.openFileStream() - Update readLine method on a file stream to work with any length line, previously it was limited to only read lines up to 1023 characters in length.

Update perspective field of view UI - Fix bug where the perspective FOV property for scripting was using an incorrect conversion process, this made a wrong value used under Options > View > 3D View angles > Field of view. The wrong value was generally close enough to the right value to kind of make it look like it was working. The fixed version should allow for better camera matching for matching MoI generated 2D output to other renderers.

Updated AI clipboard support for older version Illustrator compatibility on OSX. For doing a copy to clipboard using AI format on Mac, use the following for going into an older version of Illustrator like CS3 or earlier: script: moi.geometryDatabase.copyToClipboardAI( 'UseAICB=true' );

Fixed a bug with AI format export, the bug was a garbled %%HiResBoundingBox entry in the AI header section, it was messing up pasting into Photoshop. Reported on the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=6201.269

Fixed a bug with rail revolve on non-planar paths reported on the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=6189.17

Scriptable options for PDF/AI export. Enable script code to pass in parameters for PDF/AI export, see forum post for details.


Forum announcement

New stuff:

Extrude auto booleans for faces. Make a face sub-object selection automatically boolean the extruded piece with the base object. Allows for "push/pull" type action with the Extrude command. When extruding a face of a solid, going outwards from the solid makes a boolean union of the result, going inwards does a boolean difference. With an open surface, the extrusion is merged with the surface and the original face is removed to make a pocket in the surface. The auto boolean behavior can be disabled by setting the "Keep separate" checkbox in the extrude command options.

An example, here making face selections and doing Extrude, the extrusion automatically booleans with the base object:

Booleans - subset operations. Boolean union or difference can now take a selection of face sub-objects, which limits the boolean to only generate intersections using those surfaces. Allows for portions of objects to be temporarily ignored during a boolean as described here:

Variable radius fillet - deleting fillet sets. Add the ability to delete a fillet set by a small close button on the fillet set menu. Requested on the forum by Danny here: http://moi3d.com/forum/index.php?webtag=MOI&msg=6584.2

Boolean intersection update. Previously Boolean intersection would also do a Boolean union of each set before intersecting the 2 sets. This could be problematic if you wanted to cut a large number of separate objects with the intersection but have them remain separate, such as in the roof tile cutting discussion here: http://moi3d.com/forum/index.php?webtag=MOI&msg=6766.3
This has now been changed so that by default boolean intersection does not do a union of all the objects in each set, but you can enable it again if you want by checking a "Union sets" checkbox before finishing the command.

Blend - Planar sections option. Option for making the cross-sections of the blend be aligned with a "pencil of planes" direction, can help prevent cross-sections in tight corner areas from bulging into each other. For some examples see here: http://moi3d.com/forum/index.php?webtag=MOI&msg=6790.35

NSided - added icon for Construct > NSided command.

Edit frame resizing - Make Alt key work for disabling straight snap one-directional scaling for edit frame. Requested in the forum here:

Loft to point - fixed a bug where loft to point was not working properly with history. Fixes a bug reported in the forum here:

GeneratedObjectsInheritStyle=n - the last beta broke the option to have styles come from the active style rather than inherited from their parent object (when GeneratedObjectsInheritStyle=n is set in moi.ini), this should work ok again now. Fixes a bug reported on the forum here:

STEP file import - tighten up maximum tolerance limit, the previous looser allowed tolerance could result in bad trim curves in some situations especially when the STEP file had a loose tolerance set in its own header info. Fixes a STEP import bug reported through e-mail by DannyT.

Variable radius fillet - fixed a bug where variable radius fillet going to 0 radius did not work properly with Blend style cross sections. Fixes a bug reported on the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=6579.4

Loft - fixed a bug where the tolerance being used for lofting in Refit mode was not tight enough. Fixes 2 loft + join bugs reported in the forum here:

Sweep history - fix a bug where history records were not being generated properly for Sweep in some circumstances. Fixes a bug reported through PM by Filippo.

Transform history - fix a bug where transformations in some circumstances would fail when a combination of history and higher face count objects were being used. Fixes a bug reported through PM by Filippo.

Updates for scripting:

Add script method for turning on/off viewport title text display:
    moi.view.showViewTitles = false;

Add additional file handling utility functions for script access:
    moi.filesystem.dirExists( path );
    moi.filesystem.deleteFile( path );
    moi.filesystem.copyFile( existingPath, newPath ); // copyFile has optional 3rd true/false parameter for failing if target file already exists, defaults to false.
    moi.filesystem.shellExecute( path, params ); // New optional 2nd parameter for passing parameter values if the path is to an executable.

    moi.filesystem.getProcessDir(); // Gets the directory where MoI.exe is running from.

V3 final release Sep-18-2014

The main change in the v3 final version from the last v3 beta is updates to the documentation, new features for v3 are now covered in the documentation with sections added for stuff like Transform > Deform > Flow for example.

There are a few minor bug fixes to the software too though here's the list:

Fixed variable radius fillet bug reported here: http://moi3d.com/forum/index.php?webtag=MOI&msg=6805.1

Fixed boolean union subset bug reported here: http://moi3d.com/forum/index.php?webtag=MOI&msg=6793.5

Update object snap for self-intersection calculcations to fix hang with snapping on to highly self intersecting curves. Fixes a hang bug reported through e-mail.

Update face extrude with auto booleans - update styles so multi-style solids work more as expected. Fixes a bug on the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=6807.1

Fixed bug that reversed view names did not show in view dropdowns like for AI or PDF export, fixes a bug reported in the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=6790.10

Bug fix for planar sections mode of blend when multiple edge segments are being used.

Bug fix for Rebuilding circles with "Endpoints" mode, reported on the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=6867.1