Add error message with solution to skin

Maybe you're refactoring a bunch of nested arguments to skin and
forget the first argument is supposed to be a list and you wasted an
embarrassing amount of time figuring it out :) In this case, the error
message changes from

Profiles [0, 1, 2, 3, 4, 5, 6, 7, 8] are not a paths or have length less than 3.

to

The first argument to `skin` must be a list of paths
This commit is contained in:
Cory Cross
2025-08-11 08:22:58 -07:00
parent 0fdf90938e
commit c56a7dd884

View File

@@ -412,6 +412,8 @@ function skin(profiles, slices, refine=1, method="direct", sampling, caps, close
assert(in_list(atype, _ANCHOR_TYPES), "\nAnchor type must be \"hull\" or \"intersect\".")
assert(is_def(slices),"\nThe slices argument must be specified.")
assert(is_list(profiles) && len(profiles)>1, "\nMust provide at least two profiles.")
// If the user forgets the first element should be a list, the other messages aren't as precisely helpful
assert(is_list(profiles)&&is_list(profiles[0])&&is_list(profiles[0][0]), "\nThe first argument to `skin` must be a list of paths")
let(
profiles = [for(p=profiles) if (is_region(p) && len(p)==1) p[0] else p]
)