https://github.com/tomasf/gridfinity-cadova
Cadova library for Gridfinity
https://github.com/tomasf/gridfinity-cadova
cadova gridfinity
Last synced: 4 months ago
JSON representation
Cadova library for Gridfinity
- Host: GitHub
- URL: https://github.com/tomasf/gridfinity-cadova
- Owner: tomasf
- License: mit
- Created: 2026-01-16T15:19:07.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2026-01-28T15:29:26.000Z (5 months ago)
- Last Synced: 2026-01-29T06:51:53.579Z (5 months ago)
- Topics: cadova, gridfinity
- Language: Swift
- Homepage:
- Size: 7.14 MB
- Stars: 0
- Watchers: 1
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Gridfinity-Cadova
A Swift library for generating [Gridfinity](https://www.youtube.com/watch?v=ra_9zU-mnl8) storage system components using [Cadova](https://github.com/tomasf/Cadova). Gridfinity is a modular storage system designed by Zack Freedman that uses a standardized 42mm × 42mm grid.
This project can be used in two ways:
### Generate standard Gridfinity parts
Run the included generator to create bins, baseplates, and baseplate sets with configurable dimensions, ready for 3D printing.
### Build custom Gridfinity-compatible designs
Import the library into your own Cadova projects and use the provided components as building blocks to create specialized storage solutions that integrate with the Gridfinity ecosystem.
## Features
### Bins
`Bin` creates hollow storage containers with configurable dimensions:
```swift
Bin(
size: Units3D(x: 2, y: 2, z: 3),
wallThickness: 1.0,
bottomThickness: 0.6,
innerBottomCornerRadius: 1.0,
withStackingLip: true
)
```
- Size specified in grid units (42mm × 42mm × 7mm)
- Configurable wall and bottom thickness
- Optional stacking lip for nesting bins without a baseplate
### Baseplates
`Baseplate` creates the base platform that bins snap into:
```swift
Baseplate(size: Units2D(x: 4, y: 4), options: [.tabs, .screws])
```
Options:
- `.foundation` – Adds a 7mm foundation layer
- `.tabs` – Interlocking tabs for connecting adjacent baseplates
- `.screws` – M3 screw holes and nut traps for secure fastening
- `.magnets` – 6.5mm magnet slots in each grid cell
### Baseplate Sets
`BaseplateSet` automatically partitions a large area into printable baseplate pieces:
```swift
BaseplateSet(
footprint: Vector2D(713, 495), // Target area (e.g., drawer interior)
printbedSize: Vector2D(340, 320), // Your printer's bed size
frontPadding: 10, // Optional non-grid space at front
options: [.tabs, .screws]
)
```
Generates:
- Main baseplate pieces that tile the grid-aligned area
- Narrow/shallow pieces for partial grid coverage
- Corner pieces where needed
- Side spacers to fill non-grid gaps on left/right edges
- Front/back spacers for non-grid depth, automatically split to fit the print bed
### Blocks
`Block` creates solid Gridfinity base units (used internally by `Bin`):
```swift
Block(size: Units2D(x: 3, y: 2), height: 42)
```