批量导出立创商城元件为 Altium Designer(AD)、KiCad 可用的命令行工具。
Note
项目源码已重新公开,但请务必遵循 LICENSE 进行使用。
npnp 是 Normalize Pin Net Pad 的缩写,也是我在逆向 Altium Designer 文件格式、整理立创/EasyEDA 数据导出流程时做出的 CLI 工具。它适合需要脚本化、批处理、CI 或者更喜欢命令行的用户;如果你需要 GUI,可以使用同系列的 SeEx。
目前 npnp 和 SeEx 的导出行为会尽量保持一致,尤其是以下部分:
- KiCad
3D导出会直接写入下载到的 STEP 数据,不再对 STEP 做耗时的二次解析和重写。 - KiCad STEP 下载使用与 Altium 相同的 LCSC 模型接口和 HTTP 连接方式。
- Altium、KiCad 都支持中英文元数据导出;当目标语言元数据缺失时,会保留并回退到已有源数据。
- 生成的库文件面向实际 EDA 使用,但在用于生产前仍然建议目检确认。
如果你发现导出的符号、封装、3D 模型或元数据有问题,欢迎提 issue,请尽量附上 LCSC 编号、目标 EDA、导出命令和截图。PR 默认不会直接合并,除非事先沟通确认维护方向。
- 导出 KiCad 可用的
Symbol、Footprint、3D模型。 - 支持单个器件导出,也支持从文本文件批量导出。
- 支持指定现有
.kicad_sym、.pretty、.3dshapes库并追加/更新器件。 - STEP 模型直接写入
.3dshapes,并在封装中生成模型引用。
- 单独导出器件的
.SchLib和.PcbLib,.PcbLib会嵌入上游 STEP 模型。 - 支持批量导出。
- 支持多个器件合并导出到同一组
.SchLib/.PcbLib。 - 支持向已有的 npnp 合并库追加新器件,避免因为同名库覆盖而丢失已有器件。
- 支持选择中文或英文元数据导出。
- 支持多线程/并行下载和批处理。
- 支持单独导出
3D模型。 - 支持导出原始 symbol / footprint JSON,便于问题排查。
- 支持 Windows、macOS、Linux 多平台发布包。
Note
这些版本仅为目前所知,不排除 npnp 支持更多版本。如果你无法在更低版本的 EDA 软件中打开导出的库,可以在 issue 里提出。
-
KiCad 9.0~Latest -
Altium Designer 23.x~Latest
- 继续完善现有 Altium / KiCad 工作流,修复更多隐藏的
bug。 - 改进不规则焊盘导出
.PcbLib时的阻焊处理。 - 尽可能移除或隐藏下载 3D 模型中的 logo/watermark 几何体。
- 增加更多异常符号、封装、3D 模型的回归测试样例。
- 完善批量合并、追加和 CI 使用文档。
每个 tag release 会构建这些原生 npnp CLI 压缩包:
- Windows x86_64:
npnp-vX.Y.Z-windows-x86_64.zip - Windows ARM64:
npnp-vX.Y.Z-windows-aarch64.zip - Linux x86_64:
npnp-vX.Y.Z-linux-x86_64.tar.gz - Linux ARM64:
npnp-vX.Y.Z-linux-aarch64.tar.gz - Fedora x86_64:
npnp-vX.Y.Z-fedora-x86_64.tar.gz - Fedora ARM64:
npnp-vX.Y.Z-fedora-aarch64.tar.gz - Arch Linux x86_64:
npnp-vX.Y.Z-arch-x86_64.tar.gz - Arch Linux ARM64:
npnp-vX.Y.Z-arch-aarch64.tar.gz - macOS Intel:
npnp-vX.Y.Z-macos-x86_64.tar.gz - macOS Apple Silicon:
npnp-vX.Y.Z-macos-aarch64.tar.gz
运行 npnp --prompt 可以打印可直接复制的命令。导出命令按目标 EDA 工具分组:
npnp search C2040 --limit 5
npnp altium export C2040 --full --output altium-libs --force
npnp altium batch --input ids.txt --output generated/altium --merge --library-name MyLib --full --continue-on-error
npnp altium batch --input new_ids.txt --output generated/altium --merge --append --library-name MyLib --full --force --continue-on-error
npnp kicad export C2040 --full --output kicad-libs --library-name MyParts --force
npnp kicad batch --input ids.txt --output generated/kicad --library-name MyParts --full --force --parallel 4 --continue-on-error常用统一参数:
--full:导出该 EDA 工具支持的全部库目标。--force:替换已有生成结果。--english-metadata:优先使用英文元数据;如果缺失,则自动回退到源数据中的元数据。--library-name:设置 Altium 合并库名称或 KiCad 库基础名称。- Altium
--merge只创建新的合并库,不会覆盖已有同名库;要给已有合并库追加元件,请使用--merge --append。
![]() 符号库 |
![]() 封装库 |
![]() 3D 模型 |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
- 感谢
easyeda2kicad和 uPesy 给了项目最开始的灵感。 - 感谢所有帮助测试异常器件、封装、符号方向、3D 模型和跨平台发布包的用户。















