The Belfry OpenScad Library, v2.0. An OpenSCAD library of shapes, masks, and manipulators to make working with OpenSCAD easier. BETA
Find a file
2018-11-19 15:20:24 -08:00
.gitignore Added .DS_Store to .gitignore 2018-11-19 15:15:19 -08:00
acme_screws.scad Tweaked threading library file. 2018-11-11 23:39:58 -08:00
beziers.scad Added linear_extrude_bezier(). 2018-10-03 18:24:07 -07:00
debug.scad Added debug.scad docs. 2018-11-12 00:47:51 -08:00
involute_gears.scad PI is a thing that exists in OpenSCAD, dangit. 2018-10-09 20:50:27 -07:00
joiners.scad Made joiner_clear() asymmetric. 2017-11-03 21:42:06 -07:00
LICENSE Initial commit 2017-08-01 15:59:44 -07:00
linear_bearings.scad Minor bugfixes. 2017-08-31 00:38:36 -07:00
masks.scad Fixed errors with chamfer_mask_* 2018-10-06 22:23:01 -07:00
math.scad PI is a thing that exists in OpenSCAD, dangit. 2018-10-09 20:50:27 -07:00
metric_screws.scad Initial code dump. 2017-08-29 17:00:16 -07:00
nema_steppers.scad Initial code dump. 2017-08-29 17:00:16 -07:00
paths.scad Corrected grammar in comment. 2018-10-09 15:35:40 -07:00
quaternions.scad Initial code dump. 2017-08-29 17:00:16 -07:00
README.md Added documentation link to README 2017-08-30 20:29:49 -07:00
shapes.scad Fixed inverted faces for rcylinder(). 2018-11-19 15:13:15 -08:00
sliders.scad Initial code dump. 2017-08-29 17:00:16 -07:00
threading.scad Added center argument to trapezoidal_threaded_rod() 2018-11-19 15:20:24 -08:00
transforms.scad Added [xyz]distribute(). 2018-11-19 15:14:02 -08:00
triangulation.scad Added triangulation support code. 2018-09-01 02:38:47 -07:00
wiring.scad Fixed some bugs with wiring() 2018-10-09 15:43:50 -07:00

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:

  • 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

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

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.
  • 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

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