In the summer of 2019 we went on a trip with a bunch of friends where we played a lot of games. One of my favorite games was Quoridor.
The problem with this game is that it can only be played by 2 or 4 players.
I was wondering how much the game would change if the rectangles were replaced by hexagons. This would allow for 2, 3, 4, 5 and 6 players. And the bended walls would make for an interesting new player experience.
I fiddled with OpenSCAD and FreeCAD in the past. And I’m the guy who wants to make everything parametric (it’s stronger than myself).
Freecad!
Link: https://www.freecadweb.org/
First I started experimenting with FreeCAD but with my limited FreeCAD skills this quickly came to a stop as my computer was hanging and calculating a lot.
Fortunately FreeCAD has a very helpful and dedicated community at their forum.
I asked for help on their forum and I received a lot of suggestions on how to perform the task I was trying to accomplish.
As I was in a very enthusiastic mood I couldn’t wait for their feedback and I already moved on to another program.
OpenSCAD
Link: https://www.openscad.org/
I worked with OpenSCAD a very long time ago but I figured that if I only found the calculations to make the HEX-Pattern I would be finished in a short time with OpenSCAD.
I was able to create the desired pattern. But I did encounter a few problems with OpenSCAD when I wanted to continue with my design. The big disadvantage for me was the weird way of “Coding” in OpenSCAD the way it handled “Variables”. Another drag was it didn’t work with NURBS but it works with segmented surfaces.
You can generate smaller facets and add more segments but this incredibly increases the rendering time.
My design maybe wasn’t the most optimal written for generation in OpenSCAD.
But I was stuck again as I mentioned earlier by the way it handled “variables” and I wasn’t able to find a solution to my problem.
But in the end OpenSCAD was able to give me my first 3D printable file to test this game. We managed to test my game for the first time. We were able to play it with 6 players but we did need tweezers to move the walls and pawns.
Bigger better
So the obvious next step was to make the board bigger and add some slots to place the unused walls into:
this one was the biggest I could print with my 3D printer
More bigger more better
Next step was obviously going even bigger. The file was still generated by OpenSCAD but I needed to get a Vector export of the outline at several heights to be able to laser cut my design.
This was possible with the OpenSCAD projection functionality. Or another way of doing this, is by importing the design in FreeCAD and taking a cross section.gThis was possible with the OpenSCAD projection functionality. Or another way of doing this, is by importing the design in FreeCAD and taking a cross section.
This DXF was imported in Inkscape to do some finishing touches (mainly adding text).
Laser cutting
Gluing all the hexagons
Result
Summary
I was able to design a very nice playable version of the game I had in mind. But I wanted to improve on the design I had. Around the playing field of hexagons was a straight line, but I wanted the board edge to be parallel to the hexagons. My code in OpenSCAD was becoming so unreadable by the way OpenSCAD works and also the way I made my program there is always a person who can make this very elegantly with a simple formula and clean line of code. But for OpenSCAD I’m not that person. So I moved on to the next program in this list.
OpenJSCAD
Link: https://openjscad.org/
Designing in OpenJSCAD was a breeze compared to OpenSCAD this behaved completely as a normal programming language. One problem not all functionality of OpenSCAD has been implemented yet. Features I was relying on I’m not sure anymore what functions they were.
Then I stumbled on a very promising design by code package.
CadQuery
Link: https://github.com/CadQuery/cadquery
It is very powerful, it works with NURBS. But: it was the hardest one to get started with. But it was able to do everything I wished for. There is a lot of documentation some of which is hard to understand but just as with FreeCAD there is an amazing community behind this project as well.
If I remember correctly there was also something weird going on with the projection function of CadQuery to slice this in SVG/DXF. So I did the slicing again in FreeCAD and did the finishing touches in Inkscape.
Results
I made two versions of this board:
Laser cut as a present:
CNC milled as a present to myself:
I wasn’t able to get the Path Workbench in FreeCAD working with my file. But with the help of some InkScape magic I was able to use JScut for the CAM part of this project.
Giving back
My goal with this game is that as much as possible people are able to play this game.
Leave a Reply