Skip to content

Instantly share code, notes, and snippets.

@bmsleight
Created February 24, 2021 20:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bmsleight/26b1b0d2ca1b00c79006522971a368ea to your computer and use it in GitHub Desktop.
Save bmsleight/26b1b0d2ca1b00c79006522971a368ea to your computer and use it in GitHub Desktop.
Simple Kindle Stand
include <lasercut.scad>;
$fn=60;
thickness = 0.36;
overlapfactor=20;
overlap_distance=overlapfactor*thickness;
kindle_x=117;
kindle_y=169;
kindle_z=9.1+2;
kindle_x_window_start=20;
kindle_y_window_start=13;
kindle_x_window=120;
kindle_y_window=90;
stand_height=100;
stand_width=50;
stand_height_base=15;
stand_width_base=20;
stand_length=kindle_y;
spacing_x=5;
spacing_y=8;
spacing_z=4;
module standSpineY(spacing=spacing_y)
{
spacing_d=stand_length/spacing;
cutouts = [for(i = [spacing_d/2 : spacing_d: stand_length-(spacing_d/2)]) [i, stand_height_base/2, thickness, stand_height_base] ];
rotate([90,0,90]) lasercutoutSquare(thickness=thickness,
x=stand_length , y=stand_height_base,
cutouts=cutouts
);
}
module standSpineYs(spacing=spacing_x)
{
spacing_d=stand_width/spacing;
for(i = [spacing_d/2: spacing_d: stand_width-spacing_d/2])
{
translate([i-thickness/2,0,0]) standSpineY();
}
}
module standSpine(spacing_x=spacing_x, spacing_y=spacing_y, spacing_z=spacing_z)
{
points = [
[0,0],
[stand_width,0],
[stand_width,stand_height_base],
[stand_width-stand_width_base,stand_height_base],
[stand_width_base,stand_height],
[0,stand_height],
];
spacing_dx=stand_width/spacing_x;
spacing_dz=(stand_height-stand_height_base)/spacing_z;
cutouts_x = [for(i = [spacing_dx/2: spacing_dx : stand_width-spacing_dx/2]) [i-thickness/2, -stand_height_base/2, thickness, stand_height_base] ];
cutouts_z = [for(i = [spacing_dz/2: spacing_dz : stand_height-spacing_dz/2]) [0, stand_height_base+i-thickness/2, stand_height_base/2, thickness] ];
lasercutout(thickness=thickness, points=points,
cutouts=concat(cutouts_x,cutouts_z)
);
}
module standSpineZs(spacing=spacing_z)
{
spacing_dz=(stand_height-stand_height_base)/spacing_z;
for(i = [spacing_dz/2: spacing_dz : stand_height-spacing_dz/2])
translate([0, 0, stand_height_base+i+thickness/2]) rotate([0,90,0]) standSpineY();
}
module standSpines(spacing=spacing_y)
{
spacing_d=stand_length/spacing;
for(i = [spacing_d/2: spacing_d: stand_length-spacing_d/2])
{
translate([0,thickness+i,0]) rotate([90,0,0]) standSpine();
}
}
standSpineZs();
standSpines();
standSpineYs();
// May need to adjust location of <lasercut.scad>
use <lasercut.scad> ;
$fn=60;
projection(cut = false)
lasercutout(thickness = 0.36,
points = [[0, 0], [169, 0], [169, 15], [0, 15], [0, 0]]
, cutouts = [[10.5625, 7.5, 0.36, 15], [31.6875, 7.5, 0.36, 15], [52.8125, 7.5, 0.36, 15], [73.9375, 7.5, 0.36, 15], [95.0625, 7.5, 0.36, 15], [116.188, 7.5, 0.36, 15], [137.313, 7.5, 0.36, 15], [158.438, 7.5, 0.36, 15]]
)
lasercutout(thickness = 0.36,
points = [[0, 0], [169, 0], [169, 15], [0, 15], [0, 0]]
, cutouts = [[10.5625, 7.5, 0.36, 15], [31.6875, 7.5, 0.36, 15], [52.8125, 7.5, 0.36, 15], [73.9375, 7.5, 0.36, 15], [95.0625, 7.5, 0.36, 15], [116.188, 7.5, 0.36, 15], [137.313, 7.5, 0.36, 15], [158.438, 7.5, 0.36, 15]]
)
lasercutout(thickness = 0.36,
points = [[0, 0], [169, 0], [169, 15], [0, 15], [0, 0]]
, cutouts = [[10.5625, 7.5, 0.36, 15], [31.6875, 7.5, 0.36, 15], [52.8125, 7.5, 0.36, 15], [73.9375, 7.5, 0.36, 15], [95.0625, 7.5, 0.36, 15], [116.188, 7.5, 0.36, 15], [137.313, 7.5, 0.36, 15], [158.438, 7.5, 0.36, 15]]
)
lasercutout(thickness = 0.36,
points = [[0, 0], [169, 0], [169, 15], [0, 15], [0, 0]]
, cutouts = [[10.5625, 7.5, 0.36, 15], [31.6875, 7.5, 0.36, 15], [52.8125, 7.5, 0.36, 15], [73.9375, 7.5, 0.36, 15], [95.0625, 7.5, 0.36, 15], [116.188, 7.5, 0.36, 15], [137.313, 7.5, 0.36, 15], [158.438, 7.5, 0.36, 15]]
)
lasercutout(thickness = 0.36,
points = [[0, 0], [50, 0], [50, 15], [30, 15], [20, 100], [0, 100]]
, cutouts = [[4.82, -7.5, 0.36, 15], [14.82, -7.5, 0.36, 15], [24.82, -7.5, 0.36, 15], [34.82, -7.5, 0.36, 15], [44.82, -7.5, 0.36, 15], [0, 25.445, 7.5, 0.36], [0, 46.695, 7.5, 0.36], [0, 67.945, 7.5, 0.36], [0, 89.195, 7.5, 0.36]]
)
lasercutout(thickness = 0.36,
points = [[0, 0], [50, 0], [50, 15], [30, 15], [20, 100], [0, 100]]
, cutouts = [[4.82, -7.5, 0.36, 15], [14.82, -7.5, 0.36, 15], [24.82, -7.5, 0.36, 15], [34.82, -7.5, 0.36, 15], [44.82, -7.5, 0.36, 15], [0, 25.445, 7.5, 0.36], [0, 46.695, 7.5, 0.36], [0, 67.945, 7.5, 0.36], [0, 89.195, 7.5, 0.36]]
)
lasercutout(thickness = 0.36,
points = [[0, 0], [50, 0], [50, 15], [30, 15], [20, 100], [0, 100]]
, cutouts = [[4.82, -7.5, 0.36, 15], [14.82, -7.5, 0.36, 15], [24.82, -7.5, 0.36, 15], [34.82, -7.5, 0.36, 15], [44.82, -7.5, 0.36, 15], [0, 25.445, 7.5, 0.36], [0, 46.695, 7.5, 0.36], [0, 67.945, 7.5, 0.36], [0, 89.195, 7.5, 0.36]]
)
lasercutout(thickness = 0.36,
points = [[0, 0], [50, 0], [50, 15], [30, 15], [20, 100], [0, 100]]
, cutouts = [[4.82, -7.5, 0.36, 15], [14.82, -7.5, 0.36, 15], [24.82, -7.5, 0.36, 15], [34.82, -7.5, 0.36, 15], [44.82, -7.5, 0.36, 15], [0, 25.445, 7.5, 0.36], [0, 46.695, 7.5, 0.36], [0, 67.945, 7.5, 0.36], [0, 89.195, 7.5, 0.36]]
)
lasercutout(thickness = 0.36,
points = [[0, 0], [50, 0], [50, 15], [30, 15], [20, 100], [0, 100]]
, cutouts = [[4.82, -7.5, 0.36, 15], [14.82, -7.5, 0.36, 15], [24.82, -7.5, 0.36, 15], [34.82, -7.5, 0.36, 15], [44.82, -7.5, 0.36, 15], [0, 25.445, 7.5, 0.36], [0, 46.695, 7.5, 0.36], [0, 67.945, 7.5, 0.36], [0, 89.195, 7.5, 0.36]]
)
lasercutout(thickness = 0.36,
points = [[0, 0], [50, 0], [50, 15], [30, 15], [20, 100], [0, 100]]
, cutouts = [[4.82, -7.5, 0.36, 15], [14.82, -7.5, 0.36, 15], [24.82, -7.5, 0.36, 15], [34.82, -7.5, 0.36, 15], [44.82, -7.5, 0.36, 15], [0, 25.445, 7.5, 0.36], [0, 46.695, 7.5, 0.36], [0, 67.945, 7.5, 0.36], [0, 89.195, 7.5, 0.36]]
)
lasercutout(thickness = 0.36,
points = [[0, 0], [50, 0], [50, 15], [30, 15], [20, 100], [0, 100]]
, cutouts = [[4.82, -7.5, 0.36, 15], [14.82, -7.5, 0.36, 15], [24.82, -7.5, 0.36, 15], [34.82, -7.5, 0.36, 15], [44.82, -7.5, 0.36, 15], [0, 25.445, 7.5, 0.36], [0, 46.695, 7.5, 0.36], [0, 67.945, 7.5, 0.36], [0, 89.195, 7.5, 0.36]]
)
lasercutout(thickness = 0.36,
points = [[0, 0], [50, 0], [50, 15], [30, 15], [20, 100], [0, 100]]
, cutouts = [[4.82, -7.5, 0.36, 15], [14.82, -7.5, 0.36, 15], [24.82, -7.5, 0.36, 15], [34.82, -7.5, 0.36, 15], [44.82, -7.5, 0.36, 15], [0, 25.445, 7.5, 0.36], [0, 46.695, 7.5, 0.36], [0, 67.945, 7.5, 0.36], [0, 89.195, 7.5, 0.36]]
)
lasercutout(thickness = 0.36,
points = [[0, 0], [169, 0], [169, 15], [0, 15], [0, 0]]
, cutouts = [[10.5625, 7.5, 0.36, 15], [31.6875, 7.5, 0.36, 15], [52.8125, 7.5, 0.36, 15], [73.9375, 7.5, 0.36, 15], [95.0625, 7.5, 0.36, 15], [116.188, 7.5, 0.36, 15], [137.313, 7.5, 0.36, 15], [158.438, 7.5, 0.36, 15]]
)
lasercutout(thickness = 0.36,
points = [[0, 0], [169, 0], [169, 15], [0, 15], [0, 0]]
, cutouts = [[10.5625, 7.5, 0.36, 15], [31.6875, 7.5, 0.36, 15], [52.8125, 7.5, 0.36, 15], [73.9375, 7.5, 0.36, 15], [95.0625, 7.5, 0.36, 15], [116.188, 7.5, 0.36, 15], [137.313, 7.5, 0.36, 15], [158.438, 7.5, 0.36, 15]]
)
lasercutout(thickness = 0.36,
points = [[0, 0], [169, 0], [169, 15], [0, 15], [0, 0]]
, cutouts = [[10.5625, 7.5, 0.36, 15], [31.6875, 7.5, 0.36, 15], [52.8125, 7.5, 0.36, 15], [73.9375, 7.5, 0.36, 15], [95.0625, 7.5, 0.36, 15], [116.188, 7.5, 0.36, 15], [137.313, 7.5, 0.36, 15], [158.438, 7.5, 0.36, 15]]
)
lasercutout(thickness = 0.36,
points = [[0, 0], [169, 0], [169, 15], [0, 15], [0, 0]]
, cutouts = [[10.5625, 7.5, 0.36, 15], [31.6875, 7.5, 0.36, 15], [52.8125, 7.5, 0.36, 15], [73.9375, 7.5, 0.36, 15], [95.0625, 7.5, 0.36, 15], [116.188, 7.5, 0.36, 15], [137.313, 7.5, 0.36, 15], [158.438, 7.5, 0.36, 15]]
)
lasercutout(thickness = 0.36,
points = [[0, 0], [169, 0], [169, 15], [0, 15], [0, 0]]
, cutouts = [[10.5625, 7.5, 0.36, 15], [31.6875, 7.5, 0.36, 15], [52.8125, 7.5, 0.36, 15], [73.9375, 7.5, 0.36, 15], [95.0625, 7.5, 0.36, 15], [116.188, 7.5, 0.36, 15], [137.313, 7.5, 0.36, 15], [158.438, 7.5, 0.36, 15]]
)
;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment