-
Notifications
You must be signed in to change notification settings - Fork 98
Description
Most traditional CAD tools have one or more ways to inspect the geometry the user has created. Often these are called Measurement, and while not placed among the other tools in the top toolbar, they operate as a kind of tool mode.
Critically, these tools allow for measurement and analysis of geometry that the user did not create directly, but were the result of operations performed by the user. For example, clicking the wall of an extrusion the user created returns information about that face such as its area and orientation, which is not present anywhere in the code representation of the part (in which the face's construction itself is only referenced implicitly).
TODO: add demo videos of existing functionality from traditional CAD applications.
One of the reasons we may want to prioritize this feature is that it may act as a frustration minimizer for things that do not yet have a point-and-click implementation, providing information that helps the user perform calculations that the interface does not yet perform automatically on their behalf.
Engine notes
- Likely to need more information back from the engine via API call, or via client-side embedded information WASM utilities, such as for arcs.
- The output of the traditional CAD iterations of this tool could be a good target for the kind of information our
get_<some-entity>_infoendpoints.
API/KCL notes
- Might be able to provide some aspects of this functionality that is not provided from the engine directly, but runs the dire risk of having divergent implementations, similar to arc utilities.
Point-and-click notes
- In the simple case, this seems to have no bearing on the KCL representation of the part/assembly, and require no written code.
- The tool functions more like a sketch mode tool than a modeling mode operation. While enabled, the user can select and deselect entities freely, and inspect analytical insights derived from the selection freely.
- In Onshape there are some actions the user can take from their measurements, making variables out of their results. This would be powerful but would require us to then provide some standard library functions whose results could be assigned to named values in the KCL, expanding the requirements of this feature greatly.