Skip to content

No way to set the 3D model of a placed footprint: 65 board tools, none with a model property #305

Description

@triglav-modular

A footprint instance in a .kicad_pcb can carry its own (model …) block, and KiCad's Footprint Properties → 3D Models dialog edits exactly that. Konnect has no equivalent: a wrong or missing 3D model on a placed footprint cannot be corrected through any tool, on a closed board or over IPC.

Version: v0.7.0 · KiCad 10.0.5 · macOS

What I checked

With eager_toolsets: true so all tools are advertised, dumped tools/list (209 tools) and searched every input schema:

  • 65 tools take a board argument. None has a model-shaped property (model/3d/step/wrl).
  • edit_component's schema is exactly {board, reference, value}.
  • Only three tools mention 3D models at all:
    • set_footprint_models — takes footprint_path, a .kicad_mod library file, not a board
    • export_3d — export only
    • set_footprint_metadata — description/tags/attributes, no models

So the library side is well covered and the board side has no route at all.

Why it comes up

The board instance and the library can legitimately disagree, and in practice they do: a model gets assigned by hand in the dialog, the library footprint has none, and the board is then the only place the wrong path exists. Renders are wrong while fab output is fine, so it survives review. Fixing it means the GUI dialog, once per board, for every affected instance.

Relationship to #231

#231 is not a duplicate of this, but it overlaps and may be the better fix — please close this if you disagree.

#231 proposes update_footprints_from_library, whose scope includes refreshing library-owned 3D models onto placed footprints. That would resolve the common case via the library: correct the library footprint, refresh, done. It does not provide a way to set a model on one placed instance deliberately, which is what the KiCad dialog does.

If #231's refresh is considered the sanctioned path, then the gap worth recording here is narrower and still real: today, with #231 unimplemented, there is no route at all — not through the library either, because nothing propagates a corrected library model onto already-placed footprints.

Suggested shape

Either a model field on a placed-footprint editor (edit_component gaining models, matching set_footprint_models's mode + models shape), or an explicit set_placed_footprint_models(board, reference, mode, models). Closed-board would be the more useful of the two, since this is a file-level property that needs no live KiCad.

Activity

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

Metadata

Metadata

Assignees

Labels

P1High-value workflow reliabilityarea:pcbBoard editing, export, manufacturingclaimedSomeone has claimed this; check the assignee before startingenhancementNew feature or request

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions