Alright, we've got the armoire drawn and it meets with 'er indoors approval and she's expecting us to build it now. We need some working drawings to print off and take to the shop.
There are a number of ways to do this but this is how I do it. I copy components out away from the model and move those copies around to explode as needed. Then I add dimensions and notes to remind me of what I have to do. Since I've spent this time building, there are some things I know are standard and might not dimension just to avoid clutter.
I make views of assemblies or specific parts as I feel the need. Each view gets a page so that I can easily come back and see it again simply by clicking on the page tabs.
Here are some examples of drawings I made for the armoire.
First, the base assembly. I exploded the parts with the Move tool. I don't put dimensions all parts. The legs are all the same so dimensioning one should be enough. I also don't dimension small details such as the mortises or the chamfers. A note about the chamfers gives enough information.
For small details I'll make another copy and zoom in so the dimensions can be read.
Some things work better with a 2D view or at least we don't need to see them in 3D. The drawing for the corner blocks is fine in 2D. I made four copies and laid them out with saw kerf allowances so I could figure out how much wood I'd need to make them. In this case I added a wood grain texture, too. This is basically to show the direction the grain should run on the parts. The grain direction would be understood from the size of the board I drew under the blocks so the texture wouldn't be needed.
For the side panels I copied them out and laid them next to each other. I left saw kerf allowance between them and laid them so their front edges are together. This shows me I can get the side panels out of a 48" wide ply panel. I would cut to the outside dimensions, cut the grooves and rebates and then separate the sides by cutting down the middle.
I didn't do it for this drawing but I would normally dimension the location of the grooves. Rebate widths and all depths would be given in notes rather than dimensoins.
Finally, there is a basic cutlist Ruby script that works pretty well. The dimensions are given as x,y,z and so you'd need to do a bit of adjusting to make a good list. It generates a CSV file (comma separated values) which can be opened in Excel and edited as needed. Here's a text version of section of the cutlist for the base.
Part #,Description,Width(X),Depth(Y),Height(Z),Layer
1-1, Base Corner Block,~ 4 61/64",~ 4 61/64",3/4", Base Assembly
1-2, Base Corner Block,~ 4 61/64",~ 4 61/64",3/4", Base Assembly
1-3, Base Corner Block,~ 4 61/64",~ 4 61/64",3/4", Base Assembly
1-4, Base Corner Block,~ 4 61/64",~ 4 61/64",3/4", Base Assembly
2-1, Base Front Rail,34",3/4",3 1/2", Base Assembly
3-1, Base Leg,1 3/4",1 3/4",7", Base Assembly
3-2, Base Leg,1 3/4",1 3/4",7", Base Assembly
3-3, Base Leg,1 3/4",1 3/4",7", Base Assembly
3-4, Base Leg,1 3/4",1 3/4",7", Base Assembly
4-1, Base Rear Rail,34",3/4",3 1/2", Base Assembly
5-1, Base Side Rail,3/4",23",3 1/2", Base Assembly
5-2, Base Side Rail,3/4",23",3 1/2", Base Assembly
If you need the cutlist script copy the following text and save it as CutList.rb in the Plugins folder of SU.
#-----------------------------------------------------------------------------
#
# Copyright 2005, CptanPanic
# Heavily Based on ComponentReporter.rb, Copyright 2005, TIG
#
# Permission to use, copy, modify, and distribute this software for
# any purpose and without fee is hereby granted, provided something the above
# copyright notice appear in all copies.
#
# THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
#
#-----------------------------------------------------------------------------
#
# Name : CutList.rb
#
# Type : Tool
#
# Description : Makes a cutlist based on all components in mode.
#
# Menu Item : Plugins -> Generate CutList
# Context-Menu: None
#
# Author : CptanPanic
#
# Usage : Call script using Plugins menu, and file name *-CutList.cvs is created in the model's
# folder. It is readable by text editors, and cutlist programs like CutList Plus.
#
# Date : December 2005
#
# Version : 1.0 Initial Release.
#
#-----------------------------------------------------------------------------
### = TIG tweaking 20/12/05 ###
###############################
require 'sketchup.rb'
### do class
class Reporter
### do def
def Reporter::components
model = Sketchup.active_model
### start undo...
model.start_operation "undo"
entities = model.entities
mname = model.title
### show VCB and status info...
Sketchup::set_status_text(("CUTLIST PLUS..." ), SB_PROMPT)
Sketchup::set_status_text(" ", SB_VCB_LABEL)
Sketchup::set_status_text(" ", SB_VCB_VALUE)
### check model...
mpath = Dir:
wd
if mpath == ""
UI.beep
UI.messagebox("You must save the 'Untitled' new model \nbefore making a Component Report !\nExiting... ")
return nil
end
### setup list... ### do it instance by instance as layers might differ... TIG
clist = []
for c in entities
if c.typename == "ComponentInstance"
name = " "+(c.definition.name) ### allows names with - + at start etc
boundingBox = c.bounds
dims = [ boundingBox.width.to_s,boundingBox.height.to_s,boundingBox.depth.to_s ]
layer = " "+(c.layer.name) ### allows names with - + at start etc
clist = clist.push([name,dims[0],dims[1],dims[2],layer])
end#if
end#for c
clist = clist.sort
###
### if no components exit...
if not clist[0]
UI.beep
UI.messagebox("No Components available to make a Component Report !\nExiting... ")
return nil
end#if
###
### write to csv file...
namecsv = mpath + "/" + mname + "-CutList.csv"
file = File.new(namecsv,"w")
file.puts("Part #,Description,Width(X),Depth(Y),Height(Z),Layer\n") ### title ###
i = 1
ii = 1 ###
ix = ""
cx = "" ###
for c in clist
i = i + 1 if c[0] != cx and cx != ""
ii = 1 if c[0] != cx
ix = " "+i.to_s+"-"+ii.to_s ### avoids 'date' format
file.puts(ix+","+c[0]+","+c[1]+","+c[2]+","+c[3]+","+c[4])
### gives sub-part numbers to same named compos; last = total
ii = ii + 1 ###
cx = c[0] ###
end#for c
file.close
UI.messagebox("CutList written into: \n\n" + namecsv + " \n")
###
### commit undo...
model.commit_operation
end#def components
end#class
### do menu
if( not file_loaded?("CutList.rb") )
add_separator_to_menu("Plugins")
UI.menu("Plugins").add_item("Generate CutList") { Reporter.components }
end#if
file_loaded("ComponentReporter.rb")
###