-
Notifications
You must be signed in to change notification settings - Fork 4
components.scad
This file has all the modules needed to generate varioius inserts for board games. It makes the generation of the inserts simpler by creating a number of useful base modules for making boxes and lids of various types specific to board game inserts. Specifically it makes tabbed lids and sliding lids easily.
To use, add the following lines to the beginning of your file:
include <boardgame_toolkit.scad>
Building blocks to make all the rest of the items from. This has all the basic parts of the board game toolkit for making polygons and laying them out.
Topics: Recess
Usage:
- RoundedBoxOnLength(100, 50, 10, 5);
Description:
Creates a rounded box for use in the board game insert with a nice radius on two sides (length side).
Arguments:
| By Position | What it does |
|---|---|
width |
width of the cube |
length |
of the cube |
height |
of the cube |
radius |
radius of the curve on the edges |
Example 1:
include <boardgame_toolkit.scad>
RoundedBoxOnLength(30, 20, 10, 7);
Topics: Recess
Usage:
- RoundedBoxAllSides(30,20,10,5);
Description:
Creates a rounded box with all the sides rounded.
Arguments:
| By Position | What it does |
|---|---|
width |
width of the cube |
length |
of the cube |
height |
of the cube |
radius |
radius of the curve on the edges |
Example 1:
include <boardgame_toolkit.scad>
RoundedBoxAllSides(30, 20, 10, 7);
Usage:
- RoundedBoxGrid(20,20,10,5, rows=2, cols=1);
Description:
Create a grid of rounded boxes, this is useful for inserting a number of containers inside a insert box.
Arguments:
| By Position | What it does |
|---|---|
width |
width of the space (total, inside will be divided by this) |
length |
of the space (total, inside will be divided by this) |
height |
of the space |
radius |
radius of the curve on the edges |
rows |
number of rows to generate |
cols |
number of cols to generate |
spacing |
number of mm between the spaces (default 2) |
all_sides |
round all the sides (default false) |
Example 1:
include <boardgame_toolkit.scad>
RoundedBoxGrid(30, 20, 10, 7, rows=2, cols=1);
Topics: Recess
Usage:
- RegularPolygon(10, 5, 6);
Description:
Creates a regular polygon with specific height/width and number of edges.
Arguments:
| By Position | What it does |
|---|---|
width |
total width of the piece, this is equivilant to the apothem of a polygon * 2 |
height |
how high to create the item |
shape_edges |
number of edges for the polygon |
finger_holes |
finger holes to put on the specific edges, from 0-shapeedges |
finger_hole_height |
height of the finger holes |
finger_hole_radius |
the radius of the finger holes |
Example 1:
include <boardgame_toolkit.scad>
RegularPolygon(10, 5, shape_edges = 6);
Example 2:
include <boardgame_toolkit.scad>
RegularPolygon(10, 5, shape_edges = 6, finger_holes = [0, 3]);
Description:
Makes a nice cylinder with finger holes bits at the spexific angles.
Arguments:
| By Position | What it does |
|---|---|
radius |
radius of the circle |
height |
of the cylinder |
finger_holes |
finger holes at the specified degrees. |
finger_hole_height |
how much to move it up from the bottom |
finger_hole_radius |
the radius to use for the finger holes |
Example 1:
include <boardgame_toolkit.scad>
CylinderWithIndents(15, 10, finger_holes = [30, 210]);
Description:
Makes a nice cuboid with finger holes bits at the specific sides, this anchors to the bottom. The holes are at: [LEFT + FRONT, RIGHT+BACK, LEFT, RIGHT, FRONT, BACK, ]
Arguments:
| By Position | What it does |
|---|---|
size |
size of the cuboid |
finger_holes |
finger holes at the specified places |
finger_hole_height |
how much to move it up from the bottom finger_hole_radius = |
the radius to use for the finger holes |
Example 1:
include <boardgame_toolkit.scad>
CuboidWithIndentsBottom([15, 10, 5], finger_holes = [1, 5]);
Example 2:
include <boardgame_toolkit.scad>
CuboidWithIndentsBottom([15, 10, 5], finger_holes = [0, 4]);
Topics: Grid
Usage:
- RegularPolygonGrid(10, 2, 1, 2)
Description:
Lays out the grid with all the polygons as children. The layout handles any shape as children.
This uses the exact width of the polygon to layout the underlying grid. This just does all the
spacing, the actual generation is done using the children to this module. This is usually used in
conjuction with RegularPolygon()
Arguments:
| By Position | What it does |
|---|---|
width |
total width of the piece, this is equivilant to the apothem of a polygon * 2 |
rows |
number of rows to generate |
cols |
number of cols to generate |
spacing |
spacing between shapres |
aspect_ratio |
ratio between shape and width, the dy is * this (default 1.0) |
inner_control |
if the layout is controled by the client using $polygon_x and $polygon_y as the layout (defaul false) |
Example 1:
include <boardgame_toolkit.scad>
RegularPolygonGrid(width = 10, rows = 2, cols = 1, spacing = 2)
RegularPolygon(width = 10, height = 5, shape_edges = 6);
Topics: Grid
Usage:
- RegularPolygonGridDense(10, 2, 1)
Description:
Lays out the grid with all the polygons as children in a dense layout, this only works for triangles and hexes.
It will do a dense space filling using the spacing as the distance between the polygons.
This uses the exact width of the polygon to layout the underlying grid. This just does all the
spacing, the actual generation is done using the children to this module. This is usually used in
conjuction with RegularPolygon()
Arguments:
| By Position | What it does |
|---|---|
radius |
this is the radius of the polygon, distance from center to edges |
rows |
number of rows to generate |
cols |
number of cols to generate |
spacing |
spacing between shapres |
Example 1:
include <boardgame_toolkit.scad>
RegularPolygonGridDense(radius = 10, rows = 3, cols = 2)
RegularPolygon(width = 10, height = 5, shape_edges = 6);
Topics: Recess Grid
Usage:
- HexGridWithCutouts(rows = 4, cols = 3, height = 10, spacing = 0, push_block_height = 1, tile_width = 29);
Description:
This creates a hex grid with cutouts that can be used to cut out piece of a box to make a nice hex spacing inside the box.
Arguments:
| By Position | What it does |
|---|---|
rows |
rows of the grid |
cols |
colrs of the grid |
height |
height of the grid |
spacing |
space between the tiles |
tile_width |
width of the tiles |
push_block_height |
height of the pushblock to use (default 0) |
Example 1:
include <boardgame_toolkit.scad>
HexGridWithCutouts(rows = 4, cols = 3, height = 10, spacing = 0, push_block_height = 1, tile_width = 29);
Topics: FingerHole
Usage: FingerHoldBase(10, 20);
Description:
Creates a hole in the floor of the box with a rounding over at the top to allow for picking up of cards and other things. Center on the side of the wall and the radius of the main section is the offset to the middle.
Arguments:
| By Position | What it does |
|---|---|
radius |
radius of the hole |
height |
height of the wall |
wall_thickness |
this is used as an offset to move in from the wall by this amount to cut through it (default |
2) |
|
rounding_radius |
rounding radius at the top of the hole (default 3) |
orient |
orintation of the hole, from BSOL2 (default UP) |
spin |
spin of the hole, from BSOL2 (default 0) |
anchor |
location to anchor everything (from BSOL2) |
Example 1:
include <boardgame_toolkit.scad>
FingerHoleBase(10, 20);
Example 2:
include <boardgame_toolkit.scad>
FingerHoleBase(10, 20, rounding_radius = 7);
Usage: HilbertCurve(3, 100);
Description:
Generates a hilbert curve for uses in board games.
Arguments:
| By Position | What it does |
|---|---|
order |
depth of recursion to use 3 is a reasonable number |
size |
size to generate the curve, this is a square size |
line_thickness |
how thick to generate the lines in the curve (default = 20) |
smoothness |
how smooth to make all the curves (default 32) |
Example 1:
include <boardgame_toolkit.scad>
HilbertCurve(3, 100);
Table of Contents
Function Index
Topics Index
Cheat Sheet
Tutorials
Boxes:
- cap_box.scad
- cap_box_polygon.scad
- filament_hinge_box.scad
- hinge_box.scad
- inset_box.scad
- magnetic_box.scad
- no_lid.scad
- sliding_box.scad
- sliding_catch_box.scad
- slipover_box.scad
- slipover_path_box.scad
Basics:
Dividers:
Shapes:
Slicing:
CardLibrary:
Miscellaneous: