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