diff options
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | tabletop_tablet_stand_clamp.scad | 35 |
2 files changed, 23 insertions, 13 deletions
@@ -1,2 +1,3 @@ | |||
1 | *.stl | 1 | *.stl |
2 | *.gco | ||
2 | *.gcode | 3 | *.gcode |
diff --git a/tabletop_tablet_stand_clamp.scad b/tabletop_tablet_stand_clamp.scad index 2ade4eb..b74efd4 100644 --- a/tabletop_tablet_stand_clamp.scad +++ b/tabletop_tablet_stand_clamp.scad | |||
@@ -16,39 +16,48 @@ module prism(l, w, h) { | |||
16 | ); | 16 | ); |
17 | } | 17 | } |
18 | 18 | ||
19 | module reflect(axises) { | ||
20 | children(); | ||
21 | mirror(axises) children(); | ||
22 | } | ||
23 | |||
19 | baseThickness = 3; | 24 | baseThickness = 3; |
20 | baseHeight = 40; | 25 | baseHeight = 20; |
21 | baseWidth = 80; | 26 | baseWidth = 80; |
22 | 27 | ||
23 | gapWidth = 30; | 28 | gapWidth = 30; |
24 | clampDepth = 15; | 29 | clampDepth = 15; |
25 | clampHeight = 5; | 30 | clampHeight = 5; |
26 | 31 | ||
27 | threadDiameter = 7; | 32 | threadDiameter = 6.5; |
28 | threadTubeOuterDiameter = threadDiameter+baseThickness*2; | 33 | threadTubeOuterDiameter = threadDiameter+baseThickness*2; |
29 | 34 | ||
30 | difference() { | 35 | difference() { |
31 | union() { | 36 | union() { |
32 | cube([baseThickness, baseWidth, baseHeight]); | 37 | cube([baseThickness, baseWidth, baseHeight]); |
33 | 38 | ||
34 | translate([-clampDepth, 0, 0]) | 39 | translate([-clampDepth, 0, 0]) |
35 | cube([clampDepth, baseWidth, baseThickness]); | 40 | cube([clampDepth, baseWidth, baseThickness+clampHeight]); |
36 | 41 | ||
37 | translate([-clampDepth, 0, baseThickness]) | 42 | translate([baseThickness, baseWidth/2, 0]) |
38 | prism(baseWidth, clampDepth, clampHeight); | 43 | reflect([0, 1, 0]) |
39 | 44 | rotate([90, 0, 0]) | |
40 | translate([0, (baseWidth - threadTubeOuterDiameter)/2, 0]) | 45 | prism(baseHeight, threadTubeOuterDiameter-baseThickness, baseWidth/2); |
41 | cube([threadTubeOuterDiameter/2, threadTubeOuterDiameter, baseHeight]); | 46 | |
42 | |||
43 | translate([threadTubeOuterDiameter/2, baseWidth/2, 0]) | 47 | translate([threadTubeOuterDiameter/2, baseWidth/2, 0]) |
44 | cylinder(r = threadTubeOuterDiameter/2, h = baseHeight); | 48 | cylinder(r = threadTubeOuterDiameter/2, h = baseHeight); |
45 | } | 49 | } |
46 | 50 | ||
47 | // thread hole | 51 | // thread hole |
48 | translate([threadTubeOuterDiameter/2, baseWidth/2, 0]) | 52 | translate([threadTubeOuterDiameter/2, baseWidth/2, 0]) |
49 | cylinder(r = threadDiameter/2, h = baseHeight); | 53 | cylinder(r = threadDiameter/2, h = baseHeight); |
50 | 54 | ||
51 | // clamp gap | 55 | // clamp gap |
52 | translate([-clampDepth, (baseWidth-gapWidth)/2, 0]) | 56 | translate([-clampDepth, (baseWidth-gapWidth)/2, 0]) |
53 | cube([clampDepth, gapWidth, clampHeight+baseThickness]); | 57 | cube([clampDepth, gapWidth, clampHeight+baseThickness]); |
58 | |||
59 | // clamp indent | ||
60 | translate([-clampDepth/2, 0, clampDepth/2+baseThickness]) | ||
61 | rotate([-90, 0, 0]) | ||
62 | cylinder(r = clampDepth/2, h = baseWidth); | ||
54 | } | 63 | } |