English | 简体中文
Normalize Pin Net Pad (npnp) is a pure Rust component library exporter for Altium and KiCad.
npnp searches component data, downloads upstream source files and 3D models, and exports ready-to-check schematic and PCB footprint libraries.
- Search components by keyword, part name, or LCSC ID.
- Download 3D models as STEP or OBJ/MTL.
- Export raw symbol and footprint JSON for inspection.
- Export Altium schematic libraries (
.SchLib). - Export Altium PCB footprint libraries (
.PcbLib). - Export KiCad symbol, footprint, and 3D model libraries (
.kicad_sym,.pretty,.3dshapes). - Embed STEP models into PCB libraries when upstream STEP data is available.
- Batch export many component IDs from a text file.
- Export either one file per component or merged library pairs.
- Append new components into an existing merged library pair without duplicating existing component IDs.
- Export optional English metadata with
--english-metadata.
- Remove logo/watermark geometry from downloaded 3D models when possible.
- Improve solder mask handling for irregular pads during
.PcbLibexport. - Add more regression fixtures for unusual symbols and footprints.
- Improve documentation for batch merge and append workflows.
- Generated libraries should still be visually checked before fabrication.
- Some upstream symbols and footprints may use primitives that need special handling.
Schematic library screenshots:
PCB library screenshots:
KiCad library previews:
Type npnp --prompt to print ready-to-run commands. Export commands are grouped by target EDA tool:
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-errorUseful shared flags:
--full: export all supported library targets for that EDA tool.--force: replace existing generated outputs.--english-metadata: prefer English metadata when available, while falling back to source metadata when it is missing.--library-name: set the merged Altium library name or KiCad library base name.- Altium
--mergecreates a new merged library and refuses to overwrite an existing one. Use--merge --appendto add components to an existing merged library.















