Merge pull request #1849 from adrianVmariano/master

bug fix for path_sweep module
This commit is contained in:
adrianVmariano 2025-11-30 18:02:43 -05:00 committed by GitHub
commit 9346c4aae6
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 7 additions and 3 deletions

View file

@ -4522,9 +4522,10 @@ function _get_obj_type(ind,geom,anchor,prof,edge_r,edge_joint,edge_k) =
/// shift = given shift parameter
function _check_join_shift(ind,type,shift,flip) =
type=="sphere" ? assert(shift==0, str("Cannot give a (nonzero) shift",ind," for joining to a spherical object")) [0,0,0]
: type=="cyl" ? assert(is_finite(shift), str("Value shift",ind," for cylinder object must be a scalar")) shift*RIGHT
: is_list(type) ? assert(is_finite(shift), str("Value shift",ind," for an edge must be a scalar")) shift*RIGHT
type=="sphere" ? assert(shift==0 || shift==[0,0], str("Cannot give a (nonzero) shift",ind," for joining to a spherical object")) [0,0,0]
: let(fixshift=function(s) is_vector(s,2) && s[0]==0 ? s[1] : s)
type=="cyl" ? assert(is_finite(fixshift(shift)), str("Value shift",ind," for cylinder object must be a scalar or vector of the form [0,s]")) fixshift(shift)*RIGHT
: is_list(type) ? assert(is_finite(fixshift(shift)), str("Value shift",ind," for an edge must be a scalar or vector of the form [0,s]")) fixshift(shift)*RIGHT
: /*type==plane*/ assert(is_finite(shift) || is_vector(shift,2), str("Value for shift",ind," for planar face of object must be a scalar or 2-vector"))
is_list(shift)? flip ? [shift.y,-shift.x]: shift
: flip ? [0,-shift] : [shift,0];

View file

@ -2221,6 +2221,9 @@ module path_sweep(shape, path, method="incremental", normal, closed, twist=0, tw
{
dummy = assert(is_region(shape) || is_path(shape,2), "\nshape must be a 2D path or region.")
assert(in_list(atype, _ANCHOR_TYPES), "\nAnchor type must be \"hull\" or \"intersect\".");
caps = !closed ? caps
: assert(is_undef(caps) || caps==false || caps==[false,false], "Cannot specify caps when closed=true")
false;
trans_scale = path_sweep(shape, path, method, normal, closed, twist, twist_by_length, scale, scale_by_length,
symmetry, last_normal, tangent, uniform, relaxed, caps, style, transforms=true,_return_scales=true);
transforms = trans_scale[0];