← Commit history
Cargo.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.py

  
planner/mark_geom.py

  
planner/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.py

  
planner/mark_svc.py

  
planner/step_text.py

  
planner/test_mark_gate.py