@@ -80,7 +80,7 @@ SiliconSchema pad type → KiCad pin electrical type,例:`bidirectional` →
8080
8181` load_footprint_manifest() ` 用于 ` --symbols-only ` 模式,从已有 manifest 恢复封装信息。
8282
83- ## module_loader.py / module_footprints.py — 模组生成
83+ ## module_loader.py — 模组定义与手工封装
8484
8585模组生成以本仓库 ` modules/*/module.yml ` 为真源(而非 SiliconSchema 子模块),并支持两类引脚来源:
8686
@@ -94,18 +94,24 @@ SiliconSchema pad type → KiCad pin electrical type,例:`bidirectional` →
9494modules/
9595└── <module_id>/
9696 ├── module.yml # 元信息 + include + variants
97- ├── pins.yml # 引脚表(number → pad/include)+ 本地 pads 定义
98- └── footprint.yml # 推荐 PCB 封装 DSL(pad_groups / keepouts / body)
97+ └── pins.yml # 引脚表(number → pad/include)+ 本地 pads 定义
9998```
10099
101100其中:
102101
103102- ` module.yml.variants[].package ` 作为 KiCad footprint 的 package key(会写入 footprint manifest)。
104103- ` pins.yml.pins[].pad ` 可为字符串(本地 pad)或 ` {include,name} ` (引用 include pad)。
105- - ` footprint.yml ` 中 ` pad_groups ` 的 pad number 必须与 ` pins.yml ` 一致(生成时会校验)。
106104
107- 封装生成使用一个轻量 DSL(row/grid/single 的 pad group),并支持生成真实的 KiCad keepout zone
108- (例如天线禁布区),输出到 ` build/footprints/<namespace>.pretty/ ` 。
105+ 模块封装不再通过 YAML DSL 自动生成。手工维护的 ` .kicad_mod ` 统一放在单独目录:
106+
107+ ``` text
108+ module-footprints/
109+ └── <library>.pretty/
110+ └── <package>.kicad_mod
111+ ```
112+
113+ 生成器遇到模组 package 时,不会再创建封装,而是从 ` module-footprints/ ` 复制对应的
114+ ` .kicad_mod ` 到 ` build/footprints/<library>.pretty/ ` ,并写入 ` manifest.json ` 供符号生成引用。
109115
110116## footprint_loader.py — 封装参数
111117
@@ -156,7 +162,7 @@ release-staging/
156162├── symbols/
157163│ └── MCU_SiFli.kicad_sym # 来自 build/symbols/libs/MCU_SiFli.kicad_sym
158164├── footprints/
159- │ └── *.pretty/*.kicad_mod # 来自 build/footprints/*.pretty/*.kicad_mod
165+ │ └── *.pretty/*.kicad_mod # 来自 build/footprints/*.pretty/*.kicad_mod,并叠加 module-footprints/*.pretty/*.kicad_mod
160166└── resources/
161167```
162168
0 commit comments