-
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>
m_piece_wiggle_roomSHAPE_TYPE_DENSE_HEXSHAPE_TYPE_DENSE_TRIANGLESHAPE_TYPE_CIRCLESHAPE_TYPE_HEXSHAPE_TYPE_OCTOGONSHAPE_TYPE_TRIANGLESHAPE_TYPE_NONESHAPE_TYPE_SQUARESHAPE_TYPE_ROUNDED_SQUARESHAPE_TYPE_HILBERT
Description:
How many mm to use as gaps for when things join.
Description:
Creates a shape with a dense hexes, so they overlap.
Description:
Creates a shape with a dense triangles, so they overlap.
Description:
Creates a shape with a circles.
Description:
Creates a shape with a hexes.
Description:
Creates a shape with a octogons.
Description:
Creates a shape with a triangle.
Description:
Empty shape, no space filling.
Description:
Layout a nice set of squares.
Description:
Layout a nice set of rounded squares.
Description:
Layout a nice hilbert curve.
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 |
Example 1:
include <boardgame_toolkit.scad>
RegularPolygon(10, 5, shape_edges = 6);
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) |
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);
Building blocks for making labels.
Topics: Label
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);
Topics: Label
Usage:
- Make3dStripedGrid(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_top |
width of the bars (default 1) |
bar_width_bottom |
height of the bar (default bar_width_top) |
Example 1:
include <boardgame_toolkit.scad>
Make3dStripedGrid(width = 20, length = 50, height = 1);
Example 2:
include <boardgame_toolkit.scad>
Make3dStripedGrid(width = 20, length = 50, height = 0.2, bar_width_bottom = 1);
Topics: Label
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_thickness |
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 (default 5) |
full_height |
full height of the lid (default false) |
Example 1:
include <boardgame_toolkit.scad>
MakeStripedLidLabel(width = 20, length = 80, lid_thickness = 2, label = "Australia");
Example 2:
include <boardgame_toolkit.scad>
MakeStripedLidLabel(width = 20, length = 80, lid_thickness = 2, label = "Australia", full_height = true);
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);
Building blocks for making various kinds of lids and labels.
Topics: PatternFill
Usage:
- LidMeshDense(width = 70, length = 50, lid_thickness = 3, boundary = 10, radius = 5, shape_thickness = 2,
- shape_edges = 6);
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_thickness |
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 (default 2) |
shape_edges |
number of edges for the shape (default 6) |
offset |
how much to offset the shape, so you can do overlapping shapes (default 0) |
Example 1:
include <boardgame_toolkit.scad>
LidMeshDense(width = 100, length = 50, lid_thickness = 3, boundary = 10, radius = 10, shape_thickness = 2,
shape_edges = 6);
Example 2:
include <boardgame_toolkit.scad>
LidMeshDense(width = 100, length = 50, lid_thickness = 3, boundary = 10, radius = 10, shape_thickness = 2,
shape_edges = 3);
Topics: PatternFill
Usage:
- LidMeshHex(width = 70, length = 50, lid_thickness = 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_thickness |
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_thickness = 3, boundary = 10, radius = 10, shape_thickness = 2);
Topics: PatternFill
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_thickness |
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. |
aspect_ratio |
the aspect ratio (multiple by dy) (default 1.0) |
shape_edges |
the number of edges on the shape (default 4) |
Example 1:
include <boardgame_toolkit.scad>
LidMeshRepeating(width = 50, length = 50, lid_thickness = 3, boundary = 5, shape_width = 10)
difference() {
circle(r = 7);
circle(r = 6);
}
Description:
Creates a lid mesh with a set of known shapes. The width is the width of the shape for layout purposes and the shape_width is the width for generation purposes. The layout width and shape width default to being the same for dense layouts, and overlapping for non-dense layouts.
Example 1:
include <boardgame_toolkit.scad>
LidMeshBasic(width = 100, length = 50, lid_thickness = 2, boundary = 10, layout_width = 10, shape_type =
SHAPE_TYPE_DENSE_HEX, shape_thickness = 2, shape_width = 10);
Example 2:
include <boardgame_toolkit.scad>
LidMeshBasic(width = 70, length = 50, lid_thickness = 2, boundary = 10, layout_width = 10, shape_type =
SHAPE_TYPE_DENSE_HEX, shape_thickness = 1, shape_width = 14);
Example 3:
include <boardgame_toolkit.scad>
LidMeshBasic(width = 70, length = 50, lid_thickness = 2, boundary = 10, layout_width = 10, shape_type =
SHAPE_TYPE_DENSE_HEX, shape_thickness = 1, shape_width = 11);
Example 4:
include <boardgame_toolkit.scad>
LidMeshBasic(width = 100, length = 50, lid_thickness = 2, boundary = 10, layout_width = 10, shape_type =
SHAPE_TYPE_DENSE_TRIANGLE, shape_thickness = 2, shape_width = 10);
Example 5:
include <boardgame_toolkit.scad>
LidMeshBasic(width = 100, length = 50, lid_thickness = 2, boundary = 10, layout_width = 10, shape_type =
SHAPE_TYPE_CIRCLE, shape_thickness = 2, shape_width = 14);
Example 6:
include <boardgame_toolkit.scad>
LidMeshBasic(width = 100, length = 50, lid_thickness = 2, boundary = 10, layout_width = 10, shape_type =
SHAPE_TYPE_TRIANGLE, shape_thickness = 2, shape_width = 10);
Example 7:
include <boardgame_toolkit.scad>
LidMeshBasic(width = 100, length = 50, lid_thickness = 2, boundary = 10, layout_width = 10,
SHAPE_TYPE_HEX, shape_thickness = 1, shape_width = 14);
Example 8:
include <boardgame_toolkit.scad>
LidMeshBasic(width = 100, length = 50, lid_thickness = 2, boundary = 10, layout_width = 10,
SHAPE_TYPE_OCTOGON, shape_thickness = 1, shape_width = 16);
Example 9:
include <boardgame_toolkit.scad>
LidMeshBasic(width = 100, length = 50, lid_thickness = 2, boundary = 10, layout_width = 10,
SHAPE_TYPE_OCTOGON, shape_thickness = 1, shape_width = 13, aspect_ratio=1.25);
Example 10:
include <boardgame_toolkit.scad>
LidMeshBasic(width = 100, length = 50, lid_thickness = 2, boundary = 10, layout_width = 10,
SHAPE_TYPE_OCTOGON, shape_thickness = 1, shape_width = 10.5, aspect_ratio=1);
Example 11:
include <boardgame_toolkit.scad>
LidMeshBasic(width = 100, length = 50, lid_thickness = 2, boundary = 10, layout_width = 10,
SHAPE_TYPE_SQUARE, shape_thickness = 2, shape_width = 11);
Example 12:
include <boardgame_toolkit.scad>
LidMeshBasic(width = 100, length = 50, lid_thickness = 2, boundary = 10, layout_width = 10,
SHAPE_TYPE_ROUNDED_SQUARE, shape_thickness = 2, shape_width = 11);
Topics: SlidingBox, SlidingLid
Usage:
- SlidingLidFingernail(radius = 10, lid_thickness = 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_thickness |
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:
- 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_thickness |
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_thickness = 2, prism_width = 0.75, wall_thickness = 2);
Usage:
- MakeTabs(50, 100, wall_thickness = 2, lid_thickness = 2);
Description:
Create the tabs for the box, this can be used on the lids and the box to create cutouts,
this just does the layout. Use the MakeLidTab() to make the tabs, it will place the children
at each of the specified offsets to make the tabs.
Arguments:
| By Position | What it does |
|---|---|
box_width |
width of the box (outside size) |
box_length |
length of the box (outside size) |
lid_thickness |
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) |
Example 1:
include <boardgame_toolkit.scad>
MakeTabs(50, 100)
MakeLidTab(length = 10, height = 6);
All the pieces for making sliding lids and different types of sliding lids/boxes.
Topics: SlidingBox, SlidingLid
Usage:
- SlidingLid(width=10, length=30, lid_thickness=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_thickness |
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_thickness=3, wall_thickness = 2)
translate([ 10, 10, 0 ])
LidMeshHex(width = 100, length = 100, lid_thickness = 3, boundary = 10, radius = 12);
Topics: SlidingBox, SlidingLid
Usage:
- SlidingBoxLidWithLabel(width = 100, length = 100, lid_thickness = 3, text_width = 60, text_height = 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) |
text_width |
width of the text section |
text_height |
length of the text section |
text_str |
The string to write |
lid_thickness |
height of the lid (default 3) |
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 (default 4) |
label_rotated |
if the label should be rotated (default false) |
layout_width |
space in the grid for the layout (default 12) |
shape_width |
with of the shape in the grid (default 12) |
shape_type |
type of the shape to generate on the lid (default SHAPE_TYPE_DENSE_HEX) |
shape_thickness |
thickness of the shape in the mesh (default 2) |
Example 1:
include <boardgame_toolkit.scad>
SlidingBoxLidWithLabel(
width = 100, length = 100, lid_thickness = 3, text_width = 60,
text_height = 30, text_str = "Trains", label_rotated = false);
Topics: SlidingBox, SlidingLid, Hex
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().
This will make sure the cutouts are only inside the box and in the floor, if you want to cut out the sides of the box do this with a difference after making this object.
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_thickness |
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);
Topics: SlidingBox, SlidingLid, Hex
Usage:
- SlidingLidForHexBox(5, 7, 29);
Description:
Creates a sliding lid for use with a hex box, sets up the sizes correctly to match the the hex row/col set.
Arguments:
| By Position | What it does |
|---|---|
rows |
number of rows to generate |
cols |
number of cols to generate |
tile_width |
width of the tiles |
lid_thickness |
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>
SlidingLidForHexBox(rows = 5, cols = 2, tile_width = 29);
Topics: SlidingBox, SlidingLid, Hex
Usage:
- SlidingLidWithLabelForHexBox(rows = 3, cols = 4, tile_width = 29, lid_thickness = 3, text_width = 60, text_height
- = 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 |
|---|---|
rows |
number of rows to generate |
cols |
number of cols to generate |
tile_width |
width of the tiles |
lid_thickness |
height of the lid (defaults to 3) |
wall_thickness |
thickness of the walls (defaults to 2) |
spacing |
spacing between the hexes |
text_width |
width of the text section |
text_height |
length of the text section |
text_str |
The string to write |
lid_thickness |
height of the lid (default 3) |
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 false) |
wall_thickness |
how wide the walls are (default 2) |
layout_width |
space in the grid for the layout (default 12) |
shape_width |
with of the shape in the grid (default 12) |
shape_type |
type of the shape to generate on the lid (default SHAPE_TYPE_DENSE_HEX) |
shape_thickness |
thickness of the shape in the mesh (default 2) |
Example 1:
include <boardgame_toolkit.scad>
SlidingLidWithLabelForHexBox(
cols = 3, rows = 4, tile_width = 29, lid_thickness = 3, text_width = 60,
text_height = 30, text_str = "Trains", label_rotated = false);
Topics: SlidingBox
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.
The children all start from the edge inside the wall width and up from the floor in the box.
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_thickness |
height of the lid (default 3) |
floor_thickness |
thickness of the floor (default 2) |
Example 1:
include <boardgame_toolkit.scad>
MakeBoxWithSlidingLid(50, 100, 20);
Topics: TabbedBox
Usage:
- InsetLid(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_thickness |
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>
InsetLid(50, 100);
Usage:
- InsetLidTabbed(30, 100);
Description:
Makes an inset lid with the tabes on the side.
Arguments:
| By Position | What it does |
|---|---|
width |
width of the box (outside width) |
length |
length of the box (outside length) |
lid_thickness |
height of the lid (default 2) |
wall_thickness |
thickness of the walls (default 2) |
inset |
how far to inset the lid (default 1) |
lid_size_spacing |
the wiggle room in the lid generation (default m_piece_wiggle_room) |
make_tab_width |
makes tabes on thr width (default false) |
make_tab_length |
makes tabs on the length (default true) |
prism_width |
width of the prism in the tab. (default 0.75) |
tab_length |
length of the tab (default 10) |
tab_height |
height of the tab (default 6) |
Example 1:
include <boardgame_toolkit.scad>
InsetLidTabbed(30, 100);
Usage:
- InsetLidTabbedWithLabel(width = 100, length = 100, lid_thickness = 3, text_width = 60, text_height = 30, text_str
- = "Trains", label_rotated = false);
Description:
This is a composite method that joins together the other pieces to make a simple inset tabbed 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) |
text_width |
width of the text section |
text_height |
length of the text section |
text_str |
The string to write |
lid_thickness |
height of the lid (default 3) |
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 |
tab_height |
height of the tabs (default 6) |
tab_length |
length of the tabs (default 10) |
inset |
inset of the edge (default 1) |
make_tab_width |
makes tabes on thr width (default false) |
make_tab_length |
makes tabs on the length (default true) |
prism_width |
width of the prism in the tab. (default 0.75) |
layout_width |
space in the grid for the layout (default 12) |
shape_width |
with of the shape in the grid (default 12) |
shape_type |
type of the shape to generate on the lid (default SHAPE_TYPE_DENSE_HEX) |
shape_thickness |
thickness of the shape in the mesh (default 2) |
Example 1:
include <boardgame_toolkit.scad>
InsetLidTabbedWithLabel(
width = 100, length = 100, lid_thickness = 3, text_width = 60,
text_height = 30, text_str = "Trains", label_rotated = false);
Topics: TabbedBox, TabbedLid, Hex
Usage:
- InsetLidTabbedForHexBox(5, 7, 29);
Description:
Creates a inset tabbed lid for use with a hex box, sets up the sizes correctly to match the the hex row/col set.
Arguments:
| By Position | What it does |
|---|---|
rows |
number of rows to generate |
cols |
number of cols to generate |
tile_width |
width of the tiles |
lid_thickness |
height of the lid (defaults to 3) |
wall_thickness |
thickness of the walls (defaults to 2) |
spacing |
spacing between the hexes |
tab_height |
height of the tabs (default 6) |
tab_length |
length of the tabs (default 10) |
inset |
inset of the edge (default 1) |
make_tab_width |
makes tabes on thr width (default false) |
make_tab_length |
makes tabs on the length (default true) |
prism_width |
width of the prism in the tab. (default 0.75) |
Example 1:
include <boardgame_toolkit.scad>
InsetLidTabbedForHexBox(rows = 5, cols = 2, tile_width = 29);
Topics: TabbedBox, TabbedLid, Hex
Usage:
- InsetLidTabbedWithLabelForHexBox(rows = 3, cols = 4, tile_width = 29, lid_thickness = 3, text_width = 60,
- text_height = 30, text_str = "Trains", label_rotated = false);
Description:
This is a composite method that joins together the other pieces to make a simple inset tabbed 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 |
|---|---|
rows |
number of rows to generate |
cols |
number of cols to generate |
tile_width |
width of the tiles |
lid_thickness |
height of the lid (defaults to 3) |
wall_thickness |
thickness of the walls (defaults to 2) |
spacing |
spacing between the hexes |
text_width |
width of the text section |
text_height |
length of the text section |
text_str |
The string to write |
lid_thickness |
height of the lid (default 3) |
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 false) |
wall_thickness |
how wide the walls are (default 2) |
layout_width |
space in the grid for the layout (default 12) |
shape_width |
with of the shape in the grid (default 12) |
shape_type |
type of the shape to generate on the lid (default SHAPE_TYPE_DENSE_HEX) |
shape_thickness |
thickness of the shape in the mesh (default 2) |
Example 1:
include <boardgame_toolkit.scad>
InsetLidTabbedWithLabelForHexBox(
cols = 3, rows = 4, tile_width = 29, lid_thickness = 3, text_width = 60,
text_height = 30, text_str = "Trains", label_rotated = false);
Usage:
- MakeBoxWithInsetLidTabbed(width = 30, length = 100, height = 20);
Description:
Makes a box with an inset lid. Handles all the various pieces for making this with tabs. This will make sure the cutouts are only inside the box and in the floor, if you want to cut out the sides of the box do this with a difference after making this object. The children and moves so 0,0,0 is the bottom inside of the box to make for easier arithmatic.
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 |
how thick the walls are (default 2) |
lid_thickness |
how hight the lid is (default 2) |
tab_height |
how heigh to make the tabs (default 6) |
inset |
how far to inset the lid (default 1) |
make_tab_width |
make the tabs on the width (default false) |
make_tab_length |
make the tabs on the length (default true) |
prism_width |
width of the prism to generate (default 0.75) |
tab_length |
how long the tab is (default 10) |
stackable |
should we pull a piece out the bottom of the box to let this stack (default false) |
lid_size_spacing |
wiggle room to use when generatiung box (default m_piece_wiggle_room) |
floor_thickness |
thickness of the floor (default 2) |
Example 1:
include <boardgame_toolkit.scad>
MakeBoxWithInsetLidTabbed(width = 30, length = 100, height = 20);
Topics: RabbitClipBox
Usage:
- InsetLidRabbitClip(30, 100);
Description:
Makes an inset lid with the tabes on the side.
Arguments:
| By Position | What it does |
|---|---|
width |
width of the box (outside width) |
length |
length of the box (outside length) |
lid_thickness |
height of the lid (default 2) |
wall_thickness |
thickness of the walls (default 2) |
inset |
how far to inset the lid (default 1) |
lid_size_spacing |
the wiggle room in the lid generation (default m_piece_wiggle_room) |
make_rabbit_width |
makes tabes on thr width (default false) |
make_rabbit_length |
makes tabs on the length (default true) |
rabbit_length |
length of the rabbit piece (downwards direction) (default 6) |
rabbit_width |
width of the rabbit piece (crosswise direction) (default 7) |
rabbit_lock |
if the rabbit should habe a locking piece on it (default false) |
rabbit_compression |
how much sideway give on the rabbit (default 0.1) |
rabbit_snap |
how deep the inner depth should be for the snap curve (default 0.25) |
rabbit_offset |
how much of an offset on each side of the rabbit to attach to the lid (default 3) |
rabbit_depth |
extrustion depth of the rabbit (default 1.5) |
Example 1:
include <boardgame_toolkit.scad>
InsetLidRabbitClip(30, 100);
Topics: RabbitClipBox
Usage:
- InsetLidRabbitWithLabel(width = 100, length = 100, lid_thickness = 3, text_width = 60, text_height = 30, text_str
- = "Trains", label_rotated = false);
Description:
This is a composite method that joins together the other pieces to make a simple inset tabbed 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) |
text_width |
width of the text section |
text_height |
length of the text section |
text_str |
The string to write |
lid_thickness |
height of the lid (default 3) |
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 |
make_rabbit_width |
makes tabes on thr width (default false) |
make_rabbit_length |
makes tabs on the length (default true) |
rabbit_length |
length of the rabbit piece (downwards direction) (default 6) |
rabbit_width |
width of the rabbit piece (crosswise direction) (default 7) |
rabbit_lock |
if the rabbit should habe a locking piece on it (default false) |
rabbit_compression |
how much sideway give on the rabbit (default 0.1) |
rabbit_snap |
how deep the inner depth should be for the snap curve (default 0.25) |
rabbit_offset |
how much of an offset on each side of the rabbit to attach to the lid (default 3) |
rabbit_depth |
extrustion depth of the rabbit (default 1.5) |
layout_width |
space in the grid for the layout (default 12) |
shape_width |
with of the shape in the grid (default 12) |
shape_type |
type of the shape to generate on the lid (default SHAPE_TYPE_DENSE_HEX) |
shape_thickness |
thickness of the shape in the mesh (default 2) |
Example 1:
include <boardgame_toolkit.scad>
InsetLidRabbitWithLabel(
width = 100, length = 100, lid_thickness = 3, text_width = 60,
text_height = 30, text_str = "Trains", label_rotated = false);
Topics: RabbitClipBox
Usage:
- MakeBoxWithInsetLidRabbitClip(width = 30, length = 100, height = 20);
Description:
Makes a box with an inset lid. Handles all the various pieces for making this with rabbit clips. The children are moved so 0,0,0 is the bottom inside of the box to make for easier arithmatic.
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 |
how thick the walls are (default 2) |
lid_thickness |
how hight the lid is (default 2) |
tab_height |
how heigh to make the tabs (default 6) |
inset |
how far to inset the lid (default 1) |
make_rabbit_width |
makes tabes on thr width (default false) |
make_rabbit_length |
makes tabs on the length (default true) |
rabbit_length |
length of the rabbit piece (downwards direction) (default 6) |
rabbit_width |
width of the rabbit piece (crosswise direction) (default 7) |
rabbit_lock |
if the rabbit should habe a locking piece on it (default false) |
rabbit_compression |
how much sideway give on the rabbit (default 0.1) |
rabbit_snap |
how deep the inner depth should be for the snap curve (default 0.25) |
rabbit_offset |
how much of an offset on each side of the rabbit to attach to the lid (default 3) |
rabbit_depth |
extrustion depth of the rabbit (default 1.5) |
lid_size_spacing |
wiggle room to use when generatiung box (default m_piece_wiggle_room) |
floor_thickness |
thickness of the floor (default 2) |
Example 1:
include <boardgame_toolkit.scad>
MakeBoxWithInsetLidRabbitClip(width = 30, length = 100, height = 20);
Topics: TabbedBox, TabbedLid, Hex
Usage:
- MakeHexBoxWithInsetTabbedBox, TabbedLid(rows = 4, cols = 3, height = 15, push_block_height = 1, tile_width =
- 29);
Description:
Makes a hex box with an inset lid, this is a useful combination box for 18xx style games.
Arguments:
| By Position | What it does |
|---|---|
rows |
number of rows in the box |
cols |
number of cols in the box |
height |
height of the box (outside height) |
push_block_height |
height of the push blocks |
tile_width |
the width of the files |
lid_thickness |
height of the lid (default 2) |
floor_thickness |
thickness of the floor (default 2) |
wall_thickness |
the thickness of the wall (default 2) |
Example 1:
include <boardgame_toolkit.scad>
MakeHexBoxWithInsetTabbedLid(rows = 4, cols = 3, height = 15, push_block_height = 1, tile_width = 29);
Topics: SlipoverBox
Usage: MakeBoxWithSlipoverLid(100, 50, 10);
Description:
Makes the inside of the slip box, this will take a second lid that slides over the outside of the box.
Arguments:
| By Position | What it does |
|---|---|
width |
outside width of the box |
height |
outside height of the box |
wall_thickness |
thickness of the walls (default 2) |
foot |
how big the foot should be around the bottom of the box (default 0) |
size_spacing |
amount of wiggle room to put into the model when making it (default m_piece_wiggle_room) |
wall_height |
height of the wall if not set (default height - wall_thickness2 - size_spacing2) |
floor_thickness |
thickness of the floor (default 2) |
Example 1:
include <boardgame_toolkit.scad>
MakeBoxWithSlipoverLid(100, 50, 10);
Topics: SlipoverBox
Usage: SlipBoxLid(100, 50, 10);
Description:
Make a box with a slip lid, a lid that slips over the outside of a box.
Arguments:
| By Position | What it does |
|---|---|
width |
width of the lid (outside width) |
length |
of the lid (outside length) |
height |
height of the lid (outside height) |
lid_thickness |
how thick the lid is (default 2) |
wall_thickness |
how thick the walls are (default 2) |
size_spacing |
how much to offset the pieces by to give some wiggle room (default m_piece_wiggle_room) |
foot |
size of the foot on the box. |
Example 1:
include <boardgame_toolkit.scad>
SlipoverBoxLid(100, 50, 10);
Topics: SlipoverBox
Usage: SlipoverLidWithLabel(20, 100, 10, text\_width = 50, text\_height = 20, text\_str = "Marmoset", shape\_type =
Example 1:
include <boardgame_toolkit.scad>
SlipoverLidWithLabel(20, 100, 10, text_width = 50, text_height = 20, text_str = "Marmoset",
shape_type = SHAPE_TYPE_CIRCLE, layout_width = 10, shape_width = 14);
Topics: CapLid
Usage: MakeBoxWithCapLid(100, 50, 20);
Arguments:
| By Position | What it does |
|---|---|
width |
outside width of the box |
length |
inside width of the box |
height |
outside height of the box |
cap_height |
height of the cap on the box (default 10) |
lid_thickness |
thickness of the lid (default 1) |
wall_thickness |
thickness of the walls (default 2) |
floor_thickness |
thickness of the floor (default 2) |
size_sizeing |
amount of wiggle room between pieces (default m_piece_wiggle_room) |
lid_wall_thickness |
the thickess of the walls in the lid (default wall_thickness / 2) |
lid_finger_hold_len |
length of the finger hold sections to cut out (default min(width,lenght)/5) |
finger_hold_height |
how heigh the finger hold bit it is (default 5) |
Example 1:
include <boardgame_toolkit.scad>
MakeBoxWithCapLid(100, 50, 20);
Topics: CapBox
Usage: CapBoxLid(100, 50, 20);
Description:
Lid for a cap box, small cap to go on the box with finger cutouts.
Arguments:
| By Position | What it does |
|---|---|
width |
outside width of the box |
length |
inside width of the box |
cap_height |
height of the cap on the box (default 10) |
lid_thickness |
thickness of the lid (default 1) |
wall_thickness |
thickness of the walls (default 2) |
size_sizeing |
amount of wiggle room between pieces (default m_piece_wiggle_room) |
lid_wall_thickness |
the thickess of the walls in the lid (default wall_thickness / 2) |
finger_hold_height |
how heigh the finger hold bit it is (default 5) |
Example 1:
include <boardgame_toolkit.scad>
CapBoxLid(100, 50, 20);
Topics: CapBox
Usage: CapBoxLidWithLabel(100, 50, text\_width = 70, text\_height = 20, text\_str = "Frog");
Description:
Lid for a cap box, small cap to go on the box with finger cutouts.
Arguments:
| By Position | What it does |
|---|---|
width |
outside width of the box |
length |
inside width of the box |
height |
outside height of the box |
lid_boundary |
boundary around the outside for the lid (default 10) |
cap_height |
height of the cap on the box (default 10) |
lid_thickness |
thickness of the lid (default 1) |
wall_thickness |
thickness of the walls (default 2) |
size_sizeing |
amount of wiggle room between pieces (default m_piece_wiggle_room) |
lid_wall_thickness |
the thickess of the walls in the lid (default wall_thickness / 2) |
finger_hold_height |
how heigh the finger hold bit it is (default 5) |
label_radius |
radius of the label corners (default 12) |
border |
border of the item (default 2) |
offset |
offset in from the edge for the label (default 4) |
label_rotated |
if the label is rotated (default false) |
layout_width |
the width of the layout pieces (default 12) |
shape_width |
width of the shape (default layout_width) |
shape_thickness |
how wide the pieces are (default 2) |
size_spacing |
extra spacing to apply between pieces (default m_piece_wiggle_room) |
Example 1:
include <boardgame_toolkit.scad>
CapBoxLidWithLabel(100, 50, text_width = 70, text_height = 20, text_str = "Frog");
Topics: SlidingCatch
Usage: MakeBoxWithSlidingCatchLid(100, 50, 20);
Arguments:
| By Position | What it does |
|---|---|
width |
outside width of the box |
length |
inside width of the box |
height |
outside height of the box |
lid_thickness |
thickness of the lid (default 1) |
wall_thickness |
thickness of the walls (default 2) |
floor_thickness |
thickness of the floor (default 2) |
size_sizeing |
amount of wiggle room between pieces (default m_piece_wiggle_room) |
top_thickness |
the thickness of the all above the catch (default 2) |
Example 1:
include <boardgame_toolkit.scad>
MakeBoxWithSlidingCatchLid(100, 50, 20);
Topics: SlidingCatch
Usage: MakeBoxWithSlidingCatchLid(100, 50, 20);
Arguments:
| By Position | What it does |
|---|---|
width |
outside width of the box |
length |
inside width of the box |
lid_thickness |
thickness of the lid (default 1) |
wall_thickness |
thickness of the walls (default 2) |
floor_thickness |
thickness of the floor (default 2) |
size_sizeing |
amount of wiggle room between pieces (default m_piece_wiggle_room) |
top_thickness |
the thickness of the all above the catch (default 2) |
Example 1:
include <boardgame_toolkit.scad>
MakeBoxWithSlidingCatchLid(100, 50, 20);
Topics: SlidingCatch
Usage: SlidingCatchBoxLidWithLabel(100, 50, text\_width = 70, text\_height = 20, text\_str = "Frog");
Description:
Lid for a sliding catch with a label on top of it.
Arguments:
| By Position | What it does |
|---|---|
width |
outside width of the box |
length |
inside width of the box |
lid_boundary |
boundary around the outside for the lid (default 10) |
lid_thickness |
thickness of the lid (default 1) |
top_thickness |
thickness of the top above the lid (default 1) |
wall_thickness |
thickness of the walls (default 2) |
size_sizeing |
amount of wiggle room between pieces (default m_piece_wiggle_room) |
lid_wall_thickness |
the thickess of the walls in the lid (default wall_thickness / 2) |
finger_hold_height |
how heigh the finger hold bit it is (default 5) |
label_radius |
radius of the label corners (default 12) |
border |
border of the item (default 2) |
offset |
offset in from the edge for the label (default 4) |
label_rotated |
if the label is rotated (default false) |
layout_width |
the width of the layout pieces (default 12) |
shape_width |
width of the shape (default layout_width) |
shape_thickness |
how wide the pieces are (default 2) |
size_spacing |
extra spacing to apply between pieces (default m_piece_wiggle_room) |
Example 1:
include <boardgame_toolkit.scad>
SlidingCatchBoxLidWithLabel(100, 50, text_width = 70, text_height = 20, text_str = "Frog");
Topics: MagneticLid
Description:
Makes a box with holes for the round magnets in the corners.
Arguments:
| By Position | What it does |
|---|---|
width |
outside width of the box |
length |
inside width of the box |
magnet_diameter |
diameter of the magnet |
magnet_thickness |
thickness of the magnet |
lid_thickness |
thickness of the lid (default 1) |
wall_thickness |
thickness of the walls (default 2) |
floor_thickness |
thickness of the floor (default 2) |
Example 1:
include <boardgame_toolkit.scad>
MakeBoxWithMagneticLid(width = 100, length = 50, height = 20, magnet_diameter = 5, magnet_thickness = 1);
Topics: MagneticLid
Usage: MakeBoxWithMagneticLidInsideSpace(100, 20, 20, 4, 1);
Description:
Makes the inside space template for the box so that it can used to intersect to pull out the corners for the magnet safely.
Arguments:
| By Position | What it does |
|---|---|
width |
outside width of the box |
length |
inside width of the box |
magnet_diameter |
diameter of the magnet |
magnet_thickness |
thickness of the magnet |
lid_thickness |
thickness of the lid (default 1) |
wall_thickness |
thickness of the walls (default 2) |
floor_thickness |
thickness of the floor (default 2) |
full_height |
if the cyclinder should be the full height of the box (default true) |
magnet_border |
how far around the edges of the magnet the space should be (default 1.5) |
Example 1:
include <boardgame_toolkit.scad>
MakeBoxWithMagneticLidInsideSpace(width = 100, length = 50, height = 20, magnet_diameter = 5, magnet_thickness =
1);
Example 2:
include <boardgame_toolkit.scad>
MakeBoxWithMagneticLid(width = 100, length = 50, height = 20, magnet_diameter = 5, magnet_thickness = 1)
MakeBoxWithMagneticLidInsideSpace(width = 100, length = 50, height = 20, magnet_diameter = 5, magnet_thickness =
1);
Example 3:
include <boardgame_toolkit.scad>
MakeBoxWithMagneticLid(width = 100, length = 50, height = 20, magnet_diameter = 5, magnet_thickness = 1)
MakeBoxWithMagneticLidInsideSpace(width = 100, length = 50, height = 20, magnet_diameter = 5,
magnet_thickness = 1, full_height = false);
Topics: MagneticLid
Usage: MagneticBoxLid(100, 50, 5, 1);
Arguments:
| By Position | What it does |
|---|---|
width |
outside width of the box |
length |
inside width of the box |
lid_thickness |
thickness of the lid (default 1) |
wall_thickness |
thickness of the walls (default 2) |
floor_thickness |
thickness of the floor (default 2) |
size_sizeing |
amount of wiggle room between pieces (default m_piece_wiggle_room) |
top_thickness |
the thickness of the all above the catch (default 2) |
Example 1:
include <boardgame_toolkit.scad>
MagneticBoxLid(100, 50, 5,1);
Topics: SlidingCatch
Usage: MagneticBoxLidWithLabel(100, 50, 5, 1, text\_width = 70, text\_height = 20, text\_str = "Frog");
Description:
Lid for a sliding catch with a label on top of it.
Arguments:
| By Position | What it does |
|---|---|
width |
outside width of the box |
length |
inside width of the box |
lid_boundary |
boundary around the outside for the lid (default 10) |
lid_thickness |
thickness of the lid (default 1) |
top_thickness |
thickness of the top above the lid (default 1) |
wall_thickness |
thickness of the walls (default 2) |
size_sizeing |
amount of wiggle room between pieces (default m_piece_wiggle_room) |
lid_wall_thickness |
the thickess of the walls in the lid (default wall_thickness / 2) |
finger_hold_height |
how heigh the finger hold bit it is (default 5) |
label_radius |
radius of the label corners (default 12) |
border |
border of the item (default 2) |
offset |
offset in from the edge for the label (default 4) |
label_rotated |
if the label is rotated (default false) |
layout_width |
the width of the layout pieces (default 12) |
shape_width |
width of the shape (default layout_width) |
shape_thickness |
how wide the pieces are (default 2) |
size_spacing |
extra spacing to apply between pieces (default m_piece_wiggle_room) |
Example 1:
include <boardgame_toolkit.scad>
MagneticBoxLidWithLabel(100, 50, 5, 1, text_width = 70, text_height = 20, text_str = "Frog");
Topics: Dividers
Usage: MakeDividerTab(10, 20, 1);
Description:
Makes a divider tab tab section with nice curves in and out of the tab. Any children to this are diffed out of the tab.
Arguments:
| By Position | What it does |
|---|---|
tab_height |
height of the tab |
Example 1:
include <boardgame_toolkit.scad>
MakeDividerTab(10, 20, 1);
Example 2:
include <boardgame_toolkit.scad>
// Divider tab with a svg image in it.
MakeDividerTab(10, 20, 1) translate([ 6, 5, -2 ]) mirror([ 0, 1, 0 ])
linear_extrude(height = 4) offset(delta = 0.001) scale(0.04) import("svg/australia.svg");
Topics: Dividers
Usage: MakeDivider(10, 20, 1, 5, 3, 0);
Description:
Makes a divider with a tab section up the top. First child is a diff to the tab, the rest is a diff to the main body of the tab.
Arguments:
| By Position | What it does |
|---|---|
tab_height |
height of the tab |
Example 1:
include <boardgame_toolkit.scad>
MakeDivider(width = 40, length = 70, thickness = 1, tab_height = 10, num_tabs = 3, tab_position = 0, tab_radius
= 2);
Example 2:
include <boardgame_toolkit.scad>
MakeDivider(width = 40, length = 70, thickness = 1, tab_height = 10, num_tabs = 3, tab_position = 1, tab_radius
= 2);
Example 3:
include <boardgame_toolkit.scad>
MakeDivider(width = 80, length = 70, thickness = 1, tab_height = 10, num_tabs = 3, tab_position = 1, tab_radius
= 2);
Example 4:
include <boardgame_toolkit.scad>
// Divider with a svg image in it.
MakeDivider(70, 50, 1, tab_height = 5, tab_position = 0, num_tabs = 3) translate([ 6, 5, -2 ]) mirror([ 0, 1,
0 ])
linear_extrude(height = 4) offset(delta = 0.001) scale(0.04) import("svg/australia.svg");
Topics: Dividers
Usage: MakeDividerWithText(10, 20, 1, 5, 3, 0);
Description:
Makes a divider with a tab section up the top. First child is a diff to the tab, the rest is a diff to the main body of the tab.
Arguments:
| By Position | What it does |
|---|---|
tab_height |
height of the tab |
Example 1:
include <boardgame_toolkit.scad>
MakeDividerWithText(width = 40, length = 70, thickness = 1, tab_height = 10, num_tabs = 3, tab_position = 0,
text_str = "Frog");
Example 2:
include <boardgame_toolkit.scad>
MakeDividerWithText(width = 40, length = 70, thickness = 1, tab_height = 10, num_tabs = 3, tab_position = 1,
text_str = "Bing");
Example 3:
include <boardgame_toolkit.scad>
MakeDividerWithText(width = 40, length = 70, thickness = 1, tab_height = 10, num_tabs = 3, tab_position = 2,
text_str = "Croak", text_depth=0.5);
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);
Topics: Slicing
Usage: LeftRight() MakeBox() MakePuzzleJoin()
Description:
Slices up the box making a left and right part of the object. First child is the object to slice up second child is the piece to use for making the join (this should be in 2d).
Arguments:
| By Position | What it does |
|---|---|
width |
width of the box |
length |
lenght of the box |
height |
height of the box |
orient |
orientation of the box (default UP) |
spin |
spin of the join point (default 0) |
apart |
how far apart to move the pieces on the split (default = 10) |
minX |
the minX to cut at (default = -200) |
maxX |
the maxX to cut at (default = 200) |
minY |
the minY to cut at (default = -200) |
maxY |
the maxY to cut at (default = 200) |
minZ |
the minZ to cut at (default = -200) |
maxZ |
the maxZ to cut at (default = 200) |
play |
the offset on the piece to add as play (default 0.1) |
y |
specific places to do the join points at (default [ minY : ( maxY - minY ) / 10 : maxY ]) |
Example 1:
include <boardgame_toolkit.scad>
SplitBox(100, 50, 20, spin = 90) {
MakeBoxWithSlipoverLid(width = 100, length = 50, height = 20,
foot = 2, floor_thickness = 1.5, lid_thickness = 1.5, wall_thickness = 1.5)
{
cube(97, 47, 20);
}
MakePuzzleJoin();
}
Example 2:
include <boardgame_toolkit.scad>
SplitBox(100, 50, 20, orient = LEFT, spin = 90) {
MakeBoxWithSlipoverLid(width = 100, length = 50, height = 20,
foot = 2, floor_thickness = 1.5, lid_thickness = 1.5, wall_thickness = 1.5)
{
cube(97, 47, 20);
}
MakePuzzleJoin();
}
Example 3:
include <boardgame_toolkit.scad>
SplitBox(100, 50, 20, orient = FRONT) {
MakeBoxWithSlipoverLid(width = 100, length = 50, height = 20,
foot = 2, floor_thickness = 1.5, lid_thickness = 1.5, wall_thickness = 1.5)
{
cube(97, 47, 20);
}
MakePuzzleJoin();
}
Topics: Slicing
Usage: MakePuzzleJoin()
Description:
Makes a join like a puzzle piece. This is the a way to join together two pieces of the system along the middle line using the puzzle piece shape.
Arguments:
| By Position | What it does |
|---|---|
height |
height of the piece (defaulg 10) |
width |
width of the piece (default 10) |
base |
base of the peice (default 5) |
stem |
stem of the piece (default 6) |
Example 1:
include <boardgame_toolkit.scad>
MakePuzzleJoin();
Example 2:
include <boardgame_toolkit.scad>
MakePuzzleJoin(height = 20, width = 5, base = 10, stem = 5);
Topics: Hinges
Usage: HingeCone(6, 0.5)
Description:
Makes the hinge cone for use in hinges, this makes a 45 degree cone with an inner/outer that can be joined with other pieces to make a hinge.
Arguments:
| By Position | What it does |
|---|---|
r |
radius of the cone |
offset |
how far inside the cone to leave space |
Example 1:
include <boardgame_toolkit.scad>
HingeCone(6, 0.5);
Topics: Hinges
Description:
Makes a hinge setup in a straight line, has pieces that stick out each side wide enough to hook onto edges within 0.5 of the side.
Arguments:
| By Position | What it does |
|---|---|
length |
length of the line to hinge |
diameter |
diameter of the hinge itself |
offset |
how much of a space to leave on the conical holes for the hinge |
spin |
how much to rotate one of the legs (default 0) |
Example 1:
include <boardgame_toolkit.scad>
HingeLine(length = 60, diameter = 6, offset = 0.5);
Topics: Hinges
Description:
Makes a hinge setup in a straight line, has pieces that stick out each side wide enough to hook onto edges within 0.5 of the side.
Arguments:
| By Position | What it does |
|---|---|
num |
number of hinge locations |
spacing |
spacing between hinge spots |
diameter |
diameter of the hinge itself |
offset |
how much of a space to leave on the conical holes for the hinge |
spin |
how much to rotate one of the legs (default 0) |
Example 1:
include <boardgame_toolkit.scad>
HingeLineWithSpacingAndNum(num = 10, spacing = 6, diameter = 6, offset = 0.5);
Topics: Hinges
Usage: InsetHinge(100, 20, 6, 0.5);
Description:
Create a hinge that works and moves in the middle. Centers the pices back on the line with the middle being the length/2, width2/2 and the diameter/2, the legs stick down a little to make it easier to join onto other parts of the system.
Arguments:
| By Position | What it does |
|---|---|
length |
length of the hinge (outside) |
width |
width of the middle pice (outside) |
diameter |
diameter of the round piece in the middle. |
offset |
how much to offset the middle sections, 0.5 is usually good for this |
Example 1:
include <boardgame_toolkit.scad>
InsetHinge(length = 100, width = 20, diameter = 6, offset = 0.5);
Usage: MakeBoxAndLidWithInsetHinge(100, 50, 20);
Description:
Makes a box with an inset hinge on the side, this is a print in place box with a hinge that will make lid hinge onto the top, it is the same height on both sides, child 1 is in the base, child 2 is in the lid and child 3+ are lid pieces.
Arguments:
| By Position | What it does |
|---|---|
width |
outside with of the box |
length |
outside length of the box |
height |
outside height of the box |
Example 1:
include <boardgame_toolkit.scad>
MakeBoxAndLidWithInsetHinge(100, 50, 20);
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: