Normalize Pin Net Pad (npnp) is an LCEDA/EasyEDA downloader and Altium library exporter written in pure Rust.
npnp searches LCEDA/LCSC components, downloads upstream EasyEDA source data and 3D models, and exports Altium-compatible schematic and PCB footprint libraries.
- Search LCEDA/LCSC components by keyword, part name, or LCSC ID.
- Download 3D models as STEP or OBJ/MTL.
- Export raw EasyEDA symbol and footprint JSON for inspection.
- Export Altium schematic libraries (
.SchLib). - Export Altium PCB footprint libraries (
.PcbLib). - Embed STEP models into PCB libraries when upstream STEP data is available.
- Batch export many LCSC IDs from a text file.
- Export either one file per component or merged library pairs.
- Append new components into an existing merged
npnplibrary pair without duplicating existing LCSC IDs. - Show live batch progress with counts, active workers, elapsed time, and the most recently processed component.
- Resume non-merged batch exports with checkpoint files.
- Retry transient LCEDA/EasyEDA request failures automatically.
Overview:
Schematic library screenshots:
PCB library screenshots:
- Rust toolchain for building from source.
- Network access to LCEDA/EasyEDA APIs when searching, downloading, or exporting.
- Altium Designer is recommended for final visual verification of generated
.SchLiband.PcbLibfiles.
Install Rust from https://rustup.rs/ if you do not already have it.
- Make sure that you check all the
sch/symbolandpcb/footprintbefore fabrication files exported. - No promise made when you use the tool.
In fact, just type npnp in terminal, and then copy some reay to use command lines to execute as follows.
Generally speaking, all you need to copy is the last two lines, which could export shclib and pcblib in batch to a taget output directory and also could append new components to the existing libs generated by npnp.
Admin@linkyourbin MINGW64 /c/Users/Admin
$ npnp
Normalize Pin Net Pad (npnp) - Pure Rust LCEDA downloader and bundle exporter
Usage: npnp [OPTIONS] [COMMAND]
Commands:
search Search components by keyword
download-step Search by keyword and download STEP by result index
download-obj Search by keyword and download OBJ/MTL by result index
export-source Export EasyEDA symbol / footprint JSON sources only
export-schlib Export a pure Rust Altium schematic library (.SchLib)
export-pcblib Export a pure Rust Altium PCB footprint library (.PcbLib)
bundle Export a pure-Rust input bundle: sources + STEP + manifest
batch Batch export Altium libraries from a text file of LCSC IDs
help Print this message or the help of the given subcommand(s)
Options:
--prompt Show ready-to-run example commands
-h, --help Print help
-V, --version Print version
Admin@linkyourbin MINGW64 /c/Users/Admin
$ npnp --prompt
Normalize Pin Net Pad (npnp) ready-to-run commands:
Search a component
npnp search C2040 --limit 5
Export one schematic library
npnp export-schlib C2040 --index 1 --output schlib --force
Export one PCB library
npnp export-pcblib C2040 --index 1 --output pcblib --force
Export EasyEDA source JSON plus STEP bundle
npnp bundle C2040 --index 1 --output bundle --force
Batch export both libraries from ids.txt
npnp batch --input ids.txt --output generated\quick_check --full --force --continue-on-error
Merge both libraries into one pair of outputs
npnp batch --input ids.txt --output generated\merged --merge --library-name MyLib --full --continue-on-error
Append new parts into an existing merged library
npnp batch --input new_ids.txt --output generated\merged --merge --append --library-name MyLib --full --continue-on-errorAnother easy way is to use GUI TOOL <###> SeEx. And it is STRONGLY recommended. ENJOY, 😊.
You are welcome to issue.







