Task-oriented guides for the library. Every guide is rooted in a runnable example
project under examples/: the prose lives in the example's own
README.md, right next to a Program.cs that compiles and runs. All example projects
are part of the solution, so they are built on every CI run — if a documented snippet
stops compiling, the build fails. The code in the guides is therefore always real,
working code, not pseudo-code that drifts out of date.
Run any example with:
dotnet run --project examples/<ExampleName>Read-oriented examples load real sample files from TestData/ by default,
and accept a path to your own file as an argument.
For installation, the quick-start, and the coordinate system, see the top-level README and the API reference.
| Guide | What you get | Example |
|---|---|---|
| Loading & inspecting files | Open all four file types and walk their contents | LoadFiles |
| Inspecting a PCB | Board size, layer stack, primitive/net counts, rule summary | InspectBoard |
| Nets & connectivity | Per-net copper membership, and what the model does/doesn't track | NetReport |
| Inspecting a whole project | Documents, variants, configurations and the sheet hierarchy from a .PrjPcb |
InspectProject |
| Guide | What you get | Example |
|---|---|---|
| Extracting a bill of materials | Grouped BOM (CSV + HTML) from a .SchDoc |
ExtractBom |
| Pick-and-place / centroid file | Assembly centroid CSV from a .PcbDoc |
GeneratePickAndPlace |
| Extracting embedded assets | STEP 3D models and bitmap images to disk | ExtractEmbeddedAssets |
| Guide | What you get | Example |
|---|---|---|
| Creating files from scratch | Build PcbLib, SchLib, SchDoc, PcbDoc with the fluent builders | CreateFiles |
| Modifying existing files | Load → change → save round-trips for all four types | ModifyFiles |
| Programmatic footprint generation | Parametric QFN/DIP footprint families | BuildFootprintGenerator |
| Multi-part components | Symbols with PartCount > 1 and OwnerPartId |
BuildMultiPartComponent |
| Guide | What you get | Example |
|---|---|---|
| Rendering components & boards | PNG/SVG output, board view sides, layer filtering | RenderFiles |
| Component catalogs | Render a whole library to a thumbnail gallery | LibraryCatalog |
| Guide | What you get | Example |
|---|---|---|
| Serving previews from a web app | Render components to an HTTP response (minimal API) | WebPreviewService |
| Guide | What you get | Example |
|---|---|---|
| Hierarchical schematics | Walk sheet symbols into child sheets | WalkHierarchy |
| Diffing libraries | Added / removed / changed components between two libraries | DiffLibraries |
| Validating & linting | Reader diagnostics plus library-hygiene checks | ValidateLibrary |
The library reads and writes the four document/library types; there is no project-file
(.PrjPcb/.PrjScr) reader, and the schematic model is geometric (no built-in
pin-to-net connectivity). Guides call out these boundaries where they matter rather than
implying capabilities that aren't there. The PCB side does model net membership (by
NetIndex), which is what the nets guide uses.