7
mirror of https://github.com/tenderlove/initial-v.git synced 2025-04-07 18:05:08 +00:00

adding case

This commit is contained in:
Aaron Patterson 2022-12-20 12:55:22 -08:00
parent de7b182fe4
commit 1e80a9d625
No known key found for this signature in database
GPG Key ID: 953170BCB4FFAFC6
2 changed files with 170 additions and 0 deletions

53
housing/path413.svg Normal file
View File

@ -0,0 +1,53 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
version="1.1"
id="svg39"
width="242.97607"
height="310.57062"
viewBox="0 0 242.97607 310.57062"
sodipodi:docname="aaron.svg"
inkscape:export-filename="IMG_2034.svg"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"
inkscape:version="0.0"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs43" />
<sodipodi:namedview
id="namedview41"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
showgrid="false"
inkscape:lockguides="false"
inkscape:zoom="0.55429685"
inkscape:cx="1563.2418"
inkscape:cy="586.32843"
inkscape:window-width="1645"
inkscape:window-height="1212"
inkscape:window-x="2886"
inkscape:window-y="169"
inkscape:window-maximized="0"
inkscape:current-layer="g45" />
<g
inkscape:groupmode="layer"
inkscape:label="Image"
id="g45"
transform="translate(-904.56362,-517.54901)">
<path
style="display:inline;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#800000;stroke-width:0.52;stroke-opacity:1"
d="m 928.85248,517.80917 c 0,0 82.08602,7.50501 115.85852,12.6647 8.2165,1.2553 73.6428,13.60281 73.6428,13.60281 0,0 15.0222,3.05334 22.6207,7.78805 6.8557,4.2718 7.3867,8.8036 5.054,17.07228 -4.517,16.01191 -5.1597,18.29345 -5.1597,18.29345 l -24.8603,62.8544 -25.2156,59.45716 -24.6327,53.46339 c 0,0 -7.7659,15.54574 -16.6781,28.67949 -8.9122,13.13376 -21.1883,22.57193 -21.1883,22.57193 l -6.4197,5.24017 c 0,0 -6.7141,4.14108 -16.5644,5.54827 -9.85033,1.40719 -35.17968,2.81435 -35.17968,2.81435 h -24.39128 c 0,0 -9.3444,-0.60242 -13.24757,-4.19797 -3.31522,-3.05394 -5.10278,-4.10775 -8.79838,-11.28108 -4.05325,-7.86754 -9.26744,-73.97452 -9.26744,-73.97452 0,0 -7.40117,-102.36203 -7.61882,-107.1406 -0.60645,-13.31425 -1.40719,-74.05501 -1.40719,-74.05501 l -0.52597,-27.81208 c 0,0 -0.97146,-5.73281 5.54827,-9.9308 2.23096,-1.43648 18.43084,-1.65839 18.43084,-1.65839 z"
id="path413"
sodipodi:nodetypes="cscssccccsccsccsscsccsc"
inkscape:label="path413" />
</g>
</svg>

After

(image error) Size: 2.5 KiB

117
housing/thing.scad Normal file
View File

@ -0,0 +1,117 @@
module ShifterThing() {
translate([-8, 3, -1])
linear_extrude(4)
rotate([0, 0, -17])
rotate([0, 180, 0])
import("path413.svg", center=true, dpi=94.5);
}
TOP_PLATE_Y = 101;
module Foo(width) {
difference() {
linear_extrude(2)
square([width, TOP_PLATE_Y], center=true);
translate([0, 0, -1])
linear_extrude(4)
square([width - 4, TOP_PLATE_Y - 4], center=true);
//ShifterThing();
}
}
POST_DIAMETER = 6;
POST_OUTER_DIAMETER = 14;
REAR_TAB_LENGTH = 16;
MIN_WALL_THICKNESS = 2;
module RearPost(height) {
$fn = 80;
diameter = POST_DIAMETER;
outer_diameter = POST_OUTER_DIAMETER;
length = (outer_diameter / 2) + (REAR_TAB_LENGTH - outer_diameter);
echo(length);
difference() {
linear_extrude(height)
union() {
circle(d = outer_diameter);
translate([-(outer_diameter / 2), -length])
square([outer_diameter, length]);
}
translate([0, 0, -1])
linear_extrude(height + 2)
circle(d = diameter);
}
}
BOX_X = 79;
module FrontPosts(height) {
x = (BOX_X / 2) + 7;
translate([-x, 0, 0])
rotate([0, 0, 90])
FrontPost(height);
translate([x, 0, 0])
rotate([0, 0, -90])
FrontPost(height);
}
module FrontPost(height) {
$fn = 80;
diameter = POST_DIAMETER;
outer_diameter = POST_OUTER_DIAMETER;
length = (outer_diameter / 2) + (16 - outer_diameter);
difference() {
linear_extrude(height)
union() {
circle(d = outer_diameter);
translate([-(15 / 2), -7])
polygon([[0, 0], [15, 0], [14.5, 7], [0.5, 7]]);
}
translate([0, 0, -1])
linear_extrude(height + 2)
circle(d = diameter);
}
}
module RearWall(height) {
rear_post_center_x = (59 / 2) + (POST_DIAMETER / 2);
for (i = [-1, 1]) {
translate([i * rear_post_center_x, 0, 0])
RearPost(height);
}
top_fill_y = REAR_TAB_LENGTH - (POST_OUTER_DIAMETER / 2);
// Top plate between tabs
translate([0, -(top_fill_y / 2), height - MIN_WALL_THICKNESS])
linear_extrude(MIN_WALL_THICKNESS)
// Just adding +2 to make it slightly wider so everything is connected nicely
square([((rear_post_center_x * 2) - POST_OUTER_DIAMETER) + 2, top_fill_y], center=true);
linear_extrude(height)
square([(rear_post_center_x * 2) - POST_DIAMETER, 2], center=true);
}
REAR_POST_Z = 31;
translate([0, (TOP_PLATE_Y / 2) - (15 / 2), 0])
FrontPosts(REAR_POST_Z + 2); // front are ~2mm lower
translate([0, 0, 2]) {
translate([0, -((TOP_PLATE_Y / 2) + 9), 0])
rotate([0, 0, 180])
RearWall(REAR_POST_Z);
translate([0, 0, REAR_POST_Z - 2])
Foo(79);
}