mirror of
https://github.com/BelfrySCAD/BOSL2.git
synced 2024-12-29 16:29:40 +00:00
commit
623e23fcf4
2 changed files with 23 additions and 15 deletions
|
@ -12,8 +12,8 @@
|
|||
|
||||
|
||||
// Section: Adaptive Children Using `$` Variables
|
||||
// The distributor methods create multiple copies of their children and place them in various ways. While there are many occasions where
|
||||
// a model demands multiple identical copies of an object, this framework is more powerful than
|
||||
// The distributor methods create multiple copies of their children and place them in various ways. While many models
|
||||
// require multiple identical copies of an object, this framework is more powerful than
|
||||
// might be immediately obvious because of `$` variables. The distributors set `$` variables that the children can use to change their
|
||||
// behavior from one child to the next within a single distributor invocation. This means the copies need not be identical.
|
||||
// The {{xcopies()}} module sets `$idx` to the index number of the copy, and in the examples below we use `$idx`, but the various
|
||||
|
@ -1097,8 +1097,7 @@ function yrot_copies(rots=[], cp=[0,0,0], n, sa=0, r, d, subrot=true, p=_NO_ARG)
|
|||
// r = If given, makes a ring of child copies around the Z axis, at the given radius. Default: 0
|
||||
// d = If given, makes a ring of child copies around the Z axis, at the given diameter.
|
||||
// subrot = If false, don't sub-rotate children as they are copied around the ring. Default: true
|
||||
// When called as a function, *without* a `p=` argument, returns a list of transformation matrices, one for each copy.
|
||||
// When called as a function, *with* a `p=` argument, returns a list of transformed copies of `p=`.
|
||||
// p = Either a point, pointlist, VNF or Bezier patch to be translated when used as a function.
|
||||
//
|
||||
// Side Effects:
|
||||
// `$idx` is set to the index value of each child copy.
|
||||
|
|
|
@ -175,7 +175,7 @@ function cube(size=1, center, anchor, spin=0, orient=UP) =
|
|||
// trimcorners=false, $fn=24
|
||||
// );
|
||||
// Example: Roundings and Chamfers can be as large as the full size of the cuboid, so long as the edges would not interfere.
|
||||
// cuboid([4,2,1], rounding=2, edges=[FWD+RIGHT,BACK+LEFT]);
|
||||
// cuboid([40,20,10], rounding=20, edges=[FWD+RIGHT,BACK+LEFT]);
|
||||
// Example: Standard Connectors
|
||||
// cuboid(40) show_anchors();
|
||||
|
||||
|
@ -3099,15 +3099,17 @@ module path_text(path, text, font, size, thickness, lettersize, offset=0, revers
|
|||
// Section: Miscellaneous
|
||||
|
||||
|
||||
// Module: interior_fillet()
|
||||
|
||||
|
||||
// Module: fillet()
|
||||
//
|
||||
// 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.
|
||||
//
|
||||
// Usage: Typical
|
||||
// interior_fillet(l, r, [ang], [overlap], ...) [ATTACHMENTS];
|
||||
// interior_fillet(l|length=|h=|height=, d=, [ang=], [overlap=], ...) [ATTACHMENTS];
|
||||
// fillet(l, r, [ang], [overlap], ...) [ATTACHMENTS];
|
||||
// fillet(l|length=|h=|height=, d=, [ang=], [overlap=], ...) [ATTACHMENTS];
|
||||
//
|
||||
// Arguments:
|
||||
// l / length / h / height = Length of edge to fillet.
|
||||
|
@ -3127,26 +3129,33 @@ module path_text(path, text, font, size, thickness, lettersize, offset=0, revers
|
|||
// translate([0,-10,-4])
|
||||
// cube([20, 20, 4], anchor=BOTTOM);
|
||||
// color("green")
|
||||
// interior_fillet(
|
||||
// fillet(
|
||||
// l=20, r=10,
|
||||
// spin=180, orient=RIGHT
|
||||
// );
|
||||
// }
|
||||
//
|
||||
// Examples:
|
||||
// interior_fillet(l=10, r=20, ang=60);
|
||||
// interior_fillet(l=10, r=20, ang=90);
|
||||
// interior_fillet(l=10, r=20, ang=120);
|
||||
// fillet(l=10, r=20, ang=60);
|
||||
// fillet(l=10, r=20, ang=90);
|
||||
// fillet(l=10, r=20, ang=120);
|
||||
//
|
||||
// Example: Using with Attachments
|
||||
// cube(50,center=true) {
|
||||
// position(FRONT+LEFT)
|
||||
// interior_fillet(l=50, r=10, spin=-90);
|
||||
// fillet(l=50, r=10, spin=-90);
|
||||
// position(BOT+FRONT)
|
||||
// interior_fillet(l=50, r=10, spin=180, orient=RIGHT);
|
||||
// fillet(l=50, r=10, spin=180, orient=RIGHT);
|
||||
// }
|
||||
|
||||
module interior_fillet(l=1.0, r, ang=90, overlap=0.01, d, length, h, height, anchor=CENTER, spin=0, orient=UP) {
|
||||
module interior_fillet(l=1.0, r, ang=90, overlap=0.01, d, length, h, height, anchor=CENTER, spin=0, orient=UP)
|
||||
{
|
||||
deprecate("fillet");
|
||||
fillet(l,r,ang,overlap,d,length,h,height,anchor,spin,orient);
|
||||
}
|
||||
|
||||
|
||||
module fillet(l=1.0, r, ang=90, overlap=0.01, d, length, h, height, anchor=CENTER, spin=0, orient=UP) {
|
||||
l = one_defined([l,length,h,height],"l,length,h,height");
|
||||
r = get_radius(r=r, d=d, dflt=1);
|
||||
steps = ceil(segs(r)*(180-ang)/360);
|
||||
|
|
Loading…
Reference in a new issue