I wrote about the combination of Cut List 4.0 and CutList Plus many months ago. I was reminded by Steve Racz, the author of Cut List 4.0, that Cut List 4.0 is now Cut List 4.0.7. He suggested that I update my blog to reflect the changes. Normally one wouldn’t expect a minor revision to change functionality but merely fix bugs. However Steve’s changes in 4.0.7 make the interface between Cut List 4.0.7 and CutList Plus nearly seamless. Of my favorite SketchUp Ruby scripts this one ranks among the top. So I have re-written my original post to reflect those changes and major simplifications. Here is the updated version.
My projects always start out the same – realizing my idea by sketching and designing it in 3D, then producing shop drawings complete with a cut list. Having done that I am ready to go into the shop and prepare my stock. My current tools of choice for this task are Google SketchUp for 3D drawing and CutList Plus for producing a cut list and parts list. These two tools do not naturally speak to one another; there is no export or import utility supported by either application that allows them to pass design information between them. However, SketchUp has a Ruby API and development console that allows third parties to produce scripts that can be used by SketchUp to extend its functionality. Most of these Ruby scripts are written by software developers, or wannabe software developers, and they are provided to you for free. To use a script you simply download a simple text file with an .rb extension. The file must then be placed in the appropriate SketchUp Plugins folder. Upon opening SketchUp, it loads all Ruby scripts located in that folder, and voilà! You have extended functionality.
I have a list of favorite Ruby scripts that I have added to my SketchUp Plugins folder which I will share with you toward the end of this article. But one in particular bridges SketchUp and CutList Plus; Cut List 4.0.7 is the focus of this post. If you use SketchUp and CutList Plus this post is for you. If you don’t use one or both applications you should look into them. SketchUp 7 is a free 3D drawing application from Google. That’s right, free! You can download it by going to http://sketchup.google.com/. CutList Plus must be purchased, but it is not expensive, and it is well worth the price. There are several editions (Silver, Gold & Platinum) that range from $89.00 to $499.00, and serve the casual user to the professional. The Silver version is limited to 50 parts, but that is enough to handle most furniture pieces. My Six Pane Oak Hutch has 35 pieces. If you need more parts you can break a design down into sub-assemblies. Go to http://cutlistplus.com/ to read about the differences between these editions.
The Ruby script Cut List 4.0.7 is free and can be downloaded by going to http://steveracz.com/joomla/content/view/45/1/. This is a zip file and must be extracted to the appropriate SketchUp Plugins folder. In the case of Windows XP that folder is C:\Program Files\Google\Google SketchUp 7\Plugins. For 64-bit versions of Windows it may be something like C:\Program Files (x86)\Google\Google SketchUp 7\Plugins. You may have an older version and it could be slightly different, so examine the Program Files (or Program Files (x86)) folder to determine the exact address. For MAC or other operating systems check your SketchUp documentation.
If you do not wish to purchase CutList Plus, Cut List 4.0.7 will connect SketchUp with Microsoft Excel to produce a cut list using a comma separated value file (.csv). But CutList Plus has many more features that are useful to the woodworker besides a cut list, for example, a layout showing you how to cut sheet material to get the most efficient and least expensive solution.
Once the zip file has been extracted to the Plugins folder you can open SketchUp and you will notice a new Menu item called Plugins. Under Plugins you will see a submenu called Cut List. This is what you would click to produce a cut list file. However, I am going to throw you a curve ball. Then I am going to explain how you can work around it or use it.
Each time you install a Ruby script in SketchUp a menu item(s) is added. It is generally added to a menu called Plugins. If Plugins doesn’t yet exist, the first Ruby script you add will create it and all future Ruby scripts will use it. The idea here is that Ruby scripts are added features that are not part of the SketchUp application and therefore one shouldn’t mix their Ruby menu items with native SketchUp menu items. I don’t like this strategy because after you have added a number of scripts and used SketchUp for a while you forget which commands (or submenu items) are native, and therefore should look in the related menu, and which are extended functionality and therefore are found under Plugins. So, for every script I add I modify the source file slightly to put the command (submenu item) under the appropriate menu. In the case of Cut List 4.0.7 I chose to put the submenu item under the File menu instead of the Plugins menu. My rationale is that producing a cut list file is a File operation, not and Edit or View or Tools operation. This helps me to remember where to find the command to produce a cut list file. Further, I changed the command name from Cut List to Generate Cut List. This is slightly more descriptive and it also makes the command stand out a little more so it is easier to locate.
I will now tell you how to make this modification if you choose to do so. It does not require programming knowledge, however, if you look closely at the changes you will likely figure out what you would need to do to modify other scripts to change menu location.
If you choose not to make this edit then simply remember when I say go to File/Generate Cut List (or something similar) you should read it as go to Plugins/Cut List.
To make the modification locate a file called CutListAndMaterials.rb in your Plugins folder (C:\Program Files\Google\Google SketchUp 7\Plugins for Windows XP). Open this file using Notepad. WordPad may be used if you are careful to save the file without adding formatting symbols. Do not use Word. Word adds formatting symbols. Also be sure to save the file after modification with the .rb extension, not a .txt or other extension. While the file is open scroll to the bottom and locate the following text.
# Add things to the Plugins menu
# Add CutList main entry
# "Cut List" offers an html gui to select options and produce html and/or file output
if( not file_loaded?("CutListAndMaterials.rb") )
add_separator_to_menu("Plugins")
#plugins_menu = UI.menu("Plugins").add_submenu("Cut List")
plugins_menu = UI.menu("Plugins")
plugins_menu.add_item("Cut List") { interactive_generator }
# no longer supported
#plugins_menu.add_item("SU5") { fixed_configuration_generator }
end
file_loaded("CutListAndMaterials.rb")
Replace this block of text with the following text:
# Add command to the File menu
# Add CutList main entry
# "Cut List" offers an html gui to select options and produce html and/or file output
if( not file_loaded?("CutListAndMaterials.rb") )
UI.menu("File").add_item("Generate Cut List") { interactive_generator }
end
file_loaded("CutListAndMaterials.rb")
Save the file and open SketchUp. Under the File menu you will see Generate Cut List. That’s it, simple as that.
Now for an example of how Cut List 4.0 bridges SketchUp and CutList Plus. We will use a Wall Hanging Hand Tool Cabinet design as an example. If you wish to follow along click on the link in the previous sentence to download the SketchUp model. My SketchUp drawing, or model, is complete including all dimensions. It is not necessary to have all parts dimensioned, but it is necessary that all parts be fully defined components or component instances (instances are components used more than once, for example multiple drawer fronts). I will not describe how to create SketchUp drawings and models in this post; I have a separate multipart tutorial on my blog site for just that purpose. To create a cut list bring up a complete model without dimensions and select the entire model. Be careful not to select multiple instances of a model using “Select All” or you will get a cut list with inflated parts requirements. See the picture at left above showing how I did this for my tool cabinet.
Note: Very important, before proceeding to the next step open the Window/Model Info box. Select Units in the left column and Decimal from the Format drop down box. If you use Fractions CutList Plus will not interpret them correctly; you may end up with dimensions that appear as calendar dates in Excel or dropped parts in CutList Plus. You can switch back to Fractions after the Cut List 4.0.7 output file is generated.
I select the File/Generate Cut List command (or Plugins/Cut List for you wimps), and left click. A menu selection page appears. With the CutList tab selected make the selections shown in the picture at right. My tool cabinet is made of all rough cut hardwood so I have not selected Layout. If some of my parts were sheet material such as plywood I could select Layout and get a visual cut list layout. However, even if I did have sheet goods I would ignore the Layout option because CutList Plus has more powerful features to deal with sheet goods.
Notice in the picture at right above the keywords part, hardware, sheet, veneer, plywood, hardboard and mdf. These are keywords that indicate a component is either a sheet material or a part and not a component (you can use your own keywords). Do not use any of these keywords, or words containing them, when naming your components. If you do, those components will not be included in the Component cut list. I called one component a Drawer Partition and it was eliminated by Cut List 4.0.7 because “part” is contained in the word “partition”. I had to rename it divider.
I simply check Web Page, CutList Plus and Components in the menu selection page. You may wish to left click the Save Settings button to save these selections as I did. Clicking Run produced the message shown at left. This message lets me know where Cut List 4.0.7 saved my .csv file containing the data CutList Plus will need to generate the cut list (write this location down). I click OK and I can now see the Web Page view of a cut list. I just use this view as a check to be sure all components were picked up correctly. Though I don’t examine it in detail I look for any glaring or outstanding problems. The detail checks I leave until I have a CutList Plus cut list.
Remembering where the .csv file was stored (hint: it is likely in the same folder as the SketchUp model that produced it) I open it with Excel or import it into CutList Plus.
Importing to CutList Plus is done by either right clicking on the file name and choosing Open With/CutList Plus 2009, or opening CutList Plus and choosing File/Import and selecting the saved .csv file. A menu page will appear as shown at right. I select Comma as the Delimiter and check “First row has headers”. Next, in the import column in each row I use the drop down box to match up the columns. Note for Sub-Assembly, Material Type, Material Name, Can Rotate, Banding, <Info> and Notes I choose <Skip this item>. All I want is the Part#, part Description, number of Copies, and the three dimensions. The rest of the information I can deal with more easily in CutList Plus. Since most of my cut lists will be similar I left click “Save Filter Changes” to save these selections. Then I click Finish.
An Import Results message pops up indicating that 21 components were imported. The 21 components agree with the number of components in my In Model components library of my SketchUp model. This is not the number of total parts, since a number of components are used numerous times. The total number of parts is the some of the numbers in the “Copies” column below right.
I click OK and my raw CutList Plus cut list appears as shown at right. At this point I have an untitled file; there is no information on Sub-Assembly, Sheet Goods, Material Type and Not Specified for the Material Name. These are easily edited and corrected in CutList Plus. In fact I can edit the Material Name and Material Type as one group and I can save the file with whatever name I please – though I always give it the same name as the SketchUp model itself. If I like letters for parts lists I can easily do that in CutList Plus too.
The final cut list is shown at left. I am not going to discuss how to use CutList Plus in this post. I will reserve that for the future since it deserves its own post. Suffice it to say that CutList Plus is rich and powerful. In addition to a cut list it can produce a Bill of Materials, Project Proposals, Cost Sheets including labor and other parts such as drawer pulls, sheet cutting Layouts, manage inventory and much, much more. You can download a 30 day trial version and give it a whirl. The learning curve is short, so have fun.
I promised a list of my favorite SketchUp Ruby scripts. That list can be found at http://www.srww.com/google-sketchup.htm along with a description of Google SketchUp.