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 ]]);
32 main_z = jig_main_zsz + strap_thick;
34 translate([-(jig_interval/2 + jig_overlap),
37 rotate([0,90,0]) rotate([0,0,90])
38 linear_extrude(height=jig_interval + 2)
39 polygon([[jig_min_y, 0],
40 [jig_top_min_y, main_z],
41 [jig_top_max_y, main_z],
44 translate([-100, -strap_width/2, -10])
45 cube([200, strap_width, 10]);
47 RegistrationGroove(200);
48 for (xfrac=[-1/4,0,+1/4])
49 translate([jig_interval * xfrac, -100, 0])
51 RegistrationGroove(200);
55 module RegistrationProtrusion(){
56 // points towards the positive x axis
57 xsz = registrationprotrusion_poke;
58 ysz = registrationprotrusion_poke;
59 diag_sz = xsz * sqrt(2);
60 zsz = diag_sz / registrationprotrusion_slope;
62 translate([0, 0, 0.1]){
63 linear_extrude(height=0.1)
67 translate([-0.1, 0, zsz ])
76 for(yfrac=[-1/2, 0, 1/2]){
78 ? jig_interval * (jig_iters - 0.5)
82 rotate([0,0, end ? 0 : 180])
83 translate([ jig_overlap, 0, 0 ])
84 RegistrationProtrusion();
87 for (i=[0:jig_iters-1]) {
88 translate([jig_interval * i, 0, 0])
95 translate([0,0,jig_main_zsz])