app
Adom Chip Thumbnailer
Public Made by Adomby adom
The chip-icon factory: from a STEP file it renders the complete family of chip icons, shaded 3D orientations, transparent icons, name-lasered variants, and 11 vector outline styles, in a live web app + CLI.
← Commit history
1.2.1: planner synced with adom-aiflow 0.1.49 (single-stroke names in every outline style)
16 files changed
+12−12
Cargo.lock+1−1Cargo.toml+1−1VERSION+1−1bin/adom-chip-thumbnailerinstall.sh+1−1package.json+1−1page.json+1−1planner/SOURCE.json+3−3planner/mark_check.py+2−2planner/mark_etch.pyplanner/mark_geom.pyplanner/mark_outline.py+1−1planner/mark_plan.pyplanner/mark_svc.pyplanner/step_text.pyplanner/test_mark_gate.pyCargo.lock+1−1@@ -10,7 +10,7 @@ checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" [[package]] name = "adom-chip-thumbnailer"-version = "1.2.0"+version = "1.2.1" dependencies = [ "anyhow", "base64",
Cargo.toml+1−1@@ -1,6 +1,6 @@ [package] name = "adom-chip-thumbnailer"-version = "1.2.0"+version = "1.2.1" edition = "2021" description = "Chip icon factory: renders the full 3D chip-icon family (orientations, transparent icons, name-lasered + vector outlines) from a STEP via service-step2glb OCCT. Live web app + CLI." license = "MIT"
VERSION+1−1@@ -1 +1 @@-1.2.0+1.2.1
bin/adom-chip-thumbnailer⋯ 1 unchanged line ⋯
install.sh+1−1@@ -9,7 +9,7 @@ HERE="$(cd "$(dirname "$0")" && pwd)" BIN="${HOME}/.local/bin"; mkdir -p "$BIN" VER="$(adom-wiki pkg info "$REF" 2>/dev/null \ | python3 -c "import sys,json;print((json.load(sys.stdin).get('versions') or [{}])[0].get('version',''))" 2>/dev/null)"-[ -z "$VER" ] && VER="1.2.0"+[ -z "$VER" ] && VER="1.2.1" curl -fsSL "https://wiki.adom.inc/download/${REF}/${VER}/adom-chip-thumbnailer" \ -o "$BIN/adom-chip-thumbnailer" chmod +x "$BIN/adom-chip-thumbnailer"
package.json+1−1@@ -1,6 +1,6 @@ { "slug": "adom-chip-thumbnailer",- "version": "1.2.0",+ "version": "1.2.1", "type": "app", "description": "The chip-icon factory: from a STEP file it renders the complete family of chip icons, shaded 3D orientations, transparent icons, name-lasered variants, and 11 vector outline styles, in a live web app + CLI.", "tags": [
page.json+1−1@@ -1,6 +1,6 @@ { "slug": "adom-chip-thumbnailer",- "version": "1.2.0",+ "version": "1.2.1", "type": "app", "description": "The chip-icon factory: from a STEP file it renders the complete family of chip icons, shaded 3D orientations, transparent icons, name-lasered variants, and 11 vector outline styles, in a live web app + CLI.", "dependencies": {},
planner/SOURCE.json+3−3@@ -1,12 +1,12 @@ { "source": "adom/adom-aiflow tools/laser-etch",- "sourceVersion": "0.1.48",+ "sourceVersion": "0.1.49", "note": "Vendored copy of the mark planner; do not edit here. Update in adom-aiflow and copy over; the sha256 list must match.", "sha256": {- "mark_check.py": "2ed264eb9c4618fdfb579529bb1606102467141bacab627873ea689a99f4297c",+ "mark_check.py": "a87f668ed894fe68c7c0889e189741cc123d48b24f514066b8de95e580adc127", "mark_etch.py": "2a2f56245d1ea20d288f0fddb17af8bc2ede2a0e99bbcb3d01b773839425a5db", "mark_geom.py": "18767a41c4bcd6742de5480051114e263a7ac2fd3d480530b02b7f36e3517b65",- "mark_outline.py": "94cbd36b8ec488cc5309b49344deea9c23b656d4d09bb0c41b263a9414f29fb8",+ "mark_outline.py": "68f20448bc6a549bbe449195d3a79eacf9d01b4aabfceb1e74b26975cf3d45f1", "mark_plan.py": "31594fafed47017f1e748d61c550a6edc925e6b0a0076d1663874a662b4b9504", "mark_svc.py": "5c9a7c74209fd1ce7c35cc1fddfdf2027f140dfe27fb466ace0b651ef649b7e1", "proxy_box.step": "4fda23eee6a720c3dd698f7d0ae0dbdab3d1d2e5740d7e6009449bf9dbbe7ccf",
planner/mark_check.py+2−2@@ -41,7 +41,7 @@ def _polylines(svg): return out -def outline_text(svg):+def outline_text(svg, plate=False): """Split an outline SVG into (name strokes, part strokes). adom-aiflow-etch outline wraps the name in <g id="adom-mark-name">; a service-drawn name is the trailing run of one stroke class that follows a different class, is no wider and has fewer strokes (multi-layer styles: hidden dashed / glow / core)."""@@ -60,7 +60,7 @@ def outline_text(svg): runs.append([t]) if len(runs) >= 2: last, prev = runs[-1], runs[-2]- if last[0]["w"] <= prev[0]["w"] and len(last) < len(prev) and not last[0].get("dash"):+ if plate or (last[0]["w"] <= prev[0]["w"] and len(last) < len(prev) and not last[0].get("dash")): return last, [t for r in runs[:-1] for t in r] return None, pl
planner/mark_etch.pyplanner/mark_geom.pyplanner/mark_outline.py+1−1@@ -90,7 +90,7 @@ def outlines(step, plan, etched=None, out_dir=".", styles=("dark",), stem=None, svg_name = named.get(style + "-named") out_svg = None if svg_name:- txt, plate_body = MC.outline_text(svg_name)+ txt, plate_body = MC.outline_text(svg_name, plate=True) c1 = calibrate(MC._polylines(svg_body), verts) c2 = calibrate(plate_body, plate_pts) if plate_body else None if txt and c2 and c1["agree"] < 0.03 and c2["agree"] < 0.03:
planner/mark_plan.pyplanner/mark_svc.pyplanner/step_text.pyplanner/test_mark_gate.py