Products        Applications      People      Support       Company     
  
Custom Search

Bill's Corner Articles
  - A Simple Stool
  - Stool Files
  - Dinosaur Part 1
  - Making stuff
  - Exploring Part Files 2
  - Exploring Part Files
  - The Extruder
  - Hacking the ShopBot
  - Table Base Coordinates
  - File Runner Program
  - about Bill

ShopBot HOME PAGE

©2006-2010 ShopBot Tools, Inc. All rights reserved. All information is correct to the best of our knowledge but prices, descriptions, and typos may change without warning.
Terms of Use

 

 

   

 

 
 [ Read about Bill]

by Bill Young, Seaside Small Craft, Willis Wharf VA


>>> FOLLOW NEW POSTINGS IN BILL's COLUMN IN OUR NEW FORMAT (Click!) 

Bill also maintains our ShopBot Labs site where you can putter with projects in various stages of development.

See Bill featured in ShopBot's ad in the current issue of Make Magazine, available now at Barnes & Noble, other fine bookstores and news stands and online at www.makezine.com.

 

If you're using your ShopBot for a unique application and would like to be featured in a future ShopBot ad, send your story to ShopBot.

 

If you were in San Mateo, CA in May we hope you made it to the ShopBot Jamboree, and Make Magazine's Maker Faire, a fascinating celebration of 21st century creativity and ingenuity.  The ShopBot Jamboree ran May 17-18 and the Maker Faire ran May 19-20.

 

 

 

Something simple - Sept 2008

There are lots of times when you want to be just as clever and creative as you can be when you're designing a project, and others when you just want something that solves the problem...something simple. Just recently I was asked to come up with some outdoor seating for the Maker Faire in Austin, so that attendees would have a place to sit and eat or just take a break. Both the design time and production time were short, so instead of spending a lot of time developing fancy joinery or very elaborate design features I decided to do the most basic design that I could come up with. It just needed to be sturdy and functional...nothing more.

Seating like this really needs some weight and to look like it has some substance to it, so 3/4" material seemed like the right choice. They needed to easily come apart for storage and shipping, so each one needed to have a minimum number of parts and should only go together one way...foolproof assembly was critical. Although it's fun to figure out fancy snap-together joinery, this time a couple of drywall screws would work well enough. And of course the ShopBot and Make logos had to appear somewhere!

A simple circular top seemed logical, with crossed legs that slotted together and screws through the top to hold it all together. Tabs on the top of the legs fit into slots in the seat, and to make sure that it was easy to assemble the tabs and slots were of different lengths for the two leg pieces so that the seat would only fit one way. Handholes in the seat would make them easy to carry, and since we were v-carving the logos already, a couple of dimples in the seats would both mark the screw locations and give them a countersink. A little time drawing with TurboCAD and the design was done...5 stools fit on a sheet of ply.



 


Once the design was finished, importing the CAD file into Sketchup let us see what the assembled stool will look like...




...then into Partworks to create "dogbones" in the inside corners where parts fit together, so that there wouldn't be an fit problem caused with the radius that's left in inside corners by router bits. Next came creating toolpaths. The first toolpath used a 90 degree v-bit to cut the ShopBot and Make logos and the dimples for the drywall screws that held it all together, and the second a 3/8" straight bit to cut out the parts. Even though I use vacuum to hold the sheets down to the table, tabs were generated in PartWorks to help keep everything in place, just in case. The v-carve file took about 11 minutes to cut and the profile cutout took another 13 minutes to cut in 2 passes. Once the cutting was finished, the sheets were flipped and the tabs are cut with a laminate trimmer and piloted trimmer bit.

 

 



 

We tried cutting the first couple of sets out of both AC Pine and AC Fir plywood, but it was just too splintery to make a good seat and there wasn't time (or motivation!) to do any sanding. We finally settled on Advantech, an underlayment material that's similar to OSB but with a protective coating and a 50 year warranty. I've never used it before for anything that will be outside, but it cuts well and is reasonably priced.

 



At this point it was easy to make changes to the drawings...it was just a matter of modifying the drawings...so some taller stools for our booth at the Maker Faire made sense. The original stools were 18" high...23" and 28" seemed like good options for booth seating. Here are the three sizes of stools:



Start to finish we've probably got 8 hours in this project, including design and cutting time. There are lots of ways that these could have been done differently and been much more interesting, but sometimes the simplest solution can be the best one for the job at hand.

 

Oct 22 update: Stool Files

 

During the Maker Faire a lot of ShopBotters asked for the files for the stools, so I've assembled a zip file with the part files to cut out 5 stools from a sheet of 3/4" ply and to v-carve the ShopBot and Make magazine logos. There's info on cutting the files along with the standard licensing information in the header of the part files, so be sure to read the files with the ShopBot editor before running them.

The material I used was actually .72" thick so that's what the files were created for, but the PartWorks file is included as well so that you can modify it to fit your material or preferences. It also includes a dxf file of the parts, which includes 23" and 28" tall versions. The dxf file just has the basic geometry and none of the fillets or "dogbone" corners where parts intersect...they are included in the PartWorks file though.

My hope is that you will use this as a starting point and that you will modify the design to make it both more interesting and more personal. If you make any changes it would be great to see what you do, so please send pictures.

 

[Download the zip file here]

 

 


 

A ShopBotting Dinosaur Evolves...part 1 - June 2008

I've probably been making things with a ShopBot as long as anyone, except of course for Ted. I got one of the first tools...so early in ShopBot's history that Ted came to my shop to help put my ShopBot together!... but by the end of the first week had already cut the parts for a small canoe. Everything ran in DOS...including EasyCAD, the CAD program I was using...and there were no toolpathing programs that output ShopBot code, no dxf convertor, no forum, website, or wiki, and as far as I knew no other ShopBotters in the Universe. Talk about a learning curve! Eventually a couple of us discovered each other...Bill Palumbo and Bob Grimm were two of the first ShopBotters I met...and we all started to learn how to do a few things and get a little more efficient. I even learned a little programming and got pretty good with CAD software.

But this is not a history lesson, it's more of a confession. At some point in the process, I found a system that worked well for me and just STOPPED EVOLVING. I still built lots of cool things and really enjoyed the process, but I had my own quirky way of doing things. I was happy with the way I was working and it worked well for me, but it was definitely funky and "old school".

I would still be stuck in the ShopBot stone age, happily cutting boat kits and strange on-off projects, if I hadn't gotten involved with the FabLab in Boston and met Larry Sass, an Architecture professor at MIT. Larry runs the Digital Design Fabrication program there and had a vision of using CNC tools to cut out the parts for houses. Not only did he have the vision, he had actually designed and built a prototype cabin to prove that the idea worked. And it turned out that both mechanically and philosophically, ShopBot fit perfectly with his vision. Larry and I met again in Chicago at a FabLab symposium and he started talking about a "project" that he was working on that a ShopBot would be perfect for. It turned out he was one of 5 architects out of several hundred that had been selected to have a house in the Home Delivery show of manufactured housing at the Museum of Modern Art in New York, and his entry was a New-Orleans style shotgun house that he wanted to cut on a ShopBot. I was excited about the project and jumped at the chance, but had a dilemma. I would have people working with me on this project, and my quirky old dinosaur ways of doing things just wouldn't work.

Let me give you a quick example. Safety is extremely important, and something that I’m afraid I do a somewhat pitiful job of…with plenty of scars to prove it! I TRY to be safe, though, so in my usual half-baked way I had made my own EStop switches out of push-pull switches, the ones that control a boat’s running lights. The shiny chrome knob didn’t really seem to scream “Safety Switch” to me, so the obvious (to me at least) solution was to hot-glue the red cap from a Butane Cigarette Lighter refill can onto the knob! Although it worked just fine in a shop by myself...if I got hurt it was my own stupid fault...in my heart I knew that this kind of jack-leg solution wouldn’t work when others were using the tools and shop. The time had come… I had to evolve!

Some 21st century ShopBots to do the work:

I started ShopBotting in the cable-drive days and eventually upgraded to rack-and-pinion drive...an incredible improvement. It worked so well for me that it was as far as I went. My current ShopBot still ran on Utility Strut rails and used the small stepper motors with ShopBot-made belt drive boxes. It's table...the third in a series... is made of wood, laminated this time out of 3 layers of 1x12, and has a 6" thick foam panel for a table. It can happily cut at 1" a second...well, most of the time...and jog at a blazing 1.5" a sec!

 

 

This is all just fine when you're working by yourself and have a 100 other things to do while the tool is cutting...sometimes you don't WANT the cutting to be done too quickly! But cutting this house would require cutting lots of sheet goods and doing it fast enough to keep several Grad students busy...1" a sec (if I was lucky) just wouldn't cut it. The only choice was a brand new PRSAlpha 96x60, so I put in my order and got on the list. And there was no point cutting with my usual Porter Cable routers with my shiny new ShopBot, so a 2hp HSD spindle went on the list too. This was a production job and needed a production setup!

As time passed, the job kept growing (up to 500 sheets of mixed 1/2" and 3/4" material) and the start date became later, and I started thinking about ways to make sure that it got done in time. The logical solution was a second tool, so a PRS 96x48 was ordered, thinking that one machine would be cutting while the other was being unloaded, cleaned off, and loaded with a new sheet. The second tool was picked up at the end of May and assembled next to the first.

(note to prospective ShopBot purchasers: Even though I work for ShopBot and have been involved since the beginning, I STILL had to wait in the queue just like everyone else to get the tools! And I TRIED to pull strings! So when you’re waiting for your tool to ship, just remember that even Bill Young had to wait in line! )

The shop: a new home to work in:

My old shop was big enough...45' x 90'...but only has 7' ceilings. It's also full of 15 years of my accumulated tools, boat parts,  shedded snake skins, and all kinds of assorted treasures (junk!), and is just not setup for the kind of cutting that we would be doing...500+ sheets of ply and 40 sheets of plastic in less than a month. Fortunately a friend had a neat old building for rent that was 25-40' and had 12' ceilings...the perfect place to prototype a house... so I rented it to do this project in. It had a new electrical service and even some storefront windows if I wanted to display anything. I was determined not to fill it up with all the misc "valuables" that my current shop contains, and became very selective about what I brought in. Even did a Sketchup model of it to help lay things out!


New computers for new tools:

Ever since I started ShopBotting I’d always just used my old castoff computers that were too slow to do anything else with to run my ShopBot, which meant that they were always having troubles and needing repairs. The current computer runs Windows 98, has a 1.2 gig harddrive, a 15” CRT monitor, and has lost both it’s side cover and front panel so is always full of dust. Oh yeah, the power switch had died a year or so ago so to turn it on you had to short one of the bare switch wires to something metal on the case…definitely low tech.

That just wouldn’t do for my new Shop and ShopBots, so two new Dell VOSTRO computers (with 2 gigs of ram, dual core processors, and 20” LCD monitors no less) were ordered to run the tools. I even took one for the team and ordered one with Vista Business, to help with troubleshooting any problems with Vista. The computers were mounted on shelves on the end wall of the shop, along with the Control Boxes, VFDs for the spindles, and switches for vacuum holddown motors. This setup kept everything in one place and worked quite well throughout the cutting, with wireless keyboards and mice to make it easy to get around.


Next time: hold-down and dust handling for the new house-production shop.

 


Making stuff ... - Feb 2007

Those that know me will tell you that I can't help much with creating fancy 3d files or things like lithophanes to cut on your ShopBot, but I have made a heck of a lot of "stuff"...things that have a somewhat practical use like boats and furniture and clocks and such. It seems like a lot of beginning ShopBotters have trouble getting started on these kinds of projects and although I don't claim to know all the tricks, here are some things that I've observed that may help you get started.

