Skip to content

Instantly share code, notes, and snippets.

@zoe1337
Last active June 4, 2021 12:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save zoe1337/8dc35851899538770a45fa55ee279058 to your computer and use it in GitHub Desktop.
Save zoe1337/8dc35851899538770a45fa55ee279058 to your computer and use it in GitHub Desktop.
A simple FDM-printable custom pasting jig.
pcb = [90.0, 40.0, 1.65];
gap = 0.2;
base = [180, 180, 0.2];
/* WTFPL yada yada
The idea is to bring the surface around the PCB to the same height as the
top surface of the PCB so that the stencil on top lies nice and flat.
Below the PCB there is a single layer of plastic, usually 0.2 mm
The larger holes are meant to aid removing the PCB after pasting.
Corners are cut out so that even if you didn't round your
PCB corners (which you should by the way) the board will still fit.
See Elen using this here: https://chaos.social/@ln/106352244269789569
*/
module corners(dim, center=true) {
coords = [[0,0], [0, dim.y], [dim.x, 0], dim];
for (vector=coords)
translate(vector - (center?([dim[0], dim[1]]/2):0))
children();
}
module jig() {
difference() {
union() {
translate([0, 0, (base.z+pcb.z)/2])
cube(base + [0,0, pcb.z], center=true);
}
union() {
translate([0, 0, base.z+pcb.z/2+0.01])
cube(pcb+[1,1,0]*gap, center=true);
for(i=[0:1])
translate([(i*2-1)*pcb.x/4,0,-1])
cylinder(d=min([pcb.x,pcb.y])/2, h=pcb.z+base.z+2);
for(i=[0:1])
translate([0,(2*i-1)*pcb.y/2,-1])
cylinder(d=min([pcb.x,pcb.y])/2, h=pcb.z+base.z+2);
translate([0,0,-1])
corners(pcb, center=true)
cylinder(d=min([pcb.x,pcb.y])/4,h=pcb.z+base.z+2);
}
}
}
jig();
$fn = 64;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment