Multi-CAD approach for knowledge-based design methods4)_2016_471-483.pdf · universal functions,...

13
COMPUTER-AIDED DESIGN & APPLICATIONS, 2016 VOL. 13, NO. 4, 471–483 http://dx.doi.org/10.1080/16864360.2015.1131540 Multi-CAD approach for knowledge-based design methods Markus Salchner 1 , Severin Stadler 1 , Mario Hirz 1 , Johannes Mayr 2 and Jonathan Ameye 2 1 Graz University of Technology, Austria; 2 MAGNA STEYR Engineering AG & Co KG, Austria ABSTRACT The CAD-based design phase is characterized by a cooperation of manufacturer and supplier, which often use CAD software with different versions or even different vendors. In this context, the paper focusses on the development and application of knowledge-based engineering (KBE) within multi- CAD environment. Usually, knowledge-based design (KBD) methods are developed within and for specific CAD systems, respectively specific software configurations or releases. Engineering and com- ponent supplier companies are faced with the problem that car manufacturers (OEM) work with different CAD software solutions. A multi-CAD strategy is able to support the handling and orga- nization of different CAD-related project environments, especially in view of knowledge-based and automated design applications, as well as data management. The presented approach provides a platform for the efficient development of KBD applications for multi-CAD environments. KEYWORDS Knowledge-Based Design; Design Automation; Multi-CAD 1. Introduction During the past decades, the development period of a new car has been reduced from five years and more to about two years. These considerable time savings can be attributed to a continuous optimization and improve- ment of development processes. In this context, vir- tual development methods play a prominent role. Prod- uct Lifecycle Management (PLM) solutions are used for data organization, distribution and storage within dif- ferent computer-aided design and simulation applica- tions. This comprises computer-aided design (CAD), styling (CAS), manufacturing (CAM), as well as com- putational toolkits, e.g. multi-body simulation (MBS), computational fluid dynamics (CFD) or finite element method simulation (FEM). Furthermore, lifecycle anal- yses (LCA) can also be implemented in modern PLM systems. The broad field of computational design and engineering disciplines within automotive development requires a strong interaction in view of efficient software applications. Especially the CAD-based design phase is characterized by a cooperation of manufacturer and sup- plier, which often operate on various CAD systems with different versions or even different vendors. In this con- text, the paper focusses on the development and appli- cation of knowledge-based engineering (KBE) within multi-CAD environment. KBE deals with the storage and reuse of knowledge in product development processes [16]. A design-oriented specialization of KBE is known as knowledge-based design (KBD) [6], [8]. CONTACT Markus Salchner [email protected] Usually, KBD methods are developed within and for specific CAD systems, respectively specific software configurations or releases [3], [12]. Especially in case of problem-oriented knowledge-based applications, the compatibility to a variety of CAD software is restricted due to a high level of programmed customized fea- tures. Engineering and component supplier companies are faced with the problem that car manufacturers (OEM) apply different design methods based on different CAD software solutions as can be seen in Figure 1. In this example, an automotive supplier has to support dif- ferent CAD systems, including numerous OEM-related methodical requirements. This results in a need of high sophisticated levels of knowledge in different CAD- systems including a complex application of knowledge- based design tools. A multi-CAD strategy, as introduced in the present paper, is able to support the handling and organization of different CAD-related project environ- ments, especially in view of knowledge-based and auto- mated design applications, as well as data management. 2. Knowledge-based design methods The first paragraphs give an outline on the KBE research area and the state of the art methodology. KBD meth- ods are a specialization of KBE with focus on the design process. An overview on of KBE evolution, approaches, methodologies and future trends including the notion of KBE is treated in Reddy et al. [16], who presented © 2016 CAD Solutions, LLC, http://www.cadanda.com

Transcript of Multi-CAD approach for knowledge-based design methods4)_2016_471-483.pdf · universal functions,...

Page 1: Multi-CAD approach for knowledge-based design methods4)_2016_471-483.pdf · universal functions, are stored inside the framework. This includes “CAD base”, “Utilities”, “Infrastructure”

COMPUTER-AIDED DESIGN amp APPLICATIONS 2016VOL 13 NO 4 471ndash483httpdxdoiorg1010801686436020151131540

Multi-CAD approach for knowledge-based design methods

Markus Salchner1 Severin Stadler1 Mario Hirz1 Johannes Mayr2 and Jonathan Ameye2

1Graz University of Technology Austria 2MAGNA STEYR Engineering AG amp Co KG Austria

ABSTRACTThe CAD-based design phase is characterized by a cooperation of manufacturer and supplier whichoften use CAD software with different versions or even different vendors In this context the paperfocusses on the development and application of knowledge-based engineering (KBE) within multi-CAD environment Usually knowledge-based design (KBD) methods are developed within and forspecific CADsystems respectively specific software configurationsor releases Engineeringandcom-ponent supplier companies are faced with the problem that car manufacturers (OEM) work withdifferent CAD software solutions A multi-CAD strategy is able to support the handling and orga-nization of different CAD-related project environments especially in view of knowledge-based andautomated design applications as well as data management The presented approach provides aplatform for the efficient development of KBD applications for multi-CAD environments

KEYWORDSKnowledge-Based DesignDesign AutomationMulti-CAD

1 Introduction

During the past decades the development period of anew car has been reduced from five years and more toabout two years These considerable time savings can beattributed to a continuous optimization and improve-ment of development processes In this context vir-tual development methods play a prominent role Prod-uct Lifecycle Management (PLM) solutions are used fordata organization distribution and storage within dif-ferent computer-aided design and simulation applica-tions This comprises computer-aided design (CAD)styling (CAS) manufacturing (CAM) as well as com-putational toolkits eg multi-body simulation (MBS)computational fluid dynamics (CFD) or finite elementmethod simulation (FEM) Furthermore lifecycle anal-yses (LCA) can also be implemented in modern PLMsystems The broad field of computational design andengineering disciplines within automotive developmentrequires a strong interaction in view of efficient softwareapplications Especially the CAD-based design phase ischaracterized by a cooperation of manufacturer and sup-plier which often operate on various CAD systems withdifferent versions or even different vendors In this con-text the paper focusses on the development and appli-cation of knowledge-based engineering (KBE) withinmulti-CAD environment KBE deals with the storage andreuse of knowledge in product development processes[16] A design-oriented specialization of KBE is knownas knowledge-based design (KBD) [6] [8]

CONTACT Markus Salchner markussalchnertugrazat

Usually KBD methods are developed within andfor specific CAD systems respectively specific softwareconfigurations or releases [3] [12] Especially in caseof problem-oriented knowledge-based applications thecompatibility to a variety of CAD software is restricteddue to a high level of programmed customized fea-tures Engineering and component supplier companiesare facedwith the problem that carmanufacturers (OEM)apply different design methods based on different CADsoftware solutions as can be seen in Figure 1 In thisexample an automotive supplier has to support dif-ferent CAD systems including numerous OEM-relatedmethodical requirements This results in a need of highsophisticated levels of knowledge in different CAD-systems including a complex application of knowledge-based design tools A multi-CAD strategy as introducedin the present paper is able to support the handling andorganization of different CAD-related project environ-ments especially in view of knowledge-based and auto-mated design applications as well as data management

2 Knowledge-based designmethods

The first paragraphs give an outline on the KBE researcharea and the state of the art methodology KBD meth-ods are a specialization of KBE with focus on the designprocess An overview on of KBE evolution approachesmethodologies and future trends including the notionof KBE is treated in Reddy et al [16] who presented

copy 2016 CAD Solutions LLC httpwwwcadandacom

472 M SALCHNER ET AL

Figure 1 Automotive supplier challenge OEMs with differentCAD environments

an approach ldquoto carrying out the research to develop aweb-oriented function based parametric modeling sys-tem using KBErdquo and pointed the high future potential ofCase-based KBE application [9]

There is no specific definition of KBE in generalknowledge-based methods are used to capture andreuse engineering knowledge The slightly more detailednotion from Stokes ldquouse of advanced software technolo-gies to capture and reuse product and process knowl-edge in an integrated wayrdquo is often cited [20] The enor-mous potential of KBD regarding cost and time reductionand the simultaneous quality and efficiency improvementleads to a continuous development and research in thisarea [16] [10] [11] [23]

Some shortcomings because of considerable effort formaintenance and management of several KBD appli-cations within CAD environment or platform inde-pendent has been also been treaded in several litera-ture Sanya and Shehaba [17] identified the need ldquotostandardize the internal knowledge representation ofKBE applications and interfaces with product develop-ment solutions (ie PLM CAx)rdquo Therefore an ontologyframework for the aerospace sector was presented Themain idea was to decouple the knowledge model fromthe operating CAD system using standardized interfaceslike Extensible Markup Language (XML) Unified Mod-elling Language (UML) and Ontology Web Language(OWL) The OWL does not allow the implementation of

rule-based functionalities which requires the applicationof another language the Semantic Web Rule Language(SWRL) Further mentioned languages and interfacesare Common Logic Interchange Format (CLIF) Opera-tionalConceptualModelling Language (OCML) and JavaExpert SystemShell (JESS) To couple this knowledge sys-tem with suitable user interfaces and visualization toolsfurther APIs are required In that approach the transferto an IDE Platform ndash Eclipse [5] ndash is carried out by theJena API and OWL-API Finally the geometrical visual-ization is performed by a standardized 3D API which isbased on Java The implementation of CAD related func-tionalities is not explicit mention in this work Further-more the mix of different programming and modelinglanguages is quite challenging Nevertheless this paperpresents a full platform independent approach [17]

A new different approach presented in this paperuses a single programming ndash andmodeling language andsupports various IT solutions including CAD systems bydifferent satellites (Figure 5) In contrast to Sanya andShehaba [17] this proposed system is limited toMicrosoftWindows platform [13] which does not constitute a sig-nificant disadvantage in the automotive sector

Figure 2 illustrates a principle chart of the differ-ent KBD levels The implementation and developmentof design methods can only be efficient and successfulif group-wide directives are clearly defined This com-prises a project independent overall process design andautomation directive The workflow process includingthe release change and quality management is in com-mon regulated and handled by a product data manage-ment system like Teamcenter [18] The definition of partrespectively assembly design within a CAD system is dif-ferent due to numerous design possibilities and workingmethods of the engineers In addition the inescapableverification is quite challenging The definition and han-dling of required global directives for one single CADsystem is state of the art and mostly supported by dif-ferent integrated design-related checkers like Q-Checker[22] for CATIA [4] or Check Mate in NX [18] A listof necessary automation guidelines for the managementof KBD is mentioned in Figure 2 This includes forexample the definition of the development environmentprogramming language structure rollout method andfurther framework conditions

The nethermost KBDmethods shown on the left sidein Figure 2 are non-parametricmodels This implies thatthe engineer creates for example a specific CAD modelwith given dimensions whereby a geometrical variationis not possible afterwards In such a case the completemodel has to be built up all over again

The next level is based on parametric-associativedesignmethods which correspond to the current state of

COMPUTER-AIDED DESIGN amp APPLICATIONS 473

Figure 2 Knowledge-based design levels according to [8]

the art in automotive engineering processes In this casethe exemplary CADmodel is designed with variable val-ues These values can either be directly integrated in thegeometry definition like a length constraint in a sketchor they can be stored in a feature definition itself Anotherpossibility is the definition of separate parameters decou-pled from the geometry which are stored in the desiredCAD component This allows an efficient design adap-tion by changing the parameter values in the CAD systemor within an external file Parameters can also be usedfor the definition of characteristics such as materialstextures tolerances and other relevant information [8]

Relational models define the third level in Figure 2which are based on parametric models and include fur-ther functionalities In common an interaction betweenCAD elements like sketches features bodies or evenparts and assemblies is carried out by use of ruleschecks or loops This method corresponds to the nexthigher level the CAD integrated automationmethods InCATIA relational design can be carried out without theuse of any internal scripting or programming languageIn NX a definition of feature based rules requires the useof an integrated knowledge application called Knowl-edge Fusion (KF) which requires basic scripting know-how The different levels and functionalities of integratedmethods are explained in the following subsections

CAD based automation methods mainly differ fromintegrated methods due to the use of external ldquointegrateddevelopment environmentrdquo (IDE) likeVisual Studio [14]or Eclipse [5] This allows the development of externalautomation tools with

bull customized graphical user interfaces (GUI)bull use or implementation of external applications (eg

Excel Word etc)

bull development of programming library based on theobject oriented programming (OOP) principle

bull CAD independent scripting languagebull consistent development environment andbull simultaneous application development

Furthermore development-related know-how is nolonger stored in the CAD system itself but in specificapplications or even coupled databases and thereforeimproved accessible for other engineering disciplines andemployees

Commercial KBE software packages like KF [18]CATIA Knowledgeware [4] CADEC Works [1] KBE-Works [9] or TactonWorks Engineer [21] can be assignedto the category of CAD integrated automation methodsTherefore these tools does not meet the requirementsand are not explained in detail

The highest level of KBD methods is representedin cross-over methods and tools which support differ-ent CAD solutions within the company Process relatedknow-how is completely decoupled from the CAD sys-tem and made for anyone to disposal The initial devel-opment effort for such automation tools is quite highEspecially the definition of a comprehensive multi-CADenvironment requires a detailed consideration of differ-ent aspects One main problem to face is the data trans-fer via inconsistent application programming interfacesof the different CAD systems It is a big challenge toserve all systems concerning design knowledge-basedmethods and automation strategies In this context thepresent paper introduces a new approach for the efficientdevelopment of a multi-CAD KBD environment underconsideration of the prior problem statements

The presented approach is viewed from three dif-ferent developer perspectives The topmost developer

474 M SALCHNER ET AL

called KBD-Expert is responsible for the design main-tenance and enhancement of the abstract multi-CAD-framework This working range considers the mentionedoverall directives and the principle layout of the KBDenvironment ndash see section 3 The next development levelconcentrates on the KBD-Engineer who is responsiblefor the development of selected applications supportingdesign The implemented functionalities strongly dependon the specific task and do not consequently require amulti-CAD realization in the early phase Neverthelessthe KBD-Engineer is assisted by a superordinate frame-work ndash see section 4 The last but not least level theCAD-User is supported by the different KBD tools inhis work to raise productivity and quality of the entiredesign process The KBD-User simultaneously is the per-son which consolidates tasks of daily design work forpotentially new KBD-applications to be developed

Figure 3 shows the different knowledge-based automa-tion levels regarding complexity and functionality Therequired experience for the common development ofKBD tools is schematically illustrated by line num-ber one Due to the implementation of the multi-CADapproach the required programming effort of the KBD-Engineer can be dropped to a lower level ndash line twoAnother advantage of the presented high level KBDapproach can be seen in line threeDue to the use of appli-cation programming interfaces process or applicationrelated know-how is no longer stored in the CAD systembut rather in the application or a centralized databaseitself Thereby a crossover knowledge distribution andmanagement can be reached

The group on the left side in Figure 3 called basic KBDtools uses internal tools and functionalities of aCAD sys-tem This includes parameters formulas spreadsheetsrules checks loops templates and user defined featuresOther tools of this group are CAD based recorders and

integrated programming languages The provided func-tionalities of these internal tools strongly depend on theCAD solution and the available license package The nexthigher level uses the CAD based and integrated devel-opment environment This group uses the CAD APIand allows a partially decoupled KBD development ndashdepending on the CAD system Therefore an effectivemulti-CAD strategy cannot be reached out with themen-tioned tools The development of an efficient overarchingstrategy can only be achieved by the highest level ndash aCADindependent development environment

3 Multi-CAD approach

In contrast to the general understanding of a multi-CADenvironment the present strategy represents an unre-stricted method Functionalities in commercial availableCAD systems are restricted to the provision of neu-tral geometry data interfaces for the exchange of CADmodels eg STEP IGES STL These converters allowan exchange of geometry between different CAD for-mats but there is no possibility to handle intelligentknowledge-based software modules eg templates forautomated geometry creation The presented approachprovides a smart development and implementation ofmulti-CAD capable knowledge-based design methods[4] [15] [18]

31 Development process

Figure 4 illustrates the developed process model for thelayout of the novel strategy The process is divided intothree main layers The iterative process covers both thehorizontal ndash layer internal ndash and vertical ndash across layersndash interactions

Figure 3 Levels of KBD automation

COMPUTER-AIDED DESIGN amp APPLICATIONS 475

Figure 4 Development process of multi-CAD environment

The first step includes the conceptual layout of amulti-CAD automation strategy illustrated at the bottom linein Figure 4 By an exemplary application the strategyhas been used to integrate the CAD software packagesCATIA V5 and Siemens NX but the general approachmay be suitable for other CAD software too This appli-cation states the basis for the subsequent developmentimplementation and testing procedure Therefore theexemplary application is designed to cover a wide rangeof automation methods taking into account variousnamespaces classes and functions of the provided pro-gramming interfaces In case of Siemens NX there arefour main libraries available whereby the CATIA API isstructuredmore widespread (more than eighty libraries)After the validation of this concept the next developmentstep focuses on a multi-CAD release strategy ndash layer twoThis treats the application compatibility for oneCADsys-tem including its chronological releases After the testingand implementation cycle of this layer both the multi-CAD - and the multi-Release concept are transferredto the final development layer This development levelconsiders a strategy for the reuse and protection of theoverall method This entire development process resultsin a final multi-CAD environment as illustrated in thetop layer

32 Overview of theMulti-CAD-framework

The iterative development process explained in theprevious section consequently leads to a multi-CAD-Framework This subsection explains the developedframework and the programming libraries in view ofa KBD-Expert The framework is based on the IDE ofVisual Studio and uses the programming language VisualBasic [14] The decision criteria for this development

environment was mentioned in the previous section andthe criteria for the language-related decision can be foundin section 4

Figure 5 illustrates the environment of the presentapproach including the internal main modules and theirdocked satellites The abstract methods which coveruniversal functions are stored inside the frameworkThis includes ldquoCAD baserdquo ldquoUtilitiesrdquo ldquoInfrastructurerdquoand ldquoSettingsrdquo classes These base classes are managedby the KBD-Expert and define fundamental function-alities of the docked satellites The development andimplementation of these objects are not explained indetail in this paper except the ldquoCAD baserdquo class Thissuperordinate functional definition allows docking of dif-ferent applications in an efficient way and grants theconsequent enhancement of the framework The KBD-Engineer implements the framework in the developmentprocess of a new KBD-Tool The developer can accessndash on require ndash all implemented methods via the novelframework The final KBD-Tool has to be analyzed bythe KBD-Expert regarding their implemented function-alities In the next step the KBD-Expert performs anabstraction of the functionalities and defines the ade-quate implementation of new base functions Thus thebase functionality rises with each single application andexpands the predefined functions for future projects

The CAD related assemblies are illustrated at the bot-tom of Figure 5 by Siemensrsquo NX Dassaultrsquos CATIA V5and any additional CAD system ndash like PTC Creo Ele-ments [15] Furthermore third party applications likeExcel Acrobat or Matlab are also supported by the inter-face Different PDM systems databases and finally sin-gle specialized KBD tools are optional satellites whichcan be implemented in the multi-CAD-Framework Thepredefined overall structure grants the integrity and the

476 M SALCHNER ET AL

Figure 5 Multi-CAD-Framework

intuitive working principle for all KBD-Engineers Fur-thermore the environment includes a defined strategyfor serviceability reuse as well as protection and licens-ing aspects

The database interface gives the developer the abil-ity to use different database functionalities This includesthe ease creation of user defined local or server databasesand allows quick storage and reuse of application relatedinformation Furthermore database-applications pro-vide useful functionalities for listing sorting or search-ing of data and enable a dynamic application layout

The overall implementation expands the functionscope enormously and enables an efficient interactionbetween CAD and third party tools Exemplary inter-disciplinary KBD tools are geometry-based analysis andoptimization routines eg specific suspension optimiza-tion For example this enables a transfer of main sus-pension points which are defined and stored in theCAD system to a Matlab optimization routine The rou-tine performs an optimization with regard to occurringforces the maximum possible steering angle or diveangle The results are displayed in the CAD system andthe engineer can adapt the design model This appli-cation is exemplary illustrated as KBD-Tool 1 wherebythe KBD-Tool 2 represents a separate exemplary applica-tion shown in Figure 5 Each implemented applicationexpands the framework and enables a continuous andefficient enhancement

33 Realization ofMulti-CAD-framework

Figure 6 gives a more detailed overview of the devel-oped environment concentrating on the multi-CAD

environment In contrast to Figure 5 this representationcontains no global assignment but allows amore detailedexplanation of the developed environment

At the bottom of Figure 6 CAD systems like CATIA[4] and NX [18] are exemplarily illustrated with differ-ent releases The developed multi-CAD interface imple-ments the inconsistent application programming inter-faces of the diversified CAD systems see sub section43 The interface definition is stored in the multi-CAD-Framework and contains abstract methods for the imple-mentation of CAD systems called ldquoCAD baserdquo There-fore each CAD system and release fulfills the same basicfunctionalities like create part create picture get prop-erties or close CAD application The interface allows asimultaneous sequential or single execution of the devel-oped KBD tool within the different CAD systems Inaddition different project and release settings are sup-ported

The ldquoInfrastructurerdquo area covers basic functions andmethods of the operating system Microsoft Windows[13] Exemplary elements are folder and data manage-ment Furthermore it offers functionalities that allowthe handling of all Windows based applications Thisincludes maximize minimize or hide functions etcand an integrated docking class This method allowsthe implementation docking of any application intothe developed graphical user interface The user inter-face covers all required information and the KBD-User is not forced to switch between different win-dows The standardized layout of the GUI and thementioned functionality is also implemented in thislibrary and supports the KBD-User and KBD-Engineerequally

COMPUTER-AIDED DESIGN amp APPLICATIONS 477

Figure 6 Multi-CAD automation environment

The ldquoCADbaserdquo class initializes all CAD related devel-oped functions andmethods This library does not imple-ment the functionality itself but it defines them Eachsingle implemented CAD system is a derived class andis forced to implement the defined functions Relativelysimple CAD basic functions like the creation of a pointa line or a feature are not implemented in this levelbecause these CAD related functions are supported bythe API and it is not useful to reproduce all of themIn contrast it includes a collection of commonly usedand know-how based functions On basis of an objectoriented programming technique it is possible to forcethe developer to implement the designed function forall required CAD solutions One example of application

is a function for capturing of images The code for theimage creation is not challenging but to adjust a wholeenvironment to the defined settings can be very com-plex The implemented function performs the followingactions in addition to the passed parameters Perspec-tive position zoom visibility of constraints annotationstreeview components change the color of parts surfacesor even the entire assembly

The explained framework can be implemented andused as references by each KBD-Engineer in the develop-ment environment of Visual Studio The depicted satel-lites in Figure 5 are standalone libraries whereby anindividual implementation is enabled Some applicationsdo not need a database - or the CATIA interface and

478 M SALCHNER ET AL

therefore an implementation of these libraries is not effec-tive The current framework comprises the followingmain libraries

bull Multi-CAD-Frameworkbull Dassault CATIAV5bull Siemens NXbull Third party application ndash eg Excelbull Firebird databases [7]

Additional functionalities with numerous overload-ing methods are stored in a separate snippet libraryThey provide a large amount of different input param-eters regarding to their use An exemplary CAD relatedfunction is the ldquoCreatePointrdquo method The design of apoint can be done in various ways - by coordinateson a line a surface a body or as a center point of acircle Twenty overloading methods in NX are avail-able whereby each of them uses different NX relatedobjects which in turn are overloaded Other exemplarymethods are folder selection file selection ndash or savemethods which strongly depend on the current require-ments The snippets are implemented in the graphicalinterface of Visual Studio and can be easily accessedThe snippets are based on XML and copy the storedsource code elements into the current project The KBD-Engineer can customize the scripting lines to the currentrequirements The developed snippet library uses thesame structure as the framework library and grants anintuitive use

4 Multi-CAD developer

The previous section explained the entire framework ofthe multi-CAD approach With the target of an effec-tive use the framework design was made with focus onan intuitive usage and nomenclature To ensure stabil-ity and quality of the framework some programmingrules have to be considered Furthermore the imple-mentation effort for the KBD-Expert mentioned in subsection 32 can be reduced to a minimum This sectiontreats the defined development steps for the design of newmulti-CAD-Framework applications

41 Programming directives

This subsection focuses on programming fundamentalswhich are required for the understanding and imple-mentation of the multi-CAD approach Common KBDautomation tools are developed for one unique task byone single developer [3] [10ndash12] [16] To keep it sim-ple these tools are often coded in the so-called ldquoSpaghetticoderdquo This means that the code is unstructured and the

application of user defined objects classes or instances islimited Furthermore access modifiers eg public pri-vate protected are not used consequently and the codeflow cannot be traced - it is like a bowl of spaghettiThis way of coding seems to be the easiest way of pro-gramming but with increasing complexity and multipledevelopers it causes a lot of problems Consequently animplementation in the explained framework is impossi-ble which requires the application of the so-called objectoriented programming (OOP) approach [14]

The principle of OOP bases on the definition ofuser defined objects and a structured code flow Theobjects contain different fields methods and propertiesas shown in Figure 7 The field group contains userdefined variables which should be only used internalThe properties provide external functionalities whichcan be accessed from outside The mentioned accessmodifiers are indicated as small symbols beside the illus-trated elements These modifiers are important for astructured code flow and allow the protection of selectedattributes

This means that specific attributes can only bechanged under certain conditions in contrast to publicattributes The main principle structure is explained by aCAD based example The base class ndash ldquoCADApplicationrdquohas twoderived classes ldquoCADNXrdquo and ldquoCADCATIAV5rdquoas shown in Figure 7 The base class defines all commonfunctionalities where the program code does not differThe modifier ldquoMustInheritrdquo defines that the creation ofa direct instance from this class is restricted The illus-trated ldquoCADApplicationrdquo class contains two fields twoproperties and five methods

The ldquoSetCADApplicationToForegroundrdquo and the con-structor sub ldquoNewrdquo are base methods which are notrelated to a specific CAD system The source code ofthese functions is implemented directly in the ldquoCADAp-plicationrdquo class The two remaining methods ldquoCADAp-plicationReadyrdquo and ldquoOpenPartrdquo are CAD system relatedfunctions and separately coded in the derived classesThey bear the modifier ldquoMustOverriderdquo which meansthat all derived classes have to implement them Ofcourse derived classes can contain additional propertiesand methods like the ldquoCADNXrdquo class

The ldquoCADInfosrdquo class is a user defined class with CADrelated attributes like ldquoVersionrdquo ldquoStartUpPathrdquo or ldquoTyperdquodepicted on the right in Figure 7 The attributes aredeclared as public elements there is no sufficient pro-tection and secure access management Under consid-eration that each ldquoCADApplicationrdquo instance comprisesthe private variable ldquom_CADInfosrdquo which represents aninstance of the ldquoCADInfosrdquo class the related informationcannot be accessed The ldquoCADInfosrdquo property is declaredas ldquoReadOnlyrdquo and so the relevant ldquoCADInfosrdquo can only

COMPUTER-AIDED DESIGN amp APPLICATIONS 479

Figure 7 Exemplary structure of the ldquoCADApplicationrdquo class

be adapted inside the ldquoCADApplicationrdquo class The initialdefinition of these variables is done by the initializationprocess of a new ldquoCADCATIAV5rdquo or ldquoCADNXrdquo object

Considering the multi-CAD-Framework structureexplained in section 3 the ldquoCADApplicationrdquo class isstored in the framework itself whereby the derivedclasses are located in the selectedCAD satellites To grantthat each KBD-Engineer receives the required informa-tion XML comments for the documentation of each sin-gle property function or sub as shown in the Figure 8 aremandatory

Figure 8 Exemplary XML comment

42 Structured programming

Based on the mentioned programming fundamentalsthis section concentrates on the developed structural

480 M SALCHNER ET AL

programming guideline which is an essential part ofthe multi-CAD strategy Each multi-CAD automationapplication should follow the main rules to grant

bull Comprehensibility for other developersbull Simplified adaption and enhancementbull Release handlingbull Enable the multi-CAD approachbull Handle API changes

Figure 9 illustrates the principle structure of a multi-CAD application The application consists of at least twodifferent projects theMain - and the Application Projectwhereby theApplication Project is referenced to theMainProject The latter can access the defined methods andproperties of the Application Project Additional feasibleprojects could be databases or third party projects Theassembly class in the Main Project is responsible for allGUI related calls events and also for the separation ofdifferent CAD systems

This distinction is carried out by the instantiation ofdifferent application assemblies For example to supportCATIA and NX within this application there has to be

one ldquoNXAssemblyrdquo and one ldquoCATIAAssemblyrdquo instanceThese derived classes inherit the base class ldquoApplica-tionAssemblyrdquo and follow the ldquoCADApplicationrdquo - prin-ciple shown in the previous section The required multi-CAD initialization functions are called from this classThe graphical user interfaces often change due to thedevelopment process or in case of different customersTherefore a codding in GUI elements should be avoidedIt ismuchmore efficient to utilize user defined events andhandle them in the assembly class Last but not least theMain Project handles the exception events the customhelp file and optional license functions This structureallows an eased adaption and enhancement ofmain func-tionalities of the program by any KBD-Engineer Differ-ent application releases for various customers with differ-ent functionalities can be compiled in an efficient way

The main development rules for a multi-CAD appli-cation are

(1) At least two separate projects ndash Main and Applica-tion

(2) No CAD or know-how related source code in theMain Project

Figure 9 Structured programming layout for multi-CAD applications

COMPUTER-AIDED DESIGN amp APPLICATIONS 481

(3) No code elements in the GUI(4) CAD system separation in the Main Project(5) All calls from the project related assembly class(6) CAD release separation in Application Assembly

class

The Application Project contains all required func-tions for the developed application itself This includesuniversal base classes and derived CAD related classesas shown in Figure 9 Of course this project can alsoinclude CAD independent classes for general functional-ities like the creation of folders files or other third partyapplications

It is up to the developer to decide when a separateproject (eg third party project) is created or not In gen-eral it is advisable to create a new project as soon asan additional API is used (eg Excel) The code separa-tion for different CAD releases caused by API changesshould be handled in the concerning CAD assembly asillustrated in 10

The Figure 10 shows the three different classesndashldquoNXAssemblyrdquo ldquoBOMNXrdquo and ldquoCADItemNXrdquo- includ-ing some general code elements The ldquoGetTreerdquo prop-erty of the ldquoNXAssemblyrdquo is the starting point wherea separation of NX releases is carried out ndash NX 75and NX 85 The optimum source code on the left sidewould call the release dependent methods from hereand also release independent functions like ldquoListCA-DItemsrdquo Unfortunately this represents a major effort in

the practical development The application is in commondeveloped for one single release and therefore the codestructure is defined in a logical way ndash as shown onthe right side The implementation of further releasesis added as needed later From this stage of develop-ment the KBD-Engineer is confronted with possible APIdifferences within the CAD releases In the example inFigure 10 the code differs in a deep layer of the pro-gram structure The release separation is required in theldquom_GetItemAttributesrdquo sub within the ldquoCADItemNXrdquoclass ndash at the bottom The developer has to change theentire structure and methods to perform a release dis-tinction in the ldquoNXAssemblyrdquo Therefore identical basiccode elements have to be duplicated for small differ-ences within some code lines This is not purposefulproduces unnecessary code and the effort increases inmaintenance modifications and handling of program-ming errors Experienced developers can estimate thedifferences already in the run and thus implement anappropriate structure

To avoid the mentioned structural changes in case ofsmall API differences but to allow later code trackinga keyword eg ldquoCADReleaserdquo is defined This keywordis used as function or property argument for each singlemethod which requires a separation of CAD releases

43 CADAutomation interfaces

APIs are based on core algorithms of theCAD system andallow the definition and development ofKBDautomation

Figure 10 API handling

482 M SALCHNER ET AL

routines The functional scope of the automation rou-tines is only limited by the provided CAD-API wherebythis functionality is often coupled with the used pro-gramming language and available license packages Thecommon denominator of different CAD systems regard-ing functionality costs and development within the pre-sented approach is stated by the NET framework It is asoftware framework developed by Microsoft since 2002which supports different coding languages like VisualBasic (VB) C or J Due to the fact that many CADsolutions deliver integratedVB programming editors andsimultaneously provide VBNET the multi-CAD strat-egy is developed based on this programming languageThe main disadvantage compared to programming lan-guages like C is a lack of code protection Neverthelessthere are some options to protect the code in an efficientand sufficient way Considering that todayrsquos most KBDtools in automotive industry are specific in-house appli-cations the protection of knowledge plays an importantrole [4] [14] [15] [18]

CAD related programming libraries can be providedin two species The first one includes dynamic linklibraries (dlls) which can be added as stand-alone ref-erences to the desired programming environment ndash NXThe second possibility is to use registered ActiveX ele-ments which are based on the Component ObjectModel(COM) standard - CATIA In this case the references arenot linked in a static way but based on windows registryentries The required libraries are loaded at runtime bydefault either from the startup path (dlls) or by use ofthe current registered COM element This faces a prob-lematic situation in case of different CAD releases Thecode libraries of different CAD releases or versions havethe same nomenclature and therefore a specific linkingmethod was developed

The mentioned problem can be handled in differ-ent ways During the iterative development processexplained in section 31 a large amount of different con-cepts has been worked out The result which fits all men-tioned requirements under consideration of the entirestrategy is explained in the next lines

The solution bypasses the windows registry entriesand allows a much more efficient realization of multi-release capability At startup of the initialization processthe current running CAD process is linked Based on thecurrent CAD system the required libraries are automati-cally created In the final step the libraries are loaded atruntime This method fulfills all requirements consider-ing the multi-CAD approach

The virtual connection between the KBD tool and theCAD system is carried out by a connection principlewhich is also defined by the API of the CAD systemCATIA for example is based on the Component Object

Model (COM)ofMicrosoft and therefore the connectionto the actual active CATIA window is reached out due tothe registered application name ndash ldquoCATIAApplicationrdquoThus different CATIA releases cannot be differenti-ated and therefore multiple window applications are notallowed The API of NX on the other hand is not basedon the COM strategy In this case the connection isperformed due to the Transmission Control Protocol Internet Protocol (TCPIP) by use of a server and a clientapplication whereby both can be applied on one singlecomputer [4] [14] [18]

ThementionedCAD initialization process and the dif-ferent connection methods are implemented within themulti-CAD-Framework accessible for KDB-Developer

5 Conclusions

The presented approach provides a platform for theefficient development of KBD applications for multi-CAD environments This includes amulti-CAD interfaceand different software modules that manage inconsis-tent CAD APIs capture knowledge provide reusablefunctions and libraries and have an enhanced serviceand error handling In contrast to common approacheswhere one single KBD tool has to be released sepa-rately for each single CAD-system and release this novelstrategy allows a standalone-releasing of different KBDtools This simplifies company-internal roll out proce-dure update management and administration Of coursethis strategy is part of the framework and uses the men-tionedFirebird database as application storage userman-agement and administration Furthermore it plays animportant role regarding the protection of the applica-tion and consequently of the knowledge On the otherhand the change or update management in view of theKBD-Engineer is therefore optimized because of a cen-tralized project management In this way the KBD-Useris not forced to execute different application files and thestandardized consistent GUI of all KBD tools minimizesthe training period significantly Referring to the start-ing statement concerning future trends of web-based andcase-based applications the presented framework allowsthe creation of four different solutions

bull Windows Form Application [14]bull Windows Console Application [14]bull Windows Service Application [14]bull Web Apps with ASPNET [14]

In the next months the approach is applied in a broadway by implementation of the new API of CATIA V6 [4]and additional open source CAD viewing tools Further-more different open source geometrical libraries will be

COMPUTER-AIDED DESIGN amp APPLICATIONS 483

investigated and the open xml software development kit[14] will be implemented In this way the functionalitywill grow and the platform - and vendor dependency willdecrease step by step

Considering multiply effects because of a large num-ber of KBD tools used in automotive industry a sig-nificant time reduction in the application of complexCAD-environment can be achieved

ORCID

Markus Salchner httporcidorg0000-0001-6379-0562Severin Stadler httporcidorg0000-0001-9867-0552Mario Hirz httporcidorg0000-0002-4502-4255

References

[1] CADEC Works httpwwwcadecin access date 2015-04-08

[2] Catic A Malmqvist J Towards integration of KBE andPLM International Conference on Engineering Design2007

[3] Chapman CB Pinfold M The application of a knowl-edge based engineering approach to the rapid design andanalysis of an automotive structure Advances in Engi-neering Software 32 2001 903ndash912 httpdxdoiorg101016S0965-9978(01)00041-2

[4] Dassault Systemes httpwww3dscom access date2015-01-27

[5] Eclipse httpseclipseorg access date 2015-01-27[6] Eigner M Stelzer R Product Lifecycle Management

Ein Leitfaden fuumlr Product Development und Life CycleManagement Springer 2009 ISBN 9783540443735httpdxdoiorg101007b93672

[7] Firebird httpwwwfirebirdsqlorg access date 2015-04-13

[8] Hirz M Dietrich W Gfrerrer A Lang J Inte-grated computer-aided design in automotive develop-ment development processes geometric fundamentalsmethods of CAD knowledge-based engineering datamanagement Springer 2013 ISBN 9783642119392httpdxdoiorg101007978-3-642-11940-8

[9] KBEWorks httpwwwvisionkbecom access date 2015-04-08

[10] Lin B-T Chan C-K Wang J-C A knowledge-basedparametric design system for drawing dies InternationalJournal of Advanced Manufacturing Technology 362008 671ndash680 httpdxdoiorg101007s00170-006-0882-y

[11] Lin B-T Chang M-R Huang H-L Liu C-YComputer-aided structural design of drawing dies forstamping processes based on functional features Interna-tional Journal of Advanced Manufacturing Technology42 2009 1140ndash1152 httpdxdoiorg101007s00170-008-1670-7

[12] Ma QC Liu XW Review of Knowledge Based Engi-neering with PLM Applied Mechanics and Materials10ndash12 2007 127ndash130 httpdxdoiorg104028wwwscientificnetAMM10-12127

[13] Microsoft Developer Network httpmsdnmicrosoftcomde-atdn308572aspx

[14] Microsoft httpmicrosoftcom access date 2015-01-27[15] PTC httpwwwptccom access date 2015-01-27[16] Reddy E J Sridhar C N V Rangadu V P Knowl-

edge Based Engineering Notion Approaches and FutureTrends American Journal of Intelligent Systems 5(1)2015 1ndash17 httpdxdoiorg105923jajis2015050101

[17] Siemens PLM httpwwwplmautomationsiemenscomaccess date 2015-01-27

[18] Sanya IO Shehab EM An ontology frameworkfor developing platform-independent knowledge-basedengineering systems in the aerospace industry Inter-national Journal of Production Research 52 20146192ndash6215 httpdxdoiorg101080002075432014919422

[19] Skarka W Application of MOKA methodology in gen-erative model creation using CATIA Engineering Appli-cations of Artificial Intelligence 20 2007 677ndash690httpdxdoiorg101016jengappai200611019

[20] Stokes M Managing Engineering Knowledge ndash MOKAMethodology for Knowledge Based Engineering Appli-cations Professional Engineering Publishing LimitedASME Press 2001

[21] Tacton httpwwwtactoncom access date 2015-04-08[22] Transcat-PLM httpswwwtranscat-plmcom access

date 2015-01-27[23] Van Der Laan AH Van Tooren MJL Parametric

modeling of movables for structural analysis Journal ofAircraft 42 2005 1606ndash1614 httpdxdoiorg10251419764

  • 1 Introduction
  • 2 Knowledge-based design methods
  • 3 Multi-CAD approach
    • 31 Development process
    • 32 Overview of the Multi-CAD-framework
    • 33 Realization of Multi-CAD-framework
      • 4 Multi-CAD developer
        • 41 Programming directives
        • 42 Structured programming
        • 43 CAD Automation interfaces
          • 5 Conclusions
          • ORCID
          • References
Page 2: Multi-CAD approach for knowledge-based design methods4)_2016_471-483.pdf · universal functions, are stored inside the framework. This includes “CAD base”, “Utilities”, “Infrastructure”

472 M SALCHNER ET AL

Figure 1 Automotive supplier challenge OEMs with differentCAD environments

an approach ldquoto carrying out the research to develop aweb-oriented function based parametric modeling sys-tem using KBErdquo and pointed the high future potential ofCase-based KBE application [9]

There is no specific definition of KBE in generalknowledge-based methods are used to capture andreuse engineering knowledge The slightly more detailednotion from Stokes ldquouse of advanced software technolo-gies to capture and reuse product and process knowl-edge in an integrated wayrdquo is often cited [20] The enor-mous potential of KBD regarding cost and time reductionand the simultaneous quality and efficiency improvementleads to a continuous development and research in thisarea [16] [10] [11] [23]

Some shortcomings because of considerable effort formaintenance and management of several KBD appli-cations within CAD environment or platform inde-pendent has been also been treaded in several litera-ture Sanya and Shehaba [17] identified the need ldquotostandardize the internal knowledge representation ofKBE applications and interfaces with product develop-ment solutions (ie PLM CAx)rdquo Therefore an ontologyframework for the aerospace sector was presented Themain idea was to decouple the knowledge model fromthe operating CAD system using standardized interfaceslike Extensible Markup Language (XML) Unified Mod-elling Language (UML) and Ontology Web Language(OWL) The OWL does not allow the implementation of

rule-based functionalities which requires the applicationof another language the Semantic Web Rule Language(SWRL) Further mentioned languages and interfacesare Common Logic Interchange Format (CLIF) Opera-tionalConceptualModelling Language (OCML) and JavaExpert SystemShell (JESS) To couple this knowledge sys-tem with suitable user interfaces and visualization toolsfurther APIs are required In that approach the transferto an IDE Platform ndash Eclipse [5] ndash is carried out by theJena API and OWL-API Finally the geometrical visual-ization is performed by a standardized 3D API which isbased on Java The implementation of CAD related func-tionalities is not explicit mention in this work Further-more the mix of different programming and modelinglanguages is quite challenging Nevertheless this paperpresents a full platform independent approach [17]

A new different approach presented in this paperuses a single programming ndash andmodeling language andsupports various IT solutions including CAD systems bydifferent satellites (Figure 5) In contrast to Sanya andShehaba [17] this proposed system is limited toMicrosoftWindows platform [13] which does not constitute a sig-nificant disadvantage in the automotive sector

Figure 2 illustrates a principle chart of the differ-ent KBD levels The implementation and developmentof design methods can only be efficient and successfulif group-wide directives are clearly defined This com-prises a project independent overall process design andautomation directive The workflow process includingthe release change and quality management is in com-mon regulated and handled by a product data manage-ment system like Teamcenter [18] The definition of partrespectively assembly design within a CAD system is dif-ferent due to numerous design possibilities and workingmethods of the engineers In addition the inescapableverification is quite challenging The definition and han-dling of required global directives for one single CADsystem is state of the art and mostly supported by dif-ferent integrated design-related checkers like Q-Checker[22] for CATIA [4] or Check Mate in NX [18] A listof necessary automation guidelines for the managementof KBD is mentioned in Figure 2 This includes forexample the definition of the development environmentprogramming language structure rollout method andfurther framework conditions

The nethermost KBDmethods shown on the left sidein Figure 2 are non-parametricmodels This implies thatthe engineer creates for example a specific CAD modelwith given dimensions whereby a geometrical variationis not possible afterwards In such a case the completemodel has to be built up all over again

The next level is based on parametric-associativedesignmethods which correspond to the current state of

COMPUTER-AIDED DESIGN amp APPLICATIONS 473

Figure 2 Knowledge-based design levels according to [8]

the art in automotive engineering processes In this casethe exemplary CADmodel is designed with variable val-ues These values can either be directly integrated in thegeometry definition like a length constraint in a sketchor they can be stored in a feature definition itself Anotherpossibility is the definition of separate parameters decou-pled from the geometry which are stored in the desiredCAD component This allows an efficient design adap-tion by changing the parameter values in the CAD systemor within an external file Parameters can also be usedfor the definition of characteristics such as materialstextures tolerances and other relevant information [8]

Relational models define the third level in Figure 2which are based on parametric models and include fur-ther functionalities In common an interaction betweenCAD elements like sketches features bodies or evenparts and assemblies is carried out by use of ruleschecks or loops This method corresponds to the nexthigher level the CAD integrated automationmethods InCATIA relational design can be carried out without theuse of any internal scripting or programming languageIn NX a definition of feature based rules requires the useof an integrated knowledge application called Knowl-edge Fusion (KF) which requires basic scripting know-how The different levels and functionalities of integratedmethods are explained in the following subsections

CAD based automation methods mainly differ fromintegrated methods due to the use of external ldquointegrateddevelopment environmentrdquo (IDE) likeVisual Studio [14]or Eclipse [5] This allows the development of externalautomation tools with

bull customized graphical user interfaces (GUI)bull use or implementation of external applications (eg

Excel Word etc)

bull development of programming library based on theobject oriented programming (OOP) principle

bull CAD independent scripting languagebull consistent development environment andbull simultaneous application development

Furthermore development-related know-how is nolonger stored in the CAD system itself but in specificapplications or even coupled databases and thereforeimproved accessible for other engineering disciplines andemployees

Commercial KBE software packages like KF [18]CATIA Knowledgeware [4] CADEC Works [1] KBE-Works [9] or TactonWorks Engineer [21] can be assignedto the category of CAD integrated automation methodsTherefore these tools does not meet the requirementsand are not explained in detail

The highest level of KBD methods is representedin cross-over methods and tools which support differ-ent CAD solutions within the company Process relatedknow-how is completely decoupled from the CAD sys-tem and made for anyone to disposal The initial devel-opment effort for such automation tools is quite highEspecially the definition of a comprehensive multi-CADenvironment requires a detailed consideration of differ-ent aspects One main problem to face is the data trans-fer via inconsistent application programming interfacesof the different CAD systems It is a big challenge toserve all systems concerning design knowledge-basedmethods and automation strategies In this context thepresent paper introduces a new approach for the efficientdevelopment of a multi-CAD KBD environment underconsideration of the prior problem statements

The presented approach is viewed from three dif-ferent developer perspectives The topmost developer

474 M SALCHNER ET AL

called KBD-Expert is responsible for the design main-tenance and enhancement of the abstract multi-CAD-framework This working range considers the mentionedoverall directives and the principle layout of the KBDenvironment ndash see section 3 The next development levelconcentrates on the KBD-Engineer who is responsiblefor the development of selected applications supportingdesign The implemented functionalities strongly dependon the specific task and do not consequently require amulti-CAD realization in the early phase Neverthelessthe KBD-Engineer is assisted by a superordinate frame-work ndash see section 4 The last but not least level theCAD-User is supported by the different KBD tools inhis work to raise productivity and quality of the entiredesign process The KBD-User simultaneously is the per-son which consolidates tasks of daily design work forpotentially new KBD-applications to be developed

Figure 3 shows the different knowledge-based automa-tion levels regarding complexity and functionality Therequired experience for the common development ofKBD tools is schematically illustrated by line num-ber one Due to the implementation of the multi-CADapproach the required programming effort of the KBD-Engineer can be dropped to a lower level ndash line twoAnother advantage of the presented high level KBDapproach can be seen in line threeDue to the use of appli-cation programming interfaces process or applicationrelated know-how is no longer stored in the CAD systembut rather in the application or a centralized databaseitself Thereby a crossover knowledge distribution andmanagement can be reached

The group on the left side in Figure 3 called basic KBDtools uses internal tools and functionalities of aCAD sys-tem This includes parameters formulas spreadsheetsrules checks loops templates and user defined featuresOther tools of this group are CAD based recorders and

integrated programming languages The provided func-tionalities of these internal tools strongly depend on theCAD solution and the available license package The nexthigher level uses the CAD based and integrated devel-opment environment This group uses the CAD APIand allows a partially decoupled KBD development ndashdepending on the CAD system Therefore an effectivemulti-CAD strategy cannot be reached out with themen-tioned tools The development of an efficient overarchingstrategy can only be achieved by the highest level ndash aCADindependent development environment

3 Multi-CAD approach

In contrast to the general understanding of a multi-CADenvironment the present strategy represents an unre-stricted method Functionalities in commercial availableCAD systems are restricted to the provision of neu-tral geometry data interfaces for the exchange of CADmodels eg STEP IGES STL These converters allowan exchange of geometry between different CAD for-mats but there is no possibility to handle intelligentknowledge-based software modules eg templates forautomated geometry creation The presented approachprovides a smart development and implementation ofmulti-CAD capable knowledge-based design methods[4] [15] [18]

31 Development process

Figure 4 illustrates the developed process model for thelayout of the novel strategy The process is divided intothree main layers The iterative process covers both thehorizontal ndash layer internal ndash and vertical ndash across layersndash interactions

Figure 3 Levels of KBD automation

COMPUTER-AIDED DESIGN amp APPLICATIONS 475

Figure 4 Development process of multi-CAD environment

The first step includes the conceptual layout of amulti-CAD automation strategy illustrated at the bottom linein Figure 4 By an exemplary application the strategyhas been used to integrate the CAD software packagesCATIA V5 and Siemens NX but the general approachmay be suitable for other CAD software too This appli-cation states the basis for the subsequent developmentimplementation and testing procedure Therefore theexemplary application is designed to cover a wide rangeof automation methods taking into account variousnamespaces classes and functions of the provided pro-gramming interfaces In case of Siemens NX there arefour main libraries available whereby the CATIA API isstructuredmore widespread (more than eighty libraries)After the validation of this concept the next developmentstep focuses on a multi-CAD release strategy ndash layer twoThis treats the application compatibility for oneCADsys-tem including its chronological releases After the testingand implementation cycle of this layer both the multi-CAD - and the multi-Release concept are transferredto the final development layer This development levelconsiders a strategy for the reuse and protection of theoverall method This entire development process resultsin a final multi-CAD environment as illustrated in thetop layer

32 Overview of theMulti-CAD-framework

The iterative development process explained in theprevious section consequently leads to a multi-CAD-Framework This subsection explains the developedframework and the programming libraries in view ofa KBD-Expert The framework is based on the IDE ofVisual Studio and uses the programming language VisualBasic [14] The decision criteria for this development

environment was mentioned in the previous section andthe criteria for the language-related decision can be foundin section 4

Figure 5 illustrates the environment of the presentapproach including the internal main modules and theirdocked satellites The abstract methods which coveruniversal functions are stored inside the frameworkThis includes ldquoCAD baserdquo ldquoUtilitiesrdquo ldquoInfrastructurerdquoand ldquoSettingsrdquo classes These base classes are managedby the KBD-Expert and define fundamental function-alities of the docked satellites The development andimplementation of these objects are not explained indetail in this paper except the ldquoCAD baserdquo class Thissuperordinate functional definition allows docking of dif-ferent applications in an efficient way and grants theconsequent enhancement of the framework The KBD-Engineer implements the framework in the developmentprocess of a new KBD-Tool The developer can accessndash on require ndash all implemented methods via the novelframework The final KBD-Tool has to be analyzed bythe KBD-Expert regarding their implemented function-alities In the next step the KBD-Expert performs anabstraction of the functionalities and defines the ade-quate implementation of new base functions Thus thebase functionality rises with each single application andexpands the predefined functions for future projects

The CAD related assemblies are illustrated at the bot-tom of Figure 5 by Siemensrsquo NX Dassaultrsquos CATIA V5and any additional CAD system ndash like PTC Creo Ele-ments [15] Furthermore third party applications likeExcel Acrobat or Matlab are also supported by the inter-face Different PDM systems databases and finally sin-gle specialized KBD tools are optional satellites whichcan be implemented in the multi-CAD-Framework Thepredefined overall structure grants the integrity and the

476 M SALCHNER ET AL

Figure 5 Multi-CAD-Framework

intuitive working principle for all KBD-Engineers Fur-thermore the environment includes a defined strategyfor serviceability reuse as well as protection and licens-ing aspects

The database interface gives the developer the abil-ity to use different database functionalities This includesthe ease creation of user defined local or server databasesand allows quick storage and reuse of application relatedinformation Furthermore database-applications pro-vide useful functionalities for listing sorting or search-ing of data and enable a dynamic application layout

The overall implementation expands the functionscope enormously and enables an efficient interactionbetween CAD and third party tools Exemplary inter-disciplinary KBD tools are geometry-based analysis andoptimization routines eg specific suspension optimiza-tion For example this enables a transfer of main sus-pension points which are defined and stored in theCAD system to a Matlab optimization routine The rou-tine performs an optimization with regard to occurringforces the maximum possible steering angle or diveangle The results are displayed in the CAD system andthe engineer can adapt the design model This appli-cation is exemplary illustrated as KBD-Tool 1 wherebythe KBD-Tool 2 represents a separate exemplary applica-tion shown in Figure 5 Each implemented applicationexpands the framework and enables a continuous andefficient enhancement

33 Realization ofMulti-CAD-framework

Figure 6 gives a more detailed overview of the devel-oped environment concentrating on the multi-CAD

environment In contrast to Figure 5 this representationcontains no global assignment but allows amore detailedexplanation of the developed environment

At the bottom of Figure 6 CAD systems like CATIA[4] and NX [18] are exemplarily illustrated with differ-ent releases The developed multi-CAD interface imple-ments the inconsistent application programming inter-faces of the diversified CAD systems see sub section43 The interface definition is stored in the multi-CAD-Framework and contains abstract methods for the imple-mentation of CAD systems called ldquoCAD baserdquo There-fore each CAD system and release fulfills the same basicfunctionalities like create part create picture get prop-erties or close CAD application The interface allows asimultaneous sequential or single execution of the devel-oped KBD tool within the different CAD systems Inaddition different project and release settings are sup-ported

The ldquoInfrastructurerdquo area covers basic functions andmethods of the operating system Microsoft Windows[13] Exemplary elements are folder and data manage-ment Furthermore it offers functionalities that allowthe handling of all Windows based applications Thisincludes maximize minimize or hide functions etcand an integrated docking class This method allowsthe implementation docking of any application intothe developed graphical user interface The user inter-face covers all required information and the KBD-User is not forced to switch between different win-dows The standardized layout of the GUI and thementioned functionality is also implemented in thislibrary and supports the KBD-User and KBD-Engineerequally

COMPUTER-AIDED DESIGN amp APPLICATIONS 477

Figure 6 Multi-CAD automation environment

The ldquoCADbaserdquo class initializes all CAD related devel-oped functions andmethods This library does not imple-ment the functionality itself but it defines them Eachsingle implemented CAD system is a derived class andis forced to implement the defined functions Relativelysimple CAD basic functions like the creation of a pointa line or a feature are not implemented in this levelbecause these CAD related functions are supported bythe API and it is not useful to reproduce all of themIn contrast it includes a collection of commonly usedand know-how based functions On basis of an objectoriented programming technique it is possible to forcethe developer to implement the designed function forall required CAD solutions One example of application

is a function for capturing of images The code for theimage creation is not challenging but to adjust a wholeenvironment to the defined settings can be very com-plex The implemented function performs the followingactions in addition to the passed parameters Perspec-tive position zoom visibility of constraints annotationstreeview components change the color of parts surfacesor even the entire assembly

The explained framework can be implemented andused as references by each KBD-Engineer in the develop-ment environment of Visual Studio The depicted satel-lites in Figure 5 are standalone libraries whereby anindividual implementation is enabled Some applicationsdo not need a database - or the CATIA interface and

478 M SALCHNER ET AL

therefore an implementation of these libraries is not effec-tive The current framework comprises the followingmain libraries

bull Multi-CAD-Frameworkbull Dassault CATIAV5bull Siemens NXbull Third party application ndash eg Excelbull Firebird databases [7]

Additional functionalities with numerous overload-ing methods are stored in a separate snippet libraryThey provide a large amount of different input param-eters regarding to their use An exemplary CAD relatedfunction is the ldquoCreatePointrdquo method The design of apoint can be done in various ways - by coordinateson a line a surface a body or as a center point of acircle Twenty overloading methods in NX are avail-able whereby each of them uses different NX relatedobjects which in turn are overloaded Other exemplarymethods are folder selection file selection ndash or savemethods which strongly depend on the current require-ments The snippets are implemented in the graphicalinterface of Visual Studio and can be easily accessedThe snippets are based on XML and copy the storedsource code elements into the current project The KBD-Engineer can customize the scripting lines to the currentrequirements The developed snippet library uses thesame structure as the framework library and grants anintuitive use

4 Multi-CAD developer

The previous section explained the entire framework ofthe multi-CAD approach With the target of an effec-tive use the framework design was made with focus onan intuitive usage and nomenclature To ensure stabil-ity and quality of the framework some programmingrules have to be considered Furthermore the imple-mentation effort for the KBD-Expert mentioned in subsection 32 can be reduced to a minimum This sectiontreats the defined development steps for the design of newmulti-CAD-Framework applications

41 Programming directives

This subsection focuses on programming fundamentalswhich are required for the understanding and imple-mentation of the multi-CAD approach Common KBDautomation tools are developed for one unique task byone single developer [3] [10ndash12] [16] To keep it sim-ple these tools are often coded in the so-called ldquoSpaghetticoderdquo This means that the code is unstructured and the

application of user defined objects classes or instances islimited Furthermore access modifiers eg public pri-vate protected are not used consequently and the codeflow cannot be traced - it is like a bowl of spaghettiThis way of coding seems to be the easiest way of pro-gramming but with increasing complexity and multipledevelopers it causes a lot of problems Consequently animplementation in the explained framework is impossi-ble which requires the application of the so-called objectoriented programming (OOP) approach [14]

The principle of OOP bases on the definition ofuser defined objects and a structured code flow Theobjects contain different fields methods and propertiesas shown in Figure 7 The field group contains userdefined variables which should be only used internalThe properties provide external functionalities whichcan be accessed from outside The mentioned accessmodifiers are indicated as small symbols beside the illus-trated elements These modifiers are important for astructured code flow and allow the protection of selectedattributes

This means that specific attributes can only bechanged under certain conditions in contrast to publicattributes The main principle structure is explained by aCAD based example The base class ndash ldquoCADApplicationrdquohas twoderived classes ldquoCADNXrdquo and ldquoCADCATIAV5rdquoas shown in Figure 7 The base class defines all commonfunctionalities where the program code does not differThe modifier ldquoMustInheritrdquo defines that the creation ofa direct instance from this class is restricted The illus-trated ldquoCADApplicationrdquo class contains two fields twoproperties and five methods

The ldquoSetCADApplicationToForegroundrdquo and the con-structor sub ldquoNewrdquo are base methods which are notrelated to a specific CAD system The source code ofthese functions is implemented directly in the ldquoCADAp-plicationrdquo class The two remaining methods ldquoCADAp-plicationReadyrdquo and ldquoOpenPartrdquo are CAD system relatedfunctions and separately coded in the derived classesThey bear the modifier ldquoMustOverriderdquo which meansthat all derived classes have to implement them Ofcourse derived classes can contain additional propertiesand methods like the ldquoCADNXrdquo class

The ldquoCADInfosrdquo class is a user defined class with CADrelated attributes like ldquoVersionrdquo ldquoStartUpPathrdquo or ldquoTyperdquodepicted on the right in Figure 7 The attributes aredeclared as public elements there is no sufficient pro-tection and secure access management Under consid-eration that each ldquoCADApplicationrdquo instance comprisesthe private variable ldquom_CADInfosrdquo which represents aninstance of the ldquoCADInfosrdquo class the related informationcannot be accessed The ldquoCADInfosrdquo property is declaredas ldquoReadOnlyrdquo and so the relevant ldquoCADInfosrdquo can only

COMPUTER-AIDED DESIGN amp APPLICATIONS 479

Figure 7 Exemplary structure of the ldquoCADApplicationrdquo class

be adapted inside the ldquoCADApplicationrdquo class The initialdefinition of these variables is done by the initializationprocess of a new ldquoCADCATIAV5rdquo or ldquoCADNXrdquo object

Considering the multi-CAD-Framework structureexplained in section 3 the ldquoCADApplicationrdquo class isstored in the framework itself whereby the derivedclasses are located in the selectedCAD satellites To grantthat each KBD-Engineer receives the required informa-tion XML comments for the documentation of each sin-gle property function or sub as shown in the Figure 8 aremandatory

Figure 8 Exemplary XML comment

42 Structured programming

Based on the mentioned programming fundamentalsthis section concentrates on the developed structural

480 M SALCHNER ET AL

programming guideline which is an essential part ofthe multi-CAD strategy Each multi-CAD automationapplication should follow the main rules to grant

bull Comprehensibility for other developersbull Simplified adaption and enhancementbull Release handlingbull Enable the multi-CAD approachbull Handle API changes

Figure 9 illustrates the principle structure of a multi-CAD application The application consists of at least twodifferent projects theMain - and the Application Projectwhereby theApplication Project is referenced to theMainProject The latter can access the defined methods andproperties of the Application Project Additional feasibleprojects could be databases or third party projects Theassembly class in the Main Project is responsible for allGUI related calls events and also for the separation ofdifferent CAD systems

This distinction is carried out by the instantiation ofdifferent application assemblies For example to supportCATIA and NX within this application there has to be

one ldquoNXAssemblyrdquo and one ldquoCATIAAssemblyrdquo instanceThese derived classes inherit the base class ldquoApplica-tionAssemblyrdquo and follow the ldquoCADApplicationrdquo - prin-ciple shown in the previous section The required multi-CAD initialization functions are called from this classThe graphical user interfaces often change due to thedevelopment process or in case of different customersTherefore a codding in GUI elements should be avoidedIt ismuchmore efficient to utilize user defined events andhandle them in the assembly class Last but not least theMain Project handles the exception events the customhelp file and optional license functions This structureallows an eased adaption and enhancement ofmain func-tionalities of the program by any KBD-Engineer Differ-ent application releases for various customers with differ-ent functionalities can be compiled in an efficient way

The main development rules for a multi-CAD appli-cation are

(1) At least two separate projects ndash Main and Applica-tion

(2) No CAD or know-how related source code in theMain Project

Figure 9 Structured programming layout for multi-CAD applications

COMPUTER-AIDED DESIGN amp APPLICATIONS 481

(3) No code elements in the GUI(4) CAD system separation in the Main Project(5) All calls from the project related assembly class(6) CAD release separation in Application Assembly

class

The Application Project contains all required func-tions for the developed application itself This includesuniversal base classes and derived CAD related classesas shown in Figure 9 Of course this project can alsoinclude CAD independent classes for general functional-ities like the creation of folders files or other third partyapplications

It is up to the developer to decide when a separateproject (eg third party project) is created or not In gen-eral it is advisable to create a new project as soon asan additional API is used (eg Excel) The code separa-tion for different CAD releases caused by API changesshould be handled in the concerning CAD assembly asillustrated in 10

The Figure 10 shows the three different classesndashldquoNXAssemblyrdquo ldquoBOMNXrdquo and ldquoCADItemNXrdquo- includ-ing some general code elements The ldquoGetTreerdquo prop-erty of the ldquoNXAssemblyrdquo is the starting point wherea separation of NX releases is carried out ndash NX 75and NX 85 The optimum source code on the left sidewould call the release dependent methods from hereand also release independent functions like ldquoListCA-DItemsrdquo Unfortunately this represents a major effort in

the practical development The application is in commondeveloped for one single release and therefore the codestructure is defined in a logical way ndash as shown onthe right side The implementation of further releasesis added as needed later From this stage of develop-ment the KBD-Engineer is confronted with possible APIdifferences within the CAD releases In the example inFigure 10 the code differs in a deep layer of the pro-gram structure The release separation is required in theldquom_GetItemAttributesrdquo sub within the ldquoCADItemNXrdquoclass ndash at the bottom The developer has to change theentire structure and methods to perform a release dis-tinction in the ldquoNXAssemblyrdquo Therefore identical basiccode elements have to be duplicated for small differ-ences within some code lines This is not purposefulproduces unnecessary code and the effort increases inmaintenance modifications and handling of program-ming errors Experienced developers can estimate thedifferences already in the run and thus implement anappropriate structure

To avoid the mentioned structural changes in case ofsmall API differences but to allow later code trackinga keyword eg ldquoCADReleaserdquo is defined This keywordis used as function or property argument for each singlemethod which requires a separation of CAD releases

43 CADAutomation interfaces

APIs are based on core algorithms of theCAD system andallow the definition and development ofKBDautomation

Figure 10 API handling

482 M SALCHNER ET AL

routines The functional scope of the automation rou-tines is only limited by the provided CAD-API wherebythis functionality is often coupled with the used pro-gramming language and available license packages Thecommon denominator of different CAD systems regard-ing functionality costs and development within the pre-sented approach is stated by the NET framework It is asoftware framework developed by Microsoft since 2002which supports different coding languages like VisualBasic (VB) C or J Due to the fact that many CADsolutions deliver integratedVB programming editors andsimultaneously provide VBNET the multi-CAD strat-egy is developed based on this programming languageThe main disadvantage compared to programming lan-guages like C is a lack of code protection Neverthelessthere are some options to protect the code in an efficientand sufficient way Considering that todayrsquos most KBDtools in automotive industry are specific in-house appli-cations the protection of knowledge plays an importantrole [4] [14] [15] [18]

CAD related programming libraries can be providedin two species The first one includes dynamic linklibraries (dlls) which can be added as stand-alone ref-erences to the desired programming environment ndash NXThe second possibility is to use registered ActiveX ele-ments which are based on the Component ObjectModel(COM) standard - CATIA In this case the references arenot linked in a static way but based on windows registryentries The required libraries are loaded at runtime bydefault either from the startup path (dlls) or by use ofthe current registered COM element This faces a prob-lematic situation in case of different CAD releases Thecode libraries of different CAD releases or versions havethe same nomenclature and therefore a specific linkingmethod was developed

The mentioned problem can be handled in differ-ent ways During the iterative development processexplained in section 31 a large amount of different con-cepts has been worked out The result which fits all men-tioned requirements under consideration of the entirestrategy is explained in the next lines

The solution bypasses the windows registry entriesand allows a much more efficient realization of multi-release capability At startup of the initialization processthe current running CAD process is linked Based on thecurrent CAD system the required libraries are automati-cally created In the final step the libraries are loaded atruntime This method fulfills all requirements consider-ing the multi-CAD approach

The virtual connection between the KBD tool and theCAD system is carried out by a connection principlewhich is also defined by the API of the CAD systemCATIA for example is based on the Component Object

Model (COM)ofMicrosoft and therefore the connectionto the actual active CATIA window is reached out due tothe registered application name ndash ldquoCATIAApplicationrdquoThus different CATIA releases cannot be differenti-ated and therefore multiple window applications are notallowed The API of NX on the other hand is not basedon the COM strategy In this case the connection isperformed due to the Transmission Control Protocol Internet Protocol (TCPIP) by use of a server and a clientapplication whereby both can be applied on one singlecomputer [4] [14] [18]

ThementionedCAD initialization process and the dif-ferent connection methods are implemented within themulti-CAD-Framework accessible for KDB-Developer

5 Conclusions

The presented approach provides a platform for theefficient development of KBD applications for multi-CAD environments This includes amulti-CAD interfaceand different software modules that manage inconsis-tent CAD APIs capture knowledge provide reusablefunctions and libraries and have an enhanced serviceand error handling In contrast to common approacheswhere one single KBD tool has to be released sepa-rately for each single CAD-system and release this novelstrategy allows a standalone-releasing of different KBDtools This simplifies company-internal roll out proce-dure update management and administration Of coursethis strategy is part of the framework and uses the men-tionedFirebird database as application storage userman-agement and administration Furthermore it plays animportant role regarding the protection of the applica-tion and consequently of the knowledge On the otherhand the change or update management in view of theKBD-Engineer is therefore optimized because of a cen-tralized project management In this way the KBD-Useris not forced to execute different application files and thestandardized consistent GUI of all KBD tools minimizesthe training period significantly Referring to the start-ing statement concerning future trends of web-based andcase-based applications the presented framework allowsthe creation of four different solutions

bull Windows Form Application [14]bull Windows Console Application [14]bull Windows Service Application [14]bull Web Apps with ASPNET [14]

In the next months the approach is applied in a broadway by implementation of the new API of CATIA V6 [4]and additional open source CAD viewing tools Further-more different open source geometrical libraries will be

COMPUTER-AIDED DESIGN amp APPLICATIONS 483

investigated and the open xml software development kit[14] will be implemented In this way the functionalitywill grow and the platform - and vendor dependency willdecrease step by step

Considering multiply effects because of a large num-ber of KBD tools used in automotive industry a sig-nificant time reduction in the application of complexCAD-environment can be achieved

ORCID

Markus Salchner httporcidorg0000-0001-6379-0562Severin Stadler httporcidorg0000-0001-9867-0552Mario Hirz httporcidorg0000-0002-4502-4255

References

[1] CADEC Works httpwwwcadecin access date 2015-04-08

[2] Catic A Malmqvist J Towards integration of KBE andPLM International Conference on Engineering Design2007

[3] Chapman CB Pinfold M The application of a knowl-edge based engineering approach to the rapid design andanalysis of an automotive structure Advances in Engi-neering Software 32 2001 903ndash912 httpdxdoiorg101016S0965-9978(01)00041-2

[4] Dassault Systemes httpwww3dscom access date2015-01-27

[5] Eclipse httpseclipseorg access date 2015-01-27[6] Eigner M Stelzer R Product Lifecycle Management

Ein Leitfaden fuumlr Product Development und Life CycleManagement Springer 2009 ISBN 9783540443735httpdxdoiorg101007b93672

[7] Firebird httpwwwfirebirdsqlorg access date 2015-04-13

[8] Hirz M Dietrich W Gfrerrer A Lang J Inte-grated computer-aided design in automotive develop-ment development processes geometric fundamentalsmethods of CAD knowledge-based engineering datamanagement Springer 2013 ISBN 9783642119392httpdxdoiorg101007978-3-642-11940-8

[9] KBEWorks httpwwwvisionkbecom access date 2015-04-08

[10] Lin B-T Chan C-K Wang J-C A knowledge-basedparametric design system for drawing dies InternationalJournal of Advanced Manufacturing Technology 362008 671ndash680 httpdxdoiorg101007s00170-006-0882-y

[11] Lin B-T Chang M-R Huang H-L Liu C-YComputer-aided structural design of drawing dies forstamping processes based on functional features Interna-tional Journal of Advanced Manufacturing Technology42 2009 1140ndash1152 httpdxdoiorg101007s00170-008-1670-7

[12] Ma QC Liu XW Review of Knowledge Based Engi-neering with PLM Applied Mechanics and Materials10ndash12 2007 127ndash130 httpdxdoiorg104028wwwscientificnetAMM10-12127

[13] Microsoft Developer Network httpmsdnmicrosoftcomde-atdn308572aspx

[14] Microsoft httpmicrosoftcom access date 2015-01-27[15] PTC httpwwwptccom access date 2015-01-27[16] Reddy E J Sridhar C N V Rangadu V P Knowl-

edge Based Engineering Notion Approaches and FutureTrends American Journal of Intelligent Systems 5(1)2015 1ndash17 httpdxdoiorg105923jajis2015050101

[17] Siemens PLM httpwwwplmautomationsiemenscomaccess date 2015-01-27

[18] Sanya IO Shehab EM An ontology frameworkfor developing platform-independent knowledge-basedengineering systems in the aerospace industry Inter-national Journal of Production Research 52 20146192ndash6215 httpdxdoiorg101080002075432014919422

[19] Skarka W Application of MOKA methodology in gen-erative model creation using CATIA Engineering Appli-cations of Artificial Intelligence 20 2007 677ndash690httpdxdoiorg101016jengappai200611019

[20] Stokes M Managing Engineering Knowledge ndash MOKAMethodology for Knowledge Based Engineering Appli-cations Professional Engineering Publishing LimitedASME Press 2001

[21] Tacton httpwwwtactoncom access date 2015-04-08[22] Transcat-PLM httpswwwtranscat-plmcom access

date 2015-01-27[23] Van Der Laan AH Van Tooren MJL Parametric

modeling of movables for structural analysis Journal ofAircraft 42 2005 1606ndash1614 httpdxdoiorg10251419764

  • 1 Introduction
  • 2 Knowledge-based design methods
  • 3 Multi-CAD approach
    • 31 Development process
    • 32 Overview of the Multi-CAD-framework
    • 33 Realization of Multi-CAD-framework
      • 4 Multi-CAD developer
        • 41 Programming directives
        • 42 Structured programming
        • 43 CAD Automation interfaces
          • 5 Conclusions
          • ORCID
          • References
Page 3: Multi-CAD approach for knowledge-based design methods4)_2016_471-483.pdf · universal functions, are stored inside the framework. This includes “CAD base”, “Utilities”, “Infrastructure”

COMPUTER-AIDED DESIGN amp APPLICATIONS 473

Figure 2 Knowledge-based design levels according to [8]

the art in automotive engineering processes In this casethe exemplary CADmodel is designed with variable val-ues These values can either be directly integrated in thegeometry definition like a length constraint in a sketchor they can be stored in a feature definition itself Anotherpossibility is the definition of separate parameters decou-pled from the geometry which are stored in the desiredCAD component This allows an efficient design adap-tion by changing the parameter values in the CAD systemor within an external file Parameters can also be usedfor the definition of characteristics such as materialstextures tolerances and other relevant information [8]

Relational models define the third level in Figure 2which are based on parametric models and include fur-ther functionalities In common an interaction betweenCAD elements like sketches features bodies or evenparts and assemblies is carried out by use of ruleschecks or loops This method corresponds to the nexthigher level the CAD integrated automationmethods InCATIA relational design can be carried out without theuse of any internal scripting or programming languageIn NX a definition of feature based rules requires the useof an integrated knowledge application called Knowl-edge Fusion (KF) which requires basic scripting know-how The different levels and functionalities of integratedmethods are explained in the following subsections

CAD based automation methods mainly differ fromintegrated methods due to the use of external ldquointegrateddevelopment environmentrdquo (IDE) likeVisual Studio [14]or Eclipse [5] This allows the development of externalautomation tools with

bull customized graphical user interfaces (GUI)bull use or implementation of external applications (eg

Excel Word etc)

bull development of programming library based on theobject oriented programming (OOP) principle

bull CAD independent scripting languagebull consistent development environment andbull simultaneous application development

Furthermore development-related know-how is nolonger stored in the CAD system itself but in specificapplications or even coupled databases and thereforeimproved accessible for other engineering disciplines andemployees

Commercial KBE software packages like KF [18]CATIA Knowledgeware [4] CADEC Works [1] KBE-Works [9] or TactonWorks Engineer [21] can be assignedto the category of CAD integrated automation methodsTherefore these tools does not meet the requirementsand are not explained in detail

The highest level of KBD methods is representedin cross-over methods and tools which support differ-ent CAD solutions within the company Process relatedknow-how is completely decoupled from the CAD sys-tem and made for anyone to disposal The initial devel-opment effort for such automation tools is quite highEspecially the definition of a comprehensive multi-CADenvironment requires a detailed consideration of differ-ent aspects One main problem to face is the data trans-fer via inconsistent application programming interfacesof the different CAD systems It is a big challenge toserve all systems concerning design knowledge-basedmethods and automation strategies In this context thepresent paper introduces a new approach for the efficientdevelopment of a multi-CAD KBD environment underconsideration of the prior problem statements

The presented approach is viewed from three dif-ferent developer perspectives The topmost developer

474 M SALCHNER ET AL

called KBD-Expert is responsible for the design main-tenance and enhancement of the abstract multi-CAD-framework This working range considers the mentionedoverall directives and the principle layout of the KBDenvironment ndash see section 3 The next development levelconcentrates on the KBD-Engineer who is responsiblefor the development of selected applications supportingdesign The implemented functionalities strongly dependon the specific task and do not consequently require amulti-CAD realization in the early phase Neverthelessthe KBD-Engineer is assisted by a superordinate frame-work ndash see section 4 The last but not least level theCAD-User is supported by the different KBD tools inhis work to raise productivity and quality of the entiredesign process The KBD-User simultaneously is the per-son which consolidates tasks of daily design work forpotentially new KBD-applications to be developed

Figure 3 shows the different knowledge-based automa-tion levels regarding complexity and functionality Therequired experience for the common development ofKBD tools is schematically illustrated by line num-ber one Due to the implementation of the multi-CADapproach the required programming effort of the KBD-Engineer can be dropped to a lower level ndash line twoAnother advantage of the presented high level KBDapproach can be seen in line threeDue to the use of appli-cation programming interfaces process or applicationrelated know-how is no longer stored in the CAD systembut rather in the application or a centralized databaseitself Thereby a crossover knowledge distribution andmanagement can be reached

The group on the left side in Figure 3 called basic KBDtools uses internal tools and functionalities of aCAD sys-tem This includes parameters formulas spreadsheetsrules checks loops templates and user defined featuresOther tools of this group are CAD based recorders and

integrated programming languages The provided func-tionalities of these internal tools strongly depend on theCAD solution and the available license package The nexthigher level uses the CAD based and integrated devel-opment environment This group uses the CAD APIand allows a partially decoupled KBD development ndashdepending on the CAD system Therefore an effectivemulti-CAD strategy cannot be reached out with themen-tioned tools The development of an efficient overarchingstrategy can only be achieved by the highest level ndash aCADindependent development environment

3 Multi-CAD approach

In contrast to the general understanding of a multi-CADenvironment the present strategy represents an unre-stricted method Functionalities in commercial availableCAD systems are restricted to the provision of neu-tral geometry data interfaces for the exchange of CADmodels eg STEP IGES STL These converters allowan exchange of geometry between different CAD for-mats but there is no possibility to handle intelligentknowledge-based software modules eg templates forautomated geometry creation The presented approachprovides a smart development and implementation ofmulti-CAD capable knowledge-based design methods[4] [15] [18]

31 Development process

Figure 4 illustrates the developed process model for thelayout of the novel strategy The process is divided intothree main layers The iterative process covers both thehorizontal ndash layer internal ndash and vertical ndash across layersndash interactions

Figure 3 Levels of KBD automation

COMPUTER-AIDED DESIGN amp APPLICATIONS 475

Figure 4 Development process of multi-CAD environment

The first step includes the conceptual layout of amulti-CAD automation strategy illustrated at the bottom linein Figure 4 By an exemplary application the strategyhas been used to integrate the CAD software packagesCATIA V5 and Siemens NX but the general approachmay be suitable for other CAD software too This appli-cation states the basis for the subsequent developmentimplementation and testing procedure Therefore theexemplary application is designed to cover a wide rangeof automation methods taking into account variousnamespaces classes and functions of the provided pro-gramming interfaces In case of Siemens NX there arefour main libraries available whereby the CATIA API isstructuredmore widespread (more than eighty libraries)After the validation of this concept the next developmentstep focuses on a multi-CAD release strategy ndash layer twoThis treats the application compatibility for oneCADsys-tem including its chronological releases After the testingand implementation cycle of this layer both the multi-CAD - and the multi-Release concept are transferredto the final development layer This development levelconsiders a strategy for the reuse and protection of theoverall method This entire development process resultsin a final multi-CAD environment as illustrated in thetop layer

32 Overview of theMulti-CAD-framework

The iterative development process explained in theprevious section consequently leads to a multi-CAD-Framework This subsection explains the developedframework and the programming libraries in view ofa KBD-Expert The framework is based on the IDE ofVisual Studio and uses the programming language VisualBasic [14] The decision criteria for this development

environment was mentioned in the previous section andthe criteria for the language-related decision can be foundin section 4

Figure 5 illustrates the environment of the presentapproach including the internal main modules and theirdocked satellites The abstract methods which coveruniversal functions are stored inside the frameworkThis includes ldquoCAD baserdquo ldquoUtilitiesrdquo ldquoInfrastructurerdquoand ldquoSettingsrdquo classes These base classes are managedby the KBD-Expert and define fundamental function-alities of the docked satellites The development andimplementation of these objects are not explained indetail in this paper except the ldquoCAD baserdquo class Thissuperordinate functional definition allows docking of dif-ferent applications in an efficient way and grants theconsequent enhancement of the framework The KBD-Engineer implements the framework in the developmentprocess of a new KBD-Tool The developer can accessndash on require ndash all implemented methods via the novelframework The final KBD-Tool has to be analyzed bythe KBD-Expert regarding their implemented function-alities In the next step the KBD-Expert performs anabstraction of the functionalities and defines the ade-quate implementation of new base functions Thus thebase functionality rises with each single application andexpands the predefined functions for future projects

The CAD related assemblies are illustrated at the bot-tom of Figure 5 by Siemensrsquo NX Dassaultrsquos CATIA V5and any additional CAD system ndash like PTC Creo Ele-ments [15] Furthermore third party applications likeExcel Acrobat or Matlab are also supported by the inter-face Different PDM systems databases and finally sin-gle specialized KBD tools are optional satellites whichcan be implemented in the multi-CAD-Framework Thepredefined overall structure grants the integrity and the

476 M SALCHNER ET AL

Figure 5 Multi-CAD-Framework

intuitive working principle for all KBD-Engineers Fur-thermore the environment includes a defined strategyfor serviceability reuse as well as protection and licens-ing aspects

The database interface gives the developer the abil-ity to use different database functionalities This includesthe ease creation of user defined local or server databasesand allows quick storage and reuse of application relatedinformation Furthermore database-applications pro-vide useful functionalities for listing sorting or search-ing of data and enable a dynamic application layout

The overall implementation expands the functionscope enormously and enables an efficient interactionbetween CAD and third party tools Exemplary inter-disciplinary KBD tools are geometry-based analysis andoptimization routines eg specific suspension optimiza-tion For example this enables a transfer of main sus-pension points which are defined and stored in theCAD system to a Matlab optimization routine The rou-tine performs an optimization with regard to occurringforces the maximum possible steering angle or diveangle The results are displayed in the CAD system andthe engineer can adapt the design model This appli-cation is exemplary illustrated as KBD-Tool 1 wherebythe KBD-Tool 2 represents a separate exemplary applica-tion shown in Figure 5 Each implemented applicationexpands the framework and enables a continuous andefficient enhancement

33 Realization ofMulti-CAD-framework

Figure 6 gives a more detailed overview of the devel-oped environment concentrating on the multi-CAD

environment In contrast to Figure 5 this representationcontains no global assignment but allows amore detailedexplanation of the developed environment

At the bottom of Figure 6 CAD systems like CATIA[4] and NX [18] are exemplarily illustrated with differ-ent releases The developed multi-CAD interface imple-ments the inconsistent application programming inter-faces of the diversified CAD systems see sub section43 The interface definition is stored in the multi-CAD-Framework and contains abstract methods for the imple-mentation of CAD systems called ldquoCAD baserdquo There-fore each CAD system and release fulfills the same basicfunctionalities like create part create picture get prop-erties or close CAD application The interface allows asimultaneous sequential or single execution of the devel-oped KBD tool within the different CAD systems Inaddition different project and release settings are sup-ported

The ldquoInfrastructurerdquo area covers basic functions andmethods of the operating system Microsoft Windows[13] Exemplary elements are folder and data manage-ment Furthermore it offers functionalities that allowthe handling of all Windows based applications Thisincludes maximize minimize or hide functions etcand an integrated docking class This method allowsthe implementation docking of any application intothe developed graphical user interface The user inter-face covers all required information and the KBD-User is not forced to switch between different win-dows The standardized layout of the GUI and thementioned functionality is also implemented in thislibrary and supports the KBD-User and KBD-Engineerequally

COMPUTER-AIDED DESIGN amp APPLICATIONS 477

Figure 6 Multi-CAD automation environment

The ldquoCADbaserdquo class initializes all CAD related devel-oped functions andmethods This library does not imple-ment the functionality itself but it defines them Eachsingle implemented CAD system is a derived class andis forced to implement the defined functions Relativelysimple CAD basic functions like the creation of a pointa line or a feature are not implemented in this levelbecause these CAD related functions are supported bythe API and it is not useful to reproduce all of themIn contrast it includes a collection of commonly usedand know-how based functions On basis of an objectoriented programming technique it is possible to forcethe developer to implement the designed function forall required CAD solutions One example of application

is a function for capturing of images The code for theimage creation is not challenging but to adjust a wholeenvironment to the defined settings can be very com-plex The implemented function performs the followingactions in addition to the passed parameters Perspec-tive position zoom visibility of constraints annotationstreeview components change the color of parts surfacesor even the entire assembly

The explained framework can be implemented andused as references by each KBD-Engineer in the develop-ment environment of Visual Studio The depicted satel-lites in Figure 5 are standalone libraries whereby anindividual implementation is enabled Some applicationsdo not need a database - or the CATIA interface and

478 M SALCHNER ET AL

therefore an implementation of these libraries is not effec-tive The current framework comprises the followingmain libraries

bull Multi-CAD-Frameworkbull Dassault CATIAV5bull Siemens NXbull Third party application ndash eg Excelbull Firebird databases [7]

Additional functionalities with numerous overload-ing methods are stored in a separate snippet libraryThey provide a large amount of different input param-eters regarding to their use An exemplary CAD relatedfunction is the ldquoCreatePointrdquo method The design of apoint can be done in various ways - by coordinateson a line a surface a body or as a center point of acircle Twenty overloading methods in NX are avail-able whereby each of them uses different NX relatedobjects which in turn are overloaded Other exemplarymethods are folder selection file selection ndash or savemethods which strongly depend on the current require-ments The snippets are implemented in the graphicalinterface of Visual Studio and can be easily accessedThe snippets are based on XML and copy the storedsource code elements into the current project The KBD-Engineer can customize the scripting lines to the currentrequirements The developed snippet library uses thesame structure as the framework library and grants anintuitive use

4 Multi-CAD developer

The previous section explained the entire framework ofthe multi-CAD approach With the target of an effec-tive use the framework design was made with focus onan intuitive usage and nomenclature To ensure stabil-ity and quality of the framework some programmingrules have to be considered Furthermore the imple-mentation effort for the KBD-Expert mentioned in subsection 32 can be reduced to a minimum This sectiontreats the defined development steps for the design of newmulti-CAD-Framework applications

41 Programming directives

This subsection focuses on programming fundamentalswhich are required for the understanding and imple-mentation of the multi-CAD approach Common KBDautomation tools are developed for one unique task byone single developer [3] [10ndash12] [16] To keep it sim-ple these tools are often coded in the so-called ldquoSpaghetticoderdquo This means that the code is unstructured and the

application of user defined objects classes or instances islimited Furthermore access modifiers eg public pri-vate protected are not used consequently and the codeflow cannot be traced - it is like a bowl of spaghettiThis way of coding seems to be the easiest way of pro-gramming but with increasing complexity and multipledevelopers it causes a lot of problems Consequently animplementation in the explained framework is impossi-ble which requires the application of the so-called objectoriented programming (OOP) approach [14]

The principle of OOP bases on the definition ofuser defined objects and a structured code flow Theobjects contain different fields methods and propertiesas shown in Figure 7 The field group contains userdefined variables which should be only used internalThe properties provide external functionalities whichcan be accessed from outside The mentioned accessmodifiers are indicated as small symbols beside the illus-trated elements These modifiers are important for astructured code flow and allow the protection of selectedattributes

This means that specific attributes can only bechanged under certain conditions in contrast to publicattributes The main principle structure is explained by aCAD based example The base class ndash ldquoCADApplicationrdquohas twoderived classes ldquoCADNXrdquo and ldquoCADCATIAV5rdquoas shown in Figure 7 The base class defines all commonfunctionalities where the program code does not differThe modifier ldquoMustInheritrdquo defines that the creation ofa direct instance from this class is restricted The illus-trated ldquoCADApplicationrdquo class contains two fields twoproperties and five methods

The ldquoSetCADApplicationToForegroundrdquo and the con-structor sub ldquoNewrdquo are base methods which are notrelated to a specific CAD system The source code ofthese functions is implemented directly in the ldquoCADAp-plicationrdquo class The two remaining methods ldquoCADAp-plicationReadyrdquo and ldquoOpenPartrdquo are CAD system relatedfunctions and separately coded in the derived classesThey bear the modifier ldquoMustOverriderdquo which meansthat all derived classes have to implement them Ofcourse derived classes can contain additional propertiesand methods like the ldquoCADNXrdquo class

The ldquoCADInfosrdquo class is a user defined class with CADrelated attributes like ldquoVersionrdquo ldquoStartUpPathrdquo or ldquoTyperdquodepicted on the right in Figure 7 The attributes aredeclared as public elements there is no sufficient pro-tection and secure access management Under consid-eration that each ldquoCADApplicationrdquo instance comprisesthe private variable ldquom_CADInfosrdquo which represents aninstance of the ldquoCADInfosrdquo class the related informationcannot be accessed The ldquoCADInfosrdquo property is declaredas ldquoReadOnlyrdquo and so the relevant ldquoCADInfosrdquo can only

COMPUTER-AIDED DESIGN amp APPLICATIONS 479

Figure 7 Exemplary structure of the ldquoCADApplicationrdquo class

be adapted inside the ldquoCADApplicationrdquo class The initialdefinition of these variables is done by the initializationprocess of a new ldquoCADCATIAV5rdquo or ldquoCADNXrdquo object

Considering the multi-CAD-Framework structureexplained in section 3 the ldquoCADApplicationrdquo class isstored in the framework itself whereby the derivedclasses are located in the selectedCAD satellites To grantthat each KBD-Engineer receives the required informa-tion XML comments for the documentation of each sin-gle property function or sub as shown in the Figure 8 aremandatory

Figure 8 Exemplary XML comment

42 Structured programming

Based on the mentioned programming fundamentalsthis section concentrates on the developed structural

480 M SALCHNER ET AL

programming guideline which is an essential part ofthe multi-CAD strategy Each multi-CAD automationapplication should follow the main rules to grant

bull Comprehensibility for other developersbull Simplified adaption and enhancementbull Release handlingbull Enable the multi-CAD approachbull Handle API changes

Figure 9 illustrates the principle structure of a multi-CAD application The application consists of at least twodifferent projects theMain - and the Application Projectwhereby theApplication Project is referenced to theMainProject The latter can access the defined methods andproperties of the Application Project Additional feasibleprojects could be databases or third party projects Theassembly class in the Main Project is responsible for allGUI related calls events and also for the separation ofdifferent CAD systems

This distinction is carried out by the instantiation ofdifferent application assemblies For example to supportCATIA and NX within this application there has to be

one ldquoNXAssemblyrdquo and one ldquoCATIAAssemblyrdquo instanceThese derived classes inherit the base class ldquoApplica-tionAssemblyrdquo and follow the ldquoCADApplicationrdquo - prin-ciple shown in the previous section The required multi-CAD initialization functions are called from this classThe graphical user interfaces often change due to thedevelopment process or in case of different customersTherefore a codding in GUI elements should be avoidedIt ismuchmore efficient to utilize user defined events andhandle them in the assembly class Last but not least theMain Project handles the exception events the customhelp file and optional license functions This structureallows an eased adaption and enhancement ofmain func-tionalities of the program by any KBD-Engineer Differ-ent application releases for various customers with differ-ent functionalities can be compiled in an efficient way

The main development rules for a multi-CAD appli-cation are

(1) At least two separate projects ndash Main and Applica-tion

(2) No CAD or know-how related source code in theMain Project

Figure 9 Structured programming layout for multi-CAD applications

COMPUTER-AIDED DESIGN amp APPLICATIONS 481

(3) No code elements in the GUI(4) CAD system separation in the Main Project(5) All calls from the project related assembly class(6) CAD release separation in Application Assembly

class

The Application Project contains all required func-tions for the developed application itself This includesuniversal base classes and derived CAD related classesas shown in Figure 9 Of course this project can alsoinclude CAD independent classes for general functional-ities like the creation of folders files or other third partyapplications

It is up to the developer to decide when a separateproject (eg third party project) is created or not In gen-eral it is advisable to create a new project as soon asan additional API is used (eg Excel) The code separa-tion for different CAD releases caused by API changesshould be handled in the concerning CAD assembly asillustrated in 10

The Figure 10 shows the three different classesndashldquoNXAssemblyrdquo ldquoBOMNXrdquo and ldquoCADItemNXrdquo- includ-ing some general code elements The ldquoGetTreerdquo prop-erty of the ldquoNXAssemblyrdquo is the starting point wherea separation of NX releases is carried out ndash NX 75and NX 85 The optimum source code on the left sidewould call the release dependent methods from hereand also release independent functions like ldquoListCA-DItemsrdquo Unfortunately this represents a major effort in

the practical development The application is in commondeveloped for one single release and therefore the codestructure is defined in a logical way ndash as shown onthe right side The implementation of further releasesis added as needed later From this stage of develop-ment the KBD-Engineer is confronted with possible APIdifferences within the CAD releases In the example inFigure 10 the code differs in a deep layer of the pro-gram structure The release separation is required in theldquom_GetItemAttributesrdquo sub within the ldquoCADItemNXrdquoclass ndash at the bottom The developer has to change theentire structure and methods to perform a release dis-tinction in the ldquoNXAssemblyrdquo Therefore identical basiccode elements have to be duplicated for small differ-ences within some code lines This is not purposefulproduces unnecessary code and the effort increases inmaintenance modifications and handling of program-ming errors Experienced developers can estimate thedifferences already in the run and thus implement anappropriate structure

To avoid the mentioned structural changes in case ofsmall API differences but to allow later code trackinga keyword eg ldquoCADReleaserdquo is defined This keywordis used as function or property argument for each singlemethod which requires a separation of CAD releases

43 CADAutomation interfaces

APIs are based on core algorithms of theCAD system andallow the definition and development ofKBDautomation

Figure 10 API handling

482 M SALCHNER ET AL

routines The functional scope of the automation rou-tines is only limited by the provided CAD-API wherebythis functionality is often coupled with the used pro-gramming language and available license packages Thecommon denominator of different CAD systems regard-ing functionality costs and development within the pre-sented approach is stated by the NET framework It is asoftware framework developed by Microsoft since 2002which supports different coding languages like VisualBasic (VB) C or J Due to the fact that many CADsolutions deliver integratedVB programming editors andsimultaneously provide VBNET the multi-CAD strat-egy is developed based on this programming languageThe main disadvantage compared to programming lan-guages like C is a lack of code protection Neverthelessthere are some options to protect the code in an efficientand sufficient way Considering that todayrsquos most KBDtools in automotive industry are specific in-house appli-cations the protection of knowledge plays an importantrole [4] [14] [15] [18]

CAD related programming libraries can be providedin two species The first one includes dynamic linklibraries (dlls) which can be added as stand-alone ref-erences to the desired programming environment ndash NXThe second possibility is to use registered ActiveX ele-ments which are based on the Component ObjectModel(COM) standard - CATIA In this case the references arenot linked in a static way but based on windows registryentries The required libraries are loaded at runtime bydefault either from the startup path (dlls) or by use ofthe current registered COM element This faces a prob-lematic situation in case of different CAD releases Thecode libraries of different CAD releases or versions havethe same nomenclature and therefore a specific linkingmethod was developed

The mentioned problem can be handled in differ-ent ways During the iterative development processexplained in section 31 a large amount of different con-cepts has been worked out The result which fits all men-tioned requirements under consideration of the entirestrategy is explained in the next lines

The solution bypasses the windows registry entriesand allows a much more efficient realization of multi-release capability At startup of the initialization processthe current running CAD process is linked Based on thecurrent CAD system the required libraries are automati-cally created In the final step the libraries are loaded atruntime This method fulfills all requirements consider-ing the multi-CAD approach

The virtual connection between the KBD tool and theCAD system is carried out by a connection principlewhich is also defined by the API of the CAD systemCATIA for example is based on the Component Object

Model (COM)ofMicrosoft and therefore the connectionto the actual active CATIA window is reached out due tothe registered application name ndash ldquoCATIAApplicationrdquoThus different CATIA releases cannot be differenti-ated and therefore multiple window applications are notallowed The API of NX on the other hand is not basedon the COM strategy In this case the connection isperformed due to the Transmission Control Protocol Internet Protocol (TCPIP) by use of a server and a clientapplication whereby both can be applied on one singlecomputer [4] [14] [18]

ThementionedCAD initialization process and the dif-ferent connection methods are implemented within themulti-CAD-Framework accessible for KDB-Developer

5 Conclusions

The presented approach provides a platform for theefficient development of KBD applications for multi-CAD environments This includes amulti-CAD interfaceand different software modules that manage inconsis-tent CAD APIs capture knowledge provide reusablefunctions and libraries and have an enhanced serviceand error handling In contrast to common approacheswhere one single KBD tool has to be released sepa-rately for each single CAD-system and release this novelstrategy allows a standalone-releasing of different KBDtools This simplifies company-internal roll out proce-dure update management and administration Of coursethis strategy is part of the framework and uses the men-tionedFirebird database as application storage userman-agement and administration Furthermore it plays animportant role regarding the protection of the applica-tion and consequently of the knowledge On the otherhand the change or update management in view of theKBD-Engineer is therefore optimized because of a cen-tralized project management In this way the KBD-Useris not forced to execute different application files and thestandardized consistent GUI of all KBD tools minimizesthe training period significantly Referring to the start-ing statement concerning future trends of web-based andcase-based applications the presented framework allowsthe creation of four different solutions

bull Windows Form Application [14]bull Windows Console Application [14]bull Windows Service Application [14]bull Web Apps with ASPNET [14]

In the next months the approach is applied in a broadway by implementation of the new API of CATIA V6 [4]and additional open source CAD viewing tools Further-more different open source geometrical libraries will be

COMPUTER-AIDED DESIGN amp APPLICATIONS 483

investigated and the open xml software development kit[14] will be implemented In this way the functionalitywill grow and the platform - and vendor dependency willdecrease step by step

Considering multiply effects because of a large num-ber of KBD tools used in automotive industry a sig-nificant time reduction in the application of complexCAD-environment can be achieved

ORCID

Markus Salchner httporcidorg0000-0001-6379-0562Severin Stadler httporcidorg0000-0001-9867-0552Mario Hirz httporcidorg0000-0002-4502-4255

References

[1] CADEC Works httpwwwcadecin access date 2015-04-08

[2] Catic A Malmqvist J Towards integration of KBE andPLM International Conference on Engineering Design2007

[3] Chapman CB Pinfold M The application of a knowl-edge based engineering approach to the rapid design andanalysis of an automotive structure Advances in Engi-neering Software 32 2001 903ndash912 httpdxdoiorg101016S0965-9978(01)00041-2

[4] Dassault Systemes httpwww3dscom access date2015-01-27

[5] Eclipse httpseclipseorg access date 2015-01-27[6] Eigner M Stelzer R Product Lifecycle Management

Ein Leitfaden fuumlr Product Development und Life CycleManagement Springer 2009 ISBN 9783540443735httpdxdoiorg101007b93672

[7] Firebird httpwwwfirebirdsqlorg access date 2015-04-13

[8] Hirz M Dietrich W Gfrerrer A Lang J Inte-grated computer-aided design in automotive develop-ment development processes geometric fundamentalsmethods of CAD knowledge-based engineering datamanagement Springer 2013 ISBN 9783642119392httpdxdoiorg101007978-3-642-11940-8

[9] KBEWorks httpwwwvisionkbecom access date 2015-04-08

[10] Lin B-T Chan C-K Wang J-C A knowledge-basedparametric design system for drawing dies InternationalJournal of Advanced Manufacturing Technology 362008 671ndash680 httpdxdoiorg101007s00170-006-0882-y

[11] Lin B-T Chang M-R Huang H-L Liu C-YComputer-aided structural design of drawing dies forstamping processes based on functional features Interna-tional Journal of Advanced Manufacturing Technology42 2009 1140ndash1152 httpdxdoiorg101007s00170-008-1670-7

[12] Ma QC Liu XW Review of Knowledge Based Engi-neering with PLM Applied Mechanics and Materials10ndash12 2007 127ndash130 httpdxdoiorg104028wwwscientificnetAMM10-12127

[13] Microsoft Developer Network httpmsdnmicrosoftcomde-atdn308572aspx

[14] Microsoft httpmicrosoftcom access date 2015-01-27[15] PTC httpwwwptccom access date 2015-01-27[16] Reddy E J Sridhar C N V Rangadu V P Knowl-

edge Based Engineering Notion Approaches and FutureTrends American Journal of Intelligent Systems 5(1)2015 1ndash17 httpdxdoiorg105923jajis2015050101

[17] Siemens PLM httpwwwplmautomationsiemenscomaccess date 2015-01-27

[18] Sanya IO Shehab EM An ontology frameworkfor developing platform-independent knowledge-basedengineering systems in the aerospace industry Inter-national Journal of Production Research 52 20146192ndash6215 httpdxdoiorg101080002075432014919422

[19] Skarka W Application of MOKA methodology in gen-erative model creation using CATIA Engineering Appli-cations of Artificial Intelligence 20 2007 677ndash690httpdxdoiorg101016jengappai200611019

[20] Stokes M Managing Engineering Knowledge ndash MOKAMethodology for Knowledge Based Engineering Appli-cations Professional Engineering Publishing LimitedASME Press 2001

[21] Tacton httpwwwtactoncom access date 2015-04-08[22] Transcat-PLM httpswwwtranscat-plmcom access

date 2015-01-27[23] Van Der Laan AH Van Tooren MJL Parametric

modeling of movables for structural analysis Journal ofAircraft 42 2005 1606ndash1614 httpdxdoiorg10251419764

  • 1 Introduction
  • 2 Knowledge-based design methods
  • 3 Multi-CAD approach
    • 31 Development process
    • 32 Overview of the Multi-CAD-framework
    • 33 Realization of Multi-CAD-framework
      • 4 Multi-CAD developer
        • 41 Programming directives
        • 42 Structured programming
        • 43 CAD Automation interfaces
          • 5 Conclusions
          • ORCID
          • References
Page 4: Multi-CAD approach for knowledge-based design methods4)_2016_471-483.pdf · universal functions, are stored inside the framework. This includes “CAD base”, “Utilities”, “Infrastructure”

474 M SALCHNER ET AL

called KBD-Expert is responsible for the design main-tenance and enhancement of the abstract multi-CAD-framework This working range considers the mentionedoverall directives and the principle layout of the KBDenvironment ndash see section 3 The next development levelconcentrates on the KBD-Engineer who is responsiblefor the development of selected applications supportingdesign The implemented functionalities strongly dependon the specific task and do not consequently require amulti-CAD realization in the early phase Neverthelessthe KBD-Engineer is assisted by a superordinate frame-work ndash see section 4 The last but not least level theCAD-User is supported by the different KBD tools inhis work to raise productivity and quality of the entiredesign process The KBD-User simultaneously is the per-son which consolidates tasks of daily design work forpotentially new KBD-applications to be developed

Figure 3 shows the different knowledge-based automa-tion levels regarding complexity and functionality Therequired experience for the common development ofKBD tools is schematically illustrated by line num-ber one Due to the implementation of the multi-CADapproach the required programming effort of the KBD-Engineer can be dropped to a lower level ndash line twoAnother advantage of the presented high level KBDapproach can be seen in line threeDue to the use of appli-cation programming interfaces process or applicationrelated know-how is no longer stored in the CAD systembut rather in the application or a centralized databaseitself Thereby a crossover knowledge distribution andmanagement can be reached

The group on the left side in Figure 3 called basic KBDtools uses internal tools and functionalities of aCAD sys-tem This includes parameters formulas spreadsheetsrules checks loops templates and user defined featuresOther tools of this group are CAD based recorders and

integrated programming languages The provided func-tionalities of these internal tools strongly depend on theCAD solution and the available license package The nexthigher level uses the CAD based and integrated devel-opment environment This group uses the CAD APIand allows a partially decoupled KBD development ndashdepending on the CAD system Therefore an effectivemulti-CAD strategy cannot be reached out with themen-tioned tools The development of an efficient overarchingstrategy can only be achieved by the highest level ndash aCADindependent development environment

3 Multi-CAD approach

In contrast to the general understanding of a multi-CADenvironment the present strategy represents an unre-stricted method Functionalities in commercial availableCAD systems are restricted to the provision of neu-tral geometry data interfaces for the exchange of CADmodels eg STEP IGES STL These converters allowan exchange of geometry between different CAD for-mats but there is no possibility to handle intelligentknowledge-based software modules eg templates forautomated geometry creation The presented approachprovides a smart development and implementation ofmulti-CAD capable knowledge-based design methods[4] [15] [18]

31 Development process

Figure 4 illustrates the developed process model for thelayout of the novel strategy The process is divided intothree main layers The iterative process covers both thehorizontal ndash layer internal ndash and vertical ndash across layersndash interactions

Figure 3 Levels of KBD automation

COMPUTER-AIDED DESIGN amp APPLICATIONS 475

Figure 4 Development process of multi-CAD environment

The first step includes the conceptual layout of amulti-CAD automation strategy illustrated at the bottom linein Figure 4 By an exemplary application the strategyhas been used to integrate the CAD software packagesCATIA V5 and Siemens NX but the general approachmay be suitable for other CAD software too This appli-cation states the basis for the subsequent developmentimplementation and testing procedure Therefore theexemplary application is designed to cover a wide rangeof automation methods taking into account variousnamespaces classes and functions of the provided pro-gramming interfaces In case of Siemens NX there arefour main libraries available whereby the CATIA API isstructuredmore widespread (more than eighty libraries)After the validation of this concept the next developmentstep focuses on a multi-CAD release strategy ndash layer twoThis treats the application compatibility for oneCADsys-tem including its chronological releases After the testingand implementation cycle of this layer both the multi-CAD - and the multi-Release concept are transferredto the final development layer This development levelconsiders a strategy for the reuse and protection of theoverall method This entire development process resultsin a final multi-CAD environment as illustrated in thetop layer

32 Overview of theMulti-CAD-framework

The iterative development process explained in theprevious section consequently leads to a multi-CAD-Framework This subsection explains the developedframework and the programming libraries in view ofa KBD-Expert The framework is based on the IDE ofVisual Studio and uses the programming language VisualBasic [14] The decision criteria for this development

environment was mentioned in the previous section andthe criteria for the language-related decision can be foundin section 4

Figure 5 illustrates the environment of the presentapproach including the internal main modules and theirdocked satellites The abstract methods which coveruniversal functions are stored inside the frameworkThis includes ldquoCAD baserdquo ldquoUtilitiesrdquo ldquoInfrastructurerdquoand ldquoSettingsrdquo classes These base classes are managedby the KBD-Expert and define fundamental function-alities of the docked satellites The development andimplementation of these objects are not explained indetail in this paper except the ldquoCAD baserdquo class Thissuperordinate functional definition allows docking of dif-ferent applications in an efficient way and grants theconsequent enhancement of the framework The KBD-Engineer implements the framework in the developmentprocess of a new KBD-Tool The developer can accessndash on require ndash all implemented methods via the novelframework The final KBD-Tool has to be analyzed bythe KBD-Expert regarding their implemented function-alities In the next step the KBD-Expert performs anabstraction of the functionalities and defines the ade-quate implementation of new base functions Thus thebase functionality rises with each single application andexpands the predefined functions for future projects

The CAD related assemblies are illustrated at the bot-tom of Figure 5 by Siemensrsquo NX Dassaultrsquos CATIA V5and any additional CAD system ndash like PTC Creo Ele-ments [15] Furthermore third party applications likeExcel Acrobat or Matlab are also supported by the inter-face Different PDM systems databases and finally sin-gle specialized KBD tools are optional satellites whichcan be implemented in the multi-CAD-Framework Thepredefined overall structure grants the integrity and the

476 M SALCHNER ET AL

Figure 5 Multi-CAD-Framework

intuitive working principle for all KBD-Engineers Fur-thermore the environment includes a defined strategyfor serviceability reuse as well as protection and licens-ing aspects

The database interface gives the developer the abil-ity to use different database functionalities This includesthe ease creation of user defined local or server databasesand allows quick storage and reuse of application relatedinformation Furthermore database-applications pro-vide useful functionalities for listing sorting or search-ing of data and enable a dynamic application layout

The overall implementation expands the functionscope enormously and enables an efficient interactionbetween CAD and third party tools Exemplary inter-disciplinary KBD tools are geometry-based analysis andoptimization routines eg specific suspension optimiza-tion For example this enables a transfer of main sus-pension points which are defined and stored in theCAD system to a Matlab optimization routine The rou-tine performs an optimization with regard to occurringforces the maximum possible steering angle or diveangle The results are displayed in the CAD system andthe engineer can adapt the design model This appli-cation is exemplary illustrated as KBD-Tool 1 wherebythe KBD-Tool 2 represents a separate exemplary applica-tion shown in Figure 5 Each implemented applicationexpands the framework and enables a continuous andefficient enhancement

33 Realization ofMulti-CAD-framework

Figure 6 gives a more detailed overview of the devel-oped environment concentrating on the multi-CAD

environment In contrast to Figure 5 this representationcontains no global assignment but allows amore detailedexplanation of the developed environment

At the bottom of Figure 6 CAD systems like CATIA[4] and NX [18] are exemplarily illustrated with differ-ent releases The developed multi-CAD interface imple-ments the inconsistent application programming inter-faces of the diversified CAD systems see sub section43 The interface definition is stored in the multi-CAD-Framework and contains abstract methods for the imple-mentation of CAD systems called ldquoCAD baserdquo There-fore each CAD system and release fulfills the same basicfunctionalities like create part create picture get prop-erties or close CAD application The interface allows asimultaneous sequential or single execution of the devel-oped KBD tool within the different CAD systems Inaddition different project and release settings are sup-ported

The ldquoInfrastructurerdquo area covers basic functions andmethods of the operating system Microsoft Windows[13] Exemplary elements are folder and data manage-ment Furthermore it offers functionalities that allowthe handling of all Windows based applications Thisincludes maximize minimize or hide functions etcand an integrated docking class This method allowsthe implementation docking of any application intothe developed graphical user interface The user inter-face covers all required information and the KBD-User is not forced to switch between different win-dows The standardized layout of the GUI and thementioned functionality is also implemented in thislibrary and supports the KBD-User and KBD-Engineerequally

COMPUTER-AIDED DESIGN amp APPLICATIONS 477

Figure 6 Multi-CAD automation environment

The ldquoCADbaserdquo class initializes all CAD related devel-oped functions andmethods This library does not imple-ment the functionality itself but it defines them Eachsingle implemented CAD system is a derived class andis forced to implement the defined functions Relativelysimple CAD basic functions like the creation of a pointa line or a feature are not implemented in this levelbecause these CAD related functions are supported bythe API and it is not useful to reproduce all of themIn contrast it includes a collection of commonly usedand know-how based functions On basis of an objectoriented programming technique it is possible to forcethe developer to implement the designed function forall required CAD solutions One example of application

is a function for capturing of images The code for theimage creation is not challenging but to adjust a wholeenvironment to the defined settings can be very com-plex The implemented function performs the followingactions in addition to the passed parameters Perspec-tive position zoom visibility of constraints annotationstreeview components change the color of parts surfacesor even the entire assembly

The explained framework can be implemented andused as references by each KBD-Engineer in the develop-ment environment of Visual Studio The depicted satel-lites in Figure 5 are standalone libraries whereby anindividual implementation is enabled Some applicationsdo not need a database - or the CATIA interface and

478 M SALCHNER ET AL

therefore an implementation of these libraries is not effec-tive The current framework comprises the followingmain libraries

bull Multi-CAD-Frameworkbull Dassault CATIAV5bull Siemens NXbull Third party application ndash eg Excelbull Firebird databases [7]

Additional functionalities with numerous overload-ing methods are stored in a separate snippet libraryThey provide a large amount of different input param-eters regarding to their use An exemplary CAD relatedfunction is the ldquoCreatePointrdquo method The design of apoint can be done in various ways - by coordinateson a line a surface a body or as a center point of acircle Twenty overloading methods in NX are avail-able whereby each of them uses different NX relatedobjects which in turn are overloaded Other exemplarymethods are folder selection file selection ndash or savemethods which strongly depend on the current require-ments The snippets are implemented in the graphicalinterface of Visual Studio and can be easily accessedThe snippets are based on XML and copy the storedsource code elements into the current project The KBD-Engineer can customize the scripting lines to the currentrequirements The developed snippet library uses thesame structure as the framework library and grants anintuitive use

4 Multi-CAD developer

The previous section explained the entire framework ofthe multi-CAD approach With the target of an effec-tive use the framework design was made with focus onan intuitive usage and nomenclature To ensure stabil-ity and quality of the framework some programmingrules have to be considered Furthermore the imple-mentation effort for the KBD-Expert mentioned in subsection 32 can be reduced to a minimum This sectiontreats the defined development steps for the design of newmulti-CAD-Framework applications

41 Programming directives

This subsection focuses on programming fundamentalswhich are required for the understanding and imple-mentation of the multi-CAD approach Common KBDautomation tools are developed for one unique task byone single developer [3] [10ndash12] [16] To keep it sim-ple these tools are often coded in the so-called ldquoSpaghetticoderdquo This means that the code is unstructured and the

application of user defined objects classes or instances islimited Furthermore access modifiers eg public pri-vate protected are not used consequently and the codeflow cannot be traced - it is like a bowl of spaghettiThis way of coding seems to be the easiest way of pro-gramming but with increasing complexity and multipledevelopers it causes a lot of problems Consequently animplementation in the explained framework is impossi-ble which requires the application of the so-called objectoriented programming (OOP) approach [14]

The principle of OOP bases on the definition ofuser defined objects and a structured code flow Theobjects contain different fields methods and propertiesas shown in Figure 7 The field group contains userdefined variables which should be only used internalThe properties provide external functionalities whichcan be accessed from outside The mentioned accessmodifiers are indicated as small symbols beside the illus-trated elements These modifiers are important for astructured code flow and allow the protection of selectedattributes

This means that specific attributes can only bechanged under certain conditions in contrast to publicattributes The main principle structure is explained by aCAD based example The base class ndash ldquoCADApplicationrdquohas twoderived classes ldquoCADNXrdquo and ldquoCADCATIAV5rdquoas shown in Figure 7 The base class defines all commonfunctionalities where the program code does not differThe modifier ldquoMustInheritrdquo defines that the creation ofa direct instance from this class is restricted The illus-trated ldquoCADApplicationrdquo class contains two fields twoproperties and five methods

The ldquoSetCADApplicationToForegroundrdquo and the con-structor sub ldquoNewrdquo are base methods which are notrelated to a specific CAD system The source code ofthese functions is implemented directly in the ldquoCADAp-plicationrdquo class The two remaining methods ldquoCADAp-plicationReadyrdquo and ldquoOpenPartrdquo are CAD system relatedfunctions and separately coded in the derived classesThey bear the modifier ldquoMustOverriderdquo which meansthat all derived classes have to implement them Ofcourse derived classes can contain additional propertiesand methods like the ldquoCADNXrdquo class

The ldquoCADInfosrdquo class is a user defined class with CADrelated attributes like ldquoVersionrdquo ldquoStartUpPathrdquo or ldquoTyperdquodepicted on the right in Figure 7 The attributes aredeclared as public elements there is no sufficient pro-tection and secure access management Under consid-eration that each ldquoCADApplicationrdquo instance comprisesthe private variable ldquom_CADInfosrdquo which represents aninstance of the ldquoCADInfosrdquo class the related informationcannot be accessed The ldquoCADInfosrdquo property is declaredas ldquoReadOnlyrdquo and so the relevant ldquoCADInfosrdquo can only

COMPUTER-AIDED DESIGN amp APPLICATIONS 479

Figure 7 Exemplary structure of the ldquoCADApplicationrdquo class

be adapted inside the ldquoCADApplicationrdquo class The initialdefinition of these variables is done by the initializationprocess of a new ldquoCADCATIAV5rdquo or ldquoCADNXrdquo object

Considering the multi-CAD-Framework structureexplained in section 3 the ldquoCADApplicationrdquo class isstored in the framework itself whereby the derivedclasses are located in the selectedCAD satellites To grantthat each KBD-Engineer receives the required informa-tion XML comments for the documentation of each sin-gle property function or sub as shown in the Figure 8 aremandatory

Figure 8 Exemplary XML comment

42 Structured programming

Based on the mentioned programming fundamentalsthis section concentrates on the developed structural

480 M SALCHNER ET AL

programming guideline which is an essential part ofthe multi-CAD strategy Each multi-CAD automationapplication should follow the main rules to grant

bull Comprehensibility for other developersbull Simplified adaption and enhancementbull Release handlingbull Enable the multi-CAD approachbull Handle API changes

Figure 9 illustrates the principle structure of a multi-CAD application The application consists of at least twodifferent projects theMain - and the Application Projectwhereby theApplication Project is referenced to theMainProject The latter can access the defined methods andproperties of the Application Project Additional feasibleprojects could be databases or third party projects Theassembly class in the Main Project is responsible for allGUI related calls events and also for the separation ofdifferent CAD systems

This distinction is carried out by the instantiation ofdifferent application assemblies For example to supportCATIA and NX within this application there has to be

one ldquoNXAssemblyrdquo and one ldquoCATIAAssemblyrdquo instanceThese derived classes inherit the base class ldquoApplica-tionAssemblyrdquo and follow the ldquoCADApplicationrdquo - prin-ciple shown in the previous section The required multi-CAD initialization functions are called from this classThe graphical user interfaces often change due to thedevelopment process or in case of different customersTherefore a codding in GUI elements should be avoidedIt ismuchmore efficient to utilize user defined events andhandle them in the assembly class Last but not least theMain Project handles the exception events the customhelp file and optional license functions This structureallows an eased adaption and enhancement ofmain func-tionalities of the program by any KBD-Engineer Differ-ent application releases for various customers with differ-ent functionalities can be compiled in an efficient way

The main development rules for a multi-CAD appli-cation are

(1) At least two separate projects ndash Main and Applica-tion

(2) No CAD or know-how related source code in theMain Project

Figure 9 Structured programming layout for multi-CAD applications

COMPUTER-AIDED DESIGN amp APPLICATIONS 481

(3) No code elements in the GUI(4) CAD system separation in the Main Project(5) All calls from the project related assembly class(6) CAD release separation in Application Assembly

class

The Application Project contains all required func-tions for the developed application itself This includesuniversal base classes and derived CAD related classesas shown in Figure 9 Of course this project can alsoinclude CAD independent classes for general functional-ities like the creation of folders files or other third partyapplications

It is up to the developer to decide when a separateproject (eg third party project) is created or not In gen-eral it is advisable to create a new project as soon asan additional API is used (eg Excel) The code separa-tion for different CAD releases caused by API changesshould be handled in the concerning CAD assembly asillustrated in 10

The Figure 10 shows the three different classesndashldquoNXAssemblyrdquo ldquoBOMNXrdquo and ldquoCADItemNXrdquo- includ-ing some general code elements The ldquoGetTreerdquo prop-erty of the ldquoNXAssemblyrdquo is the starting point wherea separation of NX releases is carried out ndash NX 75and NX 85 The optimum source code on the left sidewould call the release dependent methods from hereand also release independent functions like ldquoListCA-DItemsrdquo Unfortunately this represents a major effort in

the practical development The application is in commondeveloped for one single release and therefore the codestructure is defined in a logical way ndash as shown onthe right side The implementation of further releasesis added as needed later From this stage of develop-ment the KBD-Engineer is confronted with possible APIdifferences within the CAD releases In the example inFigure 10 the code differs in a deep layer of the pro-gram structure The release separation is required in theldquom_GetItemAttributesrdquo sub within the ldquoCADItemNXrdquoclass ndash at the bottom The developer has to change theentire structure and methods to perform a release dis-tinction in the ldquoNXAssemblyrdquo Therefore identical basiccode elements have to be duplicated for small differ-ences within some code lines This is not purposefulproduces unnecessary code and the effort increases inmaintenance modifications and handling of program-ming errors Experienced developers can estimate thedifferences already in the run and thus implement anappropriate structure

To avoid the mentioned structural changes in case ofsmall API differences but to allow later code trackinga keyword eg ldquoCADReleaserdquo is defined This keywordis used as function or property argument for each singlemethod which requires a separation of CAD releases

43 CADAutomation interfaces

APIs are based on core algorithms of theCAD system andallow the definition and development ofKBDautomation

Figure 10 API handling

482 M SALCHNER ET AL

routines The functional scope of the automation rou-tines is only limited by the provided CAD-API wherebythis functionality is often coupled with the used pro-gramming language and available license packages Thecommon denominator of different CAD systems regard-ing functionality costs and development within the pre-sented approach is stated by the NET framework It is asoftware framework developed by Microsoft since 2002which supports different coding languages like VisualBasic (VB) C or J Due to the fact that many CADsolutions deliver integratedVB programming editors andsimultaneously provide VBNET the multi-CAD strat-egy is developed based on this programming languageThe main disadvantage compared to programming lan-guages like C is a lack of code protection Neverthelessthere are some options to protect the code in an efficientand sufficient way Considering that todayrsquos most KBDtools in automotive industry are specific in-house appli-cations the protection of knowledge plays an importantrole [4] [14] [15] [18]

CAD related programming libraries can be providedin two species The first one includes dynamic linklibraries (dlls) which can be added as stand-alone ref-erences to the desired programming environment ndash NXThe second possibility is to use registered ActiveX ele-ments which are based on the Component ObjectModel(COM) standard - CATIA In this case the references arenot linked in a static way but based on windows registryentries The required libraries are loaded at runtime bydefault either from the startup path (dlls) or by use ofthe current registered COM element This faces a prob-lematic situation in case of different CAD releases Thecode libraries of different CAD releases or versions havethe same nomenclature and therefore a specific linkingmethod was developed

The mentioned problem can be handled in differ-ent ways During the iterative development processexplained in section 31 a large amount of different con-cepts has been worked out The result which fits all men-tioned requirements under consideration of the entirestrategy is explained in the next lines

The solution bypasses the windows registry entriesand allows a much more efficient realization of multi-release capability At startup of the initialization processthe current running CAD process is linked Based on thecurrent CAD system the required libraries are automati-cally created In the final step the libraries are loaded atruntime This method fulfills all requirements consider-ing the multi-CAD approach

The virtual connection between the KBD tool and theCAD system is carried out by a connection principlewhich is also defined by the API of the CAD systemCATIA for example is based on the Component Object

Model (COM)ofMicrosoft and therefore the connectionto the actual active CATIA window is reached out due tothe registered application name ndash ldquoCATIAApplicationrdquoThus different CATIA releases cannot be differenti-ated and therefore multiple window applications are notallowed The API of NX on the other hand is not basedon the COM strategy In this case the connection isperformed due to the Transmission Control Protocol Internet Protocol (TCPIP) by use of a server and a clientapplication whereby both can be applied on one singlecomputer [4] [14] [18]

ThementionedCAD initialization process and the dif-ferent connection methods are implemented within themulti-CAD-Framework accessible for KDB-Developer

5 Conclusions

The presented approach provides a platform for theefficient development of KBD applications for multi-CAD environments This includes amulti-CAD interfaceand different software modules that manage inconsis-tent CAD APIs capture knowledge provide reusablefunctions and libraries and have an enhanced serviceand error handling In contrast to common approacheswhere one single KBD tool has to be released sepa-rately for each single CAD-system and release this novelstrategy allows a standalone-releasing of different KBDtools This simplifies company-internal roll out proce-dure update management and administration Of coursethis strategy is part of the framework and uses the men-tionedFirebird database as application storage userman-agement and administration Furthermore it plays animportant role regarding the protection of the applica-tion and consequently of the knowledge On the otherhand the change or update management in view of theKBD-Engineer is therefore optimized because of a cen-tralized project management In this way the KBD-Useris not forced to execute different application files and thestandardized consistent GUI of all KBD tools minimizesthe training period significantly Referring to the start-ing statement concerning future trends of web-based andcase-based applications the presented framework allowsthe creation of four different solutions

bull Windows Form Application [14]bull Windows Console Application [14]bull Windows Service Application [14]bull Web Apps with ASPNET [14]

In the next months the approach is applied in a broadway by implementation of the new API of CATIA V6 [4]and additional open source CAD viewing tools Further-more different open source geometrical libraries will be

COMPUTER-AIDED DESIGN amp APPLICATIONS 483

investigated and the open xml software development kit[14] will be implemented In this way the functionalitywill grow and the platform - and vendor dependency willdecrease step by step

Considering multiply effects because of a large num-ber of KBD tools used in automotive industry a sig-nificant time reduction in the application of complexCAD-environment can be achieved

ORCID

Markus Salchner httporcidorg0000-0001-6379-0562Severin Stadler httporcidorg0000-0001-9867-0552Mario Hirz httporcidorg0000-0002-4502-4255

References

[1] CADEC Works httpwwwcadecin access date 2015-04-08

[2] Catic A Malmqvist J Towards integration of KBE andPLM International Conference on Engineering Design2007

[3] Chapman CB Pinfold M The application of a knowl-edge based engineering approach to the rapid design andanalysis of an automotive structure Advances in Engi-neering Software 32 2001 903ndash912 httpdxdoiorg101016S0965-9978(01)00041-2

[4] Dassault Systemes httpwww3dscom access date2015-01-27

[5] Eclipse httpseclipseorg access date 2015-01-27[6] Eigner M Stelzer R Product Lifecycle Management

Ein Leitfaden fuumlr Product Development und Life CycleManagement Springer 2009 ISBN 9783540443735httpdxdoiorg101007b93672

[7] Firebird httpwwwfirebirdsqlorg access date 2015-04-13

[8] Hirz M Dietrich W Gfrerrer A Lang J Inte-grated computer-aided design in automotive develop-ment development processes geometric fundamentalsmethods of CAD knowledge-based engineering datamanagement Springer 2013 ISBN 9783642119392httpdxdoiorg101007978-3-642-11940-8

[9] KBEWorks httpwwwvisionkbecom access date 2015-04-08

[10] Lin B-T Chan C-K Wang J-C A knowledge-basedparametric design system for drawing dies InternationalJournal of Advanced Manufacturing Technology 362008 671ndash680 httpdxdoiorg101007s00170-006-0882-y

[11] Lin B-T Chang M-R Huang H-L Liu C-YComputer-aided structural design of drawing dies forstamping processes based on functional features Interna-tional Journal of Advanced Manufacturing Technology42 2009 1140ndash1152 httpdxdoiorg101007s00170-008-1670-7

[12] Ma QC Liu XW Review of Knowledge Based Engi-neering with PLM Applied Mechanics and Materials10ndash12 2007 127ndash130 httpdxdoiorg104028wwwscientificnetAMM10-12127

[13] Microsoft Developer Network httpmsdnmicrosoftcomde-atdn308572aspx

[14] Microsoft httpmicrosoftcom access date 2015-01-27[15] PTC httpwwwptccom access date 2015-01-27[16] Reddy E J Sridhar C N V Rangadu V P Knowl-

edge Based Engineering Notion Approaches and FutureTrends American Journal of Intelligent Systems 5(1)2015 1ndash17 httpdxdoiorg105923jajis2015050101

[17] Siemens PLM httpwwwplmautomationsiemenscomaccess date 2015-01-27

[18] Sanya IO Shehab EM An ontology frameworkfor developing platform-independent knowledge-basedengineering systems in the aerospace industry Inter-national Journal of Production Research 52 20146192ndash6215 httpdxdoiorg101080002075432014919422

[19] Skarka W Application of MOKA methodology in gen-erative model creation using CATIA Engineering Appli-cations of Artificial Intelligence 20 2007 677ndash690httpdxdoiorg101016jengappai200611019

[20] Stokes M Managing Engineering Knowledge ndash MOKAMethodology for Knowledge Based Engineering Appli-cations Professional Engineering Publishing LimitedASME Press 2001

[21] Tacton httpwwwtactoncom access date 2015-04-08[22] Transcat-PLM httpswwwtranscat-plmcom access

date 2015-01-27[23] Van Der Laan AH Van Tooren MJL Parametric

modeling of movables for structural analysis Journal ofAircraft 42 2005 1606ndash1614 httpdxdoiorg10251419764

  • 1 Introduction
  • 2 Knowledge-based design methods
  • 3 Multi-CAD approach
    • 31 Development process
    • 32 Overview of the Multi-CAD-framework
    • 33 Realization of Multi-CAD-framework
      • 4 Multi-CAD developer
        • 41 Programming directives
        • 42 Structured programming
        • 43 CAD Automation interfaces
          • 5 Conclusions
          • ORCID
          • References
Page 5: Multi-CAD approach for knowledge-based design methods4)_2016_471-483.pdf · universal functions, are stored inside the framework. This includes “CAD base”, “Utilities”, “Infrastructure”

COMPUTER-AIDED DESIGN amp APPLICATIONS 475

Figure 4 Development process of multi-CAD environment

