diff --git a/case/case.scad b/case/case.scad index d64c520..87ebff3 100644 --- a/case/case.scad +++ b/case/case.scad @@ -1,151 +1,7 @@ include +include module dasbob() { - polygon( - [ - // [155.928481,91.996393], - // [155.928481,88.648534], - // [156.286544,88.290471], - // [156.286545,88.290471], - [156.644608,88.648534], - [156.644608,115.651509], - [156.539430,115.905001], - // [156.589430,115.805001], // mid of above two - [155.170000,117.271152], - [155.170000,118.520000], - [167.898228,131.248206], - [168.522652,131.505749], - [169.065922,131.318766], - [173.422719,126.969010], - [173.595576,126.796152], - [181.927187,118.489947], - [181.985551,118.448215], - [197.391376,109.554572], - [197.460297,109.523759], - [209.109731,106.380904], - [210.259790,106.077520], - [214.565960,104.927211], - [215.435334,103.408264], - [211.283785,87.926359], - [211.629630,87.475555], - [247.604965,87.475555], - [247.957589,87.895794], - [246.281923,97.399174], - [246.426553,98.058888], - [246.998051,98.422238], - [264.732197,101.551376], - [265.381317,101.403215], - [265.744667,100.831717], - [268.087117,87.542562], - [271.819512,66.361792], - [274.772260,49.618951], - [274.627609,48.962790], - [274.056111,48.599440], - [253.475181,44.969692], - [253.182666,44.586158], - [254.092428,34.206111], - [253.891343,33.560521], - [253.291616,33.246544], - [247.562508,32.745606], - [231.857881,31.373606], - [231.532285,31.017015], - [231.532285,27.974266], - [230.292277,26.734258], - [213.009675,26.734258], - [211.769667,27.974266], - [211.769667,32.376948], - [211.411604,32.735012], - [195.007436,32.735012], - [193.767428,33.975020], - [193.767428,34.377214], - [193.409365,34.735277], - [157.884616,34.735277], - [156.644608,35.975285], - [156.644608,42.117138], - // [156.286545,42.475201], - // [156.286544,42.475201], - // [155.928481,42.117138], - // [155.928481,38.769279], - // [155.041250,37.882049], - // [151.012512,37.882049], - // [150.125282,38.769279], - // [150.125282,42.117138], - // [149.767218,42.475201], - // [149.767196,42.475201], - // [149.409133,42.117138], - // [149.409133,35.975285], - // [148.169125,34.735277], - // [112.644397,34.735277], - // [112.286334,34.377214], - // [112.286334,33.975020], - // [111.046326,32.735012], - // [94.645668,32.735012], - // [94.287605,32.376948], - // [94.287605,27.974266], - // [93.047597,26.734258], - // [75.765016,26.734258], - // [74.525008,27.974266], - // [74.525008,31.016933], - // [74.198121,31.373637], - // [52.769187,33.246544], - // [52.165951,33.560521], - // [51.964865,34.202579], - // [52.874604,44.586009], - // [52.580079,44.969886], - // [31.994120,48.599440], - // [31.426132,48.962790], - // [31.281502,49.618951], - // [40.312605,100.835248], - // [40.675976,101.403215], - // [41.332138,101.547844], - // [59.062752,98.422238], - // [59.630719,98.058888], - // [59.775370,97.402705], - // [58.099654,87.895774], - // [58.452281,87.475555], - // [94.427690,87.475555], - // [94.773540,87.926340], - // [90.530534,103.752705], - // [91.154958,104.832205], - // [108.439415,109.461352], - // [108.507473,109.487006], - // [118.671625,115.330875], - // [119.137272,115.598989], - // [124.068948,118.454645], - // [124.133942,118.500876], - // [132.973228,127.307685], - // [136.987841,131.315235], - // [137.534642,131.505749], - // [138.159066,131.248206], - // [150.887272,118.520000], - // [150.887272,117.271152], - // [149.514310,115.901470], - // [149.409133,115.647978], - // [149.409133,88.648534], - // [149.767196,88.290471], - // [149.767218,88.290471], - // [150.125282,88.648534], - // [150.125282,91.996393], - // [151.012512,92.883623], - // [155.041250,92.883623], - // [155.928481,91.996393] - ] - ); - // polygon( - // [ - // [149.767196,82.289718], - // [149.409133,81.931654], - // [149.409133,48.834018], - // [149.767196,48.475955], - // [149.767218,48.475955], - // [150.125282,48.834018], - // [150.125282,81.931654], - // [149.767218,82.289718], - // [149.767196,82.289718] - // ] - // ); -} -module dasbob_round() { polygon( [ [156.644608,88.648534], @@ -505,6 +361,71 @@ module dasbob_round() { $fs=0.1; +module dasbob_round() +{ + union() { + dasbob(); + + // inside corders + + //botom mid + translate([212.45, 88.45]) + difference() { + polygon([ + [0, 0], + move_polar_2d([0, 0], -74, 5), + move_polar_2d([0, 0], 180, 5) + ]); + circle(r=1); + } + + //botom out + translate([246.85, 88.47]) + difference() { + polygon([ + [0, 0], + move_polar_2d([0, 0], 74, 5), + move_polar_2d([0, 0], 180, 5) + ]); + circle(r=1); + } + + //top out 1 + translate([254.23, 44.09]) + difference() { + polygon([ + [0, 0], + move_polar_2d([0, 0], -11, 5), + move_polar_2d([0, 0], -95, 5) + ]); + circle(r=1); + } + + //top out 2 + translate([232.53, 30.425]) + difference() { + polygon([ + [0, 0], + move_polar_2d([0, 0], -7, 5), + move_polar_2d([0, 0], -90, 5) + ]); + circle(r=1); + } + + //top in 1 + translate([192.79, 33.75]) + difference() { + polygon([ + [0, 0], + move_polar_2d([0, 0], 0, 5), + move_polar_2d([0, 0], 90, 5) + ]); + circle(r=1); + } + } +} + + tollerance = 0.2; upper_wall = 1; inlay_depth = 4; @@ -554,3 +475,6 @@ difference() { translate([0, 0, -5000]) cube([10000, 10000, 10000], center=true); } + + +// !dasbob_round(); \ No newline at end of file diff --git a/case/functions.scad b/case/functions.scad new file mode 100644 index 0000000..61964ab --- /dev/null +++ b/case/functions.scad @@ -0,0 +1,14 @@ + +function to_cardinal_2d(a, d) = [ + d * sin(a), + d * cos(a) +]; +function move_polar_2d(p, angle, dist) = to_cardinal_2d(angle, dist) + p; +function line_len_2d(p) = sqrt(p[0]*p[0] + p[1]*p[1]); +function line_len_3d(p) = sqrt(p[0]*p[0] + p[1]*p[1] + p[2]*p[2]); +function angle_2d(p) = atan2(p[0], p[1]); + +function _tangent_single_angle_2d(to, r, other_side) = angle_2d(to) + ((other_side) ? -1 : 1)*acos(r / line_len_2d(to)); +function tangent_single_2d(to, r, center, other_side=false) = + move_polar_2d(center, _tangent_single_angle_2d(to - center, r, other_side), r); +