From 0bcc95d781157499404051ae569140695cc0e65b Mon Sep 17 00:00:00 2001 From: pacien Date: Mon, 12 Aug 2019 03:33:00 +0200 Subject: import first version --- tabletop_tablet_stand_base.scad | 50 ++++++++++++++++++++++++++++++++++++++++ tabletop_tablet_stand_clamp.scad | 45 ++++++++++++++++++++++++++++++++++++ 2 files changed, 95 insertions(+) create mode 100644 tabletop_tablet_stand_base.scad create mode 100644 tabletop_tablet_stand_clamp.scad 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 @@ +thickness = 12; +legWidth = 20; +legWallThickness = 2; +rearLegLength = 40; +frontLegLength = 90; +frontLegCenterRotationDegrees = 65; +legLift = 2; + +nutInsetHeight = 4; +nutInsetDiameter = 15; + +threadDiameter = 6; + +module leg(width, length, thickness) { + difference() { + translate([-width/2, 0, 0]) + cube([width, length, thickness]); + + translate([-width/2+legWallThickness, 0, legWallThickness]) + cube([width - 2*legWallThickness, length, thickness - legWallThickness]); + } + + translate([0, length, 0]) + cylinder(r = width/2, h = thickness + legLift); + + cylinder(r = width/2, h = thickness); +} + +difference() { + union() { + // rear leg + rotate([0, 0, 180]) + leg(legWidth, rearLegLength, thickness); + + // right leg + rotate([0, 0, -frontLegCenterRotationDegrees]) + leg(legWidth, frontLegLength, thickness); + + // leftleg + rotate([0, 0, +frontLegCenterRotationDegrees]) + leg(legWidth, frontLegLength, thickness); + } + + // thread hole + cylinder(r = threadDiameter/2, h = thickness); + + // nut inset + translate([0, 0, thickness - nutInsetHeight]) + cylinder(r = nutInsetDiameter/2, h = nutInsetHeight); +} 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 @@ +module prism(l, w, h) { + polyhedron(points=[ + [0,0,h], // 0 front top corner + [0,0,0],[w,0,0], // 1, 2 front left & right bottom corners + [0,l,h], // 3 back top corner + [0,l,0],[w,l,0] // 4, 5 back left & right bottom corners + ], faces=[ // points for all faces must be ordered clockwise when looking in + [0,2,1], // top face + [3,4,5], // base face + [0,1,4,3], // h face + [1,2,5,4], // w face + [0,3,5,2], // hypotenuse face + ]); +} + +threadDiameter = 7; +threadTubeOuterDiameter = 11; + +baseThickness = 4; +baseHeight = 40; +baseWidth = 80; + +gapWidth = 30; +clampDepth = 15; +clampHeight = 10; + +difference() { + union() { + cube([baseThickness, baseWidth, baseHeight]); + + translate([-clampDepth, 0, 0]) + prism(baseWidth, clampDepth+baseThickness, clampHeight); + + translate([0, (baseWidth - threadTubeOuterDiameter)/2, 0]) + cube([threadTubeOuterDiameter, threadTubeOuterDiameter, baseHeight]); + } + + // thread hole + translate([threadTubeOuterDiameter/2, baseWidth/2, 0]) + cylinder(r = threadDiameter/2, h = baseHeight); + + // clamp gap + translate([-clampDepth, (baseWidth-gapWidth)/2, 0]) + cube([clampDepth, gapWidth, clampHeight]); +} -- cgit v1.2.3