Ultimate customizable swatches holder generator
Print Profile(1)

Description
Membership
Like my models? Please consider subscribing. This will help me dedicate more time to create new interesting designs. As a subscriber, you'll get my direct email for priority support, and you can gain access to high-res model files (STEP), original project files (F3D) and source code of my scripts (SCAD) and optionally a commercial license.
This is an OpenSCAD script to generate filament and infill swatches tiles for display.
Tiles generated with the default settings are fully compatible with Bambu Lab sample swatches and is the full compatible parametrization of the Swatch Display Board by Bambu Lab, any parameter of the swatch and holder can be changed.
This completes with my previous Ultimate fully customizable swatches generator you can find here.
Thanks to @Stephanos for the complete list of fonts and styles supported by MakerWorld he gave me access with his script Parametric Model Maker ALL TEXT FONTS TEMPLATE you can find here.
A guide through the tabs
Here's an detailed explanation of every possible setting. Feel free to explore the endless possibilities of combining these values.
Dimensions
In this tab you can customize the dimension of every aspect of this design.
| Parameter | Description | unit | min | max | default |
|---|---|---|---|---|---|
| columns | The number of tiles for each row. | n. | 1 | 10 | 4 |
| rows | The number of tiles for each column. | n. | 1 | 15 | 5 |
| columns_spacer | The distance of the raised border between columns. | mm | 0.1 | 25 | 5 |
| rows_spacer | The distance of the raised border between rows. | mm | 0.1 | 25 | 5 |
| outside_border | The dimension of the border all around the holder. | mm | 0.1 | 25 | 2.2 |
| tile_size | Being the tile a rounded-corners square, this defines the length of the side of that square. | mm | 10 | 100 | 24.1 |
| tile_height | This is the tile depth. | mm | 1 | 5 | 2.15 |
| tile_radius | This sets the roundness of the above mentioned square. | mm | 1 | 10 | 3.1 |
| outside_border_chamfer | This is the chamfer applied to the external border at top. (0 = no chamfer) | mm | 0 | 10 | 0.5 |
| outside_border_radius | The radius of the corners in the external border. (0 = squared borders) | mm | 0 | 10 | 5 |
| back_height | The height of the back part of the grid (the one below the tiles). | mm | 0.4 | 10 | 1.35 |
| create_back_hole | If a hole in the back back, at the middle of each tile must be cut. This hole allows to easily extract a tile by placing a finger behind it and pushing forward. | bool | true | ||
| back_hole_diameter | The diameter of the back hole above mentioned. | mm | 2 | 25 | 15.5 |
| back_hole_chamfer | Specifies if a chamfer must be cut around the bottom border of the back hole. (0 = no chamfer) | mm | 0 | 1 | 0.4 |
| create_pin | This sets if a holding pin must be created for each tile. | bool | true | ||
| pin_diameter | Diameter of the pin to be created. | mm | 1 | 5 | 3.1 |
| pin_x_offset | X-axis distance from the left border of a tile to the center of the pin. | mm | 1 | 10 | 3.9 |
| pin_y_offset | Y-axis distance from the top border of a tile to the center of the pin. | mm | 1 | 10 | 4.6 |
| pin_chamfer | Specifies if a chamfer must be created around the top border of the pin. (0 = no chamfer) | mm | 0 | 1 | 0.1 |
Sides
All the sides have the same settings available or better to say, horizontal sides (top and bottom) have the same settings, vertical sides (left and right) have the same settings. In these sections you can enable the creation of an expanded border with a text and one/two/no holes for using a collector.
Top side
| Parameter | Description | unit | min | max | default |
|---|---|---|---|---|---|
| top_create | Indicates if a expanded border must be created on this side. | bool | true | ||
| top_dimension | Specified the dimension (height) of this side. | mm | 3 | 50 | 10 |
| top_text | Specifies the text to create on this side. (leave this field blank to have no text) | text | “Top text” | ||
| top_direction | The direction on Z-axis where the text extends, allows these values:
| Chisel | |||
| top_height | The height in millimeters of extrusion or chisel. | mm | 0.1 | 5 | 0.4 |
| top_font | Choose one of the supported fonts from the list to apply it to the text on this side. | Liberation Serif | |||
| top_custom_font | Here you can override the above setting by putting the name of a font installed in the system where this script is executed. Please keep in mind that when you use Parametric Model Maker, the system the script is running on is MakerWorld's server, not your computer. | none | |||
| top_style | Choose the style of the text. Note: not all fonts support all styles. | Bold | |||
| top_size | The size of the text. | pt | 1 | 12 | 5 |
| top_align | Alignments of the text, accepted values:
| Center | |||
| top_spacing | Spacing between letters, the greater the number, the far the letters are. | 0.1 | 5 | 1 | |
| top_x_offset | X offset of the text to compensate and correct calculated position. | mm | -100 | 100 | 0 |
| top_y_offset | Y offset of the text to compensate and correct calculated position. | mm | -100 | 100 | 0 |
| top_holes | Create holes in this, this value can be:
| None | |||
| top_holes_diameter | The diameter of the holes. | mm | 0.2 | 10 | 5 |
| top_holes_distance | The distance from the side of the border to the middle of the hole. | mm | 0.2 | 100 | 3 |
| top_left_hole_x_offset | An offset on the X-axis to give to the left hole. | mm | -100 | 100 | 0 |
| top_left_hole_y_offset | An offset on the Y-axis to give to the left hole. | mm | -100 | 100 | 0 |
| top_right_hole_x_offset | An offset on the X-axis to give to the right hole. | mm | -100 | 100 | 0 |
| top_right_hole_y_offset | An offset on the Y-axis to give to the right hole. | mm | -100 | 100 | 0 |
Left side
Left side has almost the same configuration as the top side, here only the differences will be shown.
| Parameter | Description | unit | min | max | default |
|---|---|---|---|---|---|
| left_text | Specifies the text to create on this side. (leave this field blank to have no text) | text | empty | ||
| left_orientation | The orientation of the text, which can be:
| Rotated text (CCW) | |||
| left__align | Alignments of the text, accepted values:
| Center | |||
| left_holes | Holes can be created:
| Both |
Right side
Right side has the same configuration as left side, only parameters that change are shown here.
| Parameter | Description | unit | min | max | default |
|---|---|---|---|---|---|
| right_create | Indicates if a expanded border must be created on this side. | bool | false | ||
| right_text | Specifies the text to create on this side. (leave this field blank to have no text) | text | “Right text” |
Bottom side
Bottom side has the same configuration as top side, only parameters that change are shown here.
| Parameter | Description | unit | min | max | default |
|---|---|---|---|---|---|
| bottom_create | Indicates if a expanded border must be created on this side. | bool | false | ||
| bottom_text | Specifies the text to create on this side. (leave this field blank to have no text) | text | “Bottom text” |
3D printing settings
| Parameter | Description | default |
|---|---|---|
| print_mode | Switches between modes of generation.
| Monochromatic |
| curves_quality | Selects the quality of curves to be used when generating the model, the lowest the quality, the faster generation will take. You can work in Draft all the time for fast refresh, but you need to remember to switch back to Normal or something higher before exporting the model to be printed.
Possible values:
Be warned: Parametric Model Maker has a short timeout for script execution to avoid DDoS attacks, for this reason setting a quality too high could create a timeout error | Normal |
What you can create
Monochromatic holders
The easiest one, nothing to say: create a holder the way you want it.


