I made my Benchy Hat for Open Sauce 2023. The most common comment after "Nice hat!" was "Where can I get one?"

IMG_0783

This is not a Benchy...

In a simpler would I would just post an STL file to a site like Printables, Thinkgiverse, and/or makewithtech. But we have two problems:

  1. Human head sizes and shapes vary considerably. With this design, and being made out of stiff PLA plastic, a proper fit is key to comfort (and it not falling off your head).
  2. The terms of the Creative Commons license that the Benchy is published under does not permit me (or anyone) from redistributing a modification of the Benchy. I can point you to the benchy. I can even offer a copy on my own website. But I can't offer an altered benchy.

To get around these two limitations I am not distributing the final product at all. I will be teaching you how to make this style of custom hat for you or anyone you wish to make a hat for. You'll just need:

Positive features of this design

I can't say that I made a complete survey of every possible way to make a hat with a 3d printer. I was trying for a simple gag that would:

Downsides of this design

The Design

In my minimal research I discovered that making a hat light is the key to keeping it comfortable. I used to work all day in a hard hat, but they aren't very comfortable. A hard hat typically weight around 15 oz. (426 g.). So that was my upper measure. One source the stated a weight of between 80 g. (3 oz.) to 115 g. (5 oz.) as being "easy to manage" for a hat. Another source stated the weight of a typical ball cap as between 3 oz. (86 g.) to 4 oz. (114 g.). Plus or minus an ounce. So helpful.

The final weight of my hat was around 280 g. (10 oz.). Which was relatively comfortable. But to pull that off I had to stick to 2 0.4mm perimeter walls, very sparse infill, and the bare minimum of ceiling and floor layers (about 4). Anything less would look bad/fall apart. Anything more adds weight.

The Fit

I did some minimal research into hat making. I found some handy charts with ranges of sizes, and distributions of humans who fall into those ranges:

I also tracked down the template for a simple hat that I knew fit me:

But while distributions are nice... they don't help me fit my particular head. And the simple hat was only simple because it was made of fabric that could conform to the shape of my head. In fact, as it turns out, most hats are deliberately made small so that your head stretches the fabric. This helps a hat actually stay on.

So the process of fitting my head ended up being a game of educated trial and error. Over 5 versions I developed a skull cap that fit my head. I also wore the more comfortable ones for several hours to make sure they stayed comfortable.

I worked with simple geometric shapes which together formed a solid hull. I would then hollow out the hull to form a shell. (See the HeadPan module inside the file). For my test fits, I added holes to allow me to feel how off the fit actually was:

What you came for...

Project directory with all the files

But for now we will focus on editing Benchyhat-v1.0.scad

The user serviceable parts of the file are at the top:

// Benchie Hat

// Fitting Parameters
crown=90;
headLength=210;
frontDiameter=145;
centerDiameter=160;

// At what point do we transtion from a cone to the spherical
// roof. Between 0.0 and 1.0
topflat=0.7;

// Drawing controls
drawBenchy=true;
helmetHoles=false;

//Object Placement and scale
benchyFile="3DBenchy.stl";
benchyScale=[4,4,4];
benchyLocation=[5,0,crown*0.5-0.28*4];

// Beyond here lies madness...

Explanation of the variables:

crown mm height from the tip of the head to the brim/bottom of the hat
headLength mm distance from the front of the head opening to the back
frontDiameter mm Diameter of the hat at the front (and back)
centerDiameter mm Diameter of the hat in the center
topflat 0-1 The inflection point where the hat transitions from a cone to a spherical top. Expressed as a fraction from 0.0 (bottom) to 1.0 (all the way at the top)
drawBenchy true or false Place the "benchy" (or other object file) in the scene
helmetHoles true or false Perforate the headpan to allow for internal measurements when worn
benchyFile Filename The name of the STL file (located in the same folder as this script). In case you want to try making a hat out of something else.
benchyScale vector The scale factor (in X,Y,Z) for the STL file
benchyLocation vector An offset in x,y,z to place the STL file in the scene

Sizing a hat

Unfortunately, the CAD file as written doesn't really lend itself well to translating hat sizes. The default numbers in the cad file fit the same head as fits in a 55cm circumference bucket hat. Play with the numbers. Do some test printouts. Dial in the exact size for you and yours.

Assuming heads are all the same shape, here is a rough chart of how the parameters for the design would scale up or down for different sized heads:

gender percentile headLength crown centerDiameter frontDiameter
male 1 % 183 81 131 119
male 5 % 188 82 135 123
male 50 % 200 85 145 132
male 95 % 211 89 155 141
male 99 % 217 92 159 145
female 1 % 175 76 125 114
female 5 % 180 78 128 116
female 50 % 191 82 133 121
female 95 % 202 87 143 130
female 99 % 207 89 150 136

A 1st percentile (1%) person is very small. A 99the percentile (99%) person is very large. An 50th percentile person (50%) is average. But, of course, all heads are a little different. So you'll probably be printing out a few test prints. I recommend using the settings drawBenchy=false and helmetHoles=true when doing test prints. The hole option lets to poke a finger or a measurement instrument through to see if there if there is extra space.