SparkLab
Join Us
All Projects
PROJECT

Parametric Tube Rack

Date March 2025
Designer Ahmad Jalil
Lab Spark Lab
Contact sparklab@unbc.ca

Objectives & Constraints

  • Objective: Design a fully parametric, modular test tube rack that can be customized for different tube sizes, counts, and configurations without modifying the core design.
  • Constraints: Must use dovetail joints for tool-free assembly and disassembly. Hole layout, numbering, and plate count must all be adjustable through parameters.

Materials & Tools

  • Software: OpenSCAD with BOSL2 library
  • Materials: 3D printing filament
  • Equipment: 3D printer

Phases of Development

01
I. Parametric Design
  • The rack was designed in OpenSCAD using the BOSL2 library for dovetail joints and modular attachments.
  • All dimensions are parameterized u2014 rack size, hole diameter, hole count, spacing, plate count, and handle dimensions can all be adjusted through a customizer interface.
  • Hole numbering was implemented with configurable direction (left-to-right, right-to-left, front-to-back, back-to-front), scale, rotation, and depth.
02
II. Modular Assembly System
  • A dovetail joint system was designed for stacking multiple plates on vertical supports.
  • The assembly consists of a bottom rack with dimples, combined racks with through-holes and numbered indents, and vertical supports with handles.
  • The number of plates is fully adjustable, with dovetail count automatically calculated to match.
03
III. Prototyping and Production
  • Individual components (bottom rack, combined rack, vertical support) can be exported separately for printing.
  • The full assembly can be previewed in OpenSCAD before printing to verify fit and layout.

Skills Developed

Parametric CAD design with OpenSCAD BOSL2 library for dovetail joints and modular attachments Modular assembly design for 3D printing Configurable hole numbering and layout systems

Support & Resources

  • Spark Lab
  • UNBC

Client Feedback

This project was developed as an internal Spark Lab tool — no external client was involved.