Skip to content

slipover_path_box.scad

pinkfish edited this page Apr 19, 2026 · 6 revisions

LibFile: slipover_path_box.scad

This file has all the modules needed to generate a slipover box using a polygon for the outside.

To use, add the following lines to the beginning of your file:

include <boardgame_toolkit.scad>

File Contents

Module: FingerHoleWallSegmentCutout()

Description:

Makes a single segment for use in the capbox wall. It will make the rounded finger holes on the side of the capbox at the correct direction and length.

Arguments:

By Position What it does
path the path to generate for (this should be one line segment)
radius the radius of the rounding on the fingerhole
height the height of the fingerhole
depth the thickness of the walls

Example 1:

FingerHoleWallSegmentCutout() Example 1
include <boardgame_toolkit.scad>
FingerHoleWallSegmentCutout([[0,0], [50,50]], radius=5, height=7, depth=6, finger_catch=CATCH_ALL);

Module: MakePathBoxWithSlipoverLid()

Topics: SlipoverBox

Usage: MakePathBoxWithSlipoverLid(path=0,0], [0,100], [50,100], [50,0, height=10);

Description:

Makes the inside of the slip box, this will take a second lid that slides over the outside of the box.

Inside the children of the box you can use the $inner_height , $inner_width, $inner_length = length variables to deal with the box sizes.

Arguments:

