PDA

View Full Version : Pre-Sales question: How to achieve dynamic cuts on irregular objects?



eric_schumacher
01-01-2008, 02:41 PM
First, I don't own a shopbot. I am reading through the posts and blogs etc to understand what can and cannot be done with the shopbot.

What I would like to be able to do with one of these machines is to be able to put an irregular shaped 3d object on the table, somehow scan the item with a probe or otherwise and then cut the object with a dynamically adjusted cutting file. In other words I'd like to have a "surface pattern" file and then be able to cut the surface pattern on the object. The item could be flat or it could convex or concave or more organically shaped etc, but I would just be cutting it's surface and not changing it's shape.

What might be some of the solutions needed to achieve this sort of need? Do any of the existing software packages have any ability to automagically adjust in this way?

I guess really haven't yet come across how you might be able to automatically identify the object on the table and dynamically create cutting files that would adjust for the present object. Even if I didn't want to map a texture to the present surface, but instead wanted to make sure I was only going to take a certain amount of material off (the irregular object) with a cut, is that possible?

Do you think I am going to need very expensive laser scanning equipment and custom software to achieve this need?

Thanks in advance for any information or feedback


Eric

bill.young
01-01-2008, 04:14 PM
Hi Eric,

If you're talking about 3d mapping the surface (rather than trying to fit a part file into an irregular 2d shape), there's been interest in this before from people that do things like carving onto curved chair backs, rounded trunk lids, and carving on other irregular surfaces like rough lumber. I'm sure you could use the probe or a laser scanner to create a 3d model of the irregular surface in something like Rhino and then project your carving onto it, but here's how I was thinking it might work (conceptually at least), without having to use any 3d software.

Depending on how irregular the surface is and how accurately you need to follow it, start by using a ShopBot probe to create a 3d "map" of the surface, maybe a 1/10" grid, so that you would end up with a table of X, Y, and Z coordinates. If speed was an issue then a laser scanner would be a lot quicker than a probe, but a lot more expensive.

Once you had that table of data, use a mapping program that would read each line in your part file and find it's X and Y coordinates in the table data. It would then read the Z-axis coordinate of that point in the table and use it to modify the Z-axis value of the part file that you'll be cutting.

Let's say one of the points in your part file was between 2.1 and 2.2 in the X-axis and 4.4 and 4.5 in the Y. The mapper program would look for that coordinate in the table and see that the Z axis value was -0.03. The mapper would subtract .03 from the Z axis location of the part file, and write the modified value to a new file that you would use for cutting. When the whole part file had been read and modified, you would have a new part file that followed the changes in your surface.

The catch is that the Mapping program doesn't exist yet, but in theory at least it's pretty straightforward and some of the preliminary work has already been done...maybe we can get something in ShopBot Labs before too long for folks to try out.

Bill

scottcox
01-01-2008, 05:47 PM
Bill,

I follow you there and wanted to say this is similar to manually converting a program for use on the indexer.

Eric, You can simply create new columns (based on results of an equation) in a spreadsheet or database, then using the new columns, merge them back with their respective move, jog, etc. commands to create new lines and a new run file, based on your calculations.

Since MS Excel has a 64,000 row limit, I use a GIS/database program called Manifold.

Brady Watson
01-01-2008, 07:31 PM
Excel is really not a good program to modify part files. I personally use MSAccess to modify 3D part files since it is made for large record sets. You can parse out commands, flip axes and other modifications difficult to do any other way. I like using it to check where maximum depth of toolpaths are (X,Y locations) so that I can modify the toolpath as needed to prevent unwanted tool dives in deep reliefs. Any database program is good for this...but you should probably learn or brush up on SQL commands before switching from Excel etc.

-B

bill.young
01-01-2008, 08:09 PM
Hey Scott,

Visual Basic is my hammer of choice for quick tools like this, but I've seen ShopBotters do neat things using spreadsheets...Dirk's cabinet design spreadsheets for instance. Have you played with the online spreadsheets in Google Docs...are they at all useful for part file work? Any chance of writing up some basics for the wiki?

Bill

(Maybe we should move this to the Developer thread, to keep from hijacking Eric's thread too badly!)

eric_schumacher
01-01-2008, 08:56 PM
Thanks for the responses, guys!

What I can't quite visualize yet is how you identify for the computer where the ray uncut part is on the table if it’s not a regular shape. Bill mentioned raw lumber. This is a good example to work with. Say I have a split log on the table with the round side up. I now want to cut a texture into the surface of this log so that it is consistent with the curvature of the surface i.e. it wraps the surface. How would a person approach this from a process point of view and how would you do it if you needed to do it repetitively as fast as you could? The logs may change size and shape and you want the pattern relative to the shape. Say the pattern was a fish scale pattern with fixed scale size. A larger log would have more scales than a smaller log. Scales would stay a fixed shape on contours so in other words the pattern wraps the surface. (still talking 3 axis)

If it helps in the discussion I am a computer programmer with a previous life as a high school shop teacher. I'd be somewhat comfortable coding something, but still trying to get my head around what needs to be done from a component point of view to get the machine to "recognize" what it's got on the table from a location and size point of view and then how it can take this information and properly cut the item based on some "rules"... Like it should have a fish scale pattern cut from end to end and it should only cut 1/4" into the surface.

Another way to look at it… Could I set half an apple on the table and cut it's peel off by just telling the machine there is an item on the table and I want 1/32" taken off it's surface? That would actually be pretty cool.

From what I’ve been reading the mechanical probe would be far too slow for this sort of need. Looks like a laser scanner might be the only way. Any ideas or references on where to start to understand what’s available starting from the least expensive laser approach? I’m guessing I’d want a 2nd Z to mount the “scanner”. Anyone doing anything like this?

Brady Watson
01-01-2008, 10:19 PM
Eric,
In short, there is no fast and cheap way to do what you want to do...Of course, it is all relative. The process would be to digitize the log using the SB probe with a .5" distance between points, maybe a little smaller. Depending on the size of the log, the process is very quick and reliable (and best of all cheap). This will give you the overall 3D shape. Then you will need to apply the texture or relief to that 3D shape in any number of software packages...keeping in mind that the more you spend, the better your experience will be. I know that sounds trite, but in my experience it has proven true. The bottom line is that there is no 'fast & cheap' way to do this on a custom basis - meaning that you will have to digitize each log and apply each texture to it. If you could eliminate the log shape changing by standardizing your material, then you've eliminated a whole lot of work for yourself. If you came up with maybe 3 or 4 log shapes that you could cut out of standard material, then you can add any texture or relief to it and standardize the process using some type of sheet material or glue-up. All of what you desire is do-able...but not cheap or fast.

-B

eric_schumacher
01-01-2008, 11:39 PM
Brady, Thanks for the response. The challenge is that my interest is in working with objects of unknown dimension.

Being that I don't have a shopbot at the moment some of my questions may be silly.

If I do put something on the table and scan it with the probe does the machine "know" where that item is so that when I put a custom cutting file together for it the machine is already "calibrated" to cut the item?

How does one "register" an irregular item on the bed to align with a cutting file?

I saw some images of someone cutting some arches from what looked like an over sized glueup made of several large blocks. During the cutting there was a lot of chips from removing quite a bit of material. My first take on the photos was how does the shopbot know where to start cutting so it's not trying to take too much material off at once? How does it know not to follow a path if there isn't any material present? I get that you can zero to the table, but with 3D pieces that might be 12" in Z in places how do you tell the software what shape the raw material is without probing it. I guess this just seems to me to be something that everyone would run into with doing complex 3d shapes. Though, it could just be me


Good to know there isn't an out of the box solution. It helps be understand what I might need to create myself. I've been working on software for 15 years so I definately understand you get what you pay for... though there seems to be some good 3d stuff that is inexpensive or free. I used 3dstudio back in the early 90's. A little Alias in it's early days. Blender looks pretty good for being free plus it's open source so it would be possible to extend it...but this means more work coding and not doing other things.

What are the possible laser scanning options for the shopbot? I've seen posts where people have built there own and where they are using a scanning service. If we are talking 20-30K what does someone do for a laser scanner? I looked at the Polhemus hand held units. I like them, but have no idea of they would be a good solution for a shopbot.

Thanks again for your responses.

bill.young
01-08-2008, 09:10 AM
Hey Eric

We've always been interested in exploring photographic ways to do things like find odd-shaped pieces placed on a ShopBot table and be able to cut files on them, and just came across this neat project.

http://www.acvt.com.au/research/videotrace/

I can imagine a camera mounted on your ShopBot that records a video of your odd-shaped piece, and then using their system to create a 3d model from the video. It's still an experiment so we don't know what kind of resolution they'll eventually be able to extrapolate from the video, but it looks like it's strictly software-based so wouldn't require expensive hardware and might have potential for your kind of application.

Bill

evan
01-08-2008, 01:05 PM
That is very cool. I wonder when it'll be available.

eric_schumacher
01-08-2008, 06:16 PM
Bill, I think laser is the way forward. Scantech or similar mounted on a Z should get a person enough data. A little software magic and I believe you should be able to process the file and create a cut file to do some thing like peel an apple you have tossed on the table.

I saw that on Slashdot yesterday. If you guys like that video thing take a look at Photosynth. This is going to be very cool. It uses still images and can create a 3d point cloud. It's in alpha and sort of a work in progress, but they have released software you can try. I've used it and think its really fun, but don't think it can be used for CNC just yet.

http://labs.live.com/photosynth/default.html

scottcox
01-08-2008, 08:24 PM
Eric said >>I believe you should be able to process the file and create a cut file to do some thing like peel an apple you have tossed on the table.

And I first thought....well that's asking a lot.

But then I realized... you could shrink the resulting model to 98% and use Cut3d. Problem solved!