diff --git a/masks.scad b/masks.scad index c16c6c7..a5e8275 100644 --- a/masks.scad +++ b/masks.scad @@ -78,19 +78,20 @@ module angle_pie_mask( // Module: cylinder_mask() // Usage: Mask objects // cylinder_mask(l, r|d, chamfer, [chamfang], [from_end], [circum], [overage], [ends_only], [orient], [anchor]); -// cylinder_mask(l, r|d, fillet, [circum], [overage], [ends_only], [orient], [anchor]); -// cylinder_mask(l, r|d, [chamfer1|fillet1], [chamfer2|fillet2], [chamfang1], [chamfang2], [from_end], [circum], [overage], [ends_only], [orient], [anchor]); +// cylinder_mask(l, r|d, rounding, [circum], [overage], [ends_only], [orient], [anchor]); +// cylinder_mask(l, r|d, [chamfer1|rounding1], [chamfer2|rounding2], [chamfang1], [chamfang2], [from_end], [circum], [overage], [ends_only], [orient], [anchor]); // Usage: Masking operators // cylinder_mask(l, r|d, chamfer, [chamfang], [from_end], [circum], [overage], [ends_only], [orient], [anchor]) ... -// cylinder_mask(l, r|d, fillet, [circum], [overage], [ends_only], [orient], [anchor]) ... -// cylinder_mask(l, r|d, [chamfer1|fillet1], [chamfer2|fillet2], [chamfang1], [chamfang2], [from_end], [circum], [overage], [ends_only], [orient], [anchor]) ... +// cylinder_mask(l, r|d, rounding, [circum], [overage], [ends_only], [orient], [anchor]) ... +// cylinder_mask(l, r|d, [chamfer1|rounding1], [chamfer2|rounding2], [chamfang1], [chamfang2], [from_end], [circum], [overage], [ends_only], [orient], [anchor]) ... // Description: -// If passed children, bevels/chamfers and/or rounds/fillets one or -// both ends of the origin-centered cylindrical region specified. If -// passed no children, creates a mask to bevel/chamfer and/or round/fillet +// If passed children, bevels/chamfers and/or rounds one or both +// ends of the origin-centered cylindrical region specified. If +// passed no children, creates a mask to bevel/chamfer and/or round // one or both ends of the cylindrical region. Difference the mask -// from the region, making sure the center of the mask object is anchored -// exactly with the center of the cylindrical region to be chamferred. +// from the region, making sure the center of the mask object is +// anchored exactly with the center of the cylindrical region to +// be chamferred. // Arguments: // l = Length of the cylindrical/conical region. // r = Radius of cylindrical region to chamfer. @@ -105,9 +106,9 @@ module angle_pie_mask( // chamfang = Angle of chamfers/bevels in degrees from the length axis of the region. (Default: 45) // chamfang1 = Angle of chamfer/bevel of the axis-negative end of the region, in degrees from the length axis. // chamfang2 = Angle of chamfer/bevel of the axis-positive end of the region, in degrees from the length axis. -// fillet = The radius of the fillets on the ends of the region. Default: none. -// fillet1 = The radius of the fillet on the axis-negative end of the region. -// fillet2 = The radius of the fillet on the axis-positive end of the region. +// rounding = The radius of the rounding on the ends of the region. Default: none. +// rounding1 = The radius of the rounding on the axis-negative end of the region. +// rounding2 = The radius of the rounding on the axis-positive end of the region. // circum = If true, region will circumscribe the circle of the given radius/diameter. // from_end = If true, chamfer/bevel size is measured from end of region. If false, chamfer/bevel is measured outset from the radius of the region. (Default: false) // overage = The extra thickness of the mask. Default: `10`. @@ -120,7 +121,7 @@ module angle_pie_mask( // cylinder_mask(l=100, r1=60, r2=30, chamfer=10, from_end=true); // } // Example: -// cylinder_mask(l=100, r=50, chamfer1=10, fillet2=10) { +// cylinder_mask(l=100, r=50, chamfer1=10, rounding2=10) { // cube([100,50,100], center=true); // } module cylinder_mask( @@ -129,7 +130,7 @@ module cylinder_mask( d=undef, d1=undef, d2=undef, chamfer=undef, chamfer1=undef, chamfer2=undef, chamfang=undef, chamfang1=undef, chamfang2=undef, - fillet=undef, fillet1=undef, fillet2=undef, + rounding=undef, rounding1=undef, rounding2=undef, circum=false, from_end=false, overage=10, ends_only=false, orient=ORIENT_Z, anchor=CENTER @@ -143,13 +144,13 @@ module cylinder_mask( ang2 = first_defined([chamfang2, chamfang, 90-vang]); cham1 = first_defined([chamfer1, chamfer, 0]); cham2 = first_defined([chamfer2, chamfer, 0]); - fil1 = first_defined([fillet1, fillet, 0]); - fil2 = first_defined([fillet2, fillet, 0]); + fil1 = first_defined([rounding1, rounding, 0]); + fil2 = first_defined([rounding2, rounding, 0]); maxd = max(r1,r2); if ($children > 0) { difference() { children(); - cylinder_mask(l=l, r1=sc*r1, r2=sc*r2, chamfer1=cham1, chamfer2=cham2, chamfang1=ang1, chamfang2=ang2, fillet1=fil1, fillet2=fil2, orient=orient, from_end=from_end); + cylinder_mask(l=l, r1=sc*r1, r2=sc*r2, chamfer1=cham1, chamfer2=cham2, chamfang1=ang1, chamfang2=ang2, rounding1=fil1, rounding2=fil2, orient=orient, from_end=from_end); } } else { orient_and_anchor([2*r1, 2*r1, l], orient, anchor, chain=true) { @@ -166,7 +167,7 @@ module cylinder_mask( if (fil1>0) down(l/2+overage) cylinder(r=maxd+overage, h=fil1+overage, center=false); } } - cyl(r1=sc*r1, r2=sc*r2, l=l, chamfer1=cham1, chamfer2=cham2, chamfang1=ang1, chamfang2=ang2, from_end=from_end, fillet1=fil1, fillet2=fil2); + cyl(r1=sc*r1, r2=sc*r2, l=l, chamfer1=cham1, chamfer2=cham2, chamfang1=ang1, chamfang2=ang2, from_end=from_end, rounding1=fil1, rounding2=fil2); } children(); } @@ -371,26 +372,26 @@ module chamfer_hole_mask(r=undef, d=undef, chamfer=0.25, ang=45, from_end=false, -// Section: Filleting/Rounding +// Section: Rounding -// Module: fillet_mask() +// Module: rounding_mask() // Usage: -// fillet_mask(l|h, r, [orient], [anchor]) +// rounding_mask(l|h, r, [orient], [anchor]) // Description: -// Creates a shape that can be used to fillet a vertical 90 degree edge. -// Difference it from the object to be filletted. The center of the mask -// object should align exactly with the edge to be filletted. +// Creates a shape that can be used to round a vertical 90 degree edge. +// Difference it from the object to be rounded. The center of the mask +// object should align exactly with the edge to be rounded. // Arguments: // l = Length of mask. -// r = Radius of the fillet. +// r = Radius of the rounding. // orient = Orientation of the mask. Use the `ORIENT_` constants from `constants.h`. Default: vertical. // anchor = Alignment of the mask. Use the constants from `constants.h`. Default: centered. // Example: // difference() { // cube(size=100, center=false); -// #fillet_mask(l=100, r=25, orient=ORIENT_Z, anchor=UP); +// #rounding_mask(l=100, r=25, orient=ORIENT_Z, anchor=UP); // } -module fillet_mask(l=undef, r=1.0, orient=ORIENT_Z, anchor=CENTER, h=undef) +module rounding_mask(l=undef, r=1.0, orient=ORIENT_Z, anchor=CENTER, h=undef) { l = first_defined([l, h, 1]); sides = quantup(segs(r),4); @@ -406,73 +407,73 @@ module fillet_mask(l=undef, r=1.0, orient=ORIENT_Z, anchor=CENTER, h=undef) } -// Module: fillet_mask_x() +// Module: rounding_mask_x() // Usage: -// fillet_mask_x(l, r, [anchor]) +// rounding_mask_x(l, r, [anchor]) // Description: -// Creates a shape that can be used to fillet a 90 degree edge oriented -// along the X axis. Difference it from the object to be filletted. +// Creates a shape that can be used to round a 90 degree edge oriented +// along the X axis. Difference it from the object to be rounded. // The center of the mask object should align exactly with the edge to -// be filletted. +// be rounded. // Arguments: // l = Length of mask. -// r = Radius of the fillet. +// r = Radius of the rounding. // anchor = Alignment of the mask. Use the constants from `constants.h`. Default: centered. // Example: // difference() { // cube(size=100, center=false); -// #fillet_mask_x(l=100, r=25, anchor=RIGHT); +// #rounding_mask_x(l=100, r=25, anchor=RIGHT); // } -module fillet_mask_x(l=1.0, r=1.0, anchor=CENTER) fillet_mask(l=l, r=r, orient=ORIENT_X, anchor=anchor) children(); +module rounding_mask_x(l=1.0, r=1.0, anchor=CENTER) rounding_mask(l=l, r=r, orient=ORIENT_X, anchor=anchor) children(); -// Module: fillet_mask_y() +// Module: rounding_mask_y() // Usage: -// fillet_mask_y(l, r, [anchor]) +// rounding_mask_y(l, r, [anchor]) // Description: -// Creates a shape that can be used to fillet a 90 degree edge oriented -// along the Y axis. Difference it from the object to be filletted. +// Creates a shape that can be used to round a 90 degree edge oriented +// along the Y axis. Difference it from the object to be rounded. // The center of the mask object should align exactly with the edge to -// be filletted. +// be rounded. // Arguments: // l = Length of mask. -// r = Radius of the fillet. +// r = Radius of the rounding. // anchor = Alignment of the mask. Use the constants from `constants.h`. Default: centered. // Example: // difference() { // cube(size=100, center=false); -// right(100) #fillet_mask_y(l=100, r=25, anchor=BACK); +// right(100) #rounding_mask_y(l=100, r=25, anchor=BACK); // } -module fillet_mask_y(l=1.0, r=1.0, anchor=CENTER) fillet_mask(l=l, r=r, orient=ORIENT_Y, anchor=anchor) children(); +module rounding_mask_y(l=1.0, r=1.0, anchor=CENTER) rounding_mask(l=l, r=r, orient=ORIENT_Y, anchor=anchor) children(); -// Module: fillet_mask_z() +// Module: rounding_mask_z() // Usage: -// fillet_mask_z(l, r, [anchor]) +// rounding_mask_z(l, r, [anchor]) // Description: -// Creates a shape that can be used to fillet a 90 degree edge oriented -// along the Z axis. Difference it from the object to be filletted. +// Creates a shape that can be used to round a 90 degree edge oriented +// along the Z axis. Difference it from the object to be rounded. // The center of the mask object should align exactly with the edge to -// be filletted. +// be rounded. // Arguments: // l = Length of mask. -// r = Radius of the fillet. +// r = Radius of the rounding. // anchor = Alignment of the mask. Use the constants from `constants.h`. Default: centered. // Example: // difference() { // cube(size=100, center=false); -// #fillet_mask_z(l=100, r=25, anchor=UP); +// #rounding_mask_z(l=100, r=25, anchor=UP); // } -module fillet_mask_z(l=1.0, r=1.0, anchor=CENTER) fillet_mask(l=l, r=r, orient=ORIENT_Z, anchor=anchor) children(); +module rounding_mask_z(l=1.0, r=1.0, anchor=CENTER) rounding_mask(l=l, r=r, orient=ORIENT_Z, anchor=anchor) children(); -// Module: fillet() +// Module: rounding() // Usage: -// fillet(fillet, size, [edges]) ... +// rounding(r, size, [edges]) ... // Description: -// Fillets the edges of a cuboid region containing the given children. +// Rounds the edges of a cuboid region containing the given children. // Arguments: -// fillet = Radius of the fillet. (Default: 1) +// r = Radius of the rounding. (Default: 1) // size = The size of the rectangular cuboid we want to chamfer. // edges = Which edges do we want to chamfer. Recommend to use EDGE constants from constants.scad. // Description: @@ -484,45 +485,45 @@ module fillet_mask_z(l=1.0, r=1.0, anchor=CENTER) fillet_mask(l=l, r=r, orient=O // [X+Y+, X-Y+, X-Y-, X+Y-] // ] // Example(FR): -// fillet(fillet=10, size=[50,100,150], $fn=24) { +// rounding(r=10, size=[50,100,150], $fn=24) { // cube(size=[50,100,150], center=true); // } // Example(FR,FlatSpin): -// fillet(fillet=10, size=[50,50,75], edges=EDGES_TOP - EDGE_TOP_LF + EDGE_FR_RT, $fn=24) { +// rounding(r=10, size=[50,50,75], edges=EDGES_TOP - EDGE_TOP_LF + EDGE_FR_RT, $fn=24) { // cube(size=[50,50,75], center=true); // } -module fillet(fillet=1, size=[1,1,1], edges=EDGES_ALL) +module rounding(r=1, size=[1,1,1], edges=EDGES_ALL) { difference() { children(); difference() { cube(size, center=true); - cuboid(size+[1,1,1]*0.01, fillet=fillet, edges=edges, trimcorners=true); + cuboid(size+[1,1,1]*0.01, rounding=r, edges=edges, trimcorners=true); } } } -// Module: fillet_angled_edge_mask() +// Module: rounding_angled_edge_mask() // Usage: -// fillet_angled_edge_mask(h, r, [ang], [orient], [anchor]); +// rounding_angled_edge_mask(h, r, [ang], [orient], [anchor]); // Description: -// Creates a vertical mask that can be used to fillet the edge where two +// Creates a vertical mask that can be used to round the edge where two // face meet, at any arbitrary angle. Difference it from the object to -// be filletted. The center of the mask should align exactly with the -// edge to be filletted. +// be rounded. The center of the mask should align exactly with the +// edge to be rounded. // Arguments: // h = height of vertical mask. -// r = radius of the fillet. +// r = radius of the rounding. // ang = angle that the planes meet at. // orient = Orientation of the mask. Use the `ORIENT_` constants from `constants.h`. Default: `ORIENT_Z`. // anchor = Alignment of the mask. Use the constants from `constants.h`. Default: `CENTER`. // Example: // difference() { // angle_pie_mask(ang=70, h=50, d=100); -// #fillet_angled_edge_mask(h=51, r=20.0, ang=70, $fn=32); +// #rounding_angled_edge_mask(h=51, r=20.0, ang=70, $fn=32); // } -module fillet_angled_edge_mask(h=1.0, r=1.0, ang=90, orient=ORIENT_Z, anchor=CENTER) +module rounding_angled_edge_mask(h=1.0, r=1.0, ang=90, orient=ORIENT_Z, anchor=CENTER) { sweep = 180-ang; n = ceil(segs(r)*sweep/360); @@ -545,16 +546,16 @@ module fillet_angled_edge_mask(h=1.0, r=1.0, ang=90, orient=ORIENT_Z, anchor=CEN } -// Module: fillet_angled_corner_mask() +// Module: rounding_angled_corner_mask() // Usage: -// fillet_angled_corner_mask(fillet, ang, [orient], [anchor]); +// rounding_angled_corner_mask(r, ang, [orient], [anchor]); // Description: -// Creates a shape that can be used to fillet the corner of an angle. -// Difference it from the object to be filletted. The center of the mask -// object should align exactly with the point of the corner to be filletted. +// Creates a shape that can be used to round the corner of an angle. +// Difference it from the object to be rounded. The center of the mask +// object should align exactly with the point of the corner to be rounded. // Arguments: -// fillet = radius of the fillet. -// ang = angle between planes that you need to fillet the corner of. +// r = Radius of the rounding. +// ang = Angle between planes that you need to round the corner of. // orient = Orientation of the mask. Use the `ORIENT_` constants from `constants.h`. Default: `ORIENT_Z`. // anchor = Alignment of the mask. Use the constants from `constants.h`. Default: `CENTER`. // Example: @@ -562,26 +563,26 @@ module fillet_angled_edge_mask(h=1.0, r=1.0, ang=90, orient=ORIENT_Z, anchor=CEN // difference() { // angle_pie_mask(ang=ang, h=50, r=200); // up(50/2) { -// #fillet_angled_corner_mask(fillet=20, ang=ang); -// zrot_copies([0, ang]) right(200/2) fillet_mask_x(l=200, r=20); +// #rounding_angled_corner_mask(r=20, ang=ang); +// zrot_copies([0, ang]) right(200/2) rounding_mask_x(l=200, r=20); // } -// fillet_angled_edge_mask(h=51, r=20, ang=ang); +// rounding_angled_edge_mask(h=51, r=20, ang=ang); // } -module fillet_angled_corner_mask(fillet=1.0, ang=90, orient=ORIENT_Z, anchor=CENTER) +module rounding_angled_corner_mask(r=1.0, ang=90, orient=ORIENT_Z, anchor=CENTER) { - dx = fillet / tan(ang/2); + dx = r / tan(ang/2); dx2 = dx / cos(ang/2) + 1; - fn = quantup(segs(fillet), 4); - orient_and_anchor([2*dx2, 2*dx2, fillet*2], orient, anchor, chain=true) { + fn = quantup(segs(r), 4); + orient_and_anchor([2*dx2, 2*dx2, r*2], orient, anchor, chain=true) { difference() { - down(fillet) cylinder(r=dx2, h=fillet+1, center=false); + down(r) cylinder(r=dx2, h=r+1, center=false); yflip_copy() { - translate([dx, fillet, -fillet]) { + translate([dx, r, -r]) { hull() { - sphere(r=fillet, $fn=fn); - down(fillet*3) sphere(r=fillet, $fn=fn); + sphere(r=r, $fn=fn); + down(r*3) sphere(r=r, $fn=fn); zrot_copies([0,ang]) { - right(fillet*3) sphere(r=fillet, $fn=fn); + right(r*3) sphere(r=r, $fn=fn); } } } @@ -592,27 +593,27 @@ module fillet_angled_corner_mask(fillet=1.0, ang=90, orient=ORIENT_Z, anchor=CEN } -// Module: fillet_corner_mask() +// Module: rounding_corner_mask() // Usage: -// fillet_corner_mask(r, [anchor]); +// rounding_corner_mask(r, [anchor]); // Description: -// Creates a shape that you can use to round 90 degree corners on a fillet. -// Difference it from the object to be filletted. The center of the mask -// object should align exactly with the corner to be filletted. +// Creates a shape that you can use to round 90 degree corners. +// Difference it from the object to be rounded. The center of the mask +// object should align exactly with the corner to be rounded. // Arguments: -// r = radius of corner fillet. +// r = Radius of corner rounding. // anchor = Alignment of the mask. Use the constants from `constants.h`. Default: `CENTER`. // Example: -// fillet_corner_mask(r=20.0); +// rounding_corner_mask(r=20.0); // Example: // difference() { // cube(size=[30, 50, 80], center=true); -// translate([0, 25, 40]) fillet_mask_x(l=31, r=15); -// translate([15, 0, 40]) fillet_mask_y(l=51, r=15); -// translate([15, 25, 0]) fillet_mask_z(l=81, r=15); -// translate([15, 25, 40]) #fillet_corner_mask(r=15); +// translate([0, 25, 40]) rounding_mask_x(l=31, r=15); +// translate([15, 0, 40]) rounding_mask_y(l=51, r=15); +// translate([15, 25, 0]) rounding_mask_z(l=81, r=15); +// translate([15, 25, 40]) #rounding_corner_mask(r=15); // } -module fillet_corner_mask(r=1.0, anchor=CENTER) +module rounding_corner_mask(r=1.0, anchor=CENTER) { orient_and_anchor([2*r, 2*r, 2*r], ORIENT_Z, anchor, chain=true) { difference() { @@ -626,46 +627,46 @@ module fillet_corner_mask(r=1.0, anchor=CENTER) } -// Module: fillet_cylinder_mask() +// Module: rounding_cylinder_mask() // Usage: -// fillet_cylinder_mask(r, fillet); +// rounding_cylinder_mask(r, rounding); // Description: // Create a mask that can be used to round the end of a cylinder. -// Difference it from the cylinder to be filletted. The center of the +// Difference it from the cylinder to be rounded. The center of the // mask object should align exactly with the center of the end of the -// cylinder to be filletted. +// cylinder to be rounded. // Arguments: -// r = radius of cylinder to fillet. (Default: 1.0) -// fillet = radius of the edge filleting. (Default: 0.25) +// r = Radius of cylinder. (Default: 1.0) +// rounding = Radius of the edge rounding. (Default: 0.25) // Example: // difference() { // cylinder(r=50, h=50, center=false); -// up(50) #fillet_cylinder_mask(r=50, fillet=10); +// up(50) #rounding_cylinder_mask(r=50, rounding=10); // } // Example: // difference() { // cylinder(r=50, h=100, center=false); -// up(75) fillet_cylinder_mask(r=50, fillet=10); +// up(75) rounding_cylinder_mask(r=50, rounding=10); // } -module fillet_cylinder_mask(r=1.0, fillet=0.25) +module rounding_cylinder_mask(r=1.0, rounding=0.25) { - cylinder_mask(l=fillet*3, r=r, fillet2=fillet, overage=fillet, ends_only=true, anchor=DOWN) children(); + cylinder_mask(l=rounding*3, r=r, rounding2=rounding, overage=rounding, ends_only=true, anchor=DOWN) children(); } -// Module: fillet_hole_mask() +// Module: rounding_hole_mask() // Usage: -// fillet_hole_mask(r|d, fillet); +// rounding_hole_mask(r|d, rounding); // Description: // Create a mask that can be used to round the edge of a circular hole. -// Difference it from the hole to be filletted. The center of the +// Difference it from the hole to be rounded. The center of the // mask object should align exactly with the center of the end of the -// hole to be filletted. +// hole to be rounded. // Arguments: -// r = Radius of hole to fillet. -// d = Diameter of hole to fillet. -// fillet = Radius of the filleting. (Default: 0.25) +// r = Radius of hole. +// d = Diameter of hole to rounding. +// rounding = Radius of the rounding. (Default: 0.25) // overage = The extra thickness of the mask. Default: `0.1`. // orient = Orientation of the mask. Use the `ORIENT_` constants from `constants.h`. Default: `ORIENT_Z`. // anchor = Alignment of the mask. Use the constants from `constants.h`. Default: `CENTER`. @@ -673,18 +674,18 @@ module fillet_cylinder_mask(r=1.0, fillet=0.25) // difference() { // cube([150,150,100], center=true); // cylinder(r=50, h=100.1, center=true); -// up(50) #fillet_hole_mask(r=50, fillet=10); +// up(50) #rounding_hole_mask(r=50, rounding=10); // } // Example: -// fillet_hole_mask(r=40, fillet=20, $fa=2, $fs=2); -module fillet_hole_mask(r=undef, d=undef, fillet=0.25, overage=0.1, orient=ORIENT_Z, anchor=CENTER) +// rounding_hole_mask(r=40, rounding=20, $fa=2, $fs=2); +module rounding_hole_mask(r=undef, d=undef, rounding=0.25, overage=0.1, orient=ORIENT_Z, anchor=CENTER) { r = get_radius(r=r, d=d, dflt=1); - orient_and_anchor([2*(r+fillet), 2*(r+fillet), fillet*2], orient, anchor, chain=true) { + orient_and_anchor([2*(r+rounding), 2*(r+rounding), rounding*2], orient, anchor, chain=true) { rotate_extrude(convexity=4) { difference() { - right(r-overage) fwd(fillet) square(fillet+overage, center=false); - right(r+fillet) fwd(fillet) circle(r=fillet); + right(r-overage) fwd(rounding) square(rounding+overage, center=false); + right(r+rounding) fwd(rounding) circle(r=rounding); } } children(); diff --git a/metric_screws.scad b/metric_screws.scad index 1a16f88..31792e4 100644 --- a/metric_screws.scad +++ b/metric_screws.scad @@ -576,7 +576,7 @@ module metric_bolt( } } } else if (headtype == "pan") { - cyl(l=H*0.75, d=D, fillet2=H*0.75/2, anchor=DOWN); + cyl(l=H*0.75, d=D, rounding2=H*0.75/2, anchor=DOWN); } else if (headtype == "round") { top_half(D) zscale(H*0.75/D*2) sphere(d=D); } else if (headtype == "button") { diff --git a/shapes.scad b/shapes.scad index ff02cff..1618e7b 100644 --- a/shapes.scad +++ b/shapes.scad @@ -43,14 +43,14 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // Module: cuboid() // // Description: -// Creates a cube or cuboid object, with optional chamfering or filleting/rounding. +// Creates a cube or cuboid object, with optional chamfering or rounding. // // Arguments: // size = The size of the cube. // chamfer = Size of chamfer, inset from sides. Default: No chamferring. -// fillet = Radius of fillet for edge rounding. Default: No filleting. -// edges = Edges to chamfer/fillet. Use `EDGE` constants from constants.scad. Default: `EDGES_ALL` -// trimcorners = If true, rounds or chamfers corners where three chamferred/filleted edges meet. Default: `true` +// rounding = Radius of the edge rounding. Default: No rounding. +// edges = Edges to chamfer/rounding. Use `EDGE` constants from constants.scad. Default: `EDGES_ALL` +// trimcorners = If true, rounds or chamfers corners where three chamferred/rounded edges meet. Default: `true` // p1 = Align the cuboid's corner at `p1`, if given. Forces `anchor=ALLNEG`. // p2 = If given with `p1`, defines the cornerpoints of the cuboid. // anchor = The side of the part to anchor to. Use constants from `constants.scad`. Default: `CENTER` @@ -69,20 +69,20 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // Example: Rectangular cube with chamferred edges, without trimmed corners. // cuboid([30,40,50], chamfer=5, trimcorners=false); // Example: Rectangular cube with rounded edges and corners. -// cuboid([30,40,50], fillet=10); +// cuboid([30,40,50], rounding=10); // Example: Rectangular cube with rounded edges, without trimmed corners. -// cuboid([30,40,50], fillet=10, trimcorners=false); +// cuboid([30,40,50], rounding=10, trimcorners=false); // Example: Rectangular cube with only some edges chamferred. // cuboid([30,40,50], chamfer=5, edges=EDGE_TOP_FR+EDGE_TOP_RT+EDGE_FR_RT, $fn=24); // Example: Rectangular cube with only some edges rounded. -// cuboid([30,40,50], fillet=5, edges=EDGE_TOP_FR+EDGE_TOP_RT+EDGE_FR_RT, $fn=24); +// cuboid([30,40,50], rounding=5, edges=EDGE_TOP_FR+EDGE_TOP_RT+EDGE_FR_RT, $fn=24); // Example: Standard Connectors // cuboid(40, chamfer=5) show_anchors(); module cuboid( size=[1,1,1], p1=undef, p2=undef, chamfer=undef, - fillet=undef, + rounding=undef, edges=EDGES_ALL, trimcorners=true, anchor=CENTER, @@ -92,16 +92,16 @@ module cuboid( if (!is_undef(p1)) { if (!is_undef(p2)) { translate(pointlist_bounds([p1,p2])[0]) { - cuboid(size=vabs(p2-p1), chamfer=chamfer, fillet=fillet, edges=edges, trimcorners=trimcorners, anchor=ALLNEG) children(); + cuboid(size=vabs(p2-p1), chamfer=chamfer, rounding=rounding, edges=edges, trimcorners=trimcorners, anchor=ALLNEG) children(); } } else { translate(p1) { - cuboid(size=size, chamfer=chamfer, fillet=fillet, edges=edges, trimcorners=trimcorners, anchor=ALLNEG) children(); + cuboid(size=size, chamfer=chamfer, rounding=rounding, edges=edges, trimcorners=trimcorners, anchor=ALLNEG) children(); } } } else { if (chamfer != undef) assert(chamfer <= min(size)/2, "chamfer must be smaller than half the cube width, length, or height."); - if (fillet != undef) assert(fillet <= min(size)/2, "fillet must be smaller than half the cube width, length, or height."); + if (rounding != undef) assert(rounding <= min(size)/2, "rounding radius must be smaller than half the cube width, length, or height."); majrots = [[0,90,0], [90,0,0], [0,0,0]]; orient_and_anchor(size, ORIENT_Z, anchor, center=center, noncentered=ALLPOS, chain=true) { if (chamfer != undef) { @@ -141,20 +141,20 @@ module cuboid( } } } - } else if (fillet != undef) { - sides = quantup(segs(fillet),4); + } else if (rounding != undef) { + sides = quantup(segs(rounding),4); sc = 1/cos(180/sides); - isize = [for (v = size) max(0.001, v-2*fillet)]; + isize = [for (v = size) max(0.001, v-2*rounding)]; if (edges == EDGES_ALL) { minkowski() { cube(isize, center=true); if (trimcorners) { - sphere(r=fillet*sc, $fn=sides); + sphere(r=rounding*sc, $fn=sides); } else { intersection() { - zrot(180/sides) cylinder(r=fillet*sc, h=fillet*2, center=true, $fn=sides); - rotate([90,0,0]) zrot(180/sides) cylinder(r=fillet*sc, h=fillet*2, center=true, $fn=sides); - rotate([0,90,0]) zrot(180/sides) cylinder(r=fillet*sc, h=fillet*2, center=true, $fn=sides); + zrot(180/sides) cylinder(r=rounding*sc, h=rounding*2, center=true, $fn=sides); + rotate([90,0,0]) zrot(180/sides) cylinder(r=rounding*sc, h=rounding*2, center=true, $fn=sides); + rotate([0,90,0]) zrot(180/sides) cylinder(r=rounding*sc, h=rounding*2, center=true, $fn=sides); } } } @@ -167,10 +167,10 @@ module cuboid( if (edges[axis][i]>0) { difference() { translate(vmul(EDGE_OFFSETS[axis][i], size/2)) { - rotate(majrots[axis]) cube([fillet*2, fillet*2, size[axis]+0.1], center=true); + rotate(majrots[axis]) cube([rounding*2, rounding*2, size[axis]+0.1], center=true); } - translate(vmul(EDGE_OFFSETS[axis][i], size/2 - [1,1,1]*fillet)) { - rotate(majrots[axis]) zrot(180/sides) cylinder(h=size[axis]+0.2, r=fillet*sc, center=true, $fn=sides); + translate(vmul(EDGE_OFFSETS[axis][i], size/2 - [1,1,1]*rounding)) { + rotate(majrots[axis]) zrot(180/sides) cylinder(h=size[axis]+0.2, r=rounding*sc, center=true, $fn=sides); } } } @@ -182,10 +182,10 @@ module cuboid( if (corner_edge_count(edges, [xa,ya,za]) > 2) { difference() { translate(vmul([xa,ya,za], size/2)) { - cube(fillet*2, center=true); + cube(rounding*2, center=true); } - translate(vmul([xa,ya,za], size/2-[1,1,1]*fillet)) { - zrot(180/sides) sphere(r=fillet*sc*sc, $fn=sides); + translate(vmul([xa,ya,za], size/2-[1,1,1]*rounding)) { + zrot(180/sides) sphere(r=rounding*sc*sc, $fn=sides); } } } @@ -291,9 +291,9 @@ module prismoid( // size1 = [width, length] of the bottom of the prism. // size2 = [width, length] of the top of the prism. // h = Height of the prism. -// r = radius of vertical edge fillets. -// r1 = radius of vertical edge fillets at bottom. -// r2 = radius of vertical edge fillets at top. +// r = radius of vertical edge rounding. +// r1 = radius of vertical edge rounding at bottom. +// r2 = radius of vertical edge rounding at top. // shift = [x, y] amount to shift the center of the top with respect to the center of the bottom. // orient = Orientation of the prismoid. Use the `ORIENT_` constants from `constants.scad`. Default: `ORIENT_Z`. // anchor = Alignment of the prismoid by the axis-negative (`size1`) end. Use the constants from `constants.scad`. Default: `BOTTOM`. @@ -410,10 +410,10 @@ module right_triangle(size=[1, 1, 1], orient=ORIENT_Y, anchor=ALLNEG, center=und // // Description: // Creates cylinders in various anchors and orientations, -// with optional fillets and chamfers. You can use `r` and `l` +// with optional rounding and chamfers. You can use `r` and `l` // interchangably, and all variants allow specifying size // by either `r`|`d`, or `r1`|`d1` and `r2`|`d2`. -// Note that that chamfers and fillets cannot cross the +// Note that that chamfers and rounding cannot cross the // midpoint of the cylinder's length. // // Usage: Normal Cylinders @@ -426,11 +426,11 @@ module right_triangle(size=[1, 1, 1], orient=ORIENT_Y, anchor=ALLNEG, center=und // cyl(l|h, r|d, chamfer2, [chamfang2], [from_end], [circum], [realign], [orient], [anchor], [center]); // cyl(l|h, r|d, chamfer1, chamfer2, [chamfang1], [chamfang2], [from_end], [circum], [realign], [orient], [anchor], [center]); // -// Usage: Rounded/Filleted Cylinders -// cyl(l|h, r|d, fillet, [circum], [realign], [orient], [anchor], [center]); -// cyl(l|h, r|d, fillet1, [circum], [realign], [orient], [anchor], [center]); -// cyl(l|h, r|d, fillet2, [circum], [realign], [orient], [anchor], [center]); -// cyl(l|h, r|d, fillet1, fillet2, [circum], [realign], [orient], [anchor], [center]); +// Usage: Rounded End Cylinders +// cyl(l|h, r|d, rounding, [circum], [realign], [orient], [anchor], [center]); +// cyl(l|h, r|d, rounding1, [circum], [realign], [orient], [anchor], [center]); +// cyl(l|h, r|d, rounding2, [circum], [realign], [orient], [anchor], [center]); +// cyl(l|h, r|d, rounding1, rounding2, [circum], [realign], [orient], [anchor], [center]); // // Arguments: // l / h = Length of cylinder along oriented axis. (Default: 1.0) @@ -448,9 +448,9 @@ module right_triangle(size=[1, 1, 1], orient=ORIENT_Y, anchor=ALLNEG, center=und // chamfang1 = The angle in degrees of the chamfer on the axis-negative end of the cylinder. // chamfang2 = The angle in degrees of the chamfer on the axis-positive end of the cylinder. // from_end = If true, chamfer is measured from the end of the cylinder, instead of inset from the edge. Default: `false`. -// fillet = The radius of the fillets on the ends of the cylinder. Default: none. -// fillet1 = The radius of the fillet on the axis-negative end of the cylinder. -// fillet2 = The radius of the fillet on the axis-positive end of the cylinder. +// rounding = The radius of the rounding on the ends of the cylinder. Default: none. +// rounding1 = The radius of the rounding on the axis-negative end of the cylinder. +// rounding2 = The radius of the rounding on the axis-positive end of the cylinder. // realign = If true, rotate the cylinder by half the angle of one face. // orient = Orientation of the cylinder. Use the `ORIENT_` constants from `constants.scad`. Default: vertical. // anchor = Alignment of the cylinder. Use the constants from `constants.scad`. Default: centered. @@ -476,19 +476,19 @@ module right_triangle(size=[1, 1, 1], orient=ORIENT_Y, anchor=ALLNEG, center=und // cyl(l=40, d=40, chamfer=7, chamfang=30, from_end=true); // } // -// Example: Rounding/Filleting -// cyl(l=40, d=40, fillet=10); +// Example: Rounding +// cyl(l=40, d=40, rounding=10); // -// Example: Heterogenous Chamfers and Fillets +// Example: Heterogenous Chamfers and Rounding // ydistribute(80) { // // Shown Front to Back. -// cyl(l=40, d=40, fillet1=15, orient=ORIENT_X); +// cyl(l=40, d=40, rounding1=15, orient=ORIENT_X); // cyl(l=40, d=40, chamfer2=5, orient=ORIENT_X); -// cyl(l=40, d=40, chamfer1=12, fillet2=10, orient=ORIENT_X); +// cyl(l=40, d=40, chamfer1=12, rounding2=10, orient=ORIENT_X); // } // // Example: Putting it all together -// cyl(l=40, d1=25, d2=15, chamfer1=10, chamfang1=30, from_end=true, fillet2=5); +// cyl(l=40, d1=25, d2=15, chamfer1=10, chamfang1=30, from_end=true, rounding2=5); // // Example: Standard Connectors // xdistribute(40) { @@ -502,7 +502,7 @@ module cyl( d=undef, d1=undef, d2=undef, chamfer=undef, chamfer1=undef, chamfer2=undef, chamfang=undef, chamfang1=undef, chamfang2=undef, - fillet=undef, fillet1=undef, fillet2=undef, + rounding=undef, rounding1=undef, rounding2=undef, circum=false, realign=false, from_end=false, orient=ORIENT_Z, anchor=CENTER, center=undef ) { @@ -516,7 +516,7 @@ module cyl( phi = atan2(l, r1-r2); orient_and_anchor(size1, orient, anchor, center=center, size2=size2, geometry="cylinder", chain=true) { zrot(realign? 180/sides : 0) { - if (!any_defined([chamfer, chamfer1, chamfer2, fillet, fillet1, fillet2])) { + if (!any_defined([chamfer, chamfer1, chamfer2, rounding, rounding1, rounding2])) { cylinder(h=l, r1=r1*sc, r2=r2*sc, center=true, $fn=sides); } else { vang = atan2(l, r1-r2)/2; @@ -524,8 +524,8 @@ module cyl( chang2 = 90-first_defined([chamfang2, chamfang, 90-vang]); cham1 = first_defined([chamfer1, chamfer]) * (from_end? 1 : tan(chang1)); cham2 = first_defined([chamfer2, chamfer]) * (from_end? 1 : tan(chang2)); - fil1 = first_defined([fillet1, fillet]); - fil2 = first_defined([fillet2, fillet]); + fil1 = first_defined([rounding1, rounding]); + fil2 = first_defined([rounding2, rounding]); if (chamfer != undef) { assert(chamfer <= r1, "chamfer is larger than the r1 radius of the cylinder."); assert(chamfer <= r2, "chamfer is larger than the r2 radius of the cylinder."); @@ -539,18 +539,18 @@ module cyl( assert(cham2 <= r2, "chamfer2 is larger than the r2 radius of the cylinder."); assert(cham2 <= l/2, "chamfer2 is larger than half the length of the cylinder."); } - if (fillet != undef) { - assert(fillet <= r1, "fillet is larger than the r1 radius of the cylinder."); - assert(fillet <= r2, "fillet is larger than the r2 radius of the cylinder."); - assert(fillet <= l/2, "fillet is larger than half the length of the cylinder."); + if (rounding != undef) { + assert(rounding <= r1, "rounding is larger than the r1 radius of the cylinder."); + assert(rounding <= r2, "rounding is larger than the r2 radius of the cylinder."); + assert(rounding <= l/2, "rounding is larger than half the length of the cylinder."); } if (fil1 != undef) { - assert(fil1 <= r1, "fillet1 is larger than the r1 radius of the cylinder."); - assert(fil1 <= l/2, "fillet1 is larger than half the length of the cylinder."); + assert(fil1 <= r1, "rounding1 is larger than the r1 radius of the cylinder."); + assert(fil1 <= l/2, "rounding1 is larger than half the length of the cylinder."); } if (fil2 != undef) { - assert(fil2 <= r2, "fillet2 is larger than the r1 radius of the cylinder."); - assert(fil2 <= l/2, "fillet2 is larger than half the length of the cylinder."); + assert(fil2 <= r2, "rounding2 is larger than the r1 radius of the cylinder."); + assert(fil2 <= l/2, "rounding2 is larger than half the length of the cylinder."); } dy1 = first_defined([cham1, fil1, 0]); diff --git a/transforms.scad b/transforms.scad index 5303dd1..0840a17 100644 --- a/transforms.scad +++ b/transforms.scad @@ -2120,7 +2120,7 @@ module extrude_arc(arc=90, sa=0, r=undef, d=undef, orient=ORIENT_Z, anchor=CENTE // Arguments: // r = Radius to round all concave and convex corners to. // or = Radius to round only outside (convex) corners to. Use instead of `r`. -// ir = Radius to round/fillet only inside (concave) corners to. Use instead of `r`. +// ir = Radius to round only inside (concave) corners to. Use instead of `r`. // Examples(2D): // round2d(r=10) {square([40,100], center=true); square([100,40], center=true);} // round2d(or=10) {square([40,100], center=true); square([100,40], center=true);} @@ -2142,9 +2142,9 @@ module round2d(r, or, ir) // Arguments: // thickness = Thickness of the shell. Positive to expand outward, negative to shrink inward, or a two-element list to do both. // or = Radius to round convex corners/pointy bits on the outside of the shell. -// ir = Radius to round/fillet concave corners on the outside of the shell. +// ir = Radius to round concave corners on the outside of the shell. // round = Radius to round convex corners/pointy bits on the inside of the shell. -// fill = Radius to round/fillet concave corners on the inside of the shell. +// fill = Radius to round concave corners on the inside of the shell. // Examples(2D): // shell2d(10) {square([40,100], center=true); square([100,40], center=true);} // shell2d(-10) {square([40,100], center=true); square([100,40], center=true);} diff --git a/wiring.scad b/wiring.scad index 977db1b..e6e9406 100644 --- a/wiring.scad +++ b/wiring.scad @@ -95,20 +95,20 @@ function hex_offsets(n, d, lev=0, arr=[]) = // Module: wiring() // Description: // Returns a 3D object representing a bundle of wires that follow a given path, -// with the corners filleted to a given radius. There are 17 base wire colors. +// with the corners rounded to a given radius. There are 17 base wire colors. // If you have more than 17 wires, colors will get re-used. // Usage: -// wiring(path, wires, [wirediam], [fillet], [wirenum], [bezsteps]); +// wiring(path, wires, [wirediam], [rounding], [wirenum], [bezsteps]); // Arguments: // path = The 3D polyline path that the wire bundle should follow. // wires = The number of wires in the wiring bundle. // wirediam = The diameter of each wire in the bundle. -// fillet = The radius that the path corners will be filleted to. +// rounding = The radius that the path corners will be rounded to. // wirenum = The first wire's offset into the color table. -// bezsteps = The corner fillets in the path will be converted into this number of segments. +// bezsteps = The corner roundings in the path will be converted into this number of segments. // Example: -// wiring([[50,0,-50], [50,50,-50], [0,50,-50], [0,0,-50], [0,0,0]], fillet=10, wires=13); -module wiring(path, wires, wirediam=2, fillet=10, wirenum=0, bezsteps=12) { +// wiring([[50,0,-50], [50,50,-50], [0,50,-50], [0,0,-50], [0,0,0]], rounding=10, wires=13); +module wiring(path, wires, wirediam=2, rounding=10, wirenum=0, bezsteps=12) { colors = [ [0.2, 0.2, 0.2], [1.0, 0.2, 0.2], [0.0, 0.8, 0.0], [1.0, 1.0, 0.2], [0.3, 0.3, 1.0], [1.0, 1.0, 1.0], [0.7, 0.5, 0.0], [0.5, 0.5, 0.5], @@ -117,7 +117,7 @@ module wiring(path, wires, wirediam=2, fillet=10, wirenum=0, bezsteps=12) { [0.6, 0.6, 1.0], ]; offsets = hex_offsets(wires, wirediam); - bezpath = fillet_path(path, fillet); + bezpath = fillet_path(path, rounding); poly = simplify3d_path(path3d(bezier_polyline(bezpath, bezsteps))); n = max(segs(wirediam), 8); r = wirediam/2;