Software

  • Find software that will do MOST of what you want to do and stick with it until you're absolutely sure that it has a fatal flaw that can't be overcome. If you already know how to use CorelDraw for instance (or AutoCAD for DOS or TurboCAD4 or whatever you're comfortable with) there's probably a workaround for the things that it can't directly do. If you're just starting out and don't have a favorite yet, start with something simple until you find out what you REALLY need...Part Wizard is a good choice.

  • There's nothing that kills productivity more than switching between 3 or 4 pieces of software...avoid it at all costs. The exception is specialty software that only does one thing but that's the one thing that you need to do...boat design software for instance. If you need it it's worth the trouble to learn it, even if it only does one step.

  • If you find software that works for you, think VERY seriously before you decide to upgrade to the latest and greatest version. Most software companies upgrade by piling on new features...just make sure they've added things that you need without removing features that you use and are comfortable with.

  • Don't get too wrapped up making "pretty" drawing and presentations in the beginning...leave the photo-realistic renderings 'til you're more sure of things. They can eat up a tremendous amount of time for something that could change twenty more times. And shy away from 3d modeling software until you can come up with a reason that you need it...it's slow to learn and slow to use.

  • If you're using a CAD program, remember that the grid can be a powerful helper...use it if it's available to help you line things up. And learn about and use Snap modes to connect things together accurately. If you're drawing lines freehand with a mouse it may LOOK like the ends join, but if you're not using some kind of Snap I'll bet they aren't and will cause problems down the line. If you zoom WAY in I'll bet you'll be surprised.

  • Sometimes less is more. If your design has curves for instance, try to use the fewest number of control points possible. Take it from an old boatbuilder who's reputation hinged on always having "fair" curves...adding extra points to a curve to try to force it into a shape that it doesn't want to take will only make it un-fair.

Designing

  • Try not to show anyone your first draft as a "virtual" design on the computer. There's something about seeing something on a computer screen that makes people get wrapped up in the details and technique instead of the big picture. Wait until you can show them a real prototype...you'll get much better feedback. If you have to show someone a preliminary design for feedback it's better to show them a pencil sketch on a napkin than a CAD drawing...they won't get hung up in the presentation details with a rough sketch like they do with something on the computer.

  • A pad of graph paper and a pencil works great for preliminary work. You don't always need to use a computer, especially in the early stages of a design, and it's easy to end up making changes because of software limitations and not design decisions

  • Get familiar with the ShopBot language and some of it's features...quite often it's much quicker to create a file in the ShopBot Editor or NotePad with a handful of commands than it is to draw it and create a toolpath.

  • Start simple. Don't over-design things in the beginning but instead start with the simplest possible version and add features if they're needed, not just because you can. Don't feel like you have to cover every square inch with features.

  • Don't forget the purpose of the things you're making. You might design the coolest looking chair shaped like a flying 3d oyster and it may well be a piece of Art, but if it's not comfortable to sit on it's a bad chair.

  • To quote Salvador Dali: "Those who do not want to imitate anything, produce nothing." Keep your eyes open for neat ideas and details, especially on the web. You can learn a lot about the design process by looking at someone else's work and trying to figure out why they made the design decisions that they did. You always want to make your designs original but everyone can use inspiration.

  • Don't be afraid to start a design over if it isn't working and don't get too stuck on the importance of any one feature...sometimes it's just not meant to be. But don't be too quick to discard things either...it might be better than you think.

  • Always keep the cutting process in the back of your mind while you're designing. It's awfully easy to add a feature to your design that will make it awfully hard to cut. Any feature that makes you flip the piece over or stand it on edge to cut will end up being a pain at cutting time...just make sure there's enough value-added in that feature.

  • If your design has lots of different elements, think about splitting it up so each one is a separate file. That makes it easier to re-arrange and re-design, and you'll be surprised how often you'll be able to use one of the elements in something completely different.

  • Just because the desk you measured was EXACTLY 24.865" tall doesn't mean that it won't work if it's 24" tall or 25". The reason your mom's Chocolate Chip cookie recipe says to use a cup of flour is not because it needs exactly that much flour...it's just because that's the closest convenient amount. Same way with making stuff…most of the time you can change a measurement to suit your material or design and it'll work out just fine.

  • Unless you're cutting out valves for artificial hearts, don't feel like you need micro precision either. Many times you'll be cutting a material who's dimensions vary widely from sheet to sheet and which change with temperature and humidity fluctuations, using cutters that might not be exactly the size they're supposed to be. Don't design to micro tolerance unless you have the right material, cutter, and a WELL tuned up tool. You might even want to put a little "slop" in your design to make things easier to assemble.

  • Be aware of your material sizes when you design and try to work within them so that you minimize the waste. Leaving less waste not only means more money in your pocket but also is "greener"...better for the environment.

  • Don't forget that you can't put a square peg in a round hole. If your design has a tab that fits in a slot for instance, make sure that you think about how you're going to deal with the radius that your cutter will leave on the corner of all inside cuts. It doesn't really matter how you deal with it... make the slot longer, roundover the edge of the tab, make the slot "dogbone" shape, square up the corners  by hand, or any other way that you like...just make sure that you deal with it

Prototyping

  • Be willing to mess up on the first one of anything. Don't feel like a design has to be perfect before you can put the bit to the material to cut a prototype. Your first idea might not be exactly what you imagine the final design being like, but sometimes cutting it is the only way to tell what you need to do to make it better.

  • Stock up on cheap materials and use them for prototyping. Also try not to throw away scrap...you'll probably find a use for it.

  • Sometimes it helps to make just a piece of a project to see how it works in "real life". Often you can't tell what something will really be like until you've held it in your hands and spun it around a couple of times. If it's too big or elaborate to make it full sized, make a model of it using as many of the same techniques as you can.

Hopefully some of this will be helpful to you but I'm sure that not all will be...everyone works in different ways. The key is to just keep trying things and be willing to make mistakes and learn from each one. The neat thing is that there may be only one right way to make a sign for someone's business but there's a gazillion ways to make a chair or a desk...there's plenty of room for creativity.


Exploring ShopBot Part Files 2 ... - October 2006

In the last Bill’s corner we learned how to manually create part files by typing in commands, and to automate the process using the Part File Assembler. Now I know you all agree with me that this could be pretty powerful stuff, but what can we really do with it that we can’t do just as easily by just creating the file in Part Wizard?

So let’s say you already had a part file that you created in Part Wizard that you use all the time...maybe a 12”x12” FOR SALE sign for a real estate company. One week they call you and say they need 6 of them…what do you do! You’ve got a handful of options. You could always open up Part Wizard, open the saved design (you did save it, didn't you?), then copy it 6 times, move the copies around so that they fit on your material, and create a new part file. Seems like a lot of extra work, especially since the design part has already been done. And what if the next order was for 11 or some other number...you would sure be doing a lot of extra work every time you re-created the files. There has to be an easier way.

Well, you could throw a piece of plywood onto the table, sit down at the computer, and type FP, forsale.sbp to cut the first sign. When that one was done you could move 12” down the sheet...either with the keypad or with an MX, 12,0 command...and then run the file again. But how would you tell the ShopBot software to do that? You could re-zero the tool where you wanted to cut the new file and then run it again normally, but there are some problems with doing it that way. The first one is that you’ll lose your personal reference point on the tool and won’t know the tool’s location just by looking at it...it might be in the middle of the table but the tool might think it’s at 0,0. Your ShopBot still knows where the "real" 0,0 is because it's saved with your Table Base Coordinates, but it might not be obvious to you if you wanted to send it to some other place on the table.

The other problem is one called “accumulated error” and happens when a number is rounded off a bunch of times. Just about all calculations in life are rounded a little bit...sometimes up and sometimes down...which generally doesn’t make much difference. But if more are rounded up than down (or vice versa), after a while the error can mount up. So constantly re-zeroing really isn't the best thing to do.

Offset Mode and Master Files

A better way would be to move down to the new starting point with the MX, 12,0 command and then run the sign file in 2d OFFSET mode by typing FP, selecting the file again, and then selecting 2d offset in the fillin sheet. 2d OFFSET mode acts like a temporary re-zeroing, so that the file cuts as if the current tool location is 0,0 without actually changing it to 0,0. You can also select 3d offset, which works the exact same way but also offsets in the Z-axis. After the first sign had cut you could type MX, 24,0 and repeat the process. It would work great but you would be pretty much tied to the computer for the time that the signs were cutting. What we need to do is to automate the process so that it will run un-attended and you can do something else while it’s cutting.

The way that works the best is to create a “Master File”, either manually or using the Part File Assembler, that does all the moving and file calling for you. A Master File uses a combination of Jog (or Move) commands to position the tool at the new start point, and matching FP commands with the Offset parameter (the 6th one), set to "2" for 2D offset (or "1" for 3D offset). The commands to cut our first hypothetical For Sale sign 12" from our 0,0 position would look like...

J2, 12, 0
FP, forsale.sbp,,,,,2


..and here’s a sample of a Master file that you could use to cut all 6 signs...

J2, 0, 0
FP, forsale.sbp,,,,,2
J2, 12, 0                  ' the Y offset isn't needed here ... it just makes it more consistent
FP, forsale.sbp,,,,,2
J2, 24, 0
FP, forsale.sbp,,,,,2
J2, 36, 0
FP, forsale.sbp,,,,,2
J2, 48, 0
FP, forsale.sbp,,,,,2
J2, 60, 0
FP, forsale.sbp,,,,,2


If you saved this new file and ran it in preview it would look something like this..

Offset mode also comes in REALLY handy for cutting files out of odd-shaped pieces of scrap material, because you can move to a clear spot and cut the file there without knowing beforehand where that location is. Offset Mode cutting works best…for me at least…if you create your files with the 0,0 location at the lower-lefthand corner of the part because you ALWAYS know where the corner of a blank is but you have to FIND it’s center. With some thought you can place the 0,0 point of your drawing in the center of the part or just about anywhere else.

One other option is to use the "S_nest.sbp" file that's included your Sbparts folder. It uses a series of questions to create an "array"..a pattern of rows and columns...of locations that a part file will be cut. It's VERY handy if you want to fill a sheet full of copies of a file, but may be a little bit of overkill if you just need to cut a couple of copies of something. It also only works if you can use a "regular" cutting pattern...one that has even rows and columns.

As you can see Offset Mode and Master Files have a lot of uses, and you can stop reading here if you want and will have a very handy new tool in your ShopBot toolbox. You can easily expand the power of these Master files by using more of the ShopBot commands, so take a break for a little while, play with running some files in Offset mode and maybe create a Master file or two. Then when you’re feeling refreshed and recharged come back and we’ll introduce “variables” and the INPUT statement that will let us customize our Master Files without having to do as much re-writing.

What’s a variable? The answer varies…

Welcome back. Let’s get back in the swing of things by backing up a couple of articles. Remember our example part file from the first "Exploring Part Files" article...


' Our sample file could be used to drill a series of half inch deep holes
' Zero the Z-axis at the top of the material
'
' Written by Bill May 4, 2006

MZ, 0.5            ' lift to a safe Z height
J2, 1, 1           ' Jog to X = 1 and Y = 1
MZ, -0.5           ' plunge the Z-axis to –0.5 to drill hole
MZ, 0.5            ' lift bit to safe height

JX, 2              ' Jog to the next hole
MZ, -0.5
MZ, 0.5

JX, 3              ' and the next
MZ, -0.5
MZ, 0.5

JX, 4              ' the last hole
MZ, -0.5
MZ, 0.5 

J2, 1, 1           ' Jog back to X = 1 and Y = 1


This file is pretty short, and it would be easy to make changes to it. If we wanted to change the depth of the hole to -0.25” instead of -0.5” we would just have to change the 3rd command to MZ, -0.25. And the 6th. And the 9th. And the 12th. But what if we were drilling 100 holes? If we were using the ShopBot editor we could use the find and replace feature to replace every instance of -0.5 with -0.25, but every time we wanted to drill a different depth hole we would have to change all of them. And what would happen if we had a command in our file like..

M3, 3.75, -0.5, -0.5

Unfortunately the Replace function in the editor would change any occurrence of "-0.5", both the one you wanted...the Z-axis one...and the Y-axis value that you don't want to change. That’s where variables come in handy.

A variable is just something that represents something else. And you know what; you use them all the time without knowing it. Let’s say you need to figure out the sales tax on something you want to buy. Your total TAX equals the product COST times the sales tax RATE, so if you wrote it as a math formula it would be TAX = COST * RATE. Well, TAX, COST, and RATE are variables because they are symbols that represents a number or value that can change or vary. The TAX on a $15 router bit in Virginia where the RATE is 4.5% will be different than the tax on a $20,000 car in a state with a 6% tax rate.

But how would we use a variable in our example? First we need to tell the ShopBot software that something is a variable, and we do that by picking a unique name for the variable and starting it with the & sign. That means that we could name our variable &x if we wanted to and everything would work, but later on that really wouldn’t tell us very much about what that variable does and what kind of value it holds. It's a much better idea to pick a name that's meaningful to you, maybe something like &holedepth. Now every time we want to drill a hole we can replace the line MZ, -0.5 with the line MZ, &holedepth. But wait a minute, how does the ShopBot know what &holedepth represents? It doesn’t on it’s own, we have to tell it. We do this with a line in our part file that says &holedepth = -0.5 in a step that programmers call “initializing” the variable.

There's one thing you need to be aware of when working with variables in a ShopBot file. ShopBot variables are "persistent", meaning that they hold their value until they're either given a new value later on or the ShopBot software is shut down which wipes the slate clean. This can be a very useful feature because you can create a file full of just variables and then load it in any part file with the FP command and you'll have access to those values. That's how the ShopBot zeroing files work...in the beginning they load a file named "my_variables.sbc" that's in your "C:\sbparts\custom" folder. It contains all the settings that are specific to your tool that you entered using the "Setup" Virtual Tool, and these values are then available to any part file that's run until the tool is shut off. This persistence property of variables can be handy but can also be a problem, especially if you use a variable in a file without giving it a value...without "initializing" it. If you've used a variable with the same name in an earlier file then it's value will carry over...which might be good or might not. Just be aware of it.

Back to work. Let’s re-write our example using a variable for the depth, and while we’re at it let’s change the safe z height to a variable as well. Our file would look like;


' Our sample file could be used to drill a series of holes
' Zero the Z-axis at the top of the material
'
' Written by Bill May 4, 2006

&zup = 0.5         ' safe z height

&holedepth = -0.50 ' set cutting depth

MZ, &zup           ' lift to a safe Z height
J2, 1, 1           ' Jog to X = 1 and Y = 1
MZ, &holedepth     ' plunge the Z-axis to –0.5 to drill hole
MZ, &zup           ' lift bit to safe height

JX, 2              ' Jog to the next hole
MZ, &holedepth
MZ, &zup

JX, 3              ' and the next
MZ, &holedepth
MZ, &zup

JX, 4              ' the last hole
MZ, &holedepth
MZ, &zup

J2, 1, 1           ' Jog back to X = 1 and Y = 1


You can see how much easier this would be to change the cutting depth if it drill 100 holes instead of 4...you would only need to change the value of the variable &holedepth. But wouldn't it be neat if you could somehow tell your file what the value of that variable is without having to change the file and the re-save it? You can by using the INPUT command.

Asking the person running the ShopBot a question…

The INPUT statement is the ShopBot software's way of asking you a question and then saving your answer in a variable. Up until now the commands we use have been pretty simple but the INPUT statement has a format that it has to be in to work correctly..what computer programmers call it's Syntax. You start with the word INPUT (called a keyword in programming-ese) which is followed by the phrase that you want the person running the file to see, surrounded by quotes (") on each end. Then after the last quote you put the name of the variable that whatever the user types will be stored in. Here's an example of an INPUT statement that would let the ShopBot user type in a new value for the hole depth, &holedepth


INPUT "How deep do you want to drill the holes?" &holedepth


You can just replace the "initialized" value for &holedepth with this new INPUT line and when a ShopBotter runs that file he would be presented with a box like this...


Whatever the ShopBotter typed into the box would be stored in the variable &holedepth. And every time you ran the file you could drill different depth holes, without having to change the file itself...just type in a different number. That might not be all that handy, but let's say that you needed to drill your holes exactly halfway through your material and the material varied in thickness the way most plywood does. We can modify our example file so that it now asks for the material thickness as a input and then uses the value of that variable to calculate the correct &holedepth value. It might look something like this...


INPUT " How thick is your material?" &thickness  ' set cutting depth
&holedepth = 0 - (&thickness / 2 )               ' find half of thickness and subtract from 0 to get cut below surface


Each time we run this hole-drilling we could accurately measure our material and then type in that measurement and all our holes would be the correct depth.

There's one more use for the INPUT command...it can be used to read values from a text file. We'll talk about this in an upcoming article on reading and writing text files from within a part file, but in the next article we'll take what we’ve learned about using variables and the INPUT command (along with some new commands) to make decisions…the IF-THEN statement and looping.


Exploring ShopBot Part Files - May 2006

Many ShopBotters are happy creating their part files in a program like Part Wizard and never really looking at the part file that’s created, and there’s nothing wrong with that at all. Part Wizard and similar programs use something called a Post Processor or “Post” for short to create the commands to move your ShopBot around, and you can run those files without ever exploring the mystery of what’s really going on in them.

A growing number of ShopBotters, though, are interested in learning to use the ShopBot language to create their own files, or to be able to modify the files that are generated by other programs. If you’re one of them, or are just curious, here’s a start at using (and understanding) the ShopBot language.

The ShopBot language 

The first thing to remember is that a ShopBot part file is just a text file, and can be read just like a shopping list or a letter. The ShopBot language is a variation of the BASIC computer language and is “conversational”, meaning the commands are descriptive of what they do. Let’s compare it to G-code, another common CNC control language

Let’s say we want to move from the 1,1,0 position to the 2,2,1 in absolute mode, then move back to our home position. In G-code it would look like this..

     G90                 … set to absolute mode
     G00 X1 Y1 Z0        … move to 1,1,0 at rapid speed
     G01 X2 Y2 Z1        … move to 2,2,1 at cut speed
     G28                 … go to HOME position

Here’s the same thing in ShopBot language…

     SA                ' set to absolute mode
     J3, 1, 1, 0       ' jog to 1,1,0
     M3, 2, 2, 1       ' move to 2,2,1
     MH                ' go to HOME position 

It’s quite a bit easier to understand what ShopBot commands do, don’t you think?

So how do I read and write a ShopBot file? 

If you’re using the ShopBot Windows software and checked the “Associate Files” checkbox when you installed the software, then you can click on any part file…any file with the .sbp  file extension…and it will open in the ShopBot Editor. You can also open a part file with your favorite Text editor… Notepad is installed by Windows by default…by right-clicking the file, selecting the “Open With” option, and picking the program that you prefer. You can even open a part file in Microsoft Word, but be AWFULLY careful if you want to save a part file in Word to make sure you save using the simplest TEXT option, without any formatting.

So let’s write our own part file and see just how simple it can be. Start the ShopBot software and type [FN] to create a blank part file in the ShopBot Editor. Once it’s open type the following lines …

MZ, 0.5 
J2, 1, 1
MZ, -0.5 
MZ, 0.5 
MX, 2
MZ, -0.5 
MZ, 0.5 
MX, 3 
MZ, -0.5
MZ, 0.5 
MX, 4
MZ, -0.5 
MZ, 1 
J2, 1, 1

The ShopBot software doesn’t care if you leave blank lines in your file (and many cases it is easier to follow the flow of a part file if you leave some “White space” between sections of a file), but for this first example just type it the way it is above. When you’re done save it with a descriptive name like “samplefile.sbp”. If you used the ShopBot editor then it should look like this when you’re done.

 

On Naming your part files  

There are very few rules for naming ShopBot files…most of the restrictions are imposed by Windows. {If you plan on running your file in the DOS version of the ShopBot software then you’ll need to use the DOS naming restriction…the name can only have 8 characters in the name followed by a 3 character extension (which is .sbp in our case) and can only use the characters a-z, 0-9, and underscore.}

In Windows the file name can be up to 256 characters long and the only special character restrictions are that the file can’t contain the

 ;   \   ⁄   :   *   ?   "   <   >  ¦

characters. The only restrictions that we have to worry about that are ShopBot-specific are that you can’t use any of the math operators or special characters that ShopBot uses (like the “&” that’s used in front of a variable name), or any of the Programming commands or key words like PAUSE or INPUT


This was not a very complicated file but it may not be obvious what it does just by looking at the commands. You can test your new saved file by changing to Preview mode [SP] and then typing [FP] and selecting your new file. If you rotate the Preview a little you’ll see that it moves along parallel to the X-axis and periodically moves up and down.

If your preview doesn’t look like this or you get an error message when you try to run it, open your file back up in the Editor and make sure that you typed it EXACTLY the way it’s listed above.

The preview tells you how the file moves but it still doesn’t tell you everything...comments will help to do that.

First steps in ShopBot programming…Commenting.

Before we get much further, we’re about to use the “P” word...”programming”. But don’t let the word scare you...a program is just a set of commands or instructions that tell a computer or machine what to do. Every ShopBot part file is a program of sorts, even a simple one like the one we just created. That simple “program” could be used to drill a series of ½” deep hole, but that may not be obvious by just looking at it. What we need is a way to tell someone that’s reading the file what it does, without putting instructions in the files that your ShopBot will try to execute but doesn’t understand. You’ll do that by adding comments.

A comment is just a message from the person that wrote the part file to the person that will be using it, and starts with the single quote or apostrophe character ‘ . You can put comments on a line by themselves anywhere within a file, or add them to the end of a command to explain what that particular line does. Using our example above, let’s add some comments (shown in green here to make them easier to pick out; they’ll be black in your file) and see if it makes things clearer:


' Our sample file could be used to drill a series of half inch deep holes
' Zero the Z-axis at the top of the material
'
' Written by Bill May 4, 2006

MZ, 0.5           ' lift to a safe Z height
J2, 1, 1          ' Jog to X = 1 and Y = 1
MZ, -0.5          ' plunge the Z-axis to –0.5 to drill hole
MZ, 0.5           ' lift bit to safe height
JX, 2             ' Jog to the next hole
MZ, -0.5           
MZ, 0.5            
JX, 3             ' and the next
MZ, -0.5           
MZ, 0.5            
JX, 4             ' the last hole
MZ, -0.5           
MZ, 0.5            
J2, 1, 1          ' Jog back to X = 1 and Y = 1


Now comments really aren’t necessary in a simple file like this, but you can see how they could make a complicated file quite a bit clearer and easier to understand or remember. So do yourself (and anyone else that needs to use your files) a favor by adding comments to all your part files. It’s a great way to include information like what size bit the file was created for, what thickness material this file uses, where the Z-axis must be zeroed, or even how to contact you if there are any questions. You can add your comments manually with an Editor or use the Header Writer Virtual Tool [TH] to automate the process.

Now there’s one time that a comment is used in a special way by the ShopBot software, and that’s if it is immediately followed by a PAUSE command, as long as there isn’t a number after the PAUSE command. In this case the comment is shown on the screen in a message box. The program stops executing and waits for a response from the user. So a file with the following lines…

' Comment test…click OK to continue
PAUSE


.. will present the user with this message box when the Part File runs …

If the OK button is clicked or the ENTER key is hit the file will continue…if Cancel is clicked or the ESC key is hit the file will stop executing.

Making things easier... the ShopBot Part File Assembler.

Having to type the commands in with the keyboard can be kind of a pain, so we’ve come up with the ShopBot Part File Assembler to make the job easier. Before we tell you what it is, lets start  with what the ShopBot Part File Assembler ISN’T. It's NOT a replacement for the Editor or a way to create elaborate cutting files. It’s also not a replacement for Part Wizard and doesn’t know anything about toolpaths or importing drawings. What it DOES do is to give you a way to “Assemble” a Part file by combining some of the basic ShopBot commands. It’s especially handy for things like “master files” that can be used to call an existing part file in many locations around your material or alternate between files for multiple cutting heads if you have them...Z and A axis files for instance. It also does some color coding of commands to make it easier to pick them out.

There’s not really that much that needs to be explained about how to use the Assembler. In the left column are buttons for each of the commands that are available. You start out by selecting a name for your new “assembled” part file and a form opens with an assortment of “basic” commands that let your part file do things like make moves, call other part files, and add comments to make things as clear as possible. If you’re feeling adventuresome, click the “Advanced” item in the “Mode” menu and you’ll get some of the more advanced programming commands that are available in the ShopBot language. We’ve included the commands that are most common and we think most useful, but if there’s one that we haven’t included that you need  just click the “???” button and you’ll get a blank line to type in whatever command you want.

You start creating building your file by clicking the button for the command that you want and that command will appear in the main panel on the right. You’ll also get a popup window that will let you fill in the values that are specific to that command…the file name if it’s an FP Command, the coordinates to move to if it’s a Move or Jog command, that sort of thing. These values are called “parameters” and you can leave out any of them that you don’t want to change and they’ll stay at their current value...only the ones that you enter a value for will change. You can also add an “inline” comment to many of the commands by clicking the “Add a comment” checkbox...it will put your comment at the end of that line. Just build your file by clicking on commands and filling in the correct values.

If you’re very smart (or very lucky) you’ll have put your file together correctly the first time, but just in case you aren’t that lucky you can move your mouse pointer over any command that you’ve created and, toward it’s right end, the cursor will turn into a hand and you’ll be able to left-click and drag that command to a new position in the file. You can also right-click and either Edit it to change some of the values that you set, Copy the command so that you can paste it into a blank “???” command, or Delete the command altogether. If you get it hopelessly messed up with absolutely no chance of recovery, don’t worry…just select the “Reset” option and you’ll be presented with a clean slate.

After you’ve played around with it for a while you’ll realize pretty quickly that this part file business is really not rocket science, and that a part file is just an assembly of ShopBot commands. When you're all done and your file is just the way you want it, select SAVE in the FILE menu and your part file will be created. You'll be asked if you want to add a header and footer …sections of information at the beginning and end of your file to help the person that’s running the file to understand what’s going on in it... and if you answer “yes” the ShopBot Header Writer will open to help you create your new file's header. That’s all there is to it...your done!

Here’s our same example file, created with the Assembler

{missing material}

definitely a “work in progress” so make sure that you open the files that it creates in an Editor to see if it’s really doing what you expect.

2) There is not much more file checking at this point that there is in the ShopBot Editor, so if you're not careful you can EASILY create files that don’t make sense and won't run on your ShopBot. You can tell it to do things like “M2, bob, henry” and it will be happy to let you do it. Consider yourself warned!

3) If your file calls other part files you are WAY better off if you create a folder to hold all your files, instead of having them scattered all over your hard drive. If they're all in one folder...including your new assembled file...then the Assembler can write relative paths (like “FP, Beak.sbp”) and you can move the whole bunch around to your heart's content and the paths will still work. If however they're in different folders then it has to write the full path for any files called with the FP command (something like “FP, C:\Documents and Settings\Sam\Desktop\Current Work\PartFiles\Duck\oldVersion\Beak.sbp.) If you move those files around after you’ve saved then it won’t have a clue where to find them.

Enough for now...I don’t want to overload you right at the start! Over the next couple of articles I’ll talk about some of the other programming commands and how you might use them in your parts files...things like making it easy to modify values by using variables and INPUT statements. 

[Click here to download Bill's Part File Assembler]  

 


The Extruder…how to squeeze molding and other odd shapes out of your ShopBot! - March 2006

If you're like me you've come across situations where you've had something that you wanted to cut...maybe something like a piece of molding or a boat rudder...that had the same cross-section along its length. This happened to me recently when a contractor brought me a piece of door corner trim from an old house that he was working on and needed 6 copies made of it.

Robert had rejected a couple of options before he came to see me. He had thought about ordering custom shaper blades but that would have been expensive and taken a couple of weeks. He could have hand-ground his own blades but that would have involved ordering blade blanks, waiting for them, and then spending a half day (at least) of some pretty tedious work trying to get them the correct shape while keeping them balanced. For the small number of copies that he needed, CNC cutting seemed like his best solution.

When he brought the original to the shop we worked through a couple of options for duplicating them. Probing the whole piece would have been simple but really would have been overkill...we would have ended up spending a whole lot of time getting points for a shape that really doesn't change much. What we really needed to do was to create the Profile...a cross section of the shape...and then extrude it along a straight line. It seemed like a handy utility to have so after a little programming work the Extruder was born.

To use the Extruder you first need to create a 2d Part Wizard toolpath file of the profile and then the Extruder "flips" the profile on edge and extrudes that profile along the specified length. There are a couple of different ways to create your original profile drawing, but the quickest way for this job was to just stand the piece on edge on a piece of paper and trace the edge with a pencil. A quick scan of that tracing on a flatbed scanner created a bitmap file that we then manually traced in TurboCAD with curves and straight lines. Once the tracing was as close to the original as we needed it to be we discarded the bitmap from the CAD drawing and saved the file as a dxf file so that we could import it into Part Wizard.

This certainly isn’t the only way to do it, though…there are lots of ways to generate your original profile. Some shapes are easier to draw directly in CAD, like airfoil shapes that are specified by formulas for their cross-sections. You could also use a probe with one of the 3d dxf options to do a pass or 2 across the pattern and then import that into a CAD program. It doesn't matter what method you use as long as you end up with a good profile that you can get into Part Wizard.

Once you've gotten your Profile drawing into Part Wizard it's time to create a "Profile" toolpath. Although you'll be using a ball-nose bit to cut the file, you'll create the profile toolpath in Part Wizard with an end mill of the same diameter...if you're going to be cutting the extrusion with a 1/2" ballnose bit then create the toolpath file with a 1/2" end mill. This may seem funny at first but imagine that the end mill is really a ballnose bit laying on it's side…the end mill really represents the "ball" at the end of the ballnose bit that will eventually be doing the actual cutting after the "flip".

I'm not going to go though all the steps for creating your profile toolpath...it's not all that different than any other toolpath generation...but there are a couple of things that you need to keep in mind

*) You want to make sure that you create the toolpath so that it cuts in ONLY ONE PASS. The easiest way to do this is to set the cutting depth so that it’s smaller than the stepdown setting for the bit you select. Since the Z-axis settings are ignored in the Extruder a very small cut depth like 0.001 or so should be fine.

*) Think about the direction that your extrusion is going to be done before you create your toolpath. If you're going to be extruding your profile parallel to the X axis then you’ll need to arrange the profile so that it will be "flipped" around the Y-axis, and the same is true when you’re extruding in the Y Axis. Clicking the “?” buttons will help you figure out which one you want.

*) Once you’ve created your toolpath the final step is to save it using either the plain "inch" or "mm" post processors, NOT with any of the “arc” ones.

Creating your toolpath is really the hardest part...after that it's simple. Start the Extruder and select the axis that you're going to extrude along. Then select the start and end points of the extrusion...this determines the length of the extrusion. The SafeZ setting is how high you want the bit to be above the highest point of the "flipped" profile which is calculated when the flip is done.

The “maximum segment length” setting ONLY breaks up long straight sections to increase resolution. It doesn’t decrease the resolution if your segments are closer together than that…if the segments in your profile are too close together you’ll need to redo your profile with a larger tolerance.

When you're done just click the button and you'll be asked to select the file that you want to extrude. The virtual "flip" will be done and the extruded file will be saved with the original file name with "_extruded.sbp" added to it.

 


The finished trim pieces

Note: We didn’t need to use this feature on the trim pieces but you’re also given a choice of tapering the extrusion in height, width…perpendicular to the extrusion direction, or both. All tapering is done toward the axis that the extrusion is parallel to, so if the profile is "centered" on that Axis, with half of it above and half below, then the extrusion will taper toward the middle. If the whole profile is above the axis in an X-axis parallel extrusion then it will taper "down", etc. Play with it a little in preview mode and it will be pretty obvious what’s happening.

As I said in the beginning the Extruder can be used for a lot of other uses besides molding. Shaping rudders and wings is a natural use for it and it would be great for one-off curvy furniture and architectural pieces.

 

Installing the Extruder

The Extruder comes packaged in a zip file and there’s really no installation involved…the ShopBot control software has already installed everything it needs to run. Just unzip it to a convenient place like your desktop and when you’ve created the 2d profile that you want to extrude just click the Extruder icon. It’s as simple as that. As a bonus the download includes the “Flipper”, a program that takes the same kind of 2d Part Wizard file and just does the “flip” that converts X or Y axis values to Z-axis values, without doing the final extrusion step. Finally there’s also a folder with sample toolpath files for you to play with, just to help you get the hang of things. The Extruder and Flipper are constantly being updated with new features and fixes so to make sure that you have the most recent  version we have the most recent Extruder available in [ShopBot Labs]

I hope the Extruder and Flipper are helpful to you. The next Bill’s Corner project will be another program that I think you’ll find…well…interesting.


Hacking the ShopBot (3 Hacks) - November 2004

People wonder what it is exactly that I do for ShopBot, and it’s actually kind of hard to explain. Officially I work part-time doing “special projects”, but it really boils down to about 50% “real work” and 50% play (some would say 5% real work and 95% play!). One of the things I enjoy most of all is building all kinds of machines and mechanisms that are powered by stepper motors and controlled by the ShopBot software, and I figured that y’all might be interested in seeing some of these toys and prototypes.

First, let me make one thing clear right up front. None of these projects are original to me...they were inspired by things I’ve seen or read about. I just thought they were neat and, usually after a lot of head-scratching and false starts, got them to do MOSTLY what I wanted them to do. The reason they worked as well as they do is because they rely on exactly what a ShopBot and the ShopBot software does well... move "something" around very precisely and let you interact with that "something" in a lot of ways. It’s just a matter of figuring out WHAT you want to move, and HOW you need to interact with it. Here’s a sampling of some of the projects that I’ve been playing with. If you get interested in playing around with this sort of thing or just want to see what some REALLY creative people do with robots, check out the ArtBots show in New York.





A ShopBot "Drawing Board"

 

 



So on to the neat stuff. The first mechanism was inspired by a chain-driven graffiti machine named Hektor. If you read about Hektor one of the first things you’ll notice is that creating Hektor was a pretty complicated procedure that involved creating circuit boards and a lot of programming to basically just make 2 stepper motor go back and forth and turn an output switch on and off. Hey, wait a minute, the ShopBot software does that already!

I sent the link to Hektor to Ted at ShopBot and he dug through the ShopBot parts bin and came up with some old stepper motors, aluminum plates from belt-drive gearboxes, some hardware and beaded chain from the old cable drive days, and some small solenoids to build into a prototype. The geometry for creating the toolpath was a little funky because of the way that the position of the pen is defined by the length of the 2 chains instead of the standard x/y coordinate system, but a little bit of high school math made it pretty easy to create a “shopbot-to-chain drive” convertor. A couple of different versions were built, including a 4’x8’ version and a smaller one that writes on 12”x18” paper.

The reason I like the “ShopBot drawing board” so much is that, because there’s always a little bit of vibration in the chains, it’s drawings look much more like they’re “hand drawn” than anything that’s done on a printer or plotter. It’s great for doing signs and illustrations and generally just playing around with designs.

[See a video of the drawing board in action.]



A ShopBot "Egg Plotter"


The next thing that caught my eye was a small “indexer” type machine that was used in Bruce Shapiro’s “Bits to Bytes to Bots” classes. Bruce has some VERY neat things on his The art of motion control web site, but the thing that caught my attention was his “egg plotter” that lets you draw or write on an egg or other round-ish object. Like the chain drive drawing machine it uses just 2 stepper motors and a solenoid that’s triggered by one of the output switches, but in the egg plotter the movements are rotational rather than linear. One stepper motor rotates the egg and is driven by the Y-axis channel while the second motor moves the pen from side to side and is driven by the X-axis channel. It’s very similar to the way that you can “wrap” a ShopBot file around a cylinder when you’re using an indexer. The unit values for the 2 axis’ depend on the circumference of the egg, so each egg has to be measured pretty accurately for the file to work out correctly. A solenoid at the top of the pen holder (the PVC tube sticking up in the picture above) lifts the pen and is triggered by one of the output switches.


Now I know you’re asking “What good is it to be ale to write on an egg? What can you do with it?”. To be honest with you I wasn’t sure what the answer to this question was myself (other than it was just fun to play with!), until the Physics teacher at our local high school contacted me about doing some trophies for his annual “egg challenge” project. The egg plotter turned out to be just the thing, and here's a picture of the trophies that I came up with. They’re drawn on real eggs with the “insides” blown out, and painted with gold, silver, and bronze spray paint. [See a video of the egg plotter in action.]

 

5-axis motion


One of the potentially neatest features of the new ShopBot software is that you can now move 5 axis’ at the same time. It seemed like a fun thing to play with so I decided to put together a 5-axis movement system for the Benchtop in the shop. I wasn’t confident enough in my programming to actually make it cut anything, and 5-axis software is AWFULLY expensive, so the next best thing was to move a camera around...one of those USB eyeball cameras turned out to be the perfect size for the job.

All the parts for the mechanism were cut on the benchtop except for a couple of aluminum couplings that had to be machined (just the excuse I needed to buy a little metal-working lathe!) to connect the 2 extra motors to the plywood parts. Three ball-bearing material handling rollers act as bearings for the A axis, but the rest of the parts are simple hardware-store bolts and bushings. A piece of PVC pipe fits nicely into the router mount on the benchtop, so even though it’s z-axis travel is limited a bit, it’s easy to remove the router and pop this unit in.

Software to control it has been the biggest problem. So far I’ve only been able to program it’s motion by drawing the camera path in 3d in CAD and creating a toolpath, drawing lines along that path that point to the object that I want it to look at, and then using the properties of these lines to manually add the 4th and 5th axis coordinates to the 3d file. Very time consuming and doesn’t give the smoothest motion. 

Videos:

[The 5-axis mechanism in action]

[View through the camera]

Sorry about the quality of the video...those cameras have manual focus so I couldn't keep it in focus all the time.


Table Base Coordinates - October 2004

One of the things that ShopBotters seem to have the most trouble understanding and utilizing is the concept of "table base coordinates" and limit checking in the ShopBot software. They've been in the ShopBot software all along, but I'll bet that there aren't a handful of ShopBotters that use them or even know what they do.

To understand the concept of table base coordinates you first need to think of your ShopBot as having a real, physical 0,0 point, one that you never change. If you were looking down at your ShopBot from above, for most people that 0,0 point will be the lower left-hand corner...the corner that most people already think of as the 0,0 point. The reason that remembering this physical 0,0 point is so important is that if the ShopBot software always remembers where that "table base" 0,0 point is, then it will always know where things like stop bolts are on the table and how far an axis can move off of the table top before it will hit them, EVEN IF YOU RE_ZERO YOUR WORKING X AXIS AND Y AXIS.


I don't get it...give me an example.

To illustrate Table base coordinates, start the ShopBot software and make sure that you are in Preview mode. For this example you also need to make sure that your table limits settings are still set to the defaults by opening the fillin sheet with the VL command. The default values leave a 2" perimeter all the way around your table top and have "limit checking" turned off. The screen shot shown here gives the default values for a 48"x96" tool...if you have something different (like a benchtop) just adjust the values accordingly. With these default settings you're telling the ShopBot software that it can safely move 2" off of the table top in all directions without hitting the stop bolts, so your safe working area goes from -2" to 98" in the X-axis and -2" to 50" in the Y-axis. That's what the yellow perimeter around the "virtual" table top is in the ShopBot previewer...it's this "safety zone" that the tool can safely move around in without banging into anything.

With your ShopBot zeroed at the usual 0,0 corner of the table top...the "home" position...let's give the software an MX,97.9 command. It will move the whole length of the table plus a little less than 2 inches and then stop...still safely within the yellow safe area as shown in the image at left.
 
Now let's move your ShopBot to the 5,5 position with an M2,5,5 (edited 10/21/04) command, so that the bit is 5" over and up from the usual 0,0 corner, and then re-zero the X and Y axis' at that point with a Z2 command. You'll get a this message box telling you that the Preview will now be "out of sync" with the "real" tool, but just click OK...it will be back in sync the next time you start the Previewer. You'll notice when you change your 0,0 point that the WHOLE grid in the previewer has been shifted in the X and Y axis so that it is out of sync with the table as shown below.
 


So what happens if you now give it the same MX,97.9 command? It will still make a move that's 97.9" long, but this time it will run out of the yellow "safe zone" (as shown at left) before the move is completed, because it started 5" away from the "real" 0,0 point. If you were in Move mode instead of Preview the tool would have run into the stop bolts at the end of the table, or worse if those bolts hadn't been installed! And the worse part is that the Software never warned you!


 

A practical use...File Limit checking

 Now let's try the same moves but this time with a new software setting. First move your ShopBot back to its CURRENT 0,0 position with an M2,0,0 move...which was actually the 5,5 position in the REAL world before you re-zeroed in the last step. Now let's repeat our original MX,97.9 move, but before we do let's turn on File Limit checking using the VL command. Nothing exciting will happen except that a red line will appear around the yellow "safety zone"...that red line lets you know that limit checking is turned on. With Limit Checking now turned on, type MX,97.9 like you did before. This time the software is smarter...you'll get an error message telling you that this move will put you "out of limits" and ask you if you want to turn off limit checking. The software is smart enough to know that even though you've told it that 0,0 is in a new location, the table and stop bolts are still in the same old place.


So now you're thinking "This is pretty cool...I can see how this could be pretty handy." With limit checking turned on the ShopBot software will let you know if your file will make your ShopBot crash into the end stops BEFORE it runs. The tricky part is that the software needs to be able to keep track of where the limits are even after you've rezeroed...that's were the "table base coordinates" come in. Once you've set your table base Zero point then each time you re-zero any of your Axis', the difference is saved as sort of a "stored offset". That way your ShopBot always knows the difference between it current zero position and the "real" zero position.
 


Setting up your Table base Coordinates and File Limit Checking

So you're probably asking "How do I work with these table base coordinates". Here are the steps for setting them up... 1) In Move mode move to your REAL 0,0,0 position (in most cases the home corner of your table top) and zero your X,Y, and Z axis AND your table base coordinates by typing UZ. Do a good job of setting this...the accuracy of your setup depends on it. 2) Next you'll need to figure out how far you can safely move off of the table top before you hit a stop bolt or some other obstruction. Go into Keypad mode and SLOWLY and CAREFULLY move in the -X direction until you AlMOST hit the stop bolt and write down that number. Now do the same thing in the +X direction, the + and - Y directions, and the + Z direction. If you have proximity switches installed the tool will stop when it hits the prox switches. Just write down a value that's a little bit beyond the prox switches...if the prox switch stop the tool at -1.00, write down -1.05 or something like that. 3) Now type VL to open the limit switch setting fillin sheet and type in the values from your list. Let's say the values for YOUR tool are..

    X-axis minumum -1.38
    X-axis maximum = 97.92
    Y-axis minumum = -2.07
    Y-axis maximum = 49.88
    Z-axis maximum = 5.72

If you were to use the values above, your new VL fillin sheet should look like the one shown here. Don't worry about the A and B axes unless you use them...if so just do them the same way. Also don't worry too much about being accurate with the "low" setting for the Z axis...just pick a value that will let you cut as deep as you think you'll ever need to.

One quick note...if you have an indexer or some other rotary axis connected to your ShopBot, limit checking doesn't really make sense for that axis since it can turn FOREVER without hitting anything, but is especially important to have turned on so that you don't whack into the turning chuck!! In that case just put a REALLY small number for the low value for that axis...maybe -10,000...and a REALLY big number for the high value. That way you can still have limit checking do its job for the other axis.

Here are a few tips. To see how far your "working" coordinates are from your table base coordinates, type UV and the offsets are listed for each axis. And just to make things easier there's a shortcut to zeroing your working coordinates and your table base coordinates...the UZ command does the same thing as typing Z3 and then ZT...it zeros everything in one shot!

Keeping up with things

So now you've setup your table base coordinates by carefully zeroing all your axes and put in YOUR table values so that limit checking will work correctly. You won't need to go through these steps again UNLESS...

  • You lose position with your ShopBot because of a power failure or other calamity (mostly user error in my case!). If this happens just go back to your 0,0,0 point and type UZ to reset your zero position and your table base coordinates

OR

  • You replace your table top and don't get it EXACTLY in the same place, or you make any other changes that change the REAL 0,0,0 position of your ShopBot like moving the Z-axis or using a different kind of router with a different sized body. If any of this happens, don't worry...just go through the same steps above that you did the first time you set things up and you'll be back in business.

I know all this sounds pretty complicated (and the description was pretty long-winded!), but I promise if you take the time to set things up correctly that you'll find it VERY handy, especially with the new, fast-moving PRTAlphas.


ShopBot File Runner Program - July 2004

Many of us run a lot of different part files and like working (playing some times!) with all the options and possibilities in the ShopBot software. Others, though, may only run a couple of different files or might have someone else run the tool who may not be quite as proficient with the ShopBot software as they are...this set of programs is for you. It lets you create a custom "ShopBot File Runner" with a series of buttons that will run ShopBot files and define options for the way they'll run like..

  • If the file runs in Cut or Preview mode.

  • How the file will close when it's done.

  • How many decisions the person operating your ShopBot will be able to make when running the file.

If you'll look in "C:\Program Files\ShopBot\Developer Tools\Runner" you'll see 2 programs, a folder named "media" that contains button icons, an ini file and a .bak file. The "ShopBot File Runner" program is the one that the ShopBot operator will use to run the ShopBot files, and the "File Runner Customizer" program is the one that you can use to create your own customized runner.

 

We really should start with the Customizer program first, but since it will all make more sense if you can see what you'll be creating, we'll try out the runner with the default ini file first. Click "ShopBot File Runner" and a small form will open up with one button and a little bit of text next to it. Clicking that button starts the ShopBot software, draws the ShopBot logo file, and then closes the ShopBot software when it's done. You get the idea...the "ShopBot File Runner" just automates the process of running ShopBot files. Now you may want to do something with your ShopBot other than run the logo in Preview mode, so next we'll learn how you can create your own custom File Runner.

If you'll click on the "File Runner Customizer" icon, a form will appear with a handful of options that will define the buttons for your runner and how they will work. At the top is a box to fill in a description for the first button. Try to come up with a "short but sweet" description that will be easy to read and understand because this is what will identify that button to the person running the ShopBot... so "Button 1" is a bad choice. If the file will be run in Cut mode "_cut" is added to the end of the description, and if it's to be run in preview "_Prev" is added.

Next you'll pick the file that the button will run...it's pretty standard Windows stuff and shouldn't need any explanation... and the icon that will appear on the button face. You can go with the defaults (the old move/cut and preview icons from the DOS software) or select a different picture. There are a handful of choices in the "Media" folder, but you can use any 32 pixel x 32 pixel bitmap or icon. You can also create your own in Paint or any other graphics program that you prefer. I try to use the prefix "p_" in my picture names for files that will be run in Preview mode and "c_" for files that will be run in cut mode, but you don't have to do that if you don't want. Just don't overwrite the "c_sb.bmp" and "p_sb.bmp" files...they are the ones that are used as defaults.

 

Now we get down to the meat of the program...deciding how the file will run. You'll be able to select how the file will open, how it will close, what the user will see on the screen, and sometimes if the file will be cut in Offset mode. The Run Method, Close Method, and Display Method options are pretty clear, just read the descriptions next to the radio buttons. The only odd ones are the last Run and Display options. The last Run Method option just puts the file that you select into the fillin sheet when you use the FP command next time...you probably won't need to use that very much with the runner. And the last Display Method option removes most of the choices in the ShopBot software so that the operator can't open the keypad or change any settings.

The Offset option is only available when either the 3rd or 4th Run Method is selected, so that the software starts without the fillin sheet appearing. The final choice at the bottom of the screen asks if you want to create a "warning" box that will appear first if the file is going to run in CUT mode. We HIGHLY recommend that you keep this option checked...it makes the process of running a file that much safer. When all these choices are made you can either click "I'm done" to finish up or "Add another button" to...well...add another button. Make sure that you use a unique description for each button. You can add a bunch of buttons but you'll run out of space after 8 or so. If you need more than that, let me know and I'll look into a different layout options.

When you're all done and have clicked the "I'm done" button, a new "runner.ini" file will be created that will be used to setup the "ShopBot File Runner" program the next time it's run. Just make sure that you keep all the parts in the same folder, though you can create a shortcut to the File Runner program on your desktop (or wherever you want) to make it easier to find and run.

I hope these programs will help make your ShopBotting easier, and drop me an email if you think of any other programs that you'd like to see. I don't make any guarantees but if it sounds interesting to me...