← Commit history

Review pass: one lbr short names everywhere, 4 background library views, real-hole+silk lead GLB (all 4 pins), short-silk board 2D/3D, dev+publish skills with all feedback, no em-dashes

John Lauer ·061f641caf ·3mo ago ·parent 8f9b86e
13 files changed +153−48
AdomMachinePins-4pin-animated.glb
⋯ 1 unchanged line ⋯
AdomMachinePins.lbr+23−23
@@ -55,8 +55,8 @@ <library> <description>Adom Machine Pins - all four press-fit pins, fully 3D-bound (Fusion 360 .lbr)</description> <packages>-<package name="MachinePinMediumStandard">-  <description>MachinePinMediumStandard</description>+<package name="MP-MED-STD">+  <description>MP-MED-STD</description>   <pad name="1" x="0.0000" y="-0.0000" drill="1.1000" diameter="1.6000" shape="round"/>   <circle x="0.0000" y="-0.0000" radius="0.9000" width="0.0500" layer="21"/>   <wire x1="-1.0000" y1="1.0000" x2="1.0000" y2="1.0000" width="0.0500" layer="51"/>@@ -67,8 +67,8 @@   <text x="0" y="-2.200" size="1.27" layer="27" align="top-center">&gt;VALUE</text> </package> -<package name="MachinePinMediumShort">-  <description>MachinePinMediumShort</description>+<package name="MP-MED-SHORT">+  <description>MP-MED-SHORT</description>   <pad name="1" x="0.0000" y="-0.0000" drill="1.1000" diameter="1.6000" shape="round"/>   <circle x="0.0000" y="-0.0000" radius="0.9000" width="0.0500" layer="21"/>   <wire x1="-1.0000" y1="1.0000" x2="1.0000" y2="1.0000" width="0.0500" layer="51"/>@@ -79,8 +79,8 @@   <text x="0" y="-2.200" size="1.27" layer="27" align="top-center">&gt;VALUE</text> </package> -<package name="MachinePinLargeStandard">-  <description>MachinePinLargeStandard</description>+<package name="MP-LRG-STD">+  <description>MP-LRG-STD</description>   <pad name="1" x="0.0000" y="-0.0000" drill="3.4500" diameter="5.2000" shape="round"/>   <circle x="0.0000" y="-0.0000" radius="2.7000" width="0.0500" layer="21"/>   <wire x1="-3.0000" y1="3.0000" x2="3.0000" y2="3.0000" width="0.0500" layer="51"/>@@ -91,8 +91,8 @@   <text x="0" y="-5.800" size="1.27" layer="27" align="top-center">&gt;VALUE</text> </package> -<package name="MachinePinLargeShort">-  <description>MachinePinLargeShort</description>+<package name="MP-LRG-SHORT">+  <description>MP-LRG-SHORT</description>   <pad name="1" x="0.0000" y="-0.0000" drill="3.4500" diameter="5.2000" shape="round"/>   <circle x="0.0000" y="-0.0000" radius="2.7000" width="0.0500" layer="21"/>   <wire x1="-3.0000" y1="3.0000" x2="3.0000" y2="3.0000" width="0.0500" layer="51"/>@@ -103,7 +103,7 @@   <text x="0" y="-5.800" size="1.27" layer="27" align="top-center">&gt;VALUE</text> </package> </packages>-<packages3d><package3d name="MachinePinMediumStandard" urn="" wip_urn="urn:adsk.wipprod:fs.file:vf.IbXT030ISmSAFkzwx75Rtg?version=1" locally_modified="yes" type="model"><description>MachinePinMediumStandard</description><packageinstances><packageinstance name="MachinePinMediumStandard"/></packageinstances></package3d><package3d name="MachinePinMediumShort" urn="" wip_urn="urn:adsk.wipprod:fs.file:vf.1-YHegY6RlGs5F7RuYlCmA?version=1" locally_modified="yes" type="model"><description>MachinePinMediumShort</description><packageinstances><packageinstance name="MachinePinMediumShort"/></packageinstances></package3d><package3d name="MachinePinLargeStandard" urn="" wip_urn="urn:adsk.wipprod:fs.file:vf.ReKsBke6RBmV0DXFVfl0UA?version=1" locally_modified="yes" type="model"><description>MachinePinLargeStandard</description><packageinstances><packageinstance name="MachinePinLargeStandard"/></packageinstances></package3d><package3d name="MachinePinLargeShort" urn="" wip_urn="urn:adsk.wipprod:fs.file:vf.QzlhCZQxS1KQro5vx0zgKg?version=1" locally_modified="yes" type="model"><description>MachinePinLargeShort</description><packageinstances><packageinstance name="MachinePinLargeShort"/></packageinstances></package3d></packages3d>+<packages3d><package3d name="MP-MED-STD" urn="" wip_urn="urn:adsk.wipprod:fs.file:vf.IbXT030ISmSAFkzwx75Rtg?version=1" locally_modified="yes" type="model"><description>MP-MED-STD</description><packageinstances><packageinstance name="MP-MED-STD"/></packageinstances></package3d><package3d name="MP-MED-SHORT" urn="" wip_urn="urn:adsk.wipprod:fs.file:vf.1-YHegY6RlGs5F7RuYlCmA?version=1" locally_modified="yes" type="model"><description>MP-MED-SHORT</description><packageinstances><packageinstance name="MP-MED-SHORT"/></packageinstances></package3d><package3d name="MP-LRG-STD" urn="" wip_urn="urn:adsk.wipprod:fs.file:vf.ReKsBke6RBmV0DXFVfl0UA?version=1" locally_modified="yes" type="model"><description>MP-LRG-STD</description><packageinstances><packageinstance name="MP-LRG-STD"/></packageinstances></package3d><package3d name="MP-LRG-SHORT" urn="" wip_urn="urn:adsk.wipprod:fs.file:vf.QzlhCZQxS1KQro5vx0zgKg?version=1" locally_modified="yes" type="model"><description>MP-LRG-SHORT</description><packageinstances><packageinstance name="MP-LRG-SHORT"/></packageinstances></package3d></packages3d> <symbols> <symbol name="MP-MED-STD">   <wire x1="0.2442" y1="-4.9400" x2="0.2456" y2="-4.6874" width="0.1016" layer="94"/>@@ -191,7 +191,7 @@   <pin name="MP-MED-STD" x="5.08" y="0" length="short" direction="pas" rot="R180"/> </symbol> -<symbol name="MP-MED-SHT">+<symbol name="MP-MED-SHORT">   <wire x1="0.3176" y1="-4.9400" x2="0.3331" y2="-4.6874" width="0.1016" layer="94"/>   <wire x1="0.3331" y1="-4.6874" x2="0.3331" y2="-4.4333" width="0.1016" layer="94"/>   <wire x1="0.3331" y1="-4.4333" x2="0.3331" y2="-4.1807" width="0.1016" layer="94"/>@@ -274,7 +274,7 @@   <wire x1="-0.3176" y1="-4.9400" x2="0.3176" y2="-4.9400" width="0.1016" layer="94"/>   <text x="0" y="10" size="1.27" layer="95" align="bottom-center">&gt;NAME</text>   <text x="0" y="-10" size="1.27" layer="96" align="top-center">&gt;VALUE</text>-  <pin name="MP-MED-SHT" x="5.08" y="0" length="short" direction="pas" rot="R180"/>+  <pin name="MP-MED-SHORT" x="5.08" y="0" length="short" direction="pas" rot="R180"/> </symbol>  <symbol name="MP-LRG-STD">@@ -363,7 +363,7 @@   <pin name="MP-LRG-STD" x="5.08" y="0" length="short" direction="pas" rot="R180"/> </symbol> -<symbol name="MP-LRG-SHT">+<symbol name="MP-LRG-SHORT">   <wire x1="0.4263" y1="-4.9400" x2="0.4982" y2="-4.6874" width="0.1016" layer="94"/>   <wire x1="0.4982" y1="-4.6874" x2="0.4996" y2="-4.4333" width="0.1016" layer="94"/>   <wire x1="0.4996" y1="-4.4333" x2="0.4996" y2="-4.1807" width="0.1016" layer="94"/>@@ -446,7 +446,7 @@   <wire x1="-0.4263" y1="-4.9400" x2="0.4263" y2="-4.9400" width="0.1016" layer="94"/>   <text x="0" y="10" size="1.27" layer="95" align="bottom-center">&gt;NAME</text>   <text x="0" y="-10" size="1.27" layer="96" align="top-center">&gt;VALUE</text>-  <pin name="MP-LRG-SHT" x="5.08" y="0" length="short" direction="pas" rot="R180"/>+  <pin name="MP-LRG-SHORT" x="5.08" y="0" length="short" direction="pas" rot="R180"/> </symbol> </symbols> <devicesets>@@ -456,7 +456,7 @@     <gate name="G$1" symbol="MP-MED-STD" x="0" y="0"/>   </gates>   <devices>-    <device name="" package="MachinePinMediumStandard">+    <device name="" package="MP-MED-STD">       <connects>         <connect gate="G$1" pin="MP-MED-STD" pad="1"/>       </connects>@@ -466,15 +466,15 @@   </devices> </deviceset> -<deviceset name="MP-MED-SHT" prefix="MP">+<deviceset name="MP-MED-SHORT" prefix="MP">   <description></description>   <gates>-    <gate name="G$1" symbol="MP-MED-SHT" x="0" y="0"/>+    <gate name="G$1" symbol="MP-MED-SHORT" x="0" y="0"/>   </gates>   <devices>-    <device name="" package="MachinePinMediumShort">+    <device name="" package="MP-MED-SHORT">       <connects>-        <connect gate="G$1" pin="MP-MED-SHT" pad="1"/>+        <connect gate="G$1" pin="MP-MED-SHORT" pad="1"/>       </connects> <package3dinstances><package3dinstance package3d_urn="urn:adsk.wipprod:fs.file:vf.1-YHegY6RlGs5F7RuYlCmA?version=1"/></package3dinstances>       <technologies><technology name=""/></technologies>@@ -488,7 +488,7 @@     <gate name="G$1" symbol="MP-LRG-STD" x="0" y="0"/>   </gates>   <devices>-    <device name="" package="MachinePinLargeStandard">+    <device name="" package="MP-LRG-STD">       <connects>         <connect gate="G$1" pin="MP-LRG-STD" pad="1"/>       </connects>@@ -498,15 +498,15 @@   </devices> </deviceset> -<deviceset name="MP-LRG-SHT" prefix="MP">+<deviceset name="MP-LRG-SHORT" prefix="MP">   <description></description>   <gates>-    <gate name="G$1" symbol="MP-LRG-SHT" x="0" y="0"/>+    <gate name="G$1" symbol="MP-LRG-SHORT" x="0" y="0"/>   </gates>   <devices>-    <device name="" package="MachinePinLargeShort">+    <device name="" package="MP-LRG-SHORT">       <connects>-        <connect gate="G$1" pin="MP-LRG-SHT" pad="1"/>+        <connect gate="G$1" pin="MP-LRG-SHORT" pad="1"/>       </connects> <package3dinstances><package3dinstance package3d_urn="urn:adsk.wipprod:fs.file:vf.QzlhCZQxS1KQro5vx0zgKg?version=1"/></package3dinstances>       <technologies><technology name=""/></technologies>
AdomPinsBoard.brd+17−17
@@ -58,24 +58,24 @@ <wire x1="50" y1="0" x2="50" y2="50" width="0.2032" layer="20"/> <wire x1="50" y1="50" x2="0" y2="50" width="0.2032" layer="20"/> <wire x1="0" y1="50" x2="0" y2="0" width="0.2032" layer="20"/>-<text x="13.20" y="11.60" size="0.7" layer="21" font="vector" ratio="12" align="center-left">MP1 Med-Std</text>+<text x="13.20" y="11.60" size="0.7" layer="21" font="vector" ratio="12" align="center-left">MP1 MP-MED-STD</text> <text x="13.20" y="10.40" size="0.7" layer="21" font="vector" ratio="12" align="center-left">drill 1.10</text> <text x="13.20" y="9.20" size="0.7" layer="21" font="vector" ratio="12" align="center-left">ring 0.25</text>-<text x="36.80" y="11.60" size="0.7" layer="21" font="vector" ratio="12" align="center-right">MP2 Med-Sht</text>+<text x="36.80" y="11.60" size="0.7" layer="21" font="vector" ratio="12" align="center-right">MP2 MP-MED-SHORT</text> <text x="36.80" y="10.40" size="0.7" layer="21" font="vector" ratio="12" align="center-right">drill 1.10</text> <text x="36.80" y="9.20" size="0.7" layer="21" font="vector" ratio="12" align="center-right">ring 0.25</text>-<text x="13.20" y="41.60" size="0.7" layer="21" font="vector" ratio="12" align="center-left">MP3 Lrg-Std</text>+<text x="13.20" y="41.60" size="0.7" layer="21" font="vector" ratio="12" align="center-left">MP3 MP-LRG-STD</text> <text x="13.20" y="40.40" size="0.7" layer="21" font="vector" ratio="12" align="center-left">drill 3.45</text> <text x="13.20" y="39.20" size="0.7" layer="21" font="vector" ratio="12" align="center-left">ring 0.875</text>-<text x="36.80" y="41.60" size="0.7" layer="21" font="vector" ratio="12" align="center-right">MP4 Lrg-Sht</text>+<text x="36.80" y="41.60" size="0.7" layer="21" font="vector" ratio="12" align="center-right">MP4 MP-LRG-SHORT</text> <text x="36.80" y="40.40" size="0.7" layer="21" font="vector" ratio="12" align="center-right">drill 3.45</text> <text x="36.80" y="39.20" size="0.7" layer="21" font="vector" ratio="12" align="center-right">ring 0.875</text> </plain> <libraries> <library name="AdomMachinePins"> <packages>-<package name="MachinePinMediumStandard">-  <description>MachinePinMediumStandard</description>+<package name="MP-MED-STD">+  <description>MP-MED-STD</description>   <pad name="1" x="0.0000" y="-0.0000" drill="1.1000" diameter="1.6000" shape="round"/>   <circle x="0.0000" y="-0.0000" radius="0.9000" width="0.0500" layer="21"/>   <wire x1="-1.0000" y1="1.0000" x2="1.0000" y2="1.0000" width="0.0500" layer="51"/>@@ -86,8 +86,8 @@   <text x="0" y="-2.200" size="1.27" layer="27" align="top-center">&gt;VALUE</text> </package> -<package name="MachinePinMediumShort">-  <description>MachinePinMediumShort</description>+<package name="MP-MED-SHORT">+  <description>MP-MED-SHORT</description>   <pad name="1" x="0.0000" y="-0.0000" drill="1.1000" diameter="1.6000" shape="round"/>   <circle x="0.0000" y="-0.0000" radius="0.9000" width="0.0500" layer="21"/>   <wire x1="-1.0000" y1="1.0000" x2="1.0000" y2="1.0000" width="0.0500" layer="51"/>@@ -98,8 +98,8 @@   <text x="0" y="-2.200" size="1.27" layer="27" align="top-center">&gt;VALUE</text> </package> -<package name="MachinePinLargeStandard">-  <description>MachinePinLargeStandard</description>+<package name="MP-LRG-STD">+  <description>MP-LRG-STD</description>   <pad name="1" x="0.0000" y="-0.0000" drill="3.4500" diameter="5.2000" shape="round"/>   <circle x="0.0000" y="-0.0000" radius="2.7000" width="0.0500" layer="21"/>   <wire x1="-3.0000" y1="3.0000" x2="3.0000" y2="3.0000" width="0.0500" layer="51"/>@@ -110,8 +110,8 @@   <text x="0" y="-5.800" size="1.27" layer="27" align="top-center">&gt;VALUE</text> </package> -<package name="MachinePinLargeShort">-  <description>MachinePinLargeShort</description>+<package name="MP-LRG-SHORT">+  <description>MP-LRG-SHORT</description>   <pad name="1" x="0.0000" y="-0.0000" drill="3.4500" diameter="5.2000" shape="round"/>   <circle x="0.0000" y="-0.0000" radius="2.7000" width="0.0500" layer="21"/>   <wire x1="-3.0000" y1="3.0000" x2="3.0000" y2="3.0000" width="0.0500" layer="51"/>@@ -122,17 +122,17 @@   <text x="0" y="-5.800" size="1.27" layer="27" align="top-center">&gt;VALUE</text> </package> </packages>-<packages3d><package3d name="MachinePinMediumStandard" urn="" wip_urn="urn:adsk.wipprod:fs.file:vf.IbXT030ISmSAFkzwx75Rtg?version=1" locally_modified="yes" type="model"><description>MachinePinMediumStandard</description><packageinstances><packageinstance name="MachinePinMediumStandard"/></packageinstances></package3d><package3d name="MachinePinMediumShort" urn="" wip_urn="urn:adsk.wipprod:fs.file:vf.1-YHegY6RlGs5F7RuYlCmA?version=1" locally_modified="yes" type="model"><description>MachinePinMediumShort</description><packageinstances><packageinstance name="MachinePinMediumShort"/></packageinstances></package3d><package3d name="MachinePinLargeStandard" urn="" wip_urn="urn:adsk.wipprod:fs.file:vf.ReKsBke6RBmV0DXFVfl0UA?version=1" locally_modified="yes" type="model"><description>MachinePinLargeStandard</description><packageinstances><packageinstance name="MachinePinLargeStandard"/></packageinstances></package3d><package3d name="MachinePinLargeShort" urn="" wip_urn="urn:adsk.wipprod:fs.file:vf.QzlhCZQxS1KQro5vx0zgKg?version=1" locally_modified="yes" type="model"><description>MachinePinLargeShort</description><packageinstances><packageinstance name="MachinePinLargeShort"/></packageinstances></package3d></packages3d>+<packages3d><package3d name="MP-MED-STD" urn="" wip_urn="urn:adsk.wipprod:fs.file:vf.IbXT030ISmSAFkzwx75Rtg?version=1" locally_modified="yes" type="model"><description>MP-MED-STD</description><packageinstances><packageinstance name="MP-MED-STD"/></packageinstances></package3d><package3d name="MP-MED-SHORT" urn="" wip_urn="urn:adsk.wipprod:fs.file:vf.1-YHegY6RlGs5F7RuYlCmA?version=1" locally_modified="yes" type="model"><description>MP-MED-SHORT</description><packageinstances><packageinstance name="MP-MED-SHORT"/></packageinstances></package3d><package3d name="MP-LRG-STD" urn="" wip_urn="urn:adsk.wipprod:fs.file:vf.ReKsBke6RBmV0DXFVfl0UA?version=1" locally_modified="yes" type="model"><description>MP-LRG-STD</description><packageinstances><packageinstance name="MP-LRG-STD"/></packageinstances></package3d><package3d name="MP-LRG-SHORT" urn="" wip_urn="urn:adsk.wipprod:fs.file:vf.QzlhCZQxS1KQro5vx0zgKg?version=1" locally_modified="yes" type="model"><description>MP-LRG-SHORT</description><packageinstances><packageinstance name="MP-LRG-SHORT"/></packageinstances></package3d></packages3d> </library> </libraries> <attributes/> <variantdefs/> <classes><class number="0" name="default" width="0" drill="0"/></classes> <elements>-<element name="MP1" library="AdomMachinePins" package="MachinePinMediumStandard" package3d_urn="urn:adsk.wipprod:fs.file:vf.IbXT030ISmSAFkzwx75Rtg?version=1" value="MachinePinMediumStandard" x="10" y="10" rot="R0"/>-<element name="MP2" library="AdomMachinePins" package="MachinePinMediumShort" package3d_urn="urn:adsk.wipprod:fs.file:vf.1-YHegY6RlGs5F7RuYlCmA?version=1" value="MachinePinMediumShort" x="40" y="10" rot="R0"/>-<element name="MP3" library="AdomMachinePins" package="MachinePinLargeStandard" package3d_urn="urn:adsk.wipprod:fs.file:vf.ReKsBke6RBmV0DXFVfl0UA?version=1" value="MachinePinLargeStandard" x="10" y="40" rot="R0"/>-<element name="MP4" library="AdomMachinePins" package="MachinePinLargeShort" package3d_urn="urn:adsk.wipprod:fs.file:vf.QzlhCZQxS1KQro5vx0zgKg?version=1" value="MachinePinLargeShort" x="40" y="40" rot="R0"/>+<element name="MP1" library="AdomMachinePins" package="MP-MED-STD" package3d_urn="urn:adsk.wipprod:fs.file:vf.IbXT030ISmSAFkzwx75Rtg?version=1" value="MP-MED-STD" x="10" y="10" rot="R0"/>+<element name="MP2" library="AdomMachinePins" package="MP-MED-SHORT" package3d_urn="urn:adsk.wipprod:fs.file:vf.1-YHegY6RlGs5F7RuYlCmA?version=1" value="MP-MED-SHORT" x="40" y="10" rot="R0"/>+<element name="MP3" library="AdomMachinePins" package="MP-LRG-STD" package3d_urn="urn:adsk.wipprod:fs.file:vf.ReKsBke6RBmV0DXFVfl0UA?version=1" value="MP-LRG-STD" x="10" y="40" rot="R0"/>+<element name="MP4" library="AdomMachinePins" package="MP-LRG-SHORT" package3d_urn="urn:adsk.wipprod:fs.file:vf.QzlhCZQxS1KQro5vx0zgKg?version=1" value="MP-LRG-SHORT" x="40" y="40" rot="R0"/> </elements> <signals/> </board>
README.md+16−7
@@ -13,9 +13,9 @@ this page documents the whole process so you can rebuild it or just download it. | Ref | Pin | Body OD (press-fit) | Drill (plated) | Pad | Annular ring | Height | |---|---|---|---|---|---|---| | MP-MED-STD | Medium-Standard | 1.20 mm | 1.10 mm | 1.60 mm | **0.250 mm** | 10.6 mm |-| MP-MED-SHT | Medium-Short | 1.20 mm | 1.10 mm | 1.60 mm | **0.250 mm** | 7.8 mm |+| MP-MED-SHORT | Medium-Short | 1.20 mm | 1.10 mm | 1.60 mm | **0.250 mm** | 7.8 mm | | MP-LRG-STD | Large-Standard | 3.60 mm | 3.45 mm | 5.20 mm | **0.875 mm** | 21.6 mm |-| MP-LRG-SHT | Large-Short | 3.60 mm | 3.45 mm | 5.20 mm | **0.875 mm** | 18.8 mm |+| MP-LRG-SHORT | Large-Short | 3.60 mm | 3.45 mm | 5.20 mm | **0.875 mm** | 18.8 mm |  **These are PRESS-FIT** (Mill-Max style): the body OD is deliberately **larger** than the plated drill (Medium 0.10 mm interference, Large 0.15 mm). The undersized hole is **correct**, do not "fix" it to a@@ -27,12 +27,21 @@ a **real 3D body** bound from the pin's STEP.  ## The library: all four pins in ONE `.lbr` -![One library, all four pins](screenshots/library-4pins-clean.png)+This is a single **AdomMachinePins** library holding all four devicesets in one list. Each carries its+own schematic symbol, round thru-hole footprint, and a **real 3D pin** (the Package column reads+**Mapped**, not Placeholder). Here is each of the four, selected inside that one library: -The Fusion Electronics Library editor with **AdomMachinePins** open: the four devicesets in one list-(MP-LRG-SHT, MP-LRG-STD, MP-MED-SHT, MP-MED-STD), the schematic symbol (center), the footprint preview-(round pad + silk, bottom), and the **real 3D pin** in the lower-right preview. The Package column reads-**Mapped**, not Placeholder, so the 3D is live for every part.+| MP-MED-STD | MP-MED-SHORT |+|---|---|+| ![MP-MED-STD](screenshots/lib-med-std.png) | ![MP-MED-SHORT](screenshots/lib-med-short.png) |++| MP-LRG-STD | MP-LRG-SHORT |+|---|---|+| ![MP-LRG-STD](screenshots/lib-lrg-std.png) | ![MP-LRG-SHORT](screenshots/lib-lrg-short.png) |++Names are kept short across the deviceset, symbol, package, and footprint (MP-MED-STD, not+MachinePinMediumStandard), because the deviceset name renders as the `>NAME` on the symbol and a long+name looks terrible.  ## The sample board: all four ganged together 
SKILL.md+57
@@ -111,3 +111,60 @@ element `package3d_urn`s with your fresh urns, and re-open. Same procedure as th - 300 µm solder-ball layer standard: a hidden `User.*` layer in every footprint (see the   solder-ball-layer standard page); paste.rs computes it on the fly for SMD only today. - Batch `build_library_3d` reliability on slow/cluttered sessions, per-pin binding is the workaround.++## Hard requirements from review (do all of these, they were each called out)++These are non-negotiable lessons from building this exact library. Every one was a correction.++1. **ONE library, not a library per pin.** Adom users want a single `.lbr` with all four pins in one+   list. Never ship four single-pin libraries; merge them.+2. **Short, clean, non-embarrassing names, everywhere.** Rename the deviceset, symbol, package, AND+   footprint to short forms (MP-MED-STD / MP-MED-SHORT / MP-LRG-STD / MP-LRG-SHORT), not+   MachinePinMediumStandard. The deviceset name renders as the `>NAME` on the symbol, so a long name+   looks terrible; the long name also fills the Footprint/Package columns. **Do NOT abbreviate Short to+   "SHT"** (it reads as a swear word); spell it SHORT. When you rename the package, keep the+   `<package3d wip_urn>` so the 3D stays bound (the binding is URN-based, not name-based); update+   `<package name>`, `<device package=>`, `<package3d name>`, and `<packageinstance name>` together.+3. **Real holes, not solder-mask over a hole.** The FR4 board must have a REAL through-hole cut at each+   pad (boolean-subtract a drill-diameter cylinder from the board mesh; `pip install manifold3d` for the+   trimesh backend). Do not draw green board across where the hole should be.+4. **Silkscreen on the board.** Put the pin name + drill + annular ring as silk text next to each pad,+   in both the 2D board (`<text ... layer="21">`) and the 3D (matching the Fusion board). Geometry-only+   exports (STEP/OBJ) DROP silk because it is a surface graphic, so you cannot just export the Fusion+   board for a silk-carrying GLB; match it in the GLB instead.+5. **Match the Fusion 3D board.** The lead 3D on the page must look like the real Fusion 3D board: real+   holes, silk, real pins, transparent FR4, the annular ring, plus the insertion animation and the 300um+   solder-paste jet balls. The lead 3D shows ALL FOUR pins, never a single pin.+6. **Never move the user's mouse / foreground Fusion to navigate.** To switch the selected component in+   the library editor, use the EAGLE command in the BACKGROUND: `fusion_electron_run {command:"EDIT+   <deviceset>.dev"}`, then a background `desktop_screenshot_window` (PrintWindow, no foreground). Do NOT+   use `desktop_click`/`fusion_click_fusion`/arrow-keys on the list; they steal focus, move the mouse,+   and mis-hit the tiny rows. (Arrow keys sent to the canvas also zoom it out.)+7. **No em-dashes anywhere on the wiki page.** They read as AI-slop; use commas, colons, or hyphens.+8. **Only ship silkscreen board shots.** A 3D board with no silkscreen is not worth showing.++## Recreate the lead GLB animation (all 4 pins, real holes, silk, solder balls)++The wiki lead 3D is a single hand-built GLB that the native Babylon viewer auto-plays. Build it with+`trimesh` + `pygltflib` (no Fusion export, so it can carry silk + animation):++1. **FR4 board with REAL holes:** `board = trimesh.creation.box([50,50,1.6])`, then for each pin+   `board = board.difference(trimesh.creation.cylinder(radius=drill/2, height=5))` translated to the+   pad center (needs `manifold3d`). Material: green, `alphaMode=BLEND`, `baseColorFactor` alpha 0.5,+   `doubleSided` (transparent FR4 so you see the press-fit through it).+2. **Per pin:** the real STEP-derived pin mesh (Draco-decode the pin `.glb` with node-transform+   composition, gold), annular copper pads top+bottom (`trimesh.creation.annulus(drill/2, pad/2)`), a+   plated barrel in the hole, and a ring of 300um **hemisphere** solder domes top+bottom (manual lathe;+   flat side on the copper). Reuse `adom-footprint/src/paste.rs` dot math (`DOT_DIA=0.30`).+3. **Silkscreen:** a flat textured quad on the board top per pin (PIL renders name/drill/ring as white+   text on transparent; material `alphaMode=MASK`, doubleSided). Position beside each pad like the Fusion+   silk.+4. **Animation:** one glTF translation animation with a sampler+channel per PIN node; keyframe the pin+   up by `-zmin` (its seated depth), hold, press down, loop. Append the accessors to the binary blob+   with the `add_anim.py` bytearray pattern (do NOT hand-splice bufferView offsets, it corrupts the GLB).+5. Assign PBR materials (FR4 transparent, gold pin, copper pads/barrel, teal paste, silk texture) with+   `pygltflib` and drop `COLOR_0` so `baseColorFactor` wins. Put the GLB on the page as `model_3d`.++Known limitation: the native viewer's ground-plane shadows do not track animated meshes (they look+static as the pins move). That is a viewer behavior, not the GLB; a viewer/git-wiki tweak+(dynamic shadow caster or `showGround:false`) is the real fix.
page.json+1−1
@@ -20,7 +20,7 @@       "model_3d": "AdomMachinePins-4pin-animated.glb"     },     "specs": {-      "pins": "MP-MED-STD, MP-MED-SHT, MP-LRG-STD, MP-LRG-SHT",+      "pins": "MP-MED-STD, MP-MED-SHORT, MP-LRG-STD, MP-LRG-SHORT",       "mount": "press-fit (Mill-Max style)",       "medium_body_od_mm": 1.2, "medium_drill_mm": 1.1, "medium_pad_mm": 1.6, "medium_ring_mm": 0.25,       "large_body_od_mm": 3.6, "large_drill_mm": 3.45, "large_pad_mm": 5.2, "large_ring_mm": 0.875,
publish-skills/SKILL.mdadded+39
@@ -0,0 +1,39 @@+---+name: publish-adom-machine-pins-page+description: >+  Reproduce the Adom Machine Pins Fusion-library wiki page (adom/adom-machine-pins-fusion-lbr): a+  component-type page carrying the one .lbr, the sample board, the animated 4-pin lead GLB, the four+  library-view screenshots, and the build skill. Use to re-publish or update this page, or to publish a+  similar component library page. Triggers: publish machine pins page, republish adom-machine-pins,+  component page publish, wiki component publish, adom-wiki component page.+---++# Publish the Adom Machine Pins page++The page is a wiki **component** page (type `component`), owned by the **adom** org.++## Layout+- `page.json` (type `component`): a `component` block (mpn AdomMachinePins, the specs, `parts.model_3d`+  pointing at the animated GLB), a `hero` image, tags, `visibility.public`.+- `README.md`: overview, specs table, the four library views, the board (2D dimensioned + 2D/3D+  silkscreen), downloads, origins, rebuild guide, the 3D-files section, bridge features. NO em-dashes.+- `SKILL.md`: the build/dev recipe (recreate the library + the GLB) with the review requirements.+- Assets: `AdomMachinePins.lbr` (one library, all four pins, 3D bound), `AdomPinsBoard.brd` ++  `AdomPinsBoard.kicad_pcb` + `.svg`, `AdomMachinePins-4pin-animated.glb`, `sources/` (per-pin+  kicad_sym/mod/step/glb/lbr), `screenshots/` (lib-*, board-2d-*, board-3d-silkscreen, pins montage).++## Steps+1. Stage the folder locally (README.md, page.json, SKILL.md, the .lbr/.brd, GLB, sources/, screenshots/).+2. Push everything: `adom-wiki repo push adom/adom-machine-pins-fusion-lbr --files <all files> -m "..."`.+   (First publish creates the page; `repo rm <ref> <path>` removes a stale file, e.g. a dropped shot.)+3. If it lands under your personal namespace, move it to the org:+   `adom-wiki repo transfer <owner>/adom-machine-pins-fusion-lbr --to-org adom`. Verify assets still+   200 at `/api/v1/pages/adom/adom-machine-pins-fusion-lbr/files/<path>`.+4. Verify the native viewers render: the component `parts.model_3d` GLB shows in the 3D viewer, and the+   symbol/footprint viewers render from the component block.+5. Announce to the team: `adom-gchat send --space kel --permission-to-post-given "<message + link>"`.++## Gotchas+- Em-dashes are banned on the page; scrub README/page.json/SKILL before pushing.+- The GLB is the lead 3D; it must be all four pins with real holes + silk + animation, never one pin.+- Keep names short everywhere (deviceset/symbol/package/footprint) or the symbol `>NAME` looks bad.
screenshots/board-2d-silkscreen.png
⋯ 1 unchanged line ⋯
screenshots/board-3d-silkscreen.png
⋯ 1 unchanged line ⋯
screenshots/lib-lrg-short.pngadded
⋯ 1 unchanged line ⋯
screenshots/lib-lrg-std.pngadded
⋯ 1 unchanged line ⋯
screenshots/lib-med-short.pngadded
⋯ 1 unchanged line ⋯
screenshots/lib-med-std.pngadded
⋯ 1 unchanged line ⋯