-
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);
}
Usage:
- SlidingLidFingernail(radius = 10, lid_height = 3);
Description:
Creates a fingernail section for moving a sliding lid.
Arguments:
| By Position | What it does |
|---|---|
radius |
radius of the circle the gap is in |
lid_height |
height of the lid |
finger_gap |
the space to make for a finger gap (default = 1.5) |
sphere |
the size of the sphere for the inset (default 12) |
finger_length |
the length of the finger section (default = 15) |
Example 1:
include <boardgame_toolkit.scad>
SlidingLidFingernail(3);
Usage:
- MakeStripedGrid(20,50);
Description:
Creates a background striped grid, this is used in the label space generation.
Arguments:
| By Position | What it does |
|---|---|
width |
width of the grid space |
length |
length of the grid space |
bar_width |
width of the bars (default 1) |
Example 1:
include <boardgame_toolkit.scad>
MakeStripedGrid(20, 50);
Usage:
- MakeStripedLidLabel(20, 80, 2, label="Australia", border = 2, offset = 4);
Description:
Makes a label inside a striped grid to use in the lid. It makes a label with a border and a striped grid in the background to keep the label in plave.
Arguments:
| By Position | What it does |
|---|---|
width |
width of the label section |
length |
length of the label section |
lid_height |
height of the lid/label |
label |
the text of the label |
border |
how wide the border is around the label (default 2) |
offset |
how far in from the sides the text should be (default 4) |
font |
the font to use for the text (default "Stencil Std:style=Bold") |
radius |
the radius of the corners on the label section |
Example 1:
include <boardgame_toolkit.scad>
MakeStripedLidLabel(width = 20, length = 100, lid_height = 2, label = "Australia");
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);
Usage:
- MakeBoxWithSlidingLid(50,100,20);
Description:
Makes a box with a sliding lid, this just creates the box itself with the cutouts for the sliding lid pieces. The children to this will be removed from inside the box and how to add in the cutouts.
Arguments:
| By Position | What it does |
|---|---|
width |
width of the box (outside width) |
length |
length of the box (outside length) |
height |
height of the box (outside height) |
wall_thickness |
thickness of the walls (default 2) |
lid_height |
height of the lid (default 3) |
Example 1:
include <boardgame_toolkit.scad>
MakeBoxWithSlidingLid(50, 100, 20);
Usage:
- MakeLidTab(5, 10, 2);
Description:
Makes a lid tab, a single lid lab, to use for boxes.
Arguments:
| By Position | What it does |
|---|---|
length |
the length of the tab |
height |
the height of the tab |
lid_height |
the height of the lid (defaults to 2) |
prism_width |
the width of the prism (defaults to 0.75) |
wall_thickness |
the thickness of the walls (default 2) |
Example 1:
include <boardgame_toolkit.scad>
MakeLidTab(length = 5, height = 10, lid_height = 2, prism_width = 0.75, wall_thickness = 2);
Usage:
- MakeTabs(50, 100, wall_thickness = 2, lid_height = 2);
Description:
Create the tabs for the box, this can be used on the lids and the box to create cutouts. The stem of the tab will be the wall_thickness/2 and the prism width will be based on the parameter.
Arguments:
| By Position | What it does |
|---|---|
box_width |
width of the box (outside size) |
box_length |
length of the box (outside size) |
wall_thickness |
thickness of the walls to use (default = 2) |
lid_height |
the height of the lid (default = 2) |
tab_length |
how long the tab is (default = 10) |
make_tab_width |
make tabs on the width side (default false) |
make_tab_length |
make tabs on the length side (default true) |
prism_width |
width of the prism to take from the side of the box (default 0.75) |
Example 1:
include <boardgame_toolkit.scad>
MakeTabs(50, 100);
Usage:
- MakeInsetLid(50, 100);
Description:
Make a lid inset into the box with tabs on the side to close the box. This just does the insets around the top.
Arguments:
| By Position | What it does |
|---|---|
width |
the width of the box (outside width) |
length |
the length of the box (outside length) |
lid_height |
height of the lid (default 2) |
wall_thickness |
thickness of the walls (default 2) |
inset |
how far the side is inset from the edge of the box (default 1) |
lid_size_spacing |
how much wiggle room to give in the model (default m_piece_wiggle_room) |
Example 1:
include <boardgame_toolkit.scad>
MakeInsetLid(50, 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: