Skip to content

Add Measurement tool #4405

@franknoirot

Description

@franknoirot

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

  1. Likely to need more information back from the engine via API call, or via client-side embedded information WASM utilities, such as for arcs.
  2. The output of the traditional CAD iterations of this tool could be a good target for the kind of information our get_<some-entity>_info endpoints.

API/KCL notes

  1. 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

  1. In the simple case, this seems to have no bearing on the KCL representation of the part/assembly, and require no written code.
  2. 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.
  3. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions