mirror of
https://github.com/BelfrySCAD/BOSL2.git
synced 2025-12-09 15:29:09 +00:00
Merge pull request #1826 from adrianVmariano/master
path_sweep2d parameter correction
This commit is contained in:
commit
540e15c8db
2 changed files with 8 additions and 6 deletions
|
|
@ -1740,7 +1740,9 @@ function ring(n,ring_width,r,r1,r2,angle,d,d1,d2,cp,points,corner, width,thickne
|
||||||
// Computes a shape created by joining two circles with arcs. The arcs can join the circles to create a convex, egg shape
|
// Computes a shape created by joining two circles with arcs. The arcs can join the circles to create a convex, egg shape
|
||||||
// or they can join the circles to create a concave shape. The circles being joined are permitted to overlap each other.
|
// or they can join the circles to create a concave shape. The circles being joined are permitted to overlap each other.
|
||||||
// When called a function returns the path describing shape with its first point on the X+ axis. This module uses "hull" style anchoring.
|
// When called a function returns the path describing shape with its first point on the X+ axis. This module uses "hull" style anchoring.
|
||||||
// When the circles are different sizes, the circle on the left has radius `r1` and the right hand circle has radius `r2`.
|
// When the circles are different sizes, the circle on the left has radius `r1` and the right hand circle has radius `r2`, and both
|
||||||
|
// circles always have an exact point on the X axis.
|
||||||
|
// This construction can join arcs of widely varying radius, so it is better to use `$fa` and `$fs` instead of $fn to specify the number of arc segments.
|
||||||
// .
|
// .
|
||||||
// The joining arcs can be specified in four different ways. You can simply specify the radius of the arc using `blendR=` or `blendD=`.
|
// The joining arcs can be specified in four different ways. You can simply specify the radius of the arc using `blendR=` or `blendD=`.
|
||||||
// In this case a positive radius results in a convex shape and a negative radius results in a concave shape. A forbidden radius range exists
|
// In this case a positive radius results in a convex shape and a negative radius results in a concave shape. A forbidden radius range exists
|
||||||
|
|
@ -1862,7 +1864,7 @@ function ring(n,ring_width,r,r1,r2,angle,d,d1,d2,cp,points,corner, width,thickne
|
||||||
|
|
||||||
function glued_circles(r, spread, tangent, r1,r2,d,d1,d2, bulge, blendR,blendD, width, anchor=CENTER, spin=0) =
|
function glued_circles(r, spread, tangent, r1,r2,d,d1,d2, bulge, blendR,blendD, width, anchor=CENTER, spin=0) =
|
||||||
let(
|
let(
|
||||||
spread = is_undef(spread) ? echo("Setting default spread=10. This legacy default value is deprecated and will be removed.") 10
|
spread = is_undef(spread) ? echo("In glued_circles: setting spread=10. This legacy default value is deprecated and will be removed.") 10
|
||||||
: spread,
|
: spread,
|
||||||
r1 = get_radius(r=r,r1=r1,d=d,d1=d1),
|
r1 = get_radius(r=r,r1=r1,d=d,d1=d1),
|
||||||
r2 = get_radius(r=r,r2=r2,d=d,d2=d2),
|
r2 = get_radius(r=r,r2=r2,d=d,d2=d2),
|
||||||
|
|
@ -1872,7 +1874,7 @@ function glued_circles(r, spread, tangent, r1,r2,d,d1,d2, bulge, blendR,blendD,
|
||||||
assert(spread>abs(r1-r2), "Spread is too small: one circle is inside the other one")
|
assert(spread>abs(r1-r2), "Spread is too small: one circle is inside the other one")
|
||||||
let(
|
let(
|
||||||
tangent = num_defined([tangent,bulge,blendR,width])==0 ?
|
tangent = num_defined([tangent,bulge,blendR,width])==0 ?
|
||||||
echo("Setting default tangent=30. This legacy default value is deprecated and will be removed")
|
echo("In glued_circles: setting tangent=30. This legacy default value is deprecated and will be removed")
|
||||||
echo("Explicitly specify tangent= or instead use bulge=, width= or blendR=") 30 : tangent,
|
echo("Explicitly specify tangent= or instead use bulge=, width= or blendR=") 30 : tangent,
|
||||||
cp1 = [-spread/2,0],
|
cp1 = [-spread/2,0],
|
||||||
cp2 = [spread/2,0],
|
cp2 = [spread/2,0],
|
||||||
|
|
@ -1931,7 +1933,7 @@ function glued_circles(r, spread, tangent, r1,r2,d,d1,d2, bulge, blendR,blendD,
|
||||||
reorient(anchor,spin, two_d=true, path=path, extent=true, p=path);
|
reorient(anchor,spin, two_d=true, path=path, extent=true, p=path);
|
||||||
|
|
||||||
|
|
||||||
module glued_circles(r,spread=10, tangent, r1,r2,d,d1,d2, bulge, blendR,blendD, width, anchor=CENTER, spin=0)
|
module glued_circles(r,spread, tangent, r1,r2,d,d1,d2, bulge, blendR,blendD, width, anchor=CENTER, spin=0)
|
||||||
{
|
{
|
||||||
path = glued_circles(r=r, spread=spread, tangent=tangent, r1=r1, r2=r2, d=d, d1=d1, d2=d2,
|
path = glued_circles(r=r, spread=spread, tangent=tangent, r1=r1, r2=r2, d=d, d1=d1, d2=d2,
|
||||||
bulge=bulge, blendR=blendR, blendD=blendD,width=width);
|
bulge=bulge, blendR=blendR, blendD=blendD,width=width);
|
||||||
|
|
|
||||||
|
|
@ -2534,10 +2534,10 @@ function path_sweep2d(shape, path, closed=false, caps, quality=1, style="min_edg
|
||||||
reorient(anchor,spin,orient,vnf=vnf,p=vnf,extent=atype=="hull",cp=cp);
|
reorient(anchor,spin,orient,vnf=vnf,p=vnf,extent=atype=="hull",cp=cp);
|
||||||
|
|
||||||
|
|
||||||
module path_sweep2d(profile, path, closed=false, caps, quality=1, style="min_edge", convexity=10,
|
module path_sweep2d(shape, path, closed=false, caps, quality=1, style="min_edge", convexity=10,
|
||||||
anchor="origin", cp="centroid", spin=0, orient=UP, atype="hull")
|
anchor="origin", cp="centroid", spin=0, orient=UP, atype="hull")
|
||||||
{
|
{
|
||||||
vnf = path_sweep2d(profile, path, closed, caps, quality, style);
|
vnf = path_sweep2d(shape, path, closed, caps, quality, style);
|
||||||
vnf_polyhedron(vnf,convexity=convexity,anchor=anchor, spin=spin, orient=orient, atype=atype, cp=cp)
|
vnf_polyhedron(vnf,convexity=convexity,anchor=anchor, spin=spin, orient=orient, atype=atype, cp=cp)
|
||||||
children();
|
children();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue