Skip to content

ref42/npnp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

npnp

npnp app logo

platform Windows macOS Linux rust edition 2024

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.

Project status

Implemented

  • 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.

Roadmap

  • Remove logo/watermark geometry from downloaded 3D models when possible.
  • Improve solder mask handling for irregular pads during .PcbLib export.
  • Add more regression fixtures for unusual symbols and footprints.
  • Improve documentation for batch merge and append workflows.

Known limits

  • Generated libraries should still be visually checked before fabrication.
  • Some upstream symbols and footprints may use primitives that need special handling.

Schematic library screenshots:

Merged schematic screenshot 1 Merged schematic screenshot 2 Merged schematic screenshot 3 Merged schematic screenshot 4 Merged schematic screenshot 5 Merged schematic screenshot 6

PCB library screenshots:

Merged PCB screenshot 1 Merged PCB screenshot 2 Merged PCB screenshot 3 Merged PCB screenshot 4 Merged PCB screenshot 5 Merged PCB screenshot 6

KiCad library previews:

KiCad symbol preview KiCad footprint preview KiCad 3D model preview

CLI

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-error

Useful 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 --merge creates a new merged library and refuses to overwrite an existing one. Use --merge --append to add components to an existing merged library.

About

Normalize Pin Net Pad (npnp) is a pure Rust component library exporter for Altium and KiCad. Feel free to issue, thanks.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors