A python library to make Gridfinity compatible objects with CadQuery.
Project description
Microfinity
Gridfinity-compatible storage system with optional sub-grid sizing for more granular bin dimensions.
Microfinity extends the Gridfinity modular storage system with support for fractional grid units (0.25U and 0.5U increments), allowing you to create bins that better fit your specific items while remaining fully compatible with standard Gridfinity baseplates and bins.
Key Features
- 100% Gridfinity Compatible - All bins work on standard Gridfinity baseplates
- Fractional Sizing - Create bins in 0.25U (10.5mm) or 0.5U (21mm) increments
- Automatic Drawer Layouts - Generate optimally-segmented baseplates for any drawer size
- Multi-Piece Baseplates - Connection clips join pieces that exceed your build plate
- Parametric Design - Full control over holes, scoops, labels, dividers, and more
- Multiple Export Formats - STEP, STL, and SVG output
Installation
pip install microfinity
Or install from source:
git clone https://github.com/nullstack65/microfinity.git
cd microfinity
pip install -e .
Dependencies
Quick Start
Create a Standard Box
from microfinity import GridfinityBox
# 2x3x4 box with magnets, scoops, and labels
box = GridfinityBox(2, 3, 4, holes=True, scoops=True, labels=True)
box.save_stl_file() # Saves: gf_box_2x3x4_holes_scoops_labels.stl
Create a Fractional Box
from microfinity import GridfinityBox
# 1.25U x 0.5U x 3U box - fits in tighter spaces
box = GridfinityBox(1.25, 0.5, 3, micro_divisions=4)
box.save_stl_file() # Saves: gf_box_1.25x0.50x3_micro4.stl
Create a Baseplate
from microfinity import GridfinityBaseplate
# 4x3 baseplate with corner mounting screws
baseplate = GridfinityBaseplate(4, 3, corner_screws=True)
baseplate.save_stl_file()
Generate a Drawer Layout
from microfinity import GridfinityBaseplateLayout
# Automatically segment a drawer into printable pieces
layout = GridfinityBaseplateLayout(
drawer_x_mm=450,
drawer_y_mm=380,
build_plate_x_mm=220,
build_plate_y_mm=220,
)
layout.print_summary() # Shows piece breakdown
layout.export_all("./drawer_plates", file_format="stl")
CLI Commands
Generate models directly from the command line:
# Standard 2x3x5 box with magnet holes
microfinity-box 2 3 5 -m -f stl
# Fractional 1.25x2x3 box (quarter-grid)
microfinity-box 1.25 2 3 -f stl
# 6x4 baseplate with corner screws
microfinity-base 6 4 -s -f stl
# Generate drawer layout
microfinity-baseplate-layout -d 450 380 -b 220 220 -o ./drawer -f stl
# Generate calibration test prints
microfinity-calibrate -o ./calibration -f stl
The Microgrid System
Standard Gridfinity uses a 42mm grid (1U). Microfinity adds support for smaller increments:
| micro_divisions | Pitch | Increment | Use Case |
|---|---|---|---|
| 1 | 42.0mm | 1U | Standard Gridfinity |
| 2 | 21.0mm | 0.5U | Half-grid sizing |
| 4 | 10.5mm | 0.25U | Quarter-grid sizing |
Fractional bins use smaller "micro-feet" that still index properly on standard baseplates:
Standard 1U bin: Fractional 0.5U bin:
┌────────────────┐ ┌───────┐
│ │ │ │
│ Single 42mm │ │ 21mm │
│ foot │ │ foot │
│ │ │ │
└────────────────┘ └───────┘
See The Microgrid System for details.
Documentation
- Getting Started - Installation and first steps
- The Microgrid System - How fractional sizing works
- Components:
- Boxes - GridfinityBox parameters and features
- Baseplates - GridfinityBaseplate options
- Layouts - Automatic drawer tiling system
- Spacers - Drawer spacer generation
- CLI Reference - Command line tools
- Calibration - Test prints for tuning fit
- Export Options - File formats and batch export
- Python API - Programmatic usage
Examples
See the examples/ directory for complete scripts:
basic_box.py- Simple box with common featuresfractional_bins.py- Various fractional sizesdrawer_layout.py- Complete drawer layout workflowcustom_baseplate.py- Baseplate with specific optionsbatch_export.py- Generate families of parts
Credits
Microfinity is a fork of cq-gridfinity by Michael Gale. The Gridfinity system was created by Zack Freedman.
License
MIT License - See LICENSE for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file microfinity-1.2.0.tar.gz.
File metadata
- Download URL: microfinity-1.2.0.tar.gz
- Upload date:
- Size: 103.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8b108de584380817cf7ae929ebbf6d61239e24b37e959dd133c9718303dccdb8
|
|
| MD5 |
c67c2033c0bdee8b14d485d69017c316
|
|
| BLAKE2b-256 |
c36cb89ee67ac0f5bf690158625499cd0451767fc6d0147f0d39a8ab8fd78b8b
|
Provenance
The following attestation bundles were made for microfinity-1.2.0.tar.gz:
Publisher:
release-please.yml on nullStack65/microfinity
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
microfinity-1.2.0.tar.gz -
Subject digest:
8b108de584380817cf7ae929ebbf6d61239e24b37e959dd133c9718303dccdb8 - Sigstore transparency entry: 798313114
- Sigstore integration time:
-
Permalink:
nullStack65/microfinity@c15bbf82735d293d35680864edbf331650da39e9 -
Branch / Tag:
refs/heads/releases - Owner: https://github.com/nullStack65
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-please.yml@c15bbf82735d293d35680864edbf331650da39e9 -
Trigger Event:
push
-
Statement type:
File details
Details for the file microfinity-1.2.0-py3-none-any.whl.
File metadata
- Download URL: microfinity-1.2.0-py3-none-any.whl
- Upload date:
- Size: 101.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
04f18523ef099a35301bd6a82e03a7ec27ced2c781d235f3618f007af66530a1
|
|
| MD5 |
f2fe46c0f61eb52cec1c41d37b27196b
|
|
| BLAKE2b-256 |
8abe3c507dd24e582e399e4664b4dfd14513189d387e50a5522a4eee1dd6dd98
|
Provenance
The following attestation bundles were made for microfinity-1.2.0-py3-none-any.whl:
Publisher:
release-please.yml on nullStack65/microfinity
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
microfinity-1.2.0-py3-none-any.whl -
Subject digest:
04f18523ef099a35301bd6a82e03a7ec27ced2c781d235f3618f007af66530a1 - Sigstore transparency entry: 798313118
- Sigstore integration time:
-
Permalink:
nullStack65/microfinity@c15bbf82735d293d35680864edbf331650da39e9 -
Branch / Tag:
refs/heads/releases - Owner: https://github.com/nullStack65
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-please.yml@c15bbf82735d293d35680864edbf331650da39e9 -
Trigger Event:
push
-
Statement type: