Skip to content

Typed coordinate entry for item placement (distance-from-wall + offset, AutoCAD-style) #885

Open

Description

@dkbbdev

Context

#308 added typed exact length while drafting walls (merged in #883). The next gap for precise placement: after a wall exists, placing items at exact distances still requires pixel-perfect mousing.

Cabinets already support typed dimensions (W/D/H) via the measurement pills + Tab cycling (#880-adjacent work in packages/nodes/src/cabinet/tool.tsx). What is missing is typed position: an AutoCAD-style two-field dynamic input where you type one axis, Tab to the second axis, then Enter to place.

Proposal

While a placement tool is active and a snap point/reference exists:

  1. Typing a number opens a two-field inline input (X = distance along reference, Y = offset from it), like AutoCAD's dynamic input.
  2. Tab toggles focus between fields; the inactive field keeps its live pointer-tracked value.
  3. Enter commits placement at the typed coordinates.
  4. Values accept the full parseMeasurement grammar (m/cm/mm/ft-in), consistent with feat(wall): typed exact length during two-click wall drafting #883.
  5. Escape clears the fields first, then cancels the tool (same two-stage pattern as feat(wall): typed exact length during two-click wall drafting #883).

Implementation notes

Out of scope (for the first cut)

  • Polar coordinate entry (distance + angle) — could reuse the same store later.
  • Absolute X/Y world coordinates — the from-wall reference is what designers expect.

Happy to implement this if maintainers agree on the interaction shape.

Activity

  1. Aymericr commented on Sep 28, 2026

    @Aymericr
    Contributor

    Small status correction for anyone starting work from this description: #883 is still open; it has not merged. It addresses the exact-length wall-drafting part of #308, and #887 is the cabinet coordinate-entry proposal for this request.

    Precise placement is a useful extension of the existing tools. The shared requirements are measurement parsing, consistent 2D/3D behavior, predictable Tab/Enter/Escape handling, and one undo step. Keeping this open while the implementation is reviewed; cabinet support alone should not imply that every item/opening placement tool has gained this behavior.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions