component
Adom Machine Pins, Fusion Library + Sample Board
Public Made by Adomby adom
One Fusion 360 .lbr with all four Adom press-fit machine pins (working 3D), plus a sample board (2D/3D/silkscreen) ganging all four together. Fully documented and rebuildable.
← Commit history
Add SOLDER PASTE callout: 300um (0.3mm) jet-dispensed paste balls, arrow to the ball ring (steel-blue, nocast)
4 files changed
+15−12
AdomMachinePins-4pin-animated.glb⋯ 1 unchanged line ⋯
AdomMachinePins-complete.zip⋯ 1 unchanged line ⋯
screenshots/board-3d-top-silk.png⋯ 1 unchanged line ⋯
scripts/build_board_glb.py+15−12@@ -175,14 +175,14 @@ for k,(c,barrel_r) in pin_info.items(): print(f" silk PIN_{k}: '{name}' / '{spec_s}'") # --- PRESS-FIT callouts: amber text + leader arrow to a hole, explaining pin>hole (both sizes) ----AMBER=[0.98,0.74,0.10,1.0]-def callout(anchor, spec_line, why_line, tip, start, prefix):- place_text("PRESS-FIT", anchor[0], anchor[1]+0.0022, 2.2, AMBER, prefix+"_t")- place_text(spec_line, anchor[0], anchor[1], 1.5, AMBER, prefix+"_s")- place_text(why_line, anchor[0], anchor[1]-0.0020, 1.4, AMBER, prefix+"_w")+AMBER=[0.98,0.74,0.10,1.0]; STEEL=[0.60,0.80,0.97,1.0]+def callout(title, anchor, spec_line, why_line, tip, start, prefix, color=AMBER):+ place_text(title, anchor[0], anchor[1]+0.0022, 2.2, color, prefix+"_t")+ place_text(spec_line, anchor[0], anchor[1], 1.5, color, prefix+"_s")+ place_text(why_line, anchor[0], anchor[1]-0.0020, 1.4, color, prefix+"_w") tip=np.array(tip); start=np.array(start); z=board_top+0.00006 lead=trimesh.creation.cylinder(radius=0.00016, segment=[[start[0],start[1],z],[tip[0],tip[1],z]])- add_mesh(lead.vertices,lead.faces,AMBER,prefix+"_lead",metal=False)+ add_mesh(lead.vertices,lead.faces,color,prefix+"_lead",metal=False) d=tip-start; d=d/np.linalg.norm(d) head=trimesh.creation.cone(radius=0.00045,height=0.0011,sections=16) zc=np.array([0,0,1.]); axd=np.array([d[0],d[1],0.]); axd/=np.linalg.norm(axd)@@ -191,14 +191,17 @@ def callout(anchor, spec_line, why_line, tip, start, prefix): vx=np.array([[0,-v[2],v[1]],[v[2],0,-v[0]],[-v[1],v[0],0]]) head.apply_transform(np.block([[np.eye(3)+vx+vx@vx*((1-cth)/(s_*s_)),np.zeros((3,1))],[np.zeros(3),1]])) head.apply_translation([tip[0],tip[1],z])- add_mesh(head.vertices,head.faces,AMBER,prefix+"_arrow",metal=False)+ add_mesh(head.vertices,head.faces,color,prefix+"_arrow",metal=False) -# medium (0.1mm interference) -> medium pin @ (40,10); large (0.15mm) -> large pin @ (10,40)-callout((0.0215,0.0180), "hole Ø1.1 pin Ø1.2", "pin 0.1mm wider = gas-tight",+# PRESS-FIT: medium (0.1mm) -> pin @ (40,10); large (0.15mm) -> pin @ (10,40)+callout("PRESS-FIT",(0.0215,0.0180), "hole Ø1.1 pin Ø1.2", "pin 0.1mm wider = gas-tight", (0.0385,0.0112), (0.0300,0.0135), "nocast_cmed")-callout((0.0270,0.0315), "hole Ø3.45 pin Ø3.6", "pin 0.15mm wider = gas-tight",- (0.0132,0.0378), (0.0195,0.0345), "nocast_clrg")-print(" callouts: PRESS-FIT -> medium @ (40,10) AND large @ (10,40)")+callout("PRESS-FIT",(0.0270,0.0300), "hole Ø3.45 pin Ø3.6", "pin 0.15mm wider = gas-tight",+ (0.0132,0.0378), (0.0195,0.0340), "nocast_clrg")+# SOLDER PASTE: point at the ball ring of the large pin @ (40,40)+callout("SOLDER PASTE",(0.0240,0.0455), "300µm (0.3mm)", "jet-dispensed paste balls",+ (0.0385,0.0415), (0.0300,0.0448), "nocast_csol", STEEL)+print(" callouts: PRESS-FIT x2 + SOLDER PASTE -> balls @ (40,40)") scene.export(OUT) print("exported",OUT)