You are on page 1of 20

1

An efficient collision avoidance and


neighbourhood search algorithms for
nesting of 2-D parts in 2-D sheets

1
Siva Saravanan K., 2Rajasekhar A., 2*Ramesh Babu N.
 
1
Engineer Trainee, HPBP, Trichy
2
Department of Mechanical Engineering,
IIT Madras, Chennai
*
Corresponding author E-mail: nrbabu@iitm.ac.in
2

Definition
 Nesting is a classic problem of arranging parts on sheets in
an effective manner to minimize the amount of scrap raw
material

 Nesting engine analyses the parts (shapes) to be placed using


appropriate geometric tools and optimization algorithms
determines the orientation and order of the parts.
3

Requirements of an nesting engine

The parts placed in the layout should not overlap


The parts placed should lie completely in the sheet
must be able to handle wide variety of parts, which
may vary from simple rectangle to irregular shape
with curvilinear boundary and internal features
like holes
should be able to generate efficient layout within
tolerable amount of computing time
4

Literature survey
Being an important and challenging problem, nesting has attracted
several researcher’s attention

 Freeman [1970] - bounding box technique


 Mahadevan [1984] - trigonometry based mathematical tool called D-
function
 Art [1966] - ‘No-Fit Polygon’ , in which the parts slide one over the
other to find their feasible positions with each other
 Segenreich and Braga [1986] - introduced usage of pixel based
methods in handling parts and finding collision
 Babu and Babu [2001] - presented a novel generic representation
scheme to enable the part to move to feasible location very quickly
 Ma and Liu [2007] - proposed a semi-discrete representation scheme
that decomposes the geometry into number of vertical strips. This
representation scheme has proved to be generic and faster
5

Proposed nesting kernel


Module 1 Module 2 Module 4
Module 2
Representat Collision Sequence Placement
ion scheme checking generator heuristic
Modified
Semi-discrete
Centre distance Bottom-Left
representation
& check genetic heuristic
Vector representation
algorithm

Vector Part area based


interactio sequencing
(initially)
n

Semi-
discrete
check
6

Representation Scheme
 Representation scheme is used to identify the geometric
details like boundaries and holes of each part and sheet
 These details are stored in computer understandable and
easy-to-access form i.e. digital form, which aids collision
checking algorithm in detecting any intersection between
the boundaries of parts and sheets
 The proposed representation scheme divides both part and
sheet geometries into a series of discrete segments by a set
of parallel lines drawn at uniform interval on part and
sheet
 Uniform spacing between the lines on both part and sheet
ensure exact matching of the segments on the part to sheet.
7

Contd.,
 A series of parallel lines with equal distance are placed on the geometry
as shown in Fig a
 Once the grids of lines are superimposed on the geometry, the portion
of lines that is outside the geometry is removed as shown in Fig b and
Fig c
 This operation can be performed by finding the intersections between
the grid lines and the sides of the geometry under consideration. Later,
these details are stored in a two-dimensional array as shown in Fig d

(a) (b) (c)


Upper bound y 4 3.5 3.1 5 4 3
Lower bound y 2 1 0 0.2 0.5 1
Values in x-direction 0 1 2 3 4 5
(d)
8

Collision checking algorithm


The proposed placement algorithm has three-fold collision
checking algorithm
 The first and second collision checking algorithms do not need
any representation scheme as they directly use the vertices of
geometry to perform collision test
 On the other hand, the third and final collision checking
algorithm, semi-discrete form of representation uses vacancy
and occupancy lines to find any collision between the parts.
C
h
C
ec
h
eck
C
2 e
• V
n
t
e
r
c
e
t
o
d
r
i
s
1•

it
n
a
k

tn
e
c
r
e
a
c
tic
h
o
e
c
n
k

C
h
e
c
k

3
• S
e
m
i
-
d
i
s
c
r
e
t
e

c
h
e
c
k
9

Check 1 – Centre distance check


Centre distance check is a basic check performed between any two
chosen parts placed on a sheet in order to determine whether the
parts need to be subjected to any collision tests
The distance between the centroids of two parts ‘C’ is compared to
sum of the distance from reference point to extreme vertex,
(R1+R2) in each part as shown in Figure

If C ≥ R1+R2, no collision, hence position accepted


But if C< R1+R2, collision detected, go to next level of check
10

Check 2 Vector interaction


 Vector interaction is based on analytical concepts of intersection
between two sides of two different parts
 Vector interaction takes two sides of two different parts and finds the
intersection point ‘I’.

(a) Overlap case: AB = AI+IB and CD=CI+ID


(b) Non-overlap case: C'D' ≠ C'l' + D'I'

This check is carried out for all the sides of one part to all the sides of rest
of the parts.
11

Check 3 Semi-discrete check


The semi discrete approach uses a set of parallel lines of varying lengths
represent the portion containing material in part and vacant portion
available on sheet
The lines representing the part geometry are called as “occupancy lines”
and the lines representing the available space of sheet are called as
“vacancy lines”.
the proposed collision checking algorithm has to simply search for
enough space in vacancy lines to accommodate the occupancy line.

