From 9815ad83da7c1f4b08c6cb7b4f0ca05102feea32 Mon Sep 17 00:00:00 2001 From: Richard Milewski Date: Wed, 12 Apr 2023 14:13:14 -0700 Subject: [PATCH 1/9] Fixed repository designation --- .github/workflows/main.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 9c972ef7..b5097fd7 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -33,7 +33,7 @@ jobs: - name: Clone Wiki uses: actions/checkout@v3 with: - repository: revarbat/BOSL2.wiki + repository: RAMilewski/BOSL2.wiki path: BOSL2.wiki - name: Apt Update @@ -74,7 +74,7 @@ jobs: - name: Clone Wiki uses: actions/checkout@v3 with: - repository: revarbat/BOSL2.wiki + repository: RAMilewski/BOSL2.wiki path: BOSL2.wiki - name: Apt Update From e7bf191887f46f3f17817229ad5e81db09c4b147 Mon Sep 17 00:00:00 2001 From: Richard Milewski Date: Wed, 12 Apr 2023 14:17:18 -0700 Subject: [PATCH 2/9] Fix repository designation --- .github/workflows/gen_tutorials.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/gen_tutorials.yml b/.github/workflows/gen_tutorials.yml index 70800be9..e08b859b 100644 --- a/.github/workflows/gen_tutorials.yml +++ b/.github/workflows/gen_tutorials.yml @@ -11,7 +11,7 @@ jobs: - name: Clone Wiki uses: actions/checkout@v3 with: - repository: revarbat/BOSL2.wiki + repository: RAMilewski/BOSL2.wiki path: BOSL2.wiki - name: Apt Update From c08f61b8a7f382f70900f860092804a234431f82 Mon Sep 17 00:00:00 2001 From: Richard Milewski Date: Wed, 12 Apr 2023 14:18:38 -0700 Subject: [PATCH 3/9] Fix repository designation --- .github/workflows/gen_docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/gen_docs.yml b/.github/workflows/gen_docs.yml index 80f55bef..9b6e2086 100644 --- a/.github/workflows/gen_docs.yml +++ b/.github/workflows/gen_docs.yml @@ -11,7 +11,7 @@ jobs: - name: Clone Wiki uses: actions/checkout@v3 with: - repository: revarbat/BOSL2.wiki + repository: RAMilewski/BOSL2.wiki path: BOSL2.wiki - name: Apt Update From 7b7e6ba21dcdb773f239d372011a4ee5d76ccfa1 Mon Sep 17 00:00:00 2001 From: Richard Milewski Date: Fri, 14 Apr 2023 13:42:53 -0700 Subject: [PATCH 4/9] Shapes2D SynTags --- shapes2d.scad | 34 +++++++++++++++++++++++++++++----- 1 file changed, 29 insertions(+), 5 deletions(-) diff --git a/shapes2d.scad b/shapes2d.scad index addb1ef9..c914c7ca 100644 --- a/shapes2d.scad +++ b/shapes2d.scad @@ -22,6 +22,7 @@ use // Function&Module: square() // Synopsis: Creates a 2D square or rectangle. +// SynTags: Geom, Path // Topics: Shapes (2D), Path Generators (2D) // See Also: rect() // Usage: As a Module @@ -73,6 +74,7 @@ module square(size=1, center, anchor, spin) { // Function&Module: rect() // Synopsis: Creates a 2d rectangle with optional corner rounding. +// SynTags: Geom, Path // Topics: Shapes (2D), Paths (2D), Path Generators, Attachable // See Also: square() // Usage: As Module @@ -211,6 +213,7 @@ function rect(size=1, rounding=0, chamfer=0, atype="box", anchor=CENTER, spin=0, // Function&Module: circle() // Synopsis: Creates the approximation of a circle. +// SynTags: Geom, Path // Topics: Shapes (2D), Path Generators (2D) // See Also: ellipse(), circle_2tangents(), circle_3points() // Usage: As a Module @@ -315,6 +318,7 @@ module circle(r, d, points, corner, anchor=CENTER, spin=0) { // Function&Module: ellipse() // Synopsis: Creates the approximation of an ellipse or a circle. +// SynTags: Geom, Path // Topics: Shapes (2D), Paths (2D), Path Generators, Attachable // See Also: circle(), circle_2tangents(), circle_3points() // Usage: As a Module @@ -499,6 +503,7 @@ function ellipse(r, d, realign=false, circum=false, uniform=false, anchor=CENTER // Function&Module: regular_ngon() // Synopsis: Creates a regular N-sided polygon. +// SynTags: Geom, Path // Topics: Shapes (2D), Paths (2D), Path Generators, Attachable // See Also: debug_polygon(), circle(), pentagon(), hexagon(), octagon(), ellipse(), star() // Usage: @@ -639,6 +644,7 @@ module regular_ngon(n=6, r, d, or, od, ir, id, side, rounding=0, realign=false, // Function&Module: pentagon() // Synopsis: Creates a regular pentagon. +// SynTags: Geom, Path // Topics: Shapes (2D), Paths (2D), Path Generators, Attachable // See Also: circle(), regular_ngon(), hexagon(), octagon(), ellipse(), star() // Usage: @@ -698,6 +704,7 @@ module pentagon(r, d, or, od, ir, id, side, rounding=0, realign=false, align_tip // Function&Module: hexagon() // Synopsis: Creates a regular hexagon. +// SynTags: Geom, Path // Topics: Shapes (2D), Paths (2D), Path Generators, Attachable // See Also: circle(), regular_ngon(), pentagon(), octagon(), ellipse(), star() // Usage: As Module @@ -758,6 +765,7 @@ module hexagon(r, d, or, od, ir, id, side, rounding=0, realign=false, align_tip, // Function&Module: octagon() // Synopsis: Creates a regular octagon. +// SynTags: Geom, Path // Topics: Shapes (2D), Paths (2D), Path Generators, Attachable // See Also: circle(), regular_ngon(), pentagon(), hexagon(), ellipse(), star() // Usage: As Module @@ -817,6 +825,7 @@ module octagon(r, d, or, od, ir, id, side, rounding=0, realign=false, align_tip, // Function&Module: right_triangle() // Synopsis: Creates a right triangle. +// SynTags: Geom, Path // Topics: Shapes (2D), Paths (2D), Path Generators, Attachable // See Also: square(), rect(), regular_ngon(), pentagon(), hexagon(), octagon(), star() // Usage: As Module @@ -824,7 +833,8 @@ module octagon(r, d, or, od, ir, id, side, rounding=0, realign=false, align_tip, // Usage: As Function // path = right_triangle(size, [center], ...); // Description: -// Creates a right triangle with the Hypotenuse in the X+Y+ quadrant. +// When called as a module, creates a right triangle with the Hypotenuse in the X+Y+ quadrant. +// When called as a function, returns a 2D path for a right triangle with the Hypotenuse in the X+Y+ quadrant. // Arguments: // size = The width and length of the right triangle, given as a scalar or an XY vector. // center = If true, forces `anchor=CENTER`. If false, forces `anchor=[-1,-1]`. Default: undef (use `anchor=`) @@ -876,6 +886,7 @@ module right_triangle(size=[1,1], center, anchor, spin=0) { // Function&Module: trapezoid() // Synopsis: Creates a trapezoid with parallel top and bottom sides. +// SynTags: Geom, Path // Topics: Shapes (2D), Paths (2D), Path Generators, Attachable // See Also: rect(), square() // Usage: As Module @@ -1085,6 +1096,7 @@ module trapezoid(h, w1, w2, ang, shift, chamfer=0, rounding=0, flip=false, ancho // Function&Module: star() // Synopsis: Creates a star-shaped polygon or returns a star-shaped region. +// SynTags: Geom, Path // Topics: Shapes (2D), Paths (2D), Path Generators, Attachable // See Also: circle(), ellipse(), regular_ngon() // Usage: As Module @@ -1253,6 +1265,7 @@ function _path_add_jitter(path, dist=1/512, closed=true) = // Module: jittered_poly() // Synopsis: Creates a polygon with extra points for smoother twisted extrusions. +// SynTags: Geom // Topics: Extrusions // See Also: subdivide_path() // Usage: @@ -1281,16 +1294,18 @@ module jittered_poly(path, dist=1/512) { // Function&Module: teardrop2d() // Synopsis: Creates a 2D teardrop shape. +// SynTags: Geom, Path // 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. +// When called as a module, 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 // the result will be the full, untruncated shape. The segments of the bottom section of the teardrop are // calculated to be the same as a circle or cylinder when rotated 90 degrees. (Note that this agreement is poor when `$fn=6` or `$fn=7`. // If `$fn` is a multiple of four then the teardrop will reach its extremes on all four axes. The circum option // produces a teardrop that circumscribes the circle; in this case set `realign=true` to get a teardrop that meets its internal extremes // on the axes. +// When called as a function, returns a 2D path to for a teardrop shape. // // Usage: As Module // teardrop2d(r/d=, [ang], [cap_h]) [ATTACHMENTS]; @@ -1379,6 +1394,7 @@ function teardrop2d(r, ang=45, cap_h, d, circum=false, realign=false, anchor=CEN // Function&Module: egg() // Synopsis: Creates an egg-shaped 2d object. +// SynTags: Geom, Path // Topics: Shapes (2D), Paths (2D), Path Generators, Attachable // See Also: circle(), ellipse(), glued_circles() // Usage: As Module @@ -1386,11 +1402,12 @@ function teardrop2d(r, ang=45, cap_h, d, circum=false, realign=false, anchor=CEN // Usage: As Function // path = egg(length, r1|d1=, r2|d2=, R|D=); // Description: -// Constructs an egg-shaped object by connecting two circles with convex arcs that are tangent to the circles. +// When called as a module, constructs an egg-shaped object by connecting two circles with convex arcs that are tangent to the circles. // You specify the length of the egg, the radii of the two circles, and the desired arc radius. // Note that because the side radius, R, is often much larger than the end radii, you may get better // results using `$fs` and `$fa` to control the number of semgments rather than using `$fn`. -// This shape may be useful for creating a cam. +// This shape may be useful for creating a cam. +// When called as a function, returns a 2D path for an egg-shaped object. // Arguments: // length = length of the egg // r1 = radius of the left-hand circle @@ -1467,6 +1484,7 @@ module egg(length,r1,r2,R,d1,d2,D,anchor=CENTER, spin=0) // Function&Module: glued_circles() // Synopsis: Creates a shape of two circles joined by a curved waist. +// SynTags: Geom, Path // Topics: Shapes (2D), Paths (2D), Path Generators, Attachable // See Also: circle(), ellipse(), egg() // Usage: As Module @@ -1536,6 +1554,7 @@ function _superformula(theta,m1,m2,n1,n2=1,n3=1,a=1,b=1) = // Function&Module: supershape() // Synopsis: Creates a 2D [Superformula](https://en.wikipedia.org/wiki/Superformula) shape. +// SynTags: Geom, Path // Topics: Shapes (2D), Paths (2D), Path Generators, Attachable // See Also: circle(), ellipse() // Usage: As Module @@ -1618,6 +1637,7 @@ module supershape(step=0.5,n,m1=4,m2=undef,n1,n2=undef,n3=undef,a=1,b=undef, r=u // Function&Module: reuleaux_polygon() // Synopsis: Creates a constant-width shape that is not circular. +// SynTags: Geom, Path // Topics: Shapes (2D), Paths (2D), Path Generators, Attachable // See Also: regular_ngon(), pentagon(), hexagon(), octagon() // Usage: As Module @@ -1625,7 +1645,8 @@ module supershape(step=0.5,n,m1=4,m2=undef,n1,n2=undef,n3=undef,a=1,b=undef, r=u // Usage: As Function // path = reuleaux_polygon(n, r|d=, ...); // Description: -// Creates a 2D Reuleaux Polygon; a constant width shape that is not circular. Uses "intersect" type anchoring. +// When called as a module, reates a 2D Reuleaux Polygon; a constant width shape that is not circular. Uses "intersect" type anchoring. +// When called as a function, returns a 2D path for a Reulaux Polygon. // Arguments: // n = Number of "sides" to the Reuleaux Polygon. Must be an odd positive number. Default: 3 // r = Radius of the shape. Scale shape to fit in a circle of radius r. @@ -1687,6 +1708,7 @@ function reuleaux_polygon(n=3, r, d, anchor=CENTER, spin=0) = // Module: text() // Synopsis: Creates an attachable block of text. +// SynTags: Geom // Topics: Attachments, Text // See Also: text3d(), attachable() // Usage: @@ -1799,6 +1821,7 @@ module text(text, size=10, font="Helvetica", halign, valign, spacing=1.0, direct // Module: round2d() // Synopsis: Rounds the corners of 2d objects. +// SynTags: Geom // Topics: Rounding // See Also: shell2d(), round3d(), minkowski_difference() // Usage: @@ -1831,6 +1854,7 @@ module round2d(r, or, ir) // Module: shell2d() // Synopsis: Creates a shell from 2D children. +// SynTags: Geom // Topics: Shell // See Also: round2d(), round3d(), minkowski_difference() // Usage: From a36fcd2d81f724f1914193a9cbcc91dd592482cf Mon Sep 17 00:00:00 2001 From: Richard Milewski Date: Fri, 14 Apr 2023 15:53:35 -0700 Subject: [PATCH 5/9] SynTags for masks2d, masks3d and partitions --- masks2d.scad | 7 +++++++ masks3d.scad | 11 +++++++++++ partitions.scad | 12 +++++++++++- 3 files changed, 29 insertions(+), 1 deletion(-) diff --git a/masks2d.scad b/masks2d.scad index bf93ce96..960b1450 100644 --- a/masks2d.scad +++ b/masks2d.scad @@ -16,6 +16,7 @@ // Function&Module: mask2d_roundover() // Synopsis: Creates a 2D beading mask shape useful for rounding 90° edges. +// SynTags: Geom, Path // Topics: Shapes (2D), Paths (2D), Path Generators, Attachable, Masks (2D) // See Also: corner_profile(), edge_profile(), face_profile(), fillet() // Usage: As module @@ -80,6 +81,7 @@ function mask2d_roundover(r, inset=0, excess=0.01, d, anchor=CENTER,spin=0) = // Function&Module: mask2d_cove() // Synopsis: Creates a 2D cove (quarter-round) mask shape. +// SynTags: Geom, Path // Topics: Shapes (2D), Paths (2D), Path Generators, Attachable, Masks (2D) // See Also: corner_profile(), edge_profile(), face_profile() // Usage: As module @@ -144,6 +146,7 @@ function mask2d_cove(r, inset=0, excess=0.01, d, anchor=CENTER,spin=0) = // Function&Module: mask2d_chamfer() // Synopsis: Produces a 2D chamfer mask shape. +// SynTags: Geom, Path // Topics: Shapes (2D), Paths (2D), Path Generators, Attachable, Masks (2D) // See Also: corner_profile(), edge_profile(), face_profile() // Usage: As Module @@ -223,6 +226,7 @@ function mask2d_chamfer(edge, angle=45, inset=0, excess=0.01, x, y, anchor=CENTE // Function&Module: mask2d_rabbet() // Synopsis: Creates a rabbet mask shape. +// SynTags: Geom, Path // Topics: Shapes (2D), Paths (2D), Path Generators, Attachable, Masks (2D) // See Also: corner_profile(), edge_profile(), face_profile() // Usage: As Module @@ -281,6 +285,7 @@ function mask2d_rabbet(size, excess=0.01, anchor=CENTER,spin=0) = // Function&Module: mask2d_dovetail() // Synopsis: Creates a 2D dovetail mask shape. +// SynTags: Geom, Path // Topics: Masks (2D), Shapes (2D), Paths (2D), Path Generators, Attachable // See Also: corner_profile(), edge_profile(), face_profile() // Usage: As Module @@ -359,6 +364,7 @@ function mask2d_dovetail(edge, angle=30, inset=0, shelf=0, excess=0.01, x, y, an // Function&Module: mask2d_teardrop() // Synopsis: Creates a 2D teardrop mask shape with a controllable maximum angle from vertical. +// SynTags: Geom, Path // Topics: Shapes (2D), Paths (2D), Path Generators, Attachable, Masks (2D), FDM Optimized // See Also: corner_profile(), edge_profile(), face_profile() // Usage: As Module @@ -423,6 +429,7 @@ module mask2d_teardrop(r, angle=45, excess=0.01, d, anchor=CENTER, spin=0) { // Function&Module: mask2d_ogee() // Synopsis: Creates a 2D ogee mask shape. +// SynTags: Geom, Path // Topics: Shapes (2D), Paths (2D), Path Generators, Attachable, Masks (2D) // See Also: corner_profile(), edge_profile(), face_profile() // Usage: As Module diff --git a/masks3d.scad b/masks3d.scad index c95cdd77..a44fa9e5 100644 --- a/masks3d.scad +++ b/masks3d.scad @@ -15,6 +15,7 @@ // Module: chamfer_edge_mask() // Synopsis: Creates a shape to chamfer a 90° edge. +// SynTags: Geom // Topics: Masking, Chamfers, Shapes (3D) // See Also: chamfer_corner_mask() // Usage: @@ -56,6 +57,7 @@ module chamfer_edge_mask(l, chamfer=1, excess=0.1, h, length, height, anchor=CEN // Module: chamfer_corner_mask() // Synopsis: Creates a shape to chamfer a 90° corner. +// SynTags: Geom // Topics: Masking, Chamfers, Shapes (3D) // See Also: chamfer_edge_mask() // Usage: @@ -94,6 +96,7 @@ module chamfer_corner_mask(chamfer=1, anchor=CENTER, spin=0, orient=UP) { // Module: chamfer_cylinder_mask() // Synopsis: Creates a shape to chamfer the end of a cylinder. +// SynTags: Geom // Topics: Masking, Chamfers, Cylinders // Usage: // chamfer_cylinder_mask(r|d=, chamfer, [ang], [from_end]) [ATTACHMENTS]; @@ -158,6 +161,7 @@ module chamfer_cylinder_mask(r, chamfer, d, ang=45, from_end=false, anchor=CENTE // Module: rounding_edge_mask() // Synopsis: Creates a shape to round a 90° edge. +// SynTags: Geom // Topics: Masks, Rounding, Shapes (3D) // See Also: rounding_angled_edge_mask(), rounding_corner_mask(), rounding_angled_corner_mask() // Usage: @@ -237,6 +241,7 @@ module rounding_edge_mask(l, r, r1, r2, d, d1, d2, excess=0.1, anchor=CENTER, sp // Module: rounding_corner_mask() // Synopsis: Creates a shape to round 90° corners. +// SynTags: Geom // Topics: Masking, Rounding, Shapes (3D) // See Also: rounding_angled_corner_mask(), rounding_edge_mask(), rounding_angled_edge_mask() // Usage: @@ -290,6 +295,7 @@ module rounding_corner_mask(r, d, style="octa", excess=0.1, anchor=CENTER, spin= // Module: rounding_angled_edge_mask() // Synopsis: Creates a shape to round edges of any angle. +// SynTags: Geom // Topics: Masks, Rounding // See Also: rounding_angled_corner_mask(), rounding_edge_mask(), rounding_corner_mask() // Usage: @@ -359,6 +365,7 @@ module rounding_angled_edge_mask(h, r, r1, r2, d, d1, d2, ang=90, anchor=CENTER, // Module: rounding_angled_corner_mask() // Synopsis: Creates a shape to round the corner of an arbitrary angle. +// SynTags: Geom // Topics: Masks, Rounding, Shapes (3D) // See Also: rounding_angled_edge_mask(), rounding_corner_mask(), rounding_edge_mask() // Usage: @@ -410,6 +417,7 @@ module rounding_angled_corner_mask(r, ang=90, d, anchor=CENTER, spin=0, orient=U // Module: rounding_cylinder_mask() // Synopsis: Creates a shape to round the end of a cylinder. +// SynTags: Geom // Topics: Masking, Rounding, Cylinders // See Also: rounding_hole_mask() // Usage: @@ -461,6 +469,7 @@ module rounding_cylinder_mask(r, rounding, d, anchor=CENTER, spin=0, orient=UP) // Module: rounding_hole_mask() // Synopsis: Creates a shape to round the edge of a round hole. +// SynTags: Geom // Topics: Masking, Rounding // See Also: rounding_cylinder_mask() // Usage: @@ -513,6 +522,7 @@ module rounding_hole_mask(r, rounding, excess=0.1, d, anchor=CENTER, spin=0, ori // Module: teardrop_edge_mask() // Synopsis: Creates a shape to round a 90° edge but limit the angle of overhang. +// SynTags: Geom // Topics: Masking, Rounding, Shapes (3D), FDM Optimized // See Also: teardrop_corner_mask() // Usage: @@ -555,6 +565,7 @@ module teardrop_edge_mask(l, r, angle=45, excess=0.1, d, anchor=CTR, spin=0, ori // Module: teardrop_corner_mask() // Synopsis: Creates a shape to round a 90° corner but limit the angle of overhang. +// SynTags: Geom // Topics: Masking, Rounding, Shapes (3D), FDM Optimized // See Also: teardrop_edge_mask() // Usage: diff --git a/partitions.scad b/partitions.scad index 4d60a4b4..a13cb420 100644 --- a/partitions.scad +++ b/partitions.scad @@ -13,6 +13,7 @@ // Function&Module: half_of() // Synopsis: Masks half of an object at a cut plane. +// SynTags: Geom, VNF, Path, Region // Topics: Partitions, Masking // See Also: back_half(), front_half(), left_half(), right_half(), top_half(), bottom_half() // @@ -122,6 +123,7 @@ function half_of(p, v=UP, cp) = // Function&Module: left_half() // Synopsis: Masks the right half of an object along the Y-Z plane, leaving the left half. +// SynTags: Geom, VNF, Path, Region // Topics: Partitions, Masking // See Also: back_half(), front_half(), right_half(), top_half(), bottom_half(), half_of() // @@ -167,6 +169,7 @@ function left_half(p,x=0) = half_of(p, LEFT, [x,0,0]); // Function&Module: right_half() +// SynTags: Geom, VNF, Path, Region // Synopsis: Masks the left half of an object along the Y-Z plane, leaving the right half. // Topics: Partitions, Masking // See Also: back_half(), front_half(), left_half(), top_half(), bottom_half(), half_of() @@ -212,6 +215,7 @@ function right_half(p,x=0) = half_of(p, RIGHT, [x,0,0]); // Function&Module: front_half() // Synopsis: Masks the back half of an object along the X-Z plane, leaving the front half. +// SynTags: Geom, VNF, Path, Region // Topics: Partitions, Masking // See Also: back_half(), left_half(), right_half(), top_half(), bottom_half(), half_of() // @@ -257,6 +261,7 @@ function front_half(p,y=0) = half_of(p, FRONT, [0,y,0]); // Function&Module: back_half() // Synopsis: Masks the front half of an object along the X-Z plane, leaving the back half. +// SynTags: Geom, VNF, Path, Region // Topics: Partitions, Masking // See Also: front_half(), left_half(), right_half(), top_half(), bottom_half(), half_of() // @@ -302,6 +307,7 @@ function back_half(p,y=0) = half_of(p, BACK, [0,y,0]); // Function&Module: bottom_half() // Synopsis: Masks the top half of an object along the X-Y plane, leaving the bottom half. +// SynTags: Geom, VNF, Path, Region // Topics: Partitions, Masking // See Also: back_half(), front_half(), left_half(), right_half(), top_half(), half_of() // @@ -339,6 +345,7 @@ function bottom_half(p,z=0) = half_of(p,BOTTOM,[0,0,z]); // Function&Module: top_half() // Synopsis: Masks the bottom half of an object along the X-Y plane, leaving the top half. +// SynTags: Geom, VNF, Path, Region // Topics: Partitions, Masking // See Also: back_half(), front_half(), left_half(), right_half(), bottom_half(), half_of() // @@ -420,6 +427,7 @@ function _partition_cutpath(l, h, cutsize, cutpath, gap) = // Module: partition_mask() // Synopsis: Creates a mask to remove half an object with the remaining half suitable for reassembly. +// SynTags: Geom // Topics: Partitions, Masking, Paths // See Also: partition_cut_mask(), partition() // Usage: @@ -473,6 +481,7 @@ module partition_mask(l=100, w=100, h=100, cutsize=10, cutpath="jigsaw", gap=0, // Module: partition_cut_mask() // Synopsis: Creates a mask to cut an object into two subparts that can be reassembled. +// SynTags: Geom // Topics: Partitions, Masking, Paths // See Also: partition_mask(), partition() // Usage: @@ -518,7 +527,8 @@ module partition_cut_mask(l=100, h=100, cutsize=10, cutpath="jigsaw", gap=0, anc // Module: partition() -// Synopsis: Cuts an object in two with matched joining edges, then separates the parts . +// Synopsis: Cuts an object in two with matched joining edges, then separates the parts. +// SynTags: Geom, VNF, Path, Region // Topics: Partitions, Masking, Paths // See Also: partition_cut_mask(), partition_mask() // Usage: From 9502da50a5e67fbbaad0205c1b9feb754b11e443 Mon Sep 17 00:00:00 2001 From: Richard Milewski Date: Sat, 15 Apr 2023 17:43:10 -0700 Subject: [PATCH 6/9] revert workflows --- .github/workflows/gen_docs.yml | 2 +- .github/workflows/gen_tutorials.yml | 4 ++-- .github/workflows/main.yml | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/gen_docs.yml b/.github/workflows/gen_docs.yml index 9b6e2086..80f55bef 100644 --- a/.github/workflows/gen_docs.yml +++ b/.github/workflows/gen_docs.yml @@ -11,7 +11,7 @@ jobs: - name: Clone Wiki uses: actions/checkout@v3 with: - repository: RAMilewski/BOSL2.wiki + repository: revarbat/BOSL2.wiki path: BOSL2.wiki - name: Apt Update diff --git a/.github/workflows/gen_tutorials.yml b/.github/workflows/gen_tutorials.yml index e08b859b..efdde5fa 100644 --- a/.github/workflows/gen_tutorials.yml +++ b/.github/workflows/gen_tutorials.yml @@ -1,5 +1,5 @@ -name: Regenerate Tutorials on: [workflow_dispatch] +name: Regenerate Tutorials jobs: RegenerateTutorials: @@ -11,7 +11,7 @@ jobs: - name: Clone Wiki uses: actions/checkout@v3 with: - repository: RAMilewski/BOSL2.wiki + repository: revarbat/BOSL2.wiki path: BOSL2.wiki - name: Apt Update diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index b5097fd7..e7ba21ed 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -74,7 +74,7 @@ jobs: - name: Clone Wiki uses: actions/checkout@v3 with: - repository: RAMilewski/BOSL2.wiki + repository: revarbat/BOSL2.wiki path: BOSL2.wiki - name: Apt Update From 695bf455ba126d090bd9e34558ac6a2c20b12667 Mon Sep 17 00:00:00 2001 From: Richard Milewski Date: Sat, 15 Apr 2023 17:54:52 -0700 Subject: [PATCH 7/9] revert repositories 2 --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index e7ba21ed..9c972ef7 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -33,7 +33,7 @@ jobs: - name: Clone Wiki uses: actions/checkout@v3 with: - repository: RAMilewski/BOSL2.wiki + repository: revarbat/BOSL2.wiki path: BOSL2.wiki - name: Apt Update From 6a997dff82d86dcfd2e64e5ae3fb9e392c651e5b Mon Sep 17 00:00:00 2001 From: Richard Milewski Date: Sat, 15 Apr 2023 17:59:40 -0700 Subject: [PATCH 8/9] Update gen_tutorials.yml --- .github/workflows/gen_tutorials.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/gen_tutorials.yml b/.github/workflows/gen_tutorials.yml index efdde5fa..70800be9 100644 --- a/.github/workflows/gen_tutorials.yml +++ b/.github/workflows/gen_tutorials.yml @@ -1,5 +1,5 @@ -on: [workflow_dispatch] name: Regenerate Tutorials +on: [workflow_dispatch] jobs: RegenerateTutorials: From d8669065a825e18ac1733f110bf7e9d53ae08d44 Mon Sep 17 00:00:00 2001 From: Adrian Mariano Date: Sun, 16 Apr 2023 09:05:44 -0400 Subject: [PATCH 9/9] fix stroke bug --- drawing.scad | 3 ++- threading.scad | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/drawing.scad b/drawing.scad index 2396708e..f852e523 100644 --- a/drawing.scad +++ b/drawing.scad @@ -397,7 +397,8 @@ module stroke( // Need 90 deg offset to make wedge perpendicular to path, and the wedge // position depends on whether we turn left (ang<0) or right (ang>0) theta = v_theta(v1) - sign(ang)*90; - ang_eps = 0.1; + ang_eps = sign(ang)/10; + if (!approx(ang,0)) arc(d=widths[i], angle=[theta-ang_eps, theta+ang+ang_eps], wedge=true); } diff --git a/threading.scad b/threading.scad index 7037a313..293e7483 100644 --- a/threading.scad +++ b/threading.scad @@ -181,7 +181,7 @@ // threaded_rod(d=10, l=20, pitch=1.25, left_handed=true, $fa=1, $fs=1); // threaded_rod(d=25, l=20, pitch=2, $fa=1, $fs=1, end_len=1.5, bevel=true); // threaded_rod(d=25, l=20, pitch=2, $fa=1, $fs=1, blunt_start=false); -// Example(BIG,NoAxes): Diamond threading where both left-handed and right-handed nuts travel (in the same direction) on the threaded rod: +// Example(Big,NoAxes): Diamond threading where both left-handed and right-handed nuts travel (in the same direction) on the threaded rod: // $fn=32; // $slop = 0.075; // d = 3/8*INCH;