3 jig_max_len = 160; // print diagonally
6 registrationgroove_width = 0.8;
7 registrationgroove_depth = 1.2;
9 registrationprotrusion_poke = 3;
10 registrationprotrusion_slope = 0.75;
16 jig_iters = floor((jig_max_len - jig_ends_extra) / jig_interval);
20 module RegistrationGroove(l){
21 // runs along the +ve X axis for length l but at correct z pos
22 translate([0, 0, jig_main_zsz + 0.1]) {
24 linear_extrude(height=l)
25 polygon([[-registrationgroove_width/2, 0],
26 [ +registrationgroove_width/2, 0],
27 [ 0, -registrationgroove_depth ]]);
33 translate([-(jig_interval/2 + jig_overlap),
36 cube([jig_interval + 2,
37 jig_max_y - jig_min_y,
38 jig_main_zsz + strap_thick]);
40 translate([-100, -strap_width/2, -10])
41 cube([200, strap_width, 10]);
43 RegistrationGroove(200);
44 for (xfrac=[-1/4,0,+1/4])
45 translate([jig_interval * xfrac, -100, 0])
47 RegistrationGroove(200);
51 module RegistrationProtrusion(){
52 // points towards the positive x axis
53 xsz = registrationprotrusion_poke;
54 ysz = registrationprotrusion_poke;
55 diag_sz = xsz * sqrt(2);
56 zsz = diag_sz / registrationprotrusion_slope;
58 translate([0, 0, 0.1]){
59 linear_extrude(height=0.1)
63 translate([-0.1, 0, zsz ])
72 for(yfrac=[-1/2, 0, 1/2]){
74 ? jig_interval * (jig_iters - 0.5)
78 rotate([0,0, end ? 0 : 180])
79 translate([ jig_overlap, 0, 0 ])
80 RegistrationProtrusion();
83 for (i=[0:jig_iters-1]) {
84 translate([jig_interval * i, 0, 0])
91 translate([0,0,jig_main_zsz])