PaulBone / gfthings

Paul's Gridfinity Things
6 stars 0 forks source link

Paul's Gridfinity Things

This Python program will generate several different kinds of gridfinity compatible objects for 3D printing. Gridfinity is an open source storage system best introduced in this video and then this diagram. Look on thangs and printables for more compatible parts.

Setup, You can install with pipx.

sudo apt install pipx
pipx install gfthings

If you want to modify gfthings then build it with poetry.

sudo apt install pipx
pipx install poetry
poetry add ocp-vscode
poetry install

If you choose this option then you must prefix your commands with poetry run

Copyright (C) Paul Bone Distributed under: CC BY-NC-SA 4.0 https://creativecommons.org/licenses/by-nc-sa/4.0/

Bins

Bins are gridfinity bins. They are inspired by Pred's bins and include the same label shelf. They are easy to print (overhangs and bridges are minimised) and can be generated in a mumber of custom sizes with and without dividers. For more information see:

gfbin -h

The bins have a label shelf, of course you could use a label maker and stick on a lable. Or 3D print a label with Nick's excellent gflabel program and choose pred style labels.

Maybe you can just tell what's in your bins and don't need a label. That's what the --no-label option is for!

Ooh, that bin has a dividor. To add dividors use the -d option. Giving a 2 will make 2 compartments (1 partition). The above bin was made with:

gfbin --no-label -d 2 -s 10

The -s is for scoop radius. A little scoop in the front of the bin will help you get small parts out. This one has a 10mm radius, the default is 12.5mm. Use -s 0 for no scoop at the front at all, eg if you want to store larger items.

You can make bins of any size, units are specified in "gridfinity units", that's 42mm across and back-to-front. Up and down is 7mm per unit plus the base.

The two bins on top of this stack are generated with

gfbin -x 2 -y 2 -z 3 -d 6 -s 0
gfbin -x 1 -y 2 -z 4 -s 0

Checkout reminders for these options and more with

gfbin -h

Funky bins

I had a tool that has an L shape, storing it in a rectangle bin would be a waste. So I created funky bins. They're specified by providing a 2D list of bools that specify is that square is part of the bin or not.

gfbin --funky \
    "[[True, False], [[True, False], [True, False],[True, True]]" \
    -z 14

The minor lists must all have the same length, and generating bins in this way has a finer stacking lip than when the regular -x and -y arguments are used (currently a build123d limitation).

L-shaped bins are possibly the most useful, but there are many possibilities. Some "special" arguments for --funky refer to presets that may be fun, try:

gfbin --funky donut -z 4 -o donut.step

Maybe this would be a suitable box for coiled USB cables, then place a 1x1 bin in the centre for USB A-to-C adaptors.

The available presets are:

Now packing your storage away can really be like tetris. Just don't completely fill a row!

Bases

A minimal gridfinity base. This is a remix of https://www.printables.com/model/608500-gridfinity-base-light-magnetic-connectable-paramet with paramertised dimensions. Try:

gfbase -h
gfbase -x 4 -y 3 -o base.step

To connect bases made with gfbase use the clips found [https://www.printables.com/model/608500-gridfinity-base-light-magnetic-connectable-paramet/files](on the original model). Mulitple bases can be connected to fill the bottom of a drawer. For example this drawer has two 4x3 and two 4x4 bases connected. It also has some edge pieces (comming soon) that prevent the base from sliding around.

You can customise the screw holes, By default counterbored holes that can take a magnet, screw or pin (below) are generated. you can change the screw diameter, magnet diameter and magnet depth.

gfbase --magnet-diameter 6.1 \
       --screw-diameter 4 \
       --magnet-depth 2

By default there are two screw/magnet holes per square. But to save plastic or printing time generate a minimal baseplate with

--screw-hole-count 0

Other valid options are 2 and 4.

Finally there's a "screw hole pattern for drawers" option:

--screw-hole-pattern-drawer

This places exactly 4 screw holes in the corners but not-too-near the corners (clearance for my drill). Which is suitable if you need to mount the base but don't need to provide magnets or iron screws for magnets in the boxes.

Base Edges

I don't know about you but my drawers arn't multiples of 42mm and I don't want the bases sliding around in the drawers. So I've added another program that creates "edge spaces" to fill up room and stop be base from slopping around.

gfedge -x 4 -y 14 -o edge.step

Like before the -x parameter is in gridfinity units. But the -y parameter is not! It's in milimetres.

Pins

Pins, or pegs, are a small object that can be used to attach a Gridfinity base to a sheet of plywood such as found in the bottom of many desk drawers. Run:

gfpin

To generate pin.step. Print it at a higher temperature if you can for strong layer adheasion. Pressing it through the gridfinity base and a 3mm driled hole can take some force. I don't know how easy it is to remove - the question hasn't come up!

Links