Sheet Metal Cutting Algorithm
-
I have raw metal sheets of various rectangular sizes (x1*y1, x2*y2, ... xn*yn).I want select best fit sheet which fullfill my requirement for getting new sheets of X*Y it also has some tolerence. e.g I have metals sheets like 200*100,300*200,250*500,50*100,100*100 and I Require 3 pieces of 100*100 with 3mm tolerence.so how do I find the best fit soluion and how do I implement this logic. Thanks in advance.
-
I have raw metal sheets of various rectangular sizes (x1*y1, x2*y2, ... xn*yn).I want select best fit sheet which fullfill my requirement for getting new sheets of X*Y it also has some tolerence. e.g I have metals sheets like 200*100,300*200,250*500,50*100,100*100 and I Require 3 pieces of 100*100 with 3mm tolerence.so how do I find the best fit soluion and how do I implement this logic. Thanks in advance.
I am guessing that the effort involved in implementing would be extensive and difficult unless you are a major gemotry geek. After a little searching it seems some of the relevant keywords that lead to academic articles on the topic are "Nesting", and "No Fit Polygon". Since nesting could get you more bird articles you might want to include "sheet metal" or "CAD" in your search. I know it isn't an answer, but it should help your search.
-
I have raw metal sheets of various rectangular sizes (x1*y1, x2*y2, ... xn*yn).I want select best fit sheet which fullfill my requirement for getting new sheets of X*Y it also has some tolerence. e.g I have metals sheets like 200*100,300*200,250*500,50*100,100*100 and I Require 3 pieces of 100*100 with 3mm tolerence.so how do I find the best fit soluion and how do I implement this logic. Thanks in advance.
I know it can be done for example with Dynamic Programming[^], but it requires expertise in that particular technique. My suggestion if you're not specifically into optimization is to go for a stochastic algoritm like Simulated Annealing[^] or a greedy algorithm derived from the classical Kanpsack Problem[^], since they are very easy to implement, not time intensive, and give good results. In both cases, the trick to make it work for your case is to find the right Heuristic[^] function, that is the function to decide wich placing of each rectangular shape is better at a certain iteration. Another very good approach is using Rectangle Packing algorithms. Google that and you should find info. Just as a reference, there are many generic optimization techniques, which can apply to specific cases depending on requirements and problem modeling, you can have a look Here[^] for an overview. Good luck. :)
2+2=5 for very large amounts of 2 (always loved that one hehe!)
-
I am guessing that the effort involved in implementing would be extensive and difficult unless you are a major gemotry geek. After a little searching it seems some of the relevant keywords that lead to academic articles on the topic are "Nesting", and "No Fit Polygon". Since nesting could get you more bird articles you might want to include "sheet metal" or "CAD" in your search. I know it isn't an answer, but it should help your search.
thx for your suggestion. if any one has done same kind logic for cutting it will be more helpful for me.
-
I know it can be done for example with Dynamic Programming[^], but it requires expertise in that particular technique. My suggestion if you're not specifically into optimization is to go for a stochastic algoritm like Simulated Annealing[^] or a greedy algorithm derived from the classical Kanpsack Problem[^], since they are very easy to implement, not time intensive, and give good results. In both cases, the trick to make it work for your case is to find the right Heuristic[^] function, that is the function to decide wich placing of each rectangular shape is better at a certain iteration. Another very good approach is using Rectangle Packing algorithms. Google that and you should find info. Just as a reference, there are many generic optimization techniques, which can apply to specific cases depending on requirements and problem modeling, you can have a look Here[^] for an overview. Good luck. :)
2+2=5 for very large amounts of 2 (always loved that one hehe!)
thx for suggestion. but any one has done same kind of sheet cutting logic it will more helpful for me.