AM
Adrian Mariano
Fri, May 23, 2025 8:10 PM
I wrote a summary in which I tried to capture the capabilities provided by
the BOSL2 library, and we've had some discussion about the right order to
list them in. I'm interested in hearing from users of BOSL2, or even
people who are not (yet/) BOSL2 users but are interested in BOSL2, about
which features you think are the most useful or most important. How would
you order this list? Which features do you think are the least
interesting? Did I somehow not include on the list your favorite feature?
I encourage you to send your replies by direct email rather than to the
list unless you have something to say that you think is of broad interest.
-
Attachments. Unless you make models containing just one object the
attachments features can revolutionize your modeling. They let you position
components of a model relative to other components so you don't have to
keep track of the positions and orientations of parts of the model. You can
instead place an something on the TOP of something else, perhaps aligned to
the RIGHT. For a full introduction to attachments, consult the Attachments
Tutorial. https://github.com/BelfrySCAD/BOSL2/wiki/Tutorial-Attachments
-
Rounding and filleting. Rounding and filleting is hard in OpenSCAD.
The library provides modules like cuboid()
https://github.com/BelfrySCAD/BOSL2/wiki/shapes3d.scad#module-cuboid
to make a cube with any of the edges rounded, offset_sweep()
https://github.com/BelfrySCAD/BOSL2/wiki/rounding.scad#functionmodule-offset_sweep
to round the ends of a linear extrusion, and prism_connector()
https://github.com/BelfrySCAD/BOSL2/wiki/rounding.scad#module-prism_connector
which works with the attachments feature to create filleted prisms between
a variety of objects, or even rounded holes through a single object. You
can also use edge_profile()
https://github.com/BelfrySCAD/BOSL2/wiki/attachments.scad#module-edge_profile
to apply a variety of different mask profiles to chosen edges of a cubic
shape, or you can directly subtract 3d mask shapes from an edge of objects
that are not cubes.
-
Complex object support. The path_sweep()
https://github.com/BelfrySCAD/BOSL2/wiki/skin.scad#functionmodule-path_sweep
function/module takes a 2d polygon moves it through space along a path and
sweeps out a 3d shape as it moves. You can link together a series of
arbitrary polygons with skin()
https://github.com/BelfrySCAD/BOSL2/wiki/skin.scad#functionmodule-skin
or vnf_vertex_array().
https://github.com/BelfrySCAD/BOSL2/wiki/vnf.scad#functionmodule-vnf_vertex_array
Support for beziers
https://github.com/BelfrySCAD/BOSL2/wiki/beziers.scad and NURBS
https://github.com/BelfrySCAD/BOSL2/wiki/nurbs.scad can help you
construct the building blocks you need. Metaballs
https://github.com/BelfrySCAD/BOSL2/wiki/isosurface.scad#functionmodule-metaballs
can create organic surfaces that blend shapes together.
-
Building Blocks. OpenSCAD provides cubes, cones and spheres. The
BOSL2 library extends this to provide different kinds of prisms, tubes, and
other abstract geometrical building blocks. In many cases the BOSL2 objects
include options to round their edges. Basic objects have extensions like
the ability to specify the inner radius of a circle to create holes
with a guaranteed minimum size.
-
Texturing. Many kinds of objects can be created with textures
https://github.com/BelfrySCAD/BOSL2/wiki/skin.scad#section-texturing
applied. This can create knurling, but it can do much more than that. A
texture can be any repeating pattern, and applying a texture can actually
replace the base object with something different based on repeating copies
of the texture element. A texture can also be an image; using texturing you
can emboss an arbitrary image onto your model.
-
Parts library. The parts library includes many useful specific
functional parts including gears
https://github.com/BelfrySCAD/BOSL2/wiki/gears.scad, generic threading
https://github.com/BelfrySCAD/BOSL2/wiki/threading.scad#section-generic-threading,
and specific threading to match plastic bottles
https://github.com/BelfrySCAD/BOSL2/wiki/bottlecaps.scad, pipe fittings
https://github.com/BelfrySCAD/BOSL2/wiki/threading.scad#module-npt_threaded_rod,
or standard screws.
https://github.com/BelfrySCAD/BOSL2/wiki/screws.scad Also included are
clips
https://github.com/BelfrySCAD/BOSL2/wiki/joiners.scad#section-tension-clips,
hinges https://github.com/BelfrySCAD/BOSL2/wiki/hinges.scad, and dovetail
joints.
https://github.com/BelfrySCAD/BOSL2/wiki/joiners.scad#section-dovetails
-
Shorthands. The shorthands make your code a little shorter, and more
importantly, they can make it significantly easier to read. Compare up(x)
to translate([0,0,x]). The shorthands include operations for creating copies
of objects https://github.com/BelfrySCAD/BOSL2/wiki/distributors.scad
and for applying transformations
https://github.com/BelfrySCAD/BOSL2/wiki/transforms.scad to objects,
including rot()
https://github.com/BelfrySCAD/BOSL2/wiki/transforms.scad#functionmodule-rot
which extends rotate in some useful ways that are not easy to do directly.
-
Geometrical operations on data. In OpenSCAD, geometrical operations
happen on geometry, and information can never be extracted from geometry.
The BOLS2 library provides operations on 2d point lists (called "paths" or
"regions") to make rounded paths
https://github.com/BelfrySCAD/BOSL2/wiki/rounding.scad#function-round_corners
from ones with corners or do operations like intersection
https://github.com/BelfrySCAD/BOSL2/wiki/regions.scad#functionmodule-intersection
and offset
https://github.com/BelfrySCAD/BOSL2/wiki/regions.scad#function-offset.
It can also do some limited operations on three dimensional data.
-
Programming aids. The library provides basic mathematical operations
https://github.com/BelfrySCAD/BOSL2/wiki/math.scad including solutions
to linear systems of equations
https://github.com/BelfrySCAD/BOSL2/wiki/linalg.scad#function-linear_solve
and generic
https://github.com/BelfrySCAD/BOSL2/wiki/math.scad#function-root_find
and polynomial
https://github.com/BelfrySCAD/BOSL2/wiki/math.scad#function-real_roots
numerical root finding. It provides geometrical operations
https://github.com/BelfrySCAD/BOSL2/wiki/geometry.scad like line
intersection
https://github.com/BelfrySCAD/BOSL2/wiki/geometry.scad#function-line_intersection
or circle intersection
https://github.com/BelfrySCAD/BOSL2/wiki/geometry.scad#function-circle_circle_intersection,
coordinate transformations
https://github.com/BelfrySCAD/BOSL2/wiki/coords.scad, string
manipulation, https://github.com/BelfrySCAD/BOSL2/wiki/strings.scad
and list processing https://github.com/BelfrySCAD/BOSL2/wiki/lists.scad
.
I wrote a summary in which I tried to capture the capabilities provided by
the BOSL2 library, and we've had some discussion about the right order to
list them in. I'm interested in hearing from users of BOSL2, or even
people who are not (yet/) BOSL2 users but are interested in BOSL2, about
which features you think are the most useful or most important. How would
you order this list? Which features do you think are the least
interesting? Did I somehow not include on the list your favorite feature?
I encourage you to send your replies by direct email rather than to the
list unless you have something to say that you think is of broad interest.
- *Attachments.* Unless you make models containing just one object the
attachments features can revolutionize your modeling. They let you position
components of a model relative to other components so you don't have to
keep track of the positions and orientations of parts of the model. You can
instead place an something on the TOP of something else, perhaps aligned to
the RIGHT. For a full introduction to attachments, consult the Attachments
Tutorial. <https://github.com/BelfrySCAD/BOSL2/wiki/Tutorial-Attachments>
- *Rounding and filleting.* Rounding and filleting is hard in OpenSCAD.
The library provides modules like cuboid()
<https://github.com/BelfrySCAD/BOSL2/wiki/shapes3d.scad#module-cuboid>
to make a cube with any of the edges rounded, offset_sweep()
<https://github.com/BelfrySCAD/BOSL2/wiki/rounding.scad#functionmodule-offset_sweep>
to round the ends of a linear extrusion, and prism_connector()
<https://github.com/BelfrySCAD/BOSL2/wiki/rounding.scad#module-prism_connector>
which works with the attachments feature to create filleted prisms between
a variety of objects, or even rounded holes through a single object. You
can also use edge_profile()
<https://github.com/BelfrySCAD/BOSL2/wiki/attachments.scad#module-edge_profile>
to apply a variety of different mask profiles to chosen edges of a cubic
shape, or you can directly subtract 3d mask shapes from an edge of objects
that are not cubes.
- *Complex object support.* The path_sweep()
<https://github.com/BelfrySCAD/BOSL2/wiki/skin.scad#functionmodule-path_sweep>
function/module takes a 2d polygon moves it through space along a path and
sweeps out a 3d shape as it moves. You can link together a series of
arbitrary polygons with skin()
<https://github.com/BelfrySCAD/BOSL2/wiki/skin.scad#functionmodule-skin>
or vnf_vertex_array().
<https://github.com/BelfrySCAD/BOSL2/wiki/vnf.scad#functionmodule-vnf_vertex_array>
Support for beziers
<https://github.com/BelfrySCAD/BOSL2/wiki/beziers.scad> and NURBS
<https://github.com/BelfrySCAD/BOSL2/wiki/nurbs.scad> can help you
construct the building blocks you need. Metaballs
<https://github.com/BelfrySCAD/BOSL2/wiki/isosurface.scad#functionmodule-metaballs>
can create organic surfaces that blend shapes together.
- *Building Blocks.* OpenSCAD provides cubes, cones and spheres. The
BOSL2 library extends this to provide different kinds of prisms, tubes, and
other abstract geometrical building blocks. In many cases the BOSL2 objects
include options to round their edges. Basic objects have extensions like
the ability to specify the *inner* radius of a circle to create holes
with a guaranteed minimum size.
- *Texturing.* Many kinds of objects can be created with textures
<https://github.com/BelfrySCAD/BOSL2/wiki/skin.scad#section-texturing>
applied. This can create knurling, but it can do much more than that. A
texture can be any repeating pattern, and applying a texture can actually
replace the base object with something different based on repeating copies
of the texture element. A texture can also be an image; using texturing you
can emboss an arbitrary image onto your model.
- *Parts library.* The parts library includes many useful specific
functional parts including gears
<https://github.com/BelfrySCAD/BOSL2/wiki/gears.scad>, generic threading
<https://github.com/BelfrySCAD/BOSL2/wiki/threading.scad#section-generic-threading>,
and specific threading to match plastic bottles
<https://github.com/BelfrySCAD/BOSL2/wiki/bottlecaps.scad>, pipe fittings
<https://github.com/BelfrySCAD/BOSL2/wiki/threading.scad#module-npt_threaded_rod>,
or standard screws.
<https://github.com/BelfrySCAD/BOSL2/wiki/screws.scad> Also included are
clips
<https://github.com/BelfrySCAD/BOSL2/wiki/joiners.scad#section-tension-clips>,
hinges <https://github.com/BelfrySCAD/BOSL2/wiki/hinges.scad>, and dovetail
joints.
<https://github.com/BelfrySCAD/BOSL2/wiki/joiners.scad#section-dovetails>
- *Shorthands.* The shorthands make your code a little shorter, and more
importantly, they can make it significantly easier to read. Compare up(x)
to translate([0,0,x]). The shorthands include operations for creating copies
of objects <https://github.com/BelfrySCAD/BOSL2/wiki/distributors.scad>
and for applying transformations
<https://github.com/BelfrySCAD/BOSL2/wiki/transforms.scad> to objects,
including rot()
<https://github.com/BelfrySCAD/BOSL2/wiki/transforms.scad#functionmodule-rot>
which extends rotate in some useful ways that are not easy to do directly.
- *Geometrical operations on data.* In OpenSCAD, geometrical operations
happen on geometry, and information can never be extracted from geometry.
The BOLS2 library provides operations on 2d point lists (called "paths" or
"regions") to make rounded paths
<https://github.com/BelfrySCAD/BOSL2/wiki/rounding.scad#function-round_corners>
from ones with corners or do operations like intersection
<https://github.com/BelfrySCAD/BOSL2/wiki/regions.scad#functionmodule-intersection>
and offset
<https://github.com/BelfrySCAD/BOSL2/wiki/regions.scad#function-offset>.
It can also do some limited operations on three dimensional data.
- *Programming aids.* The library provides basic mathematical operations
<https://github.com/BelfrySCAD/BOSL2/wiki/math.scad> including solutions
to linear systems of equations
<https://github.com/BelfrySCAD/BOSL2/wiki/linalg.scad#function-linear_solve>
and generic
<https://github.com/BelfrySCAD/BOSL2/wiki/math.scad#function-root_find>
and polynomial
<https://github.com/BelfrySCAD/BOSL2/wiki/math.scad#function-real_roots>
numerical root finding. It provides geometrical operations
<https://github.com/BelfrySCAD/BOSL2/wiki/geometry.scad> like line
intersection
<https://github.com/BelfrySCAD/BOSL2/wiki/geometry.scad#function-line_intersection>
or circle intersection
<https://github.com/BelfrySCAD/BOSL2/wiki/geometry.scad#function-circle_circle_intersection>,
coordinate transformations
<https://github.com/BelfrySCAD/BOSL2/wiki/coords.scad>, string
manipulation, <https://github.com/BelfrySCAD/BOSL2/wiki/strings.scad>
and list processing <https://github.com/BelfrySCAD/BOSL2/wiki/lists.scad>
.
FH
Father Horton
Fri, May 23, 2025 8:32 PM
The two features I use most are the threading/screws functions and the
turtle graphics. Attachments sound useful, but the tutorial doesn't work
the way my mind does (not the tutorial's fault) and I can't get the hang of
how to use them.
On Fri, May 23, 2025 at 3:11 PM Adrian Mariano via Discuss <
discuss@lists.openscad.org> wrote:
I wrote a summary in which I tried to capture the capabilities provided by
the BOSL2 library, and we've had some discussion about the right order to
list them in. I'm interested in hearing from users of BOSL2, or even
people who are not (yet/) BOSL2 users but are interested in BOSL2, about
which features you think are the most useful or most important. How would
you order this list? Which features do you think are the least
interesting? Did I somehow not include on the list your favorite feature?
I encourage you to send your replies by direct email rather than to the
list unless you have something to say that you think is of broad interest.
- *Attachments.* Unless you make models containing just one object the
attachments features can revolutionize your modeling. They let you position
components of a model relative to other components so you don't have to
keep track of the positions and orientations of parts of the model. You can
instead place an something on the TOP of something else, perhaps aligned to
the RIGHT. For a full introduction to attachments, consult the Attachments
Tutorial.
<https://github.com/BelfrySCAD/BOSL2/wiki/Tutorial-Attachments>
- *Rounding and filleting.* Rounding and filleting is hard in
OpenSCAD. The library provides modules like cuboid()
<https://github.com/BelfrySCAD/BOSL2/wiki/shapes3d.scad#module-cuboid>
to make a cube with any of the edges rounded, offset_sweep()
<https://github.com/BelfrySCAD/BOSL2/wiki/rounding.scad#functionmodule-offset_sweep>
to round the ends of a linear extrusion, and prism_connector()
<https://github.com/BelfrySCAD/BOSL2/wiki/rounding.scad#module-prism_connector>
which works with the attachments feature to create filleted prisms between
a variety of objects, or even rounded holes through a single object. You
can also use edge_profile()
<https://github.com/BelfrySCAD/BOSL2/wiki/attachments.scad#module-edge_profile>
to apply a variety of different mask profiles to chosen edges of a cubic
shape, or you can directly subtract 3d mask shapes from an edge of objects
that are not cubes.
- *Complex object support.* The path_sweep()
<https://github.com/BelfrySCAD/BOSL2/wiki/skin.scad#functionmodule-path_sweep>
function/module takes a 2d polygon moves it through space along a path and
sweeps out a 3d shape as it moves. You can link together a series of
arbitrary polygons with skin()
<https://github.com/BelfrySCAD/BOSL2/wiki/skin.scad#functionmodule-skin>
or vnf_vertex_array().
<https://github.com/BelfrySCAD/BOSL2/wiki/vnf.scad#functionmodule-vnf_vertex_array>
Support for beziers
<https://github.com/BelfrySCAD/BOSL2/wiki/beziers.scad> and NURBS
<https://github.com/BelfrySCAD/BOSL2/wiki/nurbs.scad> can help you
construct the building blocks you need. Metaballs
<https://github.com/BelfrySCAD/BOSL2/wiki/isosurface.scad#functionmodule-metaballs>
can create organic surfaces that blend shapes together.
- *Building Blocks.* OpenSCAD provides cubes, cones and spheres. The
BOSL2 library extends this to provide different kinds of prisms, tubes, and
other abstract geometrical building blocks. In many cases the BOSL2 objects
include options to round their edges. Basic objects have extensions like
the ability to specify the *inner* radius of a circle to create holes
with a guaranteed minimum size.
- *Texturing.* Many kinds of objects can be created with textures
<https://github.com/BelfrySCAD/BOSL2/wiki/skin.scad#section-texturing>
applied. This can create knurling, but it can do much more than that. A
texture can be any repeating pattern, and applying a texture can actually
replace the base object with something different based on repeating copies
of the texture element. A texture can also be an image; using texturing you
can emboss an arbitrary image onto your model.
- *Parts library.* The parts library includes many useful specific
functional parts including gears
<https://github.com/BelfrySCAD/BOSL2/wiki/gears.scad>, generic
threading
<https://github.com/BelfrySCAD/BOSL2/wiki/threading.scad#section-generic-threading>,
and specific threading to match plastic bottles
<https://github.com/BelfrySCAD/BOSL2/wiki/bottlecaps.scad>, pipe
fittings
<https://github.com/BelfrySCAD/BOSL2/wiki/threading.scad#module-npt_threaded_rod>,
or standard screws.
<https://github.com/BelfrySCAD/BOSL2/wiki/screws.scad> Also included
are clips
<https://github.com/BelfrySCAD/BOSL2/wiki/joiners.scad#section-tension-clips>,
hinges <https://github.com/BelfrySCAD/BOSL2/wiki/hinges.scad>, and dovetail
joints.
<https://github.com/BelfrySCAD/BOSL2/wiki/joiners.scad#section-dovetails>
- *Shorthands.* The shorthands make your code a little shorter, and
more importantly, they can make it significantly easier to read. Compare
up(x) to translate([0,0,x]). The shorthands include operations for
creating copies of objects
<https://github.com/BelfrySCAD/BOSL2/wiki/distributors.scad> and for
applying transformations
<https://github.com/BelfrySCAD/BOSL2/wiki/transforms.scad> to objects,
including rot()
<https://github.com/BelfrySCAD/BOSL2/wiki/transforms.scad#functionmodule-rot>
which extends rotate in some useful ways that are not easy to do directly.
- *Geometrical operations on data.* In OpenSCAD, geometrical
operations happen on geometry, and information can never be extracted from
geometry. The BOLS2 library provides operations on 2d point lists (called
"paths" or "regions") to make rounded paths
<https://github.com/BelfrySCAD/BOSL2/wiki/rounding.scad#function-round_corners>
from ones with corners or do operations like intersection
<https://github.com/BelfrySCAD/BOSL2/wiki/regions.scad#functionmodule-intersection>
and offset
<https://github.com/BelfrySCAD/BOSL2/wiki/regions.scad#function-offset>.
It can also do some limited operations on three dimensional data.
- *Programming aids.* The library provides basic mathematical
operations <https://github.com/BelfrySCAD/BOSL2/wiki/math.scad>
including solutions to linear systems of equations
<https://github.com/BelfrySCAD/BOSL2/wiki/linalg.scad#function-linear_solve>
and generic
<https://github.com/BelfrySCAD/BOSL2/wiki/math.scad#function-root_find>
and polynomial
<https://github.com/BelfrySCAD/BOSL2/wiki/math.scad#function-real_roots>
numerical root finding. It provides geometrical operations
<https://github.com/BelfrySCAD/BOSL2/wiki/geometry.scad> like line
intersection
<https://github.com/BelfrySCAD/BOSL2/wiki/geometry.scad#function-line_intersection>
or circle intersection
<https://github.com/BelfrySCAD/BOSL2/wiki/geometry.scad#function-circle_circle_intersection>,
coordinate transformations
<https://github.com/BelfrySCAD/BOSL2/wiki/coords.scad>, string
manipulation, <https://github.com/BelfrySCAD/BOSL2/wiki/strings.scad>
and list processing
<https://github.com/BelfrySCAD/BOSL2/wiki/lists.scad>.
OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org
The two features I use most are the threading/screws functions and the
turtle graphics. Attachments sound useful, but the tutorial doesn't work
the way my mind does (not the tutorial's fault) and I can't get the hang of
how to use them.
On Fri, May 23, 2025 at 3:11 PM Adrian Mariano via Discuss <
discuss@lists.openscad.org> wrote:
> I wrote a summary in which I tried to capture the capabilities provided by
> the BOSL2 library, and we've had some discussion about the right order to
> list them in. I'm interested in hearing from users of BOSL2, or even
> people who are not (yet/) BOSL2 users but are interested in BOSL2, about
> which features you think are the most useful or most important. How would
> you order this list? Which features do you think are the least
> interesting? Did I somehow not include on the list your favorite feature?
> I encourage you to send your replies by direct email rather than to the
> list unless you have something to say that you think is of broad interest.
>
> - *Attachments.* Unless you make models containing just one object the
> attachments features can revolutionize your modeling. They let you position
> components of a model relative to other components so you don't have to
> keep track of the positions and orientations of parts of the model. You can
> instead place an something on the TOP of something else, perhaps aligned to
> the RIGHT. For a full introduction to attachments, consult the Attachments
> Tutorial.
> <https://github.com/BelfrySCAD/BOSL2/wiki/Tutorial-Attachments>
> - *Rounding and filleting.* Rounding and filleting is hard in
> OpenSCAD. The library provides modules like cuboid()
> <https://github.com/BelfrySCAD/BOSL2/wiki/shapes3d.scad#module-cuboid>
> to make a cube with any of the edges rounded, offset_sweep()
> <https://github.com/BelfrySCAD/BOSL2/wiki/rounding.scad#functionmodule-offset_sweep>
> to round the ends of a linear extrusion, and prism_connector()
> <https://github.com/BelfrySCAD/BOSL2/wiki/rounding.scad#module-prism_connector>
> which works with the attachments feature to create filleted prisms between
> a variety of objects, or even rounded holes through a single object. You
> can also use edge_profile()
> <https://github.com/BelfrySCAD/BOSL2/wiki/attachments.scad#module-edge_profile>
> to apply a variety of different mask profiles to chosen edges of a cubic
> shape, or you can directly subtract 3d mask shapes from an edge of objects
> that are not cubes.
> - *Complex object support.* The path_sweep()
> <https://github.com/BelfrySCAD/BOSL2/wiki/skin.scad#functionmodule-path_sweep>
> function/module takes a 2d polygon moves it through space along a path and
> sweeps out a 3d shape as it moves. You can link together a series of
> arbitrary polygons with skin()
> <https://github.com/BelfrySCAD/BOSL2/wiki/skin.scad#functionmodule-skin>
> or vnf_vertex_array().
> <https://github.com/BelfrySCAD/BOSL2/wiki/vnf.scad#functionmodule-vnf_vertex_array>
> Support for beziers
> <https://github.com/BelfrySCAD/BOSL2/wiki/beziers.scad> and NURBS
> <https://github.com/BelfrySCAD/BOSL2/wiki/nurbs.scad> can help you
> construct the building blocks you need. Metaballs
> <https://github.com/BelfrySCAD/BOSL2/wiki/isosurface.scad#functionmodule-metaballs>
> can create organic surfaces that blend shapes together.
> - *Building Blocks.* OpenSCAD provides cubes, cones and spheres. The
> BOSL2 library extends this to provide different kinds of prisms, tubes, and
> other abstract geometrical building blocks. In many cases the BOSL2 objects
> include options to round their edges. Basic objects have extensions like
> the ability to specify the *inner* radius of a circle to create holes
> with a guaranteed minimum size.
> - *Texturing.* Many kinds of objects can be created with textures
> <https://github.com/BelfrySCAD/BOSL2/wiki/skin.scad#section-texturing>
> applied. This can create knurling, but it can do much more than that. A
> texture can be any repeating pattern, and applying a texture can actually
> replace the base object with something different based on repeating copies
> of the texture element. A texture can also be an image; using texturing you
> can emboss an arbitrary image onto your model.
> - *Parts library.* The parts library includes many useful specific
> functional parts including gears
> <https://github.com/BelfrySCAD/BOSL2/wiki/gears.scad>, generic
> threading
> <https://github.com/BelfrySCAD/BOSL2/wiki/threading.scad#section-generic-threading>,
> and specific threading to match plastic bottles
> <https://github.com/BelfrySCAD/BOSL2/wiki/bottlecaps.scad>, pipe
> fittings
> <https://github.com/BelfrySCAD/BOSL2/wiki/threading.scad#module-npt_threaded_rod>,
> or standard screws.
> <https://github.com/BelfrySCAD/BOSL2/wiki/screws.scad> Also included
> are clips
> <https://github.com/BelfrySCAD/BOSL2/wiki/joiners.scad#section-tension-clips>,
> hinges <https://github.com/BelfrySCAD/BOSL2/wiki/hinges.scad>, and dovetail
> joints.
> <https://github.com/BelfrySCAD/BOSL2/wiki/joiners.scad#section-dovetails>
> - *Shorthands.* The shorthands make your code a little shorter, and
> more importantly, they can make it significantly easier to read. Compare
> up(x) to translate([0,0,x]). The shorthands include operations for
> creating copies of objects
> <https://github.com/BelfrySCAD/BOSL2/wiki/distributors.scad> and for
> applying transformations
> <https://github.com/BelfrySCAD/BOSL2/wiki/transforms.scad> to objects,
> including rot()
> <https://github.com/BelfrySCAD/BOSL2/wiki/transforms.scad#functionmodule-rot>
> which extends rotate in some useful ways that are not easy to do directly.
> - *Geometrical operations on data.* In OpenSCAD, geometrical
> operations happen on geometry, and information can never be extracted from
> geometry. The BOLS2 library provides operations on 2d point lists (called
> "paths" or "regions") to make rounded paths
> <https://github.com/BelfrySCAD/BOSL2/wiki/rounding.scad#function-round_corners>
> from ones with corners or do operations like intersection
> <https://github.com/BelfrySCAD/BOSL2/wiki/regions.scad#functionmodule-intersection>
> and offset
> <https://github.com/BelfrySCAD/BOSL2/wiki/regions.scad#function-offset>.
> It can also do some limited operations on three dimensional data.
> - *Programming aids.* The library provides basic mathematical
> operations <https://github.com/BelfrySCAD/BOSL2/wiki/math.scad>
> including solutions to linear systems of equations
> <https://github.com/BelfrySCAD/BOSL2/wiki/linalg.scad#function-linear_solve>
> and generic
> <https://github.com/BelfrySCAD/BOSL2/wiki/math.scad#function-root_find>
> and polynomial
> <https://github.com/BelfrySCAD/BOSL2/wiki/math.scad#function-real_roots>
> numerical root finding. It provides geometrical operations
> <https://github.com/BelfrySCAD/BOSL2/wiki/geometry.scad> like line
> intersection
> <https://github.com/BelfrySCAD/BOSL2/wiki/geometry.scad#function-line_intersection>
> or circle intersection
> <https://github.com/BelfrySCAD/BOSL2/wiki/geometry.scad#function-circle_circle_intersection>,
> coordinate transformations
> <https://github.com/BelfrySCAD/BOSL2/wiki/coords.scad>, string
> manipulation, <https://github.com/BelfrySCAD/BOSL2/wiki/strings.scad>
> and list processing
> <https://github.com/BelfrySCAD/BOSL2/wiki/lists.scad>.
>
>
> _______________________________________________
> OpenSCAD mailing list
> To unsubscribe send an email to discuss-leave@lists.openscad.org
>
BC
Bob Carlson
Fri, May 23, 2025 9:26 PM
I use anchors CONSTANTLY, however I almost never actual attach one object to another.
I use the shorthands so much that they constitute what OpenSCAD is in my mind. Up, back, left, xcyl, ycyl, zcyl and so on.
The parts library is invaluable, especially screws, although I have a an API of my own that overlays it and is a lot easier for me to use.
I also use the building blocks regularly.
The other items are more social purpose in my mind. However, the complex object support is probably something that deserves a lot more emphasis.
It occurs to me that a unified wiki that covered base OpenSCAD and BOSL2 would be really nice. I have to keep several tabs open for reference.
-Bob
On May 23, 2025, at 13:32, Father Horton via Discuss discuss@lists.openscad.org wrote:
The two features I use most are the threading/screws functions and the turtle graphics. Attachments sound useful, but the tutorial doesn't work the way my mind does (not the tutorial's fault) and I can't get the hang of how to use them.
On Fri, May 23, 2025 at 3:11 PM Adrian Mariano via Discuss <discuss@lists.openscad.org mailto:discuss@lists.openscad.org> wrote:
I wrote a summary in which I tried to capture the capabilities provided by the BOSL2 library, and we've had some discussion about the right order to list them in. I'm interested in hearing from users of BOSL2, or even people who are not (yet/) BOSL2 users but are interested in BOSL2, about which features you think are the most useful or most important. How would you order this list? Which features do you think are the least interesting? Did I somehow not include on the list your favorite feature? I encourage you to send your replies by direct email rather than to the list unless you have something to say that you think is of broad interest.
Attachments. Unless you make models containing just one object the attachments features can revolutionize your modeling. They let you position components of a model relative to other components so you don't have to keep track of the positions and orientations of parts of the model. You can instead place an something on the TOP of something else, perhaps aligned to the RIGHT. For a full introduction to attachments, consult the Attachments Tutorial. https://github.com/BelfrySCAD/BOSL2/wiki/Tutorial-Attachments
Rounding and filleting. Rounding and filleting is hard in OpenSCAD. The library provides modules like cuboid() https://github.com/BelfrySCAD/BOSL2/wiki/shapes3d.scad#module-cuboid to make a cube with any of the edges rounded, offset_sweep() https://github.com/BelfrySCAD/BOSL2/wiki/rounding.scad#functionmodule-offset_sweep to round the ends of a linear extrusion, and prism_connector() https://github.com/BelfrySCAD/BOSL2/wiki/rounding.scad#module-prism_connector which works with the attachments feature to create filleted prisms between a variety of objects, or even rounded holes through a single object. You can also use edge_profile() https://github.com/BelfrySCAD/BOSL2/wiki/attachments.scad#module-edge_profile to apply a variety of different mask profiles to chosen edges of a cubic shape, or you can directly subtract 3d mask shapes from an edge of objects that are not cubes.
Complex object support. The path_sweep() https://github.com/BelfrySCAD/BOSL2/wiki/skin.scad#functionmodule-path_sweep function/module takes a 2d polygon moves it through space along a path and sweeps out a 3d shape as it moves. You can link together a series of arbitrary polygons with skin() https://github.com/BelfrySCAD/BOSL2/wiki/skin.scad#functionmodule-skin or vnf_vertex_array(). https://github.com/BelfrySCAD/BOSL2/wiki/vnf.scad#functionmodule-vnf_vertex_array Support for beziers https://github.com/BelfrySCAD/BOSL2/wiki/beziers.scad and NURBS https://github.com/BelfrySCAD/BOSL2/wiki/nurbs.scad can help you construct the building blocks you need. Metaballs https://github.com/BelfrySCAD/BOSL2/wiki/isosurface.scad#functionmodule-metaballs can create organic surfaces that blend shapes together.
Building Blocks. OpenSCAD provides cubes, cones and spheres. The BOSL2 library extends this to provide different kinds of prisms, tubes, and other abstract geometrical building blocks. In many cases the BOSL2 objects include options to round their edges. Basic objects have extensions like the ability to specify the inner radius of a circle to create holes with a guaranteed minimum size.
Texturing. Many kinds of objects can be created with textures https://github.com/BelfrySCAD/BOSL2/wiki/skin.scad#section-texturing applied. This can create knurling, but it can do much more than that. A texture can be any repeating pattern, and applying a texture can actually replace the base object with something different based on repeating copies of the texture element. A texture can also be an image; using texturing you can emboss an arbitrary image onto your model.
Parts library. The parts library includes many useful specific functional parts including gears https://github.com/BelfrySCAD/BOSL2/wiki/gears.scad, generic threading https://github.com/BelfrySCAD/BOSL2/wiki/threading.scad#section-generic-threading, and specific threading to match plastic bottles https://github.com/BelfrySCAD/BOSL2/wiki/bottlecaps.scad, pipe fittings https://github.com/BelfrySCAD/BOSL2/wiki/threading.scad#module-npt_threaded_rod, or standard screws. https://github.com/BelfrySCAD/BOSL2/wiki/screws.scad Also included are clips https://github.com/BelfrySCAD/BOSL2/wiki/joiners.scad#section-tension-clips, hinges https://github.com/BelfrySCAD/BOSL2/wiki/hinges.scad, and dovetail joints. https://github.com/BelfrySCAD/BOSL2/wiki/joiners.scad#section-dovetails
Shorthands. The shorthands make your code a little shorter, and more importantly, they can make it significantly easier to read. Compare up(x) to translate([0,0,x]). The shorthands include operations for creating copies of objects https://github.com/BelfrySCAD/BOSL2/wiki/distributors.scad and for applying transformations https://github.com/BelfrySCAD/BOSL2/wiki/transforms.scad to objects, including rot() https://github.com/BelfrySCAD/BOSL2/wiki/transforms.scad#functionmodule-rot which extends rotate in some useful ways that are not easy to do directly.
Geometrical operations on data. In OpenSCAD, geometrical operations happen on geometry, and information can never be extracted from geometry. The BOLS2 library provides operations on 2d point lists (called "paths" or "regions") to make rounded paths https://github.com/BelfrySCAD/BOSL2/wiki/rounding.scad#function-round_corners from ones with corners or do operations like intersection https://github.com/BelfrySCAD/BOSL2/wiki/regions.scad#functionmodule-intersection and offset https://github.com/BelfrySCAD/BOSL2/wiki/regions.scad#function-offset. It can also do some limited operations on three dimensional data.
Programming aids. The library provides basic mathematical operations https://github.com/BelfrySCAD/BOSL2/wiki/math.scad including solutions to linear systems of equations https://github.com/BelfrySCAD/BOSL2/wiki/linalg.scad#function-linear_solve and generic https://github.com/BelfrySCAD/BOSL2/wiki/math.scad#function-root_find and polynomial https://github.com/BelfrySCAD/BOSL2/wiki/math.scad#function-real_roots numerical root finding. It provides geometrical operations https://github.com/BelfrySCAD/BOSL2/wiki/geometry.scad like line intersection https://github.com/BelfrySCAD/BOSL2/wiki/geometry.scad#function-line_intersection or circle intersection https://github.com/BelfrySCAD/BOSL2/wiki/geometry.scad#function-circle_circle_intersection, coordinate transformations https://github.com/BelfrySCAD/BOSL2/wiki/coords.scad, string manipulation, https://github.com/BelfrySCAD/BOSL2/wiki/strings.scad and list processing https://github.com/BelfrySCAD/BOSL2/wiki/lists.scad.
OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org mailto:discuss-leave@lists.openscad.org
I use anchors CONSTANTLY, however I almost never actual attach one object to another.
I use the shorthands so much that they constitute what OpenSCAD is in my mind. Up, back, left, xcyl, ycyl, zcyl and so on.
The parts library is invaluable, especially screws, although I have a an API of my own that overlays it and is a lot easier for me to use.
I also use the building blocks regularly.
The other items are more social purpose in my mind. However, the complex object support is probably something that deserves a lot more emphasis.
It occurs to me that a unified wiki that covered base OpenSCAD and BOSL2 would be really nice. I have to keep several tabs open for reference.
-Bob
> On May 23, 2025, at 13:32, Father Horton via Discuss <discuss@lists.openscad.org> wrote:
>
> The two features I use most are the threading/screws functions and the turtle graphics. Attachments sound useful, but the tutorial doesn't work the way my mind does (not the tutorial's fault) and I can't get the hang of how to use them.
>
> On Fri, May 23, 2025 at 3:11 PM Adrian Mariano via Discuss <discuss@lists.openscad.org <mailto:discuss@lists.openscad.org>> wrote:
>> I wrote a summary in which I tried to capture the capabilities provided by the BOSL2 library, and we've had some discussion about the right order to list them in. I'm interested in hearing from users of BOSL2, or even people who are not (yet/) BOSL2 users but are interested in BOSL2, about which features you think are the most useful or most important. How would you order this list? Which features do you think are the least interesting? Did I somehow not include on the list your favorite feature? I encourage you to send your replies by direct email rather than to the list unless you have something to say that you think is of broad interest.
>> Attachments. Unless you make models containing just one object the attachments features can revolutionize your modeling. They let you position components of a model relative to other components so you don't have to keep track of the positions and orientations of parts of the model. You can instead place an something on the TOP of something else, perhaps aligned to the RIGHT. For a full introduction to attachments, consult the Attachments Tutorial. <https://github.com/BelfrySCAD/BOSL2/wiki/Tutorial-Attachments>
>> Rounding and filleting. Rounding and filleting is hard in OpenSCAD. The library provides modules like cuboid() <https://github.com/BelfrySCAD/BOSL2/wiki/shapes3d.scad#module-cuboid> to make a cube with any of the edges rounded, offset_sweep() <https://github.com/BelfrySCAD/BOSL2/wiki/rounding.scad#functionmodule-offset_sweep> to round the ends of a linear extrusion, and prism_connector() <https://github.com/BelfrySCAD/BOSL2/wiki/rounding.scad#module-prism_connector> which works with the attachments feature to create filleted prisms between a variety of objects, or even rounded holes through a single object. You can also use edge_profile() <https://github.com/BelfrySCAD/BOSL2/wiki/attachments.scad#module-edge_profile> to apply a variety of different mask profiles to chosen edges of a cubic shape, or you can directly subtract 3d mask shapes from an edge of objects that are not cubes.
>> Complex object support. The path_sweep() <https://github.com/BelfrySCAD/BOSL2/wiki/skin.scad#functionmodule-path_sweep> function/module takes a 2d polygon moves it through space along a path and sweeps out a 3d shape as it moves. You can link together a series of arbitrary polygons with skin() <https://github.com/BelfrySCAD/BOSL2/wiki/skin.scad#functionmodule-skin> or vnf_vertex_array(). <https://github.com/BelfrySCAD/BOSL2/wiki/vnf.scad#functionmodule-vnf_vertex_array> Support for beziers <https://github.com/BelfrySCAD/BOSL2/wiki/beziers.scad> and NURBS <https://github.com/BelfrySCAD/BOSL2/wiki/nurbs.scad> can help you construct the building blocks you need. Metaballs <https://github.com/BelfrySCAD/BOSL2/wiki/isosurface.scad#functionmodule-metaballs> can create organic surfaces that blend shapes together.
>> Building Blocks. OpenSCAD provides cubes, cones and spheres. The BOSL2 library extends this to provide different kinds of prisms, tubes, and other abstract geometrical building blocks. In many cases the BOSL2 objects include options to round their edges. Basic objects have extensions like the ability to specify the inner radius of a circle to create holes with a guaranteed minimum size.
>> Texturing. Many kinds of objects can be created with textures <https://github.com/BelfrySCAD/BOSL2/wiki/skin.scad#section-texturing> applied. This can create knurling, but it can do much more than that. A texture can be any repeating pattern, and applying a texture can actually replace the base object with something different based on repeating copies of the texture element. A texture can also be an image; using texturing you can emboss an arbitrary image onto your model.
>> Parts library. The parts library includes many useful specific functional parts including gears <https://github.com/BelfrySCAD/BOSL2/wiki/gears.scad>, generic threading <https://github.com/BelfrySCAD/BOSL2/wiki/threading.scad#section-generic-threading>, and specific threading to match plastic bottles <https://github.com/BelfrySCAD/BOSL2/wiki/bottlecaps.scad>, pipe fittings <https://github.com/BelfrySCAD/BOSL2/wiki/threading.scad#module-npt_threaded_rod>, or standard screws. <https://github.com/BelfrySCAD/BOSL2/wiki/screws.scad> Also included are clips <https://github.com/BelfrySCAD/BOSL2/wiki/joiners.scad#section-tension-clips>, hinges <https://github.com/BelfrySCAD/BOSL2/wiki/hinges.scad>, and dovetail joints. <https://github.com/BelfrySCAD/BOSL2/wiki/joiners.scad#section-dovetails>
>> Shorthands. The shorthands make your code a little shorter, and more importantly, they can make it significantly easier to read. Compare up(x) to translate([0,0,x]). The shorthands include operations for creating copies of objects <https://github.com/BelfrySCAD/BOSL2/wiki/distributors.scad> and for applying transformations <https://github.com/BelfrySCAD/BOSL2/wiki/transforms.scad> to objects, including rot() <https://github.com/BelfrySCAD/BOSL2/wiki/transforms.scad#functionmodule-rot> which extends rotate in some useful ways that are not easy to do directly.
>> Geometrical operations on data. In OpenSCAD, geometrical operations happen on geometry, and information can never be extracted from geometry. The BOLS2 library provides operations on 2d point lists (called "paths" or "regions") to make rounded paths <https://github.com/BelfrySCAD/BOSL2/wiki/rounding.scad#function-round_corners> from ones with corners or do operations like intersection <https://github.com/BelfrySCAD/BOSL2/wiki/regions.scad#functionmodule-intersection> and offset <https://github.com/BelfrySCAD/BOSL2/wiki/regions.scad#function-offset>. It can also do some limited operations on three dimensional data.
>> Programming aids. The library provides basic mathematical operations <https://github.com/BelfrySCAD/BOSL2/wiki/math.scad> including solutions to linear systems of equations <https://github.com/BelfrySCAD/BOSL2/wiki/linalg.scad#function-linear_solve> and generic <https://github.com/BelfrySCAD/BOSL2/wiki/math.scad#function-root_find> and polynomial <https://github.com/BelfrySCAD/BOSL2/wiki/math.scad#function-real_roots> numerical root finding. It provides geometrical operations <https://github.com/BelfrySCAD/BOSL2/wiki/geometry.scad> like line intersection <https://github.com/BelfrySCAD/BOSL2/wiki/geometry.scad#function-line_intersection> or circle intersection <https://github.com/BelfrySCAD/BOSL2/wiki/geometry.scad#function-circle_circle_intersection>, coordinate transformations <https://github.com/BelfrySCAD/BOSL2/wiki/coords.scad>, string manipulation, <https://github.com/BelfrySCAD/BOSL2/wiki/strings.scad> and list processing <https://github.com/BelfrySCAD/BOSL2/wiki/lists.scad>.
>>
>> _______________________________________________
>> OpenSCAD mailing list
>> To unsubscribe send an email to discuss-leave@lists.openscad.org <mailto:discuss-leave@lists.openscad.org>
> _______________________________________________
> OpenSCAD mailing list
> To unsubscribe send an email to discuss-leave@lists.openscad.org
SL
Steve Lelievre
Fri, May 23, 2025 10:14 PM
On 2025-05-23 2:26 p.m., Bob Carlson via Discuss wrote:
It occurs to me that a unified wiki that covered base OpenSCAD and
BOSL2 would be really nice. I have to keep several tabs open for
reference.
Please, no. Or at least, continue with a pure OpenSCAD wiki for people
like me.
I don't use BOSL2. I prefer to write my own code for features it
provides, not that I often need those kinds of features. A combined wiki
would be to complex and confusing.
Steve
On 2025-05-23 2:26 p.m., Bob Carlson via Discuss wrote:
> It occurs to me that a unified wiki that covered base OpenSCAD and
> BOSL2 would be really nice. I have to keep several tabs open for
> reference.
>
Please, no. Or at least, continue with a pure OpenSCAD wiki for people
like me.
I don't use BOSL2. I prefer to write my own code for features it
provides, not that I often need those kinds of features. A combined wiki
would be to complex and confusing.
Steve
BC
Bob Carlson
Fri, May 23, 2025 10:22 PM
On May 23, 2025, at 15:14, Steve Lelievre via Discuss discuss@lists.openscad.org wrote:
On 2025-05-23 2:26 p.m., Bob Carlson via Discuss wrote:
It occurs to me that a unified wiki that covered base OpenSCAD and BOSL2 would be really nice. I have to keep several tabs open for reference.
Please, no. Or at least, continue with a pure OpenSCAD wiki for people like me.
I don't use BOSL2. I prefer to write my own code for features it provides, not that I often need those kinds of features. A combined wiki would be to complex and confusing.
Steve
OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org
It’s not for you.
> On May 23, 2025, at 15:14, Steve Lelievre via Discuss <discuss@lists.openscad.org> wrote:
>
>
> On 2025-05-23 2:26 p.m., Bob Carlson via Discuss wrote:
>> It occurs to me that a unified wiki that covered base OpenSCAD and BOSL2 would be really nice. I have to keep several tabs open for reference.
>>
>
> Please, no. Or at least, continue with a pure OpenSCAD wiki for people like me.
>
> I don't use BOSL2. I prefer to write my own code for features it provides, not that I often need those kinds of features. A combined wiki would be to complex and confusing.
>
> Steve
>
>
>
> _______________________________________________
> OpenSCAD mailing list
> To unsubscribe send an email to discuss-leave@lists.openscad.org
JB
Jon Bondy
Fri, May 23, 2025 10:28 PM
I love BOSL2, but I agree with Steve. Keep them separate.
On 5/23/2025 6:14 PM, Steve Lelievre via Discuss wrote:
On 2025-05-23 2:26 p.m., Bob Carlson via Discuss wrote:
It occurs to me that a unified wiki that covered base OpenSCAD and
BOSL2 would be really nice. I have to keep several tabs open for
reference.
Please, no. Or at least, continue with a pure OpenSCAD wiki for people
like me.
I don't use BOSL2. I prefer to write my own code for features it
provides, not that I often need those kinds of features. A combined
wiki would be to complex and confusing.
Steve
OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org
--
This email has been checked for viruses by AVG antivirus software.
www.avg.com
I love BOSL2, but I agree with Steve. Keep them separate.
On 5/23/2025 6:14 PM, Steve Lelievre via Discuss wrote:
>
> On 2025-05-23 2:26 p.m., Bob Carlson via Discuss wrote:
>> It occurs to me that a unified wiki that covered base OpenSCAD and
>> BOSL2 would be really nice. I have to keep several tabs open for
>> reference.
>>
>
> Please, no. Or at least, continue with a pure OpenSCAD wiki for people
> like me.
>
> I don't use BOSL2. I prefer to write my own code for features it
> provides, not that I often need those kinds of features. A combined
> wiki would be to complex and confusing.
>
> Steve
>
>
>
> _______________________________________________
> OpenSCAD mailing list
> To unsubscribe send an email to discuss-leave@lists.openscad.org
--
This email has been checked for viruses by AVG antivirus software.
www.avg.com
GH
gene heskett
Fri, May 23, 2025 10:55 PM
On 5/23/25 18:29, Jon Bondy via Discuss wrote:
I love BOSL2, but I agree with Steve. Keep them separate.
+2 (to make up for my tiny oar) However I'd certainly say that adding
that BOSL2 link to the help menu would be quite helpful. Perhaps when
that wiki has been fattened up?
Cheers, Gene Heskett, CET.
"There are four boxes to be used in defense of liberty:
soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author, 1940)
If we desire respect for the law, we must first make the law respectable.
On 5/23/25 18:29, Jon Bondy via Discuss wrote:
> I love BOSL2, but I agree with Steve. Keep them separate.
+2 (to make up for my tiny oar) However I'd certainly say that adding
that BOSL2 link to the help menu would be quite helpful. Perhaps when
that wiki has been fattened up?
Cheers, Gene Heskett, CET.
--
"There are four boxes to be used in defense of liberty:
soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author, 1940)
If we desire respect for the law, we must first make the law respectable.
- Louis D. Brandeis
AM
Adrian Mariano
Fri, May 23, 2025 10:59 PM
Let me allay the fears: there is no chance that the BOSL2 documentation
will merge with the general OpenSCAD documentation. We have thought about
the idea of adding (entirely separate from the OpenSCAD docs) descriptions
of the OpenSCAD native functions and modules into the BOSL2 wiki. But
motivation to complete this appears to be low. If somebody wants to
volunteer to take that one we could make it happen. But this would be a
summary of native OpenSCAD located within the BOSL2 wiki and would in no
way replace the main OpenSCAD docs.
On Fri, May 23, 2025 at 6:29 PM Jon Bondy via Discuss <
discuss@lists.openscad.org> wrote:
I love BOSL2, but I agree with Steve. Keep them separate.
On 5/23/2025 6:14 PM, Steve Lelievre via Discuss wrote:
On 2025-05-23 2:26 p.m., Bob Carlson via Discuss wrote:
It occurs to me that a unified wiki that covered base OpenSCAD and
BOSL2 would be really nice. I have to keep several tabs open for
reference.
Please, no. Or at least, continue with a pure OpenSCAD wiki for people
like me.
I don't use BOSL2. I prefer to write my own code for features it
provides, not that I often need those kinds of features. A combined
wiki would be to complex and confusing.
Steve
OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org
Let me allay the fears: there is no chance that the BOSL2 documentation
will merge with the general OpenSCAD documentation. We have thought about
the idea of adding (entirely separate from the OpenSCAD docs) descriptions
of the OpenSCAD native functions and modules into the BOSL2 wiki. But
motivation to complete this appears to be low. If somebody wants to
volunteer to take that one we could make it happen. But this would be a
summary of native OpenSCAD located within the BOSL2 wiki and would in no
way replace the main OpenSCAD docs.
On Fri, May 23, 2025 at 6:29 PM Jon Bondy via Discuss <
discuss@lists.openscad.org> wrote:
> I love BOSL2, but I agree with Steve. Keep them separate.
>
>
> On 5/23/2025 6:14 PM, Steve Lelievre via Discuss wrote:
> >
> > On 2025-05-23 2:26 p.m., Bob Carlson via Discuss wrote:
> >> It occurs to me that a unified wiki that covered base OpenSCAD and
> >> BOSL2 would be really nice. I have to keep several tabs open for
> >> reference.
> >>
> >
> > Please, no. Or at least, continue with a pure OpenSCAD wiki for people
> > like me.
> >
> > I don't use BOSL2. I prefer to write my own code for features it
> > provides, not that I often need those kinds of features. A combined
> > wiki would be to complex and confusing.
> >
> > Steve
> >
> >
> >
> > _______________________________________________
> > OpenSCAD mailing list
> > To unsubscribe send an email to discuss-leave@lists.openscad.org
>
> --
> This email has been checked for viruses by AVG antivirus software.
> www.avg.com
> _______________________________________________
> OpenSCAD mailing list
> To unsubscribe send an email to discuss-leave@lists.openscad.org
>
MM
Michael Möller
Sat, May 24, 2025 10:19 AM
Very nice mail, and if that is the short-short intro to BOSL2 it is super.
Add a note about the The VNF structure contrasted to the OpenSCADs point
list for polyhedron
My usage of BOSL2 is very occasional, mostly because of the overwhelming
number of functions, modules and what have you.
Msquare
On Fri, 23 May 2025 at 22:11, Adrian Mariano via Discuss <
discuss@lists.openscad.org> wrote:
I wrote a summary in which I tried to capture the capabilities provided by
the BOSL2 library, and we've had some discussion about the right order to
list them in. I'm interested in hearing from users of BOSL2, or even
people who are not (yet/) BOSL2 users but are interested in BOSL2, about
which features you think are the most useful or most important. How would
you order this list? Which features do you think are the least
interesting? Did I somehow not include on the list your favorite feature?
I encourage you to send your replies by direct email rather than to the
list unless you have something to say that you think is of broad interest.
- *Attachments.* Unless you make models containing just one object the
attachments features can revolutionize your modeling. They let you position
components of a model relative to other components so you don't have to
keep track of the positions and orientations of parts of the model. You can
instead place an something on the TOP of something else, perhaps aligned to
the RIGHT. For a full introduction to attachments, consult the Attachments
Tutorial.
<https://github.com/BelfrySCAD/BOSL2/wiki/Tutorial-Attachments>
- *Rounding and filleting.* Rounding and filleting is hard in
OpenSCAD. The library provides modules like cuboid()
<https://github.com/BelfrySCAD/BOSL2/wiki/shapes3d.scad#module-cuboid>
to make a cube with any of the edges rounded, offset_sweep()
<https://github.com/BelfrySCAD/BOSL2/wiki/rounding.scad#functionmodule-offset_sweep>
to round the ends of a linear extrusion, and prism_connector()
<https://github.com/BelfrySCAD/BOSL2/wiki/rounding.scad#module-prism_connector>
which works with the attachments feature to create filleted prisms between
a variety of objects, or even rounded holes through a single object. You
can also use edge_profile()
<https://github.com/BelfrySCAD/BOSL2/wiki/attachments.scad#module-edge_profile>
to apply a variety of different mask profiles to chosen edges of a cubic
shape, or you can directly subtract 3d mask shapes from an edge of objects
that are not cubes.
- *Complex object support.* The path_sweep()
<https://github.com/BelfrySCAD/BOSL2/wiki/skin.scad#functionmodule-path_sweep>
function/module takes a 2d polygon moves it through space along a path and
sweeps out a 3d shape as it moves. You can link together a series of
arbitrary polygons with skin()
<https://github.com/BelfrySCAD/BOSL2/wiki/skin.scad#functionmodule-skin>
or vnf_vertex_array().
<https://github.com/BelfrySCAD/BOSL2/wiki/vnf.scad#functionmodule-vnf_vertex_array>
Support for beziers
<https://github.com/BelfrySCAD/BOSL2/wiki/beziers.scad> and NURBS
<https://github.com/BelfrySCAD/BOSL2/wiki/nurbs.scad> can help you
construct the building blocks you need. Metaballs
<https://github.com/BelfrySCAD/BOSL2/wiki/isosurface.scad#functionmodule-metaballs>
can create organic surfaces that blend shapes together.
- *Building Blocks.* OpenSCAD provides cubes, cones and spheres. The
BOSL2 library extends this to provide different kinds of prisms, tubes, and
other abstract geometrical building blocks. In many cases the BOSL2 objects
include options to round their edges. Basic objects have extensions like
the ability to specify the *inner* radius of a circle to create holes
with a guaranteed minimum size.
- *Texturing.* Many kinds of objects can be created with textures
<https://github.com/BelfrySCAD/BOSL2/wiki/skin.scad#section-texturing>
applied. This can create knurling, but it can do much more than that. A
texture can be any repeating pattern, and applying a texture can actually
replace the base object with something different based on repeating copies
of the texture element. A texture can also be an image; using texturing you
can emboss an arbitrary image onto your model.
- *Parts library.* The parts library includes many useful specific
functional parts including gears
<https://github.com/BelfrySCAD/BOSL2/wiki/gears.scad>, generic
threading
<https://github.com/BelfrySCAD/BOSL2/wiki/threading.scad#section-generic-threading>,
and specific threading to match plastic bottles
<https://github.com/BelfrySCAD/BOSL2/wiki/bottlecaps.scad>, pipe
fittings
<https://github.com/BelfrySCAD/BOSL2/wiki/threading.scad#module-npt_threaded_rod>,
or standard screws.
<https://github.com/BelfrySCAD/BOSL2/wiki/screws.scad> Also included
are clips
<https://github.com/BelfrySCAD/BOSL2/wiki/joiners.scad#section-tension-clips>,
hinges <https://github.com/BelfrySCAD/BOSL2/wiki/hinges.scad>, and dovetail
joints.
<https://github.com/BelfrySCAD/BOSL2/wiki/joiners.scad#section-dovetails>
- *Shorthands.* The shorthands make your code a little shorter, and
more importantly, they can make it significantly easier to read. Compare
up(x) to translate([0,0,x]). The shorthands include operations for
creating copies of objects
<https://github.com/BelfrySCAD/BOSL2/wiki/distributors.scad> and for
applying transformations
<https://github.com/BelfrySCAD/BOSL2/wiki/transforms.scad> to objects,
including rot()
<https://github.com/BelfrySCAD/BOSL2/wiki/transforms.scad#functionmodule-rot>
which extends rotate in some useful ways that are not easy to do directly.
- *Geometrical operations on data.* In OpenSCAD, geometrical
operations happen on geometry, and information can never be extracted from
geometry. The BOLS2 library provides operations on 2d point lists (called
"paths" or "regions") to make rounded paths
<https://github.com/BelfrySCAD/BOSL2/wiki/rounding.scad#function-round_corners>
from ones with corners or do operations like intersection
<https://github.com/BelfrySCAD/BOSL2/wiki/regions.scad#functionmodule-intersection>
and offset
<https://github.com/BelfrySCAD/BOSL2/wiki/regions.scad#function-offset>.
It can also do some limited operations on three dimensional data.
- *Programming aids.* The library provides basic mathematical
operations <https://github.com/BelfrySCAD/BOSL2/wiki/math.scad>
including solutions to linear systems of equations
<https://github.com/BelfrySCAD/BOSL2/wiki/linalg.scad#function-linear_solve>
and generic
<https://github.com/BelfrySCAD/BOSL2/wiki/math.scad#function-root_find>
and polynomial
<https://github.com/BelfrySCAD/BOSL2/wiki/math.scad#function-real_roots>
numerical root finding. It provides geometrical operations
<https://github.com/BelfrySCAD/BOSL2/wiki/geometry.scad> like line
intersection
<https://github.com/BelfrySCAD/BOSL2/wiki/geometry.scad#function-line_intersection>
or circle intersection
<https://github.com/BelfrySCAD/BOSL2/wiki/geometry.scad#function-circle_circle_intersection>,
coordinate transformations
<https://github.com/BelfrySCAD/BOSL2/wiki/coords.scad>, string
manipulation, <https://github.com/BelfrySCAD/BOSL2/wiki/strings.scad>
and list processing
<https://github.com/BelfrySCAD/BOSL2/wiki/lists.scad>.
OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org
Very nice mail, and if that is the short-short intro to BOSL2 it is super.
Add a note about the The VNF structure contrasted to the OpenSCADs point
list for polyhedron
My usage of BOSL2 is very occasional, mostly because of the overwhelming
number of functions, modules and what have you.
Msquare
On Fri, 23 May 2025 at 22:11, Adrian Mariano via Discuss <
discuss@lists.openscad.org> wrote:
> I wrote a summary in which I tried to capture the capabilities provided by
> the BOSL2 library, and we've had some discussion about the right order to
> list them in. I'm interested in hearing from users of BOSL2, or even
> people who are not (yet/) BOSL2 users but are interested in BOSL2, about
> which features you think are the most useful or most important. How would
> you order this list? Which features do you think are the least
> interesting? Did I somehow not include on the list your favorite feature?
> I encourage you to send your replies by direct email rather than to the
> list unless you have something to say that you think is of broad interest.
>
> - *Attachments.* Unless you make models containing just one object the
> attachments features can revolutionize your modeling. They let you position
> components of a model relative to other components so you don't have to
> keep track of the positions and orientations of parts of the model. You can
> instead place an something on the TOP of something else, perhaps aligned to
> the RIGHT. For a full introduction to attachments, consult the Attachments
> Tutorial.
> <https://github.com/BelfrySCAD/BOSL2/wiki/Tutorial-Attachments>
> - *Rounding and filleting.* Rounding and filleting is hard in
> OpenSCAD. The library provides modules like cuboid()
> <https://github.com/BelfrySCAD/BOSL2/wiki/shapes3d.scad#module-cuboid>
> to make a cube with any of the edges rounded, offset_sweep()
> <https://github.com/BelfrySCAD/BOSL2/wiki/rounding.scad#functionmodule-offset_sweep>
> to round the ends of a linear extrusion, and prism_connector()
> <https://github.com/BelfrySCAD/BOSL2/wiki/rounding.scad#module-prism_connector>
> which works with the attachments feature to create filleted prisms between
> a variety of objects, or even rounded holes through a single object. You
> can also use edge_profile()
> <https://github.com/BelfrySCAD/BOSL2/wiki/attachments.scad#module-edge_profile>
> to apply a variety of different mask profiles to chosen edges of a cubic
> shape, or you can directly subtract 3d mask shapes from an edge of objects
> that are not cubes.
> - *Complex object support.* The path_sweep()
> <https://github.com/BelfrySCAD/BOSL2/wiki/skin.scad#functionmodule-path_sweep>
> function/module takes a 2d polygon moves it through space along a path and
> sweeps out a 3d shape as it moves. You can link together a series of
> arbitrary polygons with skin()
> <https://github.com/BelfrySCAD/BOSL2/wiki/skin.scad#functionmodule-skin>
> or vnf_vertex_array().
> <https://github.com/BelfrySCAD/BOSL2/wiki/vnf.scad#functionmodule-vnf_vertex_array>
> Support for beziers
> <https://github.com/BelfrySCAD/BOSL2/wiki/beziers.scad> and NURBS
> <https://github.com/BelfrySCAD/BOSL2/wiki/nurbs.scad> can help you
> construct the building blocks you need. Metaballs
> <https://github.com/BelfrySCAD/BOSL2/wiki/isosurface.scad#functionmodule-metaballs>
> can create organic surfaces that blend shapes together.
> - *Building Blocks.* OpenSCAD provides cubes, cones and spheres. The
> BOSL2 library extends this to provide different kinds of prisms, tubes, and
> other abstract geometrical building blocks. In many cases the BOSL2 objects
> include options to round their edges. Basic objects have extensions like
> the ability to specify the *inner* radius of a circle to create holes
> with a guaranteed minimum size.
> - *Texturing.* Many kinds of objects can be created with textures
> <https://github.com/BelfrySCAD/BOSL2/wiki/skin.scad#section-texturing>
> applied. This can create knurling, but it can do much more than that. A
> texture can be any repeating pattern, and applying a texture can actually
> replace the base object with something different based on repeating copies
> of the texture element. A texture can also be an image; using texturing you
> can emboss an arbitrary image onto your model.
> - *Parts library.* The parts library includes many useful specific
> functional parts including gears
> <https://github.com/BelfrySCAD/BOSL2/wiki/gears.scad>, generic
> threading
> <https://github.com/BelfrySCAD/BOSL2/wiki/threading.scad#section-generic-threading>,
> and specific threading to match plastic bottles
> <https://github.com/BelfrySCAD/BOSL2/wiki/bottlecaps.scad>, pipe
> fittings
> <https://github.com/BelfrySCAD/BOSL2/wiki/threading.scad#module-npt_threaded_rod>,
> or standard screws.
> <https://github.com/BelfrySCAD/BOSL2/wiki/screws.scad> Also included
> are clips
> <https://github.com/BelfrySCAD/BOSL2/wiki/joiners.scad#section-tension-clips>,
> hinges <https://github.com/BelfrySCAD/BOSL2/wiki/hinges.scad>, and dovetail
> joints.
> <https://github.com/BelfrySCAD/BOSL2/wiki/joiners.scad#section-dovetails>
> - *Shorthands.* The shorthands make your code a little shorter, and
> more importantly, they can make it significantly easier to read. Compare
> up(x) to translate([0,0,x]). The shorthands include operations for
> creating copies of objects
> <https://github.com/BelfrySCAD/BOSL2/wiki/distributors.scad> and for
> applying transformations
> <https://github.com/BelfrySCAD/BOSL2/wiki/transforms.scad> to objects,
> including rot()
> <https://github.com/BelfrySCAD/BOSL2/wiki/transforms.scad#functionmodule-rot>
> which extends rotate in some useful ways that are not easy to do directly.
> - *Geometrical operations on data.* In OpenSCAD, geometrical
> operations happen on geometry, and information can never be extracted from
> geometry. The BOLS2 library provides operations on 2d point lists (called
> "paths" or "regions") to make rounded paths
> <https://github.com/BelfrySCAD/BOSL2/wiki/rounding.scad#function-round_corners>
> from ones with corners or do operations like intersection
> <https://github.com/BelfrySCAD/BOSL2/wiki/regions.scad#functionmodule-intersection>
> and offset
> <https://github.com/BelfrySCAD/BOSL2/wiki/regions.scad#function-offset>.
> It can also do some limited operations on three dimensional data.
> - *Programming aids.* The library provides basic mathematical
> operations <https://github.com/BelfrySCAD/BOSL2/wiki/math.scad>
> including solutions to linear systems of equations
> <https://github.com/BelfrySCAD/BOSL2/wiki/linalg.scad#function-linear_solve>
> and generic
> <https://github.com/BelfrySCAD/BOSL2/wiki/math.scad#function-root_find>
> and polynomial
> <https://github.com/BelfrySCAD/BOSL2/wiki/math.scad#function-real_roots>
> numerical root finding. It provides geometrical operations
> <https://github.com/BelfrySCAD/BOSL2/wiki/geometry.scad> like line
> intersection
> <https://github.com/BelfrySCAD/BOSL2/wiki/geometry.scad#function-line_intersection>
> or circle intersection
> <https://github.com/BelfrySCAD/BOSL2/wiki/geometry.scad#function-circle_circle_intersection>,
> coordinate transformations
> <https://github.com/BelfrySCAD/BOSL2/wiki/coords.scad>, string
> manipulation, <https://github.com/BelfrySCAD/BOSL2/wiki/strings.scad>
> and list processing
> <https://github.com/BelfrySCAD/BOSL2/wiki/lists.scad>.
>
>
> _______________________________________________
> OpenSCAD mailing list
> To unsubscribe send an email to discuss-leave@lists.openscad.org
>
GS
Guenther Sohler
Sat, May 24, 2025 10:47 AM
It's just a pity that OpenSCAD does not yet grant access to the internal
points even though it could.
This even establishes the need for BOSL2 to do all work twice(solids and
VNF).
On Sat, May 24, 2025 at 12:19 PM Michael Möller via Discuss <
discuss@lists.openscad.org> wrote:
Very nice mail, and if that is the short-short intro to BOSL2 it is super.
Add a note about the The VNF structure contrasted to the OpenSCADs point
list for polyhedron
My usage of BOSL2 is very occasional, mostly because of the overwhelming
number of functions, modules and what have you.
Msquare
On Fri, 23 May 2025 at 22:11, Adrian Mariano via Discuss <
discuss@lists.openscad.org> wrote:
I wrote a summary in which I tried to capture the capabilities provided
by the BOSL2 library, and we've had some discussion about the right order
to list them in. I'm interested in hearing from users of BOSL2, or even
people who are not (yet/) BOSL2 users but are interested in BOSL2, about
which features you think are the most useful or most important. How would
you order this list? Which features do you think are the least
interesting? Did I somehow not include on the list your favorite feature?
I encourage you to send your replies by direct email rather than to the
list unless you have something to say that you think is of broad interest.
- *Attachments.* Unless you make models containing just one object
the attachments features can revolutionize your modeling. They let you
position components of a model relative to other components so you don't
have to keep track of the positions and orientations of parts of the model.
You can instead place an something on the TOP of something else, perhaps
aligned to the RIGHT. For a full introduction to attachments, consult the Attachments
Tutorial.
<https://github.com/BelfrySCAD/BOSL2/wiki/Tutorial-Attachments>
- *Rounding and filleting.* Rounding and filleting is hard in
OpenSCAD. The library provides modules like cuboid()
<https://github.com/BelfrySCAD/BOSL2/wiki/shapes3d.scad#module-cuboid>
to make a cube with any of the edges rounded, offset_sweep()
<https://github.com/BelfrySCAD/BOSL2/wiki/rounding.scad#functionmodule-offset_sweep>
to round the ends of a linear extrusion, and prism_connector()
<https://github.com/BelfrySCAD/BOSL2/wiki/rounding.scad#module-prism_connector>
which works with the attachments feature to create filleted prisms between
a variety of objects, or even rounded holes through a single object. You
can also use edge_profile()
<https://github.com/BelfrySCAD/BOSL2/wiki/attachments.scad#module-edge_profile>
to apply a variety of different mask profiles to chosen edges of a cubic
shape, or you can directly subtract 3d mask shapes from an edge of objects
that are not cubes.
- *Complex object support.* The path_sweep()
<https://github.com/BelfrySCAD/BOSL2/wiki/skin.scad#functionmodule-path_sweep>
function/module takes a 2d polygon moves it through space along a path and
sweeps out a 3d shape as it moves. You can link together a series of
arbitrary polygons with skin()
<https://github.com/BelfrySCAD/BOSL2/wiki/skin.scad#functionmodule-skin>
or vnf_vertex_array().
<https://github.com/BelfrySCAD/BOSL2/wiki/vnf.scad#functionmodule-vnf_vertex_array>
Support for beziers
<https://github.com/BelfrySCAD/BOSL2/wiki/beziers.scad> and NURBS
<https://github.com/BelfrySCAD/BOSL2/wiki/nurbs.scad> can help you
construct the building blocks you need. Metaballs
<https://github.com/BelfrySCAD/BOSL2/wiki/isosurface.scad#functionmodule-metaballs>
can create organic surfaces that blend shapes together.
- *Building Blocks.* OpenSCAD provides cubes, cones and spheres. The
BOSL2 library extends this to provide different kinds of prisms, tubes, and
other abstract geometrical building blocks. In many cases the BOSL2 objects
include options to round their edges. Basic objects have extensions like
the ability to specify the *inner* radius of a circle to create holes
with a guaranteed minimum size.
- *Texturing.* Many kinds of objects can be created with textures
<https://github.com/BelfrySCAD/BOSL2/wiki/skin.scad#section-texturing>
applied. This can create knurling, but it can do much more than that. A
texture can be any repeating pattern, and applying a texture can actually
replace the base object with something different based on repeating copies
of the texture element. A texture can also be an image; using texturing you
can emboss an arbitrary image onto your model.
- *Parts library.* The parts library includes many useful specific
functional parts including gears
<https://github.com/BelfrySCAD/BOSL2/wiki/gears.scad>, generic
threading
<https://github.com/BelfrySCAD/BOSL2/wiki/threading.scad#section-generic-threading>,
and specific threading to match plastic bottles
<https://github.com/BelfrySCAD/BOSL2/wiki/bottlecaps.scad>, pipe
fittings
<https://github.com/BelfrySCAD/BOSL2/wiki/threading.scad#module-npt_threaded_rod>,
or standard screws.
<https://github.com/BelfrySCAD/BOSL2/wiki/screws.scad> Also included
are clips
<https://github.com/BelfrySCAD/BOSL2/wiki/joiners.scad#section-tension-clips>,
hinges <https://github.com/BelfrySCAD/BOSL2/wiki/hinges.scad>, and dovetail
joints.
<https://github.com/BelfrySCAD/BOSL2/wiki/joiners.scad#section-dovetails>
- *Shorthands.* The shorthands make your code a little shorter, and
more importantly, they can make it significantly easier to read. Compare
up(x) to translate([0,0,x]). The shorthands include operations for
creating copies of objects
<https://github.com/BelfrySCAD/BOSL2/wiki/distributors.scad> and for
applying transformations
<https://github.com/BelfrySCAD/BOSL2/wiki/transforms.scad> to
objects, including rot()
<https://github.com/BelfrySCAD/BOSL2/wiki/transforms.scad#functionmodule-rot>
which extends rotate in some useful ways that are not easy to do directly.
- *Geometrical operations on data.* In OpenSCAD, geometrical
operations happen on geometry, and information can never be extracted from
geometry. The BOLS2 library provides operations on 2d point lists (called
"paths" or "regions") to make rounded paths
<https://github.com/BelfrySCAD/BOSL2/wiki/rounding.scad#function-round_corners>
from ones with corners or do operations like intersection
<https://github.com/BelfrySCAD/BOSL2/wiki/regions.scad#functionmodule-intersection>
and offset
<https://github.com/BelfrySCAD/BOSL2/wiki/regions.scad#function-offset>.
It can also do some limited operations on three dimensional data.
- *Programming aids.* The library provides basic mathematical
operations <https://github.com/BelfrySCAD/BOSL2/wiki/math.scad>
including solutions to linear systems of equations
<https://github.com/BelfrySCAD/BOSL2/wiki/linalg.scad#function-linear_solve>
and generic
<https://github.com/BelfrySCAD/BOSL2/wiki/math.scad#function-root_find>
and polynomial
<https://github.com/BelfrySCAD/BOSL2/wiki/math.scad#function-real_roots>
numerical root finding. It provides geometrical operations
<https://github.com/BelfrySCAD/BOSL2/wiki/geometry.scad> like line
intersection
<https://github.com/BelfrySCAD/BOSL2/wiki/geometry.scad#function-line_intersection>
or circle intersection
<https://github.com/BelfrySCAD/BOSL2/wiki/geometry.scad#function-circle_circle_intersection>,
coordinate transformations
<https://github.com/BelfrySCAD/BOSL2/wiki/coords.scad>, string
manipulation, <https://github.com/BelfrySCAD/BOSL2/wiki/strings.scad>
and list processing
<https://github.com/BelfrySCAD/BOSL2/wiki/lists.scad>.
OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org
It's just a pity that OpenSCAD does not yet grant access to the internal
points even though it could.
This even establishes the need for BOSL2 to do all work twice(solids and
VNF).
On Sat, May 24, 2025 at 12:19 PM Michael Möller via Discuss <
discuss@lists.openscad.org> wrote:
> Very nice mail, and if that is the short-short intro to BOSL2 it is super.
>
> Add a note about the The VNF structure contrasted to the OpenSCADs point
> list for polyhedron
>
> My usage of BOSL2 is very occasional, mostly because of the overwhelming
> number of functions, modules and what have you.
>
> Msquare
>
> On Fri, 23 May 2025 at 22:11, Adrian Mariano via Discuss <
> discuss@lists.openscad.org> wrote:
>
>> I wrote a summary in which I tried to capture the capabilities provided
>> by the BOSL2 library, and we've had some discussion about the right order
>> to list them in. I'm interested in hearing from users of BOSL2, or even
>> people who are not (yet/) BOSL2 users but are interested in BOSL2, about
>> which features you think are the most useful or most important. How would
>> you order this list? Which features do you think are the least
>> interesting? Did I somehow not include on the list your favorite feature?
>> I encourage you to send your replies by direct email rather than to the
>> list unless you have something to say that you think is of broad interest.
>>
>> - *Attachments.* Unless you make models containing just one object
>> the attachments features can revolutionize your modeling. They let you
>> position components of a model relative to other components so you don't
>> have to keep track of the positions and orientations of parts of the model.
>> You can instead place an something on the TOP of something else, perhaps
>> aligned to the RIGHT. For a full introduction to attachments, consult the Attachments
>> Tutorial.
>> <https://github.com/BelfrySCAD/BOSL2/wiki/Tutorial-Attachments>
>> - *Rounding and filleting.* Rounding and filleting is hard in
>> OpenSCAD. The library provides modules like cuboid()
>> <https://github.com/BelfrySCAD/BOSL2/wiki/shapes3d.scad#module-cuboid>
>> to make a cube with any of the edges rounded, offset_sweep()
>> <https://github.com/BelfrySCAD/BOSL2/wiki/rounding.scad#functionmodule-offset_sweep>
>> to round the ends of a linear extrusion, and prism_connector()
>> <https://github.com/BelfrySCAD/BOSL2/wiki/rounding.scad#module-prism_connector>
>> which works with the attachments feature to create filleted prisms between
>> a variety of objects, or even rounded holes through a single object. You
>> can also use edge_profile()
>> <https://github.com/BelfrySCAD/BOSL2/wiki/attachments.scad#module-edge_profile>
>> to apply a variety of different mask profiles to chosen edges of a cubic
>> shape, or you can directly subtract 3d mask shapes from an edge of objects
>> that are not cubes.
>> - *Complex object support.* The path_sweep()
>> <https://github.com/BelfrySCAD/BOSL2/wiki/skin.scad#functionmodule-path_sweep>
>> function/module takes a 2d polygon moves it through space along a path and
>> sweeps out a 3d shape as it moves. You can link together a series of
>> arbitrary polygons with skin()
>> <https://github.com/BelfrySCAD/BOSL2/wiki/skin.scad#functionmodule-skin>
>> or vnf_vertex_array().
>> <https://github.com/BelfrySCAD/BOSL2/wiki/vnf.scad#functionmodule-vnf_vertex_array>
>> Support for beziers
>> <https://github.com/BelfrySCAD/BOSL2/wiki/beziers.scad> and NURBS
>> <https://github.com/BelfrySCAD/BOSL2/wiki/nurbs.scad> can help you
>> construct the building blocks you need. Metaballs
>> <https://github.com/BelfrySCAD/BOSL2/wiki/isosurface.scad#functionmodule-metaballs>
>> can create organic surfaces that blend shapes together.
>> - *Building Blocks.* OpenSCAD provides cubes, cones and spheres. The
>> BOSL2 library extends this to provide different kinds of prisms, tubes, and
>> other abstract geometrical building blocks. In many cases the BOSL2 objects
>> include options to round their edges. Basic objects have extensions like
>> the ability to specify the *inner* radius of a circle to create holes
>> with a guaranteed minimum size.
>> - *Texturing.* Many kinds of objects can be created with textures
>> <https://github.com/BelfrySCAD/BOSL2/wiki/skin.scad#section-texturing>
>> applied. This can create knurling, but it can do much more than that. A
>> texture can be any repeating pattern, and applying a texture can actually
>> replace the base object with something different based on repeating copies
>> of the texture element. A texture can also be an image; using texturing you
>> can emboss an arbitrary image onto your model.
>> - *Parts library.* The parts library includes many useful specific
>> functional parts including gears
>> <https://github.com/BelfrySCAD/BOSL2/wiki/gears.scad>, generic
>> threading
>> <https://github.com/BelfrySCAD/BOSL2/wiki/threading.scad#section-generic-threading>,
>> and specific threading to match plastic bottles
>> <https://github.com/BelfrySCAD/BOSL2/wiki/bottlecaps.scad>, pipe
>> fittings
>> <https://github.com/BelfrySCAD/BOSL2/wiki/threading.scad#module-npt_threaded_rod>,
>> or standard screws.
>> <https://github.com/BelfrySCAD/BOSL2/wiki/screws.scad> Also included
>> are clips
>> <https://github.com/BelfrySCAD/BOSL2/wiki/joiners.scad#section-tension-clips>,
>> hinges <https://github.com/BelfrySCAD/BOSL2/wiki/hinges.scad>, and dovetail
>> joints.
>> <https://github.com/BelfrySCAD/BOSL2/wiki/joiners.scad#section-dovetails>
>> - *Shorthands.* The shorthands make your code a little shorter, and
>> more importantly, they can make it significantly easier to read. Compare
>> up(x) to translate([0,0,x]). The shorthands include operations for
>> creating copies of objects
>> <https://github.com/BelfrySCAD/BOSL2/wiki/distributors.scad> and for
>> applying transformations
>> <https://github.com/BelfrySCAD/BOSL2/wiki/transforms.scad> to
>> objects, including rot()
>> <https://github.com/BelfrySCAD/BOSL2/wiki/transforms.scad#functionmodule-rot>
>> which extends rotate in some useful ways that are not easy to do directly.
>> - *Geometrical operations on data.* In OpenSCAD, geometrical
>> operations happen on geometry, and information can never be extracted from
>> geometry. The BOLS2 library provides operations on 2d point lists (called
>> "paths" or "regions") to make rounded paths
>> <https://github.com/BelfrySCAD/BOSL2/wiki/rounding.scad#function-round_corners>
>> from ones with corners or do operations like intersection
>> <https://github.com/BelfrySCAD/BOSL2/wiki/regions.scad#functionmodule-intersection>
>> and offset
>> <https://github.com/BelfrySCAD/BOSL2/wiki/regions.scad#function-offset>.
>> It can also do some limited operations on three dimensional data.
>> - *Programming aids.* The library provides basic mathematical
>> operations <https://github.com/BelfrySCAD/BOSL2/wiki/math.scad>
>> including solutions to linear systems of equations
>> <https://github.com/BelfrySCAD/BOSL2/wiki/linalg.scad#function-linear_solve>
>> and generic
>> <https://github.com/BelfrySCAD/BOSL2/wiki/math.scad#function-root_find>
>> and polynomial
>> <https://github.com/BelfrySCAD/BOSL2/wiki/math.scad#function-real_roots>
>> numerical root finding. It provides geometrical operations
>> <https://github.com/BelfrySCAD/BOSL2/wiki/geometry.scad> like line
>> intersection
>> <https://github.com/BelfrySCAD/BOSL2/wiki/geometry.scad#function-line_intersection>
>> or circle intersection
>> <https://github.com/BelfrySCAD/BOSL2/wiki/geometry.scad#function-circle_circle_intersection>,
>> coordinate transformations
>> <https://github.com/BelfrySCAD/BOSL2/wiki/coords.scad>, string
>> manipulation, <https://github.com/BelfrySCAD/BOSL2/wiki/strings.scad>
>> and list processing
>> <https://github.com/BelfrySCAD/BOSL2/wiki/lists.scad>.
>>
>>
>> _______________________________________________
>> OpenSCAD mailing list
>> To unsubscribe send an email to discuss-leave@lists.openscad.org
>>
> _______________________________________________
> OpenSCAD mailing list
> To unsubscribe send an email to discuss-leave@lists.openscad.org
>