Skip to content

linkyourbin/npnp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

npnp

npnp app logo

version 0.1.3 license PolyForm NC 1.0 platform Windows rust edition 2024

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:

Merged schematic screenshot 1 Merged schematic screenshot 2 Merged schematic screenshot 3

PCB library screenshots:

Merged PCB screenshot 1 Merged PCB screenshot 2 Merged PCB screenshot 3

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.

Note

  • Make sure that you check all the sch/symbol and pcb/footprint before fabrication files exported.
  • No promise made when you use the tool.

How to use

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

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

You are welcome to issue.

About

Normalize Pin Net Pad (npnp) is a pure Rust LCEDA/EasyEDA downloader and Altium library exporter.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages