Cut lists in rhino




I’ve used the rhino newsgroups in the past with great success, thought it was time to try here.

I use rhino mainly to model items of furniture which I make myself. these are made up mostly of rectangular panels of standard thickness material modelled as solids. I previously had access to a cnc machine and so used rhinocam to produce cutpaths, but having moved workshops, I am now back to oldschool machinery and will be cutting all parts on a panel saw.

i would like to be able to export .csv data to an excel file to give myself a cutting list to take to my saw, and would happily pay for a plugin if one existed.

Ideally I would be able to assign grain direction to these solids in rhino and have the plugin export the data relative to the grain direction ie long grain, cross grain, thickness, rather than largest value, second largest, and smallest, or by its orientation to world coordinates for example.

If anyone can help me in my quest, I’d be most grateful. Its currently pretty frustrating to have to lay out each part flat, measure, and write down the values, not to mention the possibility of errors creeping in…

Many thanks,


Cutting Lists generated from Rhino
(Steve Baer) #2

Hi John, Thanks for giving this forum a try.
It sounds like a lot if not all of this could be automated with one or more scripts. I don’t exactly understand what your process is, but it sounds like a spot where a lot of time is being spent is measuring and writing down values (also where errors could creep in). Does that seem like the best spot to start?

I would ask for a sample 3dm file, but we don’t have file attachments working on this site yet. Hopefully this will be implemented by the end of the workday tomorrow. I’ll shoot you a message once this is working.


It’s good to hear that file attachments are coming soon. A very crippled site without this ability.


If you go over to the Grasshopper forum and post a sample file of a furniture item you need a cut list for I’ll be glad to see what I can do using Grasshopper. Use the subject heading ‘Cut Lists’. Otherwise I’ll wait until Steve gets attachments working here.



Thanks Chris, I’ll do that.


sorry chris, can’t seem to attach a file in the grasshopper forum yet either…


(Steve Baer) #7

You can use one of the services described here for the time being if you want to. I’m working on file attachments right now and will hopefully have something working in a few hours


thanks steve.

I’m not sure its really necessary for me to upload a file. I’ll just explain:

If we assume the file is a collection of regular oblongs (just rectangles with a thicknes), I simply need to be able to export the length, width, thickness and names of these solids to a .csv file which lists them in separate collumns.

I’ve been in contact with the people at cutlist plus which will provide further functionality, but for their software i need to export the data as described above. If I could have rhino export this data relative to grain direction as explained above, this would be a bonus…

thanks again,



So columns would be length, width, thickness and names and each complete item would be a row?


Here’s a Grasshopper definition that parses the length, width and thickness of some random oblong slabs.
The text file is shown below.

The LunchBox plugin for Grasshopper has an ‘Excel Write’ component that would allow you to import the data directly into an open .xls file. I don’t have a copy of Excel so can’t demo that for you.

Regarding the ‘name’ you mention is this a name that you’ve already given the object in Rhino or do you need to generate a name at the time of creating the csv file?



Hi Chris,

Many thanks for that.

Yes, the three values should be in three separate columns. I can name the items within rhino, and could maybe even get around the grain direction bit by putting a note with the name if the grain runs in the direction of the shorter length of the panel.

there’s no need to convert to an .xls to be honest, so long as it would have the values in separate collums were it to be opened in excel. hope that makes sense…

so, how do I get this grasshopper script thing working on my computer? Also, would it be possible to have it automatically list the largest value first, then the second, then the smallest?

Thanks again,.



so, how do I get this grasshopper script thing working on my computer?
Also, would it be possible to have it automatically list the largest
value first, then the second, then the smallest?

Do you mean list the longest piece first in the final output. If so the answer is yes it could be done. I modified the script last night to include the Rhino name for the object with a method for recognizing the long grain/cross grain situation. Just precede the name with an L or C according to the situation. The definition currently assumes that the panels are lying on the construction plane with the smallest dimension along the z axis. In panel work this would be the thickness.

Regarding getting the definition to you are you using Rhino5 or Rhino4? In either case you’ll need to download and install the Grasshopper plugin. You’ll also need to download and install the Horster Reference plugin for Grasshopper from I’ll do a screencast video for you on how to use the definition but I won’t get back to this again until later tonight.



Hi Chris,

Thanks again for all your help with this.

I am currently using rhino 4, but had hoped to upgrade sometime soon.

One thing that it is essential that this script does, is to be able to extract this information without having to unfold an assembly and lay it out on the c plane. is this an issue?

With regards to the longest first etc, the ideal would be that longest part is listed first, but that the longest dimension is (when the part is prefixed L for long grain), and even better, that when i have marked a part with c for cross grain, it still lists this dimension first.

for example. If there were two components both 100x50x10, named A and B - A has long grain, and B short, I could label A (L-A) and B (C-A) and the out would be tabulated as follows:

L-A 100x50x10
C-A 50x100x10

so the length in which the grain runs always comes first in the table regardless of whether it is the bigger dimension or not.




The script doesn’t do this yet. It’s possible to do this but it would be really helpful to have a sample file from you that represents a typical project. If your projects are complex then this will determine if I have enough skill to get all the dimension data as you want it. Right now the script does everything else that you’re asking for except lay out the parts on the c plane. I’ve been assuming that you’re making box-like objects from sheet goods. If you can’t attach a .3dm then even a jpeg would be helpful. Also Rhino4 is fine.


(Willem Derks) #15

Hi Chris,

I was interested to see how to solve this; and maybe this can help.

In essence it creates boundingboxes based on the largest-area subsurface of a Brep.



Many thanks for your input Willem.

I’m having some success with help from Don Lewis on the old newsgroup with modifying Peter Harris’ BOM tool. It’s very close to what I’m after, and with a couple of tweaks will do what I need.

Thanks Chris for all your help, but i think this might be the simpler option for me rather than installing grasshopper and other plugins.

Once again, thanks for all your help.



I agree. Good luck.


(Brian Gillespie) #18

I moved 11 posts to a new topic: Images do not always click-to-zoom

(Brian Gillespie) #19

Oh dear! Trying to split this topic into a new “Images do not always click-to-zoom” topic in Meta… but they’ve gone missing! Sigh.

I’ve reported this problem and the image click-to-zoom problem to the Discourse team.


Better find a way to backup posts before dealing with them while these post editing tools are not stable.