49 lines
2.4 KiB
Rust
49 lines
2.4 KiB
Rust
use siphon::{render_to_svg, RenderOptions};
|
|
|
|
const DEMO: &str = r#"(kicad_pcb (version 20260206) (generator "pcbnew")
|
|
(layers (0 "F.Cu" signal) (31 "B.Cu" signal))
|
|
(segment (start 10 10) (end 40 10) (width 0.25) (layer "F.Cu") (uuid "1"))
|
|
(segment (start 40 10) (end 40 30) (width 0.25) (layer "F.Cu") (uuid "2"))
|
|
(segment (start 40 30) (end 10 30) (width 0.25) (layer "B.Cu") (uuid "3"))
|
|
(arc (start 10 30) (mid 5 20) (end 10 10) (width 0.25) (layer "F.Cu") (uuid "4"))
|
|
(via (at 40 20) (size 0.8) (drill 0.4) (layers "F.Cu" "B.Cu") (uuid "5"))
|
|
(gr_rect (start 2 2) (end 50 35) (stroke (width 0.1)) (fill none) (layer "Edge.Cuts") (uuid "6"))
|
|
(footprint "Resistor_SMD:R_0603_1608Metric"
|
|
(layer "F.Cu")
|
|
(at 25 18 0)
|
|
(uuid "fp1")
|
|
(fp_text reference "R1" (at 0 -1.3 0) (layer "F.Silkscreen")
|
|
(effects (font (size 0.8 0.8) (thickness 0.12))))
|
|
(fp_text value "10k" (at 0 1.3 0) (layer "F.Fab")
|
|
(effects (font (size 0.6 0.6) (thickness 0.1))))
|
|
(fp_line (start -0.8 -0.5) (end 0.8 -0.5) (stroke (width 0.1)) (layer "F.Silkscreen"))
|
|
(fp_line (start -0.8 0.5) (end 0.8 0.5) (stroke (width 0.1)) (layer "F.Silkscreen"))
|
|
(fp_rect (start -1.4 -0.7) (end 1.4 0.7) (stroke (width 0.05)) (fill none) (layer "F.Courtyard"))
|
|
(pad "1" smd roundrect (at -0.8 0 0) (size 0.9 0.9)
|
|
(layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25))
|
|
(pad "2" smd roundrect (at 0.8 0 0) (size 0.9 0.9)
|
|
(layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25))
|
|
)
|
|
(gr_text "BOARD TITLE"
|
|
(at 26 4 0)
|
|
(layer "F.Silkscreen")
|
|
(effects (font (size 1.5 1.5) (thickness 0.2)))
|
|
(uuid "title"))
|
|
(footprint "Connector:PinHeader_1x02"
|
|
(layer "F.Cu")
|
|
(at 15 20 90)
|
|
(uuid "fp2")
|
|
(fp_circle (center 0 0) (end 0.5 0) (stroke (width 0.1)) (fill none) (layer "F.Silkscreen"))
|
|
(pad "1" thru_hole circle (at 0 0 0) (size 1.7 1.7) (drill 1.0)
|
|
(layers "F.Cu" "B.Cu" "F.Mask" "B.Mask"))
|
|
(pad "2" thru_hole rect (at 0 2.54 0) (size 1.7 1.7) (drill 1.0)
|
|
(layers "F.Cu" "B.Cu" "F.Mask" "B.Mask"))
|
|
)
|
|
)"#;
|
|
|
|
fn main() {
|
|
let svg = render_to_svg(DEMO, &RenderOptions::default()).expect("render");
|
|
std::fs::write("/tmp/siphon_demo.svg", &svg).expect("write");
|
|
println!("wrote /tmp/siphon_demo.svg ({} bytes)", svg.len());
|
|
}
|