Make sure you selected Monochromatic for the parameter print_mode in the 3D printing settings tab as shown in the image above.
Remember to left click on
to generate a version with your current settings.
Click on the
button to download the object to a file.

When this windows pops up, left click on the
button to select the .STL file format.

If your computer offers the possibility to save the file to a desired location, select a folder where you want to save it and choose a proper name, e. g. “monochromatic”, which fill create “monochromatic.stl”.
If your browser is configured to automatically save files, you will find the file named “Swatches holder.stl” in the location you usually receive downloaded file, usually called the “Downloads” folder.

Open Bambu Studio or your preferred slicer, start a new project and drag the file onto it.

Multi color holders on mono printers or for non AMS compatible filaments (using pause at layer/height)
Please read the Monochromatic holders section for basic information about how to manage the whole process before continuing.
A limitation of the monochromatic printer can be partially bypassed, printing the texts with another color by using some clever tricks, here's how to do it.

First of all make sure you designed your holder with all the texts as extruded, chiseled texts will not be colored.
Export it as STL and import into Bambu Studio following the same instructions for monochromatic printing until you reach the step where you slice it.

Once you sliced the plate, use drag the + icon of the vertical scrollbar down.

As you scroll top layers will disappear from view, continue scrolling down until only one layer with texts is visible.

Now, right click on the + icon and a menu will pop out.

Select the Add Pause item, the you will have to slice the plate again.

Once you sliced it again, the scrollbar will show a “Pause” label where you set it and the layer will be drawn with another color.
Now print this, when the printer is starting to print that layer, it will pause and the print head will be moved away from the piece and on the screen you will see a message.

Change the filament in the printer, then press Resume to continue printing using the new color.

In my opinion, results are beautiful.
Multi color holders on multi color printers
Please read the Monochromatic holders section for basic information about how to manage the whole process before continuing.
The most easy way to print these, yet the most satisfying way to customize this.

Once you draw your holder, be sure to select the Holder only option for the print_mode parameter in the 3D printing settings tab and click on Generate.

Click the Download button to export to a STL file, let's say holder.stl.

Change the print_mode parameter to Texts only and click Generate button again.

Click Download again and export this to a STL file and call it texts.stl.

Open a new project in Bambu Studio and drag both file at the same time on it.

When asked if these has to be considered two parts of a single object, select Yes.

Now follow these steps:
- Switch to the Objects tab by left clicking on the Global/Objects switch;
- Right click on the texts.stl line in the objects list;
- Move with the mouse over the Change filament menu item;
- From the sub menu select the filament you want.
This procedure has been designed to work with both chiseled and extruded modes.
Boost Me (for free)
Want to show your appreciation for my work? Consider sending me a boost. This encourages me to keep creating beautiful, useful models and scripts, and to share them with full documentation as I always have.
Show me your appreciation: buy me a coffee.

https://buymeacoffee.com/zizzo81
All my models are proudly created in Italy with ♥.

Documentation (1)
License
You shall not share, sub-license, sell, rent, host, transfer, or distribute in any way the digital or 3D printed versions of this object, nor any other derivative work of this object in its digital or physical format (including - but not limited to - remixes of this object, and hosting on other digital platforms). The objects may not be used without permission in any way whatsoever in which you charge money, or collect fees.










Comment & Rating (38)