From MoiWiki
Revision as of 15:44, 26 January 2014 by Michael Gibson (Talk | contribs)

Jump to: navigation, 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.