← Commit history

Sync current source (open-source, up to date)

John Lauer ·fc00e9de93 ·3mo ago ·parent bfc562b
3 files changed +25−52
VERSIONadded+1
@@ -0,0 +1 @@+0.1.6
package.json+7−49
@@ -1,56 +1,14 @@ {   "slug": "adom-symbol",-  "version": "1.0.4",+  "version": "0.1.6",   "type": "app",-  "description": "A live, AI-drivable KiCad schematic-symbol studio \u2014 auto-grouped pins, the chip's real 3D model embossed on the symbol, sent to KiCad/Fusion/Altium/OrCAD.",-  "dependencies": {},-  "tags": [-    "eda",-    "kicad",-    "schematic",-    "symbol",-    "pcb",-    "cli"-  ],-  "files": [-    "install.sh",-    "uninstall.sh",-    "package.json",-    "page.json",-    "README.md",-    "SKILL.md",-    "Cargo.toml",-    "screenshots/hero-v5.png",-    "src/main.rs",-    "src/app.html",-    "src/render.rs",-    "src/discrete_gen.rs",-    "src/embed.html",-    "src/deliver.rs",-    "src/server.rs",-    "src/theme.rs",-    "src/ds2sf.rs",-    "src/parse.rs",-    "src/sym_gen.rs",-    "docs/var-name-onchip.png",-    "docs/shot.png",-    "docs/var-name-insymbol.png",-    "docs/var-3d-outline.png",-    "docs/var-3d-iso.png",-    "docs/var-groups-grouped.png",-    "docs/var-groups-flat.png",-    "docs/var-layout-square.png",-    "docs/symbol.png",-    "docs/embed.png",-    "docs/hero.png",-    "docs/var-layout-leftright.png",-    "docs/chip3d.png",-    "docs/studio.png"-  ],+  "description": "KiCad symbol creator with interactive viewer and delivery to KiCad/Fusion 360",+  "dependencies": {+    "adom-lbr": "^0.1.0"+  },   "scripts": {     "install": "./install.sh",     "uninstall": "./uninstall.sh"   },-  "needs_sudo": false,-  "license": "MIT"-}\ No newline at end of file+  "needs_sudo": false+}
src/main.rs+17−3
@@ -2,6 +2,7 @@ //! No Node, no gallia. Generation is native Rust (`sym_gen`/`discrete_gen`); //! SVG rendering goes through service-kicad (`render`). +mod provenance; mod discrete_gen; mod deliver; mod ds2sf;@@ -61,6 +62,12 @@ enum Cmd {         file: PathBuf,         #[arg(long)]         out: PathBuf,+        /// Optional iso 3D chip PNG to composite into the symbol body centre —+        /// this is the "default symbol with the 3D chip in it" the dashboard+        /// card shows. Usually `<dir>/<mpn>-3d-iso-icon.png` (transparent) or+        /// `<mpn>-3d-iso.png`.+        #[arg(long)]+        iso: Option<PathBuf>,     },     /// Render a ds2sf `<mpn>-symbol.extracted.json` to a themed thumbnail SVG     /// (auto-grouped via our generator). Used by chip-fetcher for the ds2sf@@ -189,12 +196,19 @@ fn main() { fn run() -> Result<()> {     match Cli::parse().command {         Cmd::Create { file, out } => cmd_create(file, out),-        Cmd::Render { file, out } => {+        Cmd::Render { file, out, iso } => {             let content = fs::read_to_string(&file).with_context(|| format!("reading {}", file.display()))?;             let name = first_symbol_name(&content).unwrap_or_else(|| "symbol".to_string());-            let svg = render::render_symbol_svg(&content, &name)?;+            let mut svg = render::render_symbol_svg(&content, &name)?;+            if let Some(iso_path) = iso.as_ref() {+                match render::composite_iso_into_symbol(&svg, &content, &name, iso_path) {+                    Ok(s) => svg = s,+                    Err(e) => eprintln!("WARN: iso composite skipped: {e}"),+                }+            }             fs::write(&out, &svg).with_context(|| format!("writing {}", out.display()))?;-            println!("OK: rendered {} → {}", file.display(), out.display());+            println!("OK: rendered {} → {}{}", file.display(), out.display(),+                     if iso.is_some() { " (+iso 3D chip)" } else { "" });             Ok(())         }         Cmd::RenderDs2sf { file, out, layout, sym } => cmd_render_ds2sf(file, out, layout, sym),