Object-Oriented Approach To Product Design Using e
Object-Oriented Approach To Product Design Using e
com
Available online at www.sciencedirect.com
ScienceDirect
ScienceDirect
Available online at www.sciencedirect.com
Procedia Manufacturing 00 (2019) 000–000
ScienceDirect
Procedia Manufacturing 00 (2019) 000–000 www.elsevier.com/locate/procedia
www.elsevier.com/locate/procedia
Abstract
Abstract
Knowledge-based engineering (KBE) helps to automate the design of products and corresponding manufacturing systems. The automation is
Knowledge-based engineering
achieved via engineering (KBE)
knowledge helps to automate
representation the design of products
in computer-processable andi.e.
formats, corresponding
languages. Itmanufacturing
becomes possiblesystems. Theproduct
to capture automation is
design
achieved via engineering
and manufacturing knowledge
processes representation
knowledge in computer-processable
and let software formats,
applications to handle i.e. languages.
it suggesting better It becomes
options for possible
a producttoand/or
capturea product design
manufacturing
and manufacturing
system. processes
In this paper knowledge
we demonstrate an and let software
application applications to methodology
and corresponding handle it suggesting
to designbetter
andoptions forthe
evaluate a product and/orofa amanufacturing
performance product. The
system.
approachIncan
thisbepaper we demonstrate
extended to different an application
engineering and corresponding
problem domains savingmethodology to design
the time used and evaluate
for product design. the performance of a product. The
approach can be extended to different engineering problem domains saving the time used for product design.
© 2020 The Authors. Published by Elsevier Ltd.
©
© 2020
2020
This is an
The
The Authors.
Authors.
open
Published
accessPublished
by Elsevier
by Elsevier
article under Ltd. Ltd. license https://creativecommons.org/licenses/by-nc-nd/4.0/)
the CC BY-NC-ND
This
This is
is an
an open
open access
access article
article under
under the the
CC CC BY-NC-ND
BY-NC-ND license
Peer-review under responsibility of the scientific committee
license (https://creativecommons.org/licenses/by-nc-nd/4.0/)
https://creativecommons.org/licenses/by-nc-nd/4.0/)
of the FAIM 2020.
Peer-review underresponsibility
Peer-review under responsibilityofof
thethe scientific
scientific committee
committee of FAIM
of the the FAIM 2021.
2020.
Keywords: knowledge-based engineering; product design; CAD.
Keywords: knowledge-based engineering; product design; CAD.
1. Introduction tools. It becomes possible to integrate and turn these tools into
1. Introduction tools. It becomesThe
KBE platforms. possible to integrate
mainstream and turn these
programming tools give
languages into
Object-oriented programming languages started to emerge KBE platforms. The mainstream programming languages
a potential of many software libraries, modules and easy-to-use give
in Object-oriented
1970s as a convenientprogramming languages
organization started
of the to emerge
computational aplatforms.
potential For
of many software
example, a new libraries,
Pythonmodules and easy-to-use
library could be almost
in 1970s letting
problem as a convenient organization
software objects to interactof the
withcomputational
each other to platforms. For example,
instantly added a new Python
to the computer usinglibrary could<library>
pip install be almost
problem letting software
solve a problem. objects
One of the to interact
reasons could bewith
seeneach otherit to
is that is instantly
command. added to the computer using pip install <library>
solve
easier to define interaction protocol, i.e. interface / methodsit to
a problem. One of the reasons could be seen is that is command.
The transformation of software engineering and
easier to define
be called interaction
and situations when protocol, i.e. interface
these should be called / methods
rather than to The transformation
development of ICT give of new software
prospects engineering
for rapid product and
be called
trying to and situations all
comprehend when thethese should
possible be calledand
scenarios rather than
encode development of ICT give new prospects for rapid
modelling and analysis delivering results, if needed, to remote product
trying to comprehend all the possible
them into some common and single execution thread. scenarios and encode modelling
and multiple and locations
analysis delivering
for betterresults, if needed,
discussions and todecision
remote
them into some
Active common and
development of single execution thread.
knowledge-based engineering and multiple locations for better discussions
making. A simple API for application development is and decision
Active
(KBE) development
solutions began in theof 1980s.
knowledge-based
Object-oriented engineering
languages making.
important Aforsimple
adoptionAPIandforuseapplication
of KBE tools. development
This paper is
(KBE) solutions began in the 1980s. Object-oriented
were also proposed to express key concepts for parametric languages important for adoption and use of KBE tools.
proposes an extension of NX Open API to simplify product This paper
were also proposed to express key concepts
product representation using geometry shapes. These are for parametric proposes
developmentan extension
and analysis.of NX Open API to simplify product
product representation
mostly Lisp-inspired using geometry shapes.
knowledge-representation Thesesuch
languages are development and analysis. do exist for object-oriented design.
Different methodologies
mostly Lisp-inspired knowledge-representation
as, for example, General-purpose Declarative Language languages such OneDifferent methodologies
of the prominent do exist Process
is the Unified for object-oriented
methodology design.
[17].
as,
(GDL),for Adaptive
example,Modelling
General-purpose
LanguageDeclarative Language
(AML) or Knowledge One
The methodology can be seen as a tringle having for[17].
of the prominent is the Unified Process methodology its
(GDL),
Fusion Adaptive
(KF) [16]. Modelling
GeneralLanguage
purpose (AML) or Knowledge
programmers or the The methodology
vertices: models, toolscan and
be seen as a tringle
techniques. Ideally,having for its
right models
Fusion
graduates(KF) [16]. General
in software engineeringpurpose
most programmers
probably haveornever the vertices:
capturingmodels,
relevanttools andoftechniques.
aspects Ideally,
a problem help right models
to understand or
graduates in software engineering most probably
heard of those. With the time, “mainstream” programing have never capturing relevant aspects of a problem help
solve it by using right (software) tools following right to understand or
heard
languagesof those.
that areWith the time,
typically found“mainstream”
in curricular of programing
software solve it by using right (software) tools following
techniques or engineering steps. These elements should support right
languages
engineers also thatfound
are typically
their APIfound in curricular
implementation for of software
engineering techniques
each other.or engineering steps. These elements
Powerful, easy-to-use tools areshould support
meaningless
engineers also found their API implementation for engineering each other. Powerful, easy-to-use tools are meaningless
2351-9789 ©©2020
2351-9789 2020TheThe Authors.
Authors. Published
Published by Ltd.
by Elsevier Elsevier Ltd.
2351-9789
This
This isisanan©open
2020
open Thearticle
Authors.
access
access Published
article
under under
the by
theElsevier
CC BY-NC-ND Ltd.
CC BY-NC-ND license (https://creativecommons.org/licenses/by-nc-nd/4.0/)
license https://creativecommons.org/licenses/by-nc-nd/4.0/)
This is an open
Peer-review
Peer-review access
under
under article under
of the scientific
responsibility
responsibility CC BY-NC-ND
of the license
scientific
committee https://creativecommons.org/licenses/by-nc-nd/4.0/)
committee
of the FAIMof the FAIM 2021.
2020.
Peer-review under responsibility of the scientific committee of the FAIM 2020.
10.1016/j.promfg.2020.10.142
Andrei Lobov et al. / Procedia Manufacturing 51 (2020) 1014–1020 1015
2 Author name / Procedia Manufacturing 00 (2019) 000–000
without relevant models or may be difficult to apply without technologies. Therefore, it is important to make KBE solutions
clear instructions (techniques). Models may capture relevant affordable for SMEs and organizations which may have
information, but be difficult to process without the tools, and challenges to get proper resources that may not seem having
so on. In the context of the KBE, product models are created direct link to their core business. For instance, the necessity for
using Computer-aided design (CAD) tools that create three- a manufacturing SME to hire a software engineer may not be
dimensional (3D) representation of a product. Furthermore, always evident.
modeling of physical properties and material of the product and As, for example, for ship blocks welding workshop, “block
its environment make it possible to simulate product behavior. scheduling is done manually, which is also the method used by
These models can be generated using KBE APIs and the above- shipyards at present time” [4]. A manufacturing of a large and
mentioned knowledge-representation languages. However, heavy product such as a ship, may take hundred kilometres of
their use and the use of the KBE solutions despite sometimes welding generally performed by human welders. Those sites
tremendous savings of going from man-weeks work to minutes can pose threats to human operators, as for example,
[18] is still not wide-spread. One reason could be claimed on shipbuilding industry is seen as “one of the most hazardous
the search for proper KBE methodology establishing links industries” [5]. Therefore, an automation of manufacturing for
between models, tools and techniques. This paper shows that large-in-size and heavy products requires new solutions to
extending NX Open API it is possible to raise the level of design, digitally validate, and guide manufacturing site fast
abstraction to more manageable and easier to use concepts for setup and reconfiguration. The use of smart mechatronic
the problem domain. This should hide some of the complexity systems is seen as a key to enable fast setup and reconfiguration
connected to the geometry modeling, which is the core of the of manufacturing sites.
CAD tools. Still the direct use of an API such as NX Open may The product design can be supported by knowledge-based
require hundreds of code lines to express “simple” operations engineering (KBE) methods. These are, for example, employed
a CAD engineer can do within a few second by directly in aerospace industry [6]. Such products could be seen as
manipulating 3D object on the canvas in the CAD tool. mission critical. The use of KBE requires great efforts meaning
Therefore, extensions of API are needed, which, as we show in that the affordable solution for easy uptake of KBE is still to be
the paper, can reduce amount of code lines to just a few. Such found. Use of web standards for integrating different elements
a reduction should make an approach more affordable for of KBE systems could be seen as one of the possible direction
engineers. towards common and universal engineering knowledge
The rest of the paper is organized as following. The next representation and integration language [15].
section describes state of the art for knowledge-based B. KBE and API support
engineering and APIs. The third section describes object-
As the API support become available for Computer-aided
oriented approach for product design that is followed by
Design (CAD) tools, different applications stated to be
application example in section four. Conclusions and future
developed. In [7], Siemens NX C++ extension is made using
work come in the fifth section. NX Open API to automate the search of necessary objects for
fillets by analyzing the angles or edges for a work piece. This
2. State of the art could be important information as it can mean connection
points between different bodies in the design.
A. KBE and manufacturing
Use of an API gives new possibilities in education. The
A manufacturing system can be defined as “a subset of the
Mechanical Design Virtual Laboratory [8] was created for
production system”, which function “is the arrangement and
dynamic axle assembly using Visual C++ and NX. That
operation of elements (machines, tools, materiel, people and
highlights a possibility to build customized solutions for using
information) to produce a value-added physical, informational
KBE tools. Both geometric and assemble parameters were
or service product whose success and cost is characterized by
represented via a component. That can be seen as a need to
the measurable parameters of the system design” [1]. In order
tackle different viewpoints – problem domain and graphical
to help that arrangement, different technologies were
representation.
employed. One of those is Computer-integrated Manufacturing
or CIM that integrates different information systems [2]. Such The parametric design can go with wide-spread easy to grasp
an integration aims at creating different digital models and and apply interface such as Excel tables. Part families are
manage those at different stages of life cycles for products and reported to be updated using Excel interface described in [9].
manufacturing systems. The goal is to reduce development
efforts when designing and planning manufacturing of a The car front and back windshield inspection gauge was
product. With the advent of Internet of Things (IoT) or designed using NX platform [10]. The resulting system could
Industrial Internet of Things (IIoT) [3], a manufacturing propose a set of inspection gauges automatically to match
workshop can be seen as a collection of integrated of cyber- windshield and clamp board specifications.
physical systems with the high level of situational awareness In [11], the use of the NX Open API is reported for “Irkutsk
and decision making capabilities. Despite different approaches, Aviation Plant” to implement a recognition algorithm that
architectures and technologies suggested, still the enterprises, clusters and recognizes geometric primitives. These can form a
especially SMEs require great efforts to uptake given pattern that could (in this case) help differentiating between
approaches and commit to the latest supportive ICT various/different aeronautical engineering products. Wing
1016 Andrei Lobov et al. / Procedia Manufacturing 51 (2020) 1014–1020
Author name / Procedia Manufacturing 00 (2019) 000–000 3
mass estimation approach and shape optimization with The method initForNX() initializes the block in the NX
NASTRAN Finite Element analysis that can be accessed via environment. The methods subtract(tool) and
Siemens NX was reported in [13]. subractFrom(target) are used to subtract blocks from one
another taking different perspectives of a tool (as one shapes is
Siemens NX API was used in [12] to implement toolpath
used as a tool cutting the material from another) and that of
planning module to define processing parts and assign suitable
target (the shape being cut). Basically, having these two
operations and the processing strategy. NX postprocessor was
methods can be seen redundant as just one of those may
implemented in [14] to integrate the toolpath with the robot to
implement the subtraction following one selected perspective.
perform it.
However, such a redundancy may make the life of a designer
As a summary, KBE solutions are used for mission critical easier as one may naturally take and switch between the
complex products such as that of shipbuilding or aeronautic perspectives during implementation time.
industries. Also, some education is conducted and educational
The Analyzer class is put into the util package signifying a
environments for KBE are being created. Still, to make KBE
supportive tool for the product designer. As design eventually
more affordable and still to provide more than parametric
is stored in a file, the class has corresponding attributes for file
design with Excel, one should make a use of APIs. These APIs
name and path. Bodies in general correspond to the shapes but
should be therefore easy to learn and apply.
in the language of analyzer, as the bodies get physical
Siemens NX is extensively used to implement different ad properties that must be interplayed to check product
hoc solutions. In the following section we exemplify object- performance. Therefore, bodies attribute is defined at the
oriented approach to abstract Open NX API details, giving end Analyzer class to serve its methods.
users a possibility to stay closer to the concepts used in the
problem domain significantly reducing amount of code needed
for using the API.
3. Approach
*
https://www.aluminum.org/resources/industry- standards/aluminum-alloys-101
1018 Andrei Lobov et al. / Procedia Manufacturing 51 (2020) 1014–1020
Author name / Procedia Manufacturing 00 (2019) 000–000 5
the right parameters assigned. Requirements for the parameters s1 = Sphere(10, 10, 50, 25, "BLUE", "Aluminum_5086")
and the structure outlook should in general be known in s1.initForNX() # Initialize the sphere in NX
advance. A change of design later is difficult unless it was done
as parametric design with some Excel file storing key #Substract c1 from s1
#s1.subtract(c1) # one of the ways - just an illustration
parameters that can be used to update the outlook of a product.
c1.subtractFrom(s1)
However, even with the basic parametric design certain
extensions as with introduction of new parameters or functions if analyze:
is challenging. At that point, the extended API can be used to # Lets start the Analyzer
give more freedom for design reconfiguration. a = Analyzer("example", "C:\\<The path is here>\\")
a.getSolidBodies()
The force is applied on the top of the pole downwards along a.createFEM("8.79", "0.879", "Aluminum_5086")
the pole. The base of the pole is fixed. It is requested to estimate a.defineSim()
displacement in the pole. a.assignConstrain(1, 3)
# Reverse the assigned force by Z axis, i.e. [0,0,-1]
B. Results a.assignLoad(50000, 1, 4, [0,0,-1])
Listing 1 below shows Python code for the design file that a.solveSim()
puts together instances of the classes shown in Fig. 1. As in The Analyzer object, once created, is used to call methods
many (object-oriented) programming languages, first comes in the specified order to get first bodies that can be analyzed
imports of necessary classes, which are in this case the classes (the pole and the sphere). The FEM model is generated, so that
from shapes and util packages. The Boolean flag analyze is set end user can see the pole split into elements as shown in Fig. 2
true to tell that analysis should be performed. Then, until the (b). The constrain is shown to be assigned to the first body (the
use of the flag in the if statement, comes creation of the basic pole) and its bottom (face 3). One may see dedicated marks in
shapes – block, cylinder and sphere. Comments in the listing Fig 2 (c) on the perimeter of the pole as the constrain get
can give additional details on the parameters passed for highlighted in a graphical interface. The load is seen applied to
creating instance of the class. After the instances created the the top of the pole (arrows pointing downwards in Fig. 2(c)) as
cylinder is subtracted from the sphere to form the opening of specified in the code ([0,0,-1] – reversed for base Z axis) for
the cup. the first body (the pole) and the phase 4 (the top of the pole).
Finally, as the simulation runs for the created model, results are
Listing 1 Design file to create the product and analyze it
generated and can be visualized as shown in Fig. 2 (d).
(in Python)
""" Listing 2 Excerpt from the Sphere class (in Python)
design1.py - Creates a product out of (basic) shapes and makes #/shapes/Sphere.py
analaysis of the product. import math
""" import NXOpen
from shapes.Block import Block import NXOpen.Annotations
from shapes.Cylinder import Cylinder import NXOpen.Features
import NXOpen.GeometricUtilities
from shapes.Sphere import Sphere
import NXOpen.Preferences
from util.Analyzer import Analyzer class Sphere:
"""
Do a cylinder having its origin at (10, 10, 50) with corresponding def initForNX(self):
theSession = NXOpen.Session.GetSession()
diameter (20), workPart = theSession.Parts.Work
height (30), direction ([0, 0, 1]), color (RED) and material
(Aluminum_5086) spherebuilder1=
""" workPart.Features.CreateSphereBuilder(NXOpen.Features.Sphere.Null)
c1 =Cylinder(10,10,50,20,30,[0,0,1],"RED", "Aluminum_5086") …
c1.initForNX() # Initialize the cylinder in NX
def subtract(self, tool):
""" theSession = NXOpen.Session.GetSession()
workPart = theSession.Parts.Work
Do a sphere having its origin at (10, 10, 50) with corresponding
diameter (50), # Subtraction
color (BLUE) and material (Aluminum_5086) subtractfeaturebuilder1=
""" workPart.Features.CreateBooleanBuilder(NXOpen.Features.BooleanFeatu
Andrei Lobov et al. / Procedia Manufacturing 51 (2020) 1014–1020 1019
6 Author name / Procedia Manufacturing 00 (2019) 000–000
optimization. Proceedings of the Institution of Mechanical Engineers, on System Integration (SII), Taipei, 2017, pp. 236-240. doi:
Part G: Journal of Aerospace Engineering, 224(9), 1041–1055. 10.1109/SII.2017.8279218
https://doi.org/10.1243/09544100JAERO592 [13] A. Benaouali and S. Kachel, "Structural wing sizing and planform
[7] V. A. Tikhomirov, "The Method of Automatic Determination of the shape optimization using multidisciplinary CAD-CAE integration
Types of Spatial Angles in 3D Models of CAD Systems," 2019 process," 2017 8th International Conference on Mechanical and
International Science and Technology Conference "EastConf", Aerospace Engineering (ICMAE), Prague, 2017, pp. 478-483. doi:
Vladivostok, Russia, 2019, pp. 1-4. doi: 10.1109/ICMAE.2017.8038692
10.1109/EastConf.2019.8725312 [14] J. Andres, L. Gracia, H. Marti and J. Tornero, "Toolpath
[8] W. Chao and H. Wang, "Scheme design of Mechanical Design Virtual postprocessing for three axes milling in redundant robotic workcells
Laboratory based on component," 2012 2nd International Conference by means of fuzzy integration in a cam platform," 2009 IEEE
on Consumer Electronics, Communications and Networks (CECNet), International Conference on Mechatronics, Malaga, 2009, pp. 1-6.
Yichang, 2012, pp. 2061-2064. doi: 10.1109/CECNet.2012.6201667 doi: 10.1109/ICMECH.2009.4957209
[9] W. Kuang, "Development of parametric Part Family system based on [15] Lobov, A.., Martikkala, A., Biswas, P. “Towards a Web-based
UG and Excel parameter form," 2009 IEEE 10th International Framework for Computer-aided Manufacturing”, The International
Conference on Computer-Aided Industrial Design & Conceptual Forum on Instrumentation Engineering, Electronics and
Design, Wenzhou, 2009, pp. 758-761. doi: Telecommunications, Izhevsk, Russia, 2019, pp. 59-65.
10.1109/CAIDCD.2009.5375103 [16] Sobieszczanski-Sobieski, Morris and van Tooren, “Multidisciplinary
[10] B. Wang, D. Liu, N. Zhou and L. Zhou, "Research on Knowledge- Design Optimization Supported by Knowledge Based Engineering”,
Reuse-Based Windshield Inspection Gauge Design System," 2009 Wiley, ISBN 9781118492123, 2015
International Conference on Measuring Technology and [17] J. W. Satzinger, R. B. Jackson and S. D. Burd, Object-Oriented
Mechatronics Automation, Zhangjiajie, Hunan, 2009, pp. 117-120. Analysis and Design with Unified Process, Thomson, 2005, ISBN 0-
doi: 10.1109/ICMTMA.2009.286 619-21643-3
[11] M. V. Lavrentyeva and P. Y. Chimitov, "Implementation of [18] W. J. C. Verhagen, P. Bermell-Garcia, R. E.C.van Dijkc and R.
recognition algorithm with NXOpen API in siemens NX," 2017 Curran, “A critical review of Knowledge-Based Engineering: An
International Conference on Industrial Engineering, Applications and identification of research challenges”, Advanced Engineering
Manufacturing (ICIEAM), St. Petersburg, 2017, pp. 1-4. doi: Informatics Volume 26, Issue 1, Elsevier, Jan. 2012, Pages 5-15.
10.1109/ICIEAM.2017.8076193
[12] C. Chung and T. Ma, "Implementation of CAM programming with
machinability database," 2017 IEEE/SICE International Symposium