The Ultimate box maker

by Heartman, published

The Ultimate box maker by Heartman Jan 13, 2016

Featured Thing!

Thing Info

92147Views 5707Downloads Found in Electronics
Report Thing



The file include now the Panel Maker.
Check below in the Experimental area to download it.

My first try with OpenScad,
the box is fully customizable.
I hope you will enjoy with it, and will show us many boxes made with.

If you play with the Fillet value you will go from the sharp to the round sides box
If you want a chanfered box, set Resolution to 1.

To export each single piece, just set the other elements to No value.
The Top and Bottom Shells are the same,
so it's not necessary to export them two times, except if you use the PCB feet option.

Check the animation below to see how to design your own box.

You can change the text shape with any font listed here .

Have fun ;)

  • Feb 12 2016
    Minor bug fixed on unaligned hole when using more than 2mm thickness.
  • March 01 2016
    Added the decoration/holes options. (Thanks Ettie for your contribution)
  • March 09 2016
    Added PCB feet support, fixed the shell artefact on export mode.

Please, read as well.
The PCB feet dimensions are all starting from the foot axis center.
it's not the circuit board size, holes center only(!)


Check below, some animated pictures showing how to use the Ultimate Box maker online.

Print Settings

Printer Brand: RepRap

Printer: Home made

Rafts: Doesn't Matter

Supports: Doesn't Matter

Resolution: 0.2mm

Infill: 30%


I printed some boxes horizontally or vertically, both without support.

Show me how it works...

General demonstration

Here is a small demonstration how to use the Customizer to have separate pieces box.
The top and bottom shells are the same, so it's not necessary to make 2 differents stl files.
If the front Panel is without text, then the back and front panels are the same, so again,
just export one.


right click on the animated pic, and choose "view image" to watch it in full size

PCB feet


right click on the pic, and choose "view image" to watch it in full size

Enjoy guys, and show us your printed boxes... ;)

Experimental Area

With Panel Maker

This release include a panel maker.
fully working, just for the moment, I didn't find the good way to present it within the online customizer.
Not easy to make something easy to use...

Anyway, it stay easy to use, through Openscad. with few option, you will be able to create the panel that you need without limitation, or almost...



To build your own panel, you have 4 tools:

   Cutting shapes

  • Square
  • Circle

   Text label

  • Linear text
  • Circular text

SquareHole (1,20,20,15,10,1); //(On/Off, Xpos,Ypos,Length,Width,Fillet)
CylinderHole(1,27,40,8); //(On/Off, Xpos, Ypos, Diameter)

LText(1,20,83,"Arial Black",4,"Digital Screen"); //(On/Off, Xpos, Ypos, "Font", Size, "Text")
CText(1,93,29,"Arial",4,10,180,0,"ABCD"); //(On/Off, Xpos, Ypos, "Font", Size, Diameter, Arc(Deg), Starting Angle(Deg),"Text")

right click on the animated pic, and choose "view image" to watch it in full size


You can download the animation and read it with the excellent Gifviewer open source freeware, to pause the animation when needed.

Here you can download The Ultimate BOX & PANEL maker.
I hope you will enjoy with.

More from Electronics

view more

Thing Info

92147Views 5707Downloads Found in Electronics
Report Thing

Liked By

View All

Design Tools


Give a Shout Out

If you print this Thing and display it in public proudly give attribution by printing and displaying this tag. Print Thing Tag

All Apps

Customizer is the easiest way to take great 3D printable designs and make them your own. Make your OpenSCAD designs infinitely more valuable by empowering the community to customize them.

App Info Launch App
Customizer Thing App

Hi Heartman , what type of screws do you recommend? , BTW is it me or there a problem with the customizer?? I had to install openscad to use box maker as the app keep getting me errors.

May 2, 2016 - Modified May 2, 2016
Heartman - in reply to mindstorm88


I use this kind of screw : http://www.ebay.fr/itm/400716099903?_trksid=p2060353.m1438.l2649&ssPageName=STRK%3AMEBIDX%3AIT
it's better to clean the hole, by re-drilling it.