The first step includes the conceptual layout of amulti-CAD automation strategy illustrated at the bottom linein Figure 4 By an exemplary application the strategyhas been used to integrate the CAD software packagesCATIA V5 and Siemens NX but the general approachmay be suitable for other CAD software too This appli-cation states the basis for the subsequent developmentimplementation and testing procedure Therefore theexemplary application is designed to cover a wide rangeof automation methods taking into account variousnamespaces classes and functions of the provided pro-gramming interfaces In case of Siemens NX there arefour main libraries available whereby the CATIA API isstructuredmore widespread (more than eighty libraries)After the validation of this concept the next developmentstep focuses on a multi-CAD release strategy ndash layer twoThis treats the application compatibility for oneCADsys-tem including its chronological releases After the testingand implementation cycle of this layer both the multi-CAD - and the multi-Release concept are transferredto the final development layer This development levelconsiders a strategy for the reuse and protection of theoverall method This entire development process resultsin a final multi-CAD environment as illustrated in thetop layer

32 Overview of theMulti-CAD-framework

The iterative development process explained in theprevious section consequently leads to a multi-CAD-Framework This subsection explains the developedframework and the programming libraries in view ofa KBD-Expert The framework is based on the IDE ofVisual Studio and uses the programming language VisualBasic [14] The decision criteria for this development

environment was mentioned in the previous section andthe criteria for the language-related decision can be foundin section 4

Figure 5 illustrates the environment of the presentapproach including the internal main modules and theirdocked satellites The abstract methods which coveruniversal functions are stored inside the frameworkThis includes ldquoCAD baserdquo ldquoUtilitiesrdquo ldquoInfrastructurerdquoand ldquoSettingsrdquo classes These base classes are managedby the KBD-Expert and define fundamental function-alities of the docked satellites The development andimplementation of these objects are not explained indetail in this paper except the ldquoCAD baserdquo class Thissuperordinate functional definition allows docking of dif-ferent applications in an efficient way and grants theconsequent enhancement of the framework The KBD-Engineer implements the framework in the developmentprocess of a new KBD-Tool The developer can accessndash on require ndash all implemented methods via the novelframework The final KBD-Tool has to be analyzed bythe KBD-Expert regarding their implemented function-alities In the next step the KBD-Expert performs anabstraction of the functionalities and defines the ade-quate implementation of new base functions Thus thebase functionality rises with each single application andexpands the predefined functions for future projects

The CAD related assemblies are illustrated at the bot-tom of Figure 5 by Siemensrsquo NX Dassaultrsquos CATIA V5and any additional CAD system ndash like PTC Creo Ele-ments [15] Furthermore third party applications likeExcel Acrobat or Matlab are also supported by the inter-face Different PDM systems databases and finally sin-gle specialized KBD tools are optional satellites whichcan be implemented in the multi-CAD-Framework Thepredefined overall structure grants the integrity and the

476 M SALCHNER ET AL

Figure 5 Multi-CAD-Framework

intuitive working principle for all KBD-Engineers Fur-thermore the environment includes a defined strategyfor serviceability reuse as well as protection and licens-ing aspects

The database interface gives the developer the abil-ity to use different database functionalities This includesthe ease creation of user defined local or server databasesand allows quick storage and reuse of application relatedinformation Furthermore database-applications pro-vide useful functionalities for listing sorting or search-ing of data and enable a dynamic application layout

The overall implementation expands the functionscope enormously and enables an efficient interactionbetween CAD and third party tools Exemplary inter-disciplinary KBD tools are geometry-based analysis andoptimization routines eg specific suspension optimiza-tion For example this enables a transfer of main sus-pension points which are defined and stored in theCAD system to a Matlab optimization routine The rou-tine performs an optimization with regard to occurringforces the maximum possible steering angle or diveangle The results are displayed in the CAD system andthe engineer can adapt the design model This appli-cation is exemplary illustrated as KBD-Tool 1 wherebythe KBD-Tool 2 represents a separate exemplary applica-tion shown in Figure 5 Each implemented applicationexpands the framework and enables a continuous andefficient enhancement

33 Realization ofMulti-CAD-framework

Figure 6 gives a more detailed overview of the devel-oped environment concentrating on the multi-CAD

environment In contrast to Figure 5 this representationcontains no global assignment but allows amore detailedexplanation of the developed environment

At the bottom of Figure 6 CAD systems like CATIA[4] and NX [18] are exemplarily illustrated with differ-ent releases The developed multi-CAD interface imple-ments the inconsistent application programming inter-faces of the diversified CAD systems see sub section43 The interface definition is stored in the multi-CAD-Framework and contains abstract methods for the imple-mentation of CAD systems called ldquoCAD baserdquo There-fore each CAD system and release fulfills the same basicfunctionalities like create part create picture get prop-erties or close CAD application The interface allows asimultaneous sequential or single execution of the devel-oped KBD tool within the different CAD systems Inaddition different project and release settings are sup-ported

The ldquoInfrastructurerdquo area covers basic functions andmethods of the operating system Microsoft Windows[13] Exemplary elements are folder and data manage-ment Furthermore it offers functionalities that allowthe handling of all Windows based applications Thisincludes maximize minimize or hide functions etcand an integrated docking class This method allowsthe implementation docking of any application intothe developed graphical user interface The user inter-face covers all required information and the KBD-User is not forced to switch between different win-dows The standardized layout of the GUI and thementioned functionality is also implemented in thislibrary and supports the KBD-User and KBD-Engineerequally

COMPUTER-AIDED DESIGN amp APPLICATIONS 477

Figure 6 Multi-CAD automation environment

The ldquoCADbaserdquo class initializes all CAD related devel-oped functions andmethods This library does not imple-ment the functionality itself but it defines them Eachsingle implemented CAD system is a derived class andis forced to implement the defined functions Relativelysimple CAD basic functions like the creation of a pointa line or a feature are not implemented in this levelbecause these CAD related functions are supported bythe API and it is not useful to reproduce all of themIn contrast it includes a collection of commonly usedand know-how based functions On basis of an objectoriented programming technique it is possible to forcethe developer to implement the designed function forall required CAD solutions One example of application

is a function for capturing of images The code for theimage creation is not challenging but to adjust a wholeenvironment to the defined settings can be very com-plex The implemented function performs the followingactions in addition to the passed parameters Perspec-tive position zoom visibility of constraints annotationstreeview components change the color of parts surfacesor even the entire assembly

The explained framework can be implemented andused as references by each KBD-Engineer in the develop-ment environment of Visual Studio The depicted satel-lites in Figure 5 are standalone libraries whereby anindividual implementation is enabled Some applicationsdo not need a database - or the CATIA interface and

478 M SALCHNER ET AL

therefore an implementation of these libraries is not effec-tive The current framework comprises the followingmain libraries

bull Multi-CAD-Frameworkbull Dassault CATIAV5bull Siemens NXbull Third party application ndash eg Excelbull Firebird databases [7]

Additional functionalities with numerous overload-ing methods are stored in a separate snippet libraryThey provide a large amount of different input param-eters regarding to their use An exemplary CAD relatedfunction is the ldquoCreatePointrdquo method The design of apoint can be done in various ways - by coordinateson a line a surface a body or as a center point of acircle Twenty overloading methods in NX are avail-able whereby each of them uses different NX relatedobjects which in turn are overloaded Other exemplarymethods are folder selection file selection ndash or savemethods which strongly depend on the current require-ments The snippets are implemented in the graphicalinterface of Visual Studio and can be easily accessedThe snippets are based on XML and copy the storedsource code elements into the current project The KBD-Engineer can customize the scripting lines to the currentrequirements The developed snippet library uses thesame structure as the framework library and grants anintuitive use

4 Multi-CAD developer

The previous section explained the entire framework ofthe multi-CAD approach With the target of an effec-tive use the framework design was made with focus onan intuitive usage and nomenclature To ensure stabil-ity and quality of the framework some programmingrules have to be considered Furthermore the imple-mentation effort for the KBD-Expert mentioned in subsection 32 can be reduced to a minimum This sectiontreats the defined development steps for the design of newmulti-CAD-Framework applications

41 Programming directives

This subsection focuses on programming fundamentalswhich are required for the understanding and imple-mentation of the multi-CAD approach Common KBDautomation tools are developed for one unique task byone single developer [3] [10ndash12] [16] To keep it sim-ple these tools are often coded in the so-called ldquoSpaghetticoderdquo This means that the code is unstructured and the

application of user defined objects classes or instances islimited Furthermore access modifiers eg public pri-vate protected are not used consequently and the codeflow cannot be traced - it is like a bowl of spaghettiThis way of coding seems to be the easiest way of pro-gramming but with increasing complexity and multipledevelopers it causes a lot of problems Consequently animplementation in the explained framework is impossi-ble which requires the application of the so-called objectoriented programming (OOP) approach [14]

The principle of OOP bases on the definition ofuser defined objects and a structured code flow Theobjects contain different fields methods and propertiesas shown in Figure 7 The field group contains userdefined variables which should be only used internalThe properties provide external functionalities whichcan be accessed from outside The mentioned accessmodifiers are indicated as small symbols beside the illus-trated elements These modifiers are important for astructured code flow and allow the protection of selectedattributes

This means that specific attributes can only bechanged under certain conditions in contrast to publicattributes The main principle structure is explained by aCAD based example The base class ndash ldquoCADApplicationrdquohas twoderived classes ldquoCADNXrdquo and ldquoCADCATIAV5rdquoas shown in Figure 7 The base class defines all commonfunctionalities where the program code does not differThe modifier ldquoMustInheritrdquo defines that the creation ofa direct instance from this class is restricted The illus-trated ldquoCADApplicationrdquo class contains two fields twoproperties and five methods

The ldquoSetCADApplicationToForegroundrdquo and the con-structor sub ldquoNewrdquo are base methods which are notrelated to a specific CAD system The source code ofthese functions is implemented directly in the ldquoCADAp-plicationrdquo class The two remaining methods ldquoCADAp-plicationReadyrdquo and ldquoOpenPartrdquo are CAD system relatedfunctions and separately coded in the derived classesThey bear the modifier ldquoMustOverriderdquo which meansthat all derived classes have to implement them Ofcourse derived classes can contain additional propertiesand methods like the ldquoCADNXrdquo class

The ldquoCADInfosrdquo class is a user defined class with CADrelated attributes like ldquoVersionrdquo ldquoStartUpPathrdquo or ldquoTyperdquodepicted on the right in Figure 7 The attributes aredeclared as public elements there is no sufficient pro-tection and secure access management Under consid-eration that each ldquoCADApplicationrdquo instance comprisesthe private variable ldquom_CADInfosrdquo which represents aninstance of the ldquoCADInfosrdquo class the related informationcannot be accessed The ldquoCADInfosrdquo property is declaredas ldquoReadOnlyrdquo and so the relevant ldquoCADInfosrdquo can only

COMPUTER-AIDED DESIGN amp APPLICATIONS 479

Figure 7 Exemplary structure of the ldquoCADApplicationrdquo class

be adapted inside the ldquoCADApplicationrdquo class The initialdefinition of these variables is done by the initializationprocess of a new ldquoCADCATIAV5rdquo or ldquoCADNXrdquo object

Considering the multi-CAD-Framework structureexplained in section 3 the ldquoCADApplicationrdquo class isstored in the framework itself whereby the derivedclasses are located in the selectedCAD satellites To grantthat each KBD-Engineer receives the required informa-tion XML comments for the documentation of each sin-gle property function or sub as shown in the Figure 8 aremandatory

Figure 8 Exemplary XML comment

42 Structured programming

Based on the mentioned programming fundamentalsthis section concentrates on the developed structural

480 M SALCHNER ET AL

programming guideline which is an essential part ofthe multi-CAD strategy Each multi-CAD automationapplication should follow the main rules to grant

bull Comprehensibility for other developersbull Simplified adaption and enhancementbull Release handlingbull Enable the multi-CAD approachbull Handle API changes

Figure 9 illustrates the principle structure of a multi-CAD application The application consists of at least twodifferent projects theMain - and the Application Projectwhereby theApplication Project is referenced to theMainProject The latter can access the defined methods andproperties of the Application Project Additional feasibleprojects could be databases or third party projects Theassembly class in the Main Project is responsible for allGUI related calls events and also for the separation ofdifferent CAD systems

This distinction is carried out by the instantiation ofdifferent application assemblies For example to supportCATIA and NX within this application there has to be

one ldquoNXAssemblyrdquo and one ldquoCATIAAssemblyrdquo instanceThese derived classes inherit the base class ldquoApplica-tionAssemblyrdquo and follow the ldquoCADApplicationrdquo - prin-ciple shown in the previous section The required multi-CAD initialization functions are called from this classThe graphical user interfaces often change due to thedevelopment process or in case of different customersTherefore a codding in GUI elements should be avoidedIt ismuchmore efficient to utilize user defined events andhandle them in the assembly class Last but not least theMain Project handles the exception events the customhelp file and optional license functions This structureallows an eased adaption and enhancement ofmain func-tionalities of the program by any KBD-Engineer Differ-ent application releases for various customers with differ-ent functionalities can be compiled in an efficient way

The main development rules for a multi-CAD appli-cation are

(1) At least two separate projects ndash Main and Applica-tion

(2) No CAD or know-how related source code in theMain Project

Figure 9 Structured programming layout for multi-CAD applications

COMPUTER-AIDED DESIGN amp APPLICATIONS 481

(3) No code elements in the GUI(4) CAD system separation in the Main Project(5) All calls from the project related assembly class(6) CAD release separation in Application Assembly

class

The Application Project contains all required func-tions for the developed application itself This includesuniversal base classes and derived CAD related classesas shown in Figure 9 Of course this project can alsoinclude CAD independent classes for general functional-ities like the creation of folders files or other third partyapplications

It is up to the developer to decide when a separateproject (eg third party project) is created or not In gen-eral it is advisable to create a new project as soon asan additional API is used (eg Excel) The code separa-tion for different CAD releases caused by API changesshould be handled in the concerning CAD assembly asillustrated in 10

The Figure 10 shows the three different classesndashldquoNXAssemblyrdquo ldquoBOMNXrdquo and ldquoCADItemNXrdquo- includ-ing some general code elements The ldquoGetTreerdquo prop-erty of the ldquoNXAssemblyrdquo is the starting point wherea separation of NX releases is carried out ndash NX 75and NX 85 The optimum source code on the left sidewould call the release dependent methods from hereand also release independent functions like ldquoListCA-DItemsrdquo Unfortunately this represents a major effort in

the practical development The application is in commondeveloped for one single release and therefore the codestructure is defined in a logical way ndash as shown onthe right side The implementation of further releasesis added as needed later From this stage of develop-ment the KBD-Engineer is confronted with possible APIdifferences within the CAD releases In the example inFigure 10 the code differs in a deep layer of the pro-gram structure The release separation is required in theldquom_GetItemAttributesrdquo sub within the ldquoCADItemNXrdquoclass ndash at the bottom The developer has to change theentire structure and methods to perform a release dis-tinction in the ldquoNXAssemblyrdquo Therefore identical basiccode elements have to be duplicated for small differ-ences within some code lines This is not purposefulproduces unnecessary code and the effort increases inmaintenance modifications and handling of program-ming errors Experienced developers can estimate thedifferences already in the run and thus implement anappropriate structure

To avoid the mentioned structural changes in case ofsmall API differences but to allow later code trackinga keyword eg ldquoCADReleaserdquo is defined This keywordis used as function or property argument for each singlemethod which requires a separation of CAD releases

43 CADAutomation interfaces

APIs are based on core algorithms of theCAD system andallow the definition and development ofKBDautomation

Figure 10 API handling

482 M SALCHNER ET AL

routines The functional scope of the automation rou-tines is only limited by the provided CAD-API wherebythis functionality is often coupled with the used pro-gramming language and available license packages Thecommon denominator of different CAD systems regard-ing functionality costs and development within the pre-sented approach is stated by the NET framework It is asoftware framework developed by Microsoft since 2002which supports different coding languages like VisualBasic (VB) C or J Due to the fact that many CADsolutions deliver integratedVB programming editors andsimultaneously provide VBNET the multi-CAD strat-egy is developed based on this programming languageThe main disadvantage compared to programming lan-guages like C is a lack of code protection Neverthelessthere are some options to protect the code in an efficientand sufficient way Considering that todayrsquos most KBDtools in automotive industry are specific in-house appli-cations the protection of knowledge plays an importantrole [4] [14] [15] [18]

CAD related programming libraries can be providedin two species The first one includes dynamic linklibraries (dlls) which can be added as stand-alone ref-erences to the desired programming environment ndash NXThe second possibility is to use registered ActiveX ele-ments which are based on the Component ObjectModel(COM) standard - CATIA In this case the references arenot linked in a static way but based on windows registryentries The required libraries are loaded at runtime bydefault either from the startup path (dlls) or by use ofthe current registered COM element This faces a prob-lematic situation in case of different CAD releases Thecode libraries of different CAD releases or versions havethe same nomenclature and therefore a specific linkingmethod was developed

The mentioned problem can be handled in differ-ent ways During the iterative development processexplained in section 31 a large amount of different con-cepts has been worked out The result which fits all men-tioned requirements under consideration of the entirestrategy is explained in the next lines

The solution bypasses the windows registry entriesand allows a much more efficient realization of multi-release capability At startup of the initialization processthe current running CAD process is linked Based on thecurrent CAD system the required libraries are automati-cally created In the final step the libraries are loaded atruntime This method fulfills all requirements consider-ing the multi-CAD approach

The virtual connection between the KBD tool and theCAD system is carried out by a connection principlewhich is also defined by the API of the CAD systemCATIA for example is based on the Component Object

Model (COM)ofMicrosoft and therefore the connectionto the actual active CATIA window is reached out due tothe registered application name ndash ldquoCATIAApplicationrdquoThus different CATIA releases cannot be differenti-ated and therefore multiple window applications are notallowed The API of NX on the other hand is not basedon the COM strategy In this case the connection isperformed due to the Transmission Control Protocol Internet Protocol (TCPIP) by use of a server and a clientapplication whereby both can be applied on one singlecomputer [4] [14] [18]

ThementionedCAD initialization process and the dif-ferent connection methods are implemented within themulti-CAD-Framework accessible for KDB-Developer

5 Conclusions

The presented approach provides a platform for theefficient development of KBD applications for multi-CAD environments This includes amulti-CAD interfaceand different software modules that manage inconsis-tent CAD APIs capture knowledge provide reusablefunctions and libraries and have an enhanced serviceand error handling In contrast to common approacheswhere one single KBD tool has to be released sepa-rately for each single CAD-system and release this novelstrategy allows a standalone-releasing of different KBDtools This simplifies company-internal roll out proce-dure update management and administration Of coursethis strategy is part of the framework and uses the men-tionedFirebird database as application storage userman-agement and administration Furthermore it plays animportant role regarding the protection of the applica-tion and consequently of the knowledge On the otherhand the change or update management in view of theKBD-Engineer is therefore optimized because of a cen-tralized project management In this way the KBD-Useris not forced to execute different application files and thestandardized consistent GUI of all KBD tools minimizesthe training period significantly Referring to the start-ing statement concerning future trends of web-based andcase-based applications the presented framework allowsthe creation of four different solutions

bull Windows Form Application [14]bull Windows Console Application [14]bull Windows Service Application [14]bull Web Apps with ASPNET [14]

In the next months the approach is applied in a broadway by implementation of the new API of CATIA V6 [4]and additional open source CAD viewing tools Further-more different open source geometrical libraries will be

COMPUTER-AIDED DESIGN amp APPLICATIONS 483

investigated and the open xml software development kit[14] will be implemented In this way the functionalitywill grow and the platform - and vendor dependency willdecrease step by step

Considering multiply effects because of a large num-ber of KBD tools used in automotive industry a sig-nificant time reduction in the application of complexCAD-environment can be achieved

ORCID

Markus Salchner httporcidorg0000-0001-6379-0562Severin Stadler httporcidorg0000-0001-9867-0552Mario Hirz httporcidorg0000-0002-4502-4255

References

[1] CADEC Works httpwwwcadecin access date 2015-04-08

[2] Catic A Malmqvist J Towards integration of KBE andPLM International Conference on Engineering Design2007

[3] Chapman CB Pinfold M The application of a knowl-edge based engineering approach to the rapid design andanalysis of an automotive structure Advances in Engi-neering Software 32 2001 903ndash912 httpdxdoiorg101016S0965-9978(01)00041-2

[4] Dassault Systemes httpwww3dscom access date2015-01-27

[5] Eclipse httpseclipseorg access date 2015-01-27[6] Eigner M Stelzer R Product Lifecycle Management

Ein Leitfaden fuumlr Product Development und Life CycleManagement Springer 2009 ISBN 9783540443735httpdxdoiorg101007b93672

[7] Firebird httpwwwfirebirdsqlorg access date 2015-04-13

[8] Hirz M Dietrich W Gfrerrer A Lang J Inte-grated computer-aided design in automotive develop-ment development processes geometric fundamentalsmethods of CAD knowledge-based engineering datamanagement Springer 2013 ISBN 9783642119392httpdxdoiorg101007978-3-642-11940-8

[9] KBEWorks httpwwwvisionkbecom access date 2015-04-08

[10] Lin B-T Chan C-K Wang J-C A knowledge-basedparametric design system for drawing dies InternationalJournal of Advanced Manufacturing Technology 362008 671ndash680 httpdxdoiorg101007s00170-006-0882-y

[11] Lin B-T Chang M-R Huang H-L Liu C-YComputer-aided structural design of drawing dies forstamping processes based on functional features Interna-tional Journal of Advanced Manufacturing Technology42 2009 1140ndash1152 httpdxdoiorg101007s00170-008-1670-7

[12] Ma QC Liu XW Review of Knowledge Based Engi-neering with PLM Applied Mechanics and Materials10ndash12 2007 127ndash130 httpdxdoiorg104028wwwscientificnetAMM10-12127

[13] Microsoft Developer Network httpmsdnmicrosoftcomde-atdn308572aspx

[14] Microsoft httpmicrosoftcom access date 2015-01-27[15] PTC httpwwwptccom access date 2015-01-27[16] Reddy E J Sridhar C N V Rangadu V P Knowl-

edge Based Engineering Notion Approaches and FutureTrends American Journal of Intelligent Systems 5(1)2015 1ndash17 httpdxdoiorg105923jajis2015050101

[17] Siemens PLM httpwwwplmautomationsiemenscomaccess date 2015-01-27

[18] Sanya IO Shehab EM An ontology frameworkfor developing platform-independent knowledge-basedengineering systems in the aerospace industry Inter-national Journal of Production Research 52 20146192ndash6215 httpdxdoiorg101080002075432014919422

[19] Skarka W Application of MOKA methodology in gen-erative model creation using CATIA Engineering Appli-cations of Artificial Intelligence 20 2007 677ndash690httpdxdoiorg101016jengappai200611019

[20] Stokes M Managing Engineering Knowledge ndash MOKAMethodology for Knowledge Based Engineering Appli-cations Professional Engineering Publishing LimitedASME Press 2001

[21] Tacton httpwwwtactoncom access date 2015-04-08[22] Transcat-PLM httpswwwtranscat-plmcom access

date 2015-01-27[23] Van Der Laan AH Van Tooren MJL Parametric

modeling of movables for structural analysis Journal ofAircraft 42 2005 1606ndash1614 httpdxdoiorg10251419764

  • 1 Introduction
  • 2 Knowledge-based design methods
  • 3 Multi-CAD approach
    • 31 Development process
    • 32 Overview of the Multi-CAD-framework
    • 33 Realization of Multi-CAD-framework
      • 4 Multi-CAD developer
        • 41 Programming directives
        • 42 Structured programming
        • 43 CAD Automation interfaces
          • 5 Conclusions
          • ORCID
          • References
Page 6: Multi-CAD approach for knowledge-based design methods4)_2016_471-483.pdf · universal functions, are stored inside the framework. This includes “CAD base”, “Utilities”, “Infrastructure”

476 M SALCHNER ET AL

Figure 5 Multi-CAD-Framework

intuitive working principle for all KBD-Engineers Fur-thermore the environment includes a defined strategyfor serviceability reuse as well as protection and licens-ing aspects

The database interface gives the developer the abil-ity to use different database functionalities This includesthe ease creation of user defined local or server databasesand allows quick storage and reuse of application relatedinformation Furthermore database-applications pro-vide useful functionalities for listing sorting or search-ing of data and enable a dynamic application layout

The overall implementation expands the functionscope enormously and enables an efficient interactionbetween CAD and third party tools Exemplary inter-disciplinary KBD tools are geometry-based analysis andoptimization routines eg specific suspension optimiza-tion For example this enables a transfer of main sus-pension points which are defined and stored in theCAD system to a Matlab optimization routine The rou-tine performs an optimization with regard to occurringforces the maximum possible steering angle or diveangle The results are displayed in the CAD system andthe engineer can adapt the design model This appli-cation is exemplary illustrated as KBD-Tool 1 wherebythe KBD-Tool 2 represents a separate exemplary applica-tion shown in Figure 5 Each implemented applicationexpands the framework and enables a continuous andefficient enhancement

33 Realization ofMulti-CAD-framework

Figure 6 gives a more detailed overview of the devel-oped environment concentrating on the multi-CAD

environment In contrast to Figure 5 this representationcontains no global assignment but allows amore detailedexplanation of the developed environment

At the bottom of Figure 6 CAD systems like CATIA[4] and NX [18] are exemplarily illustrated with differ-ent releases The developed multi-CAD interface imple-ments the inconsistent application programming inter-faces of the diversified CAD systems see sub section43 The interface definition is stored in the multi-CAD-Framework and contains abstract methods for the imple-mentation of CAD systems called ldquoCAD baserdquo There-fore each CAD system and release fulfills the same basicfunctionalities like create part create picture get prop-erties or close CAD application The interface allows asimultaneous sequential or single execution of the devel-oped KBD tool within the different CAD systems Inaddition different project and release settings are sup-ported

The ldquoInfrastructurerdquo area covers basic functions andmethods of the operating system Microsoft Windows[13] Exemplary elements are folder and data manage-ment Furthermore it offers functionalities that allowthe handling of all Windows based applications Thisincludes maximize minimize or hide functions etcand an integrated docking class This method allowsthe implementation docking of any application intothe developed graphical user interface The user inter-face covers all required information and the KBD-User is not forced to switch between different win-dows The standardized layout of the GUI and thementioned functionality is also implemented in thislibrary and supports the KBD-User and KBD-Engineerequally

COMPUTER-AIDED DESIGN amp APPLICATIONS 477

Figure 6 Multi-CAD automation environment

The ldquoCADbaserdquo class initializes all CAD related devel-oped functions andmethods This library does not imple-ment the functionality itself but it defines them Eachsingle implemented CAD system is a derived class andis forced to implement the defined functions Relativelysimple CAD basic functions like the creation of a pointa line or a feature are not implemented in this levelbecause these CAD related functions are supported bythe API and it is not useful to reproduce all of themIn contrast it includes a collection of commonly usedand know-how based functions On basis of an objectoriented programming technique it is possible to forcethe developer to implement the designed function forall required CAD solutions One example of application

is a function for capturing of images The code for theimage creation is not challenging but to adjust a wholeenvironment to the defined settings can be very com-plex The implemented function performs the followingactions in addition to the passed parameters Perspec-tive position zoom visibility of constraints annotationstreeview components change the color of parts surfacesor even the entire assembly

The explained framework can be implemented andused as references by each KBD-Engineer in the develop-ment environment of Visual Studio The depicted satel-lites in Figure 5 are standalone libraries whereby anindividual implementation is enabled Some applicationsdo not need a database - or the CATIA interface and

478 M SALCHNER ET AL

therefore an implementation of these libraries is not effec-tive The current framework comprises the followingmain libraries

bull Multi-CAD-Frameworkbull Dassault CATIAV5bull Siemens NXbull Third party application ndash eg Excelbull Firebird databases [7]

Additional functionalities with numerous overload-ing methods are stored in a separate snippet libraryThey provide a large amount of different input param-eters regarding to their use An exemplary CAD relatedfunction is the ldquoCreatePointrdquo method The design of apoint can be done in various ways - by coordinateson a line a surface a body or as a center point of acircle Twenty overloading methods in NX are avail-able whereby each of them uses different NX relatedobjects which in turn are overloaded Other exemplarymethods are folder selection file selection ndash or savemethods which strongly depend on the current require-ments The snippets are implemented in the graphicalinterface of Visual Studio and can be easily accessedThe snippets are based on XML and copy the storedsource code elements into the current project The KBD-Engineer can customize the scripting lines to the currentrequirements The developed snippet library uses thesame structure as the framework library and grants anintuitive use

4 Multi-CAD developer

The previous section explained the entire framework ofthe multi-CAD approach With the target of an effec-tive use the framework design was made with focus onan intuitive usage and nomenclature To ensure stabil-ity and quality of the framework some programmingrules have to be considered Furthermore the imple-mentation effort for the KBD-Expert mentioned in subsection 32 can be reduced to a minimum This sectiontreats the defined development steps for the design of newmulti-CAD-Framework applications

41 Programming directives

This subsection focuses on programming fundamentalswhich are required for the understanding and imple-mentation of the multi-CAD approach Common KBDautomation tools are developed for one unique task byone single developer [3] [10ndash12] [16] To keep it sim-ple these tools are often coded in the so-called ldquoSpaghetticoderdquo This means that the code is unstructured and the

application of user defined objects classes or instances islimited Furthermore access modifiers eg public pri-vate protected are not used consequently and the codeflow cannot be traced - it is like a bowl of spaghettiThis way of coding seems to be the easiest way of pro-gramming but with increasing complexity and multipledevelopers it causes a lot of problems Consequently animplementation in the explained framework is impossi-ble which requires the application of the so-called objectoriented programming (OOP) approach [14]

The principle of OOP bases on the definition ofuser defined objects and a structured code flow Theobjects contain different fields methods and propertiesas shown in Figure 7 The field group contains userdefined variables which should be only used internalThe properties provide external functionalities whichcan be accessed from outside The mentioned accessmodifiers are indicated as small symbols beside the illus-trated elements These modifiers are important for astructured code flow and allow the protection of selectedattributes

This means that specific attributes can only bechanged under certain conditions in contrast to publicattributes The main principle structure is explained by aCAD based example The base class ndash ldquoCADApplicationrdquohas twoderived classes ldquoCADNXrdquo and ldquoCADCATIAV5rdquoas shown in Figure 7 The base class defines all commonfunctionalities where the program code does not differThe modifier ldquoMustInheritrdquo defines that the creation ofa direct instance from this class is restricted The illus-trated ldquoCADApplicationrdquo class contains two fields twoproperties and five methods

The ldquoSetCADApplicationToForegroundrdquo and the con-structor sub ldquoNewrdquo are base methods which are notrelated to a specific CAD system The source code ofthese functions is implemented directly in the ldquoCADAp-plicationrdquo class The two remaining methods ldquoCADAp-plicationReadyrdquo and ldquoOpenPartrdquo are CAD system relatedfunctions and separately coded in the derived classesThey bear the modifier ldquoMustOverriderdquo which meansthat all derived classes have to implement them Ofcourse derived classes can contain additional propertiesand methods like the ldquoCADNXrdquo class

The ldquoCADInfosrdquo class is a user defined class with CADrelated attributes like ldquoVersionrdquo ldquoStartUpPathrdquo or ldquoTyperdquodepicted on the right in Figure 7 The attributes aredeclared as public elements there is no sufficient pro-tection and secure access management Under consid-eration that each ldquoCADApplicationrdquo instance comprisesthe private variable ldquom_CADInfosrdquo which represents aninstance of the ldquoCADInfosrdquo class the related informationcannot be accessed The ldquoCADInfosrdquo property is declaredas ldquoReadOnlyrdquo and so the relevant ldquoCADInfosrdquo can only

COMPUTER-AIDED DESIGN amp APPLICATIONS 479

Figure 7 Exemplary structure of the ldquoCADApplicationrdquo class

be adapted inside the ldquoCADApplicationrdquo class The initialdefinition of these variables is done by the initializationprocess of a new ldquoCADCATIAV5rdquo or ldquoCADNXrdquo object

Considering the multi-CAD-Framework structureexplained in section 3 the ldquoCADApplicationrdquo class isstored in the framework itself whereby the derivedclasses are located in the selectedCAD satellites To grantthat each KBD-Engineer receives the required informa-tion XML comments for the documentation of each sin-gle property function or sub as shown in the Figure 8 aremandatory

Figure 8 Exemplary XML comment

42 Structured programming

Based on the mentioned programming fundamentalsthis section concentrates on the developed structural

480 M SALCHNER ET AL

programming guideline which is an essential part ofthe multi-CAD strategy Each multi-CAD automationapplication should follow the main rules to grant

bull Comprehensibility for other developersbull Simplified adaption and enhancementbull Release handlingbull Enable the multi-CAD approachbull Handle API changes

Figure 9 illustrates the principle structure of a multi-CAD application The application consists of at least twodifferent projects theMain - and the Application Projectwhereby theApplication Project is referenced to theMainProject The latter can access the defined methods andproperties of the Application Project Additional feasibleprojects could be databases or third party projects Theassembly class in the Main Project is responsible for allGUI related calls events and also for the separation ofdifferent CAD systems

This distinction is carried out by the instantiation ofdifferent application assemblies For example to supportCATIA and NX within this application there has to be

one ldquoNXAssemblyrdquo and one ldquoCATIAAssemblyrdquo instanceThese derived classes inherit the base class ldquoApplica-tionAssemblyrdquo and follow the ldquoCADApplicationrdquo - prin-ciple shown in the previous section The required multi-CAD initialization functions are called from this classThe graphical user interfaces often change due to thedevelopment process or in case of different customersTherefore a codding in GUI elements should be avoidedIt ismuchmore efficient to utilize user defined events andhandle them in the assembly class Last but not least theMain Project handles the exception events the customhelp file and optional license functions This structureallows an eased adaption and enhancement ofmain func-tionalities of the program by any KBD-Engineer Differ-ent application releases for various customers with differ-ent functionalities can be compiled in an efficient way

The main development rules for a multi-CAD appli-cation are

(1) At least two separate projects ndash Main and Applica-tion

(2) No CAD or know-how related source code in theMain Project

Figure 9 Structured programming layout for multi-CAD applications

COMPUTER-AIDED DESIGN amp APPLICATIONS 481

(3) No code elements in the GUI(4) CAD system separation in the Main Project(5) All calls from the project related assembly class(6) CAD release separation in Application Assembly

class

The Application Project contains all required func-tions for the developed application itself This includesuniversal base classes and derived CAD related classesas shown in Figure 9 Of course this project can alsoinclude CAD independent classes for general functional-ities like the creation of folders files or other third partyapplications

It is up to the developer to decide when a separateproject (eg third party project) is created or not In gen-eral it is advisable to create a new project as soon asan additional API is used (eg Excel) The code separa-tion for different CAD releases caused by API changesshould be handled in the concerning CAD assembly asillustrated in 10

The Figure 10 shows the three different classesndashldquoNXAssemblyrdquo ldquoBOMNXrdquo and ldquoCADItemNXrdquo- includ-ing some general code elements The ldquoGetTreerdquo prop-erty of the ldquoNXAssemblyrdquo is the starting point wherea separation of NX releases is carried out ndash NX 75and NX 85 The optimum source code on the left sidewould call the release dependent methods from hereand also release independent functions like ldquoListCA-DItemsrdquo Unfortunately this represents a major effort in

the practical development The application is in commondeveloped for one single release and therefore the codestructure is defined in a logical way ndash as shown onthe right side The implementation of further releasesis added as needed later From this stage of develop-ment the KBD-Engineer is confronted with possible APIdifferences within the CAD releases In the example inFigure 10 the code differs in a deep layer of the pro-gram structure The release separation is required in theldquom_GetItemAttributesrdquo sub within the ldquoCADItemNXrdquoclass ndash at the bottom The developer has to change theentire structure and methods to perform a release dis-tinction in the ldquoNXAssemblyrdquo Therefore identical basiccode elements have to be duplicated for small differ-ences within some code lines This is not purposefulproduces unnecessary code and the effort increases inmaintenance modifications and handling of program-ming errors Experienced developers can estimate thedifferences already in the run and thus implement anappropriate structure

To avoid the mentioned structural changes in case ofsmall API differences but to allow later code trackinga keyword eg ldquoCADReleaserdquo is defined This keywordis used as function or property argument for each singlemethod which requires a separation of CAD releases

43 CADAutomation interfaces

APIs are based on core algorithms of theCAD system andallow the definition and development ofKBDautomation

Figure 10 API handling

482 M SALCHNER ET AL

routines The functional scope of the automation rou-tines is only limited by the provided CAD-API wherebythis functionality is often coupled with the used pro-gramming language and available license packages Thecommon denominator of different CAD systems regard-ing functionality costs and development within the pre-sented approach is stated by the NET framework It is asoftware framework developed by Microsoft since 2002which supports different coding languages like VisualBasic (VB) C or J Due to the fact that many CADsolutions deliver integratedVB programming editors andsimultaneously provide VBNET the multi-CAD strat-egy is developed based on this programming languageThe main disadvantage compared to programming lan-guages like C is a lack of code protection Neverthelessthere are some options to protect the code in an efficientand sufficient way Considering that todayrsquos most KBDtools in automotive industry are specific in-house appli-cations the protection of knowledge plays an importantrole [4] [14] [15] [18]

CAD related programming libraries can be providedin two species The first one includes dynamic linklibraries (dlls) which can be added as stand-alone ref-erences to the desired programming environment ndash NXThe second possibility is to use registered ActiveX ele-ments which are based on the Component ObjectModel(COM) standard - CATIA In this case the references arenot linked in a static way but based on windows registryentries The required libraries are loaded at runtime bydefault either from the startup path (dlls) or by use ofthe current registered COM element This faces a prob-lematic situation in case of different CAD releases Thecode libraries of different CAD releases or versions havethe same nomenclature and therefore a specific linkingmethod was developed

The mentioned problem can be handled in differ-ent ways During the iterative development processexplained in section 31 a large amount of different con-cepts has been worked out The result which fits all men-tioned requirements under consideration of the entirestrategy is explained in the next lines

The solution bypasses the windows registry entriesand allows a much more efficient realization of multi-release capability At startup of the initialization processthe current running CAD process is linked Based on thecurrent CAD system the required libraries are automati-cally created In the final step the libraries are loaded atruntime This method fulfills all requirements consider-ing the multi-CAD approach

The virtual connection between the KBD tool and theCAD system is carried out by a connection principlewhich is also defined by the API of the CAD systemCATIA for example is based on the Component Object

Model (COM)ofMicrosoft and therefore the connectionto the actual active CATIA window is reached out due tothe registered application name ndash ldquoCATIAApplicationrdquoThus different CATIA releases cannot be differenti-ated and therefore multiple window applications are notallowed The API of NX on the other hand is not basedon the COM strategy In this case the connection isperformed due to the Transmission Control Protocol Internet Protocol (TCPIP) by use of a server and a clientapplication whereby both can be applied on one singlecomputer [4] [14] [18]

ThementionedCAD initialization process and the dif-ferent connection methods are implemented within themulti-CAD-Framework accessible for KDB-Developer

5 Conclusions

The presented approach provides a platform for theefficient development of KBD applications for multi-CAD environments This includes amulti-CAD interfaceand different software modules that manage inconsis-tent CAD APIs capture knowledge provide reusablefunctions and libraries and have an enhanced serviceand error handling In contrast to common approacheswhere one single KBD tool has to be released sepa-rately for each single CAD-system and release this novelstrategy allows a standalone-releasing of different KBDtools This simplifies company-internal roll out proce-dure update management and administration Of coursethis strategy is part of the framework and uses the men-tionedFirebird database as application storage userman-agement and administration Furthermore it plays animportant role regarding the protection of the applica-tion and consequently of the knowledge On the otherhand the change or update management in view of theKBD-Engineer is therefore optimized because of a cen-tralized project management In this way the KBD-Useris not forced to execute different application files and thestandardized consistent GUI of all KBD tools minimizesthe training period significantly Referring to the start-ing statement concerning future trends of web-based andcase-based applications the presented framework allowsthe creation of four different solutions

bull Windows Form Application [14]bull Windows Console Application [14]bull Windows Service Application [14]bull Web Apps with ASPNET [14]

In the next months the approach is applied in a broadway by implementation of the new API of CATIA V6 [4]and additional open source CAD viewing tools Further-more different open source geometrical libraries will be

COMPUTER-AIDED DESIGN amp APPLICATIONS 483

investigated and the open xml software development kit[14] will be implemented In this way the functionalitywill grow and the platform - and vendor dependency willdecrease step by step

Considering multiply effects because of a large num-ber of KBD tools used in automotive industry a sig-nificant time reduction in the application of complexCAD-environment can be achieved

ORCID

Markus Salchner httporcidorg0000-0001-6379-0562Severin Stadler httporcidorg0000-0001-9867-0552Mario Hirz httporcidorg0000-0002-4502-4255

References

[1] CADEC Works httpwwwcadecin access date 2015-04-08

[2] Catic A Malmqvist J Towards integration of KBE andPLM International Conference on Engineering Design2007

[3] Chapman CB Pinfold M The application of a knowl-edge based engineering approach to the rapid design andanalysis of an automotive structure Advances in Engi-neering Software 32 2001 903ndash912 httpdxdoiorg101016S0965-9978(01)00041-2

[4] Dassault Systemes httpwww3dscom access date2015-01-27

[5] Eclipse httpseclipseorg access date 2015-01-27[6] Eigner M Stelzer R Product Lifecycle Management

Ein Leitfaden fuumlr Product Development und Life CycleManagement Springer 2009 ISBN 9783540443735httpdxdoiorg101007b93672

[7] Firebird httpwwwfirebirdsqlorg access date 2015-04-13

[8] Hirz M Dietrich W Gfrerrer A Lang J Inte-grated computer-aided design in automotive develop-ment development processes geometric fundamentalsmethods of CAD knowledge-based engineering datamanagement Springer 2013 ISBN 9783642119392httpdxdoiorg101007978-3-642-11940-8

[9] KBEWorks httpwwwvisionkbecom access date 2015-04-08

[10] Lin B-T Chan C-K Wang J-C A knowledge-basedparametric design system for drawing dies InternationalJournal of Advanced Manufacturing Technology 362008 671ndash680 httpdxdoiorg101007s00170-006-0882-y

[11] Lin B-T Chang M-R Huang H-L Liu C-YComputer-aided structural design of drawing dies forstamping processes based on functional features Interna-tional Journal of Advanced Manufacturing Technology42 2009 1140ndash1152 httpdxdoiorg101007s00170-008-1670-7

[12] Ma QC Liu XW Review of Knowledge Based Engi-neering with PLM Applied Mechanics and Materials10ndash12 2007 127ndash130 httpdxdoiorg104028wwwscientificnetAMM10-12127

[13] Microsoft Developer Network httpmsdnmicrosoftcomde-atdn308572aspx

[14] Microsoft httpmicrosoftcom access date 2015-01-27[15] PTC httpwwwptccom access date 2015-01-27[16] Reddy E J Sridhar C N V Rangadu V P Knowl-

edge Based Engineering Notion Approaches and FutureTrends American Journal of Intelligent Systems 5(1)2015 1ndash17 httpdxdoiorg105923jajis2015050101

[17] Siemens PLM httpwwwplmautomationsiemenscomaccess date 2015-01-27

[18] Sanya IO Shehab EM An ontology frameworkfor developing platform-independent knowledge-basedengineering systems in the aerospace industry Inter-national Journal of Production Research 52 20146192ndash6215 httpdxdoiorg101080002075432014919422

[19] Skarka W Application of MOKA methodology in gen-erative model creation using CATIA Engineering Appli-cations of Artificial Intelligence 20 2007 677ndash690httpdxdoiorg101016jengappai200611019

[20] Stokes M Managing Engineering Knowledge ndash MOKAMethodology for Knowledge Based Engineering Appli-cations Professional Engineering Publishing LimitedASME Press 2001

[21] Tacton httpwwwtactoncom access date 2015-04-08[22] Transcat-PLM httpswwwtranscat-plmcom access

date 2015-01-27[23] Van Der Laan AH Van Tooren MJL Parametric

modeling of movables for structural analysis Journal ofAircraft 42 2005 1606ndash1614 httpdxdoiorg10251419764

  • 1 Introduction
  • 2 Knowledge-based design methods
  • 3 Multi-CAD approach
    • 31 Development process
    • 32 Overview of the Multi-CAD-framework
    • 33 Realization of Multi-CAD-framework
      • 4 Multi-CAD developer
        • 41 Programming directives
        • 42 Structured programming
        • 43 CAD Automation interfaces
          • 5 Conclusions
          • ORCID
          • References
Page 7: Multi-CAD approach for knowledge-based design methods4)_2016_471-483.pdf · universal functions, are stored inside the framework. This includes “CAD base”, “Utilities”, “Infrastructure”

COMPUTER-AIDED DESIGN amp APPLICATIONS 477

Figure 6 Multi-CAD automation environment

The ldquoCADbaserdquo class initializes all CAD related devel-oped functions andmethods This library does not imple-ment the functionality itself but it defines them Eachsingle implemented CAD system is a derived class andis forced to implement the defined functions Relativelysimple CAD basic functions like the creation of a pointa line or a feature are not implemented in this levelbecause these CAD related functions are supported bythe API and it is not useful to reproduce all of themIn contrast it includes a collection of commonly usedand know-how based functions On basis of an objectoriented programming technique it is possible to forcethe developer to implement the designed function forall required CAD solutions One example of application

is a function for capturing of images The code for theimage creation is not challenging but to adjust a wholeenvironment to the defined settings can be very com-plex The implemented function performs the followingactions in addition to the passed parameters Perspec-tive position zoom visibility of constraints annotationstreeview components change the color of parts surfacesor even the entire assembly

The explained framework can be implemented andused as references by each KBD-Engineer in the develop-ment environment of Visual Studio The depicted satel-lites in Figure 5 are standalone libraries whereby anindividual implementation is enabled Some applicationsdo not need a database - or the CATIA interface and

478 M SALCHNER ET AL

therefore an implementation of these libraries is not effec-tive The current framework comprises the followingmain libraries

bull Multi-CAD-Frameworkbull Dassault CATIAV5bull Siemens NXbull Third party application ndash eg Excelbull Firebird databases [7]

Additional functionalities with numerous overload-ing methods are stored in a separate snippet libraryThey provide a large amount of different input param-eters regarding to their use An exemplary CAD relatedfunction is the ldquoCreatePointrdquo method The design of apoint can be done in various ways - by coordinateson a line a surface a body or as a center point of acircle Twenty overloading methods in NX are avail-able whereby each of them uses different NX relatedobjects which in turn are overloaded Other exemplarymethods are folder selection file selection ndash or savemethods which strongly depend on the current require-ments The snippets are implemented in the graphicalinterface of Visual Studio and can be easily accessedThe snippets are based on XML and copy the storedsource code elements into the current project The KBD-Engineer can customize the scripting lines to the currentrequirements The developed snippet library uses thesame structure as the framework library and grants anintuitive use

4 Multi-CAD developer

The previous section explained the entire framework ofthe multi-CAD approach With the target of an effec-tive use the framework design was made with focus onan intuitive usage and nomenclature To ensure stabil-ity and quality of the framework some programmingrules have to be considered Furthermore the imple-mentation effort for the KBD-Expert mentioned in subsection 32 can be reduced to a minimum This sectiontreats the defined development steps for the design of newmulti-CAD-Framework applications

41 Programming directives

This subsection focuses on programming fundamentalswhich are required for the understanding and imple-mentation of the multi-CAD approach Common KBDautomation tools are developed for one unique task byone single developer [3] [10ndash12] [16] To keep it sim-ple these tools are often coded in the so-called ldquoSpaghetticoderdquo This means that the code is unstructured and the

application of user defined objects classes or instances islimited Furthermore access modifiers eg public pri-vate protected are not used consequently and the codeflow cannot be traced - it is like a bowl of spaghettiThis way of coding seems to be the easiest way of pro-gramming but with increasing complexity and multipledevelopers it causes a lot of problems Consequently animplementation in the explained framework is impossi-ble which requires the application of the so-called objectoriented programming (OOP) approach [14]

The principle of OOP bases on the definition ofuser defined objects and a structured code flow Theobjects contain different fields methods and propertiesas shown in Figure 7 The field group contains userdefined variables which should be only used internalThe properties provide external functionalities whichcan be accessed from outside The mentioned accessmodifiers are indicated as small symbols beside the illus-trated elements These modifiers are important for astructured code flow and allow the protection of selectedattributes

This means that specific attributes can only bechanged under certain conditions in contrast to publicattributes The main principle structure is explained by aCAD based example The base class ndash ldquoCADApplicationrdquohas twoderived classes ldquoCADNXrdquo and ldquoCADCATIAV5rdquoas shown in Figure 7 The base class defines all commonfunctionalities where the program code does not differThe modifier ldquoMustInheritrdquo defines that the creation ofa direct instance from this class is restricted The illus-trated ldquoCADApplicationrdquo class contains two fields twoproperties and five methods

The ldquoSetCADApplicationToForegroundrdquo and the con-structor sub ldquoNewrdquo are base methods which are notrelated to a specific CAD system The source code ofthese functions is implemented directly in the ldquoCADAp-plicationrdquo class The two remaining methods ldquoCADAp-plicationReadyrdquo and ldquoOpenPartrdquo are CAD system relatedfunctions and separately coded in the derived classesThey bear the modifier ldquoMustOverriderdquo which meansthat all derived classes have to implement them Ofcourse derived classes can contain additional propertiesand methods like the ldquoCADNXrdquo class

The ldquoCADInfosrdquo class is a user defined class with CADrelated attributes like ldquoVersionrdquo ldquoStartUpPathrdquo or ldquoTyperdquodepicted on the right in Figure 7 The attributes aredeclared as public elements there is no sufficient pro-tection and secure access management Under consid-eration that each ldquoCADApplicationrdquo instance comprisesthe private variable ldquom_CADInfosrdquo which represents aninstance of the ldquoCADInfosrdquo class the related informationcannot be accessed The ldquoCADInfosrdquo property is declaredas ldquoReadOnlyrdquo and so the relevant ldquoCADInfosrdquo can only

COMPUTER-AIDED DESIGN amp APPLICATIONS 479

Figure 7 Exemplary structure of the ldquoCADApplicationrdquo class

be adapted inside the ldquoCADApplicationrdquo class The initialdefinition of these variables is done by the initializationprocess of a new ldquoCADCATIAV5rdquo or ldquoCADNXrdquo object

Considering the multi-CAD-Framework structureexplained in section 3 the ldquoCADApplicationrdquo class isstored in the framework itself whereby the derivedclasses are located in the selectedCAD satellites To grantthat each KBD-Engineer receives the required informa-tion XML comments for the documentation of each sin-gle property function or sub as shown in the Figure 8 aremandatory

Figure 8 Exemplary XML comment

42 Structured programming

Based on the mentioned programming fundamentalsthis section concentrates on the developed structural

480 M SALCHNER ET AL

programming guideline which is an essential part ofthe multi-CAD strategy Each multi-CAD automationapplication should follow the main rules to grant

bull Comprehensibility for other developersbull Simplified adaption and enhancementbull Release handlingbull Enable the multi-CAD approachbull Handle API changes

Figure 9 illustrates the principle structure of a multi-CAD application The application consists of at least twodifferent projects theMain - and the Application Projectwhereby theApplication Project is referenced to theMainProject The latter can access the defined methods andproperties of the Application Project Additional feasibleprojects could be databases or third party projects Theassembly class in the Main Project is responsible for allGUI related calls events and also for the separation ofdifferent CAD systems

This distinction is carried out by the instantiation ofdifferent application assemblies For example to supportCATIA and NX within this application there has to be

one ldquoNXAssemblyrdquo and one ldquoCATIAAssemblyrdquo instanceThese derived classes inherit the base class ldquoApplica-tionAssemblyrdquo and follow the ldquoCADApplicationrdquo - prin-ciple shown in the previous section The required multi-CAD initialization functions are called from this classThe graphical user interfaces often change due to thedevelopment process or in case of different customersTherefore a codding in GUI elements should be avoidedIt ismuchmore efficient to utilize user defined events andhandle them in the assembly class Last but not least theMain Project handles the exception events the customhelp file and optional license functions This structureallows an eased adaption and enhancement ofmain func-tionalities of the program by any KBD-Engineer Differ-ent application releases for various customers with differ-ent functionalities can be compiled in an efficient way

The main development rules for a multi-CAD appli-cation are

(1) At least two separate projects ndash Main and Applica-tion

(2) No CAD or know-how related source code in theMain Project

Figure 9 Structured programming layout for multi-CAD applications

COMPUTER-AIDED DESIGN amp APPLICATIONS 481

(3) No code elements in the GUI(4) CAD system separation in the Main Project(5) All calls from the project related assembly class(6) CAD release separation in Application Assembly

class

The Application Project contains all required func-tions for the developed application itself This includesuniversal base classes and derived CAD related classesas shown in Figure 9 Of course this project can alsoinclude CAD independent classes for general functional-ities like the creation of folders files or other third partyapplications

It is up to the developer to decide when a separateproject (eg third party project) is created or not In gen-eral it is advisable to create a new project as soon asan additional API is used (eg Excel) The code separa-tion for different CAD releases caused by API changesshould be handled in the concerning CAD assembly asillustrated in 10

The Figure 10 shows the three different classesndashldquoNXAssemblyrdquo ldquoBOMNXrdquo and ldquoCADItemNXrdquo- includ-ing some general code elements The ldquoGetTreerdquo prop-erty of the ldquoNXAssemblyrdquo is the starting point wherea separation of NX releases is carried out ndash NX 75and NX 85 The optimum source code on the left sidewould call the release dependent methods from hereand also release independent functions like ldquoListCA-DItemsrdquo Unfortunately this represents a major effort in

the practical development The application is in commondeveloped for one single release and therefore the codestructure is defined in a logical way ndash as shown onthe right side The implementation of further releasesis added as needed later From this stage of develop-ment the KBD-Engineer is confronted with possible APIdifferences within the CAD releases In the example inFigure 10 the code differs in a deep layer of the pro-gram structure The release separation is required in theldquom_GetItemAttributesrdquo sub within the ldquoCADItemNXrdquoclass ndash at the bottom The developer has to change theentire structure and methods to perform a release dis-tinction in the ldquoNXAssemblyrdquo Therefore identical basiccode elements have to be duplicated for small differ-ences within some code lines This is not purposefulproduces unnecessary code and the effort increases inmaintenance modifications and handling of program-ming errors Experienced developers can estimate thedifferences already in the run and thus implement anappropriate structure

To avoid the mentioned structural changes in case ofsmall API differences but to allow later code trackinga keyword eg ldquoCADReleaserdquo is defined This keywordis used as function or property argument for each singlemethod which requires a separation of CAD releases

43 CADAutomation interfaces

APIs are based on core algorithms of theCAD system andallow the definition and development ofKBDautomation

Figure 10 API handling

482 M SALCHNER ET AL

routines The functional scope of the automation rou-tines is only limited by the provided CAD-API wherebythis functionality is often coupled with the used pro-gramming language and available license packages Thecommon denominator of different CAD systems regard-ing functionality costs and development within the pre-sented approach is stated by the NET framework It is asoftware framework developed by Microsoft since 2002which supports different coding languages like VisualBasic (VB) C or J Due to the fact that many CADsolutions deliver integratedVB programming editors andsimultaneously provide VBNET the multi-CAD strat-egy is developed based on this programming languageThe main disadvantage compared to programming lan-guages like C is a lack of code protection Neverthelessthere are some options to protect the code in an efficientand sufficient way Considering that todayrsquos most KBDtools in automotive industry are specific in-house appli-cations the protection of knowledge plays an importantrole [4] [14] [15] [18]

CAD related programming libraries can be providedin two species The first one includes dynamic linklibraries (dlls) which can be added as stand-alone ref-erences to the desired programming environment ndash NXThe second possibility is to use registered ActiveX ele-ments which are based on the Component ObjectModel(COM) standard - CATIA In this case the references arenot linked in a static way but based on windows registryentries The required libraries are loaded at runtime bydefault either from the startup path (dlls) or by use ofthe current registered COM element This faces a prob-lematic situation in case of different CAD releases Thecode libraries of different CAD releases or versions havethe same nomenclature and therefore a specific linkingmethod was developed

The mentioned problem can be handled in differ-ent ways During the iterative development processexplained in section 31 a large amount of different con-cepts has been worked out The result which fits all men-tioned requirements under consideration of the entirestrategy is explained in the next lines

The solution bypasses the windows registry entriesand allows a much more efficient realization of multi-release capability At startup of the initialization processthe current running CAD process is linked Based on thecurrent CAD system the required libraries are automati-cally created In the final step the libraries are loaded atruntime This method fulfills all requirements consider-ing the multi-CAD approach

The virtual connection between the KBD tool and theCAD system is carried out by a connection principlewhich is also defined by the API of the CAD systemCATIA for example is based on the Component Object

Model (COM)ofMicrosoft and therefore the connectionto the actual active CATIA window is reached out due tothe registered application name ndash ldquoCATIAApplicationrdquoThus different CATIA releases cannot be differenti-ated and therefore multiple window applications are notallowed The API of NX on the other hand is not basedon the COM strategy In this case the connection isperformed due to the Transmission Control Protocol Internet Protocol (TCPIP) by use of a server and a clientapplication whereby both can be applied on one singlecomputer [4] [14] [18]

ThementionedCAD initialization process and the dif-ferent connection methods are implemented within themulti-CAD-Framework accessible for KDB-Developer

5 Conclusions

The presented approach provides a platform for theefficient development of KBD applications for multi-CAD environments This includes amulti-CAD interfaceand different software modules that manage inconsis-tent CAD APIs capture knowledge provide reusablefunctions and libraries and have an enhanced serviceand error handling In contrast to common approacheswhere one single KBD tool has to be released sepa-rately for each single CAD-system and release this novelstrategy allows a standalone-releasing of different KBDtools This simplifies company-internal roll out proce-dure update management and administration Of coursethis strategy is part of the framework and uses the men-tionedFirebird database as application storage userman-agement and administration Furthermore it plays animportant role regarding the protection of the applica-tion and consequently of the knowledge On the otherhand the change or update management in view of theKBD-Engineer is therefore optimized because of a cen-tralized project management In this way the KBD-Useris not forced to execute different application files and thestandardized consistent GUI of all KBD tools minimizesthe training period significantly Referring to the start-ing statement concerning future trends of web-based andcase-based applications the presented framework allowsthe creation of four different solutions

bull Windows Form Application [14]bull Windows Console Application [14]bull Windows Service Application [14]bull Web Apps with ASPNET [14]

In the next months the approach is applied in a broadway by implementation of the new API of CATIA V6 [4]and additional open source CAD viewing tools Further-more different open source geometrical libraries will be

COMPUTER-AIDED DESIGN amp APPLICATIONS 483

investigated and the open xml software development kit[14] will be implemented In this way the functionalitywill grow and the platform - and vendor dependency willdecrease step by step

Considering multiply effects because of a large num-ber of KBD tools used in automotive industry a sig-nificant time reduction in the application of complexCAD-environment can be achieved

ORCID

Markus Salchner httporcidorg0000-0001-6379-0562Severin Stadler httporcidorg0000-0001-9867-0552Mario Hirz httporcidorg0000-0002-4502-4255

References

[1] CADEC Works httpwwwcadecin access date 2015-04-08

[2] Catic A Malmqvist J Towards integration of KBE andPLM International Conference on Engineering Design2007

[3] Chapman CB Pinfold M The application of a knowl-edge based engineering approach to the rapid design andanalysis of an automotive structure Advances in Engi-neering Software 32 2001 903ndash912 httpdxdoiorg101016S0965-9978(01)00041-2

[4] Dassault Systemes httpwww3dscom access date2015-01-27

[5] Eclipse httpseclipseorg access date 2015-01-27[6] Eigner M Stelzer R Product Lifecycle Management

Ein Leitfaden fuumlr Product Development und Life CycleManagement Springer 2009 ISBN 9783540443735httpdxdoiorg101007b93672

[7] Firebird httpwwwfirebirdsqlorg access date 2015-04-13

[8] Hirz M Dietrich W Gfrerrer A Lang J Inte-grated computer-aided design in automotive develop-ment development processes geometric fundamentalsmethods of CAD knowledge-based engineering datamanagement Springer 2013 ISBN 9783642119392httpdxdoiorg101007978-3-642-11940-8

[9] KBEWorks httpwwwvisionkbecom access date 2015-04-08

[10] Lin B-T Chan C-K Wang J-C A knowledge-basedparametric design system for drawing dies InternationalJournal of Advanced Manufacturing Technology 362008 671ndash680 httpdxdoiorg101007s00170-006-0882-y

[11] Lin B-T Chang M-R Huang H-L Liu C-YComputer-aided structural design of drawing dies forstamping processes based on functional features Interna-tional Journal of Advanced Manufacturing Technology42 2009 1140ndash1152 httpdxdoiorg101007s00170-008-1670-7

[12] Ma QC Liu XW Review of Knowledge Based Engi-neering with PLM Applied Mechanics and Materials10ndash12 2007 127ndash130 httpdxdoiorg104028wwwscientificnetAMM10-12127

[13] Microsoft Developer Network httpmsdnmicrosoftcomde-atdn308572aspx

[14] Microsoft httpmicrosoftcom access date 2015-01-27[15] PTC httpwwwptccom access date 2015-01-27[16] Reddy E J Sridhar C N V Rangadu V P Knowl-

edge Based Engineering Notion Approaches and FutureTrends American Journal of Intelligent Systems 5(1)2015 1ndash17 httpdxdoiorg105923jajis2015050101

[17] Siemens PLM httpwwwplmautomationsiemenscomaccess date 2015-01-27

[18] Sanya IO Shehab EM An ontology frameworkfor developing platform-independent knowledge-basedengineering systems in the aerospace industry Inter-national Journal of Production Research 52 20146192ndash6215 httpdxdoiorg101080002075432014919422

[19] Skarka W Application of MOKA methodology in gen-erative model creation using CATIA Engineering Appli-cations of Artificial Intelligence 20 2007 677ndash690httpdxdoiorg101016jengappai200611019

[20] Stokes M Managing Engineering Knowledge ndash MOKAMethodology for Knowledge Based Engineering Appli-cations Professional Engineering Publishing LimitedASME Press 2001

[21] Tacton httpwwwtactoncom access date 2015-04-08[22] Transcat-PLM httpswwwtranscat-plmcom access

date 2015-01-27[23] Van Der Laan AH Van Tooren MJL Parametric

modeling of movables for structural analysis Journal ofAircraft 42 2005 1606ndash1614 httpdxdoiorg10251419764

  • 1 Introduction
  • 2 Knowledge-based design methods
  • 3 Multi-CAD approach
    • 31 Development process
    • 32 Overview of the Multi-CAD-framework
    • 33 Realization of Multi-CAD-framework
      • 4 Multi-CAD developer
        • 41 Programming directives
        • 42 Structured programming
        • 43 CAD Automation interfaces
          • 5 Conclusions
          • ORCID
          • References
Page 8: Multi-CAD approach for knowledge-based design methods4)_2016_471-483.pdf · universal functions, are stored inside the framework. This includes “CAD base”, “Utilities”, “Infrastructure”

478 M SALCHNER ET AL

therefore an implementation of these libraries is not effec-tive The current framework comprises the followingmain libraries

bull Multi-CAD-Frameworkbull Dassault CATIAV5bull Siemens NXbull Third party application ndash eg Excelbull Firebird databases [7]

Additional functionalities with numerous overload-ing methods are stored in a separate snippet libraryThey provide a large amount of different input param-eters regarding to their use An exemplary CAD relatedfunction is the ldquoCreatePointrdquo method The design of apoint can be done in various ways - by coordinateson a line a surface a body or as a center point of acircle Twenty overloading methods in NX are avail-able whereby each of them uses different NX relatedobjects which in turn are overloaded Other exemplarymethods are folder selection file selection ndash or savemethods which strongly depend on the current require-ments The snippets are implemented in the graphicalinterface of Visual Studio and can be easily accessedThe snippets are based on XML and copy the storedsource code elements into the current project The KBD-Engineer can customize the scripting lines to the currentrequirements The developed snippet library uses thesame structure as the framework library and grants anintuitive use

4 Multi-CAD developer

The previous section explained the entire framework ofthe multi-CAD approach With the target of an effec-tive use the framework design was made with focus onan intuitive usage and nomenclature To ensure stabil-ity and quality of the framework some programmingrules have to be considered Furthermore the imple-mentation effort for the KBD-Expert mentioned in subsection 32 can be reduced to a minimum This sectiontreats the defined development steps for the design of newmulti-CAD-Framework applications

41 Programming directives

This subsection focuses on programming fundamentalswhich are required for the understanding and imple-mentation of the multi-CAD approach Common KBDautomation tools are developed for one unique task byone single developer [3] [10ndash12] [16] To keep it sim-ple these tools are often coded in the so-called ldquoSpaghetticoderdquo This means that the code is unstructured and the

