The current implementation of the Construct menu, where you create construction planes, axes, and points, consists of a long list of alternatives where you have to find your exact combination of planes, faces, edges, axes, or points to accomplish what you want. I think the approach used by Geomagic/Cubify is more user-friendly. Instead of forcing the user to specify how they intend to generate their object in advance, this is inferred from the selected objects. For example, if after selecting "create a plane", you:
- Click on a plane. The dialog assumes you want to make an offset plane and asks for the offset.
- If you now select an additional point, it realizes that the only alternative that makes sense is to make an offset plane going through that point.
- If you instead select a plane and an axis/edge parallel to that plane, it generates an offset plane going through the axis/edge, with an optional rotation angle around the axis as well.
This has two big advantages from a usability standpoint:
- The user can just mark what they intended to without having to find that alternative in a long list first.
- The plane/axis/point can be edited to a different type of definition. (My impression is that in 360 right now if you have made a plane as an offset plane but realize you actually want it to be rotated, there is no way to do that except deleting the plane and creating a new one, which would break dependencies. I might be wrong about this though.)
The types of planes that can be generated in geomagic/cubify seem to be:
- Selecting an edge: Insert plane perpendicular to the edge at the endpoint of the edge.
- Selecting a plane or face: Insert plane parallel to the plane/face with a specified offset.
- Plane/face and point: Insert plane parallel to plane/face going through point.
- Edge/axis and point: Insert plane either containing or normal to edge/axis going through point.
- Two parallel edges/axes: Insert plane containing the two adges/axes.
- Three points: Insert plane going through the three points.
For axes:
- Selecting an edge: Insert axis collinear with edge.
- Two planes: Insert axis at the intersection of the two planes.
- A plane and an edge parallel to but offset from the plane: Insert axis in the plane, parallel to edge.
- A cylindrical face: Insert axis passing through centerline of cylinder.
- A plane and a point/vertex: Insert axis normal to plane going through point.
- Two points/vertexes: Insert axis going through the two points.
For points:
- Selecting nothing: Insert point at a specified coordinate.
- Selecting an edge: Insert point on edge at a specified fraction between the endpoints.
- Two intersecting edges/axes: Insert point at intersection.
- A curved edge: Insert point at curve center point.
- Three nonparallel planes: Insert point at the intersection point.
- A plane and an axis: Insert point where axis intersects plane.
- Two points: Insert point on line between points at a specified fraction of the distance.
- A point and a plane: The point projected onto the plane, with optional offsets in the plane.
(Note that several of these alternatives are currently not available in 360 at all.)