diff --git a/bolex_90_degree_prism.scad b/bolex_90_degree_prism.scad index 8adc38f..d8dde32 100644 --- a/bolex_90_degree_prism.scad +++ b/bolex_90_degree_prism.scad @@ -1,8 +1,24 @@ -PrismSize = 15; +PrismSize = 12; //12.75 = original -module prism (pos = [0, 0, 0], rot = [0, 0, 0]) { - translate(pos) rotate(rot) { +X = 12.85; +Y = 43.6; +Z = 11.6; + +PostD = 4.3; +EndD = 6.2; + +PrismXOffset = -0.426; +PrismYOffset = 5.5; //for 12mm + +PrismX = PrismXOffset + ((PrismSize - 12) / 2) + 1; +PrismY = (Y / 2) - (PrismSize / 2) - (PrismYOffset - ((PrismSize - 12) / 2)); + +OffsetZ = (Z / 2) + (PrismSize - 12) + 0.39 + 2.2; + + +module prism (pos = [0, 0, 0], rot = [0, 0, 0], scl = [1, 1, 1]) { + translate(pos) rotate(rot) scale(scl) { rotate([0, 0, -45]) difference () { rotate([0, 0, 45]) cube([PrismSize, PrismSize, PrismSize], center = true); translate([PrismSize, 0, 0]) cube([PrismSize * 2, PrismSize * 2, PrismSize + 1], center = true); @@ -10,4 +26,30 @@ module prism (pos = [0, 0, 0], rot = [0, 0, 0]) { } } -prism(); \ No newline at end of file +module bolex_90_degree_prism () { + difference () { + translate([0, 0, ]) cube([X, Y, Z], center = true); + //prism void + prism([PrismX, PrismY, (PrismSize / 2) - OffsetZ], rot = [90, 0, 0], [1, 1.05, 1]); + translate([PrismX, PrismY, (PrismSize / 2) - OffsetZ + 12.25]) scale([1, 0.9, 1]) cube([12, 12, 12], center = true); + translate([PrismX - 11, PrismY, (PrismSize / 2) - OffsetZ]) scale([1, 1, 1.5]) cube([12, 12, 12], center = true); + //remove corner + translate([-X / 2, 0, Z / 2]) rotate([0, 45, 0]) cube([2, Y + 1, 2], center = true); + //post void + translate([(X / 2) - (PostD / 2) - 1, (-Y / 2) + (PostD / 2) + 1, 0]) cylinder(r = PostD / 2, h = Z + 1, center = true, $fn = 40); + //post void bevel + translate([(X / 2) - (PostD / 2) - 1, (-Y / 2) + (PostD / 2) + 1, (-Z / 2) + 0.4]) cylinder(r1 = (PostD / 2) + (1 / 2), r2 = (PostD / 2) - 0.1, h = 2, center = true, $fn = 40); + //angled cut + translate([-9.5, (-Y / 2) + (25 / 2), 0]) rotate([0, 0, 17.7]) color("red") cube([X, 50, Z + 1], center = true); + //rounded end + translate([(X / 2) - (PostD / 2) - 1, (-Y / 2) + (PostD / 2) + 1, 0]) difference () { + translate([0, -8 / 2, 0]) cube([8, 8, Z + 1], center = true); + translate([-8 / 2, (8 / 2) - 1, 0]) cube([8, 8, Z + 1], center = true); + cylinder(r = EndD / 2, h = Z + 2, center = true, $fn = 40); + } + } +} + +//color("red") prism([PrismX, PrismY, (PrismSize / 2) - OffsetZ], rot = [90, 0, 0]); + +bolex_90_degree_prism();