mirror of
https://github.com/revarbat/BOSL2.git
synced 2025-08-01 12:10:15 +02:00
Added generic_airplane(), show_transform_list()
This commit is contained in:
45
examples/spring_handle.scad
Normal file
45
examples/spring_handle.scad
Normal file
@@ -0,0 +1,45 @@
|
||||
include <BOSL2/std.scad>
|
||||
|
||||
$fn = 45;
|
||||
wire_d = 2;
|
||||
spring_l = 100;
|
||||
spring_d = 20;
|
||||
rod_d = 10;
|
||||
loops = 17;
|
||||
tight_loops=3;
|
||||
|
||||
tpart = tight_loops/loops;
|
||||
lpart = wire_d * tight_loops / 100;
|
||||
r_table = [
|
||||
[0.00, 0],
|
||||
[0+tpart, 0],
|
||||
[0.5, 1],
|
||||
[1-tpart, 0],
|
||||
[1.00, 0],
|
||||
];
|
||||
l_table = [
|
||||
[0.00, -0.50],
|
||||
[0+tpart, -0.5+lpart],
|
||||
[1-tpart, +0.5-lpart],
|
||||
[1.00, +0.50],
|
||||
];
|
||||
lsteps = 45;
|
||||
tsteps = loops * lsteps;
|
||||
path = [
|
||||
for (i = [0:1:tsteps])
|
||||
let(
|
||||
u = i / tsteps,
|
||||
a = u * 360 * loops,
|
||||
r = lookup(u, r_table) * spring_d/2 + wire_d/2 + rod_d/2,
|
||||
z = lookup(u, l_table) * spring_l,
|
||||
pt = [r*cos(a), r*sin(a), z]
|
||||
) pt
|
||||
];
|
||||
yrot(90) {
|
||||
color("lightblue")
|
||||
path_sweep(circle(d=wire_d), path);
|
||||
cylinder(d=rod_d, h=spring_l+10, center=true);
|
||||
}
|
||||
|
||||
|
||||
// vim: expandtab tabstop=4 shiftwidth=4 softtabstop=4 nowrap
|
Reference in New Issue
Block a user