+ All Categories
Home > Documents > MIKKO YLIHÄRSILÄ SHEET METAL COSTING FROM PART DESIGN

MIKKO YLIHÄRSILÄ SHEET METAL COSTING FROM PART DESIGN

Date post: 05-Dec-2021
Category:
Upload: others
View: 1 times
Download: 1 times
Share this document with a friend
87
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
Transcript

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


Recommended