application of user defined objects classes or instances islimited Furthermore access modifiers eg public pri-vate protected are not used consequently and the codeflow cannot be traced - it is like a bowl of spaghettiThis way of coding seems to be the easiest way of pro-gramming but with increasing complexity and multipledevelopers it causes a lot of problems Consequently animplementation in the explained framework is impossi-ble which requires the application of the so-called objectoriented programming (OOP) approach [14]

The principle of OOP bases on the definition ofuser defined objects and a structured code flow Theobjects contain different fields methods and propertiesas shown in Figure 7 The field group contains userdefined variables which should be only used internalThe properties provide external functionalities whichcan be accessed from outside The mentioned accessmodifiers are indicated as small symbols beside the illus-trated elements These modifiers are important for astructured code flow and allow the protection of selectedattributes

This means that specific attributes can only bechanged under certain conditions in contrast to publicattributes The main principle structure is explained by aCAD based example The base class ndash ldquoCADApplicationrdquohas twoderived classes ldquoCADNXrdquo and ldquoCADCATIAV5rdquoas shown in Figure 7 The base class defines all commonfunctionalities where the program code does not differThe modifier ldquoMustInheritrdquo defines that the creation ofa direct instance from this class is restricted The illus-trated ldquoCADApplicationrdquo class contains two fields twoproperties and five methods

The ldquoSetCADApplicationToForegroundrdquo and the con-structor sub ldquoNewrdquo are base methods which are notrelated to a specific CAD system The source code ofthese functions is implemented directly in the ldquoCADAp-plicationrdquo class The two remaining methods ldquoCADAp-plicationReadyrdquo and ldquoOpenPartrdquo are CAD system relatedfunctions and separately coded in the derived classesThey bear the modifier ldquoMustOverriderdquo which meansthat all derived classes have to implement them Ofcourse derived classes can contain additional propertiesand methods like the ldquoCADNXrdquo class

The ldquoCADInfosrdquo class is a user defined class with CADrelated attributes like ldquoVersionrdquo ldquoStartUpPathrdquo or ldquoTyperdquodepicted on the right in Figure 7 The attributes aredeclared as public elements there is no sufficient pro-tection and secure access management Under consid-eration that each ldquoCADApplicationrdquo instance comprisesthe private variable ldquom_CADInfosrdquo which represents aninstance of the ldquoCADInfosrdquo class the related informationcannot be accessed The ldquoCADInfosrdquo property is declaredas ldquoReadOnlyrdquo and so the relevant ldquoCADInfosrdquo can only

COMPUTER-AIDED DESIGN amp APPLICATIONS 479

Figure 7 Exemplary structure of the ldquoCADApplicationrdquo class

be adapted inside the ldquoCADApplicationrdquo class The initialdefinition of these variables is done by the initializationprocess of a new ldquoCADCATIAV5rdquo or ldquoCADNXrdquo object

Considering the multi-CAD-Framework structureexplained in section 3 the ldquoCADApplicationrdquo class isstored in the framework itself whereby the derivedclasses are located in the selectedCAD satellites To grantthat each KBD-Engineer receives the required informa-tion XML comments for the documentation of each sin-gle property function or sub as shown in the Figure 8 aremandatory

Figure 8 Exemplary XML comment

42 Structured programming

Based on the mentioned programming fundamentalsthis section concentrates on the developed structural

480 M SALCHNER ET AL

programming guideline which is an essential part ofthe multi-CAD strategy Each multi-CAD automationapplication should follow the main rules to grant

bull Comprehensibility for other developersbull Simplified adaption and enhancementbull Release handlingbull Enable the multi-CAD approachbull Handle API changes

Figure 9 illustrates the principle structure of a multi-CAD application The application consists of at least twodifferent projects theMain - and the Application Projectwhereby theApplication Project is referenced to theMainProject The latter can access the defined methods andproperties of the Application Project Additional feasibleprojects could be databases or third party projects Theassembly class in the Main Project is responsible for allGUI related calls events and also for the separation ofdifferent CAD systems

This distinction is carried out by the instantiation ofdifferent application assemblies For example to supportCATIA and NX within this application there has to be

one ldquoNXAssemblyrdquo and one ldquoCATIAAssemblyrdquo instanceThese derived classes inherit the base class ldquoApplica-tionAssemblyrdquo and follow the ldquoCADApplicationrdquo - prin-ciple shown in the previous section The required multi-CAD initialization functions are called from this classThe graphical user interfaces often change due to thedevelopment process or in case of different customersTherefore a codding in GUI elements should be avoidedIt ismuchmore efficient to utilize user defined events andhandle them in the assembly class Last but not least theMain Project handles the exception events the customhelp file and optional license functions This structureallows an eased adaption and enhancement ofmain func-tionalities of the program by any KBD-Engineer Differ-ent application releases for various customers with differ-ent functionalities can be compiled in an efficient way

The main development rules for a multi-CAD appli-cation are

(1) At least two separate projects ndash Main and Applica-tion

(2) No CAD or know-how related source code in theMain Project

Figure 9 Structured programming layout for multi-CAD applications

COMPUTER-AIDED DESIGN amp APPLICATIONS 481

(3) No code elements in the GUI(4) CAD system separation in the Main Project(5) All calls from the project related assembly class(6) CAD release separation in Application Assembly

class

The Application Project contains all required func-tions for the developed application itself This includesuniversal base classes and derived CAD related classesas shown in Figure 9 Of course this project can alsoinclude CAD independent classes for general functional-ities like the creation of folders files or other third partyapplications

It is up to the developer to decide when a separateproject (eg third party project) is created or not In gen-eral it is advisable to create a new project as soon asan additional API is used (eg Excel) The code separa-tion for different CAD releases caused by API changesshould be handled in the concerning CAD assembly asillustrated in 10

The Figure 10 shows the three different classesndashldquoNXAssemblyrdquo ldquoBOMNXrdquo and ldquoCADItemNXrdquo- includ-ing some general code elements The ldquoGetTreerdquo prop-erty of the ldquoNXAssemblyrdquo is the starting point wherea separation of NX releases is carried out ndash NX 75and NX 85 The optimum source code on the left sidewould call the release dependent methods from hereand also release independent functions like ldquoListCA-DItemsrdquo Unfortunately this represents a major effort in

the practical development The application is in commondeveloped for one single release and therefore the codestructure is defined in a logical way ndash as shown onthe right side The implementation of further releasesis added as needed later From this stage of develop-ment the KBD-Engineer is confronted with possible APIdifferences within the CAD releases In the example inFigure 10 the code differs in a deep layer of the pro-gram structure The release separation is required in theldquom_GetItemAttributesrdquo sub within the ldquoCADItemNXrdquoclass ndash at the bottom The developer has to change theentire structure and methods to perform a release dis-tinction in the ldquoNXAssemblyrdquo Therefore identical basiccode elements have to be duplicated for small differ-ences within some code lines This is not purposefulproduces unnecessary code and the effort increases inmaintenance modifications and handling of program-ming errors Experienced developers can estimate thedifferences already in the run and thus implement anappropriate structure

To avoid the mentioned structural changes in case ofsmall API differences but to allow later code trackinga keyword eg ldquoCADReleaserdquo is defined This keywordis used as function or property argument for each singlemethod which requires a separation of CAD releases

43 CADAutomation interfaces

APIs are based on core algorithms of theCAD system andallow the definition and development ofKBDautomation

Figure 10 API handling

482 M SALCHNER ET AL

routines The functional scope of the automation rou-tines is only limited by the provided CAD-API wherebythis functionality is often coupled with the used pro-gramming language and available license packages Thecommon denominator of different CAD systems regard-ing functionality costs and development within the pre-sented approach is stated by the NET framework It is asoftware framework developed by Microsoft since 2002which supports different coding languages like VisualBasic (VB) C or J Due to the fact that many CADsolutions deliver integratedVB programming editors andsimultaneously provide VBNET the multi-CAD strat-egy is developed based on this programming languageThe main disadvantage compared to programming lan-guages like C is a lack of code protection Neverthelessthere are some options to protect the code in an efficientand sufficient way Considering that todayrsquos most KBDtools in automotive industry are specific in-house appli-cations the protection of knowledge plays an importantrole [4] [14] [15] [18]

CAD related programming libraries can be providedin two species The first one includes dynamic linklibraries (dlls) which can be added as stand-alone ref-erences to the desired programming environment ndash NXThe second possibility is to use registered ActiveX ele-ments which are based on the Component ObjectModel(COM) standard - CATIA In this case the references arenot linked in a static way but based on windows registryentries The required libraries are loaded at runtime bydefault either from the startup path (dlls) or by use ofthe current registered COM element This faces a prob-lematic situation in case of different CAD releases Thecode libraries of different CAD releases or versions havethe same nomenclature and therefore a specific linkingmethod was developed

The mentioned problem can be handled in differ-ent ways During the iterative development processexplained in section 31 a large amount of different con-cepts has been worked out The result which fits all men-tioned requirements under consideration of the entirestrategy is explained in the next lines

The solution bypasses the windows registry entriesand allows a much more efficient realization of multi-release capability At startup of the initialization processthe current running CAD process is linked Based on thecurrent CAD system the required libraries are automati-cally created In the final step the libraries are loaded atruntime This method fulfills all requirements consider-ing the multi-CAD approach

The virtual connection between the KBD tool and theCAD system is carried out by a connection principlewhich is also defined by the API of the CAD systemCATIA for example is based on the Component Object

Model (COM)ofMicrosoft and therefore the connectionto the actual active CATIA window is reached out due tothe registered application name ndash ldquoCATIAApplicationrdquoThus different CATIA releases cannot be differenti-ated and therefore multiple window applications are notallowed The API of NX on the other hand is not basedon the COM strategy In this case the connection isperformed due to the Transmission Control Protocol Internet Protocol (TCPIP) by use of a server and a clientapplication whereby both can be applied on one singlecomputer [4] [14] [18]

ThementionedCAD initialization process and the dif-ferent connection methods are implemented within themulti-CAD-Framework accessible for KDB-Developer

5 Conclusions

The presented approach provides a platform for theefficient development of KBD applications for multi-CAD environments This includes amulti-CAD interfaceand different software modules that manage inconsis-tent CAD APIs capture knowledge provide reusablefunctions and libraries and have an enhanced serviceand error handling In contrast to common approacheswhere one single KBD tool has to be released sepa-rately for each single CAD-system and release this novelstrategy allows a standalone-releasing of different KBDtools This simplifies company-internal roll out proce-dure update management and administration Of coursethis strategy is part of the framework and uses the men-tionedFirebird database as application storage userman-agement and administration Furthermore it plays animportant role regarding the protection of the applica-tion and consequently of the knowledge On the otherhand the change or update management in view of theKBD-Engineer is therefore optimized because of a cen-tralized project management In this way the KBD-Useris not forced to execute different application files and thestandardized consistent GUI of all KBD tools minimizesthe training period significantly Referring to the start-ing statement concerning future trends of web-based andcase-based applications the presented framework allowsthe creation of four different solutions

bull Windows Form Application [14]bull Windows Console Application [14]bull Windows Service Application [14]bull Web Apps with ASPNET [14]

In the next months the approach is applied in a broadway by implementation of the new API of CATIA V6 [4]and additional open source CAD viewing tools Further-more different open source geometrical libraries will be

COMPUTER-AIDED DESIGN amp APPLICATIONS 483

investigated and the open xml software development kit[14] will be implemented In this way the functionalitywill grow and the platform - and vendor dependency willdecrease step by step

Considering multiply effects because of a large num-ber of KBD tools used in automotive industry a sig-nificant time reduction in the application of complexCAD-environment can be achieved

ORCID

Markus Salchner httporcidorg0000-0001-6379-0562Severin Stadler httporcidorg0000-0001-9867-0552Mario Hirz httporcidorg0000-0002-4502-4255

References

[1] CADEC Works httpwwwcadecin access date 2015-04-08

[2] Catic A Malmqvist J Towards integration of KBE andPLM International Conference on Engineering Design2007

[3] Chapman CB Pinfold M The application of a knowl-edge based engineering approach to the rapid design andanalysis of an automotive structure Advances in Engi-neering Software 32 2001 903ndash912 httpdxdoiorg101016S0965-9978(01)00041-2

[4] Dassault Systemes httpwww3dscom access date2015-01-27

[5] Eclipse httpseclipseorg access date 2015-01-27[6] Eigner M Stelzer R Product Lifecycle Management

Ein Leitfaden fuumlr Product Development und Life CycleManagement Springer 2009 ISBN 9783540443735httpdxdoiorg101007b93672

[7] Firebird httpwwwfirebirdsqlorg access date 2015-04-13

[8] Hirz M Dietrich W Gfrerrer A Lang J Inte-grated computer-aided design in automotive develop-ment development processes geometric fundamentalsmethods of CAD knowledge-based engineering datamanagement Springer 2013 ISBN 9783642119392httpdxdoiorg101007978-3-642-11940-8

[9] KBEWorks httpwwwvisionkbecom access date 2015-04-08

[10] Lin B-T Chan C-K Wang J-C A knowledge-basedparametric design system for drawing dies InternationalJournal of Advanced Manufacturing Technology 362008 671ndash680 httpdxdoiorg101007s00170-006-0882-y

[11] Lin B-T Chang M-R Huang H-L Liu C-YComputer-aided structural design of drawing dies forstamping processes based on functional features Interna-tional Journal of Advanced Manufacturing Technology42 2009 1140ndash1152 httpdxdoiorg101007s00170-008-1670-7

[12] Ma QC Liu XW Review of Knowledge Based Engi-neering with PLM Applied Mechanics and Materials10ndash12 2007 127ndash130 httpdxdoiorg104028wwwscientificnetAMM10-12127

[13] Microsoft Developer Network httpmsdnmicrosoftcomde-atdn308572aspx

[14] Microsoft httpmicrosoftcom access date 2015-01-27[15] PTC httpwwwptccom access date 2015-01-27[16] Reddy E J Sridhar C N V Rangadu V P Knowl-

edge Based Engineering Notion Approaches and FutureTrends American Journal of Intelligent Systems 5(1)2015 1ndash17 httpdxdoiorg105923jajis2015050101

[17] Siemens PLM httpwwwplmautomationsiemenscomaccess date 2015-01-27

[18] Sanya IO Shehab EM An ontology frameworkfor developing platform-independent knowledge-basedengineering systems in the aerospace industry Inter-national Journal of Production Research 52 20146192ndash6215 httpdxdoiorg101080002075432014919422

[19] Skarka W Application of MOKA methodology in gen-erative model creation using CATIA Engineering Appli-cations of Artificial Intelligence 20 2007 677ndash690httpdxdoiorg101016jengappai200611019

[20] Stokes M Managing Engineering Knowledge ndash MOKAMethodology for Knowledge Based Engineering Appli-cations Professional Engineering Publishing LimitedASME Press 2001

[21] Tacton httpwwwtactoncom access date 2015-04-08[22] Transcat-PLM httpswwwtranscat-plmcom access

date 2015-01-27[23] Van Der Laan AH Van Tooren MJL Parametric

modeling of movables for structural analysis Journal ofAircraft 42 2005 1606ndash1614 httpdxdoiorg10251419764

  • 1 Introduction
  • 2 Knowledge-based design methods
  • 3 Multi-CAD approach
    • 31 Development process
    • 32 Overview of the Multi-CAD-framework
    • 33 Realization of Multi-CAD-framework
      • 4 Multi-CAD developer
        • 41 Programming directives
        • 42 Structured programming
        • 43 CAD Automation interfaces
          • 5 Conclusions
          • ORCID
          • References
Page 9: Multi-CAD approach for knowledge-based design methods4)_2016_471-483.pdf · universal functions, are stored inside the framework. This includes “CAD base”, “Utilities”, “Infrastructure”

COMPUTER-AIDED DESIGN amp APPLICATIONS 479

Figure 7 Exemplary structure of the ldquoCADApplicationrdquo class

be adapted inside the ldquoCADApplicationrdquo class The initialdefinition of these variables is done by the initializationprocess of a new ldquoCADCATIAV5rdquo or ldquoCADNXrdquo object

Considering the multi-CAD-Framework structureexplained in section 3 the ldquoCADApplicationrdquo class isstored in the framework itself whereby the derivedclasses are located in the selectedCAD satellites To grantthat each KBD-Engineer receives the required informa-tion XML comments for the documentation of each sin-gle property function or sub as shown in the Figure 8 aremandatory

Figure 8 Exemplary XML comment

42 Structured programming

Based on the mentioned programming fundamentalsthis section concentrates on the developed structural

480 M SALCHNER ET AL

programming guideline which is an essential part ofthe multi-CAD strategy Each multi-CAD automationapplication should follow the main rules to grant

bull Comprehensibility for other developersbull Simplified adaption and enhancementbull Release handlingbull Enable the multi-CAD approachbull Handle API changes

Figure 9 illustrates the principle structure of a multi-CAD application The application consists of at least twodifferent projects theMain - and the Application Projectwhereby theApplication Project is referenced to theMainProject The latter can access the defined methods andproperties of the Application Project Additional feasibleprojects could be databases or third party projects Theassembly class in the Main Project is responsible for allGUI related calls events and also for the separation ofdifferent CAD systems

This distinction is carried out by the instantiation ofdifferent application assemblies For example to supportCATIA and NX within this application there has to be

one ldquoNXAssemblyrdquo and one ldquoCATIAAssemblyrdquo instanceThese derived classes inherit the base class ldquoApplica-tionAssemblyrdquo and follow the ldquoCADApplicationrdquo - prin-ciple shown in the previous section The required multi-CAD initialization functions are called from this classThe graphical user interfaces often change due to thedevelopment process or in case of different customersTherefore a codding in GUI elements should be avoidedIt ismuchmore efficient to utilize user defined events andhandle them in the assembly class Last but not least theMain Project handles the exception events the customhelp file and optional license functions This structureallows an eased adaption and enhancement ofmain func-tionalities of the program by any KBD-Engineer Differ-ent application releases for various customers with differ-ent functionalities can be compiled in an efficient way

The main development rules for a multi-CAD appli-cation are

(1) At least two separate projects ndash Main and Applica-tion

(2) No CAD or know-how related source code in theMain Project

Figure 9 Structured programming layout for multi-CAD applications

COMPUTER-AIDED DESIGN amp APPLICATIONS 481

(3) No code elements in the GUI(4) CAD system separation in the Main Project(5) All calls from the project related assembly class(6) CAD release separation in Application Assembly

class

The Application Project contains all required func-tions for the developed application itself This includesuniversal base classes and derived CAD related classesas shown in Figure 9 Of course this project can alsoinclude CAD independent classes for general functional-ities like the creation of folders files or other third partyapplications

It is up to the developer to decide when a separateproject (eg third party project) is created or not In gen-eral it is advisable to create a new project as soon asan additional API is used (eg Excel) The code separa-tion for different CAD releases caused by API changesshould be handled in the concerning CAD assembly asillustrated in 10

The Figure 10 shows the three different classesndashldquoNXAssemblyrdquo ldquoBOMNXrdquo and ldquoCADItemNXrdquo- includ-ing some general code elements The ldquoGetTreerdquo prop-erty of the ldquoNXAssemblyrdquo is the starting point wherea separation of NX releases is carried out ndash NX 75and NX 85 The optimum source code on the left sidewould call the release dependent methods from hereand also release independent functions like ldquoListCA-DItemsrdquo Unfortunately this represents a major effort in

the practical development The application is in commondeveloped for one single release and therefore the codestructure is defined in a logical way ndash as shown onthe right side The implementation of further releasesis added as needed later From this stage of develop-ment the KBD-Engineer is confronted with possible APIdifferences within the CAD releases In the example inFigure 10 the code differs in a deep layer of the pro-gram structure The release separation is required in theldquom_GetItemAttributesrdquo sub within the ldquoCADItemNXrdquoclass ndash at the bottom The developer has to change theentire structure and methods to perform a release dis-tinction in the ldquoNXAssemblyrdquo Therefore identical basiccode elements have to be duplicated for small differ-ences within some code lines This is not purposefulproduces unnecessary code and the effort increases inmaintenance modifications and handling of program-ming errors Experienced developers can estimate thedifferences already in the run and thus implement anappropriate structure

To avoid the mentioned structural changes in case ofsmall API differences but to allow later code trackinga keyword eg ldquoCADReleaserdquo is defined This keywordis used as function or property argument for each singlemethod which requires a separation of CAD releases

43 CADAutomation interfaces

APIs are based on core algorithms of theCAD system andallow the definition and development ofKBDautomation

Figure 10 API handling

482 M SALCHNER ET AL

routines The functional scope of the automation rou-tines is only limited by the provided CAD-API wherebythis functionality is often coupled with the used pro-gramming language and available license packages Thecommon denominator of different CAD systems regard-ing functionality costs and development within the pre-sented approach is stated by the NET framework It is asoftware framework developed by Microsoft since 2002which supports different coding languages like VisualBasic (VB) C or J Due to the fact that many CADsolutions deliver integratedVB programming editors andsimultaneously provide VBNET the multi-CAD strat-egy is developed based on this programming languageThe main disadvantage compared to programming lan-guages like C is a lack of code protection Neverthelessthere are some options to protect the code in an efficientand sufficient way Considering that todayrsquos most KBDtools in automotive industry are specific in-house appli-cations the protection of knowledge plays an importantrole [4] [14] [15] [18]

CAD related programming libraries can be providedin two species The first one includes dynamic linklibraries (dlls) which can be added as stand-alone ref-erences to the desired programming environment ndash NXThe second possibility is to use registered ActiveX ele-ments which are based on the Component ObjectModel(COM) standard - CATIA In this case the references arenot linked in a static way but based on windows registryentries The required libraries are loaded at runtime bydefault either from the startup path (dlls) or by use ofthe current registered COM element This faces a prob-lematic situation in case of different CAD releases Thecode libraries of different CAD releases or versions havethe same nomenclature and therefore a specific linkingmethod was developed

The mentioned problem can be handled in differ-ent ways During the iterative development processexplained in section 31 a large amount of different con-cepts has been worked out The result which fits all men-tioned requirements under consideration of the entirestrategy is explained in the next lines

The solution bypasses the windows registry entriesand allows a much more efficient realization of multi-release capability At startup of the initialization processthe current running CAD process is linked Based on thecurrent CAD system the required libraries are automati-cally created In the final step the libraries are loaded atruntime This method fulfills all requirements consider-ing the multi-CAD approach

The virtual connection between the KBD tool and theCAD system is carried out by a connection principlewhich is also defined by the API of the CAD systemCATIA for example is based on the Component Object

Model (COM)ofMicrosoft and therefore the connectionto the actual active CATIA window is reached out due tothe registered application name ndash ldquoCATIAApplicationrdquoThus different CATIA releases cannot be differenti-ated and therefore multiple window applications are notallowed The API of NX on the other hand is not basedon the COM strategy In this case the connection isperformed due to the Transmission Control Protocol Internet Protocol (TCPIP) by use of a server and a clientapplication whereby both can be applied on one singlecomputer [4] [14] [18]

ThementionedCAD initialization process and the dif-ferent connection methods are implemented within themulti-CAD-Framework accessible for KDB-Developer

5 Conclusions

The presented approach provides a platform for theefficient development of KBD applications for multi-CAD environments This includes amulti-CAD interfaceand different software modules that manage inconsis-tent CAD APIs capture knowledge provide reusablefunctions and libraries and have an enhanced serviceand error handling In contrast to common approacheswhere one single KBD tool has to be released sepa-rately for each single CAD-system and release this novelstrategy allows a standalone-releasing of different KBDtools This simplifies company-internal roll out proce-dure update management and administration Of coursethis strategy is part of the framework and uses the men-tionedFirebird database as application storage userman-agement and administration Furthermore it plays animportant role regarding the protection of the applica-tion and consequently of the knowledge On the otherhand the change or update management in view of theKBD-Engineer is therefore optimized because of a cen-tralized project management In this way the KBD-Useris not forced to execute different application files and thestandardized consistent GUI of all KBD tools minimizesthe training period significantly Referring to the start-ing statement concerning future trends of web-based andcase-based applications the presented framework allowsthe creation of four different solutions

bull Windows Form Application [14]bull Windows Console Application [14]bull Windows Service Application [14]bull Web Apps with ASPNET [14]

In the next months the approach is applied in a broadway by implementation of the new API of CATIA V6 [4]and additional open source CAD viewing tools Further-more different open source geometrical libraries will be

COMPUTER-AIDED DESIGN amp APPLICATIONS 483

investigated and the open xml software development kit[14] will be implemented In this way the functionalitywill grow and the platform - and vendor dependency willdecrease step by step

Considering multiply effects because of a large num-ber of KBD tools used in automotive industry a sig-nificant time reduction in the application of complexCAD-environment can be achieved

ORCID

Markus Salchner httporcidorg0000-0001-6379-0562Severin Stadler httporcidorg0000-0001-9867-0552Mario Hirz httporcidorg0000-0002-4502-4255

References

[1] CADEC Works httpwwwcadecin access date 2015-04-08

[2] Catic A Malmqvist J Towards integration of KBE andPLM International Conference on Engineering Design2007

[3] Chapman CB Pinfold M The application of a knowl-edge based engineering approach to the rapid design andanalysis of an automotive structure Advances in Engi-neering Software 32 2001 903ndash912 httpdxdoiorg101016S0965-9978(01)00041-2

[4] Dassault Systemes httpwww3dscom access date2015-01-27

[5] Eclipse httpseclipseorg access date 2015-01-27[6] Eigner M Stelzer R Product Lifecycle Management

Ein Leitfaden fuumlr Product Development und Life CycleManagement Springer 2009 ISBN 9783540443735httpdxdoiorg101007b93672

[7] Firebird httpwwwfirebirdsqlorg access date 2015-04-13

[8] Hirz M Dietrich W Gfrerrer A Lang J Inte-grated computer-aided design in automotive develop-ment development processes geometric fundamentalsmethods of CAD knowledge-based engineering datamanagement Springer 2013 ISBN 9783642119392httpdxdoiorg101007978-3-642-11940-8

[9] KBEWorks httpwwwvisionkbecom access date 2015-04-08

[10] Lin B-T Chan C-K Wang J-C A knowledge-basedparametric design system for drawing dies InternationalJournal of Advanced Manufacturing Technology 362008 671ndash680 httpdxdoiorg101007s00170-006-0882-y

[11] Lin B-T Chang M-R Huang H-L Liu C-YComputer-aided structural design of drawing dies forstamping processes based on functional features Interna-tional Journal of Advanced Manufacturing Technology42 2009 1140ndash1152 httpdxdoiorg101007s00170-008-1670-7

[12] Ma QC Liu XW Review of Knowledge Based Engi-neering with PLM Applied Mechanics and Materials10ndash12 2007 127ndash130 httpdxdoiorg104028wwwscientificnetAMM10-12127

[13] Microsoft Developer Network httpmsdnmicrosoftcomde-atdn308572aspx

[14] Microsoft httpmicrosoftcom access date 2015-01-27[15] PTC httpwwwptccom access date 2015-01-27[16] Reddy E J Sridhar C N V Rangadu V P Knowl-

edge Based Engineering Notion Approaches and FutureTrends American Journal of Intelligent Systems 5(1)2015 1ndash17 httpdxdoiorg105923jajis2015050101

[17] Siemens PLM httpwwwplmautomationsiemenscomaccess date 2015-01-27

[18] Sanya IO Shehab EM An ontology frameworkfor developing platform-independent knowledge-basedengineering systems in the aerospace industry Inter-national Journal of Production Research 52 20146192ndash6215 httpdxdoiorg101080002075432014919422

[19] Skarka W Application of MOKA methodology in gen-erative model creation using CATIA Engineering Appli-cations of Artificial Intelligence 20 2007 677ndash690httpdxdoiorg101016jengappai200611019

[20] Stokes M Managing Engineering Knowledge ndash MOKAMethodology for Knowledge Based Engineering Appli-cations Professional Engineering Publishing LimitedASME Press 2001

[21] Tacton httpwwwtactoncom access date 2015-04-08[22] Transcat-PLM httpswwwtranscat-plmcom access

date 2015-01-27[23] Van Der Laan AH Van Tooren MJL Parametric

modeling of movables for structural analysis Journal ofAircraft 42 2005 1606ndash1614 httpdxdoiorg10251419764

  • 1 Introduction
  • 2 Knowledge-based design methods
  • 3 Multi-CAD approach
    • 31 Development process
    • 32 Overview of the Multi-CAD-framework
    • 33 Realization of Multi-CAD-framework
      • 4 Multi-CAD developer
        • 41 Programming directives
        • 42 Structured programming
        • 43 CAD Automation interfaces
          • 5 Conclusions
          • ORCID
          • References
Page 10: Multi-CAD approach for knowledge-based design methods4)_2016_471-483.pdf · universal functions, are stored inside the framework. This includes “CAD base”, “Utilities”, “Infrastructure”

480 M SALCHNER ET AL

programming guideline which is an essential part ofthe multi-CAD strategy Each multi-CAD automationapplication should follow the main rules to grant

bull Comprehensibility for other developersbull Simplified adaption and enhancementbull Release handlingbull Enable the multi-CAD approachbull Handle API changes

Figure 9 illustrates the principle structure of a multi-CAD application The application consists of at least twodifferent projects theMain - and the Application Projectwhereby theApplication Project is referenced to theMainProject The latter can access the defined methods andproperties of the Application Project Additional feasibleprojects could be databases or third party projects Theassembly class in the Main Project is responsible for allGUI related calls events and also for the separation ofdifferent CAD systems

This distinction is carried out by the instantiation ofdifferent application assemblies For example to supportCATIA and NX within this application there has to be

one ldquoNXAssemblyrdquo and one ldquoCATIAAssemblyrdquo instanceThese derived classes inherit the base class ldquoApplica-tionAssemblyrdquo and follow the ldquoCADApplicationrdquo - prin-ciple shown in the previous section The required multi-CAD initialization functions are called from this classThe graphical user interfaces often change due to thedevelopment process or in case of different customersTherefore a codding in GUI elements should be avoidedIt ismuchmore efficient to utilize user defined events andhandle them in the assembly class Last but not least theMain Project handles the exception events the customhelp file and optional license functions This structureallows an eased adaption and enhancement ofmain func-tionalities of the program by any KBD-Engineer Differ-ent application releases for various customers with differ-ent functionalities can be compiled in an efficient way

The main development rules for a multi-CAD appli-cation are

(1) At least two separate projects ndash Main and Applica-tion

(2) No CAD or know-how related source code in theMain Project

Figure 9 Structured programming layout for multi-CAD applications

COMPUTER-AIDED DESIGN amp APPLICATIONS 481

(3) No code elements in the GUI(4) CAD system separation in the Main Project(5) All calls from the project related assembly class(6) CAD release separation in Application Assembly

class

The Application Project contains all required func-tions for the developed application itself This includesuniversal base classes and derived CAD related classesas shown in Figure 9 Of course this project can alsoinclude CAD independent classes for general functional-ities like the creation of folders files or other third partyapplications

It is up to the developer to decide when a separateproject (eg third party project) is created or not In gen-eral it is advisable to create a new project as soon asan additional API is used (eg Excel) The code separa-tion for different CAD releases caused by API changesshould be handled in the concerning CAD assembly asillustrated in 10

The Figure 10 shows the three different classesndashldquoNXAssemblyrdquo ldquoBOMNXrdquo and ldquoCADItemNXrdquo- includ-ing some general code elements The ldquoGetTreerdquo prop-erty of the ldquoNXAssemblyrdquo is the starting point wherea separation of NX releases is carried out ndash NX 75and NX 85 The optimum source code on the left sidewould call the release dependent methods from hereand also release independent functions like ldquoListCA-DItemsrdquo Unfortunately this represents a major effort in

the practical development The application is in commondeveloped for one single release and therefore the codestructure is defined in a logical way ndash as shown onthe right side The implementation of further releasesis added as needed later From this stage of develop-ment the KBD-Engineer is confronted with possible APIdifferences within the CAD releases In the example inFigure 10 the code differs in a deep layer of the pro-gram structure The release separation is required in theldquom_GetItemAttributesrdquo sub within the ldquoCADItemNXrdquoclass ndash at the bottom The developer has to change theentire structure and methods to perform a release dis-tinction in the ldquoNXAssemblyrdquo Therefore identical basiccode elements have to be duplicated for small differ-ences within some code lines This is not purposefulproduces unnecessary code and the effort increases inmaintenance modifications and handling of program-ming errors Experienced developers can estimate thedifferences already in the run and thus implement anappropriate structure

To avoid the mentioned structural changes in case ofsmall API differences but to allow later code trackinga keyword eg ldquoCADReleaserdquo is defined This keywordis used as function or property argument for each singlemethod which requires a separation of CAD releases

43 CADAutomation interfaces

APIs are based on core algorithms of theCAD system andallow the definition and development ofKBDautomation

Figure 10 API handling

482 M SALCHNER ET AL

routines The functional scope of the automation rou-tines is only limited by the provided CAD-API wherebythis functionality is often coupled with the used pro-gramming language and available license packages Thecommon denominator of different CAD systems regard-ing functionality costs and development within the pre-sented approach is stated by the NET framework It is asoftware framework developed by Microsoft since 2002which supports different coding languages like VisualBasic (VB) C or J Due to the fact that many CADsolutions deliver integratedVB programming editors andsimultaneously provide VBNET the multi-CAD strat-egy is developed based on this programming languageThe main disadvantage compared to programming lan-guages like C is a lack of code protection Neverthelessthere are some options to protect the code in an efficientand sufficient way Considering that todayrsquos most KBDtools in automotive industry are specific in-house appli-cations the protection of knowledge plays an importantrole [4] [14] [15] [18]

CAD related programming libraries can be providedin two species The first one includes dynamic linklibraries (dlls) which can be added as stand-alone ref-erences to the desired programming environment ndash NXThe second possibility is to use registered ActiveX ele-ments which are based on the Component ObjectModel(COM) standard - CATIA In this case the references arenot linked in a static way but based on windows registryentries The required libraries are loaded at runtime bydefault either from the startup path (dlls) or by use ofthe current registered COM element This faces a prob-lematic situation in case of different CAD releases Thecode libraries of different CAD releases or versions havethe same nomenclature and therefore a specific linkingmethod was developed

The mentioned problem can be handled in differ-ent ways During the iterative development processexplained in section 31 a large amount of different con-cepts has been worked out The result which fits all men-tioned requirements under consideration of the entirestrategy is explained in the next lines

The solution bypasses the windows registry entriesand allows a much more efficient realization of multi-release capability At startup of the initialization processthe current running CAD process is linked Based on thecurrent CAD system the required libraries are automati-cally created In the final step the libraries are loaded atruntime This method fulfills all requirements consider-ing the multi-CAD approach

The virtual connection between the KBD tool and theCAD system is carried out by a connection principlewhich is also defined by the API of the CAD systemCATIA for example is based on the Component Object

Model (COM)ofMicrosoft and therefore the connectionto the actual active CATIA window is reached out due tothe registered application name ndash ldquoCATIAApplicationrdquoThus different CATIA releases cannot be differenti-ated and therefore multiple window applications are notallowed The API of NX on the other hand is not basedon the COM strategy In this case the connection isperformed due to the Transmission Control Protocol Internet Protocol (TCPIP) by use of a server and a clientapplication whereby both can be applied on one singlecomputer [4] [14] [18]

ThementionedCAD initialization process and the dif-ferent connection methods are implemented within themulti-CAD-Framework accessible for KDB-Developer

5 Conclusions

The presented approach provides a platform for theefficient development of KBD applications for multi-CAD environments This includes amulti-CAD interfaceand different software modules that manage inconsis-tent CAD APIs capture knowledge provide reusablefunctions and libraries and have an enhanced serviceand error handling In contrast to common approacheswhere one single KBD tool has to be released sepa-rately for each single CAD-system and release this novelstrategy allows a standalone-releasing of different KBDtools This simplifies company-internal roll out proce-dure update management and administration Of coursethis strategy is part of the framework and uses the men-tionedFirebird database as application storage userman-agement and administration Furthermore it plays animportant role regarding the protection of the applica-tion and consequently of the knowledge On the otherhand the change or update management in view of theKBD-Engineer is therefore optimized because of a cen-tralized project management In this way the KBD-Useris not forced to execute different application files and thestandardized consistent GUI of all KBD tools minimizesthe training period significantly Referring to the start-ing statement concerning future trends of web-based andcase-based applications the presented framework allowsthe creation of four different solutions

bull Windows Form Application [14]bull Windows Console Application [14]bull Windows Service Application [14]bull Web Apps with ASPNET [14]

In the next months the approach is applied in a broadway by implementation of the new API of CATIA V6 [4]and additional open source CAD viewing tools Further-more different open source geometrical libraries will be

COMPUTER-AIDED DESIGN amp APPLICATIONS 483

investigated and the open xml software development kit[14] will be implemented In this way the functionalitywill grow and the platform - and vendor dependency willdecrease step by step

Considering multiply effects because of a large num-ber of KBD tools used in automotive industry a sig-nificant time reduction in the application of complexCAD-environment can be achieved

ORCID

Markus Salchner httporcidorg0000-0001-6379-0562Severin Stadler httporcidorg0000-0001-9867-0552Mario Hirz httporcidorg0000-0002-4502-4255

References

[1] CADEC Works httpwwwcadecin access date 2015-04-08

[2] Catic A Malmqvist J Towards integration of KBE andPLM International Conference on Engineering Design2007

[3] Chapman CB Pinfold M The application of a knowl-edge based engineering approach to the rapid design andanalysis of an automotive structure Advances in Engi-neering Software 32 2001 903ndash912 httpdxdoiorg101016S0965-9978(01)00041-2

[4] Dassault Systemes httpwww3dscom access date2015-01-27

[5] Eclipse httpseclipseorg access date 2015-01-27[6] Eigner M Stelzer R Product Lifecycle Management

Ein Leitfaden fuumlr Product Development und Life CycleManagement Springer 2009 ISBN 9783540443735httpdxdoiorg101007b93672

[7] Firebird httpwwwfirebirdsqlorg access date 2015-04-13

[8] Hirz M Dietrich W Gfrerrer A Lang J Inte-grated computer-aided design in automotive develop-ment development processes geometric fundamentalsmethods of CAD knowledge-based engineering datamanagement Springer 2013 ISBN 9783642119392httpdxdoiorg101007978-3-642-11940-8

[9] KBEWorks httpwwwvisionkbecom access date 2015-04-08

[10] Lin B-T Chan C-K Wang J-C A knowledge-basedparametric design system for drawing dies InternationalJournal of Advanced Manufacturing Technology 362008 671ndash680 httpdxdoiorg101007s00170-006-0882-y

[11] Lin B-T Chang M-R Huang H-L Liu C-YComputer-aided structural design of drawing dies forstamping processes based on functional features Interna-tional Journal of Advanced Manufacturing Technology42 2009 1140ndash1152 httpdxdoiorg101007s00170-008-1670-7

[12] Ma QC Liu XW Review of Knowledge Based Engi-neering with PLM Applied Mechanics and Materials10ndash12 2007 127ndash130 httpdxdoiorg104028wwwscientificnetAMM10-12127

[13] Microsoft Developer Network httpmsdnmicrosoftcomde-atdn308572aspx

[14] Microsoft httpmicrosoftcom access date 2015-01-27[15] PTC httpwwwptccom access date 2015-01-27[16] Reddy E J Sridhar C N V Rangadu V P Knowl-

edge Based Engineering Notion Approaches and FutureTrends American Journal of Intelligent Systems 5(1)2015 1ndash17 httpdxdoiorg105923jajis2015050101

[17] Siemens PLM httpwwwplmautomationsiemenscomaccess date 2015-01-27

[18] Sanya IO Shehab EM An ontology frameworkfor developing platform-independent knowledge-basedengineering systems in the aerospace industry Inter-national Journal of Production Research 52 20146192ndash6215 httpdxdoiorg101080002075432014919422

[19] Skarka W Application of MOKA methodology in gen-erative model creation using CATIA Engineering Appli-cations of Artificial Intelligence 20 2007 677ndash690httpdxdoiorg101016jengappai200611019

[20] Stokes M Managing Engineering Knowledge ndash MOKAMethodology for Knowledge Based Engineering Appli-cations Professional Engineering Publishing LimitedASME Press 2001

[21] Tacton httpwwwtactoncom access date 2015-04-08[22] Transcat-PLM httpswwwtranscat-plmcom access

date 2015-01-27[23] Van Der Laan AH Van Tooren MJL Parametric

modeling of movables for structural analysis Journal ofAircraft 42 2005 1606ndash1614 httpdxdoiorg10251419764

  • 1 Introduction
  • 2 Knowledge-based design methods
  • 3 Multi-CAD approach
    • 31 Development process
    • 32 Overview of the Multi-CAD-framework
    • 33 Realization of Multi-CAD-framework
      • 4 Multi-CAD developer
        • 41 Programming directives
        • 42 Structured programming
        • 43 CAD Automation interfaces
          • 5 Conclusions
          • ORCID
          • References
Page 11: Multi-CAD approach for knowledge-based design methods4)_2016_471-483.pdf · universal functions, are stored inside the framework. This includes “CAD base”, “Utilities”, “Infrastructure”

COMPUTER-AIDED DESIGN amp APPLICATIONS 481

(3) No code elements in the GUI(4) CAD system separation in the Main Project(5) All calls from the project related assembly class(6) CAD release separation in Application Assembly

class

The Application Project contains all required func-tions for the developed application itself This includesuniversal base classes and derived CAD related classesas shown in Figure 9 Of course this project can alsoinclude CAD independent classes for general functional-ities like the creation of folders files or other third partyapplications

It is up to the developer to decide when a separateproject (eg third party project) is created or not In gen-eral it is advisable to create a new project as soon asan additional API is used (eg Excel) The code separa-tion for different CAD releases caused by API changesshould be handled in the concerning CAD assembly asillustrated in 10

The Figure 10 shows the three different classesndashldquoNXAssemblyrdquo ldquoBOMNXrdquo and ldquoCADItemNXrdquo- includ-ing some general code elements The ldquoGetTreerdquo prop-erty of the ldquoNXAssemblyrdquo is the starting point wherea separation of NX releases is carried out ndash NX 75and NX 85 The optimum source code on the left sidewould call the release dependent methods from hereand also release independent functions like ldquoListCA-DItemsrdquo Unfortunately this represents a major effort in

the practical development The application is in commondeveloped for one single release and therefore the codestructure is defined in a logical way ndash as shown onthe right side The implementation of further releasesis added as needed later From this stage of develop-ment the KBD-Engineer is confronted with possible APIdifferences within the CAD releases In the example inFigure 10 the code differs in a deep layer of the pro-gram structure The release separation is required in theldquom_GetItemAttributesrdquo sub within the ldquoCADItemNXrdquoclass ndash at the bottom The developer has to change theentire structure and methods to perform a release dis-tinction in the ldquoNXAssemblyrdquo Therefore identical basiccode elements have to be duplicated for small differ-ences within some code lines This is not purposefulproduces unnecessary code and the effort increases inmaintenance modifications and handling of program-ming errors Experienced developers can estimate thedifferences already in the run and thus implement anappropriate structure

To avoid the mentioned structural changes in case ofsmall API differences but to allow later code trackinga keyword eg ldquoCADReleaserdquo is defined This keywordis used as function or property argument for each singlemethod which requires a separation of CAD releases

43 CADAutomation interfaces

APIs are based on core algorithms of theCAD system andallow the definition and development ofKBDautomation

Figure 10 API handling

482 M SALCHNER ET AL

routines The functional scope of the automation rou-tines is only limited by the provided CAD-API wherebythis functionality is often coupled with the used pro-gramming language and available license packages Thecommon denominator of different CAD systems regard-ing functionality costs and development within the pre-sented approach is stated by the NET framework It is asoftware framework developed by Microsoft since 2002which supports different coding languages like VisualBasic (VB) C or J Due to the fact that many CADsolutions deliver integratedVB programming editors andsimultaneously provide VBNET the multi-CAD strat-egy is developed based on this programming languageThe main disadvantage compared to programming lan-guages like C is a lack of code protection Neverthelessthere are some options to protect the code in an efficientand sufficient way Considering that todayrsquos most KBDtools in automotive industry are specific in-house appli-cations the protection of knowledge plays an importantrole [4] [14] [15] [18]

CAD related programming libraries can be providedin two species The first one includes dynamic linklibraries (dlls) which can be added as stand-alone ref-erences to the desired programming environment ndash NXThe second possibility is to use registered ActiveX ele-ments which are based on the Component ObjectModel(COM) standard - CATIA In this case the references arenot linked in a static way but based on windows registryentries The required libraries are loaded at runtime bydefault either from the startup path (dlls) or by use ofthe current registered COM element This faces a prob-lematic situation in case of different CAD releases Thecode libraries of different CAD releases or versions havethe same nomenclature and therefore a specific linkingmethod was developed

The mentioned problem can be handled in differ-ent ways During the iterative development processexplained in section 31 a large amount of different con-cepts has been worked out The result which fits all men-tioned requirements under consideration of the entirestrategy is explained in the next lines

The solution bypasses the windows registry entriesand allows a much more efficient realization of multi-release capability At startup of the initialization processthe current running CAD process is linked Based on thecurrent CAD system the required libraries are automati-cally created In the final step the libraries are loaded atruntime This method fulfills all requirements consider-ing the multi-CAD approach

The virtual connection between the KBD tool and theCAD system is carried out by a connection principlewhich is also defined by the API of the CAD systemCATIA for example is based on the Component Object

Model (COM)ofMicrosoft and therefore the connectionto the actual active CATIA window is reached out due tothe registered application name ndash ldquoCATIAApplicationrdquoThus different CATIA releases cannot be differenti-ated and therefore multiple window applications are notallowed The API of NX on the other hand is not basedon the COM strategy In this case the connection isperformed due to the Transmission Control Protocol Internet Protocol (TCPIP) by use of a server and a clientapplication whereby both can be applied on one singlecomputer [4] [14] [18]

ThementionedCAD initialization process and the dif-ferent connection methods are implemented within themulti-CAD-Framework accessible for KDB-Developer

5 Conclusions

The presented approach provides a platform for theefficient development of KBD applications for multi-CAD environments This includes amulti-CAD interfaceand different software modules that manage inconsis-tent CAD APIs capture knowledge provide reusablefunctions and libraries and have an enhanced serviceand error handling In contrast to common approacheswhere one single KBD tool has to be released sepa-rately for each single CAD-system and release this novelstrategy allows a standalone-releasing of different KBDtools This simplifies company-internal roll out proce-dure update management and administration Of coursethis strategy is part of the framework and uses the men-tionedFirebird database as application storage userman-agement and administration Furthermore it plays animportant role regarding the protection of the applica-tion and consequently of the knowledge On the otherhand the change or update management in view of theKBD-Engineer is therefore optimized because of a cen-tralized project management In this way the KBD-Useris not forced to execute different application files and thestandardized consistent GUI of all KBD tools minimizesthe training period significantly Referring to the start-ing statement concerning future trends of web-based andcase-based applications the presented framework allowsthe creation of four different solutions

bull Windows Form Application [14]bull Windows Console Application [14]bull Windows Service Application [14]bull Web Apps with ASPNET [14]

In the next months the approach is applied in a broadway by implementation of the new API of CATIA V6 [4]and additional open source CAD viewing tools Further-more different open source geometrical libraries will be

COMPUTER-AIDED DESIGN amp APPLICATIONS 483

investigated and the open xml software development kit[14] will be implemented In this way the functionalitywill grow and the platform - and vendor dependency willdecrease step by step

Considering multiply effects because of a large num-ber of KBD tools used in automotive industry a sig-nificant time reduction in the application of complexCAD-environment can be achieved

ORCID

Markus Salchner httporcidorg0000-0001-6379-0562Severin Stadler httporcidorg0000-0001-9867-0552Mario Hirz httporcidorg0000-0002-4502-4255

References

[1] CADEC Works httpwwwcadecin access date 2015-04-08

[2] Catic A Malmqvist J Towards integration of KBE andPLM International Conference on Engineering Design2007

[3] Chapman CB Pinfold M The application of a knowl-edge based engineering approach to the rapid design andanalysis of an automotive structure Advances in Engi-neering Software 32 2001 903ndash912 httpdxdoiorg101016S0965-9978(01)00041-2

[4] Dassault Systemes httpwww3dscom access date2015-01-27

[5] Eclipse httpseclipseorg access date 2015-01-27[6] Eigner M Stelzer R Product Lifecycle Management

Ein Leitfaden fuumlr Product Development und Life CycleManagement Springer 2009 ISBN 9783540443735httpdxdoiorg101007b93672

[7] Firebird httpwwwfirebirdsqlorg access date 2015-04-13

[8] Hirz M Dietrich W Gfrerrer A Lang J Inte-grated computer-aided design in automotive develop-ment development processes geometric fundamentalsmethods of CAD knowledge-based engineering datamanagement Springer 2013 ISBN 9783642119392httpdxdoiorg101007978-3-642-11940-8

[9] KBEWorks httpwwwvisionkbecom access date 2015-04-08

[10] Lin B-T Chan C-K Wang J-C A knowledge-basedparametric design system for drawing dies InternationalJournal of Advanced Manufacturing Technology 362008 671ndash680 httpdxdoiorg101007s00170-006-0882-y

[11] Lin B-T Chang M-R Huang H-L Liu C-YComputer-aided structural design of drawing dies forstamping processes based on functional features Interna-tional Journal of Advanced Manufacturing Technology42 2009 1140ndash1152 httpdxdoiorg101007s00170-008-1670-7

[12] Ma QC Liu XW Review of Knowledge Based Engi-neering with PLM Applied Mechanics and Materials10ndash12 2007 127ndash130 httpdxdoiorg104028wwwscientificnetAMM10-12127

[13] Microsoft Developer Network httpmsdnmicrosoftcomde-atdn308572aspx

[14] Microsoft httpmicrosoftcom access date 2015-01-27[15] PTC httpwwwptccom access date 2015-01-27[16] Reddy E J Sridhar C N V Rangadu V P Knowl-

edge Based Engineering Notion Approaches and FutureTrends American Journal of Intelligent Systems 5(1)2015 1ndash17 httpdxdoiorg105923jajis2015050101

[17] Siemens PLM httpwwwplmautomationsiemenscomaccess date 2015-01-27

[18] Sanya IO Shehab EM An ontology frameworkfor developing platform-independent knowledge-basedengineering systems in the aerospace industry Inter-national Journal of Production Research 52 20146192ndash6215 httpdxdoiorg101080002075432014919422

[19] Skarka W Application of MOKA methodology in gen-erative model creation using CATIA Engineering Appli-cations of Artificial Intelligence 20 2007 677ndash690httpdxdoiorg101016jengappai200611019

[20] Stokes M Managing Engineering Knowledge ndash MOKAMethodology for Knowledge Based Engineering Appli-cations Professional Engineering Publishing LimitedASME Press 2001

[21] Tacton httpwwwtactoncom access date 2015-04-08[22] Transcat-PLM httpswwwtranscat-plmcom access

date 2015-01-27[23] Van Der Laan AH Van Tooren MJL Parametric

modeling of movables for structural analysis Journal ofAircraft 42 2005 1606ndash1614 httpdxdoiorg10251419764

  • 1 Introduction
  • 2 Knowledge-based design methods
  • 3 Multi-CAD approach
    • 31 Development process
    • 32 Overview of the Multi-CAD-framework
    • 33 Realization of Multi-CAD-framework
      • 4 Multi-CAD developer
        • 41 Programming directives
        • 42 Structured programming
        • 43 CAD Automation interfaces
          • 5 Conclusions
          • ORCID
          • References
Page 12: Multi-CAD approach for knowledge-based design methods4)_2016_471-483.pdf · universal functions, are stored inside the framework. This includes “CAD base”, “Utilities”, “Infrastructure”

482 M SALCHNER ET AL

routines The functional scope of the automation rou-tines is only limited by the provided CAD-API wherebythis functionality is often coupled with the used pro-gramming language and available license packages Thecommon denominator of different CAD systems regard-ing functionality costs and development within the pre-sented approach is stated by the NET framework It is asoftware framework developed by Microsoft since 2002which supports different coding languages like VisualBasic (VB) C or J Due to the fact that many CADsolutions deliver integratedVB programming editors andsimultaneously provide VBNET the multi-CAD strat-egy is developed based on this programming languageThe main disadvantage compared to programming lan-guages like C is a lack of code protection Neverthelessthere are some options to protect the code in an efficientand sufficient way Considering that todayrsquos most KBDtools in automotive industry are specific in-house appli-cations the protection of knowledge plays an importantrole [4] [14] [15] [18]

CAD related programming libraries can be providedin two species The first one includes dynamic linklibraries (dlls) which can be added as stand-alone ref-erences to the desired programming environment ndash NXThe second possibility is to use registered ActiveX ele-ments which are based on the Component ObjectModel(COM) standard - CATIA In this case the references arenot linked in a static way but based on windows registryentries The required libraries are loaded at runtime bydefault either from the startup path (dlls) or by use ofthe current registered COM element This faces a prob-lematic situation in case of different CAD releases Thecode libraries of different CAD releases or versions havethe same nomenclature and therefore a specific linkingmethod was developed

The mentioned problem can be handled in differ-ent ways During the iterative development processexplained in section 31 a large amount of different con-cepts has been worked out The result which fits all men-tioned requirements under consideration of the entirestrategy is explained in the next lines

The solution bypasses the windows registry entriesand allows a much more efficient realization of multi-release capability At startup of the initialization processthe current running CAD process is linked Based on thecurrent CAD system the required libraries are automati-cally created In the final step the libraries are loaded atruntime This method fulfills all requirements consider-ing the multi-CAD approach

The virtual connection between the KBD tool and theCAD system is carried out by a connection principlewhich is also defined by the API of the CAD systemCATIA for example is based on the Component Object

Model (COM)ofMicrosoft and therefore the connectionto the actual active CATIA window is reached out due tothe registered application name ndash ldquoCATIAApplicationrdquoThus different CATIA releases cannot be differenti-ated and therefore multiple window applications are notallowed The API of NX on the other hand is not basedon the COM strategy In this case the connection isperformed due to the Transmission Control Protocol Internet Protocol (TCPIP) by use of a server and a clientapplication whereby both can be applied on one singlecomputer [4] [14] [18]

ThementionedCAD initialization process and the dif-ferent connection methods are implemented within themulti-CAD-Framework accessible for KDB-Developer

5 Conclusions

The presented approach provides a platform for theefficient development of KBD applications for multi-CAD environments This includes amulti-CAD interfaceand different software modules that manage inconsis-tent CAD APIs capture knowledge provide reusablefunctions and libraries and have an enhanced serviceand error handling In contrast to common approacheswhere one single KBD tool has to be released sepa-rately for each single CAD-system and release this novelstrategy allows a standalone-releasing of different KBDtools This simplifies company-internal roll out proce-dure update management and administration Of coursethis strategy is part of the framework and uses the men-tionedFirebird database as application storage userman-agement and administration Furthermore it plays animportant role regarding the protection of the applica-tion and consequently of the knowledge On the otherhand the change or update management in view of theKBD-Engineer is therefore optimized because of a cen-tralized project management In this way the KBD-Useris not forced to execute different application files and thestandardized consistent GUI of all KBD tools minimizesthe training period significantly Referring to the start-ing statement concerning future trends of web-based andcase-based applications the presented framework allowsthe creation of four different solutions

bull Windows Form Application [14]bull Windows Console Application [14]bull Windows Service Application [14]bull Web Apps with ASPNET [14]

In the next months the approach is applied in a broadway by implementation of the new API of CATIA V6 [4]and additional open source CAD viewing tools Further-more different open source geometrical libraries will be

COMPUTER-AIDED DESIGN amp APPLICATIONS 483

investigated and the open xml software development kit[14] will be implemented In this way the functionalitywill grow and the platform - and vendor dependency willdecrease step by step

Considering multiply effects because of a large num-ber of KBD tools used in automotive industry a sig-nificant time reduction in the application of complexCAD-environment can be achieved

ORCID

Markus Salchner httporcidorg0000-0001-6379-0562Severin Stadler httporcidorg0000-0001-9867-0552Mario Hirz httporcidorg0000-0002-4502-4255

References

[1] CADEC Works httpwwwcadecin access date 2015-04-08

[2] Catic A Malmqvist J Towards integration of KBE andPLM International Conference on Engineering Design2007

[3] Chapman CB Pinfold M The application of a knowl-edge based engineering approach to the rapid design andanalysis of an automotive structure Advances in Engi-neering Software 32 2001 903ndash912 httpdxdoiorg101016S0965-9978(01)00041-2

[4] Dassault Systemes httpwww3dscom access date2015-01-27

[5] Eclipse httpseclipseorg access date 2015-01-27[6] Eigner M Stelzer R Product Lifecycle Management

Ein Leitfaden fuumlr Product Development und Life CycleManagement Springer 2009 ISBN 9783540443735httpdxdoiorg101007b93672

[7] Firebird httpwwwfirebirdsqlorg access date 2015-04-13

[8] Hirz M Dietrich W Gfrerrer A Lang J Inte-grated computer-aided design in automotive develop-ment development processes geometric fundamentalsmethods of CAD knowledge-based engineering datamanagement Springer 2013 ISBN 9783642119392httpdxdoiorg101007978-3-642-11940-8

[9] KBEWorks httpwwwvisionkbecom access date 2015-04-08

[10] Lin B-T Chan C-K Wang J-C A knowledge-basedparametric design system for drawing dies InternationalJournal of Advanced Manufacturing Technology 362008 671ndash680 httpdxdoiorg101007s00170-006-0882-y

[11] Lin B-T Chang M-R Huang H-L Liu C-YComputer-aided structural design of drawing dies forstamping processes based on functional features Interna-tional Journal of Advanced Manufacturing Technology42 2009 1140ndash1152 httpdxdoiorg101007s00170-008-1670-7

[12] Ma QC Liu XW Review of Knowledge Based Engi-neering with PLM Applied Mechanics and Materials10ndash12 2007 127ndash130 httpdxdoiorg104028wwwscientificnetAMM10-12127

[13] Microsoft Developer Network httpmsdnmicrosoftcomde-atdn308572aspx

[14] Microsoft httpmicrosoftcom access date 2015-01-27[15] PTC httpwwwptccom access date 2015-01-27[16] Reddy E J Sridhar C N V Rangadu V P Knowl-

edge Based Engineering Notion Approaches and FutureTrends American Journal of Intelligent Systems 5(1)2015 1ndash17 httpdxdoiorg105923jajis2015050101

[17] Siemens PLM httpwwwplmautomationsiemenscomaccess date 2015-01-27

[18] Sanya IO Shehab EM An ontology frameworkfor developing platform-independent knowledge-basedengineering systems in the aerospace industry Inter-national Journal of Production Research 52 20146192ndash6215 httpdxdoiorg101080002075432014919422

[19] Skarka W Application of MOKA methodology in gen-erative model creation using CATIA Engineering Appli-cations of Artificial Intelligence 20 2007 677ndash690httpdxdoiorg101016jengappai200611019

[20] Stokes M Managing Engineering Knowledge ndash MOKAMethodology for Knowledge Based Engineering Appli-cations Professional Engineering Publishing LimitedASME Press 2001

[21] Tacton httpwwwtactoncom access date 2015-04-08[22] Transcat-PLM httpswwwtranscat-plmcom access

date 2015-01-27[23] Van Der Laan AH Van Tooren MJL Parametric

modeling of movables for structural analysis Journal ofAircraft 42 2005 1606ndash1614 httpdxdoiorg10251419764

  • 1 Introduction
  • 2 Knowledge-based design methods
  • 3 Multi-CAD approach
    • 31 Development process
    • 32 Overview of the Multi-CAD-framework
    • 33 Realization of Multi-CAD-framework
      • 4 Multi-CAD developer
        • 41 Programming directives
        • 42 Structured programming
        • 43 CAD Automation interfaces
          • 5 Conclusions
          • ORCID
          • References
Page 13: Multi-CAD approach for knowledge-based design methods4)_2016_471-483.pdf · universal functions, are stored inside the framework. This includes “CAD base”, “Utilities”, “Infrastructure”

COMPUTER-AIDED DESIGN amp APPLICATIONS 483

investigated and the open xml software development kit[14] will be implemented In this way the functionalitywill grow and the platform - and vendor dependency willdecrease step by step

Considering multiply effects because of a large num-ber of KBD tools used in automotive industry a sig-nificant time reduction in the application of complexCAD-environment can be achieved

ORCID

Markus Salchner httporcidorg0000-0001-6379-0562Severin Stadler httporcidorg0000-0001-9867-0552Mario Hirz httporcidorg0000-0002-4502-4255

References

[1] CADEC Works httpwwwcadecin access date 2015-04-08

[2] Catic A Malmqvist J Towards integration of KBE andPLM International Conference on Engineering Design2007

[3] Chapman CB Pinfold M The application of a knowl-edge based engineering approach to the rapid design andanalysis of an automotive structure Advances in Engi-neering Software 32 2001 903ndash912 httpdxdoiorg101016S0965-9978(01)00041-2

[4] Dassault Systemes httpwww3dscom access date2015-01-27

[5] Eclipse httpseclipseorg access date 2015-01-27[6] Eigner M Stelzer R Product Lifecycle Management

Ein Leitfaden fuumlr Product Development und Life CycleManagement Springer 2009 ISBN 9783540443735httpdxdoiorg101007b93672

[7] Firebird httpwwwfirebirdsqlorg access date 2015-04-13

[8] Hirz M Dietrich W Gfrerrer A Lang J Inte-grated computer-aided design in automotive develop-ment development processes geometric fundamentalsmethods of CAD knowledge-based engineering datamanagement Springer 2013 ISBN 9783642119392httpdxdoiorg101007978-3-642-11940-8

[9] KBEWorks httpwwwvisionkbecom access date 2015-04-08

[10] Lin B-T Chan C-K Wang J-C A knowledge-basedparametric design system for drawing dies InternationalJournal of Advanced Manufacturing Technology 362008 671ndash680 httpdxdoiorg101007s00170-006-0882-y

[11] Lin B-T Chang M-R Huang H-L Liu C-YComputer-aided structural design of drawing dies forstamping processes based on functional features Interna-tional Journal of Advanced Manufacturing Technology42 2009 1140ndash1152 httpdxdoiorg101007s00170-008-1670-7

[12] Ma QC Liu XW Review of Knowledge Based Engi-neering with PLM Applied Mechanics and Materials10ndash12 2007 127ndash130 httpdxdoiorg104028wwwscientificnetAMM10-12127

[13] Microsoft Developer Network httpmsdnmicrosoftcomde-atdn308572aspx

[14] Microsoft httpmicrosoftcom access date 2015-01-27[15] PTC httpwwwptccom access date 2015-01-27[16] Reddy E J Sridhar C N V Rangadu V P Knowl-

edge Based Engineering Notion Approaches and FutureTrends American Journal of Intelligent Systems 5(1)2015 1ndash17 httpdxdoiorg105923jajis2015050101

[17] Siemens PLM httpwwwplmautomationsiemenscomaccess date 2015-01-27

[18] Sanya IO Shehab EM An ontology frameworkfor developing platform-independent knowledge-basedengineering systems in the aerospace industry Inter-national Journal of Production Research 52 20146192ndash6215 httpdxdoiorg101080002075432014919422

[19] Skarka W Application of MOKA methodology in gen-erative model creation using CATIA Engineering Appli-cations of Artificial Intelligence 20 2007 677ndash690httpdxdoiorg101016jengappai200611019

[20] Stokes M Managing Engineering Knowledge ndash MOKAMethodology for Knowledge Based Engineering Appli-cations Professional Engineering Publishing LimitedASME Press 2001

[21] Tacton httpwwwtactoncom access date 2015-04-08[22] Transcat-PLM httpswwwtranscat-plmcom access

date 2015-01-27[23] Van Der Laan AH Van Tooren MJL Parametric

modeling of movables for structural analysis Journal ofAircraft 42 2005 1606ndash1614 httpdxdoiorg10251419764

  • 1 Introduction
  • 2 Knowledge-based design methods
  • 3 Multi-CAD approach
    • 31 Development process
    • 32 Overview of the Multi-CAD-framework
    • 33 Realization of Multi-CAD-framework
      • 4 Multi-CAD developer
        • 41 Programming directives
        • 42 Structured programming
        • 43 CAD Automation interfaces
          • 5 Conclusions
          • ORCID
          • References