mirror of
https://github.com/BelfrySCAD/BOSL2.git
synced 2025-12-08 03:41:55 +00:00
The Belfry OpenScad Library, v2.0. An OpenSCAD library of shapes, masks, and manipulators to make working with OpenSCAD easier. BETA
| .gitignore | ||
| acme_screws.scad | ||
| beziers.scad | ||
| involute_gears.scad | ||
| joiners.scad | ||
| LICENSE | ||
| linear_bearings.scad | ||
| masks.scad | ||
| math.scad | ||
| metric_screws.scad | ||
| nema_steppers.scad | ||
| paths.scad | ||
| quaternions.scad | ||
| README.md | ||
| shapes.scad | ||
| sliders.scad | ||
| transforms.scad | ||
| wiring.scad | ||
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 withdifference()andintersect().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 totranslate().xrot(),yrot(),zrot()as single-axis alternatives torotate.xspread(),yspread(), andzspread()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 amultmatrix().- 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 ofcube()that is centered on top of the XY plane.- Filleted (rounded) and Chamferred (bevelled) cubes and cylinders.
pyramid()andprism()- The incredibly useful
trapezoid()for non-parallelogram cubes. right_triangle()for the obvious shape.teardrop()andonion()for making more 3D printable holes.tube()andtorus()for donut shapes.slot()andarced_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(), andchamfer_mask_z()to chamfer (bevel) an axis aligned 90 degree edge.fillet_mask_x(),fillet_mask_y(), andfillet_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