You are on page 1of 177

CAE Process Improvement Based on Knowledge

Management and Task Automation -Edición Única

Title CAE Process Improvement Based on Knowledge Management


and Task Automation -Edición Única

Issue Date 2008-10-01

Publisher Instituto Tecnológico y de Estudios Superiores de Monterrey

Item Type Tesis de maestría

Downloaded 23/11/2018 20:38:28

Link to Item http://hdl.handle.net/11285/568893


I T́   E
S  M
C M
D́  Iı́  A
P  G  Iı́

CAE P I   K M


 T A

T
P        ́ :

M  C
  
S  M

por:

César Augusto Rivas Guerra


Monterrey, N. L. Octubre 2008
© César Augusto Rivas Guerra, 2008
‘‘When you want something in life, you just gotta reach out and
grab it.’’
Christopher McCandless
(February 12, 1968 – August 18, 1992)
INSTITUTO TECNOLÓGICO Y DE ESTUDIOS SUPERIORES DE MONTERREY
CAMPUS MONTERREY

DIVISIÓN DE INGENIERÍA Y ARQUITECTURA

PROGRAMA DE GRADUADOS EN INGENIERÍA

Los miembros del comité de tesis recomendamos que el presente proyecto de tesis
presentado por el Ing. César Augusto Rivas Guerra sea aceptado como requisito
parcial para obtener el grado académico de:

Maestro en Ciencias en Sistemas de Manufactura


Especialidad en Diseño

Comité de tesis:

M.C. Pedro Orta Castañón


Asesor

M.C. Gerardo M. Fumagal Gómez Dr. Horacio Ahuett Garza


Sinodal Sinodal

Aprobado

Dr. Joaquín Acevedo Mascarúa


Director de Investigación y Posgrado de la Escuela de Ingeniería

Octubre, 2008
Acknowledgments

First and fore most, I would like to thank my mother and father, for all their sup-
port, for their love, for always backing on me and for their patience.

To my thesis advisor and friend, Pedro Orta Castañón. For his unconditional
friendship and for encouraging me to fulfill my goals. Thanks Pedro.

Also, I would like to thanks to Gerardo M. Fumagal Gómez, Dr. Horacio Ahuett
Garza, for agreeing to be on my thesis committee despite their extremely busy
schedule.

To my brother Dr. Alejandro J. Rivas Guerra for providing valuable feedback for
this work. Thanks a Lot!

Dr. Alex Elı́as Zúñiga, Dr. Ricardo A. Ramı́rez Mendoza and Dr. Ciro A. Rodrı́guez
González for their support and encouragement to complete my studies and obtain-
ing my degree after so many years.

I would like to thank all my friends who helped me get through graduate school
and the realization of this work. A special thank you note to Alejandro Rodrı́guez,
Victor Linares, Lucien Danzos and Francisco Jasso-Lucio. For the contributions
provided to this work, and most important, for their friendship. To Chick Higgins,
José Marı́a Cueva and Macus de Andrade, from the Altair Engineering Corporation.

C́ A R G


O 2008
i

CAE Process Improvement based on Knowledge Management


and Task Automation.

César Augusto Rivas Guerra


Instituto Tecnológico y de Estudios Superiores de Monterrey, 2008.

Thesis Advisor: Pedro Orta Castañón, M.Sc.

Abstract

Nowadays, the effort to create a complex finite element model has been increasing
rapidly due to the added detail to the model and product development times are
been reduced in order to introduce more products to market. There are several so-
lutions to solve this situation; one of them is to increase the CAE resources around
the world (i.e. hire more employees, outsourcing resources). Another solution is to
manage the knowledge of CAE specialist and automate recurring tasks to free the
knowledge worker from these activities and focus on the task that add value to the
process. There are several benefits of automating task and knowledge management
over increasing head-count: Fixed cost does not increase, knowledge is kept inside
the corporation and engineers focus to solve problems and not in building CAE
models.

In a near future, there will be a change in the CAE process; the required effort
that the CAE specialist will have allocate to build a finite element model will be
decreased to a point that he/she will just be managing the information generated
by servers running commercial or custom-build application, that will create the
finite element models.

i
Contents

Abstract i

1 Introduction 1
1.1 Problem to be Solved . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Work Proposal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 Justification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.4 Hypothesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.5 Scope of the Investigation . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.6 Methodology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2 Background 9
2.1 Computer Aided Engineering Process . . . . . . . . . . . . . . . . . . 9
2.1.1 Seaming Components . . . . . . . . . . . . . . . . . . . . . . . 13
2.1.2 Quality Guidelines for Welds in a Finite Element Model . . . 15
2.1.3 Numerical Aspects of the Seaming Components . . . . . . . . 17
2.1.4 Seam Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.2 Improvements of Computer Aided Engineering Process . . . . . . . 24
2.3 Knowledge Management . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.3.1 Knowledge Elicitation . . . . . . . . . . . . . . . . . . . . . . . 33

3 Methodology 35
3.1 Import Product Information . . . . . . . . . . . . . . . . . . . . . . . . 37
3.1.1 Import Product Information Flow Chart . . . . . . . . . . . . . 37
3.1.2 Algorithm: Import Product Information . . . . . . . . . . . . . 39
3.2 Seaming Components . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

iii
iv CONTENTS

3.2.1 Algorithm to Define the Welding of Components . . . . . . . 51


3.2.2 Seaming Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . 60
3.2.3 Weld Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
3.2.4 Seaming Preferences . . . . . . . . . . . . . . . . . . . . . . . . 74
3.3 Meshing Components . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
3.3.1 Algorithm to Build a Finite Element Mesh. . . . . . . . . . . . 80

4 Results 83
4.1 Import Product Information into a Meshing Application . . . . . . . 83
4.1.1 Ford F-250 Crash Model . . . . . . . . . . . . . . . . . . . . . . 84
4.1.2 Frame Front End Assembly . . . . . . . . . . . . . . . . . . . . 84
4.1.3 Obtained Benefits . . . . . . . . . . . . . . . . . . . . . . . . . . 86
4.2 Seaming Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
4.2.1 Frame Front End Seaming Process Results . . . . . . . . . . . 88
4.2.2 Seaming Process Obtained Benefits . . . . . . . . . . . . . . . . 89
4.2.3 Other Obtained Benefits . . . . . . . . . . . . . . . . . . . . . . 92
4.3 Batch Meshing Procedure . . . . . . . . . . . . . . . . . . . . . . . . . 92
4.3.1 Frame Front End Module Meshing Process Results . . . . . . 92
4.3.2 Mesh Quality Index . . . . . . . . . . . . . . . . . . . . . . . . 97
4.4 Summary of Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

5 Conclusions 103
5.1 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
5.2 Contributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
5.3 Future Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

Appendices 108

A Altair Hyperworks Automation with Tcl/Tk 111

B Tcl Code to Detect Weld Types 115

C Mathematics for the Seam Operation between Components 123

D Invoking the Procedure batch import and cleaning.tcl 131

iv
CONTENTS v

E Required Files for Procedure batch import and cleaning.tcl 133

F Requirements & Invoking the Procedure seaming.tcl 143

G Product Data Information, Front End Module 145

H Modifications to the userpage.mac File 147

I Matlab File to Calculate the Stiffness Matrix of a Finite Element Model 149

J Input Nastran Decks for Seaming Examples 153

Bibliography 158

v
vi CONTENTS

vi
List of Figures

1.1 Methodology Followed. . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.1 Breakdown Structure of the CAE Process . . . . . . . . . . . . . . . . 11


2.2 Streamlined CAE Process. User Intervention Reduced. . . . . . . . . 14
2.3 Graphical Representation of Seaming Components . . . . . . . . . . . 15
2.4 One to One Relationship . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.5 Traditional CAE Process . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.6 Weld Element Perpendicial to Components . . . . . . . . . . . . . . . 17
2.7 Element Size at the Weld Location . . . . . . . . . . . . . . . . . . . . 17
2.8 Representation of Stiffness Matrix of an Uncoupled System . . . . . . 18
2.9 Representation of an Uncoupled System . . . . . . . . . . . . . . . . . 19
2.10 Representation of Stiffness Matrix of a Coupled System . . . . . . . . 19
2.11 Representation of a Coupled System . . . . . . . . . . . . . . . . . . . 20
2.12 Unseamed 2D Elements . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.13 Stiffness Matrix of Unseamed Finite Element Model . . . . . . . . . . 21
2.14 Seamed 2D Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.15 Stiffness Matrix of Seamed Finite Element Model . . . . . . . . . . . . 22
2.16 Finite Element Model with Unseam Components . . . . . . . . . . . . 23
2.17 Seam Weld Representation as RBE2 Elements . . . . . . . . . . . . . . 23
2.18 Seam Weld Representation as CQUAD4 Elements . . . . . . . . . . . 24
2.19 Working of the Interface.c Program. Replica from [17]. . . . . . . 26
2.20 Hyundai Manual Analysis Solution Process. . . . . . . . . . . . . . . 28
2.21 Hyundai Streamlined Analysis Solution Process. . . . . . . . . . . . . 29
2.22 Number of Knowledge Management Papers by Year. According to
INSPEC [1]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

vii
viii LIST OF FIGURES

2.23 Cycle of Knowledge Creation–Transformation. . . . . . . . . . . . . . 33

3.1 Traditional CAE Process . . . . . . . . . . . . . . . . . . . . . . . . . . 36


3.2 Managed CAE Process . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.3 Flow Chart. Import Product Information into the Meshing Applica-
tion from CAD Information. . . . . . . . . . . . . . . . . . . . . . . . . 40
3.4 Algorithm for Assembling a Finite Element Model . . . . . . . . . . 41
3.5 Algorithm for Converting the Bill of Materials into a Format Read-
able by the Meshing Application. . . . . . . . . . . . . . . . . . . . . . 42
3.6 Bill of Materials in a Microsoft Excel Format. . . . . . . . . . . . . . . 42
3.7 Bill of Materials in a Computer Friendly Format. . . . . . . . . . . . . 43
3.8 Algorithm for Importing Components into a Meshing Application . 45
3.9 Algorithm of the Mid-surfacing Procedure. . . . . . . . . . . . . . . . 46
3.10 Technique Followed by User 1 to Seam Components. . . . . . . . . . 48
3.11 Technique Followed by User 2 to Seam Components. . . . . . . . . . 49
3.12 Technique Followed by User 3 to Seam Components. . . . . . . . . . 50
3.13 Flow Chart to Create the Component Pairs in a HM Database. . . . . 52
3.14 Example of the Ids of Points per Component. . . . . . . . . . . . . . . 55
3.15 Example of a Bounding Box per Component. . . . . . . . . . . . . . . 57
3.16 Components on a 3D Space for Creating Pairs to Seam. . . . . . . . . 58
3.17 Flow Diagram of Procedure fastSearch . . . . . . . . . . . . . . . . . 59
3.18 Flow Chart to Create the Components Pairs in an HM Database
Considering 3D Location & Component Pshell Property. . . . . . . . . 61
3.19 Overlap Weld Connection . . . . . . . . . . . . . . . . . . . . . . . . . 62
3.20 Tee Weld Connection . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
3.21 Boxed Weld Connection . . . . . . . . . . . . . . . . . . . . . . . . . . 63
3.22 Tube Weld Connection . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
3.23 Procedure to Seam Components. . . . . . . . . . . . . . . . . . . . . . 66
3.24 Simplified Representation of Two Components. Points From Com-
ponent B Close to the Surfaces of Component A. . . . . . . . . . . . . 69
3.25 Simplified Representation of Two Components. Points From Com-
ponent B Close to the Surfaces of Component A - Multiple Locations. 70

viii
LIST OF FIGURES ix

3.26 Simplified Representation of Two Components. Points from Both


Components Close to the Surfaces of Both Component - One Location. 71
3.27 Bounding Box of Selected Surfaces from Components A and B . . . . 72
3.28 Simplified Representation of Two Components. Points from Both
Components Close to the Surfaces of Both Component - Multiple
Locations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
3.29 Simplified Representation of Two Components. Points from Both
Components Close to the Surfaces of Both Component - Multiple
Locations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
3.30 Structure of a Seaming Preference File . . . . . . . . . . . . . . . . . . 75
3.31 Graphical Representation of the Seam Tolerance . . . . . . . . . . . . 76
3.32 Graphical Representation of the Spacing Parameter . . . . . . . . . . 77
3.33 Graphical Representation of the End Offset Parameter . . . . . . . . . 78
3.34 Flow Chart of the Meshing Procedure. . . . . . . . . . . . . . . . . . . 81

4.1 Ford F-250 Three Quarter View. . . . . . . . . . . . . . . . . . . . . . . 84


4.2 F-250 Detailed Truck Frame, Suspension and Power-train Compo-
nents View. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
4.3 Frame Front End Assembly. . . . . . . . . . . . . . . . . . . . . . . . . 85
4.4 Frame Front End without Weld Connections . . . . . . . . . . . . . . 88
4.5 Welded Frame Front End . . . . . . . . . . . . . . . . . . . . . . . . . . 89
4.6 Rail Assembly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
4.7 Cross-member Assembly . . . . . . . . . . . . . . . . . . . . . . . . . . 90
4.8 Rail and Cab Mount . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
4.9 Spring Tower with Bracket . . . . . . . . . . . . . . . . . . . . . . . . . 91
4.10 Weld Length Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
4.11 Table of Weld Lengths per Component Pairs . . . . . . . . . . . . . . 94
4.12 Table of Weld Lengths per Component Pairs, cont. . . . . . . . . . . . 95
4.13 Detailed Summary of Weld Length per Component Pair . . . . . . . . 96
4.14 Mounting Bracket Mesh . . . . . . . . . . . . . . . . . . . . . . . . . . 99
4.15 Spring Tower Mesh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
4.16 Front and Middle Rails Mesh . . . . . . . . . . . . . . . . . . . . . . . 100
4.17 Cross-member Components Mesh . . . . . . . . . . . . . . . . . . . . 100

ix
x LIST OF FIGURES

4.18 Effort Comparison between Traditional and Managed CAE Processes 101

C.1 Point-Point Distance. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124


C.2 Line-Point Distance. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
C.3 Surface Normals. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
C.4 Normal for a Flat Surface. . . . . . . . . . . . . . . . . . . . . . . . . . 130
C.5 Normal for a non-Flat Surface. . . . . . . . . . . . . . . . . . . . . . . 130

x
List of Tables

3.1 Different Approaches to Import the Product Information to Build a


Finite Element Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.2 csv File Conversion Format. . . . . . . . . . . . . . . . . . . . . . . . . 43
3.3 Different Approaches to Create the Weld Unions between Components. 47
3.4 Different Approaches to Create the Finite Element Mesh . . . . . . . 79

4.1 Ford F-250. Comparison Between Traditional and Managed CAE


Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
4.2 Frame Front End Assembly. Comparison Between Traditional and
Managed CAE Process . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
4.3 Frame Front End Module. Comparison Between Traditional and
Improved CAE Process . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
4.4 Frame Front End Module Meshing. Comparison between Tradi-
tional and Improved CAE Process . . . . . . . . . . . . . . . . . . . . 97
4.5 Traditional CAE Process Mesh Quality Index . . . . . . . . . . . . . . 97
4.6 Managed CAE Process Mesh Quality Index . . . . . . . . . . . . . . . 98

xi
Chapter 1

Introduction

1.1 Problem to be Solved


The amount of time invested in creating a finite element model (i.e. the finite
element mesh) of a large structure, like a truck frame, car body or airplane struc-
ture to mention some as examples, is considerable large, and the trends indicate
that the time available for creating the finite element models is decreasing because
of the requirement of reducing the development time of products or delivering
more products in the same amount of time. This work will focus on creation of
applications that will reduce the amount of time invested to import the product
information into a meshing application, create weld connections and generate the
finite element mesh through knowledge and process management complemented
with task automation.

If the time and effort invested in the creation of the finite element model is short-
ened or eliminated, the validation of a product using analytical methods could be
also shortened, therefor accelerating the completion of the requirements for suc-
cessful product development. The Aberdeen Group [20] states that the focus of
the lead companies is to make sure to meet the product schedules, saving all the
time possible, reducing the physical testing by using virtual prototypes and virtual

1
2 Introduction

testing using computer-aided tools.

In their report , The Aberdeen Group [20] makes the following questions and makes
some conclusion in regards to product development.

Managing product performance information is all about quality and cost, right?
Interestingly enough, manufacturers say it’s more about saving time, getting to
market on time, and increasing top-line growth. How does product performance
information translate to time saved? It’s all about using the experience and
lessons learned from the past to make better decisions today.

Pre-processing applications, as Altair Hypermesh or Beta CAE Systems ANSA,


provide set of tools for the creation of finite element models and some degree of
automation, but the creation of the finite element models still requires an invest-
ment of effort and time by the CAE1 specialist to complete the creation of the models.

This work will eliminate the work required by the CAE specialist to create those
welded assemblies and to streamline the creation of large finite element models,
by capturing the knowledge and transform it into a series of applications that will
handle the process of creating the finite element models. Also, by managing the
knowledge and by the automation of repetitive tasks, the efficiency of the computer
aided engineering process will be increased. The CAE specialist will manage, but
not do, the creation of the finite element models. The engineers will focus on the
value added activities of the CAE process, which are applying boundary conditions
and loads, interpreting the results and making proposals of better designs.

As a sub-product of this work, the quality of the finite element models created will
increase and the variability or variance of the models will be eliminated, in a such
way that models from a novice user will be similar to the ones created by a expert
or senior engineer.

1
Acronym for Computer-Aided Engineering

2
1.2 Work Proposal 3

1.2 Work Proposal

The main objective of this work is to create applications that will capture the
knowledge of the CAE specialist to generate the finite element models in a CAE
pre-processing application and summarize the work performed in a user friendly
report. These applications will contain and store knowledge of the experience CAE
specialist in regard to the creation of the finite element models.

As an outcome of this work, the effort and the time invested in the pre-processing
activities to create a finite element model will be reduced. The CAE specialists in-
stead of performing the activities by themselves, they will manage their knowledge
and create applications to generate the models.

1.3 Justification
The justifications for the realization of this work are listed below:

- Repetitive tasks that are time consuming and they should be performed by a
computer instead of a knowledge worker. Boris Veytsman et al. [39] stated
that repetitive tasks need to be performed by a computer and not by a knowl-
edge worker, who should focus on solving problems. Veytsman makes the
following comment about task automation:

“Men should not do what computers do better”

- Trends indicate a shift in the CAE responsibilities, focusing more in the inter-
pretations of results and proposing design modifications than spending time
meshing and welding components. Fewer will be doing more work.

- In a few years, most of the pre-processing activities will be automated. Mesh-


ing application will be considered as a commodity. Meshing applications
will capture the work-flow to a point in which the CAE specialist will just
provide a list of components, then the meshing application will do most of

3
4 Introduction

the pre-processing activities and, finally, output the analysis deck to the CAE
specialist. This will require process and knowledge management and task
automation.

- The product development time for new products is decreasing [20].

1.4 Hypothesis

It is possible to improve the efficiency of the CAE process by decreasing


the time and effort required to generate the finite element model of a product
through the knowledge management, process management and task automa-
tion.

The efficiency will be measured in the time required by the CAE specialist to create
the finite element model versus the time required by the application developed.
Effort will be measured in the same way, but instead of tracking the time, the metric
will be the number of manual operations to be performed.

1.5 Scope of the Investigation

The scope of the current investigation is to provide the basis for the improvement
of the CAE process by managing the knowledge of the specialist and incorporating
task automation into the process of creating the models. Due to the wide range
of uses of the computer-aided engineering, the scope of this work will be set to
improve the CAE process in the automotive industry focusing in the activities re-
quired or needed to create a finite element model of automotive structures as truck
frames or car engine cradles, components that are mostly formed by sheet-metal
parts.

4
1.6 Methodology 5

The intent of this document is not to present any type of new element formulation,
numerical aspects of the finite element method or new numerical methods for solv-
ing the equations that define the finite element method2 .

The task automation described in this work will be only applicable to Altair Hyper-
mesh, it is out of its scope to automate other meshing applications as MSC.Software
MSC.Patran or Beta CAE Systems ANSA.

1.6 Methodology
T̀he methodology used in this work is shown in Figure 1.1, which is described by
the following steps:

- Bibliography investigation in regards to process management, knowledge


management, task automation.

- Review the state of the art of CAE pre-processors and their ability to capture
the knowledge and automate tasks.

- Review interfaces to CAE pre-processors. APDL, Tcl/Tk, PCL, VBA, Python.

- Study the CAE process and make an assessment on how to automate the
work.

- Make a decision of the processes to automate.

- Develop a flow diagram of how to create the finite element model by the CAE
specialist in a pre-processing application.

- Generate pseudo-code.

- Convert pseudo-code to Tcl code


2
If the reader is interested in element formulation or numerical methods, the reader should con-
sult Finite Element Procedures by K.J. Bathe or Finite Elements and Approximation by O.C. Zienkiewicz
and K. Morgan as introductory readings to the finite element theory.

5
6 Introduction

- Create and run test cases. Examples will be presented in which a manual
process is compared to the result of the weld creation with the application
created.

- Document the results obtained within this work and define future work.

6
1.6 Methodology 7

Bibliography
Investigation Make Decision of what to
Knowledge Management, Automate
Task Automation.

Review of CAE Pre-


Generate Pseudo-code
Procesing Applications.

APDL, Tcl/Tk, PCL, VBA,


Create Tcl Code
Python

Study the CAE Process Create and Run Test Cases

Flow Diagram - CAE


Documetation
Process

Figure 1.1: Methodology Followed.

7
8 Introduction

8
Chapter 2

Background

This chapter contains information that will serve as the basis of the methodology
followed during this work, which will be reviewed in the next chapter. A de-
scription of the CAE Proceess will be presented among with examples of efforts to
improve the CAE process will be presented. Finally, the Knowledge Management
process will be described and will be shown with bibliography cites, how it can
impact the business performance.

2.1 Computer Aided Engineering Process


A breakdown structure of the CAE process follows (See Figure 2.2):

Import Product Information. Obtain the geometry information of the product


from the CAD repositories, import the files containing the product data into a
finite element database and finally translate/rotate the components into their
corresponding space position.

Build CAE Model. To create the finite element model several subprocess are re-
quired: assign name to components, assign properties & material informa-
tion, obtain mid-surfaces (if required), mesh components, create connectors
(welds, bolts) and , finally, mesh QA1 . This stage of the process is very time
1
QA stands for quality assurance of the mesh quality

9
10 Background

consuming and labor intensive. Analysis results depend on the quality of the
mesh. The mesh elements should meet a given quality criteria.

Set up Loads and Boundary Conditions. Loads (forces, moments, thermal loads,
speeds, etc) and movement constrains are applied during this stage to re-
produce the behavior of the components. This stage could be as simple of
applying one load in one node to have several hundreds of loads applied to
several hundreds of nodes into several load cases.

Run Analysis. After the FE model have been created and the boundary conditions
were applied to the model, the next step is to perform the analysis, either on a
local machine, remote server or in a computational cluster. The intervention
of the user is minimal during this stage of the process but it could require
several hours in order to complete the analysis process. In some types of
analyses, the CAE specialist must track a number of variables during the
analysis to check that the analysis is converging into a solution.

Analyze Results. Make conclusions in regards to the analysis results. Interrogate


displacement, stress, energy results in order to make conclusions. A new
brand of application is emerging to provide better tools for this stage: Post-
processing tools such as Altair Hyperview, Beta CAE Systems µeta, Medina,
Animator and TecPlot. Post-processing applications have a more complete
toolset in order to better interrogate the results, as 2D plotting tools, 3D
annotation tools and so on.

Improve Design Performance. Define changes to the components – shape, thick-


ness, geometric changes, add/remove features –, add new components or
remove unnecessary components.

Save Data and Archive. Archive the information for later referral. CAE software
vendors are starting to provide solutions to ensure the proper storage of the
model data via data managers.

If stages of the CAE process are reviewed, refer to Figure 2.2, the sub-processes
Import Product Geometry, Build CAE Model and Set up Loads and Boundary

10
2.1 Computer Aided Engineering Process 11

CAD Bill of Material


Information BOM
Repository

Import Product Information

Select Product Import Data into Translate &


Data Application Rotate

Build CAE Model


Assign Obtain Mid
Assign Name to
Properties & Planes
components
Material Info (if required)

Assign
Heal & Trim
Thickness (If
Surfaces
required)

Create
Mesh
Connectors Mesh QA
Components
(welds, bolts)

Set up Loads and Boundary Conditions

Run Analysis

Interrogate Results

Recommend a Better Design

Save Data and Archive

CAE Information
Repository

Figure 2.1: Breakdown Structure of the CAE Process

11
12 Background

Conditions are the ones that require more effort or labor by the knowledge worker
or CAE specialists. The actual process of running the analysis require little effort
from the knowledge worker but the computation time is needed, as the process of
archiving the data, which requires disk space. The most important sub-processes
are to interrogate the results and recommend a better design, but the amount of time
invested in these two sub-processes are not even half of the first three sub-processes.

The CAE specialist should spent most of his/her time on interrogating the results
of the analysis to figure out how the design behaves and making recommendations
to improve the performance of the design.

Also from Figure 2.2, each of the sub-processes of the CAE process is divided
into tasks. Those tasks are manually executed by the CAE specialist, even if the
pre-processing application provides a toolset to complete these tasks. The CAE
specialist has to command the application to execute a process for import the prod-
uct data into or to translate/rotate the components or to name the components and
so on with the rest of tasks shown in Figure 2.2. The only task that is independent
of the pre-processing application is the one regarding the selection of the product
data. The pre-processing or meshing application could receive the product data
among some meshing and quality criteria and the application will build the mesh
without any human intervention.

Could it be possible to automate the three first sub-processes – Import Product


Information, Build CAE Model and Set up Loads and Boundary Conditions – of
the CAE Process from and guided from the selection of the product data? Making
all of the tasks embedded in these three sub-processes automated by managing
the knowledge and by keeping track of what he/she do to streamline the CAE
Processes. If the the new features added to the pre-processing applications are
carefully reviewed, a quick and solid answer to the question risen above is Yes.
The other question will be when?

12
2.1 Computer Aided Engineering Process 13

Figure 2.2 shows a reduced user intervention CAE process. To be able to achieve
this streamlined workflow, knowledge management and task automation should
be incorporated.

If we could look into the future, the proposals of design changes could be also
automated. Pre-processing applications are getting morphing and optimization
features, so it could be possible to also automate one of the most important stages
of the CAE process, which are the interrogation of analysis results and the recom-
mendation of a better design.

2.1.1 Seaming Components


In this section, we will explain the creation of connectors between components,
which will be referred as the process of seaming components.

Figure 2.2 shows a breakdown structure of the CAE process, in one of the subtasks
of the process is the Creation of Connectors. The creation of connectors could be refer
as the process of joining two or more components of an assembly, which can be
performed by adding bolts between two or more components, welding the com-
ponents together.

Callister [21] defines the welding process as:

A technique for joining metals in which actual melting of the pieces to be joined
occurs in the vicinity of the bond. A filler material may be used to facilitate the
process.

The definition given by Callister [21] includes several types of welding, as arc
welding, MIG welding, spot welding and so on. Other types of welding can be
found in [13] and [3].

But for this work, we will define as Seam Weld as a type of continuous weld made
between or upon overlapping metal parts. Several continuous weld process , as

13
14 Background

CAD Bill of Material


Information BOM
Repository

Select Product
Data

Import Product Information*

Build CAE Model*

Set up Loads and Boundary Conditions*

Run Analysis

Interrogate Results

Recommend a Better Design**

Save Data and Archive

CAE Information
Repository

** Could be possible to automate the


* Denotes Automated Process
recommendation of new design?

Figure 2.2: Streamlined CAE Process. User Intervention Reduced.

14
2.1 Computer Aided Engineering Process 15

the arc or MIG welding, could be defined as part of the process named seam weld-
ing or seaming. Seaming Components could be defined as the process of creating a
continuous weld union between components. See Figure 2.3.

Weld Line Component B

Weld Torch
Component A

Figure 2.3: Graphical Representation of Seaming Components

In the CAE process, seaming components means creation elements between two
finite element meshes. The seam could be represented as rigid elements (RBE2
or RBE3), beam elements, gap elements, bar elements or by 2D or 3D elements,
depending on the standards used and the proper property must be assigned to the
elements representing the weld connection. The process of seaming components
will be explained in the next chapter.

2.1.2 Quality Guidelines for Welds in a Finite Element Model


In the current section, some quality guidelines for the creation of weld elements
will be presented. This section reflects the experience of the author in regards to the
creation of weld connections between components. Some of the recommendations
follow:

- One to one relationship in the connecting nodes of the components when


representing a weld. This applies for all the types of elements used as weld

15
16 Background

elements. See Figure 2.4.

Figure 2.4: One to One Relationship

- Nodes to be welded shall be aligned as much as possible to avoid twisting


the elements. The angle (φ) between the elements and the vertical should be
equal or close to zero. See Figure 2.5.

Figure 2.5: Traditional CAE Process

- When the weld is represented by uni-dimensional elements (i.e. RBE2 or


PBAR), the weld element shall be perpendicial to both components. Figure 2.6
shows a side view of two components welded together. The angle (φ) between
the elements and the vertical should be equal or close to zero.

16
2.1 Computer Aided Engineering Process 17

Figure 2.6: Weld Element Perpendicial to Components

- Element size at the weld location should be similar. It is not acceptable to have
a difference in the element size at the weld location. If element size of both
components needs to be different, the zone where the weld is located should
share a common element size. Refer to Figure 2.7 for a visual representation.

Figure 2.7: Element Size at the Weld Location

2.1.3 Numerical Aspects of the Seaming Components


Before the components in an assembly are connected or seamed, the stiffness matrix
of the system is defined by uncoupled matrices, each of these matrices is defined by
each of the components, loads or displacement applied to the components will just
affect the component in which the loads are applied. Figure 2.8 shows a graphical
representation of the stiffness matrix of an assembly with two uncoupled compo-
nents.

17
18 Background

Component A

No interaction
between the
Component B
components

Figure 2.8: Representation of Stiffness Matrix of an Uncoupled System

The stiffness matrices for components A and B are independent. No interaction


between the components.

The seaming process will couple all the sub-systems into one by linking several
nodes between the components. The seaming process will create finite elements
between the two components, and by doing that, the two stiffness matrix will be
transformed into a system stiffness matrix. See Figure 2.10.

By adding the elements representing the seam weld, the independence between
the sub-systems matrices is eliminated, and a fully couple system is obtained.
The behavior of the system after the components were seamed will depend on
several factors, some considerations are listed below:

- If rigid elements or RBE2 elements or equivalent elements are used, some


degrees of freedom of the system will be eliminate, due to the formulation of
the RBE2 element, which makes a node slave of the master node, by linking
some or all degrees of freedom from one node to the master node. The weld
line will be represented as rigid elements, which stiffness is infinite. The

18
2.1 Computer Aided Engineering Process 19

Component B

Component A

Figure 2.9: Representation of an Uncoupled System

Components A + B

Interaction between
components due to
the seam connections

Figure 2.10: Representation of Stiffness Matrix of a Coupled System

19
20 Background

Component B

Seam

Component A

Figure 2.11: Representation of a Coupled System

number of degrees of freedom eliminated will be proportional to the number


of rigid elements created2 .

- If shell or solids elements are used, the degrees of freedom of the system
will be a sum of the degrees of freedom of the components. No degrees of
freedom are eliminated or added with shell or solid elements, but a stiffness
between the two components is created, which represents the properties and
the stiffness of the weld.

2.1.4 Seam Examples


A finite element model of two elements is used to ilustrate the effects in the stiffness
matrix of the process of welding or seaming two components.

Figure 2.12 shows the two elements model with no weld element. The stiffness
matrix of the un-seamed model is shown in Figure 2.13. Figure 2.14 shows the two
elements model with a weld element, that is labeled number 3. The stiffness matrix
of the seamed model is shown in Figure 2.15.

2
The number of degrees of freedom eliminated will depend on the configuration of the rigid
element configuration, which can eliminate from 1 to 6 degrees of freedom, Review the solver user’s
manual for technical information about the rigid element configuration

20
2.1 Computer Aided Engineering Process 21

Y = 10.0 4 3 8 7

1 2

Y = 0.0 1 2 5 6

X = 15.0
X = 10.0

X = 25.0
X = 0.0
Dennis L. Chao
Department of Computer Science
It is not too hard to Figure
make2.12:
posters in LATEX
Unseamed 2D Elements
University of New Mexico
dlchao@cs.unm.edu

Introduction Packages Conclusions


This is Dennis Chao’s attempt to make a poster in LATEX. Well, actually, pdflatex to be exact. pdflatex It is not too hard to do posters in LATEX.
produces a pdf file with the proper fonts. Another nice thing about pdflatex is that you can import jpg
figures1. The pdf can be e-mailed to Kinko’s for printing. Don’t worry too much about the physical
size of the poster. Kinko’s will scale it up to the width of their printer if you want.
 
311538.46 112499.99 −190384.61 −8653.84 −155769.23 −112499.99 34615.38 8653.845 0 0 0 0 0 0 0 0
 112499.99 311538.46 8653.84 34615.38 −112499.99 −155769.23 −8653.84 −190384.61 0 0 0 0 0 0 0 0 
 
 
 −190384.61 8653.84 311538.46 −112499.99 34615.38 −8653.843 −155769.23 112499.99 0 0 0 0 0 0 0 0 
 
 −8653.84 34615.38 −112499.99 311538.46 8653.84 −190384.61 112499.99 −155769.23 0 0 0 0 0 0 0 0 
 
 −155769.23 −112499.99 34615.38 8653.84 311538.46 112499.99 −190384.61 −8653.84 0 0 0 0 0 0 0 0 
 
 −112499.99 −155769.23 −8653.843 −190384.61 112499.99 311538.46 8653.84 34615.38 0 0 0 0 0 0 0 0 
 
 34615.38 −8653.84 −155769.23 112499.99 −190384.61 8653.84 311538.46 −112499.99 0 0 0 0 0 0 0 0 
 
 8653.84 −190384.61 112499.99 −155769.23 −8653.84 34615.38 −112499.99 311538.46 0 0 0 0 0 0 0 0 
 
 0 0 0 0 0 0 0 0 311538.46 112499.99 −190384.61 −8653.84 −155769.23 −112499.99 34615.38 8653.84 
 
 0 0 0 0 0 0 0 0 112499.99 311538.46 8653.84 34615.38 −112499.99 −155769.23 −8653.84 −190384.61 
 
 0 0 0 0 0 0 0 0 −190384.61 8653.84 311538.46 −112499.99 34615.38 −8653.843 −155769.23 112499.99 
 
 0 0 0 0 0 0 0 0 −8653.84 34615.38 −112499.99 311538.46 8653.84 −190384.61 112499.99 −155769.23 
 
 
 0 0 0 0 0 0 0 0 −155769.23 −112499.99 34615.38 8653.84 311538.46 112499.99 −190384.61 −8653.84 
 
 0 0 0 0 0 0 0 0 −112499.99 −155769.23 −8653.843 −190384.61 112499.99 311538.46 8653.84 34615.38 
 
 0 0 0 0 0 0 0 0 34615.38 −8653.84 −155769.23 112499.99 −190384.61 8653.84 311538.46 −112499.99 
0 0 0 0 0 0 0 0 8653.84 −190384.61 112499.99 −155769.23 −8653.84 34615.38 −112499.99 311538.46

Figure 2.13: Stiffness Matrix of Unseamed Finite Element Model

Y = 10.0 4 3 8 7

1 3 2

Y = 0.0 1 2 5 6
X = 15.0
X = 10.0

X = 25.0

1
Like this:
X = 0.0

Figure 2.14: Seamed 2D Elements

21
Dennis L. Chao
Department of Computer Science
It is not too hard to make posters in LATEX University of New Mexico
dlchao@cs.unm.edu

Introduction
22 Packages Conclusions Background
This is Dennis Chao’s attempt to make a poster in LATEX. Well, actually, pdflatex to be exact. pdflatex It is not too hard to do posters in LATEX.
produces a pdf file with the proper fonts. Another nice thing about pdflatex is that you can import jpg
figures1. The pdf can be e-mailed to Kinko’s for printing. Don’t worry too much about the physical
size of the poster. Kinko’s will scale it up to the width of their printer if you want.
 
311538.46 112499.99 −190384.61 −8653.84 −155769.23 −112499.99 34615.38 8653.84 0 0 0 0 0 0 0 0
 112499.99 311538.46 8653.84 34615.38 −112499.99 −155769.23 −8653.84 −190384.61 0 0 0 0 0 0 0 0 
 
 
 −190384.61 8653.84 813461.53 −1.45e − 011 224999.99 −1.818e − 012 −155769.23 112499.99 −441346.15 −8653.84 0 0 0 0 −250961.53 −112499.99 
 
 −8653.84 34615.38 −1.45e − 011 588461.53 −1.818e − 012 −225000 112499.99 −155769.23 8653.84 −103846.15 0 0 0 0 −112499.99 −138461.53 
 
 −155769.23 −112499.99 224999.99 −1.818e − 012 813461.53 2.91e − 011 −190384.61 −8653.84 −250961.53 112499.99 0 0 0 0 −441346.15 8653.84 
 
 −112499.99 −155769.23 −1.818e − 012 −225000 2.91e − 011 588461.53 8653.84 34615.38 112499.99 −138461.53 0 0 0 0 −8653.84 −103846.15 
 
 34615.38 −8653.84 −155769.23 112499.99 −190384.61 8653.84 311538.46 −112499.99 0 0 0 0 0 0 0 0 
 
 8653.84 −190384.61 112499.99 −155769.23 −8653.84 34615.38 −112499.99 311538.46 0 0 0 0 0 0 0 0 
 
 0 0 −441346.15 8653.84 −250961.53 112499.99 0 0 813461.53 1.45e − 011 −190384.61 −8653.84 −155769.23 −112499.99 224999.99 3.638e − 012 
 
 0 0 −8653.84 −103846.15 112499.99 −138461.53 0 0 1.45e − 011 588461.53 8653.84 34615.38 −112499.99 −155769.23 5.457e − 012 −225000 
 
 0 0 0 0 0 0 0 0 −190384.61 8653.84 311538.46 −112499.99 34615.38 −8653.84 −155769.23 112499.99 
 
 0 0 0 0 0 0 0 0 −8653.84 34615.38 −112499.99 311538.46 8653.84 −190384.61 112499.99 −155769.23 
 
 
 0 0 0 0 0 0 0 0 −155769.23 −112499.99 34615.38 8653.84 311538.46 112499.99 −190384.61 −8653.84 
 
 0 0 0 0 0 0 0 0 −112499.99 −155769.23 −8653.84 −190384.61 112499.99 311538.46 8653.84 34615.38 
 
 0 0 −250961.53 −112499.99 −441346.15 −8653.84 0 0 224999.99 5.457e − 012 −155769.23 112499.99 −190384.61 8653.84 813461.53 −1.45e − 011 
0 0 −112499.99 −138461.53 8653.84 −103846.15 0 0 3.638e − 012 −225000 112499.99 −155769.23 −8653.84 34615.38 −1.45e − 011 588461.53

Figure 2.15: Stiffness Matrix of Seamed Finite Element Model

The stiffness matrix of the finite element model with no weld elements (Figure 2.13)
shows two independent matrices that represent there is no union between the el-
ements. By adding a weld element, the stiffness matrix (Figure 2.13) is modified
and a numerical link is added between the two elements. The Matlab file used
to calculate the stiffness matrix of the elements shown in Figures 2.12 and 2.14 is
included in the Appendix I.
1
Like this:

Figures 2.16, 2.17 and 2.18 show three finite element models. Figure 2.16 shows a
finite element model without weld elements between the components. Figures 2.17
2.18 represent the same finite element model but with weld unions between the
components, using RBE2 and CQUAD4 elements, respectively. The Nastran decks
inputs files for the finite element models are included in the Appendix J.

22
2.1 Computer Aided Engineering Process 23

Figure 2.16: Finite Element Model with Unseam Components

Figure 2.17: Seam Weld Representation as RBE2 Elements

23
24 Background

Figure 2.18: Seam Weld Representation as CQUAD4 Elements

2.2 Improvements of Computer Aided Engineering Pro-


cess
Beckert [9] summarize the concerns that the industry have in relation to the CAE
process, which can be listed below:

- The analysis and the design process are not well integrated.

- Engineers needs to be free from meshing in order to solve problems.

- Struggle to transform CAD information into finite element models.

- The knowledge of the experts should be transfered to avoid mistakes.

- The job of the analyst should be to solve problems and define the performance
of the products, not to struggle which CAD files and finite element models.
Quoting the author “In an ideal world, there would be no such thing as an analyst”.

The methodology followed by Beckert [9] to obtain these concerns was to interview
several experts in product development and analysis.

24
2.2 Improvements of Computer Aided Engineering Process 25

Eick and Alscher from Altair Engineering [15] gave, in the 6th German LS-Dyna
Forum 2007, a presentation explaining the level of automation possible to create
finite element models using Altair technology. An XML3 file generated by Altair
Data Manager to import and generate the finite mesh of a product. The weld
connections is also obtained from an XML file, which was generated using a CAD
application, like Dassault Systemes CATIA. In this work, the weld connections are
generated in a different way than the work presented by Eick and Alscher, the
geometry information of the components is reviewed by Altair Hypermesh and
when required, the weld is created.

To improve the generation of the models, Makropoulou [24], from Beta CAE Sys-
tems, demonstrated the lastest developments in managing the tasks that the CAE
specialists needs to complete by adding templates for different activities that need
to be performed in the analyst work-flow. For welding the components, similar
than [15] the welding information is provided as an input. This presentation also
was given at the 6th German LS-Dyna Forum, 2007 [4].

Hegde, Ahuett-Garza, Padiyar and Miller in [17] developed a C program to model


the interfaces between components for heat transfer or structural simulations. In-
stead of driving a pre-prosessing application (I-DEAS) to create the interface el-
ements, the C program interface.c asks paramters to the CAE specialist and
programmatically modifies an ABAQUS input file by adding the interfase ele-
ments. Instead of investing time and effort per model repeating similar activities
as duplicating and renumbering nodes, the authors developed an application that
would create the interface element for them focusing in value added activities or
activities that have not been fully managed.

Figure 2.19 shows a replica of an image found in [17] to describe the how the
interface.c program works. The program requires a ABAQUS input file, three
I-DEAS groups per interface, the number of interface locations, and paramters such

3
XML is short for Extensible Markup Language, and it allows designers/developers to create
their own customized tags.

25
26 Background

as friction and heat transfer coeficients at the interfaces. The program duplicates
nodes at the interface, renumbers the nodes of the elements affected by the creation
of the interface and creates the required elements with the appropiate nodal con-
nectivity.

ejector support ejector plate cover plate

interface.c
bolt nodes

cavity
insert

Interface nodes duplicate nodes interface or gap X


the two nodes have the same
elements degress of freedom
they are 'tied'

Figure 2.19: Working of the Interface.c Program. Replica from [17].

Shah and Tunga, from MSC.Software, [34], in their presentation at the Virtual
Product Conference 2007 “Engineering Simulation Process Automation using Templat-
ing Common Data Model Capabilities of SimXpert” show how to reduce the time
required to complete activities and improve the finite element models by the au-
tomation on simple repetitive tasks as creating bolts and applying loads.

Rupiper [32] in his presentation “Automating FE Model Creation and Managing CAE
Information to Increase User and Global Pre-processing Efficiencies” at the Hyperworks
Technology Conference 2007 reviewed the how John Deere streamlined its CAE pro-
cess eliminating repetitive tasks. Also, Rupiper [32] stated the common problems
in the CAE process: Meshing is time consuming, analysis requirements continue

26
2.2 Improvements of Computer Aided Engineering Process 27

to increase and, finally, product development time are decreasing. But there - John
Deere still performs seaming components as a manual process.

Huf [19], from Ford Motor Company, explains the procedure that organizations
needs to follow to improve and mature their CAE process. He starts be mentioning
of how the text editor was used as the pre-processing tool when computers and
applications were not as developed as today.

He mentions that improvements in the process should have any or all of the fol-
lowing foundations, depending in the amount of time and resources available :

Process Documentation. Store the process requirements in a given format, referred


and updated as needed. This documents should be used to train and develop
new skills. An example to this foundation will be to store the meshing criteria
files in a web server so the CAE specialist could refer to them as needed.

Process Guidance. A way to avoid mistakes by the users. The process should
guide the user to complete the tasks in a proper matter. Both Beta CAE
Systems ANSA and Altair Hypermesh provide features to guide the user
to complete the generation of the finite element model, know as Process
Manager.

Process Automation. Substitute repetitive task by scripts or applications that drive


the process with out any intervention from the user, which just will be re-
viewing results. A Visual Basic macro that drives the creation of an analysis
report.

Koo et al. [35], from the product development team at Hyundai, realized that the
time spent in generating the input decks from the finite element model could be
decreased by the automation of the creation of analysis files. The tasks of 1) the
creation of 6 types of input files4 for 3 different solvers (MSC.Nastran, MSC.Fatigue,
ABAQUS), 2) the needed commands to submit the solution of the analysis and 3)
4
The analyses mentioned are linear-static, fatigue, impact, non-linear module static, modal, and
point mobility.

27
28 Background

the generation of the report by the inquiry of predefined parameters, were auto-
mated by an application.

Figure 2.20 shows the analysis process at Hyundai before the process was auto-
mated. In this process, the specialist must generated all inputs decks for each of
the analysis required, then transfer the files to the solution server and execute the
commands to solve, recollect all results files and finally create the report for the
analyses performed. The streamlined process is shown in Figure 2.21 in which the
analyst just needs to execute the command to submit the analyses and generate the
report results, all other task are performed by the application developed.

deck #1 deck #2 res #1 res #2

MSC.Nastran

deck #3 deck #4 res #3 res #4


Report

MSC.Fatigue
Report
CAE Specialist generated by
specialists
deck #5 deck #6 res #5 res #6

ABAQUS

Figure 2.20: Hyundai Manual Analysis Solution Process.

Similar to the performed by Hyundai [35], the General Motors Corporation [40] au-
tomated the fatigue solution process by creating a bundle of MSC/Nastran, nCode,
iSIGHT, and internally developed program scripts to reduce the time invested to
obtain fatigue results of a product. The Visteon Corporation [22] automated the
reports for “Occupant head impact simulations on automotive instrument panels” elim-
inating the repetitive tasks by the creation of templates. The creation of the report
is trigged by the successful completion of the crash analysis.

28
2.3 Knowledge Management 29

deck #1 deck #2
res #1 res #2

MSC.Nastran

deck #3 deck #4
res #3 Report
res #4

MSC.Fatigue Report
generated by
CAE Specialist predefined
deck #5 deck #6 templates
res #5 res #6

ABAQUS

Application Driven Tasks

Figure 2.21: Hyundai Streamlined Analysis Solution Process.

The information presented in this section shows the interest of ISV5 and corpora-
tions to improve the CAE process in order to cut the development time and to have
a more efficient process. Some examples were presented in which the focus was
to automate the creation of the finite element model and other works refer to the
elimination of task performed by the specialist in the process of solution and the
creation of the reports.

This current work will focus on the creation of the finite element model and fo-
cusing the the automation of the creation of the weld union between components,
something that that has to be created manually by the CAE specialist or by a de-
signer using a CAD application like CATIA or Unigraphics.

2.3 Knowledge Management


Knowledge Management could be described as the processes which collects the
knowledge of a given company employees, store them in a knowledge repository,
applies this knowledge across the company and, finally, continues to the storage of
5
Independent Software Vendor. Company which develops and sells application tools and/or
software titles.

29
30 Background

the new generated knowledge. The final purpose of the knowledge management
is to improve the performance of the company, by avoiding to re-invent the wheel
and keep inside the frontiers of the company the knowledge of its current, former
and future employees. Zhang et al. [43] describe it as “... is the study of strategy,
process and technology to acquire, select, organize, share and leverage business-critical
information and expertise so as to improve company productivity and decision quality”.

Turban et al. [36] defined Knowledge Management as the process of accumulating


and creating knowledge, and facilitating the sharing of knowledge so that it can be
applied effectively throughout the organization.

Melan et al. stated in [26] that the quality improvement process is not enough to
guarantee the success of a company. A framework is needed to achieve the success
in a company and that every level in the organization needs to be committed to
that framework in order to work and generate results. Melan recommended the
concept of process management of the manufacturing processes to expand to the
administrative and service operations. By doing the later, there will be a clear
understanding of how the work is performed, effectiveness can be measure and a
true control of the operation can be achieved.

Hoffman et al. [18] makes the following quote in regards to Knowledge Manage-
ment:

Knowledge Management can lead to decreased cycles times, help firms avoid
obsolescence, streamline processes, and give firms a sense of how to respond to
change.

Also, Hoffman [18] defines four sub-processes for the Knowledge Management:
Generation of Knowledge (Experience), Capture the Knowledge (Organization of
Knowledge), Knowledge Codification (Representation of Knowledge) and Knowl-
edge Transfer (Transmission to others and absorption). Applied to this work, the
four sub-processes of the Knowledge Management are:

Generation of Knowledge Experience of the CAE specialists, the way the special-
ist works.

30
2.3 Knowledge Management 31

Capture the Knowledge Review the procedures that the CAE specialist follows.
Make procedures to perform meshing activities, if the procedures do not exist.

Knowledge Codification Transform the CAE procedures into computer code, that
always will be executed in a similar manner.

Knowledge Transfer Deploy scripts to users. Train the users how to use the script-
s/procedures and the results expected from the use of the scripts. Also, show
them how they could avoid repetitive tasks and gain additional knowledge
or skills.

Zhang [43] makes the statement that knowledge is as critical to the information
age as the oil is to the industrial age, and that knowledge is a key for business
success and, even more important, the extraction of knowledge is considered as
fundamental in order to achieve success. One of the metrics used by Zhang [43]
to show the importance of Knowledge management is the number of papers pub-
lished regarding this topic in the INSPEC [1] search engine. A reproduction of the
table presented in [43] is shown in Figure 2.22.

Figure 2.22 just reflects the growing industry concern to manage the knowledge of
their workers to improve the performance of the organizations. By managing the
knowledge, the organizations could reduce the time needed to develop products
by avoiding common mistakes, re-inventing the wheel in every new project that
any organization starts.

Afiouni [5] explains that there are two types of knowledge, tacit and explicit. The
tacit knowledge, which is personal and unique, is the acquired through experi-
ence, consists of technical information, know-hows and so on. Explicit knowledge
consists on all of the tacit knowledge that has been translated into a system that
anyone can access and utilize. By managing the knowledge of the CAE specialists,
moving from a tacit based knowledge into a explicit knowledge, the experience of
the engineers will be stored in a computer system that everybody could use, there-
fore, the CAE process will be improved. Afiouni [5] mentions that the knowledge
should not be purely tacit or explicit, but a combination of both of them. Common

31
Time Number of
Articles
1980 - 1985 6
1986 - 1990 52
1991 - 1995 54
32 1996 - 2000 503 Background
2001 - 2005 1174

Knowledge Management Articles, INSPEC


1200

1000
Num. Articles

800

600

400

200

0
1980 - 1985 1986 - 1990 1991 - 1995 1996 - 2000 2001 - 2005

Figure 2.22: Number of Knowledge Management Papers by Year. According to INSPEC [1].

tacit knowledge must be translated into explicit, meanwhile, the CAE experts must
acquired additional or new tacit knowledge. This recently created tacit knowledge
will be transformed later into explicit knowledge when is fully understood. A new
cycle of knowledge creation/transformation will be created. See Figure 2.23 for a
visual representation of this cycle of knowledge.

The more of tacit knowledge is converted into explicit, the more of new tacit knowl-
edge can be generated.

Afiouni [5] concludes that by managing the knowledge the organization will see
an increase of performance, but this performance increase is not by itself the only
factor to track, increase the knowledge and skills of the employees and facilitate
the sharing of knowledge inside the corporation is key to keep increasing the per-
formance of the organization.

32
2.3 Knowledge Management 33

Generation/
Storage of
Tacit
Knowledge

Explicit Codification of
Knowledge Tacit
Usage Knowledge
CAE Specialist

Figure 2.23: Cycle of Knowledge Creation–Transformation.

2.3.1 Knowledge Elicitation


Commonly referred as Knowledge Acquisition, but the correct term to use should
be Knowledge Elicitation, that can be described ‘as “acquiring knowledge from human
experts and learning from data”. The process of knowledge elicitation is fundamental
to the performance of corporations, as Versprille mentions in [38] that knowledge
represents the company’s true competitive advantage.

There are several methodologies that can be follow to obtain or acquire additional
knowledge, as mentioned in [12], [14] and [31]. The more direct method is to ask
the domain expert. Some of the techniques used to capture the knowledge are:
interviews, verbal protocol analysis, task analysis, questionnaires, observation and
contextual inquiries, log files or diaries, diagrams or mind-maps. The knowledge
elicitation should come from different experts, which are freed from their regular
activities and be focus to capture the knowledge and improve their processes.

Some of the issues that may appear with trying to capture the knowledge are:

33
34 Background

- The knowledge that the experts have is vast and mostly is stored in their
heads, even if they -the experts- keep track of their activities and document
their processes.

- Make the decision of which knowledge to extract. What if the knowledge can
not be 100% captured or summarized.

- Some knowledge may be difficult to interpret or may be interpreted incor-


rectly.

- The experts may not be willing to share their knowledge.

- The experts may not know how to share the proper knowledge.

- The process of capturing the knowledge is time consuming and should be


properly planned.

- The knowledge base is not updated or validated at the end of the process to
acquire the knowledge.

During this work, interviews and task analysis were used to knowledge elicitation
of the CAE specialist. There were some issues presented, as the fact that some
experts were unwilling to participate due to lack of available time.

34
Chapter 3

Methodology

In this chapter the methodology for improving the CAE process via the knowledge
management and task automation will be presented. Also, the algorithms for each
step of the CAE process will be shown.

The knowledge of the CAE specialists will be transformed into a plug-in type appli-
cation for the meshing solution. The knowledge, for this scenario, could be defined
as the steps or activities and checks that are required to complete a finite element
model. Also, the way the CAE specialist interact with the meshing application and
the management of the data and files are considered knowledge.

As described in the previous chapter, the CAE process is defined by a series of


steps which are performed by a CAE specialist, he/she puts an amount of effort
and knowledge to complete a finite element model, this is what we would refer to
as Traditional CAE Process, which can be seen in Figure 3.1.

A managed CAE process can be seen in Figure 3.2, in which the knowledge of
the CAE specialist is converted into a series of rules and into computer code. By
managing the knowledge, the process can be improved, by eliminating non-value
added activities and reducing the effort and time invested to complete a model.

35
36 Methodology

CAE Workstation FE Model 1


CAE Specialist 1 CAD files
Meshing Application

CAE Workstation
CAE Specialist 2 CAD files FE Model 2
Meshing Application

CAE Workstation
CAD files FE Model 3
CAE Specialist 3
Meshing Application

Figure 3.1: Traditional CAE Process

CAE Server
CAD files
Task Automation
CAE Specialist 3 Meshing Application
CAE Specialist 1

CAE Specialist 2

CAE Knowledge FE Models

Figure 3.2: Managed CAE Process

36
3.1 Import Product Information 37

3.1 Import Product Information


If the process of building a finite element model is reviewed, refer to Table 3.1 ,
the steps required to import the product information to build the model are pretty
simple and they tend to repeat over the process. The basic steps to build a model
are: import the CAD1 information from the file repository into the meshing appli-
cation, provide a proper name for each of the components just imported, assign
material and element properties, and finally, if required, provide a thickness value
to the components and obtain the mid-surface of the part.

3.1.1 Import Product Information Flow Chart

At this stage of the CAE Process, most users have different strategies to import
the product information from the CAD information and PDM2 system. Most of
the strategies depend on personal preference of how to organize the data and time
invested to import the product information into the meshing application . Table 3.1
summarizes the different strategies to import the CAD information in order to have
the model ready for the mesh creation.

The flow chart of the process of importing the product information to the meshing
application from the CAD files is shown in Figure 3.3. Information is taken from
the bill of materials and from the CAD files repository to complete the task of
building the model. These two databases (bill of materials and CAD repository)
are not part of the CAE process but the specialist requires these information to gain
information from the product and provide the information required to the meshing
application.

The bill of materials could be in different formats, in this current process is consid-
ered that the information is in Microsoft Excel Format. The CAD Repository is a
folder in a filesystem that contains all the CAD files in a flat structure. Translators
1
Acronym for Computer Aided Design
2
Acronym for Product Data Management

37
38 Methodology

Table 3.1: Different Approaches to Import the Product Information to Build a Finite Element Model

User 1 User 2 User 3

1. Imports all CAD data into the 1. Imports one CAD file into the 1. Imports all CAD data into the
meshing application. meshing application. meshing application.
2. Creates all of the required ma- 2. From the bill of materials, ob- 2. Creates all of the additional in-
terial information. tains the metadata of the com- formation, by reviewing the bill
3. Gets the bill of materials infor- ponent just imported. of materials. Leaves the com-
mation, from the designer, to 3. Checks if the material informa- ponents names with the name
modify the required metadata tion is loaded into the meshing which the meshing application
of the components. application, if not, creates the gave by default.
4. Component by component pro- material information. 3. Applies the same information
vides a proper name, assigns el- 4. Renames the component and (material and properties) to all
ement and material properties assigns the required informa- the components. Uses the in-
and tion. formation which is most com-
5. if required, mid-surfaces the 5. Mid-surfaces the component, if mon within the model.
components. required. 4. Changes just the components
6. Hides the component in the with different information.
meshing application.
7. Continues this process until
completes importing all the re-
quired files.

38
3.1 Import Product Information 39

could be written from any PDM system different than Microsoft Excel and the file
structure could be modified to have a more flexible system.

The process of building or assembling a finite element model takes place in two
domains: The first domain is the information about the product or component, the
second domain is the meshing application. Normally, this two domains overlap
in the traditional process of importing the product information into the meshing
application, as can be seen at Table 3.1.

In the improved process with knowledge management and task automation, this
two domains will continue to exist, but they will be separated. First, all of the
product data will be transformed into a format that is readable by the meshing
application. After than, a plug-in to the meshing application will read the product
data and will import the CAD files and assign properties to the components.

3.1.2 Algorithm: Import Product Information


The flow chart shown in Figure 3.3 is a summary of the different techniques used,
that are listed in Table 3.1. An algorithm could be developed with the information
from Table 3.1 and Figure 3.3 to automate this process, increasing the performance
of the CAE specialists by reducing the effort and time invested to import the prod-
uct information into the meshing application.

The pseudo-code for building or assembling a finite element model from the CAD
files follows:

1. Obtain the information of the product. Consists of getting the bill of materials
with the product information.

2. Transform the bill of materials into a format that is readable by the meshing
application. A Microsoft Excel file will be transformed into a csv file with a
given format, which could be read by the meshing application using Tcl code.

3. Read the information generated in the step above in the meshing application.

39
40 Methodology

Start

Import CAD Meshing


Application

Provide Proper
Name to the
Component

Material
Properties Create Material
NO
Exists? Properties.

YES YES
Bill of
Materials CAD
Information

Apply Element and


Material Properties

Is it a Sheet-
metal Mid-Surface and
YES
Component? Provide Thickness

NO

Are there
more
components?

NO

End

Figure 3.3: Flow Chart. Import Product Information into the Meshing Application from CAD
Information.

40
3.1 Import Product Information 41

4. Import the components, assign proper name, material and element properties.

A visual representation of the process of importing the product information to build


the finite element model is shown in Figure 3.4. The flow chart shows the two com-
plete separated domains, the process of converting the product information into a
readable format and the process of actually managing the meshing application to
create the finite element model by importing the product information and assign
properties.

Bill of Materials Meshing


Start Conversion Application Import End
Process Process

Figure 3.4: Algorithm for Assembling a Finite Element Model

In its first stage, the procedure would take the information of the bill of materials
and transform it into a format which is readable by the meshing application. See
Figure 3.5.

Figure 3.5 shows a visual representation of the process of converting the bill of
materials -in a human friendly format as Microsoft Excel- into a format which is
readable by the meshing application using Tcl commands. In this case, the format
of the files consists in values separated by semi-colons (;). The reason of using a
special character as a semi-colon to separate the text columns is that the meshing
applications do not accept punctuation characters into the text fields and using
spaces or tabs could cause errors on the splitting of the information that the mesh-
ing application is reading.

41
42 Methodology

Start

Bill of Materials
Bill of Materials Process Meshing Application
Microsoft Excel Visual Basic Readable Format.
Format. Application (csv)

End

Figure 3.5: Algorithm for Converting the Bill of Materials into a Format Readable by the Meshing
Application.

Figure 3.6 the bill of materials in a Microsoft Excel format, while Figure 3.7 shows
the transformation of the bill of materials into a format, columns separated by
semi-colons, that could be read by the meshing application. The format for this
conversion can be seen in Table 3.2:

ITEM
DESCRIPTION PROCESS PART NO. MATERIAL SPEC NOM. GAGE
No
100 CM COMPATIBILITY BEAM UPPER STAMPED ITE-785-02593-A00 AXX2M-ST-S HR270 2.30
101 CM COMPATIBILITY BEAM LOWER STAMPED ITE-785-02594-A00 AXX2M-ST-S HR270 2.60
106 CM SUSPENSION LOWER STAMPED ITE-14599 AXX-2-M-STS-HR3 3.60
107 CM SUSPENSION UPPER STAMPED ITE-14601 AXX-2-M-STS-HR3 2.60
108 CM TRANSMISSION SUPPORT UPPER MAN STAMPED ITE-15488 AXX2M-ST-S HR270 2.90
109 CM TRANSMISSION SUPPORT LOWER MAN STAMPED ITE-15472 AXX2M-ST-S HR270 2.60
112 CM FUEL TANK FRT UPPER STAMPED ITE-91601 AXX3032M-ST-S 2.00
113 CM FUEL TANK FRT LOWER STAMPED ITE-91288 HR270
AXX3032M-ST-S 2.30
114 CM FUEL TANK RR UPPER STAMPED ITE-785-02614-A00 HR270
AXX3032M-ST-S 2.60
115 CM FUEL TANK RR LOWER STAMPED ITE-785-02615-A00 HR270
AXX3032M-ST-S 2.60
116 CM TUBE RR TUBULAR ITE-785-02622-A00 HR270
AXX3032M-ST-S 2.00
117 CM UPPER-A 4X4 (8.2UP) LHD/RHD STAMPED ITE-63897 HR270
AXX-2-M-STS-HR3 2.00
118 CM LOWER-A 4X4 (8.2UP) LHD/RHD STAMPED ITE-63893 AXX-2-M-STS-HR3 2.90
200 BR LH/RH FRONT PLATE CRUSH BUMPER MTG STAMPED ITE-785-02573-A00 AXX2M-ST-S-HR3 3.20
201 BR LH COMPATIBILITY BEAM STAMPED ITE-785-02595-A00 AXX2M-ST-S-HR3 3.00
202 BR RH COMPATIBILITY BEAM STAMPED ITE-785-02596-A00 AXX2M-ST-S-HR3 3.00

Figure 3.6: Bill of Materials in a Microsoft Excel Format.

In order to assign the proper properties to the materials, a procedure reads the
material information from a database. This procedure is a modified version of the

42
3.1 Import Product Information 43

component;cab mount 1;CAB_MNT01_11.PRT.4.iges;PSHELL;MATL_001;3.1;101


component;cab mount 11;CAB_MNT01_11.PRT.iges;PSHELL;MATL_001;3.1;102
component;cab mount 2;CAB_MNT02_11.PRT.5.iges;PSHELL;MATL_003;2.5;201
component;cab mount 21;CAB_MNT02_11.PRT.iges;PSHELL;MATL_003;2.5;202
component;cab mount 3;CAB_MNT03A_7.PRT.3.iges;PSHELL;MATL_002;3.0;203
component;cab mount 31;CAB_MNT03A_7.PRT.iges;PSHELL;MATL_002;3.0;204
component;mount bracket 1;MNT_BRACKET_001_1.PRT.2.iges;PSHELL;MATL_002;2.3;205
component;mount bracket 2;MNT_BRACKET_001_1.PRT.iges;PSHELL;MATL_002;2.3;206
component;mnt frame 31;MNT_R_FRAME003_6.PRT.1.iges;PSHELL;MATL_001;4.0;301
component;mnt frame 32;MNT_R_FRAME003_6.PRT.iges;PSHELL;MATL_001;4.0;302
component;rframe 01;R_FRAME_001A_9.PRT.iges;PSHELL;MATL_003;3.6;303
component;rframe 02;R_FRAME_001C_6.PRT.iges;PSHELL;MATL_003;3.6;304
component;frame 001;R_FRAME_001_24.PRT.iges;PSHELL;MATL_001;3.0;305
component;frame 002;R_FRAME_002_5.PRT.iges;PSHELL;MATL_002;3.0;306
component;frame 003;iges-tube-001.iges;PSHELL;MATL_002;3.0;307
component;frame front inner 1;R_FRAME_FRT_INNER_01_21.PRT.iges;PSHELL;MATL_001;2.6;401
component;frame front inner 2;R_FRAME_FRT_INNER_02_2.PRT.iges;PSHELL;MATL_001;2.6;402
component;frame spring seat 01 1;R_FRAME_SPRING_SEAT_001_10.PRT.6.iges;PSHELL;MATL_001;3.3;501

Figure 3.7: Bill of Materials in a Computer Friendly Format.

Table 3.2: csv File Conversion Format.


Materials material;Material Name;Material Type
Components component; Component Name; CAD file
name of component; Element Type; Material
Name; Thickness; Id Number
Comments $Text Comment (the comments are ignored
when the file is read by the meshing appli-
cation). Commet lines starts with with the $
character.

43
44 Methodology

Altair Material Manager3 macro to be able to run in without any user interface. The
macro consist on a series of folders containing databases of material properties.
The search is performed by the material name and type. If the material does not
exist, generic properties are assigned to the material.

If the product assembly contains any components that are made of sheet-metal, an
additional process must be performed to obtain the mid-surfaces of the compo-
nents. In this process, a mid-surface for each of the components will be generated
per component and the original surfaces and solids of the components will be
deleted. Refer to Figure 3.9 for a block diagram of the algorithm of mid-surfacing
process.

The flow charts presented in Figures 3.5, 3.8 and 3.9 would be transformed into
computer code so the CAE specialist will have only to manage the processes instead
of spending time executing the processes.

3.2 Seaming Components


The process of seaming components is one of the most time consuming activities
that the CAE specialist must perform. This process consists of joining components
with a series of elements (with rigid or shell elements) to represent the weld be-
tween the components.

There are several techniques or methods to be followed by the CAE specialists


to create the seams between components in a product assembly. Some of these
techniques are summarized in Table 3.3.

Figures 3.10, 3.11 and 3.12 show the different methodologies followed to create the
seam unions as shown in Table 3.3. Creating the weld union of components may
require the creation of the finite element mesh, but the user 3 (Figure 3.12) creates
3
To obtain the Altair macro, log on to http://www.altairhyperworks.com and search in the
Macro Exchange section.

44
3.2 Seaming Components 45

Start

Read Bill of
Materials Log
Meshing Application
Readable Format.

Finished to
Read Bill of Mid-Surfacing
A YES Save FE Model End
Materials? Procedure

NO
Component
Report (pdf)

Read next text line in


BOM

Assign Proper Name


Split Text by Log to the Component. Does the
Material Exist? YES
Separator character Read Material and
Element Properties

NO

Define Type of Create Material Assign Properties


Import Component
A COMMENT Item of current COMPONENT Information. Name + (Material & Element
CAD File
line Type + Data Properties)

MATERIAL

Create Material Does the


A Information. Name + Log A NO Component is
Type + Data CAD Repository a Sheet-metal?

YES

Assign Thickness
A
Information

Figure 3.8: Algorithm for Importing Components into a Meshing Application

45
46 Methodology

Start

Get Component
List

Are there Select Next Is it a Sheet-


B more YES Component in the metal NO B
components? List Component?

NO
YES

End

Delete Unneeded Obtain Mid-


B Surfaces/Solids Surface of
from Components Component

Figure 3.9: Algorithm of the Mid-surfacing Procedure.

46
3.2 Seaming Components 47

Table 3.3: Different Approaches to Create the Weld Unions between Components.

User 1 User 2 User 3

1. After all of the components 1. Before the components are 1. Before the components are
have been meshed, the CAE meshed, the CAE specialist de- meshed, the CAE specialist de-
specialist will define where the fines which components must fines which components must
components will be welded to- be welded together. be welded together.
gether. The specialist will work 2. The CAE specialist selects two 2. Two components are selected
on component pairs. of the components. Defines from all of the components in
2. The edge nodes from 1st com- the location of the weld for the database.
ponent are projected into the the current components. Iso- 3. The CAE specialist projects
mesh of the 2nd component. lates the area of welding with edge lines from the 1st com-
3. After the nodes were projected some modifications to the com- ponent into the 2st . The weld
into the 2nd component, the ponents geometry, as trimming union (with rigid links or shell
specialist modify the mesh of the surfaces. elements) is created between
the 2st component, so its nodes 3. The surfaces trimmed in the the original lines and the pro-
match to the nodes just pro- step above, are meshed and jected lines. Use of the connec-
jected. make sure that the nodes be- tor feature in the meshing ap-
4. Rigid or shell elements are cre- tween the two components plication.
ated between the two compo- match. The weld is created be- 4. The process is repeated for
nents to represent the weld. tween the two components. all of the components in the
The element nodes will be cre- 4. The CAE specialist selects an- database, until all of the needed
ated at the moment that the el- other pair of components, and connections between compo-
ements are created by the spe- repeats the two steps listed nents are created.
cialist, there is no need to create above. Trim the components, 5. After all of the weld unions
the nodes before the elements mesh the surfaces and generate have been created, the mesh for
are generated. the weld union. every component is created.
5. Continues with the same pro- 5. Continues with the same pro-
cess until all of the welds had cess until all of the weld unions
been created. are created.
6. The surfaces that have not been
meshed, are meshed by the
CAE specialist. He/She con-
tinues the meshing process un-
til there are no unmeshed sur-
faces.

47
48 Methodology

the mesh after the seam union was created.

Edges nodes from


Meshed
1st mesh projected
components
into the 2nd mesh

Recently created
nodes

Rigid (or other type) of


Nodes from the 2nd elements created to
mesh are merge into represent the weld
the projected nodes. union

Figure 3.10: Technique Followed by User 1 to Seam Components.

Each of the techniques or methods mentioned in Table 3.3 has some advantages
and some disadvantages, but the main concern is that they require an investment
of effort and time by the CAE specialist. The activities that must be completed and
performed by the CAE specialist are:

- Define the components to be welded together. Define what components will


be welded with which components and to which will be not welded. Com-
ponents that are in a given search distance range are welded and components

48
3.2 Seaming Components 49

Project edges from


Surfaces from
1st surface projected
components
into the 2nd surface

New line created by


the projection of
lines

Mesh the components.


Rigid (or other type) of
elements created to
represent the weld
union

Figure 3.11: Technique Followed by User 2 to Seam Components.

49
50 Methodology

Project edges from


Surfaces from
1st surface projected
components
into the 2nd surface

New line created by


the projection of
lines

Create connector with


Mesh the components. rigid (or other type) of
elements

Figure 3.12: Technique Followed by User 3 to Seam Components.

50
3.2 Seaming Components 51

that are not within search tolerance are not welded.

- Project the lines or the nodes. The projection of lines or nodes should be
performed by the CAE specialist. If required, the rearrangement of nodes
may be needed.

- Define the element type and the properties to be used for the weld elements.

- The weld unions or connections must be created by the specialist between


the components.

- The location of some of the projected nodes may be modified be the analyst,
to match the location of the weld unions.

- Review the weld unions and, if required, calculate the weld lengths.

The activities just mentioned are time consuming and the amount of effort required
to complete them is considerable.

This work will modify the workflow used by most of the analysts

3.2.1 Algorithm to Define the Welding of Components


The algorithm to define the welding of components is defined by two topics: Com-
binations and Selection by a three Dimensional Distance.

According to Miller et al. [30], in section Counting Techniques, Chapter 3, the number
of possible groups that could be created in a assembly of n components in groups
of r components is expressed by the following equation:
 
 n  n(n − 1)(n − 2) . . . (n − r + 1)
  = (3.1)
r!
 
r
Equation 3.1 can be written in factorial notation:
 
 n  n!
  = (3.2)
r!(n − r)!
 
r

51
52 Methodology

The algorithm to create the component pairs, according to Miller [30] and Equa-
tions 3.1 and 3.2, is shown in Figure 3.13.

Start
A

Init Array i<


containing the B numberOfCom YES
Component Pairs ponents?
pairOfComponents

NO
Initiate j counter
to i + 1
Get a List of j
End
components in
the HM database
CompsInFile

j<
Get the number of NO numberOfCom YES
components in ponents?
the HM database
numberOfComponents

Add components i
& j to Array of
Components
Pairs
C
Initiate i counter
to zero Incr i
i

Incr j
A B

Figure 3.13: Flow Chart to Create the Component Pairs in a HM Database.

The algorithm translated into Tcl code is shown in Listing 3.1.


The code 3.1 will create an in-memory database of component pairs. The database
will be filled with all of the possible combinations according to Equation 3.1.

52
3.2 Seaming Components 53

Listing 3.1: Tcl Code to Create Possible Groups of Components


set pairOfComponents {}
set CompsInFile [ hm_entitylist Comps name]
set numberOfComponents [ llength $CompsInFile ]
for { set i 0 } { $i < $numberOfComponents } { incr i } {
for {set j [expr $i +1]} { $j < $numberOfComponents } { incr j } {
lappend pairOfComponents "[ lindex $CompsInFile $i]
[ lindex $CompsInFile $j ]"
}
}

Equations 3.1 and 3.2 will provide the number of groups of r components that will
be created from the assembly from a domain with n parts, but will not calculate
the number of groups of components that will be welded. The number of welded
components will be less than the number calculated using Equations 3.1, because
only components that are close to each other, within a three dimensional search
tolerance, will be welded. Also, only components with a PSHELL element property
will be welded together, so solid components or 1D components will not be welded.

The algorithm shown in Figure 3.13 should be modified to add the conditions men-
tioned. First, the position in the 3D space for each component must be determined
and stored. Then, the procedure must decide if the components are close to each
other and if they are, they -the components- must be flagged as candidates to be
welded together. If the components are not within a distance of been welded to-
gether, they must be flagged as not to be welded together.

In order to determine the position in the 3D space for each component in the HM
database, the following steps must be completed:

- Generate two in-memory databases (compPointDB and compIdDB) contain-


ing the points per component and an index of the components id. This
is possible by the procedure called generatePointDataBase. The points
per component could be retrieved at any moment by the procedures called
retrievePointsDBCompList and retrivePointsFromDB. See Listing 3.2.

53
54 Methodology

Listing 3.2: Tcl Procedure generatePointDataBase


proc generatePointDataBase {} {
# generates the database of components id and their points

variable compPointDB
variable compIdDB

set listOfComponents [ hm_entitylist Comps name]

set compPointDB ""


set compIdDB ""

foreach compNameA $listOfComponents {


set compId [ hm_entityinfo id comps $compNameA ]
# gets the surfaces from component "A"
*createmark surface 1 "by comp name" $compNameA
set surfacesFromCompA [ hm_getmark surfaces 1]
*clearmark surfaces 1
#gets the free edges from surfaces in Comp "A"
set linesFromCompA [ get_free_lines_by_Surface $surfacesFromCompA ]
#gets the points from lines in Comp "A"
set pointsFromCompA [ get_points_from_lines $linesFromCompA ]

lappend compPointDB $pointsFromCompA


lappend compIdDB $compId
}
}

54
3.2 Seaming Components 55

Figure 3.14 shows the points ids from a given components. The ids of the
points are stored in compPointDB to obtain the bounding box of the compo-
nent.

Figure 3.14: Example of the Ids of Points per Component.

- Generate a bounding box4 per component from the information stored in


the point database. The bounding box per component is generated by a
procedure called compsBbox and generateBounding BoxDataBase is used to
save the bounding box into the database compBoundingBoxDB at the beginning
of the seaming procedure, and the bounding box of any component could be
retrieved at any moment by a procedure called retriveBounding BoxDB. The
code for compsBbox and compBoundingBoxDB is shown in Listings 3.3 and 3.4.
Figure 3.15 is an example of a bounding box. The bounding box will be used
to determine if two components are to be welded.

4
A box encompassing an oval or other graphic, that specifies height, width, and location.

55
56 Methodology

Listing 3.3: Tcl Procedure compsBbox


proc compsBbox { compList } {
# gets the max and min dimensions of the selected surfaces
# as a list of six members {x_min y_min z_min x_max y_max z_max }.

set coordsX {}
set coordsY {}
set coordsZ {}

set pointList ""


set pointList [ retrievePointsDBCompList $compList ]

foreach iPoint $pointList {


lappend coordsX [ hm_getentityvalue POINTS $iPoint "x" 0 ]
lappend coordsY [ hm_getentityvalue POINTS $iPoint "y" 0 ]
lappend coordsZ [ hm_getentityvalue POINTS $iPoint "z" 0 ]
}

set numOfPoints [ llength $coordsX ]


set numOfPoints [expr $numOfPoints - 1]

set coordsX [lsort -real $coordsX ]


set coordsY [lsort -real $coordsY ]
set coordsZ [lsort -real $coordsZ ]

set minCoordX [ lindex $coordsX 0]


set minCoordY [ lindex $coordsY 0]
set minCoordZ [ lindex $coordsZ 0]

set maxCoordX [ lindex $coordsX $numOfPoints ]


set maxCoordY [ lindex $coordsY $numOfPoints ]
set maxCoordZ [ lindex $coordsZ $numOfPoints ]

return " $minCoordX $minCoordY $minCoordZ $maxCoordX $maxCoordY $maxCoordZ "


}

56
3.2 Seaming Components 57

x_m
ax,
y_ma
x, z_
max

x_m
in, y
_min
, z_
min

Figure 3.15: Example of a Bounding Box per Component.

Listing 3.4: Tcl Procedure generateBoundingBoxDataBase


proc generateBoundingBoxDataBase {} {
# generates a bounding box database of each component in the database
variable compBoundingBoxDB
set compBoundingBoxDB {}
set listOfComponents [ hm_entitylist Comps name]
foreach compNameA $listOfComponents {
lappend compBoundingBoxDB [ compsBbox $compNameA ]
}
}

57
58 Methodology

After the 3D position of each component is determined, a process takes the infor-
mation from the list containing all the possible pairs of components and eliminates
the ones that are not in an 3D distance tolerance. This process, named fastSearch,
determines if the components must be welded together. By doing this, the elapsed
time to complete the seaming process will be decreased, because, the number of
operations will be reduced.

Comp A

Comp C

Comp B

Comp D

Figure 3.16: Components on a 3D Space for Creating Pairs to Seam.

From Figure 3.16, if Equation 3.2 is considered, there will be 6 groups of two compo-
nents created, but if the location in space is considered, just 2 groups (Components
A-B and Components C-D) of components will be created and these 2 groups will
be flagged to be welded together . It makes no sense to try to weld components
A-C or A-D or B-C or B-D, because they are not close enough.

The process of creating the components pairs for seaming or welding is performed
by the CAE specialist by visual reference. The automated process, fastSearch,

58
3.2 Seaming Components 59

takes in consideration the location in space and the size of the components to de-
termine if the components will be welded or not. The fastSearch procedure will
only detect if a component is close to another, but not to define the location of the
components locations, this will be performed by the seaming procedure.

Obtain Bounding Obtain Bounding


Box from 1st Box from 2nd
Component Component

Obtain 1st Obtain 2nd


Component Size Component Size

Obtain 1st Obtain 2nd


Component Component
Center Center

Obtain Distance
between Centers

Obtain Relative
Location of
Components in
Space

Obtain Distance
between the
Components

Distance
Components will between Components
not be welded NO YES
Components < should be welded
Tolerance ?

Figure 3.17: Flow Diagram of Procedure fastSearch

The fastSearch procedure will considerably decrease the operations of seaming


the amount of time elapsed to create the weld unions. If a product contains 100
components or parts, and fastSearch is not used, there will be 4950 groups (Equa-

59
60 Methodology

tion 3.1) that the seaming process will try to weld together. If fastSearch is used,
the number of possible pair of components to be welded will decrease. Compo-
nents that are far apart will not be considered to be processed for the seaming
operation.

The original algorithm (Figure 3.13) for creating the pairs of components or groups
to be welded will change into an algorithm which takes in consideration the 3D
location and the size of the components. Refer to Figure 3.18.

3.2.2 Seaming Algorithm


After the components pairs are created, the next step will be to load a procedure
which will be responsible of creating the weld unions between the components.

The seaming process will create the weld union or connection between components.
The pseudo-code for creating the weld unions or seam connections between a pair
of components follows.

1. Extract the geometric information from the two components to be seam or


joined. The information required is: Name of the components and their id
in the Hypermesh database, list of surfaces per component, list of points per
component, bounding box per component.

2. From the geometric information, determine the type of weld that will be
performed. There are several types of welds: Overlap Weld (Fig. 3.19), Tee
Weld (Fig. 3.20), Boxed Weld (Fig. 3.21), Thou Weld (Fig. 3.22).

This step is where additional weld modules could be added to cover addi-
tional weld unions that are not covered in the current procedures, as spot
welding or hardware creation.

3. Generate the collector entity that will contain the weld union. The gener-
ation of the name of the weld collector will depend on the ids of the com-
ponents to be welded. The name of weld collector is defined by: prefix–

60
3.2 Seaming Components 61

Start A

Init Array
containing the
i<
Component Pairs B numberOfCom YES
pairOfComponents
ponents?

Initiate j counter
Get a List of NO to i + 1
Pshell j

components in
the HM database End
CompsInFile

Get the number of


components in
the HM database j<
numberOfComponents C numberOfCom YES
ponents?

Generate Are componets


database of NO within weld
points and tolerance??
Bounding Boxes
bounding boxes Compared
of components
Incr i
YES

Initiate i counter
to zero Add components i
i NO & j to Array of
Components
Pairs

A B

Incr j

Figure 3.18: Flow Chart to Create the Components Pairs in an HM Database Considering 3D
Location & Component Pshell Property.

61
62 Methodology

Figure 3.19: Overlap Weld Connection

Figure 3.20: Tee Weld Connection

62
3.2 Seaming Components 63

Figure 3.21: Boxed Weld Connection

Figure 3.22: Tube Weld Connection

63
64 Methodology

id of component A–id of component B. The prefix used in the name generation


is generated by reading the seaming preference file, refer to Section 3.2.4.

Listing 3.5: Tcl Code to Generate the Weld Collectors


proc generateWeldComponent { componentList } {
# creates an assembly name for the weld component
variable weldConnectorName
variable weldConnectorColor

set tmpName ""


foreach compName $componentList {
set compId [ hm_entityinfo id comps $compName ]
set tmpName " $tmpName-$compId "
}

set weldCollectorName1 " $weldConnectorName$tmpName "

if {[ ::hwat::utils::EntityExists $weldCollectorName1 comps ]== 0 } {


*collectorcreateonly components $weldCollectorName1 "" $weldConnectorColor
*createmark components 1 $weldCollectorName1
*colormark components 1 $weldConnectorColor
*clearmark components 1
}

*currentcollector components $weldCollectorName1


}

4. Obtain list of point, lines, surfaces and components IDs for both components
and store them in memory.

5. Determine the locations of the weld unions. Two components could be weld
in just one location, as in Tee connections, or components could be welded in
multiple locations, as in boxed unions.

6. Obtain the direction of the Weld. From component A to B, B to A or A to B/B to


A. The last scenario means that in some locations, the weld is from component
A to B and in other locations, from component B to A, within the same pair of
components.

7. Execute the weld creation procedure that will generate the weld connections
between the components, which consists of the following steps:

64
3.2 Seaming Components 65

(a) Select the lines to project


(b) Compute and track weld lengths of the components to be joined. Using
the Hypermesh Tcl command [eval hm linelength list of lines to project]
the weld lenght per welded components was obtained and stored in the
database weldLengthArray.
(c) Select the surfaces to be trimmed.
(d) Project the lines into the surfaces, in order to trim the surfaces to generate
the location of the weld union and obtain the ids of the lines just created.
See Listing 3.6

Listing 3.6: Tcl Code Project Lines into Surfaces


proc projectLines { lineListc surfListc } {
# projects lines into surfaces and trims them
# returns the id of the projected lines.

*clearmark points 1
*clearmark lines 1
*clearmark surface 2

hm_createmark lines 1 $lineListc


hm_createmark surfaces 2 $surfListc
*surfacemarksplitwithlines 2 1 0 11 0
*createmarklast points 1
set newPtsList [ hm_getmark points 1]
set projectedLines [ GetLinesFromPoints $newPtsList ]

*clearmark points 1
*clearmark lines 1
*clearmark surface 2

# if no lines were projected or generated, the procedure should return a list


# with no lines.
if {[ llength $projectedLines ]==0} {set $projectedLines ""}

return $projectedLines
}

(e) Set the weld connections to connect components A and B in the location
where the lines have been projected.
(f) Specify weld connection parameters. Refer to Section 3.2.4.

65
66 Methodology

(g) Create weld unions, using the functionally of the meshing applications
to create connectors.

Figure 3.23 shows a visual representation of the seaming procedure, in which


component are welded together if the distance between them is less that the search
tolerance. If the distance between components is greater that search tolerance, the
components are not welded.

Component not to be welded.


There are no components within a
given distance

Components to be welded. Two


components in weld tolerance.

Figure 3.23: Procedure to Seam Components.

The effort and time invested by the CAE specialist is replaced by a procedure that
generates the seam unions between the components. The tasks performed by the
seaming procedure follows:

- Creates groups of components to be welded.


- Location of weld by 3D location.

66
3.2 Seaming Components 67

- Creates weld connections between components according to weld preferences


- Calculates the weld lengths of the components to be joined.

3.2.3 Weld Types


In order to know how to process the creation of the weld connections, the type
of weld needs to be defined. To detect the weld type between two components,
the external points5 and surfaces ids have to be retrieved. The Listing 3.7 shows
how to retrieve the surfaces and external point ids, to get the point ids from the
components, the procedure retrivePointsFromDB.

Listing 3.7: Tcl to Retrieve Lines and Surfaces from the Two Components to be Joined
# gets the surfaces from component "A"
*createmark surface 1 "by comp name" $compA
set surfacesFromCompA [ hm_getmark surfaces 1]
*clearmark surfaces 1

# gets the surfaces from component "B"


*createmark surface 1 "by comp name" $compB
set surfacesFromCompB [ hm_getmark surfaces 1]
*clearmark surfaces 1
#gets the points from lines in Comp "A"
set pointsFromCompA [ retrivePointsFromDB $compA ]

#gets the points from lines in Comp "B"


set pointsFromCompB [ retrivePointsFromDB $compB ]

The type of weld between the two components would depend of the relationships
between their surfaces and lines. To define the union type between the components,
the distance between the points and the surfaces would be compared to a seaming
tolerance. If the distance between the points and the surfaces is less or equal to the
seaming tolerance, they are stored in a database. There will be two comparisons,
the 1st comparison is between the points from component A and the surfaces of
component B. The 2nd comparison is between the points from component B and the
surfaces of component A.

5
A external points is any point entity that contained by a line which Hypermesh type is equal to
1. The Hypermesh line type is obtained by the command [hm getlinetype id of line].

67
68 Methodology

To obtain the distance between the points and the surfaces, the Hypermesh Tcl
command hm getdistancefromnearestsurface was used. This command returns
the closest distance between a coordinate position in space and an surface. The
code to perform is task is shown in Listing 3.8. This code will be used twice, to
obtain the distance from points from component A to surfaces from B and to obtain
the distance from points from component B to surfaces from A.

Listing 3.8: Tcl Code to Obtain the Distance between Points and Surfaces
# checks if the 1st component is near the 2nd component
foreach iPoint $pointsFromCompA {
foreach iSurface $surfacesFromCompB {
set distPointSurf [ lindex [ hm_getdistancefromnearestsurface
[ hm_getcoordinates point $iPoint ] $iSurface ] 0]
if { $distPointSurf < $searchTolerance } {
incr closeAB
lappend surfacesB $iSurface
lappend pointA $iPoint
}
}
}

Points from Component B Close to the Surfaces of Component A - One Location

Figure 3.24 shows a simplified representation of two components that would be


welded together. For this example, the points from component B, that are marked
as diamonds, are within search tolerance to the surfaces from component A6 . The
lines between these points would be projected into the surfaces and mark the loca-
tion of the weld connector.

This example represents the scenario where two perpendicular components are
welded together, refer to Figures 3.20 and 3.22 for a visual representation. Fig-
ure 3.24 represents an example similar to welding mounting brackets or cross-
members to a frame rail.

6
A similar procedure would be executed if the points were from component A and the surfaces,
from component B.

68
3.2 Seaming Components 69

Selected Lines from


Selected Points Comp B
from Comp B
Comp A

Comp B
Selected Surface
from Comp A

Figure 3.24: Simplified Representation of Two Components. Points From Component B Close to
the Surfaces of Component A.

To seam the components together, the following steps are required:

- Store the points ids from the component B into the variable pointsToWeld and
the selected surfaces from components A into the variable surfaceToWeld.

- Retrieve the line ids attached to the points in pointsToWeld with the proce-
dure GetLinesFromPoints and store them in the variable linesToWeld.

- Project the lines stored in the variable linesToWeld into the surfaces (surfaceToWeld)
using the procedure projectLines and store the ids of the lines created in
the variable lineasProjd.

- Create the weld connections between the components A and B using the
procedure seamCompswithCollectors.

Points from Component B Close to the Surfaces of Component A - Multiple


Locations

Figure 3.25 shows a simplified representation of two components that required


welding, but the weld is required in multiple locations. The procedure to follow

69
70 Methodology

is similar to the one used then the weld is just needed in one location. The pro-
cedure follow for welding in one location is repeated in multiple occurrences and
additional process to separate the lines is also expected, the Tcl procedure used is
SeparateLines.

Selected Lines from


Comp B
Selected Points
from Comp B
Comp A

Comp B
Selected Lines from
Comp B
Selected Surface
from Comp A

Figure 3.25: Simplified Representation of Two Components. Points From Component B Close to
the Surfaces of Component A - Multiple Locations.

If the subroutine SeparateLines is not used, the projectLines procedure may


trim surfaces wrongly and may produce errors while trying to generate the weld
connectors.

A common example of this type of weld is the tube–through–tube connections.

Points from Both Components Close to the Surfaces of Both Component - One
Location

Figure 3.26 shows a simplified example of the two components two be welded
together. This case points, marked as colored diamonds, from both components
are in weld tolerance to some of the surfaces of both components. This case differ

70
3.2 Seaming Components 71

to the case shown in Figure 3.24 in the need to make a decision of which lines -from
component A or from B- to project to which surfaces-from component A or from B.

Selected Points
from Comp A Comp B
Selected Surface
from Comp B
Selected Line from
Comp A

Selected Surface
from Comp A

Selected Line from


Comp B
Comp A

Selected Points from


Comp B

Figure 3.26: Simplified Representation of Two Components. Points from Both Components Close
to the Surfaces of Both Component - One Location.

In order to decide which set of lines to project (lines from component A or B )


into which surfaces and create the seam connectors between the components, the
following is required:

- Obtain a combined bounding box of the selected surfaces from component A


and B. Obtain the orientation of the bounding box and calculate the center of
the bounding box and its size. See Figure 3.27.

- Obtain a bounding box of the selected lines from component A. Obtain the
orientation of the bounding box and calculate the center of the bounding box
and its size. The orientation of the bounding box of the selected lines from
component A is obtained by a comparison of the center of the bounding box
of the selected surfaces from component A and B.

- Obtain a bounding box of the selected lines from component B. Obtain the
orientation of the bounding box and calculate the center of the bounding box

71
72 Methodology

Selected Surface
from Comp B
Center Bounding Box
from Components A & B
Selected Line
from Comp A

Selected Line from


Comp B
Selected Surface from
Bounding Box from Comp A
Components A & B
*All other surfaces from Components A & B are hidden for reviewing purposes

Figure 3.27: Bounding Box of Selected Surfaces from Components A and B

and its size. The orientation of the bounding box of the selected lines from
component B is obtained by a comparison of the center of the bounding box
of the selected surfaces from component A and B.

- Compare vector from lines from component A to surfaces of B to vector from


lines from component B to surfaces of A and define which is located over the
other.

- After the comparison, set variable linesToWeld with the selected lines and
set variable surfacesToWeld with the selected surfaces from the item above.
Execute procedure projectLines to trim the selected surfaces and store the
recently created lines in the variable lineasProjd1.

- Execute the procedure seamCompswithCollectors to create the weld or seam


connectors between the components A and B using the lines in lineasProjd1
as the location of the connectors.

Points from Both Components Close to the Surfaces of Both Component - Mul-
tiple Locations

Figure 3.28 shows an example of a simplified weld connection in two –or multiple–
locations. This is common in boxed welds for structural armatures or automotive
structural components, as in Figure 3.21.

72
3.2 Seaming Components 73

There could be two types of overlaps:

- The overlap between the components A and B is alternating, as shown in


Figure 3.28. In some locations, the weld would be created from component B
to the A and in other locations, the weld would be defined from A to the B.

Comp B

Comp A

Figure 3.28: Simplified Representation of Two Components. Points from Both Components Close
to the Surfaces of Both Component - Multiple Locations.

- Component B is out-sized by the component A, as shown in Figure 3.29. The


edge lines from component A are used to trim the surfaces in the part B, all
the welds would be created from component B to A.

The process is similar to the case where points from both components are close to
each other, but there should be a division in creating the weld connections. Instead
of just running one process to generate the weld, multiple serial processes must
be completed to generate the weld in all the possible locations. If not, the weld
creation could generate errors as wrongly creating the welds.

The Tcl code for the detection of type and the creation of weld connectors is shown
in Appendix B.

73
74 Methodology

Comp B

Comp A

Figure 3.29: Simplified Representation of Two Components. Points from Both Components Close
to the Surfaces of Both Component - Multiple Locations.

3.2.4 Seaming Preferences


From the procedure reviewed in the Section 3.2.2, the seam procedure require
several parameters in order to create a weld union between the components. The
seaming procedure reads these parameters from a preference file, which the knowl-
edge worker (CAE specialist) can modify according to the given requirements. This
preference file is named autoseam.pref and should be located in the Altair Hy-
permesh home directory, which can be programmatically retrieved by the Altair
Hypermesh Tcl command [hm info -appinfo ALTAIR HOME].

Figure 3.30 shows the structure of the seaming preference file, which is required to
set the weld union parameters.

A description of the parameters in the preference file follows:

collector. Defines the naming convention for the weld connectors. The weld be-
tween a pair of components will have an unique name.

collectorColor. Defines the color of the weld collectors. Follows the color num-
bering convention from Altair Hypermesh. If the collectorColor is set to 3,
this means that the collector color is red.

74
3.2 Seaming Components 75

Specifies the color of the Represents the name prefix


components which will of the weld components.
contain each of the weld
unions. The number assigned
represents a color in
Hypermesh.

collector;weld-connectors
collectorColor;3
type;rigid If the distance between the
Defines the type of componets is greater than
elements used for tolerance;6.0 this value, the weld is not
created. Similar to search
creation of the
weld connectors.
connect_location;lines tolerance.

connect_what;components
spacing;6.0
How the seaming process
end_offset;5.0 will be handles. Between
lines and components.

The user can set a starting


Parameters that handles the and ending offset for the
spacing between elements. seam

Figure 3.30: Structure of a Seaming Preference File

75
76 Methodology

type. Code that defines the element type used for the weld connections between
components: (2) plot, (3) weld, (5) rigid, (21) spring, (55) rigid-link, (60) bar2,
(61) rod, (70) gap, (104) quads, (1001) custom. Defines by Altair Hypermesh
Connectors.

tolerance. Defines the maximum search distance between components. If some


elements of the components are within tolerance, they are welded together.
See Figure 3.31. Red lines represent weld between components. If the distance
between components is greater than the provided value, the seam between
the components is not created.

Figure 3.31: Graphical Representation of the Seam Tolerance

connect location, connect what. Defines how the connections are handled. De-
fined by Altair Hypermesh connectors feature.

spacing. Defines the spacing between elements in the weld union. In most of the
cases the parameter spacing will be similar or equal to the element size used
for the finite element mesh. See Figure 3.32

end offset. Defines the offset distance from the edge, where the weld connection
will start and end. From figure 3.33 can be appreciated a representation of

76
3.2 Seaming Components 77

Comp A

d d d d

Comp B

Figure 3.32: Graphical Representation of the Spacing Parameter

the end offset parameter, the weld connector (shown in red color) between
components A and B starts and ends at a d distances from the edges.

77
78 Methodology

Comp A

d d
Comp B

Figure 3.33: Graphical Representation of the End Offset Parameter

3.3 Meshing Components


Most of the meshing applications, as Altair Hypermesh or Beta CAE Systems
ANSA, have fast and robust algorithms for cleaning the surfaces and the creation
of 2D meshes from surfaces. But these algorithms have to be manually perform by
the CAE specialist. This process is the known as the creation of the finite element
mesh.

This process will only consider creating mesh for surfaces and the output will be a
two dimensional mesh or shell mesh. Solid meshing and creation of 1D elements
will not be considered in this process.

Similar to the two processes mentioned in this chapter, this process -the creation
of the mesh- depends on the way the CAE specialist learned and it is used to do
his/her work.

Table 3.4 shows a list of steps that three CAE specialists will perform to obtain a
finite element mesh from a series of surfaces. In addition to the effort and time
metrics, for the process of the creation of the mesh.

78
3.3 Meshing Components 79

Table 3.4: Different Approaches to Create the Finite Element Mesh

User 1 User 2 User 3

1. Select one component. Work 1. Select one component. Hide all 1. Mesh all the components with-
on the surfaces per component. others. out a surface clean-up process.
2. Add washers per holes or slots. 2. Clean up surfaces of the dis- 2. Fix any quality issues. The user
The surfaces with holes or slots played component. Joint, trim, will re-mesh the elements with
will be trimmed to create a delete, split, add control points low quality criteria.
washer. and lines. Add washers.
3. Clean up surfaces. Joint, trim, 3. Continue surface clean up
delete, split, add control points of other components until
and lines. all components have been
4. Create mesh with commands of cleaned.
the meshing application. 4. Mesh all of the surfaces of the
5. Fix any mesh issues. Re-mesh product or assembly.
the elements with quality is- 5. Quality improvement process.
sues until no bad elements are After all the components have
present on the component. been meshed, the users will
6. Select another component and start a process to review the
repeat the steps mentioned quality of the mesh and fix any
above until all the components quality issue.
have been completed.

79
80 Methodology

3.3.1 Algorithm to Build a Finite Element Mesh.


From Table 3.4, pseudo-code can be created to outline the steps required to manage
the knowledge of the CAE Specialist and build a program based on task automa-
tion in order to complete the finite element mesh from the product surfaces.

1. Obtain a list from all the components and cycle through all of them.

2. Per component, select all of the surfaces and execute a process for cleaning up
the surfaces. This process will require as an input a clean-up criteria, which
is stored in a file located in a specific directory.

3. After the completion of the clean-up process, a process for creating the mesh
will be executed. This process will require as an input the following data:
element size and element quality criteria.

4. Implement a quality process after the component mesh has been completed.

5. After all the components have been meshed, a quality element report could be
implemented so that the CAE Specialist or knowledge worker could review
the quality of the mesh just created. As above, the criteria have to be stored
in a file.

Figure 3.34 shows the flow chart of the algorithm to build a finite element mesh.
This flow chart can be seen as the process that the CAE specialist should follow to
create a finite element mesh. The algorithm would be transformed into computer
code to improve the meshing process by letting the meshing application to execute
this process without any intervention of the CAE specialist or knowledge worker
but reviewing the outcome of the automated process.

80
3.3 Meshing Components 81

Start

Set Element Size

Geometry Feature
Mesh Quality Read Parameter Recognition
Parameters Files and Clean-up

Generate List of
Surface
Components

Select Surfaces
Are there more Component
A
Components?
YES of Current
Clean-Up
Component

NO

End
Component Mesh
Creation

Figure 3.34: Flow Chart of the Meshing Procedure.

81
82 Methodology

82
Chapter 4

Results

In this chapter, the results of this work are presented. The results will be divided in
three sections, the first section will present the results from the procedure to batch
import geometry into the meshing application, batch import and cleaning.tcl.
On the second section, the results for the auto-seam seaming.tcl procedure will be
presented. And finally, the results for the batch-meshing procedure will be shown.

To visualize the differences between the traditional and the improved CAE process
three metrics are tracked: effort, elapsed time and estimated cost per model. The
effort is defined as the amount of instructions or commands that the user needs
to perform to complete the activity. The estimated cost will be computed by
multiplying the cost per hour of a CAE specialist times the elapsed time to complete
the activity.

4.1 Import Product Information into a Meshing Appli-


cation

In order to show the benefits of the procedure to batch import geometry into mesh-
ing application, two examples will be presented showing a comparison between
building the finite element model using the traditional process versus building the
model using a managed process.

83
84 Results

4.1.1 Ford F-250 Crash Model


A crash model of the Ford F-2501 was used to benchmark the traditional CAE
process vs. the one in which the knowledge management and task automation is
applied. The model contains 637 components, ranging from large sheet-metal pan-
els, as the truck bed components, to small brackets as cab-mounts.

The Ford F-250 model is shown in following figures. A three quarter view of the
truck is shown in Figure 4.1. Figure 4.2 shows a detailed view of the truck frame,
suspension and power-train components of the Ford F-250 model.

Figure 4.1: Ford F-250 Three Quarter View.

4.1.2 Frame Front End Assembly


The Frame front end consists of a 27 component assembly. The assembly of the
frame front end is shown in figure 4.3.

1
The crash model was obtained from FHWA/NHTSA National Crash Analysis Center web-
site. http://www.ncac.gwu.edu/. Reverse engineering was used to generate the CAD files and the
bill of materials of the F-250 pickup truck.

84
4.1 Import Product Information into a Meshing Application 85

Figure 4.2: F-250 Detailed Truck Frame, Suspension and Power-train Components View.

Figure 4.3: Frame Front End Assembly.

85
86 Results

Table 4.1: Ford F-250. Comparison Between Traditional and Managed CAE Process
CAE Traditional Process CAE Managed Process %
Effort 3822 5 76340%
Time (s) 31850 703 4430%
Cost (USD) 575.07 12.69 4430%

After importing the components to create the frame front end assembly (see figure
4.3) and assign the proper properties, the comparison between the two process is
shown in Table 4.2.

Table 4.2: Frame Front End Assembly. Comparison Between Traditional and Managed CAE
Process
CAE Traditional Process CAE Managed Process %
Effort 162 5 3240%
Time (s) 1680 103 1630%
Cost (USD) 30.00 1.86 1630%

As a reference, the component list of the front end module is shown at Appendix G.

4.1.3 Obtained Benefits


If the results on Tables 4.1 and 4.2, are reviewed, there is a considered gain on
performance of the crash engineer, by not focusing in importing components and
assigning properties. All the required information is already on the assembly bill
of materials, on a common enterprise format: Microsoft Excel Format. The crash
engineer can focus on setting boundary conditions, fine tuning the crash model
and analyzing the data obtained from the crash simulation.

The cost comparison on Tables 4.1 and 4.2 just shows cost for importing the CAD
information and assigning properties to the finite element model. No mesh has
been created, yet.

86
4.1 Import Product Information into a Meshing Application 87

The required time to create a model on the traditional CAE process varies depend-
ing on the experience of the CAE engineer and his/her current work-load, while the
time required to import the model and assign the properties by using the improved
workflow only depends on the performance of the workstation or server used to
create or build the model.

The effort of the improved CAE process is defined as the following items:

- Load the bill of materials in Microsoft Excel.

- Execute the VBA macro ExportBOMData. This is required to translate the bill of
materials into a computer-friendly format.

- If required, manually edit the files created by the VBA macro ExportBOMData.

- Transfer the files created by the VBA macro ExportBOMData to the folder containing
the model CAD information, skip this steps if not required.

- Run the batch import and cleaning.tcl procedure in Altair Hypermesh command
window (graphical or batch mode). The procedure will look for the files just
created by the VBA macro ExportBOMData.

As noted, the structural engineers just need to perform 5 actions to create the re-
quired finite element model(s).

He/She does not have to manually input any information (CAD files names, com-
ponent name, material information or thickness information) to the meshing ap-
plication avoiding human errors like miss-typing a word or number, as typing
the wrong thickness for a sheet-metal. Another benefit is that the job could be
performed after office hours or during the weekend, shortening the development
time by utilizing non-standard work hours and by freeing engineering resources
for value added activities.

The costs for the traditional CAE process, shown in Tables 4.1 and 4.2, represents
the effort of the crash engineer to import the CAD files into the meshing application.

87
88 Results

Otherwise, the cost shown for the managed CAE process is defined as a computer
cost for the elapsed time to complete the import process of the components, the
crash engineer will only have to command the computer to import the files, using
the elapsed time of the import process to complete other value-added activities, as
making design recommendations for safety.

4.2 Seaming Procedure


In order to demonstrate the CAE managed seaming process, a simplified front end
chassis of a pick-up truck will be used. This frame consists of 27 components,
which need to be welded together. The components of the front end, without weld
connections, can be appreciated in Figure 4.4.

Figure 4.4: Frame Front End without Weld Connections

4.2.1 Frame Front End Seaming Process Results


Figure 4.5 shows a welded frame front end, weld connections are shown as green
points. The elapsed time for the creation the weld and the effort invested are listed
in Table 4.3.

88
4.2 Seaming Procedure 89

Figure 4.5: Welded Frame Front End

Figures 4.6, 4.7, 4.8 and 4.9 show examples of the welded components. The green
dots represents the weld elements, making an assembly of the two components.

Figure 4.6: Rail Assembly

4.2.2 Seaming Process Obtained Benefits


Table 4.3 shows a comparison between the traditional CAE process of creating
seam welds between components and a managed process. Effort in Table 4.3 refers
to the number of instructions or commands that the CAE specialist will have to
perform. For the traditional CAE process, the effort represents the number of clicks
and Hypermesh instructions performed, obtained from the command. cmf file. The
effort for the managed CAE process consist of 2 tasks that the CAE specialist needs

89
90 Results

Figure 4.7: Cross-member Assembly

Figure 4.8: Rail and Cab Mount

90
4.2 Seaming Procedure 91

Figure 4.9: Spring Tower with Bracket

Table 4.3: Frame Front End Module. Comparison Between Traditional and Improved CAE Process
CAE Traditional Process CAE Managed Process %
Effort 2122 2 106,100%
Time (s) 3210 545 589%
Cost (USD) 57.95 9.85 589%

to perform: Load the Hypermesh database containing the components to weld and
load the seaming. t c l script into hypermesh.

The costs for shown in table 4.3 for the traditional CAE process represents only
the time invested in creating the seam weld connectors between the components,
it does not count any work breaks. In regard to the managed CAE process, the
cost represents a fixed cost multiplied by the time invested by a computer or server
executing Hypermesh commands in order to create seam connectors between com-
ponents.

91
92 Results

4.2.3 Other Obtained Benefits


As a sub-product of the managed CAE process, weld lengths are calculated along
with the creation of the weld connections between the components. A weld length
report is generated and stored in the Hypermesh working directory as a PDF file.

The report presents a summary of the total weld lengths and a detailed tabled
showing the weld lengths per component pair. See Figures 4.10, 4.11, 4.12 and 4.13
for a visual representation of the weld length report.

4.3 Batch Meshing Procedure


Finally, this section will present the results of the batch meshing procedure (batch meshing.tcl).
For comparison purposes, the model welded with seaming procedure is meshed
using the traditional and managed CAE processes.

As in the previous section, time and effort are used as ways to show the differences
between the two processes, but for this section, also, the mesh quality is also used
as a metric to compare the two models. Altair Hypermesh quality report tool is
used to obtain the mesh quality.

4.3.1 Frame Front End Module Meshing Process Results


Table 4.4 shows the results between the traditional and managed CAE meshing
processes. As in section 4.2.1, the effort is defined as the number of operations that
the user needs to complete in order to mesh the frame front end module.

For the traditional CAE process, the number of operations is obtained from the
command.cmf file generated by Altair HyperMesh. For the managed CAE process,
the effort is defined by the following tasks: Load the Hypermesh database and exe-
cute the procedure batch meshing.tcl, all other commands are executed without
the CAE specialist intervention.

92
4.3 Batch Meshing Procedure 93

AutoSeam Report
AutoSeam detected 40 weld assemblies with an aproximate weld length of
16371.09 length units. Elapsed time to complete welding the components:
00:09:22. See the images below for a visual representation of the Full Assembly
and the sub-assemblies created by AutoSeam.

Full Welded Assembly

Figure 1: Full Welded Assembly. Green Points represents weld connections between compo-
nents. Weld Length: 16371.09) length units.

©2007 Cesar A. Rivas. Generated using Autoseam.


Report created on 09/30/07 @ 21:59:53 by user crivas.

Figure 4.10: Weld Length Report

93
94 Results

Figure 4.11: Table of Weld Lengths per Component Pairs

94
4.3 Batch Meshing Procedure 95

Figure 4.12: Table of Weld Lengths per Component Pairs, cont.

95
96 Results

Figure 20: Components: XMEMBER.-U-SHAPE_16.PRT & XMEMBER-U-SHAPE_2_14.PRT.


Weld Length: 1891.14 length units.

Figure 21: Components: R.FRAME_FRT.INNER.01.21.PRT & CAB_MNT()3A_7.PRT. Weld


Length: 353.59 length units.

©2007. Cesar A. Rivas. Generated using Autoseam. 13


Report created on 09/30/07 @ 21:59:53 by user crivas.

Figure 4.13: Detailed Summary of Weld Length per Component Pair

96
4.3 Batch Meshing Procedure 97

Table 4.4: Frame Front End Module Meshing. Comparison between Traditional and Improved
CAE Process
CAE Traditional Process CAE Managed Process %
Effort 7165 2 358,250%
Time (s) 4800 1795 267.4%
Cost (USD) 86.7 32.4 267.4%

4.3.2 Mesh Quality Index


Additional to the effort and time required to complete the finite element mesh of a
model, the quality index is also used as a comparison metric for the meshing pro-
cesses. The quality index for the traditional and managed CAE process is shown
in Tables 4.5 and 4.6.

Table 4.5: Traditional CAE Process Mesh Quality Index


# Criterion Failure % Worst Q.I. Worst Worst Worst
criteria failed elemId1 elemId2 elemId3

1 min size 3.50


2 max length 10.00
3 aspect ratio 5.00 0.27 98.08 846.00 6238 6015 27451
4 warpage 20.00 0.02 46.81 223.00 74303 74406 57731
5 max angle quad 150.00 0.01 159.32 13.00 46222 75266 40944
6 min angle quad 30.00 0.00 26.75 2.00 46134
7 max angle tria 130.00 0.00 120.60 0.00
8 min angle tria 20.00 0.00 18.03 9.09 74472 74307 74278
9 skew 60.00 0.00 61.15 2.01 46134 46102
10 jacobian 0.55 0.02 0.28 361.01 6015 27199 42087
11 chordal dev 1.00
12 % of trias 5.00 0.00

compound Q.I.= 1456.00


# of quads = 149358
# of trias = 3236
% trias = 2.12
# of failed = 462

97
98 Results

Table 4.6: Managed CAE Process Mesh Quality Index


# Criterion Failure % Worst Q.I. Worst Worst Worst
criteria failed elemId1 elemId2 elemId3

1 min size 3.50


2 max length 10.00
3 aspect ratio 5.00 0.04 155.45 314.00 169912 169909 66818
4 warpage 20.00 0.03 98.47 320.00 169436 77350 71232
5 max angle quad 150.00 0.00 186.77 25.00 169436 168069 193277
6 min angle quad 30.00 0.00 14.75 13.00 169437 169912 169436
7 max angle tria 130.00 0.00 163.21 6.01 169435
8 min angle tria 20.00 0.00 1.16 21.09 169909 169435 169438
9 skew 60.00 0.00 87.69 26.50 169909 169435 169438
10 jacobian 0.55 0.02 0.26 266.01 169436 169912 169439
11 chordal dev 1.00
12 % of trias 5.00 0.00

compound Q.I.= 991.50


# of quads = 192713
# of trias = 2570
% trias = 1.32
# of failed = 132

From the data shown above, the number of failed elements is 132 elements in the
managed CAE process vs. 462 failed elements in the traditional process. Also,
the number of triangular elements is down from 3226 elements in the traditional
process vs. 2570 in the managed CAE process. The Altair Hypermesh quality
index also was improved, from 1456.00 to 991.50. Figures 4.14, 4.15, 4.16 and 4.17
show the obtained meshes from the managed CAE process.

Both meshes will require additional improvement by the CAE specialist, but the
amount of re-work required for the managed CAE process mesh is less than the
mesh, manually created by the CAE specialist.

98
4.3 Batch Meshing Procedure 99

Figure 4.14: Mounting Bracket Mesh

Figure 4.15: Spring Tower Mesh

99
100 Results

Figure 4.16: Front and Middle Rails Mesh

Figure 4.17: Cross-member Components Mesh

100
4.4 Summary of Results 101

4.4 Summary of Results


Figure 4.18 shows the effort invested to complete each of the sub-processes - Im-
porting the product information, Seaming the components together and Meshing
the surfaces in the model - in the CAE process.

Traditional CAE Process


Managed CAE Process 7165
Effort - User Clicks

2122

162

5
2 2

Importing Components Seaming Components Meshing Process

* Graph not to scale

Figure 4.18: Effort Comparison between Traditional and Managed CAE Processes

The effort shown in Figure 4.18 for the traditional CAE process depends on the
number of components in the product, but the effort for the managed process is
fixed and with additional work, the effort could be reduced. CAE specialist could
submit the creation of the finite element model from Microsoft Excel or the PDM
system.

101
102 Results

102
Chapter 5

Conclusions

This chapter will present the conclusions and contributions of this work. Also, the
future work will be listed at the end of this chapter.

5.1 Conclusions
From the results shown in the previous chapter, the hypothesis presented in the
Introduction Chapter can be set as a valid hypothesis. The CAE process can be
optimized or improved through the usage of knowledge management and task
automation. This conclusion could be extended beyond the CAE process, it could
be applied to any engineering process.

After reviewing the methodology followed and the results obtained, some conclu-
sions are:

- By managing the CAE specialist knowledge, the required steps to complete a


given in the CAE process were transformed into computer code.

- Time consuming tasks are eliminated and replaced by a more efficient way,
which requires almost no human intervention. Complete finite element mod-
els could be generated overnight by workstations/servers. Decreasing the
time required to complete a finite element model.

103
104 Conclusions

- The knowledge worker will focus on value added activities as setting up


boundary conditions and loads and the improvement of the design perfor-
mance.

- Organization improvement by cutting costs and decreasing time to market.


FE work will take less time to complete, this means more time for virtual
testing.

- Without knowledge management in the CAE process, the only way to de-
crease the time to market is by increasing the head-count, therefore, increas-
ing fixed costs. The process will not be more efficient, just more man-hours
will be available.

- Avoid re-work as most of the activities related to the CAE process will be
created according to the rules created by managing the knowledge of the
CAE specialist and decrease variance between models created by different
CAE specialist.

- In approximate 5-10 years, the scope of the CAE specialist will change from
creating meshes (finite element models) and applying loads to managing the
information generated applications. Fully detailed finite element models will
be created without any human intervention1 .

- Knowledge workers, not just the CAE specialists, must be efficient in do-
ing their work and innovate in their daily activities. Small changes to the
workflow could result in productivity gains for the process in which they are
involved.

By managing the knowledge of the CAE specialist and automating several sub-
processes of the CAE process, the non-added value activities (Importing CAD
Information, Seaming components) will be performed over night by a server or
workstation while the knowledge worker ( or CAE specialist) could focus on his/her
work in setting boundary conditions, interpreting results and performing more it-
erations to get a more robust design. As a side effect of this work, the quality of the
1
Few steps will be required to specify to the servers which models to generate

104
5.2 Contributions 105

finite element model will be increased and the variation between models (created
by different users) will be eliminated, so models created by an experience CAE
specialist and a novice user will be similar.

Another conclusion to make is that when a company is selecting a meshing appli-


cation, one very important consideration to make is the ability of the application to
capture processes and to be automated using a computer language like Tcl/Tk, VBA
or C like syntax language, to mention few of them. This will enable the company
to manage the knowledge of its employees with custom built applications. As an
example, a company that makes airplane turbines could develop an application
that creates the turbine fan finite element model with certain parameters, which
are given by the turbine specialist.

As an overall conclusion for this work, we must look at the things we do every
day at work, and analyze what is the knowledge that we could manage better to
improve the efficiency and performance of the processes.

5.2 Contributions
The main contribution of this work is to show the importance of process and
knowledge management in Computer Aided Engineering. The latest match with
the trends in the CAE software, in the coming years, the role of the CAE specialist
will change, due to the fact that CAE software will incorporate knowledge and pro-
cess managements into its work-flow. The CAE specialists will not face extinction,
but they will have to evolve to match the pace of the evolution of the CAE software.

From Results chapter, it can be appreciated the gain in productivity and the con-
siderable reduction in time required to build a finite element model. Instead of
spending time importing models, welding components together and meshing com-
ponents, the CAE specialist could do more iterations, if required.

During the creation of this work, the importance of task automation was shown.

105
106 Conclusions

Knowledge and Process Management could not complete the activities by them-
selves, but by using task automation, repetitive activities can be performed by a
server or workstation.

This work will re-define the scope of the CAE process and the roll of the specialists
doing finite element analyses, making them to focus in their core skill. The CAE
specialist core skill is the ability of abstract physical phenomenon happening in
products under normal or critical operation. The main output of the analyst is to
make any recommendation to optimize, improve or reject a product or component
by simulating its performance under normal or critical circumstances.

5.3 Future Work


There are some additional activities that need to be added to the procedures, some
of these activities are:

- Refactor2 the current code.

- Before adding additional functionality, the code must be validated with more
complex models as full white-in-body structures to prove the reliability of the
code.

- Create the logic for the detection holes in order to automate the creation of
the bolts between components.

- Create a procedure to mesh solid components as castings.

- Implement a prodedure to fix the quality issues in the finite element mesh
after the creation of the mesh is completed.

- As the software was created with a modular structure, the logic for detecting
weld connection can be updated to include additional conditions or unions,
2
To re-write existing source code in order to improve its readability or structure without affecting
its meaning or behaviour.

106
5.3 Future Work 107

as spot welds or adhesives. The required changes do not need the re-writing
the application, just small modifications to the code and add the procedures
which contains the logic for the additional unions.

- Automate the creation of boundary conditions and loads.

- Set up a meshing server, so all the meshing jobs could be sent to it through a
web interface. At the completion of the meshing process, knowledge worker
will get an URL with the meshing report and a link to the analysis deck.

- Port the code to other scripting languages, as APDL, PCL, VBA and ANSA
scripting language, so it could be used in other prepossessing applications, like
MSC.Patran, ANSA, GiD.

- Mature the application to perform all the pre-processing work required, as


renumbering the elements and nodes according to given rules and export the
analysis input deck in several solver formats.

- Include other processes in the CAE as Thermal Management, Computational


Fluid Dynamics, Multy-Body Systems, Electromagnetics.

- As a long term goal, expend the concept of this work to the design process,
developing an application that manages the design process, removing the
repetitive task that consumes time and avoid common mistakes during the
design iterations.

107
108 Conclusions

108
Appendices

109
Appendix A

Altair Hyperworks Automation with


Tcl/Tk

The Tcl programming language was created in the spring of 1988 by John Ouster-
hout while working at the University of California, Berkeley. Tk is an open source,
cross-platform widget toolkit, that is, a library of basic elements for building a
graphical user interface (GUI). The Tcl Developer Site[2] defines it:

Tcl (Tool Command Language) is a very powerful but easy to learn dynamic
programming language, suitable for a very wide range of uses, including web
and desktop applications, networking, administration, testing and many more.
Open source and business-friendly, Tcl is a mature yet evolving language that
is truly cross platform, easily deployed and highly extensible. Tk is a graphical
user interface toolkit that takes developing desktop applications to a higher level
than conventional approaches. Tk is the standard GUI not only for Tcl, but for
many other dynamic languages, and can produce rich, native applications that
run unchanged across Windows, Mac OS X, Linux and more.

Altair Hyperworks uses Tcl/Tk as a framework to automate the execution of several


commands to improve the efficiency of CAE Specialist and add additional func-
tionality to Hypermesh by creating custom macros. Tcl/Tk can drive Hypermesh
and replace the intervention of the user.

111
112 Altair Hyperworks Automation with Tcl/Tk

Altair Hypermesh uses regular Tcl/Tk commands or instructions to perform a given


task, but also Altair added additional commands to the Hypermesh Tcl distribu-
tion. These commands perform Altair commands as importing information into
Hypermesh, creating entities, meshing surfaces.

The code in the Listing A.1 shows the Tcl code required so Hypermesh can create
and return a list of lines attached to a given list of point entities. The returned lines
are the lines which shares two of the points contained in the list.

Listing A.1: Hypermesh Tcl Macro: Select Lines from Given Point List
proc GetLinesFromPoints { pointList } {
# selects the lines attached to somepoints, the two points
# in the list must be in the point list

*clearmark lines 1
hm_createmark lines 1 "by points " $pointList
set lineList [ hm_getmark lines 1]
*clearmark lines 1

foreach iLine $lineList {


set pointsFromLines [ hm_getverticesfromedge $iLine ]
set vertex01 [ lindex $pointsFromLines 0]
set vertex02 [ lindex $pointsFromLines 1]
if {[ lsearch -exact $pointList $vertex01 ]==-1 ||
[ lsearch -exact $pointList $vertex02 ]==-1 } {
set lineList [ lremove $lineList $iLine ]
}
}
# retruns a list containing the line ids.
return $lineList
}

This code illustrates the interaction between Altair Hypermesh and Tcl, demon-
strates how repetitive tasks can be automated. If a specialist or analyst frequently
requires to obtain the ids of the lines attached to a group of points, instead of manu-
ally requesting to Hypermesh the ids of the entities, the specialist could execute the
Tcl macro to obtain a list of the line ids. All of the commands shown are common
Tcl instructions but hm getverticesfromedge which is an Hypermesh instruction
to return the lines attached to a given point entity.

112
Appendix B

Tcl Code to Detect Weld Types

Tcl code to detect the weld type follows:

# gets the surfaces from component "A"


*createmark surface 1 "by comp name" $compA
set surfacesFromCompA [hm_getmark surfaces 1]
*clearmark surfaces 1

# gets the surfaces from component "B"


*createmark surface 1 "by comp name" $compB
set surfacesFromCompB [hm_getmark surfaces 1]
*clearmark surfaces 1

#gets the points from lines in Comp "A"


set pointsFromCompA [retrivePointsFromDB $compA]

#gets the points from lines in Comp "B"


set pointsFromCompB [retrivePointsFromDB $compB]

# CHECKS IF THE TWO COMPONENTS ARE WITHIN A SEARCH TOLERANCE

# checks if the 1st component is near the 2nd component


foreach iPoint $pointsFromCompA {
foreach iSurface $surfacesFromCompB {

set distPointSurf [lindex [hm_getdistancefromnearestsurface


[hm_getcoordinates point $iPoint] $iSurface] 0]

if {$distPointSurf < $searchTolerance} {


incr closeAB
lappend surfacesB $iSurface
lappend pointA $iPoint
}

113
114 Tcl Code to Detect Weld Types

}
}
# checks if the 2nd component is near the 1st component
foreach iPoint $pointsFromCompB {
foreach iSurface $surfacesFromCompA {

set distPointSurf [lindex [hm_getdistancefromnearestsurface


[hm_getcoordinates point $iPoint] $iSurface] 0]

if {$distPointSurf < $searchTolerance} {


incr closeBA
lappend surfacesA $iSurface
lappend pointB $iPoint
}
}
}

if {$closeAB != 0 && $closeBA == 0} {


set weldType 1
# puts "el componente $compA esta cerca del componente $compB"

} elseif {$closeAB == 0 && $closeBA != 0} {


set weldType 2
# puts "el componente $compB esta cerca del componente $compA"

} elseif {$closeAB != 0 && $closeBA != 0} {


set weldType 3

# generates the weld component name


if {$weldType != 0 } {

generateWeldComponent $compAB

# depends on the type, selection of the subroutine must be selected


switch $weldType {
1 { set pointsToWeld $pointA
set surfaceToWeld $surfacesB
set linesToWeld [GetLinesFromPoints $pointsToWeld]
set separatedWeldLines [SeparateLines $linesToWeld]

calculateWeldLength $linesToWeld
lappend weldLengthArray [eval hm_linelength $linesToWeld]

#puts "1 ---> $separatedWeldLines"


foreach setOfWeldLines $separatedWeldLines {

114
115

set surfacesToWeld [searchSurfacesAgain $setOfWeldLines $compB]


#calculateWeldLength $setOfWeldLines
set lineasProjd [projectLines $setOfWeldLines $surfacesToWeld]
#*wait 2
seamCompswithCollectors $lineasProjd $compAB
}
}

2 { set pointsToWeld $pointB


set surfaceToWeld $surfacesA
set linesToWeld [GetLinesFromPoints $pointsToWeld]
set separatedWeldLines [SeparateLines $linesToWeld]

calculateWeldLength $linesToWeld
lappend weldLengthArray [eval hm_linelength $linesToWeld]

#puts "2 ---> $separatedWeldLines"


foreach setOfWeldLines $separatedWeldLines {

set surfacesToWeld [searchSurfacesAgain $setOfWeldLines $compA]


#calculateWeldLength $setOfWeldLines
set lineasProjd [projectLines $setOfWeldLines $surfacesToWeld]
#puts "--- lineas creadas: $lineasProjd"
seamCompswithCollectors $lineasProjd $compAB

}
3 {

set pointsToWeld $pointA


set linesToWeld [GetLinesFromPoints $pointsToWeld]

calculateWeldLength $linesToWeld

set pointsToWeld "$pointA $pointB"


set linesToWeld [GetLinesFromPoints $pointsToWeld]

set tempValue [eval hm_linelength $linesToWeld]


set tempValue [expr ($tempValue / 2.0)]
lappend weldLengthArray $tempValue

multipleLineWelding $pointA $pointB $surfacesA $surfacesB $compAB

115
116 Tcl Code to Detect Weld Types

The Tcl code to project lines into a surface follows:

proc projectLines {lineListc surfListc} {


# projects lines into surfaces and trims them
# returns the id of the projected lines.

*clearmark points 1
*clearmark lines 1
*clearmark surface 2

hm_createmark lines 1 $lineListc


hm_createmark surfaces 2 $surfListc
*surfacemarksplitwithlines 2 1 0 11 0

*createmarklast points 1

set newPtsList [hm_getmark points 1]


set projectedLines [GetLinesFromPoints $newPtsList]

#calculateWeldLength $lineListc
*clearmark points 1
*clearmark lines 1
*clearmark surface 2

if {[llength $projectedLines]==0} {set $projectedLines ""}

return $projectedLines
}

The Tcl code to create the weld connectors follows:

proc seamCompswithCollectors {lineList compList} {

variable weldConnectorName
variable weldConnectorColor
variable weldConnectorElem
variable weldConnectorElemCode
variable weldConnectorTole
variable weldConnectorLocation
variable weldConnectorWhat
variable weldConnectorSpace
variable weldConnectorOffset
variable weldConnectorCFile

set connectorSpacing 7.0


set connectorTolerance 7.0
set connectorElementType rigid
set connectorElemCode 5

116
117

set weldCollName [retrieveWeldComponentName $compList]

*currentcollector components $weldCollName


*clearmark lines 1
*clearmark comps 2

hm_createmark lines 1 $lineList


hm_createmark comps 2 $compList

*createstringarray 11 "link_elems_geom=geom" "link_rule=now" "relink_rule=none"


"tol_flag=1" "tol=$weldConnectorTole" "line_spacing=$weldConnectorSpace" "line_density=0"
"seam_area_group=0" "ce_nonnormal=1" "ce_configfile=$weldConnectorCFile" "ce_propertyscript="
*CE_ConnectorCreateByMarkAndRealizeWithDetails $weldConnectorLocation 1 "seam" 2
$weldConnectorWhat 2 "optistruct" $weldConnectorElemCode 0 7 1 11

*clearmark lines 1
*clearmark comps 2

The Tcl code to separate the lines of attached lines follows:

proc SeparateLines {lineList} {


# creates groups of attached lines
# input: a list containing ids of lines

set lineCounter 0
set separetedLineList {}
set tempLineList $lineList
set numberOfLines [llength $tempLineList]
set totalOfLines [llength $lineList]
set counterOfLines 0

*clearmark points 1
*clearmark lines 1
*clearmark surfaces 1

hm_createmark points 1 "by lines" $lineList


set pointList [hm_getmark points 1]

hm_createmark lines 1 "by points" $pointList

set lineList1 [hm_getmark lines 1]


*clearmark points 1
*clearmark lines 1

set lineList1 [lsort -integer $lineList1]


set lineList2 [lsort -integer $lineList]

117
118 Tcl Code to Detect Weld Types

if {$lineList1 != $lineList2} {

while {$numberOfLines >0} {

set lineCounter 0
set firstLine [lindex $tempLineList 0]
set pointList [hm_getverticesfromedge $firstLine]
set removeTempLines {}

while {$lineCounter < 2} {


set lineCounter 0
*clearmark lines 1

hm_createmark lines 1 "by points" $pointList

#foreach pointID $pointList {


# *appendmark lines 1 "by points" $pointID
# }
set tempLines [hm_getmark lines 1]

*clearmark lines 1

foreach tempLine $tempLines {


if {[lsearch -exact $lineList $tempLine]==-1} {
lappend removeTempLines $tempLine
if {[hm_getlinetype $tempLine]==1} {
incr lineCounter
}
}
}
set tempLines [lremove $tempLines $removeTempLines]
*clearmark points 1

hm_createmark points 1 "by lines" $tempLines

set pointList [hm_getmark points 1]


#end the while that checks the (lineCounter < 2)
}

lappend separetedLineList "$tempLines"

set tempLineList [lremove $tempLineList $tempLines]

set numberOfLines [llength $tempLineList]


# ends 1st while
}
} else {

# ----------------------------------------------------------------

118
119

# gets surfaces using the lines contained in lineList


# ----------------------------------------------------------------

hm_createmark surfaces 1 "by lines" $lineList


set surfaceList [hm_getmark surfaces 1]
*clearmark surfaces 1

# ----------------------------------------------------------------
set groupOfLines {}

*clearmark lines 1
foreach surfaceId $surfaceList {
*appendmark lines 1 "by surface" $surfaceId
set tempLineList [hm_getmark lines 1]
*clearmark lines 1
set tempLineList1 {}
foreach lineId $tempLineList {
if {[lsearch -exact $lineList $lineId]!=-1} {
lappend tempLineList1 $lineId
}
}

lappend groupOfLines $tempLineList1


}

set separetedLineList $groupOfLines


}

return $separetedLineList
}

119
120 Tcl Code to Detect Weld Types

120
Appendix C

Mathematics for the Seam Operation


between Components

In this section, the math fundamentals needed for the seam operations will be pre-
sented. See [41], [29]

Point-Point Distance
The distance between two points, as shown in Figure C.1, is calculated as:
q
d= (x2 − x1 )2 + (y2 − y1 )2 + (z2 − z1 )2 (C.1)

If the location of each point is represented as a vector from the origin to the given
point, the distance between two points can be obtained by:

BA = B − A (C.2)

In Equation C.2, the magnitude of the subtraction of two vectors is used to obtain
the distance between the two points. Vector B is defined as B = [x2 , y2 , z2 ] and
vector A, as A = [x1 , y1 , z1 ] .

The following procedure is used to calculate the distance between points, written
in Tcl. The procedure requires two vectors as arguments and returns the distance

121
122 Mathematics for the Seam Operation between Components

x2 , y2 , z2

E
NC
TA
DIS

x ,y ,z
1 1 1
y
z

Figure C.1: Point-Point Distance.

between the two points.


proc PointPoint { vector1 vector2 } {
# distance between points
set a1 [ lindex $vector1 0];
set a2 [ lindex $vector1 1];
set a3 [ lindex $vector1 2];
set b1 [ lindex $vector2 0];
set b2 [ lindex $vector2 1];
set b3 [ lindex $vector2 2];

set c1 [expr ( ($a1 - $b1)*($a1 - $b1) + ( $a2 - $b2 )*( $a2 - $b2 ) +
( $a3 -$b3 )*( $a3 -$b3 ) ) ];
set c1 [expr sqrt($c1 )];
return "$c1 ";
}

122
123

Point-Line Distance
The location of any point Pt that is located in a line between two points (P1 and P2 )
is given by the following vector,
 
 x1 + (x2 − x1 ) · t 
 
v =  y1 + (y2 − y1 ) · t (C.3)
 

 
 z + (z − z ) · t 
1 2 1

where t is point between P1 and P2 .

x2 , y2 , z2

NCE
TA
DIS

x0 , y0 , z0

y x1 , y1, z1
z

Figure C.2: Line-Point Distance.

The distance from the point P0 to any point in the line formed by P1 and P2 is
obtained using Equation C.1.

d2 = ((x1 − x0 ) + (x2 − x1 )t)2 +


2
(y1 − y0 ) + (y2 − y1 )t +
((z1 − z0 ) + (z2 − z1 )t)2 (C.4)

123
124 Mathematics for the Seam Operation between Components

To obtain the shortest distance between the line and the point P0 , equation C.4 is
2
derived with respect of t and equating to zero ( dd
dt
= 0 ).

dd2
= 0 = 2 ((x1 − x0 ) + (x2 − x1 )t) (x2 − x1 ) +
dt
2 (y1 − y0 ) + (y2 − y1 )t (y2 − y1 ) +


2 ((z1 − z0 ) + (z2 − z1 )t) (z2 − z1 ) (C.5)

0 = (x1 − x0 )(x2 − x1 ) + (x2 − x1 )2 t +


(y1 − y0 )(y2 − y1 ) + (y2 − y1 )2 t +
(z1 − z0 )(z2 − z1 ) + (z2 − z1 )2 t (C.6)

Transforming C.6 into vectorial notation and solving for t,

(x1 − x0 ) · (x2 − x1 )
t=− (C.7)
(x2 − x1 )2

Substituting Equation C.7 into C.2, we obtain that the minimum distance between
the point P0 and the line formed by points P1 and P2 is:

|(x2 − x1 ) × (x1 − x0 )|
d= (C.8)
|(x2 − x1 )|

124
125

Dot Product

The dot product of two vectors a and b is represented as a · b. If a = [a1 , a2 , . . . , an ]


and b = [b1 , b2 , . . . , bn ], the dot product of these two vectors is calculated as:

n
X
a·b= ai × bi = a1 b1 + a2 b2 + . . . + an bn (C.9)
i=1

The following Tcl code represents the procedure that returns the dot product of two
vectors, which are given as arguments to the procedure, vector1 and vector2:

proc DotProduct { vector1 vector2 } {


# calculates the cross product between two vectors

set a1 [ lindex $vector1 0];


set a2 [ lindex $vector1 1];
set a3 [ lindex $vector1 2];

set b1 [ lindex $vector2 0];


set b2 [ lindex $vector2 1];
set b3 [ lindex $vector2 2];

set c1 [expr ( $a1*$b1 + $a2*$b2 + $a3*$b3 )];

return "$c1 ";


}

The dot product operation returns a scalar number.

Cross Product

The cross product of two vectors a and b is represented as a × b. The resultant


vector of the cross product operation is perpendicular to the vectors a and b, with
a direction given by the right-hand rule and a magnitude equal to the area of the
parallelogram that the vectors span. If a = [a1 , a2 , a3 ] and b = [b1 , b2 , b3 ], the cross
product of these two vectors is calculated by the determinant of a matrix, that is
constituted by three vectors: [i, j, k], a and b.

125
126 Mathematics for the Seam Operation between Components

 
 i j k 
 
c = a × b = det  a1 a2 a3  (C.10)
 
 
 b b b 
1 2 3

 
 a2 b3 − a3 b2 
 
c = a × b =  a3 b1 − a1 b3 (C.11)
 

 
 a b −a b 
1 2 2 1

The following Tcl code represents the procedure that returns the vector resulting of
the cross product of two vectors, which are given as arguments to the procedure,
vector1 and vector2:

proc CrossProduct { vector1 vector2 } {


# calculates the cross product between two vectors

set a1 [ lindex $vector1 0];


set a2 [ lindex $vector1 1];
set a3 [ lindex $vector1 2];

set b1 [ lindex $vector2 0];


set b2 [ lindex $vector2 1];
set b3 [ lindex $vector2 2];

set c1 [expr $a2*$b3-$a3*$b2 ];


set c2 [expr $a3*$b1-$a1*$b3 ];
set c3 [expr $a1*$b2-$a2*$b1 ];

return "$c1 $c2 $c3 ";


}

The cross product of two vectors returns a vector or size n. The cross product only
exists in a three-dimensional space.

126
127

Surface Normal
A surface normal, or simply normal, to a flat surface is a vector which is perpen-
dicular to that surface. A normal to a non-flat surface at a point P. on the surface
is a vector perpendicular to the tangent plane to that surface at P. Each face in a
mesh has a perpendicular normal vector. The vector’s direction is determined by
the order in which the vertices are defined and by whether the coordinate system
is right- or left-handed. See Figure C.3.

n1
P1

P2

n2

y
z

Figure C.3: Surface Normals.

The surface normals for a flat surface can be obtained by the cross product of the
vectors that define the surfaces. c = a × b. For non-flat surfaces, a tangent plane
is required to calculate the surface normal at a given point. The later means that
there is no an unique value for the normal within a surface. Refer to Figures C.4
and C.5.

For calculating the surface normals using Altair Hypermesh, execute the Hyper-
mesh Tcl command [hm getsurfacenormal entity entity-id]. This command
will return the normals of the surfaces or elements attached to the points or nodes.

127
128 Mathematics for the Seam Operation between Components

a
n

y
z
b
x

Figure C.4: Normal for a Flat Surface.

n1

P1

P2 n2

y
z

Figure C.5: Normal for a non-Flat Surface.

128
Appendix D

Invoking the Procedure


batch import and cleaning.tcl

There are two ways of invoking the procedure batch import and cleaning.tcl:

- By typing the following code in the Hypermesh command window: source


/path/to/scripts/batch import and cleaning.tcl1 . This will run the batch
import procedure in the current Hypermesh session. Graphical mode.

- Batch mode. No GUI. Open a Unix shell or Windows command window and
type import2hm2 , if a Unix or Linux workstations is used or import2hm.bat
for a Microsoft Windows workstation.

The script import2hm launches Hypermesh in batch mode and executes the com-
mands listed in the commandbatch.cmf file.3

Content of the import2hm script:


echo ... Import to HM started @ ‘date +%a" "%b" "%e" "%T" "%Y‘
hmbatch -c"/scratch/usr/crivas/scripts/commandbatch.cmf" -nobg
echo ... Import to HM finished @ ‘date +%a" "%b" "%e" "%T" "%Y‘

1
The actual /path/to/scripts/ may change depending on how the Altair Hypermesh macros
are managed
2
If the operating system is Unix or Linux, the script import2hm must have permission to execute.
Change the permissions of the file by typing the following command chmod +x import2hm.
3
The files shown are for a Linux workstation (server) , changes to the contents of the files may
be required in order to work in a Microsoft Windows workstation (server).

129
130 Invoking the Procedure batch import and cleaning.tcl

Content of the commandbatch.cmf file:

*evaltclscript("/scratch/usr/crivas/scripts/batch_import_and_cleaning.tcl", 0)
*quit

Also, there is the requirement of two additional files to exist in the folder contain-
ing the batchmesher criteria and parameters files, these files are: 6mm.criteria and
6mm.user.param. The files should exist in the folder /path/to/altair/hm/batchmesh/4

4
As an example, the criteria and parameter files must exist on the folder
/altair8/altair/hw8.0sr1/hm/batchmesh/ on a Linux workstation.

130
Appendix E

Required Files for Procedure


batch import and cleaning.tcl

The code of the Microsoft Visual Basic macro that converts the engineering bill of
materials into a computer friendly format is shown below. This macro takes the
information in a Microsoft Excel spreadsheet and converts it to a csv file.
Sub ExportBOMData()

’ ExportBOMData Macro: Exports BOM Data into a CSV file
’ by Cesar Rivas
’ please, send any complain to /dev/null

’---------- V A R I A B L E S ------------
’ handles the spreadsheet rows
Dim rw1 As Range
Dim rw As Range
Dim whichSheet As String
Dim Index As Integer
Dim titleFlag As Integer
Dim arrayIndex As Integer
Dim arrayInt As Integer
Dim matFlag As Integer
Dim rowStart As Integer
Dim MaterialArray(150) As String
Dim fileArray(150) As String
Dim tmpText As Variant
Dim tmpText1 As Variant
Dim tmpText2 As Variant
Dim tmpText3 As Variant
Dim tmpText4 As Variant
Dim text2Write As String

131
132 Required Files for Procedure batch import and cleaning.tcl

Dim file2Write As String


’ component variables
Dim compId As String
Dim compName As String
Dim compFileName As String
Dim compMaterial As String
Dim compThickness As String
Dim compProcess As String
Dim compQTY As String

’ header variables
Dim chgType As String
Dim itemNo As String
Dim description As String
Dim frameVariables As String
Dim Process As String
Dim metalsaPartNo As String
Dim customerPartNo As String
Dim customerLevel As String
Dim materialSpec As String
Dim nomGage As String
Dim weightLbs As String
Dim qtyComps As String
Dim qtyIndex As Integer
Dim fileExtension As String

’ ----------------------
Dim qtyOfAssemblies As Integer
Dim assembliesStartAtRow As Integer
Dim assembliesEndAtRow As Integer
Dim assemblyIndex As Integer

qtyIndex = 0
assembliesStartAtRow = 0
assembliesEndAtRow = 0
qtyOfAssemblies = 0
qtyColumn = 0
columnIndex = 1

chgType = 1
itemNo = 2
description = 3
frameVariables = 8
Process = 10
metalsaPartNo = 11
customerPartNo = 12
customerLevel = 13
materialSpec = 14

132
133

nomGage = 16
weightLbs = 17
qtyComps = 18

compId = ""
compName = ""
compFileName = ""
compMaterial = ""
compThickness = ""
compProcess = ""
’---------------------------------------------------------------
dir2Write = "d:\tmp\" ’ change this variable to define the path
’ where the files will be created
fileExtension = ".stp" ’ change this variable to define the file
’ extension to import.
whichSheet = "Production Bom" ’ change this variable to the name
’ of the worksheet which contains
’ the BOM information
’---------------------------------------------------------------
titleFlag = 0
arrayIndex = 0
matFlag = 0
rowStart = 0
text2Write = ""

’ -----------------------------------------------------------------
’ gets the material information from the BOM
’ -----------------------------------------------------------------
For Each rw In Worksheets(whichSheet).Rows

If (Not (IsEmpty(rw.Cells(1, 14)))) Then

If (VarType(rw.Cells(1, 14).Value) = vbString And titleFlat <= 2) Then


If (UCase(Trim(rw.Cells(1, 14).Value)) = "MATERIAL" And _
UCase(Trim(rw.Cells(2, 14).Value)) = "SPEC") Then
titleFlag = 3
If (rowStart = 0) Then
rowStart = rw.Row + 2
End If

End If
End If

If (titleFlag = 3 And (Not (IsEmpty(rw.Cells(1, 14)))) And _


(Not (UCase(Trim(rw.Cells(1, 14).Value)) = "MATERIAL" Or _
UCase(Trim(rw.Cells(1, 14).Value)) = "SPEC"))) Then

For arrayInt = 0 To arrayIndex

133
134 Required Files for Procedure batch import and cleaning.tcl

If (Trim(rw.Cells(1, 14).Value) = MaterialArray(arrayInt)) Then


matFlag = matFlag + 1
End If
Next arrayInt

If (matFlag = 0) Then
MaterialArray(arrayIndex) = Trim(rw.Cells(1, 14).Value)
arrayIndex = arrayIndex + 1
End If
matFlag = 0
’End If
End If

End If

Next rw
arrayIndex = arrayIndex - 1

’ -----------------------------------------------------------------
’ gets the number of assemblies in the BOM
’ -----------------------------------------------------------------

For Each rw In Worksheets(whichSheet).Rows


tmpText = Trim(rw.Cells(1, 10).Value)
tmpText2 = Trim(rw.Cells(2, 10).Value)

If ((tmpText = "CUSTOMER") And (tmpText2 = "PART NO.") And (assembliesStartAtRow = 0)) Then
assembliesStartAtRow = rw.Row + 2
End If

If ((IsEmpty(rw.Cells(1, 10))) And (assembliesStartAtRow <> 0)) Then


assembliesEndAtRow = rw.Row - 1
Exit For
End If

If ((rw.Row >= assembliesStartAtRow) And (assembliesStartAtRow <> 0)) Then


fileArray(CInt(rw.Row)) = dir2Write + Trim(rw.Cells(1, 10).Value) + ".csv"
End If
Next rw

qtyOfAssemblies = CInt(assembliesEndAtRow) - CInt(assembliesStartAtRow) + 1


assemblyIndex = 0
’ creates BOM for each assembly
qtyColumn = 18 + qtyOfAssemblies - 1

For Each rw1 In Worksheets(whichSheet).Rows


If ((rw1.Row >= assembliesStartAtRow) And (rw1.Row <= assembliesEndAtRow)) Then
file2Write = fileArray(CInt(rw1.Row))

134
135

If (rw1.Cells(1, 10).Font.Strikethrough = False) Then


’ ---- writes out the information for each given assembly -----

text2Write = "$Assembly: " + CStr(rw1.Cells(1, 10).Value)


Call LogInformation(text2Write, file2Write)
’-------------------------------------------------------------------
’ ---- collects the information about the materials in the file ---
text2Write = ""
text2Write = "$Material Information"
Call LogInformation(text2Write, file2Write)

For arrayInt = 0 To arrayIndex


If (MaterialArray(arrayInt) <> "-") Then
text2Write = "material;" + MaterialArray(arrayInt) + ";MAT1;"
Else
text2Write = "material;" + "STEEL" + ";MAT1;"
End If
Call LogInformation(text2Write, file2Write)
Next arrayInt

’-------------------------------------------------------------------
’ collects the information about the components in the file

text2Write = "$Component Information ..."


Call LogInformation(text2Write, file2Write)

For Each rw In Worksheets(whichSheet).Rows

If (Not (IsEmpty(rw.Cells(1, 2))) And (rw.Row >= rowStart)) Then

tmpText = rw.Cells(1, 3).Value


tmpText1 = rw.Cells(1, 4).Value
tmpText2 = rw.Cells(1, 5).Value
tmpText3 = rw.Cells(1, 6).Value
tmpText4 = rw.Cells(1, 7).Value

If ((Not (IsEmpty(rw.Cells(1, 3)))) And (Not (IsEmpty(rw.Cells(1, 4)))) And _


(Not (IsEmpty(rw.Cells(1, 5)))) And _
(Not (IsEmpty(rw.Cells(1, 6)))) And (Not (IsEmpty(rw.Cells(1, 7))))) Then
compName = Trim(rw.Cells(1, 3).Value) + "-" + Trim(rw.Cells(1, 4).Value) + "-" _
+ Trim(rw.Cells(1, 5).Value) + "-" + _
Trim(rw.Cells(1, 6).Value) + "-" + Trim(rw.Cells(1, 7).Value)
End If

If ((Not (IsEmpty(rw.Cells(1, 3)))) And (Not (IsEmpty(rw.Cells(1, 4)))) And _


(Not (IsEmpty(rw.Cells(1, 5)))) And _
(Not (IsEmpty(rw.Cells(1, 6)))) And (IsEmpty(rw.Cells(1, 7)))) Then
compName = Trim(rw.Cells(1, 3).Value) + "-" + Trim(rw.Cells(1, 4).Value) + "-" + _

135
136 Required Files for Procedure batch import and cleaning.tcl

Trim(rw.Cells(1, 5).Value) + "-" + _


Trim(rw.Cells(1, 6).Value)
End If

If ((Not (IsEmpty(rw.Cells(1, 3)))) And (Not (IsEmpty(rw.Cells(1, 4)))) And _


(Not (IsEmpty(rw.Cells(1, 5)))) And _
(IsEmpty(rw.Cells(1, 6))) And (IsEmpty(rw.Cells(1, 7)))) Then
compName = Trim(rw.Cells(1, 3).Value) + "-" + Trim(rw.Cells(1, 4).Value) + "-" + _
Trim(rw.Cells(1, 5).Value)
End If

If ((Not (IsEmpty(rw.Cells(1, 3)))) And (Not (IsEmpty(rw.Cells(1, 4)))) And +


(IsEmpty(rw.Cells(1, 5))) And _
(IsEmpty(rw.Cells(1, 6))) And (IsEmpty(rw.Cells(1, 7)))) Then
compName = Trim(rw.Cells(1, 3).Value) + "-" + Trim(rw.Cells(1, 4).Value)
End If

If ((Not (IsEmpty(rw.Cells(1, 3)))) And (IsEmpty(rw.Cells(1, 4))) And (IsEmpty(rw.Cells(1, 5))) And _
(IsEmpty(rw.Cells(1, 6))) And (IsEmpty(rw.Cells(1, 7)))) Then
compName = Trim(rw.Cells(1, 3).Value)
End If

compId = Trim(rw.Cells(1, 2).Value)

compFileName = Trim(rw.Cells(1, 11).Value)


If (compFileName = "-") Then
compFileName = Trim(rw.Cells(1, 12).Value)
End If

compMaterial = Trim(rw.Cells(1, 14).Value)


compThickness = Trim(rw.Cells(1, 16).Value)
compProcess = "PSHELL"
compQTY = Trim(rw.Cells(1, qtyColumn).Value)
If (compQTY = "") Then
compQTY = "0"
End If

If (compThickness = "-") Then


compThickness = "0.0"
compProcess = "PSOLID"
End If

If (compMaterial = "-") Then


compMaterial = "STEEL"
End If

If ((rw.Cells(1, 2).Font.Strikethrough = False) And (CInt(compQTY) > 0)) Then


If (CInt(compQTY) = 1) Then
text2Write = "component;" + compName + ";" + compFileName + fileExtension + ";" + _

136
137

compProcess + ";" + compMaterial + ";" + compThickness + ";" + compId


Call LogInformation(text2Write, file2Write)
Else
For qtyIndex = 1 To CInt(compQTY) Step 1
text2Write = "component;" + compName + "-" + CStr(qtyIndex) + ";" + compFileName + _
"-POS" + CStr(qtyIndex) + fileExtension + ";" + compProcess + _
";" + compMaterial + ";" + compThickness + ";" + compId
Call LogInformation(text2Write, file2Write)
Next qtyIndex
End If
End If
End If

Next rw

’-------------------------------------------------------------------
’ ---- ends to write out the info for each given assembly -----
End If

qtyColumn = qtyColumn - 1
End If

If ((rw1.Row > assembliesEndAtRow)) Then


Exit For
End If

Next rw1

End Sub
’-------------------------------------------------------------------

Public Sub LogInformation(LogMessage As String, LogFileName As String)


’ enable File logging, writes a string line "LogMessage" into the file "LogFileName"
’ if the file does not exist, it will create the file
’ if the file exist, it will append a string line at the end of the file
Dim FileNum As Integer
FileNum = FreeFile ’ next file number
Open LogFileName For Append As #FileNum ’ creates the file if it doesn’t exist
Print #FileNum, LogMessage ’ write information at the end of the text file
Close #FileNum ’ close the file
End Sub

Example of a engineering bill of materials in a computer friendly format.

$ material information
material;STEEL-CR360;MAT1;210000;0.3;7.85e-9
material;STEEL-HR360;MAT1;210000;0.3;7.85e-9
material;STEEL-HR430;MAT1;210000;0.3;7.85e-9
material;STEEL-HR500;MAT1;210000;0.3;7.85e-9

137
138 Required Files for Procedure batch import and cleaning.tcl

$ component information
component;component_01;269931208280_igs.stp;PSHELL;STEEL-HR430;3.15;1
component;component_02;269932108298_igs.stp;PSHELL;STEEL-HR500;3.15;2
component;component_03;270140108202_igs.stp;PSHELL;STEEL-HR430;3.15;3
component;component_04;270431108219_igs.stp;PSHELL;STEEL-HR500;3.15;4
component;component_05;270431108220_igs.stp;PSHELL;STEEL-HR430;3.15;5
component;component_06;270431108221_igs.stp;PSHELL;STEEL-HR500;2.50;6
component;component_07;270431108222_igs.stp;PSHELL;STEEL-HR430;2.50;7
component;component_08;282631108205_igs.stp;PSHELL;STEEL-HR430;3.15;8
component;component_09;282631108206_igs.stp;PSHELL;STEEL-HR430;3.15;9
component;component_10;282641308206_igs.stp;PSHELL;STEEL-CR360;2.50;10
component;component_11;283031207101_igs.stp;PSHELL;STEEL-HR430;3.15;11
component;component_12;283031208207_igs.stp;PSHELL;STEEL-HR360;3.15;12

The file 6mm.criteria contains the mesh quality parameters for obtaining a high
quality mesh with element size of 6mm.

This Criteria file was created with Criteria Editor application

# Criterion On Wt Ideal Good Warn Fail Worst Solver

0 penalty value 0.00 0.00 1.00 2.00 10.00


1 min length 1 2.0 6.00 5.167 4.333 3.50 3.292
2 max length 1 1.5 6.00 7.714 9.425 10.00 14.00
3 aspect ratio 1 1.0 1.00 2.00 4.00 5.00 10.00 0
4 warpage 1 2.0 0.00 5.00 15.00 20.00 40.00 0
5 max angle quad 1 1.0 90.00 110.00 140.00 150.00 165.00 0
6 min angle quad 1 1.0 90.00 70.00 40.00 30.00 15.00 0
7 max angle tria 1 1.0 60.00 80.00 120.00 130.00 155.00 0
8 min angle tria 1 1.0 60.00 50.00 30.00 20.00 10.00 0
9 skew 1 1.5 0.00 10.00 50.00 60.00 75.00 0
10 jacobian 1 2.0 1.00 0.91 0.64 0.55 0.415 0
11 chordal dev 0 0.0 0.00 0.30 0.80 1.00 2.00
12 % of trias 1 2.0 0.00 2.50 3.75 5.00 7.50

The parameter file used by the procedure batch import and cleaning.tcl is
shown below. The file 6mm.user.param is needed for geometry feature recognition
and clean-up.

#This Param file was created with Criteria/Param Editor application

#flags:

geometry_cleanup_flag 1
meshing_flag 5

#mesh:

138
139

element_size 6.0
element_type 2
element_order 1
surf_component 1
feature_angle 30.0

# Holes Design Table:

holes_table_begin

# General switches:

appl_surf(1)
appl_solid(0)
appl_cordsfiles(0)
appl_flanged_suppr(1)

flanged_suppr_height(2.0)

# holes design records:

rad(0.0,4.0) do action(4) elems(6) washer(1) layers(2)


rad(4.0,5.5) do action(0) elems(6) washer(1) layers(3.0,3.0)
rad(5.5,6.5) do action(0) elems(8) washer(1) layers(3.0,3.0)
rad(6.5,8) do action(0) elems(10) washer(1) layers(3.0,3.0)
rad(8,10) do action(0) elems(12) washer(1) layers(3.0,3.0)
rad(10,12.5) do action(0) elems(12) washer(1) layers(3.0,3.0)
rad(12.5,100) do action(0) elems(auto) washer(1) layers(3.0,auto)

rad(0.0,5) solid(1) do action(1)


rad(5,30.0) solid(1) do action(0) elems(6)

holes_table_end

#edge fillets:

edge_fillet_recognition 0
max_fillet_radius 20

#surface fillets:

fillet_mesh_table_begin

appl_fillet_mesh(1)
keep_main_fillet_ribs(1)

rad(0,20.0) do chordal_deviation(.4)

139
140 Required Files for Procedure batch import and cleaning.tcl

fillet_mesh_table_end

#beads:

beads_suppression 1
beads_recognition 1
minimal_beads_height 2.0

#flanges:

flange_recognition 1
flange_elements_across 2
flange_max_width 35.0
flange_min_width 10.0

#thin solids:

extract_thinsolids 1
thinsolid_ratio 0.3
max_thickness 10.0
extract_feature_angle 25.0

#logo:

remove_logo 1
logo_max_size 30.0
logo_max_height 1.1

#element cleanup:

folded_elems_angle 150.0
smooth_elems_target 0.2

#correct warped elements:

move_normal_flag 0
move_normal_dist 0.8
divide_warped_quads 1

ignore_comps_boundary 1

cleanup_tolerances auto

140
Appendix F

Requirements & Invoking the


Procedure seaming.tcl

The procedure seaming.tcl has the following running requirements:

- A working installation of LATEX. Visit http://www.latex-project.org/ or


http://www.ctan.org/, in order to get more information about LATEX. The
pdf report is in based on LATEX.

- The file autoseam.pref should exist in the Altair Hyperworks installation


directory1 . This files contains the preferences for the creation of the weld
connections.

To invoke the seaming.tcl procedure, type, in the Hypermesh command win-


dow, the following command: source /path/to/scripts/seaming.tcl2 . After
the command is executed, Altair Hypermesh will start to create the weld connec-
tions between the shell components of the hypermesh file currently loaded.

1
/altair8/altair/hw8.0sr1 as an example
2
The actual /path/to/scripts/ may change depending on how the Altair Hypermesh macros
are managed by the user.

141
142 Requirements & Invoking the Procedure seaming.tcl

Seaming Preference File. The procedure seaming.tcl requires a preference file to


setup the creation of the connectors. This file contains information that defines the
element type used for the weld unions, how the connectors is created, the spacing
between elements and the search tolerance.

collector;weld-connectors
collectorColor;3
type;rigid
tolerance;6.0
connect_location;lines
connect_what;components
spacing;6.0
end_offset;5.0

142
Appendix G

Product Data Information, Front End


Module

The csv file used to import the front end module product data into Altair Hyper-
mesh follows:

$
$ material information ..
material;MATL_001;MAT1
material;MATL_002;MAT1
material;MATL_003;MAT1
$
$
$component information ..
component;cab mount 1;CAB_MNT01_11.PRT.4.iges;PSHELL;MATL_001;3.1;101
component;cab mount 11;CAB_MNT01_11.PRT.iges;PSHELL;MATL_001;3.1;102
component;cab mount 2;CAB_MNT02_11.PRT.5.iges;PSHELL;MATL_003;2.5;201
component;cab mount 21;CAB_MNT02_11.PRT.iges;PSHELL;MATL_003;2.5;202
component;cab mount 3;CAB_MNT03A_7.PRT.3.iges;PSHELL;MATL_002;3.0;203
component;cab mount 31;CAB_MNT03A_7.PRT.iges;PSHELL;MATL_002;3.0;204
component;mount bracket 1;MNT_BRACKET_001_1.PRT.2.iges;PSHELL;MATL_002;2.3;205
component;mount bracket 2;MNT_BRACKET_001_1.PRT.iges;PSHELL;MATL_002;2.3;206
component;mnt frame 31;MNT_R_FRAME003_6.PRT.1.iges;PSHELL;MATL_001;4.0;301
component;mnt frame 32;MNT_R_FRAME003_6.PRT.iges;PSHELL;MATL_001;4.0;302
component;rframe 01;R_FRAME_001A_9.PRT.iges;PSHELL;MATL_003;3.6;303
component;rframe 02;R_FRAME_001C_6.PRT.iges;PSHELL;MATL_003;3.6;304
component;frame 001;R_FRAME_001_24.PRT.iges;PSHELL;MATL_001;3.0;305
component;frame 002;R_FRAME_002_5.PRT.iges;PSHELL;MATL_002;3.0;306
component;frame 003;iges-tube-001.iges;PSHELL;MATL_002;3.0;307
component;frame front inner 1;R_FRAME_FRT_INNER_01_21.PRT.iges;PSHELL;MATL_001;2.6;401
component;frame front inner 2;R_FRAME_FRT_INNER_02_2.PRT.iges;PSHELL;MATL_001;2.6;402
component;frame spring seat 01 1;R_FRAME_SPRING_SEAT_001_10.PRT.6.iges;PSHELL;MATL_001;3.3;501

143
144 Product Data Information, Front End Module

component;frame spring seat 01 2;R_FRAME_SPRING_SEAT_001_10.PRT.iges;PSHELL;MATL_001;3.3;502


component;frame spring seat 02 1;R_FRAME_SPRING_SEAT_002_12.PRT.7.iges;PSHELL;MATL_001;4.0;503
component;frame spring seat 02 2;R_FRAME_SPRING_SEAT_002_12.PRT.iges;PSHELL;MATL_001;4.0;504
component;frame spring seat 03 1;R_FRAME_SPRING_SEAT_003_1.PRT.8.iges;PSHELL;MATL_001;4.0;505
component;frame spring seat 03 2;R_FRAME_SPRING_SEAT_003_1.PRT.iges;PSHELL;MATL_001;4.0;506
component;cross member 21;R_FRAME_XMEMBER2_1_10.PRT.iges;PSHELL;MATL_002;3.5;601
component;cross member 39;R_FRAME_XMEMBER2_39.PRT.iges;PSHELL;MATL_002;3.5;602
component;cross member u shape 1;XMEMBER-U-SHAPE_16.PRT.iges;PSHELL;MATL_003;4.0;701
component;cross member u shape 2;XMEMBER-U-SHAPE_2_14.PRT.iges;PSHELL;MATL_003;4.0;702
$
$
$

144
Appendix H

Modifications to the userpage.mac


File

The Altair Hypermesh userpage.mac file needs to be modified in order to add the
required buttons to execute the three procedures mentioned in this work. Open the
user userpage.mac file and add the following text and restart Altair Hypermesh to
see the buttons in the User Utility Menu.

*createbutton(5, "Import ...", -1, 0, 10, BUTTON, "Import Product Information.", EvalTcl,
"batch_import_and_cleaning.tcl")
*createbutton(5, "Seam ...", -1, 0, 10, BUTTON, "Seam Components.", EvalTcl, "seaming.tcl")
*createbutton(5, "Mesh ...", 0, 0, 10, BUTTON, "Mesh Components.",EvalTcl, "batch_meshing.tcl")

145
146 Modifications to the userpage.mac File

146
Appendix I

Matlab File to Calculate the Stiffness


Matrix of a Finite Element Model

%
% Subrutina para Analisis de Elementos Finitos Utilizando Matlab
%
% Tipo de Analisis: Lineal, Estatico. Esfuerzo Plano
%
% Tipo de Elemento: Isoparametrico, Lineal en dos Dimensiones
% (En Espacio Natural)
%
% y ˆ _ _ _ _
% ˆ x = N1 * x1 + N2 * x2 + N3 * x3 + N4 * x4
% |
% 3-----|-----4
% | | | ˆ _ _ _ _
% | |-----|--->x y = N1 * y1 + N2 * y2 + N3 * y3 + N4 * y4
% | |
% 1-----------2
%
% Funciones de Interpolacion
%
% N1 = (( 1 - chi ) * ( 1 - nu )) / 4
% N2 = (( 1 + chi ) * ( 1 - nu )) / 4
% N3 = (( 1 + chi ) * ( 1 + nu )) / 4
% N4 = (( 1 - chi ) * ( 1 + nu )) / 4
%
%
% Desarollado por Cesar A. Rivas Guerra. Nov-15-2001
% Basado en el Programa mef.m del Dr. Sergio Gallegos C.
%
% -----------------------------------------
% | P r e - P r o c e s a m i e n t o |

147
148 Matlab File to Calculate the Stiffness Matrix of a Finite Element Model

% -----------------------------------------
%
clear; % Para limpiar la memoria
grande = 1.0e100; % Numero suficientemente grade
acel_x = 0; % Def. de la aceleracion en el eje X |
acel_y = -9810; % Def. de la aceleracion en el eje Y, la Gravedad [9810 mm/sˆ2] V

% Definir variables que controlan el proceso.

nel = 2; % Número de elementos


nodel = 4; % Número de nodos por elemento
ngdl = 2; % Número de grados de libertad por nodo
nnodos = 8 ; % Número de nodos
gdlsist = nnodos * ngdl; % Número de grados de libertad del sistema

% Definir las coordenadas nodales globales


% Unidades: mm

% En la variable coord se guardan las coordenadas de cada uno de los nodos.


%
coord = [ 0.00 0.00 ; ... % Nodo 1
10.0 0.00 ; ... % Nodo 2
10.0 10.0 ; ... % Nodo 3
0.00 10.0 ; ... % Nodo 4
15.0 0.00 ; ... % Nodo 5
25.0 0.00 ; ... % Nodo 6
25.0 10.0 ; ... % Nodo 7
15.0 10.0 ]; % Nodo 8

% Definir las propiedades del material


% (Mod. Young, Relacion de Possion y Espesor)

elprop=zeros(nel,4);

% Módulo de Elasticidad
% Unidades: MPa

elprop(1,1) = 210000;
elprop(2,1) = 210000;

% Relacion de Possion

elprop(1,2) = 0.3;
elprop(2,2) = 0.3;

% Espesor del material (t)


% Unidades: mm

elprop(1,3) = 3.0;

148
149

elprop(2,3) = 3.0;

% Densidad del material (t)


% Unidades: kg/mmˆ3

elprop(1,4) = 0;
elprop(2,4) = 0;

% Arreglos de destino.
conect = zeros(nel,nodel);

%conect(Numero de Elemento, Numero de Nodo), 4 Nodos por elemento


% NODO #1 NODO #2 NODO #3 NODO #4
conect(1,1) = 1; conect(1,2) = 2; conect(1,3) = 3; conect(1,4) = 4; %Elemento #1
conect(2,1) = 5; conect(2,2) = 6; conect(2,3) = 7; conect(2,4) = 8; %Elemento #2

% Definir las condiciones de frontera cinemáticas.

gdlfijo = [1; 2; 7; 8; 11; 12; 13; 14];


gdlvalor = 1e-3 * [0; 0; 0.06; 0.12; 0.24; 0.12; 0.3; 0.24];

% Definir fuerzas nodales

fuerza=zeros(gdlsist,1); % vector de fuerzas nodales

%
% fuerza(i), si i es impar, la fuerza es en la direccion X
% , si i es par, la fuerza es en la direccion Y

%fuerza(1) = 0;
%fuerza(2) = 0;
%fuerza(3) = 800e3;
%fuerza(5) = 800e3;

carga = zeros(2,1); % Definicion de la carga por unidad de volumen [BC]


felem = zeros(gdlsist,1); % fuerzas en los elementos

% Termina el pre-procesamiento de los elementos


% -------------------------
% | A n a l i s i s |
% -------------------------
% Iniciar las matrices para el análisis

rigidez = zeros(gdlsist,gdlsist); % Matriz de rigidez


adest = zeros(nodel*ngdl,1); % Arreglo de destino
felem = zeros(nodel*ngdl,1); % Vector de cargas equivalentes nodales del elemento
kelem = zeros(nodel*ngdl,nodel*ngdl); % Matriz de rigidez del elemento

% Formar matrices de rigidez y vectores de carga nodales de los elementos

149
150 Matlab File to Calculate the Stiffness Matrix of a Finite Element Model

% [Na] incluye los puntos de Guass para la integracion Numerica

Na = zeros(4,2);
Na = (1 / sqrt( 3 ))* [ -1 -1; 1 -1; 1 1; -1 1]; % Puntos De Gauss para la integracion Numerica

for ielm = 1 : nel


% Determino los nodos de cada elemento, son cuantro nodos por elemento
elmnod=zeros(nodel,1);

for inodel = 1 : nodel


elmnod(inodel,1) = conect(ielm,inodel); %Nodos de elemento actual
end

adest = arrdest(elmnod, nodel, ngdl); %Construye arreglos de destino.

matr_const = zeros(3,3); %Creacion de la matriz constitutiva [D]

% Matriz Constitutiva para el elemento ielm


matr_const = relacionconst( elprop(ielm,1) ,elprop(ielm,2) );

a = zeros(3,1);
b = zeros(3,1);

% Generacion de las constantes necesarias para el Jacobiano, estas constantes dependen


% de las coordenadas globales de cada uno de los elementos.

[ a , b ] = genera_const( a, b, coord, elmnod); % La rutina ya fue verificada y funciona.

kelem = zeros(nodel*ngdl,nodel*ngdl); % Inicializo La Matriz de Riguidez Local

[ kelem ] = k_elem2d(a , b, Na, matr_const, elprop(ielm,3), ngdl, nodel ); % Matriz de Rigidez del Elemento

kelem

rigidez = kensam(rigidez, kelem, adest);


end

rigidez
save rigidez.dat rigidez

150
Appendix J

Input Nastran Decks for Seaming


Examples

1. Nastran deck for uncoupled system.

CEND
BEGIN BULK
GRID 1 0.0 10.0 0.0
GRID 2 0.0 6.6666670.0
GRID 3 0.0 3.3333330.0
GRID 4 0.0 0.0 0.0
GRID 5 3.33333310.0 0.0
GRID 6 3.3333336.6666670.0
GRID 7 3.3333333.3333330.0
GRID 8 3.3333330.0 0.0
GRID 9 6.66666710.0 0.0
GRID 10 6.6666676.6666670.0
GRID 11 6.6666673.3333330.0
GRID 12 6.6666670.0 0.0
GRID 13 10.0 10.0 0.0
GRID 14 10.0 6.6666670.0
GRID 15 10.0 3.3333330.0
GRID 16 10.0 0.0 0.0
GRID 17 11.0 10.0 0.0
GRID 18 11.0 6.6666670.0
GRID 19 11.0 3.3333330.0
GRID 20 11.0 0.0 0.0
GRID 21 10.0 10.0 1.0
GRID 22 10.0 6.6666671.0
GRID 23 10.0 3.3333331.0
GRID 24 10.0 0.0 1.0
GRID 25 10.0 10.0 4.666667

151
152 Input Nastran Decks for Seaming Examples

GRID 26 10.0 6.6666674.666667


GRID 27 10.0 3.3333334.666667
GRID 28 10.0 0.0 4.666667
GRID 29 10.0 10.0 8.333333
GRID 30 10.0 6.6666678.333333
GRID 31 10.0 3.3333338.333333
GRID 32 10.0 0.0 8.333333
GRID 33 10.0 10.0 12.0
GRID 34 10.0 6.66666712.0
GRID 35 10.0 3.33333312.0
GRID 36 10.0 0.0 12.0
CQUAD4 6 1000 8 12 11 7
CQUAD4 3 1000 4 8 7 3
CQUAD4 5 1000 7 11 10 6
CQUAD4 2 1000 3 7 6 2
CQUAD4 4 1000 6 10 9 5
CQUAD4 1 1000 2 6 5 1
CQUAD4 9 1000 15 11 12 16
CQUAD4 8 1000 14 10 11 15
CQUAD4 7 1000 13 9 10 14
CQUAD4 12 1000 15 16 20 19
CQUAD4 11 1000 14 15 19 18
CQUAD4 10 1000 13 14 18 17
CQUAD4 17 1001 31 30 26 27
CQUAD4 18 1001 32 31 27 28
CQUAD4 14 1001 27 26 22 23
CQUAD4 15 1001 28 27 23 24
CQUAD4 16 1001 25 26 30 29
CQUAD4 13 1001 21 22 26 25
CQUAD4 21 1001 31 32 36 35
CQUAD4 20 1001 30 31 35 34
CQUAD4 19 1001 29 30 34 33
PSHELL 1000 21.0 2 2 0.0
PSHELL 1001 20.75 2 2 0.0
MAT1 2210000.0 0.3 7.90E-09
ENDDATA

2. Nastran deck for coupled system using RBE2 elements.

CEND
BEGIN BULK
GRID 1 0.0 10.0 0.0
GRID 2 0.0 6.6666670.0
GRID 3 0.0 3.3333330.0
GRID 4 0.0 0.0 0.0
GRID 5 3.33333310.0 0.0
GRID 6 3.3333336.6666670.0
GRID 7 3.3333333.3333330.0

152
153

GRID 8 3.3333330.0 0.0


GRID 9 6.66666710.0 0.0
GRID 10 6.6666676.6666670.0
GRID 11 6.6666673.3333330.0
GRID 12 6.6666670.0 0.0
GRID 13 10.0 10.0 0.0
GRID 14 10.0 6.6666670.0
GRID 15 10.0 3.3333330.0
GRID 16 10.0 0.0 0.0
GRID 17 11.0 10.0 0.0
GRID 18 11.0 6.6666670.0
GRID 19 11.0 3.3333330.0
GRID 20 11.0 0.0 0.0
GRID 21 10.0 10.0 1.0
GRID 22 10.0 6.6666671.0
GRID 23 10.0 3.3333331.0
GRID 24 10.0 0.0 1.0
GRID 25 10.0 10.0 4.666667
GRID 26 10.0 6.6666674.666667
GRID 27 10.0 3.3333334.666667
GRID 28 10.0 0.0 4.666667
GRID 29 10.0 10.0 8.333333
GRID 30 10.0 6.6666678.333333
GRID 31 10.0 3.3333338.333333
GRID 32 10.0 0.0 8.333333
GRID 33 10.0 10.0 12.0
GRID 34 10.0 6.66666712.0
GRID 35 10.0 3.33333312.0
GRID 36 10.0 0.0 12.0
RBE2 22 13 123456 21
RBE2 23 14 123456 22
RBE2 24 15 123456 23
RBE2 25 16 123456 24
CQUAD4 6 1000 8 12 11 7
CQUAD4 3 1000 4 8 7 3
CQUAD4 5 1000 7 11 10 6
CQUAD4 2 1000 3 7 6 2
CQUAD4 4 1000 6 10 9 5
CQUAD4 1 1000 2 6 5 1
CQUAD4 9 1000 15 11 12 16
CQUAD4 8 1000 14 10 11 15
CQUAD4 7 1000 13 9 10 14
CQUAD4 12 1000 15 16 20 19
CQUAD4 11 1000 14 15 19 18
CQUAD4 10 1000 13 14 18 17
CQUAD4 17 1001 31 30 26 27
CQUAD4 18 1001 32 31 27 28
CQUAD4 14 1001 27 26 22 23
CQUAD4 15 1001 28 27 23 24

153
154 Input Nastran Decks for Seaming Examples

CQUAD4 16 1001 25 26 30 29
CQUAD4 13 1001 21 22 26 25
CQUAD4 21 1001 31 32 36 35
CQUAD4 20 1001 30 31 35 34
CQUAD4 19 1001 29 30 34 33
PSHELL 1000 21.0 2 2 0.0
PSHELL 1001 20.75 2 2 0.0
MAT1 2210000.0 0.3 7.90E-09
ENDDATA

Nastran deck for coupled system using cquad4 elements.

CEND
BEGIN BULK
GRID 1 0.0 10.0 0.0
GRID 2 0.0 6.6666670.0
GRID 3 0.0 3.3333330.0
GRID 4 0.0 0.0 0.0
GRID 5 3.33333310.0 0.0
GRID 6 3.3333336.6666670.0
GRID 7 3.3333333.3333330.0
GRID 8 3.3333330.0 0.0
GRID 9 6.66666710.0 0.0
GRID 10 6.6666676.6666670.0
GRID 11 6.6666673.3333330.0
GRID 12 6.6666670.0 0.0
GRID 13 10.0 10.0 0.0
GRID 14 10.0 6.6666670.0
GRID 15 10.0 3.3333330.0
GRID 16 10.0 0.0 0.0
GRID 17 11.0 10.0 0.0
GRID 18 11.0 6.6666670.0
GRID 19 11.0 3.3333330.0
GRID 20 11.0 0.0 0.0
GRID 21 10.0 10.0 1.0
GRID 22 10.0 6.6666671.0
GRID 23 10.0 3.3333331.0
GRID 24 10.0 0.0 1.0
GRID 25 10.0 10.0 4.666667
GRID 26 10.0 6.6666674.666667
GRID 27 10.0 3.3333334.666667
GRID 28 10.0 0.0 4.666667
GRID 29 10.0 10.0 8.333333
GRID 30 10.0 6.6666678.333333
GRID 31 10.0 3.3333338.333333
GRID 32 10.0 0.0 8.333333
GRID 33 10.0 10.0 12.0
GRID 34 10.0 6.66666712.0

154
155

GRID 35 10.0 3.33333312.0


GRID 36 10.0 0.0 12.0
CQUAD4 6 1000 8 12 11 7
CQUAD4 3 1000 4 8 7 3
CQUAD4 5 1000 7 11 10 6
CQUAD4 2 1000 3 7 6 2
CQUAD4 4 1000 6 10 9 5
CQUAD4 1 1000 2 6 5 1
CQUAD4 9 1000 15 11 12 16
CQUAD4 8 1000 14 10 11 15
CQUAD4 7 1000 13 9 10 14
CQUAD4 12 1000 15 16 20 19
CQUAD4 11 1000 14 15 19 18
CQUAD4 10 1000 13 14 18 17
CQUAD4 17 1001 31 30 26 27
CQUAD4 18 1001 32 31 27 28
CQUAD4 14 1001 27 26 22 23
CQUAD4 15 1001 28 27 23 24
CQUAD4 16 1001 25 26 30 29
CQUAD4 13 1001 21 22 26 25
CQUAD4 21 1001 31 32 36 35
CQUAD4 20 1001 30 31 35 34
CQUAD4 19 1001 29 30 34 33
CQUAD4 26 1003 13 21 22 14
CQUAD4 27 1003 14 22 23 15
CQUAD4 28 1003 15 23 24 16
PSHELL 1000 21.0 2 2 0.0
PSHELL 1001 20.75 2 2 0.0
PSHELL 1003 21.0 2 2 0.0
MAT1 2210000.0 0.3 7.90E-09
ENDDATA

155
156 Input Nastran Decks for Seaming Examples

156
Bibliography

[1] Inspec. Website. http://www.theiet.org/publishing/inspec/.

[2] Tcl developer site. Website. http://www.tcl.tk.

[3] The Procedure Handbook of Arc Welding. Number 99949-25-82-2. Lincoln Electric,
1994.

[4] 6th german ls-dyna forum, 2007. http://www.dynamore.de/.

[5] Fida Afiouni. Human resource management and knowledge management: A


road map toward improving organizational performance. Journal of American
Academy of Business, pages 124–130, 2007.

[6] Altair Engineering Inc., 1820 E. Big Beaver Troy, MI 48083-2031 USA. Altair
HyperMesh Commands, 6.0 edition, 2003.

[7] Altair Engineering Inc., 1820 E. Big Beaver Troy, MI 48083-2031 USA. Altair
HyperMesh Macro Menu and Tcl/Tk, 6 edition, 2003.

[8] Altair Engineering Inc., 1820 E. Big Beaver Troy, MI 48083-2031 USA. Altair
HyperMesh Programer’s Guide, 6 edition, 2003.

[9] Beverly A. Beckert. Is analysis technology used to best effect? Computer Aided
Engineering, pages 52–55, 2001.

[10] Beta CAE Systems SA, Kato Scholari, Thessaloniki, GR-57500 Epanomi,
Greece. Ansa Scripting Language. A guide to ANSA automation, 2007.

[11] Beta CAE Systems SA, Kato Scholari, Thessaloniki, GR-57500 Epanomi,
Greece. Ansa version 12.1.3 User’s Guide, 2007.

157
158 BIBLIOGRAPHY

[12] Janet E. Burge. Knowledge elicitation tool classification. Website. http:


//web.cs.wpi.edu/∼jburge/thesis/kematrix.html.

[13] Howard B. Cary and Scott C. Helzer. Modern Welding Technology. Number
0131130293. Pearson Education, 2005.

[14] John W. Coffey, Thomas C. Eskridge, and Daniel P. Sanchez. A case study
in knowledge elicitation for institutional memory preservation using concept
maps. First International Conference on Concept Mapping, 2004.

[15] Matthias Eick and Christian Alscher. Automated assembly of ls-dyna models.
LS-Dyna Anwenderfourm, 2007.

[16] Matthew Hall. Knowledge management and the limits of knowledge codifi-
cation, 2006.

[17] Kiran Hedge, Horacio Ahuett-Garza, Ganesh Padiyar, and R. Allen Miller.
Fem analysis of die casting die deflections: Part 1 - modeling and simulation.
North American Die Casting Association, 1995.

[18] James J Hoffman, Mark L Hoelscher, and Karma Sherif. Social capital, knowl-
edge management, and sustained superior performance. Journal of Knowledge
Management, pages 93–100, 2005.

[19] Brain Huf. The future of cae software. how to achieve process automation. 7th
International LS-Dyna user Conference, 2002.

[20] Chad Jackson. Engineering decision support: Driving better product decisions
and speed to market. Technical report, Aberdeen Group, 2008.

[21] William D. Callister Jr. Materials Science and Engineering: An Introduction.


Number 0471320137. John Wiley & Sons, 2000.

[22] Michael Keranen, Srikanth Krishnaraj, Kumar B. Kulkarni, Li Lu, Ravi S.


Thyagarajan, and Velayudnam Ganesan. Automating instrument panel head
impact simulation. Technical Report 2005-01-1221, SAE, April 2005.

158
BIBLIOGRAPHY 159

[23] Kaj U Koskinen. Knowledge management to improve project communication


and implementation. Project Management Journal, pages 13–19, 2004.

[24] Irene Makropoulou. Template driven ls-dyna model build-up with ansa task
manager. LS-Dyna Anwenderfourm, 2007.

[25] Ricardo E. S. Martins. Reducing modelling time for vehicle structures on finite
element method analysis. Technical Report 2007-01-2580, SAE, November
2007.

[26] Eugene H Melan. Process management: A unifying framework for improve-


ment. National Productivity Review, 1989.

[27] Fiona J Mellor-Ghilardi. Getting to ”real-time” knowledge management: From


knowledge management to knowledge generation. pages 99–192, 1997.

[28] Dirk F. Meyer, Radim Cerny, Vladimir Bobrus, and Martin Formanek. Im-
provement of product development time and manufacturing processing with
the help of computer-added process simulation tools. Technical Report 2001-
01-3437, SAE, Octuber 2001.

[29] Microsoft. Face and vertex normal vectors. http://msdn.microsoft.com/


en-us/library/bb324491(VS.85).aspx.

[30] Irwin Miller, John Freund, and Richard Johnson. Probability and Statistics for
Engineers. Number 968-880-235-2. Prentice Hall, 4th edition, 1992.

[31] Nick Milton. Knowledge acquisition. Website, November 2003. http://www.


epistemics.co.uk/Notes/63-0-0.htm.

[32] Christopher Rupiper. Automating fe model creation and managing cae in-
formation to increase user and global pre-processing efficiencies. Hyperworks
Technology Conference, 2007.

[33] Jochen Seybold, Matthias Eick, and Lars Fredriksson. Cae data management
and quality assessment of ls-dyna crash moels using v-cess. 4th European
LS-Dyna User Conference, 2003.

159
160 BIBLIOGRAPHY

[34] Chandrakant B. Shah and Vijay Tunga. Engineering simulation process au-
tomation using templating and common data model capabilities of simxpert
– an example of powertrain application. MSC.Software, 2007.

[35] Ja suk Koo, Yeon gyoo Lee, Jae seock Choi, and Dohng-Goock Choo. Develop-
ment of durability analysis automation system. Technical Report 2007-01-0949,
SAE, April 2007.

[36] E Turban, R Rainer, and R Potter. Introduction to Information Technology. Josh


Wiley & Sons, Inc, Hoboken, NK, 2nd edition, 2003.

[37] Ken Verspille. What it takes to capture engineering knowledge.

[38] Ken Versprile. What it takes to capture engineering knowledge, 2001.

[39] Boris Veytsman and Maria Shmilevich. Automatic report generation with
web, tex and sql. The PracTeX Journal, 2006.

[40] Thomas Wang, Xianming Wang, and Maolin Tsai. Automation of structural
fatigue/reliability assessment using isight, msc/nastran and ncode. Technical
Report 2005-01-0823, SAE, April 2005.

[41] Eric Weisstein. Mathworld–a wolfram web resource. http://mathworld.


wolfram.com/.

[42] Brent Welch, Ken Jones, and Jeff Hobbs. Practical Programming in Tcl and Tk.
Number 0-13-038560-3. Prentice Hall, 4th edition, 2003.

[43] Dongsong Zhang and J Leon Zhao. Knowledge management in organizations.


Journal of Database Management, 2006.

160

You might also like