docs: comprehensive documentation overhaul for v2.2.3
Major documentation update bringing all docs current with the 122-tool, 16-category state of the project (previously frozen at v2.1.0-alpha/59 tools). New documentation (9 files): - FREEROUTING_GUIDE.md - autorouter setup, Docker/Podman, all 4 tools - SCHEMATIC_TOOLS_REFERENCE.md - all 27 schematic tools with parameters - ROUTING_TOOLS_REFERENCE.md - all 13 routing tools with examples - FOOTPRINT_SYMBOL_CREATOR_GUIDE.md - 8 creator tools with examples - SVG_IMPORT_GUIDE.md - SVG logo import tool - DATASHEET_TOOLS_GUIDE.md - datasheet enrichment tools - PCB_DESIGN_WORKFLOW.md - end-to-end design guide - ARCHITECTURE.md - system architecture for contributors - INDEX.md - documentation table of contents Updated documentation (12 files): - README.md - tool count 64->122, feature list, contributor credits - TOOL_INVENTORY.md - complete rebuild with all 122 tools - STATUS_SUMMARY.md - updated to v2.2.3 feature matrix - ROADMAP.md - marked completed milestones, added v2.3+ vision - KNOWN_ISSUES.md - removed resolved issues, added v2.2.x fixes - CLIENT_CONFIGURATION.md - added KICAD_MCP_DEV, FREEROUTING_JAR env vars - LIBRARY_INTEGRATION.md - added symbol and project-local library support - ROUTER_ARCHITECTURE.md, ROUTER_QUICK_START.md - updated tool counts - IPC_BACKEND_STATUS.md - updated dates - JLCPCB_USAGE_GUIDE.md - added cross-reference note - CONTRIBUTING.md - added ARCHITECTURE.md reference, updated tool count Archived 10 completed planning docs to docs/archive/. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
113
docs/SVG_IMPORT_GUIDE.md
Normal file
113
docs/SVG_IMPORT_GUIDE.md
Normal file
@@ -0,0 +1,113 @@
|
||||
# SVG Logo Import Guide
|
||||
|
||||
**Added in:** v2.2.3
|
||||
|
||||
The `import_svg_logo` tool converts SVG vector graphics into filled polygons on a KiCAD PCB layer. This is useful for placing company logos, project branding, or custom artwork on your board's silkscreen or copper layers.
|
||||
|
||||
---
|
||||
|
||||
## Tool Reference
|
||||
|
||||
### `import_svg_logo`
|
||||
|
||||
Imports an SVG file as filled graphic polygons onto a PCB layer. Curves are linearized automatically.
|
||||
|
||||
**Parameters:**
|
||||
|
||||
| Parameter | Type | Required | Default | Description |
|
||||
|-----------|------|----------|---------|-------------|
|
||||
| `pcbPath` | string | Yes | -- | Path to the .kicad_pcb file |
|
||||
| `svgPath` | string | Yes | -- | Path to the SVG logo file |
|
||||
| `x` | number | Yes | -- | X position of the logo top-left corner in mm |
|
||||
| `y` | number | Yes | -- | Y position of the logo top-left corner in mm |
|
||||
| `width` | number | Yes | -- | Target width of the logo in mm (height scales to preserve aspect ratio) |
|
||||
| `layer` | string | No | F.SilkS | PCB layer name (e.g., F.SilkS, B.SilkS, F.Cu, B.Cu) |
|
||||
| `strokeWidth` | number | No | 0 | Outline stroke width in mm (0 = no outline) |
|
||||
| `filled` | boolean | No | true | Fill polygons with solid color |
|
||||
|
||||
**Returns:**
|
||||
- Polygon count
|
||||
- Final dimensions (width x height in mm)
|
||||
- Layer used
|
||||
|
||||
---
|
||||
|
||||
## SVG Requirements
|
||||
|
||||
### Supported Features
|
||||
- Path elements with M, L, H, V, C, S, Q, T, A, Z commands
|
||||
- Filled shapes (polygons, rectangles, circles, ellipses)
|
||||
- Nested groups and transforms
|
||||
- Cubic and quadratic Bezier curves (linearized automatically)
|
||||
|
||||
### Recommendations
|
||||
- Use simple, solid shapes -- avoid complex gradients or filters
|
||||
- Convert text to paths/outlines before importing
|
||||
- Ensure shapes are filled (not just stroked) for best results
|
||||
- Keep the SVG clean -- remove unnecessary metadata and layers
|
||||
|
||||
### What Will Not Work
|
||||
- Raster images embedded in SVG
|
||||
- CSS-based styling (inline style attributes are preferred)
|
||||
- Complex SVG filters or effects
|
||||
- Transparency (PCB layers are binary -- copper or no copper)
|
||||
|
||||
---
|
||||
|
||||
## Workflow
|
||||
|
||||
### 1. Prepare Your SVG
|
||||
|
||||
If starting from a raster image (PNG, JPG):
|
||||
- Use a vector graphics editor (Inkscape, Illustrator, Figma) to trace the image
|
||||
- In Inkscape: Path > Trace Bitmap to convert
|
||||
- Export as plain SVG
|
||||
|
||||
If starting from a vector logo:
|
||||
- Open in a vector editor
|
||||
- Convert all text to paths (Object to Path / Create Outlines)
|
||||
- Remove unnecessary layers and hidden elements
|
||||
- Save as plain SVG
|
||||
|
||||
### 2. Import the Logo
|
||||
|
||||
```
|
||||
Import my company logo from ~/logos/logo.svg onto the board at position x=25 y=40 with width 15mm on the front silkscreen.
|
||||
```
|
||||
|
||||
### 3. Verify Placement
|
||||
|
||||
Use `get_board_2d_view` to preview the board with the logo, or open in KiCAD to check placement.
|
||||
|
||||
### 4. Adjust if Needed
|
||||
|
||||
Re-run `import_svg_logo` with different position, width, or layer parameters.
|
||||
|
||||
---
|
||||
|
||||
## Layer Options
|
||||
|
||||
| Layer | Use Case |
|
||||
|-------|----------|
|
||||
| `F.SilkS` | Front silkscreen (most common for logos) |
|
||||
| `B.SilkS` | Back silkscreen |
|
||||
| `F.Cu` | Front copper (logo as exposed copper) |
|
||||
| `B.Cu` | Back copper |
|
||||
| `F.Mask` | Front solder mask opening (exposes copper underneath) |
|
||||
| `B.Mask` | Back solder mask opening |
|
||||
|
||||
---
|
||||
|
||||
## Manufacturing Considerations
|
||||
|
||||
- **Silkscreen logos** are the safest choice -- no impact on electrical design
|
||||
- **Copper logos** will be part of the copper layer and may affect DRC. Ensure adequate clearance from traces and pads
|
||||
- **Minimum feature size** depends on your PCB fabricator. Most support 0.15mm (6mil) minimum line width for silkscreen
|
||||
- **Logo size** should account for manufacturing tolerances -- very small details may not reproduce well
|
||||
|
||||
---
|
||||
|
||||
## Source Files
|
||||
|
||||
- TypeScript tool definition: `src/tools/board.ts` (import_svg_logo)
|
||||
- Python implementation: `python/commands/svg_import.py`
|
||||
Reference in New Issue
Block a user