|
|
|
Notes from the Sandbox ...
|
|

|
Customizing VCarve Pro and PartWorks -
January 2008
Well I know it’s been too long since my last
installment, and I have a bit of a backlog of ideas to write about. I’d
like to detail how I use VCarve Pro and my ShopBot to work with the RTA
(Ready-to-Assemble) fittings, but there is something else I need to
explain first. I’m going to show how you can customize the VCarve Pro
(and PartWorks) postprocessors to get the specific outputs you want,
then next time I’ll describe how I use these modified postprocessors to
create toolpath files for handling sheet materials including using RTA
fittings and the auxiliary drill head. So this installment is pretty
much useless to you unless you use VCarve Pro or PartWorks, but it seems
many ‘botters are using or are interested in these excellent programs so
here goes.
It seems too few people realize that the VCarve Pro
postprocessor files are text files which can be edited with any text
editor program. (To clarify, PartWorks is the same program as VCarve
Pro, but it comes with only the ShopBot postprocessors. For the purposes
of this article, PartWorks and VCarve Pro are identical, with on
exception which I’ll get to.) Our friends at Vectric are understandably
hesitant to encourage us to fiddle with the postprocessor (.pp) files,
since if you make a mistake it could lead to ruined material, broken
tooling, damaged machinery, and/or personal injury. So please don’t
tell them that I’m writing this, but if you are reasonably comfortable
with editing .sbp files and understand what the various ShopBot commands
look like and how they perform you should be able to successfully modify
a .pp file to your liking.
First, be very careful when modifying a
postprocessor file as every character makes a difference and the results
can be unpredictable. Be sure to keep a copy of the original
postprocessor file, or, as I do, save the edited file under a new name
so the original file is kept unchanged. You can make the modifications
in any text editor including the ShopBot text editor. The postprocessor
files are found in the “Program Files\VCarve Pro 4.0\PostP” folder on
your hard drive. You can name the new file whatever you want – the name
of the file will not affect the performance or even be visible while
using VCarve Pro. For simplicity’s sake I’ll use as an example the
“ShopBot_alpha_Arc_inch_router_control.pp” file – others may vary
slightly but should be similar enough to follow along. Open the file and
familiarize yourself with the layout and contents. Any line that begins
with a “|” or a “+” character is a comment line and is there for
information only. So you can see the first paragraph is a list of the
authors of and contributors to this postprocessor file and the dates on
which their contributions took effect. Go ahead and add your own name,
date and the changes you are making so you’ll have a record of your
work. Just remember each comment line has to start with a “|” or a “+”
Just after the first section of comments is the
line:
POST_NAME = "Shopbot (arcs)(inch)(alpha_control)(*.sbp)"
Whatever type is between the quotation marks in the
above line is what will appear in the postprocessor drop-down menu when
you go to save a toolpath file in VCarve Pro. I suggest changing it to
something short, sweet, and descriptive, such as “Plywood” or “RTA
fittings”. You do not need to include the (*.sbp), but don’t forget to
leave the quotation marks. (Here is the exception for PartWorks users –
you will have to have the name “Shopbot” included somewhere between the
quotes.)
The next several paragraphs are used by VCarve to
set variables which will be used later in the file. I have no idea what
most of them are for but some of them are obvious and if you are sure
that they will not be used in the final postprocessor file than you may
safely delete them. For instance, if you do not need to set the spindle
speed from within the resulting .sbp files, you can delete the following
section:
+------------------------------------------------
+ Spindle Speed
+------------------------------------------------
var SPINDLE_SPEED = [S|A||1.0]
If in any doubt about any line or section, just
leave it be, it won’t hurt to leave it in.
Farther down the file you’ll find a section that
begins with this:
+---------------------------------------------
+ Start of file +
---------------------------------------------
begin HEADER
followed by a bunch of commands and/or comments.
Whatever follows the above will appear at the beginning of each file
which is output using this postprocessor. Since I use a master file to
call all my sheet cutting and drilling files in the proper order and to
control things like cutting speeds and turning the router on and off, I
simply delete this entire paragraph for most of my .pp files. But if you
want any particular commands or comments to appear at the start of each
file, this is the place to make that happen. Notice that each line
starts and ends with a quote mark [ “ ] which will not appear in the
resultant files but cannot be left out. Note also that this is where the
commands are generated that send the tool to the “home” position at the
beginning of each toolpath file, so if you want to eliminate that pesky
feature (like I did) just delete the line:
"J2,[XH],[YH]"
Here’s a hint: If you replace everything after
“begin HEADER” with the simple line:
“C5”
Then the command C5 (Custom Cut 5) will appear at
the start of each .sbp file output with this postprocessor. You can then
save any standard start-of-file commands as a Custom Cut file
(Custom5.sbc) and it will be run as a subroutine by each file before
starting the cutting moves.
Next, look for the section that starts with:
begin FIRST_FEED_MOVE
"M3,[X],[Y],[Z]"
Let me digress here for a moment. One of the
benefits of learning how to modify the postprocessor files is the
ability to create .sbp files that perform a specific task or function at
each vector location in your drawing, instead of the cutting action
which VCarve thinks it is creating. Specifically, if you use a Drilling
toolpath on a group of circles, you can substitute the code of your
choice in lieu of a Move command in the postprocessor file where VCarve
thinks it is going to drill a hole. For instance, you can use the CC or
CP commands to drill a hole with a spiral plunge, the C# command to
invoke a custom cut file, or even the FP command to run a particular
file at each hole location on your drawing. This last sentence is the
key to my technique for machining holes for RTA fittings with VCarve
Pro, which as I said I intend to cover in more detail in my next
installment.
So back to our file. The following line is the move
command that will be generated for each required move. If you are just
tweaking your router or spindle .pp files to adjust the headers and
footers you’ll probably want to leave this alone, but to change the
function dramatically try replacing this entire line:
"M3,[X],[Y],[Z]"
with:
"FP, RTA fitting.sbp,,,,,2" (0r substitute the name
of the file you want to run at each hole location.) Don’t miss the five
commas followed by “2” – that specifies that the named file will be run
in 2D offset mode.
Do the same thing where the file says:
begin FEED_MOVE
M3,[X],[Y],[Z]"
Now the resultant .sbp file will move the machine to
each hole center location, and run the indicated ‘RTA fitting.sbp’ file
(or the file or commands of your choice)
If you’ve made it this far you can probably decipher
the rest of the postprocessor file. For my RTA and drilling
postprocessors there are no “arc” moves – or any other type of moves
needed so I just delete the entire rest of the file. If you are just
tweaking your cutting postprocessor you can adjust what happens at the
end of each saved .sbp file in the section just after the line:
begin FOOTER
Again, substituting the original lines of code with
a C# (or FP) command will let you run a standard end-of-file routine at
the end of each .sbp file.
Once you are reasonably sure you’ve correctly
modified your way to a new, improved postprocessor file, save it with a
.pp extension in the same directory mentioned above. Then open VCarve
Pro (or PartWorks). The software actually scans each postprocessor file
upon opening, so if there are any obvious syntax errors you will get an
error message right up front, with a line number that corresponds to the
line number in the .pp file, which gives you a place to look for the
problem. If the software starts up OK, then try saving a toolpath using
your new postprocessor. Make sure to check out the first few
resulting .sbp files with a text editor to be sure there are no
surprises, and run the first few files in preview mode just to be sure.
Since I started using my modified postprocessors I rarely if ever have
to edit or even check my .sbp files before running them. Here’s another
tip: you can delete or move to a new folder all the .pp files for any
machine you don’t currently own and don’t expect to own any time soon.
Do the same for any stock .pp files you won’t use, such as metric files
if you only work in inches. That way when you go to select a
postprocessor file in order to save a toolpath you’ll have a custom menu
of all your own .pp files with no unnecessary extras. (You can restore
the original .pp files by re-installing VCarve Pro.)
Sample files: The attached files are meant as
samples only, although you can use and/or modify them as easily as the
ones which come with VCarve Pro. For each .pp file, I used VCarve Pro to
toolpath a simple drawing consisting of four small circles placed at
2,2; 2,4; 4,2 and 4,4. For the RTA Only file I used a Drilling toolpath
with the depth of cut set to zero; the resulting .sbp file runs my “RTA
fitting.sbp” file at each hole location.
For the Custom Cut file I used the same four circles
but a Profile toolpath and a .5” depth of cut. The resulting .sbp file
has a C5 command as the Header and a C6 command as the Footer, with the
typical machine output in between. If you use the C#, format you can use
Custom Cut files with 2-digit numbers and keep your single digit
numbered Custom Cut files for use with the keyboard.
[Download sample files]
Almost There -
August 2007
Why not
use the ShopBot for all my panel cutting? Mainly because I’m just not
there yet with my software, panel hold-down system or spindle.
That was me about a year ago. I’ve been purposely taking baby steps
towards using the Shopbot for all my sheet cutting needs as I pretty
much have to do it all myself and any time spent on R&D or machine
maintenance/improvements is time I can’t spend producing cabinets (read:
earning a living). As I wrote last October, I started with the vacuum
table, which has been a huge success. Not that I’m not already thinking
about improvements and what I might do differently next time, but it
works well as-is, and my only regret is not taking the time to install a
decent vacuum table sooner. But shortly after writing the installment
detailing how I was purchasing pre-ripped and edgebanded melamine strips
for my closet client, I made the plunge and tried machining a couple of
small jobs entirely on the ‘Bot. Well, to get right to the point, I
haven’t looked back. Even though I still lack full-featured software
that can take my designs from “screen to machine” I already find it so
much easier and more productive to do all my cutting and machining on
the ShopBot than on the tablesaw/linebore/etc. that I now have a hard
time imagining cutting a full sheet of plywood or melamine on the
tablesaw.
So, of the three obstacles I mentioned, the hold-down system is taken
care of, and I’m still using a Porter-Cable router – it’s loud and the
bearings need regular replacement but it gets the job done. I’m getting
much closer to being ready to order a spindle. That leaves the software.
I’ve had several inquiries from folks who want to know if I’ve found a
program that works for me, but unfortunately I still don’t have a real
good answer for them. We all know there are numerous programs out there
that will set you back as much or more than the cost of the Shopbot, and
quite frankly, if I found one tomorrow that would work for me in every
situation it would be worth the price of admission by saving me hours on
every job. It’s not so much the cost of the software alone that is
holding me back, but the time investment required to evaluate all the
options out there and then to get up to speed on whichever one I choose.
Just as the purchase price of the Shopbot doesn’t tell the whole story
of how much it costs to get one up and running and get familiar enough
with it to make it profitable, the time required to decide which
software to buy and then learn how to use it would cost me as much or
more than the cost to buy it. So for the time being I’m using my trusty
DesignCad to manually draw and nest my parts and VCarve Pro to create
the toolpaths for each sheet. As with anything, the more I do it the
faster I get. I’ve saved a library of drawings so I can quickly bring up
a drawing that has all the parts required to build a typical cabinet,
arranged in such a way that I can easily stretch all the horizontal
parts to correspond to the width of the cabinet, then cut and paste
those parts into a drawing that represents blank sheets of material. I
find that I can nest those parts onto the sheets as well as if not better
than most nesting programs I’ve seen, although I admit it will take me
longer than a decent nesting program would take. I created a macro for
DesignCad that automatically exports each layer of each sheet into a
separate .dxf file for importing into VCarve. The process of creating
the toolpaths in VCarve is so repetitive (and so reliable) that I showed
my 13-year-old daughter how to do it and now (when she has the time) she
takes care of that part of the process for me.

