Hey! This thing is still a Work in Progress. Files, instructions, and other stuff might change!

Mostly Printer CNC / Multitool Layout Size Calculator

by GeoDave, published

Mostly Printer CNC / Multitool Layout Size Calculator by GeoDave Jul 30, 2015


Liked By

View All

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

Thing Statistics

9337Views 1357Downloads Found in Parts


This is an openscad file to calculate the length of Pipe, Threaded Rod & Belt needed for various workspace layouts of the project: http://www.thingiverse.com/thing:724999
I based these calculations from the Detailed Assembly Instructions: http://public.vicious1.de/Assembly_Instructions_v0.2.pdf written by Bofferle http://www.vicious1.com/forums/users/bofferle/
, but did change one dimension related to the belt lengths.

I have also written a Visual Basic program to do these simple calculations. I included a couple of screen captures of what the program looks like. It uses .net 3.5 and is located on github:

This is for the standard US version, but you can easily convert the numbers to metric (multiply numbers by 25.4 to get mm).

I originally wrote the visual basic program & this was an after thought since thingiverse required some source file, thought I would add something useful.


  1. Change the variables X_LEN, Y_Len & Z_Ht to match the work area you desire
  2. run the program
  3. The console window will echo the calculations. You will also see a basic visual representation of what your layout will look like. This part is not for printing of course.

For example, the size I wanted my machine to be was 20x28, so X_Len = 20, Y_Len=28 & Z_Ht = 6.1

You will then see the following output:
ECHO: "Lengths are in Inches"
ECHO: "X Conduit Lengths = ", 31, " x 3 = ", 93
ECHO: "Y Conduit Lengths = ", 39, 39, " x 3 = ", 117
ECHO: "Z Conduit Lengths = ", 14, 14, " x 3 = ", 28
ECHO: "Z Threaded Rod Length = ", 14
ECHO: "X Conduit Lengths = ", 38, " x 3 = ", 76
ECHO: "Y Conduit Lengths = ", 46, " x 3 = ", 92

I also added 4 extra inches to each of my belts in case I decide to make it a little bigger, I will not need to buy more belt.

More from Parts

view more

All Apps

Upgrade this Thing with Thingiverse Apps

No results.

Output for belts say 3, but should be 2, correct?

ECHO: "X Belt Lengths = ", 42, " x 3 = ", 84
ECHO: "Y Belt Lengths = ", 42, " x 3 = ", 84

You are correct. I missed that one. I uploaded rev4 that corrects that problem. Thanks for spotting that.

GeoDave, I can't thank you enough for this I refer at least 3 people a day to this calculator.

Just wanted you to know I appreciate the work you have put in.


You are welcome. Glad I can give back a little to the community. I was thinking about animating it & adding the actual parts to, but that will have to wait until I finish my current project.

Have you ever thought about using an idea like this for X & Y movement? http://www.thingiverse.com/thing:1149428 instead of bearings? I have not done anything else with that idea other than to see if it would work, but thought someone else might want to build on it. I am currently designing & building a Delta printer using EMT for the Horizontal supports. I think it is going to work pretty good. Thanks for the idea of using EMT.

V-Wheel carriage between four 1/2" EMT or PVC Pipe
by GeoDave

Can you think of any way that I could use this directly on the website? I end up putting in the numbers and sending out screen shots. You seem to be super genius with this so if you can't think of anything off the top of your head no problem.

I was going through a few react.js tutorials and decided to use this as my general practice problem I'm trying to solve.

This is what it's looking like so far: http://stevecd.github.io/mpcnc_calc_react/

As I go through more tutorials and things, hopefully it'll improve.

Wow Slick. Do you mind if I link it on the site?

I need to learn some of that. looks really clean.

Nope, do whatever you would like with it and its (n00bish) source code as can be seen at https://github.com/stevecd/mpcnc_calc_react

As long as github is alive and allows static page hosting, the link to the app should work as well, or you could wrestle it into your site somehow and host it there. I suspect there may be styling conflicts in its current state.

A distant goal is to make that process more convenient.

Good job. Looks like a very good remix of the idea. Allted has been looking for something like this to put on his web site. I will message him to take a look at your idea.

You could probably write a java script or python script, but I am not familiar enough with either of them to do that. I just have not taken the time to learn either language yet. Just doing the calculations should be fairly easy.

Ok so I get this and its great but is there a way to determine the cutting area? I need a 20x30 cutting are so how much space should I add to my dimensions?

The working area should be the cutting area as far I can tell, but have not finished putting mine together yet to tell for sure.

I did check the movement travel in the X & Y axis for my 20" x 28" version and it came out to about 520mm (20.47") x 720mm (28.34"). I might have had a mm or 2 more than that, but liked the even numbers. I have not checked the Z height accuracy yet.

The pure travel range will probably be larger than the effective cutting area since the rail frame confines the usable space, of which the tool complex on the Z-axis eats up a considerable part. Are there any experience or theory based indications of what lengths should be subtracted from the travel paths? I think that is the space Shannon asked for.
[Edit / Added] The question aims at the space consumption of a typical tool set, mainly in x and y.[/Edit]

The bigger the diameter router you are using will of course decrease this. These calculations worked pretty good for me. I wanted a 20x28 work area & after putting it together and moving the X & Y axis until they hit the limits, the maximum size was 520mmx720mm which is 20.47"x28.34". I would say that is pretty close. I was using a mastergrip rotary tool, but have now switched to a Bosch Palm router & did not test the size with that yet. The holder for that is 14mm longer in the Y, so I will probably get 14mm less length in the Y-axis, but the same in the X. If you really want to be sure, just add an extra inch or 2 to the size. I left an extra couple of inches of belt in case I decided to make it just a bit bigger. I was just using this as a guide to figure out what size I needed & thought others could use it. I am sure it could use some fine tuning if someone wants to account for all the variables.

Dave, thanks for the reply. my question was a bit unfocussed, maybe - the core of it was: What dimensions does the combination of the holder / z-axis and the router / spindle including it's accessories like holder etc. (what I call the tool complex) usually have? My guess is a footprint of 5 by 5 to 6 by 6 inches max, would that be on the safe side? Counted from the point where the two x- and y-rails meet. Is the genuine MPCNC-mechanism alreaday 'priced in' in the calculator program? I did not see any variables to be entered that describe the tool complex.

I had not really measured that since putting it all together a few months ago, so I just measured it. That is a rather large part in the center. With my Bosch tool holder, it measures about 6" along the x-axis & about 6" along the Y-axis. It is actually about 7" each way, but only about 6" comes into play with the limits. This is a little bit difficult to describe, but when the middle part is at its limit on any side there is a about 1.75" clearance still between the EMT at X0,Y0 & about 5" clear at X & Y Limits. Looks like I still have the same work area with the bosch router as I did with the mastergrip rotary tool. A month ago, I was thinking of updating this calculator to use the actual parts for the machine & maybe do animation in openscad, but am putting most of my time into designing a delta printer. There is a guy in France that wrote an openscad animation for Delta printers which should be fairly easy to modify for this project. I do not think it would be that difficult to do, but just take some time putting it all together. It is certainly a lot easier math than for a delta movement. Here is a link to that Delta Simulator if you are interested. https://github.com/PRouzeau/OpenSCAD-Delta-Simulator

Hi Dave, thanks again. Perfect. I assumed 6 inches for an average tool today and ordered some pieces of polished stainless steel, 25.0mm OD, 21.0mm ID. Three of 1120mm (about 44"), three 840mm (33") and two 412mm (16"), so my working area will be >20 by >30 inches. The tubes will set me back by 61€ incl. VAT, not bad, ready-cut to size. I'll collect them tomorrow. I did not yet decide on the legs, maybe I'll modify that part a bit. The base frame will be an extruded 40 by 80 mm^2 aluminium profile, not that timber-setup.

Being one of the backers of the BigBox 3Dprinter by E3D (Kickstart project), I'll use that immediately after putting it together to print the parts in PETG, the filament rolls just rolled in today. Hope to see te BigBox kit coming in before the end of the year. Small parts can be built on my trusty, heavily modified OrdBot.

A delta printer is on my to-do-list too, with a very dynamic priority setting scheme ... So much to do. What an exciting time.

Thanks for the link!

The Z Error is still in the VB Programm =) but thx it helps anyway

Thanks for making this visual. It works well, but I seem to have found an error. Shouldn't echo("Z Conduit Lengths = ", Z_ConduitLen, Z_ConduitLen," x 3 = ",Z_ConduidTotal); be echo("Z Conduit Lengths = ", Z_ConduitLen, Z_ConduitLen," x 2 = ",Z_ConduidTotal);?

Thanks for pointing that out. That should be fixed now with the rev3 version.