npnp 0.1.8

Normalize Pin Net Pad (npnp): pure Rust LCEDA/EasyEDA downloader and Altium library exporter
Documentation

npnp

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.

Features

  • 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 npnp library 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:

Merged output overview

Schematic library screenshots:

PCB library screenshots:

Requirements

  • 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 .SchLib and .PcbLib files.

Install Rust from https://rustup.rs/ if you do not already have it.

License

npnp now uses the closest standard license to the current project intent: PolyForm-Noncommercial-1.0.0 in LICENSE.md.

  • Non-commercial use, research, evaluation, and personal experimentation are allowed.
  • Commercial use, paid redistribution, paid service use, or use inside a commercial workflow requires separate permission from the author.
  • If you redistribute the project, keep the license text and required notices.
  • The PolyForm license does not legally require pull requests. This project still asks anyone publishing modified versions to mention the original npnp project and, when possible, send changes back as a pull request.
  • This is source-available and non-commercial, not an OSI open-source license.

How to use

In fact, you only need 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-error

Another easy way is to use GUI TOOL <###> SeEx. And it is STRONGLY recommended. ENJOY, 😊.