diff --git a/readme.md b/readme.md index c2205c6..53fa5cd 100644 --- a/readme.md +++ b/readme.md @@ -6098,6 +6098,7 @@ Global constants, functions and modules. This file is used directly or indirectl | ```ellipse(xr, yr)``` | Draw an ellipse | | ```extrude_if(h, center = true)``` | Extrudes 2D object to 3D when ```h``` is nonzero, otherwise leaves it 2D | | ```hflip(flip=true)``` | Invert children by doing a 180° flip around the Y axis | +| ```render_if(render = true, convexity = 2)``` | Renders an object if ```render``` is true, otherwise leaves it unrendered | | ```right_triangle(width, height, h, center = true)``` | A right angled triangle with the 90° corner at the origin. 3D when ```h``` is nonzero, otherwise 2D | | ```semi_circle(r, d = undef)``` | A semi circle in the positive Y domain | | ```translate_z(z)``` | Shortcut for Z only translations | diff --git a/utils/core/global.scad b/utils/core/global.scad index c67cbff..79f5283 100644 --- a/utils/core/global.scad +++ b/utils/core/global.scad @@ -52,6 +52,13 @@ function slice(list, start = 0, end = undef) = let( //! Slice a list or string w ) is_string(list) ? slice_str(list, start, end) : [for(i = [start : 1 : end - 1]) list[i]]; +module render_if(render = true, convexity = 2) //! Renders an object if ```render``` is true, otherwise leaves it unrendered + if (render) + render(convexity = convexity) + children(); + else + children(); + module extrude_if(h, center = true) //! Extrudes 2D object to 3D when ```h``` is nonzero, otherwise leaves it 2D if(h) linear_extrude(h, center = center, convexity = 2) // 3D