MIKKO YLIHÄRSILÄ
SHEET METAL COSTING FROM PART DESIGN
Master of Science Thesis
Examiner: Professor Minna Lanz Examiners and topic approved by the Faculty of Mechanical Engineering and Industrial Systems 2.5.2018
i
ABSTRACT
Mikko Ylihärsilä: Sheet metal costing from part design Tampere University of Technology Department of Mechanical Engineering and Industrial Systems Master of Science Thesis, 81 pages, 1 Appendix pages May 2018 Master’s Degree Programme in Mechanical Engineering Major: Production Engineering Examiner: Professor Minna Lanz Keywords: sheet metal, cost estimation, neural networks, CAD, CAM
Manufacturing cost and machining time estimations are important processes during de-
sign, quotation and process planning. Customers would like to have responses instantly
for their requests for quotations. CAD-designers would like see the impacts of design
changes on cost. In process planning phase cost and machining time information can be
used for selecting which machine is used to manufacture parts.
The purpose of this study was to develop cost estimation model for estimating manufac-
turing costs for given sheet metal 3D-design model. This study focused especially into
estimating machining time and material usage for machines using laser cutting, punching,
forming and shear cutting technologies. Objectives for the study were that estimation
model would be capable of giving estimates automatically and fast, estimates should be
reasonably accurate in order to use them in practice and it should be possible to train
model based on existing production data.
Neural network based model was developed for estimating machining time and material
usage. Also different methods were developed for analyzing and measuring machining
times and material usages for individual parts from existing production data. These meas-
urements were used for training neural network models. Automatic feature recognition
was used for processing 3D-models. This allowed processing 3D-models from different
CAD-systems. Cost estimation model was implemented as web-based service which can
be integrated into client applications over internet.
Final result was software implementation of the cost estimation model that could be
trained by existing production data. Model can give cost estimation simultaneously for
different machine types quickly and automatically. Also estimates were evaluated to be
accurate enough for practical usage.
ii
TIIVISTELMÄ
Mikko Ylihärsilä: Sheet metal costing from part design Tampereen teknillinen yliopisto Diplomityö, 81 sivua, 1 liitesivua Toukokuu 2018 Konetekniikan diplomi-insinöörin tutkinto-ohjelma Pääaine: Tuotantotekniikka Tarkastaja: professori Minna Lanz Avainsanat: ohutlevy, kustannusarvio, neuroverkot, CAD, CAM
Valmistuskustannusten ja koneistusaikojen arviointi on oleellinen osa tuotteen
suunnittelua, tuotteen hinnoittelua ja prosessisuunnittelua. CAD-suunnittelijoille on
oleellista tietää miten muutokset ohutlevymallissa vaikuttavat niiden
valmistuskustannuksiin. Hinnoittelussa asiakkaat haluaisivat saada tarjouksen
mahdollisimman pian tarjouspyynnön jättämisestä. Prosessisuunnittelussa
kustannustietoa ja valmistusaikoja voidaan hyödyntää oikean konetyypin valinnassa ja
tuotannonohjauksessa.
Tämän työn aiheena oli kehittää kustannuslaskentamalli ohutlevykappaleiden
valmistuskustannusten arviointiin annetusta kappaleen 3D-suunnittelumallista. Työ
keskittyi erityisesti koneistusajan ja materiaalinkäytön arviointiin laser-, lävistys-,
muovaus- ja kulmaleikkausteknologioita hyödyntäville koneille. Työn tavoitteena oli että
kustannuslaskentamalli toimisi automaattisesti ja riittävän nopeasti. Mallin tulisi antaa
riittävän tarkkoja arvioita, jotta sitä voidaan hyödyntää käytännössä. Lisäksi mallin tulisi
oppia tekemään arvioita aiemman tuotantotiedon perusteella.
Kone- ja materiaalikustannusten arviointiin kehitettiin neuroverkko-pohjainen
laskentamalli. Lisäksi kehitettiin menetelmiä, joilla tuotantodatatasta voidaan analysoida
ja mitata kappalekohtaisia työstöaikoja ja levynkäyttöä neuroverkkomallin opettamiseen.
3D-mallien käsittelyyn hyödynnettiin automaattista piirteentunnistusta, joka mahdollistaa
eri CAD-järjestelmien tuottamien 3D-mallien käsittelyn. Kustannuslaskentamalli
toteutettiin web-pohjaisena palveluna, joka voidaan integroida eri asiakassovelluksiin
verkon yli.
Lopullisena tuloksena oli implementoitu kustannuslaskenta-ohjelma, joka voidaan
opettaa analysoimalla aiempaa tuotantodataa. Malli pystyy antamaan kustannusarvion
usealle konetyypille nopeasti ja automaattisesti. Lisäksi mallin antamat arviot ovat
riittävän tarkkoja, jotta niitä voidaan hyödyntää käytännössä.
iii
CONTENTS
1. INTRODUCTION .................................................................................................... 1
1.1 Research objectives ........................................................................................ 2
1.2 Research questions ......................................................................................... 2
1.3 Research methods ........................................................................................... 3
1.4 Research scope ............................................................................................... 3
2. THEORETICAL BACKGROUND .......................................................................... 4
2.1 System design ................................................................................................. 4
2.2 Neural networks ............................................................................................. 5
2.3 CAD data exchange ........................................................................................ 8
2.4 Sheet metal cost estimation .......................................................................... 14
3. CURRENT STATE ANALYSIS ............................................................................ 18
4. IMPLEMENTATION ............................................................................................. 19
4.1 Concept and specification ............................................................................ 19
4.1.1 System design ................................................................................ 19
4.1.2 Tools and programming methods .................................................. 26
4.1.3 Algorithms ..................................................................................... 28
4.1.4 Feature recognition & unfolding .................................................... 36
4.2 Measurements............................................................................................... 38
4.2.1 Measuring part machining time ..................................................... 38
4.2.2 Measuring part material usage ....................................................... 43
4.3 Estimations ................................................................................................... 45
4.3.1 Estimating part machining time ..................................................... 45
4.3.2 Estimating part material usage ....................................................... 56
4.4 System set-up ............................................................................................... 62
4.4.1 Data management and training neural networks ............................ 62
4.4.2 Configuring cost estimation model ................................................ 62
4.4.3 REST API interface ....................................................................... 63
5. RESULTS ............................................................................................................... 65
6. DISCUSSION AND FUTURE IMPROVEMENTS .............................................. 69
7. CONCLUSIONS ..................................................................................................... 72
REFERENCES ................................................................................................................ 75
APPENDIX A - EXAMPLE OF THE DATA ................................................................ 82
iv
LIST OF SYMBOLS AND ABBREVIATIONS
NFP No-Fit Polygon
DL Deep learning
ANN Artificial neural network
SL Supervised learning
UL Unsupervised learning
RL Reinforcement learning
CAD Computer Aided Design
CAM Computer Aided Manufacturing
CAPP Computer Aided Process Planning
OKP One-of-a-Kind production
BREP Boundary representation
REST Representation State Transfer
1
1. INTRODUCTION
Cost and time estimations are important processes during design, quotation and process
planning. Customers would like have response instantly for their requests for quotations.
CAD (Computer-Aided Design) -designers would like see effects of design changes into
cost. In process planning phase information cost and time information can be used for
selecting which machine is used to produce parts. These are the motivations behind this
study.
The main research problem for this study is development of estimation model for sheet
metal manufacturing cost for given part design. Furthermore the focus is on estimating
costs for cutting part from sheet with different machine types and cutting technologies
including punching, forming, laser cutting and shear cutting. Main values to be estimated
are material usage, machining time and gas consumption. When these values are esti-
mated, estimated cost can be achieved by applying user given costs for machining time,
material and gas. Numerous indirect values are also estimated and calculated in order to
achieve final results.
Currently cost estimations for sheet metal parts can be made in CAM (Computer-Aided
Manufacturing) software where manufacturing process can be programmed and simu-
lated. Based on the simulation, accurate machining times are known. In many cases parts
can be automatically programmed, but not robustly enough for full automatic solution.
Especially for new kind of parts dimensions are changed and automatic process is not
capable of making proper tooling. In practice manual programming is requires new kind
of products are being processed. Many existing cost estimation models are studied and
implemented earlier. Solutions that are capable of giving estimates for part design from
outside of the system work mostly for laser cut parts. They provide the
CAD/CAM integrated systems are capable of estimating more complex processes like
forming operations. These systems can achieve accurate results as lot of necessary infor-
mation for costing can be exchanged within the system. However in these systems, design
must be made within the system and they work best when design process is done in-house.
This limits the possibilities to automatically process part designs from outside. Feature
recognition is possible with some CAD software, which allows to input sheet metal 3D-
models outside, but support for recognizing forming features is limited.
2
In this study, estimation model to be develop, should be capable of giving instant cost
estimations for part designs, feed from different sources. Many sub-contracting compa-
nies receive the data for their orders and request for quotations in different CAD-file for-
mats.
1.1 Research objectives
Three main objectives are given for the estimation model:
Objective I – Estimation model is capable of giving estimated cost automatically and
instantly for different sheet metal machining processes, including laser cutting, punching,
shear cutting and forming.
Objective II - Estimation model is reasonably accurate and robust. Relative errors for
cost estimations should be in limits of 5-10%.
Objective III - Estimation model learns the costing parameters based on the existing
manufacturing information without manual input. Model should learn to estimate ma-
chining time, material usage and gas consumption. Only costs for machining time, mate-
rial and gas are manually given.
In objective I term automatically means that cost estimation model is capable of giving
estimations without human interaction and can work 24/7. In order to clarify term in-
stantly, we can inspect case where cost estimation is used for online quoting. There in-
stantly depends on the patience of user. For clarity in this study the limit for response is
set to 10 seconds.
1.2 Research questions
In order to achieve objectives four research questions are defined:
Research question I – Is it possible to make estimations automatically?
Research question II – Is it possible to make estimations instantly?
Research question III – How accurate estimations can be done for different machine
types and cutting technologies?
Research question IV – Is it possible to train or tune estimation model with existing
production data?
3
1.3 Research methods
Four main research methods are used.
Literature review – System design theory and existing cost estimation methods and
models are studied.
Qualitative methods - Different cutting processes and technologies are being analyzed
in order to understand the phenomenon’s that affect into machining time and material
usage.
Quantitative methods – Cost estimation methods accuracies are measured and analyzed.
Implementation –Software implementation is made to verify that requirements can be
fulfilled in real testing environment.
1.4 Research scope
Scope of the research is limited into cost estimation of sheet metal cutting and forming
processes, including estimations for the machining time and material usage. Cutting pro-
cesses include laser cutting, punching, shear cutting. Also auxiliary machine times are
included into study. These are sheet loading times, sheet unloading times and part sorting
times. Cost estimation model will used for pricing, but pricing models are studied only so
far that all requirements to support it can be captured. Costs that relate to CAM program-
ming, bending costs, packaging and delivery, are not covered. Cost calculations for ma-
chine hourly rates are briefly covered.
4
2. THEORETICAL BACKGROUND
2.1 System design
Systematic approach for system design is necessary in order to design and implement
complex systems. It is not possible for one designer or team to intuitively to understand
all the requirements and details that are necessary successful design. Pahl and Beitz have
described a design process which will improve the probability of successful design both
technically and financially. They divided design into four main phases, task clarification,
conceptual design, embodiment design and detailed design. [33] Systematic approaches
to engineering design have been part of the engineering education in Germany a long time
and pioneering work has influenced into many other counties since. [43]
Task clarification
In task clarification phase all the requirements that design must fulfill are collected into
requirements list. This clarifies the design work and verifies that all major requirements
are taken into account. [33]
Conceptual design
In conceptual design phase principle solution, also called concept, is designed. During
concept design essential problems are abstracted and functional structures are established.
The main information flows between functions are being designed. Then suitable working
principles are combined working structures. Principle solution can be represented in many
forms e.g. diagrams, flow charts. [33]
Embodiment design
In embodiment design phase designer starts to determine overall layout based on the
working structures and principle solutions found in conceptual phase. Usually several
preliminary layouts are produced in order to get information about advantages and disad-
vantages of the different possible variants. Preliminary layouts are then evaluated from
the technical and economical perspective which gives higher level information about the
project. Best layout is obtained by combining good features from the layouts and elimi-
nating weak spots. [33]
5
Detailed design
In detailed design phase detailed specifications for the product are describe in product
documentation. However corrections are often made during this phase and previous steps
must repeated to improve lower level quality, but overall solution shouldn’t be changed
anymore. [33]
2.2 Neural networks
In this study neural networks are used as a tool for modeling cost estimation model. How-
ever they were not the initial choice. Design process begin by tests with regression mod-
els, but it turned out that many of the estimation problems are non-linear in nature. Re-
gression models gave good results with some of the estimation tasks but failed with many.
Overview
Research of artificial neural networks(ANN’s) begin from interest to understand neural
system in human brains and from trying to build information processing systems that
could use the same processing method as human brains. Computers can make some tasks
more efficiently than humans, but they are not as good in learning new information, flex-
ible, robust or energy efficient. Currently topic of artificial neural networks is widely
studied and has gained status of consolidated and mature technique in solving real-world
problems. [35] ANN’s have proven to outperform regression models in many ways when
used for cost estimation [57].
Neural network can be considered as “black box” which can represent any non-linear
function. Studying the structure inside this “black box” usually doesn’t give any useful
information about model that is being built. In fact many different neural networks with
different structures or architectures can have the same behavior. [35] Neural network con-
sists of neurons which are each simple processors. Input neurons are activated by the
sensors perceiving environment which then activate other neurons underneath that are
connected through weighted connections.[37]
First ANN’s were shallow having only one hidden layer. Deep neural networks having
multiple hidden layers had a breakthrough in 2000s when graphics processing units
(GPU) where started to use for training. GPU’s can be 50 or more times faster than using
central processing unit (CPU) [37].
6
Neural network structure
Basic structure of the neural network can be seen in Figure 1. This example NN has five
input neurons which behave also as scaling neurons. In the middle is two hidden layers,
each having three perceptron neurons. One perceptron neuron is used as output. On the
right is unscaling neuron for the output neuron. Each neuron is connected to the neurons
in following layer. Scaling and unscaling is used to fit data around zero as back-propaga-
tion works better with values evenly distributed around zero.[69]
Figure 1 Neural network
Learning
Neural network learning is process of finding biases for the neurons and weights for the
connections that produce desired behavior. This can take long time to compute depending
on the problem that is being modelled. [37] In order to avoid starting learning process
from scratch when new data is input, warm-starting methods can be used [9].
Three basic learning categories are supervised learning (SL), unsupervised learning (UL)
and reinforcement learning (RL) [37]. In SL goal is to find mapping between inputs and
outputs by minimizing cost function. Both input values and target values are given within
learning data. In UL there is no answers given for the output values and the target is to
learn some new knowledge about the data. RL is also made without right values for the
output data, but reward or punishment signals are given continuously during learning.
Sometimes UL is used to pre-process or pre-train the NN before SL in order to achieve
better results. This was discovered in 1987 [35]. It is studied that UL pre-training adds
robustness when using deep neural networks and also works as a regularizer. NN’s with-
out UL pre-training could stuck on local minima However it was noticed also that with
smaller amount of layers the results were systematically worse than if using randomized
initialization. Also when number of layers grew big enough results were worse again.
[14]
7
First neural networks that were develop in 1940’s were not learning. Gradient descent
based backpropagation method was developed in 1960s and used for neural networks in
1981 [5]. Other backpropagation methods have been developed or taken in use with NN
after that, Gauss-Newton, Levenberg-Marquardt, quasi-Newton and conjugate gradient.
[37]
Normal back-propagation methods are slow as they use fixed training rates. Brent method
uses variable training rate and is generally lot faster. It also achieves equal or better results
than results than back-propagation. [6]
Activation functions
Several different kind of activation functions can be used for neurons. For regression
problems e.g. linear and hyperbolic tangent functions are used. Logistic function can be
used for classification problems. Shape of different activation functions can be seen in
Figure 2. Function types are from left to right: linear, hyperbolic tangent, logistic.
Figure 2 Activation functions (Created with Wolfram|Alpha)
Error functions
During then learning process, error function is being minimized during each iteration.
Several different error functions can be used e.g. sum of squares, mean squared error and
root mean squared error. Sometimes it is beneficial to use different error function for
training than for measuring. [5]
𝐸𝑠𝑢𝑚 𝑜𝑓 𝑠𝑞𝑢𝑎𝑟𝑒𝑠 =1
𝑛∑ (𝑌𝑖−�̂�𝑖)
2𝑛𝑖=𝑛 (1)
𝑬𝒎𝒆𝒂𝒏 𝒔𝒒𝒖𝒂𝒓𝒆𝒅 𝒆𝒓𝒓𝒐𝒓 =𝟏
𝒏∑ (𝒀𝒊−�̂�𝒊)
𝟐𝒏𝒊=𝒏 (2)
𝑬𝒓𝒐𝒐𝒕 𝒎𝒆𝒂𝒏 𝒔𝒒𝒖𝒂𝒓𝒆𝒅 𝒆𝒓𝒓𝒐𝒓 = √𝟏
𝒏∑ (𝒀𝒊−�̂�𝒊)
𝟐𝒏𝒊=𝒏 (3)
8
Generalization and regularization
Complex NN architectures can easily over fit into given training set. This can be seen in
Figure 3 where after many iterations model begins to over fit into training data set and
selection error begins to grow. In order to have well generalized model, selection error
should be near to the training error. [5]
Figure 3 NN Over fitting
One way to avoid overfitting is to minimize model complexity by reducing number of
neurons and hidden layers. This can be achieved by automatic algorithms which can iter-
ate different number of neurons and by selecting the best fit. Alternative approach to con-
trol over fitting is to penalize large weights by applying additional error term into error
function. Adjusted error function with additional regularization term is presented below.
Ω in equation is regularization function and v control variable that can be adjusted to
control the influence of the regularization function. [5]
�̃� = 𝑬 + 𝒗𝜴 (4)
2.3 CAD data exchange
Sheet metal 3D models are usually modeled using CAD(Computer Aided Design) -soft-
ware’s which are based on boundary representation (BREP) models. Some common
BREP based 3D kernels used are Parasolid [77], ACIS [55], CGM [61] and GRANITE
[66]. Looking at software’s that are capable for sheet metal design, it can be seen that
Parasolid is used in Solid Edge, SolidWorks, Onshape, Ironcad, Siemens NX and Top-
Solid [76]. ACIS is used in Bricscad, TurboCAD and SpaceClaim. Also Autodesk Inven-
tor uses 3D kernel compatible with ACIS kernel. CGM is used in CATIA and GRANITE
in PTC Creo. [84] Most of these CAD software’s have their own proprietary file format.
[60]
9
Proprietary file formats are closed and there is no open access to the files. 3D importing
library is required to read these file formats. For this purpose e.g. 3DInterOp [57] or
Datakit [63] libraries can be used. However feature information is mostly lost when ex-
changing data from proprietary formats. [60]
Neutral file formats e.g. STEP, IGES and X_T are commonly used to exchange 3D ge-
ometry data between different CAD and CAM applications as they are open and well
supported by many CAD software’s. Both STEP and IGES are standardized formats, but
during the recent years popularity of IGES format has decreased and its last version was
published 1996. STEP format allows to exchange feature data and custom data between
applications. [60] No information was found that there would be common schema that
CAD software use to write sheet metal feature data into exported STEP files.
Boundary representation (BREP)
Boundary models are built from faces, edges and vertices which define the topological
structure of the 3D model. Each topological entity is further on defined by parametric
surface, parametric curve or in case of vertices with point. Faces are connected to edges
which bound the surfaces into finite areas. And edges are connected into vertices which
will bound curves into finite segments. [38]
BREP models are called solid if the faces surround a volume without leaks. In order to
be solid – model must meet three criteria’s. [38]
- Faces of the model don’t intersect each other except in the connecting edges or
vertices
- Boundaries of the surfaces do not intersect it themselves
- Each edge must be connected into two faces
In this study it is assumed that input 3D models are valid solid models and have constant
thickness between each face. In general all sheet metal sheet metal CAD-software pro-
duce valid sheet metal designs that can be automatically processed.
Sheet metal features
Sheet metal features can be classified into two main categories, transverse shapes and flat
shapes. Transverse shapes describes the overall structure of the sheet metal model. Each
transverse shape represents a branch node in feature graph, which can contain child nodes
underneath. The most typical transverse shape in sheet metal models is bend. Features
under flat shape category represents leaf features, which can’t have any child nodes. [38]
10
Figure 4 Sheet metal feature classification (modified adaptation from [38] )
Feature data exchange
Feature data is necessary for costing module in order to know which machine operations
will be performed. Methods for defining features from CAD-data can be divided into
three main categories, interactive, automatic and design by features as seen in Figure 5.
[38]
11
Figure 5 Feature definition methods for sheet metal (modified adaptation from [38] )
In interactive method user can select predefined features and then software will guide
user to select geometrical entities from the model. In restricted mode software will calcu-
late feature data based on the selections or uses defaults from the feature library. In ad-
hoc method user can freely modify any feature parameter. Ad-hoc method gives user
freedom, but can cause failures during the machining process if input values are wrong.
Advantage of the interactive methods is that it can be used when input CAD-data is im-
ported from foreign system. [38] Disadvantage of the interactive method is clearly that it
is not automatic and requires always human interaction.
Design-by-features method is used when modelling is performed in feature based CAD-
software. It can be further divided into two main categories, procedural and declarative.
In procedural approach features are built from sequence of modeling operations and in
declarative approach features are defined by constraints to the surrounding geometry. In
design-by-features method feature information is accurate and can be forwarded to sub-
systems like CAM automatically. Disadvantage is that it is usually not possible to auto-
mate the same process for CAD-data from foreign systems. One studied CAD-software
[81] has built-in feature recognition system, but it didn’t recognize common forming fea-
tures e.g. louvers, bridges and extruded holes.
In many studies, e.g. [30, 36, 42, 50], STEP file format is used for feature data exchange.
In each study custom schema is used to apply feature data into STEP format. With this
method customized integrations can be built between CAD and CAM software in order
to exchange feature data. Disadvantages are the same as in design-by-feature method,
automating process for foreign data is difficult. In principle the idea of having neutral
format for exchanging feature data is good, but there should be standardized schema for
the feature data.
12
Automatic feature recognition is required in systems where feature data is not exchanged
within integrated CAD/CAM system. If 3D-models are feed from foreign system and
possibly in different file format, feature information is usually lost during the translation
process. Two sub-branches for automatic feature recognition exists, volume-based and
boundary-based. In here boundary-based methods are described as they are used for sheet
metal feature recognition. Boundary-based methods can be furthermore classified into
four categories, syntactic, rule based, graph-based, neural net based. Common to all
boundary-based methods is that they try to find pre-defined features based on the topo-
logical and geometrical relationships. [38]
Syntactic methods use pattern recognition methods adapted from machine vision for iden-
tifying patterns from set of line and arc segments. Simpler patterns are eventually concat-
enated into sequence of patterns. Finally features are search by parsing compound pattern
sequence. Feature match is found if corresponding sequence is found from the feature
library. [38]
In graph based methods face adjacency graph (FAG) is constructed from the part BREP
model. Features as described as a sub-graphs and searched from FAG. Also geometrical
properties and relationships can be included into FAG in order to differentiate features
having same topological structure. After feature candidates are found based on FAG
search they can be validated with more precise rules. [38] In most of the studies sheet
metal models are first flattened in into thin sheet bodies in order to simplify recognition
process [23, 25, 26].
In rule based methods set of rules are used to find and determine the type of the features.
These methods can apply rules based topological structure, geometrical properties and
relationships. Neural net based methods are also based on rule based methods, but instead
of strict rules they can be used to recognize features by in probabilistic way. Disadvantage
of the rule based method is that it needs to make exhaustive search for each set of rules
against the model. Models with many features can take long time to compute. [38]
In this study variation of the rule based automatic feature recognition method is used
according to the previous study made [16]. In this method feature search models are de-
scribed as state machines as seen in Figure 7. Each state is connected into other states
with transitions. Each transition can contain set of rules to validate either topological or
geometrical conditions. Advantage is that geometrical conditions are validated only when
necessary and not pre-computed as with graph based methods. This allows performing
more complex validation logic during the recognition and post validation is minimized.
Each feature search model has same starting state where existing wall-feature is known.
This allows to optimize recognition speed by combining similar states in different feature
models into one combined state machine. This reduces drastically the amount of compu-
ting.
13
One challenge with feature recognition is different variations of the same feature. Ex-
truded hole can be modeled in many different way as seen in Figure 6. Variations occur
because designers have different preferences to model same features. Some designers will
put fillets into corners and some will leave them out. These variations can be taken into
account by adding optional routes into state machine as seen in Figure 7. In earlier study
16 different variations for extruded hole could be recognized and for more complex fea-
tures up to 256 different variations were recognized. [16]
Figure 6 Extruded hole with different modeling styles
Figure 7 Feature recognition state machine model
Unfolding
After all the features in sheet metal model are recognized, it can be unfolded. In unfolding
different k-factors can be taken into account based on the bending tools. However for
costing purposes it is not necessary to have 100% accurate unfolded model as the dimen-
sional differences are small. [52]
14
2.4 Sheet metal cost estimation
Manufacturing companies have realized that ability to design and manufacture parts in
short time, gives competitive advantage especially in one-of-a-kind production (OKP).
New kind of systems are required in order to maintain competitiveness as other compa-
nies are also improving their systems. [51]
During the recent few years many manufacturing portals for 3D printing have been es-
tablished e.g. 3D Hubs [56] and Shapeways [80]. It is possible to request price from the
portals by uploading 3D design model. Also many tools for calculating manufacturing
cost for 3D printed parts are easily available e.g. Tinkercad [83]. Same trend seems to
follow into sheet metal industry where CAD-integrated costing modules and online por-
tals with online quoting have been introduced e.g. [54, 64, 68].
CAD-integrated sheet metal costing module can be found e.g. from Solid Works. Solid
Works built-in costing module can utilize the feature information modeled into Solid
Works 3D-models. It has also feature recognition support for some of the sheet metal
features, but not for typical forming features like bridge, louver or extruded holes. For
material cost calculation bounding box based calculations can be performed. [81] Few
instant quoting portals for laser cut and bent parts can be found [54, 64, 68]. None of these
supported forming features in time of writing. One implementation allowed to manually
define threaded holes. [85] Costing methods used in these implementations were not pre-
sented.
Cost and price
Difference between cost and price is often mixed, but they are totally different concepts.
In one source cost is defined as: “Cost is the economic value of the human effort which
is deployed to go, in a given environment, from situation A to situation B.” Which later
on was explained more deeply to also cover energy, raw material, machines, deprecation
etc. And price is defined as: “Price is the result of a monetary agreement between two
parties when something is exchanged between them”. [17]
Cost estimation
Good cost estimation is crucial information in business in order to be performant and
effective. Overestimating cost can results loss in sales and underestimating can cause fi-
nancial losses in company. [31]
15
According to Foussier [17], estimates can be only based on data from past and extrapo-
lating estimates based on that. Estimates are not necessary just linear extrapolations, but
can be more complex models that can contain concepts and relationships that are extracted
from the previous information. [17]
It is important to know how the costs are estimated and measured, and what the limitations
of the estimations are. Only way to improve accuracy and quality of the estimation is to
compare it to reality. Sometimes big deviations occur and they need to be analyzed model
must be improved accordingly. [17]
Estimating sheet metal cutting cost
Sheet metal cutting cost consists of machine operator cost, machine location related costs,
machine amortization cost, electrical power costs, maintenance costs and indirect costs.
From these costs hourly cost rate can be defined for the machine. Part cutting cost can be
calculated when cutting time is known by applying hourly cost rate. [10]
Most of the research found for estimating sheet metal cutting costs focused on estimating
laser cutting time. In one study regression based method with logarithmic functions were
used to estimate laser cut and punch nibbling time based on the total cutting length. In
this study it was noticed that estimation error increased when number of internal holes
increased. [3] In some studies e.g. [21, 48] neural networks based approach were used
for estimating laser cutting time. In these studies also number of internal holes and sharp
corners were used as inputs which increased the accuracy of the estimation. Many studies
were also found e.g. [36], where knowledge based approach was used. Knowledge based
systems require data and knowledge models which are stored into knowledge database.
Estimations are made by matching features in part into knowledge models. Criteria can
be for example size of the hole or other dimensions of the features. [36]
Estimating material costs
Based on the discussion with one manufacturer, methods for estimating material usage
are either nesting parts or using bounding box based methods. For this manufacturer the
material cost was the most influencing cost factor. For larger quantities larger, parts are
nested on the sheet in order to get accurate material usages. Nesting requires some manual
work and doesn’t give instant results. For one-of-a-kind products different factors are
applied to bounding box based on human decision. Different factors are used based on
the general shape of the part, e.g. for rectangular 1.2 and for triangular 0.7. With this
method it is possible to give estimates relatively fast but requires also human decision
and is not automatic.
16
Most of the studies that are made for estimating material usage, are based on nesting
algorithms. Nesting algorithms can be divided into two main categories, rectangular nest-
ing and irregular nesting [39]. Dynamic algorithms [22, 39] can be found for rectangular
nesting which use linear programming for optimizing nests for given order batches. For
irregular nesting No-Fit-Polygon (NFP) based algorithms can be found for simplified pol-
ygons [39] and more generalized version for line-arc shapes [7]. One method for calcu-
lating material usage for convex polygons nested on sheet strip can be found [32]. Benefit
of this method is that it can find near optimal solution for rotated parts, but is limited to
sheet strips not large sheets. It is also possible to use NFP together with heuristics based
approach for determining which part combinations are paired in order to achieve more
optimal solutions. [28] In one study inner convex hull approximation is used to nest parts
into holes. [29]
General benefits of nesting methods is that they can take into account orders with multiple
different parts. However it is not obvious how to calculate material usage for one-of-a-
kind parts. One of the current methods is to makes nesting by filling the whole sheet with
same part. Material usage is then defined by dividing sheet are by number of nested parts.
This could lead to unwanted results as part could nest together with itself very well, but
could be poorly nested when nested into sheet with different kind of parts. Or other way
around, part could fit poorly with itself but different shaped parts can utilize the “pockets”
in part geometry. It is also not possible to utilize holes in part by nesting only same part.
In sheet metal cutting, full sheet is never fully utilized as even single cutting operation
introduces scrap material. Scrap material is sold for recycling with price around 10% of
the raw material price. It could be thought that this would save some of the scrap material
losses, but more often other scrap material related costs even out the possible savings.
Labor costs for collecting scrap material into pallets, moving the pallets, loading the pal-
lets into truck and delivery costs to the recycling equals the possible savings. [65] As
simplification in this study scrap material cost is considered to be same as raw material
cost, not less and not more.
17
Measuring estimation accuracy
Mean absolute percentage error (MAPE) is the most common metric for presenting accu-
racy of estimation and it is used in different businesses as it is easy to understand. It has
some weaknesses when measuring error for small actual values. As actual values ap-
proach near to zero, measured error approaches to infinity. [40]
𝑀𝐴𝑃𝐸 = 1
𝑁∑ |
𝐴𝑘−𝐹𝑘
𝐴𝑘|𝑁
𝑘=1 (5)
Other measurement methods have been introduced to overcome this problem. One of
these is mean arctangent absolute error (MAAPE). MAAPE gives similar measurements
as MAPE, but maximum error is limited 200% in case actual value approaches zero. [27]
𝑴𝑨𝑨𝑷𝑬 =𝟏
𝑵∑ 𝒂𝒓𝒄𝒕𝒂𝒏 (|
𝑨𝒌−𝑭𝒌
𝑨𝒌|)𝑵
𝒌=𝟏 (6)
Mean absolute deviation percentage (MADP) can be used to when small quantities are
being estimated as the error rates are not skewed when approaching to zero. [70]
𝑴𝑨𝑫𝑷 = ∑ |𝑭𝒌−𝑨𝒌|𝑵
𝒌=𝟏
∑ |𝑨𝒌|𝑵𝒌=𝟏
(7)
18
3. CURRENT STATE ANALYSIS
This study was made for Finn-Power Oy, which part of the Prima Industries group. Sheet
metal machinery is marked under Prima Power trademark. [79] Currently cost estimations
can be created with NC Express [71] CAM-software by programming parts machining
toolpaths and nesting parts into sheets. Usually large quantity of the parts can be auto-
matically programmed, but difficult corner notches and complex internal cut shapes must
be programmed interactively. Interactively programmed tooling paths and patterns can be
stored as teach cycles, which allow similar shapes to be automatically programmed when
they appear next time.
When all parts are programmed they are nested into one or many sheets. Depending on
the machine type different nesting algorithms and styles are used. After nesting sheet goes
though optimization phase where additional operations e.g. scrap cuts and sheet reposi-
tion movements are automatically added automatically. When all operations are defined
for sheet, sequence of operations is optimized by minimizing machining time, but also
verifying that sequence is valid. Validity of the sequence is verified e.g. by analyzing that
no slug parts are separated from the sheet during cutting or that cutting sequence doesn’t
cause narrow cuts for tools or shear.
Finally optimized sheets are post processed into NC-programs which machine can exe-
cute. For cost estimation purpose NC-programs are simulated with simulation module
integrated into CAM-software. Simulation will take into account time of all cutting oper-
ations, but also different auxiliary times e.g. tool changes, part robot picking, sheet repo-
sitions. Simulation gives accurate and robust times in most cases.
Currently it is not possible to automate cost estimation for one-of-a-kind parts robustly as
some parts can’t be automatically programmed and require interactive programming.
Also the automatic programming, nesting, optimization, post processing and simulation
consume time which prevents instant responses. New costing module should target into
being automatic and robust with compromising in accuracy.
19
4. IMPLEMENTATION
4.1 Concept and specification
4.1.1 System design
System design process followed systematic engineering methodologies. First require-
ments for the costing module were listed and conceptual architecture was designed. Then
possible solutions were evaluated for the estimation model. Based on the selected solution
method requirements for the sub-functions were listed. Detailed design phase was done
by actually implementing the software as it was considered to be difficult to forecast the
performance of the estimation model without working software.
Clarifying tasks
Main requirements for the cost estimation system are listen in Table 1. The requirements
listed are from perspective of the user of the costing system.
Table 1 Requirements for sheet metal costing system
Requirements for sheet metal costing system
1. Interface
1.1. Web-based interface that allows communication over internet
1.2. Input
1.2.1. 3D sheet metal part design
1.2.2. Material type
1.2.3. Thickness (optional)
1.3. Output
1.3.1. Cost report
1.3.1.1. Machining cost
1.3.1.2. Material cost
1.3.1.3. General part properties (area, size x, size y)
1.3.1.4. Machining time
1.3.2. SVG part preview
2. Input formats
20
2.1. Major sheet metal CAD-software file formats:
Solid Edge, NX, Autodesk Inventor, CATIA, ProE, Solid Works
2.2. Neutral file formats:
STEP, IGES, X_T, SAT
3. Cost estimation
3.1. Automatic: can be used 24/7
3.2. Accuracy: Relative cost error < 10%
3.3. Instant response: Response time < 10s.
4. Setup
4.1. Can be setup from existing manufacturing data by learning
4.2. Can continue learning when new data is given
5. Supported machinery
5.1. Punch
5.2. Laser
5.3. Punch/Laser
5.4. Punch/Shear
5.5. Automation
Conceptual design
Based on the systematic engineering methods, a conceptual architecture was first con-
structed as seen in Figure 8. In concept architecture different client applications can up-
load 3D-models into server through REST API. In server, 3D-models are pre-processed
by performing operations which are common for all for all machines. Common opera-
tions are feature recognition, unfolding and machining feature extraction. Pre-processed
data should contain enough information that cost estimation for different machines can
be performed based on that.
Decision to use web-based Web based architecture and REST API was made early in the
process as it allows easy integration between different systems and programming lan-
guages. Costing module can be ran locally or set-up into cloud server. This gives flexi-
bility in implementation phase as it is not necessary to know the full system in details in
the beginning.
Based on the tests, time required for file transfer, feature recognition and unfolding were
known. Only unknown times were time for machining feature extraction and time for
calculating machine specific costs. In this stage it was estimated that machining feature
extraction should be able to calculate in under second as data is pre-processed into 2D-
format. Cost calculation for each machine was estimated to be performed in under 100ms
21
as no computational intensive tasks are performed in that state. Machine specific cost
estimation should only apply machine specific cost estimation functions into pre-pro-
cessed data.
Based on the conceptual architecture and estimated performances, expected response time
for estimating cost for single 3D-model was estimated to be within 2-8s. From this per-
formance analysis it could be verified that cost estimations can be calculated instantly if
limits of the unknown times can be reached.
Figure 8 Costing system architecture
22
Possible solutions for cost estimation
Four different methods were evaluated as possible solutions to be used for estimating
machine time and material usage, CAM-based automatic programming and nesting,
heuristics based estimation, regression models and neural networks.
CAM-based automatic programming would give accurate machining time, but it was
not considered to be robust enough for estimating new kind of parts. Heuristics based
approach could be developed by focusing more on robustness and compromising in ac-
curacy. However when more detailed requirements were listed, the tasks began to be
more similar to actual programming and having the same difficulties with new kind of
parts.
Finally regression models and neural network based approaches were evaluated by test-
ing with data containing different kinds of parts. Test parts contained properties that had
been difficult to estimate e.g. different kinds of corner notches and tooling strategies. It
was quickly noticed that regression models couldn’t estimate non-linear functions very
well e.g. number of tool hits in corner notches. With neural networks based prototype
these functions could be estimated and it was chosen as base for the further develop-
ment.
Concept for data measurement and learning process
Two additional information flows are designed for data collection as seen in Figure 9.
Machine times can be measured either from simulated NC-programs after they are re-
leased for the production from CAM-software. Additionally data can be collected from
NC-programs that are executed at the machine. NC-programs that are executed at the
machine contain actual measured times from machine controller. Material usages can be
already measured after NC-programs are post processed as the nesting layout doesn’t
change at the machine.
In both cases NC-programs are feed for the analyze module which will extract neces-
sary information for costing. Extracted data is added into learning data set which is used
for neural network training.
23
Figure 9 Data collection and learning
Detailed requirements for sub-functions
After prototyping was done and neural networks were chosen as method to be used, input
values required for the estimations could be described and listed as seen in Table 2. This
phase is called costing feature extraction. Part is pre-processed so that it contains all the
necessary data for subsequent machine specific calculations.
Table 2 Requirements for costing feature extraction
Requirements for costing feature extraction
1. Contains all necessary data for machine specific cost estimation
2. Automatic feature recognition
2.1. General structure of the part (Wall and bends)
2.2. Point forming features
2.2.1. Bridge
2.2.2. Louver
2.2.3. Extruded holes
2.3. Path forming features
2.3.1. Offset/Dimple
2.3.2. Bead
3. Outer contour
3.1. Perimeter
3.2. Number of sharp corners
3.3. Decompose notches into primitive shapes
3.3.1. Rectangular
24
3.3.2. Triangular
3.3.3. Convex arc segments
3.3.4. Concave arc segments
4. Internal contours
4.1. Total perimeter of the internal contours
4.2. Number of internal contours
4.3. Identify primitive shapes
4.3.1. Round
4.3.2. Obround
4.3.3. Rectangle
4.4. Decompose free form shapes into primitive shapes
4.4.1. Rectangular
4.4.2. Triangular
4.4.3. Convex arc segments
4.4.4. Concave arc segments
Measured data is required for each estimation sub-function. Requirements for the ma-
chining measurements are listed in Table 3.
Table 3 Requirements for machining time measurements
Requirements for machining time measurements
1. Identify cutting process used for inner cut features
2. Laser cutting
2.1. Measure laser cut time per part
3. Punch cutting
3.1. Measure number of tool hits used per part
3.2. Allocate common tool hits for individual parts
4. Shear cutting
4.1. Measure shear time per part
4.2. Measure and allocate scrap cut time per part
5. Sorting time
5.1. Measure and allocate sorting time per part
6. Other time
6.1. Measure number of cut types use per part
6.2. Measure total other time for sheet
7. Sheet loading and unloading time
7.1. Allocate time per part based on material usage
25
Requirements for the material usage estimation are listed in Table 4.
Table 4 Requirements for material usage estimation
Requirements for material usage estimation
1. Calculate convex hull of the outer geometry
2. Calculate minimum bounding box for the convex hull
3. Filter out small “pockets” in geometry which can be utilized in nesting
3.1. Construct NFP using circle shape as moving geometry
4. Calculate minimum bounding box are
5. Calculate usable convex area
6. Calculate usable concave area
Requirements for the material usage measurements are listed in Table 5.
Table 5 Requirements for material usage measurements
Requirements for material usage measurements
1. Measure bounding box area of the part
2. Allocate common areas per parts
2.1. Determine common areas by overlapping bounding boxes
Detailed design
Detailed design was made by implementing the software. Previously defined require-
ments for the sub-functions worked as a task list for the functions that were required to
be implemented. Level of details began to increase rapidly in this phase and most of the
detailed product documentation is actually put as comments within the implementation
code.
26
4.1.2 Tools and programming methods
Different software modules are used from NC Express CAM-software as they provide
many functions and algorithms for geometry handling. However costing module being
implemented should be possible to be installed as stand-alone software without installing
full CAM-software. Additionally several other software libraries and programming meth-
ods were used in implementation. Main libraries and methods used are described in this
chapter.
C++11/14/17
C++ is ISO-standardized programming language. [59] Latest versions of the standards
11, 14 and 17 are used as they provide powerful tools for parallel programming and func-
tional programming style. C++ is also the common programming platform used by other
CAD/CAM –software modules utilized in this study.
Representation State Transfer (REST) API
REST is an architectural concept for web service communication. Currently REST is
known to be implemented only using HTTP protocol. HTTP is known protocol which
allows communication between different programming languages and technologies.
Boost
Boost [58] provides many small libraries and algorithms contained in same package. Dur-
ing the years many programming concepts are first introduced in boost library and after
they generally accepted some of concepts are adapted into ISO C++ -standard. In this
study many pieces were used to ease the general programming work e.g. filesystem han-
dling and special containers e.g. interval_map to optimize performance speed in compu-
tational intensive tasks.
Parasolid
Parasolid [77] is software library for 3D solid modeling, which provides tools for han-
dling BREP models and performing geometry operations e.g. boolean operations. Addi-
tional software module is used to convert input 3D models into Parasolid format. Opti-
mized algorithms are required as even a simplest 3D-models can contain millions of en-
tities as the BREP model breaks down into bodies, faces, edges, vertices and geometrical
representations underneath. For an example rectangular sheet metal part with one bend
contains total of 121 entities. And number of entities grow rapidly when more details are
added.
27
OpenNN
OpenNN (Open Neural Networks Library [75]) is software library which provides neural
network implementation for C++ language. C++ provides better memory management
and higher processing speeds. OpenNN can be configured to use OpenMP[74] for parallel
CPU calculations or CUDA [62] for GPU accelerated calculations.
Also other libraries were evaluated e.g. TensorFlow [82] and Keras [67]. From feature
point of view those would be used also, but OpenNN was considered to be easier to inte-
grate into existing C++ application. And during the time of writing there was still some
stability issues with TensorFlow in Windows environment. In future TensorFlow could
be evaluated again as it has large community and wider range of tools for neural networks
than OpenNN.
Neural Designer
Neural Designer [72] is software with graphical user interface for testing and prototyping
neural networks. It is built using OpenNN-library which makes it easy to apply same
parameters into other software’s using OpenNN. Neural Designer has good reporting
tools for visualizing and analyzing results. GUI of the Neural Designer can be seen in
Figure 10.
Figure 10 Neural designer GUI
28
4.1.3 Algorithms
Many different computational algorithms were used and developed for analyzing the data
and for building estimation model. Main algorithms are described in this chapter.
Precise convex hull for planar line-arc curves
Convex hull of polygons is widely studied topic and many implementations is generated
to solve the problem. Goal is to finding enclosed region for given polygon. One of the
most known algorithms is Graham’s algorithm which can solve convex hull for simple
(non-self-intersecting) polygon in O(n)-time. [19] In this study convex hulls are used to
calculate input values for material usage estimation and for allocating tool hits for de-
composed regions.
By the definition polygon contains only line segments, which means that polygon based
algorithms are not suitable for computing convex hulls of line-arc curves which is typical
geometry format in CAD-models. One way to utilize polygon based algorithms is to ap-
proximate arcs by segmenting them into line segments. This however gives approximated
result and more importantly increases the number of items to be processed and increases
the computation time.
Precise algorithm for calculating convex hulls for rational curves [15] was introduced by
Elber et al., which according to other studies [24, 49] performs in O(n2)-time. Also loga-
rithmic complexity convex hull algorithm for algebraic curves is introduced [8]. One
study which focus also only into convex hulls for line and arc segments [53] is performing
in O(n2)-time.
In new method developed in this study, advantage of the knowledge that set of segments
are ordered and non-self-intersecting is taken into account. Scanning other segments,
which causes comparisons between segments and complexity of O(n2), is skipped and
operations are performed only locally between adjacent segments.
General idea of the algorithm process can be seen on Figure 11. In pre-processing state
all concave arcs are replaced with lines from start point of the arc to end point of the arc.
Concave arcs can be identified simply by checking if rotation direction is clockwise.
Then it goes into main loop where two segments are inspected in each iteration. Using
left- and right-turn rules [19] it is determined if segments are connected in concave or
convex manner. Left- and right-turn is determined by measuring angle between tangents
of segments in location of the connecting vertex. Angle between segment tangents can be
in range of [-π, π].
29
Figure 11 Convex hull - General flow of the algorithm
If segments being inspected are line and arc segments, then line is constructed so that it
is tangential to the arc and goes to the end point of the line segment as can be seen in
Figure 12 between steps 1 and 2. If tangency point is not contained in the arc segment,
then line segment is created to one of the arcs end points. In case of line-arc, end point is
chosen by taking the first point when traveling the arc counter-clockwise or second point
in case of arc-line. Same strategy is used if two tangential points are contained in arc
segment.
Now if algorithm would continue travelling from created line segment and inspecting it
with the following smaller arc, it would connect line segment start point tangentially to
the arc, but would then leave concave vertex behind. For this reason it is necessary to step
back in to previous segment in order to check if connecting vertex is still convex or not.
If algorithm is stepping below first segment it will jump to the last segment, because
ordered set of the segments are considered to loop from last segment to first. It can be
noticed that in many cases algorithm runs “backwards” and then loops to the end to verify
that all segments and vertices are convex.
In case segments being inspected two arc segments, then line segment tangential to both
of the arcs is constructed. This can be seen in step 3 in Figure 12. There is two solutions
for tangential lines between arcs and similar check are made as with line-arc cases. It
must also be tested that tangential points are contained within arc segments and arcs end
points are used accordingly.
Figure 12 Covex hull - arcs & step back
30
Figure 13 Convex hull algorithm steps
On characteristic feature of the algorithm is that intermediate results can be self-intersect-
ing which can be seen on Figure 13. On simpler samples this doesn’t matter is the angle
between two segments stays between range [-π, π]. However step 3 modifies geometry so
that sequential segment flips to other side of the new constructed segment. This is handled
by taking in the account the direction of original segment and adjusting new angle to that,
which can lead to angles below –π. Segments having vertex angle bellow –π are elimi-
nated by constructing line segment from first segment start point to second segment end
point, which removes the self-intersecting loop.
So far this algorithm can handle closed curves, but it is easy to extend it to handle open
curves also. One could just connect the end point to start point which would yield to
closed curve as seen in Figure 14 step 2. This works in cases where new constructed line
doesn’t intersect with the existing segments. As non-self-intersecting are assumed to be
passed for convex hull algorithm it would yield to undefined and wrong results. However
modifying open curve to closed curve can be done by adding reversed copy of the geom-
etry into original geometry. This leads to closed curve having zero area as seen in step 3.
Explicit vertex angle must be given to the vertices in middle and end of the new geometry,
because measuring angle between tangents pointing exactly opposite direction can ran-
domly be –π or π.
31
Figure 14 Closing open curve
Few sample convex hulls of different parts are presented in Figure 15. Algorithm was
tested with many generated boundary cases in order to make it robust, because with finite
floating point precision on computers, usually some accuracy problems occurs that must
be taken into account.
Figure 15 Sample convex hulls of parts
Figure 16 contains pseudocode for calculating precise convex hull for line-arc planar
shape in O(n) –time. When inspecting the algorithm we can see that at most O(2*na-1)
times arcs can be connected with tangential lines which create at worst case 1 new line
into the geometry. na is the number of arc segments. And at most O(nl) times each line
causes modification into geometry by removing 0 or 1 line each iteration. When adding
in number of lines than can be created by processing arcs we get total of O(nl + O(2*na-
1)) –times when lines are modified. For the the whole algorithm we get O(O(2*na-1) +
O(nl + O(2*na-1))), which reduces to linear time O(n), where n = na + nl.
Because each operation modifies segments only locally - it is also possible to run this
algorithm in parallel by splitting geometry into multiple sub segments and then running
the algorithm for combined segments at the end. This algorithms could be further im-
proved by implementing similar strategy as in [24] to loop “pocket” segments and remov-
ing or modifying them with one operation.
32
function convex_hull(geometry){ bool is_closed = is_closed(geometry); if(!is_closed){ geometry.add(reverse(geometry)); } for(segmenti : geometry.segments){ if(is_concave_arc(segmenti)){ /*replace concave arc with line segment*/ segmenti = line_segment(segmenti.start, segmenti.end); } } float angles[]; for(segmenti : geometry.segments){ anglesi = angle_between_segments(segmenti, segmenti+1); } if(!is_closed){ /*in case of reversed segments added - measurement of the in previous phase can return randomly -π or +π – explicitly set correct angle */ anglesmiddle = π; angleslast = π; } /*main loop*/ for(segmenti : geometry.segments){ segment convex_segments[]; if(anglesi < -π){ /*self intersecting loop was created – replace with line segment*/ convex_segments.add(line_segment(segmenti.start, segmenti+1.end)); } else if(anglesi < 0){ /*concave – replace with convex segments*/ //case: line-line: // create 1 line //case: line-arc or arc-line: // create 1 line and additionally 1 trimmed arc //case: arc-arc: // create 1 line and additionally 1 or 2 trimmed arcs convex_segments.add(create_convex_segments(segmenti, segmenti+1)); } else{ /*ok – already convex*/ i++; continue; } float new_angles[convex_segments.size]; anglesi-1 = angle_between_segments(segmenti-1, convex_segmentsfirst); /*wind_angle will rotate angle in 2π steps to fit in given range*/ wind_angle_to_range(new_anglesfirst, [anglesi - π, anglesi +π]); new_angleslast = angle_between_segments(convex_segmentslast, segmenti+1); float ref_angle = anglesi + anglesi+1; wind_angle_in_range(new_anglelast, [ref_angle-π, ref_angle+π]); replace_with([segmenti, segmenti+1], convex_segments); replace_with([anglesi, anglesi+1], new_angles); /*segments modified – step to previous segment to check if new segments introduced concavity*/ i = i – 1; } }
Figure 16 Algorithm for precise convex hull for 2d line-arc shape
33
Alpha-concave hull
Alpha-concave hull –algorithm was evaluated to be used for calculating input variables
for material usage estimation. Algorithm would give one more parameter to adjust when
fine-tuning the material usage estimation model.
Alpha-concave hull allows vertices between line segments to be concave by amount of
alpha-angle. Many implementations for computing alpha-hull for point sets can be found
e.g. [34] and [1]. It was considered to extend the convex hull algorithm to allow also
negative angles for vertices. It would be easy to measure the angles and check if geometry
is already alpha-concave with given alpha value. However in case where angle is below
alpha some choices must be made how to modify the geometry and some rules should be
chosen for this. Also algorithms to solve Positive alpha-hull can be found [46].
Precise minimum bounding box for line-arc planar shape
In this study non axis aligned bounding box (NAABB) -algorithm is used for estimating
part material usage and for performing tool hit analysis. From hereafter NAABB is re-
ferred as minimum bounding box and not to be confused with axis aligned bounding box
which is not always the smallest bounding box for given shape. Previously precise convex
hull –algorithm was developed and in this chapter method for defining minimum bound-
ing box is described.
When convex hull for polygon is known it is proofed by Freeman that minimum bounding
box is collinear to one the sides:
“The rectangle of minimum area enclosing a convex polygon has a side collinear with
one of the edges of the polygon” [18]. Minimum bounding box can then be found by
iterating through all segments in polygon and measuring area using rotating calibers al-
gorithm [41].
Basic algorithm for finding minimum bounding box must be extended to work also with
arcs. Freeman rule that works for polygons doesn’t work for shapes containing arcs. Min-
imum bounding doesn’t always sit on one of the straight lines of the shape. This can be
proven by counter example: For shape containing only arcs and having well defined min-
imum bounding box having only one possible orientation, infinitesimally short line seg-
ment can be placed somewhere on some of the arcs so that it is not coincident with the
bounding box. It can be also numerically tested that minimum bounding box is not nec-
essary coincident with the center point of one of the arcs. So minimum area must be ana-
lytically calculated. This was done by using modified rotating calibers algorithm as seen
in Figure 17.
34
When rotating the calibers, each side is coincident with either vertex, line segment or arc
segment. Line segment we can ruled out just by measuring area using the angle of the line
as reference. Otherwise it is needed to find angle that minimizes the area for each possible
set of vertices and arcs. This can be done by dividing problem into sub-problems.
First rotation intervals are calculated by initializing calibers so that one of the sides is
collinear with the first segment tangent. Then touching segment or vertex is search for
each side of the calibers. From this beginning position calibers are rotated as long as it is
touching the same four selected entities. This is repeated as long as calibers are rotated
90 degree. For each step amount of rotation is noted and list of rotation intervals is built.
Finally minimum rectangles are calculated for each rotation interval. Possible combina-
tions are 4 arcs, 1 vertex and 3 arcs, 2 vertices and 2 arcs. It is not possible to have four
vertices case, because that would mean that all adjacent segments are lines and at least
one of those is used as reference. When line is used as reference, only rotation angle of
the line is included into interval. This means that one side of the calibers must be collinear
with it.
Minimum rectangles can be solved algebraically for each possible combination. If mini-
mum bounding rectangle is not inside the interval then bounding boxes are calculated in
interval ends and minimum is chosen. In this case assumption is that minimum is at in-
terval end points and not inside interval, but this is not proven here.
Figure 17 Rotating calibers
This algorithm runs also in linear time O(n) because each angle interval is measured only
once and each measurement is considered to be computed in O(1)-time. And there can be
only as many intervals as line-arc segments. Having linear time algorithms for determin-
ing convex hulls and minimum bounding boxes will reduce calculation time drastically
for complex shapes having thousands of segments.
35
Region decomposition
Region decomposition algorithm is used for estimating number of tool hits in notches.
Geometries of the notches are decomposed into rectangles, triangles, concave circular
sectors and convex circular sectors seen in Figure 18. This algorithm was implemented
already earlier into the system but it can reproduced by using algorithm like rectilinear
convex hull [2] as starting point for the decomposition. Given region is decomposed re-
cursively into rectangular areas using rectilinear convex hull –algorithm. The remaining
areas are then either triangles, convex arcs segments or convex arc segments.
Figure 18 Notch decomposed into primitive shapes
No-Fit Polygon (NFP)
In this study no-fit-polygon –algorithm is used to calculate input values for material usage
estimation NN and for NFP-based grid nesting. No-Fit polygon is constructed by sliding
moving geometry, around fixed geometry. The path that moving geometry travels is
called NFP path. It is also possible to calculate Internal No-Fit-Polygon (INFP) in order
to find possible nesting locations if fixed geometry represents hole of the part. [39] Two
different algorithms can be found, one for polygons [20, 39] and another one for line-arc
shapes [7]. Example of the NFP path calculated using same geometry as fixed and moving
geometry can be seen in Figure 19.
Figure 19 NFP path
36
4.1.4 Feature recognition & unfolding
Based on the earlier study [16] state machine based feature recognition and unfolding
algorithms were already implemented and available for the costing module. Feature
recognition implementation can recognize commonly used sheet metal features which can
be seen in Figure 21.
Feature recognition module recognizes automatically the walls and bends in the model,
which defines the main topological structure of the model. This information is used to
unfold model into flat model as seen in Figure 20. In this stage bending process and bend-
ing tools are not known and unfolding is performed using k-factor of 0.5 for each bend.
Figure 20 Unfolding
For costing purpose features are mapped into manufacturing features as seen in Figure
21. Features can be classified into two categories, point-features and path-features. In
point-features operations occurs in single point and in path-features operation follow path
defined by the feature.
Louver and bridge features are processed with one forming operation. Countersink holes
are processed with two operations. First pre-hole is punched or laser cut and then edges
are chamfered with special tool. Extruded holes are processed with two or three opera-
tions depending on if it has threading. First pre-hole is punched and then hole is extruded
with special tool. Laser cutting is usually not allowed for pre-hole as it hardens the mate-
rial which might cause fracturing during extrusion. 3D models doesn’t contain infor-
mation about threading. Convention about size of the hole is used to determine if extruded
hole contain thread or not. If extruded hole size equals to thread drill size then it is con-
sidered to be threaded. E.g. for M5 thread, drill size of 3.3 mm is used. If diameter of the
extruded hole is 3.3 mm then it is also threaded.
Rib features are done with Rib-wheel –tool by following the path of the feature. And
similarly Offset features are done by Offset-wheel. However it is also possible to have
special tools e.g. for round shapes with specific diameter. Offset-features having same
shape and diameter can then be processed with single forming operation.
37
Feature Process
Countersink
hole
Pre-hole
Chamfering
Extruded
hole
Pre-hole
Extrusion
Threading
Bridge
Bridge
forming tool
Louver
Louver
forming tool
Rib
Rib wheel
Offset
Offset wheel
or
Dimple
forming tool
Figure 21 Feature process mapping
38
4.2 Measurements
Measured values for machine time and material usage are essential for developing esti-
mation model. Measurement methods used and developed are described in this chapter.
4.2.1 Measuring part machining time
In order to estimate part machining time, there must be way to measure it first. Sheet
metal machines produce parts from sheets and usually there is more than one part pro-
duced from each sheet. Sheet machining time is the total amount of time that is consumed
for processing one single NC-program from where the last NC-program was finished to
the beginning of the next NC-program. This time includes loading of the sheet, cutting
and forming operations, part sorting, tool changes and skeleton unloading.
Part machining time is the machining time consumed for producing single part and sum
of the part machining times is same as the sheet machining time. Some machining oper-
ations can be explicitly allocated for individual parts and others must be distributed based
on analysis and assumptions.
When parts are nested into sheet and all the cutting operations are assigned in CAM, NC-
program is post processed for the target machine. During post processing NC-program is
simulated with simulation module contained in CAM. Simulation module writes simu-
lated times into NC-program with attribute EstTime.
Each command in NC-program is evaluated and allocated to corresponding part if possi-
ble. After commands are allocated for parts times can be allocated accordingly. Based on
the command type and operation mode, times are divided into sub categories laser cutting
time, punching time, shear cutting time, sorting time and other time. Also gas consump-
tion is calculated during the simulation. This information is written into part header info
in NC-program. When NC-program is executed at the machine, time consumed for each
NC-program command is measures and written with attribute MeasTime into NC-pro-
gram. This gives flexibility to use either simulated or measured times as references for
the estimation model. Sample section of the NC-program can be seen in Figure 22.
Figure 22 Sample of NC-program
39
Some commands are not allocated for individual parts. If parts are nested in common line
they are cut with same operation with punch, shear or laser. Laser and punch operations
are not allocated for individual parts. In shear machine where part is cut out from the plate
with shear blade, the shear cut operation is allocated for part being cut out even if there
is other part in common line with it. Other operations which are not allocated for individ-
ual parts are tool changes, sheet loading and unloading and scrap cuts. These times are
written with label Other in NC-program plate level. Further these times can be distributed
for different parts based on rules defined in simulation model, but this allocation was
disabled for this study to get times where they could be explicitly allocated to individual
parts. Unallocated times were considered in later analysis steps.
Process type classification
With punching and punch-shear –combi machines interior cuts can be destructed with
single hit or by multiple hits. If interior cut is very large it could left attached with micro-
joints and only contours are nibbled. With laser-punch –combi machine it is additionally
also possible to laser cut. With laser-punch –combi machine both punching and laser cut-
ting could be used for same interior cut, but as simplification interior cuts are considered
to be either punched or laser cut. Strategy chosen depends on the parameters that are set
into automatic tooling routine or by user preferences when doing manual tooling. When
analyzing tooling, classification data is written by measuring how many tool hits are in-
tersecting with the shape or if laser cut was applied.
Laser cut time
For NC-programs containing only laser cutting, simulation module is very accurate and
has been verified to be within ± 1% of the total time. In line chart below is measured
velocities with dotted line and estimated with solid line from section of the NC-program.
Measured and estimated lines goes almost on top of each other and it is difficult to see
the difference without zooming very close.
40
Figure 23 Laser axis & path velocities
Analyzing path velocity from the line chart and corresponding NC-program lines, it can
be seen than circular motions that have small radius, path velocity is limited and stays
constant after acceleration. It can be also seen that sharp corners in the path cause motion
to deaccelerate near to zero velocity. Most of the time machine is accelerating or deac-
celerating and not travelling with maximum cutting speed. Based on the parameters, cut-
ting path on corners can be different if the corner is convex or concave. These observa-
tions should be considered when creating estimation model for laser cutting.
Number of tool hits in corner notches
Common cutting strategy with parts produced with shear machines is first to destruct
corner notches and inside holes with punch hits. After notches and internal cuts are pro-
cessed parts is separated from the sheet into conveyor belt with one shear cut hit. Many
different tooling strategies can be used to destruct corners, some minimizing the number
of tool hits and some minimizing the number of tool changes. This leads to some una-
voidable deviation in estimating number of tool hits and as a result deviation in estimating
the punching time. In many cases it is not possible to program tooling automatically so
manual tooling or tooling pattern teaching is used. Pattern teaching work Target is to
develop estimation model to learn automatically or manually tooled parts and estimate
robustly punching time with in mind that some unavoidable deviation in the estimations
will occur.
Tool hits that are destructing common corner notches between two or more parts are not
explicitly allocated to individual parts. Those tool hits are analyzed and allocated to de-
composed corner notches. First each tool hit analyzed if it is touching geometry of the
part. Those tool hits that are touching part are allocated to the decomposed region which
is containing the same segment of part. Each tool hit can be touching multiple segments
pf the same part or adjacent part in nest. In this case tool hit count is divided into all
41
decomposed regions that are touching the same segments. In case tool hit is shared by
more than one region, tool hit is divided equally to all regions e.g. for two regions 0.5
tool hits are allocated for both regions. It can be noted that each part segment can be
contained only in one decomposed region. In Figure 24
Tool hits which are not touching part are allocated to the region in which tool hit center
point is inside of convex hull of the region.
Figure 24 Allocating tool hits to destruct regions
Number of tool hits in internal cut features
Tool hits are allocated for the inner cut features by finding intersecting bounding boxes.
For free form cuts, tool hits are furthermore allocated for the decomposed regions using
also by intersecting bounding boxes.
Punching time
Punching time is measured for each punch hit on sheet from the NC-program. It includes
the motions between hits, but not time consumed for tool changes. Some of the times can
be explicitly allocated for the individual parts, but tool hits that are cutting common areas
between two parts are allocated by dividing time equally for both parts.
Automation systems
Operations which contain interactions with other devices of the manufacturing system are
also modelled into simulation model. Most of these operations are related to part sorting
like picking part with robot. In some cases picking operations have predictable times, but
usually picking operations are partly controlled by sensors which add some deviation into
time.
42
Bigger influence comes from robot availability to perform picking task. If time between
two sequential parts to be picked is shorter than time it takes for robot to handle previous
part, some waiting time is added which can be predicted in the simulation. Robot could
be also serving some other machine which is hard to predict.
Other possible sources for wait time are buffering and bending. If sheet metal cutting
machine is connected with bending machine in automation line, simulation cannot be
made only considering the cutting machine. If part cutting time and bending time are
different then slower operation determines the total time. To address this issue buffering
device is usually added into line to even out differences. But buffering device has also
limited capacity to hold parts. Partly this issue can be optimized in CAM-software by
releasing few parts earlier from the plate. This makes cutting slower but overall flow
faster. Part could be also sorted through trapdoor which have sensor for detecting if part
has dropt or not and is closed when sensor is activated.
43
4.2.2 Measuring part material usage
Currently there is no established way to measure material usage for single part in nest.
Usually nesting result is reported only with sheet utilization number which represent how
efficiently sheet is used. Estimating part material usage by nesting same part on plate and
dividing sheet area with number of parts nested gives exact result for case where only one
part is nested. However if part doesn’t fit together very well with itself it might give over
estimate of the material usage when many different parts are nested on same plate or only
one-of-a-kind part is produced.
New method for measuring material usage for each part in nest was developed. Infor-
mation about material usage for single part is essential parameter in order to build model
that could estimate material usage for given part. First minimum bounding boxes were
calculated for each part in nest which initializes the sheet used by each part. These boxes
are called used regions which contains information about parts that are sharing it. Then
parts geometries, other than that which initialized it, are subtracted from each used region,
because intersecting area is considered to be used all by part intersecting it. The remaining
used regions are then split by intersecting them with each other as long as there is no
intersecting regions left. Then area of all used regions are calculated and allocated to the
parts sharing the region equally by diving area by number of sharing parts. Finally sum
of all used region areas is subtracted from total area of the sheet and leftover is allocated
for each part. Allocation is done by calculating ratio for each part by dividing already
allocated area by the sum of all used regions. In Figure 25 region 1 is shared only with
one part, region 2 with two parts and region 3 with three parts.
Figure 25 Measuring nesting utilization
As an example we can make two nests. Nest A filled with part A and Nest B fillet with
part B seen in Figure 26. For Nest A we get sheet utilization of 67% and for Nest B we
get sheet utilization of 51%. Also using new measuring method we have the same results
when average sheet utilization is calculated. If we look at individual parts on the nests we
can see that new method gives poorer utilization for parts nested near the sheet edge and
better when they in the middle of the sheet where they are well packed.
44
Figure 26 Parts A and B nesting patterns with utilization of 67% and 51%
If these two parts are nested on the same sheet, total sheet utilization is 59.3% as seen in
Figure 27. With new method it can be also measured what is the sheet utilization of each
part and the averages for each part. In this example measurements give 66% utilization
for Part A and 51% utilization for part B, which correlates with the results when only
same parts were nested on sheet. Without this measurement, only the total sheet utiliza-
tion 59.3% would be known. Using this for both parts would give under estimate for part
A sheet utilization and over estimate for part B sheet utilization.
Figure 27 Mixed nest
45
4.3 Estimations
Estimation models were developed using neural network based estimation models. Dif-
ferent part and feature properties were used as input variables and measured values were
used as target values. Selection of the input variables was done by experimenting and
measuring which variables gave the best estimation accuracies. Example of the data can
be seen in Appendix A.
4.3.1 Estimating part machining time
Machining time estimation was divided into multiple neural network based estimation
sub-functions which were process type selection, laser time, number of tool hits, shear
time, sorting time and other time.
Process type selection
Depending on the machine type, internal cut features can be processed with single punch
(1) hit, nibbling (2) or with laser cutting (3) as can be seen in Figure 28. Based on the
measurements described in earlier chapter, internal cuts are classified into one of these
three categories.
Figure 28 Process type classification
Goal for estimation model is to repeat measured classification for given cut feature. This
is implemented by neural networks where inputs are dimensions of the cut features and
outputs are probabilities for each process type. Process type having largest probability is
chosen.
Shapes of the cut features are furthermore divided into four categories, round, rectangle,
obround and freeform as seen in Figure 29. Dedicated dataset and NN is used for round,
46
rectangle and obround shapes. Freeform shapes are classified based on machine type
without NN. If machine has laser cutting head then laser cutting is chosen and otherwise
punching is chosen. This is a simplification as with laser-punch machine both processes
are sometimes used to optimize cutting speed or to make pieces smaller to fit into scrap
hole.
Logistic activation function is used in neural network as it is suitable for classification
models. Process selection estimation was 100% accurate with testing data set where each
specific shape and dimension were processed in the same way on each part. With data set
where tools are changed into the turret and cutting process types variates for specific
shape and dimension, the most used process type is selected. This means that in average
NN will choose the correct process type, but not always as it has no higher level awareness
of all the factors that affecting e.g. different tools in turret.
Figure 29 Primitive shapes and free shape
Laser cut time
Goal is to estimate laser cutting time for given cut features in part. For laser-only machine
all cut features are processed with laser and for combi machines process selection, de-
scribed earlier in this study, is done before estimating laser cutting time.
Laser cut features can be outer or inner cuts. Laser cutting times for each part in nest are
measured as described earlier in this study. These measurements are the target values for
NN supervised learning. Different part properties were extracted for input values and ex-
cluded if there was no improvement into the estimation. Input variables chosen were outer
cut length, sum of inner cut length, number of cut features, number of sharp corners in
outer cuts and number of sharp corners in inner cuts. Sharp corners were classified by
measuring angle difference between adjacent segments. If angle between segments is over
ten degrees then one sharp corner is added into inputs.
47
During many iterations different measures were included and excluded as input values.
Segments lengths were distributed into histogram bins based on the curvature. It was sup-
posed to increase accuracy as for bigger curvatures the machine centrifugal acceleration
begins to limit the maximum speed. Geometries were also converted into continuous
paths by approximating the paths by splines. It was considered to simulate how the actual
machine moves as the velocity will not go to absolute zero in sharp corners. When paths
were converted into continuous paths, input values for sharp corners could be removed.
However none of these experiments improved the estimation accuracy. In some cases
small improvements could be seen but the risk of having over fit model increased.
It was noticed that even if selection error was low, model could still be poorly generalized.
To avoid this different variables were plotted and effect was analyzed. In Figure 30 it can
be seen that variating number of sharp corners gives counter intuitive effect on laser time.
Sufficient amount of training and testing data should avoid over fitting, but still was con-
sidered that simplifying model is better choice even if it means compromised accuracy
with current testing samples. In fact model was simplified into linear model.
Figure 30 Overfitting
Inputs for laser time estimation model were part outer contour length, number of inner
cut features, total length of inner cuts, number of sharp corners in outer contour and num-
ber of sharp corners in inner cuts. Linear regression between estimated and measured
values can be seen in Figure 31. Output scaling was used to improve accuracy of the
model, so in figure values are scaled values instead of actual units.
48
Figure 31 Laser time estimation linear regression
Number of tool hits in corner notch
Feasibility study was made to understand if it is possible to estimate number of tool hits
used to destruct notches on part. Different neural network architectures with variating
number of neurons and hidden layers were tested if they could learn to estimate number
of tool hits used for corner destruct. First the problem was simplified from 2D problem
into 1D. Manually prepared data set was prepared with input values min_x and max_x
and output value n_hits. Value min_x represents what is the minimum length to be cut
and max_x is the maximum tool size that can be used. n_hits was calculated by using tool
sizes of 10 mm and 30mm. In example if min_x = 15 and max_x = 20 then maximum tool
size we can use is 10 mm, which leads to n_hits = 2. If max_x >= 30 then bigger tool can
be used and n_hits becomes 1. It was noticed that using linear activation function didn’t
provide meaningful results so tangential hyperbolic activation function was used in order
to learn non-linear behavior. Also regularization was not used since the target was to
study how well it can at best learn the function.
49
In Figure 32 outputs are plotted using min_x = 40 and max_x = 40 as reference point. In
row 1 it can be seen that NN with single hidden layer having five neurons increasing
min_x increases more or less in linear fashion and increasing max_x has very strange
behavior having cusp at max_x = ~105mm.
In row 2 it can be seen that increasing number of hidden layers to two but decreasing
number of neurons on layers to three starts to look like it is understanding the steps that
are caused by the selecting different tool. But still it is confusing between min_x or max_x
and how they should influence into number of tool hits.
In row 3 number of hidden layers is five and number of neurons on each layers is five.
With this architecture NN will learn nice step function where cut lengths between 0 mm
- 30 mm are done with one hit, 30 mm - 60 mm with two, 60 mm - 90 mm with three and
90 mm – 120 mm with four.
1
2
3
Figure 32 ANN for estimating number of tool hits
Testing with different number of possible tools it was noticed that number of neurons in
each layer should be at least one more than number of different tool sizes in order to
achieve same behavior. With this study it was concluded that at least two hidden layers
should be used and enough neuron on each layer to learn concept of different tool sizes.
Finally this was turner into solving 2D problem of estimating number of tool hits used for
destructing rectangles. There we had also inputs min_y and max_y. Results are much
harder to visualize and analyze feasibility by plotting results so results were only analyzed
50
by measuring differences between n_hits between test set and estimated values. Also reg-
ularization was used in order to avoid NN to over fit in given training set which caused
totally wrong results with testing date set. Regularization smoothens the step function
seen earlier and doesn’t as exact results for given rectangle to be destructed, but more
important is to have robustness when making estimations.
In current state NN for estimating tool hits for destructing corners is more or less memo-
rizing the number of tool hits is used for given rectangular are with min and max values.
It also learn to use some kind of average when different tooling strategies are used for
different parts having similar corner notches. Key feature is that it is learning from actu-
ally produced parts with manually or automatically chosen tooling strategies.
Linear regression between measured and estimated values for number of hits can be seen
in Figure 33. This test set contained one sample with large error. After analyzing the
sample it was concluded that it was caused by rectangular area which was outside of the
learned cases.
Figure 33 Number of hits in corner notch estimation linear regression
51
Number of tool hits in internal cut features
Internal cut features that were classified as single-hit features are counted as simply con-
sidered to add one tool hit into total count. Neural network based model is used for cut
features that are classified as being nibbled with multiple punch hits. Separate neural net-
work models were used for each primitive type round, obround and rectangle. Also free
form inner cut features were decomposed into primitive types having own neural network
models, rectangles, triangles, convex arc segments and concave arc segments.
As an example, in Figure 34 is linear regression between estimated and measured values
for rectangular areas in free form cuts. Similar results were got for other models also.
Figure 34 Number of hits estimation for decomposed rectangular region in internal
free form cut
52
Estimating punching time
Punch time was estimated from total number of punch hits. Also average distance be-
tween hits was calculated, based on the existing algorithms [4] and used as an input, but
it didn’t improve the estimation accuracy. Linear regression between estimated and meas-
ured values can be seen in Figure 35. As it can be seen, estimations follow closely the
measured values.
Figure 35 Punch time estimation
53
Estimating shear cut time
Input for shear cut time estimation model were bounding box area, size in x-direction and
size in y-direction. It was considered that x- and y- sizes determine the shear cut time to
separate part from the sheet. And bounding box correlates to the time used for scrap cuts
with shear. Linear regression between estimated and measured values can be seen in Fig-
ure 36.
Figure 36 Estimated shear cut time correlation
54
Estimating sorting time
Sorting time was tested with punch-combi machine. Linear regression between estimated
and measured values can be seen in Figure 37. It can be seen from the data that times are
distributed into three groups. One group is near 8 seconds, other between 11-12 seconds
and third one near 20 seconds. When analyzing the reason for the different time groups,
it was noticed that main factors were part x- and y-size. Neural network based model was
capable of learning the effect of part sizes and gave good estimates.
Figure 37 Sorting time estimation
55
Estimating other time
Times categorized into other class include tool changes, sheet and clamp repositions and
movements. However only number of different inner hole types are used as input in order
to estimate time used for tool changes.
Estimating time consumed for sheet and clamp repositions is difficult as it is more related
to how parts will be nested on the sheet. Developed estimation model considers only one
part at the time and not the whole sheets. For this reason only time used for tool changes
was tried to be estimated. Only input for this estimation model was number of different
hole types in the part. Linear regression with measured and estimated values can be seen
in Figure 38. It can be seen that deviation is large, but overall there is some correlation
between estimations and measurements. It was considered that it is still better to have
some estimation, even inaccurate, than not having estimation at all.
Figure 38 Estimated other tme
56
4.3.2 Estimating part material usage
Three different methods were developed into the costing model, bounding box based grid
nesting, NFP based grid nesting and neural network based material usage estimation
model. Different models are used depending of the quantity of ordered parts.
Bounding box and NFP based grid nesting models are used when ordered quantity for
part is large. These methods are fast to calculate and give similar results as actual nesting
algorithm on CAM when nest is filled with same part. Neural network based model is
used when estimation is calculated for one-of-a-kind or only few parts.
Bounding box based grid nesting
For shear/punch –combi machine parts are usually required to be nested so that bounding
boxes are not overlapping each other. Simple nesting algorithm was developed for nesting
same sized rectangles on given sheet.
In first phase nesting is divided into two strategies. First strategy is to start nesting with
part in its initial angle. Initial angle is determined by rotating part so that its minimum
bounding box is aligned with x-axis. Second strategy is to start nesting by part rotated 90
degree from the initial angle.
For both strategies sheet is filled with parts in x and y directions. Distance between parts
in x and y directions are determined by variables stepx and stepy. stepx is calculated by
dividing part x-size with two and adding additional part separation. stepy is calculated
same way, but for y-direction. Part separation distance is configurable parameter that is
stored into machine costing database. After first phase two possible remaining rectangular
areas are left on the sheet, one vertical and one horizontal. Same nesting algorithm is
called recursively for both remaining rectangular areas. This gives four possible nesting
solutions from where best one is chosen.
As can be seen in the Figure 39, the best solution found was started with part rotated in
90 degree angle and remaining area was filled with part in its initial angle. The other
possible remaining area is on the right, but it is too narrow to fit any parts there. It must
be noted that this is not typical part produced with shear machine, but idea of the algo-
rithm can be understood from this.
57
Figure 39 Bounding box based grid nesting
NFP based grid nesting
NFP based algorithm was developed to estimate material usage when parts can be nested
so that bounding boxes are overlapping. This method can be used for punch, laser and
punch/laser –combi machines.
Same bounding box based nesting algorithm is used also for NFP based nesting algorithm,
but variables stepx and stepy are calculated differently. Otherwise similar recursive ap-
proach is used to fill the sheet after these variables are calculated by using NFP-algorithm.
Two methods were developed, one where parts are in same angle and another where the
other part is rotated 90 degrees.
In method for nesting parts in same angle, NFP path is constructed by using same part
geometry as fixed geometry and moving geometry. Then intersecting points for horizontal
line passing center point of the fixed part and NFP-path are calculated. From these inter-
section points the closest to the center point of the fixed part is chosen. stepx is then set
as distance from fixed part center point to intersection point. For calculating stepy another
NFP-path must be calculated to avoid part overlapping. Part combination where second
part is shifted by amount of stepx is used as fixed geometry and moving geometry and
intersection point are calculated in y-direction. This process is repeated by calculating
stepy first which might give different result. Now bounding box based nest algorithm is
used to calculate which of the two strategies is better.
Sometimes parts fit well together when the other part is rotated 90 degrees. In this method
NFP path is constructed so that moving geometry is rotated 90 degrees. stepx and stepy
variables are calculated in the same way as without rotation. This gives new combination
of two parts which can be considered as new combined part. Method for nesting parts in
same angle is used to calculate nest for combined part. For the last part combination that
doesn’t fit into the sheet, it must be checked if one of the parts could fit. Part separation
58
is given as an input for NFP calculation as separation must be measured from part geom-
etry to part geometry, otherwise too narrow gaps might occur if it is added into step var-
iable as in bounding box nesting method. Sample of NFP-based grid nest can be seen in
Figure 40.
These methods are fast to calculate, but real nesting algorithms can achieve better results
as more optimal solution can be parallelogram shaped pattern. Parallelogram shaped pat-
tern can be achieved e.g. by calculating nearest point from fixed part center point to the
NFP-path. This defines location of the second part which isn’t necessary horizontally or
vertically located to the center point. Third part location can be then calculated by repeat-
ing the process and finally parallelogram shaped nest pattern can be achieved. However
this would leave triangular areas into the sheet and nesting parts into those regions require
more advanced techniques and more computation. As simplification parts are only con-
sidered to be nested vertically or horizontally from the initial position.
Figure 40 NFP based grid nesting
Neural network based material usage
For one-of-a-kind part estimations it is not always meaningful to estimate material usage
by nesting full sheet with same part. New method for estimating material usage for given
irregular shapes was developed. In chapter 4.2.2 new method for measuring material us-
age per part was introduced which gives target values for the neural network. For input
values three different areas are calculated for part, minimum bounding box area, usable
convex area and usable concave area.
Minimum bounding box area is the minimum amount of sheet that is required if only one
part is produced. However as typically many parts are produced from the same sheet, the
actual material usage can be less than minimum bounding box area. Usable convex area
59
is defined to be area between bounding box and convex hull as seen in Figure 41 (3). And
Usable concave area is defined to be are between convex hull and part as seen in Figure
41 (2). It can be considered that usable convex area is easier to utilize than usable concave
area as it doesn’t require parts to be locket together, instead they can slide against each
other.
Figure 41 Part, convex hull and bounding box areas
Usable concave area defined above includes also small pockets and shapes where other
parts can be nested. Instead of using definition described above, modified version is used.
This is done by constructing two NFP paths. First one is constructed using part geometry
as fixed geometry and circle shape as moving geometry. And the other and where fixed
geometry is the convex hull of the part. Area that is disclosed between these shapes de-
fines area of the new usable concave area. This area is slightly smaller than previously
defined as it filters out some of the small features in part geometry.
Figure 42 Usable concave area
In Figure 43 is example nest containing rectangular, round and irregular parts. Sheet size
in this example is 2.5m x 1.25 m and are 3.125 m3. Total sum of the estimated material
usages for the parts is 3.018 m3. Percentage error in this case is 3.4 percent. Percentage
error for parts varies between 0-16 percent. Bigger variation in part measurements can be
partly explained by additional penalty that parts near the sheet edge get.
60
Figure 43 Example nest with mixed parts
Inputs for neural network based estimation model were bounding box area, usable convex
area and usable concave area. Model was tested with multiple parts and linear regression
with measured and estimated values can be seen in Figure 44.
Figure 44 Material usage estimation
61
Also model based only on bounding box area was developed. This model was used to get
some comparison with previous model. Linear regression with measured and estimated
values can be seen in Figure 45. As it can be seen deviation is more than twice in the
bounding box –only model, but overall it also gives reasonable results.
Figure 45 Bounding box based material usage estimation
62
4.4 System set-up
4.4.1 Data management and training neural networks
Learning datasets and neural network models are stored per material type and thickness
into machine specific database. Cutting speeds and processes can be very different for
different materials so it was considered to be dangerous if data for different materials is
mixed. This way it is also easy to copy existing estimation models as base for new mate-
rial and thickness types. Data collection can be activated from the CAM software. When
activated it will analyze nests when they are forwarded to the production and writes data
into database. Concept of gathering data from machine after NC-programs are executed
and parts are produced was not implemented during this study.
4.4.2 Configuring cost estimation model
Some level of configuration is required for the estimation model in order to differentiate
main differences in processing methods between different machine types and for giving
costs for machining time and materials. One configuration file is machine specific and
several material specific configuration files are used. Configuration files are stored in
JSON format, which allows easy communication with web-applications. Machine con-
figuration file is stored under machine specific folder and material specific files are stored
in separate folders under machine folder. Each material type and thickness is stored sep-
arately.
Machine specific configuration file contains information about machine basic type which
can be punch, laser, punch-laser or punch-shear. This information is used to determine
which estimation sub-functions are used. For example number of tool hits in corner
notches is only estimated for punch-shear machine. Also cost for machining time is stoder
in this configuration file.
Material configuration files contain information about available sheet sizes and material
costs. Also material specific loading times are stored in this file. Different loading times
are used because some materials are rarely used and using single sheet of this material
requires storage system to bring material cassette into loading station which can take
some extra time.
63
4.4.3 REST API interface
During the design phase it was planned that costing module will be running in the cloud
server. REST API was chosen for interface technology for client applications to be able
to communicate with costing module. REST was chosen as it allows applications written
with different languages to use the API. REST API was implemented by using http-server
components from boost library. Costing module can be installed as windows service into
server. REST API endpoint is opened into configured port and after that this endpoint is
available for client applications through internet.
Communication into REST API is be done with HTTP POST request. Input data is body
of the HTTP request. JSON was used data format as currently it is popularly used. 3D file
is encoded with base64 format in the JSON-data. Base64 is used to allow robust transfer
for binary files. When costing module receives the request it will pre-process the part by
unfolding and extracting generic information. After that it will apply machine specific
calculations and creates costing report for each machine setup in the system.
After the costing reports are created, response data if formatted in JSON format. JSON
data contains part preview picture in SVG format and cost for machine time and material
for each machine. SVG picture can be used in client application for visualizing results.
Postman [78] application was used as development client for the costing module. Sample
request and response can be seen in Figure 46.
Figure 46 Postman application
64
Costing module was integrated into online quoting –prototype application in order to val-
idate proof-of-concept for using costing module over internet. Also simplified pricing
model was introduced in this state. In online quoting prototype it is possible to upload
3D-model, select material and then request price as can be seen in Figure 47. It was meas-
ured to take 2-4 seconds for getting response for small to medium complexity parts. Re-
sponse time depends also on the server performance. Performance of the server can be
scaled according to the needs. Implementation allows also multiple instances of the cost
calculation services to be run in many server instances if performance is wanted to be
scaled even higher.
Figure 47 Integration with prototype instant quoting client
65
5. RESULTS
In this chapter results are presented for laser machine and punch-shear machine. These
machine types cover all the cutting technologies and forming operations. Here measured
machining times and material usages are compared with estimated values. Also monetary
costs are calculated based on the estimated machine hourly rates and sheet prices. These
values depends on the actual investment costs and in how many shifts machines are used.
Here estimated figures used were 120€/h for laser machine and 150€/h for punch-shear
machine. In tests 1.0 mm mild steel used and from online catalog 13€/m2 cost was selected
for sheet price.
Laser machine
For laser machine batch of 242 parts was used for training. Testing was performed with
batch containing 82 different parts, including rectangular, round, triangular and irregular
shaped parts and filler parts. Comparison for material usage can be seen in Figure 48.
Relative material usage error for the whole batch is 4.6% and MADP is 8.4%.
Figure 48 Laser material usage results
Comparison for machining time can be seen in Figure 49. Relative machining time error
for the whole batch is 1.1% and MADP is 7.1%
66
Figure 49 Laser machining time results
Cost measurement and estimation comparison can be seen in Figure 50. It can be noticed
that graph looks very similar to the material usage, which shows that material usage is the
main factor in cost. Relative error for the whole batch was 4.2% and MADP 7.7%
Figure 50 Laser cost results
67
Punch/Shear combi machine
For punch-shear machine batch of 100 parts was used for training. In fact many more data
rows were collected for each neural network e.g. from these 100 parts, 439 data rows
were written into corner destruct rectangular region dataset. For testing batch of 31 parts
was used. Comparison chart for measure and estimated material usage can be seen in
Figure 51. Parts in testing data set were mostly rectangular and filler parts were not used.
Relative error for the whole batch is 7.4%. MADP is 7.6%
Figure 51 Punch/Shear material usage results
Machine time comparison can be seen in Figure 52. Relative error for the whole batch is
4.1%. MADP is 9.9%
68
Figure 52 Punch/Shear machining time results
Cost comparison for shear-punch machine can be seen in Figure 53. As with laser ma-
chine, cost follows closely the material usage chart. Relative error for the whole batch is
6.5%. MADP is 7.0%
Figure 53 Punch/Shear cost results
69
6. DISCUSSION AND FUTURE IMPROVEMENTS
Laser machine cost estimation results
Estimated material usage values follow relatively close to measured values. One large
error can be seen with sample number 73 in Figure 50. There estimated value is much
bigger than measured value. This part was inspected and it was noticed that part shape
was large star. Lot of smaller parts were packed well into “pockets” of star shape. Some
of the error can be also explained by parts being nested in the sheet edges which will
utilize more sheet area than parts in center of the sheet. Material usage estimation doesn’t
have information where parts are being nested and will give more average value.
Machine time estimations follow the measurements also relatively well, but few large
errors can be seen e.g. parts 58 and 68. Those parts were big rectangles with long straight
lines. In this case machine has time to accelerate into maximum cutting speed. It was
tested that estimation model could be tuned to be accurate with complex parts or with
simple rectangular parts. Further development is still required to get both estimated accu-
rately.
Punch-Shear machine cost estimation results
Some large deviations can be seen e.g. with part 21 in Figure 52. This part was analyzed
and it was noticed that part contained long and narrow rectangular area containing 72
nibbling hits in two rows. In this case NN estimation assumed it to be nibbled in one row
of hits and gave around 36 hits. It was tested that that putting this part into training set
fixed the error.
Estimates based on similar parts
Cost estimation could be improved by categorizing part models and making estimations
using data retrieved from similar models produced earlier. This could give benefits of
case-based estimation where earlier knowledge is used to estimate cost for similar part.
One possible method for calculating similarity could be based on feature relationships
[44]. Other similarity based on voxelizing 3D models into smaller cubic volumes that
can be compared and with the existing models. [45].
70
Improving estimation for number of tool hits
Using NN gives flexibility in future to provide more information for learning. New infor-
mation could be provided about relationship between adjacent regions, about other re-
gions in same notch or about other regions in same part. This information could provide
more knowledge about possible process selections and tooling strategies used. Infor-
mation about part symmetry could give knowledge about parts being nested in common
line. When parts are in common line – some of the hits will overlap and will reduce the
total number of tool hits.
Improving material usage measurement and estimation
Method for measuring part material usage described in chapter 4.2.2 gives intuitively
good results when parts are overlapping from the corners. When parts are nested into
holes of other parts, the inner parts gets intuitively too good sheet utilization as all of its
area is shared with parts they are inside. Even more intuitive and “correct” measuring
could be done by using Voronoi diagram –algorithm [11]. It could be used to find middle
paths for regions between parts and distribute sheet more “correctly”. Especially it could
distribute more material usage for part nested in hole. It could be also easier to visualize
how sheet is distributed for the parts and therefore more easily understood and accepted
as measuring method.
Also different kinds of base shapes could be used in material usage estimation. Now only
bounding box area was used as the base area. Base area could be defined e.g. by smallest
enclosing circle, triangle or parallelogram. Each of these shapes have some theoretical
nesting efficiency. This could improve the initial guess.
Implementing bending time estimation and manufacturability analysis
Estimation of bending cost was not included in this study. However feature recognition
algorithm used gives exact knowledge about sheet metal topological structure. When this
structure is known existing methods e.g. [12, 13, 47] can be utilized to find bending tools
and bending sequence. It would also provide good information if part is actually possible
to be manufactured with bending machine.
71
DFM analysis for cutting and forming operations
If costing module is used for pricing parts in online quoting, it is important that part can
be actually manufactured. Some rules should be given for cut features and forming fea-
tures as it is not possible to have forming too close to each other. If formings are too close,
the forming tool can damage adjacent formings. Cuts and formings can’t be too close to
bends either. During bending nearby cuts and formings can deform. It is also possible that
bending tool hits the forming during bending process.
Integration into cloud based CAD systems
Many cost estimation tools for 3D printing are already integrated into cloud based On-
Shape CAD. [73] It is possible to build add-ons which can communicate through On-
Shape REST API. It should be possible to integrate developed cost estimation using
REST API for communicating both ways, as it was tested that communication with the
prototype instant costing client worked. This would work in similar way as cost estima-
tion tool integrated in Solid Works.
72
7. CONCLUSIONS
In this study methods for measuring and estimating sheet metal manufacturing cost fac-
tors were developed. Software costing module was developed with web-interface to in-
teract with it. Prototype online quotation application was used as client to test and verify
that cost estimations can be done automatically and instantly. Measurements for accuracy
were performed for two machine types, laser and punch-shear, which cover all the re-
quired cutting technologies and forming operations.
Material usage measurement and estimation
New measuring method was developed for measuring material usage for single part in
sheet as no previous studies were found for this. Also further improved measurement
version was proposed, not implemented or tested. With developed measuring method it
was is possible to measure similar sheet utilization number for two parts nested on same
sheet as if they were nested separately on own sheets.
Also new method for estimating material usage was developed using bounding box area,
usable convex area and usable concave areas as input for neural network based estimation
model. Based on comparison with bounding based estimation, new method improved es-
timated material usage from 5.63% to 2.2% using MADP measurement.
Further improvements into material usage measurement and estimation were also pro-
posed. During the process also linear time algorithms for convex hull and minimum
bounding box calculation were developed.
Machining time measurement and estimation
Laser cutting was estimated with method adapted from the earlier study and no major
improvements could be found. For estimating punching time for corner notches, a new
method was developed using values based on region decomposition as inputs for neural
network based model. Similar approach was also used to for the internal cuts. Neural
network based approach was also used for other estimation sub-functions e.g. sorting time
estimation, probabilistic model for process type estimation.
73
Four research questions were established for the study:
Research question I – Is it possible to make estimations automatically?
This was possible. 3D parts could be transferred over internet into REST API using
base64 encoded format which allowed also binary formats. Feature recognition allowed
recognizing forming features from 3D-models from different CAD-software.
Research question II – Is it possible to make estimations instantly?
With tested small and medium complexity parts response time was between 2-4 seconds
which can be considered to be instant as given requirement was set to 10 seconds. Re-
sponse time depends from complexity of the 3D-model.
Research question III – How accurate estimations can be done for different machine
types and cutting technologies?
With laser machine estimated MADP of the estimated cost was 7.6%. And for punch-
shear machine including punching, shearing and forming MADP of the estimated cost
was 7.0%.
Research question IV – Is it possible to train or tune estimation model with existing
production data?
It is possible to train estimation model from existing production data. All estimations
were based on neural networks which were trained by measured data. It was also possible
to continue learning when new data was input.
Neural network based cost estimation
Neural network based estimation model has few advantages. One of the advantages is
possibility to learn from existing data. It could be used to learn also from data where parts
were programmed both manually and automatically. It is easy to take existing data and
experiment with different input variables. This allows to gather new data in the future
which can be used to improve estimation accuracy. Also calculations were fast, estima-
tions could be calculated for many machine types quickly after pre-processing was made.
Some disadvantages could be also recognized. It is difficult to understand how each neu-
ral network works. This makes it practically impossible to adjust parameters manually. It
is also difficult to know what kind of data NN model has learned. This makes it difficult
guarantee the behavior with new kind of parts. In practice this means that lot of training
data is required to cover different kinds of part and features. Also training the neural
74
networks takes computation time, but it is manageable as it can be performed and pre-
calculated before model is used for calculating estimations.
75
REFERENCES
[1] Asaeedi, Saeed, Farzad Didehvar, and Ali Mohades. 'Alpha-Concave Hull, a
Generalization of Convex Hull', (2013).
[2] Bae, Sang Won, Chunseok Lee, Hee-Kap Ahn, et al. 'Computing Minimum-Area
Rectilinear Convex Hull and L-Shape', Computational Geometry: Theory and
Applications, vol. 42/no. 9, (2009), pp. 903-912.
[3] Bargelis, A., and M. Rimasauskas. 'Cost Forecasting Model for Order-Based
Sheet Metalworking', Proceedings of the Institution of Mechanical Engineers,
Part C: Journal of Mechanical Engineering Science, vol. 221/no. 1, (2007), pp.
55-65
[4] Barhum, Kfir, Oded Goldreich, and Adi Shraibman. 'On Approximating the Av-
erage Distance between Points', Lecture Notes in Computer Science (Including
Subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinfor-
matics), vol. 4627/(2007), pp. 296-310.
[5] Bishop, M., 'Neural Networks for Pattern Recognition', Clarendon Press, (1995)
[6] Brent, R. P, ‘Fast Training Algorithms for Multi-layer Neural Nets’, Appeared in
IEEE Transactions on Neural Networks 2 (1991), pp. 346–354.
[7] Burke, E. K., R. S. R. Hellier, G. Kendall, et al. 'Irregular Packing using the Line
and Arc no-Fit Polygon', Operations Research, vol. 58/no. 4-part-1, (2010), pp.
948-970.
[8] Chanderjit, Bajat and Myung-Soo Kim. 'Convex hull of objects bounded by alge-
braic curves', Technical report CSD-TR-697, Purdue University, (1987)
[9] Cheng, Heng-Tze, Levent Koc, Jeremiah Harmsen, et al. 'Wide & Deep Learning
for Recommender Systems', (2016)
[10] Cuesta, E., J. C. Rico, S. Mateos, et al. 'Times and Costs Analysis for Sheet-
Metal Cutting Processes in an Integrated CAD/CAM System', International Jour-
nal of Production Research, vol. 36/no. 6, (1998), pp. 1733-1747.
[11] de Berg, Mark, Otfried Cheong, Marc van Kreveld, et al. , 'Computational Ge-
ometry : Algorithms and Applications', Anonymous Translator(Third edn, Ber-
lin/Heidelberg, Springer Berlin Heidelberg, 2008).
76
[12] Duflou, J. R., T. H. M. Nguyen, J. -P Kruth, et al. 'Automated Tool Selection for
Computer-Aided Process Planning in Sheet Metal Bending', CIRP Annals - Man-
ufacturing Technology, vol. 54/no. 1, (2005), pp. 451-454.
[13] Duflou, J., J. -P Kruth, and D. Van Oudheusden. 'Algorithms for the Design Ver-
ification and Automatic Process Planning for Bent Sheet Metal Parts', CIRP An-
nals - Manufacturing Technology, vol. 48/no. 1, (1999), pp. 405-408.
[14] Dumitru Erhan, Yoshua Bengio, et. al. 'Why Does Unsupervised Pre-training
Help Deep Learning? ', Journal of Machine Learning Research 11 (2010), pp.
625-660.
[15] Elber, Gershon, Myung-Soo Kim, and Hee-Seok Heo. 'The Convex Hull of Ra-
tional Plane Curves', Graphical Models, vol. 63/no. 3, (2001), pp. 151-162.
[16] Eltahawy, B., Ylihärsilä, M., Virrankoski, R., Petäjä, E. 'Towards a Complete
Automation Feature Recognition System for Sheet Metal Manufacturing', World
Academy of Science, Engineering and Technology, International Science Index
124, International Journal of Mechanical, Aerospace, Industrial, Mechatronic and
Manufacturing Engineering, 11(4), (2017), pp. 815 - 824.
[17] Foussier, Pierre Marie Maurice. , 'From Product Description to Cost: A Practical
Approach: Volume 1: The Parametric Approach', Springer London, (2006).
[18] Freeman, H., and R. Shapira. 'Determining the Minimum-Area Encasing Rectan-
gle for an Arbitrary Closed Curve', Communications of the ACM, vol. 18/no. 7,
(1975), pp. 409-413.
[19] Graham, L and F.F Yao. ‘Finding the Convex Hull of a Simple Polygon’, Tech.
Rep. No. STAN-CS-81-887, Stanfodr University, (1981), pp. 1-8.
[20] Grinde, Roger B., and Tom M. Cavalier. 'A New Algorithm for the Minimal-
Area Convex Enclosure Problem', European Journal of Operational Re-
search, vol. 84/no. 3, (1995), pp. 522-538.
[21] Gugel, Patrick, and Holger Schrodl. 'Cost Forecast of Sheet Metal Parts using 3D
CAD-Models in SME', 2010 IEEE International Conference on Information Re-
use & Integration, (2010), pp. 407-408.
[22] Herrmann, J. W., and D. R. Delalio. 'Algorithms for Sheet Metal Nesting', IEEE
Transactions on Robotics and Automation, vol. 17/no. 2, (2001), pp. 183-190.
[23] Jagirdar, R., V. K. Jain, and J. L. Batra. 'Characterization and Identification of
Forming Features for 3-D Sheet Metal Components', International Journal of
Machine Tools and Manufacture, vol. 41/no. 9, (2001), pp. 1295-1322.
77
[24] Jia, Yan-Bin & Lin, Huan. 'On the convex hulls of parametric plane curves',
(2003)
[25] Kannan, T. R., and M. S. Shunmugam. 'Processing of 3D Sheet Metal Compo-
nents in STEP AP-203 Format. Part I: Feature Recognition System', Interna-
tional Journal of Production Research, vol. 47/no. 4, (2009), pp. 941-964.
[26] Kannan, T. R., and M. S. Shunmugam. 'Processing of 3D Sheet Metal Compo-
nents in STEP AP-203 Format. Part II: Feature Reasoning System', International
Journal of Production Research, vol. 47/no. 5, (2009), pp. 1287-1308.
[27] Kim, Sungil, and Heeyoung Kim. 'A New Metric of Absolute Percentage Error
for Intermittent Demand Forecasts', International Journal of Forecasting, vol.
32/no. 3, (2016), pp. 669-679.
[28] Lamousin, Henry, and Warren N. Waggenspack. 'Nesting of Two-Dimensional
Irregular Parts using a Shape Reasoning Heuristic', Computer-Aided Design, vol.
29/no. 3, (1997), pp. 221-238.
[29] Milenkovic, Victor J. 'Densest Translational Lattice Packing of Non-Convex Pol-
ygons', Computational Geometry: Theory and Applications, vol. 22/no. 1,
(2002), pp. 205-222.
[30] Mohamed, Amal Abdelmoneam, Azza Fathalla Barakat, Mohamed Ibrahim Et-
man, et al. 'Integrated CAD/CAPP/CAM and ANN in Sheet Metal Punching and
Nippling Operations', 2015 SAI Intelligent Systems Conference (IntelliSys),
(2015), pp. 657-663.
[31] Niazi, Adnan, Jian S. Dai, Stavroula Balabani, et al. 'Product Cost Estimation:
Technique Classification and Methodology Review', Journal of Manufacturing
Science and Engineering, vol. 128/no. 2, (2006), pp. 563.
[32] Nye, T. J. 'Optimal Nesting of Irregular Convex Blanks in Strips Via an Exact
Algorithm', International Journal of Machine Tools and Manufacture, vol.
41/no. 7, (2001), pp. 991-1002.
[33] Pahl, G. & Beitz, W. Engineering Design: A Systematic Approach. Springer,
(2007)
[34] Pateiro-López, Beatriz, and Alberto Rodríguez-Casal. 'Generalizing the Convex
Hull of a Sample: The R Package Alphahull', Journal of Statistical Software, vol.
34/no. 5, (2010).
78
[35] Prieto, Alberto, Beatriz Prieto, Eva Martinez Ortigosa, et al. 'Neural Networks:
An Overview of Early Research, Current Frameworks and New Challeng-
es', Neurocomputing, vol. 214/(2016), pp. 242-268.
[36] Ramana, K. V., and P. V. M. Rao. 'Data and Knowledge Modeling for design–
process Planning Integration of Sheet Metal Components', Journal of Intelligent
Manufacturing, vol. 15/no. 5, (2004), pp. 607-623.
[37] Schmidhuber, Jürgen. 'Deep Learning in Neural Networks: An Overview', Neu-
ral Networks : The Official Journal of the International Neural Network Soci-
ety, vol. 61/(2015;2014;), pp. 85-117.
[38] Shah, J.J., Mäntylä, M. ’Parametric and feature based CAD/CAM’, Wiley,
(1995)
[39] Sun, B. ’Customer-Orientated Nesting Optimization for Sheet Metal Manufac-
turing’. Tampere University of Technology Publications, vol. 368, (2002)
[40] Tofallis, Chris. 'A Better Measure of Relative Prediction Accuracy for Model Se-
lection and Model Estimation', The Journal of the Operational Research Society,
vol. 66/no. 8, (2015), pp. 1352-1362.
[41] Toussaint, G. 'Solving Geometric Problems with the Rotating Calipers', McGill
University. (1983)
[42] Tu, Y. L., and S. Q. Xie. 'An Information Modelling Framework to Support In-
telligent Concurrent Design and Manufacturing of Sheet Metal Parts', Interna-
tional Journal of Advanced Manufacturing Technology, vol. 18/no. 12, (2001),
pp. 873-883.
[43] Wallace, K. & Blessing, L. ‘Observations on Some German Contributions to En-
gineering Design In Memory of Professor Wolfgang Beitz’. Research in Engi-
neering Design vol. 12/no. 2. , (2000)
[44] WANG Dawei YAN Guangrong LEI Yi ZHANG Jiaying. 'A Retrieval Algo-
rithm of Sheet Metal Parts Based on Relationships of Features', 中国航空学报:
英文版, vol. 25/no. 3, (2012), pp. 453-472.
[45] Wei, Liu, and He Yuanjun. 'Representation and Retrieval of 3D CAD Models in
Parts Library', The International Journal of Advanced Manufacturing Technol-
ogy, vol. 36/no. 9, (2008), pp. 950-958.
[46] Venkataraman, Vishwanath A., and Ramanathan Muthuganapathy. 'Algorithm
for Computing Positive α-Hull for a Set of Planar Closed Curves', Computers &
Graphics, vol. 51/(2015), pp. 125-135.
79
[47] Verlinden, B., D. Cattrysse, and D. Van Oudheusden. 'Integrated Sheet-Metal
Production Planning for Laser Cutting and Bending', International Journal of
Production Research, vol. 45/no. 2, (2007), pp. 369-383.
[48] Verlinden, B., J. R. Duflou, P. Collin, et al. 'Cost Estimation for Sheet Metal
Parts using Multiple Regression and Artificial Neural Networks: A Case Study',
International Journal of Production Economics, vol. 111/no. 2, (2008), pp. 484-
492.
[49] Vishwanath A.V. and Ramanathan M. 'Determining curves in convex hull from a
set of planar closed convex curves', Computer-Aided Design & Applications,
10(a), (2013)
[50] Xie, S. Q., and X. Xu. 'STEP-Compliant Process Planning System for Compound
Sheet Metal Machining', International Journal of Production Research, vol.
46/no. 1, (2008), pp. 25-50.
[51] Xie, S. Q., and Y. L. Tu. 'Rapid One-of-a-Kind Product Development', The Inter-
national Journal of Advanced Manufacturing Technology, vol. 27/no. 5, (2006),
pp. 421-430.
[52] Xie, S. Q., P. L. Tu, D. Aitchison, et al. 'A WWW-Based Integrated Product De-
velopment Platform for Sheet Metal Parts Intelligent Concurrent Design and
Manufacturing', International Journal of Production Research, vol. 39/no. 17,
(2001), pp. 3829-3852.
[53] Yue, Yong, J. L. Murray, J. R. Corney, et al. 'Convex Hull of a Planar Set of
Straight and Circular Line Segments', Engineering Computations, vol. 16/no. 8,
(1999), pp. 858-875.
[54] 247TailorSteel. https://www.247tailorsteel.com/en/laser-cutting, (26.3.2018)
[55] 3D ACIS modeling. https://www.spatial.com/products/3d-acis-modeling,
(26.3.2018)
[56] 3D Hubs. https://www.3dhubs.com/, (10.4.2018)
[57] 3DInterOp. https://www.spatial.com/products/3d-interoperability, (2.3.2018)
[58] Boost. http://www.boost.org/ , (2.3.2018)
[59] C++. https://isocpp.org/wiki/faq/big-picture#what-is-cpp , (2.3.2018)
[60] CAD data exchange. https://en.wikipedia.org/wiki/CAD_data_exchange,
(5.4.2018)
80
[61] CGM. https://www.spatial.com/products/cgm, (5.4.2018)
[62] CUDA. https://developer.nvidia.com/cuda-zone , (5.4.2018)
[63] Datakit. http://www.datakit.com/en/, (9.3.2018)
[64] eRapid. https://rapidmanufacturing.com/instant-sheet-metal-quotes/, (15.3.2018)
[65] Estimating sheet metal fabrication costs. http://etmmfg.com/wp-content/up-
loads/Estimating-Sheet-Metal-Fabrication-Costs-v3.pdf, (15.3.2018)
[66] GRANITE Interoperability Kernel. http://www.graniteinteroperability.com/,
(9.3.2018)
[67] Keras. https://keras.io/, (6.3.2018)
[68] Laserteile4you. https://www.laserteile4you.de, (6.3.2018)
[69] Lopez, R.’ Introduction to neural networks’. https://www.neuralde-
signer.com/learning/tutorials/introduction_to_neural_networks (6.3.2018)
[70] Mean Absolute Deviation Percent (MADP). http://www.vanguardsw.com/busi-
ness-forecasting-101/mean-absolute-deviation-percent-madp/, (2.4.3.2018)
[71] NC Express. https://www.primapower.com/sheet-metal-processing-software-nc-
express-e%C2%B3/, (2.3.2018)
[72] Neural Designer. https://www.neuraldesigner.com/, (26.3.2018)
[73] OnShape. https://www.onshape.com/, (26.3.2018)
[74] OpenMP. http://www.openmp.org/about/openmp-faq/ , (26.3.2018)
[75] OpenNN. http://www.opennn.net/ ,(26.3.2018)
[76] Parasolid Wikipedia. https://en.wikipedia.org/wiki/Parasolid, (26.3.2018)
[77] Parasolid. https://www.plm.automation.siemens.com/en/products/open/parasolid/
, (26.3.2018)
[78] Postman. https://www.getpostman.com/, (26.3.2018)
[79] Prima Power. https://www.primapower.com/ ,(26.3.2018)
[80] Shapeways. https://www.shapeways.com, (26.3.2018)
81
[81] Solid Works Costing. http://www.solidworks.com/sw/products/3d-cad/manufac-
turing-cost-estimation.htm, (26.3.2018)
[82] TensorFlow. https://www.tensorflow.org/ , (26.3.2018)
[83] Tinkercad. https://www.tinkercad.com/, (5.4.2018)
[84] Ushakov, Dmitry. 'Russian National 3D Kernel'. LEDAS Ltd. http://isicad.net/ar-
ticles.php?article_num=15189, (26.3.2018)
[85] Xometry Instant Quote. https://get.xometry.com/quote, (26.3.2018)
82
APPENDIX A - EXAMPLE OF THE DATA
Free form material usage data
bb_area usable_convex_area usable_concave_area sheet_usage
0.045583 0.012179 0.001261 0.048039
0.001501 0.000279 0 0.001211
0.045583 0.012179 0.001261 0.043644
0.011453 0.00525 0 0.008992
0.0025 0.000086 0 0.002744
0.0576 0.016138 0.002984 0.070095
0.016 0.006 0 0.014912
0.01 0.005 0 0.00824
0.018 0.005027 0.000543 0.015643
0.002 0.000086 0 0.002192
0.018784 0.005341 0.005678 0.013103
0.014406 0.006428 0.001446 0.009133
0.030748 0.008185 0.009739 0.027074
0.018099 0.004534 0.004458 0.014904
0.041763 0.005935 0.001741 0.044763
0.022901 0.007634 0.002585 0.018774
0.172109 0.0004 0.000273 0.191401
Number of hit in notch rectangular region
min_x min_y allowed_overlap_x allowed_overlap_y n_sides n_hits
0.042628 0.2164 0 0 2 36.33333
0.012228 0.08425 0 0.2164 2 15.66667
0.02 0.02425 0.012228 0.2164 1 1.666667
0.042628 0.2164 0 0 2 36.33333
0.012228 0.08425 0 0.2164 2 15.66667
0.02 0.02425 0.012228 0.2164 1 1.666667
0.032228 0.2525 0 0 1 77.66667
0.012228 0.06 0 0.3125 2 13.83333
0.012228 0.06 0 0.3125 2 13.83333
0.042628 0.2164 0 0 2 36.33333
0.012228 0.08425 0 0.2164 2 15.66667
0.02 0.02425 0.012228 0.2164 1 1.666667
0.042628 0.2164 0 0 2 36.33333
0.012228 0.08425 0 0.2164 2 15.66667
0.02 0.02425 0.012228 0.2164 1 1.666667
0.032228 0.2525 0 0 1 77.66667