InterLocking Orthogonal eXtrusions
An OpenSCAD Library for Designing Tessellated Interlocking Surface Geometry for 3D Printing
Download and place the following libraries in your OpenSCAD libraries folder:
- CameronBrooks11/tessella
- Currently, this is the only explicitly required dependency!
- Ensure it is placed in your OpenSCAD libraries folder.
- thehans/FunctionalOpenSCAD
- Not currently needed!
- Will be incorportated in the future to increase workflow flexibility.
- CameronBrooks11/OpenSCAD-Batch-Export
- If batch exporting is required for testing or iteration.
- Provides a cross-platform, user-friendly GUI for mass-exporting parametric OpenSCAD scripts to .stl files from .csv or .json.
The examples/simpleUsage/
folder contains simpleUsageRadial.scad
and simpleUsageRectangular.scad
which demonstrate how to use high level modules of the library.
This can be found under tests/direct-workflow
and is a sequential set of scripts that utilize the full source of this library to demonstrate the full functionality of the library for both the rotational-radial and rectilinear-rectangular cases.
The tests/tensileSpecimens
directory includes scripts that apply serve as a direct continuation of tests/direct-workflow
to apply the final iLOX geometry to a tensile testing specimen to enable mechanical testing.
D:.
│ iLOX.scad
├───src
│ │ cell2linear.scad
│ │ cell2rot.scad
│ │ ucell.scad
│ │
│ └───utils
│ point_utils.scad
│ regpoly_utils.scad
│ sorted.scad
│ viz_utils.scad
The iLOX.scad
file serves as the main entry point for the project, including essential external libraries like FunctionalOpenSCAD
and tessella
to handle functional of point data and tessellation tasks. It also includes the internal src/
SCAD files such as cell2rot.scad
, cell2linear.scad
, and ucell.scad
to define the key functions for unit cell creation and rendering. It also includes modular, high-level implementations of both the rotational extrusion + radial tesselation and rectilinear extrusion + rectangular tesselation cases.
This module provides essential functions and modules for defining and rendering unit cells. It includes tools for calculating the points of cells A and B based on given dimensions, handling transformations, applying tolerances, and managing optional negative polygons. Rendering capabilities are provided for visualizing the cells and their optional cutouts.
This module builds on ucell.scad
to render unit cells in a rotational context. Using rotational extrusion, it enables placement of cells A and B at specified positions with options for rotation, customization of colors, and inclusion of negative polygons for subtractive features.
This module extends ucell.scad
by enabling linear extrusion of unit cells. It supports placing cells A and B at designated positions with optional extensions, custom colors, and negative polygon adjustments for creating detailed features.
This file provides utility functions for point operations such as sorting, calculating distances, and filtering points. It includes tools for generating midpoints, triangulating grids, and determining point proximity.
A helper file for implementing sorting utilities used by point_utils.scad
for ordering points based on a specified key function. Used from dotSCAD.
This file contains functions for working with regular polygons, such as calculating the central angle, apothem, and radius. These utilities assist in positioning and rotating regular polygons.
This file has visualization utilities for rendering points and geometric elements, such as placing spheres at specified coordinates to help with the visual representation of data.
For details on the conceptual background and explanations related logic of the program, refer to the documentation in the docs
.
This project is licensed under the GNU General Public License v3.0.
- Utilizes the
sorted.scad
module from the dotSCAD library. - Based on geometric principles and algorithms for tessellation and unit cell generation, inspired by recent advances in geometric computing and mechanical metamaterials.
- Development is heavily nature-inspired by the various natural structures that allow for interconnection.