Round up dimensions for rough stock

Is there a way to set the dimensions to always round up?

I’m wanting to set dimensions that are always rounded up to the nearest 1/8" for cutting rough material stock… I can’t have it rounded down or it will be too small to cut my parts from.

Actually, what would be ideal is to be able to add something to the dimension and then round up to the nearest 1/8" that would guarantee that the rough stock was a minimum amount oversize even if the original part was exactly on an even 1/8"

I’m trying to avoid bothering to draw the rough stock and just get what it should be by dimensioning the parts…

Hi James - I think the best you can do at the moment is apply a multiplier, not a constant amount -


It’s also possible to override your dimensions. It can be scripted. This way you can change all your dimensions at the end of the process before you manufacture. But that means the dimension will not be dynamic anymore.

This can be done with Grasshopper and Elefront:

PS: new files with correct fractions posted further down.


In Rhino, if you change from fractional to decimal inches, you can set up an Annotation Style that adds tolerance, which you can set to +0.125" -0.000". Two display styles are available:


@martinsiegrist This looks interesting, I never used grasshopper, I’ll have to give it a try.

Is there a way to get the fractions to show correctly, 236 1/4 instead of 236 2/8 and 280 3/4 instead of 280 6/8

@jeremy5 I did see the tolerance, but that’s not what I really want. I have weird numbers like 79.024312 but that’s impossible to cut on a chop saw… and it’s not necessary… I want to Round UP… not just round… and also do the math to add another 1/8 so the operator doesn’t have to do it… and possibly make a mistake… they already know the tolerance is +1/8 to +1/4, I don’t need to show it. so in my example I would want it to round UP to 79.125 then add 0.125 and just show 79-1/4 they will cut between 79-1/4 and 79-3/8 and it’s guaranteed not to be undersize… if I add in the extra 1/8 then I can say cut things to this dimension and allow up to an extra 1/8… otherwise it’s just too confusing.
If I show something like 71.7192 +0.125 +0.25… it’s too confusing and requires the operator to do too much thinking.
This is also my reason for not wanting to draw something that is 1/8 longer… it’s too tedious and will lead to errors.
The biggest problem I have with the annotation styles is that there is no way to round up, and rounding down will be a problem when that happens.

Hi James,

Well, I was suggesting suborning the tolerance rather than using it as intended.

So if I understand you right, you need to produce two sets of drawings, one with weird finished dimensions:

and one with rounded up roughing dimensions:

Are these close?
Jeremy (25.4 KB)
inches_fractional_ceiling.3dm (40.7 KB)

@jeremy5 not exactly, I want to add 1/8 then round up to the nearest 1/8 and only display that. I never need to see the actual exact dimension.

To explain… I have a process that cuts double compound miter angles on a CNC router, (two compound miters on each end) the CNC software takes care of the super accurate angles and all that off of a Rhino solid model… nobody ever needs to key in or even know what the angles are or the exact length from point to point. Here is a sample… I only put this dimension so you can see what it is… I never need to see or even care what this number is… the CNC will make it within 0.001 of this I don’t need the precision shown, but I draw everything to high precision otherwise the accumulation of errors causes a problem with compound miters

but to cut rough material from standard stock is not done on a CNC router, it’s just done on a chop saw… just to get it roughly the right size to the CNC doesn’t have to hog through. I already have everything modeled in Rhino extremely accurately… but the chop saw is just set up with a tape measure and a stop is set up.
It’s too confusing to be always converting from decimal to fractional… and errors can be made… that won’t be seen until the CNC is finished, and by that time there could be a few hundred of these things cut too short… you can cut it off but you can’t cut it on. It’s easy to read a tape measure to the nearest 1/8 but if you go to 1/16ths then that gets tedious.

so I’m wanting to just dimension the drawing from the point I already have at each end of the part and get the number I want… without evaluating everything manually… and only show one number… so there is no confusion… cut it this long… and if anything make it slightly over.

The problem is… if you turn on fractional… it only rounds, it doesn’t have a way to round up, and for this application I really need it to NEVER round down. as you can see in the following… if I turn on fractional and set it to 1/8, I get 72-1/4 which will be too short.

So I wanted to round up… after I add 0.125 then round up to the nearest 1/8 the final output would be just 72-1/2… cut it there no figiting with math or converting from decimal, etc… no chance to make it undersize and not making it ridiculously oversize

The actual number never needs to be displayed, the CNC software will get that from the model itself.

Also… I don’t really need this printed with the model… perhaps there is a better way if I don’t need it printed… I would be happy to just get a report of all the lengths along with their block names.
I get a list of all the counts with block manager, and I can export that into a spreadsheet… my end goal is to accurately get the lengths into the spreadsheet to make a cut list. If I could skip drawing the dimensions, and just get them into the spreadsheet somehow, that would be even better… Then I could have the spreadsheet do the +0.125 then round up to 1/8


@martinsiegrist that looks very promising! I’m afraid I don’t know much about grasshopper, but I’ll try to get it going.

Could you please show me how I could get the distance between the two end points shown?

Strut D1.3dm (1.2 MB)

I’m wondering if there is a way I can get grasshopper to just output a list of these dimensions from a drawing that has a lot of them in it and give me a report of block names and that distance? that might be too much to ask but I see you have lists of dimensions in your grasshopper connection diagram, so it seems like I should be able to output those yellow lists somehow. as I mentioned in my previous post, my end goal here is really just a cut list… so block names and the overall length (from point to point in my model) +0.125 then rounded up to the nearest 1/8.

Thank you for your help.


Many possibilities… it all depends how well your geometries are organized.

If all objects are aligned nicely, a bounding box can be analized and turned into a dimension.

This file works with the block from your file above. Referencing the blocks can be automated. (22.0 KB)

Hi James,

If you compare the “Roughing Dimensions” I posted with the “Finished Dimensions” you will see that the former are rounded up. The compromise for this is that you get two values, but then the message is “cut between these values”. The advantages are that this is done within the Rhino Annotation Style so you have no extra work to do and your dimensions respond to modelling changes as normal.

Here’s your strut:

Strut D1 001.3dm (1.1 MB)


@martinsiegrist Thanks for example. I did get it working on the sample file I sent you. I have never even looked at Grasshopper before, so I have a bit of a learning curve to get through, but I’m kind of seeing what’s going on here.

I tried to apply this to multiple parts from my master drawing and it mostly worked, but the dimensions are not in the right place, and I don’t know how to make grasshopper know where to put them…

Maybe I am doing something wrong or not understanding how it works… or maybe it’s something to do with my blocks. Here is what I did:

In Grasshopper I right clicked on what I figured was the input and did set Multiple Extended Geometries

Then I went to my drawing and got a bunch of my strut blocks - 9 of them on the left:

Grasshopper seemed to pick up the blocks and get the dimensions I wanted

But in my drawing, the dimensions are not in line with the blocks… they are off to the left.

Any idea what’s going on here?

Multiple Struts.3dm (9.0 MB)


I did not notice that, I see that it is now, thanks for pointing that out.

I got a chance to open the example you posted to see how you managed to get it to always round up, It looks like it’s because you put a negative lower value in the tolerance.

I tried to change some values to see if I could get it to round up to 1/4" or 1/2" just to see how it worked, but these values are greyed out and I can’t edit them. How were you able to change these?


Yes, the bounding box component was missing the plane input. Looks correct now. (22.5 KB)

@martinsiegrist That fixed it, thanks!

I’ve been trying to figure out how grasshopper works, it seems extremely powerful, but I have trouble finding what I want in the icon bars… is there a way to just search for something like in Rhino where I can just start typing a command and get a list of them instead of trying to find the button for it?

I wanted to add another concatenation box, I knew the name of it because you had them… but it took me forever to find it finally in the text group. Anyway, after I found it, I realized I didn’t need it because I could just add inputs to the original ones… but it would be nice to know if there was an easier way to find things than just looking at all the buttons.

I managed to do some modifications and I found I could add the block name to the dimension text, I find this VERY useful!

if you notice that Strut 2x4 B happened to work out to 60" exactly with no fraction, so I got a 0 for the fraction which makes it look odd… is there a way to suppress this if it’s 0?

I also managed to make a new text box with a list of strut names and dimensions in it.

Is there a way to name these boxes and get rid of the {0;0;0;0} clutter?
and most important… is there a way I can export this data to a spreadsheet, either Excel or CSV file, with 2 columns, Block name, and cut length?

if that’s not possible, can I output the info into a text file?

What I really need is the cut list, I already have a spreadsheet with the block names and the total count, that I exported from block manager, so what I need is these lengths added in. I really don’t even need the dimensions on the drawing, other than it’s nice for reference… what I really need and what the end goal here is my spreadsheet to have these lengths in it. I guess I could have the spreadsheet do the math as well, but I really like having this in the drawing as well.

Thank you for your help on this.

James (18.0 KB)

You can double click the Grasshopper canvas and type.

Inputs and outputs can be simplified but the indeces remain. And they’re needed to create the correct dimensions.

There are a few plugins available to export data to Excel.

I added something in your definition. IIt’s an old component but it sort of works. Not perfect but it gets the job done. You’ll have to format the fractions in Excel otherwise the values are not displayed correctly. It appears I cannot attach an *.xlsx file. (28.4 KB)


Yes, unfortunately there is a bug in the annotation styles and the dimension properties that won’t allow you to set or adjust tolerance fields if the Unit-Format is set to Inch-fractional. You have to use a trick to set the tolerance in this scenario. See Cannot set tolerance for fractional inch dimensions without a fiddle


@jeremy5 noted that my definition relies on the block plane orientation.