From c25fc9c6959790b2d089c5d8b9761c99ff99611b Mon Sep 17 00:00:00 2001 From: "Jan \"Yenya\" Kasprzak" Date: Mon, 23 Jan 2017 13:41:06 +0100 Subject: [PATCH] chair spring - first version --- chair-spring.scad | 53 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 chair-spring.scad diff --git a/chair-spring.scad b/chair-spring.scad new file mode 100644 index 0000000..e55e035 --- /dev/null +++ b/chair-spring.scad @@ -0,0 +1,53 @@ +infty = 100; +eps = 0.01; + +wall = 2; +spring_y = 24; +spring_x = 8; +spring_z = 8.5; + +spring_low = 1; // mm lower than spring_x + +clip_add_z = 5; +clip_w = 15; + +// bottom +translate([0, -spring_y/2, 0]) cube([wall, spring_y, spring_z]); + +// sides +for (i = [-1,1]) scale([1, i, 1]) + translate([0, spring_y/2 - wall, 0]) + cube([spring_x, wall, spring_z]); + +// clip +translate([0, -clip_w/2, 0]) cube([wall, clip_w, spring_z + clip_add_z]); + +spring_top_r = 12; +spring_y_off = spring_y/4 - 1.2; + +difference() { + union() { + // center beam + translate([spring_x - wall, -spring_y/2, 0]) + cube([wall, spring_y, spring_z]); + // round bottom of the spring + for (i = [-1,1]) + translate([spring_top_r+spring_x- wall- spring_low, + i*spring_y_off, 0]) + cylinder(r = spring_top_r, h = spring_z, + $fn = 128); + } + // top of the spring + translate([spring_x, -infty/2, -infty/2]) cube(infty); + + // sides + for (i = [-1, 1]) scale([1, i, 1]) + translate([-infty/2, spring_y/2, -infty/2]) cube(infty); + + // round top of the spring + for (i = [-1,1]) + translate([spring_top_r+spring_x- wall- spring_low, + i*spring_y_off, -eps]) + cylinder(r = spring_top_r - wall, h = spring_z + 2*eps, + $fn = 128); +} -- 2.43.0