I didn't see anything wrong with the customizer, can you tell me more about, or show a capture?
At least, if you don't mind with Openscad, it's better to use it.


May 2, 2016 - Modified May 2, 2016
mindstorm88 - in reply to Heartman

I simply get a message "error on page" , tried with explorer and chrome on 2 different computer.

Another problem too is that i cannot slice with Slic3r (my prefered) , it causes it to hang, but it is ok with Cura.
(for that problem , i used microsoft repair , and now it is ok)


I'm not using slic3r since a long time, I use Simplify3D.
I tried with Slic3r and as you I had some trouble with, but I didn't push the configuration too much, so maybe there is a way to fix that.

May 3, 2016 - Modified May 3, 2016
mindstorm88 - in reply to mindstorm88

BTW sorry about that. My first comment should have been THANKS for such a great tool !!! ;)

Panel maker is very helpfull too!!

It's ok, and thanks a lot, I always appreciate any feedback.
About the Panel maker, to be honest, yeah, I like it too.
But it's too bad for the Customizer users I didn't find a nice way to use it online.

I really wish to see some creation made with.

Have fun ;)

Beautiful addition to the Thingiverse!!!

Best box maker by far!!

I did note one bug: the feet are always exported along with every other part. I then have to edit the file to remove the feet that are floating in the air. That's still OK, but it seems a bit unnecessary :)

Thanks again!

Wow! thanks :)

About the feet,
you can show/hide them as you want in the "Box options" tab,
yes/no switch.

Have fun CraigF,


Would it be possible to modify to create boxes with slanted front panels?

For the moment no, but I'm already thinking on a new design, on another project,
which certainly will have a option like this.


Apr 18, 2016 - Modified Apr 18, 2016

Just wanted to follow-up. We may want to have a library of "panel openings". I had modified your original scad to punch openings for chinese rocker switches (with LEDs). They take a few lines of code to add several notches for clips and alignment. I am now seeing lots of folks adding other openings. One way might be to have a list of "includable" openings and you could check for a parameter and include if true. I don't know how the customizer works but it seems that using https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Include_Statement might be just the ticket. Maybe the thingiverse people can help with the capability so people could contribute to a "hole library". It would awesome to have holes mapped to specific parts! For example, rotary potentiometers have the little alignment hole that is tough to get right! I would be happy to help if additional hands would be useful.

Your project was the one who got me off the mark to learn openscad (I'm a software engineer by trade, so very easy). Thanks for the contribution.

Apr 22, 2016 - Modified Apr 22, 2016
Heartman - in reply to CoBillbr


I agree with you Bill, it could be very nice to add hole shapes by every contributors,
to make this tool easier for all users.
To be honest actually, I have no idea how to do that, but maybe the new Thingiverse project:
we will have a way for that.
If you feel able to developpe something for, feel free to use the Ultimate box maker as you want.
I can only be happy to see this project growing with the all avalable hands.
For the community, by the community...

To finish, thanks a lot for your kind words, really pleasant to read.

Have a nice day my friend.


Hi guys,

Sorry for the late answer.

@Djojo13, Sorry I don't understand the point?

@chrismolloy, I will try to make soon as possible.

@LuizAbbadia, thanks for your comment, that's exactely the purpose of this project,
Having a total control on our projects.

Have fun my friends


I wanted to propose to split the box to make it printable on little 3D printers. I wanted to print à 38x20x5 cm piece.
So I have to split in 4 pieces ... With time, I-ve success cutting my piece with this lib. Just have to center the Ultimate Box and go !

This, for sure, is an example of very much useful Thing done by somebody that wanted to help others. Thank you very much...this is a dream for those who always needed to adjust projects to boxes...now this is the very oposite...thanks

I'm back with another enhancement suggestion...

How about making it so the panel lettering and panel can be exported separately for two color printing?

Mar 21, 2016 - Modified Mar 21, 2016

What about splitting design ?
an exemple here https://www.thingiverse.com/thing:35834
Will be great !

PuzzleCut OpenSCAD Library

it is 1 piece for me ? how do you seperate it ?

got it! :)
great box!

I love the ubox designer, and especially the front panel designer! I have a few suggestions for enhancements:
1) Allow panel design for the rear panel as well.
2) Show the PCB as a cube, rather than a square, to show height for clearance checking.
3) make the PCB like panel holes, and allow multiples, such as a power supply and a function board, etc.
4) PCB could be a little smarter and allow a board size, and hole locations relative to the board. IE my board is 5X7 with holes at [0.2,0.2] .[ 4.8,0.2],[0.2,6.8],[] holes are relatiive to board size.

Again, great design. Very well done!

Hi my friends,

Many thanks for the comments and suggestions.
I'm glad you took your time to give me some feedbacks.

In fact in many suggestions presented, I thought about,
and I think it's resolved already in another way.
Don't forget the "philosophy" of this application,
to be generic, fully customizable, but... in the simpliest way possible.

About the back panel holes, or the top shell feet,
dont forget each element is the same as the opposite.
Back to Front, and Bottom to top.
You just have to add the option that you need
and say, this is the back, or the is the front panel
also, this is the top with feet, or the bottom with/without.

That's why I added the switches "On/Off" in the Panel Maker
for holes and texts.
you just have to switch ON the Front holes/texts when you need to export
the front panel, and OFF for the Back panel,
then reverse when you need to export the Back panel.

For the feet on the top shell, again the top and bottom shell are the same in fact,
there is no top or bottom, it's your choice...

About the smart board, as I said, I tried to think about the easiest way.
The way I have chosen,
you just have to take 2 dimensions values on your PCB
the distance between the holes for the width, and the same for the length.
Then you feed the Ubox maker (love that name ;) ) with 4 values
starting point X,Y and end values, Width, Heigth.
Your suggestion needs much more...

You're right about the feet, I can use the same method as the Panel maker
to allow multiple PCB feet, and I certainly will.

I hope you understand my choice in order to allow
everyone finding this tool pleasant and easy to use without limiting the design idea.

I'm waiting your creations guys!


Nice ideas !
+1 for Allow panel design for the rear panel as well. Nice to design holes for power supply

Is it possible to have mount feets from the top case ?

Anyway, thank you so much !

Fantastic Heartman! Thanks again for the updated code. Seems to work really well.


Thanks for your feedback.
it's really appreciated.


Many thanks Heartman. Great project that works beautifully. Be nice to have cutouts for LCD's in the front and maybe a mounting option for Arduino Uno.

If you want to give me the dimensions you need, I can model one based on my enclosure. It's quite easy in OnShape. I have an Uno too, so I can add mounting supports for that too.

Many thanks for the offer Nil. I've been working with Sketchup and succeed in creating the cutouts and mounting. Heartman has also added the cutout and standoff function to his code.


You're welcome my friend.

About the Panels options, I'm still thinking about,
I'm trying different solutions.
It's not easy to make some generic options to make holes
in different sizes and positions, all of that with an easy access on the customizer.

Anyway, thanks for your interest.


I really like the box customizer. Thanks for the work. I do need to report a small bug. If you make the depth 30mm then the tab prevents the top and bottom from coming together due to the width of the tab not taking the front/rear plate ridges into consideration. Making the box slightly deeper resolves the issue but prevents me from making the depth I need without manual notching. Suggestion for future refinements: 1) Checkbox for through vents (using code below)
2) Checkbox for no vents

This is definitely my most favorite customizer!


Sorry for the late answer,

I updated the code with the ventilation holes option proposed by Ettie.
About the dimension, obviously the actual design put some size limitations,
it's not really made for the too much small boxes.


After download of the latest version of Open SCAD, it works fine.

Good job Heartman!
Easy to use, very usefull...

Thanks for sharing


That's what I expected, easy and usefull,
thanks for your words.


Super. Très bien, merci!

Took me a moment when I opened it in Customizer to realize it had French parameters!


ravi que cela vous plaise.
I'm glad you like it.


Anyone else having issues with getting the Customizer working? I am using FireFox 44.0.2 Windows shows an empty space and on Linux comes up with an error saying about a Safari fix.


Maybe you installed an anti-something or block-anything,
Try to start Firefox in safe mode by starting it with the Shift key pressed.


Just tried safe mode same thing, comes up with a fix about Safari :(

Why not trying with Firefox under Linux?

about windows, check your system with an Anti-Torjan/virus/malware.
At least try another browser, opera, chromium..

Don't give up,


Excellent Work.Keep it up with Openscad

Hey M-Al Majed!

Thank you so much, I hope to see your printed version soon.

Have fun my friend.


Good work!! I haven't even printed anything yet and I'm excited by your work here!! ...where to start!!! thank you!


Thanks my friend for your pleasant comment.



Thanks ThePest, I'm glad you like it.


Feb 14, 2016 - Modified Feb 14, 2016

1st, very good work!! Thanks.
One quick way to get ventilation to the boxes are to make the decorations go through the shell.
Easy process and can be added to the parameters as well.
some code:
(Excuse the bad variable names and where it shows Thick 2 it should be Thick multiply by 2)

// Decorations to ventilation holes
vent = 1;
// ventilation width
vent_width = 2; // width of decorations or holes
dec_size = vent ? Thick 2 : 0.6; // Thick X 2 - deciding how much to move the decorations in the y axis
dec_Thick = vent ? Thick
2 : Thick; // Thick X 2 - making decorations thicker if it is a vent to make sure they go through shell

then in code where decorations are done:

           translate([(Length-10) - i,-dec_Thick+dec_size,0]){
            translate([(Length-10) - i,Width-dec_size,0]){

Maybe you can incorporate this in your design. (after changing the variable names to make more sense)


Thanks for your suggestion.
Really appreciated.
I'm planning this way, and some other improvements.

The difficult for me actually is to add all what I want and
trying in same time to simplify the access in the front page.

I don't want to finish with a million of parameters.

Anyway, again, many thanks my friend for your help, and your kind comment.


Any way to make this so we put in the inside dimensions of the usable area, and itll scale it for us to account for the walls and baffles?

Feb 13, 2016 - Modified Feb 13, 2016
Heartman - in reply to StorageJarett


Actually no.
some electronic circuits have connectors, wires, heatsink inside the box
and outside the PCB, so I didn't want to calculate from the inside.


Hi, do you generate a separate STL for each part ? or you generate 1 STL with all and print it ?


Check the animation in the main page, scroll down to find it,
you will see how to do to save each element to stl files.

Have fun,

Was a stupid question, i found in between :) Good Job !

Fantastic !!!!! Ive been Waiting for this, LET THE PROJECTS BEGIN !!!


I hope we will see your project soon!
I'm glad you like it.


All I can say is FaaaanTastic Job! Especially for your first Openscad ! Awesome. I haven't made a box yet, but will be using yours soon!
As you've thought about and mentioned already, the only "improvements" would be to add miscellaneous hole capabilities, like for screws, fans, access ports for USB, ethernet, power, etc. and possibly standoffs strategically positioned to mount 3d printer controller boards like the Azteeg X3, Rambo, Raspberry Pi. With this being your first Openscad Design I can't wait to see what you cook up next! Thank you for sharing your design!


Many thanks for your comment LgBell ;)

Yep, I'm still experimenting some stuff,
for the moment it's not easy to make something without having too much parameters.

Paradoxically, it is not easy to make something easy to use.

But, I'm on it.


Congratulations, good job.
Thanks for sharing.


thanks a lot Kilimon ;)

Have fun with it.


I really like this idea. do you think there is a way to put a model into cusimizer (such as a model whatever) and it to program a box that is the same shape as the model so it can fit snuggly?


If I understood as well your question, I don't think it's possible to do that.
At least to be sure with my answer, I don't know how, or if we can do that.

Thanks for your interest EOnBrony.


Feb 11, 2016 - Modified Feb 11, 2016

After uploading a newer version of Open SCAD, it works fine.
Thanks for the hint.

Nice, I'm glad to hear that.

Happy boxing... ;)

Parser error in line 108: syntax error
ERROR: Compilation failed!

difference(){// Fixation box legs

$fn=6; <<<<< is marked red.

I have 2014.3 and saw this as well. Guessing they extended the SCAD language in later versions? Is rotate limited to only having one action?

You can add $fn to commands as well as an argument, same result:

cylinder(d=16,Thick/2, $fn = 6);

See https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Other_Language_Features#.24fa.2C_.24fs_and_.24fn

The version of OpenSCAD installed by MacPorts is 2014.3.


It works for me,
just in case, I downloaded the online version to check again,
and it works.

Please try to upgrade your OpenScad version, I'm pretty sure
this is the reason of the error.

Keep me informed.


I got the same message

Awesome Job!
Small suggestion, for air ventilation some slots could be added, length, amount, position might be configurable too.

Thanks for your design


Yep, you're right, the box need some improvements.
As I said in the description, it was my first try on Openscad,
I just wanted to see how it works.

I'm still thinking about some derivations and learn in same time.

Thanks for your comment.


The measurements, is that the inside or outside?

Feb 11, 2016 - Modified Feb 11, 2016
Heartman - in reply to MidTenMaker

Measures are outside,


Hello , i like your design , is it possible to at fan holes on side or top ? 40x40mm
it would be verry nice to use than for the 3d printerboards , also maybe som adjustable holes (usb, card slot , cables )
i am a noob on designing things.


Thanks for your comment.

About the holes, the idea was already in my mind,
I'm still thinking about, not sure for the moment how and if I will do that.

Anyway thanks for your suggestions.


Most elegant items can come in small 'boxes'. Great JOB! Top of my WOW! list.

really nice comment,
thanks a lot.

Awesome work man! Hopefully one day I can design something this spectacular! Newbie question so please bear with me. What is the best way to convert this .scad into an .stl file? Or isn't possible? Thank you!


Thanks my friend, your comment is really appreciated.

Openscad is not so hard to learn, it's relatively easy to build what you want
when you know each pieces allowed to you, like a LEGO.

About exporting to STL file, in fact, it's mostly made for that,
check the note, I added an animated demonstration of using the customizer
to export your customized box, piece by piece.
I hope that will help you.

Have fun.


Thank you very much for taking the time to address my question. When reviewing Openscad it's "The Programmers Solid CAD Modeller". It might as well be in a foreign language. I have no clue how to navigate through that software. Lets put it this way. I suck in Tinkercad. I'm that bad. Not a mechanical mind. Science oriented brain cells. ;-) Also, I'm not quite sure where the "note" you wrote. Although, Thanks for doing that.

Jan 16, 2016 - Modified Jan 16, 2016
Heartman - in reply to CrickStar3D

You're welcome,

you can find a lot of tutorials about it on youtube, or elsewhere.

Anyway, the note part is under the main description page.
scroll down you will see the animated demonstration.



I found the video and it's Super cool! You made it look simple. Thanks for enlightening me. You rock man!

Thats really ultimate. Really great work !
Which renderer did you use ?
It looks very great ^^


Thanks for your kind comment.
I'm glad you like it.

About the renderer, it's Vray under 3DSMax.


Hi! pretty work.....


Thanks Ok1Xpa, your comment is really appreciated.


Hi! What is the M parameter for.
And is there any way to dump 4 separate stl files for 4 piece.

Jan 13, 2016 - Modified Jan 13, 2016
Heartman - in reply to rajibsarkar01


to have 4 individual pieces just set off ("NO") all other object,
just keep at "YES" the needed piece.

Ex: The bottom shell then the Back panel, then the front panel.
Otherwise if no front text, just one shell and one panel are needed.

"m" parameter is the size precision of the panels and rails,
to adjust the panels fiting well (usually around 0.5 is good)


Thanks for your comment CheetahKid, really appreciated.