### HingeLineWithSpacingAndNum Module Example Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/hinge_box.scad Generates a straight-line hinge setup with specified number and spacing of hinge locations. Useful for creating multiple hinges along a line. ```OpenSCAD include HingeLineWithSpacingAndNum(num = 10, spacing = 6, diameter = 6, offset = 0.5); ``` -------------------------------- ### HingeLine Module Example Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/hinge_box.scad Creates a straight-line hinge setup with pieces that hook onto edges. Suitable for linear hinge applications. ```OpenSCAD include HingeLine(length = 60, diameter = 6, offset = 0.5); ``` -------------------------------- ### Make3dStripedGrid Module Example 1 Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/labels.scad Creates a 3D striped grid for label generation. This example sets the size and height of the grid. ```openscad include Make3dStripedGrid(size = [20, 50], height = 1); ``` -------------------------------- ### Make3dStripedGrid Module Example 2 Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/labels.scad Generates a 3D striped grid with custom height and bar width. This example demonstrates adjusting the bar width at the bottom. ```openscad include Make3dStripedGrid(size = [20, 50], height = 0.2, bar_width_bottom = 1); ``` -------------------------------- ### SawBlade2d() Example Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/shapes.scad Generates a 2D saw blade shape. Ensure the boardgame_toolkit.scad library is included. ```openscad include SawBlade2d(50); ``` -------------------------------- ### TesselationLeafOutline() Example Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/tesselations.scad Generates a basic leaf outline for tessellations. Requires including the boardgame_toolkit.scad library. ```openscad include TesselationLeafOutline(40); ``` -------------------------------- ### Anvil2d() Basic Example Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/shapes.scad Generates a basic 2D anvil shape. Requires the boardgame_toolkit.scad library to be included. ```openscad include Anvil2d(30); ``` -------------------------------- ### HingeCone Module Example Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/hinge_box.scad Generates a 45-degree cone for hinge construction. Use for creating the basic conical parts of a hinge. ```OpenSCAD include HingeCone(6, 0.5); ``` -------------------------------- ### Fist2d() Example Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/shapes.scad Renders a 2D fist shape. The boardgame_toolkit.scad library must be included. Based on a customizable fist model. ```openscad include Fist2d(20); ``` -------------------------------- ### TesselationBirdGrid Module Example Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/tesselations/quad_tesselation.scad Use TesselationBirdGrid to create a grid of bird shapes. Specify the number of rows, columns, size, and thickness. ```openscad include TesselationBirdGrid(5, 5, size=30, thickness=1); ``` -------------------------------- ### Basic Sliding Box Creation Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/sliding_box.scad This example demonstrates the basic usage of MakeBoxWithSlidingLid by providing only the size argument. The module will use default values for other parameters. ```openscad include MakeBoxWithSlidingLid([50, 100, 20]); ``` -------------------------------- ### HalfEye2d() Basic Example Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/shapes.scad Renders a basic 2D half eye shape. The boardgame_toolkit.scad library must be included. ```openscad include HalfEye2d(30); ``` -------------------------------- ### MakeStripedGrid Module Example Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/labels.scad Generates a background striped grid for label spaces. Specify the desired size in [width, length] format. ```openscad include MakeStripedGrid([20, 50]); ``` -------------------------------- ### SplitBox() Example with Default Orientation Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/slicing.scad Slices a box and creates a puzzle join. Use this to divide a model into two parts with an interlocking connection. ```openscad include SplitBox([100, 50, 20], spin = 90) { MakeBoxWithSlipoverLid(size = [100, 50, 20], foot = 2, floor_thickness = 1.5, lid_thickness = 1.5, wall_thickness = 1.5) { cube([$inner_width, $inner_length, 20]); } MakePuzzleJoin(); } ``` -------------------------------- ### Handshake2d() Example Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/shapes.scad Creates a 2D representation of two hands shaking. Include the boardgame_toolkit.scad library before use. ```openscad include Handshake2d(30); ``` -------------------------------- ### SplitBox() Example with Front Orientation Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/slicing.scad Slices a box and creates a puzzle join with the orientation set to FRONT. Adjusts the slicing plane to the front. ```openscad include SplitBox([100, 50, 20], orient = FRONT) { MakeBoxWithSlipoverLid(size = [100, 50, 20], foot = 2, floor_thickness = 1.5, lid_thickness = 1.5, wall_thickness = 1.5) { cube([$inner_width, $inner_length, 20]); } MakePuzzleJoin(); } ``` -------------------------------- ### MakeBoxWithInsetLidRabbitClip Example Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/inset_box.scad Demonstrates how to create a box with an inset lid and rabbit clip features using the MakeBoxWithInsetLidRabbitClip module. The 'size' argument specifies the width, length, and height of the box. ```openscad include MakeBoxWithInsetLidRabbitClip(size = [30, 100, 20]); ``` -------------------------------- ### TesselationLeafOutlineThree() Example Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/tesselations.scad Creates a leaf outline grouped into threes for easier layout. Requires including the boardgame_toolkit.scad library. ```openscad include TesselationLeafOutlineThree(40); ``` -------------------------------- ### SplitBox() Example with Left Orientation Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/slicing.scad Slices a box and creates a puzzle join with the orientation set to LEFT. This is useful for specific assembly needs. ```openscad include SplitBox([100, 50, 20], orient = LEFT, spin = 90) { MakeBoxWithSlipoverLid(size = [100, 50, 20], foot = 2, floor_thickness = 1.5, lid_thickness = 1.5, wall_thickness = 1.5) { cube([$inner_width, $inner_length, 20]); } MakePuzzleJoin(); } ``` -------------------------------- ### SlipoverPathBoxLid Example Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/slipover_path_box.scad Generates a slipover box lid with a specified path and height. Ensure the boardgame_toolkit.scad library is included. ```openscad include SlipoverPathBoxLid(path=[[0,0], [0,100], [50,100], [50,0]], height=10); ``` -------------------------------- ### HingeLineWithSpacingAndNum() Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/hinge_box.scad Generates a hinge setup in a straight line, similar to HingeLine, but allows specifying the number of hinge locations and the spacing between them. ```APIDOC ## HingeLineWithSpacingAndNum() ### 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. ### Parameters - **num** (integer) - Required - number of hinge locations - **spacing** (float) - Required - spacing between hinge spots - **diameter** (float) - Required - diameter of the hinge itself - **offset** (float) - Required - how much of a space to leave on the conical holes for the hinge - **spin** (float) - Optional - how much to rotate one of the legs (default 0) ### Example ```openscad include HingeLineWithSpacingAndNum(num = 10, spacing = 6, diameter = 6, offset = 0.5); ``` ``` -------------------------------- ### InsetLidRabbitClipWithLabel Example Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/inset_box.scad Demonstrates how to use the InsetLidRabbitClipWithLabel module to create a 100x100mm inset lid with a thickness of 3mm and the text 'Trains' displayed on it. Ensure the boardgame_toolkit.scad library is included. ```openscad include InsetLidRabbitClipWithLabel( size = [100, 100], lid_thickness = 3, text_str = "Trains"); ``` -------------------------------- ### DeltoidTrihexagonalTiling() Example Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/tesselations.scad Creates a deltoid trihexagonal tiling pattern for triangle layouts. Requires including the boardgame_toolkit.scad library. ```openscad include DeltoidTrihexagonalTiling(20); ``` -------------------------------- ### SlipoverBoxLidWithLabelAndCustomShape Example Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/slipover_box.scad Demonstrates how to use SlipoverBoxLidWithLabelAndCustomShape to create a lid with a custom supershape pattern and a text label. Ensure boardgame_toolkit.scad is included. ```openscad include SlipoverBoxLidWithLabelAndCustomShape([100, 50, 20], text_str = "Frog") { ShapeByType(MakeShapeObject(shape_type = SHAPE_TYPE_SUPERSHAPE, shape_thickness = 2, supershape_m1 = 12, supershape_m2 = 12, supershape_n1 = 1, supershape_b = 1.5, shape_width = 15)); } ``` -------------------------------- ### MakeDividerTab() Example Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/dividers.scad Generates a divider tab with curved edges. Children are diffed out of the tab. Use this for simple tabbed dividers. ```OpenSCAD include MakeDividerTab(10, 20, 1); ``` -------------------------------- ### TesselationBirdArea Module Example Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/tesselations/quad_tesselation.scad Use TesselationBirdArea to fill a specified area with bird shapes. Define the area's width and length, along with the bird size and thickness. ```openscad include TesselationBirdArea(200, 100, size=50, thickness=2); ``` -------------------------------- ### HalfEye2d() with Mirror and Nose Example Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/shapes.scad Constructs a face using two mirrored HalfEye2d shapes and adds a nose element. Requires the boardgame_toolkit.scad library. ```openscad include translate([-6, 0, 0]) HalfEye2d(60); translate([6, 0, 0]) mirror([1, 0]) HalfEye2d(60); // Nose. translate([0, -4, 0]) { circle(d=3); translate([0, -2]) { rect([1, 3]); translate([-3, -1.5]) ring(r1=2.5, r2=3, angle=[360, 180], n=32); translate([3, -1.5]) mirror([1, 0]) ring(r1=2.5, r2=3, angle=[360, 180], n=32); } } ``` -------------------------------- ### Generate Penrose Tiling (Base 7) Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/penrose_tiling.scad Generates a Penrose tiling with a specified width, number of divisions, thickness, and base divisions. This example uses a base of 7. ```openscad include PenroseTiling(100, divisions=5, thickness=1, base=7); ``` -------------------------------- ### Anvil2d() with Hammer Example Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/shapes.scad Creates a 2D anvil shape with a hammer and sparks. Ensure the boardgame_toolkit.scad library is included and set 'with_hammer' to true. ```openscad include Anvil2d(30, with_hammer = true); ``` -------------------------------- ### Generate Penrose Tiling (Base 5) Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/penrose_tiling.scad Generates a Penrose tiling with a specified width, number of divisions, thickness, and base divisions. This example uses a base of 5. ```openscad include PenroseTiling(100, divisions=5, thickness=1, base=5); ``` -------------------------------- ### Make Box With Filament Hinge Lid Example Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/filament_hinge_box.scad Generates a box with a filament hinge lid. Specify the desired outer dimensions for the box. ```openscad include MakeBoxWithFilamentHingeLid(size=[100, 50, 20]); ``` -------------------------------- ### HingeLine() Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/hinge_box.scad Creates a hinge setup in a straight line. It includes pieces that extend from each side, suitable for hooking onto edges within 0.5 units of the side. ```APIDOC ## HingeLine() ### 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. ### Parameters - **length** (float) - Required - length of the line to hinge - **diameter** (float) - Required - diameter of the hinge itself - **offset** (float) - Required - how much of a space to leave on the conical holes for the hinge - **spin** (float) - Optional - how much to rotate one of the legs (default 0) ### Example ```openscad include HingeLine(length = 60, diameter = 6, offset = 0.5); ``` ``` -------------------------------- ### Sliding Box with Custom Lid and Wall Thickness Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/sliding_box.scad This example shows how to customize the sliding box by specifying the size, lid thickness, and wall thickness. It also enables a two-layer lid option. ```openscad include MakeBoxWithSlidingLid(size=[100, 100, 20], lid_thickness=3, wall_thickness = 2, sliding_lid_options=MakeSlidingLidOptions(two_layer=true)); ``` -------------------------------- ### CapBoxLidWithLabel with Custom Color and Label Options Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/cap_box.scad This example shows how to customize the lid's material color and label appearance using additional options. ```openscad include CapBoxLidWithLabel([100, 50, 30], text_str = "Frog", material_colour = "lightblue", label_options=MakeLabelOptions(label_colour = "black")); ``` -------------------------------- ### InsetHinge Module Example Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/hinge_box.scad Creates a centered hinge that moves in the middle, with legs designed for easy attachment. Ideal for creating a functional hinge for box lids or compartments. ```OpenSCAD include InsetHinge(length = 100, width = 20, diameter = 6, offset = 0.5); ``` -------------------------------- ### Create a Box with Finger Cutouts and Internal Compartments Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/Tutorial-composite_boxes Constructs a box with external finger cutouts and a recessed card section. This example requires the boardgame_toolkit.scad library and specific SVG imports for internal structures. ```openscad include train_card_thickness = 2; player_box_width = 95.33; player_box_length = 187; player_box_height = 26.5; card_height = train_card_thickness * 4.5; wall_thickness = 2; lid_thickness = 3; inner_wall = 1; silo_piece_height = 40; silo_piece_width = 22; mine_width = 21; mine_height = 27; roundhouse_height = 40; train_card_length = 90; crossing_height = 14; crossing_length = 34; MakeBoxWithSlidingLid(size = [player_box_width, player_box_length, player_box_height], lid_thickness = lid_thickness, wall_thickness = wall_thickness) { // Round houses. difference() { cube([ player_box_width - wall_thickness * 2, roundhouse_height, player_box_height ]); translate([ (player_box_width - wall_thickness * 3) / 2 - 7, wall_thickness * 2, 0 ]) linear_extrude(height = wall_thickness + 0.5) import("svg/rotw - roundhouse.svg"); } // water tower. difference() { translate([ 0, roundhouse_height + inner_wall, 0 ]) cube([ player_box_width - wall_thickness * 2 - mine_width - inner_wall, silo_piece_height * 2, player_box_height ]); translate([ silo_piece_width, roundhouse_height + inner_wall + silo_piece_height / 2, -wall_thickness ]) linear_extrude(height = wall_thickness + 0.5) import("svg/rotw - water.svg"); } // mine section. difference() { translate([ player_box_width - wall_thickness * 3 - mine_width + inner_wall, roundhouse_height + inner_wall, 0 ]) cube([ mine_width, silo_piece_height * 2, player_box_height ]); // Offset in here fixes the error in the svg file. translate([ player_box_width - wall_thickness * 3 - mine_width + inner_wall, roundhouse_height + inner_wall + silo_piece_height / 2, -wall_thickness ]) linear_extrude(height = wall_thickness + 0.5) offset(delta = 0.001) import("svg/rotw - mine.svg"); } // cards. translate([ 0, roundhouse_height + inner_wall * 2 + silo_piece_height * 2, player_box_height - lid_thickness - card_height - wall_thickness, ]) cube([ player_box_width - wall_thickness * 2, train_card_length, player_box_height ]); // Recessed box for crossings. difference() { translate([ player_box_width * 1 / 8 - wall_thickness, roundhouse_height + inner_wall * 2 + silo_piece_height * 2 + 7, 0, ]) cube([ player_box_width * 3 / 4, crossing_length * 1.25, crossing_height ]); translate([ player_box_width * 1 / 8 + player_box_width * 2 / 8 - wall_thickness, roundhouse_height + inner_wall * 2 + silo_piece_height * 2 + 12, 0.1 - wall_thickness ]) linear_extrude(height = wall_thickness + 0.4) import("svg/rotw - signal.svg"); } // Finger cutout for cards translate([ wall_thickness - 0.3, roundhouse_height + inner_wall * 2 + silo_piece_height * 2 + crossing_length * 1.25 / 2 + 16, 0 ]) FingerHoleBase(radius = 10, height = player_box_height - 1 + 0.01, wall_thickness = wall_thickness * 2, spin = 270, rounding_radius = 5); } text_str = "Player"; text_width = 80; text_height = 30; translate([ player_box_width + 10, 0, 0 ]) SlidingBoxLidWithLabel( size = [player_box_width, player_box_length], lid_thickness = lid_thickness, text_str = text_str); ``` -------------------------------- ### MakeDivider() Example Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/dividers.scad Creates a divider with a tab section. The first child is diffed from the tab, and subsequent children are diffed from the main body. Suitable for general-purpose dividers. ```OpenSCAD include MakeDivider(size = [40, 70, 1], tab_height = 10, num_tabs = 3, tab_position = 0, tab_radius = 2); ``` -------------------------------- ### SquareTesselation() with Extrusion and Outline Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/tesselations.scad Creates a 3D tessellated shape by extruding a SquareTesselation and adding an outline with thickness and outer offset. This example also utilizes RegularPolygonGrid for arrangement. ```openscad include linear_extrude(height = 2) RegularPolygonGrid( width=20, rows=5, cols=5, spacing=0, shape_edges=4, aspect_ratio=1.0, space_width=20, space_length=20 ) SquareTesselation( points=[ [[-0.5, 0], [0.2, 0.3], [0.5, 0]], [[-0.5, 0], [0.1, 0.2], [0.5, 0]], ], size=[20, 20], thickness=1, outer_offset=0.1 ); ``` -------------------------------- ### InsetLidRabbitClipWithLabelAndCustomShape with Custom Shape Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/inset_box.scad This example demonstrates how to use InsetLidRabbitClipWithLabelAndCustomShape to create a lid with a custom shape for the pattern. The custom shape is defined using MakeShapeObject and ShapeByType. ```openscad include InsetLidRabbitClipWithLabelAndCustomShape(size=[100, 50], text_str = "Frog") { ShapeByType(MakeShapeObject(shape_type = SHAPE_TYPE_SUPERSHAPE, shape_thickness = 2, supershape_m1 = 12, supershape_m2 = 12, supershape_n1 = 1, supershape_b = 1.5, shape_width = 15)); } ``` -------------------------------- ### sumVec() Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/card_library.scad Sums all the vectors together to get a final result. ```APIDOC ## sumVec() ### Description Sums all the vectors together to get a final result. ### Arguments - `vec` (vector) - the vector to sum - `index` (int) - the current index (default 0) - `sum` (float) - the current sum (default 0) ### Example ```openscad include sumVec([1, 2, 3]); ``` ``` -------------------------------- ### StGeorgesCross() Example Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/flags.scad Generates a St. George's Cross flag. Requires including the boardgame_toolkit.scad library. ```openscad include StGeorgesCross(100, 5, 4); ``` ```openscad include StGeorgesCross(100, 5, 4); ``` ```openscad include StGeorgesCross(100, 5, 4); ``` -------------------------------- ### StPatricksCross() Example Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/flags.scad Generates a St. Patrick's Cross flag. Requires including the boardgame_toolkit.scad library. ```openscad include StPatricksCross(100, 5); ``` ```openscad include StPatricksCross(100, 4); ``` ```openscad include StPatricksCross(100, 4); ``` -------------------------------- ### StAndrewsCross() Example Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/flags.scad Generates a St. Andrew's Cross flag. Requires including the boardgame_toolkit.scad library. ```openscad include StAndrewsCross(100, 4); ``` ```openscad include StAndrewsCross(100, 4); ``` ```openscad include StAndrewsCross(100, 4); ``` -------------------------------- ### TesselationLeafOutlineThree() with Thickness and Veins Example Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/tesselations.scad Customizes the thickness and veins of a three-part leaf outline. Requires including the boardgame_toolkit.scad library. ```openscad include TesselationLeafOutlineThree(40, thickness=2, with_veins=true); ``` -------------------------------- ### TesselationLeafOutline() with Veins Example Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/tesselations.scad Generates a leaf outline with veins. Set `with_veins` to true. Requires including the boardgame_toolkit.scad library. ```openscad include TesselationLeafOutline(40, with_veins=true); ``` -------------------------------- ### Include Boardgame Toolkit Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/penrose_tiling.scad Add this line to the beginning of your file to use the Penrose Tiling modules. ```openscad include ``` -------------------------------- ### HalfEye2d() Angled Example Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/shapes.scad Generates a 2D half eye shape at a different angle. Include the boardgame_toolkit.scad library before use. ```openscad include HalfEye2d(60); ``` -------------------------------- ### PenroseTiling() Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/penrose_tiling.scad Generates a Penrose tiling within a specified width and with customizable divisions, thickness, and base settings. ```APIDOC ## Module: PenroseTiling() ### Description This makes a penrose tiling based on the nice layout with a different type of spaces. ### Arguments - **width** (float) - The width of the tiling space. - **divisions** (int) - The number of recursive divisions (default 7). - **thickness** (float) - The thickness of the stroke to use (default 1). - **base** (int) - The base divisions of the circle (default 5). ### Example 1 ```openscad include PenroseTiling(100, divisions=5, thickness=1, base=5); ``` ### Example 2 ```openscad include PenroseTiling(100, divisions=5, thickness=1, base=7); ``` ``` -------------------------------- ### DeltoidTrihexagonalTiling() within Region Example Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/tesselations.scad Applies the deltoid trihexagonal tiling within a defined region. Requires including the boardgame_toolkit.scad library. ```openscad include region(DeltoidTrihexagonalTiling(20)); ``` -------------------------------- ### MakeBoxWithInsetLidRabbitClip() Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/inset_box.scad Creates a box with an inset lid and rabbit clip features. The origin (0,0,0) is set to the bottom inside of the box for easier child placement. Internal dimensions can be accessed via $inner_height, $inner_width, and $inner_length variables. ```APIDOC ## MakeBoxWithInsetLidRabbitClip() ### Description Makes a box with an inset lid, handling 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 arithmetic. Inside the children of the box you can use the $inner_height, $inner_width, $inner_length variables to deal with the box sizes. ### Method OpenSCAD Module Call ### Parameters #### Arguments - **wall_thickness** (float) - Optional - How thick the walls are (default `default_wall_thickness`) - **lid_thickness** (float) - Optional - How high the lid is (default `default_lid_thickness`) - **tab_height** (float) - Optional - How high to make the tabs (default 6) - **inset** (float) - Optional - How far to inset the lid (default 1) - **make_rabbit_width** (boolean) - Optional - Makes tabs on the width (default false) - **make_rabbit_length** (boolean) - Optional - Makes tabs on the length (default true) - **rabbit_length** (float) - Optional - Length of the rabbit piece (downwards direction) (default 6) - **rabbit_width** (float) - Optional - Width of the rabbit piece (crosswise direction) (default 7) - **rabbit_lock** (boolean) - Optional - If the rabbit should have a locking piece on it (default false) - **rabbit_compression** (float) - Optional - How much sideway give on the rabbit (default 0.1) - **rabbit_snap** (float) - Optional - How deep the inner depth should be for the snap curve (default 0.25) - **rabbit_offset** (float) - Optional - How much of an offset on each side of the rabbit to attach to the lid (default 3) - **rabbit_depth** (float) - Optional - Extrusion depth of the rabbit (default 1.5) - **size_spacing** (float) - Optional - Wiggle room to use when generating box (default `m_piece_wiggle_room`) - **floor_thickness** (float) - Optional - Thickness of the floor (default `default_floor_thickness`) - **positive_only_children** (list) - Optional - The list of children to be positive only - **positive_negative_children** (list) - Optional - The list of children to be positive and negative - **positive_colour** (color) - Optional - Colour of the positive pieces (default `default_positive_colour`) - **size** (list) - Optional - The size of the object [width, length, height] - **rabbit_thickness** (float) - Optional - Thickness of the rabbit edge - **material_colour** (color) - Optional - The colour of the material in the box (default `default_material_colour`) ### Usage - `MakeBoxWithInsetLidRabbitClip(width = 30, length = 100, height = 20);` ### Example 1 ```openscad include MakeBoxWithInsetLidRabbitClip(size = [30, 100, 20]); ``` ``` -------------------------------- ### MakeTabs() Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/lids_base.scad Create the tabs for the box, this can be used on the lids and the box to create cutouts. It takes the box size and lid thickness, with optional arguments for tab length and flags to enable tabs on width and length sides. ```APIDOC ## MakeTabs() ### 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()`](#module-makelidtab) to make the tabs, it will place the children at each of the specified offsets to make the tabs. ### Usage - MakeTabs(50, 100, wall_thickness = 2, lid_thickness = 2); ### Arguments - `size` (array) - [width, length] of the box - `lid_thickness` (number, optional) - the height of the lid (default = default_lid_thickness) - `tab_length` (number, optional) - how long the tab is (default = 10) - `make_tab_width` (boolean, optional) - make tabs on the width side (default false) - `make_tab_length` (boolean, optional) - make tabs on the length side (default true) ### Example ```openscad include MakeTabs([50, 100]) MakeLidTab(length = 10, height = 6); ``` ``` -------------------------------- ### TesselationLeafOutlineThree() with Veins Example Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/tesselations.scad Generates a three-part leaf outline with veins. Set `with_veins` to true. Requires including the boardgame_toolkit.scad library. ```openscad include TesselationLeafOutlineThree(40, with_veins=true); ``` -------------------------------- ### TesselationGooseGrid() Module Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/tesselations/goose.scad Creates a grid of goose shapes. Specify the number of rows, columns, size, and thickness. ```openscad include TesselationGooseGrid(5, 5, size=30, thickness=1); ``` -------------------------------- ### Create Box Tabs with MakeTabs() Source: https://github.com/pinkfish/openscad_boardgame_toolkit/blob/main/docs/boardgame_toolkit.scad.md Use MakeTabs() to define the layout for box tabs. The MakeLidTab() module should be used as a child to create the actual tabs at the specified offsets. ```openscad include MakeTabs(50, 100) MakeLidTab(length = 10, height = 6); ``` -------------------------------- ### SlidingBoxLidWithLabelAndCustomShape Example Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/sliding_box.scad Creates a lid for a sliding lid box with a custom shape and a text label. The first child defines the repeating shape. ```OpenSCAD include SlidingBoxLidWithLabelAndCustomShape(size=[100, 50], text_str = "Frog") { ShapeByType(MakeShapeObject(shape_type = SHAPE_TYPE_SUPERSHAPE, shape_thickness = 2, supershape_m1 = 12, supershape_m2 = 12, supershape_n1 = 1, supershape_b = 1.5, shape_width = 15)); } ``` -------------------------------- ### SlidingBoxLidWithCustomShape Example Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/sliding_box.scad Creates a lid for a sliding lid box using a custom shape. The first child is used as the repeating shape on the lid. ```OpenSCAD include SlidingBoxLidWithCustomShape([100, 50]) { ShapeByType(MakeShapeObject(shape_type = SHAPE_TYPE_SUPERSHAPE, shape_thickness = 2, supershape_m1 = 12, supershape_m2 = 12, supershape_n1 = 1, supershape_b = 1.5, shape_width = 15)); } ``` -------------------------------- ### MakePuzzleJoin() Default Parameters Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/slicing.scad Creates a standard puzzle join piece. Use this when you need a basic interlocking joint for two parts. ```openscad include MakePuzzleJoin(); ``` -------------------------------- ### Sliding Box with Two-Layer V-Shape Lid Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/sliding_box.scad This example further customizes the sliding box by enabling a two-layer lid with a V-shape. This allows for more complex lid designs. ```openscad include MakeBoxWithSlidingLid(size=[100, 100, 20], lid_thickness=3, wall_thickness = 2, sliding_lid_options=MakeSlidingLidOptions(two_layer=true, two_layer_vee_shape=true)); ``` -------------------------------- ### MakePathBoxWithNoLid() Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/no_lid.scad This module is documented elsewhere and not detailed on this page. -------------------------------- ### DeltoidTrihexagonalTiling() Kite Tiling Example Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/tesselations.scad Generates a deltoid trihexagonal tiling using a kite pattern. Set `kite` to true. Requires including the boardgame_toolkit.scad library. ```openscad include DeltoidTrihexagonalTiling(20, kite=true); ``` -------------------------------- ### Generate Simple Bird Tesselation Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/tesselations/quad_tesselation.scad Creates a basic 'bird' shaped tesselation. Adjust the 'size' and 'thickness' parameters to control the dimensions of the tesselation. ```openscad include TesselationBird(size=20); ``` -------------------------------- ### MakePathBoxWithCapLid with Reduced Height Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/cap_box_polygon.scad Creates a box with a cap lid using a specified path and a reduced height. This example demonstrates adjusting the overall height of the box. ```openscad include MakePathBoxWithCapLid(path=[[0,0], [0,100], [100,100]], height=10); ``` -------------------------------- ### Create Hinge Box with Print-in-Place Hinge Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/Tutorial-simple_boxes Creates a box with an integrated hinge designed for print-in-place functionality. This example defines the box and lid sections separately. ```openscad include canvas_piece_box_width = 41; canvas_piece_box_length = 73; canvas_piece_box_height = 29; wall_thickness = 3; MakeBoxAndLidWithInsetHinge([canvas_piece_box_width, canvas_piece_box_length, canvas_piece_box_height], wall_thickness = wall_thickness, lid_thickness = 2) { // Box section. RoundedBoxAllSides([canvas_piece_box_width - wall_thickness * 4, canvas_piece_box_length - wall_thickness * 2, canvas_piece_box_height], radius = 5); // Lid section. cube([canvas_piece_box_width - wall_thickness * 4,canvas_piece_box_length - wall_thickness * 2,canvas_piece_box_height]); } ``` -------------------------------- ### MakePuzzleJoin() Custom Parameters Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/slicing.scad Creates a puzzle join piece with custom dimensions for height, width, base, and stem. Adjust these for specific fit and appearance requirements. ```openscad include MakePuzzleJoin(height = 20, width = 5, base = 10, stem = 5); ``` -------------------------------- ### MakeDividerWithText() Example Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/dividers.scad Generates a divider with a tab and includes text on the tab. Use this to label divider sections. Children are diffed from the tab and main body respectively. ```OpenSCAD include MakeDividerWithText(size = [40, 70, 1], tab_height = 10, num_tabs = 3, tab_position = 0, text_str = "Frog"); ``` -------------------------------- ### MakeCardSize() Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/card_library.scad Creates a card size object with specified width, length, and thickness. ```APIDOC ## MakeCardSize() ### Description Creates a card size object. ### Arguments - `width` (float) - width of the cards - `length` (float) - length of the cards - `single_card_thickness` (float) - thickness of a single card ### Example ```openscad include MakeCardSize(93, 62, 0.1); ``` ``` -------------------------------- ### Create an Inset Lid Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/CheatSheet Generates a basic inset lid for a box. Specify the dimensions for the lid. ```openscad InsetLid(50, 100); ``` -------------------------------- ### TesselationGoose() Module Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/tesselations/goose.scad Renders a single goose shape. Use with different sizes and thicknesses. ```openscad include TesselationGoose(size=20); ``` ```openscad include TesselationGoose(size=20, thickness=0.5); ``` -------------------------------- ### Create Sliding Box with Compartments Source: https://github.com/pinkfish/openscad_boardgame_toolkit/blob/main/tutorials/simple_boxes.md Generates a sliding lid box with internal compartments using `RoundedBoxGrid`. This example creates a 2x2 grid of compartments within the box. ```openscad-3D include money_thickness = 10; money_length = 134; money_width = 60; wall_thickness = 2; money_section_width = money_width + wall_thickness * 2; money_section_length = money_length + wall_thickness * 2; top_section_height = 20; module GridBox() { MakeBoxWithSlidingLid(size = [money_section_width, money_section_length, top_section_height]) { RoundedBoxGrid([money_width, money_length, top_section_height], rows = 2, cols = 2, radius = 4, all_sides = true); } text_str = "Grid"; text_width = 80; translate([ money_section_width + 10, 0, 0 ]) SlidingBoxLidWithLabel( size = [money_section_width, money_section_length], text_str = text_str, label_options=MakeLabelOptions(text_length = text_width)); } GridBox(); ``` -------------------------------- ### MakeBoxWithNoLid() Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/no_lid.scad Creates a box with no lid, suitable for game components like spacers or trays. Supports various customization options for size, thickness, and features like finger dips. ```APIDOC ## Module: MakeBoxWithNoLid() ### Description Makes a box with no lid, useful for spacers and other things in games. ### Arguments By Position | What it does -------------------- | ------------ `size` | [width, length, height] outside size of the box `wall_thickness` | thickness of the walls (default [default_wall_thickness](base_bgtk.scad#constant-default_wall_thickness)) `material_colour` | the material colour to use (default [default_material_colour](base_bgtk.scad#constant-default_material_colour)) `floor_thickness` | thickness of the floor (default [default_floor_thickness](base_bgtk.scad#constant-default_floor_thickness)) `make_finger_x` | makes finger dip on the x axis (default width > length) `make_finger_y` | makes finger dip on the y axis (default length > width) `finger_hole_size` | size of the finger dip (default 20) `hollow` | make the inside hollow (default false) `fingert_hole_wall_width` | the width of the hole in the wall (default [default_wall_thickness](base_bgtk.scad#constant-default_wall_thickness)) ### Example 1: include MakeBoxWithNoLid(size = [100, 50, 20]); ### Example 2: include MakeBoxWithNoLid(size = [100, 50, 20], hollow=true); ``` -------------------------------- ### CapPathBoxLidWithLabelAndCustomShape Example Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/cap_box_polygon.scad Use this module to create a custom lid for a cap box. The child element defines the shape that will be repeated on the lid. Ensure the 'boardgame_toolkit.scad' library is included. ```openscad include CapPathBoxLidWithLabelAndCustomShape(path=[[0,0], [0,100], [100,100]], height=30, text_str = "Frog", label_options=MakeLabelOptions(text_length=50, label_diff=[20,20])) { ShapeByType(MakeShapeObject(shape_type = SHAPE_TYPE_SUPERSHAPE, shape_thickness = 2, supershape_m1 = 12, supershape_m2 = 12, supershape_n1 = 1, supershape_b = 1.5, shape_width = 15)); } ``` -------------------------------- ### CapPathBoxLidWithLabel Basic Usage Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/cap_box_polygon.scad Demonstrates the basic usage of CapPathBoxLidWithLabel with path, height, and text string. Includes options for label dimensions and positioning. ```openscad include CapPathBoxLidWithLabel(path=[[0,0], [0,100], [100,100]], height=30, text_str = "Frog", label_options=MakeLabelOptions( text_length=50, label_diff=[20, -20])); ``` -------------------------------- ### TesselationGooseGrid() Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/tesselations/goose.scad Creates a grid of goose shapes. Users can specify the number of rows, columns, size, and thickness. ```APIDOC ## Module: TesselationGooseGrid() ### Description The nice goose shape. ### Arguments - **row** (number) - Optional - number of rows - **col** (number) - Optional - number of columns - **size** (number) - Optional - size of the goose - **thickness** (number) - Optional - thickness of the goose ### Example 1 ```scad include TesselationGooseGrid(5, 5, size=30, thickness=1); ``` ``` -------------------------------- ### MakeBoxWithSlidingCatchLid() Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/sliding_catch_box.scad Creates a complete box with a sliding catch lid. It allows customization of box dimensions, lid thickness, wall thickness, floor thickness, spacing, top thickness, and material color. ```APIDOC ## Module: MakeBoxWithSlidingCatchLid() ### Description Creates a box with a sliding catch lid on the top. Inside the children of the box you can use the $inner_height, $inner_width, $inner_length variables to deal with the box sizes. ### Usage `MakeBoxWithSlidingCatchLid([100, 50, 20]);` ### Arguments `By Position | What it does -------------------- | ------------ `size` | [width, length, height] of the box `lid_thickness` | thickness of the lid (default `default_lid_thickness`) `wall_thickness` | thickness of the walls (default `default_wall_thickness`) `floor_thickness` | thickness of the floor (default `default_floor_thickness`) `size_spacing` | amount of wiggle room between pieces (default `m_piece_wiggle_room`) `top_thickness` | the thickness of the all above the catch (default 2) `material_colour` | the colour of the material in the box (default `default_material_colour`) ### Example ```openscad include MakeBoxWithSlidingCatchLid([100, 50, 20]); ``` ``` -------------------------------- ### Filament Box Inside Mask Example Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/filament_hinge_box.scad Creates an internal mask for a filament hinge box to ensure internal cuts do not interfere with the hinges. Specify the box dimensions. ```openscad include FilamentBoxInsideMask([100, 20, 10]); ``` -------------------------------- ### TesselationLeaf() - Basic Usage Source: https://github.com/pinkfish/openscad_boardgame_toolkit/wiki/tesselations.scad Creates a solid leaf shape for use in tessellations. The size parameter controls the dimensions of the leaf. ```openscad include TesselationLeaf(40); ```