Created
February 24, 2021 20:58
-
-
Save bmsleight/26b1b0d2ca1b00c79006522971a368ea to your computer and use it in GitHub Desktop.
Simple Kindle Stand
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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(); | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 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