|
All the parts for a basic cabinet.
It would take only a few seconds to resize as needed to adjust
width, depth or height; or to add, remove or modify parts. |
A typical
sheet of parts ready for toolpathing. As long as all the parts
get cut, there is no need for parts of a single cabinet to all
be on the same sheet. |
I’ve worked out a pretty good system for creating clean, consistent
parts from most sheet materials. I’m mostly cutting ¾” two-sided
melamine-coated particleboard, but I use the same techniques for
veneered MDF and plywood. First of all, I use a ¼” compression spiral
router bit which leaves clean surfaces on both the top and bottom faces
of the board. I could easily cut all the way through in one pass, but if
I do I’ll have a problem when I get to the last few parts of each sheet.
Since they won’t have the hold-down force of the entire sheet to keep
them still, they would shift and lose the vacuum seal. So I cut
everything in two passes. The first pass leaves a “skin” of .02” – just
a little more than the melamine coating. The entire sheet is cut with
this first pass before the second pass cuts through the material and
.012” into the spoilboard. In addition, I have to take into account that
the machine, like all things mechanical, has just a little bit of “give”
to it, which can mean that two identical parts might not end up
identical depending on several factors. First is that a climb cut can
yield different results than a conventional cut, since climb cutting has
a tendency to pull the bit away from the part during cutting while a
conventional cut tends to pull the bit towards the material. We’re not
talking a lot of difference, but it’s enough to notice and it’s not hard
to compensate for. Secondly is that in order to minimize waste and
sawdust, I want to place the parts as close together as possible on the
sheet. So, when cutting the first part the bit is fully engaged in the
material for the entire cut, but when cutting the adjacent part the bit
is mostly traveling in the kerf that was cut for the first part. This
creates a different amount of sideways force on the bit which can also
leave a noticeable difference in size between the two parts. So what I
do is leave an allowance of .02” on the first pass (the first pass cuts
the part .02” oversize on all sides), using a climb cut to make sure the
bit is not being pulled towards the part. Then once all the parts have
been roughed out slightly oversized with the first pass, the second pass
cuts the parts free from the sheet, to the final correct size, using a
conventional cutting direction. This technique yields uniform,
proper-sized parts since the sideways force on the bit is consistent on
all sides of all the parts.
A few more details complete the story. On all but the smallest parts
I’ve found that I can space the parts .30” apart – that’s .25” for the
bit diameter, .02” allowance for the finish pass on each part, plus an
extra .01” to make sure that the first part’s first cut, which is the
climb cut, does not encroach on the adjacent part’s .02” allowance. I
also place parts no closer than .30” to the edge of the sheet, to be
sure to remove the factory edge and not cut into the stops which I’ve
bolted to the edge of the table to aid in sheet placement. For smaller
parts such as rails which are typically only 4” wide and can be less
than 20” long in some cases I leave a full inch between them and the
next closest part. This leaves a skeleton of waste material surrounding
each small part which helps keep those parts from moving during the
final pass. If I had a more powerful vacuum system I probably would not
need to do this. It’s worth mentioning that even with a pretty decent
dust collection system the kerfs tend to stay full of sawdust even after
the second pass is complete. This is due to the fact that the
compression bit has only a short upcut segment on the end and is mostly
comprised of downcut geometry. Although it leaves more dust on the table
to be cleaned up between sheets, it works in my favor to preserve the
vacuum seal even towards the end of the second pass. As for cutting
speeds I’ve found I can run the router at 6ips for both passes for about
the first 15 sheets or so, then once the bit has some wear on it I have
to slow the first pass down to 4ips or the router sounds like it wants
to bog down a bit. I’m hoping once I upgrade to a spindle I’ll be able
to maintain the faster speed if not increase it some. I can usually get
25 sheets or more from a bit, which I then save for less demanding
cutting like raw MDF or thinner materials. For veneered MDF I keep the
speed at 4ips from the start as the router doesn’t like the faster speed
in the denser MDF core. Also, any machining such as pockets, grooves,
holes, etc. is done before the parts are cut out from the sheet to
ensure that the parts cannot move during the machining process.
 |
|
A sheet of closet parts ready for edgebanding. All machining
except for edgebanding is done on the Shopbot – grooves, holes,
notches, cutouts – whatever. |
Meet My New Friend, Cam -
June 2007
When I built
my vacuum table I knew there would be items which would not lend
themselves to being held down with the vacuum, so I incorporated
T-tracks into the table. Not being sure how I was going to use them, I
figured I’d come up with various hold-down devices as the need came up.
Well I’m pleasantly surprised to say that my first such device is an
unqualified success. It’s a cam-powered lever that bolts to the T-track
using an aluminum hub. The hub has a flange that keeps the whole
assembly tight to the table while allowing the plywood lever to pivot.
It only takes a small amount of offset in the cam – 1/16” seems to be
plenty – to create enough force to crush the edge of the workpiece.
The easiest way to describe how it works is to show you a few of the
set-ups I’ve found useful over the past few months.

Close up of cam
lever in action. The lever is made from Baltic Birch Plywood. |

The cam action
generates enough force to crush the soft mahogany. The shim
protects the edge of the door but is not needed for clamping. |

It
sure is nice when the size of the workpiece matches the T-track
layout. |

A Cypress door jamb is machined for hinges using cam levers and
stops which are bolted to the edge of the table. A plywood strip
spreads the clamping pressure, especially at the end where the
workpiece doesn’t reach the T-track, but care must be taken not
to make the caul too wide or there can be a tendency for the
workpiece and caul to “hinge” where they meet and rise off the
table. |

The working parts. The fixed wrench makes adjustments quick – a
half-turn to loosen the nut, slide the lever up tight to the
workpiece, and another half-turn to re-tighten. Then rotate the
handle away from the workpiece to tighten the cam. It takes
longer to describe than to do. |

Working prototype of the screw-down version, using a bushing and
fender washer instead of a hub. Also a good way to try the
system for yourself using hardware store parts and some scrap
plywood. |

The final screw-down version – a little smaller and lower
profile, with a smaller hub and hole sized for a screw - had no
problem securing these solid wood parts for edge notching. The
entire jig took only minutes to staple together and is itself
being held to the table with the vacuum system. |

Don’t try this at home! I should have used the screw-down
version, but I hadn’t made them yet – so I improvised. |

It was nice not having to run the vacuum for hours while these
keystones were being machined. |

Securing a large slab for surfacing. This is the application
that prompted me to create the cams in the first place. The
slab is from a local tree that fell over after Hurricane Ivan
passed through a few years ago. |

Gravity probably would have sufficed as a hold-down method on
this one, but why take chances? |
|
As you can see I've come up with new uses
for these cams on almost every job. I used to use all wood versions of
these and just put a screw in the center, but the center hole would wear
out making the cam unreliable, plus it required screwing multiple holes
into the table. The aluminum hub can be bolted (or screwed) tight to
the table without wearing out and the plywood handle is still free to
pivot but will not lift. The T-track versions work great and are easy
and quick to adjust but they take a little creativity sometimes when the
workpiece doesn't fit the track spacing. For smaller parts, I made a jig
with 2 fences that I can screw a couple of cams down on, then I can use
the T-track to bolt the jig down to the table. I designed a smaller
version of the hub that works well in this application.
For a little background on how I got some
hubs to try out, check
this
post from the TalkShopBot forum. Many thanks to Shawn Fennell for
making the first sets of hubs for me. So how can you get a set? Make
your own using these specs (pdf
version or dxf
version), have
some turned by a local machine shop or do what I did – work something
out with Shawn. Actually, for those who would rather buy than make,
send me an e-mail – if there is sufficient interest we’ll make enough
for everyone. You can also make a half-decent screw-down version using
a bushing and a fender washer instead of the aluminum hub. For light
cutting such as V-carving several 'botters have modified the concept to
use pegs and holes instead of the aluminum hub. See
here for an example.
I figured I’d have designed a bunch of
different hold-downs for the T-track by now, but so far the cam levers
have handled just about everything that wasn’t suitable for the vacuum
or just being bolted directly to the T-track. It’s proven to be a
simple solution that works.
Closets -
March 2007
 |
So my other psychic bid involved a query from a local closet
outfitter – he’s a one man show who installs closet shelving
similar to the big national companies you are probably familiar
with. Two of his brothers own a commercial cabinet shop and had
been providing all the shelving, but they had sold their shop
and he needed to find a new supplier. Now I’m no stranger to
melamine, and frankly, the idea of volunteering to handle a
mountain of the stuff every year does not appeal to me, but
something else did. I figured if I could outsource most of the
cutting and edgebanding, I could use the ShopBot for all the
machining. If I could create a system to process the closet
parts that almost anyone could follow, then I could get almost
anyone to do the actual work. In a nutshell, it has almost
turned out that way. |
I had done a small job using RTA
(ready-to-assemble) fittings – the ones that come with all that
flat-packed “furniture” where the end-user assembles it themselves with
a screwdriver – and I know that the big closet companies use them
routinely. My prospective customer was screwing all his parts together –
even though his brothers’ commercial casework shop had a high-dollar CNC
machine, they couldn’t be bothered to program each of his jobs so they
were just providing him with generic line-bored parts – holes all the
way up and he could use whichever ones he wanted on each panel. I told
him I could do at least as well to start with and eventually work out a
way to custom machine each panel for the RTA fittings, shelves and
hardware.
The closet program was one of the driving reasons behind building my
vacuum table and adding the air drill, both of which I completed last
summer just as we were finalizing our first few orders. Once the ShopBot
was ready, I spent close to 40 hours writing a bunch of part files that
would process each of the pieces needed to build a closet – side panels,
shelves, rails and drawers. I started with what was needed for the first
few jobs, then added options and features as they were required. It
turned out not to be too hard to implement the RTA fittings pretty early
in the process. It’s now six months later, and it has grown into what I
would call a suite of files including “master” files that allow the
operator to choose which type of part to machine and enter all the
pertinent information.
So what I do is buy bundles of melamine (a bundle is around 40 sheets)
and have it ripped to our standard sizes and edgebanded. Now if I were
back in the old shop with multiple employees and a nice panel saw I
could easily rip and band these parts in-house and save some money, but
with just me and a helper and my 10” tablesaw usually covered up with
regular cabinet work, that’s just not an option. So I ended up renting a
storage space down the street and filling it up with 4”, 12” and 16”
rips of edgebanded melamine, plus drawer material and some hardware. We
go grab whatever we’ll need for the next few jobs and start machining.
For side panels we put the full 8’ rips on the ShopBot, where they get
cut to length and drilled on one side, then flipped over and drilled on
the other side. For shelves and rails, we cut the edgebanded rips to
length on the tablesaw, then use the ShopBot to machine the ends for the
RTA fittings. I know we could be machining these parts out of full
sheets and just edgebanding them, and I may move in that direction
someday, but for now this system works well, mainly because there’s no
programming required for each job (and it’s easier on my poor old
edgebander).
It’s a pretty simple system that can be used by any reasonably
intelligent person to fill a closet order without my having to do much
of anything. It’s not exactly at the point where it runs itself; I’m
still spending several hours a week tweaking the files, overseeing the
production, training operators, etc., but we are consistently producing
well-fitting parts, and the sales, design and installation are all
handled by someone else. I certainly can’t say the whole program has
been free of problems (in fact I’m saving up a few of the problems for a
future installment) but it has become a nice little part of my business.
As a side benefit, it has caused me to evaluate how I process parts
through the shop, and I’ve been able to streamline my regular cabinet
production by using some of the techniques I developed for the closet
jobs.

One of the test assemblies during
the initial R&D stage. We soon switched from the zinc fittings
to white plastic, which are less expensive and seem to work
better. |

Each side panel is placed on one
half of the table where it gets cut to length and drilled on one
side, then flipped over onto the other half of the table to be
drilled on the other side. The operator starts at one end of a
wall, enters the critical dimensions and a code corresponding to
what type of drilling pattern is needed, and the machine drills
all the appropriate holes for one section of closet. |

Shelves are placed on one end of
the table to have one end machined, then slid to the other end
of the table to have their other end machined. It seems a little
labor intensive, but it goes quickly and there is no need for
programming or other compensation for the length of the part –
all shelves get machined the same way regardless of length. |

For the rails we use a mask to
block the airflow through the open area of the vacuum zone. |
 |
 |
| Orders come in via
e-mailed PDF plans and elevations, and stacks of finished parts
are picked up by the client. I never have to leave the shop. |
 |
 |
|
I’m told the finished jobs
look pretty good, although I’ve only seen one or two in person.
|
Psychic Bids -
January 2007
 |
In the venerable card game Bridge, bidding
follows a carefully proscribed set of rules and formulas, in
order to provide accurate communications and allow partners to
reach the most advantageous contract. Deviating from these rules
is liable to provoke the ire of one’s partner and opponents, and
cause the bidders to wind up with a losing hand. But every so
often a Bridge player will make what is referred to as a
“Psychic Bid”, where something unusual spurs the player to make
a bid that is not logically indicated, because of an unexplained
but strong feeling that it’s the right way to proceed. I mention
this because in the last year or so I have had two opportunities
to bid on jobs that on 99 days out of 100 I would have turned
down outright, but which for some unexplained reason I was moved
to follow up on, with successful results. |
The first was just about a year ago, when I received
a somewhat cryptic e-mail asking if I could handle a rush job involving
assembling and veneering some curved parts which turned out to be a
prototype pair of high-end audio speakers. Now if this request had
arrived on any other day last year, I would simply have been too busy to
even consider taking on another job, especially a rush job. But as it
happens I was enjoying a rare break after a long period of being slammed
with work, and the job I was working on was not time-critical. So I took
the bait and said I could squeeze in a 2 or 3 day job, charging for my
time and material.
Well, it turns out the parts I was being asked to
veneer were still being fabricated, in Oregon, about 3,000 miles away,
as that was the only place this poor client, who lives 15 miles away,
had found that was capable of producing this product for him. He was
quick to point out that they were using a 5-axis machine, which I found
curious since his product could easily be produced with a 3-axis machine
– my ShopBot.
However, once I saw the final specs and photos, I
started to wonder what I had gotten myself into. The speaker faces were
a single, tall sculpted wave form, with recessed openings which would be
nearly impossible to veneer after machining. I’ve long ago given up on
veneering with contact cement, so unless I can use clamps or a vacuum
bag I won’t touch it, and I started to get a headache trying to figure
out how to veneer the sides of all those openings. So it occurred to me
that if I inlayed solid wood into the opening area, then veneered over
it, I could rout through the veneer, exposing the solid wood and
eliminating the problem.
But that lead to a dilemma. I was 98% sure my
proposed method would work, but the client was already paying for the
parts which he had ordered from Oregon, and he was short on time – the
finished product had to ship in 3 weeks in order to make the annual
Consumer Electronics Show – a debut for which he had been preparing for
months if not years, and was heavily committed to financially. He was
not likely to be open to changing course that dramatically with so much
at stake. But I had no intention of getting bogged down in an impossible
veneering project, and at this point he was expecting me to do the work.
The Oregonian parts were due in 3 or 4 days.
|

Layers of
MDF were glued up in a vacuum press. The newspaper helps keep
excess glue from sticking to the press and will be machined
away. The glued up blank was routed to accept solid wood inlays
where the openings would eventually be. |

After gluing
solid Maple into the openings, the final wave shape was machined
using a ½” diameter ball-end bit. |
|

The edges
were veneered using clamps and cauls; the face was veneered in
the vacuum press. |

Routing the
openings and a light sanding completed the sample. |
So for reasons I still don’t quite understand, I
took the plunge. I put out a call for help on the ShopBot Forum, and in
a few hours I had the 3D toolpath I needed to machine the wave pattern.
I laid out the details in DesignCad, and got to work. I spent most of a
weekend ignoring my family, laying up MDF, inlaying solid Maple,
machining the wave, veneering the face, and routing the openings. Sure
enough, my method worked like a charm. By the time the client came to
the shop to meet for the first time (we had been communicating solely by
e-mail up to that point, and I had no deposit or firm commitment from
him to give me the job) I had a completed, veneered sample.

The first
full set of speakers in production. Each finished speaker
is 5’ high, and consists of three of the curved faces that
made up the sample. |

Final
machining of one complete speaker face. This set is made
with Cherry veneers and solid wood. The long opening is for
a “ribbon” tweeter. |

A detail shot of the Cherry
wood peeking through from under the veneer. |

After spraying the ends with
dye stain, I stacked the boxes up to stain the sides. |
When the client saw the sample, I didn’t have to say
anything. He knew immediately that I was capable of producing the
quality work he was looking for, and that my method of construction was
equal to if not better than what he had designed and ordered from
Oregon. He gave me the go-ahead right then, even though the parts from
Oregon had yet to arrive. Turns out it was a good thing, too, because
the long-awaited parts were completely unusable – poorly machined,
ill-fitting, and damaged in shipping. I’ve now completed 3 sets of
speakers for this client, with total billings exceeding $20,000, all at
my regular hourly rate plus expenses. If not for the ShopBot and my
psychic bid, I might never have even answered his e-mail.
I’ll have to tell you about my other psychic bid in
a future installment.
 |
One sixth of a
finished set of speakers, ready for hardware. |
Vacuum Table ... ultra! -
October 2006
 |
A few months ago I replaced the worn out
plywood and MDF table which came with my ‘bot (the demo model
from the 2004 IWF) with a custom-designed 8 zone vacuum table.
There has been a lot of interest in vacuum tables recently, and
since I posted a few pictures of my newly upgraded setup on the
TalkShopBot Forum I’ve received several questions and requests
for more info, so I thought I’d share some details. Now that
it’s been in service for more than a few jobs I can safely say
it works well, however keep in mind I designed this system to
suit my particular needs so your mileage may vary. |
I started by laminating a piece of ¾” 4x8 Baltic
Birch Plywood with 2 sheets of “brown backer” laminate, which I figured
would help minimize changes in moisture content and help stiffen the
plywood. It also made the surface non-porous, which would come in handy
as the plywood serves as the bottom layer of my vacuum platen, and with
the laminate layer on top of the plywood I don’t need to worry about
losing vacuum through the bottom of the platen. I then bolted the
plywood to the steel cross supports using countersunk holes, but not
before carefully checking the limits of travel of the machine so that I
was sure both my router and my drill unit would be able to traverse the
entire length of a 96” (or 97”) sheet. By moving the gantry all the way
to one end and then the other and making note of the tool locations at
each extreme I determined there was only about ½” of leeway as to where
I could bolt the plywood down and still have full machining capabilities
with both tools. The table ended up only about ¼” off center from the
cross supports in the X direction. In the Y direction I determined that
by centering the table on the cross supports I had the maximum
flexibility to reach the edge of the workpiece with the router and would
still be able to reach the entire sheet with the air drill, which is
offset from the router about an inch in the Y direction.
So now I had the plywood bolted down and in the
proper position. I measured the locations of the steel cross supports
and drew them in my CAD drawing of the table, to be sure my plumbing
holes, T-track and such would not conflict. This allowed me to lay out
my vacuum zones, plumbing, and T-track locations. The fun was just
beginning.

Gluing the MDF
platen down in four pieces -
the first piece is done, the second is being glued (using a
melamine cover to block the airflow), and the third piece, shown
upside down, is ready to go. |
Although I had been planning (and dreaming
about) the new table for some time, I hadn’t figured out how to
bond the MDF layer that would serve as the vacuum platen to the
plywood/laminate sandwich. But I had been scouring the Forum
regularly for ideas and sure enough Brady Watson came through
with his idea about a one-piece platen/spoilboard. I modified
his idea for the next step. After scuff-sanding the brown
laminate with a handheld belt-sander, I used the Shopbot to rout
holes for my Fein vacuum hoses where the larger holes for the 2”
PVC plumbing would eventually go. I then cut the MDF platen into
4 quadrants, and routed a simple grid into one face of each
quadrant. By flipping the MDF and placing it over the table with
the routed grooves down, I was able to securely glue the platen
to the table, one quadrant at a time, using polyurethane glue
and the Fein vacs hooked up to 2 holes per quadrant. (If you use
polyurethane glue, use it sparingly – just enough to wet the
surface. A short piece of baseboard or crown molding makes a
great glue spreader.) I followed this with a border of solid
hardwood glued and clamped to the underside of the table, all
the way around the perimeter. I figured this would add
stiffness, make clamping easier (not that I expect to do much
clamping with the new vacuum table, but you never know, right?)
and make it easier to attach stops securely to the edges of the
table. |

A strip of edgebanding between the platen
quarters blocks air from leaking between zones. |

The vacuum grooves are cut and hardwood edging is
being glued to the underside of the perimeter. |
Once the layers were built up, I used the ‘Bot to
trim all four edges of the table, being careful about the location of
the cross supports. I then surfaced the MDF platen flat, routed the
grooves for the T-track and the vacuum grid, and enlarged the holes to
fit the 2” PVC. [My PartWizard .art file
for the grid and track. To download, right-click this link and save file
to your computer.] I secured the T-track using epoxy and screws. I’ve only
had a need for the T-track once in 3 months, but I expected it to be one
of those things that while only used occasionally makes life much easier
when it does get used. It did complicate the design and construction (as
well as adding to the cost), so I suppose you could leave it out and
still have a mighty nice vacuum table, but knowing the variety of tasks
I use my machine for I’m glad I went to the trouble and expense. I have
some ideas for hold-downs, which once I get a chance to fabricate them
will make the T-track much more valuable to me. A note of caution – the
T-track results in my having little or no vacuum on the last couple of
inches of table at each end. So far I have not found this to be a major
problem, but it is something I have to keep in mind.

The three layers, ready for trimming. The gap in
the MDF will be enlarged and filled with T-track. |

I held my breath while the cutter trimmed the
edges, oh so close to the steel cross supports. |
While I was planning and working on the table I was
laying out the PVC plumbing and the 16 valves (!) which are the key to
my 8-zone system. I do a fair bit of repetitive work on pieces much
smaller than 4’ x 8’, so it was important to me to be able to alternate
between two zones – while the machine cuts a part, I can be preparing
the next part to be machined on the other end of the table. So my system
is designed to be used with two vacuum motors, each with a manifold and
8 valves. Fitting and gluing up the pipe and valves was quite an
exercise – there are a lot of small parts and fittings, all glued up
into one rather large assembly, so it took some planning to figure out
what order to assemble the parts in and how to keep everything aligned.
The final part of the plumbing system involved connecting the Fein vacs
to the manifolds. As it turned out, I had a 2” shopvac hose from a
recently retired (read: worn out) old wet-dry vac, which fit perfectly
into the Fein outlets and the 2” PVC “T” fittings. A couple of vacuum
gauges allow me to monitor the holding power, which is substantial. I
finished up with an MDF spoilboard, which I surfaced on both faces to
facilitate airflow.

The PVC was made up in two large subassemblies.
It was a bit of a pain, but it works. |

Shop-made pipe hangers for the longer
runs to the rear zones. |

I shimmed the PVC in place, centered in the hole,
then sealed it up. |

The completed plumbing system. Some day I may add
wood handles to make the valves easier to operate. |

2" Shop-vac hose connects the motors to the
manifolds. Vacuum gauges let me know how much holding power I
have to work with. |
So how well does it work? In a word, great! The
freedom to place almost any flat workpiece on the table, hit a switch
and start cutting is empowering. No more screwing workpieces down and
keeping fingers crossed that I put the screws in the right places. No
more time wasted creating and running an extra toolpath to locate
“safe-screwing” spots. No more clamping the corners of a sheet and
running around the machine moving clamps as the parts are cut up. My
confidence level increased and set up times decreased substantially. As
a bonus, many cuts are cleaner and more chatter-free as the workpieces
are securely held at every spot, not just where I put screws or clamps.
I can now concentrate on tooling, feed speeds, and cutting strategies
instead of worrying about how to hold the workpiece while cutting. Many
smaller tasks are now cost effective, whereas previously it would have
taken longer to secure the workpiece (and work around the clamps and
screws) than it would take to do the task by hand. In short, adding the
vacuum table has proven to be one of the most effective upgrades I could
have made.
 |
Done. Ready to start cutting! |
 |
I knew the T-track would come in handy
sooner or later. |
Not a Square Corner -
June 2006
Here’s a project I
completed earlier this year, which if not for CAD and the ShopBot might
have had me running screaming from the customers’ house. This was for
long-time clients who own an unusual home characterized by round and
curved walls, many of which are made of solid stone. The challenge was
to update the bar in the photo with modern cabinetry.
|

This bar from
the 1960’s was ready for updating. |
After an hour
of head scratching and brainstorming we determined that the
walls, while obviously curved, were not a true arc, and that the
original builder had done a pretty good job of laying out the
original cabinets along the freeform curve. We were able to
mostly follow the original footprint. At this point I was
prepared to make a plywood template and use the ShopBot probe to
get the shape into the CAD program (I use DesignCad), but as
luck would have it the countertop supplier had a digital
templating system, which allowed him to take a few pictures of
the existing cabinetry and e-mail the resulting .dxf file to me.
What could be easier?
|
 |
I convinced
the clients that filling the angled cabinets with angled
drawers, even though they would lose the triangular spaces
between the cabinets, would provide better access to the
contents of the cabinets. I’ve made angled drawers before
(before I started using the computer for all my drawings), but
these were more complicated. Each angle was unique due to the
freehand curve of the wall. Using the computer for laying out
the cabinets and drawers made it easy to determine the length
and angle of each component, not to mention how and where to
mount the drawer slides.
Part of the CAD drawing showing the cabinet and
drawer construction. Dimensions and angles are but a few clicks
away.
|
I used the ShopBot
to cut out all the angled parts, namely the cabinet tops and bottoms,
the drawer bottoms, and various spacers for between cabinets and around
the curved paneled wall (which we kept as a backer for the new Basswood
paneling, another unique feature of the rest of the home). I also used
the ShopBot to make a 1/4” plywood template to lay out on the bare
subfloor to verify the cabinet locations and to help the plumber
determine where to rough in the new water supply and drain pipes.
 |
 |
|
| The
cabinets were not that unusual, except for the angled bottoms. |
Even with no two angles the
same, the drawers fit the cabinets just right. I hated telling
the customer that the computer did all the hard work.
|
|
To fit the zinc bar
top to the rock wall, I used the ShopBot to cut a template of the bar
top out of ¼” plywood. I fitted the plywood template to the rock with a
scribe, jigsaw, utility knife, and file, then used the ShopBot to probe
the scribed end of the template. I sent the bar top fabricator a .dxf
file of the bar top, including the scribed end, and several weeks later
a crate arrived with the already fitted zinc-covered bar top, ready to
be set in place. Sweet.
 |
 |
|
The finished
product. In the foreground are glass doors on each cabinet end.
Wedge-shaped glass shelves utilize the space and allow the
client to show his shot glass collection.
|
Angled drawers take some
patience and brain power, even with computer assistance, but the
results are worth it. No more bending down to reach into the
backs of those awkward shaped cabinets.
|
|
 |
The most
challenging part of the job was the curved wood backsplash. I
built a full-sized form using pieces cut with the ShopBot from
some scrap leftover from a previous job. Then using a pre-kerfed
material called Timberflex and layers of 1/8” bending plywood I
glued the layers together using 3” stretch wrap to secure the
assembly against the form. The angled returns at each end almost
had me stumped. I tried to figure out some way to hold the giant
horseshoe-shaped piece of Basswood-veneered spaghetti up to the
miter saw, then finally dug out an old crosscut handsaw I was
given years ago by a distant relative in the tool business. I
was able to handsaw the joints close enough to clean them up
with a sharp handplane. Once the ends were sawn off I cut the
matching miters on the short return pieces normally on the chop
saw. |
 |
 |
 |
|
Bricklaying the form for the wooden splash. The sizes of the
pieces are dictated by the sizes of the scraps on hand in the
shop. |
Building up the splash. Stretch-wrap holds the first few layers
together and to the form while the glue dries. The inner layer
is already veneered with Basswood. A solid Basswood cap will be
added once the layers are built up. |
The hardest part of the
whole job. It’s hard enough to get a reference from a curved
workpiece, but when it’s difficult to handle as well it can be
the stuff of nightmares. A handsaw saved the day. |
 |
If I implied
earlier that not having the computer and the ShopBot would have
made this job difficult if not impossible, I was exaggerating a
little. Curves and angles have been part of construction and
cabinetmaking since long before computers came on the scene. In
fact, the first round room I ever built cabinets for was in this
same house. One of the first jobs I did for these clients was
over ten years ago, when I replaced the cabinets in their
semi-circular, rock-walled kitchen – sound familiar? Except that
was when I was just starting out with CAD, and of course all the
parts had to be cut out by hand using full-sized templates and a
fair bit of guess work. |
Let’s just say I can
personally attest to the fact that the new way is much easier and less
prone to errors.
Here’s to a safe and happy July 4th for everyone.
It's Not the Equipment - May 2006
 |
|
A sliding table attachment,
overarm guard, dust collection and outfeed tables give this
basic cabinet
saw flexibility and convenience. |
Like most cabinet shops, the bulk of my work can be
broken down into cutout, other machining, assembly and (sometimes)
finishing. The heart of my shop (and I suspect most others) is the
tablesaw. While I miss the sliding table panel saw I had in my previous,
larger shop, I don’t miss the monthly payments at all. I’m currently
using a Jet cabinet saw, with an Excalibur aftermarket sliding table
attachment and an overarm guard/dust extractor. The sliding table
attachment is absolutely critical for being able to make square cuts
easily on large or long pieces, and I have found it to be very reliable
for maintaining squareness of cuts. The overarm guard seemed like an
optional accessory at the time, but it improves safety and eliminates
the sawdust from being thrown at my face while cutting to the point that
I now cringe when using another saw without one. (I know too many
woodworkers who have to remove their shoes to count to ten.) It also
raises and swivels out of the way easily for those operations where it
would interfere, which makes it much more likely to be used for the next
operation than a guard that has to be removed and re-installed. The lack
of a scoring blade is a definite disadvantage, one that I overcome as
best as possible by keeping blades sharp and the saw well-tuned. While
the tablesaw does most of my cutting out, I also have a dedicated
miter-saw station, bandsaw, and of course the ShopBot for those cuts
that the tablesaw can’t handle effectively. Why not use the ShopBot for
all my panel cutting? Mainly because I’m just not there yet with my
software, panel hold-down system, or spindle. I hope to make that
transition to mostly automated panel processing over the next year or
two (and to document the good, the bad, and the ugly in this column as I
go – so stick around!). But even so the tablesaw will always have an
important place in the heart of my shop.
The rest of my panel processing equipment includes
an antique Brandt edgebander (from 1992, but still going strong) and a
Blum line boring/hinge boring machine, which will be used less and less
for line boring as that operation is moved to the ‘Bot. Most of my panel
joinery is done with a pneumatic stapler and particleboard screws, but I
also use a Kreg pocket screw machine and a DeWalt biscuit joiner when
appropriate.
 |
|
This wide-belt sander makes
quick work of processing wide panels, and makes a tedious job
tolerable. The panels were surfaced on the ShopBot to make them
flat before sanding. |
For solid wood machining, I have the basics: 6”
Powermatic jointer, 15” Jet planer, 18” Jet bandsaw, a shop-made router
table, and plenty of hand tools. But I do have one other machine that
has revolutionized my work almost as much as the ShopBot: a 36” widebelt
sander, an entry-level model made by Timesavers, called a Speedsander.
For both veneered panels and solid wood, it has made a previously
tedious job tolerable and profitable. I’ve found that by using the
ShopBot to surface wide or glued-up boards, and the Speedsander to
smooth them, I can easily work with slabs or edge-glued panels up to 36”
wide. It even has wheels so I can move it out of the way between uses.
I’ll tell you about my veneer press some other day –
that may get its own installment here one day soon.
But in the end it’s not the equipment or tooling
that produces results in the shop, it’s what we do with them. When I
first started out (back in the parents’ basement) I made some pretty
nice pieces using not much more than an old radial-arm saw and a
Craftsman router mounted upside down under a piece of plywood. What the
shop full of goodies does is let me produce quality work easily and
efficiently – which allows me to stay in business and feed my family.
More Work in a Day - March 2006
How would you like a raise? I knew that would get
your attention. Well, I realized a few years ago that there were two
basic ways I could make more money doing woodworking, which as we all
know is not the easiest way to make a living. I could either charge more
for the same product (and then have to work harder to make the sale) or
I could figure out how to get more work done in a day. Maybe it’s just
laziness, but I am constantly thinking about how I can accomplish the
greatest amount of work with the least amount of effort. I’ve identified
two areas which seem to have the biggest potential for eliminating
wasted effort and streamlining production.
The first involves analyzing the flow of work
through the shop and figuring out areas where small changes can save
steps or eliminate operations. Here’s an example: My edgebander does a
decent job but the end trimmers leave something to be desired; they
often chew up the end of the tape or cut it cleanly but not flush to the
substrate. I would have to block sand the ends of every part before
assembly to clean up after the machine. So it occurred to me that if I
edgeband the 8’ long rips before crosscutting the parts to length, the
tablesaw would cut the edgetape and the substrate simultaneously. So now
not only is every end cut perfectly without my even having to think
about it (let alone hand sand each and every one), but it turns out it’s
more efficient to handle the 8’ rips instead of keeping track of
multiple parts and which edges get banded, etc. So there were additional
savings beyond what I had expected.
 |
|
An entire
kitchen worth of cabinet parts stacked up, primed,
and ready for
lacquer, lets me finish before I’ve even begun! |
But it gets better. I often find that the
streamlining is an incremental process, where one improvement leads to
another until after a while the entire production method looks little
like it did before the process began. For instance, I always finish the
banded edges of my frameless cabinets to match the doors, so that any
edge that shows through cracks between doors or next to a door blends
in. Initially that involved masking every cabinet after assembly, a time
consuming job no matter how you do it. Well I noticed that I could
finish the edges of the shelves by stacking them up and just finishing
the stack of edges, and only have to mask the top shelf in the stack. So
I had the breakthrough idea of stacking all the parts and finishing all
the edges in a big stack before assembling the cabinets! Maybe some of
you have been doing this for years and I’m just a little slow, but for
me this was a huge time-saver. No more masking!! I really patted myself
on the back for that one. But then I realized that if I was edgebanding
the long rips before crosscutting, why not stack up the 8’ rips and
prefinish the entire job before crosscutting the parts? Between this
change and many others I have reduced the time it takes me to produce a
set of cabinets from weeks to days, and increased my bottom line
tremendously.
 |
|
Sign of a sick
mind? Maybe, but one which knows where all its tools are. With
this wheeled cart, everything I’m likely to need can be rolled
over to anywhere in the shop. |
The second area worth looking at involves set-up
times. I’m talking about the amount of work you have to do before you
can actually turn on a machine or pick up a staple gun and start
stapling. This might not apply as much in a large production shop where
the workflow doesn’t vary from day to day, and each station or machine
does the same thing, day in, day out; but in a custom shop we might be
building melamine kitchen cabinets one week, a veneered bedroom suite
the next, and who knows what after that, all in the same space and with
the same equipment. If it takes 15 minutes to clear off the router table
before you can put a bit in it you aren’t getting paid for that 15
minutes. So I’m always looking to minimize set-up times, and I’ve found
a couple of ways to do that. First of course is to have the shop itself
organized to minimize steps and to allow each machine to be used without
having to do any re-arranging. That’s pretty basic stuff. But a less
obvious step is to stock each machine or area with the tools and
materials needed to maintain and operate it efficiently. For instance,
my ShopBot is located at one end of my shop, and my assembly area is at
the other end. So I constantly found myself walking back and forth
across the shop to fetch a sanding block and bench brush to clean the
platten off – now the ShopBot has its own sanding block and brush
dedicated to that end of the shop. I haven’t bit the bullet and
stationed a cordless drill at the ShopBot yet, but that’s a logical next
step. I also try to organize each station or area so that tools and
supplies are easily accessible, and I can see at a glance if anything is
missing or needs to be replenished.
The other method I use to minimize the cost of
set-up times is to combine jobs and organize workflow to get as many
jobs or as much material through a machine or operation while it’s set
up for a particular task. Even though my tablesaw is always ready for
cutting, it takes at least a few minutes (or more) to get ready to cut
out a large job. I’ll often cut and edgeband parts for any small jobs in
the cue at the same time as a larger job, then set those parts aside for
later assembly. That way I’ve essentially eliminated the set-up time on
those operations for the smaller jobs, on which the set-ups often take
as long as the operation itself. It’s the same thing as picking up milk
on the way home instead of going back out to get some later.
I think next time I’ll highlight some of the
machines I use regularly to keep product going out the door and sawdust
in the bin. But this column is here for you so if there’s anything you’d
like to see here just let me know.
First Report - February 2006
Why the sandbox? That’s my wife’s pet name for my shop – a place
full of my toys, where I get to make all the rules – heck, I don’t
even have to put the toilet seat down. The name is fitting, I
suppose. Most of the time I’m fortunate in that being in the shop
feels more like playing rather than working. So who am I and why an
I writing this?
Maybe I can answer both questions at once. I’ve been involved in
woodworking for (gulp) 25 years. I started by doing odd carpentry
jobs while working out of my parents’ basement (at least they let me
sleep upstairs). I managed to work a few furniture projects in, a
couple of which weren’t bad for a beginner (the others were bad).
After a brief attempt at college (I almost became an electrical
engineer – whew, that was close), my springboard into life in the
real world was a two year stint studying under Ian Kirby, a
traditionally trained woodworker, writer and teacher, during which
time I earned a foundation of woodworking theory, hand and machine
tool use, drawing and design that I am still building on today.
This brief period of exploration and enlightenment was followed by
many years of blundering, missteps and mistakes – at least that’s
what it felt like some days. Since 1988 I’ve been self-employed
building custom residential cabinetry, built-ins and furniture,
beginning with a single helper and growing steadily to as many as 10
employees, and (sparing you many agonizing details here) now have
come full circle to a shop attached to my house, with a single
helper.
So what’s different about that compared to working out of my
parents’ basement? Well, other than having a much better equipped
(not to mention better lit) shop, the difference is that (gulp) 25
years of experience. In those years I’m watched a lot of good ideas
turn out to be not so good, seen some changes (mostly improvements)
in how things are done in a woodshop, and learned a few techniques
that make my job easier and keep the phone ringing. While it’s
impossible to teach experience, I’m happy to share some of what I’ve
found along the way in the hopes of helping those who are not as far
along the path to avoid some of the pitfalls I’ve fallen into; and
since I think I still have a ways to go myself I also hope to bounce
some ideas off of y’all and maybe pick up a new trick or two along
the way.
Now, it’s back to my sandbox…
|