diff --git a/scad/bolex_base_plate.scad b/scad/bolex_base_plate.scad index 9cfe511..b5a017c 100644 --- a/scad/bolex_base_plate.scad +++ b/scad/bolex_base_plate.scad @@ -7,8 +7,10 @@ PLATE_Y = 25; module bolex_debug (pad = 0) { cylinder(r = R(29) + pad, h = 10, center = true, $fn = 80); translate([0, 0, 8]) cylinder(r = R(29) + pad, h = 15, center = true, $fn = 80); + translate([0, 0, 12.51]) cylinder(r = R(33), h = 3, center = true, $fn = 90); + translate([3 + 18.5, 17 + 1.5, 50 - 4]) rotate([0, 90, 0]) cylinder(r = R(100), h = 36, center = true, $fn = 180); - translate([5.55, 0 + 3, 38]) rotate([0, 90, 0]) rounded_cube([50, 135, 67.9], d = 20, center = true, $fn = 50); + translate([5.55, 0 + 3, 39]) rotate([0, 90, 0]) rounded_cube([50, 135, 67.9], d = 20, center = true, $fn = 50); } module debug () { @@ -24,11 +26,11 @@ module bolt_voids () { //holes translate([0, -(71.5 / 2) + 12, 0]) { cylinder(r = 10 / 2, h = 100, center = true); - translate([0, 0, 9]) cylinder(r = R(16.5), h = 10, center = true, $fn = 6); + translate([0, 0, 9]) cylinder(r = R(16.5), h = 25, center = true, $fn = 6); } translate([0, (71.5 / 2) - 34, 0]) { cylinder(r = R(6.5), h = 100, center = true); - translate([0, 0, 9]) cylinder(r = R(13), h = 10, center = true, $fn = 6); + translate([0, 0, 9]) cylinder(r = R(13), h = 25, center = true, $fn = 6); } /*translate([(-50 / 2) + 18, (71.5 / 2) - 62, 0]) { cylinder(r = R(10), h = 100, center = true); @@ -38,22 +40,63 @@ module bolt_voids () { } -module base_plate (pos = [0, 0, 0], rot = [0, 0, 0]) { +module base_plate (pos = [0, 0, 0], rot = [0, 0, 0], rails = "15mm") { + Rails15mmZ = -1; translate(pos) rotate(rot) { difference () { - rotate([0, 90, 0]) rounded_cube([31, 90.5, 55.3], d = 4, center = true, $fn = 40); + union () { + rotate([0, 90, 0]) rounded_cube([31, 90.5, 55.3], d = 4, center = true, $fn = 40); + if (rails == "15mm") { + translate([60 / 2, -20, Rails15mmZ]) { + rotate([90, 0, 0]) cylinder(r = R(24), h = 20, center = true, $fn = 60); + translate([13, 0, 0]) cube([12, 20, 10], center = true); + } + translate([-60 / 2, -20, Rails15mmZ]) { + rotate([90, 0, 0]) cylinder(r = R(24), h = 20, center = true, $fn = 60); + translate([-13, 0, 0]) cube([12, 20, 10], center = true); + } + } + } translate([PLATE_X, PLATE_Y, -3]) { - bolex_debug(0.7); + difference () { + bolex_debug(0.7); + if (rails == "15mm") { + translate([-PLATE_X + (60 / 2), - PLATE_Y - 20, 3 + Rails15mmZ]) rotate([90, 0, 0]) cylinder(r = R(24), h = 20, center = true, $fn = 60); + translate([-PLATE_X - (60 / 2), - PLATE_Y - 20, 3 + Rails15mmZ]) rotate([90, 0, 0]) cylinder(r = R(24), h = 20, center = true, $fn = 60); + } + } cylinder(r = R(10), h = 60, center = true, $fn = 40); - translate([0, 0, -37]) cylinder(r = R(17), h = 60, center = true, $fn = 40); + translate([0, 0, -38]) cylinder(r = R(17), h = 60, center = true, $fn = 40); bolt_voids(); } translate([-20, 58, 0]) cube([40, 40, 40], center = true); translate([0, 7.8, -9]) rotate([0, 90, 0]) cylinder(r = R(5.25), h = 100, center = true, $fn = 50); translate([0, -37.8, -9]) rotate([0, 90, 0]) cylinder(r = R(5.25), h = 100, center = true, $fn = 50); - translate([15, -50, 0]) rotate([90, 0, 0]) cylinder(r = R(12), h = 100, center = true, $fn = 50); - translate([-15, -50, 0]) rotate([90, 0, 0]) cylinder(r = R(12), h = 100, center = true, $fn = 50); + if (rails == "15mm") { + translate([60 / 2, -50, Rails15mmZ]) { + rotate([90, 0, 0]) cylinder(r = R(15.4), h = 100, center = true, $fn = 60); + translate([5, 0, 0]) cube([20, 100, 1]); + translate([14, 30, 13]) { + rotate([0, 0, 30]) m4_nut(20); + cylinder(r = R(4.25), h = 50, center = true, $fn = 40); + translate([0, 0, -43]) cylinder(r = R(14), h = 50, center = true, $fn = 40); + } + } + translate([-60 / 2, -50, Rails15mmZ]) { + rotate([90, 0, 0]) cylinder(r = R(15.4), h = 100, center = true, $fn = 60); + translate([-20, 0, 0]) cube([20, 100, 1]); + translate([-14, 30, 13]) { + rotate([0, 0, 30]) m4_nut(20); + cylinder(r = R(4.25), h = 50, center = true, $fn = 40); + translate([0, 0, -43]) cylinder(r = R(14), h = 50, center = true, $fn = 40); + } + } + } else if (rails == "1/2in") { + translate([15, -50, 0]) rotate([90, 0, 0]) cylinder(r = R(13), h = 100, center = true, $fn = 50); + translate([-15, -50, 0]) rotate([90, 0, 0]) cylinder(r = R(13), h = 100, center = true, $fn = 50); + } + } } } @@ -61,7 +104,7 @@ module base_plate (pos = [0, 0, 0], rot = [0, 0, 0]) { PART = "bolex_base_plate"; if (PART == "bolex_base_plate") { - base_plate(); + base_plate(rails="1/2in"); } else { debug(); }