Add windshields to side table.
This commit is contained in:
parent
02bd00d051
commit
2918b52e24
125
side_table.scad
125
side_table.scad
|
@ -24,9 +24,15 @@
|
||||||
* - A rasp
|
* - A rasp
|
||||||
* - A file (optional)
|
* - A file (optional)
|
||||||
* - Sandpaper
|
* - Sandpaper
|
||||||
|
*
|
||||||
|
* For the windshields:
|
||||||
|
* - Another kind of lath
|
||||||
|
* - Magnets from cigarette paper packaging or bolts
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/* clang-format off */
|
||||||
include<vendor/roundedcube.scad>;
|
include<vendor/roundedcube.scad>;
|
||||||
|
/* clang-format on */
|
||||||
|
|
||||||
$fs = 0.1;
|
$fs = 0.1;
|
||||||
|
|
||||||
|
@ -41,7 +47,7 @@ leg_width = 4.0; /* x */
|
||||||
leg_depth = 4.0; /* y */
|
leg_depth = 4.0; /* y */
|
||||||
leg_height = table_height - tabletop_height; /* z */
|
leg_height = table_height - tabletop_height; /* z */
|
||||||
|
|
||||||
module basic_side_table()
|
module side_table()
|
||||||
{
|
{
|
||||||
echo("Leg height", leg_height);
|
echo("Leg height", leg_height);
|
||||||
|
|
||||||
|
@ -108,4 +114,119 @@ module basic_side_table()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
basic_side_table();
|
module windbreaks()
|
||||||
|
{
|
||||||
|
thickness = 1; /* x */
|
||||||
|
height = 4; /* z */
|
||||||
|
gap = 4; /* z */
|
||||||
|
margin = leg_width / 4; /* Between edge of tabletop and windbreaks. */
|
||||||
|
|
||||||
|
module magnets(length, h = 0.12, d = 0.5)
|
||||||
|
{
|
||||||
|
middle = thickness / 2;
|
||||||
|
for (y = [thickness * 2, length / 2, length - (thickness * 2)])
|
||||||
|
translate([middle, y, 0])
|
||||||
|
{
|
||||||
|
cylinder(h = h, d = d);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module windbreak(length)
|
||||||
|
{
|
||||||
|
difference()
|
||||||
|
{
|
||||||
|
color("SandyBrown")
|
||||||
|
{
|
||||||
|
cube([thickness, length, height]);
|
||||||
|
}
|
||||||
|
magnets(length = length);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module triangle(points, height)
|
||||||
|
{
|
||||||
|
linear_extrude(height)
|
||||||
|
{
|
||||||
|
polygon(points);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module side()
|
||||||
|
{
|
||||||
|
translate([0, 0, 0])
|
||||||
|
{
|
||||||
|
length = table_depth - (margin * 2);
|
||||||
|
|
||||||
|
difference()
|
||||||
|
{
|
||||||
|
windbreak(length);
|
||||||
|
translate([0, length - thickness, 0])
|
||||||
|
{
|
||||||
|
triangle(points = [[thickness, 0], [0, thickness],
|
||||||
|
[thickness, thickness]],
|
||||||
|
height = 4);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module top()
|
||||||
|
{
|
||||||
|
translate([margin, table_depth - thickness - margin, 0])
|
||||||
|
{
|
||||||
|
length = table_width - (margin * 2);
|
||||||
|
|
||||||
|
rotate([0, 0, -90])
|
||||||
|
{
|
||||||
|
color("Tan")
|
||||||
|
{
|
||||||
|
difference()
|
||||||
|
{
|
||||||
|
windbreak(length);
|
||||||
|
triangle(points =
|
||||||
|
[
|
||||||
|
[0, 0], [thickness, thickness],
|
||||||
|
[thickness, 0]
|
||||||
|
],
|
||||||
|
height = 4);
|
||||||
|
translate([0, length - thickness, 0])
|
||||||
|
{
|
||||||
|
triangle(points = [[thickness, 0], [0, thickness],
|
||||||
|
[thickness, thickness]],
|
||||||
|
height = 4);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
translate([0, margin, table_height + gap])
|
||||||
|
{
|
||||||
|
translate([0, 0, gap == 0 ? 0 : height / 2])
|
||||||
|
{
|
||||||
|
top();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Left */
|
||||||
|
translate([margin, 0, 0])
|
||||||
|
{
|
||||||
|
side();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Right */
|
||||||
|
translate([table_width - margin, 0, 0])
|
||||||
|
{
|
||||||
|
mirror([1, 0, 0])
|
||||||
|
{
|
||||||
|
side();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
side_table();
|
||||||
|
render()
|
||||||
|
{
|
||||||
|
windbreaks();
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user