By Position What it does
path the path for the bottom of the box
height outside height of the box
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)
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)
material_colour the colour of the material in the box (default default_material_colour)
positive_only_children the list of children to be positive only
positive_negative_children the list of children to be positive and negative
lid_catch CATCH_NONE - no catch, CATCH_LONG - length catch, CATCH_SHORT - width catch (default
[default\_lid\_catch\_type](lids_base.scad#constant-default_lid_catch_type))

Example 1:

MakePathBoxWithSlipoverLid() Example 1
include <boardgame_toolkit.scad>
MakePathBoxWithSlipoverLid(path=[[0,0], [0,100], [50,100], [50,0]], height=10);

Module: SlipoverPathBoxLid()

Topics: SlipoverBox

Usage: SlipoverPathBoxLid(path=0,0], [0,100], [50,100], [50,0, height=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
path the path of the box (outside width)
height height of the lid (outside height)
lid_thickness thickness of the lid (default default_lid_thickness)
wall_thickness thickness of the walls (default default_wall_thickness)
finger_catch where to put the catches (default CATCH_SHORT)
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.
lid_rounding how much to round the lid (default wall_thickness)
material_colour the colour of the material in the box (default default_material_colour)
offset_sweep_options the options to use in the offset_sweep hollow box ({ offset = "round", check_valid: true, quality: 1, steps: 16}})

Example 1:

SlipoverPathBoxLid() Example 1
include <boardgame_toolkit.scad>
SlipoverPathBoxLid(path=[[0,0], [0,100], [50,100], [50,0]], height=10);

Module: SlipoverPathBoxLidWithLabelAndCustomShape()

Topics: SlipoverBox

Usage: SlipoverPathBoxLidWithLabelAndCustomShape(100, 50, 20, text\_str = "Frog");

Description:

Lid for a slipover box. This uses the first child as the shape for repeating on the lid.

Arguments:

By Position What it does
path the path for the outside of the box
height outside height of the box
lid_boundary boundary around the outside for the lid (default 10)
text_str the string to use for the label
layout_width the width of the layout pieces (default default_lid_layout_width)
size_spacing extra spacing to apply between pieces (default m_piece_wiggle_room)
lid_thickness thickness of the lid (default default_lid_thickness)
aspect_ratio the aspect ratio (multiple by dy) (default default_lid_aspect_ratio)
lid_rounding how much rounding on the edge of the lid (default wall_thickness/2)
wall_thickness thickness of the walls (default default_wall_thickness)
foot size of the foot on the box.
finger_catch where to put the catches (default CATCH_SHORT)
lid_pattern_dense if the layout is dense (default false)
lid_dense_shape_edges the number of edges on the dense layout (default 6)
material_colour the colour of the material in the box (default default_material_colour)
lid_catch CATCH_NONE - no catch, CATCH_LONG - length catch, CATCH_SHORT - width catch (default
[default\_lid\_catch\_type](lids_base.scad#constant-default_lid_catch_type))
pattern_inner_control if the pattern needs inner control (default false)
label_options options for the label (default undef)

Example 1:

SlipoverPathBoxLidWithLabelAndCustomShape() Example 1
include <boardgame_toolkit.scad>
long_player_box_width = 136.5;
long_player_box_length = 305;
long_player_box_height = 18.5;
long_player_box_gap = 60;
long_player_box_upgrade_buffer= 5;
upgrade_width = 86;
SlipoverPathBoxLidWithLabelAndCustomShape(
 [
   [0, 0],
   [0, long_player_box_length],
   [long_player_box_width, long_player_box_length],
   [long_player_box_width, long_player_box_length - 2 * 2 - upgrade_width - long_player_box_upgrade_buffer],
   [long_player_box_width - long_player_box_gap, long_player_box_length - 2 * 2 - upgrade_width - long_player_box_upgrade_buffer],
   [long_player_box_width - long_player_box_gap, 0],
 ],
 height=long_player_box_height,
 material_colour="orange",
 foot=2,
 text_str="frog",
 label_options=MakeLabelOptions(
      text_length=50,
      text_scale=0.5,
      label_diff=[-28, 0]
  )
 ) {
   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));
 }

Module: SlipoverPathBoxLidWithLabel()

Topics: SlipoverBox

Usage: SlipoverPathBoxLidWithLabel(20, 100, 10, text\_str = "Marmoset", shape\_type = SHAPE\_TYPE\_CIRCLE, layout\_width = 10, shape\_width = 14)

Arguments:

By Position What it does
path the path for the outside of the box
height outside height of the box
text_str the string to use for the label
lid_boundary boundary around the outside for the lid (default 10)
wall_thickness thickness of the walls (default default_wall_thickness)
foot size of the foot on the box.
aspect_ratio the aspect ratio (multiple by dy) (default default_lid_aspect_ratio)
layout_width the width of the layout pieces (default default_lid_layout_width)
size_spacing how much to offset the pieces by to give some wiggle room (default m_piece_wiggle_room)
lid_thickness thickness of the lid (default default_lid_thickness)
lid_rounding how much to round the lid (default wall_thickness)
material_colour the colour of the material in the box (default default_material_colour)
lid_catch CATCH_NONE - no catch, CATCH_LONG - length catch, CATCH_SHORT - width catch (default default_lid_catch_type)
label_options options for the label (default undef)
shape_options options for the shape (default undef)

Example 1:

SlipoverPathBoxLidWithLabel() Example 1
include <boardgame_toolkit.scad>
long_player_box_width = 136.5;
long_player_box_length = 305;
long_player_box_height = 18.5;
long_player_box_gap = 60;
long_player_box_upgrade_buffer= 5;
upgrade_width = 86;
SlipoverPathBoxLidWithLabel(
 [
   [0, 0],
   [0, long_player_box_length],
   [long_player_box_width, long_player_box_length],
   [long_player_box_width, long_player_box_length - 2 * 2 - upgrade_width - long_player_box_upgrade_buffer],
   [long_player_box_width - long_player_box_gap, long_player_box_length - 2 * 2 - upgrade_width - long_player_box_upgrade_buffer],
   [long_player_box_width - long_player_box_gap, 0],
 ],
 height=long_player_box_height,
 material_colour="orange",
 foot=2,
 text_str="frog",
 label_options=MakeLabelOptions(
   text_length=50,
   text_scale=0.5,
   label_diff=[-20,-28])
 );

Clone this wiki locally