master
John Lauer Datasheet-true STEP thickness 1.25 mm (Samsung spec), MPN mark re-applied; GLBs, hero GLB and hero card rebuilt 455b420 24d ago
{
 "schema": "adom/basic-part-etch-pass@1",
 "mpn": "CL21A226MPQNNNE",
 "date": "2026-09-30",
 "request": "John: chip-laser-etch every component we put on wiki pages; the best STEP (with the etch) is the default",
 "step": {
  "default": {
   "file": "CL21A226MPQNNNE.step",
   "sha256": "5cc537984bd6fe0e6c71b1bc04316f9ee37f22ca82e159bfcf3f7f9f308e608b",
   "content": "the Samsung 0805 model height-corrected to 1.25 mm + one flat laser_etch part (virtual MPN on the ceramic top)",
   "source": "etch_part.py on the height-corrected model"
  },
  "unetched": {
   "file": "CL21A226MPQNNNE-unetched.step",
   "sha256": "c25326e92b4316faa2e1b4df1bfda9360deca5dc3754fd55d7219e77e7efc670",
   "note": "plain vendor model (no mark), height-corrected to 1.25 mm; no longer byte-identical to the file this page shipped (kept as provenance/CL21A226MPQNNNE-samsung-original.step)"
  }
 },
 "mark": {
  "kind": "virtual",
  "text": "CL21A226MPQNNNE",
  "color_linear_rgb": [
   0.78,
   0.78,
   0.76
  ],
  "color_reason": "light mark on a dark body",
  "flat": "zero-thickness sheet (glyph top faces only)",
  "note": "etched in the posed Z-up frame (frac 0.42, so the text stays on the ceramic between the terminations), mark seated onto the ceramic top (z 0.925) which sits 25 um below the terminations, then turned back to the vendor Y-up frame"
 },
 "etch": {
  "file": "etched.step",
  "sha256": "6ddc7cb06641ad54e1c85dcd3421b0d639feb96b33368eab7b46f037461dcdd8",
  "frame": "same as the original STEP (drop-in)",
  "source_sha256": "b65416e627bfc0865a56803375fe59b2014033132c1c6b91803fe36de52b0a3f",
  "tool": "aiflow-work/merged/tools/laser-etch/etch_part.py (adom-chip-laser service + merge_etch.py flat) [+ _tools/seat_mark.py where the body top sits below the terminations]",
  "note": "etched in the posed Z-up frame (frac 0.42, so the text stays on the ceramic between the terminations), mark seated onto the ceramic top (z 0.925) which sits 25 um below the terminations, then turned back to the vendor Y-up frame"
 },
 "pose": {
  "frame": "Adom Z-up footprint seating frame, metres in GLB, seating plane Z = 0",
  "transform": "source STEP (Samsung CL21A105KACLNNC 0805 body model) is Y-up; posed by XCAF wrap +90 deg about X (long axis stays on X, the footprint pad axis). Seating plane: model bottom is at z -0.004 mm (vendor geometry, left as is)",
  "xcaf_transform": "\u001b[0m"
 },
 "page_glbs": {
  "method": "swap_part.py: only the part mesh is replaced by the step2glb conversion of the etched STEP (posed Z-up); board, pads, solder, silk, node names, the insertion animation and every other node copied unchanged; the mark is a child node Adom.LaserEtch.MPN of the part node, so it rides the insertion animation",
  "files": {
   "CL21A226MPQNNNE.glb": {
    "sha256": "82c152995204e40e4fab4a8c21deaae22341df04a50b3a130b5ffb8405b8fff8",
    "bytes": 30160,
    "bytes_before": 2936,
    "tris_before": 36,
    "tris_after": 794,
    "swap": {
     "out": "CL21A226MPQNNNE.glb",
     "bytes": 30160,
     "sha256": "82c152995204e40e4fab4a8c21deaae22341df04a50b3a130b5ffb8405b8fff8",
     "part_node": "CL21A226MPQNNNE",
     "old_part_tris": 36,
     "new_part_tris": 580,
     "old_part_bbox_mm": [
      [
       -1.0,
       -0.625,
       0.0
      ],
      [
       1.0,
       0.625,
       1.25
      ]
     ],
     "new_part_bbox_mm_local": [
      [
       -1.0,
       -0.625,
       0.0
      ],
      [
       1.0,
       0.625,
       1.25
      ]
     ],
     "node_scale_z": 1,
     "rendered_top_mm": 1.25,
     "laser_etch": {
      "tris": 214,
      "rgb_linear": [
       0.78,
       0.78,
       0.76
      ],
      "z_mm": [
       1.2221,
       1.2221
      ]
     }
    }
   },
   "CL21A226MPQNNNE.insertion.glb": {
    "sha256": "36d2d205a5b9b4b7fec063614defa03334b07eaa0b77aa1585d81477046ef842",
    "bytes": 50388,
    "bytes_before": 28764,
    "tris_before": 968,
    "tris_after": 1726,
    "swap": {
     "out": "CL21A226MPQNNNE.insertion.glb",
     "bytes": 50388,
     "sha256": "36d2d205a5b9b4b7fec063614defa03334b07eaa0b77aa1585d81477046ef842",
     "part_node": "CL21A226MPQNNNE",
     "old_part_tris": 36,
     "new_part_tris": 580,
     "old_part_bbox_mm": [
      [
       -1.0,
       -0.625,
       0.0
      ],
      [
       1.0,
       0.625,
       1.25
      ]
     ],
     "new_part_bbox_mm_local": [
      [
       -1.0,
       -0.625,
       0.0
      ],
      [
       1.0,
       0.625,
       1.25
      ]
     ],
     "node_scale_z": 1,
     "rendered_top_mm": 1.25,
     "laser_etch": {
      "tris": 214,
      "rgb_linear": [
       0.78,
       0.78,
       0.76
      ],
      "z_mm": [
       1.2221,
       1.2221
      ]
     }
    }
   }
  },
  "z_stretch": "none any more: the STEP is datasheet-true (1.25 mm), the part node scale is 1"
 },
 "hero_glb": {
  "file": "cl21a226mpqnnne-hero.glb",
  "sha256": "01ca2416cf56a11e6eb2b26fea6c21f8f39359e4bd534526b64fc82739e29302",
  "source": "hero-proposals/_tools/build_hero.py re-run on the height-corrected etched STEP (same config as the reviewed proposal)",
  "provenance": "provenance/cl21a226mpqnnne-hero.provenance.json"
 },
 "hero_png": {
  "file": "screenshots/hero.png",
  "sha256": "e1d1ad3e7139ec23db84b55b3d9e0d53ba17d3c06355f841f4346ce4d0608289",
  "source": "hero-proposals/_tools/make_hero_png.py re-run with the reviewed proposal config"
 },
 "cl21_note": "The page STEP is the detailed Samsung 0805 body model (named CL21A105KACLNNC inside, Y-up). It was 0.95 mm tall; since pass 2 it is scaled to the CL21A226MPQNNNE datasheet thickness 1.25 mm, so the STEP, both page GLBs and the hero GLB all show 1.25 mm.",
 "height": {
  "date": "2026-09-30",
  "datasheet": "Samsung CL21A226MPQNNNE specification (reference sheet) p.1: thickness T = 1.25 +- 0.15 mm (part-number field 7 \"Q\"; dimension table T 1.25 +- 0.15)",
  "step_height_before_mm": 0.95,
  "step_height_after_mm": 1.25,
  "scale": "1.315789 along the vendor Y axis (the STEP is Y-up), about y = 0 (seating plane); length and width unchanged",
  "method": "xcaf_scale_axis.py (BRepBuilderAPI_GTransform through XCAF; names and solid/face colours kept), then the top MPN etch re-applied on the scaled model (etch_part.py --up y --frac 0.42 --mark light, seated on the ceramic) so the glyphs are not stretched",
  "samsung_original": {
   "file": "provenance/CL21A226MPQNNNE-samsung-original.step",
   "sha256": "b65416e627bfc0865a56803375fe59b2014033132c1c6b91803fe36de52b0a3f",
   "note": "the vendor model (CL21A105KACLNNC, 0.95 mm) this page shipped before, byte for byte"
  },
  "etch": {
   "ok": true,
   "out": "cl21a226mpqnnne/CL21A226MPQNNNE.step",
   "mpn": "CL21A226MPQNNNE",
   "face": "top",
   "fontMm": 0.093,
   "alongLongAxis": true,
   "along": "long",
   "turnedForLongAxis": false,
   "stoodUp": true,
   "mark": "0.78,0.78,0.76"
  }
 }
}