-
Notifications
You must be signed in to change notification settings - Fork 4
boardgame_toolkit.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>
Description:
How many mm to use as gaps for when things join.
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.
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);
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);
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 |
Example 1:
include <boardgame_toolkit.scad>
RegularPolygon(10, 5, shape_edges = 6);
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 |
Example 1:
include <boardgame_toolkit.scad>
RegularPolygonGrid(width = 10, rows = 2, cols = 1, spacing = 2)
RegularPolygon(width = 10, height = 5, shape_edges = 6);
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 |
|---|---|
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 |
Example 1:
include <boardgame_toolkit.scad>
RegularPolygonGridDense(width = 10, rows = 3, cols = 2, spacing = 2)
RegularPolygon(width = 10, height = 5, shape_edges = 6);
Usage:
- LidMeshHex(width = 70, length = 50, lid_height = 3, boundary = 10, radius = 5, shape_thickness = 2);
Description:
Make a hex mesh for the lid. This makes a nice pattern for use on the lids.
Arguments:
| By Position | What it does |
|---|---|
width |
width of the mesh section |
length |
the length of the mesh section |
lid_height |
how high the lid is |
boundary |
how wide of a boundary edge to put on the side of the lid |
radius |
the radius of the polygon to create |
shape_thickness |
how thick to generate the gaps between the hexes |
Example 1:
include <boardgame_toolkit.scad>
LidMeshHex(width = 100, length = 50, lid_height = 3, boundary = 10, radius = 10, shape_thickness = 2);
Usage:
- LidMeshRepeating(50, 20, 3, 5, 10);
Description:
Make a mesh for the lid with a repeating shape. It uses the children of this to repeat the shape.
Arguments:
| By Position | What it does |
|---|---|
width |
width of the mesh section |
length |
the length of the mesh section |
lid_height |
how high the lid is |
boundary |
how wide of a boundary edge to put on the side of the lid |
shape_width |
the width to use between each shape. |
Example 1:
include <boardgame_toolkit.scad>
LidMeshRepeating(width = 50, length = 50, lid_height = 3, boundary = 5, shape_width = 10)
difference() {
circle(r = 7);
circle(r = 6);
}
All the pieces for making sliding lids and different types of sliding lids/boxes.
Usage:
- SlidingLid(width=10, length=30, lid_height=3, wall_thickness = 2, lid_size_spacing = 0.2);
Description:
Creates a sliding lid for a sliding lid box, the children to this module are inserted into the lid. This does all the right things on the edges, uses some wiggle room to add in a buffer and also does a small amount of angling on the ends to make them easier to insert.
Arguments:
| By Position | What it does |
|---|---|
width |
the width of the box itself |
length |
the length of the box itself |
lid_height |
the height of the lid (defaults to 3) |
wall_thickness |
how wide the side walls are (defaults to 2) |
lid_size_spacing |
how much of an offset to use in generate the slides spacing on all four sides defaults to |
[m_piece_wiggle_room](#constant-m_piece_wiggle_room)
|
Example 1:
include <boardgame_toolkit.scad>
SlidingLid(width=100, length=100, lid_height=3, wall_thickness = 2)
translate([ 10, 10, 0 ])
LidMeshHex(width = 100, length = 100, lid_height = 3, boundary = 10, radius = 12);
Usage:
- SlidingBoxLidWithLabel(
-
width = 100, length = 100, lid_height = 3, text_width = 60, -
text_length = 30, text_str = "Trains", label_rotated = false);
Description:
This is a composite method that joins together the other pieces to make a simple lid with a label and a hex grid. The children to this as also pulled out of the lid so can be used to build more complicated lids.
Arguments:
| By Position | What it does |
|---|---|
width |
width of the box (outside dimension) |
length |
length of the box (outside dimension) |
lid_height |
height of the lid |
text_width |
width of the text section |
text_length |
length of the text section |
text_str |
The string to write |
lid_boundary |
how much boundary should be around the pattern (default 10) |
label_radius |
radius of the rounded corner for the label section (default 12) |
border |
how wide the border strip on the label should be (default 2) |
offset |
how far inside the border the label should be (degault 4) |
label_rotated |
if the label should be rotated, default to false |
Example 1:
include <boardgame_toolkit.scad>
SlidingBoxLidWithLabel(
width = 100, length = 100, lid_height = 3, text_width = 60,
text_length = 30, text_str = "Trains", label_rotated = false);
Usage:
- MakeHexBoxWithSlidingLid(5, 7, 19, 1, 29);
Description:
Creates a box with a specific number of hex spaces given the rows/cols and width of the pieces. Useful for making 18xx style boxes quickly. Children to this are the same as children to the MakeBoxWithSlidingLid.
Arguments:
| By Position | What it does |
|---|---|
rows |
number of rows to generate |
cols |
number of cols to generate |
height |
height of the box itsdle (outside height) |
push_block_height |
height of the raised bit in the middle to make removing easier |
lid_height |
height of the lid (defaults to 3) |
wall_thickness |
thickness of the walls (defaults to 2) |
spacing |
spacing between the hexes |
Example 1:
include <boardgame_toolkit.scad>
MakeHexBoxWithSlidingLid(rows = 5, cols = 2, height = 10, push_block_height = 0.75, tile_width = 29);
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: