V2 beta Dec-19-2009 available now

 From:  Michael Gibson
3179.1 
A new v2 beta (version Dec-19-2009) is now available for download here:
http://moi3d.com/beta.htm

You will need to enter your v1 license key to download the v2 beta.

The v2 beta installs into its own folder, it is not a problem to have v1 and any v2 beta installed on the same machine, in fact I recommend that so that you can fall back to v1 if you run into some temporary bad bug in v2.

This is very close to the end of the v2 beta period, but there will still be one more beta to fix up some bugs in some of the new features in this Dec-19 release.

Please let me know if you run into any bugs in the new features so that they can get fixed before the v2 final! The only area that is still actively in progress and known to still be buggy in this release is the new corner mitering for 1-rail sweeps especially on curved rail segments.


New stuff:

New set of object orientation and matching tools to make it much easier to position objects relative to one another.

There are 6 new related commands that make up this toolset: Orient, OrientLineToLine, OrientViewToView, CopyClipboardWithOrigin, PastePart, and ImportPart. The first 3 are available under the new Orient button under the Transform palette, and the others are available by a right-click on existing Edit > Copy, Edit > Paste, or File > Import buttons.

Some demos:

Here the Transform > Orient command is being used to reposition a cylinder along the side of a pyramid shape:


Here Transform > Orient is being used with the "Make copies" option enabled to position some text onto a box:


Here PastePart (Right-click on Paste or Ctrl+Shift+V) is being used to paste in the contents of the clipboard to an orientation aligned to an existing object, note that you can align not just to planes but also to the normal of a curved surface as well:


With the Clipboard and File import variants, you only pick the target orientation because the base orientation was specified at the time the object was copied or saved to the file.

Another example of PastePart:



Another example of PastePart with the target rotation being manipulated with several axes:


If you click on an axis instead of drag on it, it sets that one as the "primary axis" that the others will rotate about when you drag on them, the primary axis is marked with a little dot at its end.


These tools greatly simplify what would have previously required many separate applications of the Move and Rotate commands.


Some details on the individual commands:

Transform > Orient: Select the objects you want to reposition and then run this command, it will then prompt you to pick a base orientation and then a target orientation. The orientation picker is the same UI that is used to specify an orientation for the View > CPlane command as well.

Each orientation pick involves 2 steps - first you pick the origin point which automatically aligns itself to surface normals unless you disable the "Align to objects" option. Then you can adjust the rotation by dragging on the axis lines. If the default initial rotation is fine, then just right-click or push the "Done" button to accept the default rotation.

So for simple placements where you don't need to adjust the rotation you will do 4 clicks total: 1 click to pick the base origin point, 1 right-click to accept the default rotation, 1 click to pick the target origin point, and 1 more right-click to accept the default target rotation.

You can click the "Make copies" option or hold down the Ctrl key when clicking the target origin point to drop copies of the selected objects and keep the original in place.


Transform > Orient > Orient Line to Line : This command is more focused on 2D orientation, you pick a 2 points to define a base line, and then 2 points to define a target line, and the objects are moved, rotated and also scaled to match the first line to the second. For example here it is used to transform a curve so that its endpoints match up with the endpoints of a different curve:


There are options to disable scaling, switch to a "stretch" type scaling in one direction only, and to make copies.


Transform > Orient > Orient View to View : This allows you to remap objects from one view to another. You do one click inside the source viewport (anywhere in it, it doesn't matter on which specific point), and then one click in the target viewport.

So for example if you have imported some 2D curves that are flat in the Top view, you can use this command to quickly shift them to be flat in the Front view instead (same as rotation by 90 degrees but without needing to go to some other side view). Also when you click in the 3D view as either a source or target view it will be the current camera's view direction that is used for the orientation.


CopyClipboardWithOrigin - this is available by using Ctrl+Shift+C (additional Shift key held down instead of just regular Ctrl+C) or by right-click on the Edit/Copy button. It copies the selected objects to the clipboard like the regular Ctrl+C but also prompts you to pick an origin point so you can set the base origin position of the copied objects, which will then be used by PastePart later.

PastePart - this is available by Ctrl+Shift+V or by right-click on the Edit > Paste button. It pastes in the contents of the clipboard but also allows you to pick a target orientation to position them instead of just placing them into their original locations like the regular Paste command. The base orientation can be set by using the companion CopyClipboardWithOrigin command, or if you had done a regular Ctrl+C without the extra origin pick, it will use the CPlane that was set at the time of copying (default is the world origin and world axes) as the base position and orientation.


ImportPart - this is available by right-click on the File > Import button. It is similar to PastePart except the objects get sucked in from the file you pick rather than from the clipboard. The base origin is defined by the cplane that was set in the saved file, or the world origin if no custom cplane had been set.

If you have some objects that you want to frequently bring in and reorient, you can set them up into their own separate files and use ImportPart to bring them in as needed. You can also set up a keyboard shortcut with the filename given to ImportPart. To do that set up the Command part of the keyboard shortcut like this:
ImportPart c:\some folder\myfile.3dm
that will then let you bring in that particular part by using that shortcut key, bypassing the file dialog. So for instance if you use 3 parts really frequently you may want to set those up into separate files and set up a keyboard shortcut for each one so it will pop in and go right into orienting it with one keystroke.



New ArrayGem command that can be set up on a keyboard shortcut.

This is for replicating a gemstone along a set of curves on a surface, aligning the gem to the surface normal. It uses a different spacing method than the other array commands - along with the objects to be arrayed you also specify a base circle and the spacing that you provide becomes the separating distance between each placed circle along the target area. For the targets you pick a surface, and a set of curves that have been projected on to that surface.

An example:





So note there that for this command to work properly, there must be a base circle also included among the objects that you want to have copied and the base circle should be selected along with the objects to copy at the same time. The center of the base circle will become the point that is placed on to the surface, and the diameter of the base circle will be taken as the size of the object.

See this previous post for some more information and examples:
http://moi3d.com/forum/index.php?webtag=MOI&msg=3034.57

Even though this is oriented towards placing gemstones for jewelry design, it could also be used for replicating quantities of any kind of object oriented normal to a target surface.



New mitered corner mechanism for 1-rail sweep. This should be working well currently for rails made up of line segments but still needs some work yet for rails made up of curved segments, so this is the main area that is still in progress currently until the next beta. But currently it should enable you to do things like window frame type shapes much more quickly without any work needed to extend or clean up corners. For example:






Updated Sweep with a new "Set flat direction" option. Now when you enable Twist:Flat for 1-rail sweep, there will be a "Set flat direction" button that will show up below the Twist settings. If you push it, you can then pick 2 points to define the direction for the profiles to pivot around. This allows you to do a flat type sweep along a helix that is oriented in some other direction than the world z axis. Previously you had to align your helix to the world z axis in order for Twist:Flat to work.


Updated Sweep for batch handling of 1-rail sweep along many rails. Now if you select 3 or more rail curves in Sweep, it will do a batch 1-rail sweep along each selected rail. Previously selecting more than 2 rails did not do anything.


New Rebuild command that can be set up on a keyboard shortcut for reconstructing curves. This can be used to simplify a curve that is overly complex or messy or has too many points in it to be easily manipulated by control point editing. It can also be used for the reverse as well, to add a lot more points to a simple curve if you want to have a bunch more points available for editing.

There are 2 modes, a "Refit to tolerance" mode where you enter a distance tolerance value and as many points are added as needed (not necessarily uniformly) to maintain the new curve within that distance of the original curve, or a "# of points" mode where you tell it a specific number of evenly spaced points to sample for creating the new curve.

If you want to do control point editing of a result from offsetting, projection, or intersections it can help a lot to run that result through rebuild to reduce its point count first.


New Select loop function. Added a new script function to make it possible to set up a keyboard shortcut to select a loop of edges around a trim boundary on a face where at least 2 consecutive edges are already selected. To set it up add a new keyboard shortcut in and for the command put in the following:
script:moi.geometryDatabase.selectLoop();
For an example see here:
http://moi3d.com/forum/index.php?webtag=MOI&msg=3112.22
http://moi3d.com/forum/index.php?webtag=MOI&msg=3112.32


Updated "Feet & Inches" type display. Instead of having an entry for "Feet & Inches" in the units list, instead there is now a separate "Distance display" option which shows up below the units control when the units are set to either "Unit system: Inches" or "Unit system: Feet".

This allows for choosing the base units to be either Feet or Inches when using this type of display, the previous method where there was just one entry in the units list only allowed the base units to be Feet.


Updated Polygon command with new Circumscribed option. When checked, the polygon will be constructed as one that goes around the outside of the radius point picked rather than on the inside of it like the default.


Updated Silhouette command - added an "Include edges" option to include trim edges that are silhouettes (for example the edges on a box) in the results in addition to the regular curved surface silhouette calculations.


New OBJ export option in moi.ini to disable writing texture coordinates. This can be set in moi.ini under:
[OBJ Export]
WriteTextureCoordinates=n

Added an option in moi.ini to override curve display colors:
[View]
CurveColorMode=ByStyle
CurveFixedColor=0,0,0
CurveColorMode can be set to either ByStyle or FixedColor. If set to FixedColor the r,g,b color from the CurvedFixedColor entry will be used to display the colors of curves rather than the style's color as is normally done.

Added an Scene Browser option in moi.ini to highlight the active style's row so that it stands out more in the UI. This can be enabled in moi.ini under:
[Scene Browser]
HighlightActiveStyleRow=y

Updated Construct > Curve > Isect command to automatically join the results together.

Update resizeable dialogs - make resizeable dialogs (Options and Edit styles are like this currently) remember their size in moi.ini .

Updated curve trimming to be able to use the analytic curve intersector for higher accuracy for circle, arc, and line intersection calculations between joined curves.

Update CircleTangent and ArcTangent commands - Added a special case for placing a circle or arc tangent inside of a rectangle, to get a higher accuracy direct calculation rather than using the iterative solver for this case.

Updated Planar command to deal with very small sized curves better.

Updated primitive creation commands (Sphere, Cone, Cylinder, Box, and Plane) to work properly when the object is drawn at a very small size.

Updated wireframe handling - In booleans, if the first selected object was wireframe or solid, (has all faces either hidden, or all faces showing), make the new combined object be also wireframe or solid to match. Also some similar new handling for new faces like now if you fillet a wireframe box the fillet surfaces will come in as wireframe as well.

Updated scene browser status display for mixed locked/unlock status types. Instead of overlaying the eye and lock right on top of each other, draw them with smaller icons that are separated by a dividing split line.

Update CPlane command and orientation picker - added an "Align to objects" checkbox so that automatic alignment to objects can be disabled if wanted when placing the base point of a cplane. Also updated the axis manipulation mechanism to include the concept of a "primary" or "locked" axis so that one axis can be set to remain fixed and have the others rotate around it. For a description of the new axis manipulation see here: http://moi3d.com/forum/index.php?webtag=MOI&msg=2599.26 . Also there's another new option for "Flip aligned z axis" so you can flip to the opposite side of a surface normal if you want.


Bug fixes:

Fixed a v2 regression bug in Join when trying to make a closed curve out of many segments. The bug could cause the overall start and end of a curve to not get joined to be closed if other segments that were joined touched at a tight tolerance but the overall start and end were somewhat looser but still within the join tolerance. This could cause a curve to remain open after a Join when it should have become closed.

Fixed a bug where the properties panel would not show initially when opening a file by double-clicking the file name in Windows Explorer, reported in the forum here:
http://moi3d.com/forum/index.php?webtag=MOI&msg=3099.1

Fixed a crash bug when using "Add default styles" from the Style Tools menu in the Scene Browser in some situations.

Fixed incorrect meshing on surfaces that had large numeric values for their uv domains.

Fixed a bug where ArrayCurve did not properly transfer styles to the duplicated objects in some circumstances (reported on the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=3133.1)

Fixed a regression bug in Extrude where an incorrect reversed direction was used for faces that were aligned opposite with one of the world axis directions, reported on the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=3091.1

Fixed a bug in Sweep where in some instances with a helix path with a particular shape (like with a number of turns of 6 or a multiple of 6 or a couple of other patterns with longer helix curves) could fool the tolerance checking mechanism to make it think that an unrefined sweep was actually within tolerance. These will now work correctly. Fixes some old bugs reported in the forum here:
http://moi3d.com/forum/messages.php?webtag=MOI&msg=1263.1
http://moi3d.com/forum/messages.php?webtag=MOI&msg=2203.1

Fixed a different kind of tolerance checking problem in Sweep that could cause the sweep to sag away slightly from the rail path (out of join tolerance) with certain shapes, reported in the forum here:
http://moi3d.com/forum/index.php?webtag=MOI&msg=1546.1


- Michael

EDITED: 21 Dec 2009 by MICHAEL GIBSON

Attachments: