CutList Bridge
CutList Bridge
NESAW
New England School of Architectural Woodworking
CutList Plus fx
CutList Plus fx
Ads By Google


Lie-Nielsen Toolworks

Berkshire Woodworkers

Wood Use Site

CabWriter Home Page


Check out the April 29, 2017 issue and see if this is of interest to you. Sign up to receive Chiefwoodworker's Newsletter by entering your email address below. (Privacy Policy)


A JPEG Image Found in an Internet Search

A JPEG Image Found in an Internet Search

In Country Style Cabinets with a Furniture Flair – Part 1 and Part 2, I showed you how to add base and crown molding to a cabinet. If you are a professional cabinetmaker you probably don’t want to spend your time creating moldings over and over. You need a library of moldings to choose from. You can find thousands of moldings from internet searches, especially the 3D Warehouse. However, many of the interesting moldings are .jpg images such as I used in Country Style Cabinets with a Furniture Flair – Part 2 shown at right. So you may find yourself stuck creating it as I did in Part 2.

However, it only takes a few extra minutes to add your creation to a library of moldings. Hence forth they are available from the Components dialog box (Components library). In this post and accompanying video I will explain how you can create your own library and provide you with a few options for organizing the library. But first I want to review the steps used in Part 2 to create a cross section from a .jpg (or other graphic type) image file. I will use the .jpg profile shown above right found in an internet search. I will call this profile Jeremy.

Steps in Creating a Cross Section From a JPEG Image

If you don’t have a Bezier curve tool already you will need one for this procedure. There are some really good and flexible extensions for SketchUp. I have two favorites:

Fredo6: Bezier Spline v1.9a

SketchUp Team: Bezier Curve Tool v1.1

Bezier Spline is very flexible, draws polylines, Bezier curves and Spline curves. It has numerous icons and can be a little intimidating if you don’t use it a lot, but it is my favorite for drawing complex curves. The Bezier Curve Tool is quick to learn and easy to use and the results are quite astonishing. The Bezier Curve Tool is the one I will use in this post and video.

SketchUp Profile with Discontinuities Labeled

SketchUp Profile with Discontinuities Labeled

Before I get into the steps for creating a cross section I want to make sure we are on the same page with terminology. Curves such as S-curves are made up of curve segments that join at a point of inflection. Points of inflection are points along a curve where the curve changes from convex to concave or concave to convex. They are smooth transitions and mathematically both segments have the same tangent at that point of inflection. Discontinuities on the other hand are points where a curve segment joins another curve segment (or line) and the two segments do not share the same tangent line. At this point of discontinuity there is an abrupt change in direction of the overall curve.

The image at left is the SketchUp model of the cross section (profile) I created by tracing Jeremy above right. I will also refer to this SketchUp model profile as Jeremy in the future. Notice there are five points of discontinuity along the front face. Between these five points are four smooth curve segments. The smooth curve segment are also broken down into sub-segments; at places where there are inflection points or where the sharpness of the curve changes and it is convenient to add a sub-segment.

These sub-segments are called polylines (all curves in SketchUp are polylines ‘smoothly welded’ together). Where these sub-segments join one another, but not at discontinuities, we want to weld them so they do not appear as a line when the profile is extruded. This means you need another tool:

Smustard Team: Weld v3.0.5

With the above terminology and our new tools we are ready for the steps in creating mold cross sections.

  1. Drag and drop a graphical image such as a .jpg file into a new SketchUp model.
  2. Orient the image at the Origin. Since most moldings run horizontally is is usually best to place the image on the Blue/Green or Blue/Red plane. Don’t worry about the size of the image at this point.
  3. Most .jpg images of molding have dimensions shown on them like Jeremy above right. If not you will have to choose a desired dimension for an edge in the image. Measure the actual length of that edge with the Tape Measure tool and record it.
  4. Create a scale factor with the actual dimension and the dimension given on the .jpg or the desired dimension you chose. It’s a simple matter of dividing the two numbers. Chose which is the divisor by whether you need to scale the image up or down.
  5. Use the Scale tool and the scale factor calculated in Step 4 to scale the image to the correct size.
  6. Location of a User's Custom Components Library

    Location of a User’s Custom Components Library

    The image is a component slightly larger than the profile you want to trace and it is also a face that you can trace on. Use the Line and Bezier tools to trace the profile. Here is the very important part: keep your eye on the Inference Engine each time you click on a point and make sure you are actually on the face. The Inference Engine tool tip will say ‘On Face in Image’. If you are not on the face you will be somewhere else in 3D space and in the end will not get a face to extrude.
  7. After the outline is traced and you are sure you have a face to work with locate all the points of discontinuities. Between the points of discontinuity select all the sub-segments with the Ctrl key and the Select tool. Use the Weld tool to join them.
  8. Delete the .jpg image. It is no longer needed.
  9. Make a component of the profile. Give it a name that will make sense to you later when you may want to locate it in the library again.
  10. Save the file in your library file. Here is where I saved my Jeremy.skp file:C:\Users\Joe\AppData\Roaming\SketchUp\SketchUp 2017\SketchUp\Components\Crown Molding

Your Library Appears in the Components DIalog Box List

Your Library Appears in the Components DIalog Box List

If you look in the Window > Preferences dialog box and select the Files page you will see where SketchUp is expecting you to put your library. If you put your library there is will show up in the Components dialog box where you can readily drag it into a model. See the images above right and at left.

Choices, Choices, Choices!

In the video you are about to watch you will see there are several (actually numerous) ways you can build and save your library. The first, as I just explained, is to save only the profiles in the library. Then, when you create a new model and want to trim something you can drag the molding profile into your model. From there you can proceed as I did starting at 50:08 in the Part 2 video or starting at 26:22 in today’s video.

In today’s video you will see that there are two other ways you can store your moldings in your library. You can include the profile and some number of useful components with their bounding boxes corrected, or you can store the profile and some number of useful components without their bounding boxes corrected.

Which of these three methods you use is up to you and how you are comfortable manipulating images or components. Each has its advantages and disadvantages and no one way is right for everyone. You need to develop a method that works for you.

As promised I am going to supply you with two profiles you can use to start your library. Crown Molding ZIP Folder Now it is time to enjoy today’s feature film. Get the popcorn, sit back and relax while I work.


I have updated Layers Manager with the following changes:

  1. Changed the tool icons to large format pdf, svg and png files to support high DPI displays. In SketchUp versions older than 2016 the png icons will be used. In versions 2016 or later pdf icons will be used in Mac OSX versions and svg in Windows versions.
  2. Broke the layers.rb file into layers.rb at the Plugins folder level and layers_loader.rb in the layers folder. This permitted signing of the extension and providing it on the Extensions Warehouse.
  3. Added a new tool called Complement All Layers.

You can download layers_2.3.rbz by clicking on this link. You can also download the installation and description PDF here.

Layers Manager Tool Overview

There are two personalities to the Layers Management tool: Layer0 Warning, which attempts to keep one out of trouble by warning the user when he/she changes the active layer to other than Layer0; Layer Tools which are a tool set used to create layers and make them all visible, invisible or reversed.

Layer0 Warning

I have taught SketchUp to a large number of students, mostly through my live courses, DVDs and book. Based on their feedback, and conversations I have had with other instructors, it is clear there are two dominant areas students struggle with.

1.    The stickiness of SketchUp is stumbling block number one. Anytime two primitives touch they become connected. This is useful if those primitives are meant to touch, such as when they are pieces of the same part. But if they are pieces of different parts this stickiness creates huge problems. The solution is for students to download and follow the Six Rules for Modeling in SketchUp. I have found that students who follow these rules, particularly Rule 4 – As soon as a part takes 3D shape make it a component – escape this problem entirely.

2.    The second largest stumbling block is the accidental or intentional violation of Rule 2 – Layer0 (Layer Zero) should always be active when modeling. To see the kind of havoc this can cause view the Primitives, Components & Layers tutorial. To help students avoid this problem I have added functionality to the Layers Manager tool which will warn of a Rule 2 violation.

view_menuThe image at right shows the View menu with Layer0 Warning shown enabled when checked.
The intent of Layer0 Warning is to let a beginner know when he/she is about to change from active Layer0 (Layer Zero) to another layer. By default Layer0 Warning is enabled the first time Layers Manager is installed. From then on the last state of Layer0 Warning will be stored upon closing SketchUp and recalled upon subsequently opening SketchUp.

If you wish to disable the warning go to menu View/Layer0 Warning and uncheck it.

If you wish to re-enable Layer0 Warning go to menu View/Layer0 Warning and check it.

When enabled Layer0 Warning will monitor the active layer; the layer with the radio button selected to the left of its name. If a layer other than Layer0 is made active, a warning message will appear.
 
The message will tell you which layer will become the active layer and also how to disable the warning. If a layer other than Layer0 is active and then Layer0 is made active, no warning is given because Layer0 is the desired layer for modeling. Note that this is just a warning; Layer0 Warning will not prohibit the layer change. The user must decide if this change was intentional or accidental. If the latter the user must manually change back to Layer0. Click OK to close the warning message box.

I should point out that I am an experienced SketchUp user and I never disable Layer0 Warning. It is too easy to accidentally change the active layer and get into serious modeling trouble.

Layers Tools

The Layers Manager has the following commands under the View menu:

  • Add Visible Layer
  • Add Invisible Layer
  • Show All Layers
  • Complement All Layers
  • Hide All Layers

In addition a Layer Tools toolbar is available under View/Toolbars and contains four icons which can be used instead of the menu items above. You make this toolbar visible by choosing View/Toolbars/Layer Tools. The toolbar looks as follows:

layers_toolbar
 

Description of Tools:

add_visible_layerAdd Visible Layer icon adds a visible layer to the current scene, but invisible to all existing and new scenes. Add Visible Layer always adds a layer to the Layers list but its Visible check box is unchecked in all scenes EXCEPT the scene that was active (scene tab is blue) when you added the layer. If there are no scenes, a layer is added and its Visible check box is CHECKED.

add_invisible_layerAdd Invisible Layer icon adds an invisible layer to all existing and new scenes. Add Invisible Layer always adds a layer to the Layers list but its Visible check box is unchecked in all scenes. If there are no scenes, a layer is added and its Visible check box is CHECKED.

show_all_layersShow All Layers icon makes all layers visible.

complement_all_layersComplement All Layers icon reverses the visibility of all layers except the active layer which should always be Layer0.

hide_all_layersHide All Layers icon makes all layers invisible except the active layer which should always be Layer0.


Larson Kitchen 1Later this fall I will be releasing an Alpha version of CabWriter. I have been working on this project with Greg Larson, owner of the New England School of Architectural Woodworking (nesaw.com). Greg, you might say, is the architect of CabWriter and I am the coder. The pictures you see here are snapshots I took of Greg’s kitchen – remodeled using CabWriter.

You may have heard bits and pieces of CabWriter if you follow me on my Popular Woodworking blog, or my personal blog or website. Today I want to formally introduce CabWriter and give you a hint of its features and show you some of the results to-date. But first there are two questions I need to answer, even before you ask them: what is an Alpha release and what is CabWriter?

What is an Alpha Release?

Larson Kitchen 1In the software world a new product is sometimes released in what is referred to as an Alpha release. The purpose is primarily to get very early feedback and suggestions. A secondary purpose is to build interest. Alpha releases are almost always free and have the following disclaimers:

  1. Functionality is incomplete or may change in future releases. That is, current functionality may be dropped or new functionality may be added in future releases. A CabWriter specific example is that it only works with inset doors in the Alpha release, but in its first product release will work with inset, overlay and frameless doors.
  2. There may be significant software bugs in an Alpha release. This is a direct tradeoff with the desire to expose a new product early. Users are asked to be patient and to take part in its improvement by reporting bugs to the developer. In the specific case of CabWriter reports should be made to me at : jpz@srww.com .
  3. The user uses an Alpha release at their own risk whether for personal use or commercial use. The very nature of an Alpha release is “use at your own risk”.
  4. Using an Alpha release is not a license to use the product release. You will need to acquire a license after product release.

Larson Kitchen 3So much for disclaimers, here is why I am releasing an Alpha version. I will be looking for help from users who want to design and build kitchen cabinets, bathroom cabinets, and office or library furniture. I want feedback in the form of constructive criticism, bug reports, feature suggestions and training needs. In return, for those who actively participate, you get the first CabWriter product license for free. If you are interested you can contact me via email and ask to be an Alpha user. You don’t have to participate to be an Alpha user, but only active participants will get a free license. I will, of course, be the judge of who has actively participated.

What is CabWriter?

