Merge pull request #1104 from revarbat/revarbat_dev

This commit is contained in:
Revar Desmera 2023-03-28 22:56:21 -07:00 committed by GitHub
commit 912d822075
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 37 additions and 128 deletions

View file

@ -466,10 +466,8 @@ _ANCHOR_TYPES = ["intersect","hull"];
// Synopsis: Attaches children to a parent object at an anchor point.
// Topics: Attachments
// See Also: attachable(), attach(), orient()
//
// Usage:
// PARENT() position(from) CHILDREN;
//
// Description:
// Attaches children to a parent object at an anchor point. For a step-by-step explanation
// of attachments, see the [[Attachments Tutorial|Tutorial-Attachments]].
@ -504,7 +502,6 @@ module position(from)
// Synopsis: Orients children's tops in the directon of the specified anchor.
// Topics: Attachments
// See Also: attachable(), attach(), orient()
// Usage:
// PARENT() orient(anchor, [spin]) CHILDREN;
// Description:
@ -558,7 +555,6 @@ module orient(anchor, spin) {
// Synopsis: Attaches children to a parent object at an anchor point and orientation.
// Topics: Attachments
// See Also: attachable(), position(), face_profile(), edge_profile(), corner_profile()
//
// Usage:
// PARENT() attach(from, [overlap=], [norot=]) CHILDREN;
// PARENT() attach(from, to, [overlap=], [norot=]) CHILDREN;
@ -615,7 +611,6 @@ module attach(from, to, overlap, norot=false)
// Synopsis: Assigns a tag to an object
// Topics: Attachments
// See Also: force_tag(), recolor(), hide(), show_only(), diff(), intersect()
//
// Usage:
// PARENT() tag(tag) CHILDREN;
// Description:
@ -654,7 +649,6 @@ module tag(tag)
// Assigns a tag to a non-attachable object.
// Topics: Attachments
// See Also: tag(), recolor(), hide(), show_only(), diff(), intersect()
//
// Usage:
// PARENT() force_tag([tag]) CHILDREN;
// Description:
@ -718,7 +712,6 @@ module force_tag(tag)
// Synopsis: Sets a default tag for all children.
// Topics: Attachments
// See Also: force_tag(), recolor(), hide(), show_only(), diff(), intersect()
//
// Usage:
// PARENT() default_tag(tag) CHILDREN;
// Description:
@ -803,7 +796,6 @@ module tag_scope(scope){
// Synopsis: Performs a differencing operation using tags rather than hierarchy to control what happens.
// Topics: Attachments
// See Also: tag(), force_tag(), recolor(), show_only(), hide(), tag_diff(), intersect(), tag_intersect()
//
// Usage:
// diff([remove], [keep]) PARENT() CHILDREN;
// Description:
@ -993,7 +985,6 @@ module diff(remove="remove", keep="keep")
// Synopsis: Performs a {{diff()}} and then sets a tag on the result.
// Topics: Attachments
// See Also: tag(), force_tag(), recolor(), show_only(), hide(), diff(), intersect(), tag_intersect()
//
// Usage:
// tag_diff(tag, [remove], [keep]) PARENT() CHILDREN;
// Description:
@ -1065,7 +1056,6 @@ module tag_diff(tag,remove="remove", keep="keep")
// Synopsis: Perform an intersection operation on children using tags rather than hierarchy to control what happens.
// Topics: Attachments
// See Also: tag(), force_tag(), recolor(), show_only(), hide(), diff(), tag_diff(), tag_intersect()
//
// Usage:
// intersect([intersect], [keep]) PARENT() CHILDREN;
// Description:
@ -1136,7 +1126,6 @@ module intersect(intersect="intersect",keep="keep")
// Synopsis: Performs an {{intersect()}} and then tags the result.
// Topics: Attachments
// See Also: tag(), force_tag(), recolor(), show_only(), hide(), diff(), tag_diff(), intersect()
//
// Usage:
// tag_intersect(tag, [intersect], [keep]) PARENT() CHILDREN;
// Description:
@ -1193,7 +1182,6 @@ module tag_intersect(tag,intersect="intersect",keep="keep")
// Synopsis: Performs a hull operation on the children using tags to determine what happens.
// Topics: Attachments
// See Also: tag(), recolor(), show_only(), hide(), diff(), intersect()
//
// Usage:
// conv_hull([keep]) CHILDREN;
// Description:
@ -1231,7 +1219,6 @@ module conv_hull(keep="keep")
// Synopsis: Performs a {{conv_hull()}} and then sets a tag on the result.
// Topics: Attachments
// See Also: tag(), recolor(), show_only(), hide(), diff(), intersect()
//
// Usage:
// tag_conv_hull(tag, [keep]) CHILDREN;
// Description:
@ -1283,7 +1270,6 @@ module tag_conv_hull(tag,keep="keep")
// Synopsis: Hides attachable children with the given tags.
// Topics: Attachments
// See Also: tag(), recolor(), show_only(), show_all(), show_int(), diff(), intersect()
//
// Usage:
// hide(tags) CHILDREN;
// Description:
@ -1319,7 +1305,6 @@ module hide(tags)
// Synopsis: Show only the children with the listed tags.
// See Also: tag(), recolor(), show_all(), show_int(), diff(), intersect()
// Topics: Attachments
//
// Usage:
// show_only(tags) CHILDREN;
// Description:
@ -1347,7 +1332,6 @@ module show_only(tags)
// Synopsis: Shows all children and clears tags.
// See Also: tag(), recolor(), show_only(), show_int(), diff(), intersect()
// Topics: Attachments
//
// Usage;
// show_all() CHILDREN;
// Description:
@ -1369,7 +1353,6 @@ module show_all()
// Synopsis: Shows children with the listed tags which were already shown in the parent context.
// See Also: tag(), recolor(), show_only(), show_all(), show_int(), diff(), intersect()
// Topics: Attachments
//
// Usage:
// show_int(tags) CHILDREN;
// Description:
@ -1395,8 +1378,7 @@ module show_int(tags)
// Module: face_mask()
// Synopsis: Ataches a 3d mask shape to the given faces of the parent.
// Topics: Attachments, Masking
// See Also: attachable(), position(), edge_mask(), corner_mask(), face_profile(), edge_profile(), corner_profile()
//
// See Also: attachable(), position(), attach(), edge_mask(), corner_mask(), face_profile(), edge_profile(), corner_profile()
// Usage:
// PARENT() face_mask(faces) CHILDREN;
// Description:
@ -1412,7 +1394,6 @@ module show_int(tags)
// Tags the children with "remove" (and hence sets `$tag`) if no tag is already set.
// `$idx` is set to the index number of each face in the list of faces given.
// `$attach_anchor` is set for each face given, to the `[ANCHOR, POSITION, ORIENT, SPIN]` information for that anchor.
// See Also: attachable(), position(), attach(), face_profile(), edge_profile(), corner_mask(), edge_mask()
// Example:
// diff()
// cylinder(r=30, h=60)
@ -1441,7 +1422,6 @@ module face_mask(faces=[LEFT,RIGHT,FRONT,BACK,BOT,TOP]) {
// Synopsis: Attaches a 3D mask shape to the given edges of the parent.
// Topics: Attachments, Masking
// See Also: attachable(), position(), attach(), face_mask(), corner_mask(), face_profile(), edge_profile(), corner_profile()
//
// Usage:
// PARENT() edge_mask([edges], [except]) CHILDREN;
// Description:
@ -1506,7 +1486,6 @@ module edge_mask(edges=EDGES_ALL, except=[]) {
// Synopsis: Attaches a 3d mask shape to the given corners of the parent.
// Topics: Attachments, Masking
// See Also: attachable(), position(), attach(), face_mask(), edge_mask(), face_profile(), edge_profile(), corner_profile()
//
// Usage:
// PARENT() corner_mask([corners], [except]) CHILDREN;
// Description:
@ -1557,7 +1536,6 @@ module corner_mask(corners=CORNERS_ALL, except=[]) {
// Synopsis: Extrudes a 2D edge profile into a mask for all edges and corners of the given faces on the parent.
// Topics: Attachments, Masking
// See Also: attachable(), position(), attach(), edge_profile(), corner_profile(), face_mask(), edge_mask(), corner_mask()
//
// Usage:
// PARENT() face_profile(faces, r|d=, [convexity=]) CHILDREN;
// Description:
@ -1596,7 +1574,6 @@ module face_profile(faces=[], r, d, convexity=10) {
// Synopsis: Extrudes a 2d edge profile into a mask on the given edges of the parent.
// Topics: Attachments, Masking
// See Also: attachable(), position(), attach(), face_profile(), corner_profile(), edge_mask(), face_mask(), corner_mask()
//
// Usage:
// PARENT() edge_profile([edges], [except], [convexity]) CHILDREN;
// Description:
@ -1660,7 +1637,6 @@ module edge_profile(edges=EDGES_ALL, except=[], convexity=10) {
// Synopsis: Rotationally extrudes a 2d edge profile into corner mask on the given corners of the parent.
// Topics: Attachments, Masking
// See Also: attachable(), position(), attach(), face_profile(), edge_profile(), corner_mask(), face_mask(), edge_mask()
//
// Usage:
// PARENT() corner_profile([corners], [except], [r=|d=], [convexity=]) CHILDREN;
// Description:
@ -1735,7 +1711,6 @@ module corner_profile(corners=CORNERS_ALL, except=[], r, d, convexity=10) {
// Synopsis: Manages the anchoring, spin, orientation, and attachments for an object.
// Topics: Attachments
// See Also: reorient()
//
// Usage: Square/Trapezoid Geometry
// attachable(anchor, spin, two_d=true, size=, [size2=], [shift=], [override=], ...) {OBJECT; children();}
// Usage: Circle/Oval Geometry
@ -2045,7 +2020,6 @@ module attachable(
// Synopsis: Calculates the transformation matrix needed to reorient an object.
// Topics: Attachments
// See Also: reorient(), attachable()
//
// Usage: Square/Trapezoid Geometry
// mat = reorient(anchor, spin, [orient], two_d=true, size=, [size2=], [shift=], ...);
// pts = reorient(anchor, spin, [orient], two_d=true, size=, [size2=], [shift=], p=, ...);
@ -2170,7 +2144,6 @@ function reorient(
// Synopsis: Creates an anchro data structure.
// Topics: Attachments
// See Also: reorient(), attachable()
//
// Usage:
// a = named_anchor(name, pos, [orient], [spin]);
// Description:
@ -2188,7 +2161,6 @@ function named_anchor(name, pos, orient=UP, spin=0) = [name, pos, orient, spin];
// Synopsis: Returns the internal geometry description of an attachable object.
// Topics: Attachments
// See Also: reorient(), attachable()
//
// Usage: Null/Point Geometry
// geom = attach_geom(...);
// Usage: Square/Trapezoid Geometry
@ -2418,11 +2390,10 @@ function attach_geom(
/// Internal Function: _attach_geom_2d()
/// Topics: Attachments
/// See Also: reorient(), attachable()
//
// Usage:
// bool = _attach_geom_2d(geom);
// Description:
// Returns true if the given attachment geometry description is for a 2D shape.
/// Usage:
/// bool = _attach_geom_2d(geom);
/// Description:
/// Returns true if the given attachment geometry description is for a 2D shape.
function _attach_geom_2d(geom) =
let( type = geom[0] )
type == "trapezoid" || type == "ellipse" ||
@ -2430,12 +2401,12 @@ function _attach_geom_2d(geom) =
/// Internal Function: _attach_geom_size()
// Usage:
// bounds = _attach_geom_size(geom);
/// Usage:
/// bounds = _attach_geom_size(geom);
/// Topics: Attachments
/// See Also: reorient(), attachable()
// Description:
// Returns the `[X,Y,Z]` bounding size for the given attachment geometry description.
/// Description:
/// Returns the `[X,Y,Z]` bounding size for the given attachment geometry description.
function _attach_geom_size(geom) =
let( type = geom[0] )
type == "point"? [0,0,0] :
@ -2495,21 +2466,21 @@ function _attach_geom_size(geom) =
/// Internal Function: _attach_transform()
// Usage: To Get a Transformation Matrix
// mat = _attach_transform(anchor, spin, orient, geom);
// Usage: To Transform Points, Paths, Patches, or VNFs
// new_p = _attach_transform(anchor, spin, orient, geom, p);
/// Usage: To Get a Transformation Matrix
/// mat = _attach_transform(anchor, spin, orient, geom);
/// Usage: To Transform Points, Paths, Patches, or VNFs
/// new_p = _attach_transform(anchor, spin, orient, geom, p);
/// Topics: Attachments
/// See Also: reorient(), attachable()
// Description:
// Returns the affine3d transformation matrix needed to `anchor`, `spin`, and `orient`
// the given geometry `geom` shape into position.
// Arguments:
// anchor = Anchor point to translate to the origin `[0,0,0]`. See [anchor](attachments.scad#subsection-anchor). Default: `CENTER`
// spin = Rotate this many degrees around the Z axis after anchor. See [spin](attachments.scad#subsection-spin). Default: `0`
// orient = Vector to rotate top towards, after spin. See [orient](attachments.scad#subsection-orient). Default: `UP`
// geom = The geometry description of the shape.
// p = If given as a VNF, path, or point, applies the affine3d transformation matrix to it and returns the result.
/// Description:
/// Returns the affine3d transformation matrix needed to `anchor`, `spin`, and `orient`
/// the given geometry `geom` shape into position.
/// Arguments:
/// anchor = Anchor point to translate to the origin `[0,0,0]`. See [anchor](attachments.scad#subsection-anchor). Default: `CENTER`
/// spin = Rotate this many degrees around the Z axis after anchor. See [spin](attachments.scad#subsection-spin). Default: `0`
/// orient = Vector to rotate top towards, after spin. See [orient](attachments.scad#subsection-orient). Default: `UP`
/// geom = The geometry description of the shape.
/// p = If given as a VNF, path, or point, applies the affine3d transformation matrix to it and returns the result.
function _attach_transform(anchor, spin, orient, geom, p) =
assert(is_undef(anchor) || is_vector(anchor) || is_string(anchor), str("Got: ",anchor))
assert(is_undef(spin) || is_vector(spin,3) || is_num(spin), str("Got: ",spin))
@ -2616,18 +2587,18 @@ function _force_anchor_2d(anchor) =
/// Internal Function: _find_anchor()
// Usage:
// anchorinfo = _find_anchor(anchor, geom);
/// Usage:
/// anchorinfo = _find_anchor(anchor, geom);
/// Topics: Attachments
/// See Also: reorient(), attachable()
// Description:
// Calculates the anchor data for the given `anchor` vector or name, in the given attachment
// geometry. Returns `[ANCHOR, POS, VEC, ANG]` where `ANCHOR` is the requested anchorname
// or vector, `POS` is the anchor position, `VEC` is the direction vector of the anchor, and
// `ANG` is the angle to align with around the rotation axis of th anchor direction vector.
// Arguments:
// anchor = Vector or named anchor string.
// geom = The geometry description of the shape.
/// Description:
/// Calculates the anchor data for the given `anchor` vector or name, in the given attachment
/// geometry. Returns `[ANCHOR, POS, VEC, ANG]` where `ANCHOR` is the requested anchorname
/// or vector, `POS` is the anchor position, `VEC` is the direction vector of the anchor, and
/// `ANG` is the angle to align with around the rotation axis of th anchor direction vector.
/// Arguments:
/// anchor = Vector or named anchor string.
/// geom = The geometry description of the shape.
function _find_anchor(anchor, geom) =
is_string(anchor)? (
anchor=="origin"? [anchor, CENTER, UP, 0]
@ -2883,12 +2854,12 @@ function _find_anchor(anchor, geom) =
/// Internal Function: _is_shown()
// Usage:
// bool = _is_shown();
/// Usage:
/// bool = _is_shown();
/// Topics: Attachments
/// See Also: reorient(), attachable()
// Description:
// Returns true if objects should currently be shown based on the tag settings.
/// Description:
/// Returns true if objects should currently be shown based on the tag settings.
function _is_shown() =
assert(is_list($tags_shown) || $tags_shown=="ALL")
assert(is_list($tags_hidden))
@ -2932,7 +2903,6 @@ function _standard_anchors(two_d=false) = [
// Synopsis: Shows anchors for the parent object.
// Topics: Attachments
// See Also: expose_anchors(), anchor_arrow(), anchor_arrow2d(), frame_ref()
//
// Usage:
// PARENT() show_anchors([s], [std=], [custom=]);
// Description:
@ -2996,7 +2966,6 @@ module show_anchors(s=10, std=true, custom=true) {
// Synopsis: Shows a 3d anchor orientation arrow.
// Topics: Attachments
// See Also: anchor_arrow2d(), show_anchors(), expose_anchors(), frame_ref()
//
// Usage:
// anchor_arrow([s], [color], [flag], [anchor=], [orient=], [spin=]) [ATTACHMENTS];
// Description:
@ -3035,7 +3004,6 @@ module anchor_arrow(s=10, color=[0.333,0.333,1], flag=true, $tag="anchor-arrow",
// Synopsis: Shows a 2d anchor orientation arrow.
// Topics: Attachments
// See Also: anchor_arrow(), show_anchors(), expose_anchors(), frame_ref()
//
// Usage:
// anchor_arrow2d([s], [color], [flag]);
// Description:

View file

@ -19,7 +19,6 @@ use <builtins.scad>
// Synopsis: Sets the color for attachable children and all their descendants.
// Topics: Attachments
// See Also: color_this(), hsl(), hsv()
//
// Usage:
// recolor([c]) CHILDREN;
// Description:
@ -48,7 +47,6 @@ module recolor(c="default")
// Synopsis: Sets the color for children at the current level only.
// Topics: Attachments
// See Also: recolor(), hsl(), hsv()
//
// Usage:
// color_this([c]) CHILDREN;
// Description:
@ -79,7 +77,6 @@ module color_this(c="default")
// Synopsis: Iterates through a list, displaying children in different colors.
// Topics: List Handling
// See Also: hsl(), hsv()
//
// Usage:
// rainbow(list,[stride],[maxhues],[shuffle],[seed]) CHILDREN;
// Description:
@ -121,7 +118,6 @@ module rainbow(list, stride=1, maxhues, shuffle=false, seed)
// Function&Module: hsl()
// Synopsis: Sets the color of children to a specified hue, saturation, lightness and optional alpha channel value.
// See Also: hsv(), recolor(), color_this()
//
// Usage:
// hsl(h,[s],[l],[a]) CHILDREN;
// rgb = hsl(h,[s],[l],[a]);
@ -159,7 +155,6 @@ module hsl(h,s=1,l=0.5,a=1)
// Function&Module: hsv()
// Synopsis: Sets the color of children to a hue, saturation, value and optional alpha channel value.
// See Also: hsl(), recolor(), color_this()
//
// Usage:
// hsv(h,[s],[v],[a]) CHILDREN;
// rgb = hsv(h,[s],[v],[a]);

View file

@ -20,7 +20,6 @@
// Synopsis: Draws a line along a path or region boundry.
// Topics: Paths (2D), Paths (3D), Drawing Tools
// See Also: offset_stroke(), path_sweep()
//
// Usage:
// stroke(path, [width], [closed], [endcaps], [endcap_width], [endcap_length], [endcap_extent], [trim]);
// stroke(path, [width], [closed], [endcap1], [endcap2], [endcap_width1], [endcap_width2], [endcap_length1], [endcap_length2], [endcap_extent1], [endcap_extent2], [trim1], [trim2]);
@ -550,7 +549,6 @@ module stroke(
// Synopsis: Draws a dashed line along a path or region boundry.
// Topics: Paths, Drawing Tools
// See Also: stroke(), path_cut()
//
// Usage: As a Module
// dashed_stroke(path, dashpat, [width=], [closed=]);
// Usage: As a Function
@ -879,7 +877,6 @@ function _normal_segment(p1,p2) =
// Synopsis: Uses [turtle graphics](https://en.wikipedia.org/wiki/Turtle_graphics) to generate a 2D path.
// Topics: Shapes (2D), Path Generators (2D), Mini-Language
// See Also: turtle3d()
//
// Usage:
// turtle(commands, [state], [full_state=], [repeat=])
// Description:

View file

@ -18,7 +18,6 @@
// Synopsis: Creates a 2D beading mask shape useful for rounding 90° edges.
// Topics: Shapes (2D), Paths (2D), Path Generators, Attachable, Masks (2D)
// See Also: corner_profile(), edge_profile(), face_profile(), fillet()
//
// Usage: As module
// mask2d_roundover(r|d=, [inset], [excess]) [ATTACHMENTS];
// Usage: As function
@ -83,7 +82,6 @@ function mask2d_roundover(r, inset=0, excess=0.01, d, anchor=CENTER,spin=0) =
// Synopsis: Creates a 2d cove (quarter-round) mask shape.
// Topics: Shapes (2D), Paths (2D), Path Generators, Attachable, Masks (2D)
// See Also: corner_profile(), edge_profile(), face_profile()
//
// Usage: As module
// mask2d_cove(r|d=, [inset], [excess]) [ATTACHMENTS];
// Usage: As function
@ -148,7 +146,6 @@ function mask2d_cove(r, inset=0, excess=0.01, d, anchor=CENTER,spin=0) =
// Synopsis: Produces a 2D chamfer mask shape.
// Topics: Shapes (2D), Paths (2D), Path Generators, Attachable, Masks (2D)
// See Also: corner_profile(), edge_profile(), face_profile()
//
// Usage: As Module
// mask2d_chamfer(edge, [angle], [inset], [excess]) [ATTACHMENTS];
// mask2d_chamfer(y=, [angle=], [inset=], [excess=]) [ATTACHMENTS];
@ -228,7 +225,6 @@ function mask2d_chamfer(edge, angle=45, inset=0, excess=0.01, x, y, anchor=CENTE
// Synopsis: Creates a rabbet mask shape.
// Topics: Shapes (2D), Paths (2D), Path Generators, Attachable, Masks (2D)
// See Also: corner_profile(), edge_profile(), face_profile()
//
// Usage: As Module
// mask2d_rabbet(size, [excess]) [ATTACHMENTS];
// Usage: As Function
@ -287,7 +283,6 @@ function mask2d_rabbet(size, excess=0.01, anchor=CENTER,spin=0) =
// Creates a 2d dovetail mask shape.
// Topics: Shapes (2D), Paths (2D), Path Generators, Attachable, Masks (2D)
// See Also: corner_profile(), edge_profile(), face_profile()
//
// Usage: As Module
// mask2d_dovetail(edge, [angle], [inset], [shelf], [excess], ...) [ATTACHMENTS];
// mask2d_dovetail(x=, [angle=], [inset=], [shelf=], [excess=], ...) [ATTACHMENTS];
@ -366,7 +361,6 @@ function mask2d_dovetail(edge, angle=30, inset=0, shelf=0, excess=0.01, x, y, an
// Synopsis: Creates a 2d teardrop mask shape with a controllable maximum angle from vertical.
// Topics: Shapes (2D), Paths (2D), Path Generators, Attachable, Masks (2D)
// See Also: corner_profile(), edge_profile(), face_profile()
//
// Usage: As Module
// mask2d_teardrop(r|d=, [angle], [excess]) [ATTACHMENTS];
// Usage: As Function
@ -431,7 +425,6 @@ module mask2d_teardrop(r, angle=45, excess=0.01, d, anchor=CENTER, spin=0) {
// Synopsis: Creates a 2d ogee mask shape.
// Topics: Shapes (2D), Paths (2D), Path Generators, Attachable, Masks (2D)
// See Also: corner_profile(), edge_profile(), face_profile()
//
// Usage: As Module
// mask2d_ogee(pattern, [excess], ...) [ATTAHCMENTS];
// Usage: As Function

View file

@ -24,7 +24,6 @@ use <builtins.scad>
// Synopsis: Creates a 2D square or rectangle.
// Topics: Shapes (2D), Path Generators (2D)
// See Also: rect()
//
// Usage: As a Module
// square(size, [center], ...);
// Usage: With Attachments
@ -214,7 +213,6 @@ function rect(size=1, rounding=0, chamfer=0, atype="box", anchor=CENTER, spin=0,
// Synopsis: Creates the approximation of a circle.
// Topics: Shapes (2D), Path Generators (2D)
// See Also: ellipse(), circle_2tangents(), circle_3points()
//
// Usage: As a Module
// circle(r|d=, ...) [ATTACHMENTS];
// circle(points=) [ATTACHMENTS];
@ -319,7 +317,6 @@ module circle(r, d, points, corner, anchor=CENTER, spin=0) {
// Synopsis: Creates the approximation of an ellipse or a circle.
// Topics: Shapes (2D), Paths (2D), Path Generators, Attachable
// See Also: circle(), circle_2tangents(), circle_3points()
// Usage: As a Module
// ellipse(r|d=, [realign=], [circum=], [uniform=], ...) [ATTACHMENTS];
// Usage: As a Function
@ -504,7 +501,6 @@ function ellipse(r, d, realign=false, circum=false, uniform=false, anchor=CENTER
// Synopsis: Creates a regular N-sided polygon.
// Topics: Shapes (2D), Paths (2D), Path Generators, Attachable
// See Also: debug_polygon(), circle(), pentagon(), hexagon(), octagon(), ellipse(), star()
// Usage:
// regular_ngon(n, r|d=|or=|od=, [realign=]) [ATTACHMENTS];
// regular_ngon(n, ir=|id=, [realign=]) [ATTACHMENTS];
@ -645,7 +641,6 @@ module regular_ngon(n=6, r, d, or, od, ir, id, side, rounding=0, realign=false,
// Synopsis: Creates a regular pentagon.
// Topics: Shapes (2D), Paths (2D), Path Generators, Attachable
// See Also: circle(), regular_ngon(), hexagon(), octagon(), ellipse(), star()
// Usage:
// pentagon(or|od=, [realign=], [align_tip=|align_side=]) [ATTACHMENTS];
// pentagon(ir=|id=, [realign=], [align_tip=|align_side=]) [ATTACHMENTS];
@ -705,7 +700,6 @@ module pentagon(r, d, or, od, ir, id, side, rounding=0, realign=false, align_tip
// Synopsis: Creates a regular hexagon.
// Topics: Shapes (2D), Paths (2D), Path Generators, Attachable
// See Also: circle(), regular_ngon(), pentagon(), octagon(), ellipse(), star()
// Usage: As Module
// hexagon(r/or, [realign=], <align_tip=|align_side=>, [rounding=], ...) [ATTACHMENTS];
// hexagon(d=/od=, ...) [ATTACHMENTS];
@ -766,7 +760,6 @@ module hexagon(r, d, or, od, ir, id, side, rounding=0, realign=false, align_tip,
// Synopsis: Creates a regular octagon.
// Topics: Shapes (2D), Paths (2D), Path Generators, Attachable
// See Also: circle(), regular_ngon(), pentagon(), hexagon(), ellipse(), star()
// Usage: As Module
// octagon(r/or, [realign=], [align_tip=|align_side=], [rounding=], ...) [ATTACHMENTS];
// octagon(d=/od=, ...) [ATTACHMENTS];
@ -826,7 +819,6 @@ module octagon(r, d, or, od, ir, id, side, rounding=0, realign=false, align_tip,
// Synopsis: Creates a right triangle.
// Topics: Shapes (2D), Paths (2D), Path Generators, Attachable
// See Also: square(), rect(), regular_ngon(), pentagon(), hexagon(), octagon(), star()
// Usage: As Module
// right_triangle(size, [center], ...) [ATTACHMENTS];
// Usage: As Function
@ -886,7 +878,6 @@ module right_triangle(size=[1,1], center, anchor, spin=0) {
// Synopsis: Creates a trapezoid with parallel top and bottom sides.
// Topics: Shapes (2D), Paths (2D), Path Generators, Attachable
// See Also: rect(), square()
// Usage: As Module
// trapezoid(h, w1, w2, [shift=], [rounding=], [chamfer=], [flip=], ...) [ATTACHMENTS];
// trapezoid(h, w1, ang=, [rounding=], [chamfer=], [flip=], ...) [ATTACHMENTS];
@ -1096,7 +1087,6 @@ module trapezoid(h, w1, w2, ang, shift, chamfer=0, rounding=0, flip=false, ancho
// Synopsis: Creates a star-shaped polygon or returns a star-shaped region.
// Topics: Shapes (2D), Paths (2D), Path Generators, Attachable
// See Also: circle(), ellipse(), regular_ngon()
//
// Usage: As Module
// star(n, r/or, ir, [realign=], [align_tip=], [align_pit=], ...) [ATTACHMENTS];
// star(n, r/or, step=, ...) [ATTACHMENTS];
@ -1265,7 +1255,6 @@ function _path_add_jitter(path, dist=1/512, closed=true) =
// Synopsis: Creates a polygon with extra points for smoother twisted extrusions.
// Topics: Extrusions
// See Also: subdivide_path()
//
// Usage:
// jittered_poly(path, [dist]);
// Description:
@ -1294,7 +1283,6 @@ module jittered_poly(path, dist=1/512) {
// Synopsis: Creates a 2D teardrop shape.
// Topics: Shapes (2D), Paths (2D), Path Generators, Attachable
// See Also: teardrop(), onion()
//
// Description:
// Makes a 2D teardrop shape. Useful for extruding into 3D printable holes as it limits overhang to 45 degrees. Uses "intersect" style anchoring.
// The cap_h parameter truncates the top of the teardrop. If cap_h is taller than the untruncated form then
@ -1393,7 +1381,6 @@ function teardrop2d(r, ang=45, cap_h, d, circum=false, realign=false, anchor=CEN
// Synopsis: Creates an egg-shaped 2d object.
// Topics: Shapes (2D), Paths (2D), Path Generators, Attachable
// See Also: circle(), ellipse(), glued_circles()
//
// Usage: As Module
// egg(length, r1|d1=, r2|d2=, R|D=) [ATTACHMENTS];
// Usage: As Function
@ -1482,7 +1469,6 @@ module egg(length,r1,r2,R,d1,d2,D,anchor=CENTER, spin=0)
// Synopsis: Creates a shape of two circles joined by a curved waist.
// Topics: Shapes (2D), Paths (2D), Path Generators, Attachable
// See Also: circle(), ellipse(), egg()
//
// Usage: As Module
// glued_circles(r/d=, [spread], [tangent], ...) [ATTACHMENTS];
// Usage: As Function
@ -1552,7 +1538,6 @@ function _superformula(theta,m1,m2,n1,n2=1,n3=1,a=1,b=1) =
// Synopsis: Creates a 2D [Superformula](https://en.wikipedia.org/wiki/Superformula) shape.
// Topics: Shapes (2D), Paths (2D), Path Generators, Attachable
// See Also: circle(), ellipse()
//
// Usage: As Module
// supershape([step],[n=], [m1=], [m2=], [n1=], [n2=], [n3=], [a=], [b=], [r=/d=]) [ATTACHMENTS];
// Usage: As Function
@ -1635,7 +1620,6 @@ module supershape(step=0.5,n,m1=4,m2=undef,n1,n2=undef,n3=undef,a=1,b=undef, r=u
// Synopsis: Creates a constant-width shape that is not circular.
// Topics: Shapes (2D), Paths (2D), Path Generators, Attachable
// See Also: regular_ngon(), pentagon(), hexagon(), octagon()
//
// Usage: As Module
// reuleaux_polygon(n, r|d=, ...) [ATTACHMENTS];
// Usage: As Function
@ -1704,7 +1688,7 @@ function reuleaux_polygon(n=3, r, d, anchor=CENTER, spin=0) =
// Module: text()
// Synopsis: Creates an attachable block of text.
// Topics: Attachments, Text
// See Also: text3d()
// See Also: text3d(), attachable()
// Usage:
// text(text, [size], [font], ...);
// Description:
@ -1743,7 +1727,6 @@ function reuleaux_polygon(n=3, r, d, anchor=CENTER, spin=0) =
// script = The script the text is in. Default: `"latin"`
// anchor = Translate so anchor point is at origin (0,0,0). See [anchor](attachments.scad#subsection-anchor). Default: `"baseline"`
// spin = Rotate this many degrees around the Z axis. See [spin](attachments.scad#subsection-spin). Default: `0`
// See Also: attachable()
// Extra Anchors:
// "baseline" = Anchors at the baseline of the text, at the start of the string.
// str("baseline",VECTOR) = Anchors at the baseline of the text, modified by the X and Z components of the appended vector.

View file

@ -21,7 +21,6 @@ use <builtins.scad>
// Synopsis: Creates a cube with anchors for attaching children, or returns a vnf.
// Topics: Shapes (3D), Attachable, VNF Generators
// See Also: cuboid(), prismoid()
//
// Usage: As Module (as in native OpenSCAD)
// cube(size, [center]);
// Usage: With BOSL2 Attachment extensions
@ -92,7 +91,6 @@ function cube(size=1, center, anchor, spin=0, orient=UP) =
// Synopsis: Creates a cube with chamfering and roundovers, or returns a vnf.
// Topics: Shapes (3D), Attachable, VNF Generators
// See Also: prismoid(), rounded_prism()
//
// Usage: Standard Cubes
// cuboid(size, [anchor=], [spin=], [orient=]);
// cuboid(size, p1=, ...);
@ -571,7 +569,6 @@ function cuboid(
// Synopsis: Creates a rectangular prismoid shape with optional roundovers and chamfering, or returns a vnf.
// Topics: Shapes (3D), Attachable, VNF Generators
// See Also: cuboid(), rounded_prism(), trapezoid()
//
// Usage:
// prismoid(size1, size2, [h|l|height|length], [shift], [xang=], [yang=], ...) [ATTACHMENTS];
// Usage: Chamfered and/or Rounded Prismoids
@ -776,8 +773,6 @@ function prismoid(
// Synopsis: Creates an octahedron with axis-aligned points, or returns a vnf.
// Topics: Shapes (3D), Attachable, VNF Generators
// See Also: prismoid()
// Usage: As Module
// octahedron(size, ...) [ATTACHMENTS];
// Usage: As Function
@ -819,7 +814,6 @@ function octahedron(size=1, anchor=CENTER, spin=0, orient=UP) =
// Synopsis: Creates a rectangular tube, or returns a vnf.
// Topics: Shapes (3D), Attachable, VNF Generators
// See Also: tube()
//
// Usage: Typical Rectangular Tubes
// rect_tube(h, size, isize, [center], [shift]);
// rect_tube(h, size, wall=, [center=]);
@ -1177,7 +1171,6 @@ function wedge(size=[1,1,1], center, anchor, spin=0, orient=UP) =
// Synopsis: Creates an attachable cylinder, or returns a vnf.
// Topics: Shapes (3D), Attachable, VNF Generators
// See Also: cyl()
//
// Usage: As Module (as in native OpenSCAD)
// cylinder(h, r=/d=, [center=]);
// cylinder(h, r1/d1=, r2/d2=, [center=]);
@ -1263,7 +1256,6 @@ function cylinder(h, r1, r2, center, r, d, d1, d2, anchor, spin=0, orient=UP) =
// Synopsis: Creates an attachable cylinder with roundovers and chamfering, or returns a vnf.
// Topics: Cylinders, Textures, Rounding, Chamfers
// See Also: texture(), rotate_sweep(), cylinder()
//
// Usage: Normal Cylinders
// cyl(l|h|length|height, r, [center], [circum=], [realign=]) [ATTACHMENTS];
// cyl(l|h|length|height, d=, ...) [ATTACHMENTS];
@ -1660,7 +1652,6 @@ module cyl(
// Synopsis: creates a cylinder oriented along the X axis, or returns a vnf.
// Topics: Cylinders, Textures, Rounding, Chamfers
// See Also: texture(), rotate_sweep(), cyl()
//
// Description:
// Creates an attachable cylinder with roundovers and chamfering oriented along the X axis.
//
@ -1743,10 +1734,8 @@ module xcyl(
// Synopsis: creates a cylinder oriented along the y axis, or returns a vnf.
// Topics: Cylinders, Textures, Rounding, Chamfers
// See Also: texture(), rotate_sweep(), cyl()
//
// Description:
// Creates an attachable cylinder with roundovers and chamfering oriented along the y axis.
//
// Usage: Typical
// ycyl(l|h|length|height, r|d=, [anchor=], ...) [ATTACHMENTS];
@ -1829,10 +1818,8 @@ module ycyl(
// Synopsis: creates a cylinder oriented along the Z axis, or returns a vnf.
// Topics: Cylinders, Textures, Rounding, Chamfers
// See Also: texture(), rotate_sweep(), cyl()
//
// Description:
// Creates an attachable cylinder with roundovers and chamfering oriented along the Z axis.
//
// Usage: Typical
// zcyl(l|h|length|height, r|d=, [anchor=],...) [ATTACHMENTS];
@ -1914,8 +1901,6 @@ module zcyl(
// Synopsis: Creates a cylindrical or conical tube, or returns a vnf.
// Topics: Shapes (3D), Attachable, VNF Generators
// See Also: rect_tube()
//
// Description:
// Makes a hollow tube that can be cylindrical or conical by specifying inner and outer dimensions or by giving one dimension and
// wall thickness.
@ -2013,7 +1998,6 @@ module tube(
// Synopsis: Creates a pie slice shape, or returns a vnf.
// Topics: Shapes (3D), Attachable, VNF Generators
// See Also: wedge()
//
// Description:
// Creates a pie slice shape.
//
@ -2112,7 +2096,6 @@ function pie_slice(
// Synopsis: Creates an attachable spherical object, or returns a vnf.
// Topics: Shapes (3D), Attachable, VNF Generators
// See Also: spheroid()
// Usage: As Module (native OpenSCAD)
// sphere(r|d=);
// Usage: Using BOSL2 attachments extensions
@ -2159,7 +2142,6 @@ function sphere(r, d, anchor=CENTER, spin=0, orient=UP) =
// Synopsis: Creates an attachable spherical object with controllable triangulation, or returns a vnf.
// Topics: Shapes (3D), Attachable, VNF Generators
// See Also: sphere()
//
// Usage: Typical
// spheroid(r|d, [circum], [style]) [ATTACHMENTS];
// Usage: As Function
@ -2632,7 +2614,6 @@ function torus(
// Synopsis: Creates a teardrop shape, or returns a vnf.
// Topics: Shapes (3D), Attachable, VNF Generators
// See Also: onion(), teardrop2d()
//
// Description:
// Makes a teardrop shape in the XZ plane. Useful for 3D printable holes.
// Optional chamfers can be added with positive or negative distances. A positive distance
@ -2774,7 +2755,6 @@ function teardrop(h, r, ang=45, cap_h, r1, r2, d, d1, d2, cap_h1, cap_h2, chamf
// Synopsis: Creates an attachable onion-like shape, or returns a vnf.
// Topics: Shapes (3D), Attachable, VNF Generators
// See Also: teardrop(), teardrop2d()
//
// Description:
// Creates a sphere with a conical hat, to make a 3D teardrop.
//
@ -2864,7 +2844,6 @@ function onion(r, ang=45, cap_h, d, anchor=CENTER, spin=0, orient=UP) =
// Synopsis: Creates an attachable 3d text block, or returns a vnf.
// Topics: Attachments, Text
// See Also: path_text(), text()
//
// Usage:
// text3d(text, [h], [size], [font], [language=], [script=], [direction=], [atype=], [anchor=], [spin=], [orient=]);
// Description:
@ -2972,7 +2951,6 @@ function _cut_interp(pathcut, path, data) =
// Synopsis: Creates 2d or 3d text placed along a path, or returns a vnf.
// Topics: Text, Paths, Paths (2D), Paths (3D), Path Generators, Path Generators (2D)
// See Also, text(), text2d()
// Usage:
// path_text(path, text, [size], [thickness], [font], [lettersize=], [offset=], [reverse=], [normal=], [top=], [textmetrics=], [kern=])
// Description:
@ -3217,8 +3195,6 @@ module path_text(path, text, font, size, thickness, lettersize, offset=0, revers
// Module: fillet()
// Synopsis: Creates a smooth fillet between two faces, or returns a vnf.
// See Also: mask2d_roundover()
//
//
// Description:
// Creates a shape that can be unioned into a concave joint between two faces, to fillet them.
// Center this part along the concave edge to be chamfered and union it in.
@ -3299,7 +3275,6 @@ module fillet(l=1.0, r, ang=90, overlap=0.01, d, length, h, height, anchor=CENTE
// Synopsis: Generates a 3D surface from a 2D grid of values, or returns a vnf.
// Topics: Textures, Heightfield
// See Also: cylindrical_heightfield()
//
// Usage: As Module
// heightfield(data, [size], [bottom], [maxz], [xrange], [yrange], [style], [convexity], ...) [ATTACHMENTS];
// Usage: As Function
@ -3430,7 +3405,6 @@ function heightfield(data, size=[100,100], bottom=-20, maxz=100, xrange=[-1:0.04
// Synopsis: Generates a cylindrical 3d surface from a 2D grid of values, or returns a vnf.
// Topics: Extrusion, Textures, Knurling, Heightfield
// See Also: heightfield()
//
// Usage: As Function
// vnf = cylindrical_heightfield(data, l|length=|h=|height=, r|d=, [base=], [transpose=], [aspect=]);
// Usage: As Module

View file

@ -23,7 +23,6 @@ function _rotpart(T) = [for(i=[0:3]) [for(j=[0:3]) j<3 || i==3 ? T[i][j] : 0]];
// Synopsis: Extends [turtle graphics](https://en.wikipedia.org/wiki/Turtle_graphics) to 3d. Generates a 3D path or returns a list of transforms.
// Topics: Shapes (3D), Path Generators (3D), Mini-Language
// See Also: turtle()
//
// Usage:
// turtle3d(commands, [state], [transforms], [full_state], [repeat])
// Description: