diff --git a/paths.scad b/paths.scad index 49926dd0..3636783d 100644 --- a/paths.scad +++ b/paths.scad @@ -596,7 +596,7 @@ function resample_path(path, n, spacing, keep_corners, closed=true) = // maxerr = Maximum deviation from line connecting last kept point to a further point; points beyond this deviation are kept. // --- // closed = Set to true if path is closed. If false, endpoints are retained in the output. Default: false -// Example(2D,Med,VPD=34900,VPT=[5702,6507,0]): A map of California, originally a 262-point polygon (yellow, on left), reduced to 39 points (green, on right). +// Example(2D,Med,VPD=38000,VPT=[5600,6500,0]): A map of California, originally a 262-point polygon (yellow, on left), reduced to 39 points (green, on right). // calif = [ // [225,12681], [199,12544], [180,12490], [221,12435], [300,12342], [310,12315], [320,12263], [350,12154], // [374,11968], [350,11820], [328,11707], [291,11586], [259,11553], [275,11499], [304,11420], [312,11321], diff --git a/vnf.scad b/vnf.scad index 3dd26506..d56a4315 100644 --- a/vnf.scad +++ b/vnf.scad @@ -51,7 +51,12 @@ EMPTY_VNF = [[],[]]; // The standard empty VNF with no vertices or faces. // * "convex" — choose the locally convex division // * "concave" — choose the locally concave division // * "quad" — makes quadrilateral edges, which may not be coplanar, relying on OpensCAD to decide how to handle them. -// Degenerate faces are not included in the output, but if this results in unused vertices, those unused vertices do still appear in the output. +// Degenerate faces are not included in the output, but if this results in unused vertices, those unused vertices do still appear in the output. +// . +// The vertex list *must* be a rectangular array. If rows of points are generated based on a radius and one of +// special variables `$fs` or `$fa`, the number of points may not be constant from row to row, causing the +// array to be non-rectangular. Consider using `$fn` instead, or use {{vnf_tri_array()}} to create a VNF +// object from a non-rectangular array. // . // You can apply a texture to the vertex array VNF using the usual texture parameters. // See [Texturing](skin.scad#section-texturing) for more details on how textures work. @@ -343,7 +348,7 @@ function vnf_vertex_array( ) = assert(in_list(style,["default","alt","quincunx", "convex","concave", "min_edge","min_area","flip1","flip2","quad"])) assert(is_matrix(points[0], n=3),"\nPoint array has the wrong shape or points are not 3d.") - assert(is_consistent(points), "\nNon-rectangular or invalid point array.") + assert(is_consistent(points), "\nNon-rectangular or invalid point array (vnf_tri_array() may work).") assert(is_bool(triangulate)) is_def(texture) ? _textured_point_array(points=points, texture=texture, tex_reps=tex_reps, tex_size=tex_size,