Difference between revisions of "V4Beta"

From MoiWiki
Jump to navigationJump to search
(9 intermediate revisions by the same user not shown)
Line 81: Line 81:
  
 
factory.setValue() - switched to v3 behavior so sending the wrong object type doesn't trigger an exception. Fixes the SpurGearProfile script.
 
factory.setValue() - switched to v3 behavior so sending the wrong object type doesn't trigger an exception. Fixes the SpurGearProfile script.
 +
 +
 +
== Dec-11-2017 ==
 +
 +
[http://moi3d.com/forum/index.php?webtag=MOI&msg=8731.1 Forum announcement]
 +
 +
Bug fixes and changes:
 +
 +
Mac full screen mode - getting sent back to the desktop the first time you moved the mouse over each viewport after going to full screen mode should be finally fixed! Also Ctrl+Cmd+F shortcut key for full screen toggle should now work.
 +
 +
Mac trackpad and Magic Mouse - Finished implementing multitouch view navigation for the trackpad and Magic Mouse on Mac. Magic Mouse should be back to zooming instead of panning. The Zoom speed can be adjusted in moi.ini [MultiTouch] MagicMouseZoomSpeed=1.0 . Change this to something like 2.0 to make the default behavior faster or 0.5 to go slower. You can also hold down the Ctrl key to go slower as well.
 +
 +
Mac ignored mouse bug - Fix for bug where mousemove events would stop working in certain conditions when restoring the main window from hidden or showing a modal dialog. Fixes bug reported by Finema here: http://moi3d.com/forum/index.php?webtag=MOI&msg=8675.189
 +
 +
Updated "On" object snap mechanics - Changed the way On object snap for curves works to get better accuracy with curves far from the origin.
 +
 +
Incorrect default values for some commands - Fixed a bug where the default values for the Text and Rebuild commands were incorrect on locales that use commas for the decimal separator. Reported by Vladimir on the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=8704.32
 +
 +
Trim - fixed a bug in the Edit > Trim command where if an object was set to be both an object to be trimmed as well as a cutting object it could get hidden unexpectedly.
 +
 +
Command button highlighting - Fix for command buttons remaining highlighted after command ends. Reported by Vladimir on the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=8704.32
 +
 +
Read-only file handling - Fix bug where using File > Save wasn't prompting for a new file name when the current opened file was set to read-only. Reported in the forum by mhasse here: http://moi3d.com/forum/index.php?webtag=MOI&msg=8714.1
 +
 +
Crash fix for newer CPU/Older OS combination - Fix for 0xc000001d illegal instruction exception when running on Win7 SP0 with a newer AVX-capable CPU.
 +
 +
Hidden-line generation - Increase Canvas megapixel size limit from 175 to 1000.
 +
 +
Degenerate box error - fixed bug where a script error would be displayed if you made a degenerate rectangle in any of the Draw solid > Box commands.
 +
 +
Update text input fields - Text input fields were only applying typed in values when the input panel was open, or when the Enter or Tab keys were pressed, not if just clicking outside the field as they now will. Should fix a PDF export dialog bug reported by reported by Moujiik here: http://moi3d.com/forum/index.php?webtag=MOI&msg=8704.15
 +
 +
 +
Scripting:
 +
 +
viewport.setCameraAndTarget() - Fixed bug in viewport.setCameraAndTarget() function, reported in the forum by Ralf here: http://moi3d.com/forum/index.php?webtag=MOI&msg=8704.25
 +
 +
Process memory use limit - Added option in moi.ini for limiting maximum memory use - Windows only. Can be set in moi.ini under [Settings] MaxProcessMemoryUse=x . Requested by Burr on the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=8704.26
 +
 +
moi.view.screenshot - Fix bug where the moi.view.screenshot() method was capturing the wrong area of the screen on Mac.
 +
 +
 +
Enable setting default values for controls from shortcut keys. UI controls can now be triggered or initialized with custom values if the control's id is supplied in the command-line parameters for the command. For buttons, the presence of the button's id value in command line parameters will trigger a UI event for the button the first time that it is shown, this will have the same effect as clicking the button.
 +
For dropdowns and checkboxes, the presence of the control's id in an id=value pair will use that value to initialize the control rather than taking the last used or default value as normal.
 +
 +
This makes it possible to set up shortcut keys that package up different options within commands, for example:
 +
 +
Trim addtrimpoints removekeepmode=keep
 +
 +
Trim addtrimpoints removekeepmode=remove
 +
 +
Trim isocurve isodir=u
 +
 +
Trim isocurve isodir=v
 +
 +
Line bothsides=true
 +
 +
Extrude tapered
 +
 +
 +
 +
== Feb-9-2018 ==
 +
 +
[http://moi3d.com/forum/index.php?webtag=MOI&msg=8814.1 Forum announcement]
 +
 +
Text labels inside viewports still not implemented yet, that's the last remaining thing still left to get v4 fully caught up.
 +
 +
 +
Bug fixes and changes:
 +
 +
 +
Dashed/Dotted line styles implemented so things like the grid, construction lines, and hidden line display should be looking proper now.
 +
 +
Appdata commands folder - MoI will now look for commands in a "commands" subfolder under appdata in addition to the regular commands folder. On Windows this is located at C:\Users\<username>\AppData\Roaming\Moi\commands, on Mac it's /Users/<username>/Library/Application Support/Moi/commands . Note that on Mac the user Library folder is hidden by default, you can use the Cmd Shift . [period] shortcut while in a Finder window to show it for that Finder session. This will be the new recommended place to install plug-in commands, if you put them here then you won't have to copy them anywhere when new betas are released.
 +
 +
DXF import layers - Support reading layers in the DXF file as Styles in MoI.
 +
 +
DXF export layer names - Make layer names in DXF files encoded as AutoCAD is expecting for an AutoCAD 2000 DXF file. By default names will be written using Windows-1252 encoding, with unicode characters escaped. Fixes crashes in AutoCAD when opening a DXF file exported from MoI with layer names using non-ascii characters. It is possible to override this and use UTF-8 encoding for reading or writing names by settings in moi.ini: [DXF Import] ReadNamesAsUTF8=y and [DXF Export] WriteNamesAsUTF8=y
 +
 +
Alt/Cmd Shortcut keys Mac - Fix bug where Cmd+ keys were getting converted into Alt+ keys when written out in v4, and also that Alt+ keys were converted to Cmd+ keys in the moi.ini file by V3 if V3 was opened. Shortcut keys on the v4 Mac version are now written to a separate [Shortcut Keys Mac] section in moi.ini to avoid the conflict with V3.
 +
 +
Extrude responsiveness Mac - Rework communication with worker process to fix problem where some commands like Extrude were not as responsive as V3 especially on Mac.
 +
 +
Window resizing Mac - Fixes for flickering that was happening when turning browser pane on/off, switching between Split/3D/Top/Front/Right views and main window resizing.
 +
 +
Construction lines - Fix bug where when drawing a construction line, letting the mouse button up outside the viewport would finish the construction line, which prevents snaps from being changed. Changed to same behavior as V3. Fixes a bug reported by Vladimir on the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=8731.59
 +
 +
Numeric input field display - if a value is typed into an input field the number of decimal places that were used is remembered for the session and will be used the next time the field is displayed. Fixes problems like typing in 0.001 for the Rebuild command tolerance but then having it show up as 0 the next time because of rounding to 2 decimal places.
 +
 +
Command macros - Make macro parameters sent in command line parameters also work for non-persistent controls like the ones in the Box command. Updated the UI for several commands to have input field ids of just "width" and "height" so now it's possible to make a shortcut of Box width=10 for example.
 +
 +
Straight snap - Fix bug where pressing or releasing Shift without any mouse movement didn't show the straight snap changing as it did in V3.
 +
 +
Alt+MMB view manipulation - Revert Alt+MMB to Pan to behave same as previous versions of MoI. Previously in V4 Alt+MMB had been set to do view rotation in the 3D view for compatibility with 3DS Max, but this change in default behavior has caused problems for some users accustomed to how V3 behaved. You can still enable Alt+MMB to do view rotation by a setting in moi.ini : [View] AltMMBRotate=y
 +
 +
Alt+RMB view manipulation - Add option for Alt+RMB to do Pan instead of Zoom, for ZBrush compatibility. This can be enabled in moi.ini under [View] AltRMBPan=y
 +
 +
Shortcuts editor - Fix bug where right-clicking in a text control in the Shortcuts editor to get the cut/copy/paste context menu didn't work right.
 +
 +
Windows shutdown bug - Fix bug when shutting down Windows while MoI is still open reported by Vladimir in the forum here:
 +
http://moi3d.com/forum/index.php?webtag=MOI&msg=8731.81
 +
 +
Trim curve by point - Update tolerance used for trimming curves to points. Fixes Trim bug reported by bemfarmer on the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=8786.18
 +
 +
Fix crash on program shutdown if license key dialog was canceled.
 +
 +
OBJ export - Fix invalid UV coordinates generated in .obj export when meshing a degenerate face. Fixes bug reported by 4rw1n in the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=8754.20
 +
 +
 +
 +
Scripting:
 +
 +
Added additional script interface for Curve and CurveSegment objects.
 +
 +
For both Curves and CurveSegments:
 +
 +
crv.domainMin - Property that returns lower bound of the curve's parametric domain.
 +
 +
crv.domainMax - Property that returns upper bound of the curve's parametric domain.
 +
 +
crv.evaluatePoint( t ) - Function returning a point for the given parameter value.
 +
 +
crv.evaluateTangent( t, FromLeft = true ) - Function returning a unit tangent vector for the given parameter value. Optional second parameter controls calculating the tangent from the lower or higher parametric side at a discontinuity, default value = true.
 +
 +
crv.evaluateCurvature( t, FromLeft = true ) - Function returning the curvature vector for the given parameter value. Optional second parameter controls calculating the tangent from the lower or higher parametric side at a discontinuity, default value = true.
 +
 +
crv.evaluateDerivatives( t, NumDerivs, FromLeft = true ) - Function returning a list of derivative values for the given parameter value. Optional third parameter controls calculating the tangent from the lower or higher parametric side at a discontinuity, default value = true. The derivatives are returned in a list of length NumDerivs+1 with index 0 having the point value, index 1 having the first derivative, index 2 having the second derivative, etc...
 +
 +
crv.isPlanar - Property that returns true if the curve's control polygon is planar.
 +
 +
crv.planarFrame - Property that returns a coordinate frame with an origin point at the curve's control polygon centroid and a z axis along the plane normal, only valid if crv.isPlanar == true.
 +
 +
crv.isOnPlane( frame ) - Function that returns true if the curve is on the given frame's x/y plane.
 +
 +
crv.isOnParallelPlane( frame ) - Function that returns true if the curve is on a plane parallel to the given frame's x/y plane.
 +
 +
crv.isClosed - Property that returns true if the curve is closed.
 +
 +
crv.isPeriodic - Property that returns true if the curve has periodic ends (overlapping control points at start/end rather than a corner point at the start/end).
 +
 +
crv.isDegenerate - Property that returns true if the curve has a degenerate control polygon with all the points stacked in the same spot.
 +
 +
crv.isLine - Property that returns true if the curve has the shape of a line.
 +
 +
crv.isSimpleLine - Property that returns true if the curve is a simple line segment made up of only 2 control points.
 +
 +
crv.isCircle - Property that returns true if the curve is a circle.
 +
 +
crv.isArc - Property that returns true if the curve is a circular arc.
 +
 +
crv.isEllipse - Property that returns true if the curve is an ellipse (either a full ellipse or an elliptical arc).
 +
 +
crv.conicFrame - Property that returns the coordinate frame of a circle, arc, or ellipse. Only valid if isCircle, isArc, or isEllipse returns true.
 +
 +
crv.conicRadius - Property that returns the radius of a circle, arc or the x-axis radius of an ellipse. Only valid if isCircle, isArc, or isEllipse returns true.
 +
 +
crv.conicRadiusY - Property that returns the y-axis radius of an ellipse. Only valid if isEllipse returns true.
 +
 +
crv.conicEndAngleRadians - Property that returns the end angle in radians of a circular arc. The arc starts at the x-axis of the arc's frame. Only valid if isArc returns true.
 +
 +
 +
The following only apply to Curves, not CurveSegments:
 +
 +
crv.isClickSelected - Property that returns true if the curve was selected by a mouse click action.
 +
 +
crv.clickSelectionPoint - Property that returns the point on the curve where it was click selected. Only valid if isClickSelected returns true.
 +
 +
crv.clickSelectionParam - Property that returns the parameter value of the curve where it was click selected. Only valid if isClickSelected returns true.
 +
 +
crv.isClickSelectedNearEnd - Property that returns true if the curve was selected by a mouse click action and it was clicked on a spot closer to it's ending side than its starting side.
 +
 +
 +
Added moi.ui.systemDPI property.
 +
 +
Make text input controls fire an onchange event in addition to the previous onvaluechange event - onchange is the standard one used by regular input elements.
 +
 +
Add new script function moi.ui.findElement( 'id' ) - looks through all UIPanels for any element with the given id. Returns the element or null if not found.
 +
 +
Implement startup scripts. Now when MoI is started it will run all .js files it finds in a directory named "startup" inside of MoI's AppData. It will also look for any startup directory inside the main application install folder as well. The scripts will run right before the main window is displayed - note that if the script puts up a modal dialog the main window won't show until the script finishes. Scripts will be run in alphabetical order. MoI will create startup and commands directories inside appdata.
 +
 +
Add a container with id="CommandBarCustomUI" in CommandBar.htm to make it easier to populate the UI from a startup script.
 +
Example:<br>
 +
&nbsp;&nbsp;&nbsp;&nbsp;var container = moi.ui.commandBar.CommandBarCustomUI;<br>
 +
&nbsp;&nbsp;&nbsp;&nbsp;container.insertAdjacentHTML( 'beforeEnd', '<moi:CommandButton>Test1</moi:CommandButton>' );
 +
 +
Appdata/scripts directory - you can add a scripts folder inside appdata and MoI will also check there for running an "instant script".
 +
 +
 +
Add trackpadgesture event for Mac - Set up a custom trackpadgesture event so the node editor dialog can use Mac trackpad gestures for zooming and panning.<br>
 +
The trackpadgesture event object has these properties:<br>
 +
&nbsp;&nbsp;&nbsp;&nbsp;event.gestureType  : string value of 'Scroll', 'SmartZoom', 'Zoom', or 'Rotate'.<br>
 +
&nbsp;&nbsp;&nbsp;&nbsp;event.deltaX, event.deltaY  : movement for Scroll , 2 fingers swiping.<br>
 +
&nbsp;&nbsp;&nbsp;&nbsp;event.numTouches : number of touch points being used for Scroll.<br>
 +
&nbsp;&nbsp;&nbsp;&nbsp;event.scaleFactor  : scale factor for pinch/zoom<br>
 +
&nbsp;&nbsp;&nbsp;&nbsp;event.angle          : angle change for Rotate.<br>
 +
 +
SmartZoom is a 2 finger double tap, used by MoI viewports for view reset. The trackpadgesture event also has all the same properties as a mouse event giving the location of the mouse cursor. By default the Scroll gesture generates a mouse wheel event, to prevent that use event.preventDefault();
 +
 +
 +
== May-12-2018 ==
 +
 +
[http://moi3d.com/forum/index.php?webtag=MOI&msg=8936.1 Forum announcement]
 +
 +
I think this version is all caught up now, the last remaining things that were missing from v3 such as text labels inside viewports are now implemented and all regression bugs that have been reported should now be fixed. So if that holds up this should be a major milestone for v4 where I'll now be switching to working on new features rather than rewriting stuff from v3.
 +
 +
Bug fixes and changes:
 +
 +
 +
Implemented text rendering inside viewports for things like snapping tag labels ("End", "Mid", etc...)
 +
 +
OBJ export - Fixed bug where invalid OBJ file would be generated if object names had extended characters in them. Reported through e-mail by Lewis.
 +
 +
STEP import - Fixed crash bug in STEP import reported through e-mail by John Lewis.
 +
 +
iMac Pro draw speed - Fixed bug where too frequent UI updates caused a noticeable draw speed slowdown compared to V3 on some high dpi Mac machines. Fixes bug reported by Metin.
 +
 +
Mouse cursors - Fixed various bugs where the mouse cursor wasn't updating properly, reported by Vladimir in the forum here:
 +
http://moi3d.com/forum/index.php?webtag=MOI&msg=8814.128
 +
 +
Text field right click context menu - Fixed a bug with right click on text input fields in menus being offset.
 +
 +
Menu hover state - Fixed a bug where when launching a menu, the button hover state on the launching UI would get stuck until another click.
 +
 +
Color picker custom colors - Custom colors set in the color picker dialog are now saved to and restored from moi.ini so they will persist between program sessions.
 +
Fixes bug reported by Moujiik on the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=8855.5
 +
 +
Object properties - Fixed bug where cached objects in the async worker process wouldn't get updated if style, name, or selection changed.
 +
Fixes bug reported on the newsgroup by Brian here: http://moi3d.com/forum/index.php?webtag=MOI&msg=8814.81
 +
 +
Selection filter crash - Fix for crash when setting a style selection filter, reported by Shane on the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=8872.1
 +
 +
Busy script interruption - Scripts that do a lot of calculation in loops can now be interrupted by pushing the Escape key.
 +
Requested on the forum by Marco here: http://moi3d.com/forum/index.php?webtag=MOI&msg=8814.63
 +
 +
Trackpad scroll gesture - Fix bug where Mac trackpad scroll gesture could be treated as a mouse wheel event,
 +
if the first touch happened on a different window.
 +
Fixes bug reported by Max in the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=8814.21
 +
 +
DXF export arcs and circles - Previously arcs and circles that had a normal vector pointing straight down in the negative z axis direction would get flipped in the export, because there are a couple of programs that do not read those correctly. But this direction flip is bad for CNC usage, so the default now is to not flip them. It is possible to return to the previous flipping behavior by a setting in moi.ini: [DXF Export] FlipNegativeZAxisCirclesAndArcs=y
 +
Fixes a bug reported in the forum by Vladimir here: http://moi3d.com/forum/index.php?webtag=MOI&msg=6925.419
 +
 +
VSync - Added option in moi.ini to limit screen redraw with vsync, might help if you are experiencing a tearing type effect in the display.
 +
Can be set under [View] VSync=y . Requested by torsten in the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=8814.140
 +
 +
Additional command dirs - Add moi.ini setting under [Commands] AdditionalCommandsDirs= which can be set to a semi-colon delimited list of additional directories to look for commands, in addition to the built in commands and appdata commands.<br>
 +
[Commands]<br>
 +
AdditionalCommandsDirs=c:\path1;c:\path2<br>
 +
Requested on the forum by Hamish here: http://moi3d.com/forum/messages.php?webtag=MOI&msg=8814.97
 +
 +
FBX export vertex colors - Add option in moi.ini for writing vertex colors to FBX exports. Can be enabled by setting:<br>
 +
[FBX Export]<br>
 +
WriteVertexColors=y<br>
 +
Requested by Stefan in the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=8853.5
 +
 +
Graphics API override - Add moi.ini option for which graphics API to use.
 +
On Windows or Linux/Wine a specific render engine can be controlled by a setting in moi.ini, under the [View] section, GraphicsAPI key:<br>
 +
[View]<br>
 +
GraphicsAPI=Direct3D11<br>
 +
or<br>
 +
GraphicsAPI=OpenGL
 +
 +
Startup working directory - Add moi.ini options for setting the initial working directory on startup.<br>
 +
[Settings]<br>
 +
StartupWorkingDirectory=<br>
 +
SaveWorkingDirectoryAtExit=n<br>
 +
Requested by Marc in the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=8814.88
 +
 +
Trackpad as mouse wheel - Add setting in moi.ini for making Mac trackpad scroll used as a mouse wheel zoom as older MoI versions did.<br>
 +
[MultiTouch]<br>
 +
UseTrackpadScrollAsMouseWheel=y<br>
 +
Requested by Marc in the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=8814.88
 +
 +
 +
 +
== Jun-6-2018 ==
 +
 +
[http://moi3d.com/forum/index.php?webtag=MOI&msg=8966.1 Forum announcement]
 +
 +
New stuff:
 +
 +
Major overhaul of STEP/IGES/SAT importing.
 +
 +
These imports will now no longer block the main thread so it won't look like MoI is frozen while it is loading a big file.
 +
 +
The loading happens in 2 phases, first an initial scan of the file that doesn't do too much work except logging the structure of where objects are located. Then the next heavier phase of processing the objects will make use of multiple CPU cores for a major speed increase. So there should be a very substantial performance increase in loading large STEP, IGES, or SAT files in this version.
 +
 +
Also the HarmonyWare libraries used for working with these formats have now been updated from version 1.7.11 to the latest 2.0.8 release and there are a lot of bug fixes from that. A notable one is that some incorrect positioning of instances should be good now. Also some other fixes on MoI's side should make for colors coming through from STEP files that were previously missed.
 +
 +
It would be cool to hear how the new multi-core enabled importer performs on some big files compared to MoI v3!
 +
 +
Also please let me know if you see any new problems with any particular imports. If you do please try to send the file to me at moi@moi3d.com so I can test with it over here, I will keep any files confidential.
 +
 +
 +
Other things:
 +
 +
Window selection Mac - Fix for sluggish selection window dragging reported by James through e-mail.
 +
 +
Properties panel size display - Adjusted the quick size calculation for the properties panel to hopefully increase accuracy a little.
 +
 +
Properties panel - Report closed edges as a distinct object type. Fixes an issue of inconsistent behavior between curves and edges reported through e-mail by Scott.
 +
 +
Edit frame grip size - Added option in moi.ini for setting edit frame grip handle pixel size, so it can be adjusted for higher res displays,
 +
Requested by Barry in the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=8960.1<br>
 +
[View]<br>
 +
EditFrameGripPixelSize=24
 +
 +
DisableOnSrfInOrtho setting - Added scripting access to DisableOnSrfInOrtho setting so it can be toggled at runtime under moi.drawingAids.disableOnSrfInOrtho . Requested on the forum by immortalx here: http://moi3d.com/forum/index.php?webtag=MOI&msg=8947.1
 +
 +
NURBS Export RotateZUpToYUp option - Added option in moi.ini for option for exporting STEP/IGES/SAT formats to rotate the export to a Y up coordinate system.<br>
 +
[NURBS Export]<br>
 +
RotateZUpToYUp=y
 +
 +
Update viewport right click - Don't push Cancel buttons with a viewport right click, it's too easy to accidentally cancel a long file import or things like that.
 +
 +
 +
 +
== Aug-28-2018 ==
 +
 +
[http://moi3d.com/forum/index.php?webtag=MOI&msg=9044.1 Forum announcement]
 +
 +
The main focus for this beta is performance enhancements.
 +
 +
3DM files will now use multiple CPU cores for loading so large files should load significantly faster and show a progress bar.
 +
 +
Also the display engine has been enhanced to take advantage of modern GPUs - display data is now cached in the GPU's VRAM which should result in faster redraw speed for large files.
 +
 +
 +
Other bug fixes and changes:
 +
 +
Mac version multiple windows - Add "Window" menu to Mac version top menu. Shows all open files and allows switching between them easier. Also support Cmd+Tilde (Cmd+~) and Cmd+Shift+Tilde for switching to next/prev window.
 +
 +
Construction line bug fix - Fix construction line creation bug reported by jopo in the forum here:<br>
 +
http://moi3d.com/forum/index.php?webtag=MOI&msg=8966.53
 +
 +
Object drag bug fix - fix bug for moving the mouse over another viewport when dragging objects. Reported by Burr on the forum here:<br>
 +
http://moi3d.com/forum/index.php?webtag=MOI&msg=9016.1
 +
 +
Mac AMD performance - fix problem with default buffer location with OpenGL on some AMD cards that was causing slow redraws on some machines like iMac pro.
 +
 +
Updated Mac file open behavior. To match the Mac document based application framework behavior, if a file is opened by drag/drop or by double-clicking on the desktop icon do not open a new window for it if there is an existing window with it already open.
 +
 +
3DS Max zoom compatibility - Added moi.ini option for Alt+Ctrl+MMB zoom for 3DS Max compatibility. Can be set under:<br>
 +
[View]<br>
 +
AltCtrlMMBZoom=y<br>
 +
 +
Object snap labels on left side - Add moi.ini option to make object snap labels shown to the left of the target point, can be useful if you're drawing directly on a screen such as with a Cintiq screen. Can be set in moi.ini under:<br>
 +
[Drawing Aids]<br>
 +
ShowObjectSnapLabelToLeft=n<br>
 +
 +
Shortcut keys update - On Windows if there is a [Shortcut Keys Mac] section of the moi.ini file, read and write shortcuts from there so you can copy the moi.ini file over from Mac to Windows. Fixes issue reported on the forum by Matt here:<br>
 +
http://moi3d.com/forum/index.php?webtag=MOI&msg=8970.1
 +
 +
STEP import bug fix - Fixed import bug for file MF2018.STEP getting stuck at 36%, reported on the forum by Marco here:<br>
 +
http://moi3d.com/forum/index.php?webtag=MOI&msg=8966.9<br>
 +
Also fixed a different STEP import bug reported by Eric Bucy through e-mail.
 +
 +
Fixed file loader UI bug - Fix bug where main window would not maximize properly when trying to show progress bar UI before main window was initially displayed, such as when MoI launched by double clicking a STP file. Fixes bug reported in the forum by OSTexo here:<br>
 +
OSTexo http://moi3d.com/forum/index.php?webtag=MOI&msg=8966.40
 +
 +
File notes - Add notes property that is saved to and loaded from .3dm files. Can be accessed by setting up a shortcut key with:<br>
 +
script: moi.ui.createDialog( 'moi://ui/NotesDialog.htm', 'resizeable' );
 +
 +
Viewport right click option - Add option for v3 behavior of right clicking in a viewport working as a shortcut for pushing the Cancel button when a command only has Cancel and not Done. Can be set in moi.ini under:<br>
 +
[View]
 +
DoRightClickCancel=y
 +
 +
Add new appdata directory option - MoI will now look for an appdata directory that has been created alongside "commands", "ui", etc... and if found will use that location as the appdata folder, to make it possible to store everything within a single directory.
 +
 +
Add moi.ini setting for selection hit test radius<br>
 +
[View]<br>
 +
SelectionHitTestRadius=12<br>
 +
 +
Scene browser scripting - Added script access to scene browser items so it is possible to make a startup script that expands sections on program startup. To do that put the following in a .js file in your Moi appdata startup folder:<br>
 +
var items = moi.ui.sceneBrowser.rootItems;<br>
 +
for ( var i = 0; i &lt; items.length; ++i )<br>
 +
&nbsp;&nbsp;&nbsp;&nbsp;items[i].expanded = true;
 +
 +
 +
== Oct-17-2018 ==
 +
 +
[http://moi3d.com/forum/index.php?webtag=MOI&msg=9100.1 Forum announcement]
 +
 +
The main focus for this beta is a polygon sub-d surface to NURBS conversion method, available on the side pane under SubD > Create > From file. This allows you to open an .obj file that contains a sub-d polygon cage and have it converted to a high quality NURBS object in MoI.
 +
 +
Some other stuff:
 +
 +
Settings for page size are now available in PDF/AI exports.
 +
 +
Fixed crash bug when modifying display mesh angle.
 +
 +
Updated STEP export to fix problem with object names not coming through to SolidWorks, Fusion360 and KeyShot.
 +
 +
Added moi.ini option to set current file name with foreign file types. In moi.ini under [Settings] SetNameWhenOpeningAllFileTypes=y When set, the current file name is set for all file opens not just .3dm files. Requested by Alex on the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=9044.41
 +
 +
Updated DXF export to allow the dialog to be suppressed and options set by script. Parameters that can be set are:<br>
 +
// DXF export function parameter options:<br>
 +
//<br>
 +
// NoUI=true<br>
 +
// ExportType=2d | 3d<br>
 +
// ProjectionView=top | 3d | front | right<br>
 +
// WriteCurvesAs=splines | cubicsplines | polylines<br>
 +
// PolylineAngleDegrees=10.0<br>
 +
// UseSimpleEntities=true<br>
 +
// NumDecimalPlaces=12<br>
 +
//<br>
 +
// GenerateHiddenLines=false<br>
 +
// HiddenLineLayerMode=fromstyle | custom<br>
 +
// HiddenLineLayerName=Hidden lines (layer name to use when layer mode = custom)<br>
 +
// IgnoreTangentEdges=false<br>
 +
// Resolution=25.0<br>
 +
 +
 +
== Feb-27-2019 ==
 +
 +
[http://moi3d.com/forum/messages.php?webtag=MOI&msg=9266.1 Forum announcement]
 +
 +
New stuff:
 +
 +
Numerous fixes for SubD import crashes and translation issues.
 +
 +
Fix for SubD imports on objects of small scale.
 +
 +
Fix for SubD imports with meshes that have multiple volumes that partially overlap each other. Previously these could sometimes not get separated into different solids properly.
 +
 +
Update SubD import to read materials from the .obj file and make Styles from them in MoI. Also patch combining will pay attention to material assignments
 +
so patches will not get combined across different materials. Can be disabled under Options > Import/Export > SubD import options > "Use materials" checkbox.
 +
 +
Add SubD import option for either fewer patches but with denser surface control points, or more patches around extraordinary vertices but with fewer surface
 +
control points in regular areas of the mesh. Set under Options > Import/Export > SubD import options > "Patch type".
 +
 +
Update multiple selection - Add option for doing multiple selection only when shift key is down. Options > General > Multiple selection: "Always" or "Only when Shift is down".
 +
 +
Fix cylinder boolean union bug. There was a bug with combining cylinders in boolean union when the cylinders had opposite axis directions. This was the cause of some occasional mysterious missing fillets where the fillet surface was ending up displaced some distance away from the trim boundaries.
 +
 +
Fix a sporadic crash in Chamfer reported through e-mail by Sebastian Bielecki.
 +
 +
Fix crash in center object snap after copy/pasting an arc edge curve.
 +
 +
Update tesselator - fix degenerate span display bug. Fixes bug in mesher for making display meshes on surfaces with nearly degenerate spans. Fixes a bug reported through PM by BarryH.
 +
 +
Add option for scaling STL export to target unit system. Under Options > Import/Export > STL Options > "Export units conversion".
 +
 +
Update curve filleting - Enable "Constant distance" fillet mode for curves, currently only works for line segments.
 +
 +
Fix 3DConnexion buttons bug where undo/redo on space mouse button presses was not working, reported by Ivan in the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=9130.1
 +
 +
Update command parameter parsing. Allow quotes to control parameter parsing so values with spaces can be used, for example: ArrayDir mode="Extent, Count" . Fixes a problem reported on the forum by Bravlin here: http://moi3d.com/forum/index.php?webtag=MOI&msg=6087.75
 +
 +
Update shortcut keys parameters - start and end scripts. Make it possible for shortcut keys to define parameters for oncommandstart="" and oncommandend="" for script to run at the start or end of the command. For example this shortcut will run a script when the line command ends to select it: line oncommandend="moi.geometryDatabase.selectLastCreated();"
 +
 +
Update shortcut keys for file commands. Enable controlling the file dialog file type with keyboard shortcuts by adding a filetype= option in the shortcut key. For example a shortcut key with: Open filetype=igs will make the file dialog have the .igs file type active. Can be used with Open, SaveAs, Import, and Export commands. Requested in the forum by Peticel here: http://moi3d.com/forum/index.php?webtag=MOI&msg=9118.1
 +
 +
Update command UI automation - ordering. Some UI events cause the command to finish, so to be able to control a command the ordering of the events needs to be controllable.
 +
Rework the UI event triggering so they are triggered in the order given in the command line parameters. This makes the following possible:<br>
 +
extrude tapered draftangle=20 distanceinput=10<br>
 +
Previously that didn't work because the distanceinput is earlier in the UI and so got triggered earlier and ended the command before tapered or draftangle could be processed.
 +
 +
Fix properties panel line length editing bug reported through e-mail by Tim Hickox.
 +
 +
Fix tolerance bug that could cause small sized objects to get mangled boundaries when joined, regression from v3.
 +
 +
Fix IGES import joining regression - Make iges entity 128 surfaces join together if joining is enabled, regression from v3.
 +
 +
Updated IGES import joining - allow T junctures to join instead of only simple matching endpoints only.
 +
 +
Fix IGES import bug for some cases with edges on seams of closed surfaces. Fixes an IGES file sent through e-mail by Charles Ludeke.
 +
 +
Fix excessive load time with STEP file that had a degenerate surface in it.
 +
 +
Update license key file paths - Allow a path to moi_v3_license.key to be passed as a command line parameter or set as an environment variable
 +
like moi_v3_license.key=path . Requested by Mariusz in the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=9106.1
 +
 +
If straight snap snap angle is set to 0, disable  x/y plane straight snap line snapping.
 +
 +
Add warning if running on Mac case sensitive file system.
 +
 +
Update file dialogs - Save and restore last used file dialog location on all platforms.
 +
 +
Update file loader progress bar - Add full path as tooltip to file name label.
 +
 +
Add option for limiting the number of CPU cores used by file loading. Can be set under: [Settings] FileLoaderThreadLimit=x
 +
 +
Update scripting - exe command line args<br>
 +
moi.getExecutableCommandLineArgs() - returns list of command line parameters for launching the executable.<br>
 +
moi.geometryDatabase.initialFileToLoad - filename for initial file to load by executable command line parameter.
 +
 +
Scripting - Add moi.command.currentCommandName property for getting the current running command name by script, or empty string if no command currently running. Requested by Bravlin on the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=7238.61
 +
 +
Update Scene Browser, Types > Edges and Types > Faces behavior. Don't show edges or faces of hidden breps unless shift is down. Makes it easier to turn edges on/off without hidden breps being shown. Requested through e-mail by Tim Hickox
 +
 +
Update scene browser - Make sure scene browser is initialized before any startup script that wants to access it is run.
 +
 +
Scene browser script access - Add more script access to SceneBrowser: sceneBrowser.objects, sceneBrowser.types, and sceneBrowser.styles to get the root item for those sections.<br>
 +
Added methods to a scene browser item:<br>
 +
&nbsp;&nbsp;&nbsp;&nbsp;item.find('name') - will search all children and return an item with that name or null if none present.<br>
 +
&nbsp;&nbsp;&nbsp;&nbsp;item.alterStatus(mode,rightclick) - alter the status area of an item, that's the one with the eye icon. Mode can be one of 'show','hide','lock','unlock'. Optional boolean parameter for rightclick will make it behave like a right mouse button click.<br>
 +
&nbsp;&nbsp;&nbsp;&nbsp;item.select(mode,rightclick) - alter the selection dot of an item. Mode can be one of 'toggle','select','deselect','filteron','filteroff'. Optional boolean parameter for rightclick will make it behave like a right mouse button click.<br>
 +
Here's an example that toggles the selection dot for the Blue item under styles: moi.ui.scenebrowser.styles.find('Blue').select('toggle');
 +
 +
Fix selection redraw bug on static objects where objects could get stuck looking like they were selected in the Intersect, Project, Silhouette, Join, and Separate commands. Reported through e-mail by James Elliott.
 +
 +
Fix bug in Add pt with rational curves, reported in the forum by Bravlin here: http://moi3d.com/forum/index.php?webtag=MOI&msg=9216.34
 +
 +
Fix for wrong selection display on iMac with NVIDIA GeForce GT 750M 1024 MB - work around driver bug.
 +
 +
Fix for mouse move events getting stacked up on some Mac machines.
 +
 +
Fix .skp and .fbx format export with unicode file names on Mac. Exporting to .skp or .fbx formats with certain kinds certain kinds of extended characters in the filename would fail.
 +
 +
Update filename display Mac - Fix bug where filenames with <> characters were being treated as html tags.
 +
 +
Fix MRU file list Mac - Fixed bug where on Mac if a file had a \ in it, it would not persist to the MRU list properly.
 +
 +
Fix Mac crash when exporting to .3ds format.
 +
 +
Fix QtWebKit Ctrl/Meta flippage on Mac. Make the HTML event object use Ctrl for Ctrl and Cmd for Cmd instead of flipped on Mac.
 +
 +
Turn off viewport display time that was previously always on.
 +
 +
Update mouse wheel for node editor - dispatch wheel events to canvas elements.
 +
 +
Fix bug in <moi:Select> control when the <moi:Select> element had keyboard focus when the command UI document was torn down. Fixes bug reported by Bravlin on the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=952.31
 +
 +
Add setting for allowing snap plane change in ortho:<br>
 +
[Drawing Aids]<br>
 +
AllowSnapPlaneChangeInOrtho=y<br>
 +
When set the orientation picker will align to surfaces in ortho views, by default it only aligns to surfaces in the 3D view.
 +
 +
Update viewport text - fallback fonts. Switch to a fallback font if the regular UI font does not contain glyphs that we are going to be using in the viewport. This enables stuff like Japanese text to render properly in the viewport even if the UI font has not been set to a font with Japanese glyphs in it.
 +
 +
Update Wine hit testing BGRA textures. Add option to use BGRA for the texture format for off-screen rendering. Make it used by default when running under Wine. Hopefully will solve selection problems where hit test map had unexpected byte ordering on the propietary Nvidia driver, as reported by Ronnie Ashlock.
 +
 +
Add option to use same color picker dialog as v3 on Windows. Can be set under<br>
 +
[Color Dialog]<br>
 +
UseV3ColorDialog=y<br>
 +
Requested by Barry-H in the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=9100.241
 +
 +
Update scripting moi.view.resetAll() - Update moi.view.resetAll() to take an optional parameter. Can be one of:<br>
 +
&nbsp;&nbsp;&nbsp;&nbsp;'auto' - Do automatic toggle between selected or all.<br>
 +
&nbsp;&nbsp;&nbsp;&nbsp;'selected' - Only reset to selected objects.<br>
 +
&nbsp;&nbsp;&nbsp;&nbsp;'all' - Only reset to all objects.<br>
 +
&nbsp;&nbsp;&nbsp;&nbsp;'default' - Reset to default startup views, keeping reversed views (bottom/back/left).<br>
 +
&nbsp;&nbsp;&nbsp;&nbsp;'harddefault' - Reset to startup views and get rid of reversed views (bottom view will become top).<br>
 +
Requested on the forum by arial here: http://moi3d.com/forum/index.php?webtag=MOI&msg=8123.39
 +
 +
Update edit style shortcut. Make Ctrl+Left click on the style line in the properties panel also work as a style edit shortcut in addition to right-click. Requested by shane in the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=9245.5
 +
 +
Add moi.ini option for window select behavior.<br>
 +
[Selection]<br>
 +
WindowSelectMode_Combo_Intersect_Contained=Combo<br>
 +
Can be one of "Combo", "Intersect", or "Contained".
 +
 +
Update mesh export - allow generating empty mesh files when saving to OBJ, STL, 3DS, LWO, FBX, or SKP mesh formats. Requested by Mikael Sundell for pipeline integration.
 +
 +
 +
== Oct-10-2019 ==
 +
 +
[http://moi3d.com/forum/index.php?webtag=MOI&msg=9526.1 Forum announcement]
 +
 +
The primary focus for this release is a new detailed object properties dialog and new annotation/dimension tools on the "Dim" tab in the side pane.
 +
 +
The new extended properties dialog is triggered by the "Details..." button in the Properties Panel here:
 +
 +
http://moi3d.com/forum/get_attachment.php?webtag=MOI&hash=f48bc5937a8f8647858ee122f26fd746&filename=detailed_object_properties1.png
 +
 +
The Type: section of the detailed object properties dialog will give some additional information about the object type:
 +
 +
http://moi3d.com/forum/get_attachment.php?webtag=MOI&hash=f523480b2b9504254b2208f7bdadf912&filename=detailed_object_properties2.png
 +
 +
For curves it will report if it is an open curve or closed curve, whether it has the shape of a line, polyline, circle, arc, ellipse, elliptical arc, whether it is planar and the number of segments in the curve.
 +
 +
For surface/solid objects it will report if it is a solid, open joined surface, or open individual surface, if it is a planar surface, the number of joined edges, number of naked edges, and number of faces.
 +
 +
For edges it will report open, closed, joined, naked, line, circle, ellipse, elliptical arc, and planar.
 +
 +
For a face selected it will report if it is a planar face.
 +
 +
For an annotation selected it will report if it is a linear dimension, radial dimension, angular dimension, leader, or annotation text.
 +
 +
When multiple objects are selected it will make a combined report like this:
 +
 +
http://moi3d.com/forum/get_attachment.php?webtag=MOI&hash=a41d725c0dbdec497aebe4b79123c060&filename=detailed_object_properties3.png
 +
 +
The type labels can be clicked on to filter the selection down to just the objects that match that label:
 +
 +
http://moi3d.com/forum/get_attachment.php?webtag=MOI&hash=2dfca899ad8b98dc077ef0274ccf96d7&filename=detailed_object_properties4.png
 +
 +
You can also hold down the shift key which will allow you to click multiple labels and the filtering will be triggered when you release the shift key. Holding down the Ctrl key while clicking on a label will remove its objects from the selection.
 +
 +
Lower down on the dialog there are sections for Curve properties, Solid or surface properties, and Annotation properties if any of those types of objects are selected:
 +
 +
http://moi3d.com/forum/get_attachment.php?webtag=MOI&hash=a2c2884805bea74d3f1008fa82fa241f&filename=detailed_object_properties5.png
 +
 +
There you can calculate the length of curves, the surface area or volume of a surface or solid, and adjust properties for annotation objects.
 +
 +
When you click the "Calc" button to calculate a value the button will be replaced with a numeric value and a small "Copy" icon will appear next to it. You can click on the value to copy it to the system clipboard.
 +
 +
 +
The other major new feature area are annotation objects which can be used to add dimensions and text to your model to use for documentation.
 +
 +
These are added by 7 new commands in the Dim tab on the side pane here:
 +
 +
http://moi3d.com/forum/get_attachment.php?webtag=MOI&hash=3ac8aa861ce0381ee8a301bb1f7eda82&filename=dim_tab.png
 +
 +
The DimHorizontal command creates a linear dimension going in the x-axis direction of the construction plane:<br>
 +
http://moi3d.com/forum/get_attachment.php?webtag=MOI&hash=adade4b11952793ad9e912e04ac1ee9d&filename=DimHorizontal.png
 +
 +
The DimVertical command creates a linear dimension going in the y-axis direction of the construction plane:<br>
 +
http://moi3d.com/forum/get_attachment.php?webtag=MOI&hash=c594a4d2c93cbc4b594fcc9482ab43ca&filename=DimVertical.png
 +
 +
The DimAligned command creates a linear dimension going in any direction on the construction plane:<br>
 +
http://moi3d.com/forum/get_attachment.php?webtag=MOI&hash=794f907b2a85dfc93ea5462f919680fa&filename=DimAligned.png
 +
 +
All 3 of the linear dimension commands have a "From object" button in their command options which you can trigger to take the start and end point of a curve as the first 2 points of the dimension.
 +
 +
The DimRadius command creates a radial dimension on a circle or arc curve:<br>
 +
http://moi3d.com/forum/get_attachment.php?webtag=MOI&hash=3fe29174d3a44247c189f098635089bf&filename=DimRadius.png
 +
 +
The DimAngle command creates an angular dimension on the construction plane. There is a "From lines" button in its command options which will allow you to select 2 line objects instead of picking points.<br>
 +
http://moi3d.com/forum/get_attachment.php?webtag=MOI&hash=899daa66d11473a80215ced67ec3707f&filename=DimAngle.png
 +
 +
The Leader command creates a leader object which is a text label with an arrow.<br>
 +
http://moi3d.com/forum/get_attachment.php?webtag=MOI&hash=3e412e15007311c6f216db34d71e1907&filename=Leader.jpg
 +
 +
The AnnotationText command creates an annotation text object which is a text box by itself, no arrows.
 +
 +
Annotations are currently only saved to and from .3dm files. Saving them to DXF and PDF/AI files will be upcoming.
 +
 +
There is an option in moi.ini for changing the display appearance of arrowheads in annotations by disabling mitered arrowhead tips:<br>
 +
[Annotations]<br>
 +
MiterArrowheads=y
 +
 +
 +
Other bug fixes and updates:
 +
 +
Update FBX export - FBX version, object names, and materials. Add option for which FBX version to use under Options dialog &gt; Import/Export &gt; FBX options &gt; FBX version. Object names are now written to the FBX files instead of only generic "object1", "object2", ... names and styles are now written as materials in the FBX export. Writing materials can be disabled in moi.ini under [FBX Export] WriteMaterials=n
 +
 +
Added SubD import option for open boundaries behavior under Options &gt; Import/Export &gt; SubD import options. Can be one of "Open boundaries: Keep corners" or "Open boundaries: Rounded". The default is "Keep corners" as per the discussion on the forum here:<br>
 +
http://moi3d.com/forum/index.php?webtag=MOI&msg=9274.1<br>
 +
It can be set to "Open boundaries: Rounded" to return to the previous beta's behavior at open boundary areas.
 +
 +
Update DXF/PDF/AI hidden line layer controls.  Add an optional prefix and/or suffix to be added to the style name when generating a 2D hidden line drawing to DXF/PDF/AI formats. Requested on the forum by miquik here:<br>
 +
http://moi3d.com/forum/index.php?webtag=MOI&msg=9418.1
 +
 +
Update view tabs - enable right click to get reverse views. Requested by Juraj in the forum here:<br>
 +
http://moi3d.com/forum/index.php?webtag=MOI&msg=9473.10
 +
 +
Add option in moi.ini for zooming using Shift+MMB:<br>
 +
[View]<br>
 +
ShiftMMBZoom=y
 +
 +
Update file dialog filters. Make "All supported files" the first item in the file open filter list on both Windows and Mac (previously it was only on Mac). So that  will be the default filter when the file dialog is first opened. This can be reverted to the previous behavior by a setting in moi.ini :<br>
 +
[FileDialog]<br>
 +
AllSupportedAtBottom=y<br>
 +
Requested by agonyii in the discussion forum here:<br>
 +
http://moi3d.com/forum/index.php?webtag=MOI&msg=9387.1
 +
 +
Add moi.ini option for LWO export to not write styles as materials/surfaces in the LWO file.<br>
 +
[LWO]<br>
 +
WriteMaterialAssignments=y
 +
 +
Fix bug with meshing dialog settings not being saved. Reported by stefan in the newsgroup here:<br>
 +
http://moi3d.com/forum/index.php?webtag=MOI&msg=9266.51
 +
 +
Fix Options dialog sub dialogs not displaying in full screen mode on macOS Mojave. Simplify dialog window z-ordering on Mac to avoid Mojave bug and hopefully be more resilient against any future Mac child window behavior changes. Reported by Martin in the forum here:<br>
 +
http://moi3d.com/forum/index.php?webtag=MOI&msg=9443.1
 +
 +
Fix improper mouse coordinate scaling on Mac w/Retina. Fix bug with longer distance delay before rotate/pan engages with V4 compared to V3, reported on the forum by Nis here:<br>
 +
http://moi3d.com/forum/index.php?webtag=MOI&msg=9266.200
 +
 +
Fix PDF export crash bug reported on the forum by Mip here:<br>
 +
http://moi3d.com/forum/index.php?webtag=MOI&msg=9266.144
 +
 +
Fix crash with some extended combination keystrokes such as Ctrl+Alt+Win+Numpad1 (QTBUG-36061). Fixes a crash bug reported through e-mail by Mark Tomlinson.
 +
 +
Fixed a crash in display meshing with a file reported through e-mail by Bodo-Lutz.
 +
 +
Fix crash in node editor revolve with small angle value, reported by Pilou in the forum here:<br>
 +
http://moi3d.com/forum/index.php?webtag=MOI&msg=9476.119
 +
 +
Updated HarmonyWare libs for STEP, SAT, and IGES file I/O from version 2.1.0 to 2.1.4, various bug fixes.
 +
 +
Update STEP import/export - face colors. Support per-face colors for STEP file import and export. Fixes STEP import color bug reported on the forum by Fran6  here:<br>
 +
http://moi3d.com/forum/index.php?webtag=MOI&msg=9339.4
 +
 +
Fix 3DM import bug with incorrect circle orientation when reading 3DM files from CAD Exchanger. Fixes mangled import of mould.quadlobe.toy reported on the forum by LarryV here:<br>
 +
http://moi3d.com/forum/index.php?webtag=MOI&msg=9266.164
 +
 +
Update Construct &gt; Curve &gt; Isect "Curve from 2 views". Allow lines to be used as input for curve from 2 views, requested by Przemas in the forum here:<br>
 +
http://moi3d.com/forum/index.php?webtag=MOI&msg=9440.1
 +
 +
Update Trim - "stencil cut" options. Add options  to Edit  &gt; Trim for deleting the cutting objects and for having a joined together result with "keep all" instead of always separarting into pieces. Requested on the forum by Przemas here:<br>
 +
http://moi3d.com/forum/index.php?webtag=MOI&msg=9436.1
 +
 +
Fixed bug where left-click on style line of properties panel behaved the same as the right click shortcut for editing the style rather than putting up the style picker menu. Reported in the forum by Ralf here:<br>
 +
http://moi3d.com/forum/index.php?webtag=MOI&msg=9266.22
 +
 +
Update selection texture readback on Wine - test for Nvidia driver bug with red/blue bytes swapped and compensate. Also add calls to glFinish() on Wine to try and help avoid some other Nvidia driver bugs on Linux/Wine.
 +
 +
Update command object model for properties undo. Add moi.command.addSelectedObjectsStateUndoUnit(); that can be called by a command that only modifies properties and doesn't add or delete objects, to get undo support.
 +
 +
Add script properties to Face objects:<br>
 +
face.domainMin : Property that returns u,v coordinate of the lower left of the surface's parameter range.<br>
 +
face.domainMax : Property that returns u,v coordinate of the upper right of the surface's parameter range.<br>
 +
face.evaluatePoint( uv, u_from_left, v_from_left ) : Function that evaluates a uv parameter value and returns a 3D point.<br>
 +
face.evaluateNormal( uv ) : Function that evaluates a uv parameter value and returns a normal vector.<br>
 +
face.evaluate1stDerivatives( uv, u_from_left, v_from_left ) : Function that evaluates a uv parameter value and returns first derivatives as a list containing [pt, du, dv, duv].<br>
 +
face.evaluate2ndDerivatives( uv, u_from_left, v_from_left ) : Function that evaluates a uv parameter value and returns first and second derivatives as a list containing [pt, du, dv, duv, duu, dvv].<br>
 +
face.isPlanar : Property that returns true if the surface is planar.<br>
 +
face.planarFrame : Property that returns a coordinate from for a planar surface. Only valid if isPlanar returns true.<br>
 +
face.isOnPlane( frame ) : Function that returns true if the surface is planar and is on the given coordinate frame's x/y plane.<br>
 +
face.isOnParallelPlane( frame ) : Function that returns true if the surface is planar and is on a plane parallel to the given coordinate frame's x/y plane.<br>

Revision as of 04:25, 24 October 2019

Release notes for each V4 beta release are gathered here.

Nov-12-2017

Forum announcement

V4 is a major rewrite with changes on many levels so please be on the lookout for any bugs.

The main new functionality is that MoI is now a 64-bit program for both Windows and Mac and the Mac version is a native build and doesn't use Wineskin anymore.

New system requirements are Windows 7/8/10 64-bit or macOS 10.8 - 10.13 .

Polygon conversion can now use all your system memory instead of running into 32-bit memory limits.

A lot of various little quirky things should be tuned up for the Mac version.

The only known areas still not quite working yet are snap text labels and dotted/dashed line styles in viewports and Mac trackpad gestures aren't fully functional yet.


Nov-18-2017

Forum announcement

Bug fixes:

Fix for the frozen UI bug when restoring a maximized main window from a minimized or hidden state. Please let me know if you see it again.

Fix Mac deployment issue that was preventing things from working on OS X 10.8 and 10.9, MoI should run ok there now.

Fix font name bug where MoI V4 would overwrite the UI font name property that V3 uses in moi.ini and so the V3 UI font changed after you ran V4. They should now stay separate.

Fix bug where dropdown controls in commands wouldn't reinitialize to their last used value. Reported by bemfarmer in the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=8675.204

Fix construction line snapping bug reported in the forum by Moujiik here: http://moi3d.com/forum/index.php?webtag=MOI&msg=8675.119

Not a whole lot of changes, normally I would have waited until a bit more were batched up but the frozen UI bug was pretty significant so I wanted to try and nail that one down soon.


Nov-27-2017

Forum announcement

Bug fixes:

Saving to IGES and STEP files - fixed a bug where using .stp or .igs file extensions wasn't working on Mac.

Mac full screen mode - fix for the problem where the view controls window would show on the desktop space, sending you back to the desktop the first time you moved the mouse over a viewport after going to full screen. Please let me know if you see it again.

Updated shortcut key editor - Make the "Key" column expand to whatever width is necessary to show the longest key combo. Fixes problem reported in the forum by Metin here: http://moi3d.com/forum/messages.php?webtag=MOI&msg=8682.42

Viewport toolbar - fixed a bug where doing view manipulation using the bottom viewport toolbar could miss the mouse up event and get stuck.

Orientation picker - fixed a sporadic drawing bug with the orientation picker reported on the forum by Max here: http://moi3d.com/forum/index.php?webtag=MOI&msg=8682.16

Shortcut keys with Shift - Fixed a bug in shortcut keys using shift + number keys. V4 was generating Shift+1 as Shift+! which was incompatible with V3, V3 would convert it back to Shift+1 which was then not recognized by V4. V4 should now generate Shift+1 for that key combination and not Shift+! anymore. Fixes a bug reported on the forum by Marco here: http://moi3d.com/forum/index.php?webtag=MOI&msg=8682.50

Background images - Fixed a crash when making a background image from a bitmap file with lower than 32-bit color depth. Reported on the forum by Vladimir here: http://moi3d.com/forum/index.php?webtag=MOI&msg=8682.100

Undo - Fixed a bug where undo wouldn't find the proper object to restore in some cases. Reported on the forum by Val here: http://moi3d.com/forum/index.php?webtag=MOI&msg=8682.83


Scripting:

moi.geometryDatabase.findStyle() - fixed a bug in the findStyle() function for the "create if not found" case, reported on the forum by Max here: http://moi3d.com/forum/index.php?webtag=MOI&msg=8682.16

obj.getBoundingBox() - The boolean parameter for getting high accuracy bounds was marked as required in v4, while in v3 it was optional with a default of false. Updated v4 to match v3.

moi.filesystem.openFileStream - switch to use QTextStream for reading to get better unicode support. Unicode files with byte order marks should be supported now, the default will be UTF-8 if no byte order mark is found. Also added new methods .setWriteBOM( boolean ) which you can call to make writing a text file write the byte order mark at the front (default is no BOM), and .setCodec( name ) to have specific control over what encoding to use for reading or writing. Supported codecs are listed here: http://doc.qt.io/qt-5/qtextcodec.html#details .

moi://appdata/ - add support for moi://appdata/ URLs so you can load HTML resources like images from the MoI app data directory. moi://appdata/ will resolve to %AppData%\Moi on Windows and to ~/Library/Application Support/Moi on Mac.

String to integer conversion - Updated so a string value of "1.0" will be successfully converted to an integer value of 1 rather than rejecting it. Fixes a change in behavior from v3 to v4 that broke some of Brian's scripts.

factory.setValue() - switched to v3 behavior so sending the wrong object type doesn't trigger an exception. Fixes the SpurGearProfile script.


Dec-11-2017

Forum announcement

Bug fixes and changes:

Mac full screen mode - getting sent back to the desktop the first time you moved the mouse over each viewport after going to full screen mode should be finally fixed! Also Ctrl+Cmd+F shortcut key for full screen toggle should now work.

Mac trackpad and Magic Mouse - Finished implementing multitouch view navigation for the trackpad and Magic Mouse on Mac. Magic Mouse should be back to zooming instead of panning. The Zoom speed can be adjusted in moi.ini [MultiTouch] MagicMouseZoomSpeed=1.0 . Change this to something like 2.0 to make the default behavior faster or 0.5 to go slower. You can also hold down the Ctrl key to go slower as well.

Mac ignored mouse bug - Fix for bug where mousemove events would stop working in certain conditions when restoring the main window from hidden or showing a modal dialog. Fixes bug reported by Finema here: http://moi3d.com/forum/index.php?webtag=MOI&msg=8675.189

Updated "On" object snap mechanics - Changed the way On object snap for curves works to get better accuracy with curves far from the origin.

Incorrect default values for some commands - Fixed a bug where the default values for the Text and Rebuild commands were incorrect on locales that use commas for the decimal separator. Reported by Vladimir on the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=8704.32

Trim - fixed a bug in the Edit > Trim command where if an object was set to be both an object to be trimmed as well as a cutting object it could get hidden unexpectedly.

Command button highlighting - Fix for command buttons remaining highlighted after command ends. Reported by Vladimir on the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=8704.32

Read-only file handling - Fix bug where using File > Save wasn't prompting for a new file name when the current opened file was set to read-only. Reported in the forum by mhasse here: http://moi3d.com/forum/index.php?webtag=MOI&msg=8714.1

Crash fix for newer CPU/Older OS combination - Fix for 0xc000001d illegal instruction exception when running on Win7 SP0 with a newer AVX-capable CPU.

Hidden-line generation - Increase Canvas megapixel size limit from 175 to 1000.

Degenerate box error - fixed bug where a script error would be displayed if you made a degenerate rectangle in any of the Draw solid > Box commands.

Update text input fields - Text input fields were only applying typed in values when the input panel was open, or when the Enter or Tab keys were pressed, not if just clicking outside the field as they now will. Should fix a PDF export dialog bug reported by reported by Moujiik here: http://moi3d.com/forum/index.php?webtag=MOI&msg=8704.15


Scripting:

viewport.setCameraAndTarget() - Fixed bug in viewport.setCameraAndTarget() function, reported in the forum by Ralf here: http://moi3d.com/forum/index.php?webtag=MOI&msg=8704.25

Process memory use limit - Added option in moi.ini for limiting maximum memory use - Windows only. Can be set in moi.ini under [Settings] MaxProcessMemoryUse=x . Requested by Burr on the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=8704.26

moi.view.screenshot - Fix bug where the moi.view.screenshot() method was capturing the wrong area of the screen on Mac.


Enable setting default values for controls from shortcut keys. UI controls can now be triggered or initialized with custom values if the control's id is supplied in the command-line parameters for the command. For buttons, the presence of the button's id value in command line parameters will trigger a UI event for the button the first time that it is shown, this will have the same effect as clicking the button. For dropdowns and checkboxes, the presence of the control's id in an id=value pair will use that value to initialize the control rather than taking the last used or default value as normal.

This makes it possible to set up shortcut keys that package up different options within commands, for example:

Trim addtrimpoints removekeepmode=keep

Trim addtrimpoints removekeepmode=remove

Trim isocurve isodir=u

Trim isocurve isodir=v

Line bothsides=true

Extrude tapered


Feb-9-2018

Forum announcement

Text labels inside viewports still not implemented yet, that's the last remaining thing still left to get v4 fully caught up.


Bug fixes and changes:


Dashed/Dotted line styles implemented so things like the grid, construction lines, and hidden line display should be looking proper now.

Appdata commands folder - MoI will now look for commands in a "commands" subfolder under appdata in addition to the regular commands folder. On Windows this is located at C:\Users\<username>\AppData\Roaming\Moi\commands, on Mac it's /Users/<username>/Library/Application Support/Moi/commands . Note that on Mac the user Library folder is hidden by default, you can use the Cmd Shift . [period] shortcut while in a Finder window to show it for that Finder session. This will be the new recommended place to install plug-in commands, if you put them here then you won't have to copy them anywhere when new betas are released.

DXF import layers - Support reading layers in the DXF file as Styles in MoI.

DXF export layer names - Make layer names in DXF files encoded as AutoCAD is expecting for an AutoCAD 2000 DXF file. By default names will be written using Windows-1252 encoding, with unicode characters escaped. Fixes crashes in AutoCAD when opening a DXF file exported from MoI with layer names using non-ascii characters. It is possible to override this and use UTF-8 encoding for reading or writing names by settings in moi.ini: [DXF Import] ReadNamesAsUTF8=y and [DXF Export] WriteNamesAsUTF8=y

Alt/Cmd Shortcut keys Mac - Fix bug where Cmd+ keys were getting converted into Alt+ keys when written out in v4, and also that Alt+ keys were converted to Cmd+ keys in the moi.ini file by V3 if V3 was opened. Shortcut keys on the v4 Mac version are now written to a separate [Shortcut Keys Mac] section in moi.ini to avoid the conflict with V3.

Extrude responsiveness Mac - Rework communication with worker process to fix problem where some commands like Extrude were not as responsive as V3 especially on Mac.

Window resizing Mac - Fixes for flickering that was happening when turning browser pane on/off, switching between Split/3D/Top/Front/Right views and main window resizing.

Construction lines - Fix bug where when drawing a construction line, letting the mouse button up outside the viewport would finish the construction line, which prevents snaps from being changed. Changed to same behavior as V3. Fixes a bug reported by Vladimir on the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=8731.59

Numeric input field display - if a value is typed into an input field the number of decimal places that were used is remembered for the session and will be used the next time the field is displayed. Fixes problems like typing in 0.001 for the Rebuild command tolerance but then having it show up as 0 the next time because of rounding to 2 decimal places.

Command macros - Make macro parameters sent in command line parameters also work for non-persistent controls like the ones in the Box command. Updated the UI for several commands to have input field ids of just "width" and "height" so now it's possible to make a shortcut of Box width=10 for example.

Straight snap - Fix bug where pressing or releasing Shift without any mouse movement didn't show the straight snap changing as it did in V3.

Alt+MMB view manipulation - Revert Alt+MMB to Pan to behave same as previous versions of MoI. Previously in V4 Alt+MMB had been set to do view rotation in the 3D view for compatibility with 3DS Max, but this change in default behavior has caused problems for some users accustomed to how V3 behaved. You can still enable Alt+MMB to do view rotation by a setting in moi.ini : [View] AltMMBRotate=y

Alt+RMB view manipulation - Add option for Alt+RMB to do Pan instead of Zoom, for ZBrush compatibility. This can be enabled in moi.ini under [View] AltRMBPan=y

Shortcuts editor - Fix bug where right-clicking in a text control in the Shortcuts editor to get the cut/copy/paste context menu didn't work right.

Windows shutdown bug - Fix bug when shutting down Windows while MoI is still open reported by Vladimir in the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=8731.81

Trim curve by point - Update tolerance used for trimming curves to points. Fixes Trim bug reported by bemfarmer on the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=8786.18

Fix crash on program shutdown if license key dialog was canceled.

OBJ export - Fix invalid UV coordinates generated in .obj export when meshing a degenerate face. Fixes bug reported by 4rw1n in the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=8754.20


Scripting:

Added additional script interface for Curve and CurveSegment objects.

For both Curves and CurveSegments:

crv.domainMin - Property that returns lower bound of the curve's parametric domain.

crv.domainMax - Property that returns upper bound of the curve's parametric domain.

crv.evaluatePoint( t ) - Function returning a point for the given parameter value.

crv.evaluateTangent( t, FromLeft = true ) - Function returning a unit tangent vector for the given parameter value. Optional second parameter controls calculating the tangent from the lower or higher parametric side at a discontinuity, default value = true.

crv.evaluateCurvature( t, FromLeft = true ) - Function returning the curvature vector for the given parameter value. Optional second parameter controls calculating the tangent from the lower or higher parametric side at a discontinuity, default value = true.

crv.evaluateDerivatives( t, NumDerivs, FromLeft = true ) - Function returning a list of derivative values for the given parameter value. Optional third parameter controls calculating the tangent from the lower or higher parametric side at a discontinuity, default value = true. The derivatives are returned in a list of length NumDerivs+1 with index 0 having the point value, index 1 having the first derivative, index 2 having the second derivative, etc...

crv.isPlanar - Property that returns true if the curve's control polygon is planar.

crv.planarFrame - Property that returns a coordinate frame with an origin point at the curve's control polygon centroid and a z axis along the plane normal, only valid if crv.isPlanar == true.

crv.isOnPlane( frame ) - Function that returns true if the curve is on the given frame's x/y plane.

crv.isOnParallelPlane( frame ) - Function that returns true if the curve is on a plane parallel to the given frame's x/y plane.

crv.isClosed - Property that returns true if the curve is closed.

crv.isPeriodic - Property that returns true if the curve has periodic ends (overlapping control points at start/end rather than a corner point at the start/end).

crv.isDegenerate - Property that returns true if the curve has a degenerate control polygon with all the points stacked in the same spot.

crv.isLine - Property that returns true if the curve has the shape of a line.

crv.isSimpleLine - Property that returns true if the curve is a simple line segment made up of only 2 control points.

crv.isCircle - Property that returns true if the curve is a circle.

crv.isArc - Property that returns true if the curve is a circular arc.

crv.isEllipse - Property that returns true if the curve is an ellipse (either a full ellipse or an elliptical arc).

crv.conicFrame - Property that returns the coordinate frame of a circle, arc, or ellipse. Only valid if isCircle, isArc, or isEllipse returns true.

crv.conicRadius - Property that returns the radius of a circle, arc or the x-axis radius of an ellipse. Only valid if isCircle, isArc, or isEllipse returns true.

crv.conicRadiusY - Property that returns the y-axis radius of an ellipse. Only valid if isEllipse returns true.

crv.conicEndAngleRadians - Property that returns the end angle in radians of a circular arc. The arc starts at the x-axis of the arc's frame. Only valid if isArc returns true.


The following only apply to Curves, not CurveSegments:

crv.isClickSelected - Property that returns true if the curve was selected by a mouse click action.

crv.clickSelectionPoint - Property that returns the point on the curve where it was click selected. Only valid if isClickSelected returns true.

crv.clickSelectionParam - Property that returns the parameter value of the curve where it was click selected. Only valid if isClickSelected returns true.

crv.isClickSelectedNearEnd - Property that returns true if the curve was selected by a mouse click action and it was clicked on a spot closer to it's ending side than its starting side.


Added moi.ui.systemDPI property.

Make text input controls fire an onchange event in addition to the previous onvaluechange event - onchange is the standard one used by regular input elements.

Add new script function moi.ui.findElement( 'id' ) - looks through all UIPanels for any element with the given id. Returns the element or null if not found.

Implement startup scripts. Now when MoI is started it will run all .js files it finds in a directory named "startup" inside of MoI's AppData. It will also look for any startup directory inside the main application install folder as well. The scripts will run right before the main window is displayed - note that if the script puts up a modal dialog the main window won't show until the script finishes. Scripts will be run in alphabetical order. MoI will create startup and commands directories inside appdata.

Add a container with id="CommandBarCustomUI" in CommandBar.htm to make it easier to populate the UI from a startup script. Example:
    var container = moi.ui.commandBar.CommandBarCustomUI;
    container.insertAdjacentHTML( 'beforeEnd', '<moi:CommandButton>Test1</moi:CommandButton>' );

Appdata/scripts directory - you can add a scripts folder inside appdata and MoI will also check there for running an "instant script".


Add trackpadgesture event for Mac - Set up a custom trackpadgesture event so the node editor dialog can use Mac trackpad gestures for zooming and panning.
The trackpadgesture event object has these properties:
    event.gestureType : string value of 'Scroll', 'SmartZoom', 'Zoom', or 'Rotate'.
    event.deltaX, event.deltaY : movement for Scroll , 2 fingers swiping.
    event.numTouches : number of touch points being used for Scroll.
    event.scaleFactor : scale factor for pinch/zoom
    event.angle : angle change for Rotate.

SmartZoom is a 2 finger double tap, used by MoI viewports for view reset. The trackpadgesture event also has all the same properties as a mouse event giving the location of the mouse cursor. By default the Scroll gesture generates a mouse wheel event, to prevent that use event.preventDefault();


May-12-2018

Forum announcement

I think this version is all caught up now, the last remaining things that were missing from v3 such as text labels inside viewports are now implemented and all regression bugs that have been reported should now be fixed. So if that holds up this should be a major milestone for v4 where I'll now be switching to working on new features rather than rewriting stuff from v3.

Bug fixes and changes:


Implemented text rendering inside viewports for things like snapping tag labels ("End", "Mid", etc...)

OBJ export - Fixed bug where invalid OBJ file would be generated if object names had extended characters in them. Reported through e-mail by Lewis.

STEP import - Fixed crash bug in STEP import reported through e-mail by John Lewis.

iMac Pro draw speed - Fixed bug where too frequent UI updates caused a noticeable draw speed slowdown compared to V3 on some high dpi Mac machines. Fixes bug reported by Metin.

Mouse cursors - Fixed various bugs where the mouse cursor wasn't updating properly, reported by Vladimir in the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=8814.128

Text field right click context menu - Fixed a bug with right click on text input fields in menus being offset.

Menu hover state - Fixed a bug where when launching a menu, the button hover state on the launching UI would get stuck until another click.

Color picker custom colors - Custom colors set in the color picker dialog are now saved to and restored from moi.ini so they will persist between program sessions. Fixes bug reported by Moujiik on the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=8855.5

Object properties - Fixed bug where cached objects in the async worker process wouldn't get updated if style, name, or selection changed. Fixes bug reported on the newsgroup by Brian here: http://moi3d.com/forum/index.php?webtag=MOI&msg=8814.81

Selection filter crash - Fix for crash when setting a style selection filter, reported by Shane on the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=8872.1

Busy script interruption - Scripts that do a lot of calculation in loops can now be interrupted by pushing the Escape key. Requested on the forum by Marco here: http://moi3d.com/forum/index.php?webtag=MOI&msg=8814.63

Trackpad scroll gesture - Fix bug where Mac trackpad scroll gesture could be treated as a mouse wheel event, if the first touch happened on a different window. Fixes bug reported by Max in the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=8814.21

DXF export arcs and circles - Previously arcs and circles that had a normal vector pointing straight down in the negative z axis direction would get flipped in the export, because there are a couple of programs that do not read those correctly. But this direction flip is bad for CNC usage, so the default now is to not flip them. It is possible to return to the previous flipping behavior by a setting in moi.ini: [DXF Export] FlipNegativeZAxisCirclesAndArcs=y Fixes a bug reported in the forum by Vladimir here: http://moi3d.com/forum/index.php?webtag=MOI&msg=6925.419

VSync - Added option in moi.ini to limit screen redraw with vsync, might help if you are experiencing a tearing type effect in the display. Can be set under [View] VSync=y . Requested by torsten in the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=8814.140

Additional command dirs - Add moi.ini setting under [Commands] AdditionalCommandsDirs= which can be set to a semi-colon delimited list of additional directories to look for commands, in addition to the built in commands and appdata commands.
[Commands]
AdditionalCommandsDirs=c:\path1;c:\path2
Requested on the forum by Hamish here: http://moi3d.com/forum/messages.php?webtag=MOI&msg=8814.97

FBX export vertex colors - Add option in moi.ini for writing vertex colors to FBX exports. Can be enabled by setting:
[FBX Export]
WriteVertexColors=y
Requested by Stefan in the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=8853.5

Graphics API override - Add moi.ini option for which graphics API to use. On Windows or Linux/Wine a specific render engine can be controlled by a setting in moi.ini, under the [View] section, GraphicsAPI key:
[View]
GraphicsAPI=Direct3D11
or
GraphicsAPI=OpenGL

Startup working directory - Add moi.ini options for setting the initial working directory on startup.
[Settings]
StartupWorkingDirectory=
SaveWorkingDirectoryAtExit=n
Requested by Marc in the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=8814.88

Trackpad as mouse wheel - Add setting in moi.ini for making Mac trackpad scroll used as a mouse wheel zoom as older MoI versions did.
[MultiTouch]
UseTrackpadScrollAsMouseWheel=y
Requested by Marc in the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=8814.88


Jun-6-2018

Forum announcement

New stuff:

Major overhaul of STEP/IGES/SAT importing.

These imports will now no longer block the main thread so it won't look like MoI is frozen while it is loading a big file.

The loading happens in 2 phases, first an initial scan of the file that doesn't do too much work except logging the structure of where objects are located. Then the next heavier phase of processing the objects will make use of multiple CPU cores for a major speed increase. So there should be a very substantial performance increase in loading large STEP, IGES, or SAT files in this version.

Also the HarmonyWare libraries used for working with these formats have now been updated from version 1.7.11 to the latest 2.0.8 release and there are a lot of bug fixes from that. A notable one is that some incorrect positioning of instances should be good now. Also some other fixes on MoI's side should make for colors coming through from STEP files that were previously missed.

It would be cool to hear how the new multi-core enabled importer performs on some big files compared to MoI v3!

Also please let me know if you see any new problems with any particular imports. If you do please try to send the file to me at moi@moi3d.com so I can test with it over here, I will keep any files confidential.


Other things:

Window selection Mac - Fix for sluggish selection window dragging reported by James through e-mail.

Properties panel size display - Adjusted the quick size calculation for the properties panel to hopefully increase accuracy a little.

Properties panel - Report closed edges as a distinct object type. Fixes an issue of inconsistent behavior between curves and edges reported through e-mail by Scott.

Edit frame grip size - Added option in moi.ini for setting edit frame grip handle pixel size, so it can be adjusted for higher res displays, Requested by Barry in the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=8960.1
[View]
EditFrameGripPixelSize=24

DisableOnSrfInOrtho setting - Added scripting access to DisableOnSrfInOrtho setting so it can be toggled at runtime under moi.drawingAids.disableOnSrfInOrtho . Requested on the forum by immortalx here: http://moi3d.com/forum/index.php?webtag=MOI&msg=8947.1

NURBS Export RotateZUpToYUp option - Added option in moi.ini for option for exporting STEP/IGES/SAT formats to rotate the export to a Y up coordinate system.
[NURBS Export]
RotateZUpToYUp=y

Update viewport right click - Don't push Cancel buttons with a viewport right click, it's too easy to accidentally cancel a long file import or things like that.


Aug-28-2018

Forum announcement

The main focus for this beta is performance enhancements.

3DM files will now use multiple CPU cores for loading so large files should load significantly faster and show a progress bar.

Also the display engine has been enhanced to take advantage of modern GPUs - display data is now cached in the GPU's VRAM which should result in faster redraw speed for large files.


Other bug fixes and changes:

Mac version multiple windows - Add "Window" menu to Mac version top menu. Shows all open files and allows switching between them easier. Also support Cmd+Tilde (Cmd+~) and Cmd+Shift+Tilde for switching to next/prev window.

Construction line bug fix - Fix construction line creation bug reported by jopo in the forum here:
http://moi3d.com/forum/index.php?webtag=MOI&msg=8966.53

Object drag bug fix - fix bug for moving the mouse over another viewport when dragging objects. Reported by Burr on the forum here:
http://moi3d.com/forum/index.php?webtag=MOI&msg=9016.1

Mac AMD performance - fix problem with default buffer location with OpenGL on some AMD cards that was causing slow redraws on some machines like iMac pro.

Updated Mac file open behavior. To match the Mac document based application framework behavior, if a file is opened by drag/drop or by double-clicking on the desktop icon do not open a new window for it if there is an existing window with it already open.

3DS Max zoom compatibility - Added moi.ini option for Alt+Ctrl+MMB zoom for 3DS Max compatibility. Can be set under:
[View]
AltCtrlMMBZoom=y

Object snap labels on left side - Add moi.ini option to make object snap labels shown to the left of the target point, can be useful if you're drawing directly on a screen such as with a Cintiq screen. Can be set in moi.ini under:
[Drawing Aids]
ShowObjectSnapLabelToLeft=n

Shortcut keys update - On Windows if there is a [Shortcut Keys Mac] section of the moi.ini file, read and write shortcuts from there so you can copy the moi.ini file over from Mac to Windows. Fixes issue reported on the forum by Matt here:
http://moi3d.com/forum/index.php?webtag=MOI&msg=8970.1

STEP import bug fix - Fixed import bug for file MF2018.STEP getting stuck at 36%, reported on the forum by Marco here:
http://moi3d.com/forum/index.php?webtag=MOI&msg=8966.9
Also fixed a different STEP import bug reported by Eric Bucy through e-mail.

Fixed file loader UI bug - Fix bug where main window would not maximize properly when trying to show progress bar UI before main window was initially displayed, such as when MoI launched by double clicking a STP file. Fixes bug reported in the forum by OSTexo here:
OSTexo http://moi3d.com/forum/index.php?webtag=MOI&msg=8966.40

File notes - Add notes property that is saved to and loaded from .3dm files. Can be accessed by setting up a shortcut key with:
script: moi.ui.createDialog( 'moi://ui/NotesDialog.htm', 'resizeable' );

Viewport right click option - Add option for v3 behavior of right clicking in a viewport working as a shortcut for pushing the Cancel button when a command only has Cancel and not Done. Can be set in moi.ini under:
[View] DoRightClickCancel=y

Add new appdata directory option - MoI will now look for an appdata directory that has been created alongside "commands", "ui", etc... and if found will use that location as the appdata folder, to make it possible to store everything within a single directory.

Add moi.ini setting for selection hit test radius
[View]
SelectionHitTestRadius=12

Scene browser scripting - Added script access to scene browser items so it is possible to make a startup script that expands sections on program startup. To do that put the following in a .js file in your Moi appdata startup folder:
var items = moi.ui.sceneBrowser.rootItems;
for ( var i = 0; i < items.length; ++i )
    items[i].expanded = true;


Oct-17-2018

Forum announcement

The main focus for this beta is a polygon sub-d surface to NURBS conversion method, available on the side pane under SubD > Create > From file. This allows you to open an .obj file that contains a sub-d polygon cage and have it converted to a high quality NURBS object in MoI.

Some other stuff:

Settings for page size are now available in PDF/AI exports.

Fixed crash bug when modifying display mesh angle.

Updated STEP export to fix problem with object names not coming through to SolidWorks, Fusion360 and KeyShot.

Added moi.ini option to set current file name with foreign file types. In moi.ini under [Settings] SetNameWhenOpeningAllFileTypes=y When set, the current file name is set for all file opens not just .3dm files. Requested by Alex on the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=9044.41

Updated DXF export to allow the dialog to be suppressed and options set by script. Parameters that can be set are:
// DXF export function parameter options:
//
// NoUI=true
// ExportType=2d | 3d
// ProjectionView=top | 3d | front | right
// WriteCurvesAs=splines | cubicsplines | polylines
// PolylineAngleDegrees=10.0
// UseSimpleEntities=true
// NumDecimalPlaces=12
//
// GenerateHiddenLines=false
// HiddenLineLayerMode=fromstyle | custom
// HiddenLineLayerName=Hidden lines (layer name to use when layer mode = custom)
// IgnoreTangentEdges=false
// Resolution=25.0


Feb-27-2019

Forum announcement

New stuff:

Numerous fixes for SubD import crashes and translation issues.

Fix for SubD imports on objects of small scale.

Fix for SubD imports with meshes that have multiple volumes that partially overlap each other. Previously these could sometimes not get separated into different solids properly.

Update SubD import to read materials from the .obj file and make Styles from them in MoI. Also patch combining will pay attention to material assignments so patches will not get combined across different materials. Can be disabled under Options > Import/Export > SubD import options > "Use materials" checkbox.

Add SubD import option for either fewer patches but with denser surface control points, or more patches around extraordinary vertices but with fewer surface control points in regular areas of the mesh. Set under Options > Import/Export > SubD import options > "Patch type".

Update multiple selection - Add option for doing multiple selection only when shift key is down. Options > General > Multiple selection: "Always" or "Only when Shift is down".

Fix cylinder boolean union bug. There was a bug with combining cylinders in boolean union when the cylinders had opposite axis directions. This was the cause of some occasional mysterious missing fillets where the fillet surface was ending up displaced some distance away from the trim boundaries.

Fix a sporadic crash in Chamfer reported through e-mail by Sebastian Bielecki.

Fix crash in center object snap after copy/pasting an arc edge curve.

Update tesselator - fix degenerate span display bug. Fixes bug in mesher for making display meshes on surfaces with nearly degenerate spans. Fixes a bug reported through PM by BarryH.

Add option for scaling STL export to target unit system. Under Options > Import/Export > STL Options > "Export units conversion".

Update curve filleting - Enable "Constant distance" fillet mode for curves, currently only works for line segments.

Fix 3DConnexion buttons bug where undo/redo on space mouse button presses was not working, reported by Ivan in the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=9130.1

Update command parameter parsing. Allow quotes to control parameter parsing so values with spaces can be used, for example: ArrayDir mode="Extent, Count" . Fixes a problem reported on the forum by Bravlin here: http://moi3d.com/forum/index.php?webtag=MOI&msg=6087.75

Update shortcut keys parameters - start and end scripts. Make it possible for shortcut keys to define parameters for oncommandstart="" and oncommandend="" for script to run at the start or end of the command. For example this shortcut will run a script when the line command ends to select it: line oncommandend="moi.geometryDatabase.selectLastCreated();"

Update shortcut keys for file commands. Enable controlling the file dialog file type with keyboard shortcuts by adding a filetype= option in the shortcut key. For example a shortcut key with: Open filetype=igs will make the file dialog have the .igs file type active. Can be used with Open, SaveAs, Import, and Export commands. Requested in the forum by Peticel here: http://moi3d.com/forum/index.php?webtag=MOI&msg=9118.1

Update command UI automation - ordering. Some UI events cause the command to finish, so to be able to control a command the ordering of the events needs to be controllable. Rework the UI event triggering so they are triggered in the order given in the command line parameters. This makes the following possible:
extrude tapered draftangle=20 distanceinput=10
Previously that didn't work because the distanceinput is earlier in the UI and so got triggered earlier and ended the command before tapered or draftangle could be processed.

Fix properties panel line length editing bug reported through e-mail by Tim Hickox.

Fix tolerance bug that could cause small sized objects to get mangled boundaries when joined, regression from v3.

Fix IGES import joining regression - Make iges entity 128 surfaces join together if joining is enabled, regression from v3.

Updated IGES import joining - allow T junctures to join instead of only simple matching endpoints only.

Fix IGES import bug for some cases with edges on seams of closed surfaces. Fixes an IGES file sent through e-mail by Charles Ludeke.

Fix excessive load time with STEP file that had a degenerate surface in it.

Update license key file paths - Allow a path to moi_v3_license.key to be passed as a command line parameter or set as an environment variable like moi_v3_license.key=path . Requested by Mariusz in the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=9106.1

If straight snap snap angle is set to 0, disable x/y plane straight snap line snapping.

Add warning if running on Mac case sensitive file system.

Update file dialogs - Save and restore last used file dialog location on all platforms.

Update file loader progress bar - Add full path as tooltip to file name label.

Add option for limiting the number of CPU cores used by file loading. Can be set under: [Settings] FileLoaderThreadLimit=x

Update scripting - exe command line args
moi.getExecutableCommandLineArgs() - returns list of command line parameters for launching the executable.
moi.geometryDatabase.initialFileToLoad - filename for initial file to load by executable command line parameter.

Scripting - Add moi.command.currentCommandName property for getting the current running command name by script, or empty string if no command currently running. Requested by Bravlin on the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=7238.61

Update Scene Browser, Types > Edges and Types > Faces behavior. Don't show edges or faces of hidden breps unless shift is down. Makes it easier to turn edges on/off without hidden breps being shown. Requested through e-mail by Tim Hickox

Update scene browser - Make sure scene browser is initialized before any startup script that wants to access it is run.

Scene browser script access - Add more script access to SceneBrowser: sceneBrowser.objects, sceneBrowser.types, and sceneBrowser.styles to get the root item for those sections.
Added methods to a scene browser item:
    item.find('name') - will search all children and return an item with that name or null if none present.
    item.alterStatus(mode,rightclick) - alter the status area of an item, that's the one with the eye icon. Mode can be one of 'show','hide','lock','unlock'. Optional boolean parameter for rightclick will make it behave like a right mouse button click.
    item.select(mode,rightclick) - alter the selection dot of an item. Mode can be one of 'toggle','select','deselect','filteron','filteroff'. Optional boolean parameter for rightclick will make it behave like a right mouse button click.
Here's an example that toggles the selection dot for the Blue item under styles: moi.ui.scenebrowser.styles.find('Blue').select('toggle');

Fix selection redraw bug on static objects where objects could get stuck looking like they were selected in the Intersect, Project, Silhouette, Join, and Separate commands. Reported through e-mail by James Elliott.

Fix bug in Add pt with rational curves, reported in the forum by Bravlin here: http://moi3d.com/forum/index.php?webtag=MOI&msg=9216.34

Fix for wrong selection display on iMac with NVIDIA GeForce GT 750M 1024 MB - work around driver bug.

Fix for mouse move events getting stacked up on some Mac machines.

Fix .skp and .fbx format export with unicode file names on Mac. Exporting to .skp or .fbx formats with certain kinds certain kinds of extended characters in the filename would fail.

Update filename display Mac - Fix bug where filenames with <> characters were being treated as html tags.

Fix MRU file list Mac - Fixed bug where on Mac if a file had a \ in it, it would not persist to the MRU list properly.

Fix Mac crash when exporting to .3ds format.

Fix QtWebKit Ctrl/Meta flippage on Mac. Make the HTML event object use Ctrl for Ctrl and Cmd for Cmd instead of flipped on Mac.

Turn off viewport display time that was previously always on.

Update mouse wheel for node editor - dispatch wheel events to canvas elements.

Fix bug in <moi:Select> control when the <moi:Select> element had keyboard focus when the command UI document was torn down. Fixes bug reported by Bravlin on the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=952.31

Add setting for allowing snap plane change in ortho:
[Drawing Aids]
AllowSnapPlaneChangeInOrtho=y
When set the orientation picker will align to surfaces in ortho views, by default it only aligns to surfaces in the 3D view.

Update viewport text - fallback fonts. Switch to a fallback font if the regular UI font does not contain glyphs that we are going to be using in the viewport. This enables stuff like Japanese text to render properly in the viewport even if the UI font has not been set to a font with Japanese glyphs in it.

Update Wine hit testing BGRA textures. Add option to use BGRA for the texture format for off-screen rendering. Make it used by default when running under Wine. Hopefully will solve selection problems where hit test map had unexpected byte ordering on the propietary Nvidia driver, as reported by Ronnie Ashlock.

Add option to use same color picker dialog as v3 on Windows. Can be set under
[Color Dialog]
UseV3ColorDialog=y
Requested by Barry-H in the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=9100.241

Update scripting moi.view.resetAll() - Update moi.view.resetAll() to take an optional parameter. Can be one of:
    'auto' - Do automatic toggle between selected or all.
    'selected' - Only reset to selected objects.
    'all' - Only reset to all objects.
    'default' - Reset to default startup views, keeping reversed views (bottom/back/left).
    'harddefault' - Reset to startup views and get rid of reversed views (bottom view will become top).
Requested on the forum by arial here: http://moi3d.com/forum/index.php?webtag=MOI&msg=8123.39

Update edit style shortcut. Make Ctrl+Left click on the style line in the properties panel also work as a style edit shortcut in addition to right-click. Requested by shane in the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=9245.5

Add moi.ini option for window select behavior.
[Selection]
WindowSelectMode_Combo_Intersect_Contained=Combo
Can be one of "Combo", "Intersect", or "Contained".

Update mesh export - allow generating empty mesh files when saving to OBJ, STL, 3DS, LWO, FBX, or SKP mesh formats. Requested by Mikael Sundell for pipeline integration.


Oct-10-2019

Forum announcement

The primary focus for this release is a new detailed object properties dialog and new annotation/dimension tools on the "Dim" tab in the side pane.

The new extended properties dialog is triggered by the "Details..." button in the Properties Panel here:

get_attachment.php?webtag=MOI&hash=f48bc5937a8f8647858ee122f26fd746&filename=detailed_object_properties1.png

The Type: section of the detailed object properties dialog will give some additional information about the object type:

get_attachment.php?webtag=MOI&hash=f523480b2b9504254b2208f7bdadf912&filename=detailed_object_properties2.png

For curves it will report if it is an open curve or closed curve, whether it has the shape of a line, polyline, circle, arc, ellipse, elliptical arc, whether it is planar and the number of segments in the curve.

For surface/solid objects it will report if it is a solid, open joined surface, or open individual surface, if it is a planar surface, the number of joined edges, number of naked edges, and number of faces.

For edges it will report open, closed, joined, naked, line, circle, ellipse, elliptical arc, and planar.

For a face selected it will report if it is a planar face.

For an annotation selected it will report if it is a linear dimension, radial dimension, angular dimension, leader, or annotation text.

When multiple objects are selected it will make a combined report like this:

get_attachment.php?webtag=MOI&hash=a41d725c0dbdec497aebe4b79123c060&filename=detailed_object_properties3.png

The type labels can be clicked on to filter the selection down to just the objects that match that label:

get_attachment.php?webtag=MOI&hash=2dfca899ad8b98dc077ef0274ccf96d7&filename=detailed_object_properties4.png

You can also hold down the shift key which will allow you to click multiple labels and the filtering will be triggered when you release the shift key. Holding down the Ctrl key while clicking on a label will remove its objects from the selection.

Lower down on the dialog there are sections for Curve properties, Solid or surface properties, and Annotation properties if any of those types of objects are selected:

get_attachment.php?webtag=MOI&hash=a2c2884805bea74d3f1008fa82fa241f&filename=detailed_object_properties5.png

There you can calculate the length of curves, the surface area or volume of a surface or solid, and adjust properties for annotation objects.

When you click the "Calc" button to calculate a value the button will be replaced with a numeric value and a small "Copy" icon will appear next to it. You can click on the value to copy it to the system clipboard.


The other major new feature area are annotation objects which can be used to add dimensions and text to your model to use for documentation.

These are added by 7 new commands in the Dim tab on the side pane here:

get_attachment.php?webtag=MOI&hash=3ac8aa861ce0381ee8a301bb1f7eda82&filename=dim_tab.png

The DimHorizontal command creates a linear dimension going in the x-axis direction of the construction plane:
get_attachment.php?webtag=MOI&hash=adade4b11952793ad9e912e04ac1ee9d&filename=DimHorizontal.png

The DimVertical command creates a linear dimension going in the y-axis direction of the construction plane:
get_attachment.php?webtag=MOI&hash=c594a4d2c93cbc4b594fcc9482ab43ca&filename=DimVertical.png

The DimAligned command creates a linear dimension going in any direction on the construction plane:
get_attachment.php?webtag=MOI&hash=794f907b2a85dfc93ea5462f919680fa&filename=DimAligned.png

All 3 of the linear dimension commands have a "From object" button in their command options which you can trigger to take the start and end point of a curve as the first 2 points of the dimension.

The DimRadius command creates a radial dimension on a circle or arc curve:
get_attachment.php?webtag=MOI&hash=3fe29174d3a44247c189f098635089bf&filename=DimRadius.png

The DimAngle command creates an angular dimension on the construction plane. There is a "From lines" button in its command options which will allow you to select 2 line objects instead of picking points.
get_attachment.php?webtag=MOI&hash=899daa66d11473a80215ced67ec3707f&filename=DimAngle.png

The Leader command creates a leader object which is a text label with an arrow.
get_attachment.php?webtag=MOI&hash=3e412e15007311c6f216db34d71e1907&filename=Leader.jpg

The AnnotationText command creates an annotation text object which is a text box by itself, no arrows.

Annotations are currently only saved to and from .3dm files. Saving them to DXF and PDF/AI files will be upcoming.

There is an option in moi.ini for changing the display appearance of arrowheads in annotations by disabling mitered arrowhead tips:
[Annotations]
MiterArrowheads=y


Other bug fixes and updates:

Update FBX export - FBX version, object names, and materials. Add option for which FBX version to use under Options dialog > Import/Export > FBX options > FBX version. Object names are now written to the FBX files instead of only generic "object1", "object2", ... names and styles are now written as materials in the FBX export. Writing materials can be disabled in moi.ini under [FBX Export] WriteMaterials=n

Added SubD import option for open boundaries behavior under Options > Import/Export > SubD import options. Can be one of "Open boundaries: Keep corners" or "Open boundaries: Rounded". The default is "Keep corners" as per the discussion on the forum here:
http://moi3d.com/forum/index.php?webtag=MOI&msg=9274.1
It can be set to "Open boundaries: Rounded" to return to the previous beta's behavior at open boundary areas.

Update DXF/PDF/AI hidden line layer controls. Add an optional prefix and/or suffix to be added to the style name when generating a 2D hidden line drawing to DXF/PDF/AI formats. Requested on the forum by miquik here:
http://moi3d.com/forum/index.php?webtag=MOI&msg=9418.1

Update view tabs - enable right click to get reverse views. Requested by Juraj in the forum here:
http://moi3d.com/forum/index.php?webtag=MOI&msg=9473.10

Add option in moi.ini for zooming using Shift+MMB:
[View]
ShiftMMBZoom=y

Update file dialog filters. Make "All supported files" the first item in the file open filter list on both Windows and Mac (previously it was only on Mac). So that will be the default filter when the file dialog is first opened. This can be reverted to the previous behavior by a setting in moi.ini :
[FileDialog]
AllSupportedAtBottom=y
Requested by agonyii in the discussion forum here:
http://moi3d.com/forum/index.php?webtag=MOI&msg=9387.1

Add moi.ini option for LWO export to not write styles as materials/surfaces in the LWO file.
[LWO]
WriteMaterialAssignments=y

Fix bug with meshing dialog settings not being saved. Reported by stefan in the newsgroup here:
http://moi3d.com/forum/index.php?webtag=MOI&msg=9266.51

Fix Options dialog sub dialogs not displaying in full screen mode on macOS Mojave. Simplify dialog window z-ordering on Mac to avoid Mojave bug and hopefully be more resilient against any future Mac child window behavior changes. Reported by Martin in the forum here:
http://moi3d.com/forum/index.php?webtag=MOI&msg=9443.1

Fix improper mouse coordinate scaling on Mac w/Retina. Fix bug with longer distance delay before rotate/pan engages with V4 compared to V3, reported on the forum by Nis here:
http://moi3d.com/forum/index.php?webtag=MOI&msg=9266.200

Fix PDF export crash bug reported on the forum by Mip here:
http://moi3d.com/forum/index.php?webtag=MOI&msg=9266.144

Fix crash with some extended combination keystrokes such as Ctrl+Alt+Win+Numpad1 (QTBUG-36061). Fixes a crash bug reported through e-mail by Mark Tomlinson.

Fixed a crash in display meshing with a file reported through e-mail by Bodo-Lutz.

Fix crash in node editor revolve with small angle value, reported by Pilou in the forum here:
http://moi3d.com/forum/index.php?webtag=MOI&msg=9476.119

Updated HarmonyWare libs for STEP, SAT, and IGES file I/O from version 2.1.0 to 2.1.4, various bug fixes.

Update STEP import/export - face colors. Support per-face colors for STEP file import and export. Fixes STEP import color bug reported on the forum by Fran6 here:
http://moi3d.com/forum/index.php?webtag=MOI&msg=9339.4

Fix 3DM import bug with incorrect circle orientation when reading 3DM files from CAD Exchanger. Fixes mangled import of mould.quadlobe.toy reported on the forum by LarryV here:
http://moi3d.com/forum/index.php?webtag=MOI&msg=9266.164

Update Construct > Curve > Isect "Curve from 2 views". Allow lines to be used as input for curve from 2 views, requested by Przemas in the forum here:
http://moi3d.com/forum/index.php?webtag=MOI&msg=9440.1

Update Trim - "stencil cut" options. Add options to Edit > Trim for deleting the cutting objects and for having a joined together result with "keep all" instead of always separarting into pieces. Requested on the forum by Przemas here:
http://moi3d.com/forum/index.php?webtag=MOI&msg=9436.1

Fixed bug where left-click on style line of properties panel behaved the same as the right click shortcut for editing the style rather than putting up the style picker menu. Reported in the forum by Ralf here:
http://moi3d.com/forum/index.php?webtag=MOI&msg=9266.22

Update selection texture readback on Wine - test for Nvidia driver bug with red/blue bytes swapped and compensate. Also add calls to glFinish() on Wine to try and help avoid some other Nvidia driver bugs on Linux/Wine.

Update command object model for properties undo. Add moi.command.addSelectedObjectsStateUndoUnit(); that can be called by a command that only modifies properties and doesn't add or delete objects, to get undo support.

Add script properties to Face objects:
face.domainMin : Property that returns u,v coordinate of the lower left of the surface's parameter range.
face.domainMax : Property that returns u,v coordinate of the upper right of the surface's parameter range.
face.evaluatePoint( uv, u_from_left, v_from_left ) : Function that evaluates a uv parameter value and returns a 3D point.
face.evaluateNormal( uv ) : Function that evaluates a uv parameter value and returns a normal vector.
face.evaluate1stDerivatives( uv, u_from_left, v_from_left ) : Function that evaluates a uv parameter value and returns first derivatives as a list containing [pt, du, dv, duv].
face.evaluate2ndDerivatives( uv, u_from_left, v_from_left ) : Function that evaluates a uv parameter value and returns first and second derivatives as a list containing [pt, du, dv, duv, duu, dvv].
face.isPlanar : Property that returns true if the surface is planar.
face.planarFrame : Property that returns a coordinate from for a planar surface. Only valid if isPlanar returns true.
face.isOnPlane( frame ) : Function that returns true if the surface is planar and is on the given coordinate frame's x/y plane.
face.isOnParallelPlane( frame ) : Function that returns true if the surface is planar and is on a plane parallel to the given coordinate frame's x/y plane.