New Sep-10-2020 v4 beta now available at
http://moi3d.com/beta.htm .
Still not quite finished but really close! Exporting dimensions to PDF/AI formats is still in progress and almost there but I needed to release this new beta now because the current beta expires tomorrow. It has been quite a while since the last beta, please let me know if you see any new bugs surface in this release. It won't be much longer before v4 will be wrapped up.
New stuff:
Updated DXF - support import/export of dimension entities.
Import of TEXT, MTEXT, LEADER, and DIMENSION (linear, angular, radius/diameter sub types) is now supported. MoI will export dimensions to MTEXT, LEADER, and DIMENSION enties.
Update annotations, add model units scaling behavior.
There is a new option for annotation behavior under Details > Annotation properties > "Scaling:" which has options for "Scaling: By screen size" or "Scaling: By model units".
Scaling: "By screen size" works the same as the earlier v4 betas where text and arrowheads stay the same size on screen independent from the current zoom level.
Scaling: "By model units" is a new option that makes the text and arrowheads to behave the same as geometry, where it is fixed at a certain unit size (given by the Height: field just after it) and will display larger or smaller when you zoom in and out. This option gives better compatibility with other CAD programs since almost all other programs work this way. When you import dimensions from DXF or from a 3DM file created in Rhino they will default to using this method so that things like title blocks where there are lines or other geometry making a table with text inside it will work as expected.
Finished the AnnotationText and Leader command dialogs.
Updated show points for dimension leader. Allow delete of selected edit points for leader objects.
Handle file write errors - an error dialog will show now on file write failures like if the system ran out of disk space or permission denied.
3DConnexion updates:
- Updated 3dx default speed on Windows. On Windows 3dx translation and rotation speed was too fast, implement same default speed as Mac.
- Add "Reverse roll" setting in Options dialog under Options > View > Rotate/Pan/Zoom options > 3DConnexion options. Requested by Fred in the forum here:
http://moi3d.com/forum/index.php?webtag=MOI&msg=9660.30
- Also added individual settings for reversing twist or tilt in moi.ini, under:
[3Dconnexion]
<...>
ReverseTwist=y
ReverseTilt=y
Update SaveAs to STEP/IGES/SAT formats for hidden objects.
By default don't write hidden objects to STEP/IGES/SAT formats when doing a SaveAs, unless turned on in moi.ini under:
[NURBS Export]
WriteBlankedObjects=y
Also fixed regression in v4 where the blanked flag for hidden objects was not being set on IGES and SAT export.
Update History
Enable face extrudes and the Rebuild command to trigger history updates.
Curve offset overhaul - Improve curve offset robustness:
1 - when extending a line make a new analytic line as the result and use an analytic line/line intersection when possible for more accuracy.
2 - Update how convex corner processing is done to avoid getting little loops which could confuse trim classification and were not getting trimmed out with shallow angle polylines as reported on the forum by Yanik here:
http://moi3d.com/forum/index.php?webtag=MOI&msg=9660.47
3 - Do a better job of selecting intersections and screening out wild results from G2 reflection type extension. Should eliminate crazy looping extensions.
Update grid axis display colors
Add in Z axis color option under Options > Grid. Grid axis lines are now colored according to their 3D orientation, so for example if you set the Z axis color to blue, then the vertical axis line in the front view will be colored blue. Previously the grid axis lines were colored the same in all viewports. You can re-enable that previous way by a setting in moi.ini :
[Grid]
<...>
UseOldStyleGridAxisColors=y
Also added in an option for displaying the z axis grid line in the 3D view, under Options > Grid > "Show grid z axis in 3D view" checkbox.
Update IGES export
Add an option under Options > Import/Export > IGES options > "Write solids as" for writing out solids as either an IGES type 186 "Manifold Solid B-Rep" entity or whether to write them as individual separate surfaces as MoI v3 and earlier always did.
Update Draw solid > Text command - font styles
Add a Style: option to the Draw solid > Text command to make it possible to access styles of the font other than bold/italic. Requested on the forum by Javier here:
http://moi3d.com/forum/index.php?webtag=MOI&msg=8766.1
Update error message when command not found.
Pop up a "command not found" dialog instead of a script exception dialog if trying to exec a command that was not found in any command folder.
Update Help > About dialog
Add links for showing license keys and EULA from Help > About dialog. The license key dialog also has an option to clear out license keys.
Detailed object properties dialog
Implement undo for annotation property changes in detailed object properties dialog.
Update detailed properties panel types report
Add reports for all curves, all edges, and all brep edges if there is a mix of different types so there is one label that can be targeted for grabbing all edges or all curves instead of needing to shift+click on both "Open curves" and "Closed curves" for example.
Add scale factor option for SubD import, in moi.ini
[SubD Import]
ScaleFactor=1.0
requested by Tudor in the forum here:
http://moi3d.com/forum/index.php?webtag=MOI&msg=8665.109
Update annotations bounding size
Don't include annotations in the bounding size for the edit frame or the properties panel, unless only annotations are selected.
There is a moi.ini option to include annotations always in these sizes:
[Annotations] IncludeAnnotationsInBoundingBox=y
Discussed in the forum here:
http://moi3d.com/forum/index.php?webtag=MOI&msg=9526.30
Update persistence of "Mesh angle" option.
On startup, clamp the value for Options > View > Meshing parameters > Mesh angle to be between 10 and 45 degrees. It can be set lower by a startup script.
Update annotation text display - substitution fonts
Enable use of substitution fonts in annotation text rendering. This will automatically switch to a fallback font if the current font does not have glyphs for unicode text characters being displayed.
Update sub-d import
Use mesh object name in sub-d obj file conversion, and merge styles with the same names and colors. Requested in the forum by pafurijaz here:
http://moi3d.com/forum/index.php?webtag=MOI&msg=9660.142
Update edit styles dialog.
Show gray text on styles with nothing assigned to them same as the scene browser. Requested by pafurijaz in the forum here:
http://moi3d.com/forum/index.php?webtag=MOI&msg=9660.148
Update object dragging
Option for disabling object dragging so clicking on objects will only do selections and not any drags.Set under moi.ini under:
[Selection]
<...>'
DisableObjectDrag=y
Bug fixes:
Fix window un-maximize bug on Windows - Fixed bug where the restored window position used for un-maximizing a window would keep growing larger on every run.
Updated selection with filters on - if a selection filter is active, when clicking on an edge or face object to select it do the selection update immediately on the mouse press instead of mouse release. Fixes a bug reported by pior in the forum here:
http://moi3d.com/forum/index.php?webtag=MOI&msg=9660.24
Updated hit testing. Fixed bug where edge boost for selected breps was happening even for objects with selection lock on them. So in the case of boolean difference, the base object was having its edges boosted over top of any standalone curves in the same spot, preventing them from being selected. Fixes a bug reported through e-mail by Vladimir.
Fixed annotation text bugs with text anchor property. The text anchor property was not persisting properly for all values.
Fixed a bug with importing a DEGENERATE_TOROIDAL_SURFACE surface type through STEP format.
Fixed a chamfe/fillet bug with skinny surfaces. If a chamfer surface was skinny (less than 10*tolerance across) it was possible for the chamfer surfaces to get connected improperly since it took just the first one within tolerance instead of the closest one.
Fixed a bug with keyboard shortcut handling on Mac with a Japanese keyboard. Reported on the forum by nemuneko here:
http://moi3d.com/forum/index.php?webtag=MOI&msg=9660.39
Fixed shortcut key bug where cpaslock key was being interpreted as the letter "A" key.
Reported on the forum by nemuneko here:
http://moi3d.com/forum/index.php?webtag=MOI&msg=9660.39
Fixed bugs with dialog size and positioning.
Previously when showing a resizable dialog, if there was a saved size from a previous use it would restore that same size. The bug from that was if the dialog size was done on a high resolution monitor and now the use has switched to a different screen the saved dialog size could exceed the current screen resolution. Fixed by limiting saved dialog width and height by current screen size. Also if a saved position for a dialog will be used, check if it is visible on screen before using it. Additionally, don't allow resizable dialogs to shrink to down 0 width or height. Fixes bugs reported through e-mail by James.
Fixed sweep bug - Freeform sweep framing had a bug when rail segments were anti-tangent. Fixes a bug reported through e-mail by Pilou.
Updated dimension text rendering - Y positioning for glyphs used incorrect rouning. Was causing noticeable mis-positioned glyphs when using Gill Sans 18 pt font on Mac. Fixes a text display bug reported through e-mail by James.
Variable radius filleting - linear blend fix. Fixed a bug in variable radius filleting with "linear blend" option where fillet surfaces were not being extended properly. Fixes a bug reported on the forum by Dan R here:
http://moi3d.com/forum/index.php?webtag=MOI&msg=9753.1
Fixed arrowhead bug - outside dimension arrowhead lines not placed correctly on larger scaled objects. Fixes a bug reported through e-mail by James.
Fixed dimension feet & inches display - for feet&inches, check if the font does not support any Unicode fraction characters being used and if not replace with long form text like 1/2.
Fixed STEP/IGES import of composite curve entities with G0 discontinuities. Look for G0 discontinuities in imported curves and break those out to separate curves.
Fix file dialog bug - Fix bug where file open dialog called by script was not returning empty string when canceled. Fixes node editor bug reported in the forum by Wayne here:
http://moi3d.com/forum/messages.php?webtag=MOI&msg=7713.880
Fix Extrude bug with end caps disabled - When making a curve extrude with end caps disabled, a brep with disjoint shells would be created if there were any interior holes in the extrusion.
Update sweep - true up rail segment ends. If segment end tangents are within 2 degrees of tangent, true them up to be exactly tangent if possible. This can improve corner mitering fails with segments that are nearly G1 but not quite. Fixes bug reported through e-mail by Salvatore.
Fix curve fillet bugs -
Fix curve filleting bug reported by Cemortan_Tudor in the forum here:
http://moi3d.com/forum/index.php?webtag=MOI&msg=8665.97
and also another curve filleting bug reported a long time ago in the forum by macray here:
http://moi3d.com/forum/index.php?webtag=MOI&msg=4958.1
Fix select last created not working with drag/copy. Reported by Tudor in the forum here:
http://moi3d.com/forum/index.php?webtag=MOI&msg=8665.115
Fix bug in orient line / line
Fix bug when line directions pointing opposite each other. Fixes a bug reported in the forum by Karsten here:
http://moi3d.com/forum/index.php?webtag=MOI&msg=9476.422
Fix file dialog crash on Mac Catalina OS
Implement fix for QTBUG-83342 for an OS bug that could cause the file dialog to crash on Mac Catalina OS.
Scripting updates:
Added Curve.getIsTangentEdge( AngleToleranceDegrees /* optional, default = 2 degrees */ );
- returns true if the 2 surfaces on either side of the edge are tangent to each other.
Added CurveSegment.getIsG1ToAdjacentSegment( 0 /* 0 for start, 1 for end */ );
- returns true if the next segment at the start or end is smooth to the current curve segment.
moi.filesystem.shellExecute(), added wait for finished parameter.
moi.filesystem.shellExecute( path, params, wait ) now takes an optional 3rd boolean parameter for whether to wait until the called process has exited before returning. When used, the return value from shellExecute() is an object containing an .exitCode property for the integer exit code of the called process and an .output string parameter for