use <./common/common.scad>;

IN = 25.4;
FRAME_H = 7.49;
FRAME_W = 10.26;
FRAME_OUTER = 16 - FRAME_W;

PERF_OFFSET = (1.829 / 2) + .85;
SPACING_LONG = 7.62;

X = 38;
Y = 100;
Z = 6;

module 16mm_plate () {
	translate([0, 0, 1.3 - .5]) {
		for (i = [-5 : 5]) {
            if (abs(i % 2) == 1) {
                registration_pin(8 - PERF_OFFSET, i * SPACING_LONG);
            }
		}
	}
}

module registration_pin (x, y) {
	z = 2.5;
	w = 1.27 - .4;
	h = 1.9812 - .4;
	translate([x, y, 0]) {
        difference () {
            rounded_cube([h, w, z], d = .5, center = true);
            translate([0, w/1.6, z - (w * 1.5)]) rotate([45, 0, 0]) cube([h + 1, w, w], center = true);
            translate([0, -w/1.6, z - (w * 1.5)]) rotate([-45, 0, 0]) cube([h + 1, w, w], center = true);
        }
    }
}

module 16mm_splicing_block () {
    translate([0, 0, 2]) 16mm_plate();
    difference() {
        cube([X, Y, (1/4)*IN], center = true);
        translate([0, 0, (1/5)*IN]) cube([16.25, Y + 1, (1/4)*IN], center = true);
        translate([0, SPACING_LONG * 2, (1/8)*IN]) {
            cube([(2 * IN) + 1, .4, (1/4)*IN], center = true);
        }
        translate([X / 2, SPACING_LONG * 2, (Z / 2) + .2 ]) {
            rotate([45, 0, 0]) cube([(2 * IN) + 1, 1, 1], center = true);
        }
        translate([0, 0, (1/8)*IN]) rotate([0, 0, 16]) {
            cube([X * 2, .4, (1/4)*IN], center = true);
        }
        translate([0, 0, (Z / 2) + .2]) rotate([0, 0, 16]) {
            translate([X, 0, 0]) rotate([45, 0, 0]) cube([X * 2, 1, 1], center = true);
        }
    }
}

16mm_splicing_block();