Post
Topic
Board Wallet software
Merits 11 from 2 users
Re: n0nce's Steel Washer Backup jig (customisable)
by
n0nce
on 09/03/2022, 15:43:14 UTC
⭐ Merited by fillippone (10) ,dkbit98 (1)
Prompted by fillippone's latest thread, I got the motivation to finally make an open-source, easily customizable (fully parametric) design of my jig.
The code is found here.
I haven't tested it yet (printed), but from measuring the dimensions and tolerances, it should be almost a 1:1 copy of what I had previously designed in a commercial, closed-source and not free CAD program, with less parametrization.

If there are any questions or issues with the code, or maybe improvement suggestions, let me know.

[NEW!!] OpenSCAD design finalized!
Paste this following code into OpenSCAD (free, open source) and set the parameters to whatever fits your washers and stamps. Then hit F5 and F6 to preview and render the two models. Finally, export the STL file and print it out.
Code:
// ---------- configuration ---------- //
washer_dia = 30;    // set to your washer's diameter (mm)
washer_hole = 10.5; // set to your washer's hole diameter (mm)
washer_h   = 3;     // set to your washer's thickness (mm)
stamp_w    = 8;     // set to your stamp's width (mm)
stamp_d    = 8;     // set to your stamp's depth (mm)

// ---------- code ---------- //

// ---------- outer part ---------- //
module roundedcube(xx, yy, height, radius) {
  $fn=60;
  translate([0,0,height/2])
  hull() {
    translate([radius,radius,0])
    cylinder(height,radius,radius,true);

    translate([xx-radius,radius,0])
    cylinder(height,radius,radius,true);

    translate([xx-radius,yy-radius,0])
    cylinder(height,radius,radius,true);

    translate([radius,yy-radius,0])
    cylinder(height,radius,radius,true);
  }
}

module washer() {
  cylinder(h=washer_h, r=washer_dia/2, center=false, $fn=200);
}

module outer() {
  module outer_body() {
    translate([-27, -27, 0])
      roundedcube(54, 54, 20, 3);
  }
  module slot() {
    translate([-5/2,0,washer_h])
      cube([5,23,30]);
  }
 
  difference(){
    outer_body();
   
    // main cylinder to cut out
    translate([0, 0, washer_h])
      cylinder(h=100, r=38/2, center=false, $fn=200);
   
    // washer cut out
    translate([0, 0, -1])
      scale([1, 1, 10])
        washer();
     
    // number slots cut outs
    for (i=[0,2])
      rotate(-14+i*14)
        slot();
    // letter slots cut outs
    for (i=[0:7])
      rotate(82+i*28)
        slot();
  }
}

// ---------- inner part ---------- //
module inner() {
  module inner_body() {
    // main part
    cylinder(h=20-washer_h, r=38/2-0.3, center=false, $fn=200);
    // handle
    cylinder(h=20-washer_h+8, d=9, center=false, $fn=200);
    // sticking out part
    rotate(-14) translate([-4/2,0,0])
      cube([4,22.5,20-washer_h]);
  }
 
  module puncher_hole() {
    rotate(-14) translate([-stamp_w/2,
      (washer_dia+washer_hole)/4-stamp_d/2,
      -10])
      cube([stamp_w,stamp_d,50]);
  }
 
  translate([0, 0, washer_h]) {
    difference() {
      inner_body();
      puncher_hole();
    }
  }
}




outer();

translate([70,0,0])
  inner();