← Commit history

Add SOLDER PASTE callout: 300um (0.3mm) jet-dispensed paste balls, arrow to the ball ring (steel-blue, nocast)

John Lauer ·6994ee2924 ·3mo ago ·parent ce65f6e
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)