Part 1
Part 2

 Vacancy occupancy values for both parts is checked


 If there is no overlapping part will be placed
12

Sequence generator
 Genetic Algorithm (GA) is a potential optimization algorithm to find
optimal part sequence from all possible combinations.
 GA usually encodes a solution into a number of cells each containing
part sequence number in a linear array (chromosome), and uses
appropriate operators to achieve evolutionary optimization. Commonly
used operators include reproduction, crossover, and mutation.

Initial population:
Let ‘n’ is the total number of parts to be nested then, number of
sequences is chosen as n, when n ≤ 15 and number of sequence is 15 for
n >15
Evolved population:
Sequences are sorted out in increasing order based on nesting efficiency
One-fourth of the best population is retained in the next generation
Rest of the population is generated by using the genetic operations from
the previous generation.
13

Placement sequencing module


• Initial population is generated based on descending
order of area of each part.
• Part placement starts from bottom left of the sheet
• Each part is placed with its reference point on bottom-
left vertex of previously placed part.
• Then the part is moved from vertex of previously placed
part, unit by unit in ‘y’ direction till the part finds a
collision free position.
• The number of orientations considered for each part is
six.
• The collision check performed here is three fold.
14

Results
The proposed approach is implemented using C++ programming language.
The robustness of the approach is demonstrated by choosing wide input
range of parts.
Babu and Babu [2001] approach is chosen as benchmark as it is fast and
generic in nature
The experiments are conducted on 3.4GHz Intel Pentium 4 processor PC
with 1024 MB RAM and Windows XP operating system
The parameters used to check the perfomance of the algorithm is nesting
time and nesting efficiency

Height of sheet that is utilized


15

Comparison of placement algorithm


Babu & Babu [2001] Proposed algorithm

• Randomly generated sequence. • Randomly generated


• Vacancy occupancy checking sequence.
for 1mm of part. • Vacancy occupancy checking
• Sheet filling is in x direction for 1mm of part.
• Parts-100 • Sheet filling is in x
• Parts-100
• Time- 15.56sec
• Time- 2.015sec
• Efficiency- 60.08 %
• Efficiency- 70.09 %
16

Comparison of optimization algorithm


Babu & Babu [2001] Proposed algorithm

• Randomly generated sequence. • Randomly generated sequence.


• Vacancy occupancy checking • Vacancy occupancy checking
for 1mm of part. for 1mm of part.
• Sheet filling is in x direction • Sheet filling is in x
• Parts-90 • Parts-90
• Time-59sec
• Time-4374sec
• Efficiency-68%
• Efficiency-62.6%
17

Contd.,
Comparison of placement algorithm Comparison of optimization algorithm

Proposed Babu and Babu Babu and Babu


Proposed approach
approach approach (2001) approach (2001)

Nesting Percentage Nesting Percentage


Nesting Percentage Nesting Percentage No. of
No. of Time Utilization Time Utilization
Time Utilization Time Utilization parts
parts (s) (%) (s) (%)
(s) (%) (s) (%)

10 0.219 56.29 0.03 34.43 10 0.54 51.32 0.26 27.46


20 0.361 50.47 0.41 47.98 20 2.3 71.40 3 51.92
30 0.516 56.29 1.04 54.2 30 5.3 66.93 42 61.21
40 0.747 60.98 2.06 54.46 40 6.4 75.15 34 64.90
50 0.907 63.08 3.56 54.82 50 9.5 71.41 152 64.32
60 1.093 63.63 5.02 54.71 60 12.8 76.56 268 64.42
70 1.313 69.93 7.28 58.37 70 17.4 74.59 508 66.64
80 1.512 66.34 10.03 57.82 80 21.35 78.24 1143 70.95
90 1.751 65.37 13.22 56.01 90 26.5 76.04 558 69.84
100 2.015 70.09 15.56 60.08 100 31 78.03 2078 71.47

 Overall speed improvement : 27 times


 Overall efficiency improvement : 10.62 %
18

Some more results

No. of parts: 120 nesting Number of parts: 70


efficiency: 75% nesting efficiency: 88%
time taken: 49s time taken: 50s

Number of parts: 300


nesting efficiency: 76.7%
time taken: 63s
19

Conclusions
A novel and simple three-fold collision checking algorithm based
on the concepts of analytical geometry is proposed in this work.
It is observed that the speed of placement algorithm has
enhanced by 6 times in comparison with benchmark algorithm.
The modifications proposed to genetic algorithm like selected
initial population and altering the number of population in a
generation has proven to be very effective in reducing the overall
nesting time by 20 times and in improving the efficiency by 9%.
The ability of the proposed algorithm to represent and place the
parts on the sheet effectively with minimal memory requirements
has enhanced the maximum limit of parts that can be placed at a
time, from a few tens to few hundred depending on the size of
the part.
20

THANK YOU

You might also like