diff options
author | pacien | 2019-08-12 03:33:00 +0200 |
---|---|---|
committer | pacien | 2019-08-12 03:33:00 +0200 |
commit | 0bcc95d781157499404051ae569140695cc0e65b (patch) | |
tree | e37eec85aff7daea0971383c07339238054595ee | |
parent | 453630344e12c8f57821a5ee9f56025228599827 (diff) | |
download | tabletop-tablet-stand-0bcc95d781157499404051ae569140695cc0e65b.tar.gz |
import first version
-rw-r--r-- | tabletop_tablet_stand_base.scad | 50 | ||||
-rw-r--r-- | tabletop_tablet_stand_clamp.scad | 45 |
2 files changed, 95 insertions, 0 deletions
diff --git a/tabletop_tablet_stand_base.scad b/tabletop_tablet_stand_base.scad new file mode 100644 index 0000000..b168f44 --- /dev/null +++ b/tabletop_tablet_stand_base.scad | |||
@@ -0,0 +1,50 @@ | |||
1 | thickness = 12; | ||
2 | legWidth = 20; | ||
3 | legWallThickness = 2; | ||
4 | rearLegLength = 40; | ||
5 | frontLegLength = 90; | ||
6 | frontLegCenterRotationDegrees = 65; | ||
7 | legLift = 2; | ||
8 | |||
9 | nutInsetHeight = 4; | ||
10 | nutInsetDiameter = 15; | ||
11 | |||
12 | threadDiameter = 6; | ||
13 | |||
14 | module leg(width, length, thickness) { | ||
15 | difference() { | ||
16 | translate([-width/2, 0, 0]) | ||
17 | cube([width, length, thickness]); | ||
18 | |||
19 | translate([-width/2+legWallThickness, 0, legWallThickness]) | ||
20 | cube([width - 2*legWallThickness, length, thickness - legWallThickness]); | ||
21 | } | ||
22 | |||
23 | translate([0, length, 0]) | ||
24 | cylinder(r = width/2, h = thickness + legLift); | ||
25 | |||
26 | cylinder(r = width/2, h = thickness); | ||
27 | } | ||
28 | |||
29 | difference() { | ||
30 | union() { | ||
31 | // rear leg | ||
32 | rotate([0, 0, 180]) | ||
33 | leg(legWidth, rearLegLength, thickness); | ||
34 | |||
35 | // right leg | ||
36 | rotate([0, 0, -frontLegCenterRotationDegrees]) | ||
37 | leg(legWidth, frontLegLength, thickness); | ||
38 | |||
39 | // leftleg | ||
40 | rotate([0, 0, +frontLegCenterRotationDegrees]) | ||
41 | leg(legWidth, frontLegLength, thickness); | ||
42 | } | ||
43 | |||
44 | // thread hole | ||
45 | cylinder(r = threadDiameter/2, h = thickness); | ||
46 | |||
47 | // nut inset | ||
48 | translate([0, 0, thickness - nutInsetHeight]) | ||
49 | cylinder(r = nutInsetDiameter/2, h = nutInsetHeight); | ||
50 | } | ||
diff --git a/tabletop_tablet_stand_clamp.scad b/tabletop_tablet_stand_clamp.scad new file mode 100644 index 0000000..b63dcf2 --- /dev/null +++ b/tabletop_tablet_stand_clamp.scad | |||
@@ -0,0 +1,45 @@ | |||
1 | module prism(l, w, h) { | ||
2 | polyhedron(points=[ | ||
3 | [0,0,h], // 0 front top corner | ||
4 | [0,0,0],[w,0,0], // 1, 2 front left & right bottom corners | ||
5 | [0,l,h], // 3 back top corner | ||
6 | [0,l,0],[w,l,0] // 4, 5 back left & right bottom corners | ||
7 | ], faces=[ // points for all faces must be ordered clockwise when looking in | ||
8 | [0,2,1], // top face | ||
9 | [3,4,5], // base face | ||
10 | [0,1,4,3], // h face | ||
11 | [1,2,5,4], // w face | ||
12 | [0,3,5,2], // hypotenuse face | ||
13 | ]); | ||
14 | } | ||
15 | |||
16 | threadDiameter = 7; | ||
17 | threadTubeOuterDiameter = 11; | ||
18 | |||
19 | baseThickness = 4; | ||
20 | baseHeight = 40; | ||
21 | baseWidth = 80; | ||
22 | |||
23 | gapWidth = 30; | ||
24 | clampDepth = 15; | ||
25 | clampHeight = 10; | ||
26 | |||
27 | difference() { | ||
28 | union() { | ||
29 | cube([baseThickness, baseWidth, baseHeight]); | ||
30 | |||
31 | translate([-clampDepth, 0, 0]) | ||
32 | prism(baseWidth, clampDepth+baseThickness, clampHeight); | ||
33 | |||
34 | translate([0, (baseWidth - threadTubeOuterDiameter)/2, 0]) | ||
35 | cube([threadTubeOuterDiameter, threadTubeOuterDiameter, baseHeight]); | ||
36 | } | ||
37 | |||
38 | // thread hole | ||
39 | translate([threadTubeOuterDiameter/2, baseWidth/2, 0]) | ||
40 | cylinder(r = threadDiameter/2, h = baseHeight); | ||
41 | |||
42 | // clamp gap | ||
43 | translate([-clampDepth, (baseWidth-gapWidth)/2, 0]) | ||
44 | cube([clampDepth, gapWidth, clampHeight]); | ||
45 | } | ||