BOSL2/README.md

65 lines
3.9 KiB
Markdown
Raw Normal View History

# BOSL
The Belfry OpenScad Library - A library of tools, shapes, and helpers to make OpenScad easier to use.
This library is a set of useful tools, shapes and manipulators that I developed while working on various
projects, including large ones like the Snappy-Reprap printed 3D printer.
# Overview
The library files are as follows:
2017-08-31 03:29:49 +00:00
- `transforms.scad`: The most commonly used transformations, manipulations, and shortcuts are in this file.
- `shapes.scad`: Common useful shapes and structured objects.
- `masks.scad`: Shapes that are useful for masking with `difference()` and `intersect()`.
- `math.scad`: Useful helper functions and constants.
- `paths.scad`: Functions and modules to work with arbitrary 3D paths.
- `bezier.scad`: Functions and modules to work with bezier curves.
- `involute_gears.scad`: Modules and functions to make involute gears and racks.
- `metric_screws.scad`: Functions and modules to make holes for metric screws and nuts.
- `joiners.scad`: Modules to make joiner shapes for connecting separately printed objects.
- `sliders.scad`: Modules for creating simple sliders and rails.
- `acme_screws.scad`: Modules to make trapezoidal (ACME) threaded rods and nuts.
- `nema_steppers.scad`: Modules to make mounting holes for NEMA motors.
- `linear_bearings.scad`: Modules to make mounts for LMxUU style linear bearings.
- `wiring.scad`: Modules to render routed bundles of wires.
- `quaternions.scad`: Functions to work with quaternion rotations.
## transforms.scad
2017-08-31 03:29:49 +00:00
The most commonly useful of the library files is `transforms.scad`. It provides features such as:
- `up()`, `down()`, `left()`, `right()`, `fwd()`, `back()` as more readable alternatives to `translate()`.
- `xrot()`, `yrot()`, `zrot()` as single-axis alternatives to `rotate`.
- `xspread()`, `yspread()`, and `zspread()` to evenly space copies of an item along an axis.
- `xring()`, `yring()`, `zring()` to evenly space copies of an item around a circle.
- `skewxy()` that let you skew objects without using a `multmatrix()`.
- Easy mirroring with `xflip()`, `xflip_copy()`, etc.
- Slice items in half with `top_half()`, `left_half()`, `back_half()`, etc.
## shapes.scad
2017-08-31 03:29:49 +00:00
The `shapes.scad` library file provides useful compound shapes, such as:
- `upcube()` a ridiculously useful version of `cube()` that is centered on top of the XY plane.
- Filleted (rounded) and Chamferred (bevelled) cubes and cylinders.
2017-08-31 03:29:49 +00:00
- `pyramid()` and `prism()`
- The incredibly useful `trapezoid()` for non-parallelogram cubes.
- `right_triangle()` for the obvious shape.
- `teardrop()` and `onion()` for making more 3D printable holes.
- `tube()` and `torus()` for donut shapes.
- `slot()` and `arced_slot()` for making things like screw slots.
- `thinning_wall()` makes a vertical wall which thins in the middle, to reduce print volume.
- `thinning_triangle()` makes a right triangle which thins in the middle, to reduce print volume.
- `sparse_strut()` makes a cross-braced open strut wall, optimized for support-less 3D printing.
- `corrugated_wall()` makes a corrugated wall to reduce print volume while keeping strength.
## masks.scad
2017-08-31 03:29:49 +00:00
The `masks.scad` library file provides mask shapes like:
- `angle_pie_mask()` to mask a pie-slice shape.
- `chamfer_mask_x()`, `chamfer_mask_y()`, and `chamfer_mask_z()` to chamfer (bevel) an axis aligned 90 degree edge.
- `fillet_mask_x()`, `fillet_mask_y()`, and `fillet_mask_z()` to fillet (round) an axis aligned 90 degree edge.
- `fillet_corner_mask()` to fillet a 90 degree corner.
- `fillet_angled_edge_mask()` to fillet an acute or obtuse vertical edge.
- `fillet_angled_corner_mask()` to fillet the corner of two acute or obtuse planes.
- `fillet_cylinder_mask()` to fillet the end of a cylinder.
- `fillet_hole_mask()` to fillet the edge of a cylindrical hole.
## Documentation
The full library docs can be found at https://github.com/revarbat/BOSL/wiki