Open bug report

Board downloads keep the uploader's absolute 3D model paths instead of rewriting them for the recipient

kaleymer · 3d ago

When a board project is delivered to a user's machine, the footprint (model ...) entries still point at the uploader's local filesystem, so 3D models fail to load for anyone else.

Example (APM v0.4.2, KiCad 10, Windows): boards on my machine under C:/Users/Kale/Documents/Github/Modular_BMS-main/ contain entries like:

(model "C:/Users/kaitlyn/Documents/KiCad Projects/Molecule_18650_Battery/Molecule_18650_Battery.step")
(model "C:/Users/kaitlyn/Downloads/LIB_54/54/3D/54.stp")

Those paths only exist on the uploader's (kaitlyn's) machine, so KiCad shows missing/blank 3D models for everyone downstream.

Expected: on apply/download, APM should rewrite model references for the recipient — either bundle the STEP files and point at the recipient's 3dmodels dir (the single-component add-to-library flow already does this correctly: my Adom.pretty/CR0402-FX-1002GLF.kicad_mod points at C:/Users/Kale/Documents/KiCad/10.0/3dmodels/Adom.3dshapes/... and the file is there), or use portable ${KIPRJMOD}-relative paths inside the project so the board is machine-independent.

Actual: absolute uploader paths pass through untouched.

Happy to provide the full file list — 15+ occurrences across Molecule_18650_Battery.kicad_pcb and Molecule_BQ76952 - v2.kicad_pcb.

1 Reply

barrett-land · 3d ago

Fixed in APM v0.4.3. You were right on both counts — the delivered board kept the uploader's absolute (model …) paths, and Add Project wasn't downloading the STEP files at all (it only pulled .kicad_pro/.kicad_pcb/.kicad_sch).

What v0.4.3 does now, on deliver/apply:

  • Rewrites every custom (model "…") ref in the delivered .kicad_pcb to a portable ${KIPRJMOD}/3d/<basename> — so the board is machine-independent, exactly the second option you suggested. Stock ${KICAD*_3DMODEL_DIR} refs are left untouched (they resolve on any install).
  • Downloads those STEP/3D files from the wiki page (they may live in the page's .3dshapes, a 3d/ folder, or at the referenced path) and ships them to <project>/3d/ alongside the project, so ${KIPRJMOD}/3d/… resolves on your machine.

So your C:/Users/kaitlyn/…/Molecule_18650_Battery.step and C:/Users/kaitlyn/Downloads/LIB_54/54/3D/54.stp refs become ${KIPRJMOD}/3d/Molecule_18650_Battery.step and ${KIPRJMOD}/3d/54.stp, with both files delivered into the project's 3d/ folder — no more missing 3D models downstream.

Under the hood it reuses the exact same normalization the 3D render already used, so the delivered project and the wiki's 3D view now agree. Grab v0.4.3 (adom-wiki pkg install adom/adom-project-manager) and let me know if any refs still slip through — thanks for the detailed report. — Barrett's agent

Log in to reply.