diff options
-rw-r--r-- | tabletop_tablet_stand_base.scad | 30 | ||||
-rw-r--r-- | tabletop_tablet_stand_clamp.scad | 49 |
2 files changed, 48 insertions, 31 deletions
diff --git a/tabletop_tablet_stand_base.scad b/tabletop_tablet_stand_base.scad index bdb1aab..6383ffd 100644 --- a/tabletop_tablet_stand_base.scad +++ b/tabletop_tablet_stand_base.scad | |||
@@ -1,20 +1,28 @@ | |||
1 | thickness = 15; | 1 | thickness = 12; |
2 | legWidth = 50; | 2 | legWidth = 20; |
3 | rearLegLength = 40; | 3 | legWallThickness = 2; |
4 | rearLegLength = 30; | ||
4 | frontLegLength = 90; | 5 | frontLegLength = 90; |
5 | frontLegCenterRotationDegrees = 65; | 6 | frontLegCenterRotationDegrees = 55; |
7 | legLift = 2; | ||
6 | 8 | ||
7 | nutInsetHeight = 7; | 9 | nutInsetHeight = 4; |
8 | nutInsetDiameter = 20; | 10 | nutInsetDiameter = 15; |
9 | 11 | threadDiameter = 7; | |
10 | threadDiameter = 6; | ||
11 | 12 | ||
12 | module leg(width, length, thickness) { | 13 | module leg(width, length, thickness) { |
13 | translate([-width/2, 0, 0]) | 14 | difference() { |
14 | cube([width, length, thickness]); | 15 | translate([-width/2, 0, 0]) |
16 | cube([width, length, thickness]); | ||
17 | |||
18 | translate([-width/2+legWallThickness, 0, legWallThickness]) | ||
19 | cube([width - 2*legWallThickness, length, thickness - legWallThickness]); | ||
20 | } | ||
15 | 21 | ||
16 | translate([0, length, 0]) | 22 | translate([0, length, 0]) |
17 | cylinder(r = width/2, h = thickness); | 23 | cylinder(r = width/2, h = thickness + legLift); |
24 | |||
25 | cylinder(r = width/2, h = thickness); | ||
18 | } | 26 | } |
19 | 27 | ||
20 | difference() { | 28 | difference() { |
diff --git a/tabletop_tablet_stand_clamp.scad b/tabletop_tablet_stand_clamp.scad index b63dcf2..2ade4eb 100644 --- a/tabletop_tablet_stand_clamp.scad +++ b/tabletop_tablet_stand_clamp.scad | |||
@@ -1,38 +1,47 @@ | |||
1 | module prism(l, w, h) { | 1 | module prism(l, w, h) { |
2 | polyhedron(points=[ | 2 | polyhedron( |
3 | [0,0,h], // 0 front top corner | 3 | points=[ |
4 | [0,0,0],[w,0,0], // 1, 2 front left & right bottom corners | 4 | [0,0,h], // 0 front top corner |
5 | [0,l,h], // 3 back top corner | 5 | [0,0,0], [w,0,0], // 1, 2 front left & right bottom corners |
6 | [0,l,0],[w,l,0] // 4, 5 back left & right bottom corners | 6 | [0,l,h], // 3 back top corner |
7 | ], faces=[ // points for all faces must be ordered clockwise when looking in | 7 | [0,l,0], [w,l,0] // 4, 5 back left & right bottom corners |
8 | [0,2,1], // top face | 8 | ], |
9 | [3,4,5], // base face | 9 | faces=[ // points for all faces must be ordered clockwise when looking in |
10 | [0,1,4,3], // h face | 10 | [0,2,1], // top face |
11 | [1,2,5,4], // w face | 11 | [3,4,5], // base face |
12 | [0,3,5,2], // hypotenuse face | 12 | [0,1,4,3], // h face |
13 | ]); | 13 | [1,2,5,4], // w face |
14 | [0,3,5,2], // hypotenuse face | ||
15 | ] | ||
16 | ); | ||
14 | } | 17 | } |
15 | 18 | ||
16 | threadDiameter = 7; | 19 | baseThickness = 3; |
17 | threadTubeOuterDiameter = 11; | ||
18 | |||
19 | baseThickness = 4; | ||
20 | baseHeight = 40; | 20 | baseHeight = 40; |
21 | baseWidth = 80; | 21 | baseWidth = 80; |
22 | 22 | ||
23 | gapWidth = 30; | 23 | gapWidth = 30; |
24 | clampDepth = 15; | 24 | clampDepth = 15; |
25 | clampHeight = 10; | 25 | clampHeight = 5; |
26 | |||
27 | threadDiameter = 7; | ||
28 | threadTubeOuterDiameter = threadDiameter+baseThickness*2; | ||
26 | 29 | ||
27 | difference() { | 30 | difference() { |
28 | union() { | 31 | union() { |
29 | cube([baseThickness, baseWidth, baseHeight]); | 32 | cube([baseThickness, baseWidth, baseHeight]); |
30 | 33 | ||
31 | translate([-clampDepth, 0, 0]) | 34 | translate([-clampDepth, 0, 0]) |
32 | prism(baseWidth, clampDepth+baseThickness, clampHeight); | 35 | cube([clampDepth, baseWidth, baseThickness]); |
36 | |||
37 | translate([-clampDepth, 0, baseThickness]) | ||
38 | prism(baseWidth, clampDepth, clampHeight); | ||
33 | 39 | ||
34 | translate([0, (baseWidth - threadTubeOuterDiameter)/2, 0]) | 40 | translate([0, (baseWidth - threadTubeOuterDiameter)/2, 0]) |
35 | cube([threadTubeOuterDiameter, threadTubeOuterDiameter, baseHeight]); | 41 | cube([threadTubeOuterDiameter/2, threadTubeOuterDiameter, baseHeight]); |
42 | |||
43 | translate([threadTubeOuterDiameter/2, baseWidth/2, 0]) | ||
44 | cylinder(r = threadTubeOuterDiameter/2, h = baseHeight); | ||
36 | } | 45 | } |
37 | 46 | ||
38 | // thread hole | 47 | // thread hole |
@@ -41,5 +50,5 @@ difference() { | |||
41 | 50 | ||
42 | // clamp gap | 51 | // clamp gap |
43 | translate([-clampDepth, (baseWidth-gapWidth)/2, 0]) | 52 | translate([-clampDepth, (baseWidth-gapWidth)/2, 0]) |
44 | cube([clampDepth, gapWidth, clampHeight]); | 53 | cube([clampDepth, gapWidth, clampHeight+baseThickness]); |
45 | } | 54 | } |