Optimizing plywood usage
Moderators: FourthWorld, heatherlaine, Klaus, kevinmiller, robinmiller
Optimizing plywood usage
I have an idea. I make things with plywood, but often have wasted leftover pieces. Interestingly enough, standard plywood size per sheet closely matches a standard computer screen resolution. A 4ft x 8ft, or 48in x 96in sheet can be multiplied by 16 to achieve 1/16in per pixel accuracy (for display). So, we can show a sheet with a 1536 x 768 pixel rectangle graphic.
Starting with the above grc called "plySheet", and having a list of "cut pieces" which are all smaller than the sheet, but varying in width and height, how can I mathematically create an optimized overlay onto the sheet, minimizing waste? The pieces left over would remain in the list to be compared against available space on the next sheet. I want the computer to help me determine where the cuts will be.
Is there existing already, a livecode script that does this or similar?
--
Amigatech
Starting with the above grc called "plySheet", and having a list of "cut pieces" which are all smaller than the sheet, but varying in width and height, how can I mathematically create an optimized overlay onto the sheet, minimizing waste? The pieces left over would remain in the list to be compared against available space on the next sheet. I want the computer to help me determine where the cuts will be.
Is there existing already, a livecode script that does this or similar?
--
Amigatech
-
- VIP Livecode Opensource Backer
- Posts: 9648
- Joined: Wed May 06, 2009 2:28 pm
- Location: New York, NY
Re: Optimizing plywood usage
Well.
I do this often with a CAD program, but still pretty much by hand. Such a process, though certainly optimizable with very clever software, is mostly heuristic, similar to packing a large box with smaller, differently shaped boxes. It is an intelligent trial-and-error task.
That said, I have written several programs, all related to finding the best fit of a library of linear shapes that must fit into a much longer linear space. This is a much simpler task than you are thinking about, since yours is two (not one) dimensional. But perhaps it can be attacked in the same way. I generally set up a series of pathways (I am not capable of that very clever sort of software) that start off subtracting the largest sub-shape, and continue to deduct from the whole in a sequential manner ever smaller ones. These paths must be tested at each step to see if the assembly is optimal, and if not, another pathway (or a sub-pathway) is inserted at that point.
With linear shapes, I always get the best use of the sub-shapes. I am sure this will work in 2-D, though I bet the task is considerably larger. Might I suggest that you try the 1-D problem first? If you get that down, move on to 2-D. In other words, take, say, a group of 3,4,6,and 8 foot boards, and find a way to fit them with minimal waste into, say, 30, 50, 75 and 83 foot space.
Write back. I have written the stuff I spoke about above with Hypercard, but the scripts will be nearly identical, and the process the same.
Craig Newman
I do this often with a CAD program, but still pretty much by hand. Such a process, though certainly optimizable with very clever software, is mostly heuristic, similar to packing a large box with smaller, differently shaped boxes. It is an intelligent trial-and-error task.
That said, I have written several programs, all related to finding the best fit of a library of linear shapes that must fit into a much longer linear space. This is a much simpler task than you are thinking about, since yours is two (not one) dimensional. But perhaps it can be attacked in the same way. I generally set up a series of pathways (I am not capable of that very clever sort of software) that start off subtracting the largest sub-shape, and continue to deduct from the whole in a sequential manner ever smaller ones. These paths must be tested at each step to see if the assembly is optimal, and if not, another pathway (or a sub-pathway) is inserted at that point.
With linear shapes, I always get the best use of the sub-shapes. I am sure this will work in 2-D, though I bet the task is considerably larger. Might I suggest that you try the 1-D problem first? If you get that down, move on to 2-D. In other words, take, say, a group of 3,4,6,and 8 foot boards, and find a way to fit them with minimal waste into, say, 30, 50, 75 and 83 foot space.
Write back. I have written the stuff I spoke about above with Hypercard, but the scripts will be nearly identical, and the process the same.
Craig Newman
Re: Optimizing plywood usage
Hi guys,
plywood?
OK, after looking up this in the dictionary, I am glad that it does not have to do anything with CHEESE!
In that case I would have had to close this thread!
Best
Klaus
plywood?
OK, after looking up this in the dictionary, I am glad that it does not have to do anything with CHEESE!
In that case I would have had to close this thread!
Best
Klaus
Re: Optimizing plywood usage
Klaus,
Theoretically, the same problem could be applied to a large slice of cheese, but measured in millimeters, of course.
Back to plywood though, the complexity of the problem will increase if we consider that with each cut, 1/16in of the remaining piece is lost to sawdust, allowing for the width of a saw blade. At first, I am not going to consider this. So it might as well be a big ole slice of cheese, and a very sharp knife.
We should still refer to it as "plywood", but we all know what we really mean.
--
Amigatech
Theoretically, the same problem could be applied to a large slice of cheese, but measured in millimeters, of course.
Back to plywood though, the complexity of the problem will increase if we consider that with each cut, 1/16in of the remaining piece is lost to sawdust, allowing for the width of a saw blade. At first, I am not going to consider this. So it might as well be a big ole slice of cheese, and a very sharp knife.
We should still refer to it as "plywood", but we all know what we really mean.
--
Amigatech
Re: Optimizing plywood usage
Amigatech wrote:We should still refer to it as "plywood", but we all know what we really mean.
Re: Optimizing plywood usage
With 2D, we also have the option to rotate the blocks to achieve a better fit. /tetris flashback!dunbarx wrote: With linear shapes, I always get the best use of the sub-shapes. I am sure this will work in 2-D, though I bet the task is considerably larger. Might I suggest that you try the 1-D problem first? If you get that down, move on to 2-D. In other words, take, say, a group of 3,4,6,and 8 foot boards, and find a way to fit them with minimal waste into, say, 30, 50, 75 and 83 foot space.
Craig Newman
--
Amigatech
-
- VIP Livecode Opensource Backer
- Posts: 9648
- Joined: Wed May 06, 2009 2:28 pm
- Location: New York, NY
Re: Optimizing plywood usage
The loss due to the width of the cut is trivial. It can be applied to each step as a matter of course. The trick is to determine the resultant rectangles after each section is removed. For example, in a 4' x 8' raw board, if you cut out, say, a 3' x 3' square from a corner, you are left with an "L" shaped remainder. But that is really:
1' x 8' and 3' x 5'
or
1' x 3' and 4' x 5'
You would have to assume that these two options were available as if those rectangles were separated. Now what to do with the several possible new rectangles that need to be taken from these two possible starting shapes? And so it goes...
Craig
1' x 8' and 3' x 5'
or
1' x 3' and 4' x 5'
You would have to assume that these two options were available as if those rectangles were separated. Now what to do with the several possible new rectangles that need to be taken from these two possible starting shapes? And so it goes...
Craig
Re: Optimizing plywood usage
I've created a basic drawing board (pun) with the ability to manually drag pieces around. If I can't use logic to smartly lay out the pieces, at least I can see the options. I want the pieces to stay inside the sheet, and not overlap any other pieces. Can I lock them to a grid?
--
Amigatech
--
Amigatech
-
- VIP Livecode Opensource Backer
- Posts: 9648
- Joined: Wed May 06, 2009 2:28 pm
- Location: New York, NY
Re: Optimizing plywood usage
Aw, you are back to the heuristic playing around that I do in CAD.
But anyway, read up on the "grid" and the "gridSize" properties.
But if you really want to do it this way,especially if you want to do it a lot, I would recommend a simple, maybe free, drawing program. I use MacDraft (which incidentally is quite a bit more that just that) because I am that old. And it is not free. But it is as much fun in the CAD world as LC is in the RAD world.
Craig
But anyway, read up on the "grid" and the "gridSize" properties.
But if you really want to do it this way,especially if you want to do it a lot, I would recommend a simple, maybe free, drawing program. I use MacDraft (which incidentally is quite a bit more that just that) because I am that old. And it is not free. But it is as much fun in the CAD world as LC is in the RAD world.
Craig
Re: Optimizing plywood usage
Hi Amigatech,
This problem is known as nesting
As far as I'm concerned I do my cad on rhinoceros (still only on windows) and my 3d scripting with grasshopper.
You may find interesting info in the links of this post (some of them are broken)
http://www.grasshopper3d.com/forum/topi ... -resources
@ dunbarx : OMG I didn't knew MacDraft still existed! and it runs on OSX? I think last time I played with it it was on a Classic II...
Cheers
Fred.
This problem is known as nesting
As far as I'm concerned I do my cad on rhinoceros (still only on windows) and my 3d scripting with grasshopper.
You may find interesting info in the links of this post (some of them are broken)
http://www.grasshopper3d.com/forum/topi ... -resources
@ dunbarx : OMG I didn't knew MacDraft still existed! and it runs on OSX? I think last time I played with it it was on a Classic II...
Cheers
Fred.
-
- VIP Livecode Opensource Backer
- Posts: 9648
- Joined: Wed May 06, 2009 2:28 pm
- Location: New York, NY
Re: Optimizing plywood usage
Fred.
MacDraft is still alive and well, up to v6, and still the most intuitive and prettiest of all mid-level CAD software.
And I did not know that Rhinos and Grasshoppers nested in windows.
Craig
MacDraft is still alive and well, up to v6, and still the most intuitive and prettiest of all mid-level CAD software.
And I did not know that Rhinos and Grasshoppers nested in windows.
Craig
Re: Optimizing plywood usage
Hehe rhinos need big windows obviously!
Re: Optimizing plywood usage
Interesting, but way to complex for me to follow. I wonder if a simpler nesting algorithm exists.You may find interesting info in the links of this post (some of them are broken)
http://www.grasshopper3d.com/forum/topi ... -resources
Cheers
Fred.
--
Amigatech
Re: Optimizing plywood usage
Hi!
In case anyone is interested, here's a link to a github repo that could be useful :)
https://github.com/Jack000/SVGnest/
F.
In case anyone is interested, here's a link to a github repo that could be useful :)
https://github.com/Jack000/SVGnest/
F.