Larson Kitchen Modeled in SketchUpCabWriter is a SketchUp Ruby script extension (formerly called plug-in). As its name implies CabWriter permits automatic and efficient custom cabinet 3D modeling, shop drawing documentation, cut list generation and DXF output that permits CNC milling. CabWriter is tightly connected to CutList Bridge and hence CutList Plus fx for material optimization. CabWriter takes advantage of the powerful Ruby API supported by Trimble SketchUp; its functional code is written in Ruby while the Graphical User Interface in JavaScript, HTML and CSS.

Shop Drawing in LayOut 1There will likely be two or three version with a target range from the hobbyist/weekend warrior to the professional cabinet shop. CabWriter comes with CutList Bridge. So far we have designed, built and installed four custom kitchens and are currently working on the fifth and sixth.

Shop Drawing in LayOut 2The goal of CabWriter is to be able to meet with a client at their residence and within a few hours walk away with a complete 3D design the client can sign off on, including plan and elevation views, cut list and materials list, cost estimate and even DXF output for CNC milling. In the real world of course clients will always want to make changes the next day and for a few weeks later. However, CabWriter makes it possible to complete this entire goal in just a few hours sans further changes. In the next two months we expect to demonstrate this goal including the installation. We will document the entire project from design, through CNC milling to completed installation in a video.

Shop Drawing in LayOut 3Before I show you some of the design output of CabWriter let me list some of its important features:

  1. The entire design file stays with the SketchUp model. While you may export files for Excel, OpenOffice or CutList Plus fx, there is no need to save or archive these files. They can always be reproduced with the SketchUp model file and SketchUp with extensions CabWriter and CutList Bridge.
  2. CabWriter has a large set of defaults all of which can be changed by the user. This makes tailoring CabWriter to a given build methodology relatively easy as well as assigning default material types and names.
  3. CabWriter automatically draws cabinet with any number of boxes, creates and assigns component names, part names and material types and material names. Any attribute that can be specified using CutList Bridge can automatically be assigned using CabWriter.Shop Drawing in LayOut 4
  4. CabWriter permits changing of numerous cabinet and box defaults on a per cabinet and per box basis such as number of doors and drawers.
  5. Cabinets can be edited after they are drawn to change things such as width, height, depth, material, number of doors, drawers etc.
  6. CabWriter Version 1.0 will handle face frame cabinets with inset or overlay doors, or frame-less cabinets.
  7. CabWriter automatically stores CutList Bridge attributes in each component so there is little or no manual entry required.
  8. CabWriter makes plan and elevation views a snap and automatically includes the hatching for material keys.Sheet Optimization in Vectric Aspire
  9. CabWriter is completely functional in the Make version of SketchUp for hobbyists and weekend warriors who wish to design and build their own cabinet. For professionals CabWriter makes integration with LayOut a snap.
  10. CutList Bridge comes with CabWriter and permits near instant cut list generation. Its bridging capability to CutList Plus fx saves material cost with material layout optimization.
  11. CabWriter provides CutList Bridge with the information to automatically create all the DXF files necessary to mill sheet goods on a CNC machine. These DXF file can, for example, can be imported to Vectric Aspire or Vectric Cut2D which will do sheet optimization and output the necessary G code for CNC milling. The DXF files produced by CutList Bridge fx permits use of numerous applications as alternatives to Vectric Aspire (Aspire is the application we are currently using).

Single Sheet Enlargement in Vectric AspireGreg’s kitchen, shown in the previous pictures, and above as a 3D rendering, was drawn entirely in SketchUp using CabWriter. The following images are CabWriter views sent to LayOut. You can see that the drawing set is quite professional and complete. The last two images are the Aspire optimized sheet layout and an enlargement of one sheet. Shortly I will be releasing a training video documenting a complete design. I will announce it and the Alpha release in a newsletter and in my blogs. So stay tuned.

CabWriter to CNC

I would like to end this post with a short video of a CabWriter designed cabinet set cut on a ShopBot CNC machine. CutList Bridge, which is part of CabWriter, produces all the DXF files which are then imported into Vectric’s Aspire or Cut2D which in turn optimizes the sheet layouts and produces the G code necessary to drive the CNC. This video was shot on October 22, 2015 and is the first CabWriter designed cabinet set cut on a CNC machine. Much thanks to Mason Papaport of Rapaport Design (http://rapaportdesigns.com/) for the use of his Shop Bot CNC. Now pop the popcorn, sit back, and enjoy this special feature film.


Back Issues of Chiefwoodworker's Newsletter