mirror of
https://github.com/BelfrySCAD/BOSL2.git
synced 2024-12-29 16:29:40 +00:00
misc bugfixes
This commit is contained in:
parent
bb77faa0c9
commit
33484f2c4b
4 changed files with 12 additions and 10 deletions
14
beziers.scad
14
beziers.scad
|
@ -977,15 +977,12 @@ module trace_bezier(bez, width=1, N=3) {
|
||||||
stroke(bezier_path(bez, N=N), width=width, color="cyan");
|
stroke(bezier_path(bez, N=N), width=width, color="cyan");
|
||||||
color("green")
|
color("green")
|
||||||
if (N!=3)
|
if (N!=3)
|
||||||
stroke(path3d(path), width=size);
|
stroke(path3d(path), width=width);
|
||||||
else
|
else
|
||||||
for(i=[1:3:len(bez)]) stroke(select(bez,max(0,i-2), min(len(bez)-1,i)), width=width);
|
for(i=[1:3:len(bez)]) stroke(select(bez,max(0,i-2), min(len(bez)-1,i)), width=width);
|
||||||
twodim = len(bez[0])==2;
|
twodim = len(bez[0])==2;
|
||||||
move_copies(bez)
|
color("red") move_copies(bez)
|
||||||
if ($idx % N ==0)
|
if ($idx % N !=0)
|
||||||
color("blue") if (twodim) circle(d=width*2.5); else sphere(d=width*2.5);
|
|
||||||
else
|
|
||||||
color("red")
|
|
||||||
if (twodim){
|
if (twodim){
|
||||||
rect([width/2, width*3],center=true);
|
rect([width/2, width*3],center=true);
|
||||||
rect([width*3, width/2],center=true);
|
rect([width*3, width/2],center=true);
|
||||||
|
@ -994,6 +991,11 @@ module trace_bezier(bez, width=1, N=3) {
|
||||||
xcyl(d=width/2, h=width*3);
|
xcyl(d=width/2, h=width*3);
|
||||||
ycyl(d=width/2, h=width*3);
|
ycyl(d=width/2, h=width*3);
|
||||||
}
|
}
|
||||||
|
color("blue") move_copies(bez)
|
||||||
|
if ($idx % N ==0)
|
||||||
|
if (twodim) circle(d=width*2.25); else sphere(d=width*2.25);
|
||||||
|
if (twodim) color("red") move_copies(bez)
|
||||||
|
if ($idx % N !=0) circle(d=width/2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -211,7 +211,7 @@ function path_length_fractions(path, closed=false) =
|
||||||
/// // isects == [[[-33.3333, 0], 0, 0.666667, 4, 0.333333], [[33.3333, 0], 1, 0.333333, 3, 0.666667]]
|
/// // isects == [[[-33.3333, 0], 0, 0.666667, 4, 0.333333], [[33.3333, 0], 1, 0.333333, 3, 0.666667]]
|
||||||
/// stroke(path, closed=true, width=1);
|
/// stroke(path, closed=true, width=1);
|
||||||
/// for (isect=isects) translate(isect[0]) color("blue") sphere(d=10);
|
/// for (isect=isects) translate(isect[0]) color("blue") sphere(d=10);
|
||||||
function _path_self_intersections5(path, closed=true, eps=EPSILON) =
|
function _path_self_intersections(path, closed=true, eps=EPSILON) =
|
||||||
let(
|
let(
|
||||||
path = closed ? close_path(path,eps=eps) : path,
|
path = closed ? close_path(path,eps=eps) : path,
|
||||||
plen = len(path)
|
plen = len(path)
|
||||||
|
|
|
@ -265,7 +265,7 @@ function split_path_at_region_crossings(path, region, closed=true, eps=EPSILON)
|
||||||
// components intersect each other.
|
// components intersect each other.
|
||||||
// Example(2D,NoAxes):
|
// Example(2D,NoAxes):
|
||||||
// R = [for(i=[1:7]) square(i,center=true)];
|
// R = [for(i=[1:7]) square(i,center=true)];
|
||||||
// region_list = split_nested_region(R);
|
// region_list = region_parts(R);
|
||||||
// rainbow(region_list) region($item);
|
// rainbow(region_list) region($item);
|
||||||
// Example(2D,NoAxes):
|
// Example(2D,NoAxes):
|
||||||
// R = [back(7,square(3,center=true)),
|
// R = [back(7,square(3,center=true)),
|
||||||
|
@ -273,7 +273,7 @@ function split_path_at_region_crossings(path, region, closed=true, eps=EPSILON)
|
||||||
// left(5,square(8,center=true)),
|
// left(5,square(8,center=true)),
|
||||||
// for(i=[4:2:8])
|
// for(i=[4:2:8])
|
||||||
// right(5,square(i,center=true))];
|
// right(5,square(i,center=true))];
|
||||||
// region_list = split_nested_region(R);
|
// region_list = region_parts(R);
|
||||||
// rainbow(region_list) region($item);
|
// rainbow(region_list) region($item);
|
||||||
function region_parts(region) =
|
function region_parts(region) =
|
||||||
let(
|
let(
|
||||||
|
|
|
@ -1105,7 +1105,7 @@ function sweep(shape, transforms, closed=false, caps, style="min_edge") =
|
||||||
assert(capsOK, "caps must be boolean or a list of two booleans")
|
assert(capsOK, "caps must be boolean or a list of two booleans")
|
||||||
assert(!closed || !caps, "Cannot make closed shape with caps")
|
assert(!closed || !caps, "Cannot make closed shape with caps")
|
||||||
is_region(shape)? let(
|
is_region(shape)? let(
|
||||||
regions = split_nested_region(shape),
|
regions = region_parts(shape),
|
||||||
rtrans = reverse(transforms),
|
rtrans = reverse(transforms),
|
||||||
vnfs = [
|
vnfs = [
|
||||||
for (rgn=regions) each [
|
for (rgn=regions) each [
|
||||||
|
|
Loading…
Reference in a new issue