mirror of
https://github.com/JustinSDK/dotSCAD.git
synced 2025-08-24 23:25:51 +02:00
add lemniscate_2circles
This commit is contained in:
50
src/lemniscate_2circles.scad
Normal file
50
src/lemniscate_2circles.scad
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
use <__comm__/__frags.scad>;
|
||||||
|
use <path_extrude.scad>;
|
||||||
|
use <shape_circle.scad>;
|
||||||
|
|
||||||
|
function lemniscate_2circles(radius, c = 1) =
|
||||||
|
let(
|
||||||
|
fn = __frags(radius),
|
||||||
|
t_step = 180 / fn,
|
||||||
|
circle_path = shape_circle(radius = radius)
|
||||||
|
)
|
||||||
|
concat(
|
||||||
|
[
|
||||||
|
for(t = [0:fn - 1])
|
||||||
|
[circle_path[t][0] - radius, circle_path[t][1], cos(t * t_step) * c]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
for(t = [0:fn - 1])
|
||||||
|
[-circle_path[t][0] + radius, circle_path[t][1], -cos(t * t_step) * c]
|
||||||
|
]
|
||||||
|
);
|
||||||
|
|
||||||
|
/*
|
||||||
|
use <path_extrude.scad>;
|
||||||
|
use <lemniscate_2circles.scad>;
|
||||||
|
|
||||||
|
shape_pts = [
|
||||||
|
[3, -1.5],
|
||||||
|
[3, 1.5],
|
||||||
|
[2, 1.5],
|
||||||
|
[2, 0.5],
|
||||||
|
[-2, 0.5],
|
||||||
|
[-2, 1.5],
|
||||||
|
[-3, 1.5],
|
||||||
|
[-3, -1.5],
|
||||||
|
[-2, -1.5],
|
||||||
|
[-2, -0.5],
|
||||||
|
[2, -0.5],
|
||||||
|
[2, -1.5]
|
||||||
|
];
|
||||||
|
|
||||||
|
$fn = 48;
|
||||||
|
|
||||||
|
path = lemniscate_2circles(10, 2);
|
||||||
|
|
||||||
|
path_extrude(
|
||||||
|
shape_pts,
|
||||||
|
concat(path, [path[0]]),
|
||||||
|
method = "EULER_ANGLE"
|
||||||
|
);
|
||||||
|
*/
|
Reference in New Issue
Block a user