by mikemol, published
OpenSCAD module library for a gaming tile system on a square grid. I mostly play Pathfinder and D&D, so I need a 1" grid. Since everyone on Thingiverse seems to be metric, and 1" works out to 25.4mm, the pattern set is intended to produce 26mm grid spaces. Walls themselves are 4mm thick, and set between grid spaces, not within the grid square. This is really the only way to have real physical walls for something like D&D, unless you want walls to consume entire squares.
Pattern set consists of "walls" and "posts". Posts are designed to sit at the ends of walls and hold them together, giving them some rigidity. I couldn't see how to have walls connect directly with each other and still keep the number of unique parts very low.
The wall module has recesses intended to receive the post module, and a protrusion on the bottom intended to be receives by a plate module. The pocket on the top is not intended to receive another wall module, but instead a thin protrusion extending from the bottom of the plates; in this way, you can construct a building or dungeon with multiple levels.
The plate module holds sockets for the wall module's bottom protrusions. They also hold smaller protrusions underneath, allowing them to be set on top of erect walls, as well as easily and loosely stacked upon one another, for storage. Plates do not (and should not) strongly plug into anything they're set upon; this should allow them to be easily lifted off of whatever they're set on without accidentally pulling on or dismantling anything underneath.
The plates also have round indentations on them. These are intended to allow the placement of furniture-style items.
There are only a few remaining things to do before I consider this Thing complete:
- Code cleanup. Walls, posts, plates, examples, etc. should each be in a separate file.
- Plates should have a side-ways interlocking mechanism to allow you to build larger plates out of already-printed smaller plates.
- Walls need to support facades. This will be done with hook-shaped recesses, allowing facade tiles to be easily set and removed.
- There may need to be a "buttress" wall module, for post stability on corners. I'll design it. If it proves to be unnecessary, well, great.
- Plates may get round bumps added to their undersides. These will settle into the round recesses on top, to make plate stack alignment easy.
- After the above are done, play testing is in order, to verify that the interfaces all work together the way I intended, and to find any design weaknesses that need to be corrected.
After those are done, I think this Thing will be reasonably complete; it will largely be a set of libraries defining basic components. Things like large plates, long walls, windows and roof components can all be designed and uploaded as separate Things; the interfaces will have been designed, and anything that follows them should work fine.
Future Things will include:
- Facades that support attaching miniatures to walls, so that climbing miniatures can be placed visually where they're thought to be.
- Rooftop modules.
- Long walls
- Large plates
- Tall walls.
(At least some of these will be constructed as parametric libraries. I.e. "make me a wall this many tiles long and this many floors high...")
Liked Byview all
Give a Shout Out
I haven't tried printing this yet. I don't have a printer, though there's a couple at the local makerspace. I don't care to waste plastic, so I want to get the design as close to end goals as possible first.
When you open the file, you'll see two variables near the top, named BASEA and BASEB. These control the scale of the rest of the library. You should be able to scale the library up for, e.g. 28mm/Heroic scale. Or scale it down to something like 16mm (I'm guessing here) for Lego(tm) creatures. BASEA controls the size of the squares themselves. BASEB controls the thickness of the walls and the size of all of the component interfaces.
One more thing: I put the whole thing up on Github, so I could have it under proper version control. (Why doesn't Thingiverse do something like that?) https://github.com/mikemol/gridwall