Sei sulla pagina 1di 2107

FEMAP

API Reference

Version 11.2.1
Proprietary and Restricted Rights Notice

This software and related documentation are proprietary to Siemens Product Lifecycle Management Software Inc.
2015 Siemens Product Lifecycle Management Software Inc. All Rights Reserved.
Siemens and the Siemens logo are registered trademarks of Siemens AG. NX is a trademark or registered trademark of
Siemens Product Lifecycle Management Software Inc. or its subsidiaries in the United States and in other countries. All
other trademarks, registered trademarks or service marks belong to their respective holders.

Siemens PLM

Web: http://www.femap.com

Customer Support

Phone: (714) 952-5444, (800) 955-0000 (In US & Canada)

Web: http://support.ugs.com

The following copyright refers only to the bmp2raster.exe executable distributed with FEMAP:
NeuQuant Neural-Net Quantization Algorithm
Copyright (c) 1994 Anthony Dekker
NEUQUANT Neural-Net quantization algorithm by Anthony Dekker, 1994.
See "Kohonen neural networks for optimal colour quantization" in "Network: Computation in Neural Systems" Vol. 5
(1994) pp 351-367 for a discussion of the algorithm.
See also http://members.ozemail.com.au/~dekker/NEUQUANT.HTML
Any party obtaining a copy of these files from the author, directly or indirectly, is granted, free of charge, a full and
unrestricted irrevocable, world-wide, paid up, royalty-free, nonexclusive right and license to deal in this software and
documentation files (the "Software"), including without limitation the rights to use, copy, modify, merge, publish, dis-
tribute, sublicense, and/or sell copies of the Software, and to permit persons who receive copies from any such party to
do so, with the only requirement being that this copyright notice remain intact.
Conventions
This manual uses different fonts to highlight command names or input that you must type.

a:setup Shows text that you should type.

OK, Cancel Shows a command name or text that you will see in a
dialog box.

Throughout this manual, you will see references to Windows. Windows refers to Microsoft Windows Vista, Windows
7, Windows 8, and Windows 8.1. You will need one of these operating environments to run FEMAP for the PC. This
manual assumes that you are familiar with the general use of the operating environment. If you are not, you can refer to
the Windows Users Guide for additional assistance.
Similarly, throughout the manual all references to FEMAP, refer to the latest version of our software.
FEMAP API Reference Table
of Contents

1. Introduction to the FEMAP API


1.1 Objects, Methods and Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35
1.1.1 The Application Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35
1.1.2 Other Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35
1.2 Data Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .36
1.2.1 Using Visual Basic .NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .36
1.2.2 Arrays and Variants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .37
1.2.3 An Array Shortcut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .39
1.2.4 Arrays and Visual Basic .NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .39
1.2.5 Arrays and Visual C++. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .39
1.2.6 Using Multi-dimensional Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .40
1.2.7 Multiple Definitions of Array Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .41
1.3 Memory Allocation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .41
1.4 Global Constants. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42

2. Using the FEMAP API


2.1 Using Visual Basic .NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .47
2.2 Loading Data into Excel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .47
2.3 Loading Data from Excel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .49
2.4 Creating Output in FEMAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .52
2.5 Using the ReadFile Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .54
2.6 Storing Your Own Data in the FEMAP Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .55
2.7 Creating a Rigid Element . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .58
2.8 Updating Loads and Constraints. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .60
2.9 Charting FEMAP Results in Excel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .62
2.10 Calling the API from Visual C++. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .69

3. The FEMAP Application Object


3.1 Getting Started . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .73
3.1.1 Using the FEMAP API Programming Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .73
3.1.2 Creating a FEMAP Object. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .73
3.1.3 Using the FEMAP Type Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .74
3.2 Working with the User Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .77
3.2.1 Running as two separate applications. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .77
3.2.2 Running FEMAP as a hidden server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .78
3.2.3 Running your application as a FEMAP add-in. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .78
3.2.4 Embedding FEMAP in your application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .79
3.2.4.1 Embedding FEMAP in your Application. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .80
3.2.4.2 Capturing the FEMAP Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .81
3.2.5 API Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .85
3.3 FEMAP Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .86
3.3.1 Global Properties - File menu commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .86
3.3.1.1 File, Import, Geometry - Geometry Replacement Options . . . . . . . . . . . . . . . . . . . . . . . . . . . .86
3.3.1.2 File, Page Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .88
3.3.1.3 File, Preferences - Messages tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .90
3.3.1.4 File, Preferences - Views tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
3.3.1.5 File, Preferences - Graphics tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
3.3.1.6 File, Preferences - User Interface tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
3.3.1.7 File, Preferences - Database tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
3.3.1.8 File, Preferences - Geometry/Model tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
3.3.1.9 File, Preferences - Interfaces tab. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
3.3.1.10 File, Preferences - Results tab. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
3.3.1.11 File, Preferences - Library/Startup tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
3.3.1.12 File, Preferences - Color tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
3.3.1.13 File, Preferences - Spaceball tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
3.3.2 Global Integer Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
3.3.3 Global Real Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
3.3.4 Global Boolean Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
3.3.5 Global String Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
3.3.6 Entity Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
3.3.7 FEMAP Constants. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
3.4 File Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
3.4.1 File Open/Exit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
3.4.1.1 feFileNew . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
3.4.1.2 feFileOpen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
3.4.1.3 feFileClose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
3.4.1.4 feFileExit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
3.4.2 File Save . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
3.4.2.1 feFileSave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
3.4.2.2 feFileSaveAs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
3.4.2.3 feFileTimedSave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
3.4.3 Import Geometry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
3.4.3.1 feFileReadAcisOpt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
3.4.3.2 feFileReadAcis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
3.4.3.3 feFileReadCatia. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
3.4.3.4 feFileReadCatia2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
3.4.3.5 feFileReadCatiaV5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
3.4.3.6 feFileReadDxf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
3.4.3.7 feFileReadIdeas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
3.4.3.8 feFileReadIgesAdv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
3.4.3.9 feFileReadIges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
3.4.3.10 feFileReadParasolidOpt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
3.4.3.11 feFileReadParasolid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
3.4.3.12 feFileReadProe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
3.4.3.13 feFileReadSolidEdge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
3.4.3.14 feFileReadStepOpt2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
3.4.3.15 feFileReadStep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
3.4.3.16 feFileReadStepOpt - Obsolete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
3.4.3.17 feFileReadStl. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
3.4.3.18 feFileReadUg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
3.4.4 Import Analysis Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
3.4.4.1 feFileReadAbaqus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
3.4.4.2 feFileReadAnsys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
3.4.4.3 feFileReadDyna . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
3.4.4.4 feFileReadMarc. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
3.4.4.5 feFileReadNastran. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
3.4.4.6 feFileReadPatran . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
3.4.5 Import Analysis Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
3.4.5.1 feFileReadAbaqusResults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
3.4.5.2 feFileReadAnsysResults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
3.4.5.3 feFileReadDynaResults. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
3.4.5.4 feFileReadMarcResults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
3.4.5.5 feFileReadNastranResults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
3.4.6 Attach To Results File. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
3.4.6.1 feFileAttachResults. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
3.4.6.2 feFileAttachManage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
3.4.6.3 feFileAttachInfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
3.4.6.4 feFileAttachSave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
3.4.6.5 feFileAttachSave2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
3.4.6.6 feFileAttachByOutset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
3.4.7 Import/Export Neutral File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
3.4.7.1 feFileReadNeutral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
3.4.7.2 feFileReadNeutral2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
3.4.7.3 feFileReadNeutral3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
3.4.7.4 feFileWriteNeutral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
3.4.7.5 feFileWriteNeutral2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
3.4.7.6 feFileWriteFNO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
3.4.7.7 feFileWriteFNO2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
3.4.8 Export Geometry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
3.4.8.1 feFileWriteAcis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
3.4.8.2 feFileWriteIges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
3.4.8.3 feFileWriteParasolid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
3.4.8.4 feFileWriteStep2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
3.4.8.5 feFileWriteStep - Obsolete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
3.4.8.6 feFileWriteStl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
3.4.8.7 feFileWriteVrml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
3.4.9 Export Analysis Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
3.4.9.1 feFileWriteAbaqus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
3.4.9.2 feFileWriteAnsys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
3.4.9.3 feFileWriteDyna . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
3.4.9.4 feFileWriteIdeas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
3.4.9.5 feFileWriteMarc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
3.4.9.6 feFileWriteNastran . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
3.4.9.7 feFileWriteSTAAD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
3.4.10 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
3.4.10.1 feNotesGet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
3.4.10.2 feNotesPut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
3.4.11 Print and Copy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
3.4.11.1 feFilePageSetupSave. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
3.4.11.2 feFilePageSetupReset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
3.4.11.3 feFilePrint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
3.4.11.4 feFilePrint2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
3.4.11.5 feFilePictureCopy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
3.4.11.6 feFilePictureCopy2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
3.4.11.7 feFilePictureSave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
3.4.11.8 feFilePictureSave2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
3.4.11.9 feFilePictureReplay. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
3.4.11.10 feFileMessageCopy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
3.4.11.11 feFileMessageSave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
3.4.11.12 feFileMessageSelect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
3.4.11.13 feFileMessageLineNumber . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
3.4.12 Rebuild and Preferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
3.4.12.1 feFileRebuild. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
3.4.12.2 feFileRecoverDBData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
3.4.12.3 feFilePreferencesSave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
3.4.12.4 feFilePreferencesReset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
3.4.12.5 feRunIOTest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
3.5 Tool Methods. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
3.5.1 Units . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
3.5.1.1 feToolUnitConvertFactors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
3.5.1.2 feToolUnitConvert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
3.5.2 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
3.5.2.1 feVarPut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
3.5.2.2 feVarGet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
3.5.2.3 feVarEval . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
3.5.3 Layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
3.5.3.1 feLayerPut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
3.5.3.2 feLayerGet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
3.5.4 Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
3.5.4.1 feTextPut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
3.5.4.2 feTextMultiPut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
3.5.4.3 feTextGet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
3.5.5 Measure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
3.5.5.1 feMeasureDistance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
3.5.5.2 feMeasureDistanceToPlane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
3.5.5.3 feMeasureDistanceBetweenGeometry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294
3.5.5.4 feMeasureDistanceBetweenNodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
3.5.5.5 feMeasureDistanceBetweenNodes2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
3.5.5.6 feMeasureDistanceBetweenLines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
3.5.5.7 feMeasureDistanceBetweenSolids . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
3.5.5.8 feMeasureAngle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300
3.5.5.9 feMeasureAngleBetweenNodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
3.5.5.10 feMeasureCurve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
3.5.5.11 feMeasureSurfaceArea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
3.5.5.12 feMeasureSolidMassProp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
3.5.5.13 feMeasureMeshMassProp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
3.5.5.14 feMeasureSurfSectionProp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
3.5.5.15 feMeasureMeshSectionProp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
3.5.6 Checks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
3.5.6.1 feCheckCoincidentNode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
3.5.6.2 feCheckCoincidentNode2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311
3.5.6.3 feCheckCoincidentNode3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312
3.5.6.4 feCheckCoincidentPoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
3.5.6.5 feCheckCoincidentCurve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
3.5.6.6 feCheckPlanarNodes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316
3.5.6.7 feCheckCoincidentElem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
3.5.6.8 feCheckElemFixup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
3.5.6.9 feCheckElemDistortion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
3.5.6.10 feCheckElemDistortion2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
3.5.6.11 feGetElemDistortion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
3.5.6.12 feGetElemDistortion2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
3.5.6.13 feCheckElemNormal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
3.5.6.14 feCheckConstraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326
3.5.6.15 feCheckCoincidentLoads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
3.5.6.16 feCheckSumForces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
3.5.6.17 feCheckSumForces2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
3.5.7 Charting Pane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332
3.5.7.1 feChartPaneGetDisplayed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332
3.5.7.2 feChartPaneSetDisplayed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
3.6 Geometry Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
3.6.1 Lines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
3.6.1.1 feLinePoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
3.6.1.2 feLineHorzVert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336
3.6.1.3 feLineAtAngle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
3.6.1.4 feLineParallel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338
3.6.1.5 feLineMidline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339
3.6.1.6 feLinePointTangent. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
3.6.1.7 feLine2Tangent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
3.6.1.8 feLineRectangle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
3.6.1.9 feLinePointIDs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
3.6.2 Arcs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
3.6.2.1 feArcCenterStartEnd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
3.6.2.2 feArcRadiusStartEnd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
3.6.2.3 feArcAngleStartEnd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
3.6.2.4 feArcAngleCenterStart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
3.6.2.5 feArcChordCenterStart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
3.6.2.6 feArcPoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
3.6.2.7 feArcCenterPoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
3.6.2.8 feArcTangentStartEnd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
3.6.3 Circles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
3.6.3.1 feCircleRadius. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
3.6.3.2 feCircleDiameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
3.6.3.3 feCircleCenter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354
3.6.3.4 feCircle2Point . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
3.6.3.5 feCircleConcentric . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
3.6.3.6 feCircle3Point . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357
3.6.3.7 feCircleCenterPoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358
3.6.3.8 feCircleCenterTangent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359
3.6.3.9 feCircleTangentTangent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
3.6.4 Splines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
3.6.4.1 feSplinePoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
3.6.4.2 feSplineTangent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363
3.6.4.3 feSplineEllipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364
3.6.4.4 feSplineParabola . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
3.6.4.5 feSplineHyperbola . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366
3.6.4.6 feSplineBlend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367
3.6.5 Curves from Surfaces Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368
3.6.5.1 feCurveUpdateSurfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368
3.6.5.2 feCurveIntersectSolids . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369
3.6.5.3 feCurveProjectOntoSolid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370
3.6.5.4 feCurveProjectOntoSurfaces. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371
3.6.5.5 feCurveParametricOnSurface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372
3.6.5.6 feCurveSlice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373
3.6.5.7 feCurveOffsetCurveWasher- obsolete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374
3.6.5.8 feCurveOffsetCurveWasher2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375
3.6.5.9 feCurveSplitPointToPoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376
3.6.5.10 feCurveSplitPointToEdge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377
3.6.5.11 feCurveSplitEdgeToEdge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378
3.6.5.12 feCurvePad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379
3.6.6 Curve Modification Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381
3.6.6.1 feCurveTrim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381
3.6.6.2 feCurveExtend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382
3.6.6.3 feCurveBreak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
3.6.6.4 feCurveJoin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384
3.6.6.5 feCurveFillet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385
3.6.6.6 feCurveChamfer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386
3.6.7 Boundaries. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387
3.6.7.1 feBoundaryFromPoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387
3.6.7.2 feBoundaryFromCurves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388
3.6.7.3 feBoundaryFromSurfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389
3.6.7.4 feBoundaryAddSurfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390
3.6.7.5 feBoundaryUpdateSurfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391
3.6.8 Surfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392
3.6.8.1 feSurfaceCorners. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392
3.6.8.2 feSurfaceEdgeCurves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393
3.6.8.3 feSurfaceAlignedCurves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394
3.6.8.4 feSurfaceRuled . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396
3.6.8.5 feSurfaceExtrude. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397
3.6.8.6 feSurfaceRevolve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398
3.6.8.7 feSurfaceSweep. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399
3.6.8.8 feSurfaceNormalDeviation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400
3.6.8.9 feSurfaceConvert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
3.6.8.10 feSurfaceNonManifoldAdd. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
3.6.8.11 feSurfaceNonManifoldAdd2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403
3.6.8.12 feSurfaceNonManifoldAdd3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404
3.6.8.13 feSurfaceNonManifoldAddExpress . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405
3.6.8.14 feSurfaceRecoverManifold . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406
3.6.8.15 feSurfaceRemoveHole . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407
3.6.8.16 feSurfaceFromMesh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408
3.6.8.17 feSurfaceRayFire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409
3.6.9 Midsurfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410
3.6.9.1 feSurfaceMidSingle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410
3.6.9.2 feSurfaceMidAuto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411
3.6.9.3 feSurfaceMidAuto2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412
3.6.9.4 feSurfaceOffsetTangent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413
3.6.9.5 feSurfaceMidAttrib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414
3.6.9.6 feSurfaceTrimToSolid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415
3.6.9.7 feSurfaceTrimWithCurves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416
3.6.9.8 feSurfaceExtend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417
3.6.9.9 feSurfaceOffsetTangent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418
3.6.10 Solids. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419
3.6.10.1 feSolidPrimitive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419
3.6.10.2 feSolidExtrude . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421
3.6.10.3 feSolidRevolve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422
3.6.10.4 feSolidExplode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423
3.6.10.5 feSolidStitch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424
3.6.10.6 feSolidStitchNoCleanup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425
3.6.10.7 feSolidSweep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426
3.6.10.8 feSolidSweepBetween . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427
3.6.10.9 feSolidFillet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428
3.6.10.10 feSolidChamfer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429
3.6.10.11 feSolidAdd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 430
3.6.10.12 feSolidRemove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431
3.6.10.13 feSolidCommon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432
3.6.10.14 feSolidEmbed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433
3.6.10.15 feSolidEmbedMultiple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434
3.6.10.16 feSolidIntersect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435
3.6.10.17 feSolidShell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436
3.6.10.18 feSolidSlice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437
3.6.10.19 feSolidSliceMatch. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438
3.6.10.20 feSolidSliceAlongFace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439
3.6.10.21 feSolidEmbedFace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440
3.6.10.22 feSolidCleanup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441
3.6.10.23 feSolidCleanupAdvanced . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442
3.6.10.24 feSolidRemoveFace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444
3.6.10.25 feSolidExtendToSurface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445
3.6.10.26 feSolidFillCavity. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446
3.6.10.27 feSolidRemoveBlendsBelowRadius . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447
3.6.10.28 feSolidRemoveRedundantPoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448
3.6.10.29 feSolidMidSurfaceManualInput . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449
3.6.10.30 feSolidRayFire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450
3.6.11 Geometry and Mesh Generation Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451
3.6.11.1 feGenerateCopy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451
3.6.11.2 feGenerateRadialCopy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453
3.6.11.3 feGenerateScale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454
3.6.11.4 feGenerateRotate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455
3.6.11.5 feGenerateReflect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456
3.6.12 Meshing Toolbox - Geometry Editing Tool Methods. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457
3.6.12.1 feCurveProjectCurvesOntoSurfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457
3.6.12.2 feSolidExtendEdgesToSurfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458
3.6.12.3 feSolidMovePointOntoGeometry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459
3.7 Connection Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461
3.7.1 Generating Connections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462
3.7.1.1 feConnectAuto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462
3.7.1.2 feConnectAuto2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462
3.8 Model Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466
3.8.1 Model Load Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467
3.8.1.1 feLoadCombine. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467
3.8.1.2 feLoadFromFreebody . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468
3.8.2 Model Constraint Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469
3.8.2.1 feBCCombine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469
3.8.3 Model Output Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470
3.8.3.1 feOutputProcess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470
3.8.3.2 feOutputProcessCopy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472
3.8.3.3 feOutputProcessMerge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473
3.8.3.4 feOutputProcessLinearCombination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474
3.8.3.5 feOutputProcessRSSCombination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475
3.8.3.6 feOutputProcessConvert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476
3.8.3.7 feOutputProcessEnvelope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477
3.8.3.8 feOutputProcessEnvelopeFromSets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479
3.8.3.9 feOutputProcessErrorEstimate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481
3.8.3.10 feOutputFromLoad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482
3.8.3.11 feOutputTransform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483
3.8.3.12 feOutputTransform2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484
3.8.3.13 feOutputCalculate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486
3.8.3.14 feOutputConvertV92VectorID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487
3.8.3.15 feOutputForceBalance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488
3.8.3.16 feOutputForceBalance2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 490
3.8.3.17 feOutputCompare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491
3.8.3.18 feCompute3DInvariants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492
3.8.3.19 feCompute2DInvariants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493
3.8.4 Model Information Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494
3.8.4.1 feElemCountOnProp. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494
3.9 Meshing Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495
3.9.1 Mesh Control. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496
3.9.1.1 feMeshSizePoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496
3.9.1.2 feMeshSizeCurve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497
3.9.1.3 feMeshSizeCurveMatchNodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499
3.9.1.4 feMeshSizeCurveMatchXYZ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500
3.9.1.5 feMeshSizeSurface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501
3.9.1.6 feMeshSizeSolid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503
3.9.1.7 feMeshAttrPoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505
3.9.1.8 feMeshAttrCurve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 506
3.9.1.9 feMeshAttrSurface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 508
3.9.1.10 feMeshAttrSolid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 509
3.9.1.11 feMeshApproachSurface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 510
3.9.2 Meshing Geometry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511
3.9.2.1 feMeshPoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511
3.9.2.2 feMeshCurve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513
3.9.2.3 feMeshSurface2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515
3.9.2.4 feMeshSurface - obsolete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517
3.9.2.5 feMeshSurfaceByAttributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519
3.9.2.6 feMeshTetSolid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 520
3.9.2.7 feMeshTetSolid2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 522
3.9.2.8 feMeshHexSolid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524
3.9.2.9 feMeshHexSolidFromElement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 526
3.9.3 Other Meshing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 528
3.9.3.1 feMeshBetween. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 528
3.9.3.2 feMeshClosestLink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 530
3.9.3.3 feMeshCoincidentLink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 531
3.9.3.4 feMeshUnzip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 532
3.9.3.5 feMeshUnzip2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533
3.9.3.6 feMeshEdgeSplit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535
3.9.3.7 feMeshEdgeSplit2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 536
3.9.3.8 feMeshTransition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537
3.9.3.9 feMeshRemesh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 540
3.9.3.10 feMeshConvertFacets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542
3.9.3.11 feMeshCleanupSlivers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543
3.9.3.12 feMeshEdgeRemoval . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 544
3.9.3.13 feMeshBuildRemeshRegions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545
3.9.3.14 feMeshEditRemeshRegions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546
3.9.3.15 feMeshRemeshRegions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 547
3.9.3.16 feMeshEdgeMembers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 549
3.9.3.17 feMeshSmooth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 550
3.9.3.18 feMeshSmooth2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 551
3.9.3.19 feMeshExtrudeElem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 552
3.9.3.20 feMeshExtrudeElem2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 554
3.9.3.21 feMeshExtrudeCurve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 556
3.9.3.22 feMeshRevolveElem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 557
3.9.3.23 feMeshRevolveCurve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 558
3.9.3.24 feMeshSweepElem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 559
3.9.3.25 feMeshSweepCurve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 560
3.9.4 Mesh Copy/Radial Copy/Scale/Rotate/Reflect commands. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562
3.10 Modification Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563
3.10.1 Projection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 564
3.10.1.1 feProjectOnto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 564
3.10.1.2 feProjectOntoCurve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 566
3.10.1.3 feProjectOntoSurface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 567
3.10.1.4 feProjectOntoVector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 568
3.10.1.5 feProjectAlongVector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 569
3.10.1.6 feProjectOntoPlane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 570
3.10.1.7 feProjectOntoSolid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 571
3.10.2 Move, Rotate and Scale. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 572
3.10.2.1 feMoveTo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 572
3.10.2.2 feMoveBy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 573
3.10.2.3 feMoveOffset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 574
3.10.2.4 feRotateTo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 575
3.10.2.5 feRotateBy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 576
3.10.2.6 feAlignTo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 577
3.10.2.7 feAlignBetweenCsys. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 578
3.10.2.8 feScale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 579
3.10.3 Color and Layer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 580
3.10.3.1 feModifyColor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 580
3.10.3.2 feModifyColorMultiple. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 581
3.10.3.3 feModifyTransparency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 582
3.10.3.4 feModifyLayer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 583
3.10.4 Renumbering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 584
3.10.4.1 feRenumber . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 584
3.10.4.2 feRenumberOpt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 585
3.10.4.3 feRenumberOpt2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 587
3.10.5 Associativity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 589
3.10.5.1 feAutoMeshAssociativity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 589
3.10.5.2 feMeshAttach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 590
3.10.5.3 feMeshAttachNodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 591
3.10.5.4 feMeshDetach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 592
3.10.6 Other Updates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593
3.10.6.1 feModifyDefCSys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593
3.10.6.2 feModifyOutCSys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 594
3.10.6.3 feModifyPermBC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 595
3.10.6.4 feModifySplineOrder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 596
3.10.6.5 feModifySplineKnots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 597
3.10.6.6 feModifyReverseCurve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 598
3.10.6.7 feModifyNoMergeCurve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 599
3.10.6.8 feModifySurfaceDivisions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 600
3.10.6.9 feModifySurfaceNormal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 601
3.10.6.10 feModifySolidFacetting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 602
3.10.6.11 feModifySuperelementID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603
3.10.6.12 feModifyLoadPhase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 604
3.10.7 Element Updates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 605
3.10.7.1 feModifyElemPropID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 605
3.10.7.2 feModifyPropMatlID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 606
3.10.7.3 feModifyMaterialAngle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 607
3.10.7.4 feModifyElemReverse2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 608
3.10.7.5 feModifyElemReverse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 609
3.10.7.6 feModifyElemRelease. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 610
3.10.7.7 feModifyElemOrder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 611
3.10.7.8 feModifyMidside . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 612
3.10.7.9 feModifyFormulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 613
3.10.7.10 feModifySplitQuads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 614
3.10.7.11 feModifyOffsets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 615
3.10.7.12 feModifyOffsetsToRefPt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 616
3.10.7.13 feModifyOrient . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 617
3.10.7.14 feModifyElemType . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 618
3.10.7.15 feModifyBeamWarping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 619
3.11 Delete Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 620
3.11.1 feDeleteAll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 621
3.11.2 feDelete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 622
3.11.3 feDeleteMesh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 623
3.11.4 feDeleteLoads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 624
3.11.5 feDeleteConstraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 625
3.11.6 feDeleteOutput . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 626
3.12 View, Window and Visibility Methods. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 627
3.12.1 feViewVisible (or feWindowVisible) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 628
3.12.2 feViewRedraw (or feWindowRedraw) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 629
3.12.3 feViewRegenerate (or feWindowRegenerate) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 630
3.12.4 feViewAutoscaleAll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 631
3.12.5 feViewAutoscaleVisible . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 632
3.12.6 feViewAllViews . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 633
3.12.7 feViewShow (or feWindowShow) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 634
3.12.8 feViewTile (or feWindowTile) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 635
3.12.9 feWindowTileHorz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 636
3.12.10 feViewCascade (or feWindowCascade) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 637
3.12.11 feWindowMinimize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 638
3.12.12 feWindowMaximize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 639
3.12.13 feWindowRestore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 640
3.12.14 feWindowSetRect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 641
3.12.15 feWindowSetSize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 642
3.12.16 feWindowTitle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 643
3.12.17 feEntityVisibility. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 644
3.12.18 feAppUpdateModelBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 645
3.13 Group Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 646
3.13.1 feGroupEvaluate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 647
3.13.2 feGroupBoolean . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 648
3.13.3 feGroupBoolean2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 649
3.13.4 feGroupCombine. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 650
3.13.5 feGroupGenerate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 651
3.13.6 feGroupGenerate2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 652
3.13.7 feGroupGenSolid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 654
3.13.8 feGroupGenProp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 655
3.13.9 feGroupGenMatl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 656
3.13.10 feGroupGenElemType . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 657
3.13.11 feGroupPeel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 658
3.13.12 feGroupMoveToLayer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 659
3.13.13 feGroupsContaining . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 660
3.14 Free Edge and Free Face Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 661
3.14.1 feElementFreeEdge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 662
3.14.2 feElementFreeFace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 663
3.15 Standard Dialog Boxes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 664
3.15.1 Coordinate Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 665
3.15.1.1 feCoordPick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 665
3.15.1.2 feCoordPickByMethod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 666
3.15.1.3 feCoordFromWorkplane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 667
3.15.1.4 feCoordToWorkplane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 668
3.15.1.5 feCoordIntersectCurves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 669
3.15.1.6 feCoordIntersectLines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 670
3.15.1.7 feCoordOntoCurve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 671
3.15.1.8 feCoordAlongCurve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 672
3.15.1.9 feCoordCurveMidpoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 673
3.15.1.10 feCoordCurveCenter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 674
3.15.1.11 feCoordOntoSurface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 675
3.15.1.12 feCoordInSurface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 676
3.15.1.13 feCoordSurfaceIntersect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 677
3.15.1.14 feCoordOnPoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 678
3.15.1.15 feCoordOnNode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 679
3.15.1.16 feCoordTransform. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 680
3.15.1.17 feCoordArrayTransform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 681
3.15.1.18 feCoordArrayTransform2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 682
3.15.1.19 feCoordColinear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 683
3.15.1.20 feCoordToDirCos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 684
3.15.1.21 feCoordRotate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 685
3.15.1.22 feCoordOntoPlane. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 686
3.15.1.23 feCoordOntoLine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 687
3.15.1.24 feCoordPlaneIntersect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 688
3.15.1.25 feCoordVectorPlaneIntersect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 689
3.15.1.26 feRotationTransform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 690
3.15.1.27 feRotationToDirCos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 691
3.15.1.28 feRotationFromDirCos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 692
3.15.2 Vector Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 693
3.15.2.1 feVectorTransform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 693
3.15.2.2 feVectorFromBeam. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 694
3.15.2.3 feVectorToBeam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 695
3.15.2.4 feVectorLength . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 696
3.15.2.5 feVectorCrossPoduct . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 697
3.15.2.6 feVectorDotProduct . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 698
3.15.2.7 feVectorNormalizedDotProduct . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 699
3.15.2.8 feVectorPerpendicular . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 700
3.15.2.9 feVectorAngle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 701
3.15.2.10 feVectorAngleAxis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 702
3.15.2.11 feVectorPlaneIntersect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 703
3.15.2.12 feVectorUnit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 704
3.15.2.13 feVectorPick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 705
3.15.2.14 feVectorPickByMethod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 706
3.15.2.15 feVectorAxis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 707
3.15.2.16 feVectorTangentToCurve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 708
3.15.2.17 feVectorNormalToSurface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 709
3.15.2.18 feVectorNormalToView . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 710
3.15.2.19 feVectorAxisOfSurface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 711
3.15.2.20 feVectorRotate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 712
3.15.3 Plane Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 713
3.15.3.1 fePlanePick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 713
3.15.3.2 fePlanePickByMethod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 714
3.15.3.3 fePlaneLocation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 715
3.15.3.4 fePlaneNodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 716
3.15.3.5 fePlanePoints. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 717
3.15.3.6 fePlaneBisect. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 718
3.15.3.7 fePlaneCSys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 719
3.15.3.8 fePlaneSurfaceNormal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 720
3.15.3.9 fePlaneCurveNormal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 721
3.15.3.10 fePlaneViewAlign . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 722
3.15.3.11 fePlaneRotate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 723
3.15.4 Entity Selection Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 724
3.15.4.1 Selection Dialog Boxes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 724
3.15.4.2 feSelectOutput. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 725
3.15.4.3 feSelectOutputSets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 728
3.15.4.4 feGetElementFaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 729
3.15.4.5 feGetElementEdges. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 730
3.15.5 Other Methods. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 731
3.15.5.1 feGetReal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 731
3.15.5.2 feGetRealLength . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 732
3.15.5.3 feGetInt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 733
3.15.5.4 feAppMessageBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 734
3.15.5.5 feAppColorPalette. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 735
3.15.5.6 feAppColorCreate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 736
3.15.5.7 feAppColorGetBaseColor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 737
3.15.5.8 feAppColorGetPattern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 738
3.15.5.9 feAppColorGetLinestyle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 739
3.15.5.10 feAppColorGetRGB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 740
3.15.5.11 feScreenPctPick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 741
3.16 User Interface Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 742
3.16.1 Model Activation and Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 743
3.16.1.1 feAppGetModel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 743
3.16.1.2 feAppGetModel32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 744
3.16.1.3 feAppGetModelName . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 745
3.16.1.4 feAppSetModel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 746
3.16.1.5 feAppSetModel32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 747
3.16.1.6 feAppSetModelByName . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 748
3.16.1.7 feAppCountModels. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 749
3.16.1.8 feAppGetAllModels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 750
3.16.1.9 feAppModelContents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 751
3.16.1.10 feAppModelDefragment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 752
3.16.2 Window Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 753
3.16.2.1 feAppManageToolbars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 753
3.16.2.2 feAppManagePanes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 754
3.16.2.3 feAppUpdatePanes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 755
3.16.2.4 feAppManageStatusBar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 756
3.16.2.5 feAppManageGraphicsTabs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 757
3.16.3 View Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 758
3.16.3.1 feAppGetActiveView . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 758
3.16.3.2 feAppSetActiveView . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 759
3.16.3.3 feAppGetAllViews . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 760
3.16.4 Toolbar and Menu Customization. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 761
3.16.4.1 feGetUserCommands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 761
3.16.4.2 feAddUserCommand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 762
3.16.4.3 feDeleteUserCommand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 763
3.16.4.4 feGetToolbars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 764
3.16.4.5 feAddToolbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 765
3.16.4.6 feAddToolbarSubmenu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 766
3.16.4.7 feAddToolbarSubmenuSubmenu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 767
3.16.4.8 feDeleteToolbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 768
3.16.4.9 feResetToolbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 769
3.16.4.10 feSetToolbarVisible . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 770
3.16.4.11 feGetMenuCommands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 771
3.16.4.12 feGetMenuCommand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 772
3.16.4.13 feGetToolbarCommands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 773
3.16.4.14 feGetToolbarSubCommands. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 774
3.16.4.15 feGetToolbarCommand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 775
3.16.4.16 feAddToolbarCommand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 776
3.16.4.17 feAddToolbarSubmenuCommand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 777
3.16.4.18 feAddToolbarUserCommand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 778
3.16.4.19 feAddToolbarSubmenuUserCommand. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 779
3.16.4.20 feSetToolbarCommandVisible . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 780
3.16.4.21 feSetToolbarSeparator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 781
3.16.4.22 feSetToolbarCommandTitle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 782
3.16.4.23 feSetToolbarCommandBitmap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 783
3.16.4.24 feSaveToolbarLayout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 784
3.16.4.25 feLoadToolbarLayout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 785
3.16.5 Embedding Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 786
3.16.5.1 feAppRegisterAddIn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 786
3.16.5.2 feAppRegisterAddInPane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 787
3.16.5.3 feAppRegisterAddInPaneWithFrame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 788
3.16.5.4 feAppEmbed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 789
3.16.5.5 feAppBringToTop. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 790
3.16.5.6 feAppPosition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 791
3.16.5.7 feAppShowWindow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 792
3.16.5.8 feAppVisible . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 793
3.16.5.9 feAppRegisterMessageHandler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 794
3.16.5.10 feAppEventCallback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 795
3.16.6 Locking FEMAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 796
3.16.6.1 feAppLock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 796
3.16.6.2 feAppUnlock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 797
3.16.6.3 feAppLockExit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 798
3.16.6.4 feAppUnlockExit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 799
3.16.6.5 feAppLockModel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 800
3.16.6.6 feAppUnlockModel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 801
3.16.6.7 feAppLockDraw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 802
3.16.6.8 feAppUnlockDraw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 803
3.16.7 Status Bar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 804
3.16.7.1 feAppStatusRedraw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 804
3.16.7.2 feAppStatusShow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 805
3.16.7.3 feAppStatusUpdate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 806
3.16.8 Message Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 807
3.16.8.1 feAppMessage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 807
3.16.8.2 feAppMessageStartListing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 808
3.16.8.3 feAppMessageEndListing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 809
3.16.8.4 feAppMessageClear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 810
3.16.9 Real Number Text Formatting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 811
3.16.9.1 feFormatReal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 811
3.16.9.2 feTruncateReal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 812
3.16.10 Other Utilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 813
3.16.10.1 feLicenseExpiration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 813
3.16.10.2 feLicenseMethod. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 814
3.16.10.3 feLicenseIsAvailable. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 815
3.16.10.4 feRunCommand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 816
3.16.10.5 feAppVersion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 817
3.17 User Graphics Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 818
3.17.1 Managing User Graphics Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 819
3.17.1.1 feGFXLoad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 820
3.17.1.2 feGFXDelete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 822
3.17.2 Displaying User Graphics Data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 823
3.17.2.1 feGFXSelect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 823
3.17.2.2 feGFXEnableView . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 824
3.17.2.3 feGFXReset. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 825
3.18 File Utility Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 827
3.18.1 feFileGetName . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 828
3.18.2 feFileExecute. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 829
3.18.3 feFileProgramRun . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 830
3.18.4 feFileProgramRunning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 831
3.18.5 feFileCurrentDirectory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 832
3.19 Set Utility Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 833
3.19.1 feSetFree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 834
3.19.2 feSetFreeNotInSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 835

4. FEMAP Tool Objects


4.1 DataTable Object. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 840
4.1.1 DataTable Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 840
4.1.2 Specifying Row and Column Indexes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 840
4.1.3 DataTable Object Row Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 842
4.1.3.1 FindRow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 842
4.1.3.2 GetRowInfo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 843
4.1.3.3 GetRowVisible . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 844
4.1.3.4 SetRowVisible . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 845
4.1.4 DataTable Object Column Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 846
4.1.4.1 FindColumn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 846
4.1.4.2 GetColumnInfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 847
4.1.4.3 GetColumnVisible . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 848
4.1.4.4 SetColumnVisible . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 849
4.1.4.5 GetColumnWidth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 850
4.1.4.6 SetColumnWidth. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 851
4.1.4.7 GetColumnTitle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 852
4.1.4.8 SetColumnTitle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 853
4.1.4.9 SetColumnPosition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 854
4.1.4.10 SetColumnAlignment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 855
4.1.5 DataTable Object Data Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 856
4.1.5.1 GetColumnValue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 856
4.1.5.2 GetColumnText. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 858
4.1.5.3 GetRowValues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 859
4.1.5.4 AddColumn. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 861
4.1.5.5 UpdateColumnByID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 864
4.1.5.6 UpdateColumn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 865
4.1.5.7 AddEntityData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 866
4.1.5.8 AddOutput. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 867
4.1.5.9 AddMassProperties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 868
4.1.5.10 AddElementChecks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 869
4.1.5.11 AddNastranElementChecks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 870
4.1.5.12 AddMeshAssociativity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 871
4.1.5.13 SetTextColor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 872
4.1.5.14 SetBackgroundColor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 873
4.1.6 DataTable Object Grouping Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 874
4.1.6.1 AddGroup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 874
4.1.6.2 ClearGroup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 875
4.1.6.3 GetGroup. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 876
4.1.6.4 ShowGroup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 877
4.1.7 DataTable Object Sorting Methods. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 878
4.1.7.1 AddSort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 878
4.1.7.2 ClearSort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 879
4.1.7.3 GetSort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 880
4.1.8 DataTable Object Selection Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 881
4.1.8.1 AddSelection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 881
4.1.8.2 ClearSelection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 882
4.1.8.3 GetSelection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 883
4.1.9 DataTable Object Other Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 884
4.1.9.1 Lock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 884
4.1.9.2 Copy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 885
4.1.9.3 Save . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 886
4.1.9.4 Clear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 887
4.1.9.5 DeleteRows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 888
4.1.9.6 Show . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 889
4.1.9.7 Print . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 890
4.2 Element Quality Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 892
4.2.1 Element Quality Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 892
4.2.2 Element Quality Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 895
4.2.2.1 Clear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 895
4.2.2.2 SetModelDefaults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 896
4.2.2.3 GetModelDefaults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 897
4.2.2.4 CheckQuality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 898
4.2.2.5 CheckNastranQuality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 899
4.2.2.6 GetAspectRatio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 900
4.2.2.7 AspectRatio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 901
4.2.2.8 GetTaper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 902
4.2.2.9 Taper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 903
4.2.2.10 GetAlternateTaper. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 904
4.2.2.11 AlternateTaper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 905
4.2.2.12 GetInternalAngle. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 906
4.2.2.13 InternalAngle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 907
4.2.2.14 GetSkew . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 908
4.2.2.15 Skew . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 909
4.2.2.16 GetWarping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 910
4.2.2.17 Warping. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 911
4.2.2.18 GetNastranWarping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 912
4.2.2.19 NastranWarping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 913
4.2.2.20 GetTetCollapse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 914
4.2.2.21 TetCollapse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 915
4.2.2.22 GetJacobian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 916
4.2.2.23 Jacobian. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 917
4.2.2.24 GetCombined . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 918
4.2.2.25 Combined . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 919
4.2.2.26 GetExplicitTimeStep. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 920
4.2.2.27 ExplicitTimeStep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 921
4.2.2.28 GetNastranQuadSkew . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 922
4.2.2.29 NastranQuadSkew. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 923
4.2.2.30 GetNastranQuadTaper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 924
4.2.2.31 NastranQuadTaper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 925
4.2.2.32 GetNastranQuadWarp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 926
4.2.2.33 NastranQuadWarp. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 927
4.2.2.34 GetNastranQuadIAMin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 928
4.2.2.35 NastranQuadIAMin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 929
4.2.2.36 GetNastranQuadIAMax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 930
4.2.2.37 NastranQuadIAMax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 931
4.2.2.38 GetNastranTriaSkew . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 932
4.2.2.39 NastranTriaSkew. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 933
4.2.2.40 GetNastranTriaIAMax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 934
4.2.2.41 NastranTriaIAMax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 935
4.2.2.42 GetNastranTetraAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 936
4.2.2.43 NastranTetraAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 937
4.2.2.44 GetNastranTetraEPLR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 938
4.2.2.45 NastranTetraEPLR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 939
4.2.2.46 GetNastranTetraDetJ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 940
4.2.2.47 NastranTetraDetJ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 941
4.2.2.48 GetNastranHexAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 942
4.2.2.49 NastranHexAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 943
4.2.2.50 GetNastranHexEPLR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 944
4.2.2.51 NastranHexEPLR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 945
4.2.2.52 GetNastranHexDetJ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 946
4.2.2.53 NastranHexDetJ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 947
4.2.2.54 GetNastranHexWarp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 948
4.2.2.55 NastranHexWarp. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 949
4.2.2.56 GetNastranPenAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 950
4.2.2.57 NastranPenAR. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 951
4.2.2.58 GetNastranPenEPLR. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 952
4.2.2.59 NastranPenEPLR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 953
4.2.2.60 GetNastranPenDetJ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 954
4.2.2.61 NastranPenDetJ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 955
4.2.2.62 GetNastranPenWarp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 956
4.2.2.63 NastranPenWarp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 957
4.2.2.64 GetNastranPyrAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 958
4.2.2.65 NastranPyrAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 959
4.2.2.66 GetNastranPyrEPLR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 960
4.2.2.67 NastranPyrEPLR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 961
4.2.2.68 GetNastranPyrDetJ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 962
4.2.2.69 NastranPyrDetJ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 963
4.2.2.70 GetNastranPyrWarp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 964
4.2.2.71 NastranPyrWarp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 965
4.3 Geometry Preparation and Meshing Objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 966
4.3.1 Geometry Preparation and Meshing Object Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 966
4.3.2 Geometry Preparation and Meshing Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 973
4.3.2.1 AddSolid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 973
4.3.2.2 AddSurface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 974
4.3.2.3 Clear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 975
4.3.2.4 SetSizes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 976
4.3.2.5 HasPrevious . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 977
4.3.2.6 RemovePrevious . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 978
4.3.2.7 Prepare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 979
4.3.2.8 Size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 980
4.3.2.9 Mesh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 981
4.3.2.10 Apply. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 982
4.3.2.11 UI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 983
4.4 ReadFile Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 984
4.4.1 ReadFile Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 984
4.4.2 ReadFile Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 985
4.4.2.1 Open . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 985
4.4.2.2 Read . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 986
4.4.2.3 AtEOF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 987
4.4.2.4 Close . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 988
4.4.2.5 Position . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 989
4.4.2.6 Jump . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 990
4.4.2.7 JumpToEnd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 991
4.4.2.8 Size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 992
4.4.2.9 TimeCreated . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 993
4.4.2.10 TimeWritten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 994
4.4.2.11 TimeAccessed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 995
4.4.2.12 Skipped . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 996
4.4.2.13 ShowStatus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 997
4.4.2.14 SetNoBlankLines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 998
4.4.2.15 SetNoShortLines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 999
4.4.2.16 SetTrimSpace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1000
4.4.2.17 SetTrimEndSpace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1001
4.4.2.18 SetTrimFront . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1002
4.4.2.19 SetUppercase. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1003
4.4.2.20 SetSkip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1004
4.4.2.21 SetSearch. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1005
4.4.2.22 SetSearchString . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1006
4.4.2.23 ClearSearch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1007
4.4.2.24 SetSkipAfterSearch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1008
4.4.2.25 SetFormFeed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1009
4.4.2.26 SetTabSize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1010
4.4.2.27 LineInit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1011
4.4.2.28 Reparse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1012
4.4.2.29 FixedFormat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1013
4.4.2.30 SetFixedFormat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1014
4.4.2.31 SetFreeFormat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1015
4.4.2.32 SetAutoFormat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1016
4.4.2.33 Field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1017
4.4.2.34 IntField . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1018
4.4.2.35 RealField . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1019
4.4.2.36 BoolField. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1020
4.5 Selector Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1022
4.5.1 Selector Object Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1022
4.5.2 Selector Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1023
4.5.2.1 ClearAll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1023
4.5.2.2 Clear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1024
4.5.2.3 Count . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1025
4.5.2.4 SelectBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1026
4.5.2.5 SelectCircle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1027
4.5.2.6 SelectPolygon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1028
4.5.2.7 SelectFreehand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1029
4.5.2.8 Grow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1030
4.5.2.9 Shrink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1031
4.5.2.10 Show . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1032
4.5.2.11 SaveGroup. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1033
4.5.2.12 LoadGroup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1034
4.5.2.13 UpdateDataTable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1035
4.5.2.14 Add . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1036
4.5.2.15 AddSet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1037
4.5.2.16 GetSelected . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1038
4.5.2.17 GetSelectedID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1039
4.5.2.18 Copy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1040
4.5.2.19 Paste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1041
4.5.2.20 Tooltips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1042
4.6 Set Objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1043
4.6.1 Set Object Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1043
4.6.2 Set Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1044
4.6.2.1 Add . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1044
4.6.2.2 AddRange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1045
4.6.2.3 AddEntitiesOnLayer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1046
4.6.2.4 AddSet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1047
4.6.2.5 AddSetRule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1048
4.6.2.6 AddRule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1049
4.6.2.7 Group Selection Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1050
4.6.2.8 AddAll. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1054
4.6.2.9 AddAllExcept . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1055
4.6.2.10 AddAllInRange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1056
4.6.2.11 AddCommon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1057
4.6.2.12 AddNewRemoveCommonSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1058
4.6.2.13 AddGroup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1059
4.6.2.14 AddArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1060
4.6.2.15 AddCoordinate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1061
4.6.2.16 AddCoordinate2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1062
4.6.2.17 AddAroundPoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1063
4.6.2.18 AddAroundPoint2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1064
4.6.2.19 AddAroundVector. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1065
4.6.2.20 AddAroundVector2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1066
4.6.2.21 AddAroundPlane. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1067
4.6.2.22 AddAroundPlane2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1068
4.6.2.23 AddNodesOnGeometry. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1069
4.6.2.24 AddAllTitle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1070
4.6.2.25 AddAllColor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1071
4.6.2.26 AddMidsideNodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1072
4.6.2.27 IsAdded . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1073
4.6.2.28 IsArrayAdded . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1074
4.6.2.29 IsSetAdded . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1075
4.6.2.30 Select . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1076
4.6.2.31 SelectID. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1077
4.6.2.32 SelectIDInSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1078
4.6.2.33 SelectMultiID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1079
4.6.2.34 SelectOutputVectorID. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1080
4.6.2.35 SelectList. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1081
4.6.2.36 Clear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1082
4.6.2.37 Remove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1083
4.6.2.38 RemoveRange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1084
4.6.2.39 RemoveArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1085
4.6.2.40 RemoveSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1086
4.6.2.41 RemoveNotCommon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1087
4.6.2.42 RemoveNotCommonToGroup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1088
4.6.2.43 RemoveGroup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1089
4.6.2.44 RemoveInternalCurves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1090
4.6.2.45 HasCommon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1091
4.6.2.46 HasNotCommon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1092
4.6.2.47 Reload . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1093
4.6.2.48 Reload2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1095
4.6.2.49 Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1096
4.6.2.50 Next . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1097
4.6.2.51 NextAfter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1098
4.6.2.52 NextEmptyAfter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1099
4.6.2.53 NextID. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1100
4.6.2.54 Prev . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1101
4.6.2.55 PrevBefore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1102
4.6.2.56 PrevID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1103
4.6.2.57 First . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1104
4.6.2.58 Last . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1105
4.6.2.59 Match . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1106
4.6.2.60 Copy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1107
4.6.2.61 CopyToClipboard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1108
4.6.2.62 Count . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1109
4.6.2.63 CountCommon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1110
4.6.2.64 CountNotCommon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1111
4.6.2.65 DeleteAll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1112
4.6.2.66 GetArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1113
4.6.2.67 ConvertToAllCurves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1114
4.6.2.68 ConvertToCombinedCurves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1115
4.6.2.69 ConvertToCombinedCurvesOnly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1116
4.6.2.70 ConvertToInternalCurves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1117
4.6.2.71 ConvertToAllSurfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1118
4.6.2.72 ConvertToBoundarySurfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1119
4.6.2.73 ConvertToBoundarySurfacesOnly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1120
4.6.2.74 ConvertToInternalSurfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1121
4.6.2.75 EmptyBlock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1122
4.6.2.76 Debug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1123
4.6.2.77 AddAllSavedSetIDs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1124
4.6.2.78 Show . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1125
4.7 Sort Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1127
4.7.1 Sort Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1127
4.7.2 Sort Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1128
4.7.2.1 Add . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1128
4.7.2.2 AddReal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1129
4.7.2.3 AddInt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1130
4.7.2.4 AddAll. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1131
4.7.2.5 SetData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1132
4.7.2.6 SetReal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1133
4.7.2.7 SetInt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1134
4.7.2.8 SetDataType . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1135
4.7.2.9 GetData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1136
4.7.2.10 GetReal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1137
4.7.2.11 GetInt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1138
4.7.2.12 GetDataType . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1139
4.7.2.13 Find . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1140
4.7.2.14 Remove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1141
4.7.2.15 RemoveSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1142
4.7.2.16 IsAdded . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1143
4.7.2.17 Clear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1144
4.7.2.18 Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1145
4.7.2.19 Next . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1146
4.7.2.20 Prev . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1147
4.7.2.21 Current . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1148
4.7.2.22 First . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1149
4.7.2.23 Last . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1150
4.7.2.24 Count . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1151
4.7.2.25 Select . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1152
4.7.2.26 SelectID. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1153
4.7.2.27 SelectList. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1154
4.7.2.28 Sort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1155
4.7.2.29 SortRemoveDuplicates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1156
4.7.2.30 ConvertToBoundarySurfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1157
4.7.2.31 AddAroundPoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1158
4.7.2.32 AddAroundVector. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1159
4.7.2.33 AddAroundPlane. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1160
4.8 UserData Objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1161
4.8.1 UserData Object Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1161
4.8.2 UserData Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1162
4.8.2.1 Get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1162
4.8.2.2 GetTitle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1163
4.8.2.3 Put . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1164
4.8.2.4 PutTitle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1165
4.8.2.5 Clear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1166
4.8.2.6 Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1167
4.8.2.7 Next . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1168
4.8.2.8 Prev . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1169
4.8.2.9 First . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1170
4.8.2.10 Last . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1171
4.8.2.11 NextSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1172
4.8.2.12 PrevSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1173
4.8.2.13 NextEmptySet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1174
4.8.2.14 PrevEmptySet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1175
4.8.2.15 Exist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1176
4.8.2.16 Deletable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1177
4.8.2.17 Delete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1178
4.8.2.18 DeleteTitle. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1179
4.8.2.19 Position . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1180
4.8.2.20 Jump . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1181
4.8.2.21 AtEOF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1182
4.8.2.22 Truncate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1183
4.8.2.23 WriteDouble . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1184
4.8.2.24 WriteFloat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1185
4.8.2.25 WriteLong . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1186
4.8.2.26 WriteShort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1187
4.8.2.27 WriteBool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1188
4.8.2.28 WriteDoubleArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1189
4.8.2.29 WriteLongArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1190
4.8.2.30 WriteBoolArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1191
4.8.2.31 WriteString . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1192
4.8.2.32 ReadDouble. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1193
4.8.2.33 ReadFloat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1194
4.8.2.34 ReadLong . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1195
4.8.2.35 ReadShort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1196
4.8.2.36 ReadBool. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1197
4.8.2.37 ReadDoubleArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1198
4.8.2.38 ReadLongArray. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1199
4.8.2.39 ReadBoolArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1200
4.8.2.40 ReadString. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1201
4.9 Results Browsing Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1202
4.9.1 Results Browsing Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1202
4.9.2 Limitations and Usage of Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1202
4.9.3 Results Browsing General Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1204
4.9.3.1 Clear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1204
4.9.3.2 GetModel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1205
4.9.3.3 SetModel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1206
4.9.4 Results Browsing Set Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1207
4.9.4.1 NumberOfSets. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1207
4.9.4.2 NextSetReset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1208
4.9.4.3 NextSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1209
4.9.4.4 SetExists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1210
4.9.4.5 SetInfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1211
4.9.4.6 SetTitle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1212
4.9.4.7 SetNotes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1213
4.9.4.8 SetLocation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1214
4.9.4.9 SetHasVectorsInDB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1215
4.9.4.10 Sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1216
4.9.5 Results Browsing Vector Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1217
4.9.5.1 NextVectorReset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1217
4.9.5.2 NextVector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1218
4.9.5.3 VectorExists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1219
4.9.5.4 VectorInfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1220
4.9.5.5 VectorTitle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1221
4.9.5.6 VectorComponents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1222
4.9.5.7 VectorLocation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1223
4.9.5.8 VectorEntities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1224
4.9.5.9 Vectors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1225
4.9.6 Results Browsing Entity Value Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1226
4.9.6.1 EntityValue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1226
4.9.7 Results Browsing Bulk Data Review Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1227
4.9.7.1 AddColumn. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1227
4.9.7.2 AddEmptyColumns. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1228
4.9.7.3 AddConversionColumn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1229
4.9.7.4 AddEnvelopeColumn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1230
4.9.7.5 DataNeeded . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1233
4.9.7.6 SetTri3Orientation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1234
4.9.7.7 SetTri6Orientation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1235
4.9.7.8 SetQuad4Orientation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1236
4.9.7.9 SetQuad8Orientation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1237
4.9.7.10 SetSolidOrientation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1238
4.9.7.11 SetEngrShearStrain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1239
4.9.7.12 SetNodalTransform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1240
4.9.7.13 SetPlateTransform. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1241
4.9.7.14 SetSolidTransform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1242
4.9.7.15 SetColumnGlobalPly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1243
4.9.7.16 SetComplexOptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1244
4.9.7.17 Populate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1245
4.9.7.18 IsPopulated . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1246
4.9.7.19 DataLocation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1247
4.9.7.20 NumberOfRows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1248
4.9.7.21 NumberOfColumns. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1249
4.9.7.22 FindColumn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1250
4.9.7.23 GetColumnTitle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1251
4.9.7.24 IsApiColumn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1252
4.9.7.25 GetColumnVector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1253
4.9.7.26 GetColumn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1254
4.9.7.27 GetColumns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1255
4.9.7.28 GetColumnMinMax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1256
4.9.7.29 GetColumnSum. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1257
4.9.7.30 Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1258
4.9.7.31 Next . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1259
4.9.7.32 GetValue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1261
4.9.7.33 GetInRow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1262
4.9.7.34 GetMultipleInRow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1263
4.9.7.35 GetRow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1264
4.9.7.36 GetRowByID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1265
4.9.7.37 GetRows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1266
4.9.7.38 GetRowsByID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1267
4.9.7.39 GetRowsAndColumns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1268
4.9.7.40 GetRowsAndColumnsByID. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1269
4.9.7.41 SetValue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1270
4.9.7.42 SetInRow. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1271
4.9.7.43 SetMultipleInRow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1272
4.10 MapData Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1273
4.10.1 MapData Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1274
4.10.1.1 Clear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1274
4.10.1.2 Initialize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1275
4.10.1.3 Count . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1276
4.10.1.4 GetIDs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1277
4.10.1.5 Remove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1278
4.10.1.6 RemoveAll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1279
4.10.1.7 DefineReal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1280
4.10.1.8 DefineInt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1281
4.10.1.9 DefineBool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1282
4.10.1.10 DefineString . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1283
4.10.1.11 DefineVariant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1284
4.10.1.12 SetReal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1286
4.10.1.13 SetInt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1287
4.10.1.14 SetBool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1288
4.10.1.15 SetString . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1289
4.10.1.16 SetVariant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1290
4.10.1.17 GetReal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1291
4.10.1.18 GetInt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1292
4.10.1.19 GetBool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1293
4.10.1.20 GetString . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1294
4.10.1.21 GetVariant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1295
4.11 Entity Tracking Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1297
4.11.1 TrackData Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1298
4.11.1.1 Clear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1298
4.11.1.2 Start . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1299
4.11.1.3 StartGeometry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1300
4.11.1.4 StartMesh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1301
4.11.1.5 Stop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1302
4.11.1.6 StopAll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1303
4.11.1.7 Created . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1304
4.11.1.8 Deleted . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1305
4.12 Beam Calculator Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1307
4.12.1 Beam Calculator Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1307
4.12.2 Beam Calculator Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1309
4.12.2.1 GetElementProperties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1309
4.12.2.2 GetMeshInfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1310
4.12.2.3 CalculateStress . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1311
4.12.2.4 CalculateStressFromForces. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1314
4.12.2.5 FindMaxMinStress . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1317

5. FEMAP Entity Objects


5.1 Common Entity Properties and Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1324
5.1.1 Common Entity Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1324
5.1.2 Common Entity Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1325
5.1.2.1 Get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1325
5.1.2.2 GetLibrary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1326
5.1.2.3 Put . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1327
5.1.2.4 PutLibrary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1328
5.1.2.5 GetTitleList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1329
5.1.2.6 GetTitleIDList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1330
5.1.2.7 ParseTitleID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1332
5.1.2.8 Exist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1334
5.1.2.9 Deletable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1335
5.1.2.10 Delete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1336
5.1.2.11 DeleteLibrary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1337
5.1.2.12 Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1338
5.1.2.13 Next . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1339
5.1.2.14 NextInSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1340
5.1.2.15 Prev . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1341
5.1.2.16 First . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342
5.1.2.17 FirstInSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1343
5.1.2.18 Last . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1344
5.1.2.19 NextSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1345
5.1.2.20 PrevSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1346
5.1.2.21 NextEmptySet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1347
5.1.2.22 PrevEmptySet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1348
5.1.2.23 NextID. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1349
5.1.2.24 PrevID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1350
5.1.2.25 NextEmptyID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1351
5.1.2.26 PrevEmptyID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1352
5.1.2.27 SelectID. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1353
5.1.2.28 CountSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1354
5.2 Aero Panel/Body Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1356
5.2.1 Aero Panel/Body Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1356
5.2.2 Aero Panel/Body Object Methods. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1357
5.2.2.1 GetDivisionList. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1357
5.2.2.2 PutDivisionList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1358
5.2.2.3 SlenderBodyCount . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1359
5.2.2.4 InterferenceBodyCount . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1360
5.2.2.5 PanelSpanCount . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1361
5.2.2.6 PanelChordCount . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1362
5.2.2.7 GetBoxSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1363
5.2.2.8 AeroChordXYZ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1364
5.2.2.9 AeroSpanXYZ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1365
5.3 Aero Property Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1366
5.3.1 Aero Property Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1366
5.3.2 Aero Property Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1367
5.3.2.1 GetThetaList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1367
5.3.2.2 PutThetaList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1368
5.3.2.3 GetRadiList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1369
5.3.2.4 PutRadiList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1370
5.3.2.5 ClearSbList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1371
5.3.2.6 ClearIbList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1372
5.3.2.7 ClearTheta1List. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1373
5.3.2.8 ClearTheta2List. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1374
5.4 Aero Spline Objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1376
5.4.1 Aero Spline Object Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1376
5.4.2 Aero Spline Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1377
5.4.2.1 GetNodeSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1377
5.4.2.2 GetBoxSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1378
5.5 Aero Surface Objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1380
5.5.1 Aero Surface Object Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1380
5.5.2 Aero Surface Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1381
5.5.2.1 PutSurfaceSet1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1381
5.5.2.2 PutSurfaceSet2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1382
5.5.2.3 GetSurfaceSet1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1383
5.5.2.4 GetSurfaceSet2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1384
5.5.2.5 ClearSurfaceSet1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1385
5.5.2.6 ClearSurfaceSet2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1386
5.6 AnalysisCase Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1387
5.6.1 AnalysisCase Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1387
5.6.2 AnalysisCase Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1395
5.6.2.1 InitAnalysisCase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1395
5.6.2.2 DeleteAnalysisCase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1396
5.6.2.3 GetContactTable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1397
5.6.2.4 PutContactTable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1398
5.6.2.5 GetStandardTrim. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1399
5.6.2.6 PutStandardTrim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1400
5.6.2.7 GetTrimControlSurf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1401
5.6.2.8 PutTrimControlSurf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1402
5.7 AnalysisMgr Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1403
5.7.1 AnalysisMgr Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1403
5.7.2 AnalysisMgr Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1432
5.7.2.1 InitAnalysisMgr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1432
5.7.2.2 GetText . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1433
5.7.2.3 PutText . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1434
5.7.2.4 GetCorrelate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1435
5.7.2.5 GetCorrelate2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1436
5.7.2.6 PutCorrelate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1437
5.7.2.7 PutCorrelate2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1438
5.7.2.8 GetContactTable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1439
5.7.2.9 PutContactTable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1440
5.7.2.10 Case . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1441
5.7.2.11 Analyze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1442
5.7.2.12 AnalyzeMultiple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1443
5.7.2.13 ClearAnalysisQueue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1444
5.7.2.14 Preview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1445
5.8 AnalysisStudy Objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1447
5.8.1 AnalysisStudy Object Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1447
5.8.2 AnalysisStudy Object Methods. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1448
5.8.2.1 CountOutputSets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1448
5.8.2.2 OutputSets. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1449
5.8.2.3 HasOutputSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1450
5.8.2.4 AddOutputSets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1451
5.8.2.5 RemoveOutputSets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1452
5.8.2.6 RemoveAllOutputSets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1453
5.8.2.7 Delete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1454
5.9 BCDefinition Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1456
5.9.1 BCDefinition Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1456
5.9.2 BCDefinition Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1457
5.9.2.1 PutAll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1457
5.9.2.2 ResetNextBC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1458
5.9.2.3 NextBC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1459
5.10 BCEqn Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1460
5.10.1 BCEqn Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1460
5.10.2 BCEqn Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1460
5.11 BCGeom Objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1461
5.11.1 BCGeom Object Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1461
5.11.2 BCGeom Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1463
5.11.2.1 GetSearch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1463
5.11.2.2 SetSurfSliding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1464
5.11.2.3 SetSurfNormal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1465
5.11.2.4 SetSurfDirection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1466
5.11.2.5 SetCylinder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1467
5.12 BCNode Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1468
5.12.1 BCNode Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1468
5.12.2 BCNode Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1469
5.12.2.1 Add . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1469
5.12.2.2 AddArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1470
5.13 BCSet Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1471
5.13.1 BCSet Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1471
5.13.2 BCSet Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1472
5.13.2.1 Expand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1472
5.13.2.2 Compress. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1473
5.13.2.3 ResetNextBC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1474
5.13.2.4 NextBC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1475
5.13.2.5 ResetNextBCDef. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1476
5.13.2.6 NextBCDef . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1477
5.13.2.7 GetCombination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1478
5.13.2.8 PutCombination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1479
5.14 Chart Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1480
5.14.1 Chart Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1480
5.14.2 Chart Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1485
5.14.2.1 AddDataSeries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1485
5.14.2.2 RemoveDataSeries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1486
5.14.2.3 GetDataSeries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1487
5.14.2.4 ShowPane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1488
5.15 Chart Data Series Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1490
5.15.1 Chart Data Series Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1490
5.15.2 Chart Data Series Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1492
5.15.2.1 GetXY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1492
5.15.2.2 CopyToClipboard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1493
5.16 Connection Property Objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1495
5.16.1 Connection Property Object Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1495
5.16.2 Accessing Connection Property Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1495
5.16.2.1 Connection Property Array Index Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1497
5.16.3 Connection Property Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1505
5.16.3.1 SetDefaults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1506
5.17 Connection Region Objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1507
5.17.1 Connection Region Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1507
5.17.2 Connection Region Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1509
5.17.2.1 GetContactList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1509
5.17.2.2 PutContactList. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1510
5.17.2.3 GetEntities. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1511
5.17.2.4 AddContact . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1512
5.17.2.5 SetOutputType . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1513
5.17.2.6 SetOffset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1514
5.17.2.7 GetOffset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1515
5.17.2.8 SetRigidType . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1516
5.17.2.9 IsRigidType. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1517
5.17.2.10 Expand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1518
5.17.2.11 Compress. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1519
5.17.2.12 Clear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1520
5.17.2.13 Reverse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1521
5.17.2.14 Enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1522
5.17.2.15 IsEnabled. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1523
5.17.2.16 BoundingBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1524
5.17.2.17 IsEmpty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1525
5.18 Connection Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1527
5.18.1 Connection Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1527
5.18.2 Connection Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1528
5.18.2.1 Prop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1528
5.18.2.2 Enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1529
5.18.2.3 IsEnabled. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1530
5.18.2.4 BoundingBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1531
5.19 CSys Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1532
5.19.1 CSys Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1532
5.19.2 CSys Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1533
5.19.2.1 XYPoints. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1533
5.20 Curve Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1534
5.20.1 Curve Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1534
5.20.1.1 The Curve Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1537
5.20.2 Curve Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1538
5.20.2.1 Reverse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1538
5.20.2.2 EndPoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1539
5.20.2.3 PointsAsSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1540
5.20.2.4 ArcCircleInfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1541
5.20.2.5 ParamToXYZ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1542
5.20.2.6 XYZToParam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1543
5.20.2.7 Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1544
5.20.2.8 ProjectToClosest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1545
5.20.2.9 ProjectAlongVector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1546
5.20.2.10 Tangent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1547
5.20.2.11 Length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1548
5.20.2.12 PartialLength . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1549
5.20.2.13 ParamAtLength . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1550
5.20.2.14 MeshParam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1551
5.20.2.15 AddMeshLoc. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1553
5.20.2.16 AddMeshLocXYZ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1554
5.20.2.17 Nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1555
5.20.2.18 NodesAsSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1557
5.20.2.19 Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1558
5.20.2.20 ElementsAsSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1559
5.20.2.21 ElementsWithFaces. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1560
5.20.2.22 BoundingBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1561
5.20.2.23 GetMeshLoc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1562
5.20.2.24 GetMeshLocXYZ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1563
5.20.2.25 IsSmoothEdge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1564
5.20.2.26 Surfaces. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1565
5.20.2.27 SurfacesAsSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1566
5.20.2.28 Normal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1567
5.20.2.29 IsCombinedCurve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1568
5.20.2.30 GetCombinedCurves. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1569
5.20.2.31 CombinedCurvesAsSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1570
5.20.2.32 CombineCurves. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1571
5.20.2.33 Facets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1572
5.20.2.34 PartialLengthXYZ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1573
5.20.2.35 PartialLengthNode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1574
5.20.2.36 IsStraight . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1575
5.20.2.37 IsArc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1576
5.20.2.38 IsNonManifold . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1577
5.20.2.39 IsGeneral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1578
5.20.2.40 IsSmooth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1579
5.20.2.41 TangentAtEnds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1580
5.20.2.42 CurvatureAcrossEdge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1581
5.20.2.43 ClosestPointToCurve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1582
5.20.2.44 ClosestPointToSurface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1583
5.20.2.45 MinRadius . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1584
5.20.2.46 ParamOnCombinedCurve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1585
5.20.2.47 IsSuppressed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1586
5.20.2.48 ClearMeshLoc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1587
5.20.2.49 HasMeshSize. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1588
5.20.2.50 SetSimpleMeshLoc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1589
5.20.2.51 MeshCount . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1590
5.20.2.52 CommonPoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1591
5.20.2.53 Solid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1592
5.20.2.54 Midpoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1593
5.20.2.55 Center . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1594
5.20.2.56 GetPrecision . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1595
5.20.2.57 ResetPrecision . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1596
5.21 Data Surface Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1597
5.21.1 Data Surface Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1597
5.21.2 Data Surface Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1598
5.21.2.1 GetDataSurf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1598
5.21.2.2 PutDataSurf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1599
5.21.2.3 VarAlongCoord. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1600
5.21.2.4 VarBetween2Pts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1601
5.21.2.5 VarBetween4Pts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1603
5.21.2.6 VarBetween8Pts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1604
5.21.2.7 VarParametric2Pt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1605
5.21.2.8 VarParametric4Pt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1606
5.21.2.9 VarOutputMap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1607
5.21.2.10 VarMeshSurface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1608
5.21.2.11 VarSpatialUVtable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1609
5.21.2.12 VarSpatialXYZTable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1610
5.21.2.13 VarArbitrary3DCoord . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1611
5.21.2.14 VarEquation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1612
5.21.2.15 GetCellValue. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1613
5.21.2.16 SetCellValue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1614
5.21.2.17 SetCellEquation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1615
5.21.2.18 GetColumnTitle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1616
5.21.2.19 GetColumnValue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1617
5.21.2.20 GetRowTitle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1618
5.21.2.21 SetRowTitle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1619
5.21.2.22 GetRowValue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1620
5.21.2.23 SetRowValue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1621
5.21.2.24 GetPageTitle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1622
5.21.2.25 SetPageTitle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1623
5.21.2.26 GetPageValue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1624
5.21.2.27 SetPageValue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1625
5.21.2.28 SetColumTitle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1626
5.21.2.29 SetColumValue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1627
5.21.2.30 SetCellBlank . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1628
5.21.2.31 GetDataSurfInfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1629
5.21.2.32 GetPageInfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1630
5.21.2.33 Resize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1631
5.21.2.34 Evaluate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1632
5.21.2.35 GetData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1633
5.21.2.36 GetDataSurfType . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1636
5.22 Element Objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1637
5.22.1 Element Object Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1637
5.22.1.1 Accessing Element Nodes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1640
5.22.2 Element Object Methods. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1641
5.22.2.1 GetAllArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1641
5.22.2.2 GetAllArray2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1644
5.22.2.3 PutAllArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1646
5.22.2.4 GetNodeList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1648
5.22.2.5 PutNodeList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1649
5.22.2.6 ClearNodeList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1650
5.22.2.7 Prop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1651
5.22.2.8 Matl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1652
5.22.2.9 GetCentroid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1653
5.22.2.10 GetFaceCentroid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1654
5.22.2.11 GetFaceNormal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1655
5.22.2.12 GetFaceArea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1656
5.22.2.13 GetFaceNodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1657
5.22.2.14 GetEdgeNodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1658
5.22.2.15 IsParabolic. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1659
5.22.2.16 Thickness . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1660
5.22.2.17 Length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1661
5.22.2.18 Area. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1662
5.22.2.19 Inertia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1663
5.22.2.20 GetMinMaxEdgeLength . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1664
5.22.2.21 SetPlateThickness . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1665
5.23 Freebody Objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1667
5.23.1 Freebody Object Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1667
5.23.2 Freebody Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1671
5.23.2.1 GetElements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1671
5.23.2.2 SetElements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1672
5.23.2.3 ClearElements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1673
5.23.2.4 GetNodes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1674
5.23.2.5 SetNodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1675
5.23.2.6 ClearNodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1676
5.23.2.7 CalculateNodalCenter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1677
5.23.2.8 CalculateSummation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1678
5.23.2.9 CalculateSummation2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1679
5.23.2.10 GetNodalSums . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1680
5.23.2.11 GetSumAtNode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1681
5.23.2.12 GetSectionCutSums . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1682
5.23.2.13 SetLocationFromCoord. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1683
5.24 Function Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1684
5.24.1 Function Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1684
5.24.2 Function Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1684
5.24.2.1 GetFunctionList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1685
5.24.2.2 PutFunctionList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1686
5.24.2.3 GetValue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1687
5.25 GFXArrow Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1688
5.25.1 GFXArrow Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1688
5.25.2 GFXArrow Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1689
5.25.2.1 PutAll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1689
5.25.2.2 PutAllArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1690
5.25.2.3 PutCoordArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1691
5.25.2.4 DeleteAll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1692
5.26 GFXLine Objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1694
5.26.1 GFXLine Object Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1694
5.26.2 GFXLine Object Methods. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1695
5.26.2.1 PutAll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1695
5.26.2.2 PutAllArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1696
5.26.2.3 PutCoordArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1697
5.26.2.4 DeleteAll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1698
5.27 GFXPoint Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1700
5.27.1 GFXPoint Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1700
5.27.2 GFXPoint Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1701
5.27.2.1 PutAll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1701
5.27.2.2 PutAllArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1702
5.27.2.3 PutCoordArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1703
5.27.2.4 DeleteAll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1704
5.28 GFXQuad4 Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1706
5.28.1 GFXQuad4 Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1706
5.28.2 GFXQuad4 Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1707
5.28.2.1 PutAll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1707
5.28.2.2 PutAllArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1708
5.28.2.3 PutCoordNormalArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1709
5.28.2.4 PutCoordArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1710
5.28.2.5 DeleteAll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1711
5.29 GFXTria3 Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1712
5.29.1 GFXTria3 Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1712
5.29.2 GFXTria3 Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1713
5.29.2.1 PutAll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1713
5.29.2.2 PutAllArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1714
5.29.2.3 PutCoordNormalArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1715
5.29.2.4 PutCoordArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1716
5.29.2.5 DeleteAll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1717
5.30 GlobalPly Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1718
5.30.1 GlobalPly Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1718
5.30.2 GlobalPly Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1718
5.31 Group Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1719
5.31.1 Group Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1719
5.31.1.1 Group Range Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1721
5.31.1.2 Group List Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1723
5.31.2 Group Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1724
5.31.2.1 List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1724
5.31.2.2 GetList. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1726
5.31.2.3 HasList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1727
5.31.2.4 CountList. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1728
5.31.2.5 Range . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1729
5.31.2.6 RangeReset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1731
5.31.2.7 RangeGetAll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1732
5.31.2.8 RangeNext. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1733
5.31.2.9 RangeAdd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1734
5.31.2.10 RangeDelete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1735
5.31.2.11 RangeDeleteAll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1736
5.31.2.12 SetAdd. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1737
5.31.2.13 SetAdd2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1738
5.31.2.14 SetAddOpt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1739
5.31.2.15 SetAddOpt2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1740
5.31.2.16 Add . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1741
5.31.2.17 Add2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1742
5.31.2.18 AddRelated . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1743
5.31.2.19 SelectModel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1744
5.31.2.20 SelectMesh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1745
5.31.2.21 SelectContact . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1746
5.31.2.22 SelectAllOnLayer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1747
5.31.2.23 ReferencedGroups. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1748
5.32 Layer Objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1749
5.32.1 Layer Object Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1749
5.32.2 Layer Object Methods. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1749
5.33 Layup Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1750
5.33.1 Layup Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1750
5.33.2 Layup Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1752
5.33.2.1 AddPly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1752
5.33.2.2 InsertPly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1753
5.33.2.3 SetPly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1754
5.33.2.4 SetAllPly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1755
5.33.2.5 GetPly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1756
5.33.2.6 GetAllPly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1757
5.33.2.7 DeletePly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1758
5.33.2.8 Clear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1759
5.33.2.9 Compute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1760
5.33.2.10 Compute2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1761
5.33.2.11 HasGlobalPly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1762
5.33.2.12 HasMaterial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1763
5.33.2.13 HasFullGlobalPly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1764
5.34 LoadBolt Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1766
5.34.1 LoadBolt Object Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1766
5.34.2 LoadBolt Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1766
5.34.2.1 AddArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1767
5.35 LoadDefinition Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1768
5.35.1 LoadDefinition Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1768
5.35.2 LoadDefinition Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1769
5.35.2.1 PutAll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1769
5.35.2.2 ResetNextLoad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1770
5.35.2.3 NextLoad. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1771
5.35.2.4 CountLoads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1772
5.35.2.5 IsTotalLoad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1773
5.36 LoadETemp Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1774
5.36.1 LoadETemp Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1774
5.36.2 LoadETemp Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1775
5.36.2.1 AddArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1775
5.37 LoadGeom Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1776
5.37.1 LoadGeom Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1776
5.37.2 LoadGeom Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1780
5.37.2.1 GetSearch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1780
5.37.3 LoadGeom Load Types. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1781
5.38 LoadMesh Objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1783
5.38.1 LoadMesh Object Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1783
5.38.2 LoadMesh Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1787
5.38.2.1 GetSearch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1787
5.38.2.2 Add . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1788
5.38.2.3 AddArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1789
5.38.3 LoadMesh Load Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1791
5.39 LoadNTemp Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1792
5.39.1 LoadNTemp Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1792
5.39.2 LoadNTemp Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1793
5.39.2.1 AddArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1793
5.40 LoadSet Objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1794
5.40.1 LoadSet Object Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1794
5.40.2 LoadSet Object Methods. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1799
5.40.2.1 Expand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1799
5.40.2.2 Compress. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1800
5.40.2.3 ResetNextLoad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1801
5.40.2.4 NextLoad. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1802
5.40.2.5 ResetNextLoadDef . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1803
5.40.2.6 NextLoadDef. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1804
5.40.2.7 GetCombination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1805
5.40.2.8 PutCombination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1806
5.41 MapOutput Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1808
5.41.1 MapObject Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1808
5.41.2 MapOutput Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1809
5.41.2.1 MapFromModelToSet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1809
5.41.2.2 MapFromModelToSet2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1812
5.41.2.3 MapFromModelToLocation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1815
5.42 Material Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1817
5.42.1 Material Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1817
5.42.1.1 Accessing Material Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1819
5.42.1.2 Material Array Index Values. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1819
5.42.2 Material Object Methods. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1825
5.42.2.1 AutoComplete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1825
5.42.2.2 AreDuplicate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1826
5.43 Node Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1827
5.43.1 Node Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1827
5.43.2 Node Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1828
5.43.2.1 GetAll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1828
5.43.2.2 GetAllArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1829
5.43.2.3 GetAllArray2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1830
5.43.2.4 GetCoordArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1831
5.43.2.5 GetCoordArray2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1832
5.43.2.6 PutAll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1833
5.43.2.7 PutAllArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1834
5.43.2.8 PutCoordArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1835
5.43.2.9 GetClosest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1836
5.43.2.10 IsMidsideNode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1837
5.44 Optim Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1838
5.44.1 Optim Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1838
5.44.2 Optim Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1839
5.45 Output Objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1840
5.45.1 Output Object Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1840
5.45.1.1 Output Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1842
5.45.1.2 Output Vector IDs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1843
5.45.2 Output Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1844
5.45.2.1 GetFromSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1844
5.45.2.2 GetOutputList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1845
5.45.2.3 GetOutputListAtID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1846
5.45.2.4 GetOutputListAtSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1847
5.45.2.5 GetModel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1848
5.45.2.6 SetModel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1849
5.45.2.7 SetComplexOptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1850
5.45.2.8 Clear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1851
5.45.2.9 PutOutputList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1852
5.45.2.10 InitScalarAtNode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1853
5.45.2.11 GetScalarAtNode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1854
5.45.2.12 GetScalarAtNodeSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1855
5.45.2.13 PutScalarAtNode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1856
5.45.2.14 InitVectorAtNode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1857
5.45.2.15 GetVectorAtSingleNode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1858
5.45.2.16 GetVectorAtNode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1859
5.45.2.17 GetVectorAtNodeSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1860
5.45.2.18 PutVectorAtNode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1861
5.45.2.19 InitScalarAtElem. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1862
5.45.2.20 GetScalarAtElem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1863
5.45.2.21 GetScalarAtElemSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1864
5.45.2.22 PutScalarAtElem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1865
5.45.2.23 InitElemWithCorner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1866
5.45.2.24 GetElemWithCorner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1868
5.45.2.25 GetElemWithCornerSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1870
5.45.2.26 PutElemWithCorner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1872
5.45.2.27 InitScalarAtBeam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1874
5.45.2.28 PutScalarAtBeam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1875
5.45.2.29 FindMaxMin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1876
5.46 OutputSet Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1877
5.46.1 OutputSet Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1877
5.46.2 OutputSet Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1879
5.46.2.1 Vector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1879
5.46.2.2 OutputVectors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1880
5.46.2.3 SetComplexOptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1881
5.46.2.4 SetCombination. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1882
5.46.2.5 SetStudyCombination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1883
5.46.2.6 ExpandCombination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1884
5.47 Point Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1885
5.47.1 Point Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1885
5.47.2 Point Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1886
5.47.2.1 Nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1886
5.47.2.2 NodesAsSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1888
5.47.2.3 Curves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1889
5.47.2.4 CurvesAsSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1890
5.47.2.5 SurfacesAsSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1891
5.47.2.6 Solid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1892
5.47.2.7 GetClosest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1893
5.48 Property Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1894
5.48.1 Property Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1894
5.48.2 Accessing Property Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1896
5.48.2.1 Property Array Index Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1897
5.48.3 Property Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1908
5.48.3.1 ComputeShape . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1909
5.48.3.2 ComputeStdShape. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1911
5.48.3.3 ComputeGeneralShape . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1913
5.48.3.4 Matl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1914
5.48.3.5 Layup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1915
5.48.3.6 Thickness . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1916
5.48.3.7 Area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1917
5.48.3.8 Inertia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1918
5.48.3.9 AreDuplicate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1919
5.49 Report Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1920
5.49.1 Report Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1920
5.49.2 Report Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1920
5.50 Superelement Reference Objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1922
5.50.1 Superelement Reference Object Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1922
5.51 Solid Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1923
5.51.1 Solid Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1923
5.51.2 Solid Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1924
5.51.2.1 Points. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1924
5.51.2.2 PointsAsSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1925
5.51.2.3 Curves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1926
5.51.2.4 CurvesAsSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1927
5.51.2.5 FreeCurvesAsSet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1928
5.51.2.6 Surfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1929
5.51.2.7 SurfacesAsSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1930
5.51.2.8 SheetFacesAsSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1931
5.51.2.9 WireCurvesAsSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1932
5.51.2.10 MassProp. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1933
5.51.2.11 Export . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1934
5.51.2.12 IsSolid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1935
5.51.2.13 IsSheet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1936
5.51.2.14 IsWire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1937
5.51.2.15 IsGeneral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1938
5.51.2.16 Inside . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1939
5.51.2.17 Facets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1940
5.51.2.18 Nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1941
5.51.2.19 NodesAsSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1943
5.51.2.20 Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1944
5.51.2.21 ElementsAsSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1945
5.51.2.22 BoundingBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1946
5.52 Surface Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1947
5.52.1 Surface Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1947
5.52.2 Surface Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1951
5.52.2.1 Inside. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1951
5.52.2.2 InsideXYZ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1952
5.52.2.3 ParamToXYZ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1953
5.52.2.4 XYZToParam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1954
5.52.2.5 CG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1955
5.52.2.6 Area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1956
5.52.2.7 ApproximateArea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1957
5.52.2.8 Tangents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1958
5.52.2.9 Normal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1959
5.52.2.10 NormalAtXYZ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1960
5.52.2.11 ProjectOnto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1961
5.52.2.12 ProjectToClosest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1962
5.52.2.13 ProjectAlongVector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1963
5.52.2.14 Solid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1964
5.52.2.15 BoundarySurfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1965
5.52.2.16 BoundarySurfacesAsSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1966
5.52.2.17 AdjacentSurfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1967
5.52.2.18 AdjacentSurfacesAsSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1968
5.52.2.19 Curves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1969
5.52.2.20 CurveLoops. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1970
5.52.2.21 CurvesAsSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1971
5.52.2.22 Points. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1972
5.52.2.23 PointsAsSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1973
5.52.2.24 EndPoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1974
5.52.2.25 EndPointsAsSet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1975
5.52.2.26 Planar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1976
5.52.2.27 Cylindrical. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1977
5.52.2.28 Spherical . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1978
5.52.2.29 Conical . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1979
5.52.2.30 Toroidal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1980
5.52.2.31 IsPlane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1981
5.52.2.32 IsCylinder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1982
5.52.2.33 IsSphere. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1983
5.52.2.34 IsCone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1984
5.52.2.35 IsTorus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1985
5.52.2.36 IsBlend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1986
5.52.2.37 IsBoundingSolidRegion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1987
5.52.2.38 Facets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1988
5.52.2.39 Nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1989
5.52.2.40 NodesAsSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1991
5.52.2.41 Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1992
5.52.2.42 ElementsAsSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1993
5.52.2.43 ElementsWithFaces. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1994
5.52.2.44 ElementFaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1995
5.52.2.45 BoundingBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1996
5.52.2.46 BoundingSize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1997
5.52.2.47 NormalBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1998
5.52.2.48 MaxNormalDeviation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1999
5.52.2.49 AngleAtPoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2000
5.52.2.50 HasPole . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2001
5.52.2.51 MinRadiiOfCurvature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2002
5.52.2.52 RationalParamToXYZ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2003
5.52.2.53 ResetMeshAttr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2004
5.52.2.54 Mesh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2005
5.52.2.55 CurvesAtPoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2007
5.52.2.56 CommonCurvesAsSet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2008
5.52.2.57 FindMappedMeshingCorners . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2009
5.52.2.58 IsSuppressed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2010
5.52.2.59 Curvature. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2011
5.52.2.60 IsMappedApproach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2012
5.52.2.61 IsMappable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2013
5.52.2.62 AddMeshPoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2014
5.52.2.63 CountMeshPoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2015
5.52.2.64 IsMultiLoop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2016
5.52.2.65 PointLoops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2017
5.53 Text Objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2018
5.53.1 Text Object Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2018
5.53.2 Text Object Methods. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2020
5.54 TMGBC Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2021
5.54.1 TMGBC Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2021
5.54.2 TMGBC Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2022
5.54.2.1 GetAll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2022
5.54.2.2 PutAll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2023
5.55 TMGCtrl Objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2024
5.55.1 TMGCtrl Object Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2024
5.55.2 TMGCtrl Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2025
5.55.2.1 GetAll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2025
5.55.2.2 PutAll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2026
5.56 TMGInt Objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2027
5.56.1 TMGInt Object Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2027
5.56.2 TMGInt Object Methods. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2028
5.56.2.1 GetAll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2028
5.56.2.2 PutAll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2029
5.57 TMGOpt Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2030
5.57.1 TMGOpt Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2030
5.57.2 TMGOpt Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2031
5.57.2.1 GetAll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2031
5.57.2.2 PutAll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2032
5.58 TMGReal Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2033
5.58.1 TMGReal Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2033
5.58.2 TMGReal Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2034
5.58.2.1 GetAll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2034
5.58.2.2 PutAll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2035
5.59 Variable Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2036
5.59.1 Variable Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2036
5.59.2 Variable Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2037
5.59.2.1 GetVarID. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2037
5.59.2.2 Evaluate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2038
5.59.2.3 Define . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2039
5.59.2.4 DefineReal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2040
5.60 View Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2041
5.60.1 View Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2041
5.60.1.1 View Object Freebody Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2051
5.60.1.2 View Option Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2053
5.60.2 View Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2062
5.60.2.1 Initialize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2062
5.60.2.2 GetMultiGroupList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2063
5.60.2.3 SetMultiGroupList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2064
5.60.2.4 ClearMultiGroupList. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2065
5.60.2.5 Visible . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2066
5.60.2.6 Redraw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2067
5.60.2.7 Regenerate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2068
5.60.2.8 IsLayerVisible. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2069
5.60.2.9 SetLayerVisible. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2070
5.60.2.10 Rotate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2071
5.60.2.11 AlignCSys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2072
5.60.2.12 AlignVector. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2073
5.60.2.13 Align2Vector. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2074
5.60.2.14 AlignWorkplane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2075
5.60.2.15 AutoscaleAll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2076
5.60.2.16 AutoscaleVisible . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2077

6. FEMAP Events
6.1 Receiving and Processing Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2078
6.2 Alternate Method - Event Callbacks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2078
6.3 Format of Event Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2079
6.4 The FEMAP Events. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2079
6.5 Using FEMAP Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2080
API-35

1. Introduction to the FEMAP API

FEMAP provides a robust set of finite element modeling and post-processing functionality. At
times, however, you may need a specific capability that is not included in the standard product.
The FEMAP Application Programming Interface (API) lets you customize FEMAP to meet your
specific needs.
The FEMAP API is an OLE/COM-based programming interface to FEMAP. It contains hundreds
of functions that can be called from Visual Basic, VBA (Excel, Word, Access, ... ), C, or C++. The
FEMAP API Reference documents the objects and functions that are available in the FEMAP API.
To use the FEMAP API successfully, you need to understand:
Objects, Methods and Properties
Data Types
Memory Allocation
Global Constants
For examples of how to use the FEMAP API, see Section 2, "Using the FEMAP API".

1.1 Objects, Methods and Properties


The FEMAP API is an object-oriented system. If you are familiar with object-oriented program-
ming, you should have no problem understanding the concepts discussed. If you are not, this sec-
tion briefly introduces those concepts. You should refer to other sources for more complete
information.
Throughout the FEMAP API Reference, you will see references to objects, methods, and proper-
ties. Access to functionality and data is through the objects that are defined by the API. There
are only two levels of objects in the current API: the application object, and other objects.

1.1.1 The Application Object


The first level includes a single object: the FEMAP application object. In every application that
you write, you will always define and reference a FEMAP application object, which forms the
connection between your application and FEMAP. For more information, see Section 3, "The
FEMAP Application Object".
The application object contains properties (data) and methods (functionality) that are global in
nature. For example, all of the global data for your FEMAP session (defined under File, Prefer-
ences) can be accessed as properties of the application object (see Section 3.3, "FEMAP Object
Properties"). Almost all of the same functionality in the FEMAP menus is available as methods in
the application object. These are described in the other sections under Section 3, "The FEMAP
Application Object", and are organized according to their locations in the menu.

1.1.2 Other Objects


In addition to the main FEMAP application object, the API also defines many other objects that
provide detailed access to the entities in your models. Since most of the model entities represent
API-36 API Definition in the Manual

the underlying modeling data, these objects are very rich in property definitions. In addition, the
API includes methods that are used to find, retrieve, traverse and store the entities. For a full listing
of objects, see Section 5, "FEMAP Entity Objects".
As an important starting point to using any of the entity objects, refer to Section 5.1, "Common
Entity Properties and Methods" . It describes the properties and methods that are common to all of
the objects. This information is not repeated in each of the individual objects. You should under-
stand these options before proceeding to the detailed description of the unique capabilities of each
object.

1.2 Data Types


To use the API, you must understand the types of data that it requires and returns. Because of dif-
ferences in the data type definitions depending on whether you will call the API from Basic, C++,
or some other source, all of the documentation is presented in a language-neutral, more descrip-
tive form. The actual data types that you use will change from language to language, however, the
underlying format of those data types must match what the API requires. The following table sum-
marizes what you will find in the manual:

API Definition Description From Basic From C++


in the Manual
Visual Visual Basic
Basic 6 .NET
Single byte, True/
BOOL Boolean Boolean Unsigned Char
False value
INT2 2-byte integer Integer Integer short
INT4 4-byte integer Long Integer long, int
REAL4 4-byte real Single Single float
REAL8 8-byte real Double Double double
character string,
STRING String String char[..]
null terminated

1.2.1 Using Visual Basic .NET


The INT4 data type, which is widely used throughout the API, must be declared differently if you
are using Visual Basic 6 or Visual Basic .NET. In Visual Basic 6, the type Long maps to the 4-
byte integers used by FEMAP. In Visual Basic .NET, the Integer type must be used to map to the
same 4-byte integers, as the Long type has changed to map to 8-byte integers which are incom-
patible with the FEMAP API.
One other difference with Visual Basic .NET is that you must always initialize String variables
before they can be passed. Even for methods, like feNotesGet in the FEMAP object, which return
a string to you, the variable must be initialized prior to the call. For example, you can not use the
following:

Dim s as String
rc = femap.feNotesGet( 1, s )
API-37

This will generate a type mismatch error, because the String variable has not been initialized. If
instead you use:

Sub Main 'Full Subroutine usable in FEMAP API window
Dim App As femap.model ' Declare App model object
Set App = GetObject(,"femap.model") ' Instantiate App object
Dim s As String
s = ""

rc = App.feNotesGet( 1, s ) ' Puts model notes into String s

MsgBox(s) ' Shows String s in modal dialog box

End Sub
then, everything will work properly.
One final difference is that the Set command is no longer used in Visual Basic .NET. Through-
out this document, you will see examples that still include Set, as is required for the older Visual
Basic 6. For example,

Dim femap as Object
Set femap = GetObject(, femap.model)

If you are using Visual Basic .NET, you must simply ignore (or remove) the Set, leaving the cor-
rect syntax:

Dim femap as Object
femap = GetObject(, femap.model)

1.2.2 Arrays and Variants


In addition to the basic data types, you will often see references to arrays of values, for example:
INT4 x[0..9]
This implies that an array of 10, 4-byte integers is required. Through the API (COM) interface,
however, all arrays must be passed as Variant data types. In many current languages (for example,
Visual Basic .NET, Visual Basic for Applications in Microsoft Office 2007, and WinWrap Basic
embedded in FEMAP) the details of this can be hidden from you, and you can write code that
directly passes array variables.
Dim x(10) as Long
x(0) = 5
x(1) = 4
...
API-38

and then x can be passed directly in calls that require an array.


In older languages like Visual Basic 6, where you need to manually declare the Variants, you can
create it fairly easily. For example:

Dim x(10) as Long
Dim vx as Variant
x(0) = 5
x(1) = 4
...
vx = x

This will define a variant, vx, that contains all of the values assigned to the x array. This variant
can then be passed through the API to FEMAP in place of the array.
For any method that returns an array, you do not need to define an array variable in Basic. You
simply define the variant, pass it to the API, and then reference it like an array afterward. This
applies to both current and older languages. For example,

Sub Main
Dim App As femap.model
Set App = GetObject(,"femap.model")

Dim rc As Long
Dim a(3) As Double
Dim va As Variant

' Create and store some userdata


Dim e As UserData
Set e = App.feUserData
a(0) = 1.290
a(1) = 2*a(0)
a(2) = 2*a(1)

va = a ' Variant to Array
rc = e.WriteDoubleArray(3, va) ' Write Variant as Array
rc = e.Put(1)

' Retrieve userdata


Dim vb As Variant
Dim i As Long
Dim f As UserData
Set f = App.feUserData

rc = f.Get (1)
rc = f.ReadDoubleArray ( i, vb ) ' Read Array from DB
'into Variant

API-39

Dim mstr As String 'Convert Doubles in Variant to Strings


mstr =Str$(vb(0)) + " " + Str$(vb(1))+" "+Str$(vb(2))
MsgBox(mstr)

End Sub

1.2.3 An Array Shortcut


In current languages where you can pass arrays directly without manually declaring a Variant,
there is a non-standard programming shortcut that you can use to simplify some of your coding. If
there is an array that is used as an input parameter to a function, and you want to specify all entries
in the array to have the same value, rather than declaring an array at all, you can simply pass a sin-
gle value - either as a constant or a single variable. FEMAP will automatically treat this single
value if it were an array of the proper size with each entry in the array equal to the value you
passed. Of course, if you need to specify different values for the array entries, then the normal
method must be used. For example, the node object has a method called PutAllArray() that
requires multiple input arrays, so we could use....
Sub Main
Dim App As femap.model
Set App = GetObject(,"femap.model")

Dim rc As Long
Dim nd as femap.node
Set nd = App.feNode
Dim numNode as Long
Dim ndID(10) as Long
Dim xyz(30) as Long
Dim layer as Long
layer = 1
...
rc = nd.PutAllArray( numNode, ndID, xyz, layer, 43, 0, 0, 0, 0 )

End Sub

Note that all the arguments including and after layer actually require arrays, but are being passed
as single values because we are assigning the same constant value to all of the nodes being defined
in the call to this method.

1.2.4 Arrays and Visual Basic .NET


If you were using Visual Basic 6, then as stated, all array variables are passed via the Variant type.
With the release of Visual Basic .NET, the Variant data type is no longer available in Basic. To use
Visual Basic .NET, simply declare all of the variables that you would have declared as Variant
in Visual Basic 6, as the Object data type. With this change, the remainder of your code will
work as it did previously.

1.2.5 Arrays and Visual C++


If you are callinig the API from Visual C++, probably the easiest approach to accessing arrays is to
use the ATL capability to create Safe Arrays and Variants. To create Safe Arrays, use
API-40 API Definition in the Manual

CComSafeArray<data_type> ldof(size);
Where data_type is the type of data in the array, and size is the number of entries. You should
use the following data_types to be compatible with the API::

API Definition Safe Array Creation


in the Manual

BOOL CComSafeArray<BOOL> ...


INT4 CComSafeArray<LONG> ...
REAL8 CComSafeArray<DOUBLE> ...

To create Variants, you can use:


CComVariant vdir;
You can fill the Variant by simply setting it equal to the Safe Array, and then pass it to the API.
Refer to Section 2.10, "Calling the API from Visual C++", for an example of using this approach.

1.2.6 Using Multi-dimensional Arrays


Even though this documents shows arrays as being dimensioned as
REAL8 xyz[0..11]
It may be more convenient is some cases to think of them in terms of multi-dimensional arrays.
For example, the above array may really contain 4 sets of coordinates (3 values for each coordinate
- x, y and z), in which case referencing it as
REAL8 xyz[4][3]
may simplify your coding. With some care and understanding this is possible. There are two basic
issues that need to be properly handled to use multi-dimensional arrays
Array Storage Order
Depending on the language that you are using to call the API, multi-dimensional arrays store data
in different order. FEMAP requires data stored in these arrays to be in a specific order that is
described with the individual property or method - it is up to you to properly arrange the array
indices so that data is stored as needed - and this varies by language. For example, in the above
array FEMAP expected to have the data arranged as follows (X1,Y1,Z1, X2,Y2,Z2, X3,Y3,Z3,
X4,Y4,Z4). If you were calling the API from C or C++, the rightmost index varies first, so declar-
ing the array as:
double xyz[4][3] (in C or C++)
would be appropriate. On the other hand, if you were using Basic, then the leftmost index varies
first and you would have to declare the array as:
Dim xyz(2,3) as double (in Basic)
to get the data into the proper locations. Also notice in Basic, that the dimensions are the values of
the largest index, not the size to allocate, so the numbers decreased by 1 each.
API-41

Proper Dimensioning
To get all of the data in the proper locations, you can not over-size a multi-dimensional array -
except in the final dimension. In general, you will want to make your arrays just big enough to
hold the data that you are using, and no larger. In some cases however, it is convenient to have one
or more large arrays that simply collect data and may not be completely filled. When using multi-
dimensional arrays however, care must be taken. In the above case, from C, when you declared the
array as
double xyz[4][3] (in C or C++)
everything was fine and data is stored as (X1,Y1,Z1, X2,Y2,Z2, X3,Y3,Z3, X4,Y4,Z4). If how-
ever you declared the array as
double xyz[4][4] (in C or C++)
then data would be stored as (X1,Y1,Z1,HOLE1, X2,Y2,Z2,HOLE2, X3,Y3,Z3,HOLE3
X4,Y4,Z4,HOLE4), and you can see that the holes will move the data to the wrong locations.
Similarly, if you over-dimension the first index in Basic, the same thing will happen.
You can successfully over-dimension the final index however. In C, for example,
double xyz[100][3] (in C or C++)
would be fine, since data would be stored as (X1,Y1,Z1, X2,Y2,Z2, X3,Y3,Z3, X4,Y4,Z4, ...
X100, Y100, Z100), and even if only 4 sets of X,Y,Z values were needed, they will still be in their
proper locations.

1.2.7 Multiple Definitions of Array Properties


As you look through the documentation for the various entity types, you will see definitions of
properties that look like the following:

Property Description
BOOL dof[0..5] An array of flags telling whether or not the corresponding
or degrees of freedom are constrained (True) or free (False) in this
VARIANT vdof set.

Both of these properties provide access to the same data. The first (in this case dof) lets you
access individual array entries, one at a time (for example, dof[2]). The second Variant property
lets you access the entire array in one OLE/COM call. To access these Variant properties, you
must create a Variant variable in your application, load the entire array into it (by setting it equal
to the property), manipulate your local variable as needed, then put the entire array back into the
FEMAP object (by setting it equal to your local Variant). Once again, in Visual Basic .NET, use
the generic Object data type instead of Variant which is no longer supported.

1.3 Memory Allocation


Like any OLE/COM implementation, when using the FEMAP API, it is the responsibility of the
calling program (the one you write) to free all memory when it is no longer needed. This means if
you call an API method that returns a variant (a string or array), you must free the memory used by
that variable when you no longer need it.
If you are using Basic, as soon as a variable goes out of scope (your program finishes, or the proce-
dure where the variable was defined finishes), it is automatically freed. If you are using another
language, like C or C++, you need to explicitly free the memory.
API-42

It is not just variables that are returned from the API that you need to free. If you allocate memory
for a variable and pass it to an API method, the memory will not be freed (you might still need it).
It is your responsibility to free all memory for your variables.

1.4 Global Constants


Throughout this manual are references to certain constant values: for example, error return values,
entity type values, group definition types, and other options. If you are using Basic to write your
application, these values are defined in a file named api.bas in the FEMAP directory. You only
need to include that file into your application, and the constants will be available for your use. If
you are using another language, you will need to modify the file or use the values in the following
table:

Errors
FE_OK -1 FE_NOT_AVAILABLE 6

FE_FAIL 0 FE_TOO_SMALL 7

FE_CANCEL 2 FE_BAD_TYPE 8

FE_INVALID 3 FE_BAD_DATA 9

FE_NOT_EXIST 4 FE_NO_MEMORY 10

5 16
FE_SECURITY FE_NO_FILENAME

Events
FEVENT_INITIALIZE 1 FEVENT_PROGEND 7

FEVENT_NEWMODEL 2 FEVENT_DRAWSTART 8

FEVENT_ENDMODEL 3 FEVENT_DRAWEND 9

FEVENT_SHUTDOWN 4 FEVENT_ANALYSISEND 10

FEVENT_COMMAND 5 FEVENT_RESULTSEND 11

FEVENT_PROGSTART 6

Option Definitions
FO_FILE_MODEL 1 FO_FILE_ANSYS 4

FO_FILE_NEUTRAL 2 FO_FILE_MSC_NASTRAN 5

FO_FILE_ABAQUS 3 FO_FILE_NX_NASTRAN 6

Entity Types
FT_POINT 3 FT_VAR 27

FT_CURVE 4 FT_OUT_CASE 28

FT_SURFACE 5 FT_OUT_DIR 29
API-43

FT_VOLUME 6 FT_OUT_DATA 30

FT_NODE 7 FT_REPORT 31

FT_ELEM 8 FT_BOUNDARY 32

FT_CSYS 9 FT_LAYER 33

FT_MATL 10 FT_MATL_TABLE 34

FT_PROP 11 FT_FUNCTION_DIR 35

FT_LOAD_DIR 12 FT_FUNCTION_TABLE 36

FT_SURF_LOAD 13 FT_SOLID 39

FT_GEOM_LOAD 14 FT_COLOR 40

FT_NTHERM_LOAD 15 FT_OUT_CSYS 41

FT_ETHERM_LOAD 16 FT_CONTACT 58

FT_BC_DIR 17 FT_GRTYPE 59

FT_BCO 18 FT_AMGR_DIR 60

FT_BCO_GEOM 19 FT_TMG_BCO 112

FT_BEQ 20 FT_TMG_CONTROL 113

FT_ESP_TEXT 21 FT_TMG_INTEGER 114

FT_VIEW 22 FT_TMG_REAL 115

FT_GROUP 24 FT_TMG_OPTION 116

Group Rules
FGD_CSys_byDefCSys 1 FGD_Elem_byColor 60

FGD_CSys_byType 2 FGD_Prop_byColor 61

FGD_Point_ID 3 FGD_Matl_byColor 62

FGD_Point_byDefCSys 4 FGD_Text_byLayer 63

FGD_Point_onCurve 5 FGD_Point_byLayer 64

FGD_Curve_ID 6 FGD_Curve_byLayer 65

FGD_Curve_byPoint 7 FGD_Surface_byLayer 66

FGD_Curve_onSurface 8 FGD_Volume_byLayer 67

FGD_Surface_ID 9 FGD_Solid_byLayer 68

FGD_Surface_byCurve 10 FGD_CSys_byLayer 69

FGD_Surface_onVolume 11 FGD_Node_byLayer 70
API-44

FGD_Volume_ID 12 FGD_Elem_byLayer 71

FGD_Volume_bySurface 13 FGD_Prop_byLayer 72

FGD_Text_ID 14 FGD_Matl_byLayer 73

FGD_Boundary_ID 15 FGD_Solid_ID 74

FGD_Boundary_byCurve 16 FGD_Solid_byCurve 75

FGD_Node_ID 17 FGD_Solid_bySurface 76

FGD_Node_byDefCSys 18 FGD_Curve_onSolid 77

FGD_Node_byOutCSys 19 FGD_Surface_onSolid 78

FGD_Node_onElem 20 FGD_Point_byProp 79

FGD_Elem_ID 21 FGD_Curve_byProp 80

FGD_Elem_byMatl 22 FGD_Surface_byProp 81

FGD_Elem_byProp 23 FGD_Volume_byProp 82

FGD_Elem_byType 24 FGD_Solid_byProp 83

FGD_Elem_byNode 25 FGD_Contact_ID 84

FGD_Matl_ID 26 FGD_Contact_byColor 85

FGD_Matl_onProp 27 FGD_Contact_byLayer 86

FGD_Matl_onElem 28 FGD_CSys_onNode 87

FGD_Matl_byType 29 FGD_CSys_onPoint 88

FGD_Prop_ID 30 FGD_Elem_byShape 89

FGD_Prop_onElem 31 FGD_Node_onElemAsOrient 90

FGD_Prop_byMatl 32 FGD_ConnectionProp_ID 91

FGD_Prop_byType 33 FGD_ConnectionProp_byColor 92

FGD_Load_byNode 34 FGD_ConnectionProp_byLayer 93

FGD_Load_byElem 35 FGD_Connector_ID 94

FGD_BCo_ID 36 FGD_Connector_byColor 95

FGD_BEq_byNode 37 FGD_Connector_byLayer 96

FGD_Node_atPoint 38 FGD_Connector_byProp 97

FGD_Node_atCurve 39 FGD_Contact_onConnector 98

FGD_Node_atSurface 40 FGD_ConnectionProp_onConnector 99

FGD_Node_atSolid 41 FGD_Connector_byContact 100


API-45

FGD_Elem_atPoint 42 FGD_Layup_ID 101

FGD_Elem_atCurve 43 FGD_Layup_byMatl 102

FGD_Elem_atSurface 44 FGD_Layup_byProp 103

FGD_Load_byPoint 45 FGD_Elem_byLayup 104

FGD_Load_byCurve 46 FGD_Prop_byLayup 105

FGD_Load_bySurface 47 FGD_Node_bySuperelement 106

FGD_BCo_byPoint 48 FGD_Load_byRegion 107

FGD_BCo_byCurve 49 FGD_Contact_byElem 108

FGD_BCo_bySurface 50 FGD_Contact_byNode 109

FGD_Text_byColor 51 FGD_Contact_byCurve 110

FGD_Point_byColor 52 FGD_Contact_bySurface 111

FGD_Curve_byColor 53 FGD_Contact_byProp 112

FGD_Surface_byColor 54 FGD_Elem_byAllNodes 113

FGD_Volume_byColor 55 FGD_Elem_byGlobalPly 114

FGD_Solid_byColor 56 FGD_Layup_byGlobalPly 115

FGD_CSys_byColor 57 FGD_CSys_onProp 116

FGD_Node_byColor 58 FGD_CSys_onCSys 117

FGD_Load_byPoint 59
API-46
API-47

2. Using the FEMAP API

This chapter includes some fairly simple examples that can be implemented using the FEMAP
API. These examples show some of the basic setup and syntax of using the API, but do not attempt
to show the breadth of the APIs capabilities.

2.1 Using Visual Basic .NET


These examples were created to use Visual Basic 6. As such they use the Long and Variant
data types that are required in that version of Visual Basic. If you want to use them with Visual
Basic .NET, the Long data types must be changed to Integer and the Variant data types to
Object.

2.2 Loading Data into Excel


This program shows a simple example of connecting to FEMAP from Excel, and loading all of the
nodal data into the worksheet. Although this program loads nodal data, the approach is the same
for other data types. To load other data types, you would simply dimension and access other
FEMAP objects and reference their properties as you are storing the data.
______________________________________________________________________________

Private Sub LoadNodalData()

'1. Attach to the model in a FEMAP session that is already running. (The comma before
femap.model is used externally for a FEMAP model already open.)
Dim femap As Object
Set femap = GetObject(, "femap.model")

'2. Create a Node object.


Dim nd As Object
Set nd = femap.feNode

'3. Make the titles in the first row of the worksheet.


Row = 1
Worksheets(1).Cells(Row, 1).Value = "ID"
Worksheets(1).Cells(Row, 2).Value = "Layer"
Worksheets(1).Cells(Row, 3).Value = "Color"
Worksheets(1).Cells(Row, 4).Value = "Def CSys"
Worksheets(1).Cells(Row, 5).Value = "Out CSys"
Worksheets(1).Cells(Row, 6).Value = "X"
Worksheets(1).Cells(Row, 7).Value = "Y"
Worksheets(1).Cells(Row, 8).Value = "Z"
API-48

'4. Loop over all of the nodes in the model.


While nd.Next
Row = Row + 1

'5. Store properties for each node in successive worksheet rows.


Worksheets(1).Cells(Row, 1).Value = nd.ID
Worksheets(1).Cells(Row, 2).Value = nd.layer
Worksheets(1).Cells(Row, 3).Value = nd.Color
Worksheets(1).Cells(Row, 4).Value = nd.defCSys
Worksheets(1).Cells(Row, 5).Value = nd.outCSys
Worksheets(1).Cells(Row, 6).Value = nd.x
Worksheets(1).Cells(Row, 7).Value = nd.y
Worksheets(1).Cells(Row, 8).Value = nd.z
Wend
End Sub
______________________________________________________________________________
While the previous program is fairly simple, it does require calling FEMAP for each of the nodal
quantities. For example, each time you reference nd.x, nd.y, or nd.z, your program must call
FEMAP to retrieve that information. This approach provides the simplicity of the object-oriented
approach, but does not necessarily perform as well as making just one call for multiple pieces of
data. The following program does exactly the same thing as the previous one, but makes far fewer
calls, and therefore performs better.
______________________________________________________________________________

Private Sub LoadNodalDataFast()

'1. Attach to the model in a FEMAP session that is already running.


Dim femap As Object
Set femap = GetObject(, "femap.model")

'2. Create a Node object.


Dim nd As Object
Set nd = femap.feNode

'3. Dimension local variables to receive the data.


Dim x As Double
Dim y As Double
Dim z As Double
Dim l As Long
Dim co As Long
Dim d As Long
Dim oc As Long
Dim e As Long
Dim rc As Long
Dim ID As Long
API-49

Dim pb As Variant

'4. Make the titles in the first row of the worksheet.


Row = 1
Worksheets(1).Cells(Row, 1).Value = "ID"
Worksheets(1).Cells(Row, 2).Value = "Layer"
Worksheets(1).Cells(Row, 3).Value = "Color"
Worksheets(1).Cells(Row, 4).Value = "Def CSys"
Worksheets(1).Cells(Row, 5).Value = "Out CSys"
Worksheets(1).Cells(Row, 6).Value = "X"
Worksheets(1).Cells(Row, 7).Value = "Y"
Worksheets(1).Cells(Row, 8).Value = "Z"

'5. Loop over all of the nodes in the model.


ID = nd.nextID
While ID < 99999999
Row = Row + 1

'6. Call the GetAll method of the Node object to retrieve all of the required properties in one call.
Store the retrieved data into the worksheet.
rc = nd.GetAll(ID, x, y, z, l, co, e, d, oc, pb)
Worksheets(1).Cells(Row, 1).Value = ID
Worksheets(1).Cells(Row, 2).Value = l
Worksheets(1).Cells(Row, 3).Value = co
Worksheets(1).Cells(Row, 4).Value = d
Worksheets(1).Cells(Row, 5).Value = oc
Worksheets(1).Cells(Row, 6).Value = x
Worksheets(1).Cells(Row, 7).Value = y
Worksheets(1).Cells(Row, 8).Value = z

'(These fields were not loaded by the first example, but show the use of the Variant data type to
access array data.)
Worksheets(1).Cells(Row, 9).Value = pb(0)
Worksheets(1).Cells(Row, 10).Value = pb(1)
Worksheets(1).Cells(Row, 11).Value = pb(2)
Worksheets(1).Cells(Row, 12).Value = pb(3)
Worksheets(1).Cells(Row, 13).Value = pb(4)
Worksheets(1).Cells(Row, 14).Value = pb(5)
ID = nd.nextID
Wend
End Sub
______________________________________________________________________________

2.3 Loading Data from Excel


This program reverses the programs shown in the previous example. It takes the same nodal data
that was stored in the worksheet, and updates the nodes in FEMAP to have the worksheet values.
Used together, these two examples allow you to use Excel as an editor. Running the first example
API-50

loads data into your worksheet, where you can edit it using the tools available in Excel. When your
edits are complete, this program puts the changes back into FEMAP.
______________________________________________________________________________

Private Sub UpdateNodalData()

'1. Attach to the model in a FEMAP session that is already running.


Dim femap As Object
Set femap = GetObject(, "femap.model")

'2. Create a Node object.


Dim nd As Object
Set nd = femap.feNode

'3. Loop over all rows of the worksheet that have an ID value.
Row = 2
ID = Worksheets(1).Cells(Row, 1).Value
While ID > 0

'4. Retrieve the node to load all of its properties.


rc = nd.Get(ID)

'5. Update the properties that you have edited.


nd.layer = Worksheets(1).Cells(Row, 2).Value
nd.Color = Worksheets(1).Cells(Row, 3).Value
nd.defCSys = Worksheets(1).Cells(Row, 4).Value
nd.outCSys = Worksheets(1).Cells(Row, 5).Value
nd.x = Worksheets(1).Cells(Row, 6).Value
nd.y = Worksheets(1).Cells(Row, 7).Value
nd.z = Worksheets(1).Cells(Row, 8).Value

'6. Put the changes back into the database.


rc = nd.Put(ID)

'7. Go to the next row.


Row = Row + 1
ID = Worksheets(1).Cells(Row, 1).Value

Wend
End Sub
______________________________________________________________________________
Just as before, you can also do this function with a single call approach to reduce the number of
times that you reference the Node object.
______________________________________________________________________________
API-51

Private Sub UpdateNodalDataFast()

'1. Attach to the model in a FEMAP session that is already running.


Dim femap As Object
Set femap = GetObject(, "femap.model")

'2. Create a Node object.


Dim nd As Object
Set nd = femap.feNode

'3. Dimension local variables to receive the data.


Dim x As Double
Dim y As Double
Dim z As Double
Dim l As Long
Dim co As Long
Dim d As Long
Dim oc As Long
Dim e As Long
Dim rc As Long
Dim ID As Long

'4. Arrays are passed as variants. Dimension both, assign the array to the variant, and pass the
variant.
Dim pb As Variant
Dim p(6) As Long
pb = p

Row = 2
ID = Worksheets(1).Cells(Row, 1).Value
While ID > 0

'5. Load the local variables with worksheet values.


l = Worksheets(1).Cells(Row, 2).Value
co = Worksheets(1).Cells(Row, 3).Value
d = Worksheets(1).Cells(Row, 4).Value
oc = Worksheets(1).Cells(Row, 5).Value
x = Worksheets(1).Cells(Row, 6).Value
y = Worksheets(1).Cells(Row, 7).Value
z = Worksheets(1).Cells(Row, 8).Value
pb(0) = Worksheets(1).Cells(Row, 9).Value
pb(1) = Worksheets(1).Cells(Row, 10).Value
pb(2) = Worksheets(1).Cells(Row, 11).Value
pb(3) = Worksheets(1).Cells(Row, 12).Value
pb(4) = Worksheets(1).Cells(Row, 13).Value
pb(5) = Worksheets(1).Cells(Row, 14).Value
API-52

'6. Put all data back into FEMAP with one call.
rc = nd.PutAll(ID, x, y, z, l, co, e, d, oc, pb)

'7. Go to the next row.


Row = Row + 1
ID = Worksheets(1).Cells(Row, 1).Value
Wend

End Sub
______________________________________________________________________________

2.4 Creating Output in FEMAP


This example demonstrates the use of several API functions that could be used to create your own
output data in FEMAP. The example simply loads dummy results as output, but you could modify
it to be part of a larger program that computes its own real output, uses existing output from
FEMAP to do further processing, or reads output from another program.
This example assumes that the existing model in FEMAP already contains 100,000 nodes and
90,000 planar elements. To be useful as a real program, the sections of code that generate the out-
put must be rewritten to check the model and get or compute real results from some other source.
______________________________________________________________________________

Sub Main

'1. Attach to the model in a FEMAP session that is already running.


Dim App As Object
Set App = GetObject(, "femap.model")

'2. Create an Output Set object.


Dim os As Object
Set os = App.feOutputSet

'3. Create an Output object.


Dim o As Object
Set o = App.feOutput
Dim rc As Long
Dim i As Long

'4. Initialize an Output Set and store it.


os.title = "My Test Set"
os.value = 35.4
os.analysis = 5
os.Put (1)
API-53

'5. Initialize the Output object to create nodal vector output.


' (In this case, you will create a total vector and x, y and z component vectors.)
rc = o.InitVectorAtNode(1, 300000, 300001, 300002, 300003, _
"Displacement", 1, True)
Dim ID(100000) As Long
Dim x(100000) As Double
Dim y(100000) As Double
Dim z(100000) As Double
Dim xV As Variant
Dim yV As Variant
Dim zV As Variant
Dim idV As Variant

'6. Make up some output values for 100,000 nodes.


' (Replace this section with some code that creates or reads real results values.)
For i = 0 To 99999
ID(i) = i + 1
x(i) = 0.001 * i
y(i) = 0#
z(i) = 0.02 * Sin(360# / 99999# * i * 3.14 / 180#)
Next i

xV = x
yV = y
zV = z
idV = ID

'7. Save the displacement output in the database.


rc = o.PutVectorAtNode(100000, idV, xV, yV, zV)
rc = o.Put(-1)

'8. Make some elemental stress output. Reinitialize the output object.

rc = o.InitElemWithCorner(1, 100, 101, 102, 103, 104, 0, 0, 0, 0, _


"Stress", 2, True)
Dim c(100000) As Double
Dim c1(100000) As Double
Dim c2(100000) As Double
Dim c3(100000) As Double
Dim c4(100000) As Double
Dim cV As Variant
Dim c1V As Variant
Dim c2V As Variant
Dim c3V As Variant
Dim c4V As Variant
API-54

'9. Make output for 90,000 elements. Make both the center and corner results.
For i = 0 To 89999
ID(i) = i + 1
c(i) = i
c1(i) = i + 0.1
c2(i) = i + 0.2
c3(i) = i - 0.2
c4(i) = i - 0.1
Next i
cV = c
c1V = c1
c2V = c2
c3V = c3
c4V = c4

'10. Store the elemental results in the database.


rc = o.PutElemWithCorner(90000, 4, idV, cV,c1V, c2V, _
c3V, c4V, c4V, c4V, c4V, c4V)
rc = o.Put(-1)

End Sub
______________________________________________________________________________

2.5 Using the ReadFile Object


The FEMAP API provides an object that lets you read data lines from text files and parse their
contents. While you can use the native file read capabilities of the programming language that you
are using, this object is often faster than those routines. The extra speed comes from the internal
buffering of data that the object provides.
This example illustrates using this object to read and extract all of the GRID (node) lines from a
NASTRAN file. It is not intended to be a general NASTRAN reader. It can only handle small-field
(or free format) lines, and only GRID statements in already defined coordinate systems; however,
it could be easily modified for other purposes. The results of this reader are used to create nodes in
the FEMAP model, but they could just as easily be used for some other purpose.
______________________________________________________________________________
Sub Main

'1. Attach to the model in a FEMAP session that is already running.


Dim App As Object
Set App = GetObject(, "femap.model")

'2. Create ReadFile Object.


Dim f As Object
Set f = App.feRead
API-55

'3. Create a Node object.


Dim nd As Object
Set nd = App.feNode

Dim rc As Long

'4. Set up field widths: 10 fields, 8 characters wide.


Dim w(10) As Long
For i = 0 To 9
w(i) = 8
Next i
Dim wVar As Variant
wVar = w

'5. Prepare to read the file. Read only GRID lines in fixed or free format.
rc = f.SetSearchString("GRID", "")
rc = f.FixedFormat(10, wVar)
rc = f.SetAutoFormat()
rc = f.Open("d:\temp\grid.nas", 100)

'6. Begin reading.


Do
rc = f.Read()

'7. Put the data into the nodes.


nd.x = f.RealField(4, 0#)
nd.y = f.RealField(5, 0#)
nd.z = f.RealField(6, 0#)
nd.defCSys = f.IntField(3, 0)
nd.outCSys = f.IntField(7, 0)

'8. Save the nodes.


rc = nd.Put(f.IntField(2, 0))

'9. Keep reading until you get to the end of the file.
Loop Until f.AtEOF()
rc = f.Close()

End Sub
______________________________________________________________________________

2.6 Storing Your Own Data in the FEMAP Database


The FEMAP API provides the UserData object, which lets you store your own data in the FEMAP
database. You can think of this storage approach as basically a binary file. You write whatever
data you want to the file, then, at a later time, you can read the data back using the same approach.
API-56

The format and order of the data is up to you. The only restriction is that your code must remember
what format you used when writing the data, or you will be unable to read it later.
The following example shows writing a number of data types to a UserData object.
______________________________________________________________________________

Dim App As femap.object 'For use by all local subroutines

'1. Simple driver to load and then retrieve userData

Sub Main()

'2. Attach to the model in a FEMAP session that is already running.


Set App = GetObject(, "femap.model")

Call SaveUserData()
Call LoadUserData()
End Sub

Private Sub SaveUserData()

'3. Create the UserData object.


Dim d As Object
Set d = App.feUserData()

Dim a(5) As Double


Dim va As Variant
Dim rc As Long
Dim b(4) As Boolean
Dim vb As Variant
Dim p As Long

'4. Start writing data to the UserData storage object.


d.WriteDouble (8.3)
d.WriteDouble (76.34)
d.WriteLong (-345)
d.writestring ("This is my text")
d.WriteDouble (3457000000000#)
a(0) = 0.1234
a(1) = 0.5432
a(2) = 0.9876
a(3) = 0.234
a(4) = 13.44
va = a
rc = d.WriteDoubleArray(5, va)
API-57

b(0) = True
b(1) = False
b(2) = True
b(3) = True
b(4) = 3
vb = b
rc = d.WriteBoolArray(5, vb)

'5. Assign a title and store object.


d.Title = "ABCProduct"
d.Put (1)
End Sub
'______________________________________________________________________________

Private Sub LoadUserData() ' Reloads and displays data

'6. Create the UserData object.


Dim e As Object
Set e = App.feUserData()

'7. Reload the UserData object.


e.Get (1)
MsgBox (e.Title)

Dim x As Double
Dim i As Long
Dim s As String
Dim vb As Variant
Dim cc As Variant

'8. Start reading and displaying the data.


rc = e.ReadDouble(x)
MsgBox (Str$(x))
rc = e.ReadDouble(x)
MsgBox (Str$(x))
rc = e.ReadLong(i)
MsgBox (Str$(i))
rc = e.readstring(s)
MsgBox (s)
rc = e.ReadDouble(x)
MsgBox (Str$(x))
rc = e.ReadDoubleArray(i, vb)
MsgBox (Str$(i))
MsgBox (Str$(vb(0)))
API-58

MsgBox (Str$(vb(4)))
rc = e.ReadBoolArray(i, cc)
MsgBox (Str$(i))
MsgBox (Str$(cc(0)))
MsgBox (Str$(cc(1)))
MsgBox (Str$(cc(2)))
MsgBox (Str$(cc(3)))
MsgBox (Str$(cc(4)))

End Sub
______________________________________________________________________________

2.7 Creating a Rigid Element


Another application for the FEMAP API is to extend the functionality that is already present in
FEMAP. As an example, you may sometimes need to create a rigid, spider element inside a hole
so that you can distribute a load, or make another connection. This normally involves multiple
steps. First you must find and create a node at the center of the hole or node pattern, then you must
reselect that node and the surrounding nodes to create the element. With a little bit of work with
the API, this routine can be automated to simply let you select the nodes that you want to connect.

The following example shows how to automate creating a rigid spider.


______________________________________________________________________________
Sub Main()

'1. Initialize variables.


Dim App As femap.model
Dim feNode As Object
Dim fN As Object
Dim nodeSet As Object
Dim feElem As Object
Dim nodeCount As Long
Dim nodeX As Double
Dim nodeY As Double
Dim nodeZ As Double
Dim nodeID As Long
Dim elemID As Long

Dim vDOF As Variant


Dim vNodeArray As Variant
Dim vDum As Variant

vDOF = DOF

nodeX = 0#
nodeY = 0#
nodeZ = 0#
API-59

'2. Attach to FEMAP.


Set App = GetObject(, "femap.model")

'3. Ask the user to select nodes for the rigid element.
Set nodeSet = App.feSet()
rc = nodeSet.Select(7, True, "Select Nodes for Rigid Spider")

If rc = -1 Then

'4. Identify how many nodes were selected.


nodeCount = nodeSet.Count()
If nodeCount > 0 Then

'5. Make some local arrays to hold the data that was collected.
ReDim nodeArray(nodeCount) As Long
ReDim faceArray(nodeCount) As Long
ReDim Weight(nodeCount) As Long
ReDim DOFArray(nodeCount * 6) As Long

vDOF = DOFArray
vWeight = Weight
vfaceArray = faceArray

Dim passCount As Long


passCount = 0

'6. Walk the nodes.


Set fN = App.feNode()
rc = nodeSet.Reset()
nodeID = nodeSet.Next()

'7. Store the IDs.


Do While nodeID <> 0
nodeArray(passCount) = nodeID
passCount = passCount + 1
rc = fN.Get(nodeID)

nodeX = nodeX + fN.x


nodeY = nodeY + fN.y
nodeZ = nodeZ + fN.z

nodeID = nodeSet.Next()
Loop

'8. Compute the centroid and create the Node at the centroid.
Set feNode = App.feNode()
API-60

vNodeArray = nodeArray

nodeID = feNode.NextEmptyID

feNode.x = nodeX / nodeCount


feNode.y = nodeY / nodeCount
feNode.z = nodeZ / nodeCount

'9. Store the node.


rc = feNode.Put(nodeID)

If rc = -1 Then 'return code FE_OK

'10. Create the element.


Set feElem = App.feElem()

elemID = feElem.NextEmptyID

feElem.Type = 29 'Rigid
feElem.topology = 13 'Rigid
feElem.node(0) = nodeID 'Independent Node
feElem.Release(0, 0) = 1
feElem.Release(0, 1) = 1
feElem.Release(0, 2) = 1

vDum = nodeArray
rc = feElem.PutNodeList(0, nodeCount, vNodeArray, _
vfaceArray, vWeight, vDOF )

'11. Store the element.


rc = feElem.Put(elemID)

End If
End If
End If

End Sub

______________________________________________________________________________

2.8 Updating Loads and Constraints


This example demonstrates how to walk through all of the mesh-based loads and constraints in
your model. If any, expanded geometry-based loads or constraints are found, they are converted to
permanent loads or constraints. WARNING - RUNNING THIS PROGRAM WILL PREVENT
YOU FROM COMPRESSING THESE LOADS BACK TO PURELY GEOMETRIC LOADS.
This script connects to an open FEMAP session, and starts to query the database.
API-61

______________________________________________________________________________
Sub Main

Dim App As Object


Set App = GetObject(, "femap.model")

Dim rc as Integer
Dim BCSet As Object
Set BCSet = App.feBCSet
Dim BC As Object
Set BC = App.feBCNode

Dim LdSet As Object


Set LdSet = App.feLoadSet
Dim Ld As Object
Set Ld = App.feLoadMesh
Dim Nt As Object
Set Nt = App.feLoadNTemp
Dim Et As Object
Set Et = App.feLoadETemp

'1. Do the Constraints.


While (BCSet.Next())
BC.setID = BCSet.ID

BC.ID = -1
While (BC.Next())
If (BC.expanded) Then
BC.expanded = False
BC.Put (BC.ID)
End If
Wend
Wend

'2. Do the Loads.


While (LdSet.Next())

'3. Mesh-based loads.


Ld.setID = LdSet.ID
Ld.ID = -1
While (Ld.Next())
If (Ld.expanded) Then
Ld.expanded = False
Ld.Put (Ld.ID)
End If
Wend
API-62

'4. Elemental Temps.


Et.setID = LdSet.ID
Et.ID = -1
While (Et.Next())
If (Et.expanded) Then
Et.expanded = False
Et.Put (Et.ID)
End If
Wend

'5. Nodal Temps.


Nt.setID = LdSet.ID
Nt.ID = -1
While (Nt.Next())
If (Nt.expanded) Then
Nt.expanded = False
Nt.Put (Nt.ID)
End If
Wend
Wend
End Sub

______________________________________________________________________________

2.9 Charting FEMAP Results in Excel


This example demonstrates FEMAPs ability to communicate with other programs. Here you will
create a table of data and an associated chart in Microsoft Excel using the data that is currently
being used in a deformed display in FEMAP.
This script connects to an open FEMAP session, pulls the values of the vector selected for the
deformed plot and places them into Sheet 1. The script then sub-graphs the values.
______________________________________________________________________________

'Before running this script, you must have a deformed model displayed in the active view.
Sub Button3_Click()

'1. Attach to the model in the FEMAP session that is already running.
Dim femap As Object
Set femap = GetObject(, "femap.model")
********************************************************************

'2. Create the View objects and collect the view information.
Dim View As Object 'The FEMAP view object
Set View = femap.feView
API-63

'3. Use the feOutputSet method of the FEMAP Application object to create OutputSet objects.
Dim outset As Object
Set outset = femap.feOutputSet

'4. Use the feOutput method of the FEMAP Application object to create Output objects.
Dim outdata As Object
Set outdata = femap.feOutput

Dim v As Long
Dim setID As Long
Dim def_vecID As Long
Dim Nodal As Boolean
Dim vec_title As String

'5. Use the feAppGetActiveView User Interface Method to return Active View of the
' active Model.
ret = femap.feAppGetActiveView(v)

'6. Use the Get property to retrieve the record of the FEMAP view number that is entered.
' In this case, you are getting the active view.
View.Get (v)

'7. Use this If statement to make sure that an XY display is not being displayed.
If (View.Mode < 6) Then

'8. Use the Deformed property to return the deformed style: 0=Off, 1=Deformed, 2=Animate....
' This If statement makes sure that you are using a deformed display.
If Not (View.Deformed = 0) Then

'9. Use the Outputset property to return the ID of the active output set.
If (View.outputset > 0) Then
setID = View.outputset

'10. Use the DeformData property to return the ID of the vector selected for the deformed display.
def_vecID = View.DeformData

'11. Set the outset.Active property to ensure the set you wish to retrieve is active then use the two
' commands below to retrieve information about the selected output set and vector (the vector
' of the active output set that is being used in the deformed display).
ret = outset.Get(setID)
outset.Active = setID
ret = outdata.Get(def_vecID)
End If
End If
End If
API-64

Nodal = False

'12. Use the Locate on method to return how the output is computed and stored. Nodal = 7,
' so this checks if the deformed output vector is nodal or elemental.
If (outdata.Location = 7) Then
Nodal = True
End If

'13. Get the title of the output vector.


vec_title = outdata.title

********************************************************************

Next, check to see if a group is being viewed. If so, you will select only those nodes.

'14. Use the feGroup method of the FEMAP Application object to create Group objects.
Dim gr As Object
Set gr = femap.feGroup

'15. Use this object as the List method of gr, and set it to be a list of the nodes in the group. The
Group List method returns a list of the selected entities. In this case, you want a list of nodes,
so you will enter 7 for the list method.
Dim s1 As Object
Dim view_Group As Long
Dim sID As Long
Dim x As Long
Dim y As Long
Dim z As Long

'16. Use the Group property to return the ID of the group being viewed.
view_Group = View.Group

'17. Check to see if the active group is being displayed. (If so, you will next fill s1 with the entities
in the active group.)
If (view_Group = -1) Then

'18. Use the Info_ActiveID method to return the id of the active entity, of entity type. In this case,
you want the active group, so 24 is used for group.
view_Group = (femap.Info_ActiveID(24))

'19. Retrieve the record of the active group.


gr.Get (view_Group)
If (Nodal) Then
API-65

'20. Make s1 a list of nodes in the group. Give sID the ID of the next entity in the list s1.
Set s1 = gr.List(7)
sID = s1.Next

Else

'21. Make s1 a list of elements in the group.


Set s1 = gr.List(8)
sID = s1.Next

End If

'22. If another group is being displayed, fill s1 with the entities in the other group.
ElseIf (view_Group > 0) Then

gr.Get (view_Group)

If (Nodal) Then
Set s1 = gr.List(7)

'23. Give sID the ID of the next entity in the list s1.
sID = s1.Next
Else
Set s1 = gr.List(8)
sID = s1.Next
End If

'24. If a group isn't being displayed, then put all of the entities in the s1 list.
ElseIf (view_Group = 0) Then
Set s1 = femap.feSet
If (Nodal) Then

'25. Use the Adall property to make s1 a list of all of the nodes in the model.
s1.AddAll (7)

'26. Give sID the ID of the next entity in the list s1.
sID = s1.Next

Else
s1.AddAll (8)
sID = s1.Next
End If
End If

********************************************************************
API-66

'Next, fill the Worksheet Sheet1 with the node IDs, nodal coordinates, and values. If the data
' is elemental, use instead the element IDs and values.

'27. Use the feNode method of the FEMAP Application object to create Node objects.
Dim Node As Object
Set Node = femap.feNode

'28. Use the feElement method of the FEMAP Application object to create Element objects.
Dim Element As Object
Set Element = femap.feElem

Dim Counter As Long

'29. Turn off Excels screen updating so that the data from FEMAP will be retrieved faster.
Application.ScreenUpdating = False

'30. Activate the current Worksheet from within Excel.


Worksheets("Sheet1").Activate

'31. Clear the selected cell of any previous values or equations.


Worksheets("Sheet1").Cells(1, 1).ClearContents

If Not (Nodal) Then

'32. Name the column 1 header Elements if the data is elemental, or Nodes is the data is
nodal.
Worksheets("Sheet1").Cells(1, 1).Formula = "Elements"
Else
Worksheets("Sheet1").Cells(1, 1).Formula = "Nodes"

Worksheets("Sheet1").Cells(1, 2).ClearContents
Worksheets("Sheet1").Cells(1, 2).Formula = "X"

Worksheets("Sheet1").Cells(1, 3).ClearContents
Worksheets("Sheet1").Cells(1, 3).Formula = "Y"

Worksheets("Sheet1").Cells(1, 4).ClearContents
Worksheets("Sheet1").Cells(1, 4).Formula = "Z"

End If

Worksheets("Sheet1").Cells(1, 5).ClearContents
Worksheets("Sheet1").Cells(1, 5).Formula = vec_title

Counter = 1

If Not (Nodal) Then


API-67

'33. Fill the Sheet with elements and values, if the data is elemental.
Do While sID > 0

'34. Retrieve the element information with the ID specified by sID.


Element.Get (sID)

'35. Retrieve the output values. The index must be the ID of the node/element where the output
value is stored.
Value = outdata.Value(sID)

Worksheets("Sheet1").Cells(Counter + 1, 1).ClearContents
Worksheets("Sheet1").Cells(Counter + 1, 1).Value = sID

Worksheets("Sheet1").Cells(Counter + 1, 5).Activate
Worksheets("Sheet1").Cells(Counter + 1, 5).Value = Value

Counter = Counter + 1
sID = s1.Next

Loop

Else

'36. Fill the sheet with nodes and values, if the data is nodal.
Do While sID > 0

'37. Retrieve the element information with the ID specified by sID.


Node.Get (sID)

'38. Retrieve the output values. The index must be the ID of the node/element where the
' output value is stored.
Value = outdata.Value(sID)

'39. Use the x, y , and z properties to return the respective values of the node location.
x = Node.x
y = Node.y
z = Node.z

Worksheets("Sheet1").Cells(Counter + 1, 1).ClearContents
Worksheets("Sheet1").Cells(Counter + 1, 1).Value = sID

Worksheets("Sheet1").Cells(Counter + 1, 2).ClearContents
Worksheets("Sheet1").Cells(Counter + 1, 2).Value = x
API-68

Worksheets("Sheet1").Cells(Counter + 1, 3).Activate
Worksheets("Sheet1").Cells(Counter + 1, 3).Value = y

Worksheets("Sheet1").Cells(Counter + 1, 4).Activate
Worksheets("Sheet1").Cells(Counter + 1, 4).Value = z

Worksheets("Sheet1").Cells(Counter + 1, 5).Activate
Worksheets("Sheet1").Cells(Counter + 1, 5).Value = Value

Counter = Counter + 1
sID = s1.Next
Loop
End If

'40. Now that Sheet1 is populated, use the Create_chart sub to create an Excel chart.
Create_chart

'41. Turn screen updating back on.


Application.ScreenUpdating = True

End Sub

'*********************************************************************************

'42. Create a chart of the column 5 versus column 1 values.


Sub Create_chart()

'43. Make column 5 the active selection.


Columns(5).Select

'44. Assign the address of the selected column of cells to valuecolumn.


ValueColumn = Selection.Address

'45. Make column 1 the active selection.


Columns(1).Select

'46. Assign the address of the selected column of cells to xcolumn.


XColumn = Selection.Address

ChartTitle = Worksheets("Sheet1").Cells(1, 5)

XTitle = Worksheets("Sheet1").Cells(1, 1)

'47. Create and format the chart.


Charts.Add
API-69

ActiveChart.ChartType = xlLineMarkers
ActiveChart.SetSourceData Source:= _
Sheets("Sheet1").Range(ValueColumn)
ActiveChart.Location where:=xlLocationAsObject, Name:="Sheet1"
ActiveChart.SeriesCollection(1).XValues = _
Sheets("Sheet1").Range(XColumn)
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = ChartTitle
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = XTitle
.Axes(xlValue, xlPrimary).HasTitle = False
End With
ActiveChart.HasLegend = False
End Sub
______________________________________________________________________________

2.10 Calling the API from Visual C++


The examples in this manual use Visual Basic to call the API because, in general, it is much easier
to do. If you want to, however, the API can be called using Visual C++. For example, to simply tell
FEMAP to exit using Visual Basic, you could use the following Basic program:
Dim femap As Object
Set femap = GetObject(, "femap.model")
femap.feFileExit

If you want to use Visual C++ to accomplish the same thing, without using the supplied FEMAP
Type Library, the code is much more complex:
{
// Get the CLSID for the FEMAP Application Object
CLSIDclsid;
CLSIDFromProgID( L"femap.model", &clsid );

// Create an instance of the Applications IUnknown interface


IUnknown* pUnk;
HRESULThr = ::CoCreateInstance( clsid, NULL, CLSCTX_SERVER,
IID_IUnknown, (void **) &pUnk );

// Query IUnknown to retrieve a pointer to the IDispatch interface


IDispatch*pDispApp;
hr = pUnk->QueryInterface( IID_IDispatch, (void**)&pDispApp );

OLECHARFAR* szFunction;
DISPIDdispid;
DISPPARAMSdispparamsNoArgs = { NULL, NULL, 0, 0 };
VARIANTretcode;

szFunction = OLESTR("feFileExit");
API-70

hr = pDispApp->GetIDsOfNames( IID_NULL, &szFunction, 1,


LOCALE_USER_DEFAULT, &dispid );
hr = pDispApp->Invoke( dispid, IID_NULL, LOCALE_USER_DEFAULT,
DISPATCH_METHOD, &dispparamsNoArgs, &retcode, NULL, NULL );
}

The example above calls a function with no arguments. Calling functions with array arguments can
be even more complex since these need to be passed and accessed as VARIANT data types, which
must be properly handled in C++.
Using the FEMAP Type Library and ATL makes this function much easier, and more readable. To
do that however, you must first import the Type Library into your application. In your programs
header file, add the following line:
#import d:\\v9\run\femap.tlb named_guids

This will automatically create and include header files that make the API functionality available to
your application.
In addition, you should include the ATL and OLE Automation header files:
#include atlsafe.h
#include oleauto.h

Once you have done this, you can write the above code in the following format.
CLSID clsid;
HRESULT hr=AfxGetClassIDFromString( "femap.model", &clsid);
IUnknown FAR *punk;
if ( hr == S_OK )
{
hr=GetActiveObject(clsid,NULL,&punk);
if ( hr == S_OK )
{
CComQIPtr<femap::Imodel> pModel;
pModel=punk;
pModel->feFileExit();
}
}

Furthermore, once you have the pModel pointer, you can then simply use it like you would use
the femap object in Visual Basic to provide direct access to the remainder of the API.

CLSID clsid;
HRESULT hr=AfxGetClassIDFromString( "femap.model", &clsid);
IUnknown FAR *punk;
if ( hr == S_OK )
{
hr=GetActiveObject(clsid,NULL,&punk);
if ( hr == S_OK )
API-71

{
CComQIPtr<femap::Imodel> pModel;
pModel=punk;

CComQIPtr<femap::IDBase> pEntity;
CComQIPtr<femap::INode> pNode;

pEntity = pModel->feNode;
pNode = pEntity;
pEntity->Get(23);

double xyz[3];

xyz[0] = pNode->x;
xyz[1] = pNode->y;
xyz[2] = pNode->z;
}
}

If you are working with an object that contains array properties you can typically either use the
Variant properties, or direct access to the arrays. For the Variant property - you can use code that
looks like the following:

CComQIPtr<femap::IBCGeom> pBCGeom;
pBCGeom=pModel->feBCGeom;
...
CComVariant vldof;
CComSafeArray<BOOL> ldof(6);
ldof[0]=TRUE;
ldof[1]=TRUE;
ldof[2]=TRUE;
ldof[3]=FALSE;
ldof[4]=FALSE;
ldof[5]=FALSE;
vldof = ldof;
...
pBCGeom->type = 0;
pBCGeom->geomType = 5;
pBCGeom->Layer = 1;
pBCGeom->color = 4;
pBCGeom->vdof = vldof;
...
pBCGeom->setID = 1;
pBCGeom->Put(pBCGeom->NextEmptyID());

To retrieve values from an array property, you can simply reverse this:
CComVariant vldof;
CComSafeArray<BOOL> ldof(6);
API-72

BOOL dof;
...
vldof = pBCGeom->vdof;
ldof = vldof.parray;
dof = ldof.GetAt(0);
...

Or the simpler sequence, which bypasses the Variant...


CComSafeArray<BOOL> ldof(6);
BOOL dof;
...
ldof = pBCGeom->vdof.parray;
dof = pBCGeom->vdof.GetAt(0);
...

Or the even simpler approach which uses direct access to the arrays...
...
pBCGeom->dof[0] = TRUE;
pBCGeom->dof[1] = TRUE;
pBCGeom->dof[2] = TRUE;
pBCGeom->dof[3] = FALSE;
pBCGeom->dof[4] = FALSE;
pBCGeom->dof[5] = FALSE;
...
dof = pBCGeom->dof[0];
...
API-73

3. The FEMAP Application


Object

3.1 Getting Started


The first thing that you must do before you can use any of the other functionality in the FEMAP
API is to access the FEMAP model, or application object. This object provides access to all of the
other methods and properties, including the methods used to create other model objects.
Normally, when you define your femap object, you will want to make it a global object. Once
you get or create the object, you will want it to remain available for the entire duration of your
application. In most cases, you will not want to repeatedly create and destroy this object

3.1.1 Using the FEMAP API Programming Window


The quickest way to get started using the FEMAP API is to open the API Programming window.
This provides access to WinWrap Basic from Polar Engineering and Consulting. It provides a
complete editing, debugging and runtime environment with a language that closely follows Visual
Basic. More importantly, since it is integrated with FEMAP, it is always readily available.

3.1.2 Creating a FEMAP Object


To link your application to FEMAP, you must declare an object and then connect it to FEMAP. In
Basic, this is done via the GetObject or CreateObject functions. To decide which of these to use,
you must decide whether your application needs to access a FEMAP session that is already in
progress - in which case you would use GetObject. If you need to start a new FEMAP session, you
must use CreateObject.
Example of Creating a FEMAP Application Object
The following shows a sample (in Basic) of how to create a FEMAP Application Object, and con-
nect to a running FEMAP session.

Dim App As Object
Set App = GetObject(, "femap.model")

If instead, you wanted to start a new FEMAP session, the proper approach would be:

Dim App As Object
Set App = CreateObject("femap.model")

This call to CreateObject starts a new FEMAP session, but it will not be visible. If you want
FEMAP to be visible, you must then call the feAppVisible method.
API-74

If you have an application that creates a new FEMAP session and then want to exit FEMAP and no
longer have it running as a process, you need to:
Set the femap instance to null or nothing.
femap = nothing
Also, if you are working on most .net platforms, you will also want to call the .net Garbage Col-
lector.
System.GC.Collect()
If you have an application that connects to a running FEMAP session and then want to exit
FEMAP and no longer have it running as a process, you need to call feFileExit () first, then also
perform the steps above.
Issues When Connecting to an Existing Session
When you are connecting to an existing session there are some special considerations. If you are
programming in an environment outside of FEMAP (anything but the FEMAP API Programming
Window), then you must use GetObject to connect. This uses standard OLE/COM mechanisms
to find the FEMAP object, but imposes a limitation. If you have multiple copies of FEMAP run-
ning (multiple processes, not multiple models open in the same FEMAP), GetObject will always
connect you to the process that was started first. This is simply a limitation of the OLE/COM inter-
face and can not be avoided.
If you are using the integrated WinWrap environment (API Programming) however, you can over-
come this limitation by never using GetObject. Instead, you can connect to the current FEMAP
session, no matter how many FEMAP processes are running by using

Dim App As Object
Set App = feFemap()

or more appropriately, to access the object information provided by the Type Library (as described
below)

Dim App As femap.model
Set App = feFemap()

The feFemap() method does the same thing as GetObject, but since the programming environ-
ment is fully integrated with FEMAP, it can always determine the session that launched your appli-
cation and communicate directly with that process. This will work even if you save your Basic
script from the API Programming window and connect it as a User Command to a toolbar button
or menu command.

3.1.3 Using the FEMAP Type Library


As shown above, you can declare your FEMAP object as a generic Object, whether you are pro-
gramming in Visual Basic or any other Basic Editor outside of FEMAP (such as in Excel). If you
do work in Visual Basic however, you have the option of referencing the FEMAP Type library and
explicitly using the objects that it defines (The API Programming Dockable Pane inside of
FEMAP automatically uses the FEMAP Type Library). Using the Type library provides you with
several very helpful benefits. First you will be able to use the Object Browser to view the available
API-75

properties and methods. Even more convenient however when you are working with an object or
method, you will see popup tooltips that give you information regarding the available properties,
or the required parameter lists.
If you are using a different language, like C++, you will always want to use the Type Library, since
it provides much simpler access to the API functionality.
Referencing the Type Library
Before you can use the Type library, you must reference it. The command to do this can be differ-
ent depending on where you are working.
In Visual Basic
In Microsoft
Visual Basic, go to
the Project->Ref-
erences command
(or Project->Add
Reference in VB
.NET) Look
through the list of
available refer-
ences. If you find
femap, make
sure it is checked.
If not, press the
Browse button,
and find the file
femap.tlb,
which should be in
the directory
where you
installed FEMAP.
Once you select
that file, it should
appear in the list of references (possibly at the bottom, and not in alphabetical order). Find the ref-
erence to femap, make sure it is checked and press OK. Although the list may be somewhat dif-
ferent, you should end up with femap checked as an available reference, as shown.
In Visual Basic for Applications
If you are programming with Microsoft Excel, Word or other Office applications, you will be
using Visual Basic for Applications. The process to access the Type library is the same, except that
instead of using the Project->References command, you must use the Tools->References com-
mand.
In Visual C++
In a Visual C++ project, you must add a reference to the Type Library by adding a reference to it in
your header file. Add a line similar to:
#import "path\femap.tlb" named_guids

into your header file. Modify path to accurately locate the Type Library that you want to refer-
ence.
API-76

Using the Object Browser


Once you have referenced the FEMAP Type library, you will be able to use the Object Browser to
review the objects, properties and methods that are available. Simply go to the View->Object
Browser (F2) command. You will see a form that looks something like the one shown here. To
limit the information shown to the FEMAP classes, make sure you change the Project/Library to
femap in the drop-down control near the top of the window. You can then browse through the
list of available classes, and their associated properties and methods. When you select one of these
items, a description of the item, along with any parameter lists is displayed at the bottom of the
browser.

Using the Type Library


To use the information from the Type library, you must declare your objects using one of the avail-
able classes - not using the more generic Object definition. For example, instead of using:
Dim App as Object
you must code,
Dim App as femap.model
Once you have declared the FEMAP object as shown, you still must Get/Set it in the same way
that you did above. Therefore, to use the type library, and access an existing FEMAP session, the
code required would be:
Dim App as femap.model
Set App = GetObject(,femap.model)
or once again, if you are programming in the API Programming window, you should use
API-77

Dim App as femap.model


Set App = feFemap()
to always connect to the current FEMAP session.
To create a new FEMAP session, using
the type library use:
Dim App as femap.model
Set App = CreateOb-
ject(femap.model)
As stated previously, there are definite
advantages to using the type library.
One of which is the popup list of avail-
able properties and methods. For
example, after having defined your
FEMAP/App object, as you type
App. you will see a popup that
shows the available properties and methods. Further, as you continue to type you will see a popup
tooltip that shows you the parameter list for the method that you are working on.

The various classes from the Type library can also be used to define your other objects (not just
App). This is described later in FEMAP Entity Objects on page 1319.

3.2 Working with the User Interface


In addition to the basic decision about whether or not to connect to a running FEMAP session, you
must also decide how you want the user interface of your application to interact with the FEMAP
user interface. There are several approaches that you might want to use, including:
running as two separate applications (no interaction)
running FEMAP as a hidden server
running your application as a FEMAP add-in
embedding FEMAP graphics and messages in your application
Proper setup for each of these options is described in the following sections.

3.2.1 Running as two separate applications


As you might expect, this is possibly the simplest of the approaches to interaction. Since neither
FEMAP, nor your application, need to really know anything about the user interface of the other,
there is no additional setup required. Simply start your application, then get or create your
FEMAP object as described above. If you used GetObject to attach to a running session, there is
nothing more to do. If you used CreateObject however, a new FEMAP session will be started, but
FEMAP will not be visible. To make your FEMAP session visible, after calling CreateObject, you
API-78

must call femap.feAppVisible. You do not need to call feAppVisible if you used GetObject,
because FEMAP will already be visible.
In summary, if you want to run as two separate, on-screen, visible applications, use
Dim App as Object
Set App = GetObject(,femap.model)
to work with an existing FEMAP session. Or to start a new FEMAP, use
Dim App as Object
Dim rc as Long
Set App = CreateObject(femap.model)
rc = App.feAppVisible(True)

3.2.2 Running FEMAP as a hidden server


If you want your application to be the only user interface that is visible to the user, then the process
is very similar to running as two separate applications. In this case however, you will never want to
use GetObject to attach to an existing FEMAP - you will use CreateObject, to create a new, hidden
FEMAP object. Simply use :
Dim App as Object
Set App = CreateObject(femap.model)

At this point a new FEMAP session will be started and through the API you can access any of the
available functionality. You will have to develop your own user interface to present the capabilities
that you want to the user, and then call FEMAP API functions to implement that functionality.
When you are running FEMAP in this mode, in general you will not want to call the numerous
FEMAP API calls that optionally display dialog boxes to ask for user input. If you must call meth-
ods that display dialog or message boxes, you can control whether or not they are displayed using
the DialogAutoAnswer variable. By default the boxes will just be cancelled, however if you
choose to show the dialogs, these methods will still work, and dialog boxes will be displayed,
(although their placement may be somewhat random), even though FEMAP is hidden. If you want
to work in a totally hidden mode, with nothing displayed, you simply have to set the return code
you want - dialog boxes that collect additional user input must be displayed if you want the data to
be properly defined.

3.2.3 Running your application as a FEMAP add-in


If you want your application to become a FEMAP add-in, then you need to follow several addi-
tional steps. In this case, the overall interface that will be visible to the user will be FEMAP. Your
application will become part of that interface. You will probably want to build your application
with its main window as a dialog box.
To begin, simply follow the steps described above for running as two separate, visible applica-
tions. Call GetObject or CreateObject to attach to FEMAP, and call feAppVisible if you created a
new FEMAP session. Finally, you will want to call feAppRegisterAddInPane (Section 3.16.5.2,
"feAppRegisterAddInPane"). In this call you will specify the handles to your application window,
and where in the FEMAP user interface you want it placed. Using this capability, you can build a
user interface that looks something like:
API-79

In this case the add-in application (FEMAP Editor) has been added to a pane in the FEMAP user
interface in the upper-left corner, using the following method:
rc = App.feAppRegisterAddInPane(True, Form1.DefInstance.Handle.ToInt32,
0, False, False, 3, 2)
Note that the messageID window was not specified, because events are not being used.
If you have registered your application as a FEMAP add-in, remember to call feAppRegisterAdd-
InPane again to unregister your application before it exits.

3.2.4 Embedding FEMAP in your application


Instead of embedding your application in the FEMAP user interface, you might also want to
embed parts of FEMAP into your interface. To do this, you embed the entire FEMAP window, and
then you can selectively turn off/hide various portions of the user interface, until you are left with
the parts you want. Probably the most useful capability is that the FEMAP graphics windows can
API-80

be embedded directly into one of your windows. This can provide you all of the graphical capabil-
ities of FEMAP without having to reimplement them yourself, and with a very simple setup.
Once again, you will connect to the FEMAP session using either GetObject or CreateObject. You
will probably want to use CreateObject in most cases, however an existing FEMAP session can be
embedded into your application. Even though this is possible however, you should not normally
grab a users session and change it that dramatically.
3.2.4.1 Embedding FEMAP in your Application
To embed the FEMAP windows into your application, you simply call the feAppEmbed method.
Here you specify the handle to your application window where you want the graphics embedded,
the portion of that window to use for FEMAP. Here is a sample that embeds FEMAP when the but-
ton is pushed:
Dim femap As Object
Dim rc As Long

Private Sub Command1_Click()
Set femap = CreateObject("femap.model")
rc = femap.feAppEmbed(Me.Handle, 120, 10, 660, 420)
End Sub

Alternatively, with a few more calls, you can turn off various parts of the FEMAP interface to
leave just the graphics window.
Dim femap As Object
Dim rc As Long

Private Sub Command1_Click()
API-81

Set femap = CreateObject("femap.model")


rc = femap.feAppManageToolbars("", False)
rc = femap.feAppManageStatusBar(False)
rc = femap.feAppManagePanes("", 0)
rc = femap.feAppManageGraphicsTabs(False)
rc = femap.feAppEmbed(Me.Handle, 120, 10, 660, 420)
End Sub

As your application window is moved around the screen the FEMAP windows will move with it,
staying visible in the same relative location. If you want the FEMAP windows to resize as you
resize your window, then you need to update the FEMAP window as you are resizing. During
resizing, simply keep calling feAppEmbed with new coordinates and sizes. You can still maxi-
mize FEMAP, and if you do, it will fill the client area of your window, possibly covering other
items (like the button above). You can control the look of the FEMAP graphics windows by mod-
ifying the various view options prior to making a view visible.
Note that you do not want to call feAppVisible if you want to run in this mode. Calling
feAppEmbed will automatically make the windows visible, and calling feAppVisible first will
just cause unnecessary flashing of the windows.
3.2.4.2 Capturing the FEMAP Messages
In addition to embedding graphics or messages windows, you may want to capture the text that is
displayed in the FEMAP message window and display it in one of your own windows.
Capturing the FEMAP message stream is a bit more involved than a single method call, however it
is not too difficult. It is very similar to the approach needed for capturing FEMAP events. In addi-
tion, you can turn message capture on and off at any time. The procedure to capture messages is as
follows:
API-82

Get or Create a FEMAP object


Call feAppRegisterMessageHandler to provide the handle to a window which will process the
messages. This does not have to be the window where the messages will be displayed, but it
must be a window with a message loop that you can watch and modify.
Override the standard Windows procedure for the window that you registered. This requires a
call to the Windows function SetWindowsLong, setting the GWL_WNDPROC constant. You
need to Declare this Windows function and define the constant before accessing it.
Write the new Windows procedure to process the WM_COPYDATA messages that you will be
receiving from FEMAP. You should also pass all other messages along to the standard Win-
dows procedure that you overrode. In this procedure, every time you receive a
WM_COPYDATA message, you will extract the text string (and possibly the color) from the
message, process it in any way that you choose, and display it wherever you want.
To stop capturing messages, or when you exit your application, call feAppRegisterMessage-
Handler again to unregister your window and stop FEMAP from sending WM_COPYDATA
messages. You should also replace the original Window message procedure.
Format of the WM_COPYDATA messages
Since Windows only passes messages with wParam and lParam values, both of which are long
values, it is difficult to pass a general text string through a message. The WM_COPYDATA mes-
sage however was created to allow interprocess communication of other data types. In this mes-
sage, the lParam value contains the address of a data structure defined as follows:
Type COPYDATASTRUCT
dwData As Long
cbData As Long
lpData As Long
End Type

cbData contains the number of bytes of data in lpData. FEMAP uses this to pass the text string
for each message in the lpData portion of the structure. You can use the Windows CopyMemory
function to move the data in the structure to a variable defined as a COPYDATASTRUCT, and
then again to extract the string data from lpData.
In addition to the string data, FEMAP also passes the message color/status information in the
dwData field. Refer to the feAppMessage method (Section 3.16.8.1, "feAppMessage") for more
information regarding color values.
Sample Program to Capture and Display FEMAP Messages
The following program is a fairly simple example of what is required to capture and display the
messages from FEMAP. As you can see, it does require quite a bit more work than simply embed-
ding a messages window, but does provide the flexibility of modifying and displaying the mes-
sages in any way you would like.
Each of the declarations in the beginning of this program are necessary for its proper operation.
You must have proper access to these global Windows constants and functions. The MsgWindow-
Proc function is used to override the standard Windows message loop and process the
WM_COPYDATA messages coming from FEMAP. In this case, once the message is extracted, it
is simply added to a listbox control on the main form.
API-83

CaptureMessages connects to FEMAP and sets up the message capture, including defining
MsgWindowProc as the procedure to override message processing. ReleaseMessages terminates
message capture and can be called either at shutdown or if you simply want to stop capturing mes-
sages.
Global femap As Object
Global Const GWL_WNDPROC = (-4&)
Global Const GWL_HWNDPARENT = (-8)
Global Const WM_COPYDATA = &H4A
Global PreviousWindowProc As Long
'===============================================================
Type COPYDATASTRUCT
dwData As Long
cbData As Long
lpData As Long
End Type
'===============================================================
' Public Declarations to provide access to Windows API functions
'---------------------------------------------------------------
Public Declare Function GetWindowLong Lib "user32" _
Alias "GetWindowLongA" (ByVal hwnd As Long, _
ByVal nIndex As Long) As Long
Public Declare Function RegisterWindowMessage Lib "user32" _
Alias "RegisterWindowMessageA" (ByVal lpString As String) _
As Long
Public Declare Function SetWindowLong Lib "user32" _
Alias "SetWindowLongA" (ByVal hwnd As Long, _
ByVal nIndex As Long, ByVal dwNewLong As Long) _
As Long
Public Declare Function CallWindowProc Lib "user32" _
Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, _
ByVal hwnd As Long, ByVal Msg As Long, _
ByVal wParam As Long, ByVal lParam As Long) As Long
Public Declare Sub CopyMemory Lib "kernel32" _
Alias "RtlMoveMemory" _
(hpvDest As Any, hpvSource As Any, ByVal cbCopy As Long)
'================================================================
' Override Window procedure and process WM_COPYDATA messages
'----------------------------------------------------------------
Public Function MsgWindowProc(ByVal hwnd As Long, _
ByVal uMsg As Long, ByVal wParam As Long, _
ByVal lParam As Long) As Long
Dim rc As Long
Dim cds As COPYDATASTRUCT
Dim buf(1 To 255) As Byte
If uMsg = WM_COPYDATA Then
Call CopyMemory(cds, ByVal lParam, Len(cds))
Call CopyMemory(buf(1), ByVal cds.lpData, cds.cbData)
a$ = StrConv(buf, vbUnicode)
a$ = Left$(a$, InStr(1, a$, Chr$(0)) - 1)
API-84

'Add to Listbox
Form1.List1.AddItem (a$)
MsgWindowProc = True
Else
MsgWindowProc = CallWindowProc(PreviousWindowProc, _
hwnd, uMsg, wParam, lParam)
End If
End Function
'================================================================
' Initialize FEMAP object and capture messages
'----------------------------------------------------------------
Public Sub CaptureMessages()
Dim rc As Long
Set femap = GetObject(, "femap.model")
rc = femap.feAppRegisterMessageHandler(True, Form1.hwnd)
PreviousWindowProc = SetWindowLong(Form1.hwnd, GWL_WNDPROC, _
AddressOf MsgWindowProc)
End Sub
'================================================================
' Stop capturing messages
'----------------------------------------------------------------
Public Sub ReleaseMessages()
Dim rc As Long
If PreviousWindowProc Then
rc = femap.feAppRegisterMessageHandler(False, Form1.hwnd)
rc = SetWindowLong(Form1.hwnd, GWL_WNDPROC, _
PreviousWindowProc)
PreviousWindowProc = 0
End If
End Sub
'================================================================

When combined with a Basic Form, this code drives an application that looks like:

In addition to the code shown above, the following code connects the buttons on the form to the
previous code.
API-85

Private Sub Capture_Click()


Call CaptureMessages
End Sub
Private Sub ListInfo_Click()
rc = femap.feFileProgramRun(False, True, False, "{LI}")
End Sub
Private Sub Release_Click()
Call ReleaseMessages
End Sub
Private Sub Form_Unload(Cancel As Integer)
Call ReleaseMessages
End Sub

3.2.5 API Performance


As described in the previous sections, there are many ways to integrate your API application with
FEMAP. No matter which of these methods you use however, the overall performance of your
application can vary greatly depending on how you implement the integration. Whenever it is vis-
ible, the FEMAP user interface is being continually updated to reflect the changing states of your
models. While this is very desirable in most situations, and certainly desirable when running
FEMAP interactively, it can result in substantial overhead during API calls. There are two basic
approaches that you can take to prevent this overhead, and substantially improve the performance
of your application:
1. Hide the FEMAP user interface using feAppVisible( ). The user interface is not updated if it is
not visible and therefore the API calls will run faster. If you started FEMAP from your API, then it
will start in the invisible state, so if you never call feAppVisible( True ), to make it visible, you
will not have to hide it. If you attach to a running FEMAP session, then calling feAppVisible(
False ) will hide it and improve performance. Using this hide/show approach certainly works,
however it will result in FEMAP disappearing and reappearing on the screen which might not be
desirable.
2. Lock the FEMAP user interface using feAppLock( ). This is the method that you will typically
want to use unless you are launching your own FEMAP session and running it totally in the invis-
ible state (with-out calling feAppVisible( True ) ). Using this function simply locks the user inter-
face so that it is not usable, nor updated. This function also has the added benefit of preventing the
user from accidentally picking commands or changing anything while your application is running.
Depending on what your application does, you will either want to call feAppLock( ) at the begin-
ning of your application, and feAppUnlock( ) at the end, or place feAppLock( ) / feAppUnlock( )
pairs around API intensive portions of your application (like commands), so that the FEMAP user
interface updates at the end of that portion, but does not slow down the work being performed.
You must always pair feAppLock( ) and feAppUnlock( ) calls - there must be an equal number of
feAppUnlock( ) calls as there were feAppLock( ) calls.
A few simple tests using these methods show that using them can improve the perfor-
mance of your application by a factor of 10 or more in areas where many API calls are
being made, so it is worth the time to implement these simple methods.
API-86

3.3 FEMAP Object Properties


Methods and Properties
The following sections describe the methods and properties that are available directly from the
FEMAP application object. In general, these provide access to global data that applies to your
entire model, and access to functionality that is equivalent to many of the interactive menu com-
mands. Access to lower level functionality, like querying and editing of individual entity data, is
available through the other objects that you can create from the application object.
The FEMAP object properties are global in nature. Changing their values will have an immediate
impact on the FEMAP session. Use care when changing these (or any other) properties.
In these tables, you will see some properties that list two names - one of which is an array, the
other a Variant. Refer to Section 1.2.7, "Multiple Definitions of Array Properties" for more infor-
mation.

3.3.1 Global Properties - File menu commands


These Global Properties are used to set options for various commands on the File menu in
FEMAP. These commands are File,Import, Geometry; File, Page Setup; and File, Preferences in
FEMAP. Depending on the Global property, it may require an Integer (INT4), Real (REAL8),
Boolean (BOOL), or String (STRING). The type is noted for each Global Property. Each tab of the
Preferences dialog box is discussed in greater detail below.
3.3.1.1 File, Import, Geometry - Geometry Replacement Options
These Global Properties set the options on the Geometry Replacement Options dialog box after a
file has been selected for import and the Update Existing Geometry option is available:
Geometry Replacement Options API-87

Geometry Replacement Options


Property Description Type
If True, active Parasolid geometry will be updated
with the geometry being imported. This option is
Solid_UpdateActive BOOL
actually on the Solid Model Read Options dialog
box and allows access to the other options.
Mesh Sizing
The type of mesh resizing to do if you are updating
Parasolid geometry on import: 0=Keep existing
Solid_UpdateResizeMode INT4
sizes, 1=Update sizes on curves that exceed a cer-
tain length change tolerance, 2=Resize all.
The tolerance above which curve mesh sizes will
be recomputed when curves change length during
Solid_UpdateResizeTol import of updated Parasolid geometry. Only used REAL8
if the appropriate Solid_UpdateResizeMode is
used.
Update Options
If True, active Parasolid geometry and any mesh
on that geometry will be deleted if updated geome-
Solid_UpdateDelete BOOL
try is imported. Only used if Solid_UpdateActive
is also True.
If True, the geometry will be updated using Para-
Solid_UpdateParasolidIdent solid Identifiers. Only used if Solid_UpdateActive BOOL
is also True.
If True, the existing geometry will be updated to
Solid_UpdateMaterialData use the Material Data of the imported solid. Only BOOL
used if Solid_UpdateActive is also True.
API-88 Page Setup Properties

3.3.1.2 File, Page Setup


These Global Properties are used to set the options on the Page Setup dialog box:

Page Setup Properties


Property Description Type
Page Header and Footer
PgSetup_Header Text for Print header. STRING
PgSetup_Footer Text for Print footer. STRING
PgSetup_DefaultHdrFont If True, use the default system font for header/footer. BOOL
Name of font to use for header/footer. Only used if
PgSetup_HdrFont STRING
PgSetup_DefaultHdrFont=False.
PgSetup_HdrFontSize Size in points of the header/footer font. INT4
Other Printed Text
PgSetup_DefaultTextFont If True, use the default system font for header/footer. BOOL
API-89

Page Setup Properties


Property Description Type
Name of font to use for other text. Only used if
PgSetup_TextFont STRING
PgSetup_DefaultTextFont=False.
PgSetup_TextFontSize Size in points of the font for printed text. INT4
Page Margins
PgSetup_LeftMargin REAL8
PgSetup_RightMargin REAL8
Page margins.
PgSetup_TopMargin REAL8
PgSetup_BottomMargin REAL8
Plot and Metafile Style
PgSetup_PrintBorder If True, a border is drawn around the plot. BOOL
If True, black and white colors are reversed for print-
PgSetup_SwapBW BOOL
ing and metafiles.
PgSetup_Monochrome If True, print is done in monochrome. BOOL
If True, the background is not filled in a printer resolu-
PgSetup_TransparentBkgd BOOL
tion print or Metafile.
Has been removed. Use Pref_ResPenMethod =1 and
PgSetup_PenScale INT4
Pref_ResPenScale instead
Has been removed. Use Pref_ResCopySaveMethod =1
PgSetup_RenderScale REAL8
and Pref_ResCopySaveScale instead
Plot Position and Size
If True, plots will maintain the same aspect ratio as the
PgSetup_MaintainAspect BOOL
on-screen window.
If True, the plotting dimensions in device units (pixels)
must be an integer multiple of the dimensions of the
PgSetup_IntegerScaling BOOL
on-screen window. This is primarily used for printing
bitmaps with the highest possible accuracy.
If True, plot will fill the printer margins. If False, use
PgSetup_FillMargins BOOL
the custom height and width.
PgSetup_CustomHeight Height and width for custom print size (only used if REAL8
PgSetup_CustomWidth PgSetup_FillMargins = False). REAL8
PgSetup_VertAlign Vertical alignment: T/B Center=0, Top=1, Bottom=2. INT4
PgSetup_HorzAlign Horizontal alignment: L/R Center=0, Left=1, Right=2. INT4
API-90 Messages Preference Properties

3.3.1.3 File, Preferences - Messages tab


These Global Properties are used to set the options on the Messages tab of the Preferences dialog
box:

Messages Preference Properties


Property Description Type
General
Number of lines of text to be saved for scroll-
Pref_ScrollBackLines INT4
back in the Messages and Lists window.
API-91

Messages Preference Properties


Property Description Type
Number of times an error message will be repeated
Pref_MsgWndRepeatedErrors before listing stops. A final message will be listed INT4
with an error count.
Fonts and Colors
Name of font used for messages (other than list-
Pref_MessageFont STRING
ings) in the Message Window.
Pref_MsgWndFontSize Message window font size in points. REAL8
Name of font (fixed-pitch) used for listings in the
Pref_ListingFont STRING
Message Window.
Name of font used for API and Program File win-
Pref_ProgramFont STRING
dows.
Font size of the font used for the API and Program
Pref_ProgramFontSize REAL8
File panes
Pref_MsgWndBackColor Message window Background Color. INT4
Pref_MsgWndTextColor Message window Text Color. INT4
If True, normal Text written to the Message Win-
Pref_MsgWndTextBold BOOL
dow uses a bold font
Pref_MsgWndCmdColor Message window Command Color INT4
If True, Command names written to the Message
Pref_MsgWndCmdBold BOOL
Window use a bold font
Pref_MsgWndHighColor Message window Highlighted Text Color. INT4
If True, Highlighted Text written to the Message
Pref_MsgWndHighBold BOOL
Window uses a bold font
Pref_MsgWndWarnColor Message window Status Message Color. INT4
If True, Status Messages written to the Message
Pref_MsgWndWarnBold BOOL
Window use a bold font
Pref_MsgWndErrorColor Message window Error Color. INT4
If True, Error messages written to the Message
Pref_MsgWndErrorBold BOOL
Window use a bold font
Name of fixed-pitch font to be used in Messages
Pref_MsgWndFont STRING
and Lists window.
API-92 Views Preference Properties

3.3.1.4 File, Preferences - Views tab


These Global Properties are used to set the options on the Views tab of the Preferences dialog box:

Views Preference Properties


Property Description Type
Startup View (from View Library)
Pref_LibViewNumber Index of default view in the view library. INT4
Background Bitmaps (Render Only)
API-93

Views Preference Properties


Property Description Type
Pref_ViewBkgdBitmap Filename for the Background bitmap. STRING
Pref_ViewLogo Filename for the Logo bitmap. STRING
If True, the View Logo is defined in Screen Reso-
lution, and will be scaled when printed. If False, it
Pref_ViewLogoScreenRes BOOL
is in Print Resolution and is scaled for Screen dis-
play.
Picture Copy
Controls whether comma-separated text is sent to
Pref_PictureCopyTextForXY the clipboard when an XY plot is copied. True = BOOL
Include Text.
Controls whether a Windows Metafile is sent to
Pref_MetafileToClip the clipboard when the graphics area is copied. BOOL
True = Include Metafile format.
Picture Save Defaults
Controls the default picture format for Picture
Pref_PictureFormat INT4
Save. 0=BMP, 1=JPG, 2=PNG, 3=GIF, 4=TIF
Controls the default animation format for Picture
Pref_AnimationFormat INT4
Save. 0=BMP, 1=BMP series, 2=AVI, 3=GIF
Pref_JTFileVersion Sets the default file version for JT files INT4
If True, Iconified views can be captured when sav-
Pref_RenderCaptureIconified BOOL
ing a picture.
Picture Save Defaults (Resolution Options)
Specifies the Print Resolution method (0=Printer,
Pref_ResPrintMethod INT4
1=Screen, 2=Screen Scaled By)
Scale factor used by Screen Scaled By method in
Pref_ResPrintScale REAL8
the Print Resolution section
Specifies the Copy/Save Resolution method
(0=Screen, 1=Screen Scaled By, 2=Screen Scaled
Pref_ResCopySaveMethod INT4
With Width, 3=Screen Scaled With Height,
4=Fixed Size)
Scale factor used by Screen Scaled By method in
Pref_ResCopySaveScale REAL8
the Copy/Save Resolution section
Resolution used by Screen Scaled With Width
Pref_ResScaleWithWidth INT4
method in the Copy/Save Resolution section
API-94

Views Preference Properties


Property Description Type
Resolution used by Screen Scaled With Height
Pref_ResScaleWithHeight INT4
method in the Copy/Save Resolution section.
Resolution used by Fixed Size method to set the
Pref_ResFixedWidth INT4
Width in the Copy/Save Resolution section
Resolution used by Fixed Size method to set the
Pref_ResFixedHeight INT4
Height in the Copy/Save Resolution section
Specifies the Pen Width method
Pref_ResPenMethod INT4
(0=Auto, 1=Manual Factor)
Sets Line value in the Pen Width and Font Size
Pref_ResPenScale INT4
section
Sets Font value in the Pen Width and Font Size
Pref_ResFontScale INT4
section
Sets the value for Screen Scale in the Logo and
Pref_ResScreenLogoScale REAL8
Background Bitmap Scaling section
Sets the value for Print Scale in the Logo and
Pref_ResPrintLogoScale REAL8
Background Bitmap Scaling section
Sets the value for Copy/Save Scale in the Logo
Pref_ResCopySaveLogoScale REAL8
and Background Bitmap Scaling section
Picture Save Defaults (GIF Options)
The color options for creating a GIF picture file.
Pref_GIFColorOpt INT4
1=Network, 2=Octree, 3=Color Diffusion (Dither)
Pref_GIFAnimationDelay The delay between frames of an animated GIF file INT4
Pref_GIFOptimized Toggles the Optimized check box on/off BOOL
Controls whether Animations will be saved in GIF
Pref_GIFFrameSeries formats as a series of files or a single animated BOOL
GIF. True=Save GIF Frame Series.
Options
Controls whether the workplane will be visible
Pref_WorkplaneNotVisible when you start a new model. True = Workplane BOOL
Never Visible in New View
Obsolete - see Pref_DefContourPalette
Pref_AltContourPalette BOOL

Default Contour Palette 0=Standard, 1=No


Pref_DefContourPalette Magenta, 2=Temperature, 3=Red,Yellow,Green, INT4
4=Gray
API-95

Views Preference Properties


Property Description Type
Pref_AspectRatio Aspect ratio for new views. REAL8
Toggles 2D Tensor Plot View Options Override
Pref_2DTensorPlotOverride BOOL
on/off
If True, Max/Min data is automatically shown and
Pref_ViewPostDynamicMaxMin updated as you change output sets/vectors in the BOOL
Post Data dialog
View and Dynamic Rotation
Angle for incremental rotation in the View, Rotate
Pref_DeltaAngle REAL8
command.
Dynamic rotation mode: 0=Fast Redraw,
Pref_ViewDynamicMode INT4
1=Reduced Bitmap, 2=Full Bitmap.
Pref_ViewDynamSpeed Speed of dynamic rotation. REAL8
Pref_ViewDimetric Text for Dimetric button in View, Rotate. STRING
Pref_ViewIsometric Text for Isometric button in View, Rotate. STRING
Pref_ViewTrimetric Text for Trimetric button in View, Rotate. STRING
Pref_AngleIsometric[0..2]
or REAL8
VARIANT vPref_AngleIsometric
Pref_AngleDimetric[0..2]
The rotation angles assigned to the corresponding
or REAL8
buttons in the View, Rotate command.
VARIANT vPref_AngleDimetric
Pref_AngleTrimetric[0..2]
or REAL8
VARIANT vPref_AngleTrimetric
API-96 Graphics Preference Properties

3.3.1.5 File, Preferences - Graphics tab


These Global Properties are used to set the options on the Graphics tab of the Preferences dialog
box:

Graphics Preference Properties


Property Description Type
Graphics Options
If True, OpenGL will attempt to use Hardware
Pref_RenderHW BOOL
Acceleration.
API-97

Graphics Preference Properties


Property Description Type
Pref_PerformanceGraphics If True, Performance Graphics mode is enabled BOOL
If True, Render mode will Use Midside Nodes
Pref_RenderMidside BOOL
when drawing elements.
Pref_RenderMemoryOpt If True, Graphics Memory Optimization is on BOOL
Pref_RenderMultiModelMem If True, Multi-Model Memory is on BOOL
Controls drawing of Beam Facet Edges between
Pref_RenderBeamEdges BOOL
cross sections of beams
Pref_RenderSmoothLines If True, uses antialiasing to render smooth lines BOOL
If True, graphics are completely regenerated after
Pref_RenderAutoRegen BOOL
every command
If True, enables faster, in-memory selection of
Pref_RenderFastPick BOOL
entities
Pref_RenderXORPicking If True, XOR Picking Graphics in on BOOL
If True, element and surface edges are drawn as
Pref_RenderEdgesAsLines BOOL
lines rather than using edge flags.
Pref_RenderDialogRefresh If True, Dialog Refresh in on BOOL
0=No use of Vertex Arrays, 1=Partial, 2=Full for
Pref_RenderVertexArrays INT4
all graphics
Prevents removal of trailing zeroes in values such
Pref_RenderTrailingZeroes BOOL
as contour legend labels
Sets the maximum amount of memory that can be
Pref_RenderMaxVBOMB used by VBOs if this is exceeded, any remaining INT4
graphics data is drawn using vertex arrays
Any block of graphics data smaller than this value
Pref_RenderMinVBOB will not use VBOs as large numbers of small INT4
VBOs is not more efficient than vertex arrays
Sets the value for Max Mag, must be between
Pref_RenderMaxMagnification REAL8
10,000 and 1.0E+15
Include In Dynamic Rotation
API-98

Graphics Preference Properties


Property Description Type
The flags used to indicate which entities will be on
for dynamic rotation. 0-Point, 1-Curve, 2-Surface,
3-Boundary, 4-Volume, 5-Text, 6-Coordinate Sys,
Pref_RenderRotate[0..21]
7-Node, 8-Element, 9-Constraint, 10-Load, 11-
or BOOL
Connections, 12-Fill, 13-Filled Edges, 14-Shad-
VARIANT vPref_RenderRotate
ing, 15-Undeformed, 16-Labels, 17-Workplane,
18-Mesh Size, 19-Smooth Lines, 20-Elements as
Free Edge, 21-Element Symbols
Textures
Pref_RenderTex2D If True, uses 2D Texture Mapping BOOL
Pref_RenderTexSmooth If True, uses smooth textures BOOL
Pref_RenderTexAllTri If True, forces all triangles for texture mapping BOOL
Pref_RenderTexNumber Max Number of Textures INT4
Block Control
Sets the Block Size. Available values are 4, 8, 16,
Pref_RenderBlockSize INT4
32, 64, 128, 256, 512, and 1024
Search Depth for adding entities to graphics sys-
Pref_RenderSearchDepth INT4
tem
Advanced/Debug Options
Pref_RenderTiming If True, prints render timings BOOL
Pref_RenderDebugElapsedTime If True, prints elapsed times BOOL
Pref_RenderDebugAllTime If True, prints All times BOOL
Pref_RenderDebugOGLErrors If True, prints OpenGL errors (if there are any) BOOL
Alignment of Bitmaps stored for OpenGL - do not
Pref_RenderBitmapAlignment INT4
change.
Controls selection of Graphics Descriptors -
Pref_RenderPixelFormat INT4
0=Automatic
Value needed for Delay in synchronizing OpenGL
Pref_RenderBitBltDelay INT4
and GDI on some graphics cards (0..1000)
This option writes a frames per second calculated
from the display time without having to have any
of the debug messages on. It gives a more accurate
Pref_RenderDebugFrameRate BOOL
timing while dynamically rotating. Used to deter-
mine which graphics preferences give the best per-
formance.
API-99

Graphics Preference Properties


Property Description Type
Outputs information about memory used by VBOs
0 No messages
Pref_RenderVBOUsage INT4
1 Only when VBO memory exceeded
2OutputdetailedVBOmemoryusage
API-100 User Interface Preference Properties

3.3.1.6 File, Preferences - User Interface tab


These Global Properties are used to set the options on the User Interface tab of the Preferences
dialog box:

User Interface Preference Properties


Property Description Type
Menus and Dialog Boxes
If True, use an Alternate Color Scheme and style
Pref_AltTheme BOOL
for the user interface
API-101

User Interface Preference Properties


Property Description Type
Pref_RepeateCreate If True, entity Create Commands will repeat. BOOL
If True, each dialog position is remembered during
a session and if a dialog is redisplayed it will be
Pref_RememberDialogPos BOOL
located at the same position as when it was last
closed.
If True, redefine certain accelerator keys to access
Pref_AltAccelerator BOOL
Top, Bottom, ... Views.
Pref_ConfirmDelete If True, Ask for Confirmation Before Delete is on. BOOL
If True, shows angles from 0 to 360 instead of -180
Pref_Show0To360Angles BOOL
to 180.
Sets the Fast Output Delete option. 0=Confirm,
Pref_FastOutputDelete INT4
1=Fast (No Undo), and 2=Preserve Undo.
Pref_RecentlyUsedFiles Number of files on the Most Recently Used list. INT4
Graphical Selection
Pref_TrackMousePick Activates dynamic selection tracking. BOOL
Controls selection of entities when screen area
Pref_PickAllInside BOOL
picking is used.
Controls the default Pick Method. 0=Pick Normal,
Pref_PickMethod INT4
1=Pick Query, and 2=Pick Front
Controls the default Snap Method. 0=Screen,
Pref_SnapTo INT4
1=Grid, 2=Point, 3=Node, 4=Smart
Delay before Selector Tooltips appear (in tenths of
Pref_TooltipDelay INT4
a second).
Length of time before Selector Tooltips automati-
Pref_TooltipDuration INT4
cally disappear (in tenths of a second).
Mouse Interface
Controls the direction of zoom when you turn the
Pref_ReverseMouseWheel BOOL
mouse wheel
When on, the middle mouse button (wheel) can be
Pref_MiddleMouseButtonOK clicked without moving the mouse to OK dialog BOOL
boxes
If True, hold down Shift to Zoom, and Ctrl for Pan
Pref_ReversePanZoom BOOL
in Dynamic Rotation. If False, reverse the keys.
API-102

User Interface Preference Properties


Property Description Type
Adjusts how much the cutting plane moves when
Pref_PlaneWheelFactor holding Ctrl+scrolling the mouse for Dynamic REAL8
Cutting Plane and Model Cutting Plane
Meshing Toolbox
Pref_TbxExpandActive If True, only the active tool will be expanded BOOL
0=AutoRemesh, 1=Track Changes, 2=Disable
Pref_TbxAutomesh INT4
Remesh
Dockable Panes
If True, the docking panes will animate when you
Pref_AnimatePanes BOOL
click on their tab to make them visible.
If True, the docking panes will always have their
captions placed on the top of the pane. Otherwise
Pref_PaneCaptionsOnTop BOOL
they are either on the top or left, whichever takes
less space.
If True, the docking position indicators will be
Pref_PaneAltDockSymbols shown using the original symbols instead of the BOOL
new symbols.
If True, the Legacy XY plotting in Views will be
Pref_LegacyXYPlotting BOOL
enabled.
Model Info
Limits the max number of items of each type to
Pref_ModelInfoMaxEntity INT4
show in the Model Info tree.
Controls whether automatic titles will be given to
Pref_AutomaticTitles BOOL
otherwise untitled entities.
Show Entities Defaults
Sets the Mode for the Show Entities Defaults. 0 =
Pref_ShowMode Highlight, 1 = Transparent Highlight, and INT4
2 = Show Selected Only
Pref_ShowLabels When True, Show Labels will be on BOOL
Pref_ShowNormals When True, Show Normals will be on BOOL
Pref_ShowColor Sets color value for Highlight Color INT4
International Localization
When on, uses the appropriate settings . and ,
Pref_UseRegionDecimalChar BOOL
based on the region being used by Windows OS
API-103

User Interface Preference Properties


Property Description Type
When on, ignores delimiters when pasting from
Pref_TabPasteIgnoreDelimeter BOOL
the clipboard, provided a tab exists between values
API-104 Database Preference Properties

3.3.1.7 File, Preferences - Database tab


These Global Properties are used to set the options on the Database tab of the Preferences dialog
box:

Database Preference Properties


Property Description Type
Database Options
If True, any existing model will be copied before
Pref_BackupModel BOOL
each save.
API-105

Database Preference Properties


Property Description Type
If True, any model will undergo a File, Rebuild
Pref_CleanupModell BOOL
before being saved to remove unused space.
If True, scratch files are automatically deleted
Pref_DeleteScratchFile BOOL
whenever you exit a model.
Pref_PreserveNextID When True, Preserve Next ID during Rebuild in on BOOL
Issues a warning when free space on the model
Pref_DBLowDiskWarning scratch disk falls below this amount (in MByte). INT4
0=Disable.
Pref_DBUndoLevels Maximum number of undo levels. INT4
Database Performance
Sets max percentage value to use for Database
Pref_DBCacheMaxMemoryPct INT4
Memory Limit
Pref_DBCacheBlocksPerPage Number of blocks per page in the database cache. INT4
Pref_DBCacheMaxLabel Maximum cached database node/element label. INT4
Choose and Open/Save Method. 0=Window I/O,
1=C I/O, 2=Windows 64K I/O, and 3=C 64K I/O.
Pref_OpenSaveMethod See Section 3.4.12.5, "feRunIOTest" for informa- INT4
tion about running the Read/Write Test to deter-
mine the preferred value for Open/Save Method
Timed Save
Pref_TimedSaveOn Turns on Timed Save automatically. BOOL
Pref_TimedSaveNotify Sets Timed Save to notify you before saving. BOOL
Pref_TimedSaveInterval Number of minutes between timed saves. INT4
Pref_TimedSaveCommands Number of commands between timed saves. INT4
Scratch Directory
Pref_DBScratch Path (no filename) for model scratch file. STRING
API-106 Geometry/Model Preference Properties

3.3.1.8 File, Preferences - Geometry/Model tab


These Global Properties are used to set the options on the Geometry/Model tab of the Preferences
dialog box:

Geometry/Model Preference Properties


Property Description Type
Geometry Preferences
Pref_GeomEngine Default geometry engine: 0=Std, 1=Parasolid. INT4
API-107

Geometry/Model Preference Properties


Property Description Type
Solid geometry scale factor used to make sure that
geometry fits inside the limited coordinate spaces
used by the solid modeling engines. This value is
copied to Info_GeometryScale when a model is
started, and is used throughout that model.
Pref_GeometryScale REAL8
Setting this value to:
39.37 will change the drop-down to 0..Inches
1.0 will change the drop-down to 1..Meters
1000.0 will change the drop-down to 2..Millimeters
All other values change the drop-down to 3..Other
Default for construction geometry: 0=Delete,
Pref_ConstructionGeometry INT4
1=Move To No Pick Layer, 2=Do Nothing.
If True, geometry scale factors are automatically
Pref_GeomScaleAdjust BOOL
adjusted to match the modeling scale factor.
If True, imported geometry is run through additional
Pref_GeomOptimize BOOL
options in Parasolid to try and simplify the geometry
Load Expansion on Midside Nodes
Adjustment factor for load expansion on midside
Pref_GeomLoadEdgeFactor REAL8
nodes along edges.
Adjustment factor for load expansion on midside
Pref_GeomLoadTriFactor REAL8
nodes on tri faces.
Adjustment factor for load expansion on midside
Pref_GeomLoadQuadFactor REAL8
nodes on quad faces.
Enables default adjustment of nodal loads at the
Pref_AdjMidsideGeomLoad midside of parabolic elements during geometry load BOOL
expansion.
Log File
Enables a log file for all solid modeling operations
Pref_GeomLogFile BOOL
(for debugging purposes only).
Other Load Options
Controls whether loads should be rotated or other-
wise modified when the mesh or geometry the load
is applied on has been copied, scaled, rotated, or
Pref_LoadModifyRotate BOOL
reflected. Also, if the model has been modified using
Modify, Move By, CSys; Modify, Rotate By, CSys;
Modify, Align, CSys; Modify, Scale, CSys
Meshing and Properties
API-108

Geometry/Model Preference Properties


Property Description Type
Allows the boundary mesher to allocate additional
Pref_MeshInMemory BOOL
memory to speed up its operation.
Chooses the Fast Tri Mesher as the default triangular
Pref_FastTriMesh BOOL
mesher.
Pref_AltSectionProp If True, uses the alternate section property calculator BOOL
0 = 0..Parametric, 1 = 1..Equal Length, 2 = 2..Para-
Pref_LengthBasedMeshSize INT4
metric/Equal Length
Element Quality button - Femap tab
Pref_ElemQualAspectRatio If True, Aspect Ratio element check is on BOOL
Pref_ElemQualAspectRatioVal Value for Aspect Ratio element check REAL8
Pref_ElemQualTaper If True, Taper element check is on BOOL
Pref_ElemQualTaperVal Value for Taper element check REAL8
Pref_ElemQualAltTaper If True, Alternate Taper element check is on BOOL
Pref_ElemQualAltTaperVal Value for Alternate Taper element check REAL8
Pref_ElemQualIntAngles If True, Internal Angles element check is on BOOL
Pref_ElemQualIntAnglesVal Value for Internal Angles element check REAL8
Pref_ElemQualSkew If True, Skew element check is on BOOL
Pref_ElemQualSkewVal Value for Skew element check REAL8
Pref_ElemQualWarping If True, Warping element check is on BOOL
Pref_ElemQualWarpingVal Value for Warping element check REAL8
Pref_ElemQualNastranWarping If True, Nastran Warping element check is on BOOL
Pref_ElemQualNastranWarpingVal Value for Nastran Warping element check REAL8
Pref_ElemQualTetCollapse If True, Tet Collapse element check is on BOOL
Pref_ElemQualTetCollapseVal Value for Tet Collapse element check REAL8
Pref_ElemQualJacobian If True, Jacobian element check is on BOOL
Pref_ElemQualJacobianVal Value for Jacobian element check REAL8
Pref_ElemQualCombined If True, Combined Quality element check is on BOOL
Pref_ElemQualCombinedVal Value for Combined Quality element check REAL8
Pref_ElemQualExplicitTime If True, Explicit Time Step element check is on BOOL
API-109

Geometry/Model Preference Properties


Property Description Type
Pref_ElemQualExplicitTimeVal Value for Explicit Time Step element check REAL8
Element Quality button - NX Nastran tab
Pref_ElemQualQuadSkew If True, QUAD SKEW element check is on BOOL
Pref_ElemQualQuadSkewVal Value for QUAD SKEW element check REAL8
Pref_ElemQualQuadTaper If True, QUAD TAPER element check is on BOOL
Pref_ElemQualQuadTaperVal Value for QUAD TAPER element check REAL8
Pref_ElemQualQuadWarp If True, QUAD WARP element check is on BOOL
Pref_ElemQualQuadWarpVal Value for QUAD WARP element check REAL8
Pref_ElemQualQuadIAMin If True, QUAD IAMIN element check is on BOOL
Pref_ElemQualQuadIAMinVal Value for QUAD IAMIN element check REAL8
Pref_ElemQualQuadIAMax If True, QUAD IAMAX element check is on BOOL
Pref_ElemQualQuadIAMaxVal Value for QUAD IAMAX element check REAL8
Pref_ElemQualTriaSkew If True, TRIA SKEW element check is on BOOL
Pref_ElemQualTriaSkewVal Value for TRIA SKEW element check REAL8
Pref_ElemQualTriaIAMax If True, TRIA IAMAX element check is on BOOL
Pref_ElemQualTriaIAMaxVal Value for TRIA IAMAX element check REAL8
Pref_ElemQualTetAspectRatio If True, TETRA AR element check is on BOOL
Pref_ElemQualTetAspectRatioVal Value for TETRA AR element check REAL8
Pref_ElemQualTetEPLR If True, TETRA EPLR element check is on BOOL
Pref_ElemQualTetEPLRVal Value for TETRA EPLR element check REAL8
Pref_ElemQualTetDetJ If True, TETRA DETJ element check is on BOOL
Pref_ElemQualTetDetJVal Value for TETRA DETJ element check REAL8
Pref_ElemQualHexAspectRatio If True, HEX AR element check is on BOOL
Pref_ElemQualHexAspectRatioVal Value for HEX AR element check REAL8
Pref_ElemQualHexEPLR If True, HEX EPLR element check is on BOOL
Pref_ElemQualHexEPLRVal Value for HEX EPLR element check REAL8
Pref_ElemQualHexDetJ If True, HEX DETJ element check is on BOOL
Pref_ElemQualHexDetJVal Value for HEX DETJ element check REAL8
API-110

Geometry/Model Preference Properties


Property Description Type
Pref_ElemQualHexWarp If True, HEX WARP element check is on BOOL
Pref_ElemQualHexWarpVal Value for HEX WARP element check REAL8
Pref_ElemQualPenAspectRatio If True, PENTA AR element check is on BOOL
Pref_ElemQualHexAspectRatioVal Value for PENTA AR element check REAL8
Pref_ElemQualPenEPLR If True, PENTA EPLR element check is on BOOL
Pref_ElemQualPenEPLRVal Value for PENTA EPLR element check REAL8
Pref_ElemQualPenDetJ If True, PENTA DETJ element check is on BOOL
Pref_ElemQualPenDetJVal Value for PENTA DETJ element check REAL8
Pref_ElemQualPenWarp If True, PENTA WARP element check is on BOOL
Pref_ElemQualPenWarpVal Value for PENTA WARP element check REAL8
Pref_ElemQualPyrAspectRatio If True, PYR AR element check is on BOOL
Pref_ElemQualPyrAspectRatioVal Value for PYR AR element check REAL8
Pref_ElemQualPyrEPLR If True, PYR EPLR element check is on BOOL
Pref_ElemQualPyrEPLRVal Value for PYR EPLR element check REAL8
Pref_ElemQualPyrWarp If True, PYR WARP element check is on BOOL
Pref_ElemQualPyrWarpVal Value for PYR WARP element check REAL8
Pref_ElemQualPyrDetJ If True, PYR DETJ element check is on BOOL
Pref_ElemQualPyrDetJVal Value for PYR DETJ element check REAL8
Output Orientation button
Defines raw orientation of isotropic material solid
element output vector data
Pref_OrientSolidIsoOutput 0 = Material Direction INT4
1 = Global Rectangular
2 = Element
Defines raw orientation of anisotropic material solid
element output vector data
Pref_OrientSolidAnisoOutput 0 = Material Direction INT4
1 = Global Rectangular
2 = Element
API-111

Geometry/Model Preference Properties


Property Description Type
Defines raw orientation of hyperelastic material
solid element output vector data
Pref_OrientSolidHyperOutput 0 = Material Direction INT4
1 = Global Rectangular
2 = Element
Defines raw orientation of Tria3 stress output vector
data
Pref_OrientTria3StressOutput INT4
0 = First Edge
1 = Midside Location
Defines raw orientation of Tria3 strain output vector
data
Pref_OrientTria3StrainOutput INT4
0 = First Edge
1 = Midside Location
Defines raw orientation of Tria3 force output vector
data
Pref_OrientTria3ForceOutput INT4
0 = First Edge
1 = Midside Location
Defines raw orientation of Tria6 stress output vector
data
Pref_OrientTria6StressOutput INT4
0 = First Edge
1 = Midside Location
Defines raw orientation of Tria6 strain output vector
data
Pref_OrientTria6StrainOutput INT4
0 = First Edge
1 = Midside Location
Defines raw orientation of Tria6 force output vector
data
Pref_OrientTria6ForceOutput INT4
0 = First Edge
1 = Midside Location
Defines raw orientation of Quad4 stress output vec-
tor data
Pref_OrientQuad4StressOutput 0 = First Edge INT4
1 = Midside Location
2 = Diagonal Bisector
Defines raw orientation of Quad4 strain output vec-
tor data
Pref_OrientQuad4StrainOutput 0 = First Edge INT4
1 = Midside Location
2 = Diagonal Bisector
API-112

Geometry/Model Preference Properties


Property Description Type
Defines raw orientation of Quad4 force output vec-
tor data
Pref_OrientQuad4ForceOutput 0 = First Edge INT4
1 = Midside Location
2 = Diagonal Bisector
Defines raw orientation of Quad8 stress output vec-
tor data
Pref_OrientQuad8StressOutput 0 = First Edge INT4
1 = Midside Location
2 = Diagonal Bisector
Defines raw orientation of Quad8 strain output vec-
tor data
Pref_OrientQuad8StrainOutput 0 = First Edge INT4
1 = Midside Location
2 = Diagonal Bisector
Defines raw orientation of Quad8 force output vec-
tor data
Pref_OrientQuad8ForceOutput 0 = First Edge INT4
1 = Midside Location
2 = Diagonal Bisector
Interfaces Preference Properties API-113

3.3.1.9 File, Preferences - Interfaces tab


These Global Properties are used to set the options on the Interfaces tab of the Preferences dialog
box:

Interfaces Preference Properties


Property Description Type
Interface options
Pref_AnalysisProg Default analysis program Interface. INT4
Pref_AnalysisType Default Analysis Type. INT4
API-114

Interfaces Preference Properties


Property Description Type
Neutral file version number when writing Neutral files
Pref_NeutralVersion REAL8
for third party analysis programs.
Number of significant digits for real numbers in Neu-
Pref_NeutralDigits INT4
tral files.
Default user Interface Style: 0=Structural, 1=Thermal,
Pref_InterfaceStyle INT4
2=Adv. Thermal.
If True, older, unsupported analysis program inter-
Pref_UseOldAnalysisInterfaces BOOL
faces will still be available.
Analysis Monitor Options
If True, will automatically load results when using the
Pref_AnalysisMonAutoLoad BOOL
Analysis Monitor
Default Max number of lines to include in the Analy-
Pref_AnalysisMonMaxLines INT4
sis Monitor
File Reference Options
If True, checks file references when the model is
Pref_FileRefCheck BOOL
opened
If True, creates geometry references when files are
Pref_FileRefGeometry BOOL
read
If True, creates analysis model references when files
Pref_FileRefModel BOOL
are read
If True, creates results file references when files are
Pref_FileRefResults BOOL
read.
General Solver Options
For an integerated solver, turning this on will start the
Pref_UseVisQ BOOL
solver with VisQ (if it is available).
If True, comments will NOT be written to NAS-
Pref_WriteComments TRAN. This can get around some character set issues BOOL
in entity titles.
Nastran Solver Write Options
If True, enables the MSC.Nastran 2004 interface
Pref_UseMSCNastran2004 BOOL
options
If True, FEMAP writes real numbers to Nastran files
Pref_ImproveSinglePrecision using a nonstandard exponential format that improves BOOL
precision.
API-115

Interfaces Preference Properties


Property Description Type
If True FEMAP will write an alternate line continua-
Pref_NasAlternateContinue BOOL
tion using +
Pref_NastranMemory Amount of memory specified for Nastran solver INT4
Specifies option for Scratch Directory. 0 = Nastran
Pref_NastranScratchLocation Default, 1 = FEMAP Scratch, and 2 = Output Direc- INT4
tory
If True Femap will use the dbs command line to spec-
Pref_NasDballScratch BOOL
ify a alternate location for user database files.
Location of Nastran Output Files (0=Current Direc-
Pref_NastranOutputTo INT4
tory, 1=Model File Directory, 2=Specified Directory)
Name/path of specified Output Directory for Nastran
Pref_NastranOutputPath STRING
solver output
Pref_NastranUseILP64 Flag to use ILP64 NX Nastran if installed. BOOL
Default for Analysis Set to write all Static Loads/
Pref_NastranWriteAllLdbcSets BOOL
Boundary conditions.
If True, an attempt will be made to read NASTRAN
Pref_ReadComments BOOL
comment cards as entity titles.
If True, FEMAP will delete Synthetic load sets that
Pref_DeleteRdScratchLdSets BOOL
it creates during reading of NASTRAN LOAD cards.
If True, FEMAP will create groups based on entities
Pref_GroupIncludeFiles BOOL
in INCLUDE files found in a Nastran input file.
If True, then Nastran INCLUDE statements are read as
Pref_PreserveIncludes Bulk Data text rather than reading their contents into BOOL
the model
API-116 Results Preference Properties

3.3.1.10 File, Preferences - Results tab


These Global Properties are used to set the options on the Results tab of the Preferences dialog
box:

Results Preference Properties


Property Description Type
File Options
API-117

Results Preference Properties


Property Description Type
If True, FEMAP will automatically attach to external
Pref_AutoAttachResults results files rather than reading the results into the BOOL
database.
If True, when attaching to external results files, mem-
Pref_MemoryMappedFiles BOOL
ory mapped files will be utilized.
If True, an analysis study will be created for each
Pref_CreateResultStudy BOOL
imported or attached output file.
Specifies option for Study Titles. 0=Default,
Pref_ResultStudyTitle INT4
1=Analysis Set Title, 2=File Name, 3=Nastran TITLE
Used by the Nastran OP2 file reader to set Output Set
Pref_OutputSetTitles titles. 0=Default, 1=TITLE, 2=SUBTITLE, INT4
3=LABEL, 4=SUBTITLE, LABEL
If True, each output set title will be appended with any
Pref_StudyAppendFemapTitles value associated with the output set, such as time or BOOL
frequency.
General Solver Options
If True, FEMAP automatically Computes Principal
Pref_ComputePrincipal Stress/Strain and other quantities if they have not been BOOL
read from results.
If True, FEMAP Assumes Shear Strain results are
Pref_AssumeEngrStrain BOOL
Engineering shear strain.
If True, FEMAP will read direction cosine matrices
Pref_ReadDirCos BOOL
for stress/strain results.
Auto Answer Post Questions
Pref_NasQstOn[0..5] Pref_NasQstOn enables Auto Answer for each ques-
or tion.
BOOL
VARIANT vPrefNasQstOn
Questions:
0-Not Used, 1-Output Contains QUADR Elements,
2-Output Contains Corner Output, 3-Read PSD/Freq
Functions, 4-Read Corner Output, 5-Hide f06 Warn-
Pref_NasQstVal[0..5] ing dialog
or BOOL
VARIANT vPrefNasQstVal Pref_NasQstVal sets the question answer.
Answers:
0 - No, 1 - Yes
API-118 Library/Startup Preference Properties

3.3.1.11 File, Preferences - Library/Startup tab


These Global Properties are used to set the options on the Library/Startup tab of the Preferences
dialog box:

Library/Startup Preference Properties


Property Description Type
Libraries
Pref_LibView Filename for View Library. STRING
Pref_LibMatl Filename for Material Library. STRING
API-119

Library/Startup Preference Properties


Property Description Type
Pref_LibProp Filename for Property Library. STRING
Pref_LibLayup Filename for Layup Library STRING
Pref_LibConnectionProp Filename for Connection Property Library STRING
Pref_LibFunction Filename for Function Library. STRING
Pref_LibAnalysis Filename for Analysis Library. STRING
Pref_LibReport Filename for report Format Library. STRING
Pref_LibMatlDef Filename for Material Definition Library. STRING
Pref_LibChart Filename for Chart Library. STRING
Startup Program File/Basic Script/Executable and Custom Tools
Name/path of specified directory for Custom API
Pref_CustomToolsPath STRING
Tools
Name/path of a startup program (Program File or
Pref_StartupProg STRING
API)
If True, the startup program will be run every time
Pref_RunProgNewModels BOOL
a new model is opened.
API-120 Color Preference Properties

3.3.1.12 File, Preferences - Color tab


These Global Properties are used to set the options on the Color tab of the Preferences dialog box:

Color Preference Properties


Property Description Type
Entity Colors
API-121

Color Preference Properties


Property Description Type
Default colors used for various entity types when
starting a new database.
0 - Coord Sys, 1 - Point, 2 - Curve, 3 - Surface,
4 -Volume/Solid, 5 - Boundary, 6 - Text, 7 - Node,
Pref_EntityColor[0..21]
8 - Element, 9 - Material, 10 - Property, 11 - Load,
or INT4
12 - Nodal Constraint, 13 - Constraint Eqn,
VARIANT vPref_EntityColor
14 - Region, 15 - Connector, 16 - Connection
Property, 17 - Combined Curve, 18 - Aero Panel,
19 - Aero Prop, 20 - Aero Spline, 21 - Aero Con-
trol Surface
Palettes (Blank for Standard)
Pref_LibPalette Filename for Color Palette Library. STRING
Pref_LibContPal Filename for User Contour Palette Library. STRING
API-122 Spaceball Preference Properties

3.3.1.13 File, Preferences - Spaceball tab


These Global Properties are used to set the options on the Spaceball tab of the Preferences dialog
box:

Spaceball Preference Properties


Property Description Type
Scale Factors
API-123

Spaceball Preference Properties


Property Description Type
Allows specification for each degree of freedom.
Pref_Spaceball Factors[6]
[0] = Translation X, [1] = Translation Y
or REAL8
[2] = Translation Z, [3] = Rotation X
VARIANT vPref_SpaceballFactors
[4] = Rotation Y, [5] = Rotation Z
Used to set the Directional Sensitivity. Value must
Pref_SpaceballSensitivity REAL8
be between 0.0 and 100.0
Debug Options
Pref_SpaceballDebug When True, prints debug messages for Spaceball BOOL
API-124 Global Integer Properties

3.3.2 Global Integer Properties

Global Integer Properties


Property Description
Window Handles
The handle to the FEMAP main window (read-only).
hMainWnd NOTE: This is an 8-byte integer, not a 4-byte integer like
most other properties.
The handle to the FEMAP Messages and Lists window (read-
only).
hListWnd
NOTE: This is an 8-byte integer, not a 4-byte integer like
most other properties.
Event Properties
The lParam value for the active event. This is not used for many
events, but can be accessed from any event callback.
EventLParam
NOTE: This is an 8-byte integer, not a 4-byte integer like
most other properties.
File Print
Number of copies to print (only works with printers that sup-
Print_Copies
port setting a number of copies).
Message Window
A combination of one or more destinations (Screen, Printer,
File) where listings are sent. 1=Messages Window only,
List_Destination 16=Printer only, 256=File only, 17=Messages Window and
Printer, 257=Messages Window and File, 272=Printer and File,
273=Messages Window, Printer, and File.(INT4)
The path to a file to use for listing when the File destination is
List_FileName
chosen.(STRING)
Model Info
The number of commands that have been performed in this
Info_CommandNumber
database (read-only).
Info_MaxID[entity]
The maximum ID of the selected entity (read-only). For infor-
or
mation on entities, see Section 3.3.6, "Entity Types".
VARIANT vInfo_MaxID
Info_MinID[entity]
The minimum ID of the selected entity (read-only). For infor-
or
mation on entities, see Section 3.3.6, "Entity Types".
VARIANT vInfo_MinID
Global Integer Properties API-125

Global Integer Properties


Property Description
Info_Increment[entity]
The ID creation increment for the selected entity. For informa-
or
tion on entities, see Section 3.3.6, "Entity Types".
VARIANT vInfo_Increment
Info_Count[entity]
The number of selected entities in the database (read-only). For
or
information on entities, see Section 3.3.6, "Entity Types".
VARIANT vInfo_Count
Info_NextID[entity]
or The ID of the next entity of a given type to be created.
VARIANT vInfo_NextID
Info_ActiveID[entity]
The Active ID of the selected entity. For information on enti-
or
ties, see Section 3.3.6, "Entity Types".
VARIANT vInfo_ActiveID
Info_ActiveType[entity]
The Active Type of the selected entity. For information on enti-
or
ties, see Section 3.3.6, "Entity Types".
VARIANT vInfo_ActiveType
Info_Color[entity]
The default color for the selected entity. For information on
or
entities, see Section 3.3.6, "Entity Types".
VARIANT vInfo_Color
Info_OutputCSys The default output coordinate system for node creation.
The default node type for node creation: 0=Node, 1=Scalar,
Info_NodeType
2=Extra.
Info_TextBorderColor The default color for the border of text objects that are created.
The surface ID where the workplane is located. The value is 0 if
Info_WorkplaneOnSurface
the workplane is simply located somewhere in model space.
Info_WorkplaneOnSurfacePrev The previous value of Info_WorkplaneOnSurface.
Current snap mode: 0=Screen, 1=Grid, 2=Point, 3=Node,
Info_SnapTo
4=Smart.
Info_SnapStyle The snap grid style: 0=Invisible, 1=Dots, 2=Lines.
The snap grid spacing mode: 0=Automatic, 1=Uniform,
Info_SnapSpacingMode
2=Nonuniform.
The number of divisions between labels along the workplane
Info_WorkplaneTics
rulers.
Sets the method for defining material angles for planar ele-
Info_MatlAngleMethod ments: 0=None - Default Orientation, 1=Vector Direction,
2=Coordinate Axis, 3=Angle Value, 4=X Axis of CSys
API-126 Global Integer Properties

Global Integer Properties


Property Description
Sets the direction (0=X, 1=Y, 2=Z, 3=-X, 4=-Y, 5=-Z) in the
Info_MatlAngleDir specified coordinate system to be used for material angles. Only
used if Info_MatlAngleMethod=Coordinate Axis.
Sets the coordinate system ID to be used for the definition of
Info_MatlAngleCSys material angles for planar elements if InfoMatlAngle-
Method=Coordinate Direction or X Axis of CSys.
Sets the default for the minimum number of elements on any
Info_MeshSizeMinElem curves where a mesh size has not been explicitly specified.
From Mesh, Mesh Control, Default Size command.
Info_SurfDivisionsLinear[0..1]
or Sets the default number of divisions to be displayed in the para-
VARIANT metric directions of surfaces along linear edges: 0=s dir, 1=t dir
vInfo_SurfDivisionsLinear
Sets the default number of divisions to be displayed in the para-
Info_SurfDivisionsCurved[0..1]
metric directions of surfaces along curved edges. Unlike linear
or
edges, which specify the total number of divisions, this number
VARIANT
is the total to be displayed for a closed surface. The actual num-
vInfo_SurfDivisionsCurved
ber displayed depends on the total curvature of the surface.
Info_ViewShowColor The color to be used by the View, Show command.
The default type of entity to be shown by the View, Show com-
Info_ViewShowEntity
mand.
If nonzero, the View, Show command will label all selected enti-
Info_ViewShowLabel
ties.
Controls the setting of the Group, Automatic Add comman:
Info_GroupAutomaticAdd 0=Off, -1=Active Group, or specify an existing group ID to
automatically add to that group.
The default order of splines created with the standard geometry
Info_SplineOrder
engine.
Info_LayerNoPick Specifies the ID of the NoPick Layer. Set to 0 for None.
Info_MatlUserType The default type of user-defined material to be created.
Info_ElemFormulation1[0..34]
or
VARIANT vInfo_ElemFormulation1 The formulation options which are available for the various
Info_ElemFormulation2[0..34] types of elements. Data is stored as bits inside these values.
or
VARIANT vInfo_ElemFormulation2
Info_SuppressedCurveColor The color used to draw curves that are suppressed for meshing
Global Integer Properties API-127

Global Integer Properties


Property Description
Info_SuppressedSurfaceColor The color used to draw surfaces that are suppressed for meshing
Other Items
When you are running FEMAP in hidden mode (user interface
not visible), then you may not want dialog or message boxes
popping up. Set this option to control the automatic return
DialogAutoAnswer
codes from boxes in this condition. 0=No/Cancel, 1=Yes/OK,
2=Show dialog/message boxes even though main user interface
is hidden
Same as DialogAutoAnswer, but works even if the user inter-
DialogAutoSkip
face is not hidden
Automatically answers any messages that are displayed while
an API is running. The value specifies the answer that is
selected.
0=Display Message Box and wait for user answer
DialogAutoSkipMsg 1=Press First Button
2=Press Second Button
3=Press Third Button
-1, -2 and -3 are the same as 1,2,3 except that the message is not
echoed to the Message Window.
The current method used by the standard coordinate dialog box.
CoordDialogMethod
Refer to Coordinate Dialog Methods for possible values.
The current method used by the standard vector dialog box.
VectorDialogMethod
Refer to Vector Dialog Methods for possible values.
The current method used by the standard plane dialog box.
PlaneDialogMethod
Refer to Plane Dialog Methods for possible values.
The current mode of the Combined/Boundary Surface Picking
option
0=Default, Pick Combined Surfaces, no Internal Surfaces
PickBoundaryInternalMode
1=Pick Both Combined and Internal Surfaces
2=Pick Only Internal Surfaces
3=Pick Only Combined Surfaces
The current mode of the Combined Curve Picking Option
0=Default, Pick Combined Curves, no Internal Curves
1=Pick Both Combined and Internal Curves
PickCombinedCurveInternalMode 2=Pick Only Internal Curves
3=Pick Only Combined Curves
4=Never Pick Combined Curves
5=Never Pick Combined nor Internal Curves
User Interface
API-128 Global Integer Properties

Global Integer Properties


Property Description
Defines raw orientation of isotropic material solid element out-
put vector data
Info_OrientSolidIsoOutput 0 = Material Direction
1 = Global Rectangular
2 = Element
Defines raw orientation of anisotropic material solid element
output vector data
Info_OrientSolidAnisoOutput 0 = Material Direction
1 = Global Rectangular
2 = Element
Defines raw orientation of hyperelastic material solid element
output vector data
Info_OrientSolidHyperOutput 0 = Material Direction
1 = Global Rectangular
2 = Element
Defines raw orientation of Tria3 stress output vector data
Info_OrientTria3StressOutput 0 = First Edge
1 = Midside Location
Defines raw orientation of Tria3 strain output vector data
Info_OrientTria3StrainOutput 0 = First Edge
1 = Midside Location
Defines raw orientation of Tria3 force output vector data
Info_OrientTria3ForceOutput 0 = First Edge
1 = Midside Location
Defines raw orientation of Tria6 stress output vector data
Info_OrientTria6StressOutput 0 = First Edge
1 = Midside Location
Defines raw orientation of Tria6 strain output vector data
Info_OrientTria6StrainOutput 0 = First Edge
1 = Midside Location
Defines raw orientation of Tria6 force output vector data
Info_OrientTria6ForceOutput 0 = First Edge
1 = Midside Location
Defines raw orientation of Quad4 stress output vector data
0 = First Edge
Info_OrientQuad4StressOutput
1 = Midside Location
2 = Diagonal Bisector
Global Real Properties API-129

Global Integer Properties


Property Description
Defines raw orientation of Quad4 strain output vector data
0 = First Edge
Info_OrientQuad4StrainOutput
1 = Midside Location
2 = Diagonal Bisector
Defines raw orientation of Quad4 force output vector data
0 = First Edge
Info_OrientQuad4ForceOutput
1 = Midside Location
2 = Diagonal Bisector
Defines raw orientation of Quad8 stress output vector data
0 = First Edge
Info_OrientQuad8StressOutput
1 = Midside Location
2 = Diagonal Bisector
Defines raw orientation of Quad8 strain output vector data
0 = First Edge
Info_OrientQuad8StrainOutput
1 = Midside Location
2 = Diagonal Bisector
Defines raw orientation of Quad8 force output vector data
0 = First Edge
Info_OrientQuad8ForceOutput
1 = Midside Location
2 = Diagonal Bisector
Complex Results - Model Options
Sets the option in Model Options of Complex Results,
0=Selected Results - Ignore Phase Differences, 1=Synchronize
Info_ComplexSyncMethod
Phase. Used in conjunction with Info_ComplexSyncPhase and
Info_ComplexSyncIncrement

3.3.3 Global Real Properties

Global Real Properties


Property Description
Model Info
The current database version. This may not equal the software
Info_Version version - for example, FEMAP v10.1.1 uses a v10.1 database.
(read-only).
Info_WorkplaneOrigin[0..2]
or The coordinates of the origin of the workplane. Specified in
VARIANT global rectangular model coordinates.
vInfo_WorkplaneOrigin
API-130 Global Real Properties

Global Real Properties


Property Description
Info_WorkplaneX[0..2]
or
VARIANT vInfo_WorkplaneX
Info_WorkplaneY[0..2]
The direction cosines of the workplane axes. Like the origin,
or
these are specified in global rectangular model coordinates.
VARIANT vInfo_WorkplaneY
Info_WorkplaneZ[0..2]
or
VARIANT vInfo_WorkplaneZ
Info_WorkplanePrevOrigin [0..2]
The coordinates of the previous origin of the workplane. These
or
are saved values of Info_WorkplaneOrigin, used by the Previous
VARIANT
Workplane command.
vInfo_WorkplanePrevOrigin
Info_WorkplanePrevX[0..2]
or
VARIANT
vInfo_WorkplanePrevX
Info_WorkplanePrevY[0..2]
or The direction cosines of the workplane axes. Like the origin,
VARIANT these are specified in global rectangular model coordinates.
vInfo_WorkplanePrevY
Info_WorkplanePrevZ[0..2]
or
VARIANT
vInfo_WorkplanePrevZ
Info_SnapSpacing[0..1]
or The snap grid spacing X and Y values.
VARIANT vInfo_SnapSpacing
Info_WorkplaneSizeX[0..1]
or
VARIANT
vInfo_WorkplaneSizeX The minimum and maximum dimensions of the workplane in the
Info_WorkplaneSizeY[0..1] X and Y directions.
or
VARIANT
vInfo_WorkplaneSizeY
Info_WorkplaneLabels The length between labels on the workplane rulers.
Global Real Properties API-131

Global Real Properties


Property Description
Info_DefaultX
The default values for the coordinate dialog box. Stored in global
Info_DefaultY
rectangular model coordinates.
Info_DefaultZ
Info_LineLength The default length used to create horizontal and vertical lines.
Info_ModelSizeX[0..1]
or
VARIANT vInfo_ModelSizeX
The minimum and maximum coordinates of the current model in
Info_ModelSizeY[0..1]
the corresponding global rectangular direction. These values are
or
only valid if the model box has been computed and
VARIANT vInfo_ModelSizeY
Info_ModelNeedBox is False (read_only).
Info_ModelSizeZ[0..1]
or
VARIANT vInfo_ModelSizeZ
Info_MatlAngleVec[0..2]
The vector to be used for definition of material angles for planar
or
elements (only used if Info_MatlAngleMethod=Vector).
VARIANT vInfo_MatlAngleVec
Sets the angle to be used for the definition of material angles for
Info_MatlAngle
planar elements when InfoMatlAngleMethod=Angle.
The default mesh size for geometry where mesh sizes have not
Info_MeshSizeDefault been explicitly defined. From Mesh, Mesh Control, Default Size
command.
Solid geometry scale factor. This is copied from
Pref_GeometryScale when a model is started, and is used to make
Info_GeometryScale
sure that solid geometry fits inside the limited coordinate space
allowed by the solid modeling engines (read-only).
Info_FacetAngleTolerance
Info_FacetChordTolerance Factors used for Curve Facetting - found in Tools Parameters
Info_FacetCurveFactor
Tools
The default coincident location merge tolerance for the model.
Tool_MergeTolerance
Only used if Tool_MergeToleranceAuto is False
Complex Results - Model Options
Info_ComplexSyncPhase Specifies value for Display Phase Angle in Model Options
Info_ComplexSyncIncrement Specifies value for Animation Phase Increment in Model Options
API-132 Global Boolean Properties

3.3.4 Global Boolean Properties

Global Boolean Properties


Property Description
File Preferences
Controls whether Windows Bitmaps will be compressed dur-
Pref_CompressBitmaps
ing Picture Save
Model Info
Info_PermBC[0..5]
or The default permanent boundary conditions for node creation.
VARIANT vInfo_PermBC
Automatically adjust the size of the workplane to the model
Info_WorkplaneModelAdjust
size.
Automatically adjust the size of the workplane to the size of
Info_WorkplaneSurfaceAdjust
any surface where it is located.
Info_WorkplaneRuler[0..1]
or If True, draws the workplane X and Y rulers respectively.
VARIANT vInfo_WorkplaneRuler
Controls whether coordinates or equations functions are
Info_SnapFullPrecision
loaded into the dialog boxes when a user picks coordinates.
If True, the snap mode will only be used during coordinate
Info_SnapCoordOnly
picking.
If True the model box has been computed, otherwise the box
Info_ModelNeedBox
coordinates are not valid.
Info_UpdateAllViews The current setting of the View, All Views command.
If True, the Notes translation text will be written during a
Info_TranslateNotes
model export.
If True, the View, Show command will erase the window
Info_ViewShowErase
before showing entities.
If True, View, Show will use the color specified by
Info_ViewShowUseColor
Info_ViewShowColor, otherwise entity colors will be used.
If True, the View, Show command will show element normal
Info_ViewShowNormal
vectors when highlighting
If True, the View, Show command make the model transparent
Info_ViewShowTranparent
when highlighting
If True, default mesh sizing will be automatically calculated
Info_MeshSizeAutoDefault
when it is used
Global String Properties API-133

Global Boolean Properties


Property Description
Geometry
If True, allows other Solid Modeling APIs to work with/create
nonmanifold bodies (i.e., when Ok to create nonmanifold
SolidAllowNonManifold geometry? appears because of a Solid Modeling command,
setting SolidAllowNonManifold to True answers that question
Yes, False answers that question No).
Tools
Tool_CursorXYZ[0..2] If True, the corresponding coordinate direction will be picked
or whenever you select a coordinate with the mouse. Automati-
VARIANT vTool_CursorXYZ cally updated with every pick.
If True, each cursor pick selects and updates only a single
Tool_CursorSingle
coordinate value.
If True, the merge tolerance is automatically calculated, if
Tool_MergeToleranceAuto
False, then Tool_MergeTolerance is used.

3.3.5 Global String Properties

Global String Properties


Property Description
File Preferences
Name/path of network license file (only used when FlexLM net-
Pref_NetKeyDir
work licensing is in use).
Model and Session
The name of the current model file. This will be blank if the
ModelName
model has not yet been saved. (read_only)
The name of the working scratch file (OEM character set)
ScratchName
(read_only).
The full path to the working scratch file (ANSI character set)
FullScratchName
(read_only).
The path to the FEMAP executable (without the filename)
ExePath
(read_only)
SerialNumber The current FEMAP license serial number. (read_only)
Message Window
API-134 Global String Properties

Global String Properties


Property Description
The path to a file to use for listing when the File destination is
List_FileName
chosen.

3.3.6 Entity Types


The following table list the values to be used for each of the entity types. These values are typi-
cally used as an index into one of the global arrays such as Info_MaxID, Info_ActiveID...
Note: Some of the abbreviations for the entity types are very obvious, while others are not.
For more information about the entity types marked with a *, please see the expla-
nations after the table.

Entity Type Numeric Entity Type Numeric


Value Value
FT_POINT 3 FT_FUNCTION_DIR 35
FT_CURVE 4 FT_FUNCTION_TABLE 36
FT_SURFACE 5 FT_SOLID 39
FT_VOLUME 6 FT_COLOR 40
FT_NODE 7 FT_OUT_CSYS 41
FT_ELEM 8 FT_DESIGN_OPT * 45
FT_CSYS 9 FT_LOAD _DEFINITION 46
FT_MATL 10 FT_MODEL_NOTES * 54
FT_PROP 11 FT_CONTACT * 58
FT_LOAD_DIR * 12 FT_AMGR_DIR 60
FT_SURF_LOAD * 13 FT_REFERENCE * 68
FT_GEOM_LOAD * 14 FT_DATA_SURF 69
FT_NTHERM_LOAD * 15 FT_CONNECTION 71
FT_ETHERM_LOAD * 16 FT_CONNECTION_PROP 72
FT_BC_DIR * 17 FT_BC_DEFINITION * 80
FT_BCO * 18 FT_LAYUP 81
FT_BCO_GEOM * 19 FT_LAYUP_PLY 82
FT_BEQ * 20 FT_LAYUP_GLOBALPLY 83
FT_TEXT 21 FT_BOLT_PRELOAD 84
Global String Properties API-135

Entity Type Numeric Entity Type Numeric


Value Value
FT_VIEW 22 FT_AERO_PANEL 95
FT_GROUP 24 FT_AERO_PROP 96
FT_VAR * 27 FT_AERO_SPLINE 98
FT_OUT_CASE * 28 FT_AERO_SURF 99
FT_OUT_DIR * 29 FT_TMG_BCO 112
FT_OUT_DATA * 30 FT_TMG_CONTROL 113
FT_REPORT * 31 FT_TMG_INTEGER 114
FT_BOUNDARY 32 FT_TMG_REAL 115
FT_LAYER 33 FT_TMG_OPTION 116

*FT_LOAD_DIR = FEMAP Load Set


FT_SURF_LOAD = Nodal or Elemental Nodes
FT_NTHERM_LOAD = Nodal Temperatures
FT_ETHERM_LOAD = Elemental Temperatures
FT_BC_DIR = FEMAP Constraint Set
FT_BCO = Nodal Constraint
FT_BCO_GEOM = Constraint on geometric entity
FT_BEQ = Constraint Equation
FT_VAR = FEMAP Variable (Tools, Varibales...command in FEMAP)
FT_OUT_CASE = FEMAP Output Set
FT_OUT_DIR = Output Vector Header (includes Output Vector ID, Title, Type - Nodal or Ele-
mental, Max and Min Values)
FT_OUT_DATA = Output Vector Data (Data at each node or element)
FT_REPORT = List, Output Format
FT_DESIGN_OPT = Design Optimization
FT_MODEL_NOTES = Notes saved in File, Notes
FT_CONTACT = FEMAP Region
FT_CONNECTION = FEMAP Connector (contact pair)
FT_REFERENCE = References saved in File, References
FT_BC_DEFINITION = FEMAP Constraint Definition.
API-136 Global String Properties

3.3.7 FEMAP Constants


The following tables list the constants which can be used for each of the FEMAP Objects. These
constants always begin with F then a two letter abbreviation of the particular FEMAP Object
where they can be used, followed by what the constant represents.
For Example, if you are looking for the Constant to use for a Ruled surface, then the constant
would be FSU_RULED. In this case, SU represents Surface and RULED represents the type of
surface to create.

Analysis Types
The following table lists constants to be used for Analysis Types.

Constant Name Constant Name


FAT_UNKNOWN FAT_NONLINEAR_BUCKLING
FAT_STATIC FAT_NONLINEAR_TRANSIENT
FAT_MODES FAT_FATIGUE
FAT_TRANSIENT FAT_DATA_RECOVERY
FAT_FREQUENCY_RESPONSE FAT_CFD
FAT_RESPONSE_SPECTRUM FAT_STEADY_STATE_HEAT
FAT_RANDOM FAT_TRANSIENT_HEAT
FAT_LINEAR_BUCKLING FAT_601_STATIC

FAT_DESIGN_OPTIMIZATION FAT_601_TRANSIENT
FAT_EXPLICIT FAT_701_EXPLICIT
FAT_NONLINEAR_STATIC FAT_LSDYNA_IMPLICIT
FAT_AERO_STATIC FAT_AERO_FLUTTER

Analysis Programs
The following table lists constants to be used for Analysis Programs.

Constant Name Constant Name

FAP_UNKNOWN FAP_CDA_SPRINT
FAP_FEMAP_GEN FAP_CAEFEM
FAP_PAL FAP_IDEAS
FAP_PAL2 FAP_ME_NASTRAN
FAP_MSC_NASTRAN FAP_ADINA
Global String Properties API-137

Constant Name Constant Name


FAP_ANSYS FAP_GENESIS
FAP_STARDYNE FAP_ODBC
FAP_COSMOS FAP_CSA_NASTRAN
FAP_PATRAN FAP_CFDESIGN
FAP_NEUTRAL FAP_LS_DYNA
FAP_ALGOR FAP_MARC
FAP_PC_NASTRAN FAP_SINDA
FAP_TABLE FAP_NE_NASTRAN
FAP_UAI_NASTRAN FAP_NCODE
FAP_COSMIC_NASTRAN FAP_TMG
FAP_STAAD FAP_FEMAP_STRUCTURAL
FAP_ABAQUS FAP_VR_NASTRAN
FAP_WECAN FAP_NX_NASTRAN
FAP_SAP

Analysis Manager Solvers


The following table lists constants to be used for Analysis Manager Solvers.

Constant Name Constant Name

FAM_UNKNOWN FAM_MARC

FAM_MSC_NASTRAN FAM_NE_NASTRAN
FAM_ANSYS FAM_FEMAP_STRUCTURAL
FAM_ABAQUS FAM_NX_NASTRAN

Analysis Boundary Condition Set Types


The following table lists constants to be used for Analysis Boundary Condition Set Types.

Constant Name Constant Name

FABT_CONSTRAINTS FABT_SUPORT1_DOF
FABT_CONSTRAINT_EQUATIONS FABT_OMIT_DOF
FABT_LOADS FABT_QSET_DOF
API-138 Global String Properties

Constant Name Constant Name


FABT_INITIAL_CONDITIONS FABT_CSET_DOF

FABT_MASTER_DOF FABT_BSET_DOF

FABT_SUPORT_DOF FABT_BOLT_PRELOADS

Analysis - Superelement Creation


The following table lists constants to be used for Superelement Creation.

Constant Name Constant Name

EXTSEOUTTO_DMIGPCH EXTSEOUTTO_MATOP4

EXTSEOUTTO_DMIGOP2

Analysis - Superelement Reference


The following table lists constants to be used for Superelement Reference

Constant Name Constant Name

SEREF_PCH SEREF_OP4

SEREF_OP2

Analysis - Superelement Assign Form


The following table lists constants to be used for the NasExtSEOutAssignForm property on the
AnalysisMgr object

Constant Name Constant Name

AAF_NONE AAF_LITTLENDIAN

AAF_FORMATTED AAF_BIGENDIAN

AAF_UNFORMATTED

Analysis Output Requests


The following table lists constants to be used for Analysis Output Requests.

Constant Name Constant Name

FABC_ND_APPLIED LOAD FABC_EL_STRAIN

FABC_ND_REACTION_FORCE FABC_EL_PLASTIC_STRAIN
FABC_ND_DISPLACEMENT FABC_EL_STRAIN_ENERGY
Global String Properties API-139

Constant Name Constant Name


FABC_ND_VELOCITY FABC_EL_HEAT_FLUX

FABC_ND_ACCELERATION FABC_EL_ENTHALPY

FABC_ND_TEMPERATURE FABC_EL_ENTHALPY_RATE

FABC_ND_HEAT_FLUX FABC_EL_CONTACT

FABC_ND_MPC_FORCES FABC_EL_TEMPERATURE

FABC_ND_FORCE_BALANCE FABC_EL_KINETIC_ENERGY

FABC_ND_KINETIC_ENERGY FABC_EL_ENERGY_LOSS

FABC_EL_FORCE FABC_EL_FLUID PRESSURE

FABC_EL_STRESS

Point Types
The following table lists constants to be used for Point Types.

Constant Name Constant Name

FPT_DEFAULT FPT_SOLID

Curve Types
The following table lists constants to be used for Curve Types.

Constant Name Constant Name

FCU_LINE FCU_BSPLINE

FCU_ARC FCU_SOLID

FCU_CIRCLE FCU_COMPOSITE

FCU_SPLINE

Curve Orient Methods


The following table lists constants to be used for Curve Orient methods.

Constant Name Constant Name

FCR_BY_VECTOR FCR_BY_VECTOR_REV

FCR_BY_LOCATION FCR_BY_LOCATION_REV
API-140 Global String Properties

Curve Offset Methods


The following table lists constants to be used for Curve Offset methods.

Constant Name Constant Name

FCO_BY_VECTOR FCO_POINT

FCO_RADIAL

Curve - From Surface, Pad Alignment Methods


The following table lists constants to be used to set the Alignment method for the Pad command

Constant Name Constant Name

FPAD_AUTO FPAD_CURVE

FPAD_VECTOR

Curve - From Surface, Pad Offset Types


The following table lists constants to be used to set the Offset type for the Pad command

Constant Name Constant Name

FPAD_SCALE FPAD_DIST

Combined Curve Methods


The following table lists constants to be used for Combined Curve methods.

Constant Name Constant Name

FCC_OFF FCC_BOTH

FCC_ON

Surface Types
The following table lists constants to be used for Surface Types.

Constant Name Constant Name

FSU_BILINEAR FSU_BEZIER
FSU_RULED FSU_SOLID

FSU_REVOLUTION FSU_BSPLINE

FSU_COONS FSU_BOUNDARY
Global String Properties API-141

Surface - Mesh Approaches


The following table lists constants to be used for Surface Mesh Apporaches.

Constant Name Constant Name

FMAP_NONE FMAP_MAP_4CORNER
FMAP_FREE_PARAMETRIC FMAP_MAP_3CORNER

FMAP_FREE_PLANAR FMAP_MAP_3CORNERFAN

FMAP_TRI_PARAMETRIC FMAP_MAP_LINKED

FMAP_TRI_PLANAR

Surface - Mesh Offset Attribute


The following table lists constants to be used for Surface Mesh Offset Attribute.

Constant Name Constant Name

FMOF_CENTERLINE FMOF_BOTTOM
FMOF_TOP

Surface - Triangle Mesher Attribute


The following table lists constants to be used for Surface Mesh Triangle Mesher Attribute.

Constant Name Constant Name

FMSH_AUTO FMSH_FASTTRI
FMSH_SUBDIVISION FMSH_3DTRI

Volume Types
The following table lists constants to be used for Volume Types.

Constant Name Constant Name

FVO_BRICK FVO_PYRAMID

FVO_WEDGE FVO_TETRA
API-142 Global String Properties

Node Types
The following table lists constants to be used for Node Types.

Constant Name Constant Name

FND_NODE FND_EPOINT

FND_SPOINT FND_FLPOINT

Material Types
The following table lists constants to be used for Material Types.

Constant Name Constant Name

FMT_ISOTROPIC FMT_ANISOTROPIC_3D
FMT_ORTHOTROPIC_2D FMT_HYPERELASTIC

FMT_ORTHOTROPIC_3D FMT_GENERAL

FMT_ANISOTROPIC_2D FMT_FLUID

Element Topology Types


The following table lists constants to be used for Element Topology Types.

Constant Name Constant Name

FTO_LINE2 FTO_POINT1
FTO_LINE3 FTO_TETRA10
FTO_TRIA3 FTO_WEDGE15
FTO_TRIA6 FTO_BRICK20
FTO_QUAD4 FTO_RIGIDLIST
FTO_QUAD8 FTO_PYRAMID5
FTO_TETRA4 FTO_MULTILIST2
FTO_WEDGE6 FTO_CONTACT2

FTO_BRICK8 FTO_WELD2
FTO_RIGIDLIST2
Global String Properties API-143

Element Types
The following table lists constants to be used for Element Types.

Constant Name Constant Name

FET_NONE FET_P_PLANE_STRAIN
FET_L_ROD FET_L_LAMINATE_PLATE
FET_L_BAR FET_P_LAMINATE_PLATE
FET_L_TUBE FET_L_AXISYM
FET_L_LINK FET_P_AXISYM
FET_L_BEAM FET_L_SOLID
FET_L_SPRING FET_P_SOLID
FET_L_DOF_SPRING FET_L_MASS
FET_L_CURVED_BEAM FET_L_MASS_MATRIX
FET_L_GAP FET_L_RIGID
FET_L_PLOT FET_L_STIFF_MATRIX
FET_L_SHEAR FET_L_CURVED_TUBE
FET_P_SHEAR FET_L_PLOT_PLATE
FET_L_MEMBRANE FET_L_SLIDE_LINE
FET_P_MEMBRANE FET_L_CONTACT
FET_L_BENDING FET_L_AXISYM_SHELL
FET_P_BENDING FET_P_AXISYM_SHELL

FET_L_PLATE FET_P_BEAM
FET_P_PLATE FET_L_WELD
FET_L_PLANE_STRAIN

Beam Section Calculator Orientation


The following table lists constants used to set the orientation for the beam section calculator.

Constant Name Constant Name

FSOR_RIGHT FSOR_LEFT
FSOR_UP FSOR_DOWN
API-144 Global String Properties

Beam Section Calculator Shape


The following table lists constants to be used to set the shape for the beam section calculator.

Constant Name Constant Name

FSHP_RECT_BAR FSHP_NAS_I
FSHP_RECT_TUBE FSHP_NAS_CHAN
FSHP_TRAP_BAR FSHP_NAS_T
FSHP_TRAP_TUBE FSHP_NAS_BOX
FSHP_CIRC_BAR FSHP_NAS_BAR
FSHP_CIRC_TUBE FSHP_NAS_CROSS
FSHP_HEX_BAR FSHP_NAS_H
FSHP_HEX_TUBE FSHP_NAS_T1
FSHP_I FSHP_NAS_I1
FSHP_C FSHP_NAS_CHAN1
FSHP_L FSHP_NAS_Z
FSHP_T FSHP_NAS_CHAN2
FSHP_Z FSHP_NAS_T2
FSHP_HAT FSHP_NAS_BOX1
FSHP_NAS_ROD FSHP_NAS_HEXA
FSHP_NAS_TUBE FSHP_NAS_HAT
FSHP_NAS_L FSHP_NAS_HAT1

Beam Section Evaluation Method


The following table lists constants used to set the beam section calculator evaluation method.

Constant Name Constant Name

FSEV_AUTO FSEV_ALT
FSEV_ORIG FSEV_PBEAML
Global String Properties API-145

Coordinate System Types


The following table lists constants to be used for Coordinate System Types.

Constant Name Constant Name

FCS_RECTANGULAR FCS_SPHERICAL

FCS_CYLINRICAL

Connection Region Types


The following table lists constants to be used for Connection Region Types.

Constant Name Constant Name

FRT_CONNECTION FRT_ROTOR

FRT_FLUID FRT_NSM

FRT_BOLT

Connection Property Types


The following table lists constants to be used for Connection Property Types.

Constant Name Constant Name

FCPT_CONTACT FCPT_GLUED

Geometric Boundary Condition Types


The following table lists constants to be used for Geometric Boundary Condition Types.

Constant Name Constant Name

FBG_DOF FBG_SURFNONSLIDING

FBG_GENERAL FBG_SURFDIRSLIDING

FBG_SURFSLIDING FBG_CYLINDER

Load Direction Methods


The following table lists constants to be used for Load Direction Methods.

Constant Name Constant Name

FLD_NONE FLD_NORMALTOPLANE

FLD_VECTOR FLD_NORMALTOSURFACE

FLD_ALONGCURVE
API-146 Global String Properties

Load Variation Methods


The following table lists constants to be used for Load Variation Methods.

Constant Name Constant Name

FLV_NONE FLV_FUNCTION

FLV_EQUATION FLV_INTERPOLATION

FLV_DATASURFACE

Load Types
The following table lists constants to be used for Nodal Load Types except for FLT_NBODY
which represents a Body Load.

Constant Name Constant Name

FLT_NBODY FLT_NTRANSIENT
FLT_NFORCE FLT_NPRESSURE
FLT_NMOMENT FLT_NTOTALPRESSURE
FLT_NDISPLACEMENT FLT_NSCALAR
FLT_NROTDISPLACEMENT FLT_NSTEAMQUALITY
FLT_NVELOCITY FLT_NHUMIDITY
FLT_NROTVELOCITY FLT_NFLUIDHEIGHT
FLT_NACCELERATION FLT_NUNKNOWNCONDITION
FLT_NROTACCELERATION FLT_NSLIPCONDITION
FLT_NTEMPERATURE FLT_NFANCURVE
FLT_NHEATFLUX FLT_NPERIODIC
FLT_NHEATGEN
The following table lists constants to be used for Elemental Load Types.

Constant Name Constant Name

FLT_ELINELOAD FLT_ECONVECTION
FLT_EPRESSURE FLT_ERADIATION
FLT_ETEMPERATURE FLT_EHEATGEN
FLT_EHEATFLUX FLT_EBOLTPRELOAD
Global String Properties API-147

The following table lists constants to be used for Loads Types on Geometric Points which are
expanded to nodes.

Constant Name Constant Name

FLT_PNFORCE FLT_PNPRESSURE
FLT_PNMOMENT FLT_PNTOTALPRESSURE
FLT_PNDISPLACEMENT FLT_PNSCALAR
FLT_PNROTDISPLACEMENT FLT_PNSTEAMQUALITY
FLT_PNVELOCITY FLT_PNHUMIDITY
FLT_PNROTVELOCITY FLT_PNFLUIDHEIGHT
FLT_PNACCELERATION FLT_PNUNKNOWNCONDITION
FLT_PNROTACCELERATION FLT_PNSLIPCONDITION
FLT_PNTEMPERATURE FLT_PNFANCURVE
FLT_PNHEATFLUX FLT_PNPERIODICFLT_NPRESSURE
FLT_PNHEATGEN

The following table lists constants to be used for Loads Types on Geometric Curves which are
expanded to nodes.

Constant Name Constant Name

FLT_CNFORCE FLT_CNHEATFLUXPERLEN
FLT_CNFORCEPERLEN FLT_CNHEATFLUXATNODE
FLT_CNFORCEATNODE FLT_CNHEATGEN
FLT_CNMOMENT FLT_CNPRESSURE
FLT_CNMOMENTPERLEN FLT_CNTOTALPRESSURE
FLT_CNMOMENTATNODE FLT_CNSCALAR
FLT_CNDISPLACEMENT FLT_CNSTEAMQUALITY

FLT_CNROTDISPLACEMENT FLT_CNHUMIDITY
FLT_CNVELOCITY FLT_CNFLUIDHEIGHT
FLT_CNROTVELOCITY FLT_CNUNKNOWNCONDITION
FLT_CNACCELERATION FLT_CNSLIPCONDITION
API-148 Global String Properties

Constant Name Constant Name

FLT_CNROTACCELERATION FLT_CNFANCURVE

FLT_CNTEMPERATURE FLT_CNPERIODIC
FLT_CNHEATFLUX

The following table lists constants to be used for Loads Types on Geometric Curves which are
expanded to elements.

Constant Name Constant Name

FLT_CEPRESSURE FLT_CECONVECTION
FLT_CETEMPERATURE FLT_CERADIATION
FLT_CEHEATFLUX FLT_CEHEATGEN

The following table lists constants to be used for Loads Types on Geometric Surfaces which are
expanded to nodes.

Constant Name Constant Name

FLT_SNFORCE FLT_SNHEATFLUXPERAREA
FLT_SNFORCEPERAREA FLT_SNHEATFLUXATNODE
FLT_SNFORCEATNODE FLT_SNHEATGEN
FLT_SNMOMENT FLT_SNPRESSURE
FLT_SNMOMENTPERAREA FLT_SNTOTALPRESSURE
FLT_SNMOMENTATNODE FLT_SNSCALAR
FLT_SNDISPLACEMENT FLT_SNSTEAMQUALITY

FLT_SNROTDISPLACEMENT FLT_SNHUMIDITY
FLT_SNVELOCITY FLT_SNFLUIDHEIGHT
FLT_SNROTVELOCITY FLT_SNUNKNOWNCONDITION
FLT_SNACCELERATION FLT_SNSLIPCONDITION
FLT_SNROTACCELERATION FLT_SNFANCURVE

FLT_SNTEMPERATURE FLT_SNPERIODIC
FLT_SNHEATFLUX FLT_SNTORQUE
Global String Properties API-149

The following table lists constants to be used for Loads Types on Geometric Surfaces which are
expanded to elements.

Constant Name Constant Name

FLT_SEPRESSURE FLT_SECONVECTION
FLT_SETEMPERATURE FLT_SERADIATION
FLT_SEHEATFLUX FLT_SEHEATGEN

Load Selection Types


The following table lists constants to be used when selecting particular load types to perform an
operation on them, such as deleting loads.

Constant Name Constant Name

FLS_ANY FLS_NTEMP
FLS_BODY FLS_ETEMP
FLS_NONLINEAR FLS_ECONVECTION
FLS_NHTGEN FLS_ERADIATION
FLS_NHTFLUX FLS_NTRANSIENT
FLS_FORCE FLS_FLPRESSURE
FLS_DISP FLS_FLTRACKING
FLS_ACCEL FLS_FLUNKNOWN
FLS_LINELOAD FLS_FLSLIP
FLS_VELOCITY FLS_FLFAN
FLS_PRESS FLS_FLPERIODIC
FLS_EHTGEN FLS_NONE
FLS_EHTFLUX

Function Types
The following table lists constants to be used for Function Types.

Constant Name Constant Name

FTB_NONE FTB_TBLM1LINLIN
FTB_TIME FTB_TBLM1LOGLIN
API-150 Global String Properties

Constant Name Constant Name

FTB_TEMP FTB_TBLM1LINLOG
FTB_FREQ FTB_TBLM1LOGLOG
FTB_STRESSSTRAIN FTB_MODE
FTB_FUNCTEMP FTB_DISPFREQ
FTB_GDAMP FTB_ROTFREQ
FTB_CRITDAMP FTB_VELFREQ
FTB_QDAMP FTB_ANGVELFREQ
FTB_STRAINRATE FTB_ACCFREQ
FTB_FUNCSTRAINRATE FTB_ANGACCFREQ
FTB_CURVELENGTH FTB_FORCEFREQ
FTB_CURVEPARAM FTB_MOMENTFREQ
FTB_STRAINSTRESS FTB_STRESSFREQ
FTB_PLASTICSTRAIN FTB_STRAINFREQ
FTB_FUNCVAL FTB_MACHFREQ
FTB_DAMPFUNC FTB_AEROFACTOR
FTB_ANGLEINCIDENCE FTB_ACCELLOC
FTB_DIRECTIONINCIDENCE

MapOutput Constants
The following table lists constants to be used for LoadType that can be mapped from output
using MapFromModelToSet method

Constant Name Constant Name

FMLT_NTEMPERATURE FMLT_NACCELERATION

FMLT_NFORCE FMLT_NROTACCELERATION

FMLT_NMOMENT FMLT_ETEMPERATURE

FMLT_NDISPLACEMENT FMLT_EHEATFLUX

FMLT_NROTDISPLACEMENT FMLT_EHEATGEN

FMLT_NVELOCITY FMLT_EPRESSURE
Global String Properties API-151

Constant Name Constant Name

FMLT_NROTVELOCITY
The following table lists constants to be used for MapOption that can be used to specify algo-
rithm to map output to loads where meshes do not coincide.
These constants are used for the MapFromModelToSet method.

Constant Name Constant Name

FMO_ZERO FMO_INTERP

FMO_VALUE FMO_NONE

FMO_EXTEND
The following table lists constants to be used for MapToType that can be used to specify target
mapping type. FMP_STANDARD is used if source output is from same entity type (Node or Ele-
ment) as the desired target load.
These constants are used for MapFromModelToSet method.

Constant Name Constant Name

FMP_STANDARD FMP_ELEMENT

FMP_NODE

Data Surface Constants


The following table lists constants to be used for Data Surface Cell Types

Constant Name Constant Name

FDT_VALUE_X FDT_PAGEVALUE

FDT_VALUE_Y FDT_BASECOLUMNTITLE

FDT_VALUE_Z FDT_COLUMNTITLE

FDT_ROWVALUE FDT_PAGETITLE

FDT_COLUMNVALUE FDT_PAGESIZE
The following table lists constants to be used for Data Surface Dimension

Constant Name Constant Name

FDM_1D FDM_3D

FDM_2D
API-152 Global String Properties

Data Table Constants


The Data Table is used to create tables of data extracted from Model(s) currently open in FEMAP
which are presented in a spread sheet format.
The following table lists constants to be used for the Data Table Column Type.

Constant Name Constant Name

FCT_BOOL FCT_DOUBLE

FCT_INT FCT_STRING

The following table lists constants to be used for the Data Table Alignment.

Constant Name Constant Name

FAL_LEFT FAL_RIGHT

FAL_CENTER
The following table lists constants to be used for the Data Table Save to a File Format

Constant Name Constant Name

FSF_TEXT FSF_RTF

FSF_CSV

Optimization Constants
The following table lists constants to be used for Optimization Methods.

Constant Name Constant Name

FOP_NONE FOP_VARY

FOP_GOAL FOP_LIMIT
The following table lists constants to be used for Optimization Goal Method.

Constant Name Constant Name

FOG_NONE FOG_MINWEIGHT

The following table lists constants to be used for Optimization Vary Method.

Constant Name Constant Name

FOV_NONE FOV_BARI1

FOV_RODAREA FOV_BARI2

FOV_RODTORSION FOV_BARTORSION
Global String Properties API-153

Constant Name Constant Name

FOV_BARAREA FOV_PLATETHICKNESS
The following table lists constants to be used for Optimization Limit Method.

Constant Name Constant Name

FOL_NONE FOL_BARMINSTRAIN

FOL_NODXDISP FOL_PLTXNORMALSTRESS

FOL_NODYDISP FOL_PLTYNORMALSTRESS

FOL_NODZDISP FOL_PLTXYSHEARSTRESS

FOL_NODXRDISP FOL_PLTMAXPRINSTRESS

FOL_NODYRDISP FOL_PLTMINPRINSTRESS

FOL_NODZRDISP FOL_PLTVONMISESSTRESS

FOL_RODAXIALSTRESS FOL_PLTXNORMALSTRAIN

FOL_RODTORSIONSTRESS FOL_PLTYNORMALSTRAIN

FOL_RODAXIALSTRAIN FOL_PLTXYSHEARSTRAIN

FOL_RODTORSIONSTRAIN FOL_PLTMAXPRINSTRAIN

FOL_BARAXIALSTRESS FOL_PLTMINPRINSTRAIN

FOL_BARMAXSTRESS FOL_PLTVONMISESSTRAIN

FOL_BARMINSTRESS FOL_FREQUENCY

FOL_BARAXIALSTRAIN FOL_EIGENVALUE

FOL_BARMAXSTRAIN

Output Types
The following table lists constants to be used for Output Types.

Constant Name Constant Name

FOT_ANY FOT_STRESS

FOT_DISP FOT_STRAIN

FOT_ACCEL FOT_TEMP

FOT_FORCE
API-154 Global String Properties

Output - Complex Types


The following table lists constants to be used for Complex Output Types.

Constant Name Constant Name

FOC_ANY FOC_REAL

FOC_MAGNITUDE FOC_IMAGINARY

FOC_PHASE

Output - Transformation Types


The following table lists constants to be used for Output Transformation Types.

Constant Name Constant Name

FOD_NONE FOD_PLATE_TO_CSYS

FOD_VECTOR_TO_CSYS FOD_PLATE_TO_VECTOR

FOD_VECTOR_TO_NODE_OUTPUT_CSYS FOD_SOLID_TO_CSYS

FOD_PLATE_TO_MATL FOD_SOLID_TO_MATL

Output Set - Output Process Operation (Combination) Types


The following table lists constants to be used for Output Processing Operation Types.

Constant Name Constant Name

FRPROC_NONE FRPROC_ENV_ABSMAX

FRPROC_LINEAR FRPROC_ENV_MAX_SETID

FRPROC_RSS FRPROC_ENV_MIN_SETID

FRPROC_ENV_MAX FRPROC_ENV_ABSMAX_SETID

FRPROC_ENV_MIN

View Modes
The following table lists constants to be used for View Modes.

Constant Name Constant Name

FVM_DRAW FVM_XY_VS_ID
FVM_FEATURE FVM_XY_VS_CASE

FVM_SORT FVM_XY_VS_VALUE
Global String Properties API-155

Constant Name Constant Name

FVM_HIDE FVM_XY_VS_POSITION

FVM_FREE FVM_XY_OF_FUNCTION

FVM_FREE_FACE

Entity Visibility
The following table lists constants to be used for Entity Visibility.

Constant Name Constant Name

FVIS_POINT FVIS_ELEM_TYPE
FVIS_CURVE FVIS_ELEM_SHAPE

FVIS_SURFACE FVIS_MATL

FVIS_SOLID FVIS_PROP

FVIS_CSYS FVIS_AERO_PANE

FVIS_CONNECTION_REGION FVIS_AERO_SPLINE

FVIS_CONNECTION FVIS_AERO_SURFACE

View Options
A list of the View Options constants for use with Draw, Label, Color, and ColorMode can be found
in Section 5.60.1.2, "View Option Types" with Text in View Options and Index number.

Deformed Formats
The following table lists constants to be used for Deformed Formats .

Constant Name Constant Name

FDF_NONE FDF_ANIMATE_MULTICASE
FDF_MODEL_UNDEF FDF_ARROW
FDF_DEFORMED FDF_TRACE

FDF_ANIMATE FDF_STREAMLINE
API-156 Global String Properties

Contour Formats
The following table lists constants to be used for Contour Formats.

Constant Name Constant Name

FCF_NONE FCF_BEAM_DIAGRAM
FCF_MODEL_COLOR FCF_ISOSURFACE
FCF_CONTOUR FCF_SECTION_CUT

FCF_CRITERIA FCF_CONTOUR_VECTOR

Freebody Display Modes


The following table lists constants to be used for Freebody Display Mode

Constant Name Constant Name

FBD_DISPLAYMODE_FREEBODY
FBD_DISPLAYMODE_INTERFACE
FBD_DISPLAYMODE_SECTION

Freebody Vector Modes


The following table lists constants to be used for Freebody Vector Display Mode

Constant Name Constant Name

FBD_VEC_MODE_OFF FBD_VEC_MODE_RESULTANT
FBD_VEC_MODE_COMPONENT

Freebody Section Cut Entity Selection Modes


The following table lists constants to be used for Freebody Entity Selection Mode when Freebody
Display Mode is set to Section Cut

Constant Name Constant Name

FBD_SECTMODE_PLANENORMAL FBD_SECTMODE_VECTOR
FBD_SECTMODE_PLANEVECTOR FBD_SECTMODE_CURVE
Global String Properties API-157

Freebody Section Cut Summation Location


The following table lists constants to be used for Summation Location when Freebody Display
Mode is set to Section Cut

Constant Name Constant Name

FBD_SECTION_SUMLOC_BASE
FBD_SECTION_SUMLOC_CENTROID
FBD_SECTION_SUMLOC_LOCATION

Group Data Types


The following table lists constants to be used when selecting DataTypes for Groups.

Constant Name Constant Name

FGR_CSYS FGR_BEQ

FGR_POINT FGR_PLOAD
FGR_CURVE FGR_CLOAD
FGR_SURFACE FGR_SLOAD
FGR_VOLUME FGR_PBCO
FGR_TEXT FGR_CBCO
FGR_NODE FGR_SBCO
FGR_ELEM FGR_SOLID
FGR_MATL FGR_CONTACT
FGR_PROP FGR_CONNECTIONPROP
FGR_NLOAD FGR_CONNECTION
FGR_ELOAD FGR_LAYUP
FGR_BCO FGR_REGLOAD

Group Definition Types


The following table lists constants to be used for adding Text to Groups

Constant Name Constant Name

FGD_TEXT_ID FGD_TEXT_BYLAYER
FGD_TEXT_BYCOLOR
API-158 Global String Properties

The following table lists constants to be used for adding Points to Groups

Constant Name Constant Name

FGD_POINT_ID FGD_POINT_BYCOLOR
FGD_POINT_BYDEFCSYS FGD_POINT_BYLAYER
FGD_POINT_ONCURVE FGD_POINT_BYPROP
The following table lists constants to be used for adding Curves to Groups

Constant Name Constant Name

FGD_CURVE_ID FGD_CURVE_BYLAYER
FGD_CURVE_BYPOINT FGD_CURVE_BYPROP
FGD_CURVE_ONSURFACE FGD_CURVE_ONSOLID
FGD_CURVE_BYCOLOR
The following table lists constants to be used for adding Surfaces to Groups

Constant Name Constant Name

FGD_SURFACE_ID FGD_SURFACE_BYLAYER
FGD_SURFACE_BYCURVE FGD_SURFACE_BYPROP
FGD_SURFACE_ONVOLUME FGD_SURFACE_ONSOLID
FGD_SURFACE_BYCOLOR
The following table lists constants to be used for adding Volumes to Groups

Constant Name Constant Name

FGD_VOLUME_ID FGD_VOLUME_BYLAYER
FGD_VOLUME_BYSURFACE FGD_VOLUME_BYPROP
FGD_VOLUME_BYCOLOR
The following table lists constants to be used for adding Solids to Groups

Constant Name Constant Name

FGD_SOLID_ID FGD_SOLID_BYCOLOR
FGD_SOLID_BYCURVE FGD_SOLID_BYLAYER
FGD_SOLID_BYSURFACE FGD_SOLID_BYPROP
Global String Properties API-159

The following table lists constants to be used for adding Connection Properties to Groups

Constant Name Constant Name

FGD_CONNECTIONPROP_ID FGD_CONNECTIONPROP_BYCOLOR
FGD_CONNECTIONPROP_BYCOLOR FGD_CONNECTIONPROP_ONCONNE
CTION
The following table lists constants to be used for adding Regions to Groups

Constant Name Constant Name

FGD_CONNECTION_ID FGD_CONNECTION_BYPROP
FGD_CONNECTION_BYCOLOR FGD_CONNECTION_BYCONTACT
FGD_CONNECTION_BYLAYER
The following table lists constants to be used for adding Connectors (contact pairs) to Groups.

Constant Name Constant Name

FGD_CONTACT_ID FGD_CONTACT_BYNODE
FGD_CONTACT_BYCOLOR FGD_CONTACT_BYCURVE
FGD_CONTACT_BYLAYER FGD_CONTACT_BYSURFACE
FGD_CONTACT_ONCONNECTION FGD_CONTACT_BYPROP
FGD_CONTACT_BYELEM
The following table lists constants to be used for adding Coordinate Systems to Groups

Constant Name Constant Name

FGD_CSYS_IDF FGD_CSYS_ONNODE
FGD_CSYS_BYDEFCSYS FGD_CSYS_ONPOINT
FGD_CSYS_BYTYPE FGD_CSYS_ONCSYS
FGD_CSYS_BYCOLOR FGD_CSYS_ONPROP
FGD_CSYS_BYLAYER
The following table lists constants to be used for adding Nodes to Groups.

Constant Name Constant Name

FGD_NODE_ID FGD_NODE_ATSURFACE
FGD_NODE_BYDEFCSYS FGD_NODE_ATSOLID
API-160 Global String Properties

Constant Name Constant Name


FGD_NODE_BYOUTCSYS FGD_NODE_BYCOLOR

FGD_NODE_ONELEM FGD_NODE_BYLAYER
FGD_NODE_ATPOINT FGD_NODE_ONELEMASORIENT
FGD_NODE_ATCURVE FGD_NODE_BYSUPERELEMENT
The following table lists constants to be used for adding Elements to Groups.

Constant Name Constant Name

FGD_ELEM_ID FGD_ELEM_ATSOLID
FGD_ELEM_BYMATL FGD_ELEM_BYCOLOR
FGD_ELEM_BYPROP FGD_ELEM_BYLAYER
FGD_ELEM_BYTYPE FGD_ELEM_BYSHAPE
FGD_ELEM_BYNODE FGD_ELEM_BYLAYUP
FGD_ELEM_ATPOINT FGD_ELEM_BYALLNODES
FGD_ELEM_ATCURVE FGD_ELEM_BYGLOBALPLY
FGD_ELEM_ATSURFACE
The following table lists constants to be used for adding Materials to Groups.

Constant Name Constant Name

FGD_MATL_ID FGD_MATL_BYTYPE
FGD_MATL_ONPROP FGD_MATL_BYCOLOR
FGD_MATL_ONELEM FGD_MATL_BYLAYER
The following table lists constants to be used for adding Properties to Groups.

Constant Name Constant Name

FGD_PROP_ID FGD_PROP_BYCOLOR
FGD_PROP_ONELEM FGD_PROP_BYLAYER
FGD_PROP_BYMATL FGD_PROP_BYLAYUP
FGD_PROP_BYTYPE
The following table lists constants to be used for adding Layups to Groups

Constant Name Constant Name

FGD_LAYUP_ID FGD_LAYUP_ONPROP
Global String Properties API-161

Constant Name Constant Name

FGD_LAYUP_BYMATL FGD_LAYUP_BYGLOBALPLY
The following table lists constants to be used for adding Loads to Groups.

Constant Name Constant Name

FGD_LOAD_BYNODE FGD_LOAD_BYCURVE
FGD_LOAD_BYELEM FGD_LOAD_BYSURFACE
FGD_LOAD_BYPOINT FGD_LOAD_BYREGION
The following table lists constants to be used for adding Boundary Conditions to Groups.

Constant Name Constant Name

FGD_BCO_ID FGD_BCO_BYCURVE
FGD_BEQ_BYNODE FGD_BCO_BYSURFACE
FGD_BCO_BYPOINT
The following table lists constants to be used for adding Aero Entities to Femap Sets
Although Aero entities are not currently supported in Femap groups the group rules can be used
for adding Aero entities to Femap Set Objects.

Constant Name Constant Name

FGD_AEROPROP_ID FGD_AEROSPLINE_BYCOLOR
FGD_AEROPROP_BYCOLOR FGD_AEROSPLINE_BYLAYER
FGD_AEROPROP_BYLAYER FGD_AEROSPLINE_BYPANEL
FGD_AEROPANEL_ID FGD_AEROCTRLSURF_ID
FGD_AEROPANEL_BYCOLOR FGD_AEROCTRLSURF_BYCOL
OR
FGD_AEROPANEL_BYLAYER FGD_AEROCTRLSURF_BYLAY
ER
FGD_AEROSPLINE_ID

Print Source Options


The following table lists constants to be used for Print Source Options.

Constant Name Constant Name

FPS_VIEW FPS_MESSAGES
API-162 Global String Properties

Constant Name Constant Name

FPS_DESKTOP FPS_PROGRAMFILE

FPS_FILE FPS_ENTITYINFO

FPS_LAYOUT FPS_APIPROGRAM

Return Codes
The following table lists constants to be used for Return Codes. These can be helpful when testing
and debugging a program created with the FEMAP API.

Constant Name Constant Name

FE_OK -1 FE_TOO_SMALL 7

FE_FAIL 0 FE_BAD_TYPE 8

FE_CANCEL 2 FE_BAD_DATA 9

FE_INVALID 3 FE_NO_MEMORY 10

FE_NOT_EXIST 4 FE_NEGATIVE_MASS_VOLUME 11

FE_SECURITY 5 FE_NO_FILENAME 16

FE_NOT_AVAILABLE 6

FEMAP Events
The following table lists constants to be used for FEMAP Events.

Constant Name Constant Name

FEVENT_INITIALIZE FEVENT_PROGEND
FEVENT_NEWMODEL FEVENT_DRAWSTART

FEVENT_ENDMODEL FEVENT_DRAWEND

FEVENT_SHUTDOWN FEVENT_ANALYSISEND

FEVENT_COMMAND FEVENT_RESULTSEND

FEVENT_PROGSTART FEVENT_SWITCHMODEL
Global String Properties API-163

FEMAP Colors
The following table lists constants to be used for Colors located in the First Row of the FEMAP
color palette..Color Number in Parentheses.

Constant Name Constant Name

FCL_BLACK (0) FCL_DARKGOLDENROD (13)


FCL_SEPIA (1) FCL_ORANGE (14)

FCL_DARKRED (2) FCL_LIMEGREEN (15)

FCL_MAROON (3) FCL_YELLOWLIMEGREEN (16)

FCL_RED (4) FCL_AVOCADO (17)

FCL_DARKESTGREEN (5) FCL_OLIVEYELLOW (18)

FCL_DARKOLIVEGREEN (6) FCL_GOLD (19)


FCL_BROWN (7) FCL_LIME (20)

FCL_SIENNA (8) FCL_BRIGHTLIME (21)

FCL_ORANGERED (9) FCL_CHARTREUSE (22)

FCL_GREEN (10) FCL_BRIGHTCHARTREUSE (23)

FCL_FERNGREEN (11) FCL_YELLOW (24)

FCL_OLIVE (12)
The following table lists constants to be used for Colors located in the Second Row of the FEMAP
color palette..

Constant Name Constant Name

FCL_MIDNIGHTBLUE (25) FCL_PERU (38)


FCL_EGGPLANT (26) FCL_CORAL (39)

FCL_DARKRASPBERRY (27) FCL_DARKPASTELGREEN (40)

FCL_RASPBERRY (28) FCL_PALELIMEGREEN (41)

FCL_CRIMSON (29) FCL_YELLOWGREEN (42)

FCL_DARKSLATEGRAY (30) FCL_OLDGOLD (43)

FCL_DARKGRAY (31) FCL_GOLDENROD (44)


FCL_CAMOUFLAGEGREEN (32) FCL_BLUELIME (45)

FCL_FIREBRICK (33) FCL_PALELIME (46)


API-164 Global String Properties

Constant Name Constant Name

FCL_TOMATO (34) FCL_PALEBRIGHTGREEN (47)

FCL_PINEGREEN (35) FCL_GREENYELLOW (48)

FCL_FORESTGREEN (36) FCL_NOTEYELLOW (49)

FCL_PALEOLIVE (37)

The following table lists constants to be used for Colors located in the Third Row of the FEMAP
color palette..

Constant Name Constant Name

FCL_DARKBLUE (50) FCL_ROSYBROWN (63)


FCL_INDIGO (51) FCL_LIGHTSALMON (64)

FCL_PURPLE (52) FCL_JADE (65)

FCL_MEDIUMVIOLETRED (53) FCL_SEAGREEN (66)

FCL_DEEPPINK (54) FCL_DARKSEAGREEN (67)

FCL_DARKCERULEAN (55) FCL_DARKKHAKI (68)

FCL_DARKSLATEBLUE (56) FCL_SANDYBROWN (69)


FCL_PALEPURPLE (57) FCL_SPRINGGREEN (70)

FCL_MAUVE (58) FCL_LIGHTSPRINGGREEN (71)

FCL_CERISE (59) FCL_LIGHTGREEN (72)

FCL_DARKCYAN (60) FCL_TEAGREEN (73)

FCL_VIRIDIAN (61) FCL_PALEYELLOW (74)

FCL_GRAY (62)

The following table lists constants to be used for Colors located in the Fourth Row of the FEMAP
color palette..

Constant Name Constant Name

FCL_MEDIUMBLUE (75) FCL_PLUM (88)


FCL_BLUEINDIGO (76) FCL_REDPINK (89)

FCL_DARKVIOLET (77) FCL_DARKTURQUOISE (90)


Global String Properties API-165

Constant Name Constant Name

FCL_VIOLETEGGPLANT (78) FCL_MEDIUMTURQUOISE (91)

FCL_FUCHSIA (79) FCL_MEDIUMAQUAMARINE (92)

FCL_COBALT (80) FCL_SILVER (93)

FCL_PALEBLUEPURPLE (81) FCL_PALEREDVIOLET (94)


FCL_MEDIUMPURPLE (82) FCL_MEDIUMSPRINGGREEN (95)

FCL_ORCHID (83) FCL_TURQUOISE (96)

FCL_PINKCERISE (84) FCL_AQUAMARINE (97)

FCL_CERULEAN (85) FCL_MINTCREAM (98)

FCL_STEELBLUE (86) FCL_LEMONCHIFFON (99)

FCL_SLATEBLUE (87)

The following table lists constants to be used for Colors located in the Fifth Row of the FEMAP
color palette..

Constant Name Constant Name

FCL_BLUE (100) FCL_WISTERIA (113)


FCL_PERSIANBLUE (101) FCL_PINK (114)

FCL_VIOLET (102) FCL_DEEPSKYBLUE (115)

FCL_BRIGHTVIOLET (103) FCL_SKYBLUE (116)

FCL_MAGENTA (104) FCL_PALESKYBLUE (117)

FCL_BRIGHTCOBALT (105) FCL_THISTLE (118)

FCL_PALECOBALT (106) FCL_PALEPINK (119)


FCL_BLUEVIOLET (107) FCL_CYAN (120)

FCL_MEDIUMORCHID (108) FCL_BRIGHTTURQUOISE (121)

FCL_HOTPINK (109) FCL_PALEBLUE (122)

FCL_DODGERBLUE (110) FCL_POWDERBLUE (123)

FCL_ROYALBLUE (111) FCL_WHITE (124)

FCL_MEDIUMSLATEBLUE (112)
API-166 Global String Properties

The following table lists constants to be used for Colors located in the Grayscale Row of the
FEMAP color palette..

Constant Name Constant Name

FCL_GRAY10 (125) FCL_GRAY140 (138)


FCL_GRAY20 (126) FCL_GRAY150 (139)

FCL_GRAY30 (127) FCL_GRAY160 (140)

FCL_GRAY40 (128) FCL_GRAY170 (141)

FCL_GRAY50 (129) FCL_GRAY180 (142)

FCL_GRAY60 (130) FCL_GRAY190 (143)

FCL_GRAY70 (131) FCL_GRAY200 (144)


FCL_GRAY80 (132) FCL_GRAY210 (145)

FCL_GRAY90 (133) FCL_GRAY220 (146)

FCL_GRAY100 (134) FCL_GRAY230 (147)

FCL_GRAY110 (135) FCL_GRAY240 (148)

FCL_GRAY120 (136) FCL_GRAY250 (149)

FCL_GRAY130 (137)

FEMAP Brush Patterns


The following table lists constants to be used for FEMAP Brush Patterns. These can be added to a
FEMAP color using an or between the Color Name and the Brush Pattern Constant. For Exam-
ple, to make a green color with level 4 transparency, you would put FCL_GREEN or
FPF_TRANSPARENT4.
Constant Name Constant Name

FPF_SOLID FPF_TRANSPARENT7

FPF_HORIZONTAL FPF_TRANSPARENT6

FPF_VERTICAL FPF_TRANSPARENT5

FPF_FDIAGONAL FPF_TRANSPARENT4

FPF_BDIAGONAL FPF_TRANSPARENT3

FPF_CROSS FPF_TRANSPARENT2

FPF_DIAGCROSS FPF_TRANSPARENT1
Global String Properties API-167

Constant Name Constant Name

FPF_TRANSPARENT8

FEMAP Pen Linestyles


The following table lists constants to be used for FEMAP Pen Linestyles. These can be added to a
FEMAP color using an or between the Brush Pattern Constant and the Pen Linestyle.

Constant Name Constant Name

FPL_SOLID FPL_DASHDOTDOT

FPL_DASH FPL_THICK2

FPL_DOT FPL_THICK3

FPL_DASHDOT FPL_THICK4

FEMAP Picture Regions


The following table lists constants to be used to determine which portion of the FEMAP interface
to copy or save.

Constant Name Constant Name

FPRG_WINDOW FPRG_DESKTOP

FPRG_LAYOUT

FEMAP Picture Formats


The following table lists constants to be used for FEMAP Picture Formats.

Constant Name Constant Name

FPM_BMP FPM_JT

FPM_METAFILE (Constant Reserved)

FPM_PLACEMF FPM_GIF

FPM_JPEG FPM_GIFANIM

FPM_BMPSERIES FPM_TIF

FPM_AVI FPM_PNG
API-168 Global String Properties

FEMAP Default Picture Formats


The following table lists constants to be used for FEMAP Default Picture Formats which can be
set via the Preferences.

Constant Name Constant Name

PPFM_BMP PPFM_GIF

PPFM_JPEG PPFM_TIF

PPFM_PNG

FEMAP Default Animation Formats


The following table lists constants to be used for FEMAP Default Animation Formats which can
be set via the Preferences.

Constant Name Constant Name

PAFM_BMP PAFM_AVI

PAFM_BMPSERIES PAFM_GIF

FEMAP GIF Options


The following table lists constants to be used for GIF Formats which can be set via the Prefer-
ences.

Constant Name Constant Name

GIFC_NET GIFC_DITHER

GIFC_OCTREE

Messages Window Text Colors


The following table lists constants to be used for Messages Window Text Colors..

Constant Name Constant Name

FCM_NORMAL FCM_ERROR
FCM_HIGHLIGHT FCM_COMMAND

FCM_WARNING
Global String Properties API-169

Coordinate Dialog Methods


The following table lists constants to be used for Coordinate Dialog Methods. These can be help-
ful when testing and debugging a program created with the FEMAP API.

Constant Name Constant Name

FCD_COORDINATES FCD_BETWEEN
FCD_WORKPLANE_COORDINATES FCD_INTERSECTION

FCD_USE_POINTS FCD_MIDPOINT

FCD_USE_NODES FCD_PROJECT_ON_CURVE

FCD_OFFSET FCD_PROJECT_ON_SURFACE

FCD_DISTANCE FCD_ON_SURFACE

FCD_CENTER FCD_INTERSECTCURVESURFACE

FCD_ALONG FCD_CG_SURFACE

FCD_MESH_LOCATION FCD_ALONGLENGTH

Vector Dialog Methods


The following table lists constants to be used for Vector Dialog Methods..

Constant Name Constant Name

FVD_POSITION FVD_NORMAL_TO_SURFACE
FVD_POSITION_LENGTH FVD_BISECT

FVD_USE_POINTS FVD_NORMAL

FVD_USE_NODES FVD_DEFCS_AXIS

FVD_COMPONENTS FVD_GLOBAL_AXIS

FVD_DIRECTION FVD_NORMAL_TO_VIEW

FVD_TANGENT FVD_AXIS_OF_SURFACE

Plane Dialog Methods


The following table lists constants to be used for Plane Dialog Methods..

Constant Name Constant Name

FPD_POSITION FPD_DEFCS_AXIS
FPD_USE_POINTS FPD_GLOBAL_AXIS
API-170 Global String Properties

Constant Name Constant Name

FPD_USE_NODES FPD_NORMAL_TO_VIEW

FPD_COMPONENTS FPD_NORMAL_TO_CURVE

FPD_BISECT FPD_NORMAL_TO_SURFACE

FPD_NORMAL

Selector Constants
The Selector (Select Toolbar) is used to create Selection sets in FEMAP which may contain dif-
ferent entity types and can also be used to load entities into the Data Table and Entity Editor.
The following table lists constants to be used for the Selector Entity Type.

Constant Name Constant Name

FS_POINT FS_LOAD_NODAL

FS_CURVE FS_LOAD_ELEMENTAL

FS_SURFACE FS_LOAD_ON_POINT

FS_SOLID FS_LOAD_ON_CURVE

FS_CONNECTION_PROP FS_LOAD_ON_SURFACE
FS_CONNECTION_REGION FS_BC_NODAL

FS_CONNECTION FS_BC_EQUATION

FS_CSYS FS_BC_ON_POINT

FS_NODE FS_BC_ON_CURVE

FS_ELEM FS_BC_ON_SURFACE
FS_MATL FS_TEXT
FS_PROP

The following table lists constants to be used for Selector Pick (Drill) Method

Constant Name Constant Name

FSD_OFF FSD_FRONT

FSD_QUERY
Global String Properties API-171

Real Number Formats


The following table lists formats available for writing out real numbers.

Constant Name Constant Name

FRFM_NORMAL FRFM_NASTRAN

FRFM_EXPONENTIAL

Chart Data Series Types


The following table lists constants to be used for Chart Data Series Type in the Charting pane.

Constant Name Constant Name

FCHD_TYPE_ID FCHD_POSITION
FCHD_SET FCHD_FUNCTION

FCHD_SETVAL FCHD_TYPE_VECVEC

Chart Styles
The following table lists constants to be used for Chart Style in the Charting pane.

Constant Name Constant Name

FCH_STYLE_POINT FCH_STYLE_LINESTEP
FCH_STYLE_LINE FCH_STYLE_AREA

FCH_STYLE_LINEFAST FCH_STYLE_AREASTEP

Chart Axis Styles


The following table lists constants to be used for Chart Axis Styles in the Charting pane.

Constant Name Constant Name

FCH_AXISSTYLE_LINEAR FCH_AXISSTYLE_LOG

Chart Palette
The following table lists constants to be used for Chart Palette in the Charting pane.

Constant Name Constant Name

FCH_PALETTE_FEMAP FCH_PALETTE_BLUE
FCH_PALETTE_GRAY FCH_PALETTE_BROWN

FCH_PALETTE_OFFICE FCH_PALETTE_GREEN
API-172 Global String Properties

Constant Name Constant Name

FCH_PALETTE_VIBRANT FCH_PALETTE_RED

Chart Legend Location


The following table lists constants to be used for Chart Legend Location in the Charting pane.

Constant Name Constant Name

FCH_LEGEND_LOCATION_NEARO FCH_LEGEND_LOCATION_FAR
UTSIDE
FCH_LEGEND_LOCATION_NEAR FCH_LEGEND_LOCATION_FAROU
TSIDE

FCH_LEGEND_LOCATION_CENTER

Chart Legend Direction


The following table lists constants to be used for Chart Legend Direction in the Charting pane.

Constant Name Constant Name

FCH_LEGEND_DIRECTION_TOPTO FCH_LEGEND_DIRECTION_LEFTT
BOTTOM ORIGHT

Chart Title Location


The following table lists constants to be used for Chart Title Location in the Charting pane.

Constant Name Constant Name

FCH_TITLE_LOCATION_TOP FCH_TITLE_LOCATION_RIGHT
FCH_TITLE_LOCATION_LEFT FCH_TITLE_LOCATION_BOTTOM

Chart Text Justification


The following table lists constants to be used for Chart Text Justification in the Charting pane.

Constant Name Constant Name

FCH_TEXT_JUSTIFICATION_LEFT FCH_TEXT_JUSTIFICATION_RIGHT
FCH_TEXT_JUSTIFICATION_CENTER
Global String Properties API-173

Chart Number Format


The following table lists constants to be used for Chart Number Format in the Charting pane.

Constant Name Constant Name

FCH_FORMAT_STANDARD FCH_FORMAT_PERCENTAGE
FCH_FORMAT_SCIENTIFIC

Chart Marker Style


The following table lists constants to be used for Chart Marker Style in the Charting pane.

Constant Name Constant Name

FCH_MARKERSTYLE_CIRCLE FCH_MARKERSTYLE_PENTAGON
FCH_MARKERSTYLE_SQUARE FCH_MARKERSTYLE_HEXAGON

FCH_MARKERSTYLE_DIAMOND FCH_MARKERSTYLE_STAR

FCH_MARKERSTYLE_TRIANGLE

NX Nastran Element Quality Checks


The following table lists constants used to select a particular NX Nastran element quality check.

Constant Name Constant Name

FNQ_QUAD_SKEW FNQ_HEX_EPLR
FNQ_QUAD_TAPER FNQ_HEX_DETJ

FNQ_QUAD_WARP FNQ_HEX_WARP

FNQ_QUAD_IA_MIN FNQ_PENTA_AR

FNQ_QUAD_IA_MAX FNQ_PENTA_EPLR

FNQ_TRIA_SKEW FNQ_PENTA_DETJ
FNQ_TRIA_IAMAX FNQ_PENTA_WARP

FNQ_TETRA_AR FNQ_PYR_AR

FNQ_TETRA_EPLR FNQ_PYR_EPLR

FNQ_TETRA_DETJ FNQ_PYR_WARP

FNQ_HEX_AR FNQ_PYR_DETJ
API-174 Global String Properties

Results Exist State


The following table lists constants to be used to determine if data exists in the Results Browsing
Object.

Constant Name Constant Name

FEX_EXISTING FEX_NONEXISTING

Results Locate Options


The following table lists constants to be used to locate results in the Results Browsing Object.

Constant Name Constant Name

FLO_AFTER FLO_AFTER_EQUAL
FLO_BEFORE FLO_BEFORE_EQUAL

Results Conversion Options


The following table lists constants to be used to specify data conversion in the Results Browsing
Object.

Constant Name Constant Name

FRC_AVG FRC_AVG_SKIP_CORNER
FRC_MAX FRC_MAX_SKIP_CORNER

FRC_MIN FRC_MIN_SKIP_CORNER

Attached Results Management


The following table lists constants to be used to manage attached results files.

Constant Name Constant Name

FMRA_LOAD FMRA_DETACH
FMRA_UNLOAD FMRA_UPDATE_PATH

Attached Results Status


The following table lists constants to be used to determine status of attached results files.

Constant Name Constant Name

FRA_UNLOADED FRA_ERROR
FRA_OPEN FRA_UNLOAD_CHECK

FRA_OPEN_CHECK
Global String Properties API-175

Beam Calculator Stress Component


The following table lists constants used for to specify which stress component to return when
using the Beam Calculator.

Constant Name Constant Name

FBMC_SC_ALL FBMC_SC_VONMISES
FBMC_SC_MAXSHEAR FBMC_SC_MAXPRIN

FBMC_SC_MINPRIN FBMC_SC_AXIAL

FBMC_SC_YSHEAR FBMC_SC_ZSHEAR

FBMC_SC_COMBSHEAR
API-176

3.4 File Methods


The File Methods include:
Section 3.4.1, "File Open/Exit"
Section 3.4.2, "File Save"
Section 3.4.3, "Import Geometry"
Section 3.4.4, "Import Analysis Model"
Section 3.4.5, "Import Analysis Results"
Section 3.4.6, "Attach To Results File"
Section 3.4.7, "Import/Export Neutral File"
Section 3.4.8, "Export Geometry"
Section 3.4.9, "Export Analysis Model"
Section 3.4.10, "Notes"
Section 3.4.11, "Print and Copy"
Section 3.4.12, "Rebuild and Preferences"
feFileNew API-177

3.4.1 File Open/Exit


3.4.1.1 feFileNew

feFileNew
( void )
Description:
This function starts a new model. It works like the File, New command.
Input:
None
Output:
None
Return Code:
FE_FAIL Unable to create a new file.
Remarks/Usage:
In releases prior to v9, this API function required 2 arguments because multiple models were not sup-
ported and the previous model needed to be closed prior to opening the new model.
Example:
None
API-178 feFileOpen

3.4.1.2 feFileOpen

feFileOpen
( useDlg, fName )
Description:
This function opens an existing model, or starts a new model and loads the contents of a file in one of
the supported analysis formats. It works like the File, Open command.
Input:
BOOL useDlg If True, fName is ignored and the standard dialog boxes are dis-
played allowing the user to choose a model to open. If False, the
model specified in fName is opened.
STRING fName The filename of the file to be opened. In general, this name should be
specified with a complete path. If no path is supplied, the file will be
opened from the current FEMAP directory.
Output:
None
Return Code:
FE_FAIL Unable to open file.
FE_NOT_EXIST Specified file does not exist.
Remarks/Usage:
feFileOpen( True, wing.mod ) - interactive use, even though you specified a filename, it will not be
opened - the user will be asked to choose a model.
feFileNew( False, C:\Models\Bracket.mod ) - Opens the model C:\Models\Bracket.mod without
asking for user input.
Example:
None
feFileClose API-179

3.4.1.3 feFileClose

feFileClose
( saveChanges )
Description:
This function closes the active model
Input:
BOOL saveChanges If True, any changes in the model will be saved. If False, the model
will simply close, discarding any changes.
Output:
None
Return Code:
None
Remarks/Usage:
This function will always display a dialog box asking for a filename if you are saving changes to a
model that has never been saved previously. To prevent this, you must either discard the changes, or
save the model prior to calling this method.
Example:
None
API-180 feFileExit

3.4.1.4 feFileExit

feFileExit
( void )
Description:
This function causes FEMAP to exit.
Input:
None
Output:
None
Return Code:
FE_OK The exit operation succeeded.
FE_FAIL The file exit operation failed. The lock_count has not been decre-
mented to zero preventing Femap from exiting.
Remarks/Usage:
This function will always display a dialog box asking for confirmation to save the current model unless
it has not been modified since the last save. Therefore, to exit with no user interaction, you must either
use one of the FileSave functions or feFileNew immediately prior to calling this function.
Example:
None
feFileSave API-181

3.4.2 File Save


3.4.2.1 feFileSave

feFileSave
( useDlg )
Description:
This function saves the current model to the current model name, like the File, Save command.
Input:
BOOL useDlg If True, the function runs interactively. In this mode, if the model
name has not been specified, the Save As dialog will be displayed to
allow you to choose the name. If a model filename has been speci-
fied, the model will simply be saved.
If False, the model will be saved if the filename has been selected, or
the function will fail if the model has never been saved before.
Output:
None
Return Code:
FE_FAIL The save operation failed. Either the filename specified cannot be
written, or some other error occurred during the save operation.
FE_NO_FILENAME useDlg=False and the model name has never been specified. Use
feFileSaveAs instead to specify a name to be used to save the model.
Remarks/Usage:
None
Example:
None
API-182 feFileSaveAs

3.4.2.2 feFileSaveAs

feFileSaveAs
( useDlg, fName )
Description:
This function saves the current model, like the File, Save As command. The filename can either be spec-
ified or chosen interactively.
Input:
BOOL useDlg If True, the filename to be used to save the current model will be
chosen interactively by display the Save As dialog box.
If False, operation is automatic and the fName parameter must be
specified.
STRING fName The filename to use to save the current model. This is only used if
useDlg=False.
Output:
None
Return Code:
FE_FAIL The save operation failed. Either the filename specified cannot be
written, or some other error occurred during the save operation.
FE_CANCEL useDlg=True and the user cancelled the save operation.
FE_INVALID The filename is not valid to save the model.
Remarks/Usage:
feFileSaveAs( True, ) - ask the user for a filename and save the current model to that file.
feFileSaveAs( False, c:\models\car.modfem ) - automatically save the current model to the specified
file.
Example:
None
feFileTimedSave API-183

3.4.2.3 feFileTimedSave

feFileTimedSave
( useDlg, saving, notify, interval, commands )
Description:
This function controls whether or not timed save is turned on, and sets the available parameters for
timed save operation. It works like the File, Timed Save command.
Input:
BOOL useDlg If True, the function runs interactively and displays the dialog box
displayed by the File, Timed Save command. In this case, all other
parameters are ignored.
If False, the other parameters automatically define the timed save
options.
BOOL saving Turns on/off timed save ( True = on, False = off).
BOOL notify If this is on, then the user will be notified prior to a timed save taking
place.
INT4 interval Time in minutes between timed saves ( 1..999 ).
INT4 commands Number of commands between timed saves ( 0, 1..999 ). If you set
this to 0, then timed saves will be done based on time only.
Output:
None
Return Code:
FE_CANCEL The user aborted the operation by cancelling a dialog box.
FE_INVALID At least one of the arguments contains data that is invalid or out of
the allowable range.
Remarks/Usage:
Calling this function automatically stops any previous timed save operations. When the function is com-
plete, if timed save is turned on, it is reinitialized.
Example:
None
API-184 feFileReadAcisOpt

3.4.3 Import Geometry


3.4.3.1 feFileReadAcisOpt

feFileReadAcisOpt
( useDlg, fName, title, layer, color, increment_layer, increment_color, assign_color,
convert_to_splines, convert_format, clean, heal, check, stringent, delete_invalid, faces,
scale )
Description:
This function loads geometry from an ACIS .SAT file. It works like File, Import, Geometry, when you
pick an ACIS file. The file is loaded into the current model.
Input:
BOOL useDlg If True, the function runs interactively and displays a dialog box to
allow the user to define the options. Only the fName option is used;
all others are ignored.
If False, the other parameters automatically define the ACIS read
options.
STRING fName The filename/path of the ACIS file to be read.
STRING title The title that is assigned to created layers and the solid.
INT4 layer The ID of the layer for new geometry. Set to -1 to use the active
layer.
INT4 color The color used for the geometry that is created. Set to -1 to use the
active solid color. Only used if assign_color=True
BOOL increment_layer If True and you read an assembly, geometry for each solid is placed
on a different layer; otherwise all geometry is on the specified layer.
BOOL increment_color If True and you read an assembly, geometry for each solid is colored
differently.
BOOL assign_color If True, the specified color value is used for geometry; otherwise the
default colors are used.
BOOL convert_to_splines If True, surfaces are all converted to B-Spline surfaces. If False, sur-
faces retain their original definition.
BOOL convert_format Should always be set to True. ACIS geometry can no longer be read
in native format - it is always converted to Parasolid.
BOOL clean Only used if convert_format=True. If True, this attempts to detect
and remove sliver faces or other geometric problems.
BOOL heal Only used if convert_format=True. If True, attempts to close gaps
and correct geometric inaccuracies.
BOOL check Only used if convert_format=True. If True, checks converted Para-
solid geometry to find and report any problems.
feFileReadAcisOpt API-185

feFileReadAcisOpt
( useDlg, fName, title, layer, color, increment_layer, increment_color, assign_color,
convert_to_splines, convert_format, clean, heal, check, stringent, delete_invalid, faces,
scale )
BOOL stringent Only used if convert_format=True. If True, checks for surface dis-
continuities or irregularities in the converted Parasolid geometry.
BOOL delete_invalid Only used if convert_format=True. If True and geometry was
checked, this deletes any geometry that failed the checking.
BOOL faces Only used if convert_format=True. If True and it was not possible to
convert a complete solid, this will allow unstitched, free surfaces to
be retained.
REAL8 scale Only used if convert_format=True. This is a scale factor that is
applied to the geometry during conversion. It is used to ensure that
the geometry lies inside the Parasolid modeling box (+/- 500 units).
Output:
None
Return Code:
FE_CANCEL The user aborted the operation by cancelling a dialog box.
FE_INVALID You specified a parameter that was not in the supported range.
FE_NOT_AVAILABLE The required module for this function is not loaded on this system.
FE_SECURITY The required module for this function is not properly licensed.
FE_FAIL No FEMAP model is open.
Remarks/Usage:
In general, you will not want to convert geometry to Parasolid format. In that case, all of the parameters
after convert_format are ignored.
Example:
None
API-186 feFileReadAcis

3.4.3.2 feFileReadAcis

feFileReadAcis
( fName )
Description:
Short form of feFileReadAcisOpt( ).
Input:
STRING fName The filename/path of the ACIS file to be read.
Return Code:
FE_FAIL No FEMAP model is open.
Remarks/Usage:
Using this function is equivalent to calling:
feFileReadAcisOpt( FALSE, fName, "", -1, -1, FALSE, TRUE, FALSE,
FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, 1.0 )
For details, see Section 3.4.3.1, "feFileReadAcisOpt".
Example:
None
feFileReadCatia API-187

3.4.3.3 feFileReadCatia

feFileReadCatia
( useDlg, fName, rdAnalytical, rdTopology, rdCurves, stitch, heal )
Description:
This function loads geometry from a CATIA (.model, mdl, .exp) file. It works like File, Import, Geome-
try, when you pick a CATIA file. The file is loaded into the current model.

Additional options are available by using the feFileReadCatia2( ) method.


Input:
BOOL useDlg If True, the function runs interactively and displays a dialog box to
allow the user to define the options. Only the fName option is used;
all others are ignored.
If False, the other parameters automatically define the CATIA read
options.
STRING fName The filename/path of the CATIA file to be read.
BOOL rdAnalytical Set to True to read the analytical definition for surfaces defined as
splines.
BOOL rdTopology Set to True to read the CATIA topology to create a solid. Generally, it
is better to set to False to read the surfaces as individual surfaces.
BOOL rdCurves Set to True to read 3D trimming curves, or False to read 2D trimming
curves.
BOOL stitch Set to True to automatically stitch surfaces into a solid. If False, indi-
vidual surfaces will be read.
BOOL heal Set to True to attempt to repair tolerance and gap problems.
Output:
None
Return Code:
FE_CANCEL The user aborted the operation by cancelling a dialog box.
FE_INVALID You specified a parameter that was not in the supported range.
FE_NOT_AVAILABLE The required module for this function is not loaded on this system.
FE_SECURITY The required module for this function is not properly licensed.
FE_FAIL No FEMAP model is open.
Remarks/Usage:
None
API-188 feFileReadCatia

feFileReadCatia
( useDlg, fName, rdAnalytical, rdTopology, rdCurves, stitch, heal )
Example:
None
feFileReadCatia2 API-189

3.4.3.4 feFileReadCatia2

feFileReadCatia2
( useDlg, fName, rdAnalytical, rdTopology, rdCurves, rdNoShow, rdNoPick, rdWork-
planes, stitch, heal, check )
Description:
This function loads geometry from a CATIA (.model, mdl, .exp) file. It works like File, Import, Geome-
try, when you pick a CATIA file. The file is loaded into the current model.
Input:
BOOL useDlg If True, the function runs interactively and displays a dialog box to
allow the user to define the options. Only the fName option is used;
all others are ignored.
If False, the other parameters automatically define the CATIA read
options.
STRING fName The filename/path of the CATIA file to be read.
BOOL rdAnalytical Set to True to read the analytical definition for surfaces defined as
splines.
BOOL rdTopology Set to True to read the CATIA topology to create a solid. Generally, it
is better to set to False to read the surfaces as individual surfaces.
BOOL rdCurves Set to True to read 3D trimming curves, or False to read 2D trimming
curves.
BOOL rdNoShow If True, entities that are marked as No Show in the Catia model
will be read
BOOL rdNoPick If True, entities on the No Pick layer will be read
BOOL rdWorkplanes If True, workplane geometry will be read
BOOL stitch Set to True to automatically stitch surfaces into a solid. If False, indi-
vidual surfaces will be read.
BOOL heal Set to True to attempt to repair tolerance and gap problems.
BOOL check If True, the geometry will be checked for validity.
Output:
None
Return Code:
FE_CANCEL The user aborted the operation by cancelling a dialog box.
FE_INVALID You specified a parameter that was not in the supported range.
FE_NOT_AVAILABLE The required module for this function is not loaded on this system.
API-190 feFileReadCatia2

feFileReadCatia2
( useDlg, fName, rdAnalytical, rdTopology, rdCurves, rdNoShow, rdNoPick, rdWork-
planes, stitch, heal, check )
FE_SECURITY The required module for this function is not properly licensed.
FE_FAIL No FEMAP model is open.
Remarks/Usage:
None
Example:
None
feFileReadCatiaV5 API-191

3.4.3.5 feFileReadCatiaV5

feFileReadCatiaV5
( useDlg, fName, fPath, rdNoShow, rdInactiveLayers, rdPoints, rdCurves, rdSurfaces,
rdBodies, simplify )
Description:
This function loads geometry from a CATIA V5 (.CATpart or .CATproduct) file. It works like File,
Import, Geometry, when you pick a CATIA V5 file. The file is loaded into the current model.
Input:
BOOL useDlg If True, the function runs interactively and displays a dialog box to
allow the user to define the options. The fName and fPath options
can not be set using this method, other options set the defaults for the
dialog box. If False, the other parameters automatically define the
CATIA V5 read options.
STRING fName The filename/path of the CATIA V5 file to be read.
STRING fPath The search path for other assembly parts. If all parts are in the same
directory as the file you specify, you can pass this as a blank string. If
you need to search multiple directories, you must separate the paths
with semicolons in this string.
BOOL rdNoShow If True, reads No Show geometry.
BOOL rdInactiveLayers If True, reads geometry from layers marked as Inactive.
BOOL rdPoints Set to True to read points
BOOL rdCurves Set to True to read curves
BOOL rdSurfaces Set to True to read surfaces
BOOL rdBodies Set to True to read bodies
BOOL simplify If True, simplifies the underlying geometry for curves and surfaces
Output:
None
Return Code:
FE_CANCEL The user aborted the operation by cancelling a dialog box.
FE_NOT_AVAILABLE The required module for this function is not loaded on this system.
FE_SECURITY The required module for this function is not properly licensed.
FE_FAIL No FEMAP model is open.
Remarks/Usage:
None
API-192 feFileReadCatiaV5

feFileReadCatiaV5
( useDlg, fName, fPath, rdNoShow, rdInactiveLayers, rdPoints, rdCurves, rdSurfaces,
rdBodies, simplify )
Example:
None
feFileReadDxf API-193

3.4.3.6 feFileReadDxf

feFileReadDxf
( useDlg, fName, rdText, rd3DFace, rdBlocks, rdPolyelem, rdTraceBoundary, rdTrace-
Centerline, rdLayer, firstLayer, mergePoints, mergeDist )
Description:
This function loads geometry (and other entities) from a DXF formatted file. It works like File, Import,
Geometry, when you pick a DXF file. The file is loaded into the current model.
Input:
BOOL useDlg If True, the function runs interactively and displays a dialog box to
allow the user to define the options. Only the fName option is used;
all others are ignored.
If False, the other parameters automatically define the DXF read
options.
STRING fName The filename/path of the DXF file to be read.
BOOL rdText If True, reads text or notes. Skipped if False.
BOOL rd3DFace If True, reads 3DFaces as elements. If False, lines are created to form
the outline of the face.
BOOL rdBlocks If True, entities inside block references will be read.
BOOL rdPolyelem If True, reads polygon meshes as elements.
BOOL rdTraceBoundary If True, creates lines to represent the edges of a traceline.
BOOL rdTraceCenterline If True, creates lines to represent the center of a traceline.
BOOL rdLayer If True, reads color and layer information and assigns it to the geom-
etry.
INT4 firstLayer If rdLayer=True, this is the ID of the first layer that will be created. A
unique layer is created for each unique layer name in the DXF file.
BOOL mergePoints If True, coincident points will be merged after geometry is read.
REAL8 mergeDist If mergePoints=True, this is the distance used to determine coinci-
dent points. Points that are closer than this distance from each other
will be merged.
Output:
None
Return Code:
FE_CANCEL The user aborted the operation by cancelling a dialog box.
FE_INVALID You specified an layer that was not in the supported range.
API-194 feFileReadDxf

feFileReadDxf
( useDlg, fName, rdText, rd3DFace, rdBlocks, rdPolyelem, rdTraceBoundary, rdTrace-
Centerline, rdLayer, firstLayer, mergePoints, mergeDist )
FE_FAIL No FEMAP model is open.
Remarks/Usage:
None
Example:
None
feFileReadIdeas API-195

3.4.3.7 feFileReadIdeas

feFileReadIdeas
( fName )
Description:
This function loads geometry from an I-DEAS (.IDI) file. It works like File, Import, Geometry, when
you pick an I-DEAS file. The file is loaded into the current model.
Input:
STRING fName The filename/path of the I-DEAS file to be read.
Output:
None
Return Code:
FE_NOT_AVAILABLE The required module for this function is not loaded on this system.
FE_SECURITY The required module for this function is not properly licensed.
FE_FAIL No FEMAP model is open.
Remarks/Usage:
None
Example:
None
API-196 feFileReadIgesAdv

3.4.3.8 feFileReadIgesAdv

feFileReadIgesAdv
( useDlg, fName, read_curves, read_untrimmed_surfaces, read_trimmed_surfaces,
read_solids, flavor, trim_curve_option )
Description:
This function loads geometry from a IGES (.IGS) file. It works like File, Import, Geometry, when you
pick an IGES file, and choose the Alternate/Advanced interface. The file is loaded into the current
model.
Input:
BOOL useDlg If True, the function runs interactively and displays a dialog box to
allow the user to define the options. Only the fName option is used;
all others are ignored.
If False, the other parameters automatically define the IGES read
options.
STRING fName The filename/path of the IGES file to be read.
BOOL read_curves Set to True to read free curves (curves that are not connected to sur-
faces or solids).
BOOL Set to True to read free untrimmed surfaces.
read_untrimmed_surfaces
BOOL read_trimmed_surfaces Set to True to read free trimmed surfaces.
BOOL read_solids Set to True to read solid data.
INT4 flavor =0 for No flavoring, =1 for AutoCAD customization (old versions of
AutoCAD only).
INT4 trim_curve_option =0 for default trim curves, =1 for 2D trim curves, =2 for 3D trim
curves
Output:
None
Return Code:
FE_CANCEL The user aborted the operation by cancelling a dialog box.
FE_INVALID You specified a parameter that was not in the supported range.
FE_NOT_AVAILABLE The required module for this function is not loaded on this system.
FE_SECURITY The required module for this function is not properly licensed.
FE_FAIL No FEMAP model is open.
Remarks/Usage:
feFileReadIgesAdv API-197

feFileReadIgesAdv
( useDlg, fName, read_curves, read_untrimmed_surfaces, read_trimmed_surfaces,
read_solids, flavor, trim_curve_option )
If you are having trouble reading solid data, try turning off read_solids, and just read the trimmed sur-
faces. These surfaces can then be stitched into a solid.
Example:
None
API-198 feFileReadIges

3.4.3.9 feFileReadIges

feFileReadIges
( useDlg, fName, merge_points, read_layer, read_geom_only, read_surface_data,
trim_preference, min_resolution )
Description:
This function loads geometry from a IGES (.IGS) file. It works like File, Import, Geometry, when you
pick an IGES file, and you do not choose the Alternate/Advanced interface. The file is loaded into the
current model.
Input:
BOOL useDlg If True, the function runs interactively and displays a dialog box to
allow the user to define the options. Only the fName option is used;
all others are ignored.
If False, the other parameters automatically define the IGES read
options.
STRING fName The filename/path of the IGES file to be read.
BOOL merge_points Set to True to merge all coincident points that are created.
BOOL read_layer Set to True to read layer information and assign geometry to the
appropriate layers.
BOOL read_geom_only Set to True to only read data marked as geometry.
BOOL read_surface_data Set to True to read trimmed surface data. If you set this to True, you
must have the appropriate license.
INT4 trim_preference =0 for Default Trim curves per the IGES file specification. =1 for 2D
trim curves, =2 for 3D trim curves.
REAL8 min_resolution Set to the minimum resolution for coincident points in the file. Used
for tolerances of surface data, and for merging coincident points.
Output:
None
Return Code:
FE_CANCEL The user aborted the operation by cancelling a dialog box.
FE_SECURITY The required module for this function is not properly licensed.
FE_FAIL No FEMAP model is open.
Remarks/Usage:
None
Example:
feFileReadIges API-199

feFileReadIges
( useDlg, fName, merge_points, read_layer, read_geom_only, read_surface_data,
trim_preference, min_resolution )
None
API-200 feFileReadParasolidOpt

3.4.3.10 feFileReadParasolidOpt

feFileReadParasolidOpt
( useDlg, fName, title, layer, color, increment_layer, increment_color, assign_color,
convert_format, clean, heal, check, stringent, delete_invalid, faces, scale )
Description:
This function loads geometry from a Parasolid .X_T file. It works like File, Import, Geometry, when
you pick a Parasolid file. The file is loaded into the current model.
Input:
BOOL useDlg If True, the function runs interactively and displays a dialog box to
allow the user to define the options. Only the fName option is used;
all others are ignored.
If False, the other parameters automatically define the Parasolid read
options.
STRING fName The filename/path of the Parasolid file to be read.
STRING title The title that is assigned to created layers and the solid.
INT4 layer The ID of the layer for new geometry. Set to -1 to use the active
layer.
INT4 color The color used for the geometry that is created. Set to -1 to use the
active solid color. Only used if assign_color=True.
BOOL increment_layer If True and you read an assembly, geometry for each solid is placed
on a different layer; otherwise, all geometry is on the specified layer.
BOOL increment_color If True and you read an assembly, geometry for each solid is colored
differently.
BOOL assign_color If True, the specified color value is used for geometry; otherwise, the
default colors are used.
BOOL convert_format Should always be set to False. Parasolid geometry can no longer be
converted to ACIS format.
BOOL clean Only used if convert_format=True. If True, this attempts to detect
and remove sliver faces or other geometric problems.
BOOL heal Only used if convert_format=True. If True, attempts to close gaps
and correct geometric inaccuracies.
BOOL check Only used if convert_format=True. If True, checks converted ACIS
geometry to find and report any problems.
BOOL stringent Only used if convert_format=True. If True, checks for surface dis-
continuities or irregularities in the converted ACIS geometry.
BOOL delete_invalid Only used if convert_format=True. If True and geometry was
checked, this deletes any geometry that failed the checking.
feFileReadParasolidOpt API-201

feFileReadParasolidOpt
( useDlg, fName, title, layer, color, increment_layer, increment_color, assign_color,
convert_format, clean, heal, check, stringent, delete_invalid, faces, scale )
BOOL faces Only used if convert_format=True. If True and it was not possible to
convert a complete solid, this will allow unstitched, free surfaces to
be retained.
REAL8 scale Only used if convert_format=True. This is a scale factor that is
applied to the geometry during conversion. It is used to ensure that
the geometry lies inside the ACIS modeling box.
Output:
None
Return Code:
FE_CANCEL The user aborted the operation by cancelling a dialog box.
FE_INVALID You specified a parameter that was not in the supported range.
FE_NOT_AVAILABLE The required module for this function is not loaded on this system.
FE_SECURITY The required module for this function is not properly licensed.
FE_FAIL No FEMAP model is open.
Remarks/Usage:
In general, you will not want to convert geometry to ACIS format. In that case, all of the parameters
after convert_format are ignored.
Example:
None
API-202 feFileReadParasolid

3.4.3.11 feFileReadParasolid

feFileReadParasolid
( fName )
Description:
Short form of feFileReadParasolidOpt( ).
Input:
STRING fName The filename/path of the Parasolid file to be read.
Return Code:
FE_FAIL No FEMAP model is open.
Remarks/Usage:
Using this function is equivalent to calling:
feFileReadParasolidOpt( FALSE, fName, "", -1, -1, FALSE, TRUE,
FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, 1.0 )
For more detailed documentation, see Section 3.4.3.10, "feFileReadParasolidOpt".
Example:
None
feFileReadProe API-203

3.4.3.12 feFileReadProe

feFileReadProe
( fName )
Description:
This function loads geometry from a Pro/E (.PRT) file. It works like File, Import, Geometry, when you
pick a Pro/E file. The file is loaded into the current model.
Input:
STRING fName The filename/path of the Pro/E file to be read.
Output:
None
Return Code:
FE_NOT_AVAILABLE The required module for this function is not loaded on this system.
FE_SECURITY The required module for this function is not properly licensed.
FE_FAIL No FEMAP model is open.
Remarks/Usage:
None
Example:
None
API-204 feFileReadSolidEdge

3.4.3.13 feFileReadSolidEdge

feFileReadSolidEdge
( fName )
Description:
This function loads geometry from a Solid Edge (.PAR) file. It works like File, Import, Geometry, when
you pick a Solid Edge file. The file is loaded into the current model.
Input:
STRING fName The filename/path of the Solid Edge file to be read.
Output:
None
Return Code:
FE_NOT_AVAILABLE The required module for this function is not loaded on this system.
FE_SECURITY The required module for this function is not properly licensed.
FE_FAIL No FEMAP model is open.
Remarks/Usage:
None
Example:
None
feFileReadStepOpt2 API-205

3.4.3.14 feFileReadStepOpt2

feFileReadStepOpt2
( useDlg, fName, layer, color, increment_layer, increment_color, assign_color, bodies,
faceted, Surfaces, Curves, Points, optimize, simplify )
Description:
This function loads geometry from a STEP (.STP) file. It works like File, Import, Geometry, when you
pick a STEP file. The file is loaded into the current model.
Input:
BOOL useDlg If True, the function runs interactively and displays a dialog box to
allow the user to define the options. Only the fName option is used;
all others are ignored.
If False, the other parameters automatically define the STEP read
options.
STRING fName The filename/path of the STEP file to be read.
INT4 layer The ID of the layer for new geometry. Set to -1 to use the active
layer. GUI specifies the active layer
INT4 color The color used for the geometry that is created. Set to -1 to use the
active solid color. Only used if assign_color=True.
BOOL increment_layer If True and you read an assembly, geometry for each solid is placed
on a different layer; otherwise all geometry is on the specified layer.
Default in GUI is False
BOOL increment_color If True and you read an assembly, geometry for each solid is colored
differently. Default in GUI is True
BOOL assign_color If True, the specified color value is used for geometry; otherwise, the
default colors are used. Default in GUI is True
BOOL bodies Set to True if you want to read Bodies. Default in GUI is True.
BOOL faceted Set to True if you want to read Faceted Bodies. Default in GUI is
True.
BOOL Surfaces Set to True if you want to read Surfaces. Default in GUI is True.
BOOL Curves Set to True if you want to read Curves. Default in GUI is True.
BOOL Points Set to True if you want to read Points. Default in GUI is True.
BOOL optimize Set to True if you want to Optimize Bodies. Default in GUI is True.
BOOL simplify Set to True if you want to Simplify Geometry. Default in GUI is
False.
Output:
API-206 feFileReadStepOpt2

feFileReadStepOpt2
( useDlg, fName, layer, color, increment_layer, increment_color, assign_color, bodies,
faceted, Surfaces, Curves, Points, optimize, simplify )
None
Return Code:
FE_CANCEL The user aborted the operation by cancelling a dialog box.
FE_INVALID You specified a parameter that was not in the supported range.
FE_NOT_AVAILABLE The required module for this function is not loaded on this system.
FE_SECURITY The required module for this function is not properly licensed.
FE_FAIL No FEMAP model is open.
Remarks/Usage:
None
Example:
None
feFileReadStep API-207

3.4.3.15 feFileReadStep

feFileReadStep
( fName )
Description:
Short form of feFileReadStepOpt2( ).
Input:
STRING fName The filename/path of the STEP file to be read.
Return Code:
FE_FAIL No FEMAP model is open.
Remarks/Usage:
Using this function is equivalent to calling:
feFileReadStepOpt( FALSE, fName, "", -1, -1, FALSE, TRUE, FALSE,
TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE,
FALSE, TRUE, FALSE, FALSE, TRUE, FALSE )
For more detailed documentation, see Section 3.4.3.14, "feFileReadStepOpt2".
Example:
None
API-208 feFileReadStepOpt

3.4.3.16 feFileReadStepOpt - Obsolete

feFileReadStepOpt
( useDlg, fName, title, layer, color, increment_layer, increment_color, assign_color,
class_VI, class_V, class_IV, class_III, class_II_wf, class_II_curv, class_II_rect,
class_II_2d, smooth_g1, explode, analytics, stitch, closed_orient, pro_e, check_input,
check_output )
Description:
This method is obsolete and should no longer be used. Use feFileReadStepOpt2 instead.
This function loads geometry from a STEP (.STP) file. It works like File, Import, Geometry, when you
pick a STEP file. The file is loaded into the current model.
Input:
BOOL useDlg If True, the function runs interactively and displays a dialog box to
allow the user to define the options. Only the fName option is used;
all others are ignored.
If False, the other parameters automatically define the STEP read
options.
STRING fName The filename/path of the STEP file to be read.
STRING title The title that is assigned to created layers and the solid.
INT4 layer The ID of the layer for new geometry. Set to -1 to use the active
layer.
INT4 color The color used for the geometry that is created. Set to -1 to use the
active solid color. Only used if assign_color=True.
BOOL increment_layer If True and you read an assembly, geometry for each solid is placed
on a different layer; otherwise all geometry is on the specified layer.
BOOL increment_color If True and you read an assembly, geometry for each solid is colored
differently.
BOOL assign_color If True, the specified color value is used for geometry; otherwise, the
default colors are used.
BOOL class_VI Set to True if you want to read Class VI solids.
BOOL class_V Set to True if you want to read Class V faceted solids.
BOOL class_IV Set to True if you want to read Class IV surfaces.
BOOL class_III Set to True if you want to read Class III wireframe - edge based and
shell based wireframe geometry.
BOOL class_II_wf Set to True if you want to read Class II wireframe - wireframe with-
out topology or other underlying surfaces.
BOOL class_II_curv Set to True if you want to read Class II curve bounded surfaces.
feFileReadStepOpt API-209

feFileReadStepOpt
( useDlg, fName, title, layer, color, increment_layer, increment_color, assign_color,
class_VI, class_V, class_IV, class_III, class_II_wf, class_II_curv, class_II_rect,
class_II_2d, smooth_g1, explode, analytics, stitch, closed_orient, pro_e, check_input,
check_output )
BOOL class_II_rect Set to True if you want to read Class II rectangular trimmed surfaces.
Normally this is False, because these surfaces are usually used for
construction geometry, not part geometry.
BOOL class_II_2d Set to True to read 2D trimming curves for surfaces. These are curves
in the surface parametric coordinates. If you set this to False, 3D
trimming curves will be read.
BOOL smooth_g1 If True, attempts to eliminate discontinuities in the STEP geometry
which cannot be represented in Parasolid. Set this to True for the best
conversion.
BOOL explode If True, STEP geometry will be read as independent faces, then Para-
solid will be used to restitch the solid. If False, the topology will be
constructed directly from the data in the STEP file. Setting this to
True will help to eliminate geometric tolerancing problems.
BOOL analytics If True, geometry will be simplified to analytical surfaces whenever
possible.
BOOL stitch If True, surfaces will be stitched into a solid.
BOOL closed_orient If True, extra checking is done to eliminate problems that can occur
in closed analytical (sphere and torus) surfaces that produce comple-
mentary surfaces.
BOOL pro_e If True, forces angle units to degrees to work around a problem in old
Pro/E STEP files. Always set to False unless you are having specific
problems with Pro/E files.
BOOL check_input If True, syntax checking of the STEP file is done prior to reading.
BOOL check_output If True, the Parasolid geometry is checked for validity after the con-
version.
Output:
None
Return Code:
FE_CANCEL The user aborted the operation by cancelling a dialog box.
FE_INVALID You specified a parameter that was not in the supported range.
FE_NOT_AVAILABLE The required module for this function is not loaded on this system.
FE_SECURITY The required module for this function is not properly licensed.
API-210 feFileReadStepOpt

feFileReadStepOpt
( useDlg, fName, title, layer, color, increment_layer, increment_color, assign_color,
class_VI, class_V, class_IV, class_III, class_II_wf, class_II_curv, class_II_rect,
class_II_2d, smooth_g1, explode, analytics, stitch, closed_orient, pro_e, check_input,
check_output )
FE_FAIL No FEMAP model is open.
Remarks/Usage:
None
Example:
None
feFileReadStl API-211

3.4.3.17 feFileReadStl

feFileReadStl
( useDlg, fName, skip_short_edges, merge_nodes, close_gaps, PATRAN_file,
min_distance )
Description:
This function loads geometry from a Stereolithography (.STL) file. It works like File, Import, Geometry,
when you pick an STL file. The file is loaded into the current model.
Input:
BOOL useDlg If True, the function runs interactively and displays a dialog box to
allow the user to define the options. Only the fName option is used;
all others are ignored.
If False, the other parameters automatically define the STL read
options.
STRING fName The filename/path of the STL file to be read.
BOOL skip_short_edges Set to True to skip edges that are shorter than the min_distance set-
ting.
BOOL merge_nodes Set to True to merge all coincident nodes after the file is loaded.
BOOL close_gaps Set to True to attempt to close gaps in the STL mesh.
BOOL PATRAN_file Set to True to read a PATRAN generated STL file where negative
coordinates can run together with no spaces between them.
REAL8 min_distance The minimum distance of short edges to be skipped.
Output:
None
Return Code:
FE_CANCEL The user aborted the operation by cancelling a dialog box.
FE_INVALID You specified a parameter that was not in the supported range.
FE_NOT_AVAILABLE No FEMAP model is open.
FE_FAIL An error occurred while reading the file.
Remarks/Usage:
None
Example:
None
API-212 feFileReadUg

3.4.3.18 feFileReadUg

feFileReadUg
( useDlg, fName, rdBlanked, rdLayers )
Description:
This function loads geometry from a Unigraphics (.PRT) file. It works like File, Import, Geometry,
when you pick a Unigraphics file. The file is loaded into the current model.
Input:
BOOL useDlg If True, the function runs interactively and displays a dialog box to
allow the user to define the options. Only the fName option is used;
all others are ignored.
If False, the other parameters automatically define the Unigraphics
read options.
STRING fName The filename/path of the Unigraphics file to be read.
BOOL rdBlanked Set to True to read parts that are blanked. If False, only unblanked
parts will be read.
BOOL rdLayers Set to True to read parts that are on invisible layers. If False, only
parts on visible layers will be read.
Output:
None
Return Code:
FE_CANCEL The user aborted the operation by cancelling a dialog box.
FE_INVALID You specified a parameter that was not in the supported range.
FE_NOT_AVAILABLE The required module for this function is not loaded on this system.
FE_SECURITY The required module for this function is not properly licensed.
FE_FAIL No FEMAP model is open.
Remarks/Usage:
None
Example:
None
feFileReadAbaqus API-213

3.4.4 Import Analysis Model


3.4.4.1 feFileReadAbaqus

feFileReadAbaqus
( brand, fName )
Description:
This function loads finite element model data from an existing ABAQUS file.
Input:
INT4 brand Used to select the format of the ABAQUS file. 0=Abaqus Input File
(.INP), 1=Abaqus Results File (.FIL)
STRING fName The filename of the ABAQUS input file to read.
Output:
None
Return Code:
FE_INVALID You specified an invalid value for the brand option.
FE_FAIL No FEMAP model is open.
Remarks/Usage:
None
Example:
None
API-214 feFileReadAnsys

3.4.4.2 feFileReadAnsys

feFileReadAnsys
( brand, fName )
Description:
This function loads finite element model data from an existing ANSYS file.
Input:
INT4 brand Used to select the format of the ANSYS input file. 4 = Version 4, 5 =
Version 5+.
STRING fName The filename of the ANSYS input file to read.
Output:
None
Return Code:
FE_INVALID You specified an invalid value for the brand option.
FE_FAIL No FEMAP model is open.
Remarks/Usage:
None
Example:
None
feFileReadDyna API-215

3.4.4.3 feFileReadDyna

feFileReadDyna
( brand, fName )
Description:
This function loads finite element model data from an existing LS-DYNA file.
Input:
INT4 brand Used to select the format of the DYNA file. Currently this MUST be
specified as 1=DYNA Results file.
STRING fName The filename of the DYNA file to read.
Output:
None
Return Code:
FE_INVALID You specified an invalid value for the brand option.
FE_FAIL No FEMAP model is open.
Remarks/Usage:
None
Example:
None
API-216 feFileReadMarc

3.4.4.4 feFileReadMarc

feFileReadMarc
( brand, fName )
Description:
This function loads finite element model data from an existing Marc file.
Input:
INT4 brand Used to select the format of the Marc file. Currently this MUST be
specified as 1=Marc Results file.
STRING fName The filename of the Marc file to read.
Output:
None
Return Code:
FE_INVALID You specified an invalid value for the brand option.
FE_FAIL No FEMAP model is open.
Remarks/Usage:
None
Example:
None
feFileReadNastran API-217

3.4.4.5 feFileReadNastran

feFileReadNastran
( brand, fName )
Description:
This function loads finite element model data from an existing NASTRAN file.
Input:
INT4 brand Used to select the format of the NASTRAN input file: 0=MSC,
1=NE, 2=UAI, 3=CSA, 4=SSS, 5=Cosmic, 6=ME, 7=VR, 8=NX.
STRING fName The filename of the NASTRAN input file to read.
Output:
None
Return Code:
FE_INVALID You specified an invalid value for the brand option.
FE_FAIL No FEMAP model is open.
Remarks/Usage:
None
Example:
None
API-218 feFileReadPatran

3.4.4.6 feFileReadPatran

feFileReadPatran
( fName, bSaveZeroDispAsBC )
Description:
This function loads finite element model data from an existing Patran file.
Input:
STRING fName The filename of the Patran input file to read.
BOOL bSaveZeroDispAsBC If True, Zero Nodal Displacements are stored as Constraints. If False,
they are stored as loads.
Output:
None
Return Code:
FE_NOT_EXIST The file you specified does not exist.
FE_FAIL No FEMAP model is open.
Remarks/Usage:
None
Example:
None
feFileReadAbaqusResults API-219

3.4.5 Import Analysis Results


3.4.5.1 feFileReadAbaqusResults

feFileReadAbaqusResults
( brand, fName )
Description:
This function loads finite element results data from an existing ABAQUS file.
Input:
INT4 brand Used to select the format of the ABAQUS file. Currently this MUST
be specified as 1=Abaqus Results file.
STRING fName The filename of the ABAQUS results file to read.
Output:
None
Return Code:
FE_INVALID You specified an invalid value for the brand option.
FE_FAIL No FEMAP model is open.
Remarks/Usage:
None
Example:
None
API-220 feFileReadAnsysResults

3.4.5.2 feFileReadAnsysResults

feFileReadAnsysResults
( brand, fName )
Description:
This function loads finite element results data from an existing ANSYS file.
Input:
INT4 brand Used to select the format of the ANSYS results file. 4 = Version 4, 5
= Version 5..9, 10 = 10 and up.
STRING fName The filename of the ANSYS results file to read.
Output:
None
Return Code:
FE_INVALID You specified an invalid value for the brand option.
FE_FAIL No FEMAP model is open.
Remarks/Usage:
This function can read results files from structural (.RST) and thermal analyses (.RTH).
Example:
None
feFileReadDynaResults API-221

3.4.5.3 feFileReadDynaResults

feFileReadDynaResults
( brand, fName )
Description:
This function loads finite element results data from an existing LS-DYNA file.
Input:
INT4 brand Used to select the format of the DYNA file. Currently this MUST be
specified as 1=DYNA Results file.
STRING fName The filename of the DYNA results file to read.
Output:
None
Return Code:
FE_INVALID You specified an invalid value for the brand option.
FE_FAIL No FEMAP model is open.
Remarks/Usage:
None
Example:
None
API-222 feFileReadMarcResults

3.4.5.4 feFileReadMarcResults

feFileReadMarcResults
( brand, fName )
Description:
This function loads finite element results data from an existing Marc file.
Input:
INT4 brand Used to select the format of the Marc file. Currently this MUST be
specified as 1=Marc Results file.
STRING fName The filename of the Marc file to read.
Output:
None
Return Code:
FE_INVALID You specified an invalid value for the brand option.
FE_FAIL No FEMAP model is open.
Remarks/Usage:
None
Example:
None
feFileReadNastranResults API-223

3.4.5.5 feFileReadNastranResults

feFileReadNastranResults
( brand, fName )
Description:
This function loads finite element results data from an existing NASTRAN file.
Input:
INT4 brand Used to select the format of the NASTRAN results file: 0=MSC,
1=NE, 2=UAI, 3=CSA, 4=SSS, 5=Cosmic, 6=ME, 7=VR, 8=NX.
STRING fName The filename of the NASTRAN results file to read.
Output:
None
Return Code:
FE_INVALID You specified an invalid value for the brand option.
FE_FAIL No FEMAP model is open.
Remarks/Usage:
This function can read both NASTRAN printed results file (.F06) or OUTPUT2 files (.OP2).
Example:
None
API-224 feFileAttachResults

3.4.6 Attach To Results File


3.4.6.1 feFileAttachResults

feFileAttachResults
( brand, fName, memory_mapped_file )
Description:
This method is used to Attach a Results File to Femap for postprocessing.
INT4 brand Analysis Program of Results File to Attach. MSC Nastran = 4, NEi
Nastran = 3, NX Nastran = 36
STRING fName The filename and path of the Results File to Attach.
BOOL memory_mapped_file If True Operating System attempts to load file into System RAM
Return Code:
FE_FAIL Error Attaching to Results File.
FE_INVALID Solver is not supported.
Remarks/Usage:
None
Example:
None
feFileAttachManage API-225

3.4.6.2 feFileAttachManage

feFileAttachManage
( attSetID, opt, fName )
Description:
This method is used to Manage Attached Results.
INT4 attSetID ID if Femap Set that contains the Attached IDs. Alternatively, if you
specify a negative value, this is simply the ID of a single Attached
Results Set.
INT4 opt Manage Options:
FMRA_LOAD
FMRA_UNLOAD
FMRA_DETACH
FMRA_UPDATE_PATH
STRING fName The filename and path of the Results file.
Output:
None
Return Code:
FE_FAIL Failed to perform operation on Results.
Remarks/Usage:
None
Example:
Sub Main
Dim App As femap.model
Set App = feFemap()
Dim atts As femap.Set
Set atts = App.feSet
Dim fName As String

rc = atts.Select(FT_RES_ATTACH , True, Select Attach )


App.feFileAttachManage( atts.ID , FMRA_UNLOAD , fName )
End Sub
API-226 feFileAttachInfo

3.4.6.3 feFileAttachInfo

feFileAttachInfo
( ID, status, ModelName, pOutSets )
Description:
This method retrieves information for the selected Attached Results.
INT4 ID ID of Attached Results to retrieve info.
INT4 status Status of the Results:
FRA_UNLOADED
FRA_OPEN
FRA_OPEN_CHECK
FRA_ERROR
FRA_UNLOAD_CHECK
STRING ModelName The filename of the selected Attached Results.
OBJECT pOutputSets A Set object that contains the Femap Output Sets that are associated
with the selected Results.
Return Code:
FE_FAIL Error retrieving info from Attached Results.
Remarks/Usage:
None
Example:
feFileAttachInfo API-227

feFileAttachInfo
( ID, status, ModelName, pOutSets )
Sub Main
Dim App As femap.model
Set App = feFemap()

Dim atts As femap.Set


Set atts = App.feSet
Dim fName As String
Dim ID As Long
Dim cset As femap.Set
Set cset = App.feSet
Dim status As Long

atts.Select(FT_RES_ATTACH , True , Select Attached Results )

ID = atts.First()
While ID <> FE_FAIL
rc = App.feFileAttachInfo( ID, status, fName, cset )
App.feAppMessage ( FCM_NORMAL, "Status " + Str( status ) )
App.feAppMessage ( FCM_NORMAL, fName )
App.feAppMessage ( FCM_NORMAL, Str( cset.Count() ) + " OutputSets from this Attach )
ID = atts.Next()
Wend
End Sub
API-228 feFileAttachSave

3.4.6.4 feFileAttachSave

feFileAttachSave
(ID, outSetID, vecSetID, ndSetID, elSetID )
Description:
This method will store Results from an Attached File to the Femap Database.
INT4 ID ID of Femap Set that contains the IDs of the Attached Results to
Save to the Femap Database. Alternatively, if you specify a negative
value, this is simply the ID of a single Attached Results Set.
INT4 outSetID ID of Femap Set that contains Output Sets to Save. Alternatively, if
you specify a zero all Output Sets in the Result File will be saved.
INT4 outVecID ID of Femap Set that contains Output Vectors to Save. Alternatively,
if you specify a zero all Output Vectors in the Result File will be
saved.
INT4 ndSetID ID of Femap Set that contains the nodes where output will be saved.
Alternatively, if you specify a zero, results for all nodes in the Result
File will be saved.
INT4 elSetID ID of Femap Set that contains elements where output will be saved.
Alternatively, if you specify a zero, results for all elements in the
Result File will be saved.
Output:
None
Return Code:
FE_FAIL Error saving results from Attached File to Femap Database.
Remarks/Usage:
When saving results Femap will preserve the Femap Output Set and automatically detach the Results
File when finished.
Example:
feFileAttachSave API-229

feFileAttachSave
(ID, outSetID, vecSetID, ndSetID, elSetID )
Sub Main
Dim App As femap.model
Set App = feFemap()
Dim selID As Long
Dim outvec As femap.Set
Set outvec = App.feSet
Dim ndset As femap.Set
Set ndset = App.feSet
Dim atts As femap.Set
Set atts = App.feSet

atts.SelectID ( FT_RES_ATTACH , "Select Attached File To Save", selID )


ndset.Select( FT_NODE, True, Select Nodes )
outvec.Add( 1 )

App.feFileAttachSave( -selID, 0, outvec.ID, ndset.ID, 0 )


End Sub
API-230 feFileAttachSave2

3.4.6.5 feFileAttachSave2

feFileAttachSave2
(ID, outSetID, vecSetID, ndSetID, elSetID, bDetach )
Description:
This method will store Results from an Attached File to the Femap Database.
INT4 ID ID of Femap Set that contains the IDs of the Attached Results to
Save to the Femap Database. Alternatively, if you specify a negative
value, this is simply the ID of a single Attached Results Set.
INT4 outSetID ID of Femap Set that contains Output Sets to Save. If you specify a
zero all Output Sets in the Result File will be saved. If you specify a
negative value, this is simply the ID of a single Results Set.
INT4 outVecID ID of Femap Set that contains Output Vectors to Save. If you specify
a zero all Output Vectors in the Result File will be saved. If you
specify a negative value, this is simply the ID of a single Output Vec-
tor.
INT4 ndSetID ID of Femap Set that contains the nodes where output will be saved.
Alternatively, if you specify a zero, results for all nodes in the Result
File will be saved.
INT4 elSetID ID of Femap Set that contains elements where output will be saved.
Alternatively, if you specify a zero, results for all elements in the
Result File will be saved.
BOOL bDetach If True, result file will be detached after save operation.
Output:
None
Return Code:
FE_FAIL Error saving results from Attached File to Femap Database.
Remarks/Usage:
If bDetach is False then selected Output Sets will be saved to a new ids. If true then Femap will preserve
the Femap Output Set and automatically detach the Results File when finished.
Example:
feFileAttachSave2 API-231

feFileAttachSave2
(ID, outSetID, vecSetID, ndSetID, elSetID, bDetach )
Sub Main
Dim App As femap.model
Set App = feFemap()

Dim selID As Long


Dim ndset As femap.Set
Set ndset = App.feSet
Dim atts As femap.Set
Set atts = App.feSet

atts.SelectID ( FT_RES_ATTACH , "Select Attached File To Save", selID )


ndset.Select( FT_NODE, True, "Select Nodes" )

App.feFileAttachSave2( -selID, -1, -1, ndset.ID, 0, True )


End Sub
API-232 feFileAttachByOutset

3.4.6.6 feFileAttachByOutset

feFileAttachByOutset
( ID )
Description:
This method return the ID if the Attached Results. This is the same ID that is displayed in the Manage
Results Files Dialog Box.
INT4 ID ID of Output Set.
Output:
None
Return Code:
Attach ID ID of the Attached Results.
Remarks/Usage:
None
Example:
None
feFileReadNeutral API-233

3.4.7 Import/Export Neutral File


3.4.7.1 feFileReadNeutral

feFileReadNeutral
( brand, fName, read_geometry, read_model, read_output, status_messages, offsetID )
Description:
This method is the same as calling feFileReadNeutral2 with read_groups and read_views equal to
read_model. Refer to that method for more information.
Return Code:
FE_FAIL No FEMAP model is open.
API-234 feFileReadNeutral2

3.4.7.2 feFileReadNeutral2

feFileReadNeutral2
( brand, fName, read_geometry, read_model, read_output, read_groups, read_views,
status_messages, offsetID )
Description:
This method is the same as calling feFileReadNeutral3 with renumber_layers and renumber_load_bc set
to True, and create_new_output set to False.
Return Code:
FE_FAIL No FEMAP model is open.
feFileReadNeutral3 API-235

3.4.7.3 feFileReadNeutral3

feFileReadNeutral3
( brand, fName, read_geometry, read_model, read_output, read_groups, read_views,
status_messages, offsetID, renumber_layers, renumber_load_bc, create_new_output )
Description:
This function reads a FEMAP Neutral file.
Input:
INT4 brand Used to select the format of the Neutral file. Not currently used.
STRING fName The filename of the Neutral file to read.
BOOL read_geometry If True, geometry is read from the file.
BOOL read_model If True, finite element model data is read from the file.
BOOL read_output If True, analysis results will be read from the file.
BOOL read_groups If True, groups will be read from the file.
BOOL read_views If True, views will be read from the file.
BOOL status_messages If True, status messages will be written to the Messages and Lists
window to show how many entities are read.
INT4 offsetID Normally set to 0. If you specify another value, all IDs that are read
are offset by this value.
BOOL renumber_layers If True, layers will be renumbered by the offsetID along with the rest
of the model. If False, they are not renumbered.
BOOL renumber_load_bc If True, Load and Constraint sets are renumbered by offsetID along
with the rest of the model. If False, they are not renumbered.
BOOL create_new_output If True, Output Sets are never overwritten - new ones are always cre-
ated. The Output Set IDs in the file are used to determine the order in
which they are created - the ID is added to the previous maximum
Output Set ID in the model. For example, if your model already con-
tained Output Sets up to 10, then if you read Output Set 1 it would be
stored as 11, Set 2 would become 12 and so on. If your model did not
contain output, this option has no effect.
Output:
None
Return Code:
FE_FAIL No FEMAP model is open.
Remarks/Usage:
API-236 feFileReadNeutral3

feFileReadNeutral3
( brand, fName, read_geometry, read_model, read_output, read_groups, read_views,
status_messages, offsetID, renumber_layers, renumber_load_bc, create_new_output )
None
Example:
None
feFileWriteNeutral API-237

3.4.7.4 feFileWriteNeutral

feFileWriteNeutral
( brand, fName, write_geometry_model, write_analysis_model, write_output,
write_addl_info, expand_geometric, minimize_size, digits, version, groupID )
Description:
This method is the same as calling feFileWriteNeutral2 with write_selector and write_palette equal to
True, and write_groups and write_views equal to write_analysis_model. Refer to that method for more
information.
API-238 feFileWriteNeutral2

3.4.7.5 feFileWriteNeutral2

feFileWriteNeutral2
( brand, fName, write_geometry_model, write_analysis_model, write_output,
write_selector, write_palette, write_groups, write_views, write_addl_info,
expand_geometric, minimize_size, digits, version, groupID )
Description:
This function writes a FEMAP Neutral file.
Input:
INT4 brand Used to select the format of the Neutral file: 0=FEMAP Neutral (the
default), 1=CAEFEM, 2=CDA/Sprint, 3=CFDesign, 4=SINDA. The
formats other than 0 should not be used unless you are writing a file
specifically to be used with that program.
STRING fName The filename of the Neutral file to write.
BOOL write_geometry_model If True, geometry is written to the file.
BOOL write_analysis_model If True, finite element model data is written to the file.
BOOL write_output If True, analysis results will be written to the file.
BOOL write_selector If True, selector information will be written to the file
BOOL write_palette If True, color palette information will be written to the file
BOOL write_groups If True, groups will be written to the file
BOOL write_views If True, views will be written to the file
BOOL write_addl_info If True, some additional data blocks will be written to the file. This
should normally be False if the Neutral file is to be reloaded into
FEMAP.
BOOL expand_geometric If True, geometric loads and constraints will be expanded before
being written.
BOOL minimize_size If True, spaces are compressed out of the file to reduce its size.
INT4 digits The number of digits of precision for all real numbers (must be 2 to
20).
REAL8 version The version of the Neutral file to produce. Set to 0.0 to create the lat-
est version. If you do not use 0.0, some model data may not be com-
patible with the file you write and will be lost.
INT4 groupID The ID of the group to write to the file. Specify 0 to write the entire
model.
Output:
None
feFileWriteNeutral2 API-239

feFileWriteNeutral2
( brand, fName, write_geometry_model, write_analysis_model, write_output,
write_selector, write_palette, write_groups, write_views, write_addl_info,
expand_geometric, minimize_size, digits, version, groupID )
Return Code:
FE_INVALID You specified an invalid value for digits.
FE_NOT_EXIST You chose a group that does not exist.
FE_FAIL An error occurred processing the group.
Remarks/Usage:
None
Example:
None
API-240 feFileWriteFNO

3.4.7.6 feFileWriteFNO

feFileWriteFNO
( nSetSet, nVectorSet, nGroup, fName )
Description:
This function writes a FEMAP Neutral Output File (.FNO).
Input:
INT4 nSetSet The ID of a Set Object that contains the IDs of the Output Sets to
write to the FNO File. If you simply want to write all available Out-
put Sets, specify 0.
INT4 nVectorSet The ID of a Set Object that contains the IDs of the Output Vectors to
write to the FNO File. If you simply want to write all available Out-
put Vectors, specify 0.
INT4 nGroup The ID of a Group that contains the nodes and/or elements whose
output will be written. If you specify 0, output for all nodes/elements
will be written. If the Group contains only elements and no nodes,
and you choose to write nodal vectors, only output on the nodes con-
nected to the selected elements will be written. If the Group contains
nodes, then output on only those nodes will be written.
STRING fName The filename of the FNO file to write.
Output:
None
Return Code:
FE_FAIL An error occurred writing the FNO file.
Remarks/Usage:
This method allows you to extract all or a subset of results from the FEMAP database or other attached
results files and write it to a FEMAP Neutral Output File which can then be either read into the FEMAP
database or attached.
Example:
None
feFileWriteFNO2 API-241

3.4.7.7 feFileWriteFNO2

feFileWriteFNO2
( nSetSet, nVectorSet, nOuptutOnGroup, nElementConnectivityGroup, fName )
Description:
This function writes a FEMAP Neutral Output File (.FNO) with option to also include element connec-
tivity records in the file.
Input:
INT4 nSetSet The ID of a Set Object that contains the IDs of the Output Sets to
write to the FNO File. If you simply want to write all available Out-
put Sets, specify 0.
INT4 nVectorSet The ID of a Set Object that contains the IDs of the Output Vectors to
write to the FNO File. If you simply want to write all available Out-
put Vectors, specify 0.
INT4 nOutputOnGroup The ID of a Group that contains the nodes and/or elements whose
output will be written. If you specify 0, output for all nodes/elements
will be written. If the Group contains only elements and no nodes,
and you choose to write nodal vectors, only output on the nodes con-
nected to the selected elements will be written. If the Group contains
nodes, then output on only those nodes will be written.
INT4 Does not affect output being sent to the FNO. The ID of a Group that
nElementConnectivityGroup contains plot only elements to be written. If you specify 0, no ele-
ments will be written to the FNO file.
STRING fName The filename of the FNO file to write.
Output:
None
Return Code:
FE_FAIL An error occurred writing the FNO file.
Remarks/Usage:
This method allows you to extract all or a subset of results from the FEMAP database or other attached
results files and write it to a FEMAP Neutral Output File which can then be either read into the FEMAP
database or attached. It also allows element connectivity records to be written to the FNO.
Example:
None
API-242 feFileWriteAcis

3.4.8 Export Geometry


3.4.8.1 feFileWriteAcis

feFileWriteAcis
( useDlg, fName, version, solidSET )
Description:
This function writes solids from your model into a ACIS SAT file.
Input:
BOOL useDlg If True, the function runs interactively. The dialog box that asks you
to pick the solids to write will be displayed.
STRING fName The filename of the ACIS SAT file to write.
REAL8 version The ACIS version number of the file to be written. Set this to 0 to use
the current version of ACIS. Available previous versions are the
same numbers as displayed in the dialog box when you run the File,
Export, Geometry command.
INT4 solidSET The ID of a selection set that contains the IDs of the solids to write.
Alternatively, if you specify a negative value, this is simply the ID of
the single solid to write. Not used if useDlg=True.
Output:
None
Return Code:
None
Remarks/Usage:
None
Example:
None
feFileWriteIges API-243

3.4.8.2 feFileWriteIges

feFileWriteIges
( fName, spline_curves, spline_surfaces, bounded_surfaces, customization,
surface_options, export_as, solidSET )
Description:
This function writes selected solids to an IGES file.
Input:
STRING fName The filename of the IGES file to write.
BOOL spline_curves If True, all curves are written as splines.
BOOL spline_surfaces If True, surfaces are written as splines.
BOOL bounded_surfaces If True, surfaces will be written as Type 143, bounded surfaces. Oth-
erwise, Type 144 trimmed surfaces will be written.
INT4 customization Controls the IGES customization options: 0=None, 1=AutoCAD,
2=JAMA-IS, 3=I-DEAS.
INT4 surface_options Controls how trimming curves will be written: 0=Both, 1=2D
Curves, 2=3D Curves.
INT4 export_as Controls how to write solids: 0=Solid MSBO, 1=Trimmed Surfaces,
2=Wireframe.
INT4 solidSET The ID of a selection set that contains the IDs of the solids to write.
Alternatively, if you specify a negative value, this is simply the ID of
the single solid to write.
Output:
None
Return Code:
FE_CANCEL The user aborted the operation by cancelling a dialog box.
FE_INVALID You specified a parameter that was not in the supported range.
FE_NOT_AVAILABLE The required module for this function is not loaded on this system.
FE_SECURITY The required module for this function is not properly licensed.
Remarks/Usage:
Only Parasolid solids can be written to an IGES file.
Example:
None
API-244 feFileWriteParasolid

3.4.8.3 feFileWriteParasolid

feFileWriteParasolid
( useDlg, fName, version, solidSET )
Description:
This function writes solids from your model into a Parasolid X_T file.
Input:
BOOL useDlg If True, the function runs interactively. The dialog box that asks you
to pick the solids to write will be displayed.
STRING fName The filename of the Parasolid X_T file to write.
REAL8 version The Parasolid version number of the file to be written. Set this to 0 to
use the current version of Parasolid. Available previous versions are
the same numbers as displayed in the dialog box when you run the
File, Export, Geometry command.
INT4 solidSET The ID of a selection set that contains the IDs of the solids to write.
Alternatively, if you specify a negative value, this is simply the ID of
the single solid to write. Not used if useDlg=True.
Output:
None
Return Code:
None
Remarks/Usage:
None
Example:
None
feFileWriteStep2 API-245

3.4.8.4 feFileWriteStep2

feFileWriteStep2
( fName, solidSET )
Description:
This function writes selected solids to a STEP file.
Input:
STRING fName The filename of the STEP file to write.
INT4 solidSET The ID of a selection set that contains the IDs of the solids to write.
Alternatively, if you specify a negative value, this is simply the ID of
the single solid to write.
INT4 format The format to use when exporting the STEP file, 0=AP203,
1=AP203 Edition 2, 2=AP214
Output:
None
Return Code:
FE_INVALID You specified a parameter that was not in the supported range.
FE_NOT_AVAILABLE The required module for this function is not loaded on this system.
FE_SECURITY The required module for this function is not properly licensed.
Remarks/Usage:
None
Example:
None
API-246 feFileWriteStep

3.4.8.5 feFileWriteStep - Obsolete

feFileWriteStep
( fName, solidSET )
Description:
This method is obsolete and should no longer be used. Use feFileWriteStepOpt2 instead.
This function writes selected solids to a STEP file.
Input:
STRING fName The filename of the STEP file to write.
INT4 solidSET The ID of a selection set that contains the IDs of the solids to write.
Alternatively, if you specify a negative value, this is simply the ID of
the single solid to write.
Output:
None
Return Code:
FE_CANCEL The user aborted the operation by cancelling a dialog box.
FE_INVALID You specified a parameter that was not in the supported range.
FE_NOT_AVAILABLE The required module for this function is not loaded on this system.
FE_SECURITY The required module for this function is not properly licensed.
Remarks/Usage:
None
Example:
None
feFileWriteStl API-247

3.4.8.6 feFileWriteStl

feFileWriteStl
( fName, elemSET )
Description:
This function writes elements, or the faces of elements (solids) into a stereolithography (STL) file.
Input:
STRING fName The filename of the STL file to write.
INT4 elemSET The ID of a selection set that contains the IDs of the elements to
write. Alternatively, if you specify a negative value, this is simply the
ID of the single element to write.
Output:
None
Return Code:
None
Remarks/Usage:
All entities written to the STL file are in the form of triangles. Any quadrilateral faces that are selected
are split into two triangles. Faces with midside nodes are split into multiple triangles. Planar elements
are written as-is, while solid elements are combined and only their free-faces are written.
Example:
None
API-248 feFileWriteVrml

3.4.8.7 feFileWriteVrml

feFileWriteVrml
( fName, version, write_solid, single_color, write_deformed, write_contour,
write_background, background_color, color, solidSET )
Description:
This function writes either elements or solids to a VRML file.
Input:
STRING fName The filename of the VRML file to write.
REAL8 version Either 1.0 or 2.0. Specifies the version of VRML to write.
BOOL write_solid If True, the solids selected in solidSET will be written to the VRML
file; otherwise, the elements displayed in the active view will be
written.
BOOL single_color If True, all entities are written in the color specified.
BOOL write_deformed If True and elements are written and the current view style is
deformed, then the geometry written is in its deformed location.
BOOL write_contour If True and elements are written and the current view style is contour,
then the geometry written will include contour information.
BOOL write_background If True, a plane representing the background is written along with the
model geometry.
INT4 background_color If the background is written, this is its color.
INT4 color If single_color=True, this is the color used for all entities.
INT4 solidSET If write_solid=True, then this is the ID of a selection set that contains
the solids to write. Alternatively, you can specify a negative number
that will be the ID of a single solid to write.
Output:
None
Return Code:
FE_INVALID One of the color values is outside of its acceptable range.
Remarks/Usage:
None
Example:
None
feFileWriteAbaqus API-249

3.4.9 Export Analysis Model


3.4.9.1 feFileWriteAbaqus

feFileWriteAbaqus
( brand, fName )
Description:
This function writes an ABAQUS input file.
Input:
INT4 brand Not currently used.
STRING fName The filename of the ABAQUS input file to write.
Output:
None
Return Code:
None
Remarks/Usage:
This function will display dialog boxes to collect whatever data that it needs to complete the file. If you
have an active analysis set that selects ABAQUS as the solver, then no dialog boxes will be displayed.
The global variable Pref_AnalysisType is used to determine the type of analysis that is to be performed
by the file.
Example:
None
API-250 feFileWriteAnsys

3.4.9.2 feFileWriteAnsys

feFileWriteAnsys
( brand, fName )
Description:
This function writes an ANSYS input file.
Input:
INT4 brand Not currently used.
STRING fName The filename of the ANSYS input file to write.
Output:
None
Return Code:
None
Remarks/Usage:
This function will display dialog boxes to collect whatever data that it needs to complete the file. The
global variable Pref_AnalysisType is used to determine the type of analysis that is to be performed by
the file.
Example:
None
feFileWriteDyna API-251

3.4.9.3 feFileWriteDyna

feFileWriteDyna
( brand, fName )
Description:
This function writes an LS-DYNA input file.
Input:
INT4 brand Not currently used.
STRING fName The filename of the DYNA file to write.
Output:
None
Return Code:
None
Remarks/Usage:
This function will display dialog boxes to collect whatever data that it needs to complete the file. The
global variable Pref_AnalysisType is used to determine the type of analysis that is to be performed by
the file.
Example:
None
API-252 feFileWriteIdeas

3.4.9.4 feFileWriteIdeas

feFileWriteIdeas
( fName, PartName, WriteGroups, AbsoluteTempScale, UnitSystem, UserLengthFactor,
UserForceOrMass, UserForceOrMassFactor, UserTempFactor, UserTempOffset)
Description:
This function writes an I-DEAS universal file.
Input:
STRING fName The filename of the I-DEAS universal file to write.
STRING PartName The Part Name specified in the universal file.
BOOL WriteGroups When True, groups in the model will be written to the universal file.
When False, no groups are written.
BOOL AbsoluteTempScale When True, sets the Temperature Mode to Kelvin or Rankine
(depends on option set in UnitSystem), while False sets it to either
Celsius or Fahrenheit.
INT4 UnitSystem Sets Unit Systems. 1=SI: Meter (newton), 2=BG: Foot (pound f),
3=MG: Meter (kilogram f), 4=BA: Foot (poundal), 5=MM: mm
(milli-newton), 6=CM: cm (centi-newton), 7=IN: Inch (pound f),
8=GM: mm (kilogram f), 9=MN: mm (newton), 10=US: User
Defined (User values below only used when set to 10)
REAL8 UserLengthFactor units/meter scale factor
BOOL UserForceOrMass When True, uses units/force. When False, uses units/mass
REAL8 units/force or units/mass scale factor
UserForceOrMassFactor
REAL8 UserTempFactor units/degree scale factor (UnitSystem = User Defined only)
REAL8 UserTempOffset offset from temperature (UnitSystem = User Defined only)
Output:
None
Return Code:
FE_INVALID You specified an invalid value.
FE_BAD_DATA Your model is invalid or contains unsupported data
Remarks/Usage:
This function matches using the File, Export, Analysis Model command and I-DEAS has been selected.
Example:
None
feFileWriteMarc API-253

3.4.9.5 feFileWriteMarc

feFileWriteMarc
( brand, fName )
Description:
This function writes a Marc input file.
Input:
INT4 brand Not currently used.
STRING fName The filename of the Marc file to read.
Output:
None
Return Code:
None
Remarks/Usage:
This function will display dialog boxes to collect whatever data that it needs to complete the file. The
global variable Pref_AnalysisType is used to determine the type of analysis that is to be performed by
the file.
Example:
None
API-254 feFileWriteNastran

3.4.9.6 feFileWriteNastran

feFileWriteNastran
( brand, fName )
Description:
This function writes a NASTRAN input file.
Input:
INT4 brand Used to select the format of the NASTRAN file. 0=MSC, 1=NE,
2=UAI, 3=CSA, 4=SSS, 5=Cosmic, 6=ME, 7=VR, 8=NX.
STRING fName The filename of the NASTRAN input file to write.
Output:
None
Return Code:
FE_INVALID You specified an invalid value for the brand option.
Remarks/Usage:
This function will display dialog boxes to collect whatever data that it needs to complete the file. If you
have an active analysis set that selects NASTRAN as the solver, then no dialog boxes will be displayed.
The global variable Pref_AnalysisType is used to determine the type of analysis that is to be performed
by the file.
Example:
None
feFileWriteSTAAD API-255

3.4.9.7 feFileWriteSTAAD

feFileWriteSTAAD
( fName, AnalysisType, sStructType, sLengthUnits, sForceUnits, sPropUnits,
dGravConstant, bModalCalc, dModalCutOffFreq, nModalCutOffMode,
bPrintModel, bPrintDisp, bPrintReactions, bPrintMemberForces,
bPrintMemberStresses, bPrintElemForces, bPrintJointForces,
bPostDisp, bPostSectionDisp, bPostMemberForces, bPostStresses)
Description:
This function writes a STAAD input file.
Input:
STRING fName The filename of the STAAD input file to write.
INT4 AnalysisType 1=Static, 2=Modes
STRING sStructType PLANE, SPACE, TRUSS, FLOOR or DATA
STRING sLengthUnits INCHES, FEET, CM, METER, MMS, DME or KM
STRING sForceUnits KIP, POUND, KG, MTON, NEWTON, KNS, MNS
or DNS
STRING sPropUnits INCHES, FEET, CM, METER, MMS, DME or KM
REAL8 dGravConstant The gravity constant
BOOL bModalCalc True=MODAL CALCULATION REQUESTED, False=CALCU-
LATE NATURAL FREQUENCY. Only used if AnalysisType is
Modes.
REAL8 dModalCutOffFreq The maximum frequency requested. Only used if AnalysisType is
Modes.
INT4 nModalCutOffMode The maximum mode number requested. Only used if AnalysisType
is Modes.
BOOL bPrintModel If True, the associated information/output is printed
BOOL bPrintDisp
BOOL bPrintReactions
BOOL bPrintMemberForces
BOOL bPrintMemberStresses
BOOL bPrintElemForces
BOOL bPrintJointForces
BOOL bPostDisp If True, the associated results are written for postprocessing.
BOOL bPostSectionDisp
BOOL bPostMemberForces
BOOL bPostStresses
Output:
API-256 feFileWriteSTAAD

feFileWriteSTAAD
( fName, AnalysisType, sStructType, sLengthUnits, sForceUnits, sPropUnits,
dGravConstant, bModalCalc, dModalCutOffFreq, nModalCutOffMode,
bPrintModel, bPrintDisp, bPrintReactions, bPrintMemberForces,
bPrintMemberStresses, bPrintElemForces, bPrintJointForces,
bPostDisp, bPostSectionDisp, bPostMemberForces, bPostStresses)
None
Return Code:
FE_INVALID You specified an invalid value.
FE_BAD_DATA Your model is invalid or contains unsupported data
Remarks/Usage:
None
Example:
None
feNotesGet API-257

3.4.10 Notes
3.4.10.1 feNotesGet

feNotesGet
( noteSET, notes )
Description:
This function retrieves the currently defined model notes.
Input:
INT4 noteSET =1 for Model Notes, =2 for Translation Text
Output:
STRING notes The string containing the notes.
Return Code:
FE_FAIL An error occurred allocating the notes string.
FE_NOT_EXIST There are no currently defined notes.
Remarks/Usage:
This function automatically allocates/reallocates the string for the returned notes. Notes can contain
multiple lines and will have carriage return (CR) and linefeed (LF) characters between the lines. It is the
responsibility of the calling program to free the memory allocated to the returned string.
Example:
None
API-258 feNotesPut

3.4.10.2 feNotesPut

feNotesPut
( noteSET, clear, notes )
Description:
This function updates the currently defined model notes.
Input:
INT4 noteSET =1 for Model Notes, =2 for Translation Text
BOOL clear If True, any existing notes are deleted before these notes are added;
otherwise, this function appends to the current notes.
STRING notes The string containing the notes to add.
Output:
None
Return Code:
FE_FAIL An error occurred creating the notes.
Remarks/Usage:
If you want to create notes with multiple lines, you must add carriage return (CR) and linefeed (LF)
characters between the lines. For example, from Basic, you could use:
s = "First Line" & Chr(13) & Chr(10) & "Second Line"
rc = femap.feNotesPut(1, True, s)
Example:
None
feFilePageSetupSave API-259

3.4.11 Print and Copy


3.4.11.1 feFilePageSetupSave

feFilePageSetupSave
( void )
Description:
This function permanently saves the current page setup settings. It is the same as pressing the Perma-
nent button in the Page Setup command.
Input:
None
Output:
None
Return Code:
None
Remarks/Usage:
None
Example:
None
API-260 feFilePageSetupReset

3.4.11.2 feFilePageSetupReset

feFilePageSetupReset
( void )
Description:
This function sets all of the page setup settings back to their default values. It is the same as pressing the
Reset button in the Page Setup command.
Input:
None
Output:
None
Return Code:
None
Remarks/Usage:
None
Example:
None
feFilePrint API-261

3.4.11.3 feFilePrint

feFilePrint
( useDlg, asBitmap, source, fromFile, toFile )
Description:
This function is obsolete. You should use feFilePrint2( ) instead

This function invokes the printing function. It can be used to print data that is in the current session, or
saved in a file.
Input:
BOOL useDlg If True, the function runs interactively and displays a dialog box to
allow the user to define the options. If False, the other parameters
automatically define the printing options.
BOOL asBitmap If True, printing is done at screen (bitmap) resolution. If False, print-
ing is in printer resolution.
INT4 source Selects the data to print. (Active View=0, Desktop=1, File=2, Multi-
View Layout=3, Messages=4, Program File=5, Entity Info=6, API
Programming=7, Data Table=8)
STRING fromFile Only used if source=2, print from file. In this case, this is the full
pathname of the file to print.
STRING toFile Complete path/filename of print destination. If blank, print will go to
the current printer.
Output:
None
Return Code:
FE_CANCEL User cancelled the dialog box.
FE_FAIL An error occurred while printing.
Remarks/Usage:
None
Example:
None
API-262 feFilePrint2

3.4.11.4 feFilePrint2

feFilePrint2
( useDlg, source, toFile )
Description:
This function invokes the printing function.
Input:
BOOL useDlg If True, the function runs interactively and displays a dialog box to
allow the user to define the options. If False, the other parameters
automatically define the printing options.
INT4 source Selects the data to print. (Active View=0, Desktop=1, File=2, Multi-
View Layout=3, Messages=4, Program File=5, Entity Info=6, API
Programming=7, Data Table=8, Charting=9)
STRING toFile Complete path/filename of print destination. If blank, print will go to
the current printer.
Output:
None
Return Code:
FE_CANCEL User cancelled the dialog box.
FE_FAIL An error occurred while printing.
Remarks/Usage:
None
Example:
None
feFilePictureCopy API-263

3.4.11.5 feFilePictureCopy

feFilePictureCopy
( void )
Description:
This function copies the contents of the current Graphics window to the clipboard.
Input:
None
Output:
None
Return Code:
None
Remarks/Usage:
This method is obsolete. For new applications you should use feFilePictureCopy2( )

If you are copying a bitmap, then view that you are copying must be visible on the screen. If it is par-
tially or fully obscured by other applications, then the picture that you copy will not be correct.
Example:
None
API-264 feFilePictureCopy2

3.4.11.6 feFilePictureCopy2

feFilePictureCopy2
( saveRegion )
Description:
This function copies portions of the screen to the clipboard.
Input:
INT4 saveRegion 0=Graphics Window, 1=Layout, 2=Entire Desktop
Output:
None
Return Code:
None
Remarks/Usage:
If you are copying a bitmap, then view that you are copying must be visible on the screen. If it is par-
tially or fully obscured by other applications, then the picture that you copy will not be correct.
Example:
None
feFilePictureSave API-265

3.4.11.7 feFilePictureSave

feFilePictureSave
( useDlg, saveDesktop, format, fName )
Description:
This function copies the contents of the current Graphics window (or the entire desktop) to a file.
Input:
BOOL useDlg If True, this function runs interactively and displays a dialog box to
ask the user to define the format and fName options.
BOOL saveDesktop If True, the entire desktop (screen) is copied to the file. If False, only
the contents of the active Graphics window are copied. If you are
copying the desktop, the only valid formats are Bitmap, JPEG, PNG,
GIF, and TIFF
INT4 format The format of the file to create. 1=Bitmap, 2=Metafile, 3=Placeable
Metafile, 4=JPEG, 5=Bitmap Series, 6=AVI, 7=JT, 8=Reserved for
internal use, 9=GIF, 10=Animated GIF, 11=TIF, 12=PNG. Bitmap
Series, Animated GIF, and AVI formats are only available for ani-
mating windows. Metafiles and Placeable Metafiles are only avail-
able for non-Render windows.
STRING fName The name of the file to create.
Output:
None
Return Code:
FE_INVALID You specified an invalid format.
FE_FAIL An error occurred saving the file.
Remarks/Usage:
This method is obsolete - you should use feFilePictureSave2 for new applications.

If you are saving a bitmap, then view that you are saving must be visible on the screen. If it is partially
or fully obscured by other applications, then the file that you create will not be correct.
Example:
None
API-266 feFilePictureSave2

3.4.11.8 feFilePictureSave2

feFilePictureSave2
( useDlg, saveRegion, format, fName )
Description:
This function copies the contents of the current Graphics window (or the entire desktop) to a file.
Input:
BOOL useDlg If True, this function runs interactively and displays a dialog box to
ask the user to define the format and fName options.
INT4 saveRegion 0=Graphics Window, 1=Layout, 2=Entire Desktop
INT4 format The format of the file to create. 1=Bitmap, 2=Metafile, 3=Placeable
Metafile, 4=JPEG, 5=Bitmap Series, 6=AVI, 7=JT, 8=Reserved for
internal use, 9=GIF, 10=Animated GIF, 11=TIF, 12=PNG. Bitmap
Series, Animated GIF, and AVI formats are only available for ani-
mating windows. Metafiles and Placeable Metafiles are only avail-
able for non-Render windows.
STRING fName The name of the file to create.
Output:
None
Return Code:
FE_INVALID You specified an invalid format.
FE_FAIL An error occurred saving the file.
Remarks/Usage:
If you are saving a bitmap, then view that you are saving must be visible on the screen. If it is partially
or fully obscured by other applications, then the file that you create will not be correct.
Example:
None
feFilePictureReplay API-267

3.4.11.9 feFilePictureReplay

feFilePictureReplay
( fName )
Description:
This function replays an existing bitmap or metafile.
Input:
STRING fName The name of the picture to replay - must be a bitmap or metafile.
Output:
None
Return Code:
FE_FAIL An error occurred replaying the picture - most likely the file does not
exist.
Remarks/Usage:
This function displays the picture using the FEMAP Replay program, which is launched in a separate
window. There is no function available to automatically close this replay window. The Replay program
can only replay bitmaps and metafiles. Other picture file formats can be saved, but cannot be replayed
using this method.
Example:
None
API-268 feFileMessageCopy

3.4.11.10 feFileMessageCopy

feFileMessageCopy
( void )
Description:
This function copies the selected messages from the Messages and Lists window to the clipboard.
Input:
None
Output:
None
Return Code:
None
Remarks/Usage:
If no messages are selected, then all messages will be copied; otherwise, only the selected ones are cop-
ied.
Example:
None
feFileMessageSave API-269

3.4.11.11 feFileMessageSave

feFileMessageSave
( useDlg, fName )
Description:
This function copies the selected messages to a file.
Input:
BOOL useDlg If True, this function runs interactively and displays a dialog box to
ask the user to define the filename.
STRING fName The name of the file to create.
Output:
None
Return Code:
FE_FAIL An error occurred saving the file.
Remarks/Usage:
If no messages are selected, then all messages will be copied; otherwise, only the selected ones are cop-
ied.
Example:
None
API-270 feFileMessageSelect

3.4.11.12 feFileMessageSelect

feFileMessageSelect
( firstLine, lastLine )
Description:
This function selects the specified lines in the Messages and Lists window.
Input:
INT4 firstLine The line number of the first line of text to be selected.
INT4 lastLine The line number of the last line of text to be selected.
Output:
None
Return Code:
FE_INVALID One of the line numbers that you selected was outside of the range of
lines that are available.
Remarks/Usage:
If either firstLine or lastLine are -1, the selection will be reset - no lines will be selected. Setting first-
Line = 0, will automatically select starting at the first available line. Setting lastLine = 0 will automati-
cally select up to the last available line.

You can use the global integer Message_LineNumber to retrieve the current line number in the Mes-
sages and Lists window. You can then save this value and later use it as a line number to select.
Example:
None
feFileMessageLineNumber API-271

3.4.11.13 feFileMessageLineNumber

feFileMessageLineNumber
( nLine )
Description:
This function returns the line number of the last line currently in the message window
Input:
None
Output:
INT4 nLine The line number of the last line in the message window
Return Code:
FE_INVALID Either the message window is closed or the last line can not be
retrieved.
Remarks/Usage:
You can use this function to retrieve the current line number in the Messages and Lists window. You can
then save this value and later use it as a line number to call feFileMessageSelect.
Example:
None
API-272 feFileRebuild

3.4.12 Rebuild and Preferences


3.4.12.1 feFileRebuild

feFileRebuild
( useDlg, fullRebuild )
Description:
This function is similar to the File,Rebuild command. It rebuilds the current FEMAP database and
checks it for integrity.
Input:
BOOL useDlg If True, this function runs interactively and displays a dialog box to
ask whether to do a full or partial rebuild. An additional dialog box
may also be displayed if solid geometry is found that cannot be
loaded.
BOOL fullRebuild Only used if useDlg=False. If True, a full rebuild is performed and
all internal database pointers are reconstructed. If False, a partial
rebuild is performed. This simply checks data references to make
sure that all required entities still exist, and resets all usage counters.
Output:
None
Return Code:
FE_FAIL An error occurred during rebuild. Some data is missing or corrupted.
(or the rebuild was cancelled if useDlg=True)
Remarks/Usage:
None
Example:
None
feFileRecoverDBData API-273

3.4.12.2 feFileRecoverDBData

feFileRecoverDBData
( useDlg, fName )
Description:
This function is a low-level attempt to recover whatever data is still available in the scratch file of a cor-
rupted model. It will not fully recover the model.
Input:
BOOL useDlg If True, this function runs interactively and displays a dialog box to
choose the file to recover
STRING fName Only used if useDlg=False. The filename/path of the _DBData file to
attempt to recover
Output:
None
Return Code:
FE_FAIL Unable to recover from specified file.
FE_NOT_EXIST The specified file does not exist.
Remarks/Usage:
None
Example:
None
API-274 feFilePreferencesSave

3.4.12.3 feFilePreferencesSave

feFilePreferencesSave
( void )
Description:
This function permanently saves the current preference settings. It is the same as saving the preferences
when you leave the File, Preferences command.
Input:
None
Output:
None
Return Code:
FE_FAIL A problem occurred trying to save the settings.
Remarks/Usage:
This command does not allow you to change the preference settings. All preference settings can be
accessed and changed using global variables. You should change the settings that you want to modify,
then call this function to make those changes permanent.
Example:
None
feFilePreferencesReset API-275

3.4.12.4 feFilePreferencesReset

feFilePreferencesReset
( void )
Description:
This function permanently resets the preference settings back to their default values. It is the same as
pressing the Reset button in the File, Preferences command.
Input:
None
Output:
None
Return Code:
None
Remarks/Usage:
None
Example:
None
API-276 feRunIOTest

3.4.12.5 feRunIOTest

feRunIOTest
( sPath, nMethod )
Description:
This function runs the Read/Write Test found in the Database tab of the File, Preferences command.
Input:
STRING sPath Directory path to the current Scratch directory, where the test will
take place.
Output:
INT4 nMethod Preferred result of test. 0=Windows I/O, 1=C I/O, 2=Windows 64K
I/O, or 3=C 64K I/O.
Return Code:
None
Remarks/Usage:
None
Example:
None
API-277

3.5 Tool Methods


Tool Methods include:
Section 3.5.1, "Units"
Section 3.5.2, "Variables"
Section 3.5.3, "Layers"
Section 3.5.4, "Text"
Section 3.5.5, "Measure"
Section 3.5.6, "Checks"
Section 3.5.7, "Charting Pane"
API-278 feToolUnitConvertFactors

3.5.1 Units
3.5.1.1 feToolUnitConvertFactors

feToolUnitConvertFactors
( baseMult, baseAdd, factorMult, factorAdd )
Description:
This function computes the computed factors to use in a unit conversion of the current model.
Input:
REAL8 baseMult[0..5] Base factors used to multiply dimensions.
REAL8 baseAdd[0..5] Base factors added to converted dimensions.
Output:
REAL8 factorMult[0..29] Computed factors used to multiply dimensions
REAL8 factorAdd[0..29] Computed factors added to converted dimensions.
Return Code:
One of the arrays has dimensions that are too small to be used where
FE_TOO_SMALL
you specified it.
FE_NOT_AVAILABLE One of the arrays does not contain the required data.
FE_INVALID Data in the input arrays is outside the acceptable bounds.
Data in the input arrays is not of the correct type (e.g. REAL8 or
FE_BAD_TYPE
INT4).
Remarks/Usage:
For baseMult[ ] and baseAdd[ ] the array indices are:
0=Length, 1=Force, 2=Time, 3=Mass, 4=Temperature, 5=Energy

For factorMult[ ] and factorAdd[ ], the array indices are:


0=Length, 1=Area, 2=Inertia, 3=Force, 4=Moment, 5=Spring, 6=SpringRot, 7=Pressure, 8=Accelera-
tion, 9=AccelRot, 10=VelocityRot, 11=Damping, 12=DampingRot, 13=Mass, 14=Mass-Len,
15=MassPerLen, 16=MassPerArea, 17=Density, 18=MassInertia, 19=Temperature, 20=ThermalExpan-
sion, 21=ThermConductivity, 22=SpecificHeat, 23=HeatGenRate, 24=Velocity, 25=EnergyPerMass,
26=SpringRatePerArea, 27=DampingPerVolume, 28=VolumePerForce, 29=ThermalConductivity-
LengthPerArea

This method can be called prior to calling feToolUnitConvert to compute the factor arrays needed for
that method.
Example:
None
feToolUnitConvert API-279

3.5.1.2 feToolUnitConvert

feToolUnitConvert
( baseMult, baseAdd, factorMult, factorAdd )
Description:
This function converts the units of the current model.
Input:
REAL8 baseMult[0..5] Base factors used to multiply dimensions.
REAL8 baseAdd[0..5] Base factors added to converted dimensions.
REAL8 factorMult[0..29] Computed factors used to multiply dimensions
REAL8 factorAdd[0..29] Computed factors added to converted dimensions.
Output:
None
Return Code:
One of the arrays has dimensions that are too small to be used where
FE_TOO_SMALL
you specified it.
FE_NOT_AVAILABLE One of the arrays does not contain the required data.
FE_INVALID Data in the input arrays is outside the acceptable bounds.
Data in the input arrays is not of the correct type (e.g. REAL8 or
FE_BAD_TYPE
INT4).
Remarks/Usage:
For baseMult[ ] and baseAdd[ ] the array indices are:
0=Length, 1=Force, 2=Time, 3=Mass, 4=Temperature, 5=Energy

For factorMult[ ] and factorAdd[ ], the array indices are:


0=Length, 1=Area, 2=Inertia, 3=Force, 4=Moment, 5=Spring, 6=SpringRot, 7=Pressure, 8=Accelera-
tion, 9=AccelRot, 10=VelocityRot, 11=Damping, 12=DampingRot, 13=Mass, 14=Mass-Len, 15=Mass-
PerLen, 16=MassPerArea, 17=Density, 18=MassInertia, 19=Temperature, 20=ThermalExpansion,
21=ThermConductivity, 22=SpecificHeat, 23=HeatGenRate, 24=Velocity, 25=EnergyPerMass,sion,
21=ThermConductivity, 22=SpecificHeat, 23=HeatGenRate, 24=Velocity, 25=EnergyPerMass,
26=SpringRatePerArea, 27=DampingPerVolume, 28=VolumePerForce, 29=ThermalConductivity-
LengthPerArea

You can use the feToolUnitConvertFactors( ) method to automatically compute values for factorMult
and factorAdd prior to calling this method.

Example:
API-280 feToolUnitConvert

feToolUnitConvert
( baseMult, baseAdd, factorMult, factorAdd )
None
feVarPut API-281

3.5.2 Variables
3.5.2.1 feVarPut

feVarPut
( varName, evalEqn, setConst, varValue, varEqn )
Description:
This function adds a variable/equation to the model.
Input:
Specifies the name of the variable to define. Must follow normal
STRING varName FEMAP variable naming conventions - start with a letter, unique to 5
characters.
BOOL evalEqn If True, the varEqn equation is evaluated to compute varValue.
If True, the varValue value is converted to a text string and used as a
BOOL setConst
constant equation in varEqn.
Current evaluated value for the variable. Should be the current value
REAL8 varValue
of the equation specified.
STRING varEqn The defining equation for the variable.
Output:
None
Return Code:
FE_BAD_DATA The equation that you specified in varEqn cannot be evaluated.
FE_INVALID You specified an invalid variable name.
Remarks/Usage:
Normally you will not specify both evalEqn=True and setConst=True, but if you do, evalEqn is done
first. Your original varEqn will be evaluated to find a constant which will then overwrite the original
equation.
Example:
None
API-282 feVarGet

3.5.2.2 feVarGet

feVarGet
( varName, varValue, varEqn )
Description:
This function retrieves a variable including its current value and defining equation.
Input:
Specifies the name of the variable to retrieve. Must follow normal
STRING varName FEMAP variable naming conventions - start with a letter, unique to 5
characters.
Output:
REAL8 varValue Current evaluated value for the variable.
STRING varEqn The defining equation for the variable.
Return Code:
FE_NOT_EXIST The variable name that you specified has not been defined.
FE_INVALID You specified an invalid variable name.
Remarks/Usage:
None
Example:
None
feVarEval API-283

3.5.2.3 feVarEval

feVarEval
( varEqn, varValue )
Description:
This function evaluates an equation.
Input:
The equation to be evaluated. This string can follow the syntax of
STRING varEqn any equation that you can define in FEMAP, including the use of
functions and other variables.
Output:
REAL8 varValue Evaluated value for the equation.
Return Code:
FE_BAD_DATA The equation cannot be evaluated.
Remarks/Usage:
This function does not store its results or create any variables. It simply evaluates the expression that
you supply.
Example:
None
API-284 feLayerPut

3.5.3 Layers
3.5.3.1 feLayerPut

feLayerPut
( layID, layColor, layTitle )
Description:
This function creates or updates a layer.
Input:
INT4 layID The ID of the layer to create or update.
The color used for the layer that is created. Set to -1 to use the active
INT4 layColor
layer color.
STRING layTitle The title to be used for the layer.
Output:
None
Return Code:
None
Remarks/Usage:
None
Example:
None
feLayerGet API-285

3.5.3.2 feLayerGet

feLayerGet
( layID, layColor, layTitle )
Description:
This function retrieves information about a layer.
Input:
INT4 layID The ID of the layer to create or update.
Output:
INT4 layColor The layer color.
STRING layTitle The title of the layer.
Return Code:
FE_NOT_EXIST The layer that you requested has not been defined.
Remarks/Usage:
None
Example:
None
API-286 feTextPut

3.5.4 Text
3.5.4.1 feTextPut

feTextPut
( textID, drawPointer, drawBorder, modelPos, horzJust, vertJust, visView, layer, fontID,
backColor, bordColor, textColor, textLoc, pointerLoc, text)
Description:
This function creates or updates a text annotation.
Input:
INT4 textID The ID of the text entity to create or update.
If True, a pointer will be drawn from the text to a location that you
BOOL drawPointer
specify in pointerLoc.
BOOL drawBorder If True, a border will be drawn around the text.
If True, both the textLoc and pointerLoc are in global Cartesian
BOOL modelPos
model coordinates. If False, they are in screen coordinates.
INT4 horzJust The horizontal justification: 0=Center, 1=Left, 2=Right.
INT4 vertJust The vertical justification: 0=Center, 1=Top, 2=Bottom.
Specifies the views where the text will be visible: -1=All Views,
INT4 visView
0=Currently Active View, >0=Specified View ID.
INT4 layer The layer attribute for the text.
The ID of the font for the text. Same fonts as in the Tools, Text com-
INT4 fontID
mand.
INT4 backColor The color of the background of the border (if drawBorder=True).
INT4 bordColor The color of the edge of the border (if drawBorder=True).
INT4 textColor The color of the text.
The location of the text. If in model coordinates, the X,Y,Z coordi-
REAL8 textLoc[0..2] nates in global Cartesian. If in screen, the X and Y screen coordi-
nates. In this case, the third coordinate should always be 0.0
REAL8 pointerLoc[0..2] The location of the tip of the pointer.
STRING text The text to create.
Output:
None
Return Code:
None
feTextPut API-287

feTextPut
( textID, drawPointer, drawBorder, modelPos, horzJust, vertJust, visView, layer, fontID,
backColor, bordColor, textColor, textLoc, pointerLoc, text)
Remarks/Usage:
If you want to create text with multiple lines, you must add carriage return (CR) and linefeed (LF) char-
acters between the lines. For example, from Basic, you could use:
s = "First Line" & Chr(13) & Chr(10) & "Second Line"
Example:
None
API-288 feTextMultiPut

3.5.4.2 feTextMultiPut

feTextMultiPut
( drawPointer, drawBorder, modelPos, horzJust, vertJust, visView, layer, fontID, back-
Color, bordColor, textColor, nCount, textLoc, pointerLoc, text)
Description:
This function creates multiple text annotations.
Input:
If True, a pointer will be drawn from the text to a location that you
BOOL drawPointer
specify in pointerLoc.
BOOL drawBorder If True, a border will be drawn around the text.
If True, both the textLoc and pointerLoc are in global Cartesian
BOOL modelPos
model coordinates. If False, they are in screen coordinates.
INT4 horzJust The horizontal justification: 0=Center, 1=Left, 2=Right.
INT4 vertJust The vertical justification: 0=Center, 1=Top, 2=Bottom.
Specifies the views where the text will be visible: -1=All Views,
INT4 visView
0=Currently Active View, >0=Specified View ID.
INT4 layer The layer attribute for the text.
The ID of the font for the text. Same fonts as in the Tools, Text com-
INT4 fontID
mand.
INT4 backColor The color of the background of the border (if drawBorder=True).
INT4 bordColor The color of the edge of the border (if drawBorder=True).
INT4 textColor The color of the text.
The number of text items to create. This value specifies the number
INT4 nCount
of entries in the remaining parameters
The location of the text. If in model coordinates, the X,Y,Z coordi-
REAL8 textLoc[0..3*nCount- nates in global Cartesian. If in screen, the X and Y screen coordi-
1] nates. In this case, the third coordinate should always be 0.0. Entries
in this array are stored [Text1X,Text1Y,Text1Z,Text2X,...TextNZ]
REAL8 pointer-
The location of the tip of the pointer. Stored the same as textLoc.
Loc[0..3*nCount-1]
STRING text[0..nCount-1] The text items to create. Each string creates a unique Text entity.
Output:
None
Return Code:
feTextMultiPut API-289

feTextMultiPut
( drawPointer, drawBorder, modelPos, horzJust, vertJust, visView, layer, fontID, back-
Color, bordColor, textColor, nCount, textLoc, pointerLoc, text)
None
Remarks/Usage:
If you want to create text with multiple lines, you must add carriage return (CR) and linefeed (LF) char-
acters between the lines. For example, from Basic, you could use:
s = "First Line" & Chr(13) & Chr(10) & "Second Line"
Example:
Sub Main
Dim App As femap.model
Set App = feFemap()

Dim xyz(8) As Double
Dim t(2) As String

Dim n As femap.Node
Set n = App.feNode()

n.Get(1)
xyz(0) = n.x
xyz(1) = n.y
xyz(2) = n.z

n.Get(2)
xyz(3) = n.x
xyz(4) = n.y
xyz(5) = n.z

n.Get(3)
xyz(6) = n.x
xyz(7) = n.y
xyz(8) = n.z

t(0) = "AA"
t(1) = "This is" & Chr(13) & Chr(10) & "Multi line"
t(2) = "XYZDEF"

App.feTextMultiPut ( False, False, True, 0, 0, -1, 1, 2,
FCL_RED, FCL_BLUE, FCL_RED, 3, xyz, xyz, t )
End Sub
API-290 feTextGet

3.5.4.3 feTextGet

feTextGet
( textID, drawPointer, drawBorder, modelPos, horzJust, vertJust, visView, layer, fontID,
backColor, bordColor, textColor, textLoc, pointerLoc, text)
Description:
This function retrieves a text entity.
Input:
INT4 textID The ID of the text entity to create or update.
Output:
BOOL drawPointer The status of the pointer (True=On).
BOOL drawBorder The status of the border (True=On).
If True, both the textLoc and pointerLoc are in global Cartesian
BOOL modelPos
model coordinates. If False, they are in screen coordinates.
INT4 horzJust The horizontal justification: 0=Center, 1=Left, 2=Right.
INT4 vertJust The vertical justification: 0=Center, 1=Top, 2=Bottom.
Specifies the views where the text will be visible: -1=All Views,
INT4 visView
0=Currently Active View, >0=Specified View ID.
INT4 layer The layer attribute for the text.
The ID of the font for the text. Same fonts as in the Tools, Text com-
INT4 fontID
mand.
INT4 backColor The color of the background of the border (if drawBorder=True).
INT4 bordColor The color of the edge of the border (if drawBorder=True).
INT4 textColor The color of the text.
The location of the text. If in model coordinates, the X,Y,Z coordi-
REAL8 textLoc[0..2] nates in global Cartesian. If in screen, the X and Y screen coordi-
nates. In this case the third coordinate should always be 0.0.
REAL8 pointerLoc[0..2] The location of the tip of the pointer.
The text. If there are multiple lines of text, there will be carriage
STRING text
return and linefeed characters in the string.
Return Code:
FE_NOT_EXIST The text entity that you requested does not exist.
Remarks/Usage:
None
feTextGet API-291

feTextGet
( textID, drawPointer, drawBorder, modelPos, horzJust, vertJust, visView, layer, fontID,
backColor, bordColor, textColor, textLoc, pointerLoc, text)
Example:
None
API-292 feMeasureDistance

3.5.5 Measure
3.5.5.1 feMeasureDistance

feMeasureDistance
( p1, p2, dist )
Description:
This function measures the distance between two coordinates.
Input:
REAL8 p1[0..2] The first coordinate location.
REAL8 p2[0..2] The second coordinate location.
Output:
REAL8 dist The distance between the coordinate locations.
Return Code:
None
Remarks/Usage:
The coordinate locations must be in the same rectangular coordinate system for this function to work
properly - preferably in global rectangular.
Example:
None
feMeasureDistanceToPlane API-293

3.5.5.2 feMeasureDistanceToPlane

feMeasureDistanceToPlane
( p1, planePt, planeNorm, dist )
Description:
This function measures the distance between a coordinate location and a plane. The distance is the
length of the perpendicular projection onto the plane.
Input:
REAL8 p1[0..2] The coordinate location.
REAL8 planePt[0..2] The coordinates of any point on the plane.
REAL8 planeNorm[0..2] The components of the perpendicular vector to the plane.
Output:
The distance from the coordinate location to its projection onto the
REAL8 dist
plane.
Return Code:
None
Remarks/Usage:
The coordinate locations and components must be in the same rectangular coordinate system for this
function to work properly - preferably in global rectangular.
Example:
None
API-294 feMeasureDistanceBetweenGeometry

3.5.5.3 feMeasureDistanceBetweenGeometry

feMeasureDistanceBetweenGeometry
( enFromType, nFromSet, enToType, nToSet, bMinimum, nFromID, nToID, vFrom, vTo,
dDistance )
Description:
This function measures the distance between two sets of geometric entities or a set of nodes and a set of
geometric entities. The maximum or minimum distance is calculated using any combination of sets con-
taining only points, curves, surfaces, or solids.
Input:
The type of entities to measure From. For entity information, Sec-
INT4 enFromType tion 3.3.6, "Entity Types". Can be FT_NODE (7), FT_POINT (3),
FT_CURVE (4), FT_SURFACE (5), or FT_SOLID (39).
The ID of a set that contains a list of point, curve, surface, or solid
INT4 nFromSet IDs. Alternatively, if you specify a negative value, this is simply the
ID of the single entity to measure From.
The type of entities to measure To. Can be FT_POINT (3),
INT4 enToType
FT_CURVE (4), FT_SURFACE (5), or FT_SOLID (39).
The ID of a set that contains a list of point, curve, surface, or solid
INT4 nToSet IDs. Alternatively, if you specify a negative value, this is simply the
ID of the single entity to measure To
When True, calculates the minimum distance between geometric
INT4 bMinimum
entities. When False, calculates the maximum distance.
Output:
The ID of the geometric entity used as the From entity to deter-
INT4 nFromID
mine minimum/maximum distance
The ID of the geometric entity used as the To entity to determine
INT4 nToID
minimum/maximum distance
The coordinates of the location on the nFromID entity used to deter-
REAL8 vFrom[0..2]
mine minimum/maximum distance
The coordinates of the location on the nToID entity used to deter-
REAL8 vTo[0..2]
mine minimum/maximum distance
REAL8 dDistance The distance between the vFrom and vTo coordinates
Return Code:
FE_NOT_EXIST One or more of the geometric entities does not exist
Remarks/Usage:
Offers similar functionality to the Tools, Measure, Distance Between Geometry command.
feMeasureDistanceBetweenGeometry API-295

feMeasureDistanceBetweenGeometry
( enFromType, nFromSet, enToType, nToSet, bMinimum, nFromID, nToID, vFrom, vTo,
dDistance )
Example:
None
API-296 feMeasureDistanceBetweenNodes

3.5.5.4 feMeasureDistanceBetweenNodes

feMeasureDistanceBetweenNodes
( nFrom, nTo, nOutSetID, nOutVecID, nCSysID, vecBase, vecDist, magDist )
Description:
This function measures the distance between two nodes which are optionally deformed using selected
results. This function is superseded by feMeasureDistanceBetweenNodes2.
Input:
INT4 nFrom The ID of the node to measure from
INT4 nTo The ID of the node to measure to
The ID of the output set which contains the results to use to deform
INT4 nOutSetID
the nodes. If 0, use the undeformed location of the nodes.
The ID of the output vector in nOutSetID which contains the results
INT4 nOutVecID
to use to deform the nodes. If 0, use the undeformed locations.
INT4 nCSysID The ID of the coordinate system in which the results are returned.
Output:
The coordinates of the nFrom node (possibly deformed) in CSys
REAL8 vecBase[0..2]
nCSysID
REAL8 vecDist[0..2] The components of the vector from nFrom to nTo in CSys nCSysID
REAL8 magDist The distance between the nodes
Return Code:
FE_NOT_AVAILABLE Selected results Set/Vector do not exist
No output available for one or more of the nodes in the selected
FE_INVALID
results vector.
FE_NOT_EXIST One or more of the nodes does not exist
Remarks/Usage:
None
Example:
None
feMeasureDistanceBetweenNodes2 API-297

3.5.5.5 feMeasureDistanceBetweenNodes2

feMeasureDistanceBetweenNodes2
( nFrom, nTo, nOutSetID, nOutVecID, nCSysID, vecBase, vecTip, vecDist, magDist )
Description:
This function measures the distance between two nodes which are optionally deformed using selected
results.This function is supersedes by feMeasureDistanceBetweenNodes.
Input:
INT4 nFrom The ID of the node to measure from
INT4 nTo The ID of the node to measure to
The ID of the output set which contains the results to use to deform
INT4 nOutSetID
the nodes. If 0, use the undeformed location of the nodes.
The ID of the output vector in nOutSetID which contains the results
INT4 nOutVecID
to use to deform the nodes. If 0, use the undeformed locations.
INT4 nCSysID The ID of the coordinate system in which the results are returned.
Output:
The coordinates of the nFrom node (possibly deformed) in CSys
REAL8 vecBase[0..2]
nCSysID
The coordinates of the nTo node (possibly deformed) in CSys
REAL8 vecTip0..2]
nCSysID
REAL8 vecDist[0..2] The components of the vector from nFrom to nTo in CSys nCSysID
REAL8 magDist The distance between the nodes
Return Code:
FE_NOT_AVAILABLE Selected results Set/Vector do not exist
No output available for one or more of the nodes in the selected
FE_INVALID
results vector.
FE_NOT_EXIST One or more of the nodes does not exist
Remarks/Usage:
None
Example:
None
API-298 feMeasureDistanceBetweenLines

3.5.5.6 feMeasureDistanceBetweenLines

feMeasureDistanceBetweenLines
( pA1, pA2, pB1, pB2, dist )
Description:
This function measures the minimum distance between two line segments in space which are specified
by the coordinates of their endpoints.
Input:
REAL8 pA1[0..2] The coordinates at the first end of the first line.
REAL8 pA2[0..2] The coordinates at the second end of the first line.
REAL8 pB1[0..2] The coordinates at the first end of the second line.
REAL8 pB2[0..2] The coordinates at the second end of the second line.
Output:
REAL8 dist The minimum distance between the two line segments.
Return Code:
None
Remarks/Usage:
The coordinate locations must be in the same rectangular coordinate system for this function to work
properly - preferably in global rectangular. The minimum distance will be the perpendicular distance if
the closest point of approach lies within the lengths of the segments. If it does not, then the distance will
be the distance from one of the endpoints to the other line.
Example:
None
feMeasureDistanceBetweenSolids API-299

3.5.5.7 feMeasureDistanceBetweenSolids

feMeasureDistanceBetweenSolids
( solidID1, solidID2, dist )
Description:
This function measures the minimum distance between two solids in space
Input:
INT4 solidID1
The IDs of the two solids to measure between.
INT4 solidID2
Output:
REAL8 dist The minimum distance between the two solids
Return Code:
None
Remarks/Usage:
None
Example:
None
API-300 feMeasureAngle

3.5.5.8 feMeasureAngle

feMeasureAngle
( center, p1, p2, angle )
Description:
This function measures the angle between three coordinate locations.
Input:
REAL8 center[0..2] The coordinates of the center location.
REAL8 p1[0..2] The first coordinate location.
REAL8 p2[0..2] The second coordinate location.
Output:
REAL8 angle The angle between the coordinate locations (in degrees).
Return Code:
None
Remarks/Usage:
The coordinate locations must be in the same rectangular coordinate system for this function to work
properly - preferably in global rectangular. The center location is the point about which the angle is
measured. The angle is the angle between the vector from the center to p1 and the vector from the center
to p2. The angle returned is always less than 180 degrees. There is no indication of the direction swept
by the angle.
Example:
None
feMeasureAngleBetweenNodes API-301

3.5.5.9 feMeasureAngleBetweenNodes

feMeasureAngleBetweenNodes
( nVertex, nFrom, nTo, nOutSetID, nOutVecID, nCSysID, vecBase, vecNormal, magAn-
gle )
Description:
This function measures the angle between three coordinate locations.
Input:
INT4 nVertex The ID of a node at the vertex of the angle
INT4 nFrom The ID of a node to measure the angle from
INT4 nTo The ID of a node to measure the angle to
The ID of the output set which contains the results to use to deform
INT4 nOutSetID
the nodes. If 0, use the undeformed location of the nodes.
The ID of the output vector in nOutSetID which contains the results
INT4 nOutVecID
to use to deform the nodes. If 0, use the undeformed locations.
INT4 nCSysID The ID of the coordinate system in which the results are returned.
Output:
The coordinates of the nVertex node (possibly deformed) in CSys
REAL8 vecBase[0..2]
nCSysID
The components of the vector that is normal to the plane formed by
REAL8 vecNormal[0..2]
the three (possibly deformed) nodes, in CSys nCSysID
REAL8 magAngle The angle between the nodes
Return Code:
None
Remarks/Usage:
None
Example:
None
API-302 feMeasureCurve

3.5.5.10 feMeasureCurve

feMeasureCurve
( curveSET, totalLength )
Description:
This function measures the length of one or more curves.
Input:
The ID of a selection set that contains the IDs of the curves to mea-
INT4 curveSET sure. Alternatively, if you specify a negative value, this is simply the
ID of the single curve to measure.
Output:
REAL8 totalLength The total length of all the curves.
Return Code:
None
Remarks/Usage:
The total length of the curves is simply the sum of the lengths of the individual curves, it does not
account for any overlap in the curves.
Example:
None
feMeasureSurfaceArea API-303

3.5.5.11 feMeasureSurfaceArea

feMeasureSurfaceArea
( surfaceSET, totalArea )
Description:
This function measures the area of one or more surfaces.
Input:
The ID of a selection set that contains the IDs of the surfaces to mea-
INT4 surfaceSET sure. Alternatively, if you specify a negative value, this is simply the
ID of the single surface to measure.
Output:
REAL8 totalArea The total area of the selected surfaces.
Return Code:
One or more of the surfaces that you selected did not exist. totalArea
FE_NOT_EXIST
is still the area of the existing surfaces.
FE_BAD_TYPE One or more of the surfaces that you selected was not a solid surface.
Remarks/Usage:
This function only works for solid surfaces. Surfaces created with the standard geometry engine and
boundary surfaces cannot be measured for area.
Example:
None
API-304 feMeasureSolidMassProp

3.5.5.12 feMeasureSolidMassProp

feMeasureSolidMassProp
( solidID, area, volume, cg, inertia )
Description:
This function computes the mass properties of a solid.
Input:
INT4 solidID The ID of the solid to compute the mass properties.
Output:
REAL8 area The total surface area of the solid.
REAL8 volume The volume of the solid (if closed).
REAL8 cg[0..2] The location of the center of gravity of the solid.
The 3x3 inertia matrix stored in row order [0][0], [0][1], [0][2],
REAL8 inertia[0..9]
[1][0]...[2][2].
Return Code:
FE_NOT_EXIST The solid that you have selected does not exist.
Remarks/Usage:
The cg and inertia terms are in global rectangular coordinates.
Example:
None
feMeasureMeshMassProp API-305

3.5.5.13 feMeasureMeshMassProp

feMeasureMeshMassProp
( elemSET, csysID, printResults, printDetails, len, area, volume, structMass, nonstruct-
Mass, totalMass, structCG, nonstructCG, totalCG, inertia, inertiaCG )
Description:
This function computes the mass properties of a mesh.
Input:
The ID of a selection set that contains the IDs of the elements to
INT4 elemSET measure. Alternatively, if you specify a negative value, this is simply
the ID of the single element to measure.
INT4 csysID The coordinate system used to compute the mass properties.
BOOL printResults If True, the mass properties are also listed to the print destination.
If True, and printResults=True, the detailed properties for each ele-
BOOL printDetails
ment are listed.
Output:
REAL8 len The total length of all selected line elements.
REAL8 area The total area of all selected planar elements.
REAL8 volume The total volume of all selected elements.
REAL8 structMass The structural mass of all selected elements.
REAL8 nonstructMass The nonstructural mass of all selected elements.
REAL8 totalMass The total (structural+nonstructural) mass of all selected elements.
REAL8 structCG[0..2] The center of gravity of the structural mass.
REAL8 nonstructCG[0..2] The center of gravity of the nonstructural mass.
REAL8 totalCG[0..2] The center of gravity of the total mass.
The inertias of the selected elements ( 0=I11, 1=I21, 2=I22, 3=I31,
REAL8 inertia[0..5]
4=I32, 5=I33) about the origin of the selected coordinate system.
The inertias of the selected elements ( 0=I11, 1=I21, 2=I22, 3=I31,
REAL8 inertiaCG[0..5]
4=I32, 5=I33) about the center of gravity.
Return Code:
FE_NOT_EXIST The solid that you have selected does not exist.
Some of the elements that you have selected have either negative
FE_NEGATIVE_MASS_VOL
mass or volume. Returned values may be less than the total absolute
UME
mass or volume.
API-306 feMeasureMeshMassProp

feMeasureMeshMassProp
( elemSET, csysID, printResults, printDetails, len, area, volume, structMass, nonstruct-
Mass, totalMass, structCG, nonstructCG, totalCG, inertia, inertiaCG )
Remarks/Usage:
Only total mass properties are returned. If you want to get individual properties, you must call this func-
tion and just select a single element.
Example:
None
feMeasureSurfSectionProp API-307

3.5.5.14 feMeasureSurfSectionProp

feMeasureSurfSectionProp
( surfID, vecBase, vecDir, sectProp )
Description:
This function computes the section properties for a planar surface.
Input:
INT4 surfID The ID of the surface to compute the properties.
The coordinates of the origin of the orientation vector. Section prop-
REAL8 vecBase[0..2]
erties are reported about this point.
A vector in the direction of the Y axis of the section. Section proper-
REAL8 vecDir[0..2]
ties are reported about this axis.
Output:
The computed properties.
0= Area, 1= Y centroid, 2= Z centroid, 3= Y moment of inertia, 4= Z
moment of inertia, 5= YZ product of inertia, 6= Angle to principal
axes, 7= Y radius of gyration, 8= Z radius of gyration, 9= Polar
moment of inertia, 10= Max Principal moment of inertia, 11= Min
REAL8 sectProp[0..24] Principal moment of inertia, 12= Y Principal moment of inertia, 13=
Z Principal moment of inertia, 14= YZ Principal moment of inertia,
15= Y Shear Center - from origin, 16= Z Shear Center - from origin,
17= Y Shear Center - from centroid, 18= Z Shear Center - from cen-
troid, 19= Y Shear Area, 20= Z Shear Area, 21= YZ Shear Area, 22=
Warping Constant, 23= Torsional Constant, 24= Not Used.
Return Code:
One of the arrays has dimensions which are too small to be used
FE_TOO_SMALL
where you specified it.
FE_NOT_AVAILABLE One of the arrays does not contain the required data.
FE_INVALID Data in the input arrays is outside the acceptable bounds.
Data in the input arrays is not of the correct type (e.g. REAL8 or
FE_BAD_TYPE
INT4).
Remarks/Usage:
None
Example:
None
API-308 feMeasureMeshSectionProp

3.5.5.15 feMeasureMeshSectionProp

feMeasureMeshSectionProp
( elemSET, vecBase, vecDir, sectProp )
Description:
This function computes the section properties for a selected set of elements.
Input:
The ID of a selection set that contains the IDs of the elements to
INT4 elemSET measure. Alternatively, if you specify a negative value, this is simply
the ID of the single element to measure.
The coordinates of the origin of the orientation vector. Section prop-
REAL8 vecBase[0..2]
erties are reported about this point.
A vector in the direction of the Y axis of the section. Section proper-
REAL8 vecDir[0..2]
ties are reported about this axis.
Output:
The computed properties:
0= Area, 1= Y centroid, 2= Z centroid, 3= Y moment of inertia, 4= Z
moment of inertia, 5= YZ product of inertia, 6= Angle to principal
axes, 7= Y radius of gyration, 8= Z radius of gyration, 9= Polar
moment of inertia, 10= Max Principal moment of inertia, 11= Min
REAL8 sectProp[0..24] Principal moment of inertia, 12= Y Principal moment of inertia, 13=
Z Principal moment of inertia, 14= YZ Principal moment of inertia,
15= Y Shear Center - from origin, 16= Z Shear Center - from origin,
17= Y Shear Center - from centroid, 18= Z Shear Center - from cen-
troid, 19= Y Shear Area, 20= Z Shear Area, 21= YZ Shear Area, 22=
Warping Constant, 23= Torsional Constant, 24= Not Used.
Return Code:
One of the arrays has dimensions which are too small to be used
FE_TOO_SMALL
where you specified it.
FE_NOT_AVAILABLE One of the arrays does not contain the required data.
FE_INVALID Data in the input arrays is outside the acceptable bounds.
Data in the input arrays is not of the correct type (e.g. REAL8 or
FE_BAD_TYPE
INT4).
Remarks/Usage:
The elements that you select should all be planar elements.
Example:
None
feCheckCoincidentNode API-309

3.5.6 Checks
3.5.6.1 feCheckCoincidentNode

feCheckCoincidentNode
( keepSET, mergeSET, tolerance, merge, messages, coinCount, coinNodes )
Description:
This function checks, and optionally merges, coincident nodes. This method is obsolete and should be
replaced by feCheckCoincidentNode3.
Input:
The ID of a selection set that contains the IDs of the nodes to check
for coincidence. Alternatively, if you specify a negative value, this is
INT4 keepSET
simply the ID of the single node to check. The nodes in this set are
retained if they are merged with a node in the mergeSET.
The ID of a selection set that contains the IDs of the nodes to check
for coincidence. Alternatively, if you specify a negative value, this is
INT4 mergeSET simply the ID of the single node to check. The nodes in this set are
removed if they are merged with a node in the keepSET. You can
specify the same value for both the keepSET and the mergeSET.
REAL8 tolerance The distance below which nodes will be considered to be coincident.
BOOL merge If True, coincident nodes will be merged.
If True, messages will be printed listing all coincident nodes that are
BOOL messages
found.
Output:
INT4 coinCount The number of pairs of coincident nodes in coinNodes.
The IDs of the nodes that are found to be coincident. The entries in
this array come in pairs. That is, coinNodes[0] and coinNodes[1] are
coincident with each other, as are coinNodes[2] and coinNodes[3].
INT4 coinNodes[0..N]
The entries in coinNodes[0], coinNodes[2], coinNodes[4]... come
from the keepSET, coinNodes[1], coinNodes[3]... come from the
mergeSET. There are coinCount pairs.
Return Code:
One of the arrays has dimensions which are too small to be used
FE_TOO_SMALL
where you specified it.
FE_NOT_AVAILABLE One of the arrays does not contain the required data.
FE_INVALID Data in the input arrays is outside the acceptable bounds.
Data in the input arrays is not of the correct type (e.g. REAL8 or
FE_BAD_TYPE
INT4).
API-310 feCheckCoincidentNode

feCheckCoincidentNode
( keepSET, mergeSET, tolerance, merge, messages, coinCount, coinNodes )
Remarks/Usage:
None
Example:
None
feCheckCoincidentNode2 API-311

3.5.6.2 feCheckCoincidentNode2

feCheckCoincidentNode2
( mergeSET, tolerance, merge, mergeMode, mergeLoc, bMergeAcrossConnections,
nMessageMode, bSaveGroups )
Description:
This function checks, and optionally merges, coincident nodes. This method is obsolete and should be
replaced by feCheckCoincidentNode3.
Input:
The ID of a selection set that contains the IDs of the nodes to check
INT4 mergeSET
for coincidence.
REAL8 tolerance The distance below which nodes will be considered to be coincident.
If True, coincident nodes will be merged, otherwise just checked for
BOOL merge
coincidence
INT4 mergeMode Select Nodes to Keep 0=Automatic, 1=LowerID, 2=HigherID
Location of merged nodes 0=Original, 1=LowerID, 2=HigherID,
INT4 mergeLoc
3=Middle
BOOL bMergeAcrossConnec- If True, nodes can be merged even though they are on opposite sides
tions of a connection. Otherwise they are not merged.
INT4 nMessageMode Message Mode 0=Off, 1=On, 2=Detailed
If True, groups are created of the nodes to be kept, and if
BOOL bSaveGroups
merge=False of the nodes to be merged.
Output:
None
Return Code:
FE_FAIL Unable to check for coincident nodes
Remarks/Usage:
None
Example:
None
API-312 feCheckCoincidentNode3

3.5.6.3 feCheckCoincidentNode3

feCheckCoincidentNode3
( mergeSET, tolerance, merge, mergeMode, mergeLoc, bMergeAcrossConnections,
bMergeAcrossOutputCSys, nMergeAcrossCSysID, nMessageMode, bSaveGroups )
Description:
This function checks, and optionally merges, coincident nodes. This method supersedes both feCheck-
CoincidentNode and feCheckCoincidentNode2
Input:
The ID of a selection set that contains the IDs of the nodes to check
INT4 mergeSET
for coincidence.
REAL8 tolerance The distance below which nodes will be considered to be coincident.
If True, coincident nodes will be merged, otherwise just checked for
BOOL merge
coincidence
INT4 mergeMode Select Nodes to Keep 0=Automatic, 1=LowerID, 2=HigherID
Location of merged nodes 0=Original, 1=LowerID, 2=HigherID,
INT4 mergeLoc
3=Middle
BOOL If True, nodes can be merged even though they are on opposite sides
bMergeAcrossConnections of a connection. Otherwise they are not merged.
BOOL If True, nodes can be merged even though they have different output
bMergeAcrossOutputCSys coordinate systems.
ID of coordinate system to use for nodes merged which had different
INT4 nMergeAcrossCSysID output coordinate systems before merging. Set to -1 to use the output
coordinate system of the node that was kept after the merge.
INT4 nMessageMode Message Mode 0=Off, 1=On, 2=Detailed
If True, groups are created of the nodes to be kept, and if
BOOL bSaveGroups
merge=False of the nodes to be merged.
Output:
None
Return Code:
FE_FAIL Unable to check for coincident nodes
Remarks/Usage:
None
Example:
None
feCheckCoincidentPoint API-313

3.5.6.4 feCheckCoincidentPoint

feCheckCoincidentPoint
( keepSET, mergeSET, tolerance, merge, messages, coinCount, coinPoints )
Description:
This function checks, and optionally merges, coincident points.
Input:
The ID of a selection set that contains the IDs of the points to check
for coincidence. Alternatively, if you specify a negative value, this is
INT4 keepSET
simply the ID of the single point to check. The points in this set are
retained if they are merged with a point in the mergeSET.
The ID of a selection set that contains the IDs of the points to check
for coincidence. Alternatively, if you specify a negative value, this is
INT4 mergeSET simply the ID of the single point to check. The points in this set are
removed if they are merged with a point in the keepSET. You can
specify the same value for both the keepSET and the mergeSET.
REAL8 tolerance The distance below which points will be considered to be coincident.
BOOL merge If True, coincident points will be merged.
If True, messages will be printed listing all coincident points that are
BOOL messages
found.
Output:
INT4 coinCount The number of pairs of coincident points in coinPoints.
The IDs of the points that are found to be coincident. The entries in
this array come in pairs. That is, coinPoints[0] and coinPoints[1] are
coincident with each other, as are coinPoints[2] and coinPoints[3].
INT4 coinPoints[0..N]
The entries in coinPoints[0], coinPoints[2], coinPoints[4]... come
from the keepSET, coinPoints[1], coinPoints[3]... come from the
mergeSET. There are coinCount pairs.
Return Code:
One of the arrays has dimensions which are too small to be used
FE_TOO_SMALL
where you specified it.
FE_NOT_AVAILABLE One of the arrays does not contain the required data.
FE_INVALID Data in the input arrays is outside the acceptable bounds.
Data in the input arrays is not of the correct type (e.g. REAL8 or
FE_BAD_TYPE
INT4).
Remarks/Usage:
None
API-314 feCheckCoincidentPoint

feCheckCoincidentPoint
( keepSET, mergeSET, tolerance, merge, messages, coinCount, coinPoints )
Example:
None
feCheckCoincidentCurve API-315

3.5.6.5 feCheckCoincidentCurve

feCheckCoincidentCurve
( curveSET, tolerance )
Description:
This function checks and merges coincident curves.
Input:
The ID of a selection set that contains the IDs of the curves to check
INT4 curveSET for coincidence. Alternatively, if you specify a negative value, this is
simply the ID of the single curve to check.
The distance below which curves (and their endpoints) will be con-
REAL8 tolerance
sidered to be coincident.
Output:
None
Return Code:
None
Remarks/Usage:
None
Example:
None
API-316 feCheckPlanarNodes

3.5.6.6 feCheckPlanarNodes

feCheckPlanarNodes
( nodeSET, messages, project, tolerance, askPlane, planeBase, planeNormal )
Description:
This function checks a set of nodes to see if they are planar. The nodes can also be projected onto the
plane.
Input:
The ID of a selection set that contains the IDs of the nodes to check.
INT4 nodeSET Alternatively, if you specify a negative value, this is simply the ID of
the single node to check.
If True, status messages are written showing the nodes that are not on
BOOL messages
the plane.
If True, nodes that are not in the plane but are less than the tolerance
distance out of the plane will be projected onto the plane. Nodes that
BOOL project
are greater than the tolerance distance away from the plane will
remain in their current location.
The maximum distance from the plane for nodes to be moved onto
REAL8 tolerance
the plane. Only used if project=True.
If True, a dialog box will be displayed asking the user to pick a
BOOL askPlane plane. If False, the planeBase and planeNormal will be used to spec-
ify the plane location.
REAL8 planeBase[0..2] A location (in global rectangular coordinates) on the plane.
REAL8 planeNormal[0..2] A vector that is normal to the plane.
Output:
None
Return Code:
None
Remarks/Usage:
None
Example:
None
feCheckCoincidentElem API-317

3.5.6.7 feCheckCoincidentElem

feCheckCoincidentElem
( elemSET, chkTYPE, chkSHAPE, chkMASS, doLIST, makeGROUP1, makeGROUP2 )
Description:
This function checks a set of elements to see if any of them are coincident (share the same nodes).
Input:
The ID of a selection set that contains the IDs of the elements to
INT4 elemSET check. Alternatively, if you specify a negative value, this is simply
the ID of the single element to check.
BOOL chkTYPE If True, elements of different type can still be considered coincident.
If True, elements of different shape can be considered coincident if
BOOL chkSHAPE
all of the nodes of one of the elements are on the other element.
BOOL chkMASS If True, mass elements are included in the check.
If True, coincident elements are listed in the Messages and Lists win-
BOOL doLIST
dow.
BOOL makeGROUP1 If True, a group is made of the first element in the coincident pair.
BOOL makeGROUP2 If True, a group is made of the second element in the coincident pair.
Output:
None
Return Code:
None
Remarks/Usage:
This function only finds coincident elements that share the same nodes - not ones that may be coincident
in physical location, but still have different nodes.
Example:
None
API-318 feCheckElemFixup

3.5.6.8 feCheckElemFixup

feCheckElemFixup
( elemSET )
Description:
This function checks and attempts to fix a set of elements to see if any of them are invalid.
Input:
The ID of a selection set that contains the IDs of the elements to
INT4 elemSET check. Alternatively, if you specify a negative value, this is simply
the ID of the single element to check.
Output:
None
Return Code:
None
Remarks/Usage:
This function is just like the fixup option in the Tools, Check, Distortion command. Checks include zero
length, twisted faces, inverted solids, and element/property mismatch.
Example:
None
feCheckElemDistortion API-319

3.5.6.9 feCheckElemDistortion

feCheckElemDistortion
( elemSET, doLIST, makeGROUP, chkASPECT, chkTAPER, chkANGLE, chkWARP,
chkALTTAPER, chkTET, chkJDet, chkComb, maxASPECT, maxTAPER, maxANGLE,
maxWARP, maxALTTAPER, maxTET, maxJDet, maxComb )
Description:
This function checks a set of elements to see if any of them are distorted.
Input:
The ID of a selection set that contains the IDs of the elements to
INT4 elemSET check. Alternatively, if you specify a negative value, this is simply
the ID of the single element to check.
If True, distorted elements are listed in the Messages and Lists win-
BOOL doLIST
dow.
BOOL makeGROUP If True, a group is made of the distorted elements.
BOOL chkASPECT If True, the aspect ratio check is performed.
BOOL chkTAPER If True, element taper is checked.
BOOL chkANGLE If True, the element internal angle check is performed.
BOOL chkWARP If True, the element warping check is performed.
BOOL chkALTTAPER If True, the alternate element taper check is performed.
BOOL chkTET If True, tetrahedral elements are checked for collapse.
BOOL chkJDet If True, checks element Jacobian
BOOL chkComb If True, checks for combined element distortion factor
REAL8 maxASPECT Limit for aspect ratio check.
REAL8 maxTAPER Limit for taper check.
REAL8 maxANGLE Limit for internal angle check.
REAL8 maxWARP Limit for warping check.
REAL8 maxALTTAPER Limit for alternate element taper check.
REAL8 maxTET Limit for tet collapse check.
REAL8 maxJDet Limit for Jacobian check
REAL8 maxComb Limit for Combined Element Distortion check
Output:
None
API-320 feCheckElemDistortion

feCheckElemDistortion
( elemSET, doLIST, makeGROUP, chkASPECT, chkTAPER, chkANGLE, chkWARP,
chkALTTAPER, chkTET, chkJDet, chkComb, maxASPECT, maxTAPER, maxANGLE,
maxWARP, maxALTTAPER, maxTET, maxJDet, maxComb )
Return Code:
Data in the limit values is outside the acceptable bounds.
FE_INVALID

Remarks/Usage:
This function is just like the Tools, Check, Distortion command. The checks performed and the limit
values are identical to that command.
Example:
None
feCheckElemDistortion2 API-321

3.5.6.10 feCheckElemDistortion2

feCheckElemDistortion2
( elemSET, doLIST, makeGROUP, chkASPECT, chkTAPER, chkANGLE, chkWARP,
chkALTTAPER, chkTET, chkJDet, chkComb, chkExpTime, maxASPECT, maxTAPER,
maxANGLE, maxWARP, maxALTTAPER, maxTET, maxJDet, maxComb, maxExpTime )
Description:
This function checks a set of elements to see if any of them are distorted.
Input:
The ID of a selection set that contains the IDs of the elements to
INT4 elemSET check. Alternatively, if you specify a negative value, this is simply
the ID of the single element to check.
If True, distorted elements are listed in the Messages and Lists win-
BOOL doLIST
dow.
BOOL makeGROUP If True, a group is made of the distorted elements.
BOOL chkASPECT If True, the aspect ratio check is performed.
BOOL chkTAPER If True, element taper is checked.
BOOL chkANGLE If True, the element internal angle check is performed.
BOOL chkWARP If True, the element warping check is performed.
BOOL chkALTTAPER If True, the alternate element taper check is performed.
BOOL chkTET If True, tetrahedral elements are checked for collapse.
BOOL chkJDet If True, checks element Jacobian
BOOL chkComb If True, checks for combined element distortion factor
BOOL chkExpTime If True, checks for Explicit Time Step factors
REAL8 maxASPECT Limit for aspect ratio check.
REAL8 maxTAPER Limit for taper check.
REAL8 maxANGLE Limit for internal angle check.
REAL8 maxWARP Limit for warping check.
REAL8 maxALTTAPER Limit for alternate element taper check.
REAL8 maxTET Limit for tet collapse check.
REAL8 maxJDet Limit for Jacobian check
REAL8 maxComb Limit for Combined Element Distortion check
REAL8 maxExpTime Limit for Explicit Time Step check
API-322 feCheckElemDistortion2

feCheckElemDistortion2
( elemSET, doLIST, makeGROUP, chkASPECT, chkTAPER, chkANGLE, chkWARP,
chkALTTAPER, chkTET, chkJDet, chkComb, chkExpTime, maxASPECT, maxTAPER,
maxANGLE, maxWARP, maxALTTAPER, maxTET, maxJDet, maxComb, maxExpTime )
Output:
None
Return Code:
Data in the limit values is outside the acceptable bounds.
FE_INVALID

Remarks/Usage:
This function is just like the Tools, Check, Distortion command. The checks performed and the limit
values are identical to that command.
Example:
None
feGetElemDistortion API-323

3.5.6.11 feGetElemDistortion

feGetElemDistortion
( elemID, valASPECT, valTAPER, valANGLE, valWARP, valNasWARP, valALTTAPER,
valTET, valJDet, valComb )
Description:
This function checks an element and returns the distortion values.
Input:
INT4 elemID The ID of the element to check for distortion.
Output:
REAL8 valASPECT Result of aspect ratio check.
REAL8 valTAPER Result of taper check.
REAL8 valANGLE Result of internal angle check.
REAL8 valWARP Result of warping check.
REAL8 valNasWARP Result of Nastran warping check
REAL8 valALTTAPER Result of alternate element taper check.
REAL8 valTET Result of tet collapse check.
REAL8 valJDet Result of Jacobian check.
REAL8 valComb Results of Combined Quality check
Return Code:
None
Remarks/Usage:
This function is just like the Tools, Check, Distortion command. The checks performed and the returned
values are identical to that command.
Example:
None
API-324 feGetElemDistortion2

3.5.6.12 feGetElemDistortion2

feGetElemDistortion2
( elemID, valASPECT, valTAPER, valANGLE, valWARP, valNasWARP, valALTTAPER,
valTET, valJDet, valComb, valExpTime )
Description:
This function checks an element and returns the distortion values.
Input:
INT4 elemID The ID of the element to check for distortion.
Output:
REAL8 valASPECT Result of aspect ratio check.
REAL8 valTAPER Result of taper check.
REAL8 valANGLE Result of internal angle check.
REAL8 valWARP Result of warping check.
REAL8 valNasWARP Result of Nastran warping check
REAL8 valALTTAPER Result of alternate element taper check.
REAL8 valTET Result of tet collapse check.
REAL8 valJDet Result of Jacobian check.
REAL8 valComb Results of Combined Quality check
REAL8 valExpTime Results of Explicit Time Step check
Return Code:
None
Remarks/Usage:
This function is just like the Tools, Check, Distortion command. The checks performed and the returned
values are identical to that command.
Example:
None
feCheckElemNormal API-325

3.5.6.13 feCheckElemNormal

feCheckElemNormal
( elemSET, csysID, doLIST, swapNORMAL, autoNORMAL, manNORMAL )
Description:
This function checks and optionally reverses element normals.
Input:
The ID of a selection set that contains the IDs of the elements to
INT4 elemSET check. Alternatively, if you specify a negative value, this is simply
the ID of the single element to check.
The coordinate system in which the check is done. If you are specify-
INT4 csysID
ing manNORMAL, it must be in this coordinate system.
If True, swapped elements are listed in the Messages and Lists win-
BOOL doLIST
dow.
If True, elements with normals that are opposite to the desired nor-
BOOL swapNORMAL
mal are reversed.
If True, the desired normal direction is automatically determined
BOOL autoNORMAL from the first selected element. If False, the normal must be specified
in manNORMAL.
A unit vector, with coordinates in CSys csysID, in the direction of
REAL8 manNORMAL[0..2]
the desired normal. Only used if autoNORMAL=False.
Output:
None
Return Code:
One of the arrays has dimensions which are too small to be used
FE_TOO_SMALL
where you specified it.
FE_NOT_AVAILABLE One of the arrays does not contain the required data.
FE_INVALID Data in the input arrays is outside the acceptable bounds.
Data in the input arrays is not of the correct type (e.g. REAL8 or
FE_BAD_TYPE
INT4)
Remarks/Usage:
Only works with planar elements.
Example:
None
API-326 feCheckConstraints

3.5.6.14 feCheckConstraints

feCheckConstraints
( doPERM, doLIST, bcSUM, bcSEP )
Description:
This function checks constraints in the active constraint set.
Input:
BOOL doPERM If True, permanent nodal constraints are included in the check.
BOOL doLIST If True, a summary report is listed.
Output:
The sum of the constraint values in each of the six degrees of free-
REAL8 bcSUM[0..5]
dom.
The max separation of constraints. [0],[1],[2] are the max XYZ sepa-
REAL8 bcSUM[0..8] ration of the X constraints. [3],[4],[5] are the XYZ separation of the
Y constraints, [6],[7],[8] are the XYZ separation of the Z constraints.
Return Code:
One of the arrays has dimensions which are too small to be used
FE_TOO_SMALL
where you specified it.
FE_NOT_AVAILABLE One of the arrays does not contain the required data.
FE_INVALID Data in the input arrays is outside the acceptable bounds.
Data in the input arrays is not of the correct type (e.g. REAL8 or
FE_BAD_TYPE
INT4).
Remarks/Usage:
Automatically uses whichever constraint set is active.
Example:
None
feCheckCoincidentLoads API-327

3.5.6.15 feCheckCoincidentLoads

feCheckCoincidentLoads
( loadSET, mergeLOADS )
Description:
This function checks loads from a group of load sets to see if similar loads are applied to the same
geometry or mesh.
Input:
The ID of a selection set that contains the IDs of the load sets to
INT4 loadSET check. Alternatively, if you specify a negative value, this is simply
the ID of the single load set to check.
If True and coincident loads are found, an attempt is made to merge/
BOOL mergeLOADS
combine them.
Output:
None
Return Code:
None
Remarks/Usage:
Unlike the Tools, Check, Coincident Loads command, this command does not give you the opportunity
to selectively merge individual types of loads - either all types, or no types, are merged.
Example:
None
API-328 feCheckSumForces

3.5.6.16 feCheckSumForces

feCheckSumForces
( expandGEOM, doLIST, useSETS, nodeSET, elemSET, basePOINT, csysID, summed-
FORCES )
Description:
This function checks loads from the active load set and sums the forces around a specific location. This
function is obsolete and has been superseded by feCheckSumForces2.
Input:
If True, geometric loads are expanded before the check. If not,
BOOL expandGEOM
nonexpanded geometric loads will be ignored.
BOOL doLIST If True, a summary report is written.
If True, nodeSET and elemSET must specify the nodes and ele-
BOOL useSETS ments to consider in the summation. If False, the full model is
used.
The ID of a selection set that contains the IDs of the nodes to
INT4 nodeSET check. Alternatively, if you specify a negative value, this is simply
the ID of the single node to check. Only used if useSETS=True.
The ID of a selection set that contains the IDs of the elements to
INT4 elemSET check. Alternatively, if you specify a negative value, this is simply
the ID of the single element to check. Only used if useSETS=True.
The coordinates of the location to sum about. Must be in global
REAL8 basePOINT[0..2]
rectangular coordinates.
The coordinate system used to report and returned the summed
INT4 csysID
loads.
Output:
The results of the force summation. Entries [0..5] are the nodal
force summations, [6..8] contain the elemental force summation,
[9..14] contain the total summation, [15-17] contain body transla-
REAL8 summedFORCES[0..26]
tional acceleration, [18-20] contain body varying translational
acceleration, [21-23] contain body rotational acceleration, [24-26]
contain body rotational velocity.
Return Code:
None
Remarks/Usage:
Uses the loads in the active load set.
Example:
feCheckSumForces API-329

feCheckSumForces
( expandGEOM, doLIST, useSETS, nodeSET, elemSET, basePOINT, csysID, summed-
FORCES )
None
API-330 feCheckSumForces2

3.5.6.17 feCheckSumForces2

feCheckSumForces2
( useBodyLoad, expandGEOM, doLIST, useSETS, nodeSET, elemSET, loaddefSET, base-
POINT, csysID, summedFORCES )
Description:
This function checks loads from the active load set and sums the forces around a specific location.
Input:
If True, body loads will be included in the calculation. If not, body
BOOL useBodyLoad
loads will be ignored
If True, geometric loads are expanded before the check. If not, non-
BOOL expandGEOM
expanded geometric loads will be ignored.
BOOL doLIST If True, a summary report is written.
If True, nodeSET and elemSET OR loaddefSET must specify the
nodes and elements OR load definitions to consider in the summa-
BOOL useSETS
tion. To use nodeSET and elemSET, set loaddefSET = 0, otherwise,
loaddefSET will be used. If False, the full model is used.
The ID of a selection set that contains the IDs of the nodes to check.
Alternatively, if you specify a negative value, this is simply the ID of
INT4 nodeSET
the single node to check. Only used if useSETS=True and loaddef-
SET = 0
The ID of a selection set that contains the IDs of the elements to
check. Alternatively, if you specify a negative value, this is simply
INT4 elemSET
the ID of the single element to check. Only used if useSETS=True
and loaddefSET = 0.
The ID of a selection set that contains the IDs of the load definitions
INT4 loaddefSET to check. Alternatively, if you specify a negative value, this is simply
the ID of the single load definition. Only used if useSETS=True.
The coordinates of the location to sum about. Must be in global rect-
REAL8 basePOINT[0..2]
angular coordinates.
INT4 csysID The coordinate system used to report and returned the summed loads.
Output:
The results of the force summation. Entries [0..5] are the nodal force
summations. [6..8] contain the elemental force summation. [9..14]
REAL8 summed- contain the total summation. [15-17] contain body translational
FORCES[0..26] acceleration. [18-20] contain body varying translational acceleration.
[21-23] contain body rotational acceleration. [24-26] contain body
rotational velocity.
Return Code:
feCheckSumForces2 API-331

feCheckSumForces2
( useBodyLoad, expandGEOM, doLIST, useSETS, nodeSET, elemSET, loaddefSET, base-
POINT, csysID, summedFORCES )
None
Remarks/Usage:
Uses the loads in the active load set.
Example:
None
API-332 feChartPaneGetDisplayed

3.5.7 Charting Pane


3.5.7.1 feChartPaneGetDisplayed

feChartPaneGetDisplayed
( void )
Description:
This function gets the ID of the chart object displayed in the charting pane
Input:
None
Output:
None
Return Code:
Returns a integer value corresponding to the displayed chart
>= 1: Chart ID
INT4
0: No active chart
-1: Chart pane is not visible
Remarks/Usage:
None
Example:
None
feChartPaneSetDisplayed API-333

3.5.7.2 feChartPaneSetDisplayed

feChartPaneSetDisplayed
( nChartID )
Description:
This function sets the displayed chart in the charting pane
Input:
INT4 nChartID ID of the chart object to display in the charting pane
Output:
None
Return Code:
FE_FAIL Charting pane is not displayed
FE_NOT_EXIST Provided chart ID does not exist
Remarks/Usage:
None
Example:
None
API-334

3.6 Geometry Methods


Geometry Methods include:
Section 3.6.1, "Lines"
Section 3.6.2, "Arcs"
Section 3.6.3, "Circles"
Section 3.6.4, "Splines"
Section 3.6.5, "Curves from Surfaces Methods"
Section 3.6.6, "Curve Modification Methods"
Section 3.6.7, "Boundaries"
Section 3.6.8, "Surfaces"
Section 3.6.9, "Midsurfaces"
Section 3.6.10, "Solids"
Section 3.6.11, "Geometry and Mesh Generation Methods"
Section 3.6.12, "Meshing Toolbox - Geometry Editing Tool Methods"
feLinePoints API-335

3.6.1 Lines
3.6.1.1 feLinePoints

feLinePoints
( ontoWorkplane, p1, p2, messages )
Description:
Creates a line between two coordinate locations.
Input:
If True, the coordinates specified are projected onto the workplane
BOOL ontoWorkplane
before the line is created.
REAL8 p1[0..2] Coordinates at the first end of the line.
REAL8 p2[0..2] Coordinates at the second end of the line.
If True, messages are written to the Message and Lists window as the
BOOL messages
curve is created.
Output:
None
Return Code:
FE_FAIL Could not create the line.
Remarks/Usage:
None
Example:
None
API-336 feLineHorzVert

3.6.1.2 feLineHorzVert

feLineHorzVert
( horizontal, p1, length, messages )
Description:
Creates a horizontal or vertical line in the workplane.
Input:
If True, the line will be horizontal (workplane X axis). If False, the
BOOL horizontal
line will be vertical (workplane Y axis).
Coordinates that will be projected onto the workplane at the center of
REAL8 p1[0..2]
the line.
REAL8 length The overall length of the line.
If True, messages are written to the Messages and Lists window as
BOOL messages
the curve is created.
Output:
None
Return Code:
FE_FAIL Could not create the line.
Remarks/Usage:
None
Example:
None
feLineAtAngle API-337

3.6.1.3 feLineAtAngle

feLineAtAngle
( angle, curveID, origin, side, messages )
Description:
Creates a line at an angle to the workplane, or another curve.
Input:
REAL8 angle The angle from the workplane X axis, or the selected curve.
The ID of the curve used to measure the angle. Set to 0 if you want to
INT4 curveID
specify the angle from the workplane X axis (toward the Y axis).
The coordinates at the start of the line. These are projected onto the
REAL8 origin[0..2] curve to find location where the tangent vector is determined and at
which the angle is measured.
A location on the side of the curve where the line will be drawn
toward. Not used if you are measuring from the workplane X axis.
REAL8 side[0..2]
The line does not necessarily pass through this point; it is just used to
determine which direction to go from the origin location.
If True, messages are written to the Messages and Lists window as
BOOL messages
the curve is created.
Output:
None
Return Code:
FE_FAIL Could not create the line - probably the curve does not exist.
Remarks/Usage:
None
Example:
None
API-338 feLineParallel

3.6.1.4 feLineParallel

feLineParallel
( offset, curveID, side, messages )
Description:
Creates a line parallel to another in the workplane.
Input:
The perpendicular distance from the selected curve used to locate the
REAL8 offset
new curve.
INT4 curveID The ID of the reference curve.
A location on the side of the curve where the line will be drawn. The
REAL8 side[0..2] line does not necessarily pass through this point; it is just used to
determine which direction to go from the reference curve location.
If True, messages are written to the Messages and Lists window as
BOOL messages
the curve is created.
Output:
None
Return Code:
Could not create the line - either the curve does not exist or it is not
FE_FAIL
of the correct type.
Remarks/Usage:
None
Example:
None
feLineMidline API-339

3.6.1.5 feLineMidline

feLineMidline
( curve1, curve2, messages )
Description:
Creates a line that is midway between two other lines.
Input:
INT4 curve1
The two reference curves used to determine the midline location.
INT4 curve2
If True, messages are written to the Messages and Lists window as
BOOL messages
the curve is created.
Output:
None
Return Code:
Could not create the line - either one of the curves does not exist or is
FE_FAIL
not of the correct type.
Remarks/Usage:
None
Example:
None
API-340 feLinePointTangent

3.6.1.6 feLinePointTangent

feLinePointTangent
( curveID, origin, side, messages )
Description:
Creates a line through an origin that is tangent to a selected curve.
Input:
INT4 curveID The ID of the curve that the line will be tangent to.
The location at the start of the line. The line will pass through this
REAL8 origin[0..2]
location and be tangent to the curve.
A location on the side of the curve where the line will be tangent.
REAL8 side[0..2] The line does not normally pass through this point; it is just used to
determine which tangent to select.
If True, messages are written to the Messages and Lists window as
BOOL messages
the curve is created.
Output:
None
Return Code:
Could not create the line - either the curve does not exist or there is
FE_FAIL
no tangent that could be computed.
Remarks/Usage:
None
Example:
None
feLine2Tangent API-341

3.6.1.7 feLine2Tangent

feLine2Tangent
( curve1, curve2, side, messages )
Description:
Creates a line that is tangent to two selected curves.
Input:
INT4 curve1
The IDs of the curves that the line will be tangent to.
INT4 curve2
A location on the side of the first curve where the line will be tan-
REAL8 side[0..2] gent. The line does not normally pass through this point; it is just
used to determine which tangent to select.
If True, messages are written to the Messages and Lists window as
BOOL messages
the curve is created.
Output:
None
Return Code:
Could not create the line - either one of the curves does not exist or
FE_FAIL
there is no tangent that could be computed.
Remarks/Usage:
None
Example:
None
API-342 feLineRectangle

3.6.1.8 feLineRectangle

feLineRectangle
( p1, p2, messages )
Description:
Creates four lines that form a rectangle in the workplane between two diagonal locations.
Input:
REAL8 p1[0..2] The diagonal locations that define the corners of the rectangle. These
REAL8 p2[0..2] locations are projected onto the workplane.

If True, messages are written to the Messages and Lists window as


BOOL messages
the curve is created.
Output:
None
Return Code:
FE_FAIL Unable to create the curves.
Remarks/Usage:
None
Example:
None
feLinePointIDs API-343

3.6.1.9 feLinePointIDs

feLinePointIDs
( p1, p2, messages )
Description:
Creates a line that joins two points.
Input:
INT4 p1 The ID of the point at the start of the line.
INT4 p2 The ID of the point at the end of the line.
If True, messages are written to the Messages and Lists window as
BOOL messages
the curve is created.
Output:
None
Return Code:
FE_FAIL Unable to create the line - probably one of the points does not exist.
Remarks/Usage:
None
Example:
None
API-344 feArcCenterStartEnd

3.6.2 Arcs
3.6.2.1 feArcCenterStartEnd

feArcCenterStartEnd
( center, start, end, messages )
Description:
Creates an arc in the workplane by specifying the center of the arc, a starting location, and an ending
location.
Input:
REAL8 center[0..2] The locations used to define the arc. The center is at the center of the
arc. start is a point on the perimeter at the beginning of the arc, and
REAL8 start[0..2]
defines the radius. end is not necessarily on the arc, but specifies the
REAL8 end[0..2] ending location.

If True, messages are written to the Messages and Lists window as


BOOL messages
the curve is created.
Output:
None
Return Code:
FE_FAIL Unable to create the arc.
Remarks/Usage:
None
Example:
None
feArcRadiusStartEnd API-345

3.6.2.2 feArcRadiusStartEnd

feArcRadiusStartEnd
( radius, start, end, messages )
Description:
Creates an arc in the workplane by specifying the radius of the arc, a starting location and an ending
location.
Input:
REAL8 radius The radius of the arc.
REAL8 start[0..2] The locations used to define the arc. start is a point on the perimeter
at the beginning of the arc, end is on the perimeter at the end of the
REAL8 end[0..2] arc.
If True, messages are written to the Messages and Lists window as
BOOL messages
the curve is created.
Output:
None
Return Code:
Unable to create the arc - radius could be too small for locations
FE_FAIL
specified.
Remarks/Usage:
None
Example:
None
API-346 feArcAngleStartEnd

3.6.2.3 feArcAngleStartEnd

feArcAngleStartEnd
( angle, start, end, messages )
Description:
Creates an arc in the workplane by specifying the included angle of the arc, a starting location, and an
ending location.
Input:
REAL8 angle The included angle swept out by the arc.
REAL8 start[0..2] The locations used to define the arc. start is a point on the perimeter
at the beginning of the arc, end is on the perimeter at the end of the
REAL8 end[0..2] arc.
If True, messages are written to the Messages and Lists window as
BOOL messages
the curve is created.
Output:
None
Return Code:
FE_FAIL Unable to create the arc - angle may not be valid.
Remarks/Usage:
None
Example:
None
feArcAngleCenterStart API-347

3.6.2.4 feArcAngleCenterStart

feArcAngleCenterStart
( angle, center, start, messages )
Description:
Creates an arc in the workplane by specifying the included angle of the arc, a location at the center, and
a location on the perimeter.
Input:
REAL8 angle The included angle swept out by the arc.
REAL8 center[0..2] The locations used to define the arc. center is at the center of the arc.
start is a point on the perimeter and is used with center to determine
REAL8 start[0..2] the radius.
If True, messages are written to the Messages and Lists window as
BOOL messages
the curve is created.
Output:
None
Return Code:
FE_FAIL Unable to create the arc - angle may not be valid.
Remarks/Usage:
None
Example:
None
API-348 feArcChordCenterStart

3.6.2.5 feArcChordCenterStart

feArcChordCenterStart
( length, center, start, messages )
Description:
Creates an arc in the workplane by specifying the chord length of the arc, a location at the center, and a
location on the perimeter.
Input:
REAL8 length The chord length of the arc, used to determine the included angle.
REAL8 center[0..2] The locations used to define the arc. center is at the center of the arc.
start is a point on the perimeter and is used with center to determine
REAL8 start[0..2] the radius.
If True, messages are written to the Messages and Lists window as
BOOL messages
the curve is created.
Output:
None
Return Code:
FE_FAIL Unable to create the arc.
Remarks/Usage:
None
Example:
None
feArcPoints API-349

3.6.2.6 feArcPoints

feArcPoints
( start, mid, end, messages )
Description:
Creates a 3D arc in space, through the three points.
Input:
REAL8 start[0..2]
The three points on the arc. The arc goes from start, toward mid and
REAL8 mid[0..2]
stops at end.
REAL8 end[0..2]
If True, messages are written to the Messages and Lists window as
BOOL messages
the curve is created.
Output:
None
Return Code:
FE_FAIL Unable to create the arc - points may be colinear.
Remarks/Usage:
None
Example:
None
API-350 feArcCenterPoints

3.6.2.7 feArcCenterPoints

feArcCenterPoints
( center, start, mid, end, messages )
Description:
Creates a 3D arc in space, about a center and defined by three additional points.
Input:
REAL8 center[0..2] The location at the center of the arc.
The location at the start of the arc. This, along with center, determine
REAL8 start[0..2]
the radius of the arc.
A location used to determine the direction of the arc from start - it
REAL8 mid[0..2]
does not necessarily lie on the arc.
A location used to determine the ending angle of the arc - it does not
REAL8 end[0..2]
necessarily lie on the arc.
If True, messages are written to the Messages and Lists window as
BOOL messages
the curve is created.
Output:
None
Return Code:
FE_FAIL Unable to create the arc - points may be colinear or invalid.
Remarks/Usage:
None
Example:
None
feArcTangentStartEnd API-351

3.6.2.8 feArcTangentStartEnd

feArcTangentStartEnd
( tangent, start, end, messages )
Description:
Creates a 3D arc in space, from a point with a specified starting tangent.
Input:
REAL8 tangent[0..2] A vector in the direction of the starting tangent of the arc.
REAL8 start[0..2] The location at the start of the arc.
REAL8 end[0..2] The location at the end of the arc.
If True, messages are written to the Messages and Lists window as
BOOL messages
the curve is created.
Output:
None
Return Code:
FE_FAIL Unable to create the arc.
Remarks/Usage:
None
Example:
None
API-352 feCircleRadius

3.6.3 Circles
3.6.3.1 feCircleRadius

feCircleRadius
( center, start, messages )
Description:
Creates a circle in the workplane defined by a location at the center and one on the perimeter.
Input:
REAL8 center[0..2] The location at the center of the circle.
REAL8 start[0..2] A location on the perimeter of the circle.
If True, messages are written to the Messages and Lists window as
BOOL messages
the curve is created.
Output:
None
Return Code:
FE_FAIL Unable to create the circle.
Remarks/Usage:
None
Example:
None
feCircleDiameter API-353

3.6.3.2 feCircleDiameter

feCircleDiameter
( dia1, dia2, messages )
Description:
Creates a circle in the workplane defined by two locations at the opposite ends of a diameter.
Input:
REAL8 dia1[0..2]
The locations at the opposite ends of the diameter of the circle.
REAL8 dia2[0..2]
If True, messages are written to the Messages and Lists window as
BOOL messages
the curve is created.
Output:
None
Return Code:
FE_FAIL Unable to create the circle.
Remarks/Usage:
None
Example:
None
API-354 feCircleCenter

3.6.3.3 feCircleCenter

feCircleCenter
( radius, center, messages )
Description:
Creates a circle in the workplane defined a center location and the radius.
Input:
REAL8 radius The radius of the circle.s
REAL8 center[0..2] The location of the center of the circle.
If True, messages are written to the Messages and Lists window as
BOOL messages
the curve is created.
Output:
None
Return Code:
FE_FAIL Unable to create the circle.
Remarks/Usage:
None
Example:
None
feCircle2Point API-355

3.6.3.4 feCircle2Point

feCircle2Point
( radius, pt1, pt2, messages )
Description:
Creates a circle in the workplane defined by two points on the circle, and the radius.
Input:
The radius of the circle. Specify a positive number to go in a counter-
clockwise direction from pt1 to pt2. Specify a negative number
REAL8 radius
to go in a clockwise direction. This is used to pick which of the two
possible circles through the two points that you are trying to define.
REAL8 pt1[0..2]
The locations on the circle.
REAL8 pt2[0..2]
If True, messages are written to the Messages and Lists window as
BOOL messages
the curve is created.
Output:
None
Return Code:
FE_FAIL Unable to create the circle.
Remarks/Usage:
None
Example:
None
API-356 feCircleConcentric

3.6.3.5 feCircleConcentric

feCircleConcentric
( radius, curveID, messages )
Description:
Creates a circle in the workplane, with a specified radius, that is concentric with another arc or circle.
Input:
REAL8 radius The radius of the circle.
INT4 curveID The ID of another arc or circle - used to define the center.
If True, messages are written to the Messages and Lists window as
BOOL messages
the curve is created.
Output:
None
Return Code:
FE_FAIL Unable to create the circle.
Remarks/Usage:
None
Example:
None
feCircle3Point API-357

3.6.3.6 feCircle3Point

feCircle3Point
( pt1, pt2, pt3, messages )
Description:
Creates a circle, in 3D space, through three points.
Input:
REAL8 pt1[0..2]
REAL8 pt2[0..2] The locations on the circle.
REAL8 pt3[0..2]
If True, messages are written to the Messages and Lists window as
BOOL messages
the curve is created.
Output:
None
Return Code:
FE_FAIL Unable to create the circle.
Remarks/Usage:
None
Example:
None
API-358 feCircleCenterPoints

3.6.3.7 feCircleCenterPoints

feCircleCenterPoints
( center, pt1, pt2, messages )
Description:
Creates a circle, in 3D space, using a center location, and specified by two other points.
Input:
REAL8 center[0..2] The center of the circle.
REAL8 pt1[0..2] Two additional points on the circle. pt1 is used to define the radius of
the circle. Both points (and the center) are used to define the plane of
REAL8 pt2[0..2] the circle.
If True, messages are written to the Messages and Lists window as
BOOL messages
the curve is created.
Output:
None
Return Code:
FE_FAIL Unable to create the circle.
Remarks/Usage:
None
Example:
None
feCircleCenterTangent API-359

3.6.3.8 feCircleCenterTangent

feCircleCenterTangent
( curveID, center, messages )
Description:
Creates a circle in the workplane that is tangent to a selected curve and uses the specified center.
Input:
INT4 curveID ID of the curve that this circle will be tangent to.
REAL8 center[0..2] The center of the circle.
If True, messages are written to the Messages and Lists window as
BOOL messages
the curve is created.
Output:
None
Return Code:
FE_FAIL Unable to create the circle.
Remarks/Usage:
None
Example:
None
API-360 feCircleTangentTangent

3.6.3.9 feCircleTangentTangent

feCircleTangentTangent
( curve1, curve2, radius, nearloc, messages )
Description:
Creates a circle in the workplane that is tangent to two other curves, with a specified radius.
Input:
INT4 curve1
IDs of the curves that this circle will be tangent to.
INT4 curve2
REAL8 radius The radius of the circle being created.
A location near the tangency. This is used to select which tangency to
REAL8 nearloc[0..2] use when there are several possible circles that meet the tangency
and radius criteria.
If True, messages are written to the Messages and Lists window as
BOOL messages
the curve is created.
Output:
None
Return Code:
FE_FAIL Unable to create the circle.
Remarks/Usage:
None
Example:
None
feSplinePoints API-361

3.6.4 Splines
3.6.4.1 feSplinePoints

feSplinePoints
( project, controlpoints, count, xyz, messages )
Description:
Creates a spline using the specified points.
Input:
Set to True if you want to project the xyz coordinates onto the work-
BOOL project
plane before creating the spline.
Set to True if xys contains coordinates of the spline control points.
BOOL controlpoints Set to False if it contains coordinates of points that actually lie on the
spline.
The number of coordinates specified in xyz. Count must be at least 4,
INT4 count
and can be no larger than 109.
The coordinates of the locations used to define the spline. This array
REAL8 xyz[0..3*count-1]
contains 3 * count entries stored as: x1,y1,z1,x2,y2,z2...xN,yN,zN.
If True, messages are written to the Messages and Lists window as
BOOL messages
the curve is created.
Output:
None
Return Code:
FE_FAIL Unable to create the spline.
Remarks/Usage:
None
Example:
API-362 feSplinePoints

feSplinePoints
( project, controlpoints, count, xyz, messages )
This is a sample program to create a spline through 6 points.

Sub Main

Dim App As femap.model
Set App = GetObject(, "femap.model")

Dim x(18) As Double
Dim v As Variant
Dim rc As Integer

x(0) = 0#
x(1) = 0#
x(2) = 0#
x(3) = 1#
x(4) = 0#
x(5) = 0
x(6) = 1
x(7) = 1
x(8) = 0
x(9) = 2
x(10) = 1
x(11) = 0
x(12) = 2
x(13) = 0
x(14) = 0
x(15) = 2.5
x(16) = 1
x(17) = 1
v = x

rc = App.feSplinePoints(False, False, 6, v, True)
App.feViewRegenerate(0)

End Sub
feSplineTangent API-363

3.6.4.2 feSplineTangent

feSplineTangent
( x1, v1, x2, v2, messages )
Description:
Creates a spline using the tangent vectors at each end.
Input:
REAL8 x1[0..2] The coordinates of the start of the spline.
REAL8 v1[0..2] The components of the starting tangent of the spline.
REAL8 x2[0..2] The coordinates of the ending location of the spline.
REAL8 v2[0..2] The components of the ending tangent of the spline.
If True, messages are written to the Messages and Lists window as
BOOL messages
the curve is created.
Output:
None
Return Code:
FE_FAIL Unable to create the spline.
Remarks/Usage:
None
Example:
None
API-364 feSplineEllipse

3.6.4.3 feSplineEllipse

feSplineEllipse
( center, vector, a, b, messages )
Description:
Creates splines in the workplane that form an ellipse.
Input:
REAL8 center[0..2] The coordinates at the center of the ellipse.
REAL8 vector[0..2] The components of the vector along one axis of the ellipse.
REAL8 a The radius of the ellipse along the vector.
REAL8 b The radius of the ellipse perpendicular to the vector.
If True, messages are written to the Messages and Lists window as
BOOL messages
the curve is created.
Output:
None
Return Code:
FE_FAIL Unable to create the spline.
Remarks/Usage:
None
Example:
None
feSplineParabola API-365

3.6.4.4 feSplineParabola

feSplineParabola
( center, focus, trim, messages )
Description:
Creates a spline in the workplane in the shape of a parabola.
Input:
REAL8 center[0..2] The coordinates at the center of the parabola.
REAL8 focus[0..2] The coordinates of the focus of the parabola.
REAL8 trim[0..2] The coordinates used to trim the outer end of the parabola.
If True, messages are written to the Messages and Lists window as
BOOL messages
the curve is created.
Output:
None
Return Code:
FE_FAIL Unable to create the spline.
Remarks/Usage:
None
Example:
None
API-366 feSplineHyperbola

3.6.4.5 feSplineHyperbola

feSplineHyperbola
( center, towardfocus, angle, height, trim, messages )
Description:
Creates a spline in the workplane in the shape of a hyperbola.
Input:
REAL8 center[0..2] The coordinates at the center of the hyperbola.
The components of a vector in the direction pointing toward the
REAL8 towardfocus[0..2]
focus from the center.
REAL8 angle The asymptote angle.
REAL8 height The vertex height.
REAL8 trim[0..2] The coordinates used to trim the outer end of the hyperbola.
If True, messages are written to the Messages and Lists window as
BOOL messages
the curve is created.
Output:
None
Return Code:
FE_FAIL Unable to create the spline.
Remarks/Usage:
None
Example:
None
feSplineBlend API-367

3.6.4.6 feSplineBlend

feSplineBlend
( curve1, near1, curve2, near2, factor, messages )
Description:
Creates a spline in that blends the ends of two curves.
Input:
INT4 curve1 The ID of the first curve.
REAL8 near1[0..2] Coordinates near the desired end of curve1.
INT4 curve2 The ID of the second curve.
REAL8 near2[0..2] Coordinates near the desired end of curve2.
The blend factor - adjusts the curvature of the spline between the
REAL8 factor
curves.
If True, messages are written to the Messages and Lists window as
BOOL messages
the curve is created.
Output:
None
Return Code:
FE_FAIL Unable to create the spline.
Remarks/Usage:
None
Example:
None
API-368 feCurveUpdateSurfaces

3.6.5 Curves from Surfaces Methods


3.6.5.1 feCurveUpdateSurfaces

feCurveUpdateSurfaces
( update, messages )
Description:
This method sets the flag that decides whether the Curves from Surfaces methods will update their
underlying surface.
Input:
Set to True to update/split the underlying surfaces as curves are pro-
BOOL update jected or created on the surfaces. If False, then the curves will be cre-
ated at the same locations, but the surfaces will remain unchanged.
If True, messages are written to the Messages and Lists window as
BOOL messages
the curve is created.
Output:
None
Return Code:
None
Remarks/Usage:
None
Example:
None
feCurveIntersectSolids API-369

3.6.5.2 feCurveIntersectSolids

feCurveIntersectSolids
( solid1, solid2 )
Description:
This method creates curves along the intersections of two solids. It can also be used to intersect two
solid surfaces.
Input:
INT4 solid1 The IDs of the two solids to intersect. These solids can be regular
solids, or sheet solids (solids with one or more surfaces, but no
INT4 solid2 enclosed volume).
Output:
None
Return Code:
FE_FAIL Unable to create the curves.
Remarks/Usage:
If feCurveUpdateSurfaces is True, the surfaces of the solids will be split at the intersection curves.
Example:
None
API-370 feCurveProjectOntoSolid

3.6.5.3 feCurveProjectOntoSolid

feCurveProjectOntoSolid
( projectNormal, along, solidID, curveSET, messages )
Description:
Creates curves by projecting one or more curves onto a solid.
Input:
If True, the projection is done to the closest location on the solid. If
BOOL projectNormal
False, the projection is along the along vector.
The components of the vector to project along. Ignored unless pro-
REAL8 along[0..2]
jectNormal is False.
INT4 solidID The ID of the solid to project onto.
The ID of the set of existing curves to project onto the solid. Specify
INT4 curveSET
as a negative value to project a single curve.
If True, messages are written to the Messages and Lists window as
BOOL messages
the curve is created.
Output:
None
Return Code:
FE_FAIL Unable to create the curves.
Remarks/Usage:
If feCurveUpdateSurfaces is True, the surfaces of the solids will be split at the projected curves.
Example:
None
feCurveProjectOntoSurfaces API-371

3.6.5.4 feCurveProjectOntoSurfaces

feCurveProjectOntoSurfaces
( projectNormal, along, surfSET, curveSET, messages )
Description:
Creates curves by projecting one or more curves onto one or more surfaces.
Input:
If True, the projection is done to the closest location on the surface.
BOOL projectNormal
If False, the projection is along the along vector.
The components of the vector to project along. Ignored unless pro-
REAL8 along[0..2]
jectNormal is False.
The ID of the set of existing surfaces to project onto. Specify as a
INT4 surfSET
negative value to project onto a single surface.
The ID of the set of existing curves to project onto the surfaces.
INT4 curveSET
Specify as a negative value to project a single curve.
If True, messages are written to the Messages and Lists window as
BOOL messages
the curve is created.
Output:
None
Return Code:
FE_FAIL Unable to create the curves.
Remarks/Usage:
If feCurveUpdateSurfaces is True, the surfaces will be split at the projected curves.
Example:
None
API-372 feCurveParametricOnSurface

3.6.5.5 feCurveParametricOnSurface

feCurveParametricOnSurface
( surfID, uDir, location, messages )
Description:
Creates a curve on a surface along one of the parametric directions of the surface.
Input:
INT4 surfID The ID of the surface used to define the curve.
If True, the curve will be along the surface U parametric direction. If
BOOL uDir
False, the V parametric direction will be used.
A location that the curve will pass through. This location is projected
REAL8 location[0..2] onto the surface and used to find the parametric value used to define
the curve.
If True, messages are written to the Messages and Lists window as
BOOL messages
the curve is created.
Output:
None
Return Code:
FE_FAIL Unable to create the curves.
Remarks/Usage:
If feCurveUpdateSurfaces is True, the surface will be split at the parametric curve.
Example:
None
feCurveSlice API-373

3.6.5.6 feCurveSlice

feCurveSlice
( solidID, planeBASE, planeNORMAL, planeX )
Description:
Creates curves by slicing a solid with a plane.
Input:
INT4 solidID The ID of the solid being sliced.
REAL8 planeBASE[0..2] Any location that lies on the plane used to slice the solid.
REAL8 planeNORMAL[0..2] The components of a vector that is normal to the plane.
The components of a reference vector that lies in the plane - must be
REAL8 planeX[0..2]
perpendicular to planeNORMAL.
Output:
None
Return Code:
FE_FAIL Unable to create the curves.
Remarks/Usage:
If feCurveUpdateSurfaces is True, the surfaces of the solid will be split at the slicing plane. This does
not slice the solid into two solids. It simply splits the surfaces.
Example:
None
API-374 feCurveOffsetCurveWasher

3.6.5.7 feCurveOffsetCurveWasher- obsolete

feCurveOffsetCurveWasher
( curveSET, faceID, nMode, bAutoSelect, bSaveSplit, bExtend, dOffset )
Description:
Creates curves by offsetting selected curves on a surface
Input:
INT4 curveSET The ID of the set of existing curves to create a washer or offset curve.
INT4 faceID The ID of the surface to offset the curves on.
INT4 nMode Offset Type: 0 = Curve, 1 = Washer
Offset Only: Flag to automatically offset the selected curves to all of
BOOL bAutoSelect
the surfaces connected to those curves
BOOL bSaveSplit Flag to keep split lines used when creating washer or offset curves.
BOOL bExtend Offset Only: Flag to extend offset curves to closest edge.
REAL8 dOffset Distance to offset curves.
Output:
None
Return Code:
FE_FAIL Unable to create the curves.
Remarks/Usage:

This function has been replaced by feCurveOffsetCurveWasher2( )


Example:
None
feCurveOffsetCurveWasher2 API-375

3.6.5.8 feCurveOffsetCurveWasher2

feCurveOffsetCurveWasher2
( curveSET, faceID, nMode, bAutoSelect, bSaveSplit, bExtend, dValue, nOffMode )
Description:
Creates curves by offsetting selected curves on a surface
Input:
INT4 curveSET The ID of the set of existing curves to create a washer or offset curve.
INT4 faceID The ID of the surface to offset the curves on.
INT4 nMode Offset Type: 0 = Curve, 1 = Washer
Offset Only: Flag to automatically offset the selected curves to all of
BOOL bAutoSelect
the surfaces connected to those curves
BOOL bSaveSplit Flag to keep split lines used when creating washer or offset curves.
BOOL bExtend Offset Only: Flag to extend offset curves to closest edge.
REAL8 dValue Distance to offset curves or washer factor
nMode=0 - nOffMode: 1 = Offset Distance
INT4 nOffMode
nMode=1 - nOffMode: 0 = Factor, 1 = Offset Distance
Output:
None
Return Code:
FE_FAIL Unable to create the curves.
Remarks/Usage:
None
Example:
None
API-376 feCurveSplitPointToPoint

3.6.5.9 feCurveSplitPointToPoint

feCurveSplitPointToPoint
( nPtA, nPtB )
Description:
Splits a surface between two selected points
Input:
INT4 nPtA
The two points to split the surface between
INT4 nPtB
Output:
None
Return Code:
FE_FAIL Unable to create the curves / split the surface.
Remarks/Usage:
Both points must be on the same surface.
Example:
None
feCurveSplitPointToEdge API-377

3.6.5.10 feCurveSplitPointToEdge

feCurveSplitPointToEdge
( nPtA, nCuID )
Description:
Splits a surface between a point and an edge
Input:
INT4 nPtA The points to split the surface from
INT4 nCuID The ID of the curve to split to
Output:
None
Return Code:
FE_FAIL Unable to create the curves / split the surface.
Remarks/Usage:
The surface is split from the point to the closest location on the curve. Both the point and the edge must
lie on the same surface.
Example:
None
API-378 feCurveSplitEdgeToEdge

3.6.5.11 feCurveSplitEdgeToEdge

feCurveSplitEdgeToEdge
( nLongEdge, nShortEdgeSet )
Description:
Splits a surface between a long edge and the endpoints of one or more selected other edges
Input:
INT4 nLongEdge The ID of the edge to be split
The ID of a Set that contains the IDs of the edges whose endpoints
will be used to split the long edge and associated surface. Alterna-
INT4 nShortEdgeSet
tively, specify a negative value to choose the ID of a single short
edge.
Output:
None
Return Code:
FE_FAIL Unable to create the curves / split the surface.
Remarks/Usage:
The surface is split from the endpoints of the selected edges to point to the closest location on the long
edge. All edges must lie on the same surface.
Example:
None
feCurvePad API-379

3.6.5.12 feCurvePad

feCurvePad
( curveSET, dValue, enPadOffsetType, enPadAlignment, bPadAddWasher, nPadAlign-
Curve, bSetupMappedMeshing, alignVEC )
Description:
Creates a rectangular Pad around a circular hole.
Input:
INT4 curveSET The ID of the set of existing curves to create a pad.
REAL8 dValue Factor or Offset distance for Pad creation.
enum zPadOffsetType
Type of offset value: FPAD_SCALE, FPAD_DIST
enPadOffsetType
enum zPadAlignment
Alignment type: FPAD_AUTO, FPAD_VECTOR, FPAD_CURVE
enPadAlignment
BOOL bPadAddWasher Flag to add washer around circular hole.
INT4 nPadAlignCurve ID of curve to align pad to.
BOOL bSetupMappedMeshing Flag to set up mapped meshing approaches and sizing.
The components of the vector to align pad. Ignored unless
REAL8 alignVEC[0..2]
enPadAlignment = FPAD_VECTOR.
Output:
None
Return Code:
FE_FAIL Unable to create the pad.
Remarks/Usage:
None
Example:
API-380 feCurvePad

feCurvePad
( curveSET, dValue, enPadOffsetType, enPadAlignment, bPadAddWasher, nPadAlign-
Curve, bSetupMappedMeshing, alignVEC )
Sub Main
Dim App As femap.model
Set App = feFemap()

Dim cSet As femap.Set


Set cSet = App.feSet
cSet.Select ( FT_CURVE , True, "Select Curves For Pad")

Dim dFact As Double


Dim aCuID As Long
Dim bMap As Boolean
Dim bWash As Boolean
Dim valign As Variant
Dim align(3) As Double

dFact = 1

align(0) = 1.0
align(1) = 0.0
align(2) = 1.0
valign = align
'aCuID = 1204

bMap = True
bWash = True

App.feCurvePad( cSet.ID, dFact, FPAD_SCALE, FPAD_AUTO, bWash,


aCuID, bMap, valign )

End Sub
feCurveTrim API-381

3.6.6 Curve Modification Methods


3.6.6.1 feCurveTrim

feCurveTrim
( curveID, trimID, nearLoc, extend )
Description:
Trims a curve to its intersection with another curve.
Input:
INT4 curveID The ID of the curve to be trimmed.
INT4 trimID The ID of the curve to use as the trimming boundary.
The coordinates, in global rectangular, of the location near which the
curve will be trimmed. This helps to resolve ambiguities of which
REAL8 nearLoc[0..2]
end of the curve to trim, and to choose between multiple intersec-
tions of the curves.
If True, the trim curve is considered infinite and intersections are
BOOL extend found anywhere along its length. If False, intersections must be
between the curve endpoints.
Output:
None
Return Code:
FE_FAIL Did not trim the curve - possibly there was no intersection.
Remarks/Usage:
None
Example:
None
API-382 feCurveExtend

3.6.6.2 feCurveExtend

feCurveExtend
( curveID, nearLoc )
Description:
Extends a curve to a specified location.
Input:
INT4 curveID The ID of the curve to be extended.
The coordinates, in global rectangular, of the location to which the
REAL8 nearLoc[0..2] curve will be extended. The location does not have to lie on the
extended curve; it is automatically projected as the curve is extended.
Output:
None
Return Code:
FE_FAIL Did not extend the curve.
Remarks/Usage:
None
Example:
None
feCurveBreak API-383

3.6.6.3 feCurveBreak

feCurveBreak
( curveID, nearLoc )
Description:
Breaks a curve at a specified location.
Input:
INT4 curveID The ID of the curve to be broken.
The coordinates, in global rectangular, of the location at which the
REAL8 nearLoc[0..2] curve will be broken. The location does not have to lie on the curve;
it is automatically projected to the break location.
Output:
None
Return Code:
FE_FAIL Did not break the curve.
Remarks/Usage:
None
Example:
None
API-384 feCurveJoin

3.6.6.4 feCurveJoin

feCurveJoin
( curve1, curve2, nearLoc, update1, update2 )
Description:
Extends or trims two curves to their intersection location.
Input:
INT4 curve1 The ID of the first curve to be joined.
INT4 curve2 The ID of the second curve to be joined.
The coordinates, in global rectangular, of the location near which the
curves will be joined. This helps to resolve ambiguities of which end
REAL8 nearLoc[0..2]
of the curves to trim/extend, and to choose between multiple inter-
sections of the curves.
If True, curve1 is extended or trimmed to the join location. If False,
BOOL update1
curve1 is left unchanged.
If True, curve2 is extended or trimmed to the join location. If False,
BOOL update2
curve2 is left unchanged.
Output:
None
Return Code:
FE_FAIL Did not join the curves - possibly there was no intersection.
Remarks/Usage:
Do not set update1=update2=False. In this case, nothing will be changed.
Example:
None
feCurveFillet API-385

3.6.6.5 feCurveFillet

feCurveFillet
( radius, curve1, curve2, nearLoc, update1, update2 )
Description:
Fillets the intersection of two curves.
Input:
REAL8 radius The fillet radius.
INT4 curve1 The ID of the first curve to be filleted.
INT4 curve2 The ID of the second curve to be filleted.
The coordinates, in global rectangular, of the location near which the
curves will be filleted. Specification of this location is very impor-
REAL8 nearLoc[0..2]
tant. It chooses the quadrant of the intersection that is going to be fil-
leted.
If True, curve1 is extended or trimmed to the fillet location. If False,
BOOL update1
curve1 is left unchanged.
If True, curve2 is extended or trimmed to the fillet location. If False,
BOOL update2
curve2 is left unchanged.
Output:
None
Return Code:
FE_FAIL Did not fillet the curves - possibly there was no intersection.
Remarks/Usage:
None
Example:
None
API-386 feCurveChamfer

3.6.6.6 feCurveChamfer

feCurveChamfer
( len1, len2, curve1, curve2, nearLoc, update1, update2 )
Description:
Chamfers the intersection of two curves.
Input:
REAL8 len1 The chamfer length along curve1.
REAL8 len2 The chamfer length along curve2.
INT4 curve1 The ID of the first curve to be chamfered.
INT4 curve2 The ID of the second curve to be chamfered.
The coordinates, in global rectangular, of the location near which the
curves will be chamfered. Specification of this location is very
REAL8 nearLoc[0..2]
important. It chooses the quadrant of the intersection that is going to
be chamfered.
If True, curve1 is extended or trimmed to the fillet location. If False,
BOOL update1
curve1 is left unchanged.
If True, curve2 is extended or trimmed to the fillet location. If False,
BOOL update2
curve2 is left unchanged.
Output:
None
Return Code:
FE_FAIL Did not chamfer the curves - possibly there was no intersection.
Remarks/Usage:
None
Example:
None
feBoundaryFromPoints API-387

3.6.7 Boundaries
3.6.7.1 feBoundaryFromPoints

feBoundaryFromPoints
( nCSys, nPoints, pXYZ, nBoundaryID )
Description:
Creates a boundary surface from a group of locations specified in order around the surface
Input:
The ID of a Coordinate System that the pXYZ coordinates are
INT4 nCSys
defined in. 0=Global Rectangular
INT4 nPoints The number of locations specified in the pXYZ array
The coordinates of the points used to define the boundary, specified
REAL8 pXYZ[0..3*nPoints-1] in the selected Coordinate System. The array must be stored as
[x0,y0,z0,x1,y1,z1,...xN,yN,zN]
Output:
INT4 nBoundaryID The ID of the boundary that is created.
Return Code:
Unable to create the boundary - either points and curves failed to be
FE_FAIL
created or the loop is not connected.
Remarks/Usage:
This method creates points at the locations specified, and lines between them to form a loop. The points
must define a single loop. If you need to create a boundary with multiple loops (holes), then you must
use feBoundaryFromCurves. The ID of the boundary created will use the next available surface ID.
Example:
None
API-388 feBoundaryFromCurves

3.6.7.2 feBoundaryFromCurves

feBoundaryFromCurves
( setID )
Description:
Creates a boundary surface from a group of connected curves.
Input:
The ID of a set that contains a list of Curve IDs used to define the
INT4 setID boundary. Alternatively, if you specify a negative value, this is sim-
ply the ID of the single curve to write (which must be closed).
Output:
None
Return Code:
Unable to create the boundary - either curves do not exist, or are not
FE_FAIL
connected.
Remarks/Usage:
The ID of the boundary created will use the next available surface ID. The curves selected must form
one or more closed loops. If there are multiple loops, there must be one outer loop, and one or more
internal loops which are used as holes. Loops may not be nested inside holes.
Example:
This function creates a boundary from four curves.
Sub Main
Dim App As femap.model
Set App = GetObject(, "femap.model")

Dim s As Object
Set s = femap.feSet()
Dim rc As Integer
startID = 1
stopID = 4
IDincrement = 1

rc = s.AddRange(startID, stopID, IDincrement)
rc = femap.feBoundaryFromCurves(s.Id)

App.feViewRegenerate(0)
End Sub
feBoundaryFromSurfaces API-389

3.6.7.3 feBoundaryFromSurfaces

feBoundaryFromSurfaces
( surfaceSET )
Description:
Creates a boundary surface from a group of adjacent surfaces on a solid.
Input:
The ID of a set that contains a list of Surface IDs used to define the
INT4 surfaceSET boundary. Alternatively, if you specify a negative value, this is sim-
ply the ID of the single surface to use.
Output:
None
Return Code:
Unable to create the boundary - either surfaces do not exist, or are
FE_FAIL
not adjacent.
Remarks/Usage:
The ID of the boundary created will use the next available surface ID.
Example:
This function creates a boundary from two surfaces.

Sub Main
Dim femap As femap.model
Set femap = GetObject(, "femap.model")

Dim s As Object
Set s = femap.feSet()
Dim rc As Integer
surf1 = 14
surf2 = 17

rc = s.Add(surf1)
rc = s.Add(surf2)
rc = femap.feBoundaryFromSurfaces(s.ID)

App.feViewRegenerate(0)
End Sub
API-390 feBoundaryAddSurfaces

3.6.7.4 feBoundaryAddSurfaces

feBoundaryAddSurfaces
( nBoundaryID, surfaceSET, bAddToExisting )
Description:
Adds surfaces to an already defined multi-surface boundary
Input:
INT4 nBoundaryID The ID of the boundary to update
The ID of a set that contains a list of Surface IDs used to define the
INT4 surfaceSET boundary. Alternatively, if you specify a negative value, this is sim-
ply the ID of the single surface to use.
BOOL bAddToExisting Set to True, to add the new surfaces into the existing boundary.
Output:
None
Return Code:
Unable to create the boundary - either surfaces do not exist, or are
FE_FAIL
not adjacent.
Remarks/Usage:
The ID of the boundary created will use the next available surface ID.
Example:
This function creates a boundary from two surfaces.

Sub Main
Dim femap As femap.model
Set femap = GetObject(, "femap.model")

Dim s As Object
Set s = femap.feSet()
Dim rc As Integer
surf1 = 14
surf2 = 17

rc = s.Add(surf1)
rc = s.Add(surf2)
rc = femap.feBoundaryFromSurfaces(s.ID)

App.feViewRegenerate(0)
End Sub
feBoundaryUpdateSurfaces API-391

3.6.7.5 feBoundaryUpdateSurfaces

feBoundaryUpdateSurfaces
( boundaryID )
Description:
Updates a boundary that was defined from surfaces, when the underlying surfaces have changed.
Input:
INT4 boundaryID The ID of the boundary surface to update.
Output:
None
Return Code:
Unable to update the boundary - possibly the original definition is no
FE_FAIL
longer valid.
Remarks/Usage:
None
Example:
None
API-392 feSurfaceCorners

3.6.8 Surfaces
3.6.8.1 feSurfaceCorners

feSurfaceCorners
( fourCorners, c1, c2, c3, c4 )
Description:
Creates a surface defined by three or four corner locations.
Input:
Set to True to define a surface from four corners, or False to define a
BOOL fourCorners
three-corner surface.
REAL8 c1[0..2]
REAL8 c2[0..2] The corner locations. These locations should be specified in global
coordinates, and must be specified in a continuous loop around the
REAL8 c3[0..2] surface.
REAL8 c4[0..2]
Output:
None
Return Code:
FE_FAIL Unable to create surface. Points may be colinear.
Remarks/Usage:
None
Example:
None
feSurfaceEdgeCurves API-393

3.6.8.2 feSurfaceEdgeCurves

feSurfaceEdgeCurves
( curve1, curve2, curve3, curve4 )
Description:
Creates a surface defined by three or four edge curves.
Input:
INT4 curve1 ID of the first curve to select as a surface edge
INT4 curve2 ID of the second curve
INT4 curve3 ID of the third curve
INT4 curve4 ID of the fourth curve (If curve4=0, create a 3 sided surface)
Output:
None
Return Code:
Unable to create surface. Curves may not be connected, or may not
FE_FAIL
form a closed loop to define the surface.
Remarks/Usage:
The curve IDs must be specified in order, forming a closed loop around the surface.
Example:
None
API-394 feSurfaceAlignedCurves

3.6.8.3 feSurfaceAlignedCurves

feSurfaceAlignedCurves
( curveCOUNT, curveID )
Description:
Creates a surface defined by multiple aligned curves.
Input:
INT4 curveCOUNT The number of curve IDs that are specified in curveID.
The IDs of the curves that will be used to create the surface. This
INT4 curveID[0..curve- array must contain as many curveIDs as are specified by curve-
COUNT] COUNT. Furthermore, the curves must be specified in the order that
they will be used to create the lofted surface.
Output:
None
Return Code:
Unable to create surface. Curves may not be defined properly to cre-
FE_FAIL
ate aligned surface.
Remarks/Usage:
None
Example:
feSurfaceAlignedCurves API-395

feSurfaceAlignedCurves
( curveCOUNT, curveID )
The following shows an example of connecting to a model and creating a surface through six curves.
This assumes that the curves already existed.
Sub Main
Dim App As femap.model
Set App = GetObject(, "femap.model")
Dim curveID(10) As Long
Dim vcurveID As Variant
Dim curveCOUNT As Long
Dim rc As Long

curveCOUNT = 6
curveID(0) = 5
curveID(1) = 4
curveID(2) = 3
curveID(3) = 2
curveID(4) = 6
curveID(5) = 1
vcurveID = curveID

rc = App.feSurfaceAlignedCurves(curveCOUNT, vcurveID)

App.feViewRegenerate(0)
End Sub
API-396 feSurfaceRuled

3.6.8.4 feSurfaceRuled

feSurfaceRuled
( c1, c2 )
Description:
Creates a ruled surface between two curves.
Input:
INT4 c1 The ID of the first curve used to define the surface.
INT4 c2 The ID of the second curve used to define the surface.
Output:
None
Return Code:
FE_FAIL Unable to create surface. Curves may not exist.
Remarks/Usage:
None
Example:
None
feSurfaceExtrude API-397

3.6.8.5 feSurfaceExtrude

feSurfaceExtrude
( curveSET, axisLEN, axisVEC )
Description:
Creates one or more surfaces by extruding a set of curves.
Input:
ID of set containing the IDs of the curves to be extruded. Alterna-
INT4 curveSET tively, if you specify a negative value, this is simply the ID of the sin-
gle curve to extrude.
REAL8 axisLEN The length of the extrusion.
The components of the extrusion vector. This vector is normalized
REAL8 axisVEC[0..2]
and multiplied by axisLEN to find the total extrusion vector.
Output:
None
Return Code:
FE_FAIL Unable to create surface. Curves may not exist.
Remarks/Usage:
Curves are extruded from their current location along the specified vector.
Example:
None
API-398 feSurfaceRevolve

3.6.8.6 feSurfaceRevolve

feSurfaceRevolve
( curveSET, axisANGLE, axisBASE, axisVEC )
Description:
Creates one or more surfaces by revolving a set of curves.
Input:
ID of set containing the IDs of the curves to be revolved. Alterna-
INT4 curveSET tively, if you specify a negative value, this is simply the ID of the sin-
gle curve to revolve.
REAL8 axisANGLE The angle of revolution, in degrees.
A location, specified in global coordinates, that defines the base of
REAL8 axisBASE[0..2]
the axis of revolution.
The components of the axis of revolution. This vector will be located
REAL8 axisVEC[0..2]
at the axisBASE location, and the curves will be revolved around it.
Output:
None
Return Code:
FE_FAIL Unable to create surface. Curves may not exist.
Remarks/Usage:
Curves are revolved from their current location around the specified vector.
Example:
None
feSurfaceSweep API-399

3.6.8.7 feSurfaceSweep

feSurfaceSweep
( curveSET, pathSET )
Description:
Creates one or more surfaces by sweeping a set of curves along a path.
Input:
ID of set containing the IDs of the curves to be swept. Alternatively,
INT4 curveSET if you specify a negative value, this is simply the ID of the single
curve to sweep.
ID of a set containing the IDs of the curves to be used as a path.
Alternatively, if you specify a negative value, this is simply the ID of
the single curve to use as the path. If you specify a set, the curves
INT4 pathSET
must form a single connected path. If you are not using the standard
FEMAP geometry engine, then this set must contain a single curve.
Only the standard engine can sweep along a multicurve path.
Output:
None
Return Code:
Unable to create surface. Curves may not exist, or path may not be
FE_FAIL
connected.
Remarks/Usage:
None
Example:
None
API-400 feSurfaceNormalDeviation

3.6.8.8 feSurfaceNormalDeviation

feSurfaceNormalDeviation
( surfaceSetID, dAvgNormal, dMaxAngle )
Description:
Finds the average normal of a set of surfaces and the maximum deviation of the normal from that aver-
age
Input:
The ID of a Set containing the IDs of one or more Surfaces. If you
INT4 surfaceSetID want to test just one surface, simply specify surfaceSetID equal to
the negative of the Surface ID.
Output:
The vector components of the average normal to the entire set of
REAL8 dAvgNormal[0..2]
selected surfaces
The maximum angle, in degrees, that any surface normal deviates
REAL8 dMaxAngle
from the vector returned in dAvgNormal.
Return Code:
FE_FAIL Unable to determine average normal and deviation.
Remarks/Usage:
None
Example:
None
feSurfaceConvert API-401

3.6.8.9 feSurfaceConvert

feSurfaceConvert
( surfaceSET, bDelete )
Description:
Converts surfaces into Solid (Parasolid) surfaces.
Input:
The ID of a Set containing the IDs of one or more Surfaces to con-
INT4 surfaceSetID vert. If you want to convert just one surface, simply specify surface-
SET equal to the negative of the Surface ID.
BOOL bDelete If True, the original Surfaces are deleted after being converted.
Output:
None
Return Code:
FE_FAIL Unable to convert one or more surfaces
Remarks/Usage:
None
Example:
None
API-402 feSurfaceNonManifoldAdd

3.6.8.10 feSurfaceNonManifoldAdd

feSurfaceNonManifoldAdd
( solidSET )
Description:
Adds solids and sheet solids (surfaces) together to create a general body in parasolid using the default
Non-Manifold Add Tolerance.
Input:
The ID of a set that contains a list of Solid IDs that will be added to
INT4 solidSET
create a general body.
Output:
None
Return Code:
FE_FAIL Could not add selected solids and sheet solids into a general body
Remarks/Usage:
None
Example:
None
feSurfaceNonManifoldAdd2 API-403

3.6.8.11 feSurfaceNonManifoldAdd2

feSurfaceNonManifoldAdd2
( solidSET, dTolerance )
Description:
Adds solids and sheet solids (surfaces) together to create a general body in Parasolid using the speci-
fied Non-Manifold Add Tolerance.
Input:
The ID of a set that contains a list of Solid IDs that will be added to
INT4 solidSET
create a general body.
REAL8 dTolerance The tolerance at which to attempt to add the solids together.
Output:
None
Return Code:
FE_FAIL Could not add selected solids and sheet solids into a general body
Remarks/Usage:
None
Example:
None
API-404 feSurfaceNonManifoldAdd3

3.6.8.12 feSurfaceNonManifoldAdd3

feSurfaceNonManifoldAdd3
( solidSET, dTolerance, bIntermediateCheck)
Description:
Adds solids and sheet solids (surfaces) together to create a general body in parasolid using a user-
specified Non-Manifold Add Tolerance value. Also has an option to enable or disable Incremental
Checking when more than 2 solids and/or sheet solids are being Non-Manifold added together.
Input:
The ID of a set that contains a list of Solid IDs that will be added to
INT4 solidSET
create a general body.
REAL8 dTolerance The Non-Manifold Add Tolerance value.
If True, Incremental Checking will be enabled, meaning that the
general body is checked after each solid or sheet solid is added to
the general body to make sure it passes body checking. If the addi-
BOOL bIntermediateCheck tion of a solid or sheet solid causes the general body to fail body
checking, that addition will be rolled back and that solid or sheet
solid will not be added to the general body. If False, Incremental
Checking will not be done.
Output:
None
Return Code:
FE_FAIL Could not add selected solids and sheet solids into a general body
Remarks/Usage:
None
Example:
None
feSurfaceNonManifoldAddExpress API-405

3.6.8.13 feSurfaceNonManifoldAddExpress

feSurfaceNonManifoldAddExpress
( solidSETID, dTolerance )
Description:
Adds solids and sheet solids (surfaces) together to create a general body using a single call to the
Parasolid engine and also allows a user-specified Non-Manifold Add Tolerance value.
Input:
The ID of a set that contains a list of Solid IDs that will be added to
INT4 solidSETID
create a general body.
REAL8 dTolerance The Non-Manifold Add Tolerance value.
Output:
None
Return Code:
FE_FAIL Could not add selected solids and sheet solids into a general body
Remarks/Usage:
None
Example:
None
API-406 feSurfaceRecoverManifold

3.6.8.14 feSurfaceRecoverManifold

feSurfaceRecoverManifold
( solidSET )
Description:
Recovers manifold solids and sheet solids from General Bodies created using NonManifold Add
command.
Input:
The ID of a set that contains a list of Solid IDs (General Body IDs) to
INT4 solidSET recover manifold geometry from. Alternatively, if you specify a neg-
ative value, this is simply the ID of the single General Body.
Output:
None
Return Code:
FE_FAIL Could not recover manifold geometry from General Body
Remarks/Usage:
None
Example:
None
feSurfaceRemoveHole API-407

3.6.8.15 feSurfaceRemoveHole

feSurfaceRemoveHole
( curveSET )
Description:
Removes holes from a surface by curve.
Input:
The ID of a set that contains a list of Curve IDs that are part of a one
INT4 curveSET or more holes to remove from a surface. Alternatively, if you specify
a negative value, this is simply the ID of the single curve.
Output:
None
Return Code:
FE_FAIL Could not remove hole from body.
Remarks/Usage:
None
Example:
None
API-408 feSurfaceFromMesh

3.6.8.16 feSurfaceFromMesh

feSurfaceFromMesh
( elemSetID, bDeleteMesh, bWireframeOnly, tolerance, bLengthCutoff, lengthCutVal )
Description:
Create a surface that approximates a shell element mesh.
Input:
The ID of a set that contains a list of shell element IDs that are used
INT4 elemSetID
to create an approximate surface.
If True, the specified elements will be deleted when the surface is
BOOL bDeleteMesh
created.
BOOL bWireframeOnly Create only the edges/curves that bound the mesh, not the surface.
The tolerance that is used to calculate an approximate surface fit thru
REAL8 tolerance
the mesh.
If True, the lengthCutVal is used so that any edge greater than this
BOOL bLengthCutoff value will create a single line. The edge will not be included in any
spline or curved edge of the surface.
REAL8 lengthCutVal The length used if bLengthCutoff is True
Output:
None
Return Code:
FE_FAIL Unable to create surface
Remarks/Usage:
None
Example:
None
feSurfaceRayFire API-409

3.6.8.17 feSurfaceRayFire

feSurfaceRayFire
( suSetID, nNumRay, vRayLoc, vRayDir, nHitSurface, vHitLoc )
Description:
This method finds the locations on surfaces hit by rays specified by the user
Input:
ID of a Set object containing the IDs of the surfaces that you want to
INT4 soSetID
hit
INT4 nNumRay The number of rays that are contained in vRayLoc, vRayDir
REAL8 vRayLoc[0..3*nNum- The location of the base of the ray/vector in Global Rectangular
Ray-1] coordinates
REAL8 vRayDir[0..3*nNum-
The components of the direction of the ray
Ray-1]
Output:
INT4 nHitSurface[0..nNum-
The ID of the surface that each ray hits (0 if it misses all surfaces)
Ray-1]
REAL8 vHitLoc[0..3*nNum- The Global Rectangular XYZ coordinates where the ray hit the sur-
Ray-1] faces
Return Code:
FE_BAD_DATA If any of the surfaces have a different scale factor than the others
FE_NOT_AVAILABLE If none of the Surface IDs you specified exist.
Remarks/Usage:

Example:
None
API-410 feSurfaceMidSingle

3.6.9 Midsurfaces
3.6.9.1 feSurfaceMidSingle

feSurfaceMidSingle
( trim, surfID1, surfID2 )
Description:
Creates a midsurface between two existing surfaces.
Input:
If True, the new surface is trimmed to lie within the bounds of the
BOOL trim
solid containing the original surfaces.
INT4 surfID1 The first surface to use to generate the midsurface.
INT4 surfID2 The other surface used to generate the midsurface.
Output:
None
Return Code:
FE_FAIL Could not create the midsurface.
Remarks/Usage:
None
Example:
None
feSurfaceMidAuto API-411

3.6.9.2 feSurfaceMidAuto

feSurfaceMidAuto
( surfSET, thick )
Description:
Creates midsurfaces between a set of selected surfaces using the Pre-V11.1 midsurfacing capabilities
(i.e., does not use Parasolid face pairing algorithm).
Input:
ID of set containing the IDs of the surfaces to be used to generate
INT4 surfSET
midsurfaces.
REAL8 thick The target thickness to be used to find midsurfaces.
Output:
None
Return Code:
FE_FAIL Could not create the midsurfaces.
Remarks/Usage:
Similar to the Geometry, Midsurface, Automatic command when using the pre-V11.1 Midsurface
Method
Example:
None
API-412 feSurfaceMidAuto2

3.6.9.3 feSurfaceMidAuto2

feSurfaceMidAuto2
( suSETID, dTargetThickness, bCombineTangent, dAngleTolerance, bAutoAdd, bRe-
versePairs )
Description:
Creates midsurfaces between a set of selected surfaces using Parasolid face pairing algorithm
Input:
ID of set containing the IDs of the surfaces to be used to generate
INT4 suSETID
midsurfaces.
REAL8 dTargetThickness The target thickness to be used to find midsurfaces.
BOOL bCombineTangent When True, uses Combine Tangent Surfaces option
The Angle Tolerance used to determine surface tangency. Only used
REAL8 dAngleTolerance
when bCombineTangent = True
BOOL bAutoAdd When True, uses Combine Midsurfaces option
BOOL bReversePairs When True, uses Reverse Pairs option
Output:
None
Return Code:
FE_FAIL Could not create the midsurfaces.
Remarks/Usage:
Similar to the Geometry, Midsurface, Automatic command
Example:
None
feSurfaceMidAuto API-413

3.6.9.4 feSurfaceOffsetTangent

feSurfaceMidAuto
( surfSET, thick )
Description:
Creates midsurfaces by offsetting a set of surfaces tangent to specified seed surface
Input:
INT4 nSurfaceID Seed surface ID to find tangent surfaces.
Tangency tolerance (default in GUI is 0.1). Value between 0.0 and
REAL8 dTolerance
360.0.
BOOL bAutoOffset Automatically attempt to offset to the solid mid-thickness
REAL8 dOffset Offset value, ignored if bAutoOffset is TRUE
BOOL bDeleteOriginal Delete the original solid
BOOL bCreateGroup Create a group of new surfaces
Output:
None
Return Code:
FE_FAIL Unabletooffsetsurface
Remarks/Usage:
None
Example:
None
API-414 feSurfaceMidAttrib

3.6.9.5 feSurfaceMidAttrib

feSurfaceMidAttrib
( surfSET, matlID )
Description:
Assigns meshing attributes, including thicknesses, to surfaces that were created as midsurfaces.
Input:
ID of set containing the IDs of the surfaces to have attributes
INT4 surfSET assigned. Alternatively, if you specify a negative value, this is simply
the ID of the single surface to use.
INT4 matlID The ID of the material to assign as a meshing attribute.
Output:
None
Return Code:
FE_FAIL Could not assign attributes.
Remarks/Usage:
The surface set that you specify can include surfaces that were not generated as midsurfaces, but only
those surfaces that were midsurfaces will have meshing attributes assigned. This means that you can
simply include all surfaces in the model and it will automatically find all the midsurfaces and assign
attributes.
Example:
None
feSurfaceTrimToSolid API-415

3.6.9.6 feSurfaceTrimToSolid

feSurfaceTrimToSolid
( sheetID, solidID )
Description:
Trims an open, sheet solid to the boundaries of a solid that contains it.
Input:
The ID of the solid that is defined by the surfaces that are to be
INT4 sheetID
trimmed.
INT4 solidID The ID of the bounding solid used to trim the sheet.
Output:
None
Return Code:
FE_FAIL Could not trim to the selected surface.
Remarks/Usage:
None
Example:
None
API-416 feSurfaceTrimWithCurves

3.6.9.7 feSurfaceTrimWithCurves

feSurfaceTrimWithCurves
( surfID, curveSET )
Description:
Trims a surface with one or more curves.
Input:
INT4 surfID The ID of the surface to be trimmed.
ID of set containing the IDs of the curves to be used for trimming.
INT4 curveSET Alternatively, if you specify a negative value, this is simply the ID of
the single curve to use.
Output:
None
Return Code:
FE_FAIL Could not trim the selected surface.
Remarks/Usage:
None
Example:
None
feSurfaceExtend API-417

3.6.9.8 feSurfaceExtend

feSurfaceExtend
( curveSET, Shape, ExtendTo, ExtendToSolidID, ExtendToLoc, ExtendDist )
Description:
Extends a surface edge using one of several methods.
Input:
ID of set containing the IDs of the curves to be used for trimming.
INT4 curveSET Alternatively, if you specify a negative value, this is simply the ID of
the single curve to use.
The Shape of the extended Surface 0=Linear, 1=Continuous Curva-
INT4 Shape
ture, 2=Reflective
The Location to Extend the surface to 0=ID of Solid, 1=To Specified
INT4 ExtendTo
Location, 2=Specified Distance
Only used if ExtendTo=0. The ID of the Solid to extend surface until
INT4 ExtendToSolidID
it hits this solid
Only used if ExtendTo=1. The location in Global Rectangular coor-
REAL8 ExtendToLoc[0..2]
dinates of the location to extend to.
REAL8 ExtendDist Only used if ExtendTo=2. The distance to extend the surface
Output:
None
Return Code:
FE_FAIL Could not extend the selected surface.
Remarks/Usage:
Although only one of the ExtendToSolidID, ExtendToLoc and ExtendDist are used depending on the
value of ExtendTo, all must be provided. The values of the unused ones do not matter.
Example:
None
API-418 feSurfaceOffsetTangent

3.6.9.9 feSurfaceOffsetTangent

feSurfaceOffsetTangent
( nSeedSurface, dTolerance, bAutoOffset, dOffset, bDeleteOriginal, bCreateGroup )
Description:
Creates a midsurface for a solid by offsetting any number of surfaces tangent to a single seed surface.
Tangency can be controlled using a specified tangency tolerance.
Input:
ID of surface used as a starting point for determining the other tan-
INT4 nSeedSurface
gent surfaces which should be offset.
REAL8 dTolerance Tangency Tolerance in degrees
When True, command will attempt to automatically determine the
BOOL bAutoOffset offset value. When False, the offset must be specified using the dOff-
set value.
REAL8 dOffset Distance to offset toward the middle of the solid
When True, original solid will be deleted leaving on the new midsur-
BOOL bDeleteOriginal
face geometry. When False, original solid will remain in the model
When True, a group containing the new midsurface geometry will be
BOOL bCreateGroup
created. When False, a new group will not be created.
Output:
None
Return Code:

Remarks/Usage:
Same as the Geometry, Midsurface, Offset Tangent Surfaces command
Example:
None
feSolidPrimitive API-419

3.6.10 Solids
3.6.10.1 feSolidPrimitive

feSolidPrimitive
( operation, shape, positive, origin, size, title )
Description:
Creates a solid primitive.
Input:
The type of operation to perform when creating the solid: 0=Create
INT4 operation New Solid, 1=Add to Active Solid, 2=Remove from Active Solid,
3=Common with Active Solid.
The type of primitive to create: 0=Block (Center), 1=Block (Corner),
INT4 shape
2=Cylinder, 3=Cone, 4=Sphere, 5=Sphere (Alt)
Set to True if the Z direction should be in the positive workplane Z
BOOL positive direction, or False to go in the negative workplane Z direction.
Dimensions should all be positive.
REAL8 origin[0..1] The location, in the workplane, of the origin of the solid.
The size of the primitive to create. The exact meaning of these
REAL8 size[0..2] dimensions varies depending on the value of shape. Refer to the table
at the end of this command for details.
STRING title The title to assign to the solid - only used if creating a new solid.
Output:
None
Return Code:
FE_FAIL Could not create the primitive.
Remarks/Usage:
The Add, Remove and Common operations manipulate the active solid. You can select the active solid
by setting femap.Info_ActiveID(39) to the ID of the solid that you want to use.
Example:

Primitive/Shape Size
size(0) = X length (in workplane)
Block (Center or Corner) size(1) = Y length (in workplane)
size(2) = Z length (in workplane)
API-420 feSolidPrimitive

Primitive/Shape Size
size(0) = Radius
Cylinder size(1) = not used
size(2) = Height
size(0) = Bottom Radius
Cone size(1) = Top Radius
size(2) = Height
size(0) = Radius
Sphere size(1) = not used
size(2) = not used
feSolidExtrude API-421

3.6.10.2 feSolidExtrude

feSolidExtrude
( operation, surfID, dirMode, depthMode, dirVec, depthVec )
Description:
Extrudes a surface into a solid, or modifies an existing solid by extruding.
Input:
The type of operation to perform when creating the solid: 0=Create
INT4 operation
New Solid, 1=Add to Active Solid, 2=Remove from Active Solid.
The surface to extrude. This surface can either be an existing solid
INT4 surfID
surface, or a planar boundary.
Specifies the approach you will use to specify the extrusion direc-
tion: 0=Positive Surface Normal, 1=Negative Surface Normal,
INT4 dirMode 2=Surface Normal, Both Positive and Negative, 3=Along the Vector
specified in dirVec, 4=Opposite the Vector specified in dirVec,
5=Along and Opposite the Vector specified in dirVec.
Specifies the approach you will use to specify the extrusion length/
depth: 0=Specified Depth - the depth is defined in depthVec[0],
INT4 depthMode 1=To Location - the location to extrude to is specified in depth-
Vec[0..2], in global coordinates, 2=Thru All - Only used for the
Remove operation to cut completely through the active solid.
The components, in global rectangular coordinates, of the extrusion
REAL8 dirVec[0..2]
vector. Only used if dirMode = 3, 4 or 5.
The extrusion length (depthMode=0) or the location to extrude to, in
REAL8 depthVec[0..2] global rectangular coordinates (depthMode=1). Not used for Thru
All extrusions.
Output:
None
Return Code:
FE_FAIL Could not create the extrusion.
Remarks/Usage:
The Add and Remove operations manipulate the active solid. You can select the active solid by setting
femap.Info_ActiveID(39) to the ID of the solid that you want to use.
Example:
None
API-422 feSolidRevolve

3.6.10.3 feSolidRevolve

feSolidRevolve
( operation, surfID, dirMode, angleMode, axisBase, axisVec, angleVec )
Description:
Revolves a surface into a solid, or modifies an existing solid by revolving.
Input:
The type of operation to perform when creating the solid: 0=Create
INT4 operation
New Solid, 1=Add to Active Solid, 2=Remove from Active Solid.
The surface to revolve. This surface can either be an existing solid
INT4 surfID
surface, or a planar boundary.
Specifies the approach you will use to specify the extrusion direc-
INT4 dirMode tion: 0=Positive Around Axis, 1=Negative Around Axis, 2=Both
Positive and Negative Around Axis.
Specifies the approach you will use to specify the angle of revolu-
tion: 0=Specified Angle - the angle is defined in angleVec[0], 1=To
INT4 angleMode
Location - the location to revolve to is specified in angleVec[0..2],
2=Full 360 degree revolution. All angles are specified in degrees.
The location of the base of the axis of revolution, specified in global
REAL8 axisBase[0..2]
rectangular coordinates.
The components of the axis of revolution, specified in global rectan-
REAL8 axisVec[0..2]
gular coordinates.
The angle of revolution (angleMode=0) or the location to revolve to,
REAL8 angleVec[0..2] in global rectangular coordinates (angleMode=1). Not used for Full
360 revolutions.
Output:
None
Return Code:
FE_FAIL Could not create the revolution.
Remarks/Usage:
The Add and Remove operations manipulate the active solid. You can select the active solid by setting
femap.Info_ActiveID(39) to the ID of the solid that you want to use.
Example:
None
feSolidExplode API-423

3.6.10.4 feSolidExplode

feSolidExplode
( solidSET )
Description:
Explodes selected solids into individual surfaces.
Input:
The ID of a set that contains a list of Solid IDs that will be exploded.
INT4 solidSET Alternatively, if you specify a negative value, this is simply the ID of
the single solid to explode.
Output:
None
Return Code:
FE_FAIL Could not explode selected solids.
Remarks/Usage:
None
Example:
None
API-424 feSolidStitch

3.6.10.5 feSolidStitch

feSolidStitch
( surfaceSET, tolerance )
Description:
Stitches selected surfaces into solids. A solid cleanup routine is run at the end of the command to
remove any redundant geometry and simplify the geometry.
Input:
The ID of a set that contains a list of Surface IDs that will be stitched.
INT4 surfaceSET Alternatively, if you specify a negative value, this is simply the ID of
the single surface to stitch.
The tolerance to use when stitching the surfaces (Parasolid only).
REAL8 tolerance
Specify 0.0 to use the default stitching tolerance.
Output:
None
Return Code:
FE_FAIL Could not stitch selected surfaces.
Remarks/Usage:
None
Example:
None
feSolidStitchNoCleanup API-425

3.6.10.6 feSolidStitchNoCleanup

feSolidStitchNoCleanup
( surfaceSET, tolerance )
Description:
Stitches selected surfaces into solids. A solid cleanup routine is NOT run at the end of the command to
remove any redundant geometry, therefore all internal curves and individual surfaces remain intact.
Input:
The ID of a set that contains a list of Surface IDs that will be stitched.
INT4 surfaceSET Alternatively, if you specify a negative value, this is simply the ID of
the single surface to stitch.
The tolerance to use when stitching the surfaces (Parasolid only).
REAL8 tolerance
Specify 0.0 to use the default stitching tolerance.
Output:
None
Return Code:
FE_FAIL Could not stitch selected surfaces.
Remarks/Usage:
None
Example:
None
API-426 feSolidSweep

3.6.10.7 feSolidSweep

feSolidSweep
( surfaceSET, curveSET)
Description:
Creates solid(s) by selecting any number of surfaces to be swept along any number of curves along a
connected path.
Input:
The ID of a set that contains a list of Surface IDs to sweep. Alterna-
INT4 surfaceSET tively, if you specify a negative value, this is simply the ID of a sin-
gle surface to sweep.
The ID of a set that contains a list of Curve IDs representing a sweep
INT4 curveSET path. Alternatively, if you specify a negative value, this is simply the
ID of a single curve to use as the sweep path.
Output:
None
Return Code:
Unable to create solid. Curves may not exist, or path may not be con-
FE_FAIL
nected.
Remarks/Usage:
Similar functionality to the Geometry, Solid, Sweep command.
Example:
None
feSolidSweepBetween API-427

3.6.10.8 feSolidSweepBetween

feSolidSweepBetween
( faceID1, faceID2, ptID1, ptID2, blendFactor )
Description:
Creates a swept solid between from one surface to another surface by matching a point specified on one
surface to a point specified on the other surface. Additionally, a blend factor may be specified to poten-
tially change the curvature of the swept solid.
Input:
INT4 faceID1 The ID of a surface to use as the From surface
INT4 faceID2 The ID of a surface to use as the To surface.
INT4 ptID1 The ID of a point to use as the From point
INT4 ptID2 The ID of a point to use as the To point.
REAL8 blendFactor Adjusts the curvature of the swept solid (default = 1.0).
Output:
None
Return Code:
FE_FAIL Could not sweep solid between selected surfaces and points.
Remarks/Usage:
Similar functionality to the Geometry, Solid, Sweep Between command.

The normal direction of the two surfaces should typically face one another for best results.

The blendFactor refers to how long the swept solid follows tangency between the normal vector calcu-
lated at the centroid of each surface. By specifying a larger value, the swept body will closely follow the
tangents for a longer distance, typically causing more curvature near the center of the swept solid.
Smaller values make the tangency weaker, therefore, most of the curvature will be near the ends of the
swept solid.
Example:
None
API-428 feSolidFillet

3.6.10.9 feSolidFillet

feSolidFillet
( curveSET, radius )
Description:
Fillets one or more edges of a solid.
Input:
The ID of a set that contains a list of Curve IDs that will be filleted.
INT4 curveSET Alternatively, if you specify a negative value, this is simply the ID of
the single curve to fillet.
REAL8 radius The fillet radius.
Output:
None
Return Code:
FE_FAIL Could not fillet selected curves.
Remarks/Usage:
None
Example:
None
feSolidChamfer API-429

3.6.10.10 feSolidChamfer

feSolidChamfer
( curveSET, length )
Description:
Chamfers one or more edges of a solid.
Input:
The ID of a set that contains a list of Curve IDs that will be cham-
INT4 curveSET fered. Alternatively, if you specify a negative value, this is simply the
ID of the single curve to chamfer.
REAL8 chamfer The chamfer length.
Output:
None
Return Code:
FE_FAIL Could not chamfer selected curves.
Remarks/Usage:
None
Example:
None
API-430 feSolidAdd

3.6.10.11 feSolidAdd

feSolidAdd
( solidSET, redraw )
Description:
Adds two or more solids to form a new solid.
Input:
The ID of a set that contains a list of Solid IDs that will be added.
INT4 solidSET
This list must contain at least two solids to be added.
If True, the graphics will be redrawn to reflect the updated solids fol-
BOOL redraw
lowing this operation.
Output:
None
Return Code:
FE_FAIL Could not add the selected solids.
Remarks/Usage:
None
Example:
None
feSolidRemove API-431

3.6.10.12 feSolidRemove

feSolidRemove
( baseID, solidSET, redraw )
Description:
Removes (subtracts) one or more solids from a base solid.
Input:
The ID of the base solid, from which the solids in solidSET will be
INT4 baseID
removed.
The ID of a set that contains a list of Solid IDs that will be removed.
INT4 solidSET Alternatively, if you specify a negative value, this is simply the ID of
the single solid to remove.
If True, the graphics will be redrawn to reflect the updated solids fol-
BOOL redraw
lowing this operation.
Output:
None
Return Code:
FE_FAIL Could not remove the selected solids.
Remarks/Usage:
None
Example:
None
API-432 feSolidCommon

3.6.10.13 feSolidCommon

feSolidCommon
( baseID, toolID, redraw )
Description:
Creates a new solid that represents the common volume between two original solids.
Input:
INT4 baseID The ID of the base solid.
INT4 toolID The ID of the tool solid.
If True, the graphics will be redrawn to reflect the updated solids fol-
BOOL redraw
lowing this operation.
Output:
None
Return Code:
FE_FAIL Could not find the common volume between the selected solids.
Remarks/Usage:
None
Example:
None
feSolidEmbed API-433

3.6.10.14 feSolidEmbed

feSolidEmbed
( baseID, toolID, redraw )
Description:
Embeds one solid (the tool) inside another (the base).
Input:
INT4 baseID The ID of the base solid.
INT4 toolID The ID of the tool solid.
If True, the graphics will be redrawn to reflect the updated solids fol-
BOOL redraw
lowing this operation.
Output:
None
Return Code:
FE_FAIL Could not embed the selected solid.
Remarks/Usage:
None
Example:
None
API-434 feSolidEmbedMultiple

3.6.10.15 feSolidEmbedMultiple

feSolidEmbedMultiple
( baseID, toolSetID, redraw )
Description:
Embeds any number of solids (the tools) inside another solid (the base).
Input:
INT4 baseID The ID of the base solid.
The ID of a set that contains a list of solid IDs to embed into the base
INT4 toolSetID solid. Alternatively, if you specify a negative value, this is simply the
ID of the single curve to use.
If True, the graphics will be redrawn to reflect the updated solids fol-
BOOL redraw
lowing this operation.
Output:
None
Return Code:
FE_FAIL Could not embed the selected solid.
Remarks/Usage:
None
Example:
None
feSolidIntersect API-435

3.6.10.16 feSolidIntersect

feSolidIntersect
( solidSET, redraw )
Description:
Breaks all of the surfaces of the selected solids at their intersections with other surfaces.
Input:
The ID of a set that contains a list of solid IDs that will be inter-
INT4 solidSET
sected. This list must contain at least two solids.
If True, the graphics will be redrawn to reflect the updated solids fol-
BOOL redraw
lowing this operation.
Output:
None
Return Code:
FE_FAIL Could not intersect the selected solids.
Remarks/Usage:
None
Example:
None
API-436 feSolidShell

3.6.10.17 feSolidShell

feSolidShell
( baseID, surfaceSET, thickness, redraw )
Description:
Converts a solid into a thin-walled solid by offsetting outer surfaces.
Input:
INT4 baseID The ID of the base solid to be modified.
The ID of a set that contains a list of surface IDs that will be
pierced by the shelling operation: that is, the list of surfaces that
INT4 surfaceSET are really on the thru-the-thickness edges of the shelled solid.
Alternatively, if you specify a negative value, this is simply the ID of
the single surface to pierce.
The thickness of the resulting shelled solid. This is the distance that
REAL8 thickness
the outer surfaces are offset to form the inner surfaces.
If True, the graphics will be redrawn to reflect the updated solids fol-
BOOL redraw
lowing this operation.
Output:
None
Return Code:
FE_FAIL Could not shell the selected solid.
Remarks/Usage:
None
Example:
None
feSolidSlice API-437

3.6.10.18 feSolidSlice

feSolidSlice
( solidSET, planeBASE, planeNORMAL, redraw )
Description:
Slices one or more solids with a plane.
Input:
The ID of a set that contains a list of solid IDs that will be sliced.
INT4 solidSET Alternatively, if you specify a negative value, this is simply the ID of
the single solid to slice.
REAL8 planeBASE[0..2] Any location that lies on the plane used to slice the solid.
REAL8 planeNORMAL[0..2] The components of a vector that is normal to the plane.
If True, the graphics will be redrawn to reflect the updated solids fol-
BOOL redraw
lowing this operation.
Output:
None
Return Code:
FE_FAIL Could not slice the selected solids.
Remarks/Usage:
None
Example:
None
API-438 feSolidSliceMatch

3.6.10.19 feSolidSliceMatch

feSolidSliceMatch
( solidSET, planeBASE, planeNORMAL, redraw )
Description:
Slices one or more solids with a plane and leaves matching surfaces on both new solids.
Input:
The ID of a set that contains a list of solid IDs that will be sliced.
INT4 solidSET Alternatively, if you specify a negative value, this is simply the ID of
the single solid to slice.
REAL8 planeBASE[0..2] Any location that lies on the plane used to slice the solid.
REAL8 planeNORMAL[0..2] The components of a vector that is normal to the plane.
If True, the graphics will be redrawn to reflect the updated solids fol-
BOOL redraw
lowing this operation.
Output:
None
Return Code:
FE_FAIL Could not slice the selected solids.
Remarks/Usage:
None
Example:
None
feSolidSliceAlongFace API-439

3.6.10.20 feSolidSliceAlongFace

feSolidSliceAlongFace
( surfaceID )
Description:
Separates a solid by slicing it with one of its surfaces.
Input:
The ID of the surface used to slice the solid. This surface is also used
INT4 surfaceID to determine the solid to slice, since only the solid that contains the
surface can be sliced.
Output:
None
Return Code:
FE_FAIL Could not slice the solid with the selected surface.
Remarks/Usage:
None
Example:
None
API-440 feSolidEmbedFace

3.6.10.21 feSolidEmbedFace

feSolidEmbedFace
( surfaceID, dirMode, curveOpt, direction, offset, redraw )
Description:
Uses a surface of a solid to divide it.
Input:
The ID of the surface used to slice the solid. This surface is also used
INT4 surfaceID to determine the solid to slice, since only the solid that contains the
surface can be sliced.
The option used to determine which direction the surface will be pro-
jected as it is embedded into the solid: 0=Automatic direction and
INT4 dirMode
offset selection, 1=Specified direction, Automatic offset, 2= Auto-
matic Direction, Specified offset.
The option used to determine which curves of the surface will be
INT4 curveOpt embedded: 0=Outline only (skip interior curves/holes), 1=All
Curves.
The vector used to specify the direction to embed the face - only used
REAL8 direction[0..2]
if dirMode=1.
The distance that the face will be embedded into the solid. Only used
REAL8 offset
if dirMode=1 or dirMode=2.
If True, the graphics will be redrawn to reflect the updated solids fol-
BOOL redraw
lowing this operation.
Output:
None
Return Code:
FE_FAIL Could not embed the surface into the solid.
Remarks/Usage:
None
Example:
None
feSolidCleanup API-441

3.6.10.22 feSolidCleanup

feSolidCleanup
( solidSET, redundant, sliver, check )
Description:
Performs various cleanup and checking on selected solids.
Input:
The ID of a set that contains a list of solid IDs that will be checked.
INT4 solidSET Alternatively, if you specify a negative value, this is simply the ID of
the single solid to check.
If True, redundant geometry that is not required to define the solid
BOOL redundant will be removed. For example, extra lines or surfaces that were cut
into the underlying surfaces will be removed.
If True, an attempt will be made to remove any and all small sliver
BOOL sliver
surfaces. This option is only available if the solid is a Parasolid solid.
If True, the solids will be checked to ensure that they are still valid.
BOOL check This is especially important if you have attempted to remove sliver
surfaces.
Output:
None
Return Code:
FE_FAIL Could not cleanup the selected solids.
Remarks/Usage:
None
Example:
None
API-442 feSolidCleanupAdvanced

3.6.10.23 feSolidCleanupAdvanced

feSolidCleanupAdvanced
( solidSET, RepairEdges, RepairEdgesVal, CleanSmoothDiscont, CleanSmoothDiscont-
Val, RemoveSelfInt, AllowSurfMod, RemoveSpikes, RemoveSpikesVal, RemoveSmall-
Edges, RemoveSmallEdgesVal, RemoveSmallFaces, RemoveSmallFacesVal,
RemoveSliverFaces, RemoveSliverFacesVal, ConvertToAnalytic, ConvertToAnalyt-
icVal, RecalcEdges, RecalcEdgesVal, MergeEdges, HealSurfaces, HealSurfacesVal,
HealSmoothDiscont, HealSmoothDiscontVal, ReplaceMissing )
Description:
Performs more advanced cleanup and checking on selected solids.
Input:
The ID of a set that contains a list of solid IDs that will be checked.
INT4 solidSET Alternatively, if you specify a negative value, this is simply the ID of
the single solid to check.
BOOL RepairEdges If True, turn on Cleaning Repair Edges
REAL8 RepairEdgesVal Size for repairing edges
BOOL CleanSmoothDiscont If True, turn on Cleaning Smooth or Split Discontinuities
REAL8 CleanSmoothDiscont-
Angle for Smooth or Split Discontinuities
Val
BOOL RemoveSelfInt If True, turn on Cleaning Remove Surface Self-Intersections
BOOL AllowSurfMod If True, turn on Cleaning Allow Surface Modifications
BOOL RemoveSpikes If True, turn on Small Feature Remove Spikes
REAL8 RemoveSpikesVal Size for spike removal
BOOL RemoveSmallEdges If True, turn on Small Feature Remove Small Edges
REAL8 RemoveSmallEdges-
Size for small edge removal
Val
BOOL RemoveSmallFaces If True, turn on Small Feature Remove Small Faces
REAL8 RemoveSmallFacesVal Size for small face removal
BOOL RemoveSliverFaces If True, turn on Small Feature Remove Sliver Faces
REAL8 RemoveSliverFacesVal Size for sliver face removal
If True, turn on Geometry Simplification Convert to Analytic Geom-
BOOL ConvertToAnalytic
etry
REAL8 ConvertToAnalyticVal Value for Analytic Geometry conversion
BOOL RecalcEdges If True, turn on Edge Heal Recalculate Edge Geometry
( solidSET, RepairEdges, RepairEdgesVal, CleanSmoothDiscont, CleanSmoothDiscontVal, Remove-

feSolidCleanupAdvanced
( solidSET, RepairEdges, RepairEdgesVal, CleanSmoothDiscont, CleanSmoothDiscont-
Val, RemoveSelfInt, AllowSurfMod, RemoveSpikes, RemoveSpikesVal, RemoveSmall-
Edges, RemoveSmallEdgesVal, RemoveSmallFaces, RemoveSmallFacesVal,
RemoveSliverFaces, RemoveSliverFacesVal, ConvertToAnalytic, ConvertToAnalyt-
icVal, RecalcEdges, RecalcEdgesVal, MergeEdges, HealSurfaces, HealSurfacesVal,
HealSmoothDiscont, HealSmoothDiscontVal, ReplaceMissing )
REAL8 RecalcEdgesVal Value for recalculating edge geometry
BOOL MergeEdges If True, turn on Edge Heal Merge Edges
BOOL HealSurfaces If True, turn on Surface Heal and Stitch Heal Surfaces
REAL8 HealSurfacesVal Value for healing surfaces
If True, turn on Surface Heal and Stitch Smooth or Split Discontinu-
BOOL HealSmoothDiscont
ities
REAL8 HealSmoothDiscont- Value for Smoothing/Splitting Discontinuities during Surface Heal-
Val ing
BOOL ReplaceMissing If True, turn on Surface Heal and Stitch Replace Missing Geometry
Output:
None
Return Code:
FE_FAIL Could not cleanup the selected solids.
Remarks/Usage:
For all numeric values used by this method, specifying a value of 0.0 will automatically use the default
value that is shown in the dialog when you access this functionality from the user interface.
Example:
This example calls Advanced Cleanup on Solid 1, with all the default options that would be used had the
functionality been accessed from the user interface.

Sub Main
Dim App As femap.model
Set App = feFemap()

App.feSolidCleanupAdvanced( -1, True, 0.0, True, 0.0, True, _
True, True, 0.0, True, 0.0, True, 0.0, True, 0.0, True, 0.0, _
True, 0.0, True, False, 0.0, False, 0.0, False )
End Sub
API-444 feSolidRemoveFace

3.6.10.24 feSolidRemoveFace

feSolidRemoveFace
( surfaceSET, aggressive, redraw )
Description:
Removes faces from a solid and then heals the gap.
Input:
The ID of a set that contains a list of surface IDs that will be
INT4 surfaceSET removed. Alternatively, if you specify a negative value, this is simply
the ID of the single surface to remove.
BOOL aggressive Attempts aggressive face removal.
BOOL redraw Redraw the model after command.
Output:
None
Return Code:
FE_FAIL Could not remove face.
Remarks/Usage:
None
Example:
None
feSolidExtendToSurface API-445

3.6.10.25 feSolidExtendToSurface

feSolidExtendToSurface
( su aggressive, redraw )
Description:
Attempts to extend a selected surface on a solid to a different surface, which may or may not be part of
a solid. If successful, the original solid will be modified.
Input:
INT4 suID1 ID of a single surface on a solid to extend.
ID of a single surface or surface on a solid to extend the surface spec-
INT4 suID2
ified in suID1 to.
Output:
None
Return Code:
FE_FAIL Could not remove face.
Remarks/Usage:
None
Example:
None
API-446 feSolidFillCavity

3.6.10.26 feSolidFillCavity

feSolidFillCavity
( curveID )
Description:
Fills a cavity or hole in a solid by selecting a single seed curve, usually part of a loop.
Input:
The ID of a single curve to use as the seed curve, usually part of a
INT4 curveID
loop.
Output:
None
Return Code:
FE_FAIL Could not remove face.
Remarks/Usage:
Using this API call is essentially the same as using the Geometry, Solid, Fill Hole command in the user
interface.
Example:
None
feSolidRemoveBlendsBelowRadius API-447

3.6.10.27 feSolidRemoveBlendsBelowRadius

feSolidRemoveBlendsBelowRadius
( soSetID, max_rad )
Description:
This method attempts to remove all blends (fillet surfaces) from a solid, with an option to limit blend
removal to the blends which have a radius less than or equal to the specified value.
Input:
ID of a Set object containing existing solids for blend removal. Alter-
INT4 solSetID natively, specify as a negative value try and remove blends from a
single solid.
Value of maximum blend radius to remove. An attempt will be made
to remove all blends with a radius less than or equal to this value.
REAL8 max_rad
Enter a value of 0.0 to attempt to remove all blends, regardless of
radius.
Output:
None
Return Code:
FE_FAIL Could not remove face.
Remarks/Usage:
Using this call is essentially the same as using the Feature Removal Tool in the Meshing Toolbox with
Feature Type set to Blends and max_rad being > 0.0 enables Limit Size and sets the value.
Example:
None
API-448 feSolidRemoveRedundantPoint

3.6.10.28 feSolidRemoveRedundantPoint

feSolidRemoveRedundantPoint
( ptID )
Description:
This method attempts to remove redundant vertices from a solid. Internally, this command will take a
vertex on a Parasolid body, and if the attached curves are tangent, it attempts to replace the curves with
a single one, and remove the vertex.
Input:
INT4 ptID ID of point to attempt to remove
Output:
None
Return Code:
FE_FAIL Could not remove point
Remarks/Usage:

Example:
None
feSolidMidSurfaceManualInput API-449

3.6.10.29 feSolidMidSurfaceManualInput

feSolidMidSurfaceManualInput
( suSet1_ID, suSet2_ID )
Description:
This method attempts to create a midsurface using the Variable Thickness Processing option between
two sets of specified surfaces.
Input:
ID of a Set object containing existing surfaces on side 1 of a solid.
INT4 suSet1_ID
Alternatively, specify as a negative value to select a single surface.
ID of a Set object containing existing surfaces on side 2 of a solid.
INT4 suSet2_ID
Alternatively, specify as a negative value to select a single surface.
Output:
None
Return Code:

Remarks/Usage:

Example:
None
API-450 feSolidRayFire

3.6.10.30 feSolidRayFire

feSolidRayFire
( soSetID, nNumRay, vRayLoc, vRayDir, nHitSurface, vHitLoc )
Description:
This method finds the locations on solids hit by rays specified by the user
Input:
ID of a Set object containing the IDs of the solids that you want to
INT4 soSetID
hit
INT4 nNumRay The number of rays that are contained in vRayLoc, vRayDir
REAL8 vRayLoc[0..3*nNum- The location of the base of the ray/vector in Global Rectangular
Ray-1] coordinates
REAL8 vRayDir[0..3*nNum-
The components of the direction of the ray
Ray-1]
Output:
INT4 nHitSurface[0..nNum-
The ID of the surface that each ray hits (0 if it misses all surfaces)
Ray-1]
REAL8 vHitLoc[0..3*nNum- The Global Rectangular XYZ coordinates where the ray hit the sur-
Ray-1] faces
Return Code:
FE_BAD_DATA If any of the solids have a different scale factor than the others
FE_NOT_AVAILABLE If none of the Solid IDs you specified exist.
Remarks/Usage:

Example:
None
feGenerateCopy API-451

3.6.11 Geometry and Mesh Generation Methods


The methods described in this section are applicable to both geometry and mesh entities. The
appropriate entities that can be used with each method are listed in the method tables.
3.6.11.1 feGenerateCopy

feGenerateCopy
( entityTYPE, entitySET, alongVEC, nodeINC, match )
Description:
Creates new entities by copying existing entities along a vector.
Input:
The entity type to copy:
INT4 entityTYPE 3=Point, 4=Curve, 5=Surface, 6=Volume, 7=Node, 8=Element,
39=Solid.
The ID of a set that contains a list of entity IDs that will be copied.
INT4 entitySET Alternatively, if you specify a negative value, this is simply the ID of
the single entity to copy.
The components of the vector used to copy the entities. Components
must be specified in global rectangular coordinates. This is not a unit
REAL8 alongVEC[0..2]
vector; the entities are copied a distance equal to the length of the
vector.
Only used if entityTYPE=Element. When you are copying elements,
there are two possible approaches that you can take. You can either
copy the elements and all of the nodes that they are used to define
them, or you can just copy the element connectivity onto another
INT4 nodeINC
existing set of nodes. If you want to copy the nodes and elements, set
nodeINC=0. If you want to copy the elements onto existing nodes,
you should set nodeINC equal to the difference in nodeIDs from the
nodes on the existing elements to the nodes on the new elements.
If True, then loads and constraints on the original entities are copied
BOOL match to the newly created entities. If False, only the selected entities are
duplicated. (only available in v8.2 and later)
Output:
None
Return Code:
FE_FAIL Could not copy the entities.
Remarks/Usage:
None
Example:
API-452 feGenerateCopy

feGenerateCopy
( entityTYPE, entitySET, alongVEC, nodeINC, match )
None
feGenerateRadialCopy API-453

3.6.11.2 feGenerateRadialCopy

feGenerateRadialCopy
( entityTYPE, entitySET, origVEC, length, match )
Description:
Creates new entities by radially copying existing entities about an origin.
Input:
The entity type to copy:
INT4 entityTYPE 3=Point, 4=Curve, 5=Surface, 6=Volume, 7=Node, 8=Element. Sol-
ids cannot be radially copied.
The ID of a set that contains a list of entity IDs that will be copied.
INT4 entitySET Alternatively, if you specify a negative value, this is simply the ID of
the single entity to copy.
The coordinates of the origin around which the radial copy will be
REAL8 origVEC[0..2]
performed. The coordinates must be in global rectangular.
The radial distance to copy the entities. A positive value increases
REAL8 length
the distance from the origin. A negative value decreases the distance.
If True, then loads and constraints on the original entities are copied
BOOL match to the newly created entities. If False, only the selected entities are
duplicated. (only available in v8.2 and later)
Output:
None
Return Code:
FE_FAIL Could not copy the entities.
Remarks/Usage:
None
Example:
None
API-454 feGenerateScale

3.6.11.3 feGenerateScale

feGenerateScale
( entityTYPE, entitySET, origVEC, scaleVEC, csysID, match )
Description:
Creates new entities by scaling entities about a location.
Input:
The entity type to scale:
INT4 entityTYPE 3=Point, 4=Curve, 5=Surface, 6=Volume, 7=Node, 8=Element,
39=Solid.
The ID of a set that contains a list of entity IDs that will be scaled.
INT4 entitySET Alternatively, if you specify a negative value, this is simply the ID of
the single entity to scale.
The coordinates of the origin around which the scale will be per-
REAL8 origVEC[0..2] formed. The coordinates must be in the coordinate system specified
in csysID - not necessarily global rectangular.
The scaling values. The entries in this vector are the scale factors in
the X,Y and Z coordinate directions of the csysID coordinate system.
REAL8 scaleVEC[0..2]
If you want a uniform scale, you must still set all three values to the
same scale factor.
The ID of a coordinate system that will be used to perform the scal-
INT4 csysID ing. Usually this will be 0=Global rectangular, unless you want to
scale about some rotated set of axes.
If True, then loads and constraints on the original entities are copied
BOOL match to the newly created entities. If False, only the selected entities are
duplicated. (only available in v8.2 and later)
Output:
None
Return Code:
FE_FAIL Could not scale the entities.
Remarks/Usage:
None
Example:
None
feGenerateRotate API-455

3.6.11.4 feGenerateRotate

feGenerateRotate
( entityTYPE, entitySET, origVEC, axisVEC, rotANGLE, transDIST, match )
Description:
Creates new entities by rotating entities about an axis.
Input:
The entity type to rotate:
INT4 entityTYPE 3=Point, 4=Curve, 5=Surface, 6=Volume, 7=Node, 8=Element,
39=Solid.
The ID of a set that contains a list of entity IDs that will be rotated.
INT4 entitySET Alternatively, if you specify a negative value, this is simply the ID of
the single entity to rotate.
The coordinates of the origin of the axis of rotation. Must be speci-
REAL8 origVEC[0..2]
fied in global rectangular coordinates.
The components of the axis of rotation, in global rectangular coordi-
REAL8 axisVEC[0..2] nates. The rotation will be in positive, right-hand rule sense about
this axis.
REAL8 rotANGLE The angle of rotation about the axis vector, in degrees.
The translation distance, through which the entities are translated
REAL8 transDIST
along the rotation axis, as they are rotated. Usually this is zero.
If True, then loads and constraints on the original entities are copied
BOOL match to the newly created entities. If False, only the selected entities are
duplicated. (only available in v8.2 and later)
Output:
None
Return Code:
FE_FAIL Could not rotate the entities.
Remarks/Usage:
None
Example:
None
API-456 feGenerateReflect

3.6.11.5 feGenerateReflect

feGenerateReflect
( entityTYPE, entitySET, origVEC, normVEC, trapWIDTH, match )
Description:
Creates new entities by reflecting entities about a plane.
Input:
The entity type to reflect:
INT4 entityTYPE 3=Point, 4=Curve, 5=Surface, 6=Volume, 7=Node, 8=Element,
39=Solid.
The ID of a set that contains a list of entity IDs that will be reflected.
INT4 entitySET Alternatively, if you specify a negative value, this is simply the ID of
the single entity to reflect.
The coordinates of the origin of the reflection plane. Must be speci-
REAL8 origVEC[0..2]
fied in global rectangular coordinates.
The components of the normal to the reflection plane, in global rect-
angular coordinates. It is not necessary for this axis to point toward
REAL8 normVEC[0..2]
(or away from) the existing entities - either vector will yield the same
result.
The trapWIDTH of the reflection plane. Entities that fall within this
REAL8 trapWIDTH
distance from the reflection plane will not be reflected.
If True, then loads and constraints on the original entities are copied
BOOL match to the newly created entities. If False, only the selected entities are
duplicated. (only available in v8.2 and later)
Output:
None
Return Code:
FE_FAIL Could not reflect the entities.
Remarks/Usage:
None
Example:
None
feCurveProjectCurveOntoSurfaces API-457

3.6.12 Meshing Toolbox - Geometry Editing Tool Methods


The methods described in this section provide access to certain operations found in the Meshing
Toolboxs Geometry Editing Tool.
3.6.12.1 feCurveProjectCurvesOntoSurfaces

feCurveProjectCurveOntoSurfaces
( cuSetID, suSetID, extendMode, attrib_trans )
Description:
This method mimics the functionality of the Meshing Toolbox's Geometry Editing Tool - Project Curve
Operation, which projects any number of selected curves onto any number of selected surfaces
Input:
The ID of the set of existing curves to project. Alternatively, specify
INT4 cuSetID
as a negative value to project a single curve.
The ID of the set of existing surfaces to project onto. Alternatively,
INT4 suSetID
specify as a negative value to project onto a single surface.
Specifies the Imprint Mode, 0=Impint (no extension of curves),
INT4 extendMode
1=Imprint, Extend, 2=Imprint, Extend, Clean
If True, will assign any meshing attributes on the curves in cuSetID
BOOL attrib_trans
and assign them to the new curves created by the projection.
Output:
None
Return Code:
None
Remarks/Usage:
None
Example:
None
API-458 feSolidExtendEdgesToSurfaces

3.6.12.2 feSolidExtendEdgesToSurfaces

feSolidExtendEdgesToSurfaces
( cuSetID, suSetID, extendShape, bEdgeAuto )
Description:
This method mimics the functionality of the Meshing Toolbox's Geometry Editing Tool - Extend Oper-
ation, which extends any number of selected surface edge curves to the selected surfaces
Input:
ID of a Set object containing existing surface edge curves to extend
INT4 cuSetID to a surface. Alternatively, specify as a negative value to extend a
single surface edge curve.
ID of a Set object containing existing surfaces to extend to. Alterna-
INT4 suSetID
tively, specify as a negative value to extend to a single surface.
Specifies the Extend Shape, 0=Linear, 1=Continuous Curvature,
INT4 extendShape
2=Reflective
If True, will attempt to automatically select additional curves needed
to extend an entire body at once (i.e., if one curve at the end of a pipe
BOOL bAutoEdge is selected, both curves on the end of a pipe would be extended when
this option is set to True). When False, only selected curves are
extended
Output:
None
Return Code:
None
Remarks/Usage:
Using this call with bAutoEdge set to False mimics behavior of the Extend Operation when using
Extend To set to Surface, while setting it to True mimics behavior of Extend To set to Surface Auto
Curve.
Example:
None
feSolidMovePointOntoGeometry API-459

3.6.12.3 feSolidMovePointOntoGeometry

feSolidMovePointOntoGeometry
( ptSetID, geomID, extendShape, bAlongEdge )
Description:
This method mimics the functionality of the Meshing Toolbox's Geometry Editing Tool - Project/Move
Point Operation, which moves points to a specified point or projects points onto the specified curve, sur-
face, or solid. This only works for points on solid or surface geometry and the underlying geometry will
be modified after the points are moved/projected.
Input:
ID of a Set object containing existing points on solids or surfaces to
INT4 ptSetID move onto the type of geometry selected with geomType. Alterna-
tively, specify as a negative value to move a single point.
ID of geometric entity to move/project the points. Type of entity
INT4 geomID
defined using geomType
Type of geometric entity to move to/project onto. Use enum zData-
INT4 geomType
Type to select from available entity types.
If True, will project using a vector matching an edge each point is
BOOL bAlongEdge connected to instead of doing a normal projection based on proxim-
ity to the curve, surface, or solid.
Output:
None
Return Code:
None
Remarks/Usage:

Example:
None
API-460 feSolidMovePointOntoGeometry
API-461

3.7 Connection Methods


Connection Methods include:
Section 3.7.1, "Generating Connections"
API-462 feConnectAuto

3.7.1 Generating Connections


3.7.1.1 feConnectAuto

feConnectAuto
( solidSET, linearTolerance, angleTolerance, strategy, bSelfConnect, bCombineAll,
nConnectProp, bGlued )
Description:
This function is obsolete. It is the same as calling feConnectAuto2( ) with connectType = 1. Refer to the
documentation for that function for more information.

3.7.1.2 feConnectAuto2

feConnectAuto2
( solidSET, connectType, linearTolerance, angleTolerance, strategy, bSelfConnect,
bCombineAll, nConnectProp, bGlued )
Description:
Automatically generates connections between solids
Input:
The ID of a Set object that contains the IDs of solids to connect.
Alternatively, if solidSET is negative, it is the ID of a single solid to
INT4 solidSET
use (although this will not do anything unless bSelfConnect is also
True)
The type of connections to search for 0=All, 1=Face to Face, 2=Edge
INT4 connectType
to Face
The maximum distance between adjacent faces to find connections.
REAL8 linearTolerance
If 0.0, then use default.
The maximum angle deviation between adjacent planar faces to still
REAL8 angeTolerance
consider them for connection. If 0.0, then use default.
A value between 1 and 5 that indicates the search strategy. You can
INT4 strategy
also specify strategy = 0 to use the default strategy
BOOL bSelfConnect If True, allow connections between surfaces of the same solid
If True, connections between faces of the same two solids will be
BOOL bCombineAll
combined into a single conneciton
The ID of a Connection Property to be used for the connections (if
INT4 nConnectProp nonzero, this Connection Property must exist). If specified as 0, a
new default property will be created.
Only used if nConnectProp is 0. If True, the default property will be
BOOL bGlued
a Glued type, otherwise a Contact type.
feConnectAuto2 API-463

feConnectAuto2
( solidSET, connectType, linearTolerance, angleTolerance, strategy, bSelfConnect,
bCombineAll, nConnectProp, bGlued )
Output:
None
Return Code:
FE_FAIL Creating connections failed
FE_INVALID The search strategy is invalid
FE_NOT_EXIST The Connection Property does not exist.
Remarks/Usage:
None
Example:
The following routine automatically connects all solids with a new Glued connection...
Sub Main
Dim App As femap.model
Set App = GetObject(,"femap.model")
Dim s As femap.Set
Set s = App.feSet

s.AddAll( FT_SOLID )
App.feConnectAuto( s.ID, 0.001, 1.0, 0, False, True, 0, True )
End Sub
API-464 feConnectAuto2
feConnectAuto2 API-465
API-466

3.8 Model Methods


In general, the API does not contain methods that duplicate the functionality that is found on the
Model menu. Most of these commands simply create single finite element entities in your model,
and those operations are supported through the Entity objects, described in Section 5, "FEMAP
Entity Objects".
In addition to those basic creation capabilities however, there are several output processing com-
mands that are located on the Model menu. Those are supported directly, and are described in the
following sections.
Model Methods include:
Section 3.8.1, "Model Load Methods"
Section 3.8.2, "Model Constraint Methods"
Section 3.8.3, "Model Output Methods"
Section 3.8.4, "Model Information Methods"
feLoadCombine API-467

3.8.1 Model Load Methods


3.8.1.1 feLoadCombine

feLoadCombine
( fromSET, toSET, scale )
Description:
Combines a Load set into another set
Input:
INT4 fromSET The ID of the Load Set to be combined
INT4 toSET The ID of the Load Set which will contain the combined loads.
A scale factor to apply to the loads being combined. Normally set to
REAL8 scale
1.0 to simply combine loads.
Output:
None
Return Code:
FE_FAIL Could not combine the load set, most likely it does not exist.
Remarks/Usage:
The functionality of this method is identical to the Model, Load, Combine command. All restrictions on
combinations and scale factors that apply to that command apply equally to this method.
Example:
None
API-468 feLoadFromFreebody

3.8.1.2 feLoadFromFreebody

feLoadFromFreebody
( freebodyID, nodeSetID, outSetID, loadSetID, doSummation, doNodes, overrideNode-
Check)
Description:
Creates applied loads from freebody loads
Input:
INT4 freebodyID ID of freebody to use to determine load values
Set ID containing node IDs to load; note that given nodes must exist
INT4 nodeSetID
in the specified freebody
INT4 outSetID Output set ID from which to retrieve load values
INT4 loadSetID Load set ID to store load definitions
BOOL doSummation Create loads for total summation
BOOL doNodes Create loads for nodal summations
When set to False, then if you specify a node that is not in the free-
body and potentially may not have any nodes, the routine returns
BOOL overrideNodeCheck
FE_FAIL or FE_NOT_EXIST. If True, the loads will be created
anyway (has potential to create Zero loads).
Output:
None
Return Code:
FE_FAIL Invalid freebody, node(s), output set, or load set ID specified
Freebody, node(s), output set, or load set specified does not exist in
FE_NOT_EXIST
the database
One or more of the nodes specified are not included in the freebody
FE_INVALID object or doSummation is TRUE when specified freebody is not in
interface mode
Remarks/Usage:
feLoadFromFreebody creates applied loads from freebody loads. The load components and contribu-
tions to be included in the created loads are obtained from the specified freebody. Up four load defini-
tions will be created in the specified load set based on the options specified in this command and the
attributes set in the freebody: total resultant forces, total resultant moments, nodal forces, and nodal
moments.
Example:
None
feBCCombine API-469

3.8.2 Model Constraint Methods


3.8.2.1 feBCCombine

feBCCombine
( fromSET, toSET, overwrite )
Description:
Combines a Constraint set into another set
Input:
INT4 fromSET The ID of the Constraint Set to be combined
The ID of the Constraint Set which will contain the combined con-
INT4 toSET
straints.
If True, constraints in the toSET will be overwritten with any
duplicate constraints on the same node. If False, degrees of freedom
BOOL overwrite
on the common nodes will be combined to form a new constraint.
Does not apply to constraint equations.
Output:
None
Return Code:
FE_FAIL Could not combine the constraint set, most likely it does not exist.
Remarks/Usage:
The functionality of this method is identical to the Model, Constraint, Combine command. All restric-
tions on combinations that apply to that command apply equally to this method.
Example:
None
API-470 feOutputProcess

3.8.3 Model Output Methods


3.8.3.1 feOutputProcess

NOTE: This method is obsolete. There are many combinations of options that could be passed
to this method that are invalid and will not work. Please switch to using one of the other Out-
putProcess methods that provide specific access to each of the processing methods.

feOutputProcess
( count, full_set, processing_method, approach, from_setID, from_vectorID, to_setID,
to_vectorID, groupID, factor, overwrite, ply_summary, set_info )
Description:
Provides the functionality that is available through the Model, Output, Process command to copy, com-
bine, envelope, or convert output.
Input:
The number of processing operations; that is, the number of entries
INT4 count
in the other arrays.
Set to True if the operations will process entire sets of output, or
BOOL full_set False if individual vectors are to be processed. If True,
from_vectorID and to_vectorID are ignored.
The type of processing to be done: 0=Copy, 1=Combine, 2=Linear,
INT4 processing_method
3=RSS, 4=Convert, 5=Envelope, 6=Error Estimate.
Additional approach required by certain methods. If
processing_method=5,Envelope then (0=Max, 1=Min, 2=Max Abs).
If processing_method=6, Error Estimate then (0=Max Diff, 1=Diff to
INT4 approach[0..count-1]
Avg, 2=%Max Diff, 3=%Diff to Avg, 4=Norm% Max Diff,
5=Norm% Diff to Avg). If processing_method=4, Convert then
(0=Avg, 1=Max).
INT4 from_setID[0..count-1] The ID of the output set to process.
INT4 from _vectorID[0..count-
The ID of the output vector to process (not used if full_set=True).
1]
INT4 to_setID[0..count-1] The ID of the output set where processed data will be created.
The ID of the output vector where processed data will be created (not
INT4 to_vectorID[0..count-1]
used if full_set=True).
The ID of the group used to restrict output processing. If 0, all avail-
INT4 groupID[0..count-1]
able output, on the full model is processed.
The scale factor for linear and RSS combinations. The Skip Below
REAL8 factor[0..count-1]
value for Error Estimates.
BOOL overwrite[0..count-1] Flag to overwrite existing output if you are combining output.
feOutputProcess API-471

feOutputProcess
( count, full_set, processing_method, approach, from_setID, from_vectorID, to_setID,
to_vectorID, groupID, factor, overwrite, ply_summary, set_info )
BOOL ply_summary[0..count- For Envelope, if True, this will compute the ply summary informa-
1] tion for laminate output.
For Envelope, if True and doing full sets, this will compute the addi-
BOOL set_info[0..count-1]
tional set summary information for the enveloped data.
Output:
None
Return Code:
FE_FAIL Could not process the requested information.
Remarks/Usage:
Only combinations of options that are available in the Model, Output, Process command in FEMAP will
correctly process information through the API.
Example:
None
API-472 feOutputProcessCopy

3.8.3.2 feOutputProcessCopy

feOutputProcessCopy
( bFullSet, from_setID, from_vectorID, to_setID )
Description:
Allows you to Copy a single output set or vector.
Input:
Set to True if the operation will process entire sets of output, or False
BOOL bFullSet if individual vectors are to be processed. If True, from_vectorID and
to_setID are ignored.
INT4 from_setID The ID of the output set to process.
INT4 from _vectorID The ID of the output vector to process
The ID of the Set to contain the resulting copy. If 0, a new Output
INT4 to_setID
Set will be created.
Output:
None
Return Code:
FE_FAIL Could not process the requested information.
Remarks/Usage:
None
Example:
None
feOutputProcessMerge API-473

3.8.3.3 feOutputProcessMerge

feOutputProcessMerge
( bFullSet, bOverwrite, nCount, from_setID, from_vectorID, to_setID )
Description:
Allows you to Combine/Merge Output in Sets or Vectors
Input:
Set to True if the operation will process entire sets of output, or False
BOOL bFullSet if individual vectors are to be processed. If True, from_vectorID and
to_setID are ignored.
If True, existing Output will be overwritten. If False, output will only
BOOL bOverwrite
be merged onto nodes/elements that have no output.
INT4 nCount The number of entries in from_setID and from_vectorID
INT4 from_setID[0..nCount-1] The IDs of the output sets to process.
INT4 from
The IDs of the output vectors to process.
_vectorID[0..nCount-1]
The ID of the Set to contain the resulting copy. If 0, a new Output
INT4 to_setID
Set will be created.
Output:
None
Return Code:
FE_FAIL Could not process the requested information.
Remarks/Usage:
Each entry in from_setID and from_vectorID is used as a pair. For example from_setID[0] and
from_vectorID[0] mean output in the vector from_vectorID[0] in from_setID[0].
Example:
None
API-474 feOutputProcessLinearCombination

3.8.3.4 feOutputProcessLinearCombination

feOutputProcessLinearCombination
( bFullSet, nApproach, nCount, dScaleFactor, from_setID, from_vectorID, to_setID )
Description:
Performs a linear combination, with a scale factor, of Output Sets or Vectors
Input:
Set to True if the operation will process entire sets of output, or False
BOOL bFullSet if individual vectors are to be processed. If True, from_vectorID and
to_setID are ignored.
0=Combine All Vectors in All Sets, 1=Combine All Vectors in Each
INT4 nApproach Set, 2=Combine Each Vector across All Sets. Ignored and always =2
if bFullSet is True.
The number of entries in dScaleFactor, from_setID and
INT4 nCount
from_vectorID
REAL8 dScaleFac-
The scale factor to apply to each set or vector.
tor[0..nCount-1]
INT4 from_setID[0..nCount-1] The IDs of the output sets to process.
INT4 from
The IDs of the output vectors to process.
_vectorID[0..nCount-1]
The ID of the Set to contain the resulting combination. If 0, a new
INT4 to_setID
Output Set will be created.
Output:
None
Return Code:
FE_FAIL Could not process the requested information.
Remarks/Usage:
None
Example:
None
feOutputProcessRSSCombination API-475

3.8.3.5 feOutputProcessRSSCombination

feOutputProcessRSSCombination
( bFullSet, nApproach, nCount, dScaleFactor, from_setID, from_vectorID, to_setID )
Description:
Performs an RSS (root sum squared) combination, with a scale factor, of Output Sets or Vectors
Input:
Set to True if the operation will process entire sets of output, or False
BOOL bFullSet if individual vectors are to be processed. If True, from_vectorID and
to_setID are ignored.
0=Combine All Vectors in All Sets, 1=Combine All Vectors in Each
INT4 nApproach Set, 2=Combine Each Vector across All Sets. Ignored and always =2
if bFullSet is True.
The number of entries in dScaleFactor, from_setID and
INT4 nCount
from_vectorID
REAL8 dScaleFac-
The scale factor to apply to each set or vector.
tor[0..nCount-1]
INT4 from_setID[0..nCount-1] The IDs of the output sets to process.
INT4 from
The IDs of the output vectors to process.
_vectorID[0..nCount-1]
The ID of the Set to contain the resulting combination. If 0, a new
INT4 to_setID
Output Set will be created.
Output:
None
Return Code:
FE_FAIL Could not process the requested information.
Remarks/Usage:
None
Example:
None
API-476 feOutputProcessConvert

3.8.3.6 feOutputProcessConvert

feOutputProcessConvert
( approach, from_setID, from_vectorID, to_setID, to_vectorID, groupID )
Description:
Allows you to Convert a single output vector between nodal and elemental locations.
Input:
INT4 approach 0=Avg, 1=Max
INT4 from_setID The ID of the output set to process.
INT4 from _vectorID The ID of the output vector to process
INT4 to_setID Not Used
INT4 to_vectorID Not Used
The ID of the group used to restrict output processing. If 0, all avail-
INT4 groupID
able output, on the full model is processed.
Output:
None
Return Code:
FE_FAIL Could not process the requested information.
Remarks/Usage:
None
Example:
None
feOutputProcessEnvelope API-477

3.8.3.7 feOutputProcessEnvelope

feOutputProcessEnvelope
( bFullSet, nType, nApproach, bEnvelopeInSets, bEnvelopeAcrossSets, bSetInfo,
nCount, from_setID, from_vectorID, to_setID )
Description:
Envelopes results in one or more Output Sets or Vectors to find worst-case scenarios.
Input:
Set to True if the operation will process entire sets of output, or False
BOOL bFullSet if individual vectors are to be processed. If True, from_vectorID and
to_setID are ignored.
The Type of envelope to create 0=Max, 1=Min, 2=Max Absolute
INT4 nType
Value.
0=Envelope All Vectors in All Sets, 1=Envelope All Locations (like
INT4 nApproach all Plys, all Stress Recovery Locations, ...), 2=Envelope Each Vector
across All Sets. Ignored and always =2 if bFullSet is True.
If True, an Envelope is created and stored in the same set as the orig-
BOOL bEnvelopeInSets inal results Ignored and always False if bFullSet=True or nAp-
proach=2
If True, results for similar vectors are enveloped across all of the
BOOL bEnvelopeAcrossSets selected sets. Ignored and always True if bFullSet=True or nAp-
proach=2
If True extra output vectors are created which contain the ID of the
BOOL bSetInfo
set and possibly the location where the envelope value came from.
INT4 nCount The number of entries in from_setID and from_vectorID
INT4 from_setID[0..nCount-1] The IDs of the output sets to process.
INT4 from
The IDs of the output vectors to process. Ignored if bFullSet=True
_vectorID[0..nCount-1]
The ID of the Set to contain the resulting combination. If 0, a new
INT4 to_setID Output Set will be created. Ignored and always 0 if bFullSet=True or
nApproach=2
Output:
None
Return Code:
FE_FAIL Could not process the requested information.
Remarks/Usage:
API-478 feOutputProcessEnvelope

feOutputProcessEnvelope
( bFullSet, nType, nApproach, bEnvelopeInSets, bEnvelopeAcrossSets, bSetInfo,
nCount, from_setID, from_vectorID, to_setID )
Provides more flexibility than feOutputProcessEnvelopeFromSets as different output vectors may be
specified for each output set.
Example:
None
feOutputProcessEnvelopeFromSets API-479

3.8.3.8 feOutputProcessEnvelopeFromSets

feOutputProcessEnvelopeFromSets
( bFullSet, nType, nApproach, bEnvelopeInSets, bEnvelopeAcrossSets, bSetInfo,
setSET, vectorSET, to_setID )
Description:
Envelopes results in one or more Output Sets or Vectors to find worst-case scenarios specified via a set
of Output Sets and optionally a set of Output Vectors.
Input:
Set to True if the operation will process entire sets of output, or False
BOOL bFullSet if individual vectors are to be processed. If True, from_vectorID and
to_setID are ignored.
The Type of envelope to create 0=Max, 1=Min, 2=Max Absolute
INT4 nType
Value.
0=Envelope All Vectors in All Sets, 1=Envelope All Locations (like
INT4 nApproach all Plys, all Stress Recovery Locations, ...), 2=Envelope Each Vector
across All Sets. Ignored and always =2 if bFullSet is True.
If True, an Envelope is created and stored in the same set as the orig-
BOOL bEnvelopeInSets inal results Ignored and always False if bFullSet=True or nAp-
proach=2
If True, results for similar vectors are enveloped across all of the
BOOL bEnvelopeAcrossSets selected sets. Ignored and always True if bFullSet=True or nAp-
proach=2
If True extra output vectors are created which contain the ID of the
BOOL bSetInfo
set and possibly the location where the envelope value came from.
The ID of a set that contains a list of Output Set IDs to use in the
INT4 setSET envelope. Alternatively, if you specify a negative value, this is sim-
ply the ID of the single Output Set to use.
The ID of a set that contains a list of Output Vector IDs to use in the
INT4 vectorSET envelope. Alternatively, if you specify a negative value, this is sim-
ply the ID of the single Output Vector to use.
The ID of the Set to contain the resulting combination. If 0, a new
INT4 to_setID Output Set will be created. Ignored and always 0 if bFullSet=True or
nApproach=2
Output:
None
Return Code:
FE_FAIL Could not process the requested information.
API-480 feOutputProcessEnvelopeFromSets

feOutputProcessEnvelopeFromSets
( bFullSet, nType, nApproach, bEnvelopeInSets, bEnvelopeAcrossSets, bSetInfo,
setSET, vectorSET, to_setID )
Remarks/Usage:
Provides a streamlined method of entering multiple output sets and/or output vectors by using two Set
objects. Especially useful when using the feSelectOutput (Section 3.15.4.2, "feSelectOutput") or feOut-
putSelectSets (Section 3.15.4.3, "feSelectOutputSets") entity selection methods for selecting the Output
Set(s) and Output Vector(s).
Example:
None
feOutputProcessErrorEstimate API-481

3.8.3.9 feOutputProcessErrorEstimate

feOutputProcessErrorEstimate
( nMethod, from_setID, from_vectorID, groupID )
Description:
Allows you to compute an Error Estimate of a single output vector.
Input:
0=Max Diff, 1=Diff to Avg, 2=%Max Diff, 3=%Diff to Avg,
INT4 nMethod
4=Norm% Max Diff, 5=Norm% Diff to Avg
INT4 from_setID The ID of the output set to process.
INT4 from _vectorID The ID of the output vector to process
The ID of the group used to restrict output processing. If 0, all avail-
INT4 groupID
able output, on the full model is processed.
Output:
None
Return Code:
FE_FAIL Could not process the requested information.
Remarks/Usage:
None
Example:
None
API-482 feOutputFromLoad

3.8.3.10 feOutputFromLoad

feOutputFromLoad
( setID, loadType )
Description:
Creates output from existing load information.
Input:
The ID of a set that contains a list of node or elements IDs that will
INT4 setID be checked for loads to create the output. Alternatively, if you spec-
ify 0, all nodes/elements will be checked.
The type of load to check to create output: Force=16, Displace-
ment=32, Velocity=2048, Acceleration=64, Nodal Tempera-
ture=4096, Nodal HeatGen=2, Nodal Heat Flux=4, Elem Distributed
INT4 loadType Load=128, Pressure=256, Elem Temperature=8192, Elem Heat Gen
512, Elem Heat Flux=1024, Elem Convection=16384, Elem Radia-
tion=32768, Fluid Pressure=131072, Fluid Tracking=262144, Fluid
Fan Curve=2097152.
Output:
None
Return Code:
FE_FAIL Could not compute output.
Remarks/Usage:
None
Example:
None
feOutputTransform API-483

3.8.3.11 feOutputTransform

feOutputTransform
( REMOVED - CAN NO LONGER BE USED )
Description:
*This method is obsolete and has been removed. It will not work in version 11.1 and above.
Use feOutputTransform2 instead.
API-484 feOutputTransform2

3.8.3.12 feOutputTransform2

feOutputTransform2
( setSET, vecSET, nodeSET, elemSET, nodalMode, nodalCSysID, nodalGlobalComp,
plateMode, plateCSysID, plateDOF, plateVec, plateAngle, solidMode, solidCSysID, engr-
ShearStrain)
Description:
Transforms existing output to another orientation. This function replaces feOutputTransform, which is
obsolete and should no longer be used.
Input:
ID of set containing the IDs of output sets containing output vectors
INT4 setSET to transform. Alternatively, if you specify a negative value, this is
simply the ID of the single output set.
ID of set containing the IDs of output vectors to transform. Alterna-
INT4 vecSET tively, if you specify a negative value, this is simply the ID of the sin-
gle output vector.
ID of set containing the IDs of nodes to transform output. Alterna-
INT4 nodeSET tively, if you specify a negative value, this is simply the ID of the sin-
gle node.
ID of set containing the IDs of elements to transform output. Alterna-
INT4 elemSET tively, if you specify a negative value, this is simply the ID of the sin-
gle element.
Sets to transformation method for Nodal Output Vectors. This can
only be set to FOD_NONE (no transformation of Nodal Output Vec-
enum nodalMode tors), FOD_VECTOR_TO_CSYS (Into CSys transformation
method), or FOD_VECTOR_TO_NODE_OUTPUT_CSYS (Into
Node Output CSys transformation method)
ID of coordinate system used to transform nodal output vectors when
INT4 nodalCSysID
nodalMode is set to FOD_VECTOR_TO_CSYS.
When True, additional output vectors will be created representing the
BOOL nodalGlobalComp
components used to generate the transformed output vector(s).
Sets to transformation method for Plate Forces, Stresses and Strains.
This can only be set to FOD_NONE (no transformation of Plate
Forces, Stresses and Strains), FOD_PLATE_TO_CSYS (Into CSys
enum plateMode
transformation method), FOD_PLATE_TO_MATL (Into Matl Direc-
tion transformation method), or FOD_PLATE_TO_VECTOR
(Along Vector transformation method).
ID of coordinate system used to transform plate force, stress, and/or
INT4 plateCSysID
strain vectors when plateMode is set to FOD_PLATE_TO_CSYS.
feOutputTransform2 API-485

feOutputTransform2
( setSET, vecSET, nodeSET, elemSET, nodalMode, nodalCSysID, nodalGlobalComp,
plateMode, plateCSysID, plateDOF, plateVec, plateAngle, solidMode, solidCSysID, engr-
ShearStrain)
Indicates which axis of the coordinate system specified in
INT4 plateDOF plateCSysID will be used for transformation. 1=X axis, 2=Y axis,
and 3=Z axis
The XYZ components of the vector to use for transformation when
REAL8 plateVec[0..2]
plateMode is set to FOD_PLATE_TO_VECTOR
REAL8 plateAngle Specifies value for Tolerance Angle
Sets to transformation method for Solid Stresses and Strains. This
can only be set to FOD_NONE (no transformation of Solid Stresses
enum solidMode and Strains), FOD_SOLID_TO_CSYS (Into CSys transformation
method), or FOD_SOLID_TO_MATL (Into Matl Direction transfor-
mation method).
ID of coordinate system used to transform solid stress and/or strain
INT4 solidCSysID
vectors when solidMode is set to FOD_SOLID_TO_CSYS.
BOOL engrShearStrain When True, transformation assumes Engineering Shear Strain.
Output:
None
Return Code:
FE_BAD_TYPE Variant does not contain real numbers
FE_NOT_AVAILABLE Problem retrieving data from the variant
FE_TOO_SMALL Not enough entries in array
FE_INVALID Invalid value for nodalMode, plateMode, plateDOF, or solidMode
FE_NOT_EXIST Coordinate System does not exist
FE_FAIL Could not transform output.
Remarks/Usage:
The Output Orientation can be set using the various Pref_Orient options. See Section 3.3.1.8, "File,
Preferences - Geometry/Model tab" for a complete list of available output orientation options.

For example, Pref_OrientQuad4ForceOutput sets the output orientation for Force Output on 4-noded
quadrilateral elements.
Example:
None
API-486 feOutputCalculate

3.8.3.13 feOutputCalculate

feOutputCalculate
( outSET, ndelem, elemSET, title, IDvar, CASEvar, formula )
Description:
Computes output values based on an equation that you provide.
Input:
The ID of the set that contains the output set IDs where the calcula-
INT4 outSET
tions will be performed.
Specifies whether the calculation will create nodal or elemental data.
INT4 ndelem
(7=Nodal, 8=Elemental)
The ID of the set that contains the nodes or elements where the out-
INT4 elemSET
put will be computed.
STRING title The title of the output vectors to be created
The name of the variable used as the Node/Element ID in the for-
STRING IDvar
mula that you specify.
The name of the variable used as the Output Set ID in the formula
STRING CASEvar
that you specify.
The equation used to calculate the results. This must be specified in
STRING formula standard FEMAP form, using the two variables defined in IDvar and
CASEvar.
Output:
None
Return Code:
FE_FAIL Could not compute output.
Remarks/Usage:
None
Example:
None
feOutputConvertV92VectorID API-487

3.8.3.14 feOutputConvertV92VectorID

feOutputConvertV92VectorID
( oldVecID )
Description:
Some Output Vector IDs changed between FEMAP v9.2 and v9.3. This method takes a v9.2 (and
before) vector ID and returns the equivalent v9.3 vector ID
Input:
INT4 oldVecID The v9.2 (and before) vector ID that you want to convert.
Output:
None
Return Code:
newVecID The v9.3 (and later) vector ID
Remarks/Usage:
None
Example:
None
API-488 feOutputForceBalance

3.8.3.15 feOutputForceBalance

feOutputForceBalance
( outSETS, boundarynodeSET, boundaryelemSET, csysID, aroundXYZ, numSETS, resul-
tant )
Description:
This method is obsolete. For new applications, use freebody objects and the CalculateSummation2
method.
Returns the resulting force/moment information on a model interface defined by selected nodes/ele-
ments across selected output sets.
Input:
The ID of a Set object that contains the output sets to process. Alter-
INT4 outSETS natively, if you specify a negative value, this is simply the ID of the
single output set to use.
The ID of a Set object that contains the nodes on the model interface
INT4 boundarynodeSET where the force balance will be computed. Alternatively, if you spec-
ify a negative value, this is simply the ID of a single node.
The ID of a Set object that contains the elements on the model inter-
INT4 boundaryelemSET face where the force balance will be computed. Alternatively, if you
specify a negative value, this is simply the ID of a single element.
The ID of the coordinate system to use. The coordinates in
INT4 csysID aroundXYZ must be specified in this coordinate system, and all
results are returned in this coordinate system
The coordinates of the location where the resulting force/moment are
REAL8 aroundXYZ[0..2]
computed
Output:
INT4 numSETS The numbef of output set results contained in resultant
The resulting force/moment resultant computed from the loads on the
selected interface. For each output set selected in outSETS, there
REAL8 resultant[0..6*num-
will be 6 consecutive entries in this array [Fx1, Fy1, Fz1, Mx1, My1,
SETS-1]
Mz1, Fx2, Fy2, ...]. All values are relative to the coordinate system
selected by csysID.
Return Code:
FE_NO_MEMORY Insufficient memory to compute and return all Resultants.
Remarks/Usage:
***This method will NOT work with attached output. Please use feOutputForceBalance2 instead.
Also, this method requires that all selected output sets contain Nastran Grid Point Force Balance results.
Example:
feOutputForceBalance API-489

feOutputForceBalance
( outSETS, boundarynodeSET, boundaryelemSET, csysID, aroundXYZ, numSETS, resul-
tant )
None
API-490 feOutputForceBalance2

3.8.3.16 feOutputForceBalance2

feOutputForceBalance2
( freebodyID, outSetID, toDataTable, printSummation, printDetails )
Description:
Outputs freebody data to the message window or the data table. To retrieve the calculated total summa-
tion load programmatically, see the CalculateSummation2() method of feFreebody.
Input:
INT4 freebodyID Freebody ID
INT4 outSetID Output Set ID
If TRUE, output is sent to the data table; otherwise it is sent to the
BOOL toDataTable
message window
When TRUE, data related to the freebody summation is printed, oth-
BOOL printSummation erwise raw grid point force balance data for all nodes in the freebody
will be output
If printSummation is TRUE, details regarding the force balance cal-
BOOL printDetails
culations will be output; ignored when printSummation is FALSE.
Output:
None
Return Code:
Freebody summation has been calculated with potential errors (ie
FE_FAIL missing contributions of load, missing elements, etc.) The values
need to be verified
FE_NOT_EXIST Specified freebody or output set does not exist
Freebody is not set to interface mode (this error may occur if print-
FE_INVALID
Summation is TRUE)
Data is to be output to the data table, however it is locked or not visi-
FE_SECURITY
ble
Remarks/Usage:

Example:
None
feOutputCompare API-491

3.8.3.17 feOutputCompare

feOutputCompare
( bList, bFullCase, fromSET, toSETS, ifromVEC, itoVEC, dMaxDiff )
Description:
This method is used to compare output from individual vectors or entire output sets.
Input:
BOOL bList Flag to list the output at individual nodes or elements which differ.
BOOL bFullCase Flag to compare all vectors in the output case.
INT4 fromSET The ID of a Output Set you with to compare.
The ID of Femap Set object containing the output sets you with to
INT4 toSETS compare to. Alternatively, if you specify a negative value, this is sim-
ply the ID of a single output case.
If not comparing the full output case then set ifromVEC to compare a
INT4 ifromVEC
specific output vector id in the fromSET.
If not comparing the full output case then set itoVEC to compare a
INT4 itoVEC
specific output vector id in the toSETS.
Value specifying the maximum value used to consider the output dif-
REAL8 dMaxDiff
ferent.
Output:
None
Return Code:
None
Remarks/Usage:
None
Example:
None
API-492 feCompute3DInvariants

3.8.3.18 feCompute3DInvariants

feCompute3DInvariants
( bStress, dTensor, dInvariant )
Description:
This method is used to compute Stress or Strain Invariant values for a 3D element using 6 Tensor Stress
or Strain Values (Solid X Normal, Solid Y Normal, Solid Z Normal, Solid XY Shear, Solid YZ Shear,
and Solid ZX Shear)
Input:
Flag to indicate which invariant values to compute. True = Stress,
BOOL bStress
False = Strain
Array of Stress or Strain Tensor values:
0 = Solid X Normal
1 = Solid Y Normal
REAL8 dTensor[0..5] 2 = Solid Z Normal
3 = Solid XY Shear
4 = Solid YZ Shear
5 = Solid ZX Shear
Output:
Returns Stress of Strain invariant values in a variant:
0 = Solid Maximum Principal
1 = Solid Intermediate Principal
VARIANT dInvariant 2 = Solid Minimum Principal
3 = Solid Mean
4 = Solid Max Shear
5 = Solid Von Mises
Return Code:
FE_INVALID Values in dTensor must be REAL8, not INT4.
Remarks/Usage:
None
Example:
None
feCompute2DInvariants API-493

3.8.3.19 feCompute2DInvariants

feCompute2DInvariants
( bStress, dTensor, dInvariant )
Description:
This method is used to compute Stress or Strain Invariant values for a 2D element using 3 Stress or
Strain Tensor Values (Plate Top/Bottom X Normal, Plate Top/Bottom Y Normal, Plate Top/Bottom XY
Shear).
Input:
Flag to indicate which invariant values to compute. True = Stress,
BOOL bStress
False = Strain
Array of Stress or Strain Tensor values:
0 = Plate Top/Bottom X Normal
REAL8 dTensor[0..2]
1 = Plate Top/Bottom Y Normal
2 = Plate Top/Bottom XY Shear
Output:
Returns Stress of Strain invariant values in a variant:
0 = Plate Top/Bottom Major Principal
1 = Plate Top/Bottom Minor Principal
VARIANT dInvariant
2 = Plate Top/Bottom Mean Stress
3 = Plate Top/Bottom Max Shear
4 = Plate Top/Bottom Von Mises
Return Code:
FE_INVALID Values in dTensor must be REAL8, not INT4.
Remarks/Usage:
None
Example:
Sub Main
Dim App As femap.model
Set App = feFemap()
Dim Tensors(2) As Double
Tensors(0) = 1447.109
Tensors(1) = 61.86481
Tensors(2) = -123.9129
Dim inVars As Variant
rc = App.feCompute2DInvariants (True, Tensors, inVars)
End Sub
API-494 feElemCountOnProp

3.8.4 Model Information Methods


3.8.4.1 feElemCountOnProp

feElemCountOnProp
( nPropSetID, vPropID, vElemCount )
Description:
Returns the element count for each property in the specified set
Input:
INT4 fromSET The ID of the Constraint Set to be combined
Output:
VARIANT vPropID This Variant contains an array with the property IDs.
This Variant contains an array with the element count for each prop-
VARIANT vElemCount
erty ID.
Return Code:
FE_FAIL No properties exist in the model
Remarks/Usage:
None
Example:
None
API-495

3.9 Meshing Methods


Meshing Methods include:
Section 3.9.1, "Mesh Control"
Section 3.9.2, "Meshing Geometry"
Section 3.9.3, "Other Meshing"
Section 3.9.4, "Mesh Copy/Radial Copy/Scale/Rotate/Reflect commands"
API-496 feMeshSizePoint

3.9.1 Mesh Control


3.9.1.1 feMeshSizePoint

feMeshSizePoint
( pointSET, meshSIZE )
Description:
Sets mesh sizes on a selected set of points.
Input:
The ID of a set that contains a list of point IDs that will have mesh
INT4 pointSET sizes defined. Alternatively, if you specify a negative value, this is
simply the ID of the single point to use.
Set this to the mesh size that you want to define at the points. The
REAL8 meshSIZE size should be in model units. Specify 0.0 to remove mesh sizes from
the points.
Output:
None
Return Code:
FE_FAIL Could not define mesh sizes.
Remarks/Usage:
None
Example:
None
feMeshSizeCurve API-497

3.9.1.2 feMeshSizeCurve

feMeshSizeCurve
( curveSET, numElem, meshSize, minLine, minClosed, minOther, spacing, biasMethod,
bias, biasLoc, customSize )
Description:
Sets mesh sizes on a selected set of curves.
Input:
The ID of a set that contains a list of curve IDs that will have mesh
INT4 curveSET sizes defined. Alternatively, if you specify a negative value, this is
simply the ID of the single curve to use.
The number of elements to mesh along the selected curves. If 0, then
meshSize, minLine, minClosed and minOther determine the number
INT4 numElem
of elements. If -1, then the mesh sizes are removed from the selected
curves.
The default mesh spacing used to compute the number of elements
REAL8 meshSIZE
that will be meshed along the curve. Only used if numElem=0.
The minimum number of elements to mesh along any curve that is a
INT4 minLine straight line. If you do not want to use this feature, simply set the
value to 0 (or 1). Only used if numElem=0.
The minimum number of elements to mesh along any curve that is
INT4 minClosed closed - like a circle. If you do not want to use this feature, simply set
the value to 0 (or 1). Only used if numElem=0.
The minimum number of elements to mesh along any curve that is
not a straight line, and is not closed - like arcs and splines. If you do
INT4 minOther
not want to use this feature, simply set the value to 0 (or 1). Only
used if numElem=0.
If 0, then parametric spacing is used; otherwise ,constant length spac-
INT4 spacing
ing is used.
INT4 biasMethod 0=Equal length spacing, 1=Linear Bias, 2=Geometric Bias.
The bias value - greater than or equal to 1.0. A value of 1.0 is not
REAL8 bias biased. A value of 2.0 means that the largest element is approxi-
mately 2.0 times the length of the smallest.
0=Small elements at start of curve, 1=Small elements at end of
INT4 biasLoc curve, 2=Small elements at center of curve, 3=Small elements at
both ends of curve.
For constant length spacing, mesh sizes will be saved as a custom
BOOL customSize mesh size if this is True. Not used for parametric spacing.
API-498 feMeshSizeCurve

feMeshSizeCurve
( curveSET, numElem, meshSize, minLine, minClosed, minOther, spacing, biasMethod,
bias, biasLoc, customSize )
Output:
None
Return Code:
FE_FAIL Could not define mesh sizes.
Remarks/Usage:
None
Example:
None
feMeshSizeCurveMatchNodes API-499

3.9.1.3 feMeshSizeCurveMatchNodes

feMeshSizeCurveMatchNodes
( curveSetID, nodeSetID, dTolerance )
Description:
Sets custom mesh size locations on a selected set of curves using the locations of a selected set of nodes.
Input:
The ID of a set that contains a list of curve IDs that will have mesh
INT4 curveSetID sizes defined. Alternatively, if you specify a negative value, this is
simply the ID of the single curve to use.
The ID of a set that contains a list of node IDs. The location of each
node in the set will be projected based on the Tolerance then used to
INT4 nodeSetID specify custom mesh size locations on the selected curve(s). Alterna-
tively, if you specify a negative value, this is simply the ID of a
single node to use.
Allows specification of a maximum distance to project the locations
of the selected nodes onto the selected curves. If set to 0.0, which is
REAL8 dTolerance
the default, then the nodal locations of all selected nodes will be pro-
jected onto all of the selected curves.
Output:
None
Return Code:
FE_FAIL Could not define mesh sizes.
Remarks/Usage:
None
Example:
None
API-500 feMeshSizeCurveMatchXYZ

3.9.1.4 feMeshSizeCurveMatchXYZ

feMeshSizeCurveMatchXYZ
( curveSetID, nNumXYZ, vXYZ)
Description:
Sets custom mesh size locations on a selected set of curves using specified XYZ locations.
Input:
The ID of a set that contains a list of curve IDs that will have mesh
INT4 curveSetID sizes defined. Alternatively, if you specify a negative value, this is
simply the ID of the single curve to use.
The number of sets of XYZ coordinates to be used for custom
INT4 nNumXYZ
mesh sizing locations (i.e. the number of entries in the arrays)
The coordinates of each specified location, which are projected a
maximum distance based on the Tolerance, to use for custom mesh
REAL8 xyz[0..(3*nNumXYZ)-1]
sizing locations on the selected curves. There are 3 entries, X, Y, Z
for each location.
Allows specification of a maximum distance to project the speci-
fied locations onto the selected curves. If set to 0.0, which is the
REAL8 dTolerance
default, then all of the specified locations will be projected onto all
of the selected curves.
Output:
None
Return Code:
FE_FAIL Could not define mesh sizes.
Remarks/Usage:
None
Example:
None
feMeshSizeSurface API-501

3.9.1.5 feMeshSizeSurface

feMeshSizeSurface
( surfaceSET, replaceAll, meshSize, minEdge, maxAngle, maxOnSmall, smallSize, ver-
texAspect, mappedRefinement, growthFactor, refineRatio, refineSurf )
Description:
Sets mesh sizes on a selected set of surfaces.
Input:
The ID of a set that contains a list of surface IDs that will have mesh
INT4 surfaceSET sizes defined. Alternatively, if you specify a negative value, this is
simply the ID of the single surface to use.
If True, then mesh sizes will be replaced on all curves of all selected
BOOL replaceAll surfaces. If False, then only curves with no sizes defined will be
sized.
The default mesh spacing used to compute the number of elements
that will be meshed along each curve. If you set the meshSIZE=0.0,
then all of the other option settings except replaceAll are ignored.
FEMAP automatically determines the default values, including the
REAL8 meshSIZE default mesh size. If you set meshSIZE to a negative value, then
FEMAP uses the absolute value of that number as a scale factor on
the default mesh size it calculates. For example meshSIZE=-0.5
means elements that are half the size of the default, meshSIZE=-2.0
means elements that are twice as big as the default.
The minimum number of elements to mesh along any edge. Set to 0
INT4 minEdge
if you do not want to specify a minimum.
The maximum angle tolerance between the geometry tangent vector
and the vector connecting consecutive mesh locations along the
REAL8 maxAngle curves. Additional mesh locations are added along the curves to
make sure this criterion is satisfied. Set to 0.0 if you do not want to
use this type of mesh spacing adjustment.
The maximum number of elements on any feature that is identified
INT4 maxOnSmall as small (depends on smallSize). Set to 0 if you do not want to adjust
mesh sizes on small features.
The maximum size of a small feature. Set to 0.0 if you do not want
REAL8 smallSize
to adjust mesh sizes on small features.
Used to adjust the mesh sizes at vertices that connect both short and
long edges. Set to 0.0 if you do not want to do vertex aspect ratio
REAL8 vertexAspect adjustments. If used, mesh sizes at vertices are adjusted so that the
ratio of the length of the longest element to the shortest element at a
vertex is within the specified limit.
API-502 feMeshSizeSurface

feMeshSizeSurface
( surfaceSET, replaceAll, meshSize, minEdge, maxAngle, maxOnSmall, smallSize, ver-
texAspect, mappedRefinement, growthFactor, refineRatio, refineSurf )
If True, additional modifications are done to the mesh sizes on a sur-
face that favor mapped meshing. This does not guarantee that
BOOL mappedRefinement
mapped meshing sizes will be created. If you must have a mapped
mesh, you need to set that approach on the surface before you size.
The factor that is multiplied by the average curve element size to
REAL8 growthFactor adjust the mesh size on the interior of a surface. Set to 0.0 to skip set-
ting interior growth factors.
The curvature-based mesh refinement ratio. Adjusts the mesh sizes
REAL8 refineRatio along curves in areas of high curvature. Set to 0.0 to skip curvature-
based sizing.
Set to True to also consider curvature requirements when sizing the
BOOL refineSurf interior of the mesh. You must specify a nonzero refineRatio, or this
option will be ignored.
Output:
None
Return Code:
FE_FAIL Could not define mesh sizes.
Remarks/Usage:
None
Example:
None
feMeshSizeSolid API-503

3.9.1.6 feMeshSizeSolid

feMeshSizeSolid
( solidSET, replaceAll, meshSize, minEdge, maxAngle, maxOnSmall, smallSize, vertex-
Aspect, mappedRefinement, growthFactor, refineRatio, refineSurf, matchAdjacent, hex-
Mesh, adjustColor, removeSlaving )
Description:
Sets mesh sizes on a selected set of solids.
Input:
The ID of a set that contains a list of solid IDs that will have mesh
INT4 solidSET sizes defined. Alternatively, if you specify a negative value, this is
simply the ID of the single solid to use.
If True, then mesh sizes will be replaced on all curves of all selected
BOOL replaceAll
solids. If False, then only curves with no sizes defined will be sized.
The default mesh spacing used to compute the number of elements
that will be meshed along each curve. If you set the meshSIZE=0.0
(or negative), then all of the other option settings except replaceAll,
matchAdjacent, hexMesh, adjustColor and removeSlaving are
ignored. FEMAP automatically determines the default values,
REAL8 meshSIZE
including the default mesh size. If you set meshSIZE to a negative
value, then FEMAP uses the absolute value of that number as a scale
factor on the default mesh size it calculates. For example mesh-
SIZE=-0.5 means elements that are half the size of the default, mesh-
SIZE=-2.0 means elements that are twice as big as the default.
The minimum number of elements to mesh along any edge. Set to 0
INT4 minEdge
if you do not want to specify a minimum.
The maximum angle tolerance between the geometry tangent vector
and the vector connecting consecutive mesh locations along the
REAL8 maxAngle curves. Additional mesh locations are added along the curves to
make sure this criterion is satisfied. Set to 0.0 if you do not want to
use this type of mesh spacing adjustment.
The maximum number of elements on any feature that is identified
INT4 maxOnSmall as small (depends on smallSize). Set to 0 if you do not want to adjust
mesh sizes on small features.
The maximum size of a small feature. Set to 0.0 if you do not want
REAL8 smallSize
to adjust mesh sizes on small features.
Used to adjust the mesh sizes at vertices that connect both short and
long edges. Set to 0.0 if you do not want to do vertex aspect ratio
REAL8 vertexAspect adjustments. If used, mesh sizes at vertices are adjusted so that the
ratio of the length of the longest element to the shortest element at a
vertex is within the specified limit.
API-504 feMeshSizeSolid

feMeshSizeSolid
( solidSET, replaceAll, meshSize, minEdge, maxAngle, maxOnSmall, smallSize, vertex-
Aspect, mappedRefinement, growthFactor, refineRatio, refineSurf, matchAdjacent, hex-
Mesh, adjustColor, removeSlaving )
If True, additional modifications are done to the mesh sizes on a sur-
face that favor mapped meshing. This does not guarantee that
BOOL mappedRefinement
mapped meshing sizes will be created. If you must have a mapped
mesh, you need to set that approach on the surface before you size.
The factor that is multiplied by the average curve element size to
REAL8 growthFactor adjust the mesh size on the interior of a surface. Set to 0.0 to skip set-
ting interior growth factors.
The curvature-based mesh refinement ratio. Adjusts the mesh sizes
REAL8 refineRatio along curves in areas of high curvature. Set to 0.0 to skip curvature-
based sizing.
Set to True to also consider curvature requirements when sizing the
BOOL refineSurf interior of the mesh. You must specify a nonzero refineRatio or this
option will be ignored.
Set to True to automatically find adjacent surfaces between multiple
BOOL matchAdjacent solids that you are sizing. The matched surfaces will automatically
have a Linked approach defined.
Set to True if you want to size for hex meshing. Set to False to size
BOOL hexMesh
for tetrahedral meshing.
Set to True if you want to change the surface colors to indicate the
BOOL adjustColor status and success of the mesh sizing. This is especially important
when sizing for hex meshing.
Set to True to remove any previous Linked approaches on the sur-
BOOL removeSlaving
faces of the solids that you are sizing.
Output:
None
Return Code:
FE_FAIL Could not define mesh sizes.
Remarks/Usage:
None
Example:
None
feMeshAttrPoint API-505

3.9.1.7 feMeshAttrPoint

feMeshAttrPoint
( pointSET, propID )
Description:
Sets mesh attributes on a selected set of points.
Input:
The ID of a set that contains a list of point IDs that will have mesh
INT4 pointSET attributes defined. Alternatively, if you specify a negative value, this
is simply the ID of the single point to use.
Specifies the ID of the property to use as a meshing attribute at the
selected points. Set propID=0 to remove meshing attributes from the
INT4 propID points. If nonzero, this must be the ID of a property of an element
type that is compatible with point meshing - a mass element, for
example.
Output:
None
Return Code:
FE_FAIL Could not define mesh attribute.
Remarks/Usage:
None
Example:
None
API-506 feMeshAttrCurve

3.9.1.8 feMeshAttrCurve

feMeshAttrCurve
(curveSET, propID, Orient, Offset1, Offset2, OrientType, OffsetType, Release1,
Release2)
Description:
Sets mesh attributes on a selected set of curves.
Input:
The ID of a set contains a list of curve IDs that will have mesh attri-
INT4 curveSET butes defined. Alternatively, if you specify a negative value, this is
simply the ID of the single curve to use.
Specifies the ID of the property to use as a meshing attribute at the
selected curves. Set propID=0 to remove meshing attributes from the
INT4 propID curves. If nonzero, this must be the ID of a property of an element
type that is compatible with curve meshing - a beam element, for
example.
The orientation vector meshing attribute. Either a location or vector
REAL8 Orient[0..2]
(based on offset type), specified in global rectangular coordinates.
The meshing attribute defining the offset to be applied to elements.
Offset1[0..2] is at the beginning of the curve, Offset2[0..2] is at the
REAL8 Offset1[0..2]
end. Specified in global rectangular coordinates. If doing radial off-
REAL8 Offset2[0..2]
sets, Offset1[0..2] contains the radial origin; Offset2[0] contains the
radial offset distance.
Type of orientation for property attribute: 0=Orient By Vector,
INT4 OrientType 1=Orient By Location, 2=Orient By Vector, Reversed Element
Direction, 3=Orient By Location, Reversed Element Direction.
Type of offset for property attribute: 0=Offset by Vector, 1=Offset
INT4 OffsetType
Radial, 2=Offset by Location.
The release flags for the start and end of the curve. Nonzero if the
INT4 Release1[0..5]
associated degree of freedom is released. Release1[0..5] is at the
INT4 Release2[0..5]
beginning of the curve; Release2[0..5] is at the end.
Output:
None
Return Code:
FE_FAIL Could not define mesh attribute.
Remarks/Usage:
feMeshAttrCurve API-507

feMeshAttrCurve
(curveSET, propID, Orient, Offset1, Offset2, OrientType, OffsetType, Release1,
Release2)
Only element/property types with the appropriate orient/offset/release options available can have those
options defined using this method. For example, you cannot add offsets to rod elements, because they
are not available.
Example:
None
API-508 feMeshAttrSurface

3.9.1.9 feMeshAttrSurface

feMeshAttrSurface
( surfaceSET, propID, offset )
Description:
Sets mesh attributes on a selected set of surfaces.
Input:
The ID of a set that contains a list of surface IDs that will have mesh
INT4 surfaceSET attributes defined. Alternatively, if you specify a negative value, this
is simply the ID of the single surface to use.
Specifies the ID of the property to use as a meshing attribute at the
selected surfaces. Set propID=0 to remove meshing attributes from
INT4 propID the surfaces. If nonzero, this must be the ID of a property of an ele-
ment type that is compatible with surface meshing - a planar element,
for example.
The offset to be applied to elements meshed on this surface. Nor-
mally this is specified as 0 - the elements are meshed directly on the
REAL8 offset
surface. Offsets can only be applied to certain planar elements such
as plates.
Output:
None
Return Code:
FE_FAIL Could not define mesh attribute.
Remarks/Usage:
None
Example:
None
feMeshAttrSolid API-509

3.9.1.10 feMeshAttrSolid

feMeshAttrSolid
( solidSET, propID )
Description:
Sets mesh attributes on a selected set of solids or volumes.
Input:
The ID of a set that contains a list of solid (or volume) IDs that will
INT4 solidSET have mesh attributes defined. Alternatively, if you specify a negative
value, this is simply the ID of the single solid to use.
Specifies the ID of the property to use as a meshing attribute in the
selected solids or volumes. Set propID=0 to remove meshing attri-
INT4 propID butes from the solids. If nonzero, this must be the ID of a property of
an element type that is compatible with solid meshing - a solid ele-
ment, for example.
Output:
None
Return Code:
FE_FAIL Could not define mesh attribute.
Remarks/Usage:
None
Example:
None
API-510 feMeshApproachSurface

3.9.1.11 feMeshApproachSurface

feMeshApproachSurface
( surfaceSET, approach, approachData )
Description:
Sets the meshing approach on a selected set of surfaces.
Input:
The ID of a set that contains a list of surface IDs that will have mesh
INT4 surfaceSET approaches defined. Alternatively, if you specify a negative value,
this is simply the ID of the single surface to use.
The meshing approach for the surface: 0=Not Specified, 1=Free-
Parametric, 2=Free-Planar, 3=Mapped-Four Corner, 4=Mapped-
INT4 approach
Three Corner, 5=Mapped-Three Corner Fan, 6=Link to Surface,
7=Fast Tri-Parametric, 8=Fast Tri-Planar.
The data for various approaches. For the mapped approaches, these
are the point IDs defining the corners of the mapped mesh. For the
INT4 approachData[0..3]
Link to Surface approach, approachData[0] is the ID of the surface
that this surface is linked to.
Output:
None
Return Code:
FE_FAIL Could not define mesh approach.
Remarks/Usage:
None
Example:
None
feMeshPoint API-511

3.9.2 Meshing Geometry


3.9.2.1 feMeshPoint

feMeshPoint
( pointSET, meshElem, propID )
Description:
Meshes a selected set of points.
Input:
The ID of a set that contains a list of point IDs that will be meshed.
INT4 pointSET Alternatively, if you specify a negative value, this is simply the ID of
the single point to mesh.
If True, then nodes and elements will be generated on the selected
BOOL meshElem
points. If False, only nodes will be generated.
Specifies the ID of the property to use for elements as they are cre-
ated. If you want to use meshing attributes, set propID=0. In this
INT4 propID case, all selected points must have meshing attributes defined or they
will not be meshed. The propID property must be compatible with
point meshing.
Output:
None
Return Code:
FE_FAIL Could not mesh points.
Remarks/Usage:
None
Example:
API-512 feMeshPoint

feMeshPoint
( pointSET, meshElem, propID )
The following example meshes each point in a model with a mass element. The total mass added to all
points is 25 pounds.
Sub Main
Dim App As femap.model
Set femap = GetObject(, "femap.model")
Dim rc As Long
Dim pr As Object
Set pr = femap.feProp()
Dim pt As Object
Set pt = App.feSet()

pt.AddAll (3) 'Pick all points
pr.Type = 27 ' Mass Type
pr.Title = "25 Lb. Mass"
pr.pval(7) = 25 / pt.Count() 'Total=25 pound/Number of Points
pr.Put (pr.NextEmptyID) ' Create new property
rc = App.feMeshPoint(pt.ID, True, pr.ID) 'Mesh the points

App.feViewRegenerate(0)
End Sub
feMeshCurve API-513

3.9.2.2 feMeshCurve

feMeshCurve
( curveSET, meshElem, propID, orient )
Description:
Meshes a selected set of curves.
Input:
The ID of a set that contains a list of curve IDs that will be meshed.
INT4 curveSET Alternatively, if you specify a negative value, this is simply the ID of
the single curve to mesh.
If True, then nodes and elements will be generated on the selected
BOOL meshElem
curves. If False, only nodes will be generated.
Specifies the ID of the property to use for elements as they are cre-
ated. If you want to use meshing attributes, set propID=0. In this
case, all selected curves must have meshing attributes defined or they
INT4 propID
will not be meshed. The propID property must be compatible with
curve meshing. Set propID=-1 to automatically mesh with plot-only
elements, which do not require other property information.
The components of the element orientation vector, in global rectan-
REAL8 orient[0..2] gular coordinates. This is only used for those element types that
require orientation - like bars and beams.
Output:
None
Return Code:
FE_FAIL Could not mesh curves.
Remarks/Usage:
None
Example:
API-514 feMeshCurve

feMeshCurve
( curveSET, meshElem, propID, orient )
The following example meshes each curve in a model with bar elements. It establishes a mesh size of
0.1 along each curve, creates a property, and meshes the curves.
Sub Main
Dim App As femap.model
Set App = GetObject(, "femap.model")
Dim rc As Long
Dim pr As Object
Set pr = App.feProp()
Dim pt As Object
Set pt = App.feSet()
Dim orient(2) As Double
Dim vOrient As Variant

orient(0) = 1
orient(1) = 1
orient(2) = 0.5
vOrient = orient

pt.AddAll (4)
pr.Type = 2
pr.Title = "Bar"
pr.pval(0) = 0.125
pr.pval(1) = 10.3
pr.pval(2) = 0.5
pr.Put (pr.NextEmptyID)

rc = App.feMeshSizeCurve(pt.ID,0,0.1,0,0,0,0,0,1#,0,False)
rc = App.feMeshCurve(pt.ID, True, pr.ID, vOrient)

App.feViewRegenerate(0)
End Sub
feMeshSurface2 API-515

3.9.2.3 feMeshSurface2

feMeshSurface2
( surfaceSET, propID, elemShape, bAllowMapped, beDefaults )
Description:
Meshes a selected set of surfaces. This function replaces feMeshSurface( )
Input:
The ID of a set that contains a list of surface IDs that will be meshed.
INT4 surfaceSET Alternatively, if you specify a negative value, this is simply the ID of
the single surface to mesh.
Specifies the ID of the property to use for elements as they are cre-
ated. If you want to use predefined meshing attributes, set propID=0.
INT4 propID In this case, all selected surfaces must have meshing attributes
defined or they will not be meshed. The propID property must be
compatible with surface meshing.
The shape of the elements to mesh. Must be 2=Tria3, 3=Tria6,
INT4 elemShape 4=Quad4, 5=Quad8 or set to 0 to use the shape that is predefined on
the meshing attributes.
If True, mapped meshing of the surfaces is allowed, otherwise it is
BOOL bAllowMapped
not. This argument is ignored if elemShape=0
If True, all meshing attributes are reset to their defaults prior to
BOOL bResetDefaults applying the propID, elemShape and bAllowMapped settings. Nor-
mally this argument should be False to use the existing attributes.
Output:
None
Return Code:
FE_FAIL Could not mesh surfaces.
FE_INVALID The value specified for elemShape is invalid
FE_NOT_EXIST The property specified does not exist.
Remarks/Usage:
None
Example:
API-516 feMeshSurface2

feMeshSurface2
( surfaceSET, propID, elemShape, bAllowMapped, beDefaults )
The following example meshes each surface on Solid 1 in a model. It requires the mesh size to be
already established, but it creates a plate property with a 0.1 thickness and meshes the surfaces with
quads.
Sub Main
Const FGD_Surface_onSolid = 78

Dim App As femap.model
Set App = GetObject(, "femap.model")
Dim rc As Long
Dim pr As Object
Set pr = App.feProp()
Dim pt As Object
Set pt = App.feSet()

rc = pt.AddRule(1, FGD_Surface_onSolid)
pr.Type = 17
pr.Title = "0.1 Plate"
pr.pval(0) = 0.1
pr.Put (pr.NextEmptyID)

rc=App.feMeshSurface2(pt.ID,pr.ID,FTO_QUAD4,True,False)

App.feViewRegenerate(0)
End Sub
feMeshSurface API-517

3.9.2.4 feMeshSurface - obsolete

feMeshSurface
( surfaceSET, propID, minBetween, maxAspect, maxQuickNodes, meshApproach,
quadAngle, midsideGeom, midsideAngle, smoothLaplacian, smoothIter, smoothTol )
Description:
Meshes a selected set of surfaces.
Input:
The ID of a set that contains a list of surface IDs that will be meshed.
INT4 surfaceSET Alternatively, if you specify a negative value, this is simply the ID of
the single surface to mesh.
Specifies the ID of the property to use for elements as they are cre-
ated. If you want to use meshing attributes, set propID=0. In this
case, all selected surfaces must have meshing attributes defined or
INT4 propID
they will not be meshed. The propID property must be compatible
with surface meshing. Set propID=-1 to automatically mesh with
plot-only elements, which do not require other property information.
The minimum number of elements between boundaries during mesh
INT4 minBetween
generation. Not used for fast-tri mesher.
The maximum allowable element aspect ratio. Not used for fast-tri
REAL8 maxAspect
mesher.
Boundaries/surfaces with more than this number of nodes on the
INT4 maxQuickNodes
boundary are quick-cut. Not used for fast-tri mesher.
The mesher to use when meshing the surfaces. (0=Triangle, 1=Quad,
INT4 meshApproach
2=Fast-Triangle).
The maximum angular deviation from 90 degrees allowed in a quad
REAL8 quadAngle
before it is split into triangles. Only applies to quad mesher.
If True and you are meshing with parabolic elements, midside nodes
BOOL midsideGeom
will be projected toward the geometry.
The maximum angle formed by the edge of the element as the mid-
side nodes are projected onto the geometry. If midsideAngle=0.0 and
REAL8 midsideAngle midsideGeom=True, then midside nodes will be projected com-
pletely onto the geometry regardless of the distortion introduced in
the elements.
If True, Laplacian smoothing is performed. If False, centroidal
BOOL smoothLaplacian
smoothing is used.
The number of smoothing iterations to perform. Set to 0 to skip
INT4 smoothIter
smoothing.
API-518 feMeshSurface

feMeshSurface
( surfaceSET, propID, minBetween, maxAspect, maxQuickNodes, meshApproach,
quadAngle, midsideGeom, midsideAngle, smoothLaplacian, smoothIter, smoothTol )
The smoothing tolerance. Smoothing will stop if node movement
INT4 smoothTol
during a smoothing pass falls below this tolerance.
Output:
None
Return Code:
FE_FAIL Could not mesh surfaces.
Remarks/Usage:

This function has been replaced by feMeshSurface2( )

Nodes along common edges between surfaces meshed in a single call to this method will be merged. If
you call this method multiple times, nodes along common edges of the surfaces meshed in different calls
will not be merged - you must do that manually by calling feCheckCoincidentNode.
Example:
The following example meshes each surface on Solid 1 in a model. It requires the mesh size to be
already established, but it creates a plate property with a 0.1 thickness and meshes the surfaces with
quads. The software performs 20 Laplacian smoothing passes, or continues until the smoothing con-
verges to a 0.01 tolerance.
Sub Main
Const FGD_Surface_onSolid = 78

Dim App As femap.model
Set App = GetObject(, "femap.model")
Dim rc As Long
Dim pr As Object
Set pr = App.feProp()
Dim pt As Object
Set pt = App.feSet()

rc = pt.AddRule(1, FGD_Surface_onSolid)
pr.Type = 17
pr.Title = "0.1 Plate"
pr.pval(0) = 0.1
pr.Put (pr.NextEmptyID)

rc=App.feMeshSurface(pt.ID,pr.ID,1,2,30,1,45,0,0,True,20,.01)

App.feViewRegenerate(0)
End Sub
feMeshSurfaceByAttributes API-519

3.9.2.5 feMeshSurfaceByAttributes

feMeshSurfaceByAttributes
( surfaceSET )
Description:
Meshes a selected set of surfaces using its stored attributes.
Input:
The ID of a set that contains a list of surface IDs that will be meshed
INT4 surfaceSET using their saved attributes. Alternatively, if you specify a negative
value, this is simply the ID of the single surface to mesh.
Output:
None
Return Code:
FE_FAIL Could not mesh surfaces.
Remarks/Usage:
None
Example:
API-520 feMeshTetSolid

3.9.2.6 feMeshTetSolid

feMeshTetSolid
( entityTYPE, entitySET, propID, surfaceMeshOnly, makeMidside, tetGrowth, check-
SurfElem, deleteSurfElem, midsideGeom, midsideAngle, allocateElem )
Description:
Meshes a selected set of solids (or surfaces or planar elements) with tetrahedral elements. This method
has been superseded by feMeshTetSolid2.
Input:
The type of entities being meshed that are contained in entitySET.
INT4 entityTYPE For entity information, see Section 3.3.6, "Entity Types". Can be
FT_SOLID, FT_SURFACE or FT_ELEM.
The ID of a set that contains a list of solid/surface/element IDs that
will be meshed. Alternatively, if you specify a negative value, this is
INT4 entitySET simply the ID of the single entity to mesh - probably only for solids.
In any case, the list of entities must form one or more closed solid
volumes.
Specifies the ID of the property to use for tetrahedral elements as
they are created. If you want to use meshing attributes, set propID=0.
In this case, all selected solids must have meshing attributes defined
INT4 propID
or they will not be meshed. This only works if entity-
TYPE=FT_SOLID. The propID property must be compatible with
solid meshing.
If True, only surface elements are generated, and the meshing pro-
BOOL surfaceMeshOnly
cess stops before generating tetrahedra.
If True, the solids will have midside nodes created. Otherwise, linear
BOOL makeMidside
elements are created.
The tetrahedral growth factor. Numbers larger than 1.0 mean that the
elements on the inside of the solid will be larger than those on the
REAL8 tetGrowth
outside. It is usually best to use a factor slightly larger than 1.0.
Default value is 1.5 - if you specify tetGrowth=0.0.
Checks the surface elements for validity prior to tet meshing if True.
BOOL checkSurfElem Not usually required if meshing solids, but should be done for sur-
face or element meshing.
Set to True if you want to delete the surface elements that are being
BOOL deleteSurfElem
generated or meshed.
If True, and you are meshing with parabolic elements, midside nodes
BOOL midsideGeom
will be projected toward the geometry.
feMeshTetSolid API-521

feMeshTetSolid
( entityTYPE, entitySET, propID, surfaceMeshOnly, makeMidside, tetGrowth, check-
SurfElem, deleteSurfElem, midsideGeom, midsideAngle, allocateElem )
The maximum angle formed by the edge of the element as the mid-
side nodes are projected onto the geometry. If midsideAngle=0.0 and
REAL8 midsideAngle midsideGeom=True, then midside nodes will be projected com-
pletely onto the geometry regardless of the distortion introduced in
the elements.
Estimated maximum number of tetrahedral elements to be generated.
This option simply controls memory allocation for the mesher - more
INT4 allocateElem elements may be generated. You should usually set this value to 0.
This will cause the mesher to automatically estimate the memory
requirements from the surface mesh.
Output:
None
Return Code:
FE_FAIL Could not mesh solid.
Remarks/Usage:
None
Example:
None
API-522 feMeshTetSolid2

3.9.2.7 feMeshTetSolid2

feMeshTetSolid2
( entityTYPE, entitySET, propID, surfaceMeshOnly, makeMidside, tetGrowth, check-
SurfElem, deleteSurfElem, midsideGeom, midsideAngle, multiThruThickness, sliverRe-
moval, tetOptimization )
Description:
Meshes a selected set of solids (or surfaces or planar elements) with tetrahedral elements. This method
supersedes feMeshTetSolid.
Input:
The type of entities being meshed that are contained in entitySET.
INT4 entityTYPE For entity information, see Section 3.3.6, "Entity Types". Can be
FT_SOLID, FT_SURFACE or FT_ELEM.
The ID of a set that contains a list of solid/surface/element IDs that
will be meshed. Alternatively, if you specify a negative value, this is
INT4 entitySET simply the ID of the single entity to mesh - probably only for solids.
In any case, the list of entities must form one or more closed solid
volumes.
Specifies the ID of the property to use for tetrahedral elements as
they are created. If you want to use meshing attributes, set propID=0.
In this case, all selected solids must have meshing attributes defined
INT4 propID
or they will not be meshed. This only works if entity-
TYPE=FT_SOLID. The propID property must be compatible with
solid meshing.
If True, only surface elements are generated, and the meshing pro-
BOOL surfaceMeshOnly
cess stops before generating tetrahedra.
If True, the solids will have midside nodes created. Otherwise, linear
BOOL makeMidside
elements are created.
The tetrahedral growth factor. Numbers larger than 1.0 mean that the
elements on the inside of the solid will be larger than those on the
REAL8 tetGrowth
outside. It is usually best to use a factor slightly larger than 1.0.
Default value is 1.5 - if you specify tetGrowth=0.0.
Checks the surface elements for validity prior to tet meshing if True.
BOOL checkSurfElem Not usually required if meshing solids, but should be done for sur-
face or element meshing.
Set to True if you want to delete the surface elements that are being
BOOL deleteSurfElem
generated or meshed.
If True, and you are meshing with parabolic elements, midside nodes
BOOL midsideGeom
will be projected toward the geometry.
feMeshTetSolid2 API-523

feMeshTetSolid2
( entityTYPE, entitySET, propID, surfaceMeshOnly, makeMidside, tetGrowth, check-
SurfElem, deleteSurfElem, midsideGeom, midsideAngle, multiThruThickness, sliverRe-
moval, tetOptimization )
The maximum angle formed by the edge of the element as the mid-
side nodes are projected onto the geometry. If midsideAngle=0.0 and
REAL8 midsideAngle midsideGeom=True, then midside nodes will be projected com-
pletely onto the geometry regardless of the distortion introduced in
the elements.
If True, mesher will place multiple tet elements through the thickness
BOOL multiThruThickness
of the solid. Default should be set to False.
If True, processing will be done to remove sliver elements. Should
BOOL sliverRemoval
always be set to True unless the mesher encounter issues.
Sets the Tet Optimization level. Available values are 0-5, which
INT4 tetOptimization
0=off, 1=less optimization, 5=more optimization, 3=default.
Output:
None
Return Code:
FE_FAIL Could not mesh solid.
Remarks/Usage:
None
Example:
None
API-524 feMeshHexSolid

3.9.2.8 feMeshHexSolid

feMeshHexSolid
( solidSET, propID, surfaceMeshOnly, makeMidside, checkSurfElem, deleteSurfElem,
midsideGeom, midsideAngle )
Description:
Meshes a selected set of solids with hexahedral elements.
Input:
The ID of a set that contains a list of solid IDs that will be meshed.
INT4 solidSET Alternatively, if you specify a negative value, this is simply the ID of
the single entity to mesh.
Specifies the ID of the property to use for hexahedral elements as
they are created. If you want to use meshing attributes, set propID=0.
INT4 propID In this case, all selected solids must have meshing attributes defined
or they will not be meshed. The propID property must be compatible
with solid meshing.
If True, only surface elements are generated, and the meshing pro-
BOOL surfaceMeshOnly
cess stops before generating hex elements.
If True, the solids will have midside nodes created. Otherwise, linear
BOOL makeMidside
elements are created.
Checks the surface elements for validity prior to tet meshing if True.
BOOL checkSurfElem Not usually required if meshing solids, but should be done for sur-
face or element meshing.
Set to True if you want to delete the surface elements that are being
BOOL deleteSurfElem
generated or meshed.
If True and you are meshing with parabolic elements, midside nodes
BOOL midsideGeom
will be projected toward the geometry.
The maximum angle formed by the edge of the element as the mid-
side nodes are projected onto the geometry. If midsideAngle=0.0 and
REAL8 midsideAngle midsideGeom=True, then midside nodes will be projected com-
pletely onto the geometry regardless of the distortion introduced in
the elements.
Output:
None
Return Code:
FE_FAIL Could not mesh solid.
Remarks/Usage:
For this function to work, the solids must be compatible with, and properly sized for hex meshing.
feMeshHexSolid API-525

feMeshHexSolid
( solidSET, propID, surfaceMeshOnly, makeMidside, checkSurfElem, deleteSurfElem,
midsideGeom, midsideAngle )
Example:
This example hex meshes all of the solids in a model with parabolic hex elements and projects the mid-
side nodes onto the surfaces.
Sub Main
Dim App As femap.model
Set App = GetObject(,"femap.model")
Dim so As Object
Set so = App.feSet()

so.AddAll (39)

Set pr = App.feProp()
pr.Type = 25
pr.Title = "Bricks"
pr.Put (pr.NextEmptyID)

rc=femap.feMeshHexSolid(so.ID,pr.ID, _
False,True,False,True,True,0#)

App.feViewRegenerate(0)
End Sub
API-526 feMeshHexSolidFromElement

3.9.2.9 feMeshHexSolidFromElement

feMeshHexSolidFromElement
( baseSET, topSET, propID, numLayers, match1, match2, makeMidside, checkSurfElem,
deleteSurfElem )
Description:
Meshes selected sets of surface elements with hexahedral elements.
Input:
The ID of a set that contains a list of surface element IDs that will be
used as the base of the hex mesh. The base of the hex mesh is the
INT4 baseSET
set of elements that form the pattern that will be extruded into the
hex elements.
The ID of a set that contains a second list of surface element IDs that
will be used as the top of the hex mesh. The top set can be
selected in two forms. It can either contain a set of elements that
match the base but is located at the opposite end of the extrusion, or
INT4 topSET
it can contain all of the elements (other than those in the base) that
enclose a complete, closed volume. If you use the true top option
(not all the enclosing elements), then the base may not contain any
holes.
Specifies the ID of the property to use for hexahedral elements as
they are created. If you want to use meshing attributes, set propID=0.
INT4 propID In this case, all selected solids must have meshing attributes defined
or they will not be meshed. The propID property must be compatible
with solid meshing.
Only used if topSET only includes the elements that match baseSET
INT4 numLayers at the other end of the extrusion. This is the number of layers of
hexahedral elements that will be generated.
Only used if topSET only includes the elements that match baseSET
at the other end of the extrusion. These should be both set to 0 if you
want to automatically match the element patterns in the base and top
INT4 match1
meshes. If you have a symmetric or rotated mesh, it may be neces-
INT4 match2
sary to set these values to node IDs that will match the base mesh to
the top. If not 0, match1 must be a node ID from the baseSET that
matches the match2 nodeID from the topSET.
If True, the solids will have midside nodes created. Otherwise, linear
BOOL makeMidside
elements are created.
Checks the surface elements for validity prior to tet meshing if True.
BOOL checkSurfElem Not usually required if meshing solids, but should be done for sur-
face or element meshing.
feMeshHexSolidFromElement API-527

feMeshHexSolidFromElement
( baseSET, topSET, propID, numLayers, match1, match2, makeMidside, checkSurfElem,
deleteSurfElem )
Set to True if you want to delete the surface elements that are being
BOOL deleteSurfElem
generated or meshed.
Output:
None
Return Code:
FE_FAIL Could not mesh solid.
Remarks/Usage:
None
Example:
This example hex meshes between the surface mesh that is on Surface 1 and the mesh on Surface 5. It
creates 17 layers of hex elements between the surfaces.
Sub Main
Const FGD_Elem_atSurface = 44

Dim App As femap.model
Set App = GetObject(, "femap.model")
Dim b As Object
Dim t As Object
Set b = App.feSet()
Set t = App.feSet()

iSurf1 = 1
iSurf2 = 5
nLayers = 17

rc = b.AddRule(iSurf1, FGD_ELEM_ATSURFACE)
rc = t.AddRule(iSurf2, FGD_ELEM_ATSURFACE)

Set pr = App.feProp()
pr.type = 25
pr.title = "Bricks"
pr.Put (pr.NextEmptyID)
rc=App.feMeshHexSolidFromElement(b.ID,t.ID,pr.ID, _
nLayers,0,0,True,False,True)App.feViewRegenerate(0)
End Sub
API-528 feMeshBetween

3.9.3 Other Meshing


3.9.3.1 feMeshBetween

feMeshBetween
( propID, genMode, shape, rightSplit, alternate, allQuad, logSpacing, numCorners, num-
Nodes, bias, nodeInc, cornerXYZ )
Description:
Meshes between selected coordinate locations. No geometry is required.
Input:
Specifies the ID of the property to use for elements as they are cre-
INT4 propID ated. The propID property must be compatible with the type of ele-
ments that you will be creating, and the shape value.
The mesh generation mode: 0=Nodes Only, 1=Elements only on
INT4 genMode
existing Nodes, 2=Both Nodes and Elements.
The shape of the elements to generate: 0=Line, 2=Tria, 4=Quad,
INT4 shape
6=Tetra, 7=Wedge, 8=Brick. Not used if only generating nodes.
Only used for Tria,Tetra and Wedge shapes. If True, indicates that
BOOL rightSplit
the first elements should be split along a right-hand diagonal.
Only used for Tria,Tetra and Wedge shapes. If True, indicates that
BOOL alternate the element split direction should alternate with each group of ele-
ments, eliminating any biasing in the mesh patterns.
Indicates that you want to use the alternate all-quad meshing scheme
on a mesh that would otherwise generate triangular or wedge ele-
BOOL allQuad
ments. This also requires compatible numbers of nodes along all
edges.
Only used if you are generating nodes (or nodes and elements), and
BOOL logSpacing using a bias factor other than 1.0. If True, indicates that you want the
mesh spacing graded in a logarithmic manner.
The number of corners in the meshing region. Available values are: 2
INT4 numCorners (for line elements), 3 or 4 (for planar elements), 4,5,6, or 8 for (solid
elements).
The number of nodes in each of the meshing directions. Only the
entries required for the number of corners are used. For example, if
INT4 numNodes[0..2]
you specify 2 corners, only numNodes[0] is used. If you specify 3
corners, numNodes[0] and numNodes[1] will be used.
The biasing factor in each of the meshing directions. Set to 1.0 for no
REAL8 bias[0..2]
biasing.
feMeshBetween API-529

feMeshBetween
( propID, genMode, shape, rightSplit, alternate, allQuad, logSpacing, numCorners, num-
Nodes, bias, nodeInc, cornerXYZ )
Only used if genMode=1 (generate elements only). In this case,
nodeINC[0] must be the ID of the first node in the pattern to be
INT4 nodeINC[0..2] meshed with elements. nodeINC[1] and nodeINC[2] are the addi-
tional node increments in second and third (if required) meshing
directions. These will be 0, if the nodes are numbered consecutively.
The coordinates of the corner locations, in global rectangular coordi-
nates. Each corner is specified in consecutive locations in this array.
REAL8 cornerXYZ[0..23]
For example, the first corner is in cornerXYZ[0..2], the second is in
cornerXYZ[3..5], the third in cornerXYZ[6..8] and so on.
Output:
None
Return Code:
FE_FAIL Could not mesh between corners.
Remarks/Usage:
None
Example:
None
API-530 feMeshClosestLink

3.9.3.2 feMeshClosestLink

feMeshClosestLink
( fromSET, toSET, connectWith, orient, dof, reverse )
Description:
Meshes connections based on the shortest distance between two sets of nodes.
Input:
A set containing the node IDs of the nodes to mesh from. Each node
in this set will have one element connecting from it to the closest
INT4 fromSET
node in the toSET. Alternatively, if you specify a negative value, this
is simply the ID of the single node to mesh.
A set containing the node IDs to mesh to. The closest node from
this set will be matched with the node from the fromSET. Alterna-
INT4 toSET
tively, if you specify a negative value, this is simply the ID of the sin-
gle node to mesh.
The type of element to use for the connection: 1=Constraint Equa-
INT4 connectWith tion, 2=Rigid, 3=Line Element. If you choose constraint equations,
you must have an active constraint set for this method to work.
The orientation vector used for elements created with this method (if
REAL8 orient[0..2]
required by connectWith).
The degrees of freedom (DOF) to connect. Set values to 1 for DOF to
INT4 dof[0..5]
connect; 0 for DOF to skip.
Reverses the connection order: connections are still made from the
BOOL reverse
fromSET to the toSET, but the element nodal order is reversed.
Output:
None
Return Code:
FE_FAIL Could not mesh.
Remarks/Usage:
If you want to simulate the same capability found in the Multiple Link command, simply call this func-
tion multiple times, using negative nodeIDs in place of the fromSET and toSET.
Example:
None
feMeshCoincidentLink API-531

3.9.3.3 feMeshCoincidentLink

feMeshCoincidentLink
( fromSET, toSET, connectWith, orient, dof, tolerance )
Description:
Meshes connections between coincident nodes.
Input:
A set containing the node IDs of the nodes to mesh. Only nodes in
INT4 fromSET this set that are coincident (within the specified tolerance) with
another node in the set are meshed.
The type of element to use for the connection: 1=Constraint Equa-
tion, 2=Rigid, 3=Line Element, 4=Gap Element. If you choose con-
INT4 connectWith
straint equations, you must have an active constraint set for this
method to work.
The orientation vector used for elements created with this method (if
REAL8 orient[0..2]
required by connectWith).
The degrees of freedom (DOF) to connect. Set values to 1 for DOF
INT4 dof[0..5]
to connect; 0 for DOF to skip.
The coincident node tolerance. Only nodes within this tolerance of
REAL8 tolerance
each other are meshed.
Output:
None
Return Code:
FE_FAIL Could not mesh.
Remarks/Usage:
None
Example:
None
API-532 feMeshUnzip

3.9.3.4 feMeshUnzip

feMeshUnzip
( fromSET, toSET, connectWith, orient, dof )
Description:
Unzips an existing mesh and places connecting elements at the new, unzipped coincident nodes. This
call is obsolete, use feMeshUnzip2 instead.
Input:
A set containing the element IDs on the primary side of the interface.
INT4 fromSET Alternatively, if you specify a negative value, this is simply the ID of
the single element to use.
A set containing the node IDs to unzip. Each of these nodes will be
duplicated and nodes on the elements that were not selected as the
INT4 toSET
primary side will be replaced with the copies. Connecting elements
will be created between the original and new nodes.
The type of element to use for the connection: 0=None, 1=Constraint
Equation, 2=Rigid, 3=DOF Spring, 4=Gap Element, 5=Spring/
INT4 connectWith Damper. If you choose constraint equations, you must have an active
constraint set for this method to work. If you choose None, the mesh
will be unzipped, but no connection elements will be created.
The orientation vector used for elements created with this method (if
REAL8 orient[0..2]
required by connectWith).
The degrees of freedom (DOF) to connect. Set values to 1 for DOF to
INT4 dof[0..5]
connect; 0 for DOF to skip.
Output:
None
Return Code:
FE_FAIL Could not mesh.
Remarks/Usage:
None
Example:
None
feMeshUnzip2 API-533

3.9.3.5 feMeshUnzip2

feMeshUnzip2
( fromSET, toSET, connectWith, orientMode, orientID, orientVec, dof, rigidReverse )
Description:
Unzips an existing mesh and places connecting elements at the new, unzipped coincident nodes. This
call supersedes feMeshUnzip.
Input:
A set containing the element IDs on the primary side of the interface.
INT4 fromSET Alternatively, if you specify a negative value, this is simply the ID of
the single element to use.
A set containing the node IDs to unzip. Each of these nodes will be
duplicated and nodes on the elements that were not selected as the
INT4 toSET
primary side will be replaced with the copies. Connecting elements
will be created between the original and new nodes.
The type of element to use for the connection: 0=None, 1=Constraint
Equation, 2=Rigid, 3=DOF Spring, 4=Gap Element, 5=Spring/
INT4 connectWith Damper. If you choose constraint equations, you must have an active
constraint set for this method to work. If you choose None, the mesh
will be unzipped, but no connection elements will be created.
The type of orientation to be used with Line Elements. 0=Node,
1=Vector, 2=CSys. If you specify either Node or Csys you must also
INT4 orientMode
specify the corresponding ID in orientID. If you specify Vector it
must be specified in orientVec
ID of the Node when orientMode = 0 or ID of CSys when orient-
INT4 orientID
Mode = 2, used to orient Line Elements (if required by connectWith)
The orientation vector used for Line Elements created when orient-
REAL8 orientVec[0..2]
Mode = 1 (if required by connectWith)
The degrees of freedom (DOF) to connect. Set values to 1 for DOF to
INT4 dof[0..5]
connect; 0 for DOF to skip
When True, reverses the direction of rigid connections so they are
BOOL rigidReverse
created from the copied nodes back to the primary side nodes
Output:
None
Return Code:
FE_FAIL Could not mesh.
Remarks/Usage:
None
API-534 feMeshUnzip2

feMeshUnzip2
( fromSET, toSET, connectWith, orientMode, orientID, orientVec, dof, rigidReverse )
Example:
None
feMeshEdgeSplit API-535

3.9.3.6 feMeshEdgeSplit

feMeshEdgeSplit
( nNode1, nNode2, nNodeSetorZero )
Description:
Splits a mesh by choosing an element edge
Input:
INT4 nNode1 The IDs of two nodes that lie on an element edge that is to be split.
INT4 nNode2 Only line, planar and solid (hex and wedge) elements can be split.

The ID of a set containing node IDs that limit the split to a specified
INT4 nNodeSetorZero region of the model. If you want the split to go thru the entire model
simply specify 0.
Output:
None
Return Code:
FE_FAIL Split failed.
Remarks/Usage:
None
Example:
None
API-536 feMeshEdgeSplit2

3.9.3.7 feMeshEdgeSplit2

feMeshEdgeSplit2
( nNode1, nNode2, nNumSplits, nBiasType, nBiasLocation, dBias, nNodeSetorZero )
Description:
Splits a mesh by choosing an element edge and allows you to enter a number of splits, bias type, bias
location, and bias value.
Input:
INT4 nNode1 The IDs of two nodes that lie on an element edge that is to be split.
INT4 nNode2 Only line, planar and solid (hex and wedge) elements can be split.

Specifies the number of splits between the two nodes (i.e., a value of
INT4 nNumSplits
2 will split each element into three elements).
Sets the option for Bias Type, 0=Equal (i.e., no biasing), 1=Biased,
INT4 nBiasType
2=Geometric Bias
Sets the option for Bias Location. Only used when nBiasType is set
INT4 nBiasLocation to 1 or 2, 0=At Start (smaller elements closer to nNode1), 1=At Cen-
ter, 2=At Ends
Specifies the Bias Factor. Only used when nBiasType is set to 1 or 2,
REAL8 dBias
value must be between 1.0 and 65535.0
The ID of a set containing node IDs that limit the split to a specified
INT4 nNodeSetorZero region of the model. If you want the split to go thru the entire model
simply specify 0.
Output:
None
Return Code:
FE_FAIL Split failed.
Remarks/Usage:
None
Example:
None
feMeshTransition API-537

3.9.3.8 feMeshTransition

feMeshTransition
( useNodes, entCount, entID, edgeNum, edgeBias, edgeSize, propID, minBetween, max-
Aspect, maxQuickNodes, meshApproach, quadAngle, smoothLaplacian, smoothIter,
smoothTol )
Description:
Meshes between nodes or line elements that form a closed boundary.
Input:
If True, then entID contains a list of nodes used to define the bound-
BOOL useNodes
ary; otherwise, entID contains a list of line elements.
The number of items contained in entID, edgeNum, edgeBias, and
INT4 entCount
edgeSize.
The IDs of the node or elements used to define the boundary being
INT4 entID[0..entCount-1]
meshed.
The number of elements to create between the associated nodes.
edgeNum[0] applies to the space between entID[0] and entID[1].
edgeNum[entCount-1] applies to the space between entID[entCount-
INT4 edgeNum[0..entCount-1]
1] and entID[0]; that is, the last segment closing the boundary. Spec-
ify edgeNum[i] = 0 to use edgeSize[i] to determine the number of
elements. This option is not used if useNodes=False.
The bias value to use with the elements being generated between
INT4 edgeBias[0..entCount-1] successive nodes. Only used if edgeNum[i] is not zero, and useNodes
is True. Use of indexes is the same as for edgeNum.
Similar to edgeNum and edgeBias; this is the element size to use for
REAL8 edgeSize[0..entCount- each segment. The distance between nodes is simply divided by this
1] value to find the number of elements in the segment. Usage is the
same as edgeNum. Only used if edgeNum[i] = 0.
Specifies the ID of the property to use for elements as they are cre-
ated. The propID property must be compatible with surface meshing.
INT4 propID Set propID=0 to mesh with whatever property and element type are
currently active. Set propID=-1 to automatically mesh with plot-only
elements, which do not require other property information.
The minimum number of elements between boundaries during mesh
INT4 minBetween
generation. Not used for fast-tri mesher.
The maximum allowable element aspect ratio. Not used for fast-tri
REAL8 maxAspect
mesher.
Boundaries/surfaces with more than this number of nodes on the
INT4 maxQuickNodes
boundary are quick-cut. Not used for fast-tri mesher.
API-538 feMeshTransition

feMeshTransition
( useNodes, entCount, entID, edgeNum, edgeBias, edgeSize, propID, minBetween, max-
Aspect, maxQuickNodes, meshApproach, quadAngle, smoothLaplacian, smoothIter,
smoothTol )
The mesher to use when meshing the surfaces: 0=Triangle, 1=Quad,
INT4 meshApproach
2=Fast-Triangle.
The maximum angular deviation from 90 degrees allowed in a quad
REAL8 quadAngle
before it is split into triangles. Only applies to quad mesher.
If True, Laplacian smoothing is performed. If False, centroidal
BOOL smoothLaplacian
smoothing is used.
The number of smoothing iterations to perform. Set to 0 to skip
INT4 smoothIter
smoothing.
The smoothing tolerance. Smoothing will stop if node movement
INT4 smoothTol
during a smoothing pass falls below this tolerance.
Output:
None
Return Code:
Could not mesh. Boundary may not be valid - it may be self inter-
FE_FAIL
secting.
Remarks/Usage:
None
Example:
feMeshTransition API-539

feMeshTransition
( useNodes, entCount, entID, edgeNum, edgeBias, edgeSize, propID, minBetween, max-
Aspect, maxQuickNodes, meshApproach, quadAngle, smoothLaplacian, smoothIter,
smoothTol )
The following example meshes the region bounded by nodes 1 through 7. Between each node, five new
elements are created. The fast triangle mesher is being used. The software performs 17 Laplacian
smoothing passes, or continues until the smoothing converges to a 0.001 tolerance.
Sub Main
Dim App As femap.model
Set App = GetObject(, "femap.model")

Dim nodeCOUNT As Long
Dim nodes(20) As Long
Dim edgeNUM(20) As Long
Dim edgeBIAS(20) As Double
Dim edgeSIZE(20) As Double
Dim vnodes As Variant
Dim vedgeNUM As Variant
Dim vedgeSIZE As Variant
Dim vedgeBiAS As Variant
Dim i As Long
Dim rc As Long

For i = 0 To 6
nodes(i) = i + 1
edgeNUM(i) = 5
edgeBIAS(i) = 1#
edgeSIZE(i) = 0#
Next i

vnodes = nodes
vedgeNUM = edgeNUM
vedgeSIZE = edgeSIZE
vedgeBiAS = edgeBIAS

rc = App.feMeshTransition(True, 7, vnodes, vedgeNUM, _
vedgeBiAS, vedgeSIZE, -1, 2, 2#, 30, 2, 60, True, _
10, 0.001)
App.feViewRegenerate(0)
End Sub
API-540 feMeshRemesh

3.9.3.9 feMeshRemesh

feMeshRemesh
( elemSET, nodeSET, remeshMode, refineRatio, breakAngle, deleteOrig, propID, minBe-
tween, maxAspect, maxQuickNodes, meshApproach, quadAngle, smoothLaplacian,
smoothIter, smoothTol )
Description:
Remeshes a portion of an existing mesh.
Input:
The ID of a set that contains the IDs of the elements to be remeshed.
Alternatively, if you specify a negative value, this is simply the ID of
INT4 elemSET the single element to remesh. The elements contained in this set can
be either surface (planar) elements or line elements. If you select line
elements, then the only other option that is used is refineRatio.
The ID of a set that contains the node IDs where the refinement will
INT4 nodeSET
be applied. Not used if you set remeshMode=1.
INT4 remeshMode The remeshing mode: 0=Refine, 1=Remesh, 2=Unrefine.
The ratio between the number of elements along each edge currently
and the number after remeshing. This only applies to edges selected
by the nodes in nodeSET. For example, if remeshMode=0, refine,
INT4 refineRatio
and refineRatio=3, then three elements will be generated along each
refined edge. If remeshMode=2, unrefine, and refineRatio=2, then
half the elements along the refined edge will be removed.
The break angle along the refinement edges. If two adjacent edges
intersect at an angle greater than this value, then they will not be
REAL8 breakAngle removed, no matter what the refineRatio value is. This helps to pre-
serve corners in the mesh. Only used when remeshMode=2, unre-
fine.
If True, the original nodes and elements that are being remeshed
BOOL deleteOrig
(those elements selected in elemSET and their nodes) will be deleted.
Specifies the ID of the property to use for elements as they are cre-
ated. Set propID=0 to mesh with whatever property and element
INT4 propID
type are currently active. Set propID=-1 to automatically mesh with
plot-only elements, which do not require other property information.
The minimum number of elements between boundaries during mesh
INT4 minBetween
generation. Not used for fast-tri mesher.
The maximum allowable element aspect ratio. Not used for fast-tri
REAL8 maxAspect
mesher.
Boundaries/surfaces with more than this number of nodes on the
INT4 maxQuickNodes
boundary are quick-cut. Not used for fast-tri mesher.
feMeshRemesh API-541

feMeshRemesh
( elemSET, nodeSET, remeshMode, refineRatio, breakAngle, deleteOrig, propID, minBe-
tween, maxAspect, maxQuickNodes, meshApproach, quadAngle, smoothLaplacian,
smoothIter, smoothTol )
The mesher to use when meshing the surfaces: 0=Triangle, 1=Quad,
INT4 meshApproach
2=Fast-Triangle.
The maximum angular deviation from 90 degrees allowed in a quad
REAL8 quadAngle
before it is split into triangles. Only applies to quad mesher.
If True, Laplacian smoothing is performed. If False, centroidal
BOOL smoothLaplacian
smoothing is used.
The number of smoothing iterations to perform. Set to 0 to skip
INT4 smoothIter
smoothing.
The smoothing tolerance. Smoothing will stop if node movement
INT4 smoothTol
during a smoothing pass falls below this tolerance.
Output:
None
Return Code:
Could not mesh. Boundary may not be valid - it may be self inter-
FE_FAIL
secting.
Remarks/Usage:
None
Example:
None
API-542 feMeshConvertFacets

3.9.3.10 feMeshConvertFacets

feMeshConvertFacets
( solidID )
Description:
Converts the current graphical facets of a solid into nodes and plot-only elements.
Input:
INT4 solidID The ID of the solid to use to create the nodes and elements.
Output:
None
Return Code:
None
Remarks/Usage:
The current facetting of the solid is used to generate the elements. You can update the facetting toler-
ance prior to using this method if you want more (or fewer) elements.
Example:
None
feMeshCleanupSlivers API-543

3.9.3.11 feMeshCleanupSlivers

feMeshCleanupSlivers
( elemSET, minAngle, minLength )
Description:
Automatically removes slivers from a selected set of elements.
Input:
The ID of a set that contains the IDs of the elements to be checked.
Alternatively, if you specify a negative value, this is simply the ID of
INT4 elemSET
the single element to check. The elements contained in this set must
be surface (planar) elements.
Identifies slivers to be removed based on a minimum angle. Set to
REAL8 minAngle
0.0 to skip angle checking
Identifies slivers to be removed based on a minimum edge length.
REAL8 minLength
Set to 0.0 to skip length checking.
Output:
None
Return Code:
FE_FAIL Unable to remove slivers.
Remarks/Usage:
You must not include missing elements in the elemSET.
Example:
None
API-544 feMeshEdgeRemoval

3.9.3.12 feMeshEdgeRemoval

feMeshEdgeRemoval
( elemSET, nd1, nd2 )
Description:
Removes an edge from a surface mesh by collapsing the connected elements.
Input:
The ID of a set that contains the IDs of the elements to be checked.
INT4 elemSET
The elements contained in this set must be surface (planar) elements.
INT4 nd1 The ID of the first node along the element edge.
INT4 nd2 The ID of the second node along the element edge.
Output:
None
Return Code:
FE_FAIL Unable to remove edge.
Remarks/Usage:
The elements selected must form a single, manifold hull - there can only be two elements that share each
edge.
Example:
None
feMeshBuildRemeshRegions API-545

3.9.3.13 feMeshBuildRemeshRegions

feMeshBuildRemeshRegions
( elemSET, breakAngle )
Description:
Builds remeshing regions from a set of planar elements.
Input:
The ID of a set that contains the IDs of the elements to be checked.
INT4 elemSET
The elements contained in this set must be surface (planar) elements.
The maximum angle between adjacent elements for those elements
REAL8 breakAngle
to be considered in the same region.
Output:
None
Return Code:
FE_FAIL Unable to build regions.
Remarks/Usage:
The elements selected must form a single, manifold hull - there can only be two elements that share each
edge. Any quadrilateral elements selected will be converted to triangles.
Example:
None
API-546 feMeshEditRemeshRegions

3.9.3.14 feMeshEditRemeshRegions

feMeshEditRemeshRegions
( el1, el2 )
Description:
Moves an element from one remeshing region to an adjacent region.
Input:
INT4 el1 The ID of the element to be moved to the other region.
The ID of the element used to identify the region where the first ele-
INT4 el2
ment will be placed.
Output:
None
Return Code:
FE_FAIL Unable to update regions.
Remarks/Usage:
The element to be moved, el1, must be adjacent, on at least one edge to the region containing element
el2.
Example:
None
feMeshRemeshRegions API-547

3.9.3.15 feMeshRemeshRegions

feMeshRemeshRegions
( meshSize, propID, minBetween, maxAspect, maxQuickNodes, meshApproach,
quadAngle, smoothLaplacian, smoothIter, smoothTol )
Description:
Moves an element from one remeshing region to an adjacent region.
Input:
The default mesh size, used to determine the size of elements that
REAL8 meshSize
will be generated.
Specifies the ID of the property to use for elements as they are cre-
ated. Set propID=0 to mesh with whatever property and element type
INT4 propID
are currently active. Set propID=-1 to automatically mesh with plot-
only elements, which do not require other property information.
The minimum number of elements between boundaries during mesh
INT4 minBetween
generation. Not used for fast-tri mesher.
The maximum allowable element aspect ratio. Not used for fast-tri
REAL8 maxAspect
mesher.
Boundaries/surfaces with more than this number of nodes on the
INT4 maxQuickNodes
boundary are quick-cut. Not used for fast-tri mesher.
The mesher to use when meshing the surfaces (0=Triangle, 1=Quad,
INT4 meshApproach
2=Fast-Triangle).
The maximum angular deviation from 90 degrees allowed in a quad
REAL8 quadAngle
before it is split into triangles. Only applies to quad mesher.
If True, Laplacian smoothing is performed. If False, centroidal
BOOL smoothLaplacian
smoothing is used.
The number of smoothing iterations to perform. Set to 0 to skip
INT4 smoothIter
smoothing.
The smoothing tolerance. Smoothing will stop if node movement
INT4 smoothTol
during a smoothing pass falls below this tolerance.
Output:
None
Return Code:
FE_FAIL Unable to remesh
Remarks/Usage:
None
API-548 feMeshRemeshRegions

feMeshRemeshRegions
( meshSize, propID, minBetween, maxAspect, maxQuickNodes, meshApproach,
quadAngle, smoothLaplacian, smoothIter, smoothTol )
Example:
None
feMeshEdgeMembers API-549

3.9.3.16 feMeshEdgeMembers

feMeshEdgeMembers
( elemSET, nodeSET, propID, orient )
Description:
Generates elements along the free edges or free faces of selected elements.
Input:
The ID of a set that contains the IDs of the elements to be checked.
INT4 elemSET The elements contained in this set must be surface (planar) elements
or solid elements.
The ID of a set that contains the IDs of the nodes which define the
portions of the free edge/free face where you want to define edge
INT4 nodeSET
members. An edge member is created for every edge/face that has at
least one node in this set.
The ID of an existing property used to define the edge member ele-
ments. If planar elements are selected in the elemSET, then this must
INT4 propID
be the ID of a line element property. If solid elements are selected in
elemSET, then this must be a planar element property.
The element orientation vector for edge members. This is only used
REAL8 orient[0..2] if elemSET contains planar elements, and propID specifies a line ele-
ment type that requires orientation.
Output:
None
Return Code:
Unable to create edge members. Either you selected elements that
FE_FAIL
did not exist, or they are of the wrong type.
Remarks/Usage:
Only planar or solid elements can be selected in elemSET, not both at the same time.
Example:
None
API-550 feMeshSmooth

3.9.3.17 feMeshSmooth

feMeshSmooth
( elemSET, laplaceSmooth, iter, tolerance )
Description:
Smooths a selected set of elements.
Input:
The ID of a set that contains the IDs of the elements to be smoothed.
INT4 elemSET The elements contained in this set must be surface (planar) elements
or solid elements.
If True, Laplacian smoothing is performed; otherwise, centroidal
BOOL laplaceSmooth
smoothing is used.
The maximum number of smoothing passes that will be performed.
INT4 iter
Smoothing will terminate sooner if the tolerance is reached.
The nodal movement tolerance. If no nodes move farther than this
REAL8 tolerance
distance during a smoothing pass, smoothing will be terminated.
Output:
None
Return Code:
Unable to smooth. Your elemSET may contain multiple element
FE_FAIL
types, or element types that are not compatible with this operation.
Remarks/Usage:
Only planar or solid elements can be selected in elemSET, not both at the same time.
Example:
None
feMeshSmooth2 API-551

3.9.3.18 feMeshSmooth2

feMeshSmooth2
( elemSET, fixednodeSET, laplaceSmooth, iter, tolerance )
Description:
Smooths a selected set of elements while allowing any number of specified nodes to remain in a fixed
location.
Input:
The ID of a set that contains the IDs of the elements to be smoothed.
INT4 elemSET The elements contained in this set must be surface (planar) elements
or solid elements.
The ID of a set that contains the IDs of the nodes to remain in a fixed
INT4 fixednodeSET location during the smoothing operation. Specifying a value of 0 will
create the same results as using feMeshSmooth.
If True, Laplacian smoothing is performed; otherwise, centroidal
BOOL laplaceSmooth
smoothing is used.
The maximum number of smoothing passes that will be performed.
INT4 iter
Smoothing will terminate sooner if the tolerance is reached.
The nodal movement tolerance. If no nodes move farther than this
REAL8 tolerance
distance during a smoothing pass, smoothing will be terminated.
Output:
None
Return Code:
Unable to smooth. Your elemSET may contain multiple element
FE_FAIL
types, or element types that are not compatible with this operation.
Remarks/Usage:
Only planar or solid elements can be selected in elemSET, not both at the same time.
Example:
None
API-552 feMeshExtrudeElem

3.9.3.19 feMeshExtrudeElem

feMeshExtrudeElem
( elemSET, axisLen, axisVec, propID, numElem, method, matchCurrent, deleteOrig )
Description:
Extrudes existing elements into new elements.
Input:
The ID of a set that contains the IDs of the elements to be extruded.
The elements contained in this set must be either line or surface (pla-
INT4 elemSET
nar) elements, but not both. Line elements are extruded into planar
elements; planar elements are extruded into solid elements.
REAL8 axisLen The extrusion length (See Remarks).
REAL8 axisVec[0..2] The extrusion direction vector (See Remarks).
The ID of the property that will be used for the new elements. This
INT4 propID property must be of the correct type (planar or solid), depending on
the type of elements selected in elemSET.
The number of elements generated by each original element along
INT4 numElem
the extrusion direction.
The method of determining the extrusion direction. 0=Along axis-
INT4 method Vec, 1=along the element normal, 2=along the element normal with
thickness corrections.
If True, the attributes of the elements that are created will match the
BOOL matchCurrent
active settings. If False, they will match the generating elements.
If True, the elements in elemSET will be deleted, leaving only the
BOOL deleteOrig new elements. If False, the elements in elemSet will remain in the
model.
Output:
None
Return Code:
Unable to extrude. Check the extrusion direction, and the element
FE_FAIL
and property types.
Remarks/Usage:
The extrusion length (with method=0) is really the length of the axisVec multiplied by axisLen. Nor-
mally you will either want to specify axisLen=1.0, and set the axisVec to the true extrusion vector, or
specify axisVec as a unit vector with the proper components, and set axisLen to the true extrusion
length.
feMeshExtrudeElem API-553

feMeshExtrudeElem
( elemSET, axisLen, axisVec, propID, numElem, method, matchCurrent, deleteOrig )
Example:
None
API-554 feMeshExtrudeElem2

3.9.3.20 feMeshExtrudeElem2

feMeshExtrudeElem2
( elemSET, axisLen, axisOrig, axisVec, propID, numElem, method, radialspherical, onto-
SurfSetID, matchCurrent, deleteOrig )
Description:
Extrudes existing elements into new elements allowing use of all 5 methods in the Mesh, Extrude, Ele-
ments command (Vector, Normals, Normals with Thickness Correction, Radial, and Along Vector to
Surfaces)
Input:
The ID of a set that contains the IDs of the elements to be extruded.
The elements contained in this set must be either line or surface (pla-
INT4 elemSET
nar) elements, but not both. Line elements are extruded into planar
elements; planar elements are extruded into solid elements.
REAL8 axisLen The extrusion length (See Remarks).
REAL8 axisOrig[0..2] The extrusion direction origin (See Remarks).
REAL8 axisVec[0..2] The extrusion direction vector (See Remarks).
The ID of the property that will be used for the new elements. This
INT4 propID property must be of the correct type (planar or solid), depending on
the type of elements selected in elemSET.
The number of elements generated by each original element along
INT4 numElem
the extrusion direction.
The method of determining the extrusion direction. 0=Along axis-
INT4 method Vec, 1=along the element normal, 2=along the element normal with
thickness corrections, 3=radial, 4=along vector to surfaces
Only used when method is set to 3 (radial). If True, the mesh will be
extruded radially around a specified coordinate location in axisOrig
BOOL radialspherical (spherical extrusion) to a length specified with axisLen. If False, the
mesh will be extruded radially about a vector specified with axisOrig
and axisVec (cylindrical extrusion) to a length specified with axisLen
Only used when method is set to 4 (along vector to surface). The ID
INT4 ontoSurfSETID of a set that contains the IDs of the surfaces to be extruded to along a
vector specified with axisOrig and axisVec.
If True, the attributes of the elements that are created will match the
BOOL matchCurrent
active settings. If False, they will match the generating elements.
If True, the elements in elemSET will be deleted, leaving only the
BOOL deleteOrig new elements. If False, the elements in elemSet will remain in the
model.
Output:
feMeshExtrudeElem2 API-555

feMeshExtrudeElem2
( elemSET, axisLen, axisOrig, axisVec, propID, numElem, method, radialspherical, onto-
SurfSetID, matchCurrent, deleteOrig )
None
Return Code:
Unable to extrude. Check the extrusion direction, and the element
FE_FAIL
and property types.
Remarks/Usage:
The extrusion length (with method=0) is really the length of the axisVec multiplied by axisLen. Nor-
mally you will either want to specify axisLen=1.0, and set the axisVec to the true extrusion vector, or
specify axisVec as a unit vector with the proper components, and set axisLen to the true extrusion
length.
Example:
None
API-556 feMeshExtrudeCurve

3.9.3.21 feMeshExtrudeCurve

feMeshExtrudeCurve
( curveSET, axisLen, axisVec, propID, numElem )
Description:
Extrudes existing curves into new elements.
Input:
The ID of a set that contains the IDs of the curves to be extruded. The
INT4 curveSET curves are extruded into planar elements. The number and spacing of
elements is dependent on the mesh size established on the curves.
REAL8 axisLen The extrusion length (See Remarks).
REAL8 axisVec[0..2] The extrusion direction vector (See Remarks).
The ID of the property that will be used for the new elements. This
INT4 propID
property must be a planar type.
INT4 numElem The number of elements generated along the extrusion direction.
Output:
None
Return Code:
Unable to extrude. Check the extrusion direction, and the element
FE_FAIL
and property types.
Remarks/Usage:
The extrusion length is really the length of the axisVec multiplied by axisLen. Normally you will either
want to specify axisLen=1.0, and set the axisVec to the true extrusion vector, or specify axisVec as a
unit vector with the proper components, and set axisLen to the true extrusion length.
Example:
None
feMeshRevolveElem API-557

3.9.3.22 feMeshRevolveElem

feMeshRevolveElem
( elemSET, rotAngle, rotThrust, axisOrig, axisVec, propID, numElem, matchCurrent,
deleteOrig )
Description:
Revolves existing elements into new elements.
Input:
The ID of a set that contains the IDs of the elements to be revolved.
The elements contained in this set must be either line or surface (pla-
INT4 elemSET
nar) elements, but not both. Line elements are revolved into planar
elements; planar elements are revolved into solid elements.
REAL8 rotAngle The angle of rotation, in degrees.
REAL8 rotThrust The total thrust distance (along the axis of rotation), typically zero.
REAL8 axisOrig[0..2] The origin of the axis of revolution.
REAL8 axisVec[0..2] The direction of the axis of revolution.
The ID of the property that will be used for the new elements. This
INT4 propID property must be of the correct type (planar or solid), depending on
the type of elements selected in elemSET.
The number of elements generated by each original element along
INT4 numElem
the revolution direction.
If True, the attributes of the elements that are created will match the
BOOL matchCurrent
active settings. If False, they will match the generating elements.
If True, the elements in elemSET will be deleted, leaving only the
BOOL deleteOrig
new elements.
Output:
None
Return Code:
Unable to revolve. Check the axis of revolution, and the element and
FE_FAIL
property types.
Remarks/Usage:
None
Example:
None
API-558 feMeshRevolveCurve

3.9.3.23 feMeshRevolveCurve

feMeshRevolveCurve
( curveSET, rotAngle, rotThrust, axisOrig, axisVec, propID, numElem )
Description:
Revolves existing curves into new elements.
Input:
The ID of a set that contains the IDs of the curves to be revolved. The
INT4 curveSET curves are revolved into planar elements. The number and spacing of
elements is dependent on the mesh size established on the curves.
REAL8 rotAngle The angle of rotation, in degrees.
REAL8 rotThrust The total thrust distance (along the axis of rotation), typically zero.
REAL8 axisOrig[0..2] The origin of the axis of revolution.
REAL8 axisVec[0..2] The direction of the axis of revolution.
The ID of the property that will be used for the new elements. This
INT4 propID property must be of the correct type (planar or solid), depending on
the type of elements selected in elemSET.
The number of elements generated by each original element along
INT4 numElem
the revolution direction.
Output:
None
Return Code:
Unable to revolve. Check the axis of revolution, and the element and
FE_FAIL
property types.
Remarks/Usage:
None
Example:
None
feMeshSweepElem API-559

3.9.3.24 feMeshSweepElem

feMeshSweepElem
( elemSET, numPath, curvePath, numAlign, curveAlign, alignLoc, propID )
Description:
Sweeps existing elements along one or more curves into new elements.
Input:
The ID of a set that contains the IDs of the elements to be swept. The
INT4 elemSET curves are swept into planar elements. The number and spacing of
elements is dependent on the mesh size established on the curves.
INT4 numPath The number of curves in the curvePath array.
The IDs of the curves along the sweep path. These IDs should be
INT4 curvePath[0..numPath-1] specified in order, starting at the beginning of the path to sweep
along.
The number of curves in the curveAlign array (usually 0, unless you
INT4 numAlign
are using an alignment path to orient the elements along sweep path).
INT4 curveAlign[0..numAlign-
The IDs of curves along the alignment path.
1]
The alignment position. Only used if the sweep path is nonplanar,
REAL8 alignLoc[0..2]
and numPath=0 (not using an alignment path).
The ID of the property that will be used for the new elements. This
INT4 propID
property must be a planar type.
Output:
None
Return Code:
Unable to sweep. Check the order of the curves for the path and
FE_FAIL
alignment, and the element and property types.
Remarks/Usage:
None
Example:
None
API-560 feMeshSweepCurve

3.9.3.25 feMeshSweepCurve

feMeshSweepCurve
( curveSET, numPath, curvePath, numAlign, curveAlign, alignLoc, propID )
Description:
Sweeps curves along one or more curves into new elements.
Input:
The ID of a set that contains the IDs of the curves to be swept. The
elements contained in this set must be either line or surface (planar)
INT4 elemSET
elements, but not both. Line elements are swept into planar elements;
planar elements are swept into solid elements.
INT4 numPath The number of curves in the curvePath array.
The IDs of the curves along the sweep path. These IDs should be
INT4 curvePath[0..numPath-1] specified in order, starting at the beginning of the path to sweep
along.
The number of curves in the curveAlign array (usually 0, unless you
INT4 numAlign
are using an alignment path to orient the elements along sweep path).
INT4 curveAlign[0..numAlign-
The IDs of curves along the alignment path.
1]
The alignment position. Only used if the sweep path is nonplanar,
REAL8 alignLoc[0..2]
and numPath=0 (not using an alignment path).
The ID of the property that will be used for the new elements. This
INT4 propID property must be of the correct type (planar or solid) depending on
the type of elements selected in elemSET.
If True, the attributes of the elements that are created will match the
BOOL matchCurrent
active settings. If False, they will match the generating elements.
If True, the elements in elemSET will be deleted, leaving only the
BOOL deleteOrig
new elements.
Output:
None
Return Code:
Unable to sweep. Check the order of the curves for the path and
FE_FAIL
alignment, and the element and property types.
Remarks/Usage:
None
feMeshSweepCurve API-561

feMeshSweepCurve
( curveSET, numPath, curvePath, numAlign, curveAlign, alignLoc, propID )
Example:
None
API-562 feMeshSweepCurve

3.9.4 Mesh Copy/Radial Copy/Scale/Rotate/Reflect commands

The Mesh, Copy...; Mesh, Radial Copy...; Mesh, Scale...; Mesh, Rotate...; and Mesh, Reflect...
commands may be accessed via the API using the feGenerate... methods found in Section 3.6.11,
"Geometry and Mesh Generation Methods"
API-563

3.10 Modification Methods


Modification Methods include:
Section 3.10.1, "Projection"
Section 3.10.2, "Move, Rotate and Scale"
Section 3.10.3, "Color and Layer"
Section 3.10.4, "Renumbering"
Section 3.10.5, "Associativity"
Section 3.10.6, "Other Updates"
Section 3.10.7, "Element Updates"
API-564 feProjectOnto

3.10.1 Projection
3.10.1.1 feProjectOnto

feProjectOnto
( entityTYPE, entitySET, projOnto, projAlong, ontoSET, OntoLocation, OntoVector,
AlongVector, ExtendCurves, VectorBothDirections)
Description:
Projects nodes or points onto a curve, surface, vector, or plane using either a closest/normal direction or
along a specified vector. Additional options to Extend Curves and Project Both Directions are also
available when using certain combinations of the available options.
Input:
The type of entities to be projected. For entity information, see Sec-
INT4 entityTYPE
tion 3.3.6, "Entity Types". Can be FT_POINT or FT_NODE.
The ID of a set that contains a list of point or node IDs that will be
INT4 entitySET projected. Alternatively, if you specify a negative value, this is sim-
ply the ID of the single entity to project.
Used to set the Project Onto option. 0=onto Curve (FPO_CURVE),
INT4 projOnto 1=onto Surface (FPO_SURFACE), 2=onto Vector (FPO_VECTOR),
or 3=onto Plane (FPO_PLANE)
Used to set the Project Along option. 0=use Closest/Normal (FPA_-
INT4 projAlong
CLOSEST) or 1=along Vector (FPA_VECTOR)
The ID of a set that contains a list of curve or surface IDs to project
INT4 ontoSET
onto.
The XYZ location of the base of the vector to project onto. Must be
REAL8 ontoLocation[0..2]
specified in Global Rectangular coordinates.
The XYZ components of the vector to project onto. Must be speci-
REAL8 ontoVector[0..2]
fied in Global Rectangular coordinates.
The XYZ components of the vector to project along. Must be speci-
REAL8 alongVector [0..2]
fied in Global Rectangular coordinates.
Only used when projOnto = 0 (FPO_CURVE) and projAlong = 0
(FPA_CLOSEST). When True, the curve to project onto will be
extended and the point or node will be projected onto the location
BOOL ExtendCurves
closest to the Extended Curve (i.e., not actually on the curve
itself). When False, the point or node will be projected onto the
curve, many projecting onto one of the curves end points.
feProjectOnto API-565

feProjectOnto
( entityTYPE, entitySET, projOnto, projAlong, ontoSET, OntoLocation, OntoVector,
AlongVector, ExtendCurves, VectorBothDirections)
Only used when projOnto = 1 (FPO_SURFACE) and projAlong = 1
(FPA_VECTOR). When True, the point(s) or node(s) will be pro-
jected in both directions along the specified vector. This allows
BOOL VectorBothDirections
points on both sides of a surface to be projected using a single speci-
fied vector. When False, the point(s) and node(s) will only be pro-
jected in the direction of the specified vector.
Output:
None
Return Code:
FE_INVALID EntityTYPE does not specify either points or nodes.
FE_FAIL Could not project.
Remarks/Usage:
This call is similar to using the Modify, Project, Point or Modify, Project, Node command.
Example:
None
API-566 feProjectOntoCurve

3.10.1.2 feProjectOntoCurve

feProjectOntoCurve
( entityTYPE, entitySET, curveID )
Description:
Projects nodes or points onto a curve.
Input:
The type of entities to be projected. For entity information, see Sec-
INT4 entityTYPE
tion 3.3.6, "Entity Types". Can be FT_POINT or FT_NODE.
The ID of a set that contains a list of point or node IDs that will be
INT4 entitySET projected. Alternatively, if you specify a negative value, this is sim-
ply the ID of the single entity to project.
INT4 curveID The ID of the curve to project onto.
Output:
None
Return Code:
FE_INVALID EntityTYPE does not specify either points or nodes.
FE_FAIL Could not project.
Remarks/Usage:
Points/nodes are projected to the closest location on the curve, not along any specified vector.
Example:
None
feProjectOntoSurface API-567

3.10.1.3 feProjectOntoSurface

feProjectOntoSurface
( entityTYPE, entitySET, surfaceID )
Description:
Projects nodes or points onto a surface.
Input:
The type of entities to be projected. For entity information, see Sec-
INT4 entityTYPE
tion 3.3.6, "Entity Types". Can be FT_POINT or FT_NODE.
The ID of a set that contains a list of point or node IDs that will be
INT4 entitySET projected. Alternatively, if you specify a negative value, this is sim-
ply the ID of the single entity to project.
INT4 surfaceID The ID of the surface to project onto.
Output:
None
Return Code:
FE_INVALID EntityTYPE does not specify either points or nodes.
FE_FAIL Could not project.
Remarks/Usage:
Points/nodes are projected to the closest location on the surface, not along any specified vector.
Example:
None
API-568 feProjectOntoVector

3.10.1.4 feProjectOntoVector

feProjectOntoVector
( entityTYPE, entitySET, vecLoc, vecDir )
Description:
Projects points or nodes onto a vector
Input:
The type of entities to be projected. For entity information, see Sec-
INT4 entityTYPE
tion 3.3.6, "Entity Types". Can be FT_POINT or FT_NODE.
The ID of a set that contains a list of point or node IDs that will be
INT4 entitySET projected. Alternatively, if you specify a negative value, this is sim-
ply the ID of the single entity to project.
The XYZ location of the base of the vector to project onto. Must be
REAL8 vecLoc[0..2]
specified in Global Rectangular coordinates.
The XYZ components of the vector to project onto. Must be speci-
REAL8 vecDir[0..2]
fied in Global Rectangular coordinates.
Output:
None
Return Code:
FE_FAIL Could not project.
FE_INVALID entityTYPE must be either FT_POINT or FT_NODE
Remarks/Usage:
None
Example:
None
feProjectAlongVector API-569

3.10.1.5 feProjectAlongVector

feProjectAlongVector
( entityTYPE, entitySET, surfaceSET, vecAlong )
Description:
Projects points or nodes along a vector onto selected surfaces
Input:
The type of entities to be projected. For entity information, see Sec-
INT4 entityTYPE
tion 3.3.6, "Entity Types". Can be FT_POINT or FT_NODE.
The ID of a set that contains a list of point or node IDs that will be
INT4 entitySET projected. Alternatively, if you specify a negative value, this is sim-
ply the ID of the single entity to project.
The ID of a set that contains a list of surface IDs that the entities will
INT4 surfaceSET be projected onto. Alternatively, if you specify a negative value, this
is the ID of the single surface to project onto.
The XYZ components of the vector to project along. Must be speci-
REAL8 vecAlong[0..2]
fied in Global Rectangular coordinates.
Output:
None
Return Code:
FE_FAIL Could not project.
FE_INVALID entityTYPE must be either FT_POINT or FT_NODE
Remarks/Usage:
None
Example:
None
API-570 feProjectOntoPlane

3.10.1.6 feProjectOntoPlane

feProjectOntoPlane
( entityTYPE, entitySET, planeLoc, planeNormal )
Description:
Projects points or nodes onto a plane
Input:
The type of entities to be projected. For entity information, see Sec-
INT4 entityTYPE
tion 3.3.6, "Entity Types". Can be FT_POINT or FT_NODE.
The ID of a set that contains a list of point or node IDs that will be
INT4 entitySET projected. Alternatively, if you specify a negative value, this is sim-
ply the ID of the single entity to project.
The XYZ location of the base of the plane to project onto. Must be
REAL8 planeLoc[0..2]
specified in Global Rectangular coordinates.
The XYZ components of the plane normal to project onto. Must be
REAL8 planeNormal[0..2]
specified in Global Rectangular coordinates.
Output:
None
Return Code:
FE_FAIL Could not project.
FE_INVALID entityTYPE must be either FT_POINT or FT_NODE
Remarks/Usage:
None
Example:
None
feProjectOntoSolid API-571

3.10.1.7 feProjectOntoSolid

feProjectOntoSolid
( nodeSET, elemSET, solidID, surfCount, surfID )
Description:
Projects a mesh onto a solid.
Input:
The ID of a set that contains a list of node IDs that will be projected.
INT4 nodeSET Alternatively, if you specify a negative value, this is simply the ID of
the single entity to project.
The ID of a set that contains a list of element IDs that reference the
nodes to be projected. Alternatively, if you specify a negative value,
INT4 elemSET
this is simply the ID of the single entity to project. These elements
are used during the smoothing process as the nodes are projected.
The ID of the solid to project onto. Must be 0 if you are going to
INT4 solidID
specify surfaces.
The number of surfaces specified in surfID - only used if soli-
INT4 surfCount
dID=0.
The IDs of the surfaces to project onto - only used if solidID=0 and
INT4 surfID[0..surfCount-1]
surfCount is not 0.
Output:
None
Return Code:
FE_FAIL Could not project.
Remarks/Usage:
A mesh can either be projected to a solid by specifying solidID, or to surfaces by specifying surfCount
and surfID.
Example:
None
API-572 feMoveTo

3.10.2 Move, Rotate and Scale


3.10.2.1 feMoveTo

feMoveTo
( entityTYPE, entitySET, x, y, z, doX, doY, doZ, inCsys, moveRef )
Description:
Moves nodes, points, or coordinate systems to a new location.
Input:
The type of entities to be moved. For entity information, see Section
INT4 entityTYPE
3.3.6, "Entity Types". Can be FT_CSYS, FT_POINT or FT_NODE.
The ID of a set that contains a list of coordinate system, point, or
INT4 entitySET node IDs that will be moved. Alternatively, if you specify a negative
value, this is simply the ID of the single entity to move.
REAL8 x
The coordinates that you want to move to. Specified in the inCsys
REAL8 y
coordinate system.
REAL8 z
BOOL doX
If True, the corresponding coordinate direction (in inCsys) will be
BOOL doY updated to the specified value. Only directions specified as True will
be moved.
BOOL doZ
INT4 inCsys The ID of the coordinate system where the update will take place.
Only used if entityTYPE=FT_CSYS. If True, then all entities that
BOOL moveRef reference the coordinate systems being moved will also be updated
as a rigid body.
Output:
None
Return Code:
FE_INVALID EntityTYPE does not specify coordinate systems, points, or nodes.
FE_FAIL Could not move.
Remarks/Usage:
You cannot move the global coordinate systems.
Example:
None
feMoveBy API-573

3.10.2.2 feMoveBy

feMoveBy
( entityTYPE, entitySET, radial, length, vecLoc )
Description:
Moves nodes, points, or coordinate systems to a new location.
Input:
The type of entities to be moved. For entity information, see Section
3.3.6, "Entity Types". Can be FT_POINT, FT_CURVE, FT_CSYS,
INT4 entityTYPE
FT_SURFACE, FT_VOLUME, FT_SOLID, FT_NODE, or
FT_ELEM.
The ID of a set that contains a list of entity IDs that will be moved.
INT4 entitySET Alternatively, if you specify a negative value, this is simply the ID of
the single entity to move.
If True, entities will be moved radially from a central location. If
BOOL radial False, they will be moved along a vector. Only nodes and elements
can be moved radially.
The distance to move. If radial = False, this length is multiplied by
REAL8 length
the length of the vector to get the total distance.
If radial=False, contains the components of the vector to move along,
specified in global rectangular coordinates. If radial=True, specifies
REAL8 vecLoc[0..2]
the coordinates of the center that you are moving around, also speci-
fied in global rectangular coordinates.
Output:
None
Return Code:
Invalid entity type. Must specify one of the types listed in entity-
FE_INVALID
TYPE. Can only specify nodes or elements if radial=True.
FE_FAIL Could not move.
Remarks/Usage:
You cannot move the global coordinate systems.
Example:
None
API-574 feMoveOffset

3.10.2.3 feMoveOffset

feMoveOffset
( elemSET, method, length, alongVec )
Description:
Moves elements by offsetting them from their current location (normally used with planar elements).
Input:
The ID of a set that contains a list of element IDs that will be offset.
INT4 elemSET Alternatively, if you specify a negative value, this is simply the ID of
the single entity to offset.
The method of determining the offset direction: 0=Along alongVec,
INT4 method 1=along the element normal, 2=along the element normal with thick-
ness corrections.
The distance to offset. If method=0, this length is multiplied by the
REAL8 length
length of the vector to get the total distance.
Only used if method=0. Contains the components of the vector to
REAL8 alongVec[0..2]
move along, specified in global rectangular coordinates.
Output:
None
Return Code:
FE_FAIL Could not offset.
Remarks/Usage:
None
Example:
None
feRotateTo API-575

3.10.2.4 feRotateTo

feRotateTo
( entityTYPE, entitySET, axisLoc, axisVec, fromLoc, toLoc )
Description:
Rotates entities around an axis from one location to another.
Input:
The type of entities to be moved. For entity information, see Section
3.3.6, "Entity Types". Can be FT_POINT, FT_CURVE, FT_CSYS,
INT4 entityTYPE
FT_SURFACE, FT_VOLUME, FT_SOLID, FT_NODE, or
FT_ELEM.
The ID of a set that contains a list of entity IDs that will be rotated.
INT4 entitySET Alternatively, if you specify a negative value, this is simply the ID of
the single entity to rotate.
The coordinates of the origin of the axis of rotation, in global rectan-
REAL8 axisLoc[0..2]
gular coordinates.
The components of the axis of rotation, in global rectangular coordi-
REAL8 axisVec[0..2]
nates.
The coordinates of a point that you will rotate from, in global rectan-
REAL8 fromLoc[0..2]
gular coordinates.
The coordinates of a point that you will rotate to, in global rectangu-
REAL8 toLoc[0..2]
lar coordinates.
Output:
None
Return Code:
FE_INVALID EntityTYPE does not specify a valid type.
Could not rotate. Check to make sure that the locations and vectors
FE_FAIL
that you defined are not colinear or otherwise invalid.
Remarks/Usage:
The axis of rotation is combined with the fromLoc and toLoc to compute an angle of rotation, which is
then applied around the axis of rotation to every entity that you select.
Example:
None
API-576 feRotateBy

3.10.2.5 feRotateBy

feRotateBy
( entityTYPE, entitySET, axisLoc, axisVec, rotAngle, rotThrust )
Description:
Rotates entities around an axis through a specified angle.
Input:
The type of entities to be moved. For entity information, see Section
3.3.6, "Entity Types". Can be FT_POINT, FT_CURVE, FT_CSYS,
INT4 entityTYPE
FT_SURFACE, FT_VOLUME, FT_SOLID, FT_NODE, or
FT_ELEM.
The ID of a set that contains a list of entity IDs that will be rotated.
INT4 entitySET Alternatively, if you specify a negative value, this is simply the ID of
the single entity to rotate.
The coordinates of the origin of the axis of rotation, in global rectan-
REAL8 axisLoc[0..2]
gular coordinates.
The components of the axis of rotation, in global rectangular coordi-
REAL8 axisVec[0..2]
nates.
REAL8 rotAngle The angle of rotation, in degrees.
REAL8 rotThrust The total thrust distance (along the axis of rotation), typically zero.
Output:
None
Return Code:
FE_INVALID EntityTYPE does not specify a valid type.
Could not rotate. Check to make sure that the locations and vectors
FE_FAIL
that you defined are not colinear or otherwise invalid.
Remarks/Usage:
None
Example:
None
feAlignTo API-577

3.10.2.6 feAlignTo

feAlignTo
( entityTYPE, entitySET, fromLoc, fromVec, toLoc, toVec )
Description:
Aligns entities from one vector to another.
Input:
The type of entities to be aligned. For entity information, see Section
3.3.6, "Entity Types". Can be FT_POINT, FT_CURVE, FT_CSYS,
INT4 entityTYPE
FT_SURFACE, FT_VOLUME, FT_SOLID, FT_NODE or
FT_ELEM.
The ID of a set that contains a list of entity IDs that will be aligned.
INT4 entitySET Alternatively, if you specify a negative value, this is simply the ID of
the single entity to align.
The coordinates of the origin of the original vector, in global rectan-
REAL8 fromLoc[0..2]
gular coordinates.
The components of the original vector, in global rectangular coordi-
REAL8 fromVec[0..2]
nates.
The coordinates of the origin of the destination vector, in global rect-
REAL8 toLoc[0..2]
angular coordinates.
The components of the destination vector, in global rectangular coor-
REAL8 toVec[0..2]
dinates.
Output:
None
Return Code:
FE_INVALID EntityTYPE does not specify a valid type.
Could not align. Check to make sure that the locations and vectors
FE_FAIL
that you defined are not colinear or otherwise invalid.
Remarks/Usage:
None
Example:
None
API-578 feAlignBetweenCSys

3.10.2.7 feAlignBetweenCsys

feAlignBetweenCSys
( entityTYPE, entitySET, nFromCSysID, nToCSysID )
Description:
Aligns entities from one coordinate system to another.
Input:
The type of entities to be aligned. For entity information, see Section
3.3.6, "Entity Types". Can be FT_POINT, FT_CURVE, FT_CSYS,
INT4 entityTYPE
FT_SURFACE, FT_VOLUME, FT_SOLID, FT_NODE or
FT_ELEM.
The ID of a set that contains a list of entity IDs that will be aligned.
INT4 entitySET Alternatively, if you specify a negative value, this is simply the ID of
the single entity to align.
The ID of the Coordinate System to use as the From Coordinate
INT4 nFromCSysID
System
The ID of the Coordinate System to use as the To Coordinate Sys-
INT4 nToCSysID
tem
Output:
None
Return Code:
FE_INVALID EntityTYPE does not specify a valid type.
Could not align. Check to make sure that the locations and coordi-
FE_FAIL
nate systems that you selected are not colinear or otherwise invalid.
Remarks/Usage:
Using this API call is essentially the same as using the Modify, Align... commands in the user interface
when the Between Coordinate Systems method is selected.
Example:
None
feScale API-579

3.10.2.8 feScale

feScale
( entityTYPE, entitySET, fromLoc, csysID, xScale, yScale, zScale )
Description:
Scales entities around an origin.
Input:
The type of entities to be scaled. For entity information, see Section
INT4 entityTYPE 3.3.6, "Entity Types". Can be FT_POINT, FT_CURVE, FT_SUR-
FACE, FT_VOLUME, FT_SOLID, FT_NODE, or FT_ELEM.
The ID of a set that contains a list of entity IDs that will be scaled.
INT4 entitySET Alternatively, if you specify a negative value, this is simply the ID of
the single entity to scale.
The coordinates of the origin around which the entities will be
REAL8 fromLoc[0..2]
scaled, in global rectangular coordinates.
INT4 csysID The ID of the coordinate system in which scaling will take place.
REAL8 xScale
The scale factors in the axis directions of coordinate system csy-
REAL8 yScale
sID.
REAL8 zScale
Output:
None
Return Code:
FE_INVALID EntityTYPE does not specify a valid type.
FE_FAIL Could not scale.
Remarks/Usage:
None
Example:
None
API-580 feModifyColor

3.10.3 Color and Layer


3.10.3.1 feModifyColor

feModifyColor
( entityTYPE, entitySET, color, randomize )
Description:
Modifies the color of selected entities.
Input:
The type of entities to be modified. For entity information, see Sec-
tion 3.3.6, "Entity Types". Can be FT_CSYS, FT_POINT,
INT4 entityTYPE
FT_CURVE, FT_SURFACE, FT_VOLUME, FT_TEXT,
FT_NODE, FT_ELEM, FT_MATL, FT_PROP, or FT_CONTACT.
The ID of a set that contains a list of entity IDs that will be modified.
INT4 entitySET Alternatively, if you specify a negative value, this is simply the ID of
the single entity to modify.
INT4 color The new color that you want to assign to the selected entities.
Only valid for FT_PROP, FT_MATL, and FT_SURFACE. If True,
BOOL randomize then colors are randomized for the selected entities. The specified
color is simply used as initialization for the randomization process.
Output:
None
Return Code:
FE_INVALID EntityTYPE does not specify a valid type.
FE_FAIL Could not modify.
Remarks/Usage:
None
Example:
None
feModifyColorMultiple API-581

3.10.3.2 feModifyColorMultiple

feModifyColorMultiple
( entityTYPE, entitySET, color, method, matchRange, limitToGroupSet )
Description:
Modifies the color of selected entities.
Input:
The type of entities to be modified. For entity information, see Sec-
tion 3.3.6, "Entity Types". Can be FT_POINT, FT_CURVE, FT_-
INT4 entityTYPE
SURFACE, FT_SOLID, FT_NODE, FT_ELEM, FT_MATL, or
FT_PROP.
The ID of a set that contains a list of entity IDs that will be modified.
INT4 entitySET Alternatively, if you specify a negative value, this is simply the ID of
the single entity to modify.
The first color used when assigning colors. Other colors are assigned
INT4 color
randomly based on this color.
0= Single Color for all entities, 1=Assign color based on entity ID,
INT4 method 2=Assign color based on entity Type, 3=Assign color based on inclu-
sion in Groups
Only used when method=1. IDs in bands of this range receive the
same color. For example if matchRange=1000, then IDs 1000-1999
INT4 matchRange
would all be the same color, as would 2000-2999, 3000-3999, ... . Set
to 1 for fully random colors.
Only used when method=3. The ID of a Set that contains the IDs of
INT4 limitToGroupSet the Groups to consider when looking for entity inclusion. Set to 0 to
consider all Groups.
Output:
None
Return Code:
FE_FAIL EntityTYPE does not specify a valid type.
Remarks/Usage:
None
Example:
None
API-582 feModifyTransparency

3.10.3.3 feModifyTransparency

feModifyTransparency
( entityTYPE, entitySET, transparency )
Description:
Modifies the transparency of selected entities.
Input:
The type of entities to be modified. For entity information, see Sec-
INT4 entityTYPE tion 3.3.6, "Entity Types". Can be FT_SURFACE, FT_ELEM,
FT_PROP, or FT_MATL
The ID of a set that contains a list of entity IDs that will be modified.
INT4 entitySET Alternatively, if you specify a negative value, this is simply the ID of
the single entity to modify.
The transparency value to assign. Must be between 0 (opaque) and
REAL8 transparency
100 (fully transparent).
Output:
None
Return Code:
FE_INVALID EntityTYPE does not specify a valid type.
FE_FAIL Could not modify.
Remarks/Usage:
None
Example:
None
feModifyLayer API-583

3.10.3.4 feModifyLayer

feModifyLayer
( entityTYPE, entitySET, layer )
Description:
Modifies the layer of selected entities.
Input:
The type of entities to be modified. For entity information, see Sec-
tion 3.3.6, "Entity Types". Can be FT_CSYS, FT_POINT,
INT4 entityTYPE FT_CURVE, FT_SURFACE, FT_VOLUME, FT_SOLID, FT_-
TEXT, FT_NODE, FT_ELEM, FT_MATL, FT_PROP, or FT_CON-
TACT.
The ID of a set that contains a list of entity IDs that will be modified.
INT4 entitySET Alternatively, if you specify a negative value, this is simply the ID of
the single entity to modify.
INT4 color The new layer that you want to assign to the selected entities.
Output:
None
Return Code:
FE_INVALID EntityTYPE does not specify a valid type.
FE_FAIL Could not modify.
Remarks/Usage:
None
Example:
None
API-584 feRenumber

3.10.4 Renumbering
3.10.4.1 feRenumber

feRenumber
( entityTYPE, entitySET, startID )
Description:
Renumbers the IDs of selected entities.
Input:
The type of entities to be modified. For entity information, see Sec-
tion 3.3.6, "Entity Types". Can be FT_POINT, FT_CURVE, FT_-
SURFACE, FT_VOLUME, FT_SOLID, FT_CSYS, FT_NODE,
INT4 entityTYPE FT_ELEM, FT_MATL, FT_PROP, FT_LAYUP, FT_OUT_CASE,
FT_GROUP, FT_LOAD_DIR, FT_BC_DIR, FT_AMGR_DIR,
FT_LAYER, FT_CONNECTION_PROP, FT_CONTACT,
FT_CONNECTION, and FT_FUNCTION_DIR.
The ID of a set that contains a list of entity IDs that will be modified.
INT4 entitySET Alternatively, if you specify a negative value, this is simply the ID of
the single entity to modify.
The new ID of the first entity to be renumbered. All other entities
INT4 startID
will be renumbered to available IDs that are higher than this number.
Output:
None
Return Code:
FE_INVALID EntityTYPE does not specify a valid type.
FE_FAIL Could not renumber.
Remarks/Usage:
For more renumbering options, use feRenumberOpt( )
Example:
None
feRenumberOpt API-585

3.10.4.2 feRenumberOpt

feRenumberOpt
( entityTYPE, entitySET, startID, renumMethod, renumCSysID, renumAbs, renumDe-
scend, renumConstOff )
Description:
Renumbers the IDs of selected entities. This method has been superseded by feRenumberOpt2.
Input:
The type of entities to be modified. For entity information, see Sec-
tion 3.3.6, "Entity Types". Can be FT_POINT, FT_CURVE, FT_-
SURFACE, FT_VOLUME, FT_SOLID, FT_CSYS, FT_NODE,
INT4 entityTYPE FT_ELEM, FT_MATL, FT_PROP, FT_LAYUP, FT_OUT_CASE,
FT_GROUP, FT_LOAD_DIR, FT_BC_DIR, FT_AMGR_DIR,
FT_LAYER, FT_CONNECTION_PROP, FT_CONTACT,
FT_CONNECTION, and FT_FUNCTION_DIR.
The ID of a set that contains a list of entity IDs that will be modified.
INT4 entitySET Alternatively, if you specify a negative value, this is simply the ID of
the single entity to modify.
The new ID of the first entity to be renumbered. All other entities
INT4 startID
will be renumbered to available IDs that are higher than this number.
The method used for sorting the entities to be renumbered. 0=ID,
1=Not Available, 2=Color, 3=Layer, 4=X Coord, 5=Y Coord, 6=Z
INT4 renumMethod Coord, 7=Reference Entity ID (Material ID if renumbering proper-
ties, Property ID if renumbering Elements), 8=Entity Type, 9=Mini-
mum Node ID
The coordinate system ID in which coordinate renumbering is done.
INT4 renumCSysID This is only used for the entityTYPEs where X,Y,Z sorting is avail-
able, and when renumMethod is set to one of those options
If True, the absolute value of coordinate values are used when sort-
BOOL renumAbs
ing by coordinates
If True, the sort is done in Descending order, otherwise in Ascending
BOOL renumDescend
order
BOOL renumConstOff If True, all entities are renumbered with a constant ID offset
Output:
None
Return Code:
FE_INVALID EntityTYPE does not specify a valid type.
FE_FAIL Could not renumber.
API-586 feRenumberOpt

feRenumberOpt
( entityTYPE, entitySET, startID, renumMethod, renumCSysID, renumAbs, renumDe-
scend, renumConstOff )
Remarks/Usage:
This works just like feRenumber, but allows you to specify additional renumbering options. Use feRe-
number for a simpler interface if you are simply renumbering by ID.

Not all combinations of renumMethod and entityTYPE are available - only those combinations avail-
able in the interactive renumbering commands will work properly.
Example:
None
feRenumberOpt2 API-587

3.10.4.3 feRenumberOpt2

feRenumberOpt2
( entityTYPE, entitySET, startID, renumMethod, renumCSysID, renumAbs, renumDe-
scend, renumConstOff, xyzSortOrder )
Description:
Renumbers the IDs of selected entities. Supersedes feRenumberOpt
Input:
The type of entities to be modified. For entity information, see Sec-
tion 3.3.6, "Entity Types". Can be FT_POINT, FT_CURVE, FT_-
SURFACE, FT_VOLUME, FT_SOLID,
FT_CONNECTION_PROP, FT_CONTACT, FT_CONNECTION,
FT_CSYS, FT_NODE, FT_ELEM, FT_MATL, FT_PROP,
INT4 entityTYPE
FT_LAYUP, FT_LOAD_DIR, FT_LOAD_DEFINITION,
FT_BC_DIR, FT_BC_DEFINITION, FT_AMGR_DIR,
FT_FUNCTION_DIR, FT_OUT_CASE, FT_GROUP, FT_LAYER,
FT_AERO_PANEL, FT_AERO_PROP, FT_AERO_SPLINE, and
FT_AERO_SURF
The ID of a set that contains a list of entity IDs that will be modified.
INT4 entitySET Alternatively, if you specify a negative value, this is simply the ID of
the single entity to modify.
The new ID of the first entity to be renumbered. All other entities
INT4 startID
will be renumbered to available IDs that are higher than this number.
The method used for sorting the entities to be renumbered. 0=ID,
1=Not Available, 2=Color, 3=Layer, 4=X Coord, 5=Y Coord, 6=Z
INT4 renumMethod Coord, 7=Reference Entity ID (Material ID if renumbering proper-
ties, Property ID if renumbering Elements), 8=Entity Type, 9=Mini-
mum Node ID, 10=Use XYZ Sort Order (zyzSortOrder)
The coordinate system ID in which coordinate renumbering is done.
INT4 renumCSysID This is only used for the entityTYPEs where X,Y,Z sorting is avail-
able, and when renumMethod is set to one of those options
If True, the absolute value of coordinate values are used when sort-
BOOL renumAbs
ing by coordinates
If True, the sort is done in Descending order, otherwise in Ascending
BOOL renumDescend
order
BOOL renumConstOff If True, all entities are renumbered with a constant ID offset
Specifies the XYZ sort order using 3 unique values. 0=None, 1=+X,
INT4 xyzSortOrder[0..2]
2=-X, 3=+Y, 4=-Y, 5=+Z, 6=-Z
Output:
None
API-588 feRenumberOpt2

feRenumberOpt2
( entityTYPE, entitySET, startID, renumMethod, renumCSysID, renumAbs, renumDe-
scend, renumConstOff, xyzSortOrder )
Return Code:
FE_INVALID EntityTYPE does not specify a valid type.
FE_FAIL Could not renumber.
Remarks/Usage:
This works just like feRenumber, but allows you to specify additional renumbering options. Use feRe-
number for a simpler interface if you are simply renumbering by ID.

Not all combinations of renumMethod and entityTYPE are available - only those combinations avail-
able in the interactive renumbering commands will work properly.
Example:
Sub Main
Dim App As femap.model
Set App = feFemap()

Dim elset As femap.Set


Set elset = App.feSet

elset.AddAll (FT_ELEM)

Dim xyzOrder(2) As Long


Use +X, +Y, and +Z as the Sort Order
xyzOrder(0) = 1
xyzOrder(1) = 3
xyzOrder(2) = 5

rc = App.feRenumberOpt2 (FT_ELEM, elset.ID, 10000, 10, 0, False,


False, False, xyzOrder)
End Sub
feAutoMeshAssociativity API-589

3.10.5 Associativity
3.10.5.1 feAutoMeshAssociativity

feAutoMeshAssociativity
( elemSetID, solidSetID, dTolerance, bClearPrevious, bCheckContainment, bAttachMid-
side, bGroupExtra, bMessages, nUnattachedGroup )
Description:
Automatically associates both nodes and elements with geometry that is coincident in your model
Input:
The ID of a set that contains a list of element IDs that will be
attached. Alternatively, if you specify a negative value, this is simply
INT4 elemSetID
the ID of the single entity to attach. Nodes are automatically deter-
mined for attachment based on the selected elements.
The ID of a set that contains a list of solid IDs to which the mesh will
INT4 solidSetID
be attached.
The tolerance value. Nodes must be within this tolerance distance of
REAL8 dTolerance
the geometry that they will be associated too.
If True, removes and previous atttachments from the nodes/elements
BOOL bClearPrevious
prior to completing this command.
If True and you are associating to multiple solids this will first find
BOOL bCheckContainment the solid that you an element is in by checking the containment of the
location of its centroid.
If True, midside nodes will be associated as well as corner nodes.,
BOOL bAttachMidside
Otherwise only corners will be associated.
If True, status and warning messages will be written during the pro-
BOOL bMessages
cessing
Output:
The ID of a group that will receive any geometry that could not be
INT4 nUnattachedGroup
attached fully
Return Code:
None
Remarks/Usage:
None
Example:
None
API-590 feMeshAttach

3.10.5.2 feMeshAttach

feMeshAttach
( entityTYPE, entitySET, attachTYPE, attachID, doNodes )
Description:
Associates nodes or elements with specified geometry.
Input:
The type of entities to be attached. For entity information, see Sec-
INT4 entityTYPE
tion 3.3.6, "Entity Types". Can be FT_NODE or FT_ELEM.
The ID of a set that contains a list of entity IDs that will be attached.
INT4 entitySET Alternatively, if you specify a negative value, this is simply the ID of
the single entity to attach.
The type of geometry to attach the node/element to. Can be
INT4 attachTYPE
FT_POINT, FT_CURVE, FT_SURFACE, or FT_SOLID.
INT4 attachID The ID of the geometry to attach to.
Only used if entityTYPE=FT_ELEM. In this case, if True, then the
BOOL doNodes nodes on the element will also be associated with the same geometry
as the element.
Output:
None
Return Code:
FE_INVALID EntityTYPE does not specify a valid type.
FE_FAIL Could not attach.
Remarks/Usage:
None
Example:
None
feMeshAttachNodes API-591

3.10.5.3 feMeshAttachNodes

feMeshAttachNodes
( nNodes, nodeID, attachTYPE, attachID )
Description:
Associates nodes with specified geometry.
Input:
INT4 nNodes The number of nodes specified in the other arrays
INT4 nodeID[0..nNodes-1] The IDs of the nodes being attached to geometry.
The types of geometry to attach the node/element to. Entries can be
INT4 attachTYPE[0..nNodes-1]
FT_POINT, FT_CURVE, FT_SURFACE, or FT_SOLID.
INT4 attachID[0..nNodes-1] The IDs of the geometry to attach each node to.
Output:
None
Return Code:
FE_INVALID One or more attachTYPEs do not specify a valid type.
FE_FAIL Could not attach one or more nodes
Remarks/Usage:
For each node you want to attach to geometry, there must be corresponding entries in the three arrays.
Example:
None
API-592 feMeshDetach

3.10.5.4 feMeshDetach

feMeshDetach
( entityTYPE, entitySET, attachTYPE, attachID, interior )
Description:
Removes association between nodes or elements and specified geometry.
Input:
The type of entities to be detached. For entity information, see Sec-
INT4 entityTYPE
tion 3.3.6, "Entity Types". Can be FT_NODE or FT_ELEM.
The ID of a set that contains a list of entity IDs that will be detached.
INT4 entitySET Alternatively, if you specify a negative value, this is simply the ID of
the single entity to detach.
The type of geometry to attach the node/element to. Can be
FT_POINT, FT_CURVE, FT_SURFACE, or FT_SOLID. You can
INT4 attachTYPE
also specify attachTYPE=0, in which case attachID is not used, and
the node/element is detached from all geometry.
INT4 attachID The ID of the geometry to detach. Not used if attachTYPE=0.
Only used if entityTYPE=FT_NODE, and
BOOL interior attachTYPE=FT_CURVE, FT_SURFACE or FT_SOLID. If True,
the node is detached only if it is an interior node.
Output:
None
Return Code:
FE_INVALID EntityTYPE does not specify a valid type.
FE_FAIL Could not detach.
Remarks/Usage:
None
Example:
None
feModifyDefCSys API-593

3.10.6 Other Updates


3.10.6.1 feModifyDefCSys

feModifyDefCSys
( entityTYPE, entitySET, csysID )
Description:
Updates the definition coordinate system of selected entities.
Input:
The type of entities to be updated. For entity information, see Section
INT4 entityTYPE
3.3.6, "Entity Types". Can be FT_CSYS, FT_POINT, or FT_NODE.
The ID of a set that contains a list of entity IDs that will be updated.
INT4 entitySET Alternatively, if you specify a negative value, this is simply the ID of
the single entity to update.
The ID of the coordinate system to use as the definition coordinate
INT4 csysID
system.
Output:
None
Return Code:
FE_INVALID EntityTYPE does not specify a valid type.
FE_FAIL Could not update. Check to see that coordinate system exists.
Remarks/Usage:
None
Example:
None
API-594 feModifyOutCSys

3.10.6.2 feModifyOutCSys

feModifyOutCSys
( entityTYPE, entitySET, csysID )
Description:
Updates the output coordinate system of selected entities.
Input:
The type of entities to be updated. For entity information, see Section
INT4 entityTYPE
3.3.6, "Entity Types". Must be FT_NODE.
The ID of a set that contains a list of entity IDs that will be updated.
INT4 entitySET Alternatively, if you specify a negative value, this is simply the ID of
the single entity to update.
The ID of the coordinate system to use as the output coordinate sys-
INT4 csysID
tem.
Output:
None
Return Code:
FE_INVALID EntityTYPE does not specify a valid type.
FE_FAIL Could not update. Check to see that coordinate system exists.
Remarks/Usage:
None
Example:
None
feModifyPermBC API-595

3.10.6.3 feModifyPermBC

feModifyPermBC
( entitySET, t1, t2, t3, r1, r2, r3 )
Description:
Updates the permanent constraints on nodes.
Input:
The ID of a set that contains a list of node IDs that will be updated.
INT4 entitySET Alternatively, if you specify a negative value, this is simply the ID of
the single node to update.
BOOL t1
BOOL t2
BOOL t3 Corresponds to the six degrees of freedom of each node. If True, the
BOOL r1 associated degree of freedom is constrained.

BOOL r2
BOOL r3
Output:
None
Return Code:
FE_FAIL Could not update.
Remarks/Usage:
None
Example:
None
API-596 feModifySplineOrder

3.10.6.4 feModifySplineOrder

feModifySplineOrder
( entitySET, order )
Description:
Updates the order of b-spline curves.
Input:
The ID of a set that contains a list of curve IDs that will be updated.
INT4 entitySET Alternatively, if you specify a negative value, this is simply the ID of
the single curve to update.
The new order of the b-spline curve. Must be a value between 3 and
INT4 order
10.
Output:
None
Return Code:
FE_FAIL Could not update.
Remarks/Usage:
Only used with standard geometry engine b-splines - not solid engine curves.
Example:
None
feModifySplineKnots API-597

3.10.6.5 feModifySplineKnots

feModifySplineKnots
( entitySET, knotLoc )
Description:
Insert knots into b-spline curves.
Input:
The ID of a set that contains a list of curve IDs that will be updated.
INT4 entitySET Alternatively, if you specify a negative value, this is simply the ID of
the single curve to update.
REAL8 knotLoc[0..2] The location, in global rectangular coordinates, of the knot to insert.
Output:
None
Return Code:
FE_FAIL Could not update.
Remarks/Usage:
Only used with standard geometry engine b-splines - not solid engine curves.
Example:
None
API-598 feModifyReverseCurve

3.10.6.6 feModifyReverseCurve

feModifyReverseCurve
( entitySET )
Description:
Reverses the direction of selected curves.
Input:
The ID of a set that contains a list of curve IDs that will be updated.
INT4 entitySET Alternatively, if you specify a negative value, this is simply the ID of
the single curve to update.
Output:
None
Return Code:
FE_FAIL Could not update.
Remarks/Usage:
Only used with standard geometry engine curves - not solid engine curves.
Example:
None
feModifyNoMergeCurve API-599

3.10.6.7 feModifyNoMergeCurve

feModifyNoMergeCurve
( entitySET, bNoMerge )
Description:
Marks selected curves as mergeable or nonmergeable.
Input:
The ID of a set that contains a list of curve IDs that will be updated.
INT4 entitySET Alternatively, if you specify a negative value, this is simply the ID of
the single curve to update.
BOOL bNoMerge If True, curves are made nonmergeable. If False, they are mergeable.
Output:
None
Return Code:
FE_FAIL Could not update.
Remarks/Usage:
Only used with solid engine curves - not standard geometry engine curves.
Example:
None
API-600 feModifySurfaceDivisions

3.10.6.8 feModifySurfaceDivisions

feModifySurfaceDivisions
( entitySET, sDiv, tDiv, tolerance )
Description:
Updates the graphical divisions and facetting used to display surfaces.
Input:
The ID of a set that contains a list of surface IDs that will be updated.
INT4 entitySET Alternatively, if you specify a negative value, this is simply the ID of
the single surface to update.
The number of divisions displayed along the first parametric direc-
INT4 sDiv
tion of the surface.
The number of divisions displayed along the second parametric
INT4 tDiv
direction of the surface.
The accuracy with which the graphical facetting of solid geometry
engine surfaces is created. Decreasing this number results in more
REAL8 tolerance facets and slower draw times, but a closer approximation to the
actual geometry. Increasing the number speeds up draw times, but
can lead to coarse approximations of the true geometry.
Output:
None
Return Code:
FE_FAIL Could not update.
Remarks/Usage:
None
Example:
None
feModifySurfaceNormal API-601

3.10.6.9 feModifySurfaceNormal

feModifySurfaceNormal
( entityTYPE, entitySET )
Description:
Reverses the normal direction of surfaces of Parasolid Sheet Solids. Only surfaces which are part of a
Parasolid Sheet Solid have their normal direction reversed. Also, if only a subset of surfaces comprising
a sheet solid are selected, ALL of the surfaces will be reversed, not just the selected surfaces.
Input:
The type of entities to be updated. For entity information, see Section
INT4 entityTYPE
3.3.6, "Entity Types". Can be FT_SURFACE or FT_SOLID.
The ID of a set that contains a list of surface or solid (sheet solids
only) IDs that will be updated. Alternatively, if you specify a nega-
INT4 entitySET
tive value, this is simply the ID of the single surface or sheet solid to
update.
Output:
None
Return Code:
FE_FAIL Could not update.
Remarks/Usage:
It is important that no surfaces which are on a Parasolid Solid are included in the set of surfaces, other-
wise the normal direction will not be reversed on any surfaces, not just the surfaces on the Solid(s).
Example:
None
API-602 feModifySolidFacetting

3.10.6.10 feModifySolidFacetting

feModifySolidFacetting
( entitySET, sDiv, tDiv, dAngleTol, dChordTol, dCurveFactor )
Description:
Updates the graphical divisions and facetting used to display solids.
Input:
The ID of a set that contains a list of solid IDs that will be updated.
INT4 entitySET Alternatively, if you specify a negative value, this is simply the ID of
the single solid to update.
The number of divisions displayed along the first parametric direc-
INT4 sDiv
tion of the surfaces of the solid.
The number of divisions displayed along the second parametric
INT4 tDiv
direction of the surfaces of the solid.
REAL8 dAngleTol The percent of angle error allowed between the solid and facets
REAL8 dChordTol The percent of chord error allowed between the solid and facets
The refinement factor for curve facets compared to the default solid
REAL8 dCurveFactor
facetting.
Output:
None
Return Code:
FE_FAIL Could not update.
Remarks/Usage:
None
Example:
None
feModifySuperelementID API-603

3.10.6.11 feModifySuperelementID

feModifySuperelementID
( entitySET, nSEID )
Description:
Updates the superelementID of a set of nodes.
Input:
The ID of a set that contains a list of node IDs that will be updated.
INT4 entitySET Alternatively, if you specify a negative value, this is simply the ID of
the single node to update.
INT4 nSEID The superelementID to assign to the nodes.
Output:
None
Return Code:
FE_FAIL Could not update.
Remarks/Usage:
None
Example:
None
API-604 feModifyLoadPhase

3.10.6.12 feModifyLoadPhase

feModifyLoadPhase
( entityTYPE, entitySET, phase )
Description:
Updates the phase of selected loads.
Input:
The type of entities where the loads to be modified are applied. For
entity information, see Section 3.3.6, "Entity Types". Can be
INT4 entityTYPE
FT_NODE, FT_ELEM, FT_POINT, FT_CURVE, or FT_SUR-
FACE. This is the type of entity that is selected in entitySET.
The ID of a set that contains a list of entity IDs where the loads are
INT4 entitySET applied. Alternatively, if you specify a negative value, this is simply
the ID of the single entity with a load applied.
REAL8 phase The new phase value.
Output:
None
Return Code:
FE_INVALID EntityTYPE does not specify a valid type.
FE_FAIL Could not update.
Remarks/Usage:
Only loads in the active load set will be updated. The selection/specification of entities refers to the enti-
ties where the loads are applied - not the loads themselves.
Example:
None
feModifyElemPropID API-605

3.10.7 Element Updates


3.10.7.1 feModifyElemPropID

feModifyElemPropID
( entitySET, propID )
Description:
Updates the property ID of selected elements.
Input:
The ID of a set that contains a list of element IDs that will be
INT4 entitySET updated. Alternatively, if you specify a negative value, this is simply
the ID of the single element to update.
The ID of the new property to assign to the elements. This property
INT4 propID
must be compatible with the element types chosen.
Output:
None
Return Code:
FE_INVALID EntityTYPE does not specify a valid type.
Could not update. Check to see that property exists and is of the cor-
FE_FAIL
rect type.
Remarks/Usage:
None
Example:
None
API-606 feModifyPropMatlID

3.10.7.2 feModifyPropMatlID

feModifyPropMatlID
( entitySET, matlID )
Description:
Updates the material ID of selected properties.
Input:
The ID of a set that contains a list of property IDs that will be
INT4 entitySET updated. Alternatively, if you specify a negative value, this is simply
the ID of the single property to update.
INT4 matlID The ID of the new material to assign to the properties.
Output:
None
Return Code:
FE_INVALID EntityTYPE does not specify a valid type.
FE_FAIL Could not update. Check to see that material exists.
Remarks/Usage:
This method only updates the primary material identifier. Laminate properties cannot be updated using
this method.
Example:
None
feModifyMaterialAngle API-607

3.10.7.3 feModifyMaterialAngle

feModifyMaterialAngle
( entitySET, method, vecDir, coordDir, coordCSys, angle )
Description:
Updates the material angle of selected entities.
Input:
The ID of a set that contains a list of element IDs that will be
INT4 entitySET updated. Alternatively, if you specify a negative value, this is simply
the ID of the single element to update.
The method for specifying material angles: 0=None/Off, 1=Vector,
INT4 method
2=CoordSys, 3=Angle.
REAL8 vecDir[0..2] The vector to be used for definition of material angles if method=1.
Sets the direction (0=X,1=Y,2=Z) in the specified coordinate system
INT4 coordDir
to be used for material angles. Only used if method=2.
INT4 coordCSys Sets the coordinate system ID to be used if method=2.
Sets the angle to be used for the definition of material angles when
REAL8 angle
method=3.
Output:
None
Return Code:
FE_FAIL Could not define material angle.
Remarks/Usage:
To turn material angles off for the selected elements, simply specify method=0.
Example:
None
API-608 feModifyElemReverse2

3.10.7.4 feModifyElemReverse2

feModifyElemReverse2
( entitySET, method, vecDir, csysID, csysDir )
Description:
Reverses the normal of planar elements, or optionally spins them to orient the first edge along a vector.
Input:
The ID of a set that contains a list of element IDs that will be
INT4 entitySET updated. Alternatively, if you specify a negative value, this is simply
the ID of the single element to update.
The method for updating the elements: 0=Reverse, 1=Normals Out-
INT4 method ward, 2=Normals Inward, 3=Align to Vector, 4=Align to CSys
Direction.
The vector to be used for aligning the first edge of the elements if
REAL8 vecDir[0..2]
method=3.
INT4 csysID ID of Coordinate System to use if method=4
Coordinate system axis to use to align first edge if method=4. This
must have values 1=X (or R), 2=Y (or theta), 3=Z (or phi). You can
INT4 csysDir
also specify -1,-2, or -3 to choose the negative coordinate system
direction.
Output:
None
Return Code:
FE_FAIL Could not update.
Remarks/Usage:
This method should only be used with planar elements.
Example:
None
feModifyElemReverse API-609

3.10.7.5 feModifyElemReverse

feModifyElemReverse
( entitySET, method, vecDir )
Description:
Reverses the normal of planar elements, or optionally spins them to orient the first edge along a vector.
This method is obsolete - feModifyElemReverse2( ) provides additional functionality.
Input:
The ID of a set that contains a list of element IDs that will be
INT4 entitySET updated. Alternatively, if you specify a negative value, this is simply
the ID of the single element to update.
The method for updating the elements: 0=Reverse, 1=Normals Out-
INT4 method
ward, 2=Normals Inward, 3=Align to Vector.
The vector to be used for aligning the first edge of the elements if
REAL8 vecDir[0..2]
method=3.
Output:
None
Return Code:
FE_FAIL Could not update.
Remarks/Usage:
This method should only be used with planar elements.
Example:
None
API-610 feModifyElemRelease

3.10.7.6 feModifyElemRelease

feModifyElemRelease
( entitySET, rel1, rel2 )
Description:
Updates the releases at the ends at the ends of beam (and other) elements.
Input:
The ID of a set that contains a list of element IDs that will be
INT4 entitySET updated. Alternatively, if you specify a negative value, this is simply
the ID of the single element to update.
The release flags for End 1 of the element. Specify True to release a
BOOL rel1[0..5]
corresponding elemental degree of freedom.
The release flags for End 2 of the element. Specify True to release a
BOOL rel2[0..5]
corresponding elemental degree of freedom.
Output:
None
Return Code:
FE_FAIL Could not update.
Remarks/Usage:
This method should only be used with beam or bar elements.
Example:
None
feModifyElemOrder API-611

3.10.7.7 feModifyElemOrder

feModifyElemOrder
( entitySET, makeParabolic, ontoGeometry, maxAngle )
Description:
Updates the order of elements between linear and parabolic.
Input:
The ID of a set that contains a list of element IDs that will be
INT4 entitySET updated. Alternatively, if you specify a negative value, this is simply
the ID of the single element to update.
Set to True to convert elements to parabolic. Set to False to convert
BOOL makeParabolic to linear elements. Midside nodes will be created when converting to
parabolic.
If you are converting to parabolic, set to True to project the midside
BOOL ontoGeometry nodes onto any referenced geometry. Set to False to leave the nodes
at the midside.
If you are projecting midside nodes onto geometry, this is the maxi-
REAL8 maxAngle
mum angle that any edge can be distorted by the movement.
Output:
None
Return Code:
FE_FAIL Could not update.
Remarks/Usage:
This method should only be used with elements that have both linear and parabolic types.
Example:
None
API-612 feModifyMidside

3.10.7.8 feModifyMidside

feModifyMidside
( elemSET, nodeSET )
Description:
Updates the midside nodes of selected elements to be at the middle of the element edge.
Input:
The ID of a set that contains a list of element IDs that will be
INT4 elemSET updated. Alternatively, if you specify a negative value, this is simply
the ID of the single element to update.
The ID of a set that contains a list of node IDs that will not be
updated. All midside nodes on the elements in elemSET are normally
INT4 nodeSET
updated. If you want to skip some nodes, include them in this set.
Specify nodeSET=0 if you want to update all midside nodes.
Output:
None
Return Code:
FE_FAIL Could not update.
Remarks/Usage:
None
Example:
None
feModifyFormulation API-613

3.10.7.9 feModifyFormulation

feModifyFormulation
( elemSET, form1, form2 )
Description:
Updates the element formulation for selected elements.
Input:
The ID of a set that contains a list of element IDs that will be
INT4 elemSET updated. Alternatively, if you specify a negative value, this is simply
the ID of the single element to update.
INT4 form1
The formulation values.
INT4 form2
Output:
None
Return Code:
FE_FAIL Could not update.
Remarks/Usage:
None
Example:
None
API-614 feModifySplitQuads

3.10.7.10 feModifySplitQuads

feModifySplitQuads
( elemSET, form1, form2 )
Description:
Splits quadrilateral elements into triangular elements.
Input:
The ID of a set that contains a list of element IDs that will be
INT4 elemSET updated. Alternatively, if you specify a negative value, this is simply
the ID of the single element to update.
Output:
None
Return Code:
FE_FAIL Could not update.
Remarks/Usage:
The split direction is automatically chosen to get the best shaped triangles; no further input is required.
Example:
None
feModifyOffsets API-615

3.10.7.11 feModifyOffsets

feModifyOffsets
( elemSET, endA, endB, radial, offA, offB )
Description:
Modifies the offsets of beam and bar elements.
Input:
The ID of a set that contains a list of element IDs that will be
INT4 elemSET updated. Alternatively, if you specify a negative value, this is simply
the ID of the single element to update.
BOOL endA If True, the offset at the first end of the element will be updated.
BOOL endB If True, the offset at the second end of the element will be updated.
If True, the offsets are radial, around a location, instead of being vec-
BOOL radial
tor based.
If radial=True, these are the coordinates of the center location. If
radial=False, then these are components of the vector offset at the
REAL8 offA[0..2]
first end of the element. In either case, the values are specified in
global rectangular coordinates.
If radial=True, then offB[0] is the radial offset length, and the other
REAL8 offB[0..2] offB values are not used. If radial=False, then offB contains the com-
ponents of the vector offset at the second end of the element.
Output:
None
Return Code:
FE_FAIL Could not update.
Remarks/Usage:
This method can only be used with elements that have offsets: beams and bars.
Example:
None
API-616 feModifyOffsetsToRefPt

3.10.7.12 feModifyOffsetsToRefPt

feModifyOffsetsToRefPt
( elemSET )
Description:
Modifies the offsets of beam and bar elements so that the shape reference point is at the nodes.
Input:
The ID of a set that contains a list of element IDs that will be
INT4 elemSET updated. Alternatively, if you specify a negative value, this is simply
the ID of the single element to update.
Output:
None
Return Code:
FE_FAIL Could not update.
Remarks/Usage:
This method can only be used with elements that have offsets: beams and bars. Likewise, it can only be
used if the reference point on the property associated with the elements has been properly defined. Off-
sets for each element are redefined so that the reference point is moved to the nodal location.
Example:
None
feModifyOrient API-617

3.10.7.13 feModifyOrient

feModifyOrient
( elemSET, method, nNodeOrCSysID, orientVec )
Description:
Modifies the orientation of line elements.
Input:
The ID of a set that contains a list of element IDs that will be
INT4 elemSET updated. Alternatively, if you specify a negative value, this is simply
the ID of the single element to update.
Defines the method used for updating the orientation: 0=Orient with
third node, 1=Orient with Vector, 2=Convert existing orientation to
equivalent vectors, 3=Make existing orientation perpendicular to ele-
INT4 method
ments. 4=Orient with a Vector whose components are specified in a
coordinate system and whose base varies with the first node of the
element
The ID of the node to use as a third node for orientation - only used if
INT4 nNodeOrCSysID method=0 or, if method=4, this contains the ID of the coordinate
system in which the orientVec is specified.
The components, in global rectangular coordinates, of the orientation
REAL8 orientVEC[0..2] vector to use if method=1. If method=4, this is the components in
CSys nNodeOrCSysID.
Output:
None
Return Code:
FE_FAIL Could not update.
Remarks/Usage:
This method can only be used with elements that have orientations. Method 4 can be used to orient ele-
ments in a radial direction by specifying a cylindrical or spherical coordinate system and setting orient-
Vec=(1.0,0.0,0.0)
Example:
None
API-618 feModifyElemType

3.10.7.14 feModifyElemType

feModifyElemType
( elemSET, propID, method, nodeID, orientVec )
Description:
Modifies the element type of elements.
Input:
The ID of a set that contains a list of element IDs that will be
INT4 elemSET updated. Alternatively, if you specify a negative value, this is simply
the ID of the single element to update.
The ID of the new property to assign to the elements. The element
INT4 propID
type is changed to match the type of the property.
Defines the method used for updating the orientation: 0=Orient with
third node, 1=Orient with Vector. This parameter is only used if you
INT4 method
are modifying line elements with no orientation to a type that
requires orientation.
The ID of the node to use as a third node for orientation - only used if
INT4 nodeID method=0. This parameter is only used if you are modifying line ele-
ments with no orientation to a type that requires orientation.
The components, in global rectangular coordinates, of the orientation
vector to use if method=1. This parameter is only used if you are
REAL8 orientVEC[0..2]
modifying line elements with no orientation to a type that requires
orientation.
Output:
None
Return Code:
FE_FAIL Could not update.
Remarks/Usage:
This method will only work to change elements from one type to another if the element shapes are com-
patible.
Example:
None
feModifyBeamWarping API-619

3.10.7.15 feModifyBeamWarping

feModifyBeamWarping
( elemSET, method, nodeType,nodeID_endA, nodeID_endB )
Description:
Modifies/Creates warping NODES or SPOINTS for Beam Warping.
Input:
The ID of a set that contains a list of element IDs that will be
INT4 elemSET updated. Alternatively, if you specify a negative value, this is simply
the ID of the single element to update.
Defines the method for updating the warping node. 0 =
INT4 method None(Remove), 1 = Continuous, 2 = All Continuous, 3 = Discontin-
uous.
INT4 nodeType The type of node to create 0 = Node, 1 = SPOINT.
If the elemSET contains a single element then the warping node for
INT4 nodeID_endA,
endA and endB will be set to nodeID_endA, nodeID_endB respec-
nodeID_endB
tively.
Output:
None
Return Code:
FE_FAIL Could not update.
Remarks/Usage:
This method can only be used with Beam elements.
Example:
None
API-620

3.11 Delete Methods


Delete Methods include:
Section 3.11.1, "feDeleteAll"
Section 3.11.2, "feDelete"
Section 3.11.3, "feDeleteMesh"
Section 3.11.4, "feDeleteLoads"
Section 3.11.5, "feDeleteConstraints"
Section 3.11.6, "feDeleteOutput"
feDeleteAll API-621

3.11.1 feDeleteAll

feDeleteAll
( geometry, mesh, output, confirm )
Description:
This method deletes entire portions of your model - either geometry or the finite element mesh.
Input:
If True, all geometry in the model will be deleted - points, curves,
BOOL geometry
surfaces, solids, volumes, etc.
If True, the entire finite element mesh, including all loads, con-
BOOL mesh
straints, properties, all results, etc. will be deleted.
If True, all results will be deleted. If you set mesh=True, then this is
BOOL output
ignored and results will always be deleted.
If False, the user will be asked to confirm the delete operation. If
BOOL confirm True, the selected portions of the model will be deleted without
warning.
Output:
None
Return Code:
None
Remarks/Usage:
Coordinate systems will only be deleted if both geometry and the mesh are deleted.
Example:
None
API-622 feDelete

3.11.2 feDelete

feDelete
( entityTYPE, entitySET )
Description:
This method deletes selected entities from your model.
Input:
The entity type to delete:
3=Point, 4=Curve, 5=Surface, 6=Volume, 7=Node, 8=Element,
INT4 entityTYPE 9=Coordinate System, 10=Material, 11=Property, 12=Load Set,
17=Constraint Set, 21=Text, 22=View, 24=Group, 28=Output Set,
31=Report, 33=Layer, 35=Function, 39=Solid, 58=Contact Segment.
INT4 entitySET The ID of the set containing the IDs of the entities to delete.
Output:
None
Return Code:
You specified an invalid entityTYPE - the entityTYPE must be one
FE_INVALID
of the values listed above.
Remarks/Usage:
Entities will only be deleted if they are not referenced by other entities. You should always delete enti-
ties in the order of their references to each other in the model. For example, delete elements first, prop-
erties next, and materials last.
Example:
None
feDeleteMesh API-623

3.11.3 feDeleteMesh

feDeleteMesh
( entityTYPE, entitySET, bDeleteUnused)
Description:
This method deletes entire meshes from your model.
Input:
INT4 entityTYPE Must be either 7=Node or 8=Element
The ID of the set containing the IDs of the nodes/elements which
INT4 entitySET define the mesh to be deleted. If entitySET<0, it is the ID of the sin-
gle entity where the mesh will be deleted.
If True, then any unused Properties and Materials will also be
BOOL bDeleteUnused
deleted.
Output:
None
Return Code:
FE_BAD_TYPE entityTYPE must be either Node or Element.
Remarks/Usage:
If you specify elements, those will be deleted. If you specify nodes, any element referencing any of the
specified nodes will be deleted.
Example:
None
API-624 feDeleteLoads

3.11.4 feDeleteLoads

feDeleteLoads
( loadSetID, entityTYPE, entitySET, loadTYPE )
Description:
This method deletes selected loads from your model.
Input:
INT4 loadSetID The ID of the Load Set containing the loads to be deleted.
The entity type of the entities specified in entitySET. Loads of load-
INT4 entityTYPE TYPE will be deleted from these entities. Valid values are :
3=Point, 4=Curve, 5=Surface, 7=Node, 8=Element
The ID of the set containing the IDs of the entities where loads will
INT4 entitySET be deleted. If entitySET<0, it is the ID of the single entity where
loads will be deleted.
The type of loads to delete. Any=-1, Nodal Heat Gen=2, Nodal Heat
Flux=4, Force=16, Displacement=32, Acceleration=64, Line-
Load=128, Pressure=256, Elem Heat Gen=512, Elem Heat
INT4 loadTYPE Flux=1024, Velocity=2048, Nodal Temp=4096, Elem Temp=8192,
Convection=16384, Radiation=32768, Transient=65536, Fluid Pres-
sure=131072, Fluid Tracking = 262144, Fluid Unknown=524288,
Fluid Slip=1048576, Fluid Fan=2097152, Fluid Periodic=4194304
Output:
None
Return Code:
You specified an invalid entityTYPE or loadTYPE - they must be
FE_INVALID
one of the values listed above.
Remarks/Usage:
None
Example:
None
feDeleteConstraints API-625

3.11.5 feDeleteConstraints

feDeleteConstraints
( bcSetID, entityTYPE, entitySET, deleteBC, deleteBE )
Description:
This method deletes selected constraints from your model.
Input:
INT4 bcSetID The ID of the Constraint Set containing the constraints to be deleted.
The entity type of the entities specified in entitySET. Constraints will
INT4 entityTYPE be deleted from these entities. Valid values are : 3=Point, 4=Curve,
5=Surface, 7=Node
The ID of the set containing the IDs of the entities where constraints
INT4 entitySET will be deleted. If entitySET<0, it is the ID of the single entity where
constraints will be deleted.
BOOL deleteBC If True, normal constraints will be deleted
BOOL deleteBE If True, constraint equations will be deleted
Output:
None
Return Code:
You specified an invalid entityTYPE - it must be one of the values
FE_INVALID
listed above.
Remarks/Usage:
None
Example:
None
API-626 feDeleteOutput

3.11.6 feDeleteOutput

feDeleteOutput
( outputSetID, vectorSET )
Description:
This method deletes selected output vectors from your model.
Input:
INT4 outputSetID The ID of the Output Set from which to delete the vectors
The ID of the set containing the IDs of the vectors to delete. Alterna-
INT4 vectorSET
tively, if vectorSET<0, it is the ID of the single vector to delete.
Output:
None
Return Code:
None
Remarks/Usage:
None
Example:
None
API-627

3.12 View, Window and Visibility Methods


View and Window Methods include:
Section 3.12.1, "feViewVisible (or feWindowVisible)"
Section 3.12.2, "feViewRedraw (or feWindowRedraw)"
Section 3.12.3, "feViewRegenerate (or feWindowRegenerate)"
Section 3.12.4, "feViewAutoscaleAll"
Section 3.12.5, "feViewAutoscaleVisible"
Section 3.12.6, "feViewAllViews"
Section 3.12.7, "feViewShow (or feWindowShow)"
Section 3.12.8, "feViewTile (or feWindowTile)"
Section 3.12.9, "feWindowTileHorz"
Section 3.12.10, "feViewCascade (or feWindowCascade)"
Section 3.12.11, "feWindowMinimize"
Section 3.12.12, "feWindowMaximize"
Section 3.12.13, "feWindowRestore"
Section 3.12.14, "feWindowSetRect"
Section 3.12.15, "feWindowSetSize"
Section 3.12.16, "feWindowTitle"
Section 3.12.17, "feEntityVisibility"
API-628 feViewVisible

3.12.1 feViewVisible (or feWindowVisible)

feViewVisible
( viewID, visible )
Description:
This method makes views visible or removes them from the screen.
Input:
INT4 viewID The ID of the view to manipulate.
BOOL visible Set to True to activate a view; False to remove it from the screen.
Output:
None
Return Code:
The operation failed. Either you asked to make a view visible that
FE_FAIL
was already visible, or to remove a view that was not visible.
Remarks/Usage:
This is similar to the Window, New Window command. feViewVisible and feWindowVisible perform
identical functions.
Example:
None
feViewRedraw API-629

3.12.2 feViewRedraw (or feWindowRedraw)

feViewRedraw
( viewID )
Description:
This method redraws the selected view.
Input:
The ID of the view to redraw. Use viewID=0 to redraw the active
INT4 viewID
view.
Remarks/Usage:
The selected view must be visible. Same as the Window, Redraw command. feViewRedraw and feWin-
dowRedraw are identical.
Example:
None
API-630 feViewRegenerate

3.12.3 feViewRegenerate (or feWindowRegenerate)

feViewRegenerate
( viewID )
Description:
This method regenerates the selected view.
Input:
The ID of the view to regenerate. Use viewID=0 to regenerate the
INT4 viewID
active view.
Remarks/Usage:
The selected view must be visible. Same as the Window, Regenerate command.feViewRegenerate and
feWindowRegenerate are identical
Example:
None
feViewAutoscaleAll API-631

3.12.4 feViewAutoscaleAll

feViewAutoscaleAll
( viewID, redoBox)
Description:
This method performs an autoscale on the selected view using all of the entities in the model, visible or
hidden
Input:
The ID of the view to Autoscale. Use viewID=0 to autoscale the
INT4 viewID
active view.
When set to True, forces a recalculation of the box containing all
BOOL redoBox
of the entities in the model.
Remarks/Usage:
The selected view does not have to be visible. This command must be used in combination with feWin-
dowRegenerate or feWindowRedraw in order to see the view update.
Example:
None
API-632 feViewAutoscaleVisible

3.12.5 feViewAutoscaleVisible

feViewAutoscaleVisible
( viewID, redoBox)
Description:
This method performs an autoscale on the selected view while only considering entities currently visible
in the selected view.
Input:
The ID of the view to Autoscale. Use viewID=0 to autoscale the
INT4 viewID
active view.
When set to True, forces a recalculation of the box containing all
BOOL redoBox
of the visible entities in the selected view.
Remarks/Usage:
The selected view does not have to be visible. This command must be used in combination with feWin-
dowRegenerate or feWindowRedraw in order to see the view update.
Example:
None
feViewAllViews API-633

3.12.6 feViewAllViews

feViewAllViews
( on_off )
Description:
This function turns on and off the All Views functionality.
Input:
BOOL on_off Set to True to enable All Views; False to only update a single view.
Output:
None
Return Code:
None
Remarks/Usage:
Same as the View, All Views command.
Example:
None
API-634 feViewShow

3.12.7 feViewShow (or feWindowShow)

feViewShow
( entityTYPE, showSET )
Description:
This function shows a selected group of entities.
Input:
The entity type to show: 3=Point, 4=Curve, 5=Surface, 7=Node,
8=Element, 9=Coordinate System, 10=Material (shows Elements
referencing Material), 11=Property (shows Elements referencing
Property), 53=Solid/Volume, 58=Connection Region/Region,
INT4 entityTYPE
71=Connector, 81=Layup (shows Elements referencing Layup),
83=Global Ply (shows Elements referencing Layups which use
Global Ply), 95=Areo Panel, 98=Aero Spline, and 99=Aero Control
Surface.
The ID of a selection set that contains the IDs of the entities to show.
INT4 showSET Alternatively, if you specify a negative value, this is simply the ID of
the single entity to show.
Output:
None
Remarks/Usage:
Like the Window, Show Entities command. feViewShow and feWindowShow are identical.
Example:
None
feViewTile API-635

3.12.8 feViewTile (or feWindowTile)

feViewTile
( void )
Description:
This function tiles all of the active views vertically.
Input:
None
Output:
None
Return Code:
None
Remarks/Usage:
Like the Window, Tile Vertical command. feViewTile and feWindowTile are identical.
Example:
None
API-636 feWindowTileHorz

3.12.9 feWindowTileHorz

feWindowTileHorz
( void )
Description:
This function tiles all of the active views horizontally.
Input:
None
Output:
None
Return Code:
None
Remarks/Usage:
Like the Window, Tile Horizontal command.
Example:
None
feViewCascade API-637

3.12.10 feViewCascade (or feWindowCascade)

feViewCascade
( void )
Description:
This function cascades all of the active views.
Input:
None
Output:
None
Return Code:
None
Remarks/Usage:
Like the Window, Cascade command.feViewCascade and feWindowCascade are identical.
Example:
None
API-638 feWindowMinimize

3.12.11 feWindowMinimize

feWindowMinimize
( vuID )
Description:
This function minimizes the window that contains the specified view
Input:
The ID of the view in the window to be modified. Specify vuID=0 to
INT4 vuID
modify the active view.
Output:
None
Return Code:
None
Remarks/Usage:
None
Example:
None
feWindowMaximize API-639

3.12.12 feWindowMaximize

feWindowMaximize
( vuID )
Description:
This function maximizes the window that contains the specified view
Input:
The ID of the view in the window to be modified. Specify vuID=0 to
INT4 vuID
modify the active view.
Output:
None
Return Code:
None
Remarks/Usage:
None
Example:
None
API-640 feWindowRestore

3.12.13 feWindowRestore

feWindowRestore
( vuID )
Description:
This function restores the window (from either a maximized or minimized state) that contains the speci-
fied view
Input:
The ID of the view in the window to be modified. Specify vuID=0 to
INT4 vuID
modify the active view.
Output:
None
Return Code:
None
Remarks/Usage:
None
Example:
None
feWindowSetRect API-641

3.12.14 feWindowSetRect

feWindowSetRect
( vuID, pctLeft, pctTop, pctRight, pctBottom )
Description:
This function sizes the window using percentages of graphics area from the Left, Top, Right, and/or
Bottom of the graphics area.
Input:
The ID of the view in the window to be modified. Specify vuID=0 to
INT4 vuID
modify the active view.
REAL8 pctLeft
REAL8 pctTop Location of view window in percent of graphics area. Numbers must
REAL8 pctRight be between 0.0 and 100.0

REAL8 pctBottom
Output:
None
Return Code:
FE_FAIL The operation failed. View is invalid or does not exist.
Values for pctLeft, pctTop, pctRight, or pctBottom are out of 0.0 to
FE_BAD_DATA
100.0 range.
Remarks/Usage:
None
Example:
None
API-642 feWindowSetSize

3.12.15 feWindowSetSize

feWindowSetSize
( vuID, left, top, horz, vert )
Description:
This function sizes the window by specifying the location of the top left corner of the view in number
of pixels from the top left corner of the graphics area. The overall size of the view is then specified
using number of pixels from the top left corner in the horizontal and vertical directions.
Input:
The ID of the view in the window to be modified. Specify vuID=0 to
INT4 vuID
modify the active view
Number of pixels from left edge of graphics area to left edge of view
INT4 left
window
Number of pixels from top edge of graphics area to top edge of view
INT4 top
window
INT4 horz Number of pixels from left of view window to right of view window
Number of pixels from top of view window to bottom of view win-
INT4 vert
dow
Output:
None
Return Code:
FE_FAIL The operation failed. View is invalid or does not exist.
Remarks/Usage:
None
Example:
None
feWindowTitle API-643

3.12.16 feWindowTitle

feWindowTitle
( vuID, sTitle )
Description:
This function sets the View Title and the Tab Title at once for an existing view.
Input:
The ID of the view in the window to be modified. Specify vuID=0 to
INT4 vuID
modify the active view.
STRING sTitle View and Tab Title (maximum 79 characters).
Output:
None
Return Code:
FE_FAIL The operation failed. View is invalid or does not exist.
Remarks/Usage:
None
Example:
None
API-644 feEntityVisibility

3.12.17 feEntityVisibility

feEntityVisibility
( visType, visID, bIsVisible, bRedraw )
Description:
This function sets entities to be visible or blanked. It is not view dependent but always applies to all
views.
Input:
The type of entity to blank - can be FVIS_POINT, FVIS_CURVE,
FVIS_SURFACE, FVIS_SOLID, FVIS_CSYS, FVIS_CONNEC-
TION_REGION, FVIS_CONNECTION, FVIS_PROP,
INT4 visType
FVIS_MATL, FVIS_ELEM_TYPE, FVIS_ELEM_SHAPE,
FVIS_AERO_PANE, FVIS_AERO_SPLINE, FVIS_AERO_SUR-
FACE
The ID of a set which contains the IDs/types/shapes of the entity to
show or blank. For the element visTypes the set must contain ele-
INT4 visID
ment types or shapes, not element IDs. Set to a negative number to
select a single ID/type/shape.
BOOL bIsVisible Set to True to make entity visible, False to hide it.
BOOL bRedraw If True, the model is redrawn after the visibility change is made
Output:
None
Return Code:
FE_INVALID Invalid visType
Remarks/Usage:
The visibility of any points, curves, or surfaces associated with a solid will have their visibility con-
trolled by the visibility setting of the solid
Example:
None
feAppUpdateModelBox API-645

3.12.18 feAppUpdateModelBox

feAppUpdateModelBox
( bForceUpdate )
Description:
This function recomputes the size of the box around the model so scaling for graphics are correct. It is
not normally necessary to call this function.
Input:
BOOL bForceUpdate If True, the box is always recomputed. If False, only if necessary.
Output:
None
Return Code:
FE_FAIL No model is active
Remarks/Usage:
None
Example:
None
API-646

3.13 Group Methods


Group Methods include:
Section 3.13.1, "feGroupEvaluate"
Section 3.13.2, "feGroupBoolean"
Section 3.13.3, "feGroupBoolean2"
Section 3.13.4, "feGroupCombine"
Section 3.13.5, "feGroupGenerate"
Section 3.13.6, "feGroupGenerate2"
Section 3.13.7, "feGroupGenSolid"
Section 3.13.8, "feGroupGenProp"
Section 3.13.9, "feGroupGenMatl"
Section 3.13.10, "feGroupGenElemType"
Section 3.13.11, "feGroupPeel"
Section 3.13.12, "feGroupMoveToLayer"
Section 3.13.13, "feGroupsContaining"
feGroupEvaluate API-647

3.13.1 feGroupEvaluate

feGroupEvaluate
( grSet, forceEval )
Description:
This method evaluates all of the selection rules, clipping and other operations defined in one or more
groups.
Input:
The ID of a set that contains a list of Group IDs that you want to
INT4 grSET Evaluate. Alternatively, if you specify a negative value, this is simply
the ID of the single group to evaluate.
If True, the group will always be evaluated. If False, the group will
BOOLEAN forceEval
only be evaluated if it is marked as needing evaluation.
Output:
None
Return Code:
FE_FAIL One or more of the groups you chose was unable to be evaluated
Remarks/Usage:
This method accomplishes the same tasks as the Group, Operations, Evaluate command.
Example:
None
API-648 feGroupBoolean

3.13.2 feGroupBoolean

feGroupBoolean
( operation, grID1, grID2, grCreate, grTitle )
Description:
This method is obsolete - use feGroupBoolean2() instead.
This method takes one or two existing groups and creates a new group based on a specified operation.
Input:
INT4 operation The operation to be done: 0=And, 1=Or, 2=Exclusive Or, 3=Invert.
INT4 grID1 The first group to use in the operation.
The second group to use in the operation. (This should be 0 for the
INT4 grID2
Invert operation, because only the first group is used.)
INT4 grCreate The ID of the group to create.
STRING grTitle The title of the group that is created.
Output:
None
Return Code:
The ID of the group that you specified to create is invalid. Either it is
FE_INVALID
not a valid ID, or that group already exists.
Unable to manipulate the groups that you specified. Check to see if
FE_FAIL
they exist.
Remarks/Usage:
This method accomplishes the same tasks as the Group, Operations, And, Group, Operations, Or,
Group, Operations, Exclusive Or, and Group, Operation, Not commands.

And means an entity must be in both groups to be in the new group, Or means all the entities in either
group, and Exclusive Or means all the entities in one, but not both of the initial groups. Invert simply
means all the entities not in the first group.
Example:
None
feGroupBoolean2 API-649

3.13.3 feGroupBoolean2

feGroupBoolean2
( GroupsToProcessSetID, GroupToSubtractFromID, GroupOp, GroupToCreateID,
GroupTitle )
Description:
This method takes a set of Groups and creates a new group based on a specified operation.
Input:
INT4 GroupsToProcessSetID The ID of a Set that contains the IDs of the Groups to Process
The ID of a Group to Subtract the other Groups From. This value is
INT4 GroupToSubtractFromID
ignored, but must be specified, unless GroupOp=1
The Operation to perform 0=Add, 1=Subtract, 2=InAll, 3=OnlyI-
INT4 GroupOp
nOne, 4=NotInAny, 5=NotInAll
The ID of the group to create. If this is specified as 0, or the ID of an
INT4 GroupToCreateID
existing group, a new group will be created with an arbitrary ID
The title of the group that is created. If you specify this title a blank a
STRING GroupTitle
default title will be created
Output:
None
Return Code:
FE_INVALID Invalid group to subtract from
Unable to manipulate the groups that you specified. Check to see if
FE_FAIL
they exist.
Remarks/Usage:
This method accomplishes the same tasks as the Group, Operations, Booleans command.
Example:
None
API-650 feGroupCombine

3.13.4 feGroupCombine

feGroupCombine
( groupSET, groupID )
Description:
This method takes one or more existing groups and combines them to create a new group
Input:
The ID of a Set Object that contains the IDs of the groups to com-
INT4 groupSET
bine.
Output:
INT4 groupID The ID of the group that is created
Return Code:
FE_INVALID Unable to combine groups.
Remarks/Usage:
None
Example:
None
feGroupGenerate API-651

3.13.5 feGroupGenerate

feGroupGenerate
( elemSET, planar, brkPropMatl, brkLayer, brkColor, brkAngle, addLayers )
Description:
This method automatically makes one or more groups by subdividing the elements you select based on
one or more criteria.
Input:
INT4 elemSET The ID of the set of elements to be used in defining the groups.
If true, only planar elements will be used. If False, only solid ele-
BOOL planar
ments will be used.
Set to 0 to ignore property or material discontinuities. Set to 1 to start
INT4 brkPropMatl a new group when property IDs change. Set to 2 to start a new group
when material IDs change.
INT4 brkLayer Set to nonzero to start a new group when layers change.
INT4 brkColor Set to nonzero to start a new group when element colors change.
Set to the maximum angle between planar elements for them to still
REAL8 brkAngle be in the same group. Ignored for solid elements. Specified in
degrees.
Set to True if you not only want to create groups, but move the ele-
BOOL addLayers
ments in each group to a separate layer.
Output:
None
Return Code:
None
Remarks/Usage:
Same as the Group, Operations, Generate command for FEMAP versions prior to version 11.1. For full
access to all the options now available, use feGroupGenerate2.
Example:
None
API-652 feGroupGenerate2

3.13.6 feGroupGenerate2

feGroupGenerate2
( elemSET, planar, brkPropMatl, brkLayer, brkColor, brkAngle, brkMatchNormal,
brkNonManifold, addLayers, nExpandGroup)
Description:
This method automatically makes one or more groups by subdividing the elements you select based on
one or more criteria.
Input:
INT4 elemSET The ID of the set of elements to be used in defining the groups.
If true, only planar elements will be used. If False, only solid ele-
BOOL planar
ments will be used.
Set to 0 to ignore property or material discontinuities. Set to 1 to start
INT4 brkPropMatl a new group when property IDs change. Set to 2 to start a new group
when material IDs change.
INT4 brkLayer Set to nonzero to start a new group when layers change.
INT4 brkColor Set to nonzero to start a new group when element colors change.
Set to the maximum angle between planar elements for them to still
be in the same group. Ignored for solid elements. Specified in
REAL8 brkAngle
degrees. Setting this value to 0.0 turns off all geometry breaks unless
brkMatchNormal is set to True.
If True, the normal direction of planar elements will be considered
BOOL brkMatchNormal when determining how many groups to make. If False, the normal
direction of planar elements will not be considered.
If True, any non-manifold edges found between planar elements will
be used to create additional groups and is independent of the brkAn-
BOOL brkNonManifold
gle value. If False, non-manifold edges between planar elements will
not be considered.
Set to True if you not only want to create groups, but move the ele-
BOOL addLayers
ments in each group to a separate layer.
Specifies the Group Expansion option. 0=Elements Only, 1=Ele-
ments and Nodes, 2=All (Elements, Nodes, Materials, Properties,
INT4 nExpandGroup
Loads on Nodes, Loads on Elements, Constraints referencing Nodes,
and Constraint Equations referencing Nodes).
Output:
None
Return Code:
None
feGroupGenerate2 API-653

feGroupGenerate2
( elemSET, planar, brkPropMatl, brkLayer, brkColor, brkAngle, brkMatchNormal,
brkNonManifold, addLayers, nExpandGroup)
Remarks/Usage:
Same as the Group, Operations, Generate command in FEMAP 11.1 and above.
Example:
None
API-654 feGroupGenSolid

3.13.7 feGroupGenSolid

feGroupGenSolid
( solidSET )
Description:
This method automatically makes one or more groups by subdividing geometry based on the solids that
it defines.
Input:
INT4 solidSET The ID of the set of solids to be used in defining the groups.
Output:
None
Return Code:
None
Remarks/Usage:
Same as the Group, Operations, Generate Solid command. A group is created for each solid that con-
tains the solid, its surfaces, curves and points.
Example:
None
feGroupGenProp API-655

3.13.8 feGroupGenProp

feGroupGenProp
( propSET )
Description:
This method automatically makes one or more groups by subdividing a mesh based on property IDs.
Input:
INT4 propSET The ID of the set of properties to be used in defining the groups.
Output:
None
Return Code:
None
Remarks/Usage:
Same as the Group, Operations, Generate Property command. A group of elements is created that use
each selected property.
Example:
None
API-656 feGroupGenMatl

3.13.9 feGroupGenMatl

feGroupGenMatl
( matlSET )
Description:
This method automatically makes one or more groups by subdividing a mesh based on material IDs.
Input:
INT4 matlSET The ID of the set of materials to be used in defining the groups.
Output:
None
Return Code:
None
Remarks/Usage:
Same as the Group, Operations, Generate Material command. A group of elements is created that use
each selected material.
Example:
None
feGroupGenElemType API-657

3.13.10 feGroupGenElemType

feGroupGenElemType
( elemSET )
Description:
This method automatically makes one or more groups by subdividing a mesh based on element type.
Input:
INT4 elemSET The ID of the set of elements to be used in defining the groups.
Output:
None
Return Code:
None
Remarks/Usage:
Same as the Group, Operations, Generate ElemType command. A group is created for each element
type used by the selected elements.
Example:
None
API-658 feGroupPeel

3.13.11 feGroupPeel

feGroupPeel
( elemSET, peelLayers, keepPeel, keepCore )
Description:
This method automatically makes one or more groups by peeling layers of solid elements from the
outside of a mesh.
Input:
INT4 elemSET The ID of the set of elements to be used in defining the groups.
INT4 peelLayers The number of layers of elements to remove from the mesh.
BOOL keepPeel If True, each layer that is removed will be placed into a group.
If True, the remaining elements, after the number of layers have been
BOOL keepCore
removed, will be placed into a group.
Output:
None
Return Code:
None
Remarks/Usage:
Same as the Group, Operations, Peel command.
Example:
None
feGroupMoveToLayer API-659

3.13.12 feGroupMoveToLayer

feGroupMoveToLayer
( nGroupID, nLayerID )
Description:
Assigns all entities in the selected group to the specified layer.
Input:
INT4 nGroupID The ID of the Group to reas
INT4 nLayerID Th ID of the Layer to move entities onto
Output:
None
Return Code:
None
Remarks/Usage:
None
Example:
None
API-660 feGroupsContaining

3.13.13 feGroupsContaining

feGroupsContaining
( enDataType, nEntityID, GroupSetID )
Description:
This method does not mimic a command in the group menu, but instead populates an existing set object
with the IDs of every group in which the specified entities (or single entity) currently reside
Input:
The type of entity to be checked for group inclusion. For entity infor-
INT4 enDataType
mation, see page 134.
The ID of a set that contains a list of entity IDs to determine in which
groups the entities reside. Alternatively, if you specify a negative
INT4 nEntityID
value, this is simply the ID of the single entity to determine in which
groups that entity resides.
Output:
The ID of set to be populated with group IDs. The set will always be
INT4 nGroupSetID
cleared and then repopulated.
Return Code:
None
Remarks/Usage:
None
Example:
None
API-661

3.14 Free Edge and Free Face Methods


Free Edge and Free Face Methods include:
Section3.14.1, "feElementFreeEdge"
Section3.14.2, "feElementFreeFace"
API-662 feElementFreeEdge

3.14.1 feElementFreeEdge

feElementFreeEdge
( elemSetID, bParabolicEdges, bLineElem, nFreeCount, nFreeData )
Description:
Allows you to find the Free Edges in a set of elements
Input:
The ID of a Set Object that contains the IDs of the elements to be
INT4 elemSetID used to compute the Free Edges. If 0, all elements in the model are
used.
If True, the computation of Free Edges includes checking the mid-
BOOL bParabolicEdges
side nodes (if any). If False, only corner nodes are considered.
If True, then any line elements that lie along an edge are considered
BOOL bLineElem
when deciding if the edge is free.
Output:
INT4 nFreeCount The number of Free Edges returned
Data that defines the Free Edges. This is an array, stored as follows...
[element1, node1A, node1B, element2, node2A, node2B...]. Each
INT4 nFreeD-
free edge is defined by 3 entries in the array - the ID of the element
ata[0..3*nFreeCount-1]
containing the free edge, followed by the two corner nodes on the
element of the free edge.
Return Code:
FE_NO_MEMORY Could not allocate memory to return the Free Edge Data
FE_FAIL Could not compute the Free Edges for your selected elements.
Remarks/Usage:
None
Example:
feElementFreeFace API-663

3.14.2 feElementFreeFace

feElementFreeFace
( elemSetID, bParabolicEdges, bPlaneElem, nFreeCount, nFreeData )
Description:
Allows you to find the Free Faces in a set of elements
Input:
The ID of a Set Object that contains the IDs of the elements to be
INT4 elemSetID used to compute the Free Faces. If 0, all elements in the model are
used.
If True, the computation of Free Faces includes checking the midside
BOOL bParabolicEdges
nodes (if any). If False, only corner nodes are considered.
If True, then any selected plane elements are considered when decid-
BOOL bPlaneElem
ing if the face is free.
Output:
INT4 nFreeCount The number of Free Faces returned
Data that defines the Free Faces. This is an array, stored as follows...
INT4 nFreeD- [element1, face1, element2, face2, element3...]. Each free face is
ata[0..2*nFreeCount-1] defined by 2 entries in the array - the ID of the element containing
the free face, followed by the face ID
Return Code:
FE_NO_MEMORY Could not allocate memory to return the Free Face Data
FE_FAIL Could not compute the Free Faces for your selected elements.
Remarks/Usage:
None
Example:
API-664

3.15 Standard Dialog Boxes


These methods include:
Section 3.15.1, "Coordinate Methods"
Section 3.15.2, "Vector Methods"
Section 3.15.3, "Plane Methods"
Section 3.15.4, "Entity Selection Methods"
Section 3.15.5, "Other Methods" including entering a real number or integer, bringing up a
Message Box, using the Color Palette, and various other dialog box selection methods.
feCoordPick API-665

3.15.1 Coordinate Methods


3.15.1.1 feCoordPick

feCoordPick
( dlgTITLE, xyz )
Description:
This function displays a dialog box to allow a user to pick or enter coordinates.
Input:
STRING dlgTITLE A string that specifies a title to be added to the dialog box title.
Output:
The coordinates selected. Always returned in the global rectangular
REAL8 xyz[0..2]
coordinate system.
Return Code:
FE_CANCEL The user cancelled the dialog box. Coordinates are not valid.
Remarks/Usage:
The default coordinate values that are displayed when the dialog is displayed can be set using the global
parameters Info_DefaultX, Info_DefaultY, and Info_DefaultZ before calling this function.
Example:
None
API-666 feCoordPickByMethod

3.15.1.2 feCoordPickByMethod

feCoordPickByMethod
( method, dlgTITLE, xyz )
Description:
This function displays a dialog box to allow a user to pick or enter coordinates. Same as feCoordPick,
but lets you specify the initial dialog box method
Input:
The initial dialog box method. Refer to Coordinate Dialog Meth-
INT4 method
ods for possible values.
STRING dlgTITLE A string that specifies a title to be added to the dialog box title.
Output:
The coordinates selected. Always returned in the global rectangular
REAL8 xyz[0..2]
coordinate system.
Return Code:
FE_CANCEL The user cancelled the dialog box. Coordinates are not valid.
Remarks/Usage:
The default coordinate values that are displayed when the dialog is displayed can be set using the global
parameters Info_DefaultX, Info_DefaultY, and Info_DefaultZ before calling this function.
Example:
None
feCoordFromWorkplane API-667

3.15.1.3 feCoordFromWorkplane

feCoordFromWorkplane
( wpXYZ, xyz )
Description:
This function converts coordinates from workplane coordinates to global rectangular coordinates.
Input:
The original workplane coordinates. Although three coordinates can
REAL8 wpXYZ[0..2] be specified, normally wpXYZ[2] is 0.0 if the location is actually on
the workplane.
Output:
The coordinates selected. Always returned in the global rectangular
REAL8 xyz[0..2]
coordinate system.
Return Code:
None
Remarks/Usage:
None
Example:
None
API-668 feCoordToWorkplane

3.15.1.4 feCoordToWorkplane

feCoordToWorkplane
( xyz, wpXYZ )
Description:
This function converts coordinates from workplane coordinates to global rectangular coordinates.
Input:
The original coordinates. Must be specified in global rectangular
REAL8 xyz[0..2]
coordinates.
Output:
The workplane coordinates. Three coordinates are returned.
REAL8 wpXYZ[0..2] wpXYZ[2] is the elevation off of the workplane. Ignore this value to
get the coordinates in the workplane.
Return Code:
None
Remarks/Usage:
None
Example:
None
feCoordIntersectCurves API-669

3.15.1.5 feCoordIntersectCurves

feCoordIntersectCurves
( cuID1, cuID2, nearXYZ, xyz )
Description:
This function finds the coordinates at the intersection of two curves.
Input:
INT4 cuID1 The ID of the first curve to intersect.
INT4 cuID2 The ID of the second curve to intersect.
A location near the desired intersection. This is not used unless there
REAL8 nearXYZ[0..2]
are multiple intersections detected.
Output:
The coordinates selected. Always returned in the global rectangular
REAL8 xyz[0..2]
coordinate system.
Return Code:
FE_INVALID The curve IDs may not specify the same curve.
Remarks/Usage:
None
Example:
None
API-670 feCoordIntersectLines

3.15.1.6 feCoordIntersectLines

feCoordIntersectLines
( infLine, pA1, pA2, pB1, pB2, pIntersect )
Description:
This function finds the coordinates at the intersection of two lines which are specified by their endpoint
coordinates.
Input:
Set to True if you want the intersection calculation to consider the
BOOL infLine lines as infinite. Set to False if you want to only consider the line seg-
ments between the endpoints that you provided.
REAL8 pA1[0..2] The coordinates of the first point on the first line.
REAL8 pA2[0..2] The coordinates of the second point on the first line.
REAL8 pA1[0..2] The coordinates of the first point on the second line.
REAL8 pA1[0..2] The coordinates of the second point on the second line.
Output:
REAL8 pIntersect[0..2] The coordinates of the intersection point.
Return Code:
No intersection was found. This could be because the lines were par-
FE_FAIL allel, or you were working with line segments and the intersection
was outside of the segments you specified.
Remarks/Usage:
None
Example:
None
feCoordOntoCurve API-671

3.15.1.7 feCoordOntoCurve

feCoordOntoCurve
( cuID, fromXYZ, xyz )
Description:
This function projects coordinates onto a curve.
Input:
INT4 cuID The ID of the curve to project onto.
REAL8 fromXYZ[0..2] The original location that is to be projected onto the curve.
Output:
The coordinates selected. Always returned in the global rectangular
REAL8 xyz[0..2]
coordinate system.
Return Code:
FE_NOT_EXIST The selected curve does not exist.
Remarks/Usage:
None
Example:
None
API-672 feCoordAlongCurve

3.15.1.8 feCoordAlongCurve

feCoordAlongCurve
( cuID, fromSTART, cuLENGTH, xyz )
Description:
This function finds the coordinates that are located at specified distance along a curve.
Input:
INT4 cuID The ID of the curve to measure along.
If True, then the length is measured from the start of the curve; other-
BOOL fromSTART
wise, it is measured from the end of the curve.
The length, along the curve, from the selected endpoint to the coordi-
REAL8 cuLENGTH
nates.
Output:
The coordinates selected. Always returned in the global rectangular
REAL8 xyz[0..2]
coordinate system.
Return Code:
FE_NOT_EXIST The selected curve does not exist.
Remarks/Usage:
None
Example:
None
feCoordCurveMidpoint API-673

3.15.1.9 feCoordCurveMidpoint

feCoordCurveMidpoint
( cuID, xyz )
Description:
This function finds the coordinates that are located at the midpoint of a curve.
Input:
The ID of the curve to measure along. The midpoint is halfway
INT4 cuID
(along the curve) between the start and end of the curve.
Output:
The coordinates selected. Always returned in the global rectangular
REAL8 xyz[0..2]
coordinate system.
Return Code:
FE_NOT_EXIST The selected curve does not exist.
Remarks/Usage:
None
Example:
None
API-674 feCoordCurveCenter

3.15.1.10 feCoordCurveCenter

feCoordCurveCenter
( cuID, xyz )
Description:
This function finds the coordinates that are located at the center of an arc, circle, or solid curve that
forms an arc or circle.
Input:
INT4 cuID The ID of the curve to find the center.
Output:
The coordinates selected. Always returned in the global rectangular
REAL8 xyz[0..2]
coordinate system.
Return Code:
FE_NOT_EXIST The selected curve does not exist.
Remarks/Usage:
This function will return FE_FAIL if you give it any other curve type except an arc, circle or solid. If
you choose a solid curve, this function assumes it is an arc/circle and returns the appropriate radius. No
checking is done to ensure that it is an arc or circle.
Example:
None
feCoordOntoSurface API-675

3.15.1.11 feCoordOntoSurface

feCoordOntoSurface
( suID, fromXYZ, xyz )
Description:
This function projects coordinates onto a selected surface.
Input:
INT4 suID The ID of the surface to project onto.
REAL8 fromXYZ[0..2] The original coordinate which will be projected.
Output:
The coordinates selected. Always returned in the global rectangular
REAL8 xyz[0..2]
coordinate system.
Return Code:
FE_NOT_EXIST The selected surface does not exist.
Remarks/Usage:
None
Example:
None
API-676 feCoordInSurface

3.15.1.12 feCoordInSurface

feCoordInSurface
( suID, suXY, xyz )
Description:
This function returns coordinates located at the parametric coordinates of a surface.
Input:
INT4 suID The ID of the surface to use.
REAL8 suXY[0..1] The parametric coordinates on the surface.
Output:
The coordinates selected. Always returned in the global rectangular
REAL8 xyz[0..2]
coordinate system.
Return Code:
FE_NOT_EXIST The selected surface does not exist.
Remarks/Usage:
None
Example:
None
feCoordSurfaceIntersect API-677

3.15.1.13 feCoordSurfaceIntersect

feCoordSurfaceIntersect
( cuID, suID, nearXYZ, xyz )
Description:
This function returns coordinates located at the intersection of a curve and surface.
Input:
INT4 cuID The ID of the curve to use.
INT4 suID The ID of the surface to use.
Coordinates near the intersection location. This is only used if multi-
REAL8 nearXY[0..2] ple intersections are found. In this case, the closest one to this loca-
tion is returned. Specify in global rectangular coordinates.
Output:
The coordinates selected. Always returned in the global rectangular
REAL8 xyz[0..2]
coordinate system.
Return Code:
FE_NOT_EXIST The selected curve or surface does not exist.
Remarks/Usage:
None
Example:
None
API-678 feCoordOnPoint

3.15.1.14 feCoordOnPoint

feCoordOnPoint
( ptID, xyz )
Description:
This function returns the coordinates of a point.
Input:
INT4 ptID The ID of the point to locate.
Output:
The coordinates selected. Always returned in the global rectangular
REAL8 xyz[0..2]
coordinate system.
Return Code:
FE_NOT_EXIST The selected point does not exist.
Remarks/Usage:
None
Example:
None
feCoordOnNode API-679

3.15.1.15 feCoordOnNode

feCoordOnNode
( ndID, xyz )
Description:
This function returns the coordinates of a node.
Input:
INT4 ndID The ID of the node to locate.
Output:
The coordinates selected. Always returned in the global rectangular
REAL8 xyz[0..2]
coordinate system.
Return Code:
FE_NOT_EXIST The selected node does not exist.
Remarks/Usage:
None
Example:
None
API-680 feCoordTransform

3.15.1.16 feCoordTransform

feCoordTransform
( fromCSYS, fromXYZ, toCSYS, xyz )
Description:
This function transforms coordinates from one coordinate system to another.
Input:
The ID of the coordinate system in which the fromXYZ coordinates
INT4 fromCSYS
are currently specified. Specify 0 for global rectangular.
REAL8 fromXYZ[0..2] The coordinates to transform, specified in fromCSYS.
INT4 toCSYS The ID of the coordinate system to transform into.
Output:
The transformed coordinates, returned in the toCSYS coordinate sys-
REAL8 xyz[0..2] tem. The two sets of coordinates MAY NOT be specified as the same
variable.
Return Code:
FE_NOT_EXIST One of the coordinate systems does not exist.
Remarks/Usage:
None
Example:
None
feCoordArrayTransform API-681

3.15.1.17 feCoordArrayTransform

feCoordArrayTransform
( count, fromCSYS, toCSYS, xyz )
Description:
This function transforms an array of coordinates from one coordinate system to another.
Input:
The number of sets of coordinates in xyz. There must be 3*count
INT4 count
entries in xyz.
The ID of the coordinate system in which the coordinates are cur-
INT4 fromCSYS
rently specified. Specify 0 for global rectangular.
INT4 toCSYS The ID of the coordinate system to transform into.
Output:
On input, this array contains the original coordinates. On output, it
contains the transformed coordinates, returned in the toCSYS coordi-
REAL8 xyz[0..3*count-1]
nate system. Coordinates in this array must be in the order
X0,Y0,Z0,X1,Y1,Z1,...,Xcount,Ycount,Zcount.
Return Code:
FE_INVALID The count must be a positive number.
FE_NOT_EXIST One of the coordinate systems does not exist.
Remarks/Usage:
NOTE: This method will not work with .NET because the xyz argument can not be used for
both input and output. Use the feCoordArrayTransform2( ) method instead.
Example:
None
API-682 feCoordArrayTransform2

3.15.1.18 feCoordArrayTransform2

feCoordArrayTransform2
( count, fromCSYS, toCSYS, inXYZ, xyz )
Description:
This function transforms an array of coordinates from one coordinate system to another.
Input:
The number of sets of coordinates in xyz. There must be 3*count
INT4 count
entries in xyz.
The ID of the coordinate system in which the coordinates are cur-
INT4 fromCSYS
rently specified. Specify 0 for global rectangular.
INT4 toCSYS The ID of the coordinate system to transform into.
This array contains the original coordinates that will be transformed.
REAL8 inXYZ[0..3*count-1] Coordinates in this array must be in the order
X0,Y0,Z0,X1,Y1,Z1,...,Xcount,Ycount,Zcount.
Output:
Contains the transformed coordinates, returned in the toCSYS coor-
REAL8 xyz[0..3*count-1] dinate system. Coordinates in this array are in the same order as in
inXYZ.
Return Code:
FE_INVALID The count must be a positive number.
FE_NOT_EXIST One of the coordinate systems does not exist.
Remarks/Usage:
This method replaces the feCoordArrayTransform( ) method which will not work with .NET
Example:
None
feCoordColinear API-683

3.15.1.19 feCoordColinear

feCoordColinear
( xyz1, xyz2, xyz3, isColinear )
Description:
This function checks three sets of coordinates and determines if they are colinear.
Input:
The coordinates of the first point. This, and the other coordinates,
REAL8 xyz1[0..2]
must be stored in rectangular coordinates.
REAL8 xyz2[0..2] The coordinates of the second point.
REAL8 xyz3[0..2] The coordinates of the third point.
Output:
True if the points are colinear (within the tolerance specified inter-
BOOL isColinear
nally); False otherwise.
Return Code:
None
Remarks/Usage:
None
Example:
None
API-684 feCoordToDirCos

3.15.1.20 feCoordToDirCos

feCoordToDirCos
( origin, xAxis, xyPlane, dircos )
Description:
This function converts three coordinates into a 3x3 direction cosine matrix.
Input:
REAL8 origin[0..2] The location at the origin.
REAL8 xAxis[0..2] A location along the positive X axis.
REAL8 xyPlane[0..2] A location in the positive quadrant of the XY plane.
Output:
The 3x3 direction cosine matrix. Data is stored in row-order.
REAL8 dircos[0..8]
[0,0]=[0], [0,1]=[1], [0,2]=[2], [1,0]=3 ... [2,2]=[8]
Return Code:
None
Remarks/Usage:
All coordinates must be specified in rectangular coordinates. The direction cosine matrix is relative to
whatever coordinate system the original points were specified in.
Example:
None
feCoordRotate API-685

3.15.1.21 feCoordRotate

feCoordRotate
( xyz, angle, origin, axis, xyzROT )
Description:
This function takes a coordinate location and rotates it through a prescribed angle about a vector.
Input:
The original unrotated coordinates - must be specified in rectangular
REAL8 xyz[0..2]
coordinates.
REAL8 angle The angle of rotation.
REAL8 origin[0..2] The coordinates at the origin/base of the rotation axis vector.
REAL8 axis[0..2] The components of the rotation axis vector.
Output:
REAL8 xyzROT[0..2] The rotated coordinates.
Return Code:
None
Remarks/Usage:
All coordinates and vector components must be specified in the same rectangular coordinate system -
normally global rectangular.
Example:
None
API-686 feCoordOntoPlane

3.15.1.22 feCoordOntoPlane

feCoordOntoPlane
( xyz, projDir, planePt, planeNorm, xyzPlane )
Description:
This function takes a coordinate location and projects it along a vector onto a plane.
Input:
The original unprojected coordinates - must be specified in rectangu-
REAL8 xyz[0..2]
lar coordinates.
REAL8 projDir[0..2] The components of the vector to project along.
REAL8 planePt[0..2] The coordinates of any point on the plane.
REAL8 planeNorm[0..2] The components of the normal vector of the plane.
Output:
REAL8 xyzPlane[0..2] The projected coordinates.
Return Code:
The projection failed. Probably the projDir vector is parallel to the
FE_FAIL
plane (perpendicular to planeNorm).
Remarks/Usage:
All coordinates and vector components must be specified in the same rectangular coordinate system -
normally global rectangular.
Example:
None
feCoordOntoLine API-687

3.15.1.23 feCoordOntoLine

feCoordOntoLine
( xyz, p1, p2, xyzLine )
Description:
This function takes a coordinate location and projects it onto a line specified by two endpoint locations.
Input:
The original unprojected coordinates - must be specified in rectangu-
REAL8 xyz[0..2]
lar coordinates.
REAL8 p1[0..2] The first set of coordinates along the line.
REAL8 p2[0..2] The second set of coordinates along the line.
Output:
REAL8 xyzLine[0..2] The projected coordinates.
Return Code:
None
Remarks/Usage:
All coordinates and vector components must be specified in the same rectangular coordinate system -
normally global rectangular. The line which the coordinates are projected onto is considered to be infi-
nite.
Example:
None
API-688 feCoordPlaneIntersect

3.15.1.24 feCoordPlaneIntersect

feCoordPlaneIntersect
( baseA, normA, baseB, normB, baseC, normC, ptV )
Description:
This function finds the coordinate location at the intersection of three planes.
Input:
REAL8 baseA[0..2] The coordinates of a point on the first plane.
REAL8 normA[0..2] The components of the normal of the first plane.
REAL8 baseB[0..2] The coordinates of a point on the second plane.
REAL8 normB[0..2] The components of the normal of the second plane.
REAL8 baseC[0..2] The coordinates of a point on the third plane.
REAL8 normC[0..2] The components of the normal of the third plane.
Output:
REAL8 ptV[0..2] The coordinates at the intersection location.
Return Code:
FE_FAIL No intersection could be found.
Remarks/Usage:
All coordinates and vector components must be specified in the same rectangular coordinate system -
normally global rectangular.
Example:
None
feCoordVectorPlaneIntersect API-689

3.15.1.25 feCoordVectorPlaneIntersect

feCoordVectorPlaneIntersect
( ptVEC, normVEC, ptPLANE, normPLANE, ptV )
Description:
This function finds the coordinate location at the intersection of a vector and a plane.
Input:
REAL8 ptVEC[0..2] The coordinates of a point on the vector
REAL8 normVEC[0..2] The components of direction along the vector
REAL8 ptPLANE[0..2] The coordinates of a point on the plane.
REAL8 normPLANE[0..2] The components of the normal of the plane.
Output:
REAL8 ptV[0..2] The coordinates at the intersection location.
Return Code:
FE_FAIL No intersection could be found.
Remarks/Usage:
All coordinates and vector components must be specified in the same rectangular coordinate system -
normally global rectangular.
Example:
None
API-690 feRotationTransform

3.15.1.26 feRotationTransform

feRotationTransform
( fromCSYS, fromROT, toCSYS, rot )
Description:
This function transforms a triple rotation from one coordinate system to another.
Input:
The ID of the coordinate system in which the fromROT rotations are
INT4 fromCSYS
currently specified. Specify 0 for global rectangular.
The rotations to transform, specified in fromCSYS. The rotations are
REAL8 fromROT[0..2]
triple rotations, about X, the rotated Y and the doubly-rotated Z.
INT4 toCSYS The ID of the coordinate system to transform into.
Output:
The transformed rotations, returned in the toCSYS coordinate sys-
REAL8 rot[0..2] tem. The two sets of rotations MAY NOT be specified as the same
variable.
Return Code:
FE_NOT_EXIST One of the coordinate systems does not exist.
Remarks/Usage:
None
Example:
None
feRotationToDirCos API-691

3.15.1.27 feRotationToDirCos

feRotationToDirCos
( rot, dircos )
Description:
This function converts a triple-rotation, about X, then Y, then Z, into a 3x3 direction cosine matrix.
Input:
The rotations, first about X, then the rotated Y, then the doubly-
REAL8 rot[0..2]
rotated Z.
Output:
The 3x3 direction cosine matrix. Data is stored in row-order.
REAL8 dircos[0..8]
[0,0]=[0], [0,1]=[1], [0,2]=[2], [1,0]=3 ... [2,2]=[8]
Return Code:
None
Remarks/Usage:
Throughout this description, M is the dircos matrix. The direction cosine matrix is of the following
form: X' = { M } X

The rows of the matrix represent a vector in the primed direction relative to the unprimed coordinates.
For example, {M[1][0],M[1][1],M[1][2]} is a vector in the Y' direction relative to X,Y,Z.

Similarly, since this is a direction cosine matrix the columns of the matrix represent vectors in the
unprimed direction relative to primed coordinates. For example: {M[0][1],M[1][1],M[2][1]} is a vector
in the Y direction relative to X',Y',Z'.
Example:
None
API-692 feRotationFromDirCos

3.15.1.28 feRotationFromDirCos

feRotationFromDirCos
( dircos, rot )
Description:
This function converts a 3x3 direction cosine matrix into an equivalent triple-rotation, about X, then Y,
then Z.
Input:
The 3x3 direction cosine matrix. Data is stored in row-order.
REAL8 dircos[0..8]
[0,0]=[0], [0,1]=[1], [0,2]=[2], [1,0]=3 ... [2,2]=[8].
Output:
The rotations, first about X, then the rotated Y, then the doubly-
REAL8 rot[0..2]
rotated Z.
Return Code:
None
Remarks/Usage:
There can be multiple possible solutions to the same direction cosine matrix. This routine simply returns
one of the possible solutions.
Example:
None
feVectorTransform API-693

3.15.2 Vector Methods


3.15.2.1 feVectorTransform

feVectorTransform
( fromCSYS, baseXYZ, fromXYZ, toCSYS, xyz )
Description:
This function transforms vectors from one coordinate system to another.
Input:
The ID of the coordinate system in which the fromXYZ coordinates
INT4 fromCSYS
are currently specified. Specify 0 for global rectangular.
The coordinates at the base of the vector to be transformed. Must be
REAL8 baseXYZ[0..2]
specified in the fromCSYS coordinate system.
The components of the vector to be transformed. Must be specified
REAL8 fromXYZ[0..2]
in the fromCSYS coordinate system.
INT4 toCSYS The ID of the coordinate system to transform into.
Output:
The transformed vector components, returned in the toCSYS coordi-
REAL8 xyz[0..2]
nate system.
Return Code:
FE_NOT_EXIST One of the coordinate systems does not exist.
Remarks/Usage:
None
Example:
None
API-694 feVectorFromBeam

3.15.2.2 feVectorFromBeam

feVectorFromBeam
( elemID, bmXYZ, xyz )
Description:
This function transforms a vector from beam/bar elemental coordinates to global rectangular.
Input:
The ID of the element that defines the coordinate system where the
INT4 elemID
bmXYZ components are defined.
The components of the vector to be transformed. Must be specified
REAL8 bmXYZ[0..2]
in the elemental coordinate system of element elemID.
Output:
The transformed vector components, returned in the global rectangu-
REAL8 xyz[0..2]
lar coordinate system.
Return Code:
None
Remarks/Usage:
The element specified must exist, and must be an appropriate line element (beam, bar...) type.
Example:
None
feVectorToBeam API-695

3.15.2.3 feVectorToBeam

feVectorToBeam
( elemID, xyz, bmXYZ )
Description:
This function transforms a vector from global rectangular coordinates into beam/bar elemental coordi-
nates.
Input:
The ID of the element that defines the coordinate system where the
INT4 elemID
bmXYZ components are defined.
The components of the vector to be transformed. Must be specified
REAL8 xyz[0..2]
in global rectangular coordinates.
Output:
The transformed vector components, returned in the elemental coor-
REAL8 bmXYZ[0..2]
dinates of elemID.
Return Code:
None
Remarks/Usage:
The element specified must exist, and must be an appropriate line element (beam, bar...) type.
Example:
None
API-696 feVectorLength

3.15.2.4 feVectorLength

feVectorLength
( xyz, vecLength )
Description:
This function computes the length of a vector.
Input:
The components of the vector to be measure. Must be specified in
REAL8 xyz[0..2]
rectangular coordinates.
Output:
REAL8 vecLength The length of the vector.
Return Code:
None
Remarks/Usage:
None
Example:
None
feVectorCrossProduct API-697

3.15.2.5 feVectorCrossPoduct

feVectorCrossProduct
( vecA, vecB, vecAxB )
Description:
This function computes the cross product of two vectors.
Input:
REAL8 vecA[0..2] The components of the first vector.
REAL8 vecB[0..2] The components of the second vector.
Output:
REAL8 vecAxB[0..2] The components of the cross product of the two vectors.
Return Code:
None
Remarks/Usage:
None
Example:
None
API-698 feVectorDotProduct

3.15.2.6 feVectorDotProduct

feVectorDotProduct
( vecA, vecB, dot )
Description:
This function computes the dot (scalar) product of two vectors.
Input:
REAL8 vecA[0..2] The components of the first vector.
REAL8 vecB[0..2] The components of the second vector.
Output:
REAL8 dot The scalar product of the two vectors.
Return Code:
None
Remarks/Usage:
In versions prior to v10.3, this method normalized the supplied vectors prior to computing the dot prod-
uct. It now computes a true dot product and a new method feVectorNormalizedDotProduct( ) was added
to provide the previous functionality.
Example:
None
feVectorNormalizedDotProduct API-699

3.15.2.7 feVectorNormalizedDotProduct

feVectorNormalizedDotProduct
( vecA, vecB, dot )
Description:
This function normalizes the supplied vectors and computes their dot (scalar) product.
Input:
REAL8 vecA[0..2] The components of the first vector.
REAL8 vecB[0..2] The components of the second vector.
Output:
REAL8 dot The scalar product of the two vectors.
Return Code:
None
Remarks/Usage:
The result of this method is the cosine of the angle between the vectors.
Example:
None
API-700 feVectorPerpendicular

3.15.2.8 feVectorPerpendicular

feVectorPerpendicular
( vecIN, vecOUT )
Description:
This function computes an arbitrary vector that is perpendicular to the specified vector.
Input:
REAL8 vecIN[0..2] The components of the first vector.
Output:
REAL8 vecOUT[0..2] The perpendicular vector.
Return Code:
None
Remarks/Usage:
If the vector specified is aligned with a global axis, you will always get a different global axis returned.
If not, a cross product with either the global X (or global Z if the original vector is too close to the global
X axis) is used to determine the perpendicular.
Example:
None
feVectorAngle API-701

3.15.2.9 feVectorAngle

feVectorAngle
( vecA, vecB, angle )
Description:
This function computes the angle between two vectors.
Input:
REAL8 vecA[0..2] The components of the first vector.
REAL8 vecB[0..2] The components of the second vector.
Output:
REAL8 angle The included angle between the two vectors.
Return Code:
None
Remarks/Usage:
The angle is always between 0 and 180 degrees. There is no indication or consideration of the direction
of the included angle between the vectors.
Example:
None
API-702 feVectorAngleAxis

3.15.2.10 feVectorAngleAxis

feVectorAngleAxis
( vecA, vecB, axis, angle )
Description:
This function computes the angle between two vectors rotating around an axis.
Input:
REAL8 vecA[0..2] The components of the first vector.
REAL8 vecB[0..2] The components of the second vector.
REAL8 axis[0..2] The components of the axis of rotation.
Output:
REAL8 angle The included angle between the two vectors.
Return Code:
None
Remarks/Usage:
The angle is always between -180 and 180 degrees. If the angle subtended when going from vecA to
vecB is in a positive direction (right-hand rule sense) around the axis of rotation, then the returned angle
is positive; otherwise a negative angle is returned.
Example:
None
feVectorPlaneIntersect API-703

3.15.2.11 feVectorPlaneIntersect

feVectorPlaneIntersect
( baseA, normA, baseB, normB, ptV, dirV )
Description:
This function computes the vector at the intersection of two planes.
Input:
REAL8 baseA[0..2] The coordinates of a location on the first plane.
REAL8 normA[0..2] The components of the normal vector of the first plane.
REAL8 baseB[0..2] The coordinates of a location on the second plane.
REAL8 normB[0..2] The components of the normal vector of the second plane.
Output:
REAL8 ptV[0..2] The coordinates of a location on the intersection vector.
REAL8 dirV[0..2] The components of the vector along the line of intersection.
Return Code:
None
Remarks/Usage:
All coordinates and components must be specified in the same rectangular coordinate system - normally
global rectangular.
Example:
None
API-704 feVectorUnit

3.15.2.12 feVectorUnit

feVectorUnit
( vecIN, vecNORM )
Description:
This function normalizes a vector to make it into an equivalent unit vector.
Input:
REAL8 vecIN[0..2] The componets of the vector to be normalized
Output:
REAL8 vecNORM[0..2] The normalized vector
Return Code:
None
Remarks/Usage:
In addition to simply dividing by the length of the vector, this function also completely eliminates com-
ponents of the vector that are very small ( less than 1E-8 times the length) compared to the other compo-
nents. This helps to eliminate numerical errors which can creep in during transformations or other vector
operations.
Example:
None
feVectorPick API-705

3.15.2.13 feVectorPick

feVectorPick
( dlgTitle, unitVector, vecLength, vecBase, vecDir )
Description:
This function displays a dialog box to allow a user to pick or enter vectors.
Input:
STRING dlgTitle A string that specifies a title to be added to the dialog box title.
BOOL unitVector Set to False if you want the user to be able to enter a vector length.
Output:
REAL8 vecLength The length of the vector. This will be 1.0 if unitVector=True.
REAL8 vecBase[0..2] The coordinates at the base of the vector.
REAL8 vecDir[0..2] The components of the vector.
Return Code:
FE_CANCEL The dialog box was cancelled.
Remarks/Usage:
The components in vecDir will always be those of a unit vector. The vector length is always returned in
vecLength.
Example:
None
API-706 feVectorPickByMethod

3.15.2.14 feVectorPickByMethod

feVectorPickByMethod
( method, dlgTitle, unitVector, vecLength, vecBase, vecDir )
Description:
This function displays a dialog box to allow a user to pick or enter vectors. Same as feVectorPick except
that you can specify the initial dialog box method.
Input:
The initial dialog box method. Refer to Vector Dialog Methods for
INT4 method
possible values.
STRING dlgTitle A string that specifies a title to be added to the dialog box title.
BOOL unitVector Set to False if you want the user to be able to enter a vector length.
Output:
REAL8 vecLength The length of the vector. This will be 1.0 if unitVector=True.
REAL8 vecBase[0..2] The coordinates at the base of the vector.
REAL8 vecDir[0..2] The components of the vector.
Return Code:
FE_CANCEL The dialog box was cancelled.
Remarks/Usage:
The components in vecDir will always be those of a unit vector. The vector length is always returned in
vecLength.
Example:
None
feVectorAxis API-707

3.15.2.15 feVectorAxis

feVectorAxis
( csysID, axis, positive, vecDir )
Description:
This function creates a unit vector in the direction of one of the axes of a coordinate system.
Input:
INT4 csysID The ID of the coordinate system to use for the vector definition.
INT4 axis Set to 0=X axis, 1=Y axis, 2=Z axis.
BOOL positive True if you want the positive axis; False for the negative axis.
Output:
REAL8 vecDir[0..2] The components of the vector.
Return Code:
FE_NOT_EXIST The coordinate system that you requested does not exist.
Remarks/Usage:
The components in vecDir will always be those of a unit vector.
Example:
None
API-708 feVectorTangentToCurve

3.15.2.16 feVectorTangentToCurve

feVectorTangentToCurve
( cuID, baseXYZ, vecDir )
Description:
This function returns a unit vector that is the tangent to a curve at a specified location.
Input:
INT4 cuID The ID of the curve used to compute the tangent.
REAL8 baseXYZ[0..2] The coordinates of the location used to compute the tangent.
Output:
REAL8 vecDir[0..2] The components of the tangent vector at baseXYZ.
Return Code:
FE_NOT_EXIST The specified curve does not exist.
Remarks/Usage:
The components in vecDir will always be those of a unit vector. If the location specified in baseXYZ is
not on the curve, it will be projected onto the curve and the tangent will be at the projected location.
Example:
None
feVectorNormalToSurface API-709

3.15.2.17 feVectorNormalToSurface

feVectorNormalToSurface
( suID, baseXYZ, vecDir )
Description:
This function returns a unit vector that is the normal to a surface at a specified location.
Input:
INT4 suID The ID of the surface used to compute the normal.
REAL8 baseXYZ[0..2] The coordinates of the location used to compute the normal.
Output:
REAL8 vecDir[0..2] The components of the normal vector at baseXYZ.
Return Code:
FE_NOT_EXIST The specified surface does not exist.
Remarks/Usage:
The components in vecDir will always be those of a unit vector. If the location specified in baseXYZ is
not on the surface, it will be projected onto the surface and the normal will be at the projected location.
Example:
None
API-710 feVectorNormalToView

3.15.2.18 feVectorNormalToView

feVectorNormalToView
( suID, vecDir )
Description:
This function returns a unit vector that is the normal to a view.
Input:
The ID of the view used to compute the normal. Set to -1 to compute
INT4 vuID
the normal of the active view.
Output:
REAL8 vecDir[0..2] The components of the normal vector.
Return Code:
FE_NOT_EXIST The specified view does not exist.
Remarks/Usage:
The components in vecDir will always be those of a unit vector. The normal vector always points out of
the screen.
Example:
None
feVectorAxisOfSurface API-711

3.15.2.19 feVectorAxisOfSurface

feVectorAxisOfSurface
( suID, baseXYZ, vecDir )
Description:
This function returns the axis of revolution for a surface.
Input:
INT4 suID The ID of the surface to find revolution axis.
Output:
REAL8 baseXYZ[0..2] The coordinates at the base of the revolution vector.
REAL8 vecDir[0..2] The components of the revolution vector.
Return Code:
FE_NOT_EXIST Surface does not exist.
FE_CANCEL Unable to find surface axis or surface is not a revolute type.
Remarks/Usage:
None
Example:
None
API-712 feVectorRotate

3.15.2.20 feVectorRotate

feVectorRotate
( baseXYZ, vecXYZ, angle, origin, axis, baseROT, vecROT )
Description:
This function returns a vector computed from rotating the original vector around a given axis using the
specified angle, in degrees
Input:
REAL8 baseXYZ[0..2] The coordinates at the base of the original vector.
REAL8 vecXYZ[0..2] The components of the original vector.
REAL8 angle Rotation angle in degrees
REAL8 origin[0..2] The coordinates at the base of the vector to rotate about.
REAL8 axis[0..2] The components of the vector to rotate about.
Output:
REAL8 baseROT[0..2] The coordinates at the base of the rotated vector.
REAL8 vecROT[0..2] The components of the rotated vector.
Return Code:

Remarks/Usage:
None
Example:
None
fePlanePick API-713

3.15.3 Plane Methods


3.15.3.1 fePlanePick

fePlanePick
( dlgTITLE, plBase, plNormal, plAxis )
Description:
This function displays a dialog box to allow a user to define a plane.
Input:
STRING dlgTitle A string that specifies a title to be added to the dialog box title.
Output:
The coordinates of a location on the plane, in global rectangular
REAL8 plBase[0..2]
coordinates.
REAL8 plNormal[0..2] The components of the vector that is normal to the plane.
REAL8 plAxis[0..2] The components of a vector along the plane X axis.
Return Code:
FE_CANCEL The dialog box was cancelled.
Remarks/Usage:
The plane Y axis can be computed from a cross product of the normal and the X axis.
Example:
None
API-714 fePlanePickByMethod

3.15.3.2 fePlanePickByMethod

fePlanePickByMethod
( method, dlgTITLE, plBase, plNormal, plAxis )
Description:
This function displays a dialog box to allow a user to define a plane. Same as fePlanePick except you
can specify the initial dialog box method.
Input:
The initial dialog box method. Refer to Plane Dialog Methods for
INT4 method
possible values.
STRING dlgTitle A string that specifies a title to be added to the dialog box title.
Output:
The coordinates of a location on the plane, in global rectangular
REAL8 plBase[0..2]
coordinates.
REAL8 plNormal[0..2] The components of the vector that is normal to the plane.
REAL8 plAxis[0..2] The components of a vector along the plane X axis.
Return Code:
FE_CANCEL The dialog box was cancelled.
Remarks/Usage:
The plane Y axis can be computed from a cross product of the normal and the X axis.
Example:
None
fePlaneLocation API-715

3.15.3.3 fePlaneLocation

fePlaneLocation
( p1, p2, p3, planeBase, planeNormal, planeX )
Description:
Defines a plane by specifying the coordinates of three points on the plane.
Input:
REAL8 p1[0..2]
The coordinates of the points on the plane. The first point is the ori-
REAL8 p2[0..2]
gin. The vector from the first to the second point is the X axis.
REAL8 p3[0..2]
Output:
The coordinates of a location on the plane, in global rectangular
REAL8 plBase[0..2]
coordinates.
REAL8 plNormal[0..2] The components of the vector that is normal to the plane.
REAL8 plAxis[0..2] The components of a vector along the plane X axis.
Return Code:
FE_FAIL The three locations were colinear.
Remarks/Usage:
The plane Y axis can be computed from a cross product of the Normal and the X axis.
Example:
None
API-716 fePlaneNodes

3.15.3.4 fePlaneNodes

fePlaneNodes
( n1, n2, n3, planeBase, planeNormal, planeX )
Description:
Defines a plane by specifying the IDs of three nodes on the plane.
Input:
INT4 n1
The IDs of the three nodes on the plane. The first point is the origin.
INT4 n2
The vector from the first to the second point is the X axis.
INT4 n3
Output:
The coordinates of a location on the plane, in global rectangular
REAL8 plBase[0..2]
coordinates.
REAL8 plNormal[0..2] The components of the vector that is normal to the plane.
REAL8 plAxis[0..2] The components of a vector along the plane X axis.
Return Code:
FE_FAIL The three locations were colinear.
Remarks/Usage:
The plane Y axis can be computed from a cross product of the normal and the X axis.
Example:
None
fePlanePoints API-717

3.15.3.5 fePlanePoints

fePlanePoints
( p1, p2, p3, planeBase, planeNormal, planeX )
Description:
Defines a plane by specifying the IDs of three points on the plane.
Input:
INT4 p1
The IDs of the three points on the plane. The first point is the origin.
INT4 p2
The vector from the first to the second point is the X axis.
INT4 p3
Output:
The coordinates of a location on the plane, in global rectangular
REAL8 plBase[0..2]
coordinates.
REAL8 plNormal[0..2] The components of the vector that is normal to the plane.
REAL8 plAxis[0..2] The components of a vector along the plane X axis.
Return Code:
FE_FAIL The three locations were colinear.
Remarks/Usage:
The plane Y axis can be computed from a cross product of the normal and the X axis.
Example:
None
API-718 fePlaneBisect

3.15.3.6 fePlaneBisect

fePlaneBisect
( p1, p2, p3, planeBase, planeNormal, planeX )
Description:
Defines a plane that bisects the angle formed between three points.
Input:
REAL8 p1[0..2] The location at the origin of the two vectors to be bisected.
The end of the first vector (from p1) that will be used for the bisec-
REAL8 p2[0..2]
tion.
The end of the second vector (from p1) that will be used for the
REAL8 p3[0..2]
bisection.
Output:
The coordinates of a location on the plane, in global rectangular
REAL8 plBase[0..2]
coordinates.
REAL8 plNormal[0..2] The components of the vector that is normal to the plane.
REAL8 plAxis[0..2] The components of a vector along the plane X axis.
Return Code:
FE_FAIL The three locations were colinear.
Remarks/Usage:
The plane Y axis can be computed from a cross product of the normal and the X axis.
Example:
None
fePlaneCSys API-719

3.15.3.7 fePlaneCSys

fePlaneCSys
( p1, csysID, planeID, planeBase, planeNormal, planeX )
Description:
Defines a plane that is one of the principal planes of a coordinate system.
Input:
A location that will be the origin of the plane - specified in global
REAL8 p1[0..2]
coordinates.
The ID of the coordinate system to use to define the plane. Specify as
INT4 csysID
0 for global coordinates.
A number that selects the plane of the coordinate system to use:
INT4 planeID 0=Positive XY, 1=Positive, YZ, 2=Positive ZX, 3=Negative XY,
4=Negative, YZ, 5=Negative ZX.
Output:
The coordinates of a location on the plane, in global rectangular
REAL8 plBase[0..2]
coordinates.
REAL8 plNormal[0..2] The components of the vector that is normal to the plane.
REAL8 plAxis[0..2] The components of a vector along the plane X axis.
Return Code:
FE_FAIL The coordinate system was invalid or does not exist
Remarks/Usage:
The plane Y axis can be computed from a cross product of the normal and the X axis.
Example:
None
API-720 fePlaneSurfaceNormal

3.15.3.8 fePlaneSurfaceNormal

fePlaneSurfaceNormal
( surfID, ptID1, ptID2, reversed, align, offset, planeBase, planeNormal, planeX )
Description:
Defines a plane that is normal to a surface.
Input:
INT4 surfID The ID of the surface used to define the normal.
INT4 ptID1 The ID of a point that will define the origin of the plane
INT4 ptID2 The ID of a point that will be used to define the X axis of the plane
Set to True if you want the normal that is reversed from the surface
BOOL reversed
normal.
BOOL align If True, the axis of the plane will be aligned to the surface axes.
The distance that the plane will be offset, along its normal vector,
REAL8 offset
from the first point (origin).
Output:
The coordinates of a location on the plane, in global rectangular
REAL8 plBase[0..2]
coordinates.
REAL8 plNormal[0..2] The components of the vector that is normal to the plane.
REAL8 plAxis[0..2] The components of a vector along the plane X axis.
Return Code:
FE_FAIL The surface was invalid or does not exist.
Remarks/Usage:
The plane Y axis can be computed from a cross product of the normal and the X axis.
Example:
None
fePlaneCurveNormal API-721

3.15.3.9 fePlaneCurveNormal

fePlaneCurveNormal
( cuID, planeBase, planeNormal, planeX )
Description:
Defines a plane that is normal to a curve.
Input:
The ID of the curve used to determine the normal. The curve must be
INT4 cuID planar, and cannot be a line. This is usually used with arcs and circles
to determine their plane.
Output:
The coordinates of a location on the plane, in global rectangular
REAL8 plBase[0..2]
coordinates.
REAL8 plNormal[0..2] The components of the vector that is normal to the plane.
REAL8 plAxis[0..2] The components of a vector along the plane X axis.
Return Code:
FE_FAIL The curve was invalid or does not exist.
Remarks/Usage:
The plane Y axis can be computed from a cross product of the normal and the X axis.
Example:
None
API-722 fePlaneViewAlign

3.15.3.10 fePlaneViewAlign

fePlaneViewAlign
( viewID, intoView, planeNormal, planeX )
Description:
Defines a plane that is normal to a view.
Input:
INT4 viewID The ID of a view.
BOOL intoView Determines whether the normal will be into or out of the screen.
Output:
REAL8 plNormal[0..2] The components of the vector that is normal to the plane.
REAL8 plAxis[0..2] The components of a vector along the plane X axis.
Return Code:
FE_FAIL The view was invalid or does not exist.
Remarks/Usage:
The plane Y axis can be computed from a cross product of the normal and the X axis.
Example:
None
fePlaneRotate API-723

3.15.3.11 fePlaneRotate

fePlaneRotate
( baseXYZ, vecXXYZ, vecZXYZ, angle, origin, axis, baseROT, vecXROT, vecYROT,
vecZROT )
Description:
This function returns three vectors computed from rotating the original plane around a given axis using
the specified angle, in degrees
Input:
The coordinates of a location on the plane, in global rectangular
REAL8 baseXYZ[0..2]
coordinates.
REAL8 vecXXYZ[0..2] The components of a vector along the plane X axis.
REAL8 vecZXYZ[0..2] The components of the vector that is normal to the plane.
REAL8 angle Rotation angle in degrees
REAL8 origin[0..2] The coordinates at the base of the vector to rotate about.
REAL8 axis[0..2] The components of the vector to rotate about.
Output:
REAL8 baseROT[0..2] The coordinates at the base of the rotated vector.
REAL8 vecXROT[0..2] The components of the rotated vecXXYZ vector.
REAL8 vecYROT[0..2] The rotated plane Y
REAL8 vecZROT[0..2] The components of the rotated vecZXYZ vector.
Return Code:

Remarks/Usage:
None
Example:
None
API-724 fePlaneRotate

3.15.4 Entity Selection Methods


3.15.4.1 Selection Dialog Boxes
Entity selection dialog boxes available in the FEMAP interface are available through the API
using certain Set Object Methods. These Methods require you to create a FEMAP Set Object
before they can be used. More information on these Set Object Methods can be found in:
Section 4.6.2.30, "Select" - standard FEMAP entity selection dialog box
Section 4.6.2.31, "SelectID" - standard Single entity selection dialog box in FEMAP.
Section 4.6.2.33, "SelectMultiID" - standard Multiple entity selection dialog box in FEMAP.
Section 4.6.2.34, "SelectOutputVectorID" - select a single Output Vector ID from a list of Output
Vectors in a FEMAP dialog box.
In addition to these methods that select entire entities using Sets, you can select output or element
faces using the following methods:
feSelectOutput API-725

3.15.4.2 feSelectOutput

feSelectOutput
( dlgTITLE, nBaseOutputSetID, limitOutputType, limitComplex, limitToEntity, include-
Corner, pOutputSets, pOutputVecs )
Description:
This function displays a dialog box to allow a user to select Output Sets and Vectors
Input:
STRING dlgTITLE A string that specifies a title to be used as the dialog box title.
The ID of an output set to use to fill the Output Vector selection con-
trol. If 0, then the active Output Set is used, or if none is active, the
INT4 nBaseOutputSetID first available one is used. If specified as a negative number, then the
absolute value of that number is used, but the Output Set selection
control only contains that Output Set, not all the sets available.
Reduces list of output vectors shown to the specified type (0=All,
INT4 limitOutputType
1=Disp, 2=Accel, 3=Force, 4=Stress, 5=Strain, 6=Temp)
Reduces list of output vectors shown based on type of real or com-
INT4 limitComplex plex data they contain (0=Magnitude, 1=Phase, 2=Real, 3=Imagi-
nary, 4=Any)
Reduces list of output vectors to those containing data on the speci-
INT4 limitToEntity
fied entity type
BOOL includeCorner If True, output vectors at element corners will also be included
Output:
OBJECT pOutputSets A Set object that contains the Output Sets that were selected.
OBJECT pOutputVectors A Set object that contains the Output Vectors that were selected.
Return Code:
FE_FAIL The user cancelled the dialog box.
FE_NOT_EXIST No output sets/vectors exist.
Remarks/Usage:
API-726 feSelectOutput

feSelectOutput
( dlgTITLE, nBaseOutputSetID, limitOutputType, limitComplex, limitToEntity, include-
Corner, pOutputSets, pOutputVecs )
The following dialog box is used for the set/vector selection...

Pressing Add Similar Layer/Ply Results will add Output Vectors that are of the same type but at a dif-
ferent location in the element. For example if Top Von Mises Stress is selected, pressing this will
automatically select Bottom Von Mises Stress. For laminates it will select output on all plys. Pressing
Add Component/Corner Results will select output on element corners or nodal vector component out-
put of the same type as those vectors already selected.
Example:
feSelectOutput API-727

feSelectOutput
( dlgTITLE, nBaseOutputSetID, limitOutputType, limitComplex, limitToEntity, include-
Corner, pOutputSets, pOutputVecs )
The following routine allows you to select output vectors and list the max/min values for selected ele-
ments...
Sub Main
Dim App As femap.model
Set App = GetObject(,"femap.model")

Dim s As femap.Set
Dim v As femap.Set
Dim e As femap.Set
Set e = App.feSet
Dim ov As femap.output
Set ov = App.feOutput
Dim minID As Long
Dim maxID As Long
Dim minVAL As Double
Dim maxVAL As Double

Dim rc As Long
If App.feSelectOutput( "Select Output Vectors", 0, FOT_ANY,
FOC_ANY, FT_ELEM, False, s, v ) = FE_OK Then
If e.Select( FT_ELEM, True, "Select Elements" ) = FE_OK Then
While s.Next()
v.Reset()
While v.Next()
ov.GetFromSet( s.CurrentID(), v.CurrentID() )
ov.FindMaxMin(e.ID, True, minID, minVAL, maxID, maxVAL)
App.feAppMessage( FCM_NORMAL, Str$(s.CurrentID)+"
"+Str$(v.CurrentID)+" "+Str$(minID)+" "+Str$(minVAL)+"
"+Str$(maxID)+" "+Str$(maxVAL) )
Wend
Wend
End If
End If
End Sub
API-728 feSelectOutputSets

3.15.4.3 feSelectOutputSets

feSelectOutputSets
( dlgTITLE, pOutputSets )
Description:
This function displays a dialog box to allow a user to select Output Sets
Input:
STRING dlgTITLE A string that specifies a title to be used as the dialog box title.
Output:
OBJECT pOutputSets A Set object that contains the Output Sets that were selected.
Return Code:
FE_FAIL The user cancelled the dialog box.
FE_NOT_EXIST No output sets exist.
Remarks/Usage:
The following dialog box is used for the set selection...

Example:
None
feGetElementFaces API-729

3.15.4.4 feGetElementFaces

feGetElementFaces
( dlgTITLE, orig_nCount, orig_elemID, orig_faceID, nCount, elemID, faceID )
Description:
This function displays a dialog box to allow a user to select element faces.
Input:
STRING dlgTITLE A string that specifies a title to be used as the dialog box title.
The number of elements/faces that are contained in orig_elemID and
INT4 orig_nCount orig_faceID. These element faces are displayed in the dialog box
when it is opened. Specify 0 to display an empty dialog box.
INT4
The element IDs to be loaded when the dialog is opened
orig_elemID[0..orig_nCount-1]
INT4
The face IDs to be loaded when the dialog is opened
orig_faceID[0..orig_nCount-1]
Output:
The number of elements/faces that have been selected. Unless some
INT4 nCount or all of the orig faces were deleted, they will also be contained in
this list.
INT4 elemID[0..nCount-1] The element IDs that were selected
INT4 faceID[0..nCount-1] The face IDs that were selected
Return Code:
FE_CANCEL The user cancelled the dialog box. Value is not valid.
Remarks/Usage:
Element faces are paired in the elemID/faceID arrays. The face ID corresponds to the element ID at the
same index in the array.
Example:
None
API-730 feGetElementEdges

3.15.4.5 feGetElementEdges

feGetElementEdges
( dlgTITLE, orig_nCount, orig_elemID, orig_edgeID, nCount, elemID, edgeID )
Description:
This function displays a dialog box to allow a user to select element edges.
Input:
STRING dlgTITLE A string that specifies a title to be used as the dialog box title.
The number of elements/edges that are contained in orig_elemID and
INT4 orig_nCount orig_faceID. These element faces are displayed in the dialog box
when it is opened. Specify 0 to display an empty dialog box.
INT4
The element IDs to be loaded when the dialog is opened
orig_elemID[0..orig_nCount-1]
INT4
The edgeIDs to be loaded when the dialog is opened
orig_edgeID[0..orig_nCount-1]
Output:
The number of elements/edges that have been selected. Unless some
INT4 nCount or all of the orig edges were deleted, they will also be contained in
this list.
INT4 elemID[0..nCount-1] The element IDs that were selected
INT4 edgeID[0..nCount-1] The edge IDs that were selected
Return Code:
FE_CANCEL The user cancelled the dialog box. Value is not valid.
Remarks/Usage:
Element edges are paired in the elemID/edgeID arrays. The edge ID corresponds to the element ID at
the same index in the array. The edgeID is the same as the faceID on the edge of planar elements. This
method simply limits selection to those edge faces.
Example:
None
feGetReal API-731

3.15.5 Other Methods


3.15.5.1 feGetReal

feGetReal
( dlgTITLE, lowerlimit, upperlimit, value )
Description:
This function displays a dialog box to allow a user to enter a real number.
Input:
STRING dlgTITLE A string that specifies a title to be used as the dialog box title.
REAL8 lowerlimit The minimum acceptable value for the number
REAL8 upperlimit The maximum acceptable value for the number
Output:
The number entered by the user. On input, value is displayed as the
REAL8 value
default.
Return Code:
FE_CANCEL The user cancelled the dialog box. Value is not valid.
Remarks/Usage:
None
Example:
None
API-732 feGetRealLength

3.15.5.2 feGetRealLength

feGetRealLength
( title, value )
Description:
This function displays a dialog box to allow a user to enter a real number or use an icon button to mea-
sure a distance using the Tools, Measure Distance functionality.
Input:
STRING title A string that specifies a title to be used as the dialog box title.
Output:
The value entered by the user or distance returned when using the
REAL8 value
icon button. On input, value is displayed as the default.
Return Code:
FE_CANCEL The user cancelled the dialog box. Value is not valid.
Remarks/Usage:
None
Example:
None
feGetInt API-733

3.15.5.3 feGetInt

feGetInt
( dlgTITLE, lowerlimit, upperlimit, value )
Description:
This function displays a dialog box to allow a user to enter an integer number.
Input:
STRING dlgTITLE A string that specifies a title to be used as the dialog box title.
INT4 lowerlimit The minimum acceptable value for the number
INT4 upperlimit The maximum acceptable value for the number
Output:
The number entered by the user. On input, value is displayed as the
INT4 value
default.
Return Code:
FE_CANCEL The user cancelled the dialog box. Value is not valid.
Remarks/Usage:
None
Example:
None
API-734 feAppMessageBox

3.15.5.4 feAppMessageBox

feAppMessageBox
( msgmode, message )
Description:
Displays a message box, asking the user to press a button to continue.
Input:
Determines the buttons that will be available in the box. 0=OK,
INT4 msgmode
1=OK and Cancel, 2 = Yes and No, 3 = Yes, No and Cancel
STRING message The text of the message to write. Must be less than 160 characters.
Output:
None
Return Code:
FE_OK User pressed either the OK or Yes button
FE_FAIL User pressed No button
FE_CANCEL User pressed Cancel button
Remarks/Usage:
This method is useful if your application is windowless since it insures the Message Box will be dis-
played on top of all FEMAP windows.
Example:
None
feAppColorPalette API-735

3.15.5.5 feAppColorPalette

feAppColorPalette
( nDefault, nColor )
Description:
Displays the color palette dialog box allowing a user to pick a color.
Input:
The default color, used to initialize the dialog box. This is a combina-
INT4 nDefault
tion of the desired color, pattern and linestyle.
Output:
The color/pattern/linestyle that the user selected. If the user presses
INT4 nColor
Cancel, this will be the same as nDefault
Return Code:
FE_OK Dialog box was displayed, then OK is pressed
FE_CANCEL Dialog box was displayed, then Cancel is pressed
Remarks/Usage:
None
Example:
None
API-736 feAppColorCreate

3.15.5.6 feAppColorCreate

feAppColorCreate
( enColor, enPattern, enLinestyle )
Description:
Returns a FEMAP color containing a base color, pattern and linestyle mask
Input:
enum zColor enColor Base color - use enum zColor.FCL_*
enum zColor enPattern Pattern mask - use enum zColor.FPF_*. FPF_SOLID or 0 for none..
Linestyle mask - use enum zColor.FPL_*. FPL_SOLID or 0 for
enum zColor enLinestyle
none.
Output:
None
Return Code:
FEMAP color ID containing specified base color and pattern / line-
INT4 color
style masks
Remarks/Usage:
Use the enumerations provided in zColor. Numbers outside of this range may have unintended results
Example:
None
feAppColorGetBaseColor API-737

3.15.5.7 feAppColorGetBaseColor

feAppColorGetBaseColor
( nColor, penColor )
Description:
Extracts the base color from a FEMAP color ID.
Input:
INT4 nColor FEMAP color ID
Output:
enum zColor penColor Base color. Will be a value zColor.FCL_*
Return Code:
None
Remarks/Usage:
Color IDs are a combination of colors and pattern / linestyle masks from the zColor enum. They can be
created manually or obtained from feAppColorPalette / feAppColorCreate.
Example:
None
API-738 feAppColorGetPattern

3.15.5.8 feAppColorGetPattern

feAppColorGetPattern
( nColor, penPattern )
Description:
Extracts the pattern mask from a FEMAP color ID.
Input:
INT4 nColor FEMAP color ID
Output:
enum zColor penPattern Pattern Mask. Will be a value zColor.FPF_*
Return Code:
None
Remarks/Usage:
Color IDs are a combination of colors and pattern / linestyle masks from the zColor enum. They can be
created manually or obtained from feAppColorPalette / feAppColorCreate.
Example:
None
feAppColorGetLinestyle API-739

3.15.5.9 feAppColorGetLinestyle

feAppColorGetLinestyle
( nColor, penLinestyle )
Description:
Extracts the pattern mask from a FEMAP color ID.
Input:
INT4 nColor FEMAP color ID
Output:
enum zColor penLinestyle Linestyle mask. Will be a value zColor.FPL_*
Return Code:
None
Remarks/Usage:
Color IDs are a combination of colors and pattern / linestyle masks from the zColor enum. They can be
created manually or obtained from feAppColorPalette / feAppColorCreate.
Example:
None
API-740 feAppColorGetRGB

3.15.5.10 feAppColorGetRGB

feAppColorGetRGB
( nColor, pnRed, pnGreen, pnBlue )
Description:
Returns the red, green and blue components from a FEMAP color ID
Input:
INT4 nColor FEMAP color ID
Output:
INT4 pnRed Red component. Integer value 0-255
INT4 pnGreen Green component. Integer value 0-255
INT4 pnBlue Blue component. Integer value 0-255
Return Code:
None
Remarks/Usage:
Color IDs are a combination of colors and pattern / linestyle masks from the zColor enum. They can be
created manually or obtained from feAppColorPalette / feAppColorCreate.

Pattern and linestyle masks have no effect on the returned RGB values.
Example:
None
feScreenPctPick API-741

3.15.5.11 feScreenPctPick

feScreenPctPick
( x, y )
Description:
Displays a dialog box that allows picking a location in a view
Input:
None
Output:
REAL8 x The x (horizontal) and y (vertical) locations in the view. These values
are returned as a percentage of the overall view size - i.e. 0.8 means
REAL8 y 80% of the way from the top/left to the bottom/right of the view.
Return Code:
FE_CANCEL Dialog box was cancelled.
Remarks/Usage:
None
Example:
None
API-742

3.16 User Interface Methods


User Interface Methods include the following topics:
Section 3.16.1, "Model Activation and Management"
Section 3.16.2, "Window Management"
Section 3.16.3, "View Management"
Section 3.16.4, "Toolbar and Menu Customization"
Section 3.16.5, "Embedding Applications"
Section 3.16.6, "Locking FEMAP"
Section 3.16.7, "Status Bar"
Section 3.16.8, "Message Window"
Section 3.16.9, "Real Number Text Formatting"
Section 3.16.10, "Other Utilities"
feAppGetModel API-743

3.16.1 Model Activation and Management


When working with multiple models in FEMAP, it is important to carefully manage which model
is active. All other API and program functionality works on the concept of a single active model.
By switching the active model, you can work with multiple models simultaneously, however each
time you call an API function that deals with model data, it will apply to the active model only.
Using the methods in this section, you can find and choose this model.
3.16.1.1 feAppGetModel

feAppGetModel
( model )
Description:
Retrieves the internal ID of the active model
Input:
None
Output:
INT8 model The ID of the active model
Return Code:
FE_FAIL There is no active model
Remarks/Usage:
You can call this function after creating a New model, or Opening a model to retrieve its internal ID, so
if you activate other models, you can reactivate the original by calling feAppSetModel
Example:
None
API-744 feAppGetModel32

3.16.1.2 feAppGetModel32

feAppGetModel32
( nHiModelID, nLoModelID )
Description:
Retrieves the internal ID of the active model, which is a 64-bit integer, as a pair of 32-bit integers
Input:
None
Output:
INT4 nHiModelID The first 4-bytes of the 64-bit integer which is the ID of the active
model
INT4 nLoModelID The second 4-bytes of the 64-bit integer which is the ID of the active
model
Return Code:
FE_FAIL There is no active model
Remarks/Usage:
You can call this function after creating a New model, or Opening a model to retrieve its internal ID as a
pair of 32-bit integers, so if you activate other models, you can reactivate the original by calling
feAppSetModel32 and using that pair of 32-bit integers
Example:
None
feAppGetModelName API-745

3.16.1.3 feAppGetModelName

feAppGetModelName
( model, ModelName )
Description:
Retrieves the name of the selected model
Input:
INT8 model The ID of the model to retrieve the name.
Output:
STRING ModelName The name of the active model
Return Code:
FE_FAIL The specified model is not currently open.
Remarks/Usage:
If the model has not yet been saved, it will not have a name, and the ModelName will be returned as
Untitled. You can use this method in conjunction with feAppGetAllModels( ) to retrieve the names of
all open models.
Example:
None
API-746 feAppSetModel

3.16.1.4 feAppSetModel

feAppSetModel
( model )
Description:
Activates a model chosen by its internal ID
Input:
INT8 model The ID of the model that you want to activate
Output:
None
Return Code:
FE_FAIL The model ID that you specified is not a valid, open model
Remarks/Usage:
You can find the ID of the active model using feAppGetModel, and that ID can then be passed to this
method at a later time to reactivate the model.
Example:
None
feAppSetModel32 API-747

3.16.1.5 feAppSetModel32

feAppSetModel32
( nHiModelID, nLoModelID )
Description:
Activates a model chosen by a pair of 32-bit integers representing its internal ID, which is a 64-bit inte-
ger
Input:
INT4 nHiModelID The first 4-bytes of the 64-bit integer which is the ID of the model
that you want to activate
INT4 nLoModelID The second 4-bytes of the 64-bit integer which is the ID of the model
that you want to activate
Output:
None
Return Code:
FE_FAIL The model ID pair that you specified does not represent a valid, open
model
Remarks/Usage:
You will need to find the nHiModelID and nLoModelID of the active model using feAppGetModel32,
and those IDs can then be passed to this method at a later time to reactivate the model.
Example:
None
API-748 feAppSetModelByName

3.16.1.6 feAppSetModelByName

feAppSetModelByName
( fName )
Description:
Activates a model chosen by specifying its filename
Input:
STRING fName The complete filename of the model that you want to activate
Output:
None
Return Code:
FE_FAIL The model name that you specified is not a valid, open model
Remarks/Usage:
To use this method successfully, you must specify a complete filename, including the directory/path,
and the .MOD extension. You can retrieve the full name of the active model from the ModelName
parameter.

This method can normally only be used for models that have been saved or opened from a saved model.
When a new, unsaved model is created, the model name is not defined. You can activate an unsaved
model by setting fName to an empty/blank () string, however if you have multiple unsaved models,
you will always activate the first one opened, and the others can not be accessed with this method.
Example:
To activate a saved model
rc = femap.feFileSetActiveName("c:\models\xyz.mod")

To activate a new, unsaved model


rc = femap.feFileSetActiveName( )
feAppCountModels API-749

3.16.1.7 feAppCountModels

feAppCountModels
( numModels )
Description:
Finds the number of models that are currently opened
Input:
None
Output:
INT4 numModels The number of currently opened models. Could be 0 if no models are
open.
Return Code:
FE_FAIL Unable to retrieve the number of active models
Remarks/Usage:
None
Example:
None
API-750 feAppGetAllModels

3.16.1.8 feAppGetAllModels

feAppGetAllModels
( numModels, model )
Description:
Finds the number of models that are currently opened
Input:
None
Output:
INT4 numModels The number of currently opened models.
INT8 model[0..numModels-1] The IDs of all of the currently opened models.
Return Code:
FE_FAIL There are either no models opened, or unable to retrieve the model
IDs
Remarks/Usage:
This function will return the IDs of all currently opened models, which can then be used with feAppSet-
Model to activate any of those desired models.
Example:
None
feAppModelContents API-751

3.16.1.9 feAppModelContents

feAppModelContents
( bList, nEmptyBlocks, nEntityBlocks )
Description:
Finds, and alternatively lists, the number of blocks of each entity type that are currently in the model
Input:
BOOL bList If True, a report of the contents is written to the Message Window
Output:
INT4 nEmptyBlocks The number of blocks which are allocated but unused because data
has been deleted. These blocks will be reused as new data is added to
the database.
INT4 nEntityBlocks[0..max] An array of the number of blocks being used for each entity type.
The index in this array is the Entity Type being reported. Common
Entity types are define in Section 3.3.6, "Entity Types".
Return Code:
FE_FAIL There are either no models opened, or unable to retrieve the model
information
Remarks/Usage:
The number of bytes in a Database block can change from version to version, however currently one
block is 4096 bytes.
Example:
None
API-752 feAppModelDefragment

3.16.1.10 feAppModelDefragment

feAppModelDefragment
( void )
Description:
Rearranges data in the model so that it is organized with similar data grouped together.
Input:
None
Output:
None
Return Code:
FE_FAIL Unable to defragment
Remarks/Usage:
This method will rearrange data in your model. Defragmenting should improve performance. Another
way to accomplish this is to write a Neutral File and read it into a new model.
Example:
None
feAppManageToolbars API-753

3.16.2 Window Management


When you are running FEMAP via the API, especially if you are embedding it in your own appli-
cations, you may want to control which portions of the user interface are available. The methods in
this section allow you to selectively turn various windows on and off.
3.16.2.1 feAppManageToolbars

feAppManageToolbars
( barName, visible )
Description:
Makes one or more toolbars visible (or hidden)
Input:
STRING barName The name of the toolbar to manage
BOOL visible If True, the toolbar is made visible, otherwise it is hidden
Output:
None
Return Code:
FE_FAIL Unable to find the selected toolbar.
Remarks/Usage:
The names of the toolbars can be found by running FEMAP manually and looking on the Tools->Tool-
bars menu. In addition to the toolbars listed there, you can also control the visibility of the Menu using
this method - simply use the barName of Menu Bar. If you want to set all possible toolbars in a single
call, set barName to an empty string ().

This method is identical to the feSetToolbarVisible method.


Example:
None
API-754 feAppManagePanes

3.16.2.2 feAppManagePanes

feAppManagePanes
( paneName, action )
Description:
Changes the state of one or more of the docking panes
Input:
STRING paneName The name of the pane to manage
INT4 action 0=Hide, 1=Show/Visible, 2=Dock as a Tab, 3=Toggle Docking
Output:
None
Return Code:
FE_FAIL Unable to find the selected pane.
FE_INVALID Invalid action specified.
Remarks/Usage:
The names of the panes can be found in the title bars of the panes. Currently they are Entity Editor,
Messages, Data Table, Model Info, Entity Info, Data Surface Editor, Meshing Toolbox,
PostProcessing Toolbox, Charting, API Programming, and Program File.

If you have added your own application into FEMAP using feAppRegisterAddInPane, the title of your
window will also be available. If you want to set all possible panes in a single call, set paneName to an
empty string ().

If you dock a pane as a tab, you can undock/float it by calling this method with Toggle Docking. If
you then call this method again with Toggle Docking, the pane will be docked in its open state (not as
a tab).
Example:
None
feAppUpdatePanes API-755

3.16.2.3 feAppUpdatePanes

feAppUpdatePanes
( fullRefresh )
Description:
Updates the contents of the docking panes
Input:
If True, the Model Info pane is fully rebuilt, otherwise incremental
BOOL fullRefresh
changes are added to all panes.
Output:
None
Return Code:
None
Remarks/Usage:
If called with fullRefresh=False, then it must be called after each command, before redraws occur, oth-
erwise some changes may be lost.
Example:
None
API-756 feAppManageStatusBar

3.16.2.4 feAppManageStatusBar

feAppManageStatusBar
( visible )
Description:
Sets the visibility of the status bar
Input:
BOOL visible If True, show the status bar, otherwise hide it
Output:
None
Return Code:
FE_FAIL Unable to find the status bar
Remarks/Usage:
None
Example:
None
feAppManageGraphicsTabs API-757

3.16.2.5 feAppManageGraphicsTabs

feAppManageGraphicsTabs
( visible )
Description:
Sets the visibility of the tabs on the top of the graphics windows
Input:
BOOL visible If True, show the tabs, otherwise hide them
Output:
None
Return Code:
FE_FAIL Unable to find the tabs
Remarks/Usage:
The tabs controlled by this method are shown here:

Example:
None
API-758 feAppGetActiveView

3.16.3 View Management


Sometimes you will need to know and control which views are available on the screen. The meth-
ods in this section allow you to manage this information.
3.16.3.1 feAppGetActiveView

feAppGetActiveView
( viewID )
Description:
Retrieves the ID of the active view in the active model.
Input:
None
Output:
INT4 viewID The ID of the active view.
Return Code:
FE_FAIL There is no active view.
Remarks/Usage:
This method allows you to retrieve the active view from the active model.
Example:
None
feAppSetActiveView API-759

3.16.3.2 feAppSetActiveView

feAppSetActiveView
( viewID )
Description:
Activates a view in the active model chosen by its ID.
Input:
INT4 viewID The ID of the view that you want to activate.
Output:
None
Return Code:
None
Remarks/Usage:
This method allows you to activate any existing view in the active model. Use feAppGetActiveView
and feAppGetAllViews to retrieve the IDs of views that can be activated.
Example:
None
API-760 feAppGetAllViews

3.16.3.3 feAppGetAllViews

feAppGetAllViews
( numViews, viewID )
Description:
Retrieves the IDs of all the visible views in the active model as well as the number of views that are vis-
ible.
Input:
None
Output:
INT4 numViews The number of views visible in the active model.
INT4 viewID[0..numViews-1] The IDs of all of the views visible in the active model.
Return Code:
FE_FAIL No views exist.
Remarks/Usage:
This method allows you to return the IDs of all the views that are currently visible, which can then be
activated with feAppSetActiveView.
Example:
None
feGetUserCommands API-761

3.16.4 Toolbar and Menu Customization


The methods in this section allow you to update the FEMAP menus and toolbars to include new
commands that you define, to change the visiblity of commands that are already there, or to change
title and icons associated with commands.
3.16.4.1 feGetUserCommands

feGetUserCommands
( numCmd, sTitle, sCmd, sArg, sStartDir )
Description:
Retrieves all user commands that have been defined
Input:
None
Output:
The number of user commands that are current defined, and the num-
INT4 numCmd
ber of entries in the other arrays
STRING sTitle[0..numCmd-1] The title assigned to each command
STRING sCmd[0..numCmd-1] The command line used to execute the command
STRING sArg[0..numCmd-1] Any command line arguments assigned to the command
STRING sStartDir[0..num-
The starting directory, if any, for the command.
Cmd-1]
Return Code:
FE_FAIL Unable to retrieve the user commands
FE_NOT_EXIST No user commands are defined.
Remarks/Usage:
None
Example:
None
API-762 feAddUserCommand

3.16.4.2 feAddUserCommand

feAddUserCommand
( sTitle, sCmd, sArg, sStartDir )
Description:
Defines a user command that can then be used in the menu or toolbar
Input:
The title assigned to the command. This title is used later to assign
STRING sTitle the command to the menu or toolbar. It must be unique when com-
pared to all other user commands.
STRING sCmd The command line used to execute the command
STRING sArg Any command line arguments assigned to the command
STRING sStartDir The starting directory, if any, for the command.
Output:
None
Return Code:
FE_FAIL Unable to add the user commands
A user command with the same title has already been defined. You
FE_INVALID
must specify a unique title.
Remarks/Usage:
User commands defined with this method can be assigned to a toolbar using the feAddToolbarUser-
Command method.
Example:
None
feDeleteUserCommand API-763

3.16.4.3 feDeleteUserCommand

feDeleteUserCommand
( sTitle )
Description:
Deletes a user command
Input:
STRING sTitle The title of the command to be deleted.
Output:
None
Return Code:
FE_FAIL Unable to delete the user commands
Remarks/Usage:
None
Example:
None
API-764 feGetToolbars

3.16.4.4 feGetToolbars

feGetToolbars
( numBars, barID, barVisible, barTitle )
Description:
Retrieves all toolbars that have been defined
Input:
None
Output:
The number of toolbars that are current defined, and the number of
INT4 numBars
entries in the other arrays.
INT4 barID[0..numBars-1] The ID of each toolbar
BOOLEAN barVisible[0..num- A flag indicating whether the toolbar is currently visible. True=Visi-
Bars-1] ble.
STRING barTitle[0..numBars-
The title of the toolbar.
1]
Return Code:
FE_FAIL Unable to retrieve the toolbar information
Remarks/Usage:
Toolbars do not need to be visible on the screen to be accessed by this method.
Example:
None
feAddToolbar API-765

3.16.4.5 feAddToolbar

feAddToolbar
( barName, barLocation )
Description:
Creates a new toolbar
Input:
The title assigned to the toolbar. This title must be unique, and will
STRING barName
be used in other methods to access the toolbar.
The location where the bar will be docked. 0=Top, 1=Left, 2=Right,
INT4 barLocation
3=Top, 4=Bottom
Output:
None
Return Code:
FE_FAIL Unable to add the toolbar
A toolbar with the same title has already been defined. You must
FE_INVALID
specify a unique title.
Remarks/Usage:
After creating a toolbar with this method, you can add commands to it using either feAddToolbarCom-
mand or feAddToolbarUserCommand
Example:
None
API-766 feAddToolbarSubmenu

3.16.4.6 feAddToolbarSubmenu

feAddToolbarSubmenu
( barName, cmdIndex, menuName, menuID )
Description:
Creates a new submenu in a toolbar
Input:
The title assigned to the toolbar. This title must be unique, and will
STRING barName
be used in other methods to access the toolbar.
Location in barName to place the new menu. 0=Before first item,
INT4 cmdIndex
-1=After last item, N=After Nth item.
STRING menuName Title to be used for the menu drop-down.
Output:
ID of the menu that was inserted - needed for feAddToolbarSub-
INT4 menuID menuSubmenu, feAddToolbarSubmenuCommand or feAddToolbar-
SubmenuUserCommand to add commands or submenus to this menu
Return Code:
FE_FAIL Unable to add the menu
FE_NOT_EXIST The toolbar barName does not exist.
Remarks/Usage:
After creating a toolbar with this method, you can add commands to it using either feAddToolbarSub-
menuCommand or feAddToolbarSubmenuUserCommand, or submenus using feAddToolbarSubmenu-
Submenu
Example:
None
feAddToolbarSubmenuSubmenu API-767

3.16.4.7 feAddToolbarSubmenuSubmenu

feAddToolbarSubmenuSubmenu
( menuID, cmdIndex, menuName, submenuID )
Description:
Adds a new submenu to a submenu on a toolbar.
Input:
The ID of the menu where you want to place the command. This is
INT4 menuID
returned by feAddToolbarSubmenu
The location in the menu for the submenu. 0=At the front of the
INT4 cmdIndex menu before any other buttons. -1=At the end of the menu, after all
other buttons. Any other positive value means after that button.
STRING menuName Title to be used for the menu drop-down.
Output:
ID of the menu that was inserted - needed for feAddToolbarSubme-
INT4 submenuID nuCommand or feAddToolbarSubmenuUserCommand to add com-
mands to this menu
Return Code:
FE_FAIL Unable to add the submenu.
FE_NOT_EXIST The menu does not exist.
Remarks/Usage:
None
Example:
None
API-768 feDeleteToolbar

3.16.4.8 feDeleteToolbar

feDeleteToolbar
( barName )
Description:
Deletes a toolbar
Input:
STRING barName The title of the toolbar to be deleted.
Output:
None
Return Code:
FE_FAIL Unable to delete the toolbar
Remarks/Usage:
None
Example:
None
feResetToolbar API-769

3.16.4.9 feResetToolbar

feResetToolbar
( barName )
Description:
Resets a toolbar back to its original state
Input:
The title of the toolbar to be reset. If this is an empty string () then
STRING barName
all toolbars will be reset.
Output:
None
Return Code:
FE_FAIL Unable to reset the toolbar
Remarks/Usage:
You can call this method to reset any changes you have made in the predefined FEMAP toolbars and
menu back to their default configuration.

This method will always display a dialog box asking the user to confirm resetting the toolbar.
Example:
None
API-770 feSetToolbarVisible

3.16.4.10 feSetToolbarVisible

feSetToolbarVisible
( barName, bVisible )
Description:
Makes one or more toolbars visible (or hidden)
Input:
The title of the toolbar to be updated. If this is an empty string ()
STRING barName
then all toolbars will be reset.
BOOLEAN bVisible If True, the toolbar will be made visible. If False, it will be hidden.
Output:
None
Return Code:
FE_FAIL Unable to reset the toolbar
Remarks/Usage:
The names of the toolbars can be found by running FEMAP manually and looking on the Tools->Tool-
bars menu. In addition to the toolbars listed there, you can also control the visibility of the Menu using
this method - simply use the barName of Menu Bar.

This method is identical to the feAppManageToolbars method.


Example:
None
feGetMenuCommands API-771

3.16.4.11 feGetMenuCommands

feGetMenuCommands
( menuName1, menuName2, numCmds, cmdID, cmdTitle )
Description:
Retrieves information about all commands on a selected menu
Input:
The menu name you see at the top level (for example, File). Spec-
STRING menuName1 ify an empty string () here to retrieve information about the com-
mands at the top level (File, Tools, ...)
The menu name you see inside the top level menu (for example,
STRING menuName2 Import if menuName1=File). Specify an empty string here to
retrieve the commands on the drop down from the top level.
Output:
The number of commands on this menu, and the number of entries in
INT4 numCmds
the other arrays.
The IDs of the commands associated with each menu item. The
INT4 cmdID[0..numCmds-1] cmdID of any item on the menu that is a drop-down (rather than a
command) will be -1.
STRING cmdTitle[0..numC-
The titles of the commands associated with each menu item.
mds-1]
Return Code:
Unable to retrieve information about the specified menu - make sure
FE_FAIL you are specifying the name of a drop-down menu, and not an indi-
vidual command
Remarks/Usage:
When specifying the menu names, you should always leave off the ... characters and shortcut key
specifications. Also do not include any special characters to represent the underlined letters - just spec-
ify the title as if nothing was underlined.
Example:
Retrieve the commands on the View->Advanced Post menu
rc = femap.feGetMenuCommands("View", "Advanced Post", n, i, t)
Retrieve the commands on the Tools menu
rc = femap.feGetMenuCommands("Tools", "", n, i, t)
API-772 feGetMenuCommand

3.16.4.12 feGetMenuCommand

feGetMenuCommand
( menuName1, menuName2, menuName3, cmdID )
Description:
Retrieves the ID of a specified command
Input:
STRING menuName1 The menu name you see at the top level (for example, File).
The menu name you see inside the top level menu (for example,
STRING menuName2 Save As if menuName1=File). Specify an empty string here to
retrieve a command on the top level of the menu.
The menu name you see inside the first level drop-down menu (for
example, Analysis Results if menuName1=File, and
STRING menuName3
menuName2=Import). Specify an empty string here to retrieve a
command on the first level drop-down menu.
Output:
The ID of the command associated with the menu item. The cmdID
INT4 cmdID of any item on the menu that is a drop-down (rather than a command)
will be -1.
Return Code:
FE_FAIL Unable to retrieve information about the specified menu.
Remarks/Usage:
When specifying the menu names, you should always leave off the ... characters and shortcut key
specifications. Also do not include any special characters to represent the underlined letters - just spec-
ify the title as if nothing was underlined.
Example:
None
feGetToolbarCommands API-773

3.16.4.13 feGetToolbarCommands

feGetToolbarCommands
( barName, numCmds, cmdID, cmdVisible, cmdSubmenu, cmdTitle )
Description:
Retrieves information about all commands on a selected toolbar
Input:
STRING barName The title of the toolbar containing the commands to be retrieved.
Output:
The number of commands on this toolbar, and the number of entries
INT4 numCmds
in the other arrays.
INT4 cmdID[0..numCmds-1] The IDs of the commands associated with each toolbar item.
BOOLEAN cmdVisi- A flag indicating whether or not the item is currently visible on the
ble[0..numCmds-1] toolbar. True=Visible.
BOOLEAN cmdSub- A flag indicating whether the item is a command button, or a button
menu[0..numCmds-1] that drops down another menu. True=Drop-Down a Submenu
STRING cmdTitle[0..numC-
The titles of the commands associated with each toolbar item.
mds-1]
Return Code:
FE_FAIL Unable to retrieve information about the specified toolbar commands
FE_NOT_AVAILABLE No commands are available on the selected toolbar
FE_INVALID Unable to find the specified toolbar
Remarks/Usage:
The value of numCmds will always be the number of all commands added to a toolbar, visible or hid-
den, + 1. The extra command is the Toolbar Options command which is available on every toolbar
and will always be the final command in the returned arrays or variants. It always has a cmdID value of
9148 and a cmdTitle value of Toolbar Options.
Example:
None
API-774 feGetToolbarSubCommands

3.16.4.14 feGetToolbarSubCommands

feGetToolbarSubCommands
( cmdID, numCmds, cmdID, cmdVisible, cmdTitle )
Description:
Retrieves information about all commands on a menu that drops-down from a toolbar button.
Input:
INT4 cmdID The ID of the toolbar button that drops down the menu
Output:
The number of commands on this menu, and the number of entries in
INT4 numCmds
the other arrays.
INT4 cmdID[0..numCmds-1] The IDs of the commands associated with each menu item.
BOOLEAN cmdVisi- A flag indicating whether or not the item is currently visible on the
ble[0..numCmds-1] menu. True=Visible.
STRING cmdTitle[0..numC-
The titles of the commands associated with each menu item.
mds-1]
Return Code:
FE_FAIL Unable to retrieve information about the specified menu commands
FE_NOT_AVAILABLE No commands are available on the selected menu
FE_INVALID Unable to find the specified toolbar
Remarks/Usage:
None
Example:
None
feGetToolbarCommand API-775

3.16.4.15 feGetToolbarCommand

feGetToolbarCommand
( barName, cmdIndex, cmdID )
Description:
Finds the ID of the command associated with a toolbar button
Input:
STRING barName The title of the toolbar to be searched.
The index of the button to retrieve. The first button on the toolbar is
INT4 cmdIndex
button 0, the second is 1, and so on.
Output:
INT4 cmdID The command ID associated with the button
Return Code:
FE_FAIL Unable to find the toolbar
FE_NOT_EXIST The specified button does not exist on the toolbar
Remarks/Usage:
Setting the value of cmdIndex to the number of commands on the toolbar, visible or hidden, will always
return Toolbar Options command which is available on every toolbar. It will always have a cmdID
value of 9148. Therefore, if there are a total of 3 commands on the toolbar, setting cmdIndex to 3 will
return the command ID of 9148 (Toolbar Options).
Example:
None
API-776 feAddToolbarCommand

3.16.4.16 feAddToolbarCommand

feAddToolbarCommand
( barName, cmdIndex, cmdID )
Description:
Adds a new button to a toolbar and associates it with a standard command.
Input:
STRING barName The title of the toolbar where the command button will be placed.
The location on the toolbar for the button. 0=At the front of the tool-
INT4 cmdIndex bar before any other buttons. -1=At the end of the toolbar, after all
other buttons. Any other positive value means after that button.
INT4 cmdID The command ID associated with the button
Output:
None
Return Code:
FE_FAIL Unable to add the command.
FE_NOT_EXIST The toolbar does not exist.
Remarks/Usage:
None
Example:
None
feAddToolbarSubmenuCommand API-777

3.16.4.17 feAddToolbarSubmenuCommand

feAddToolbarSubmenuCommand
( menuID, cmdIndex, cmdID )
Description:
Adds a new button to a submenu on a toolbar and associates it with a standard command.
Input:
The ID of the menu where you want to place the command. This is
INT4 menuID
returned by feAddToolbarSubmenu
The location in the menu for the button. 0=At the front of the menu
INT4 cmdIndex before any other buttons. -1=At the end of the menu, after all other
buttons. Any other positive value means after that button.
INT4 cmdID The command ID associated with the button
Output:
None
Return Code:
FE_FAIL Unable to add the command.
FE_NOT_EXIST The menu does not exist.
Remarks/Usage:
None
Example:
None
API-778 feAddToolbarUserCommand

3.16.4.18 feAddToolbarUserCommand

feAddToolbarUserCommand
( barName, cmdIndex, cmdTitle, cmdBitmap, cmdID )
Description:
Adds a new button to a toolbar and associates it with a user command.
Input:
STRING barName The title of the toolbar where the command button will be placed.
The location on the toolbar for the button. 0=At the front of the tool-
INT4 cmdIndex bar before any other buttons. -1=At the end of the toolbar, after all
other buttons. Any other positive value means after that button.
The title of the user command to associate with the button. This is the
STRING cmdTitle
title given to the command in feAddUserCommand.
The full pathname of a Windows Bitmap file that will be the icon
associated with the button. Specify an empty string () if you do not
STRING cmdBitmap want the button to display as an icon - it will then display as text.
Refer to feSetToolbarCommandBitmap for more information about
defining the bitmap to be used for the icon.
Output:
INT4 cmdID The command ID assigned to the button
Return Code:
FE_FAIL Unable to add the command.
FE_NOT_EXIST The toolbar does not exist.
FE_NOT_AVAILABLE The specified user command has not been defined.
Remarks/Usage:
None
Example:
None
feAddToolbarSubmenuUserCommand API-779

3.16.4.19 feAddToolbarSubmenuUserCommand

feAddToolbarSubmenuUserCommand
( menuID, cmdIndex, cmdTitle, cmdBitmap, cmdID )
Description:
Adds a new button to a submenu and associates it with a user command.
Input:
INT4 menuID The ID of the menu where the command button will be placed.
The location on the menu for the button. 0=At the front of the menu
INT4 cmdIndex before any other buttons. -1=At the end of the menu, after all other
buttons. Any other positive value means after that button.
The title of the user command to associate with the button. This is the
STRING cmdTitle
title given to the command in feAddUserCommand.
The full pathname of a Windows Bitmap file that will be the icon
associated with the button. Specify an empty string () if you do not
STRING cmdBitmap want the button to display as an icon - it will then display as text.
Refer to feSetToolbarCommandBitmap for more information about
defining the bitmap to be used for the icon.
Output:
INT4 cmdID The command ID assigned to the button
Return Code:
FE_FAIL Unable to add the command.
FE_NOT_EXIST The menu does not exist.
FE_NOT_AVAILABLE The specified user command has not been defined.
Remarks/Usage:
None
Example:
None
API-780 feSetToolbarCommandVisible

3.16.4.20 feSetToolbarCommandVisible

feSetToolbarCommandVisible
( barName, cmdID, bVisible )
Description:
Shows (or hides) a specified command on a toolbar or menu
Input:
The title of the toolbar where the command button is found. Specify
STRING barName an empty string () to show or hide the command on all toolbars and
the menu.
INT4 cmdID The ID of the command to show or hide.
BOOLEAN bVisible True=Show the command, False=Hide
Output:
None
Return Code:
FE_FAIL Unable to find the specified command.
Remarks/Usage:
None
Example:
None
feSetToolbarSeparator API-781

3.16.4.21 feSetToolbarSeparator

feSetToolbarSeparator
( barName, cmdID, bAddSep )
Description:
Adds or removes a separator from before a command or menu on a toolbar.
Input:
The title of the toolbar where the command button is found. Specify
STRING barName an empty string () to show or hide the command on all toolbars and
the menu.
INT4 cmdID The ID of the command or menu to modify the separator
True=Add a separator before the command/menu, False=Remove
BOOLEAN bAddSep
separator
Output:
None
Return Code:
FE_FAIL Unable to find the specified command.
Remarks/Usage:
None
Example:
None
API-782 feSetToolbarCommandTitle

3.16.4.22 feSetToolbarCommandTitle

feSetToolbarCommandTitle
( barName, cmdID, cmdTitle, cmdToolTip, cmdDescription )
Description:
Sets the title, tooltip and description of a command on the menu or toolbars
Input:
The title of the toolbar where the command button is found. Specify
STRING barName an empty string () to set the titles for the command on all toolbars
and the menu.
INT4 cmdID The ID of the command to update
Sets the title of the command. The title is the text shown on the tool-
STRING cmdTitle bar or menu. Specify an empty string () if you do not want to
update the command title.
Sets the tooltip for the command. The tooltip is the text shown in the
popup when you leave your mouse pointing at the command. Specify
STRING cmdToolTip
an empty string () if you do not want to update the command
tooltip.
Sets the description for the command. The description is the one-line
help text shown in the status bar when you point your mouse at the
STRING cmdDescription
command. Specify an empty string () if you do not want to update
the command description.
Output:
None
Return Code:
FE_FAIL Unable to find the specified command.
Remarks/Usage:
None
Example:
None
feSetToolbarCommandBitmap API-783

3.16.4.23 feSetToolbarCommandBitmap

feSetToolbarCommandBitmap
( cmdID, cmdBitmap )
Description:
Sets the icon for a command on the menu or toolbar
Input:
INT4 cmdID The ID of the command to update
The full pathname to a Windows Bitmap file that is used for the com-
STRING cmdBitmap
mand icon.
Output:
None
Return Code:
FE_FAIL Unable to find the specified command.
FE_NOT_AVAILABLE Unable to access the bitmap file specified.
Remarks/Usage:
The Bitmap file that you specify must be created following very specific guidelines, or this method will
not work properly - possibly resulting in FEMAP crashing. The bitmap file must contain a single 16x16
pixel image. Other sizes are not supported. If you want part of the bitmap to be transparent, set those
pixels to RGB=(192,192,192) - light gray. This means that you can not use this color in your image - it
will be replaced by the appropriate background color.
Example:
None
API-784 feSaveToolbarLayout

3.16.4.24 feSaveToolbarLayout

feSaveToolbarLayout
( fName )
Description:
Saves the current toolbar and menu definition and layout to a file for later use.
Input:
The full pathname of the file to create (normally with a .tbr exten-
STRING fName
sion)
Output:
None
Return Code:
FE_FAIL Unable to save the layout
Remarks/Usage:
None
Example:
None
feLoadToolbarLayout API-785

3.16.4.25 feLoadToolbarLayout

feLoadToolbarLayout
( fName )
Description:
Loads a toolbar and menu definition and layout from a file
Input:
The full pathname of the file to load, that was either created with feS-
STRING fName
aveToolbarLayout or through File->Preferences
Output:
None
Return Code:
FE_FAIL Unable to load the layout
Remarks/Usage:
None
Example:
None
API-786 feAppRegisterAddIn

3.16.5 Embedding Applications


The methods in this section allow you to embed your application in the FEMAP user interface as
an Add-In, or to embed FEMAP into the user interface of your application.
3.16.5.1 feAppRegisterAddIn

feAppRegisterAddIn
( register, windowID, messageID, tile, location )
Description:
Registers an add-in application with FEMAP.
Input:
Set to True to register a new application, or False to unregister an
BOOL register
add-in that is about to close.
INT4 windowID The handle to the add-in application main window/form.
The handle to the add-in application window that is to receive event
INT4 messageID
messages. This must be a window that has a message loop.
BOOL tile Not used
INT4 location Not used
Output:
None
Return Code:
None
Remarks/Usage:
Usually you will want to specify the same handle for windowID and messageID - unless you want some
other window than your main window to receive FEMAP event messages.

This method is obsolete, and is included only for compatibility with existing applications. Any new
applications should use feAppRegisterAddInPane, and old applications should be converted as
soon as possible.

Example:
None
feAppRegisterAddInPane API-787

3.16.5.2 feAppRegisterAddInPane

feAppRegisterAddInPane
( register, windowID, messageID, bPreventClose, bPreventHide, location, neighborID )
Description:
Registers an add-in application with FEMAP.
Input:
Set to True to register a new application, or False to unregister an
BOOL register
add-in that is about to close.
INT4 windowID The handle to the add-in application main window/form.
The handle to the add-in application window that is to receive event
INT4 messageID
messages. This must be a window that has a message loop.
If True, the pane will not include the X in the title bar to allow
BOOL bPreventClose users to close the addin. If you set this option, you must provide
some other method to allow users to close your application.
If True, the pane will not include the pin in the title bar to allow the
BOOL bPreventHide
window to be collapsed to a tab.
0 - floating window, 1 - dock left, 2 - dock right, 3 - dock top, 4 -
INT4 location
dock bottom
0-femap main window, 1-Message Pane, 2-Model Info Tree Pane, 3-
INT4 neighborID Entity Editor Pane, 4-Data Table Pane, otherwise the handle to an
existing add-in window.
Output:
None
Return Code:
None
Remarks/Usage:
Usually you will want to specify the same handle for windowID and messageID - unless you want some
other window than your main window to receive FEMAP event messages.
The window identified by neighborID is used in conjunction with the location you specify to determine
where the window is docked and how it is sized. For example if you specify location=3 and neighbo-
rID=1, then your window will be placed at the top of the message pane.

If your add-in contains a menu, you may need to use feAppRegisterAddInPaneWithFrame to get the
menu to appear.
Example:
None
API-788 feAppRegisterAddInPaneWithFrame

3.16.5.3 feAppRegisterAddInPaneWithFrame

feAppRegisterAddInPaneWithFrame
( register, windowID, messageID, bPreventClose, bPreventHide, location, neighborID )
Description:
Registers an add-in application with FEMAP.
Input:
Set to True to register a new application, or False to unregister an
BOOL register
add-in that is about to close.
INT4 windowID The handle to the add-in application main window/form.
The handle to the add-in application window that is to receive event
INT4 messageID
messages. This must be a window that has a message loop.
If True, the pane will not include the X in the title bar to allow
BOOL bPreventClose users to close the addin. If you set this option, you must provide
some other method to allow users to close your application.
If True, the pane will not include the pin in the title bar to allow the
BOOL bPreventHide
window to be collapsed to a tab.
0 - floating window, 1 - dock left, 2 - dock right, 3 - dock top, 4 -
INT4 location
dock bottom
0-femap main window, 1-Message Pane, 2-Model Info Tree Pane, 3-
INT4 neighborID Entity Editor Pane, 4-Data Table Pane, otherwise the handle to an
existing add-in window.
Output:
None
Return Code:
None
Remarks/Usage:
This method is essentially the same as feAppRegisterAddInPane, however it does not modify the win-
dow style of the window being added. This has both positive and negative effects. On the positive side,
it allows some programs to be added that contain menus that disappear if you used feAppRegisterAdd-
InPane. However, it also leaves window borders and forces you to do more in your add-in application to
make sure sizes do not change and that your windows do not accidentally move or close. If you allow
this and do not fully manage it, you can end up with a pane that contains only part of your application, or
nothing. So, unless you absolutely need to keep menus or frames, use feAppRegisterAddInPane instead.
Example:
None
feAppEmbed API-789

3.16.5.4 feAppEmbed

feAppEmbed
( windowID, x, y, cx, cy )
Description:
Embeds the FEMAP window(s) into another application
Input:
The handle to your application main window/form, or any other win-
INT4 windowID
dow where you want the FEMAP window displayed.
INT4 x The coordinates of the upper left corner of the embedded window(s).
These are specified in the client coordinates of the parent window
INT4 y specified by windowID
INT4 cx
The horizontal and vertical size of the embedded window(s)
INT4 cy
Output:
None
Return Code:
None
Remarks/Usage:
This method is normally used with FEMAP in a non-visible state. In that case, FEMAP becomes visible,
and is embedded (parented) into the window you specify - normally the main window of your applica-
tion. You may call this method multiple times to update the window where the windows are embedded,
or to change the embedded region. Refer to Embedding FEMAP in your application on page 79 for
more information.
Example:
None
API-790 feAppBringToTop

3.16.5.5 feAppBringToTop

feAppBringToTop
( toTop, underWindow )
Description:
Allows you to position the FEMAP window on top of, or under other windows.
Input:
If True, the window is moved forward in the window list. If False, it
BOOL toTop
is moved to the back of the window list, under all other windows.
Only used if toTop=True. If you want to move the window on top
of all other windows, set this to 0. If you want to move it forward, but
INT4 underWindow
leave it behind another window, specify that window handle in this
field.
Output:
None
Return Code:
None
Remarks/Usage:
None
Example:
None
feAppPosition API-791

3.16.5.6 feAppPosition

feAppPosition
( move, size, x, y, cx, cy )
Description:
Allows you to move and size the FEMAP window.
Input:
If True, the upper left corner of the window is moved to the new
BOOL move
location specified by x,y.
BOOL size If True, the window is resized to the size specified by cx,cy.
The horizontal location of the upper left corner of the window. Spec-
REAL8 x
ified as a percent of the total screen size.
The vertical location of the upper left corner of the window. Speci-
REAL8 y
fied as a percent of the total screen size.
The horizontal size of the window. Specified as a percent of the total
REAL8 cx
screen size.
The vertical size of the window. Specified as a percent of the total
REAL8 cy
screen size.
Output:
None
Return Code:
None
Remarks/Usage:
None
Example:
None
API-792 feAppShowWindow

3.16.5.7 feAppShowWindow

feAppShowWindow
( maximize )
Description:
Allows you to minimize and maximize the FEMAP window.
Input:
If True, the window will be maximized. If False, it will be minimized
BOOL maximize
to an icon.
Output:
None
Return Code:
None
Remarks/Usage:
None
Example:
None
feAppVisible API-793

3.16.5.8 feAppVisible

feAppVisible
( visible )
Description:
Makes a FEMAP session that was started with CreateObject visible (or invisible)
Input:
BOOL visible If True, the session becomes visible, if False, invisible
Output:
None
Return Code:
None
Remarks/Usage:
This method is required to make FEMAP visible if you started a new session with CreateObject. You
can also make an existing session invisible with the appropriate call. You should not call this method
with a session where you have embedded graphics or messages windows into your application.
Example:
None
API-794 feAppRegisterMessageHandler

3.16.5.9 feAppRegisterMessageHandler

feAppRegisterMessageHandler
( windowID, x, y, cx, cy, dockedAppearance )
Description:
Registers your application to receive all of the text that is sent to the FEMAP Messages window.
Input:
If True, your application will start receiving messages as they are
BOOL register
written to the window. If False, messages will no longer be sent.
The handle your applications main window/form, or any other win-
INT4 windowID
dow that you want to receive the message text.
Output:
None
Return Code:
None
Remarks/Usage:
This method allows you to capture the FEMAP messages and process them in any way you would like.
You can display or modify them in any manner you would like. Refer to Capturing the FEMAP Mes-
sages on page 81 for more information.
Example:
None
feAppEventCallback API-795

3.16.5.10 feAppEventCallback

feAppEventCallback
( eventID, callback )
Description:
Registers a program to be called when a particular event occurs
Input:
The ID of the event to watch. Refer to Section 6.4, "The FEMAP
INT4 eventID
Events" for possible event values.
A full path to a FEMAP Program file, Basic program, or any execut-
able that can be run from the operating system command line. Spec-
STRING callback
ify callback as a blank (zero length) string to unregister your
callback.
Output:
None
Return Code:
You tried to unregister the callback for an event which was not regis-
FE_NOT_EXIST
tered
FE_NO_MEMORY Unable to register callback.
Remarks/Usage:
This method allows you to execute a particular task when an event occurs without having to implement
complicated event handling code. From the time you register the callback, until you unregister it by call-
ing with a blank string, your code will be called every time the event occurs. Only one callback can be
registered per event. You can simply call this method with a different file for the same event to switch
callbacks.

If the event that your callback processes uses the lParam value (like FEVENT_COMMAND), you can
access it from your callback routine by using EventLParam described in Section 3.3.2, "Global Integer
Properties"
Example:
None
API-796 feAppLock

3.16.6 Locking FEMAP


The methods in this section allow you to prevent certain actions in FEMAP when they are not
appropriate due to the state of your application.
3.16.6.1 feAppLock

feAppLock
( void )
Description:
Locks the FEMAP user interface.
Input:
None
Output:
None
Return Code:
The lock count after this call. Will be nonzero if the interface was
INT4 lock_count
locked.
Remarks/Usage:
This method locks the user interface so that the user cannot pick any commands from the FEMAP
menus or toolbars. Some aspects of the FEMAP user interface (such as docking panes) will still remain
active - there is no way to deactivate those, however they can be hidden. Add-in applications are active.
When FEMAP is locked, the cursor is changed to be an hourglass with a lock. You must call feAppUn-
lock before FEMAP will again be active.
Example:
None
feAppUnlock API-797

3.16.6.2 feAppUnlock

feAppUnlock
( void )
Description:
Unlocks the FEMAP user interface.
Input:
None
Output:
None
Return Code:
The number of locks remaining after this call. Will be 0 if the user
INT4 lock_count
interface was actually unlocked.
Remarks/Usage:
This method unlocks the user interface, after a call to feAppLock, so that the user can again use the
FEMAP commands. It changes the cursor back to the standard FEMAP cursors. Actually, feAppLock
increases a lock count, so if it has been called multiple times, then feAppUnlock must be called an equal
number of times before the user interface will be unlocked. There is no harm in calling feAppUnlock
extra times, or even if feAppLock was never called.
Example:
None
API-798 feAppLockExit

3.16.6.3 feAppLockExit

feAppLockExit
( void )
Description:
Locks the FEMAP session so that a user can not exit.
Input:
None
Output:
None
Return Code:
INT4 lock_count The lock count after this call. Will be nonzero if the exit was locked.
Remarks/Usage:
This method locks the session so that the user cannot exit using the File->Exit command, or any of the
normal system application close methods. This does not prevent the FEMAP process from being acci-
dentally or intentionally terminated using Task Manager or other approaches.
Example:
None
feAppUnlockExit API-799

3.16.6.4 feAppUnlockExit

feAppUnlockExit
( void )
Description:
Unlocks the FEMAP session so that the user can exit.
Input:
None
Output:
None
Return Code:
The number of locks remaining after this call. Will be 0 if the session
INT4 lock_count
was actually unlocked.
Remarks/Usage:
This method unlocks the session, after a call to feAppLockExit, so that the user can again exit FEMAP.
Actually, feAppLockExit increases a lock count, so if it has been called multiple times, then feAppUn-
lockExit must be called an equal number of times before exit will be unlocked. There is no harm in call-
ing feAppUnlockExit extra times, or even if feAppLockExit was never called.
Example:
None
API-800 feAppLockModel

3.16.6.5 feAppLockModel

feAppLockModel
( void )
Description:
Locks the FEMAP session so that a user can not start or open a different model.
Input:
None
Output:
None
Return Code:
INT4 lock_count The lock count after this call. Will be nonzero if the exit was locked.
Remarks/Usage:
This method locks the session so that the user cannot change to a new model using either the File->New
or File->Open commands.
Example:
None
feAppUnlockModel API-801

3.16.6.6 feAppUnlockModel

feAppUnlockModel
( void )
Description:
Unlocks the FEMAP session so that the user can start or open a new model.
Input:
None
Output:
None
Return Code:
The number of locks remaining after this call. Will be 0 if the session
INT4 lock_count
was actually unlocked.
Remarks/Usage:
This method unlocks the session, after a call to feAppLockModel, so that the user can again start or
open a different model. Actually, feAppLockModel increases a lock count, so if it has been called mul-
tiple times, then feAppUnlockModel must be called an equal number of times before the model will be
unlocked. There is no harm in calling feAppUnlockModel extra times, or even if feAppLockModel was
never called.
Example:
None
API-802 feAppLockDraw

3.16.6.7 feAppLockDraw

feAppLockDraw
( void )
Description:
Locks the FEMAP session so that redraws of the graphics windows do not occur.
Input:
None
Output:
None
Return Code:
INT4 lock_count The lock count after this call. Will be nonzero if the exit was locked.
Remarks/Usage:
This method locks the session so that redraws will not occur - even if you explicitly call API functions
that cause redraws. Calling this function can improve the performance of other API functions since the
on-screen graphics do not need to be updated, however when you are done with your processing, you
must call feAppUnlockDraw, and then call feViewRedraw or feViewRegenerate.
Example:
None
feAppUnlockDraw API-803

3.16.6.8 feAppUnlockDraw

feAppUnlockDraw
( void )
Description:
Unlocks the FEMAP session so that redraws can occur in the graphics window.
Input:
None
Output:
None
Return Code:
The number of locks remaining after this call. Will be 0 if the session
INT4 lock_count
was actually unlocked.
Remarks/Usage:
This method unlocks drawing, after a call to feAppLockDraw, so that redraws can again be done. Actu-
ally, feAppLockDraw increases a lock count, so if it has been called multiple times, then feAppUnlock-
Draw must be called an equal number of times before drawing will be unlocked. There is no harm in
calling feAppUnlockDraw extra times, or even if feAppLockDraw was never called.
Example:
None
API-804 feAppStatusRedraw

3.16.7 Status Bar


The methods described here allow you to control the functionality of the Status Bar. In addition to
these functions, you can set the visibility of the status bar using Section 3.16.2.4, "feAppManageS-
tatusBar".
It's important to use the Status Bar sparingly. While frequent updates may provide the user more
feedback with regards to the status of your process, too frequent updates may have an adverse
impact on the performance of your API program.
3.16.7.1 feAppStatusRedraw

feAppStatusRedraw
( void )
Description:
Redraws the Status bar.
Input:
None
Output:
None
Return Code:
None
Remarks/Usage:
Simply redraws the Status bar to reflect any changes that have taken place - for example creation or
deletion of nodes or elements.
Example:
None
feAppStatusShow API-805

3.16.7.2 feAppStatusShow

feAppStatusShow
( enable, max_status )
Description:
Enables or disables the status tracker inside the Status bar.
Input:
Set to True to enable/show the status tracker. Set to False to remove
BOOL enable
it.
The value that you will use as 100% complete when sending feApp-
INT4 max_status
StatusUpdate commands.
Output:
None
Return Code:
None
Remarks/Usage:
You must call feAppStatusShow( False, ...) after you are done with the status tracker to remove it from
the display.
Example:
None
API-806 feAppStatusUpdate

3.16.7.3 feAppStatusUpdate

feAppStatusUpdate
( current_status )
Description:
Updates the status tracker to the specified level of completeness.
Input:
The current completion value. This should be a number that is
between 0, and the value you specified as max_status in the feApp-
INT4 current_status
StatusShow method. When you specify current_status=max_status,
the status tracker will be drawn as fully complete.
Output:
None
Return Code:
None
Remarks/Usage:
Although it is normal to send increasing values of current_status, starting at 0, and proceeding toward
max_status, there is no requirement to do so. current_status values can be sent in any order.
Example:
None
feAppMessage API-807

3.16.8 Message Window


The methods described here allow you to access functionality of the Message Window. In addition
to these methods, you can control the visibility of the Message window using feAppManage-
Panes on page 754.
3.16.8.1 feAppMessage

feAppMessage
( color, message )
Description:
Writes a message to the Messages and Lists window.
Input:
The color/status of the message to write: 0=Normal, 1=Highlight,
INT4 color
2=Warning, 3=Error.
STRING message The text of the message to write. Must be less than 160 characters.
Output:
None
Return Code:
None
Remarks/Usage:
This message is only written to the Message Window, regardless of the location (or locations) that is
currently specified in the listing destination.
Example:
None
API-808 feAppMessageStartListing

3.16.8.2 feAppMessageStartListing

feAppMessageStartListing
()
Description:
Begins a listing to the active listing destinations
Input:
None
Output:
None
Return Code:
FE_FAIL Unable to begin listing - no need to call feAppMessageEndListing()
Remarks/Usage:
Calling this function initializes Listing Mode in the Message window. This means that text will appear
in the Listing font - typically fixed pitch. It also means that the text will be written to whatever destina-
tions are selected - Message Window, File and/or Printer. Finally it means that text written to the Mes-
sage Window will not appear until you call feAppMessageEndListing(). Between these two calls
redrawing of the Message Window is disabled to improve the speed of writing large blocks of text.

NOTE: You MUST call feAppMessageEndListing() after your last call to feAppMessage(), so that
the Message Window display is turned back on. If you are using the Printer as a destination, all
text that is written between your call to feAppMessageStartListing() and feAppMessageEndList-
ing() is sent to the printer as a single job when you call feAppMessageEndListing().
Example:
This example writes all nodal coordinates in a listing.
Sub Main
Dim App As femap.model
Set App = feFemap()
Dim n As femap.Node
Set n = App.feNode

App.feAppMessageStartListing()
App.feAppMessage( FCM_NORMAL, "Nodal Coordinates" )
While n.Next()
App.feAppMessage( FCM_NORMAL, Str$(n.ID) + " xyz=" + _
Str$(n.x) + " " + Str$(n.y) + " " + Str$(n.z) )
Wend

App.feAppMessageEndListing()
End Sub
feAppMessageEndListing API-809

3.16.8.3 feAppMessageEndListing

feAppMessageEndListing
()
Description:
Ends a listing that was started by feAppMessageStartListing
Input:
None
Output:
None
Return Code:
None
Remarks/Usage:
NOTE: You MUST call feAppMessageEndListing() after your last call to feAppMessage(), so that
the Message Window display is turned back on. If you are using the Printer as a destination, all
text that is written between your call to feAppMessageStartListing() and feAppMessageEndList-
ing() is sent to the printer as a single job when you call feAppMessageEndListing().
Example:
API-810 feAppMessageClear

3.16.8.4 feAppMessageClear

feAppMessageClear
( void )
Description:
Removes all items currently in the Messages and Lists window.
Input:
None
Output:
None
Return Code:
None
Remarks/Usage:

Example:
None
feFormatReal API-811

3.16.9 Real Number Text Formatting


The methods described here allow you to access functionality used in FEMAP to format real num-
bers as text.
3.16.9.1 feFormatReal

feFormatReal
( dValue, nWidth, nSigFig, nFormat, strValue )
Description:
Formats a real number into a text string using the options used internally by FEMAP
Input:
REAL8 dValue The real value to format
INT4 nWidth The overall width of the text string to produce
The number of significant figures to attempt to format. Must be able
INT4 nSigFig
to fit within the specified width
The formatting method to use 0=Normal, 1=Force Exponential,
INT4 nFormat
2=Nastran
Output:
CHAR strValue The text string containing the formatted real number
Return Code:
None
Remarks/Usage:
None
Example:
None
API-812 feTruncateReal

3.16.9.2 feTruncateReal

feTruncateReal
( dValue, nWidth, nSigFig, nFormat, truncValue )
Description:
Truncates a real number to the precision of a formatted text string.
Input:
REAL8 dValue The real value to format
INT4 nWidth The overall width of the text string to produce
The number of significant figures to attempt to format. Must be able
INT4 nSigFig
to fit within the specified width
The formatting method to use 0=Normal, 1=Force Exponential,
INT4 nFormat
2=Nastran
Output:
REAL8 truncValue The precision truncated version of the formatted real number
Return Code:
None
Remarks/Usage:
This is the same as calling feFormatReal() and then parsing the resulting text string into a new real vari-
able.
Example:
None
feLicenseExpiration API-813

3.16.10 Other Utilities


The methods described here allow you to access other functionality.
3.16.10.1 feLicenseExpiration

feLicenseExpiration
( nDays )
Description:
Returns the number of days until your current license expires
Input:
None
Output:
INT4 nDays The number of days until the license expires
Return Code:
None
Remarks/Usage:
nDays is returned as -1 for perpetual licenses.
Example:
None
API-814 feLicenseMethod

3.16.10.2 feLicenseMethod

feLicenseMethod
( nLicenseType )
Description:
Returns the method of licensing currently being used
Input:
None
Output:
The type of licensing currently being used
0 = None, this means that licensing has somehow failed
1 = Dongle
INT4 nLicenseType
2 = Node/Curve limited Demo
4 = FLEXlm-based Network Licensing
5 = API-only Licensing
Return Code:
FE_FAIL Licensing information is not valid
Licensing method is valid, but currently exceeding some limitation
FE_SECURITY
on the license (like a node limit)
Remarks/Usage:
None
Example:
None
feLicenseIsAvailable API-815

3.16.10.3 feLicenseIsAvailable

feLicenseIsAvailable
( nFeature )
Description:
Indicates whether a specific feature is licensed with this copy of FEMAP
Input:
The feature to check licensing status.
0 = NX Nastran Basic
1 = NX Nastran Nonlinear
2 = NX Nastran Dynamics
3 = NX Nastran DMAP
4 = NX Nastran Superelements
5 = NX Nastran Aero Basic
INT4 nFeature 7 = NX Nastran Optimization
8 = NX Nastran Advanced Nonlinear
10 = NX Nastran RotorDynamics
11 = NX Nastran Advanced Nonlinear Explicit
15 = FEMAP Thermal
16 = FEMAP Advanced Thermal
17 = FEMAP Flow
18 = FEMAP Structural Analysis Toolkit
Output:
None
Return Code:
FE_FAIL Feature is not licensed
Remarks/Usage:
None
Example:
None
API-816 feRunCommand

3.16.10.4 feRunCommand

feRunCommand
( nCmdID, bWaitForCompletion )
Description:
Runs a FEMAP command
Input:
INT4 nCmdID The ID of the command to run
If True, this method only returns when the command is finished. If
BOOL bWaitForCompletion
False, it returns immediately.
Output:
None
Return Code:
None
Remarks/Usage:
Command IDs can be found by calling various functions defined earlier in this section, like feGetMenu-
Command( ). This method provides no means for automatically answering dialog boxes that are dis-
played by the selected command - the command is run interactively.
Example:
None
feAppVersion API-817

3.16.10.5 feAppVersion

feAppVersion
( void )
Description:
Returns the version of FEMAP
Input:
None
Output:
None
Return Code:
The version of FEMAP specified as an integer. This is 100 times the
INT4 version version number. For Example, v9.3.1 will return 931, v10.0 will
return 1000.
Remarks/Usage:
None
Example:
None
API-818

3.17 User Graphics Methods


User Graphics Methods include the following topics:
Section 3.17.1, "Managing User Graphics Data"
Section 3.17.2, "Displaying User Graphics Data"
API-819

3.17.1 Managing User Graphics Data


User Graphics data allows you to create additional points, lines, arrows, and polygons (triangles
and quads) that can be displayed with your model. User Graphics data has no interaction with your
other model data, it is simply used for display.
Just like many other types of data in FEMAP (loads, constraints...), User Graphics data is stored in
sets. You can create as many different sets of data in you model as you want (with the normal ID
limits). Simply creating the data however does not make it visible in your graphics windows.
Graphics Data only becomes visible when its set is selected, and only one set can be selected at a
time. This gives you the flexibility of creating many different graphical objects, each in its own
set, and then quickly switching between them by selecting the appropriate set.
User Graphics data can be managed either through these methods, or using the various User
Graphics Entity objects. These methods provide a bit simpler interface, the entity objects provide
more overall capability.
The following methods allow you to define and manage your graphics data. Selecting the data for
display is described in the next section.
API-820 feGFXLoad

3.17.1.1 feGFXLoad

feGFXLoad
( nSetID, nxyz, xyz, npoly, poly, color, edgecolor, symbol )
Description:
Creates User Graphics Data containing points, lines, triangles and/or quads
Input:
INT4 nSetID The User Graphics Set to create
INT4 nxyz The number of locations specified in the coordinate table (xyz)
REAL8 xyz[0..(3*nxyz)-1] The coordinates used to define the endpoints/corners of the graphics
data. This data is referenced by the entries in poly. All values must
be in global rectangular coordinates.
INT4 npoly The number of entries in the poly array
INT4 poly[0..(4*npoly)-1] This array contains 4 entries for each graphics entity to be created.
The values must be the index in the xyz array of the coordinates
for that endpoint/corner. For points, only the first of the four entries
is used. For lines, the first two are used. For triangles, the first three
are used. ALL UNUSED ENTRIES MUST BE SET TO -1 (that is
what indicates which shape you are describing). The array must con-
tain data in the following order (Entity1Corner1, Entity1Corner2,
Entity1Corner3, Entity1Corner4, Entity2Corner1,
Entity2Corner2...). Note that the first coordinate in the xyz array is
index 0, not 1.
INT4 color The color of the entities created. For triangles and quads this is the
fillcolor
INT4 edgecolor Only used for triangles and quads. The color of the edges.
INT4 symbol Only used for points. The symbol to be displayed for points.
Output:
None
Return Code:
FE_FAIL Unable to allocate memory or access the data provided.
FE_BAD_DATA One of the indices in poly is out of the range provided in xyz
Remarks/Usage:
None
Example:
feGFXLoad API-821

feGFXLoad
( nSetID, nxyz, xyz, npoly, poly, color, edgecolor, symbol )
Sub Main
Dim App As femap.model
Set App = GetObject(,"femap.model")
Dim xyz(2,10000) As Double
Dim poly(3,10000) As Long

Dim n As femap.Node
Set n = App.feNode
Dim e As femap.Elem
Set e = App.feElem

' Grab the nodal coordinates, but offset by 1 in the Z direction
While (n.Next())
xyz(0,n.ID) = n.x
xyz(1,n.ID) = n.y
xyz(2,n.ID) = n.z + 1.0
Wend

' Build a line/tri/quad for each element we find
nPoly = 0
While (e.Next())
Select Case e.topology
Case FTO_LINE2
poly(0,nPoly) = e.Node(0)
poly(1,nPoly) = e.Node(1)
poly(2,nPoly) = -1
poly(3,nPoly) = -1
Case FTO_TRIA3
poly(0,nPoly) = e.Node(0)
poly(1,nPoly) = e.Node(1)
poly(2,nPoly) = e.Node(2)
poly(3,nPoly) = -1
Case FTO_QUAD4
poly(0,nPoly) = e.Node(0)
poly(1,nPoly) = e.Node(1)
poly(2,nPoly) = e.Node(2)
poly(3,nPoly) = e.Node(3)
End Select
nPoly = nPoly + 1
Wend
' Load the graphics data
rc = App.feGFXLoad( 1, 10000, xyz, nPoly, poly, FCL_RED,
FCL_ORANGE, GPS_DIAMOND )
' Select and draw the graphics data
rc = App.feGFXSelect( 1, True, True )
End Sub
API-822 feGFXDelete

3.17.1.2 feGFXDelete

feGFXDelete
( bAllSets, nSetID )
Description:
Deletes all User Graphics entities (points, lines, arrows, triangles and quads) in one or more sets
Input:
If True, all entities, in all sets are deleted. If False, then all entities in
BOOL bAllSets
Set nSetID are deleted
INT4 nSetID The setID to delete if bAllSets=False
Output:
None
Return Code:
FE_FAIL Unable to delete entities
Remarks/Usage:
Calling this method deletes the User Graphics data from your model, however if User Graphics were
selected for display, they will continue to be displayed even after calling this method (even though the
underlying data has been deleted). You must call "feGFXReset" (Section 3.17.2.3) to remove the graph-
ics from the display.
Example:
None
feGFXSelect API-823

3.17.2 Displaying User Graphics Data


Once User Graphics data has been created, either using "feGFXLoad" (Section 3.17.1.1) or using
the User Graphics Entity objects, it can be selected for display.
3.17.2.1 feGFXSelect

feGFXSelect
( nSetID, bEnableAll, bRedraw )
Description:
Selects a predefined set of User Graphics entities for display.
Input:
INT4 nSetID The setID to be selected for display
If True, then display of User Graphics will be enabled for all active
BOOL bEnableAll views. If False, you must subsequently call "feGFXEnableView"
(Section 3.17.2.2) to enable display for the views you want.
Once selected User Graphics will only be displayed after a Redraw.
BOOL bRedraw If True, this forces an immediate redraw. Otherwise you will have to
redraw later to see your graphics.
Output:
None
Return Code:
FE_FAIL Unable to load selected set.
Remarks/Usage:
None
Example:
None
API-824 feGFXEnableView

3.17.2.2 feGFXEnableView

feGFXEnableView
( bEnableAll, nVuID )
Description:
Enables display of User Graphics in one or more selected views.
Input:
If True, then display of User Graphics will be enabled for all active
BOOL bEnableAll
views. If False, only the view specified by nVuID will be enabled.
INT4 nVuID The ID of the View to enable. Only used if bEnableAll=False
Output:
None
Return Code:
FE_FAIL Unable to load selected set.
Remarks/Usage:
This method is only needed if you only want to enable display of User Graphics in certain views. To dis-
play in every view, simply specify bEnableAll=True when you call "feGFXSelect" (Section 3.17.2.1) to
select the data to display.
Example:
None
feGFXReset API-825

3.17.2.3 feGFXReset

feGFXReset
( void )
Description:
Disables display of User Graphics in all views.
Input:
None
Output:
None
Return Code:
FE_FAIL User Graphics not reset.
Remarks/Usage:
This method resets the display of User Graphics. It does not delete the data from your model. You must
call "feGFXDelete" (Section 3.17.1.2) or one of the User Graphics Entity delete methods to delete the
data. After calling this method, you can redisplay the data by calling "feGFXSelect" (Section 3.17.2.1).
Example:
None
API-826 feGFXReset
API-827

3.18 File Utility Methods


File Utility Methods include:
Section 3.18.1, "feFileGetName"
Section 3.18.2, "feFileExecute"
Section 3.18.3, "feFileProgramRun"
Section 3.18.4, "feFileProgramRunning"
Section 3.18.5, "feFileCurrentDirectory"
API-828 feFileGetName

3.18.1 feFileGetName

feFileGetName
( title, filterName, filterStr, openForRead, fName )
Description:
Allows you to display a dialog box to retrieve a filename.
Input:
STRING title A text string to be displayed as the title of the dialog box.
STRING filterName A text string describing the type of files that you will be looking for.
A text string used to limit the types of files displayed. This should be
STRING filterStr of the form *.XXX to display all files with an XXX file extension.
Use *.* to display all files.
BOOL openForRead If True, the name of an existing file must be selected.
Output:
STRING fName The name of the file chosen by the user.
Return Code:
None
Remarks/Usage:
None
Example:
Sub Main
Dim App As femap.model
Set App = GetObject(, "femap.model")

Dim rc As Long
Dim fName As String

rc = App.feFileGetName("Open Neutral File", "Neutral Files", _
"*.NEU", True, fName)

MsgBox(fName) ' Show filename in dialog box
End Sub
feFileExecute API-829

3.18.2 feFileExecute

feFileExecute
( cmdLine, waitForCompletion )
Description:
Allows you to run a program or other object as a separate process.
Input:
STRING cmdLine The full command line used to launch the program.
If True, this method will wait until the other process completes
BOOL waitForCompletion
before returning. If False, it will return as soon as the process starts.
Output:
None
Return Code:
None
Remarks/Usage:
None
Example:
None
API-830 feFileProgramRun

3.18.3 feFileProgramRun

feFileProgramRun
( useDlg, init, isFile, buff )
Description:
This function selects and runs a program file.
Input:
BOOL useDlg If True, this function runs interactively and displays a dialog box to
ask the user to define the filename of the program file to run.
BOOL init If True, any previously running program file is terminated and other
variables are reinitialized. In most cases, this should be True.
BOOL isFile If True, the buff variable must contain the full name of the program
file to run. If False, buff contains the actual text of the program file.
Ignored if useDlg=True.
STRING buff Either the name or the contents of the program file to run (depends
on the isFile parameter).
Output:
None
Return Code:
FE_FAIL The program file could not be run.
Remarks/Usage:
Refer to the Section later in this document on Program Files for more information on the syntax
required. When you call this function, the program file is started, however the function returns immedi-
ately, it can not wait for the program file to complete. Refer to the feFileProgramRunning( ) method, and
the chapter on events for possible methods for determining when a program file finishes.
Example:
None
feFileProgramRunning API-831

3.18.4 feFileProgramRunning

feFileProgramRunning
( void )
Description:
This function can be called to see if a program file is still running.
Input:
None
Output:
None
Return Code:
FE_OK Program file is still running
FE_FAIL No program file is running
Remarks/Usage:
Refer to the Section later in this document on Program Files for more information on the syntax
required. You can call this method, see if the program file is running, and if it is, wait for some period
and then check again, until the program file finishes.
Example:
None
API-832 feFileCurrentDirectory

3.18.5 feFileCurrentDirectory

feFileCurrentDirectory
( sCurrentDir )
Description:
This function sets the current directory for a model
Input:
STRING sCurrentDir The directory to set as current
Output:
None
Return Code:
FE_FAIL The directory specified is not valid
Remarks/Usage:
None
Example:
None
API-833

3.19 Set Utility Methods


Set Utility Methods include:
Section 3.19.1, "feSetFree"
Section 3.19.2, "feSetFreeNotInSet"
API-834 feSetFree

3.19.1 feSetFree

feSetFree
( setID )
Description:
Deletes a saved Femap Set.
Input:
INT4 setID ID of saved Set you wish to delete.
Output:
None
Return Code:
None
Remarks/Usage:
None
Example:
None
feSetFreeNotInSet API-835

3.19.2 feSetFreeNotInSet

feSetFreeNotInSet
( setID )
Description:
Deletes all saved sets not in the input set.
Input:
ID of Set that contains IDS to not delete. Set to 0 to delete all saved
INT4 setID
Sets.
Output:
None
Return Code:
FE_OK Sets were deleted.
Remarks/Usage:
None
Example:
Sub Main
Dim App As femap.model
Set App = feFemap()
Dim cs As femap.Set
Set cs = App.feSet

' Delete all saved sets except 1


cs.Add( 1 )

rc = App.feSetFreeNotInSet( cs.ID )
End Sub
API-836 feSetFreeNotInSet
API-837

4. FEMAP Tool Objects

In addition to the various methods and properties that are available directly from the main FEMAP
application object, and the entity objects described later, FEMAP also provides other objects that
provide access to other functionality and tools. Some of these objects allow access to the various
windows availabile in the user interface, others provide entity selection, and general data and file
functionality that might not be available from the environment where you are programming.
Creating an Object
To link your application to FEMAP, you had to declare an object and then connect it to FEMAP. In
Basic, this is done via the GetObject or CreateObject functions. Accessing these additional
FEMAP objects is similar. First you must declare an object. Then, however, instead of using the
standard system level functions, you use one of the following FEMAP functions to actually create
the object. Once the object has been created, all of the properties and methods for that type of
object are available for use.
All of the following methods are available from the FEMAP application object, and return the
object that they create.

DataTable Objects
Method Description Other Methods
feDataTable (Section 4.1, "DataTable Creates a DataTable Object
Object")

Element Quality Objects


Method Description Other Methods
feElementQuality (Section 4.2, "Element Creates an Element Quality
Quality Objects") Object

Geometry Preparation and Meshing Objects


Method Description Other Methods
feMesher (Section 4.3, "Geometry Prepara- Creates a Geometry Prepa-
tion and Meshing Objects") ration and Meshing Object

ReadFile Objects
Method Description Other Methods
feRead (Section 4.4, "ReadFile Objects") Creates a ReadFile Object
API-838

Selector Object
Method Description Other Methods
feSelector (Section 4.5, "Selector Object") Creates a Selector Object

Set Object
Method Description Other Methods
feSet (Section 4.6, "Set Objects") Creates a Set Object Group.List

Sort Object
Method Description Other Methods
feSort (Section 4.7, "Sort Objects") Creates a Sort Object

UserData Object
Method Description Other Methods
feUserData (Section 4.8, "UserData Objects") Creates a UserData Object

Results Browsing Object


Method Description Other Methods
feResults (Section 4.9, "Results Browsing Creates a Results Browsing
Object") Object

MapData Object
Method Description Other Methods
feMapData (Section 4.10, "MapData Creates a MapData Object
Objects")

Entity Tracking Object


Method Description Other Methods
feTrackData (Section 4.11, "Entity Tracking Creates a Entity Tracking
Object") Object
API-839

Beam Calculator Object


Method Description Other Methods
feBeamCalculator (Section 4.12, "Beam Cal- Creates a Beam Calculator
culator Object") Object
API-840

4.1 DataTable Object


The DataTable object provides access to the functionality of the Data Table in your model. It is not
a model entity.
Use the feDataTable method of the FEMAP Application object to access the DataTable object.

4.1.1 DataTable Object Properties

Property Description
INT4 NumberOfRows The number of data rows in the Data Table (Read Only)
INT4 NumberOfColumns The number of columns in the Data Table (Read Only)
The type of entities being shown in the Data Table. For
INT4 Type more information on Entity Types refer to the table in Sec-
tion 3.3.6, "Entity Types".
If True, then row indexes reference the rows as currently
displayed in the table. If False, they reference the rows as
BOOL VisibleRowsOnly
they were added to the table, regardless of which rows are
displayer or their order.
If True, then column indexes reference the columns as cur-
rently displayed in the table. If False, they reference the col-
BOOL VisibleColsOnly
umns as they were added to the table, regardless of which
columns are displayer or their order.
Data table visibility (Read Only). If True, then the Data
Table is currently visible in the FEMAP GUI. If False, then
BOOL Visible the Data Table is not currently visible. Use feAppManage-
Panes application method to change visibility of the Data
Table pane
Data table lock status (Read Only). If True, then the Data
Table is currently locked in the FEMAP GUI. If False, then
BOOL Locked the Data Table is not currently locked. Always returns
TRUE if the Data Table is not visible. Use the Data Table
Lock method to lock and unlock the Data Table.

4.1.2 Specifying Row and Column Indexes


Most methods in the DataTable object require you to specify row and column indexes to locate the
data that you want to manipulate. To make access to that DataTable as flexible as possible for dif-
ferent applications, there are two separate ways to specify those indexes. The choice of these meth-
ods are controlled by the VisibleRowsOnly and VisibleColsOnly properties.
The default for both of these properties is False - which means that both row and column indexes
refer to the order in which the rows and columns were added to the table. For most applications,
this is the way in which you will want to work, since these numbers do not normally change
API-841

(unless you delete rows) - they are not affected by changing sort order, hiding rows or columns,
grouping or any other manipulation of how the table is displayed.
In VisibleRowsOnly/VisibleColsOnly mode (set the property to True), the indexes refer to the vis-
ible row or column in the table. If you hide rows or columns, those columns are no longer accessi-
ble in this mode. If you change column order, or change the sort order of the rows, they are still
available, but the indexes change, since the positions in the display have changed.
In either mode, row and column indexes both start at 0, which is either the first row/column cre-
ated, or the top row/left column in the table.
API-842 FindRow

4.1.3 DataTable Object Row Methods


There following methods are available to access and manipulate Data Table rows.
4.1.3.1 FindRow

FindRow
( ModelID, SetID, ID )
Description:
This method returns the index of the row that matches your search criteria.
Input:
The ID of the Model to match. ( 0 = Any Model ). This is only neces-
INT4 ModelID
sary if you want to load data from multiple models in the same table.
The SetID of the entity to match ( 0 = Any SetID ). This is not neces-
INT4 SetID sary for most model entities (like nodes, elements, properties...)
which all have SetID = 1
INT4 ID The ID of the entity to match ( 0 = Any ID )
Output:
None
Return Code:
The index of the row in the Data Table that matches your criteria. If
rowIndex
no row matches rowIndex will be negative.
Remarks/Usage:
This function can be used if you do not want to keep track of row indices. Because it returns the row
index as the Return Code, this method can be used directly in other calls as shown in the example. It will
always return the appropriate matching index, regardless of the setting of VisibleRowsOnly.
Example:
This example hides the row that contains the entity with ID = 3
Sub Main
Dim App As femap.model
Set App = GetObject(,"femap.model")

Dim r As femap.DataTable
Set r = App.feDataTable

r.SetRowVisible( r.FindRow(0,0,3), False )

End Sub
GetRowInfo API-843

4.1.3.2 GetRowInfo

GetRowInfo
( numRows, ModelID, SetID, ID )
Description:
Returns information about all the rows in the table.
Input:
None
Output:
INT4 numRows The number of entries in the ModelID, SetID and ID arrays
INT4 ModelID[0..numRows-1] The ID of the Model associated with the entity in each row.
INT4 SetID[0..numRows-1] The SetID of the entity in the row
INT4 ID[0..numRows-1] The ID of the entity in the row.
Return Code:
FE_NOT_AVAILABLE The Data Table is not currently displayed.
FE_NOT_EXIST The Data Table does not contain any data.
FE_NO_MEMORY Can not allocate memory to retrieve info from the Data Table
Remarks/Usage:
This method can be used to retrieve arrays that indicate all of the entities in the Data Table. If Visi-
bleRowsOnly is True, only information about visible rows is returned.
Example:
API-844 GetRowVisible

4.1.3.3 GetRowVisible

GetRowVisible
( nRow, bVisible )
Description:
Returns the visibility of a row in the table.
Input:
INT4 nRow The index of the row to query
Output:
BOOL bVisible True if the row is visible, False if hidden
Return Code:
FE_NOT_AVAILABLE The Data Table is not currently displayed.
FE_NOT_EXIST The specified row does not exist
Remarks/Usage:
None
Example:
None
SetRowVisible API-845

4.1.3.4 SetRowVisible

SetRowVisible
( nRowOrAll, bVisible )
Description:
Sets one or all rows visible or hidden
Input:
INT4 nRowOrAll The index of the row to update (-1=All Rows)
BOOL bVisible True to make the row(s) visible, or False to hide them.
Output:
None
Return Code:
FE_NOT_AVAILABLE The Data Table is not currently displayed.
FE_NOT_EXIST The specified row does not exist
Remarks/Usage:
None
Example:
None
API-846 FindColumn

4.1.4 DataTable Object Column Methods


There following methods are available to access and manipulate Data Table columns.
4.1.4.1 FindColumn

FindColumn
( colTitle )
Description:
This method returns the index of the column that matches your search criteria.
Input:
STRING colTitle The title of the column to locate
Output:
None
Return Code:
The index of the column in the Data Table that matches your criteria.
colIndex
If no column matches colIndex will be negative.
Remarks/Usage:
This function can be used if you do not want to keep track of column indices. Because it returns the col-
umn index as the Return Code, this method can be used directly in other calls as shown in the example.
It will always return the appropriate matching index, regardless of the setting of VisibleColsOnly.
Example:
This example hides the column that contains the title "Topology"
Sub Main
Dim App As femap.model
Set App = GetObject(,"femap.model")

Dim r As femap.DataTable
Set r = App.feDataTable

r.SetColumnVisible( r.FindColumn("Topology", False )

End Sub
GetColumnInfo API-847

4.1.4.2 GetColumnInfo

GetColumnInfo
( numColumns, colType, colTitle )
Description:
Returns information about all the columns in the table.
Input:
None
Output:
INT4 numColumns The number of entries in the colType and colTitle arrays
INT4 colType[0..numColumns-
A value indicating the type of data in the column.
1]
STRING colTitle[0..numCol-
The titles of the columns
umns-1]
Return Code:
FE_NOT_AVAILABLE The Data Table is not currently displayed.
FE_NOT_EXIST The Data Table does not contain any data.
FE_NO_MEMORY Can not allocate memory to retrieve info from the Data Table
Remarks/Usage:
This method can be used to retrieve arrays that indicate all of the entities in the Data Table. If Visible-
ColsOnly is True, only information about visible columns is returned.
Example:
API-848 GetColumnVisible

4.1.4.3 GetColumnVisible

GetColumnVisible
( nColumn, bVisible )
Description:
Returns the visibility of a column in the table.
Input:
INT4 nColumn The index of the column to query.
Output:
BOOL bVisible True if the column is visible, False if hidden
Return Code:
FE_NOT_AVAILABLE The Data Table is not currently displayed.
FE_NOT_EXIST The specified column does not exist
Remarks/Usage:
None
Example:
None
SetColumnVisible API-849

4.1.4.4 SetColumnVisible

SetColumnVisible
( nColumnOrAll, bVisible )
Description:
Sets one or all columns visible or hidden
Input:
INT4 nColumnOrAll The index of the column to update (-1=All Columns)
BOOL bVisible True to make the column(s) visible, or False to hide them.
Output:
None
Return Code:
FE_NOT_AVAILABLE The Data Table is not currently displayed.
FE_NOT_EXIST The specified column does not exist
Remarks/Usage:
None
Example:
None
API-850 GetColumnWidth

4.1.4.5 GetColumnWidth

GetColumnWidth
( nColumn, nWidth )
Description:
Returns the width of a column in the table.
Input:
INT4 nColumn The index of the column to query.
Output:
INT4 nWidth The width of the column in pixels
Return Code:
FE_NOT_AVAILABLE The Data Table is not currently displayed.
FE_NOT_EXIST The specified column does not exist
Remarks/Usage:
None
Example:
None
SetColumnWidth API-851

4.1.4.6 SetColumnWidth

SetColumnWidth
( nColumnOrAll, nWidth )
Description:
Sets the width of one or all columns
Input:
INT4 nColumnOrAll The index of the column to update (-1=All Columns)
INT4 nWidth The width of the columns in pixels
Output:
None
Return Code:
FE_NOT_AVAILABLE The Data Table is not currently displayed.
FE_NOT_EXIST The specified column does not exist
Remarks/Usage:
None
Example:
None
API-852 GetColumnTitle

4.1.4.7 GetColumnTitle

GetColumnTitle
( nColumn, colTitle )
Description:
Returns the title of a column in the table.
Input:
INT4 nColumn The index of the column to query.
Output:
STRING colTitle The title of the column
Return Code:
FE_NOT_AVAILABLE The Data Table is not currently displayed.
FE_NOT_EXIST The specified column does not exist
Remarks/Usage:
None
Example:
None
SetColumnTitle API-853

4.1.4.8 SetColumnTitle

SetColumnTitle
( nColumn, colTitle )
Description:
Sets the title for a column
Input:
INT4 nColumn The index of the column to update
STRING colTitle The title of the column
Output:
None
Return Code:
FE_NOT_AVAILABLE The Data Table is not currently displayed.
FE_NOT_EXIST The specified column does not exist
Remarks/Usage:
None
Example:
None
API-854 SetColumnPosition

4.1.4.9 SetColumnPosition

SetColumnPosition
( nColumn, nNewIndex, bAfter )
Description:
Moves the display location of a column in the Data Table
Input:
INT4 nColumn The index of the column to update
The index of the new location in the table. The column is moved to
INT4 nNewIndex
the left of this location.
If True, the nColumn is placed after the nNewIndex column,
BOOL bAfter
otherwise it is placed before that column
Output:
None
Return Code:
FE_NOT_AVAILABLE The Data Table is not currently displayed.
FE_NOT_EXIST The specified column does not exist
FE_FAIL Not able to move column to the requested location
Remarks/Usage:
This method will automatically make the specified column that you are moving visible - even if it is not
currently.
Example:
None
SetColumnAlignment API-855

4.1.4.10 SetColumnAlignment

SetColumnAlignment
( nColumn, nAlign )
Description:
Updates the alignment of data in the selected column(s)
Input:
INT4 nColumnOrAll The index of the column to update ( -1 = All Columns )
INT4 nAlign The data alignment (0=Left, 1=Center, 2=Right)
Output:
None
Return Code:
FE_NOT_AVAILABLE The Data Table is not currently displayed.
FE_NOT_EXIST The specified column does not exist
Remarks/Usage:
None
Example:
None
API-856 GetColumnValue

4.1.5 DataTable Object Data Methods


There following methods are available to access and manipulate Data Table data.
4.1.5.1 GetColumnValue

GetColumnValue
( nColumn, numRowsOrAll, Rows, numData, ColumnData )
Description:
This method returns data from selected rows in a column
Input:
INT4 nColumn The index of a column to query
The number of entries in the Rows array, or -1 to retrieve data from
INT4 numRowsOrAll
all rows
INT4 Rows[0..numRowsOrAll-
The indices of the rows to query
1]
Output:
INT4 numData The number of items returned in ColumnData
The data recovered from Column nColumn and the selected rows.
VARIANT ColumnData Depending on the type of data contained in the column, this could be
an array of booleans, integers, doubles or strings.
Return Code:
FE_NOT_AVAILABLE The Data Table is not currently displayed.
FE_NOT_EXIST The Data Table does not contain any data.
FE_NO_MEMORY Can not allocate memory to retrieve info from the Data Table
The selected column contains a type of data that is not supported by
FE_BAD_TYPE
this method.
Remarks/Usage:
Typically numData will be the same as numRowsOrAll (if numRowsOrAll is not -1), unless some of the
rows you request are invalid. The GetColumnText method is similar, but always returns the data as text
strings.
Example:
( nColumn, numRowsOrAll, Rows, numData, ColumnData ) API-857

GetColumnValue
( nColumn, numRowsOrAll, Rows, numData, ColumnData )
This example retrieves the Property ID from Rows 4, 1, and 0 of the Data table
Sub Main
Dim App As femap.model
Set App = GetObject(,"femap.model")

Dim r As femap.DataTable
Set r = App.feDataTable

Dim ro(3) As Long
ro(0) = 4
ro(1) = 1
ro(2) = 0

Dim n As Long
Dim c As Variant

r.GetColumnValue( r.FindColumn("Prop ID"), 3, ro, n, c )
End Sub
API-858 GetColumnText

4.1.5.2 GetColumnText

GetColumnText
( nColumn, numRowsOrAll, Rows, numData, ColumnText )
Description:
This method returns data from selected rows in a column
Input:
INT4 nColumn The index of a column to query
The number of entries in the Rows array, or -1 to retrieve data from
INT4 numRowsOrAll
all rows
INT4 Rows[0..numRowsOrAll-
The indices of the rows to query
1]
Output:
INT4 numData The number of items returned in ColumnData
The data recovered from Column nColumn and the selected rows.
STRING ColumnText[0..num- This method always retrieves the text that is displayed, rather than
Data-1] numeric values. For columns displaying check boxes, the string
returned is 1 if the box is on, and 0 if it is off.
Return Code:
FE_NOT_AVAILABLE The Data Table is not currently displayed.
FE_NOT_EXIST The Data Table does not contain any data.
FE_NO_MEMORY Can not allocate memory to retrieve info from the Data Table
The selected column contains a type of data that is not supported by
FE_BAD_TYPE
this method.
Remarks/Usage:
This method is identical to GetColumnValue, except that it always returns the data as a text string.
Example:
None
GetRowValues API-859

4.1.5.3 GetRowValues

GetRowValues
( numRowsOrAll, Rows, numData, RowData )
Description:
This method returns data from all columns for selected rows
Input:
The number of entries in the Rows array, or -1 to retrieve data from
INT4 numRowsOrAll
all rows
INT4 Rows[0..numRowsOrAll-
The indices of the rows to query
1]
Output:
INT4 numData The number of Columns returned in RowData
The data recovered from the selected rows for all columns. The data
is returned as an array of Variants, where each variant contains an
VARIANT RowData array of data for the corresponding column. Depending on the type of
data contained in the column, this could be an array of booleans,
integers, doubles or strings.
Return Code:
FE_NOT_AVAILABLE The Data Table is not currently displayed.
FE_NOT_EXIST The Data Table does not contain any data.
FE_NO_MEMORY Can not allocate memory to retrieve info from the Data Table
The selected column contains a type of data that is not supported by
FE_BAD_TYPE
this method.
Remarks/Usage:
The RowData variant that is returned can be accessed as a two-dimensional array, where the first index
represents the column, and the second the row ... RowData(column)(row)
Example:
API-860 ( numRowsOrAll, Rows, numData, RowData )

GetRowValues
( numRowsOrAll, Rows, numData, RowData )
This example retrieves all the data in the table and echoes it to the Message Window
Sub Main
Dim App As femap.model
Set App = GetObject(,"femap.model")

Dim r As femap.DataTable
Set r = App.feDataTable

Dim nd As Long
Dim rd As Variant

r.GetRowValues( -1, rr, nd, rd )

For i=0 To r.NumberOfRows-1
For c = 0 To nd-1
App.feAppMessage( FCM_NORMAL, "Row "+Str$(i)+" Column
"+Str$(c)+" = "+Str$(rd(c)(i)) )
Next c
Next i
End Sub
AddColumn API-861

4.1.5.4 AddColumn

AddColumn
( bClear, bHidden, entityType, entitySetID, colTitle, colType, nRows, ID, Value, nNew-
ColumnID )
Description:
This method creates a new column in the Data Table and adds data to it.
Input:
BOOL bClear If True, all previously existing data in the Data Table is deleted.
BOOL bHidden If True, the column is created hidden, if False, the column is visible.
The type of entities being shown in the Data Table. This needs to be
INT4 entityType the same for all columns. For more information on Entity Types refer
to the table in Section 3.3.6, "Entity Types".
The Set ID associated with these values being added. Can be 0 to
INT4 entitySetID
match any Set ID or use the default for new rows.
STRING colTitle The title for the column - must be unique among all existing columns
The type of column to create (0=Bool/Check Box, 1=Integer,
INT4 colType 2=Real, 3=String). Boolean arrays will create a column that is dis-
played as Check Boxes (checked on if True).
INT4 nRows The number of entries in the ID and Value arrays.
The entity IDs associated with the data in the corresponding location
in Value. If a row with the same ID already exists in the Data
Table, the associated Value is assigned to that row. If no row with
INT4 ID[0..nRows-1]
that ID exists, a new row is created with the current Model ID, the
specified entitySetID, and this ID, and the new row is assigned the
value.
This Variant contains an array with the values to be assigned to the
rows selected by the corresponding entity IDs from ID. Depending
VARIANT Value
on the option you specify in colType, the variant must contain
either a Boolean, Integer, Double or String array.
Output:
The index of the column that was created. This index is always based
on the order the column was created, not the visible location, no mat-
INT4 nNewColumnID
ter how VisibleColsOnly is set. If VisibleColsOnly=False, this num-
ber can be used to access the column.
Return Code:
FE_NOT_AVAILABLE The Data Table is not currently displayed.
FE_SECURITY The Data Table is locked and can not be updated.
API-862 ( bClear, bHidden, entityType, entitySetID, colTitle, colType, nRows, ID, Value,

AddColumn
( bClear, bHidden, entityType, entitySetID, colTitle, colType, nRows, ID, Value, nNew-
ColumnID )
The colTitle is invalid. It is either zero length or matches an existing
FE_INVALID
column.
FE_FAIL Unable to add column.
FE_BAD_TYPE The Value Array has an invalid type
Remarks/Usage:
This method will automatically create Model ID, Set ID and ID columns in the Data Table if they
do not exist - you should never attempt to create these columns yourself.
Example:
( bClear, bHidden, entityType, entitySetID, colTitle, colType, nRows, ID, Value, nNewColumnID )

AddColumn
( bClear, bHidden, entityType, entitySetID, colTitle, colType, nRows, ID, Value, nNew-
ColumnID )
Sub Main
Dim App As femap.model
Set App = GetObject(,"femap.model")

Dim r As femap.DataTable
Set r = App.feDataTable

id = Array( 1, 7, 3, 17 )
i = Array( 45, 833, -23, 124 )
x = Array( 1.2, 4.56, 3.987E-6, -0.0023 )
c = Array( True, False, False, True )
t = Array( "Abc", "Title 1", "++ XX ++", "" )

Dim newi As Long
Dim newc As Long
Dim newx As Long
Dim newt As Long

r.AddColumn( True, False, FT_ELEM, 0, "IntCol", FCT_INT, 4, id,
i, newi )
r.AddColumn( False, False, FT_ELEM, 0,"Check", FCT_BOOL, 4, id,
c, newc )
r.AddColumn( False, False, FT_ELEM, 0,"Column Title ",
FCT_DOUBLE, 4, id, x, newx )
r.AddColumn( False, False, FT_ELEM, 0, "Names", FCT_STRING, 4,
id, t, newt )
End Sub
API-864 UpdateColumnByID

4.1.5.5 UpdateColumnByID

UpdateColumnByID
( nColumn, entitySetID, colType, nRows, ID, Value )
Description:
This method updates a column in the Data Table and adds data to it if selected IDs do not exist. Rows to
update are selected by IDs
Input:
INT4 nColumn Index of the column to update
The Set ID associated with these values being updated. Can be 0 to
INT4 entitySetID
match any Set ID or use the default for new rows.
The type of data being updated (0=Bool/Check Box, 1=Integer,
INT4 colType
2=Real, 3=String).
INT4 nRows The number of entries in the ID and Value arrays.
The entity IDs associated with the data in the corresponding location
in Value. If a row with the same ID already exists in the Data
Table, the associated Value is assigned to that row. If no row with
INT4 ID[0..nRows-1]
that ID exists, a new row is created with the current Model ID, the
specified entitySetID, and this ID, and the new row is assigned the
value.
This Variant contains an array with the values to be assigned to the
rows selected by the corresponding entity IDs from ID. Depending
VARIANT Value
on the option you specify in colType, the variant must contain
either a Boolean, Integer, Double or String array.
Output:
None
Return Code:
FE_NOT_AVAILABLE The Data Table is not currently displayed.
FE_SECURITY The Data Table is locked and can not be updated.
FE_FAIL Unable to update column.
FE_BAD_TYPE The Value Array has an invalid type
Remarks/Usage:
None
Example:
None
UpdateColumn API-865

4.1.5.6 UpdateColumn

UpdateColumn
( nColumn, colType, nRows, Rows, Value )
Description:
This method updates a column in the Data Table. Rows are specified by row indices.
Input:
INT4 nColumn Index of the column to update
The type of data being updated (0=Bool/Check Box, 1=Integer,
INT4 colType
2=Real, 3=String).
INT4 nRows The number of entries in the ID and Value arrays.
INT4 Rows[0..nRows-1] The row indices of the rows to update.
This Variant contains an array with the values to be assigned to the
rows selected by the corresponding indices from Rows. Depending
VARIANT Value
on the option you specify in colType, the variant must contain
either a Boolean, Integer, Double or String array.
Output:
None
Return Code:
FE_NOT_AVAILABLE The Data Table is not currently displayed.
FE_SECURITY The Data Table is locked and can not be updated.
FE_FAIL Unable to update column.
FE_BAD_TYPE The Value Array has an invalid type
Remarks/Usage:
This method is similar to UpdateColumnByID except that it cannot add additional rows to the table.
Example:
None
API-866 AddEntityData

4.1.5.7 AddEntityData

AddEntityData
( bClear, entityType, entitySetID, entityIDSet )
Description:
This method adds entity data to the Data Table
Input:
BOOL bClear If True, all previously existing data in the Data Table is deleted.
The type of entities being added to the Data Table. For more infor-
INT4 entityType mation on Entity Types refer to the table in Section 3.3.6, "Entity
Types".
The Set ID associated with these values being added. Can be 0 to use
INT4 entitySetID
the default Set ID.
The ID of a Set object that contains the IDs of the entities to add. If
INT4 entityIDSet entityIDSet is negative, then just a single entity is added whose id is
the absolute value of entityIDSet
Output:
None
Return Code:
FE_NOT_AVAILABLE The Data Table is not currently displayed.
FE_SECURITY The Data Table is locked and can not be updated.
FE_FAIL Unable to add entities
Remarks/Usage:
None
Example:
The following routine adds all Plate elements to the Data Table...
Sub Main
Dim App As femap.model
Set App = GetObject(,"femap.model")
Dim r As femap.DataTable
Set r = App.feDataTable
Dim s As femap.Set
Set s = App.feSet
s.AddRule( FET_L_PLATE, FGD_ELEM_BYTYPE )
r.AddEntityData( True, FT_ELEM, 0, s.ID )
End Sub
AddOutput API-867

4.1.5.8 AddOutput

AddOutput
( nOutputSet, nOutputVector, nNewColumnID )
Description:
This method adds data from an Output Vector to a column in the Data Table
Input:
INT4 nOutputSet The Output Set that contains the data to add.
INT4 nOutputVector The ID of the Output Vector that contains the data to add.
Output:
INT4 nNewColumnID The column ID of the column that is created.
Return Code:
The Data Table is not currently displayed, or does not contain rows
FE_NOT_AVAILABLE
with Nodes/Elements.
FE_SECURITY The Data Table is locked and can not be updated.
FE_NOT_EXIST The selected Output Set/Output Vector does not exist.
FE_FAIL Unable to add entities
Remarks/Usage:
This method provides a simple way to add analysis results to the data table, however the table must be
preloaded with the nodes/elements where you want to retrieve the results.

Only the specified Output Vector is loaded. There are no options to also include results for other compo-
nents, plys, corners, etc...

The Data Table may contain results from different/multiple models, however it will be loaded with
results from the same Output Set/Output Vector in each respective model - there is no way using this
method to choose different Output Sets for the different models.
Example:
API-868 AddMassProperties

4.1.5.9 AddMassProperties

AddMassProperties
( void )
Description:
Adds mass properties to the existing entities in the table
Input:
None
Output:
None
Return Code:
FE_NOT_AVAILABLE The Data Table is not currently displayed.
FE_SECURITY The Data Table is locked and can not be updated.
FE_BAD_TYPE Invalid entity type or no data in the Data Table
Remarks/Usage:
This method simply calls the Add Mass Properties command from the Data Table toolbar. The Data
Table must contain one or more Curves, Surfaces, Solids, Elements, Properties or Materials.
Example:
None
AddElementChecks API-869

4.1.5.10 AddElementChecks

AddElementChecks
( void )
Description:
Adds Femap element checks to the existing entities in the table
Input:
None
Output:
None
Return Code:
FE_NOT_AVAILABLE The Data Table is not currently displayed.
FE_SECURITY The Data Table is locked and can not be updated.
FE_BAD_TYPE Invalid entity type or no data in the Data Table
Remarks/Usage:
This method simply calls the Add Femap Element Checks command from the Data Table toolbar. The
Data Table must contain one or more Elements.
Example:
None
API-870 AddNastranElementChecks

4.1.5.11 AddNastranElementChecks

AddNastranElementChecks
( void )
Description:
Adds NX Nastran element checks to the existing entities in the table
Input:
None
Output:
None
Return Code:
FE_NOT_AVAILABLE The Data Table is not currently displayed.
FE_SECURITY The Data Table is locked and can not be updated.
FE_BAD_TYPE Invalid entity type or no data in the Data Table
Remarks/Usage:
This method simply calls the Add Nastran Element Checks command from the Data Table toolbar.
The Data Table must contain one or more Elements.
Example:
None
AddMeshAssociativity API-871

4.1.5.12 AddMeshAssociativity

AddMeshAssociativity
( void )
Description:
Adds mesh associativity data to the existing entities in the table
Input:
None
Output:
None
Return Code:
FE_NOT_AVAILABLE The Data Table is not currently displayed.
FE_SECURITY The Data Table is locked and can not be updated.
FE_BAD_TYPE Invalid entity type or no data in the Data Table
Remarks/Usage:
This method simply calls the Add Mesh Associativity command from the Data Table toolbar. The
Data Table must contain one or more Points, Curves, Surfaces or Solids.
Example:
None
API-872 SetTextColor

4.1.5.13 SetTextColor

SetTextColor
( nColumn, numRows, Rows, nRed, nGreen, nBlue )
Description:
Changes the color of the text displayed in one or more rows in a selected column
Input:
INT4 nColumn The index of the column to update
INT4 numRows The number of entries in th Rows array
INT4 Rows[0..numRows-1] The indices of the rows to update
INT4 nRed The Red level (0-255)
INT4 nGreen The Green level (0-255)
INT4 nBlue The Blue level (0-255)
Output:
None
Return Code:
FE_NOT_AVAILABLE The Data Table is not currently displayed.
FE_FAIL Unable to update Data Table
Remarks/Usage:
None
Example:
None
SetBackgroundColor API-873

4.1.5.14 SetBackgroundColor

SetBackgroundColor
( nColumn, numRows, Rows, nRed, nGreen, nBlue )
Description:
Changes the color of the background displayed in one or more rows in a selected column
Input:
INT4 nColumn The index of the column to update
INT4 numRows The number of entries in th Rows array
INT4 Rows[0..numRows-1] The indices of the rows to update
INT4 nRed The Red level (0-255)
INT4 nGreen The Green level (0-255)
INT4 nBlue The Blue level (0-255)
Output:
None
Return Code:
FE_NOT_AVAILABLE The Data Table is not currently displayed.
FE_FAIL Unable to update Data Table
Remarks/Usage:
None
Example:
None
API-874 AddGroup

4.1.6 DataTable Object Grouping Methods


There following methods are available to access and manipulate Data Table grouping.
4.1.6.1 AddGroup

AddGroup
( nColumn, bShowInGroupOnly, bSortAscending )
Description:
This method updates the Data Table to group by a selected column
Input:
INT4 nColumn The index of a column to add to Grouping
If True, the column is removed from being visible in the table, and is
BOOL bShowInGroupOnly only visible in grouping and the group headers. If False, the column
is still used for grouping, but is also visible in the table.
BOOL bSortAscending True=Sort in Ascending order, False=Descending order
Output:
None
Return Code:
FE_NOT_AVAILABLE The Data Table is not currently displayed.
FE_NOT_EXIST The selected column does not exist
Remarks/Usage:
This method can be used multiple times to add additional columns to the grouping order. If a column
was already in the grouping order it is moved to the lowest level. Calling this method will automatically
show the GroupBy header. You can call ShowGroup to hide it, if necessary.
Example:
None
ClearGroup API-875

4.1.6.2 ClearGroup

ClearGroup
( void )
Description:
This method removes any grouping order
Input:
None
Output:
None
Return Code:
FE_NOT_AVAILABLE The Data Table is not currently displayed.
Remarks/Usage:
None
Example:
None
API-876 GetGroup

4.1.6.3 GetGroup

GetGroup
( numColumns, Columns )
Description:
This method retrieves the indices of all columns used for grouping
Input:
None
Output:
INT4 numColumns The number of columns in the grouping order
INT4 Columns[0..numCol-
The indices of the grouping columns
umns-1]
Return Code:
FE_NOT_AVAILABLE The Data Table is not currently displayed.
FE_NOT_EXIST No grouping columns exist
VisibleColsOnly is True. This method is only available when Visi-
FE_BAD_TYPE bleColsOnly is False because grouped/sorted columns do not need to
be visible.
Remarks/Usage:
None
Example:
None
ShowGroup API-877

4.1.6.4 ShowGroup

ShowGroup
( bVisible )
Description:
This method shows and hides the Group By header
Input:
BOOL bVisible True = Show Header, False = Hide Header
Output:
None
Return Code:
FE_NOT_AVAILABLE The Data Table is not currently displayed.
Remarks/Usage:
None
Example:
None
API-878 AddSort

4.1.7 DataTable Object Sorting Methods


There following methods are available to access and manipulate Data Table sorting.
4.1.7.1 AddSort

AddSort
( nColumn, bSortAscending )
Description:
This method updates the Data Table to sort by a selected column
Input:
INT4 nColumn The index of a column to sort by
BOOL bSortAscending True=Sort in Ascending order, False=Descending order
Output:
None
Return Code:
FE_NOT_AVAILABLE The Data Table is not currently displayed.
FE_NOT_EXIST The selected column does not exist
Remarks/Usage:
This method can be used multiple times to add additional columns to the sorting order. If a column was
already in the sorting order it is moved to the lowest level.
Example:
None
ClearSort API-879

4.1.7.2 ClearSort

ClearSort
( void )
Description:
This method removes any sorting order
Input:
None
Output:
None
Return Code:
FE_NOT_AVAILABLE The Data Table is not currently displayed.
Remarks/Usage:
None
Example:
None
API-880 GetSort

4.1.7.3 GetSort

GetSort
( numColumns, Columns )
Description:
This method retrieves the indices of all columns used for sorting
Input:
None
Output:
INT4 numColumns The number of columns in the sorting order
INT4 Columns[0..numCol-
The indices of the sorting columns
umns-1]
Return Code:
FE_NOT_AVAILABLE The Data Table is not currently displayed.
FE_NOT_EXIST No sorting columns exist
VisibleColsOnly is True. This method is only available when Visi-
FE_BAD_TYPE bleColsOnly is False because grouped/sorted columns do not need to
be visible.
Remarks/Usage:
None
Example:
None
AddSelection API-881

4.1.8 DataTable Object Selection Methods


There following methods are available to access and manipulate Data Table selection.
4.1.8.1 AddSelection

AddSelection
( numRows, Rows, bSelect )
Description:
This method updates the Data Table to select/deselect one or more rows
Input:
INT4 numRows The number of entries in the Rows array
INT4 Rows[0..numRows-1] The indices of the rows to select/deselect
BOOL bSelect True = Select, False = Deselect Rows
Output:
None
Return Code:
FE_NOT_AVAILABLE The Data Table is not currently displayed.
Remarks/Usage:
This method can be used multiple times to add additional rows to the selection.
Example:
None
API-882 ClearSelection

4.1.8.2 ClearSelection

ClearSelection
( void )
Description:
This method removes selection from all rows
Input:
None
Output:
None
Return Code:
FE_NOT_AVAILABLE The Data Table is not currently displayed.
Remarks/Usage:
None
Example:
None
GetSelection API-883

4.1.8.3 GetSelection

GetSelection
( numRows, Rows )
Description:
This method retrieves the indices of all rows that are selected
Input:
None
Output:
INT4 numRows The number of rows in the selection
INT4 Rows[0..numRows-1] The indices of the selected rows
Return Code:
FE_NOT_AVAILABLE The Data Table is not currently displayed.
Remarks/Usage:
None
Example:
None
API-884 Lock

4.1.9 DataTable Object Other Methods


There following methods are available to provide access to other functionality in the Data Table.
4.1.9.1 Lock

Lock
( bLock )
Description:
This method Locks or Unlocks the Data Table to allow it to be updated
Input:
BOOL bLock True = Lock, False = Unlock the Data Table
Output:
None
Return Code:
FE_NOT_AVAILABLE The Data Table is not currently displayed.
Remarks/Usage:
None
Example:
None
Copy API-885

4.1.9.2 Copy

Copy
( bCopyAll )
Description:
This method copies the contents of the Data Table to the clipboard
Input:
True = Copy entire Data Table, False = Copy only selected rows (and
BOOL bCopyAll
header)
Output:
None
Return Code:
FE_NOT_AVAILABLE The Data Table is not currently displayed.
Remarks/Usage:
None
Example:
None
API-886 Save

4.1.9.3 Save

Save
( bCopyAll, fName, nFormat )
Description:
This method copies the contents of the Data Table to a file.
Input:
True = Copy entire Data Table, False = Copy only selected rows (and
BOOL bCopyAll
header)
STRING fName The name of the file that you want to create
The format that you want to use when creating the file (0=Tab
INT4 nFormat Delimitted Text, 1=Comma-Separated Text, 2=Rich Text Format -
RTF)
Output:
None
Return Code:
FE_NOT_AVAILABLE The Data Table is not currently displayed.
Remarks/Usage:
None
Example:
None
Clear API-887

4.1.9.4 Clear

Clear
( void )
Description:
This method clears the contents of the Data Table
Input:
None
Output:
None
Return Code:
FE_NOT_AVAILABLE The Data Table is not currently displayed.
FE_SECURITY The Data Table is locked and can not be updated.
Remarks/Usage:
None
Example:
None
API-888 DeleteRows

4.1.9.5 DeleteRows

DeleteRows
( numRows, Rows )
Description:
This method deletes specified rows from the Data Table
Input:
INT4 numRows The number of entries in the Rows array
INT4 Rows[0..numRows-1] The indices of the rows to delete
Output:
None
Return Code:
FE_NOT_AVAILABLE The Data Table is not currently displayed.
FE_SECURITY The Data Table is locked and can not be updated.
Remarks/Usage:
None
Example:
None
Show API-889

4.1.9.6 Show

Show
( bShowAll )
Description:
This method shows (draws) the specified contents of the Data Table
Input:
BOOL bShowAll True = Show all visible Rows, False = Show only selected rows
Output:
None
Return Code:
FE_NOT_AVAILABLE The Data Table is not currently displayed.
Remarks/Usage:
None
Example:
None
API-890 Print

4.1.9.7 Print

Print
( void )
Description:
This method prints the visible contents of the Data Table
Input:
None
Output:
None
Return Code:
FE_NOT_AVAILABLE The Data Table is not currently displayed.
FE_NOT_EXIST There are no rows in the Data Table
Remarks/Usage:
None
Example:
None
( void ) API-891
API-892

4.2 Element Quality Objects


The Element Quality object provides access to the Element Quality checks available in Femap. It
is not a model entity.
Use the feElementQuality method of the FEMAP Application object to access the Element Quality
object.

4.2.1 Element Quality Object Properties

Property Description
Femap Element Checks
BOOL AspectRatioOn If True, the aspect ratio check is performed.
REAL8 AspectRatioLimit Limit for aspect ratio check.
BOOL TaperOn If True, element taper is checked.
REAL8 TaperLimit Limit for taper check.
BOOL AlternateTaperOn If True, the alternate element taper check is performed.
REAL8 AlternateTaperLimit Limit for alternate taper check.
BOOL InternalAngleOn If True, the element internal angle check is performed.
REAL8 InternalAngleLimit Limit for internal angle check.
BOOL SkewOn If True, the element skew check is performed.
REAL8 SkewLimit Limit for skew check.
BOOL WarpingOn If True, the element warping check is performed.
REAL8 WarpingLimit Limit for warping check.
BOOL NastranWarpingOn If True, the Nastran warping check is performed.
REAL8 NastranWarpingLimit Limit for nastran warping check.
BOOL TetCollapseOn If True, tetrahedral elements are checked for collapse.
REAL8 TetCollapseLimit Limit for tet collapse check.
BOOL JacobianOn If True, checks element Jacobian
REAL8 JacobianLimit Limit for Jacobian check.
BOOL CombinedOn If True, checks for combined element distortion factor
REAL8 CombinedLimit Limit for combined check.
BOOL ExplicitTimeStepOn If True, checks for Explicit Time Step factors
REAL8 ExplicitTimeStepLimit Limit for explicit timestep check.
NX Nastran Element Checks
API-893

Property Description
BOOL NastranQuadSkewOn If True, checks element QUAD SKEW
REAL8 NastranQuadSkewLimit Limit for QUAD SKEW check.
BOOL NastranQuadTaperOn If True, checks element QUAD TAPER
REAL8 NastranQuadTaperLimit Limit for QUAD TAPER check.
BOOL NastranQuadWarpOn If True, checks element QUAD WARP
REAL8 NastranQuadWarpLimit Limit for QUAD WARP check.
BOOL NastranQuadIAMinOn If True, checks element QUAD IAMIN
REAL8 NastranQuadIAMinLimit Limit for QUAD IAMIN check.
BOOL NastranQuadIAMaxOn If True, checks element QUAD IAMAX
REAL8 NastranQuadIAMaxLimit Limit for QUAD IAMAX check.
BOOL NastranTriaSkewOn If True, checks element TRIA SKEW
REAL8 NastranTriaSkewLimit Limit for TRIA SKEW check.
BOOL NastranTriaIAMaxOn If True, checks element TRIA IAMAX
REAL8 NastranTriaIAMaxLimit Limit for TRIA IAMAX check.
BOOL NastranTetraAROn If True, checks element TETRA AR
REAL8 NastranTetraARLimit Limit for TETRA AR check.
BOOL NastranTetraEPLROn If True, checks element TETRA EPLR
REAL8 NastranTetraEPLRLimit Limit for TETRA EPLR check.
BOOL NastranTetraDetJOn If True, checks element TETRA DETJ
REAL8 NastranTetraDetJLimit Limit for TETRA DETJ check.
BOOL NastranHexAROn If True, checks element HEX AR
REAL8 NastranHexARLimit Limit for HEX AR check.
BOOL NastranHexEPLROn If True, checks element HEX EPLR
REAL8 NastranHexEPLRLimit Limit for HEX EPLR check.
BOOL NastranHexDetJOn If True, checks element HEX DETJ
REAL8 NastranHexDetJLimit Limit for HEX DETJ check.
BOOL NastranHexWarpOn If True, checks element HEX WARP
REAL8 NastranHexWarpLimit Limit for HEX WARP check.
BOOL NastranPenAROn If True, checks element PENTA AR
API-894

Property Description
REAL8 NastranPenARLimit Limit for PENTA AR check.
BOOL NastranPenEPLROn If True, checks element PENTA EPLR
REAL8 NastranPenEPLRLimit Limit for PENTA EPLR check.
BOOL NastranPenDetJOn If True, checks element PENTA DETJ
REAL8 NastranPenDetJLimit Limit for PENTA DETJ check.
BOOL NastranPenWarpOn If True, checks element PENTA WARP
REAL8 NastranPenWarpLimit Limit for PENTA WARP check.
BOOL NastranPyrAROn If True, checks element PYR AR
REAL8 NastranPyrARLimit Limit for PYR AR check.
BOOL NastranPyrEPLROn If True, checks element PYR EPLR
REAL8 NastranPyrEPLRLimit Limit for PYR EPLR check.
BOOL NastranPyrDetJOn If True, checks element PYR DETJ
REAL8 NastranPyrDetJLimit Limit for PYR DETJ check.
BOOL NastranPyrWarpOn If True, checks element PYR WARP
REAL8 NastranPyrWarpLimit Limit for PYR WARP check.
Clear API-895

4.2.2 Element Quality Methods


There following methods are available.
4.2.2.1 Clear

Clear
( void )
Description:
This method resets all check flags and clears all quality limit values.
Input:
None
Output:
None
Return Code:
None
Remarks/Usage:
None
Example:
API-896 SetModelDefaults

4.2.2.2 SetModelDefaults

SetModelDefaults
( void )
Description:
This method update the quality flags and limit values of the Model with the values stored in the current
Quality Object properties
Input:
None
Output:
None
Return Code:
None
Remarks/Usage:

Example:
GetModelDefaults API-897

4.2.2.3 GetModelDefaults

GetModelDefaults
( void )
Description:
This method loads the quality flags and limit values from the Femap model into the current Quality
Object.
Input:
None
Output:
None
Return Code:
None
Remarks/Usage:

Example:
API-898 CheckQuality

4.2.2.4 CheckQuality

CheckQuality
( nElemSet, bList, bGroup )
Description:
This function checks a set of elements to see if any of them are distorted based on the quality flags and
limit values defined in the Quality Object properties for the Femap Element Checks. A Femap Set
object is returned filled with the element IDs that failed the selected quality checks.
Input:
The ID of a set that contains the IDs of elements to check. Specify a
INT4 nElemSet
negative number to check a single element.
If True, distorted elements are listed in the Messages and Lists win-
BOOL bList
dow.
BOOL bGroup If True, a group is made of the distorted elements.
Output:
None
Return Code:
The Set object is returned in
place of the return code.
Remarks/Usage:
This function is just like the Tools, Check, Distortion command when using the Femap tab. The checks
performed and the limit values are identical to that command.
Example:
CheckQuality API-899

4.2.2.5 CheckNastranQuality

CheckQuality
( nElemSet, bList, bGroup )
Description:
This function checks a set of elements to see if any of them are distorted based on the quality flags and
limit values defined in the Quality Object properties for the NX Nastran Element Checks. A Femap Set
object is returned filled with the element IDs that failed the selected quality checks.
Input:
The ID of a set that contains the IDs of elements to check. Specify a
INT4 nElemSet
negative number to check a single element.
If True, distorted elements are listed in the Messages and Lists win-
BOOL bList
dow.
BOOL bGroup If True, a group is made of the distorted elements.
Output:
None
Return Code:
The Set object is returned in
place of the return code.
Remarks/Usage:
This function is just like the Tools, Check, Distortion command when using the NX Nastran tab. The
checks performed and the limit values are identical to that command.
Example:
API-900 GetAspectRatio

4.2.2.6 GetAspectRatio

GetAspectRatio
( nElemID, pdValue )
Description:
This method calculates and returns the quality value for the desired element.
Input:
INT4 nElemID ID of element to check.
Output:
REAL8 pdValue Quality value.
Return Code:
None
Remarks/Usage:

Example:
AspectRatio API-901

4.2.2.7 AspectRatio

AspectRatio
( nElemSet, dLimitVal )
Description:
This method takes a element or set of elements and checks their quality against a limit value. A Femap
Sort object is returned that contains the elements that have failed the check and their quality.
Input:
The ID of a set that contains the IDs of elements to check. Specify a
INT4 nElemSet
negative number to check a single element.
REAL8 dLimitVal Limit value for check.
Output:
None
Return Code:
None
Remarks/Usage:
Once you use this method you can use the returned Sort object to sort the elements by quality and find
the worst ones.
Example:
API-902 GetTaper

4.2.2.8 GetTaper

GetTaper
( nElemID, pdValue )
Description:
This method calculates and returns the quality value for the desired element.
Input:
INT4 nElemID ID of element to check.
Output:
REAL8 pdValue Quality value.
Return Code:
None
Remarks/Usage:

Example:
Taper API-903

4.2.2.9 Taper

Taper
( nElemSet, dLimitVal )
Description:
This method takes a element or set of elements and checks their quality against a limit value. A Femap
Sort object is returned that contains the elements that have failed the check and their quality.
Input:
The ID of a set that contains the IDs of elements to check. Specify a
INT4 nElemSet
negative number to check a single element.
REAL8 dLimitVal Limit value for check.
Output:
None
Return Code:
None
Remarks/Usage:

Example:
API-904 GetAlternateTaper

4.2.2.10 GetAlternateTaper

GetAlternateTaper
( nElemID, pdValue )
Description:
This method calculates and returns the quality value for the desired element.
Input:
INT4 nElemID ID of element to check.
Output:
REAL8 pdValue Quality value.
Return Code:
None
Remarks/Usage:

Example:
AlternateTaper API-905

4.2.2.11 AlternateTaper

AlternateTaper
( nElemSet, dLimitVal )
Description:
This method takes a element or set of elements and checks their quality against a limit value. A Femap
Sort object is returned that contains the elements that have failed the check and their quality.
Input:
The ID of a set that contains the IDs of elements to check. Specify a
INT4 nElemSet
negative number to check a single element.
REAL8 dLimitVal Limit value for check.
Output:
None
Return Code:
None
Remarks/Usage:

Example:
API-906 GetInternalAngle

4.2.2.12 GetInternalAngle

GetInternalAngle
( nElemID, pdValue )
Description:
This method calculates and returns the quality value for the desired element.
Input:
INT4 nElemID ID of element to check.
Output:
REAL8 pdValue Quality value.
Return Code:
None
Remarks/Usage:

Example:
InternalAngle API-907

4.2.2.13 InternalAngle

InternalAngle
( nElemSet, dLimitVal )
Description:
This method takes a element or set of elements and checks their quality against a limit value. A Femap
Sort object is returned that contains the elements that have failed the check and their quality.
Input:
The ID of a set that contains the IDs of elements to check. Specify a
INT4 nElemSet
negative number to check a single element.
REAL8 dLimitVal Limit value for check.
Output:
None
Return Code:
None
Remarks/Usage:

Example:
API-908 GetSkew

4.2.2.14 GetSkew

GetSkew
( nElemID, pdValue )
Description:
This method calculates and returns the quality value for the desired element.
Input:
INT4 nElemID ID of element to check.
Output:
REAL8 pdValue Quality value.
Return Code:
None
Remarks/Usage:

Example:
Skew API-909

4.2.2.15 Skew

Skew
( nElemSet, dLimitVal )
Description:
This method takes a element or set of elements and checks their quality against a limit value. A Femap
Sort object is returned that contains the elements that have failed the check and their quality.
Input:
The ID of a set that contains the IDs of elements to check. Specify a
INT4 nElemSet
negative number to check a single element.
REAL8 dLimitVal Limit value for check.
Output:
None
Return Code:
None
Remarks/Usage:

Example:
API-910 GetWarping

4.2.2.16 GetWarping

GetWarping
( nElemID, pdValue )
Description:
This method calculates and returns the quality value for the desired element.
Input:
INT4 nElemID ID of element to check.
Output:
REAL8 pdValue Quality value.
Return Code:
None
Remarks/Usage:

Example:
Warping API-911

4.2.2.17 Warping

Warping
( nElemSet, dLimitVal )
Description:
This method takes a element or set of elements and checks their quality against a limit value. A Femap
Sort object is returned that contains the elements that have failed the check and their quality.
Input:
The ID of a set that contains the IDs of elements to check. Specify a
INT4 nElemSet
negative number to check a single element.
REAL8 dLimitVal Limit value for check.
Output:
None
Return Code:
None
Remarks/Usage:

Example:
API-912 GetNastranWarping

4.2.2.18 GetNastranWarping

GetNastranWarping
( nElemID, pdValue )
Description:
This method calculates and returns the quality value for the desired element.
Input:
INT4 nElemID ID of element to check.
Output:
REAL8 pdValue Quality value.
Return Code:
None
Remarks/Usage:

Example:
NastranWarping API-913

4.2.2.19 NastranWarping

NastranWarping
( nElemSet, dLimitVal )
Description:
This method takes a element or set of elements and checks their quality against a limit value. A Femap
Sort object is returned that contains the elements that have failed the check and their quality.
Input:
The ID of a set that contains the IDs of elements to check. Specify a
INT4 nElemSet
negative number to check a single element.
REAL8 dLimitVal Limit value for check.
Output:
None
Return Code:
None
Remarks/Usage:

Example:
API-914 GetTetCollapse

4.2.2.20 GetTetCollapse

GetTetCollapse
( nElemID, pdValue )
Description:
This method calculates and returns the quality value for the desired element.
Input:
INT4 nElemID ID of element to check.
Output:
REAL8 pdValue Quality value.
Return Code:
None
Remarks/Usage:

Example:
TetCollapse API-915

4.2.2.21 TetCollapse

TetCollapse
( nElemSet, dLimitVal )
Description:
This method takes a element or set of elements and checks their quality against a limit value. A Femap
Sort object is returned that contains the elements that have failed the check and their quality.
Input:
The ID of a set that contains the IDs of elements to check. Specify a
INT4 nElemSet
negative number to check a single element.
REAL8 dLimitVal Limit value for check.
Output:
None
Return Code:
None
Remarks/Usage:

Example:
API-916 GetJacobian

4.2.2.22 GetJacobian

GetJacobian
( nElemID, pdValue )
Description:
This method calculates and returns the quality value for the desired element.
Input:
INT4 nElemID ID of element to check.
Output:
REAL8 pdValue Quality value.
Return Code:
None
Remarks/Usage:

Example:
Jacobian API-917

4.2.2.23 Jacobian

Jacobian
( nElemSet, dLimitVal )
Description:
This method takes a element or set of elements and checks their quality against a limit value. A Femap
Sort object is returned that contains the elements that have failed the check and their quality.
Input:
The ID of a set that contains the IDs of elements to check. Specify a
INT4 nElemSet
negative number to check a single element.
REAL8 dLimitVal Limit value for check.
Output:
None
Return Code:
None
Remarks/Usage:

Example:
API-918 GetCombined

4.2.2.24 GetCombined

GetCombined
( nElemID, pdValue )
Description:
This method calculates and returns the quality value for the desired element.
Input:
INT4 nElemID ID of element to check.
Output:
REAL8 pdValue Quality value.
Return Code:
None
Remarks/Usage:

Example:
Combined API-919

4.2.2.25 Combined

Combined
( nElemSet, dLimitVal )
Description:
This method takes a element or set of elements and checks their quality against a limit value. A Femap
Sort object is returned that contains the elements that have failed the check and their quality.
Input:
The ID of a set that contains the IDs of elements to check. Specify a
INT4 nElemSet
negative number to check a single element.
REAL8 dLimitVal Limit value for check.
Output:
None
Return Code:
None
Remarks/Usage:

Example:
API-920 GetExplicitTimeStep

4.2.2.26 GetExplicitTimeStep

GetExplicitTimeStep
( nElemID, pdValue )
Description:
This method calculates and returns the quality value for the desired element.
Input:
INT4 nElemID ID of element to check.
Output:
REAL8 pdValue Quality value.
Return Code:
None
Remarks/Usage:

Example:
ExplicitTimeStep API-921

4.2.2.27 ExplicitTimeStep

ExplicitTimeStep
( nElemSet, dLimitVal )
Description:
This method takes a element or set of elements and checks their quality against a limit value. A Femap
Sort object is returned that contains the elements that have failed the check and their quality.
Input:
The ID of a set that contains the IDs of elements to check. Specify a
INT4 nElemSet
negative number to check a single element.
REAL8 dLimitVal Limit value for check.
Output:
None
Return Code:
None
Remarks/Usage:

Example:
API-922 GetNastranQuadSkew

4.2.2.28 GetNastranQuadSkew

GetNastranQuadSkew
( nElemID, pdValue )
Description:
This method calculates and returns the quality value for the desired element.
Input:
INT4 nElemID ID of element to check.
Output:
REAL8 pdValue Quality value.
Return Code:
None
Remarks/Usage:

Example:
NastranQuadSkew API-923

4.2.2.29 NastranQuadSkew

NastranQuadSkew
( nElemSet, dLimitVal )
Description:
This method takes a element or set of elements and checks their quality against a limit value. A Femap
Sort object is returned that contains the elements that have failed the check and their quality.
Input:
The ID of a set that contains the IDs of elements to check. Specify a
INT4 nElemSet
negative number to check a single element.
REAL8 dLimitVal Limit value for check.
Output:
None
Return Code:
None
Remarks/Usage:

Example:
API-924 GetNastranQuadTaper

4.2.2.30 GetNastranQuadTaper

GetNastranQuadTaper
( nElemID, pdValue )
Description:
This method calculates and returns the quality value for the desired element.
Input:
INT4 nElemID ID of element to check.
Output:
REAL8 pdValue Quality value.
Return Code:
None
Remarks/Usage:

Example:
NastranQuadTaper API-925

4.2.2.31 NastranQuadTaper

NastranQuadTaper
( nElemSet, dLimitVal )
Description:
This method takes a element or set of elements and checks their quality against a limit value. A Femap
Sort object is returned that contains the elements that have failed the check and their quality.
Input:
The ID of a set that contains the IDs of elements to check. Specify a
INT4 nElemSet
negative number to check a single element.
REAL8 dLimitVal Limit value for check.
Output:
None
Return Code:
None
Remarks/Usage:

Example:
API-926 GetNastranQuadWarp

4.2.2.32 GetNastranQuadWarp

GetNastranQuadWarp
( nElemID, pdValue )
Description:
This method calculates and returns the quality value for the desired element.
Input:
INT4 nElemID ID of element to check.
Output:
REAL8 pdValue Quality value.
Return Code:
None
Remarks/Usage:

Example:
NastranQuadWarp API-927

4.2.2.33 NastranQuadWarp

NastranQuadWarp
( nElemSet, dLimitVal )
Description:
This method takes a element or set of elements and checks their quality against a limit value. A Femap
Sort object is returned that contains the elements that have failed the check and their quality.
Input:
The ID of a set that contains the IDs of elements to check. Specify a
INT4 nElemSet
negative number to check a single element.
REAL8 dLimitVal Limit value for check.
Output:
None
Return Code:
None
Remarks/Usage:

Example:
API-928 GetNastranQuadIAMin

4.2.2.34 GetNastranQuadIAMin

GetNastranQuadIAMin
( nElemID, pdValue )
Description:
This method calculates and returns the quality value for the desired element.
Input:
INT4 nElemID ID of element to check.
Output:
REAL8 pdValue Quality value.
Return Code:
None
Remarks/Usage:

Example:
NastranQuadIAMin API-929

4.2.2.35 NastranQuadIAMin

NastranQuadIAMin
( nElemSet, dLimitVal )
Description:
This method takes a element or set of elements and checks their quality against a limit value. A Femap
Sort object is returned that contains the elements that have failed the check and their quality.
Input:
The ID of a set that contains the IDs of elements to check. Specify a
INT4 nElemSet
negative number to check a single element.
REAL8 dLimitVal Limit value for check.
Output:
None
Return Code:
None
Remarks/Usage:

Example:
API-930 GetNastranQuadIAMax

4.2.2.36 GetNastranQuadIAMax

GetNastranQuadIAMax
( nElemID, pdValue )
Description:
This method calculates and returns the quality value for the desired element.
Input:
INT4 nElemID ID of element to check.
Output:
REAL8 pdValue Quality value.
Return Code:
None
Remarks/Usage:

Example:
NastranQuadIAMax API-931

4.2.2.37 NastranQuadIAMax

NastranQuadIAMax
( nElemSet, dLimitVal )
Description:
This method takes a element or set of elements and checks their quality against a limit value. A Femap
Sort object is returned that contains the elements that have failed the check and their quality.
Input:
The ID of a set that contains the IDs of elements to check. Specify a
INT4 nElemSet
negative number to check a single element.
REAL8 dLimitVal Limit value for check.
Output:
None
Return Code:
None
Remarks/Usage:

Example:
API-932 GetNastranTriaSkew

4.2.2.38 GetNastranTriaSkew

GetNastranTriaSkew
( nElemID, pdValue )
Description:
This method calculates and returns the quality value for the desired element.
Input:
INT4 nElemID ID of element to check.
Output:
REAL8 pdValue Quality value.
Return Code:
None
Remarks/Usage:

Example:
NastranTriaSkew API-933

4.2.2.39 NastranTriaSkew

NastranTriaSkew
( nElemSet, dLimitVal )
Description:
This method takes a element or set of elements and checks their quality against a limit value. A Femap
Sort object is returned that contains the elements that have failed the check and their quality.
Input:
The ID of a set that contains the IDs of elements to check. Specify a
INT4 nElemSet
negative number to check a single element.
REAL8 dLimitVal Limit value for check.
Output:
None
Return Code:
None
Remarks/Usage:

Example:
API-934 GetNastranTriaIAMax

4.2.2.40 GetNastranTriaIAMax

GetNastranTriaIAMax
( nElemID, pdValue )
Description:
This method calculates and returns the quality value for the desired element.
Input:
INT4 nElemID ID of element to check.
Output:
REAL8 pdValue Quality value.
Return Code:
None
Remarks/Usage:

Example:
NastranTriaIAMax API-935

4.2.2.41 NastranTriaIAMax

NastranTriaIAMax
( nElemSet, dLimitVal )
Description:
This method takes a element or set of elements and checks their quality against a limit value. A Femap
Sort object is returned that contains the elements that have failed the check and their quality.
Input:
The ID of a set that contains the IDs of elements to check. Specify a
INT4 nElemSet
negative number to check a single element.
REAL8 dLimitVal Limit value for check.
Output:
None
Return Code:
None
Remarks/Usage:

Example:
API-936 GetNastranTetraAR

4.2.2.42 GetNastranTetraAR

GetNastranTetraAR
( nElemID, pdValue )
Description:
This method calculates and returns the quality value for the desired element.
Input:
INT4 nElemID ID of element to check.
Output:
REAL8 pdValue Quality value.
Return Code:
None
Remarks/Usage:

Example:
NastranTetraAR API-937

4.2.2.43 NastranTetraAR

NastranTetraAR
( nElemSet, dLimitVal )
Description:
This method takes a element or set of elements and checks their quality against a limit value. A Femap
Sort object is returned that contains the elements that have failed the check and their quality.
Input:
The ID of a set that contains the IDs of elements to check. Specify a
INT4 nElemSet
negative number to check a single element.
REAL8 dLimitVal Limit value for check.
Output:
None
Return Code:
None
Remarks/Usage:

Example:
API-938 GetNastranTetraEPLR

4.2.2.44 GetNastranTetraEPLR

GetNastranTetraEPLR
( nElemID, pdValue )
Description:
This method calculates and returns the quality value for the desired element.
Input:
INT4 nElemID ID of element to check.
Output:
REAL8 pdValue Quality value.
Return Code:
None
Remarks/Usage:

Example:
NastranTetraEPLR API-939

4.2.2.45 NastranTetraEPLR

NastranTetraEPLR
( nElemSet, dLimitVal )
Description:
This method takes a element or set of elements and checks their quality against a limit value. A Femap
Sort object is returned that contains the elements that have failed the check and their quality.
Input:
The ID of a set that contains the IDs of elements to check. Specify a
INT4 nElemSet
negative number to check a single element.
REAL8 dLimitVal Limit value for check.
Output:
None
Return Code:
None
Remarks/Usage:

Example:
API-940 GetNastranTetraDetJ

4.2.2.46 GetNastranTetraDetJ

GetNastranTetraDetJ
( nElemID, pdValue )
Description:
This method calculates and returns the quality value for the desired element.
Input:
INT4 nElemID ID of element to check.
Output:
REAL8 pdValue Quality value.
Return Code:
None
Remarks/Usage:

Example:
NastranTetraDetJ API-941

4.2.2.47 NastranTetraDetJ

NastranTetraDetJ
( nElemSet, dLimitVal )
Description:
This method takes a element or set of elements and checks their quality against a limit value. A Femap
Sort object is returned that contains the elements that have failed the check and their quality.
Input:
The ID of a set that contains the IDs of elements to check. Specify a
INT4 nElemSet
negative number to check a single element.
REAL8 dLimitVal Limit value for check.
Output:
None
Return Code:
None
Remarks/Usage:

Example:
API-942 GetNastranHexAR

4.2.2.48 GetNastranHexAR

GetNastranHexAR
( nElemID, pdValue )
Description:
This method calculates and returns the quality value for the desired element.
Input:
INT4 nElemID ID of element to check.
Output:
REAL8 pdValue Quality value.
Return Code:
None
Remarks/Usage:

Example:
NastranHexAR API-943

4.2.2.49 NastranHexAR

NastranHexAR
( nElemSet, dLimitVal )
Description:
This method takes a element or set of elements and checks their quality against a limit value. A Femap
Sort object is returned that contains the elements that have failed the check and their quality.
Input:
The ID of a set that contains the IDs of elements to check. Specify a
INT4 nElemSet
negative number to check a single element.
REAL8 dLimitVal Limit value for check.
Output:
None
Return Code:
None
Remarks/Usage:

Example:
API-944 GetNastranHexEPLR

4.2.2.50 GetNastranHexEPLR

GetNastranHexEPLR
( nElemID, pdValue )
Description:
This method calculates and returns the quality value for the desired element.
Input:
INT4 nElemID ID of element to check.
Output:
REAL8 pdValue Quality value.
Return Code:
None
Remarks/Usage:

Example:
NastranHexEPLR API-945

4.2.2.51 NastranHexEPLR

NastranHexEPLR
( nElemSet, dLimitVal )
Description:
This method takes a element or set of elements and checks their quality against a limit value. A Femap
Sort object is returned that contains the elements that have failed the check and their quality.
Input:
The ID of a set that contains the IDs of elements to check. Specify a
INT4 nElemSet
negative number to check a single element.
REAL8 dLimitVal Limit value for check.
Output:
None
Return Code:
None
Remarks/Usage:

Example:
API-946 GetNastranHexDetJ

4.2.2.52 GetNastranHexDetJ

GetNastranHexDetJ
( nElemID, pdValue )
Description:
This method calculates and returns the quality value for the desired element.
Input:
INT4 nElemID ID of element to check.
Output:
REAL8 pdValue Quality value.
Return Code:
None
Remarks/Usage:

Example:
NastranHexDetJ API-947

4.2.2.53 NastranHexDetJ
*

NastranHexDetJ
( nElemSet, dLimitVal )
Description:
This method takes a element or set of elements and checks their quality against a limit value. A Femap
Sort object is returned that contains the elements that have failed the check and their quality.
Input:
The ID of a set that contains the IDs of elements to check. Specify a
INT4 nElemSet
negative number to check a single element.
REAL8 dLimitVal Limit value for check.
Output:
None
Return Code:
None
Remarks/Usage:

Example:
API-948 GetNastranHexWarp

4.2.2.54 GetNastranHexWarp

GetNastranHexWarp
( nElemID, pdValue )
Description:
This method calculates and returns the quality value for the desired element.
Input:
INT4 nElemID ID of element to check.
Output:
REAL8 pdValue Quality value.
Return Code:
None
Remarks/Usage:

Example:
NastranHexWarp API-949

4.2.2.55 NastranHexWarp
*

NastranHexWarp
( nElemSet, dLimitVal )
Description:
This method takes a element or set of elements and checks their quality against a limit value. A Femap
Sort object is returned that contains the elements that have failed the check and their quality.
Input:
The ID of a set that contains the IDs of elements to check. Specify a
INT4 nElemSet
negative number to check a single element.
REAL8 dLimitVal Limit value for check.
Output:
None
Return Code:
None
Remarks/Usage:

Example:
API-950 GetNastranPenAR

4.2.2.56 GetNastranPenAR

GetNastranPenAR
( nElemID, pdValue )
Description:
This method calculates and returns the quality value for the desired element.
Input:
INT4 nElemID ID of element to check.
Output:
REAL8 pdValue Quality value.
Return Code:
None
Remarks/Usage:

Example:
NastranPenAR API-951

4.2.2.57 NastranPenAR

NastranPenAR
( nElemSet, dLimitVal )
Description:
This method takes a element or set of elements and checks their quality against a limit value. A Femap
Sort object is returned that contains the elements that have failed the check and their quality.
Input:
The ID of a set that contains the IDs of elements to check. Specify a
INT4 nElemSet
negative number to check a single element.
REAL8 dLimitVal Limit value for check.
Output:
None
Return Code:
None
Remarks/Usage:

Example:
API-952 GetNastranPenEPLR

4.2.2.58 GetNastranPenEPLR

GetNastranPenEPLR
( nElemID, pdValue )
Description:
This method calculates and returns the quality value for the desired element.
Input:
INT4 nElemID ID of element to check.
Output:
REAL8 pdValue Quality value.
Return Code:
None
Remarks/Usage:

Example:
NastranPenEPLR API-953

4.2.2.59 NastranPenEPLR

NastranPenEPLR
( nElemSet, dLimitVal )
Description:
This method takes a element or set of elements and checks their quality against a limit value. A Femap
Sort object is returned that contains the elements that have failed the check and their quality.
Input:
The ID of a set that contains the IDs of elements to check. Specify a
INT4 nElemSet
negative number to check a single element.
REAL8 dLimitVal Limit value for check.
Output:
None
Return Code:
None
Remarks/Usage:

Example:
API-954 GetNastranPenDetJ

4.2.2.60 GetNastranPenDetJ

GetNastranPenDetJ
( nElemID, pdValue )
Description:
This method calculates and returns the quality value for the desired element.
Input:
INT4 nElemID ID of element to check.
Output:
REAL8 pdValue Quality value.
Return Code:
None
Remarks/Usage:

Example:
NastranPenDetJ API-955

4.2.2.61 NastranPenDetJ

NastranPenDetJ
( nElemSet, dLimitVal )
Description:
This method takes a element or set of elements and checks their quality against a limit value. A Femap
Sort object is returned that contains the elements that have failed the check and their quality.
Input:
The ID of a set that contains the IDs of elements to check. Specify a
INT4 nElemSet
negative number to check a single element.
REAL8 dLimitVal Limit value for check.
Output:
None
Return Code:
None
Remarks/Usage:

Example:
API-956 GetNastranPenWarp

4.2.2.62 GetNastranPenWarp

GetNastranPenWarp
( nElemID, pdValue )
Description:
This method calculates and returns the quality value for the desired element.
Input:
INT4 nElemID ID of element to check.
Output:
REAL8 pdValue Quality value.
Return Code:
None
Remarks/Usage:

Example:
NastranPenWarp API-957

4.2.2.63 NastranPenWarp

NastranPenWarp
( nElemSet, dLimitVal )
Description:
This method takes a element or set of elements and checks their quality against a limit value. A Femap
Sort object is returned that contains the elements that have failed the check and their quality.
Input:
The ID of a set that contains the IDs of elements to check. Specify a
INT4 nElemSet
negative number to check a single element.
REAL8 dLimitVal Limit value for check.
Output:
None
Return Code:
None
Remarks/Usage:

Example:
API-958 GetNastranPyrAR

4.2.2.64 GetNastranPyrAR

GetNastranPyrAR
( nElemID, pdValue )
Description:
This method calculates and returns the quality value for the desired element.
Input:
INT4 nElemID ID of element to check.
Output:
REAL8 pdValue Quality value.
Return Code:
None
Remarks/Usage:

Example:
NastranPyrAR API-959

4.2.2.65 NastranPyrAR

NastranPyrAR
( nElemSet, dLimitVal )
Description:
This method takes a element or set of elements and checks their quality against a limit value. A Femap
Sort object is returned that contains the elements that have failed the check and their quality.
Input:
The ID of a set that contains the IDs of elements to check. Specify a
INT4 nElemSet
negative number to check a single element.
REAL8 dLimitVal Limit value for check.
Output:
None
Return Code:
None
Remarks/Usage:

Example:
API-960 GetNastranPyrEPLR

4.2.2.66 GetNastranPyrEPLR

GetNastranPyrEPLR
( nElemID, pdValue )
Description:
This method calculates and returns the quality value for the desired element.
Input:
INT4 nElemID ID of element to check.
Output:
REAL8 pdValue Quality value.
Return Code:
None
Remarks/Usage:

Example:
NastranPyrEPLR API-961

4.2.2.67 NastranPyrEPLR

NastranPyrEPLR
( nElemSet, dLimitVal )
Description:
This method takes a element or set of elements and checks their quality against a limit value. A Femap
Sort object is returned that contains the elements that have failed the check and their quality.
Input:
The ID of a set that contains the IDs of elements to check. Specify a
INT4 nElemSet
negative number to check a single element.
REAL8 dLimitVal Limit value for check.
Output:
None
Return Code:
None
Remarks/Usage:

Example:
API-962 GetNastranPyrDetJ

4.2.2.68 GetNastranPyrDetJ

GetNastranPyrDetJ
( nElemID, pdValue )
Description:
This method calculates and returns the quality value for the desired element.
Input:
INT4 nElemID ID of element to check.
Output:
REAL8 pdValue Quality value.
Return Code:
None
Remarks/Usage:

Example:
NastranPyrDetJ API-963

4.2.2.69 NastranPyrDetJ

NastranPyrDetJ
( nElemSet, dLimitVal )
Description:
This method takes a element or set of elements and checks their quality against a limit value. A Femap
Sort object is returned that contains the elements that have failed the check and their quality.
Input:
The ID of a set that contains the IDs of elements to check. Specify a
INT4 nElemSet
negative number to check a single element.
REAL8 dLimitVal Limit value for check.
Output:
None
Return Code:
None
Remarks/Usage:

Example:
API-964 GetNastranPyrWarp

4.2.2.70 GetNastranPyrWarp

GetNastranPyrWarp
( nElemID, pdValue )
Description:
This method calculates and returns the quality value for the desired element.
Input:
INT4 nElemID ID of element to check.
Output:
REAL8 pdValue Quality value.
Return Code:
None
Remarks/Usage:

Example:
NastranPyrWarp API-965

4.2.2.71 NastranPyrWarp

NastranPyrWarp
( nElemSet, dLimitVal )
Description:
This method takes a element or set of elements and checks their quality against a limit value. A Femap
Sort object is returned that contains the elements that have failed the check and their quality.
Input:
The ID of a set that contains the IDs of elements to check. Specify a
INT4 nElemSet
negative number to check a single element.
REAL8 dLimitVal Limit value for check.
Output:
None
Return Code:
None
Remarks/Usage:

Example:
API-966

4.3 Geometry Preparation and Meshing Objects


The Geometry Preparation and Meshing object provides the functionality of the Geometry Prepa-
ration command. Currently this is limited to preparing geometry and mesh sizing.
Use the feMesher method of the FEMAP Application object to access the Geometry Preparation
and Meshing object.

NOTE: All properties that are shown in gray are not yet implemented. These properties
should not be used. They may have unpredictable results and may be changed prior to
their final implementation.

4.3.1 Geometry Preparation and Meshing Object Properties

Property Description
Turn Geometry Preparation On/Off for the Apply() and
BOOL PrepareGeometry
UI() methods.
Turn Mesh Sizing On/Off for the Apply() and UI() meth-
BOOL MeshSizing
ods.
BOOL Meshing Turn Meshing On/Off for the Apply() and UI() methods.
If True, the Apply() method will simply remove previous
BOOL RemovePreviousOnly
Geometry Preparation regardless of other settings.
If Geometry Preparation is attempted on an already
meshed solid, if this property is True the existing mesh
BOOL Silent
will be deleted automatically, otherwise the user will be
asked to confirm deletion of the mesh.
Only used for the UI() method. If True, the geometry
BOOL SyncSizes preparation size and the mesh size will always be the
same.
Geometry Preparation Options
REAL8 PrepareSize The size used to prepare the geometry.
The percentage of the PrepareSize which is used to detect
REAL8 NarrowSizePct
narrow regions of surfaces. (Default=10%)
The percentage of the PrepareSize below which curves
REAL8 CurveSuppressPct are considered to be very short and are suppressed.
(Default=5%)
The angle in degrees below which the corner of a surface
REAL8 NarrowAngle
is considered to be narrow and a candidate for removal.
API-967

Property Description
The angle in degrees between the normals of two adja-
cent surfaces at a given curve. Angles above the specified
value are considered to be important features and
REAL8 FeatureEdgeAngle
attempts are made to preserve these edges. In some cases
however surfaces may still be combined across edges that
exceed this angle.
The angle in degrees between the ending tangents of two
curves that meet at a common point. If the curves meet
smoothly (tangent to each other), they would have a 0.0
REAL8 CombinedCurveAngle
value. All angles below the specified value are candidates
for creating combined curves during Geometry Prepara-
tion.
If True, initial processing is done during Geometry Prep-
BOOL GeometryCleanup aration to remove self-intersections, discontinuities and
other numerical problems in the geometry.
If True, any internal void regions in solids being prepared
BOOL SuppressVoids
are suppressed - regardless of size.
If True, extra processing is done to detect and improve
BOOL DetectClosePoints locations in surfaces which may only be narrow at one
point rather than between edges.
If True, as narrow regions (slivers) are being combined,
BOOL CutSlivers they may be further cut into multiple pieces to better join
with adjacent surfaces.
If True, surfaces that are part of blend chains and which
are short along the length of the chain are combined with
BOOL ProcessBlends
neighboring surfaces in the chain to make better meshing
areas.
If True, very small surfaces are combined with neighbor-
ing surfaces just like any larger sliver/narrow surface. If
BOOL CombineSmallSurfaces
False, very small surfaces are simply suppressed along
with all of their curves.
If True and the solid has previously been through Geome-
BOOL RemovePreviousPrep try Preparation, that previous preparation is removed
prior to processing it again.
If True, any previous mesh on the part is deleted prior to
BOOL DeletePreviousMesh
Geometry Preparation.
The ID of a Group that contains Points, Curves and Sur-
faces to ignore during Geometry Preparation. This is used
INT4 FixedGroupID
to prevent Geometry Preparation from modifying critical
areas of the model.
API-968

Property Description
Primary Mesh Sizing Options
REAL8 MeshSize The size used for Mesh Sizing
A multiplier of the Mesh Size used to specify growth of
REAL8 InteriorGrowthFactor
the mesh interior to the surface edges
The type of mesh sizing to apply. (0=Parametric, 1=Equal
INT4 LengthBasedSizing
Length, 2=Parametric/Equal Length)
Additional Mesh Sizing Options
BOOL MinElemOnEdgeOn If True, MinElemOnEdge is used.
BOOL MaxAngleToleranceOn If True, MaxAngleTolerance is used.
BOOL MaxElemSmallFeatureOn If True, MaxElemSmallFeature is used.
BOOL MaxPctSmallFeatureOn If True, MaxPctSmallFeature is used.
BOOL VertexAspectRatioOn If True, VertexAspectRatio is used.
If True, additional modifications are done to the mesh
sizes on a surface that favor mapped meshing. This does
BOOL MappedMeshingRefinement not guarantee that mapped meshing sizes will be created.
If you must have a mapped mesh, you need to set that
approach on the surface before you size.
BOOL SuppressShortEdgesPctOn If True, SuppressShortEdgesPct is used.
BOOL AutoBoundarySmallSurfPctOn If True, AutoBoundarySmallSurfPct is used.
The minimum number of elements to mesh along any
INT4 MinElemOnEdge
edge. Only used if MinElemOnEdgeOn is True.
The maximum angle tolerance between the geometry tan-
gent vector and the vector connecting consecutive mesh
REAL8 MaxAngleTolerance locations along the curves. Additional mesh locations are
added along the curves to make sure this criterion is satis-
fied.
The maximum number of elements on any feature that is
INT4 MaxElemSmallFeature
identified as small (depends on MaxPctSmallFeature).
The Percentage of the MeshSize that determines whether
REAL8 MaxPctSmallFeature
a feature is small.
Used to adjust the mesh sizes at vertices that connect both
short and long edges. If used, mesh sizes at vertices are
REAL8 VertexAspectRatio adjusted so that the ratio of the length of the longest ele-
ment to the shortest element at a vertex is within the spec-
ified limit.
API-969

Property Description
Edges that are shorter than this percentage of MeshSize
REAL8 SuppressShortEdgesPct
are suppressed during Mesh Sizing.
Surfaces that are smaller than this percentage of Mesh-
REAL8 AutoBoundarySmallSurfPct Size are combined with neighboring surfaces during
Mesh Sizing.
BOOL RefinementRatioOn If True, RefinementRatio is used.
The curvature-based mesh refinement ratio. Adjusts the
REAL8 RefinementRatio
mesh sizes along curves in areas of high curvature.
Set to True to also consider curvature requirements when
BOOL RefineSurfaceMesh sizing the interior of the mesh. You must specify a non-
zero refineRatio, or this option will be ignored.
Set to True to automatically find adjacent surfaces
between multiple solids that you are sizing. The matched
BOOL AdjacentSurfaceMatching
surfaces will automatically have a Linked approach
defined.
Set to True to remove any previous Linked approaches
BOOL RemovePreviousSlaving
on the surfaces of the solids that you are sizing.
Set to True if you want to change the surface colors to
BOOL AdjustColors indicate the status and success of the mesh sizing. This is
especially important when sizing for hex meshing.
If True any surfaces with slaved approaches are not re-
BOOL SkipSizingOnSlaved
sized.
Meshing Options
INT4 MeshType Type of mesh to create (0=Tri, 1=Quad, 2=Tet)
BOOL MidsideNodes If True, midside nodes will be added to the mesh
If True, the type of Tri mesher to use will be automati-
cally selected based on the individual surfaces being
BOOL AutoSelectTriMesher
meshed. If False, the mesher selected by TriMesher is
used.
If AutoSelectTriMesher is False, then this selects the tri
INT4 TriMesher
mesher to use (1=Subdivision, 2=Fast Tri, 3=3D Tri)
BOOL MappedMeshingAllowed If True, mapped meshing is allowed
If tet meshing, 0=No node merging, 1=Merge new nodes,
INT4 NodeMergeOption
2=Merge All nodes
API-970

Property Description
The tetrahedral growth factor. Numbers larger than 1.0
mean that the elements on the inside of the solid will be
REAL8 TetGrowthRatio
larger than those on the outside. It is usually best to use a
factor slightly larger than 1.0. Default=1.1
Another growth factor for tet meshing. Not normally
REAL8 InitialSizeRatio
used. Default=0.5001
If True, the user is asked to confirm the action when
BOOL AskAlreadyMeshed
meshing surfaces that are already meshed.
Surface Meshing Options
BOOL PreV10Meshing If True, chooses the PreV10 meshers. Normally False.
If True, midside nodes are moved toward the geometry
BOOL MidsideMoveToGeometry (surfaces/curves) being meshed. If False, they are placed
at the middle of the element edge.
If True, movement of midside nodes toward the geometry
is limited by the MidsideMaxDistortionAngle. If False,
BOOL MidsideMaxDistortionAngleOn
midside nodes are moved to the geometry regardless of
distortion to the element edges.
The maximum angle formed by the edge of the element
as the midside nodes are projected onto the geometry.
REAL8 MidsideMaxDistortionAngle
Only used if MidsideMoveToGeometry and Midside-
MaxDistortionAngleOn are both True.
If True, ConnectEdgeNodes is used to connect a surface
BOOL ConnectEdgeNodesOn mesh to any existing nodes that have already been created
on the surface edges
The tolerance used to find and connect to nodes that have
REAL8 ConnectEdgeNodes
already been meshed on surface edges.
If True, Laplacian smoothing is used. If False, Centroidal
BOOL SmoothingLaplacian
smoothing is used.
The number of smoothing iterations to perform. Set to 0
INT4 SmoothingIterations
to skip smoothing.
The smoothing tolerance. Smoothing will stop if node
REAL8 SmoothingTolerance movement during a smoothing pass falls below this toler-
ance.
Allows creation of offsets on planar elements to move the
centerline of the element away from the nodes. The spec-
INT4 OffsetMeshMode
ified location is offset by OffsetMeshDistance 0=Center-
line, 1=Top Face, 2=Bottom Face
The distance to offset elements from the nodes. Specify
REAL8 OffsetMeshDistance
0.0 to keep the centerline of the element at the nodes.
API-971

Property Description
Maximum angle in degrees that the corner of a mapped
REAL8 MapMaxAngleDeviation
mesh can deviate and still produce a mapped mesh.
The minimum corner angle above which a surface can be
REAL8 MapMinCornerAngle
map meshed.
If True, a mapped mesh will be produced only if the
opposite sides of the surface have an equal number of ele-
BOOL MapEqualSidesOnly ments along their edges. If False, the number of elements
along one edge direction must match, but the other can
vary somewhat and still produce a mapped mesh.
If True, and if the Subdivision mesher is used, then por-
BOOL MapSubdivisions tions of a surface can be map meshed during the subdivi-
sion process.
If True and if Tri meshing, then a Quad mesh is produced
BOOL MapSplitQuadMap
and split into triangles.
If True and if Tri meshing, then the mesher will attempt
BOOL MapAlternateBias to alternate the direction of triangles that are side-by-side
to eliminate biasing of the mesh.
When Tri meshing, setting to True or False reverses the
BOOL MapRightBias
diagonals of the first two triangles.
If True, additional processing is performed on the com-
BOOL PostMeshingCleanup
pleted surface mesh to improve element quality.
When Quad meshing, this provides the ability to pave a
INT4 QuadEdgeLayers number of element layers around the surface edges. Must
be set to 0=Off, 1, 2 or 3
If Quad meshing, quads with corner angles that deviate
REAL8 CutQuadDeviationAngle from 90 deg by more than this amount are split into trian-
gles.
For the Subdivision mesher, this attempts to insure a min-
INT4 MinElemBetweenBoundary imum number of elements between opposite surface
edges.
For the Subdivision mesher, controls the interior of the
REAL8 MaxElemAspectRatio mesh by adding more or less elements to attempt to
improve aspect ratio.
For the Subdivision mesher, setting this to True will
BOOL QuickCutBoundaryOn reduce the number of possible subdivision combinations
that are considered, potentially reducing meshing time.
API-972

Property Description
If QuickCutBoundaryOn=True and using the Subdivision
mesher, this is the maximum number of nodes on the
INT4 QuickCutMaxNodes
boundary of a surface subdivision where the quicker sub-
division methods will be used.
If True, and the surface has meshing attributes, then only
the attribute property will be used and all other options
BOOL AttributePropOnly
will use their current settings. If False, all options will
come from the surface meshing attributes.
Tet Meshing Options
If True, additional status messages are written to the
BOOL TetStatusMessages
Message Window during the Tet Meshing process
If True, and the Data Table is open, the Tet elements and
BOOL TetQualityToDataTable their element quality are placed in the Data Table during
meshing.
If True, the surface elements are checked to see that all
BOOL TetCheckSurfaceElem element normals are consistent, there are no free edges
and their are no interior walls (non-manifold).
If True, the surface mesh is deleted when the Tet mesh is
BOOL TetDeleteSurfaceElem
created.
BOOL TetSmoothSolidElemOn If True, the Tet Elements will be smoothed
If TetSmoothSolidElemOn=True, then this specifies the
REAL8 TetSmoothSolidElem
tolerance at which smoothing will stop.
Same as MidsideMoveToGeometry, except for midsides
BOOL TetMidsideMoveToGeometry
of Solid elements
Same as MidsideMaxDistortionAngleOn, except for mid-
BOOL TetMidsideMaxDistortionAngleOn
sides of Solid elements
Same as MidsideMaxDistortionAngle, except for mid-
REAL8 TetMidsideMaxDistortionAngle
sides of Solid elements
If True, the nodal precision of the surface mesh nodes is
BOOL TetAdjustNodalPrecision reduced to 6 significant digits when they are supplied to
the tet mesher.
If True, internal voids will be meshed along with the
BOOL TetMeshVoids solid portions of the model. Voids will only be meshed
however if they are not suppressed using SuppressVoids.
AddSolid API-973

4.3.2 Geometry Preparation and Meshing Object Methods


There following methods are available to Prepare, Size and Mesh Geometry.

NOTE: All methods that are shown in gray are not yet implemented. These methods
should not be used. They may have unpredictable results and may be changed prior to
their final implementation.

4.3.2.1 AddSolid

AddSolid
( SetID, SetSizes )
Description:
This method selects one or more solids to be processed by the other methods in this object
Input:
The ID of a set that contains a list of Solid IDs that will be processed.
INT4 SetID Alternatively, if you specify a negative value, this is simply the ID of
the single Solid to process.
If True, the solid(s) are evaluated and default geometry preparation
and mesh sizes are determined based on these solids. If False, default
BOOL SetSizes
sizes are based on the overall model sizes, or any changes you have
made to the defaults prior to calling this method
Output:
None
Return Code:
FE_NOT_EXIST The Solid(s) specified do not exist.
Remarks/Usage:
Typically this is the first method called when using this object.
Example:
API-974 AddSurface

4.3.2.2 AddSurface

AddSurface
( SetID, SetSizes )
Description:
This method selects one or more surfaces to be processed by the other methods in this object
Input:
The ID of a set that contains a list of Surface IDs that will be pro-
INT4 SetID cessed. Alternatively, if you specify a negative value, this is simply
the ID of the single Surface to process.
If True, the Surface(s) are evaluated and default geometry prepara-
tion and mesh sizes are determined based on these Surfaces. If False,
BOOL SetSizes
default sizes are based on the overall model sizes, or any changes
you have made to the defaults prior to calling this method
Output:
None
Return Code:
FE_NOT_EXIST The Surface(s) specified do not exist.
Remarks/Usage:
In most cases, AddSolid() is used instead of AddSurface()
Example:
Clear API-975

4.3.2.3 Clear

Clear
()
Description:
This method clears all properties and resets them to default values.
Input:
None
Output:
None
Return Code:
None
Remarks/Usage:
None
Example:
API-976 SetSizes

4.3.2.4 SetSizes

SetSizes
( PrepareSize, MeshSize, InteriorGrowthFactor )
Description:
This method provides a way to easily set the mesh sizes in a single call
Input:
REAL8 PrepareSize Sets the PrepareSize property
REAL8 MeshSize Sets the MeshSize property
REAL8 InteriorGrowthFactor Sets the InteriorGrowthFactor
Output:
None
Return Code:
None
Remarks/Usage:
Calling this method is identical to setting the three properties directly.
Example:
HasPrevious API-977

4.3.2.5 HasPrevious

HasPrevious
()
Description:
This method indicates whether the selected solid has previous geometry preparation.
Input:
None
Output:
None
Return Code:
FE_OK Solid has previous geometry preparation
FE_FAIL Solid does not have previous geometry preparation
Remarks/Usage:
None
Example:
API-978 RemovePrevious

4.3.2.6 RemovePrevious

RemovePrevious
()
Description:
This method removes previous geometry preparation.
Input:
None
Output:
None
Return Code:
FE_FAIL Unable to remove previous preparation
Remarks/Usage:
None
Example:
Prepare API-979

4.3.2.7 Prepare

Prepare
()
Description:
This method performs Geometry Preparation on the selected geometry using the current options/proper-
ties.
Input:
None
Output:
None
Return Code:
FE_NOT_EXIST There are no solids selected
Remarks/Usage:
This method will prepare the selected geometry regardless of the setting of the PrepareGeometry prop-
erty
Example:
API-980 Size

4.3.2.8 Size

Size
()
Description:
This method performs Mesh Sizing on the selected geometry using the current options/properties.
Input:
None
Output:
None
Return Code:
FE_NOT_EXIST There are no surfaces or solids selected
FE_FAIL Mesh sizing was not successful.
Remarks/Usage:
This method will apply Mesh Sizes regardless of the setting of the MeshSizing property
Example:
Mesh API-981

4.3.2.9 Mesh

Mesh
()
Description:
This method Meshes the selected geometry using the current options/properties.
Input:
None
Output:
None
Return Code:
FE_NOT_EXIST There are no surfaces or solids selected
FE_FAIL Meshing was not successful.
Remarks/Usage:
This method will mesh regardless of the setting of the Meshing property
Example:
API-982 Apply

4.3.2.10 Apply

Apply
()
Description:
This method can remove previous preparation, prepare geometry, apply mesh sizing and mesh selected
geometry using the current options/properties.
Input:
None
Output:
None
Return Code:
FE_NOT_EXIST There are no surfaces or solids selected
FE_FAIL Process was not successful.
Remarks/Usage:
Four properties control the options that are executed by this method. If RemovePreviousOnly is True,
then any previous geometry preparation is removed and no other steps are performed. If it is False (the
default) then PrepareGeometry, MeshSizing and Meshing control whether each of those steps is per-
formed.

Note: Meshing is currently not implemented in this object.


Example:
UI API-983

4.3.2.11 UI

UI
( MeshingOptions )
Description:
This method displays the dialog box user interface, just like the Geometry Preparation command.
Input:
If False, the dialog box showing Geometry Preparation and Mesh
Sizing options will be used. If True, the dialog box will also contain
Meshing Options.
BOOL MeshingOptions
Since meshing is not currently implemented in this object, True
should never be used.
Output:
None
Return Code:
FE_CANCEL User cancelled the dialog
Remarks/Usage:
This method uses the current object properties to initialize the dialogs and updates the properties to the
users selections.
Example:
API-984

4.4 ReadFile Objects


The ReadFile object is used to read lines of text from a file and parse their contents. While these
functions can be accomplished through other standard Basic or C++ functions, the capabilities of
this object are often easier to use. The reading capability in this object also contains its own file
buffering, which can be significantly faster than the native read functions.
ReadFile can handle different file formats. It reads lines from files using either the UNIX or Win-
dows carriage control conventions. This means that UNIX files that are read on Windows can be
transferred either via ASCII or Binary FTP and will work equally well.
Use the feRead method of the FEMAP Application object to create ReadFile Objects.

4.4.1 ReadFile Object Properties

Property Description
STRING line[0..max_length] The current line of text that was read from the file. The maxi-
mum length is established when you open the file.
BOOL truncated True if any line that has been read to that point was longer than
the maximum length that you specified and was truncated.
BOOL shared Set to True prior to calling Open if you want the file to be
shared for both read and write, otherwise it is only shared for
reading.
BOOL shareddelete Set to True prior to calling Open if you want the file to be
shared for read, write and delete, otherwise it is only shared for
reading.
BOOL Exclusive Set to True prior to calling Open if you want the file to be
opened for exclusive access.
Open API-985

4.4.2 ReadFile Object Methods


4.4.2.1 Open

Open
( filename, maxLineLength )
Description:
This function opens a file and prepares for reading.
Input:
STRING filename The complete path to the file that you want to read.
The maximum length of any line of text in this file. Actually, this is
simply the maximum length that you are interested in reading. Lon-
INT4 maxLineLength
ger lines may exist in the file, but they will simply be truncated at
this length.
Output:
None
Return Code:
FE_FAIL Unable to open the file.
FE_NO_MEMORY Unable to allocate memory for file buffering.
Remarks/Usage:
You must call this function prior to reading from a file. You should always call Close when you are fin-
ished.
Example:
None
API-986 Read

4.4.2.2 Read

Read
( void )
Description:
This function reads a line from an open file.
Input:
None
Output:
None
Return Code:
FE_FAIL Unable to read from the file
Remarks/Usage:
This function reads the next line from the open file. The text from that line (without any carriage con-
trol) is loaded into the line property and can be accessed from there. If you use the various parsing/
field methods; you do not need to access the line property. You should always call AtEOF to check
whether you have reached the end of the file.
Example:
None
AtEOF API-987

4.4.2.3 AtEOF

AtEOF
( void )
Description:
This function indicates whether you have reached the end of the file.
Input:
None
Output:
None
Return Code:
FE_OK At the end of the file. You should stop reading.
FE_FAIL Not at the end of the file; there is more data to be read.
Remarks/Usage:
You should always use this check to determine when you reach the end of the file. Depending on how
the file was created, Read can continue to read and return unwanted characters after reaching the true
end of the file. This method will however indicate the end when you reach it.
Example:
None
API-988 Close

4.4.2.4 Close

Close
( void )
Description:
This function closes the current file and frees the memory used for file buffering.
Input:
None
Output:
None
Return Code:
None
Remarks/Usage:
You should always call this method when you are done reading a file. You should not call this method if
you have not successfully opened a file.
Example:
None
Position API-989

4.4.2.5 Position

Position
( void )
Description:
This function returns the current location in the file where you are reading.
Input:
None
Output:
None
Return Code:
INT4 position The current file location.
Remarks/Usage:
This function can be used with Jump to reposition to a specific file location for rereading.
Example:
None
API-990 Jump

4.4.2.6 Jump

Jump
( jumpto )
Description:
This function repositions the location in the file where the next read will occur.
Input:
The position to start reading. This position is the offset from the first
INT4 jumpto byte in the file. Setting jumpto=0 positions to the beginning of the
file
Output:
None
Return Code:
None
Remarks/Usage:
You should only specify jumpto as a value that you previously retrieved from a call to Position. Com-
puting numbers yourself is prone to error because of handling of carriage control.
Example:
None
JumpToEnd API-991

4.4.2.7 JumpToEnd

JumpToEnd
( jumpto )
Description:
This function repositions the location in the file where the next read will occur.
Input:
The position to start reading. This position is the offset from the last
INT4 jumpto
byte in the file. Setting jumpto=0 positions to the end of the file
Output:
None
Return Code:
None
Remarks/Usage:
You should only specify jumpto as a value that you previously retrieved from a call to Position. Com-
puting numbers yourself is prone to error because of handling of carriage control.
Example:
None
API-992 Size

4.4.2.8 Size

Size
( nSize )
Description:
This function returns the size of the file in bytes.
Input:
INT8 nSize The size of the file.
Output:
None
Return Code:
FE_FAIL Unable to retrieve file size.
Remarks/Usage:
Note that the file size is an 8-byte integer - this allows support for files over 4 GByte.
Example:
None
TimeCreated API-993

4.4.2.9 TimeCreated

TimeCreated
( nTime )
Description:
Returns the time that the file was created.
Input:
INT8 nTime The time the file was created.
Output:
None
Return Code:
FE_FAIL Unable to retrieve file information.
Remarks/Usage:
Note that the file size is an 8-byte integer.
Example:
None
API-994 TimeWritten

4.4.2.10 TimeWritten

TimeWritten
( nTime )
Description:
Returns the time that the file was written.
Input:
INT8 nTime The time the file was written.
Output:
None
Return Code:
FE_FAIL Unable to retrieve file information.
Remarks/Usage:
Note that the file size is an 8-byte integer.
Example:
None
TimeAccessed API-995

4.4.2.11 TimeAccessed

TimeAccessed
( nTime )
Description:
Returns the time that the file was accessed.
Input:
INT8 nTime The time the file was accessed.
Output:
None
Return Code:
FE_FAIL Unable to retrieve file information.
Remarks/Usage:
Note that the file size is an 8-byte integer.
Example:
None
API-996 Skipped

4.4.2.12 Skipped

Skipped
( void )
Description:
Indicates whether the last read actually skipped over one or more lines.
Input:
None
Output:
None
Return Code:
FE_OK One or more lines were skipped.
FE_FAIL No lines were skipped.
Remarks/Usage:
This method will only indicate lines were skipped if one or more of the methods are being used that
causes short, blank or searched lines to be skipped.
Example:
None
ShowStatus API-997

4.4.2.13 ShowStatus

ShowStatus
( on )
Description:
Turn on or off the status bar in FEMAP during the read.
Input:
If True, the Status bar will be displayed showing the reading prog-
BOOL on
ress. If False, no Status bar will be displayed.
Output:
None
Return Code:
None
Remarks/Usage:
None
Example:
None
API-998 SetNoBlankLines

4.4.2.14 SetNoBlankLines

SetNoBlankLines
( on )
Description:
Indicate whether or not to read blank lines.
Input:
BOOL on If True, blank lines will be skipped.
Output:
None
Return Code:
None
Remarks/Usage:
Blank lines are lines containing no text, or lines that because of other processing are reduced to being a
blank line.
Example:
None
SetNoShortLines API-999

4.4.2.15 SetNoShortLines

SetNoShortLines
( on, minLineLength )
Description:
Indicate whether or not to read lines that are shorter than a specified length.
Input:
BOOL on If True, short lines will be skipped.
INT4 minLineLength If on=True, lines shorter than this length will be skipped.
Output:
None
Return Code:
None
Remarks/Usage:
None
Example:
None
API-1000 SetTrimSpace

4.4.2.16 SetTrimSpace

SetTrimSpace
( on )
Description:
Indicate whether or not to trim all white space characters off of the front and back of each line.
Input:
BOOL on If True, white space will be trimmed.
Output:
None
Return Code:
None
Remarks/Usage:
Turning this on will delete all leading and trailing spaces. You normally only want to do this if the line
is to be parsed using a free format. White space on the interior (after the first non-white space charac-
ter and before the last non-white space character) is not deleted.
Example:
None
SetTrimEndSpace API-1001

4.4.2.17 SetTrimEndSpace

SetTrimEndSpace
( on )
Description:
Indicate whether or not to trim all white space characters off the end of each line.
Input:
BOOL on If True, trailing white space will be trimmed.
Output:
None
Return Code:
None
Remarks/Usage:
Turning this on will delete all trailing spaces. This is just like SetTrimSpace, but only trims trailing, not
leading white space.
Example:
None
API-1002 SetTrimFront

4.4.2.18 SetTrimFront

SetTrimFront
( on, numChar )
Description:
Indicate whether or not to trim a certain number of characters off of the front of each line.
Input:
BOOL on If True, leading characters will be trimmed.
INT4 numChar The number of characters to trim, regardless of content.
Output:
None
Return Code:
None
Remarks/Usage:
Turning this on trims numChar from the front of every line.
Example:
None
SetUppercase API-1003

4.4.2.19 SetUppercase

SetUppercase
( on )
Description:
Returns all text in uppercase.
Input:
BOOL on If True, all text will be returned in uppercase.
Output:
None
Return Code:
None
Remarks/Usage:
None
Example:
None
API-1004 SetSkip

4.4.2.20 SetSkip

SetSkip
( on )
Description:
Indicates that lines containing the search strings are to be skipped.
Input:
BOOL on If True, all lines that contain the search strings are skipped.
Output:
None
Return Code:
None
Remarks/Usage:
This function must be used in combination with the SetSearchString method. This cannot be used with
the SetSearch method
Example:
None
SetSearch API-1005

4.4.2.21 SetSearch

SetSearch
( on )
Description:
Indicates that lines containing the search strings are to be kept and others are to be skipped.
Input:
BOOL on If True, all lines that do not contain the search strings are skipped.
Output:
None
Return Code:
None
Remarks/Usage:
This function must be used in combination with the SetSearchString method. This cannot be used with
the SetSkip method.
Example:
None
API-1006 SetSearchString

4.4.2.22 SetSearchString

SetSearchString
( mainStr, orStr )
Description:
Searches for lines containing the specified strings.
Input:
STRING mainStr The primary search string.
A second alternate string which could be on the line instead of main-
STRING orStr Str. This should normally be specified as a blank string to just use the
primary search string.
Output:
None
Return Code:
FE_FAIL More than five search string pairs have been specified.
Remarks/Usage:
This method can be called up to five times before reading to search for multiple strings.
Example:
None
ClearSearch API-1007

4.4.2.23 ClearSearch

ClearSearch
( void )
Description:
Removes any search string(s) currently set via SetSearchString so they will no longer be considered
when reading the file
Input:
None
Output:
None
Return Code:
FE_OK
FE_FAIL
Remarks/Usage:
After using this method, you can always use SetSearchString again to look for the same string(s) or dif-
ferent string(s), then simply use this method again to stop looking for those search strings
Example:
None
API-1008 SetSkipAfterSearch

4.4.2.24 SetSkipAfterSearch

SetSkipAfterSearch
( lines )
Description:
Specifies the number of lines to skip after finding a line that contains one of the search strings.
Input:
INT4 lines The number of lines to skip.
Output:
None
Return Code:
None
Remarks/Usage:
In some cases you may want to skip certain headers in a file. You can search for a keyword in the
header, then use this to skip the remaining header lines. If not specified, no lines are skipped.
Example:
None
SetFormFeed API-1009

4.4.2.25 SetFormFeed

SetFormFeed
( on )
Description:
Indicates that Form Feed (FF) characters should be treated as end-of-line carriage control.
Input:
BOOL on If True, FF characters will also end a line.
Output:
None
Return Code:
None
Remarks/Usage:
Normally this method can be ignored - most text files do not contain form feed characters. If you are
reading the formatted output of some other program, however, this may be important if the program
relies on writing a form feed to end certain lines.
Example:
None
API-1010 SetTabSize

4.4.2.26 SetTabSize

SetTabSize
( tabsize )
Description:
Specifies the number of spaces to convert tab characters into.
Input:
INT4 tabsize The number of spaces to convert into.
Output:
None
Return Code:
None
Remarks/Usage:
The size that you specify will be overridden by any choice that the user has made in the Global property
Pref_ReadTabSize
Example:
None
LineInit API-1011

4.4.2.27 LineInit

LineInit
( maxLineLength )
Description:
Used to initialize the necessary properties required for line parsing if you are not reading a file.
Input:
INT4 maxLineLength The maximum length of line that you will be parsing.
Output:
None
Return Code:
None
Remarks/Usage:
Normally you will not call this method. If you are reading a file and want to use the parsing/field capa-
bilities, all of that will be handled automatically. If, however, you just want to use the parsing/field capa-
bilities to parse text that you have from some other source, you can call this method to initialize the
necessary properties. Then you simply set the line property to the text you want to parse and call the
various field methods.
Example:
None
API-1012 Reparse

4.4.2.28 Reparse

Reparse
( void )
Description:
Used to indicate that you want to reparse the current line.
Input:
None
Output:
None
Return Code:
None
Remarks/Usage:
Use this method if you want to use multiple formats to parse the line. Call the field methods with the
first format, change the format, call Reparse, and call the field routines again.
Example:
None
FixedFormat API-1013

4.4.2.29 FixedFormat

FixedFormat
( numField, width )
Description:
Used to specify the number of fields and field widths for a fixed format read.
Input:
The number of fields to parse from the line. Must be between 1 and
INT4 numField
50.
INT4 width[0..numField-1] The widths, in characters, of the fields to parse.
Output:
None
Return Code:
None
Remarks/Usage:
None
Example:
None
API-1014 SetFixedFormat

4.4.2.30 SetFixedFormat

SetFixedFormat
( void )
Description:
Indicates that you want to parse a line using fixed field widths.
Input:
None
Output:
None
Return Code:
None
Remarks/Usage:
You must call FixedFormat to specify the field widths.
Example:
None
SetFreeFormat API-1015

4.4.2.31 SetFreeFormat

SetFreeFormat
( void )
Description:
Indicates that you want to parse a line using free format.
Input:
None
Output:
None
Return Code:
None
Remarks/Usage:
Free format indicates fields with either spaces or commas. Multiple commas create multiple fields. Mul-
tiple spaces do not.
Example:
None
API-1016 SetAutoFormat

4.4.2.32 SetAutoFormat

SetAutoFormat
( void )
Description:
Indicates that you want to parse a line using either fixed or free format.
Input:
None
Output:
None
Return Code:
None
Remarks/Usage:
This option checks the line for a comma. If any commas exist, free format is used; otherwise, fixed for-
mat is used.
Example:
None
Field API-1017

4.4.2.33 Field

Field
( fieldID )
Description:
Parses the current line and returns the indicated field as a text string.
Input:
INT4 fieldID The ID of the field on the line (1..N).
Output:
None
Return Value
STRING field The text in the selected field.
Remarks/Usage:
None
Example:
None
API-1018 IntField

4.4.2.34 IntField

IntField
( fieldID, defaultValue )
Description:
Parses the current line and returns the indicated field as an integer.
Input:
INT4 fieldID The ID of the field on the line (1..N).
INT4 defaultValue If the selected field is blank, the return value will be this value.
Output:
None
Return Code:
INT4 field An integer representation of the text in the field
Remarks/Usage:
If the field is not blank, but does not contain an integer - either a real number or some other text - the
return value will be 0, not the default value.
Example:
None
RealField API-1019

4.4.2.35 RealField

RealField
( fieldID, defaultValue )
Description:
Parses the current line and returns the indicated field as a real number.
Input:
INT4 fieldID The ID of the field on the line (1..N).
REAL8 defaultValue If the selected field is blank, the return value will be this value.
Output:
None
Return Code:
REAL8 field An real number representation of the text in the field.
Remarks/Usage:
If the field is not blank, but does not contain a real number - some other text - the return value will be
0.0, not the default value.
Example:
None
API-1020 BoolField

4.4.2.36 BoolField

BoolField
( fieldID, defaultValue )
Description:
Parses the current line and returns the indicated field as a boolean value.
Input:
INT4 fieldID The ID of the field on the line (1..N).
BOOL defaultValue If the selected field is blank, the return value will be this value.
Output:
None
Return Code:
BOOL field An Boolean representation of the text in the field.
Remarks/Usage:
This function will interpret either 1, y, or yes as True, and 0, n or no as False.
Example:
None
BoolField API-1021
API-1022

4.5 Selector Object


The Selector object provides access to the functionality of the selector in your model. It is not a
model entity.
Use the feSelector method of the FEMAP Application object to access the Selector object.

4.5.1 Selector Object Properties

Property Description
If True, the selector will be in Select Multiple mode, other-
BOOL MultipleMode
wise it will be in Select Single Item mode
If True, the selector will be in Add to Selection mode, oth-
BOOL AddMode
erwise it will be in Remove From Selection mode
0=Drill Off (normal selection mode), 1=Drill Query, 2=Drill
INT4 DrillMode
Front
If True, then when an entity is selected, all related entities
BOOL RelatedMode will also be selected (for example, selecting an element will
also select its nodes, properties, materials...)
INT4 SelectEntity The entity type that is being selected.
BOOL Active If True, the selector is active, otherwise it is inactive.
ClearAll API-1023

4.5.2 Selector Object Methods


There following methods are available.
4.5.2.1 ClearAll

ClearAll
( void )
Description:
This method clears all entities of any type from the Selector
Input:
None
Output:
None
Return Code:
None
Remarks/Usage:
None
Example:
API-1024 Clear

4.5.2.2 Clear

Clear
( entityType )
Description:
This method clears all entities of the specified type from the Selector
Input:
INT4 entityType The entity type to remove from the selector.
Output:
None
Return Code:
None
Remarks/Usage:
None
Example:
Count API-1025

4.5.2.3 Count

Count
( entityType, nSelected )
Description:
This method returns the number of entities of a given type that are currently selected
Input:
INT4 entityType The entity type to query
Output:
INT4 nSelected The number of entityType entities that are currently selected.
Return Code:
None
Remarks/Usage:
None
Example:
API-1026 SelectBox

4.5.2.4 SelectBox

SelectBox
( void )
Description:
This method displays the box selection dialog.
Input:
None
Output:
None
Return Code:
None
Remarks/Usage:
This method automatically enables Multiple Mode
Example:
SelectCircle API-1027

4.5.2.5 SelectCircle

SelectCircle
( void )
Description:
This method displays the circle selection dialog.
Input:
None
Output:
None
Return Code:
None
Remarks/Usage:
This method automatically enables Multiple Mode
Example:
API-1028 SelectPolygon

4.5.2.6 SelectPolygon

SelectPolygon
( void )
Description:
This method displays the polygon selection dialog.
Input:
None
Output:
None
Return Code:
None
Remarks/Usage:
This method automatically enables Multiple Mode
Example:
SelectFreehand API-1029

4.5.2.7 SelectFreehand

SelectFreehand
( void )
Description:
This method displays the freehand selection dialog.
Input:
None
Output:
None
Return Code:
None
Remarks/Usage:
This method automatically enables Multiple Mode
Example:
API-1030 Grow

4.5.2.8 Grow

Grow
( void )
Description:
This method grows the current selection by adding adjacent entities
Input:
None
Output:
None
Return Code:
None
Remarks/Usage:
This method automatically enables Multiple Mode. It is the same as calling the Grow command on
the selector toolbar.
Example:
Shrink API-1031

4.5.2.9 Shrink

Shrink
( void )
Description:
This method shrinks the current selection by removing outer entities
Input:
None
Output:
None
Return Code:
None
Remarks/Usage:
This method automatically enables Multiple Mode. It is the same as calling the Shrink command on
the selector toolbar.
Example:
API-1032 Show

4.5.2.10 Show

Show
( bShowAll )
Description:
This method shows the current selection
Input:
If True, all selected entities are shown. If False, only those of the
BOOL bShowAll
active type (specified by the SelectEntity property) are shown.
Output:
None
Return Code:
None
Remarks/Usage:
None
Example:
SaveGroup API-1033

4.5.2.11 SaveGroup

SaveGroup
( groupID )
Description:
This method saves the current selection as a group
Input:
INT4 groupID The ID of the group to create
Output:
None
Return Code:
FE_FAIL Unable to create group from selection
Remarks/Usage:
None
Example:
API-1034 LoadGroup

4.5.2.12 LoadGroup

LoadGroup
( groupID )
Description:
This method adds the specified group to the selection
Input:
INT4 groupID The ID of the group to load
Output:
None
Return Code:
FE_FAIL Unable to load the group
Remarks/Usage:
This Method automatically enables Multiple Mode. It does not clear the current selection before add-
ing the group.
Example:
UpdateDataTable API-1035

4.5.2.13 UpdateDataTable

UpdateDataTable
( void )
Description:
This method adds the current selection to the Data Table
Input:
None
Output:
None
Return Code:
None
Remarks/Usage:
None
Example:
API-1036 Add

4.5.2.14 Add

Add
( entityType, ID )
Description:
This method adds an entity to the selector.
Input:
INT4 entityType The type of entity to add.
INT4 ID The ID of the entity of entityType to add
Output:
None
Return Code:
None
Remarks/Usage:
None
Example:
AddSet API-1037

4.5.2.15 AddSet

AddSet
( entityType, nSetID, bUpdateDataTable )
Description:
This method adds multiple entities to the selector.
Input:
INT4 entityType The type of entity to add.
The ID of a Set object that contains the list of IDs of the entities to
INT4 nSetID
add.
If True, the selected entities are automatically added to the Data
BOOL bUpdateDataTable
Table.
Output:
None
Return Code:
None
Remarks/Usage:
None
Example:
API-1038 GetSelected

4.5.2.16 GetSelected

GetSelected
( entityType )
Description:
This method creates and returns a Set object that contains the IDs of all entities of a specified type that
are currently selected.
Input:
INT4 entityType The type of entity that will be queried.
Output:
None
Return Code:
None
Remarks/Usage:
The Set object is returned in place of the return code.
Example:
Sub Main
Dim App As femap.model
Set App = feFemap()
Dim sel As femap.Selector
Set sel = App.feSelector
sel.MultipleMode = True
sel.SelectEntity = FS_ELEM
sel.RelatedMode = True
sel.SelectBox()
Dim e As femap.Set
Set e = sel.GetSelected( FS_ELEM )
e.Debug()
Dim n As femap.Set
Set n = sel.GetSelected( FS_NODE )
n.Debug()
sel.ClearAll()
sel.SelectEntity = FS_NONE
End Sub
GetSelectedID API-1039

4.5.2.17 GetSelectedID

GetSelectedID
( entityType, nNumSelected, nSelectedID )
Description:
This method returns the number of entities of a specified type and fills an array which contains the IDs
of all entities of a specified type that are currently selected.
Input:
INT4 entityTYPE The type of entity that will be queried.
Output:
INT4 nNumSelected The number of entries in the nSelectedID array.
The IDs of the entities of the specified type currently in the Selector
INT4 nSelectedID[0..N]
object.
Return Code:
None
Remarks/Usage:
None
Example:
API-1040 Copy

4.5.2.18 Copy

Copy
( void )
Description:
This method copies all selected entities to the Clipboard.
Input:
None
Output:
None
Return Code:
None
Remarks/Usage:
The entities are copied in FEMAP Neutral format and can then be pasted into another model.
Example:
Paste API-1041

4.5.2.19 Paste

Paste
( void )
Description:
This method pastes entities from the Clipboard into the current model.
Input:
None
Output:
None
Return Code:
None
Remarks/Usage:
Data on the clipboard must be in FEMAP Neutral format, as placed there by the Selector Copy com-
mand/method.
Example:
API-1042 Tooltips

4.5.2.20 Tooltips

Tooltips
( bOn, bIncludeLayersAndGroups)
Description:
This method will turn on or turn off the Show Tooltips and Layers/Groups in Tooltips options in the
Select Toolbar
Input:
If True, the Show Tooltips option will be turned on. If False, the
BOOL bOn
Show Tooltips options will be turned off.
BOOL If True, the Layers/Groups in Tooltips option will be turned on. If
bIncludeLayersAndGroups False, the Layers/Groups in Tooltips option will be turned off.
Output:
None
Return Code:
None
Remarks/Usage:
The bOn option must be set to True for a Tooltip to be shown (i.e., having only bIncludeLayersAnd-
Groups set to True will not show a Tooltip containing only the Layer and Group information for an
entity).
Example:
API-1043

4.6 Set Objects


The Set object is used to contain lists of IDs. Sets, once created, can be passed to many other func-
tions to operate on groups of multiple entities. You can also use Set objects for your own purposes,
to make it easier to traverse a list of IDs.
Sets can be persistent objects. They can be saved with a model and can be retrieved at any later
time, in a different script or program, or even in a different modeling session.
It's recommended that you never hard code set IDs in your program as it may have unintended
consequences. When a Set object is created, FEMAP will auto-assign the next available ID auto-
matically. To reference that set later, simply use the ID property rather than a hard-coded ID.
Use the feSet method of the FEMAP Application object to create Set objects.

4.6.1 Set Object Properties

Property Description
INT4 ID The internal ID of the set. This ID is needed if you want to
reload a set created in a previous session. It is also needed for
many of the other methods that operate on sets.
BOOL Save Default=False. Set to True if you want the selection set to per-
sist after the object is destroyed. If you set this option, you can
reload the selection set as long as you remember the ID.
INT4 CurrentID The current ID from the Set. This property is updated when you
call the Next and Prev methods and provides a simple way to
loop through a Set. For example, retrieving a set of nodes...

While s.Next()
node.Get( s.CurrentID )
...
Wend
API-1044 Add

4.6.2 Set Object Methods


4.6.2.1 Add

Add
( id )
Description:
This function adds an ID into a selection set.
Input:
INT4 id ID to add to the selection set.
Output:
None
Return Code:
FE_FAIL ID specifies an invalid value.
Remarks/Usage:
The ID that you are adding to the selection set is just that, an ID. Although it usually represents the ID of
some other existing entity in your model, there is no requirement for this.
Example:
None
AddRange API-1045

4.6.2.2 AddRange

AddRange
( startID, stopID, increment )
Description:
This function adds a range of IDs into a selection set.
Input:
INT4 startID The first ID to add to the selection set.
INT4 stopID The last ID to add to the selection set.
The ID increment between startID and stopID. Must be a positive
INT4 increment
number.
Output:
None
Return Code:
FE_FAIL ID specifies an invalid value.
Remarks/Usage:
This is just like the Add Method, but it can be used to add multiple IDs in one call.
Example:
None
API-1046 AddEntitiesOnLayer

4.6.2.3 AddEntitiesOnLayer

AddEntitiesOnLayer
( laySET, entityTYPE )
Description:
This function adds all entities of a selected type that are on a set of layers into the set.
Input:
The setID that contains the layers to include. Specify a negative
INT4 laySET
number to include entities on a single layer.
The type of entities being included into the set. Only those entities
INT4 entityTYPE that reference a layer in laySET will be included. For entity infor-
mation, see Section 3.3.6, "Entity Types"
Output:
None
Return Code:
FE_FAIL Unable to include entities
Remarks/Usage:
None
Example:
None
AddSet API-1047

4.6.2.4 AddSet

AddSet
( addID )
Description:
This function adds all of the selected IDs from another set into the current set.
Input:
ID of the selection set containing IDs to add. Accessed from the ID
INT4 addID
property of the set.
Output:
None
Return Code:
FE_FAIL Unable to add into the specified set.
Remarks/Usage:
This function simply adds all IDs in the addID set into the current set. Duplication does not cause an
error; the ID will simply remain selected. The addID set remains unchanged during this command - only
the current set is updated.
Example:
None
API-1048 AddSetRule

4.6.2.5 AddSetRule

AddSetRule
( addID, ruleID )
Description:
This function adds to a selection set by using one of the standard group selection rules. It uses the IDs
from another selection set to create the new one.
Input:
The selection set where the IDs will be found. The interpretation of
INT4 addID
these IDs depends on the type of rule that you select.
ID of a selection rule. For more information, see Section 4.6.2.7,
INT4 ruleID
"Group Selection Rules".
Output:
None
Return Code:
FE_FAIL Not able to create the requested selection set.
Either the addID selection set was empty, or there was a problem
FE_NOT_EXIST
processing it.
Remarks/Usage:
This function is just like calling AddRule( ) once for each of the IDs in the addID set. This function adds
to the current set; it does not clear previous additions.
Example:
None
AddRule API-1049

4.6.2.6 AddRule

AddRule
( id, ruleID )
Description:
This function adds to a selection set by using one of the standard group selection rules.
Input:
The ID that you are specifying. The interpretation of this value
INT4 id
depends on the type of rule that you select.
ID of a selection rule. For more information, see Section 4.6.2.7,
INT4 ruleID
"Group Selection Rules".
Output:
None
Return Code:
FE_FAIL Not able to create the requested selection set.
Remarks/Usage:
This is a very powerful tool to create selections which reference attributes of another entity. There are
many group selection rules - review them carefully to choose the appropriate one for your task. This
function adds to the set; it does not clear previous additions.
Example:
None
API-1050 Group Selection Rules

4.6.2.7 Group Selection Rules

Group Selection Rules


Rule Type Selects Which...
FGD_CSys_byDefCSys Coordinate Systems have selected definition coordinate system
FGD_CSys_byType Coordinate Systems have the type: 0=Rect, 1=Cyl, 2=Sph
FGD_Point_ID Points you choose - just matches the ID
FGD_Point_byDefCSys Points have selected definition coordinate system
FGD_Point_onCurve Points are referenced on the curve ID
FGD_Curve_ID Curves you choose - just matches the ID
FGD_Curve_byPoint Curves are attached to the point ID
FGD_Curve_onSurface Curves are referenced on the surface ID
FGD_Surface_ID Surfaces you choose - just matches the ID
FGD_Surface_byCurve Surfaces are attached to the curve ID
FGD_Surface_onVolume Surfaces are referenced on the volume ID
FGD_Volume_ID Volumes you choose - just matches the ID
FGD_Volume_bySurface Volumes are attached to the surface ID
FGD_Text_ID Texts you choose - just matches the ID
FGD_Boundary_ID Boundaries you choose - just matches the ID
FGD_Boundary_byCurve Boundaries are attached to the surface ID
FGD_Node_ID Nodes you choose - just matches the ID
FGD_Node_byDefCSys Nodes have selected definition coordinate system
FGD_Node_byOutCSys Nodes have selected output coordinate system
FGD_Node_onElem Nodes are referenced on the element ID
FGD_Elem_ID Elements you choose - just matches the ID
FGD_Elem_byMatl Elements use the material ID
FGD_Elem_byProp Elements use the property ID
FGD_Elem_byType Elements have the element type
FGD_Elem_byNode Elements reference the node ID
FGD_Matl_ID Materials you choose - just matches the ID
FGD_Matl_onProp Materials are used by the property ID
Group Selection Rules API-1051

Group Selection Rules


Rule Type Selects Which...
FGD_Matl_onElem Materials are used by the element ID
FGD_Matl_byType Materials have the material type
FGD_Prop_ID Properties you choose - just matches the ID
FGD_Prop_onElem Properties are used by the elementID
FGD_Prop_byMatl Properties reference the material ID
FGD_Prop_byType Properties have the property type
FGD_Load_byNode Loads are applied on the node ID
FGD_Load_byElem Loads are applied on the element ID
FGD_BCo_ID Constraints are applied on the node ID
FGD_BEq_byNode Constraint Equations reference the node ID
FGD_Node_atPoint Nodes are attached to the point ID
FGD_Node_atCurve Nodes are attached to the curve ID
FGD_Node_atSurface Nodes are attached to the surface ID
FGD_Node_atSolid Nodes are attached to the solid/volume ID
FGD_Elem_atPoint Elements are attached to the point ID
FGD_Elem_atCurve Elements are attached to the curve ID
FGD_Elem_atSurface Elements are attached to the surface ID
FGD_Elem_atSolid Elements are attached to the solid/volume ID
FGD_Load_byPoint Loads are applied at the point ID
FGD_Load_byCurve Loads are applied to the curve ID
FGD_Load_bySurface Loads are applied to the surface ID
FGD_BCo_byPoint Constraints are applied at the point ID
FGD_BCo_byCurve Constraints are applied to the curve ID
FGD_BCo_bySurface Constraints are applied to the surface ID
FGD_Text_byColor Texts are defined with the selected color
FGD_Point_byColor Points are defined with the selected color
FGD_Curve_byColor Curves are defined with the selected color
FGD_Surface_byColor Surfaces are defined with the selected color
API-1052 Group Selection Rules

Group Selection Rules


Rule Type Selects Which...
FGD_Volume_byColor Volumes are defined with the selected color
FGD_Solid_byColor Solids are defined with the selected color
FGD_CSys_byColor Coordinate Systems are defined with the selected color
FGD_Node_byColor Nodes are defined with the selected color
FGD_Elem_byColor Elements are defined with the selected color
FGD_Prop_byColor Properties are defined with the selected color
FGD_Matl_byColor Materials are defined with the selected color
FGD_Text_byLayer Text is on the same layer as the entity you select
FGD_Point_byLayer Points is on the same layer as the entity you select
FGD_Curve_byLayer Curves is on the same layer as the entity you select
FGD_Surface_byLayer Surfaces is on the same layer as the entity you select
FGD_Volume_byLayer Volumes is on the same layer as the entity you select
FGD_Solid_byLayer Solids is on the same layer as the entity you select
FGD_CSys_byLayer Coordinate Systems is on the same layer as the entity you select
FGD_Node_byLayer Nodes is on the same layer as the entity you select
FGD_Elem_byLayer Elements is on the same layer as the entity you select
FGD_Prop_byLayer Properties is on the same layer as the entity you select
FGD_Matl_byLayer Materials is on the same layer as the entity you select
FGD_Solid_ID Solids you choose - just matches the ID
FGD_Solid_byCurve Solids contain the curve ID
FGD_Solid_bySurface Solids contain the surface ID
FGD_Curve_onSolid Curves are contained on the solid/volume ID
FGD_Surface_onSolid Surfaces are contained on the solid/volume ID
FGD_Point_byProp Points have the property ID as a meshing attribute
FGD_Curve_byProp Curves have the property ID as a meshing attribute
FGD_Surface_byProp Surfaces have the property ID as a meshing attribute
FGD_Volume_byProp Volumes have the property ID as a meshing attribute
FGD_Solid_byProp Solids have the property ID as a meshing attribute
Group Selection Rules API-1053

Group Selection Rules


Rule Type Selects Which...
FGD_Contact_ID Contact Segments you choose - just matches the ID
FGD_Contact_byColor Contact Segments are defined with the selected color
FGD_Contact_byLayer Contact Segments is on the same layer as the entity you select
FGD_CSys_onNode Coordinate Systems which are referenced on the nodeID
FGD_CSys_onPoint Coordinate Systems which are referenced on the point ID
FGD_Elem_byShape Elements which have the selected shape
API-1054 AddAll

4.6.2.8 AddAll

AddAll
( entityTYPE )
Description:
This function adds the IDs of all existing entities of a selected type into the current selection set.
Input:
Type of entity to select. For more information, see Section 3.3.6,
INT4 entityTYPE
"Entity Types".
Output:
None
Return Code:
FE_FAIL Unable to add to current set.
Remarks/Usage:
All entity IDs are added to the current set. The set is not emptied before this operation.
Example:
None
AddAllExcept API-1055

4.6.2.9 AddAllExcept

AddAllExcept
( entityTYPE, exceptSET )
Description:
This function adds the IDs of all existing entities of a selected type into the current selection set, except
those already selected in exceptSET.
Input:
Type of entity to select. For more information, see Section 3.3.6,
INT4 entityTYPE
"Entity Types".
The ID of a set that contains the IDs of entities to not add into this
INT4 exceptSET
set. Specify a negative number to skip adding a single entity.
Output:
None
Return Code:
FE_FAIL Unable to add to current set.
Remarks/Usage:
The set is not emptied before this operation.
Example:
None
API-1056 AddAllInRange

4.6.2.10 AddAllInRange

AddAllInRange
( entityTYPE, startID, stopID )
Description:
This function adds all IDs in a given range specified by a start ID (first ID in range) and stop ID (last ID
in range).
Input:
Type of entity to select. For more information, see Section 3.3.6,
INT4 entityTYPE
"Entity Types".
INT4 startID The first ID in the range of IDs to add
INT4 stopID The last ID in the range of IDs to add
Output:
None
Return Code:
FE_FAIL Unable to add to current set.
Remarks/Usage:

Example:
None
AddCommon API-1057

4.6.2.11 AddCommon

AddCommon
( set1, set2 )
Description:
This function adds all IDs that are in both set1 and set2 to the current selection set.
Input:
INT4 set1 ID of the first selection set to check.
INT4 set2 ID of the second selection set to check.
Output:
None
Return Code:
FE_FAIL Unable to add IDs to the current set.
Remarks/Usage:
IDs must exist in both set1 and set2 to be added. Only the current set is updated by this command - the
other sets remain unchanged.
Example:
None
API-1058 AddNewRemoveCommonSet

4.6.2.12 AddNewRemoveCommonSet

AddNewRemoveCommonSet
( addID )
Description:
This function adds all IDs in addID that are not in the current set, and removes any IDs that are com-
mon to both sets
Input:
INT4 addID ID of the set to combine with the current set
Output:
None
Return Code:
FE_FAIL Unable to add IDs to the current set.
Remarks/Usage:
This method implements a boolean XOR of the addID set and the current set.
Example:
None
AddGroup API-1059

4.6.2.13 AddGroup

AddGroup
( entityTYPE, groupID )
Description:
This function adds the all of the IDs of a selected type from a group into the current selection set.
Input:
Type of entity to select. For more information, see Section 3.3.6,
INT4 entityTYPE
"Entity Types".
INT4 groupID ID of the group to copy IDs from.
Output:
None
Return Code:
Either the group did not exist, or no entities of the selected type were
FE_NOT_EXIST
in the group.
FE_FAIL Unable to add to current set.
Remarks/Usage:
All entity IDs from the group are added to the current set. The set is not emptied before this operation.
Example:
None
API-1060 AddArray

4.6.2.14 AddArray

AddArray
( numID, arrayID )
Description:
This function adds an array of IDs into a selection set.
Input:
INT4 numID The number of entries in the arrayID array
INT4 arrayID[0..numID-1] An array of IDs to be added to the selection set.
Output:
None
Return Code:
FE_FAIL arrayID not properly defined
FE_NO_MEMORY unable to allocate working memory to add contents of arrayID to set
Remarks/Usage:
This is just like the Add Method, but it can be used to add multiple IDs in one call.
Example:
None
AddCoordinate API-1061

4.6.2.15 AddCoordinate

AddCoordinate
( entityTYPE, nCSysID, vbXYZ, vnMode, vdMin, vdMax )
Description:
This function adds entity IDs of entities which are currently visible into a set as selected by their coor-
dinate locations
Input:
The type of entities being included into the set. For entity informa-
tion, see Section 3.3.6, "Entity Types". Only Point, Curve, Surface,
INT4 entityTYPE Boundary, Solid, Volume, Node, Element, Property, Material, Coor-
dinate System, Layup, Text, Connection_Region, Connection and
Connection _Prop entity types are valid.
The ID of the coordinate system to select in. For Rectangular sys-
INT4 nCSysID tems, coordinate directions are XYZ. For Cylindrical systems, the
coordinate directions are R,Theta,Z, and for Spherical, R,Theta,Phi
Flags to consider selecting based on the associated coordinate direc-
BOOL vbXYZ[3] tion. If True, then the other arguments are used to define the selec-
tion. If False, no selections will be done based on that coordinate.
0=Select Above Maximum, 1=Select Below Minimum, 2=Select
INT4 vnMode[3] Outside (Below Min,Above Max), 3=Select Between (Above Min
and Below Max), 4=Select At within Tolerance
The minimum coordinate for most modes. Not used for Above
REAL8 vdMin[3]
Maximum. For Select At the coordinate location to select around.
The maximum coordinate for most modes. Not used for Below
REAL8 vdMax[3] Minimum. For Select At the tolerance around the specified loca-
tion that the coordinate must fall within to be selected.
Output:
None
Return Code:
FE_FAIL arrays not properly specified
FE_BAD_TYPE not a valid entityTYPE for this method
Remarks/Usage:
This works just like the coordinate selection available from the entity selection dialog.
Example:
None
API-1062 AddCoordinate2

4.6.2.16 AddCoordinate2

AddCoordinate2
( entityTYPE, nCSysID, vbXYZ, vnMode, vdMin, vdMax )
Description:
This function adds entity IDs into a set as selected by their coordinate locations
Input:
The type of entities being included into the set. For entity informa-
tion, see Section 3.3.6, "Entity Types". Only Point, Curve, Surface,
INT4 entityTYPE
Solid, Node, Element, Property, Material, Coordinate System,
Layup, Text, Connection_Region, and Connection types are valid.
The ID of the coordinate system to select in. For Rectangular sys-
INT4 nCSysID tems, coordinate directions are XYZ. For Cylindrical systems, the
coordinate directions are R,Theta,Z, and for Spherical, R,Theta,Phi
Flags to consider selecting based on the associated coordinate direc-
BOOL vbXYZ[3] tion. If True, then the other arguments are used to define the selec-
tion. If False, no selections will be done based on that coordinate.
0=Select Above Maximum, 1=Select Below Minimum, 2=Select
INT4 vnMode[3] Outside (Below Min,Above Max), 3=Select Between (Above Min
and Below Max), 4=Select At within Tolerance
The minimum coordinate for most modes. Not used for Above
REAL8 vdMin[3]
Maximum. For Select At the coordinate location to select around.
The maximum coordinate for most modes. Not used for Below
REAL8 vdMax[3] Minimum. For Select At the tolerance around the specified loca-
tion that the coordinate must fall within to be selected.
Output:
None
Return Code:
FE_FAIL arrays not properly specified
FE_BAD_TYPE not a valid entityTYPE for this method
Remarks/Usage:
This works just like the coordinate selection available from the entity selection dialog except it selects
both visible and non-visible entities.
Example:
None
AddAroundPoint API-1063

4.6.2.17 AddAroundPoint

AddAroundPoint
( entityTYPE, vBase, nMode, dMin, dMax )
Description:
This function adds entity IDs of entities which are currently visible into a set as selected by their prox-
imity to a specified location
Input:
The type of entities being included into the set. For entity informa-
tion, see Section 3.3.6, "Entity Types". Only Point, Curve, Surface,
INT4 entityTYPE Boundary, Solid, Volume, Node, Element, Property, Material, Coor-
dinate System, Layup, Text, Connection_Region, Connection and
Connection _Prop entity types are valid.
The coordinates, in Global Rectangular coordinates, of the point to
REAL8 vBase[3]
search around for selections.
0=Select Above Maximum (Farther Than), 1=Select Below Mini-
mum (Closer Than), 2=Select Outside (Below Min,Above Max),
INT4 nMode
3=Select Between (Above Min and Below Max), 4=Select At within
Tolerance
The minimum coordinate for most modes. Not used for Above
REAL8 dMin
Maximum. For Select At the coordinate location to select around.
The maximum coordinate for most modes. Not used for Below
REAL8 dMax Minimum. For Select At the tolerance around the specified loca-
tion that the coordinate must fall within to be selected.
Output:
None
Return Code:
FE_FAIL arrays not properly specified
FE_BAD_TYPE not a valid entityTYPE for this method
Remarks/Usage:
This works just like the Around Point coordinate selection available from the entity selection dialog.
Example:
None
API-1064 AddAroundPoint2

4.6.2.18 AddAroundPoint2

AddAroundPoint2
( entityTYPE, vBase, nMode, dMin, dMax )
Description:
This function adds entity IDs into a set as selected by their proximity to a specified location
Input:
The type of entities being included into the set. For entity informa-
tion, see Section 3.3.6, "Entity Types". Only Point, Curve, Surface,
INT4 entityTYPE
Solid, Node, Element, Property, Material, Coordinate System,
Layup, Text, Connection_Region, and Connection types are valid.
The coordinates, in Global Rectangular coordinates, of the point to
REAL8 vBase[3]
search around for selections.
0=Select Above Maximum (Farther Than), 1=Select Below Mini-
mum (Closer Than), 2=Select Outside (Below Min,Above Max),
INT4 nMode
3=Select Between (Above Min and Below Max), 4=Select At within
Tolerance
The minimum coordinate for most modes. Not used for Above
REAL8 dMin
Maximum. For Select At the coordinate location to select around.
The maximum coordinate for most modes. Not used for Below
REAL8 dMax Minimum. For Select At the tolerance around the specified loca-
tion that the coordinate must fall within to be selected.
Output:
None
Return Code:
FE_FAIL arrays not properly specified
FE_BAD_TYPE not a valid entityTYPE for this method
Remarks/Usage:
This works just like the Around Point coordinate selection available from the entity selection dialog
except it selects both visible and non-visible entities.
Example:
None
AddAroundVector API-1065

4.6.2.19 AddAroundVector

AddAroundVector
( entityTYPE, vBase, vVec, nMode, dMin, dMax )
Description:
This function adds entity IDs of entities which are currently visible into a set as selected by their prox-
imity to a specified vector
Input:
The type of entities being included into the set. For entity informa-
tion, see Section 3.3.6, "Entity Types". Only Point, Curve, Surface,
INT4 entityTYPE Boundary, Solid, Volume, Node, Element, Property, Material, Coor-
dinate System, Layup, Text, Connection_Region, Connection and
Connection _Prop entity types are valid.
The coordinates, in Global Rectangular coordinates, of the base of
REAL8 vBase[3]
the vector around which to search for selections.
The components, in Global Rectangular coordinates, of the vector
REAL8 vVec[3]
around which to search for selections.
0=Select Above Maximum (Farther Than), 1=Select Below Mini-
mum (Closer Than), 2=Select Outside (Below Min,Above Max),
INT4 nMode
3=Select Between (Above Min and Below Max), 4=Select At within
Tolerance
The minimum coordinate for most modes. Not used for Above
REAL8 dMin
Maximum. For Select At the coordinate location to select around.
The maximum coordinate for most modes. Not used for Below
REAL8 dMax Minimum. For Select At the tolerance around the specified loca-
tion that the coordinate must fall within to be selected.
Output:
None
Return Code:
FE_FAIL arrays not properly specified
FE_BAD_TYPE not a valid entityTYPE for this method
Remarks/Usage:
This works just like the Around Vector coordinate selection available from the entity selection dialog.
Example:
None
API-1066 AddAroundVector2

4.6.2.20 AddAroundVector2

AddAroundVector2
( entityTYPE, vBase, vVec, nMode, dMin, dMax )
Description:
This function adds entity IDs into a set as selected by their proximity to a specified vector
Input:
The type of entities being included into the set. For entity informa-
tion, see Section 3.3.6, "Entity Types". Only Point, Curve, Surface,
INT4 entityTYPE
Solid, Node, Element, Property, Material, Coordinate System,
Layup, Text, Connection_Region, and Connection types are valid.
The coordinates, in Global Rectangular coordinates, of the base of
REAL8 vBase[3]
the vector around which to search for selections.
The components, in Global Rectangular coordinates, of the vector
REAL8 vVec[3]
around which to search for selections.
0=Select Above Maximum (Farther Than), 1=Select Below Mini-
mum (Closer Than), 2=Select Outside (Below Min,Above Max),
INT4 nMode
3=Select Between (Above Min and Below Max), 4=Select At within
Tolerance
The minimum coordinate for most modes. Not used for Above
REAL8 dMin
Maximum. For Select At the coordinate location to select around.
The maximum coordinate for most modes. Not used for Below
REAL8 dMax Minimum. For Select At the tolerance around the specified loca-
tion that the coordinate must fall within to be selected.
Output:
None
Return Code:
FE_FAIL arrays not properly specified
FE_BAD_TYPE not a valid entityTYPE for this method
Remarks/Usage:
This works just like the Around Vector coordinate selection available from the entity selection dialog
except it selects both visible and non-visible entities.
Example:
None
AddAroundPlane API-1067

4.6.2.21 AddAroundPlane

AddAroundPlane
( entityTYPE, vBase, vVec, nMode, dMin, dMax )
Description:
This function adds entity IDs of entities which are currently visible into a set as selected by their prox-
imity to a specified plane
Input:
The type of entities being included into the set. For entity informa-
tion, see Section 3.3.6, "Entity Types". Only Point, Curve, Surface,
INT4 entityTYPE Boundary, Solid, Volume, Node, Element, Property, Material, Coor-
dinate System, Layup, Text, Connection_Region, Connection and
Connection _Prop entity types are valid.
The coordinates, in Global Rectangular coordinates, of a point on the
REAL8 vBase[3]
plane around which to search for selections.
The components, in Global Rectangular coordinates, of the normal to
REAL8 vVec[3]
the plane around which to search for selections.
0=Select Above Maximum (Positive Side), 1=Select Below Mini-
mum (Negative Side), 2=Select Outside (Below Min,Above Max),
INT4 nMode
3=Select Between (Above Min and Below Max), 4=Select At within
Tolerance
The minimum coordinate for most modes. Not used for Above
REAL8 dMin
Maximum. For Select At the coordinate location to select around.
The maximum coordinate for most modes. Not used for Below
REAL8 dMax Minimum. For Select At the tolerance around the specified loca-
tion that the coordinate must fall within to be selected.
Output:
None
Return Code:
FE_FAIL arrays not properly specified
FE_BAD_TYPE not a valid entityTYPE for this method
Remarks/Usage:
This works just like the Around Plane coordinate selection available from the entity selection dialog.
Example:
None
API-1068 AddAroundPlane2

4.6.2.22 AddAroundPlane2

AddAroundPlane2
( entityTYPE, vBase, vVec, nMode, dMin, dMax )
Description:
This function adds entity IDs into a set as selected by their proximity to a specified plane
Input:
The type of entities being included into the set. For entity informa-
tion, see Section 3.3.6, "Entity Types". Only Point, Curve, Surface,
INT4 entityTYPE
Solid, Node, Element, Property, Material, Coordinate System,
Layup, Text, Connection_Region, and Connection types are valid.
The coordinates, in Global Rectangular coordinates, of a point on the
REAL8 vBase[3]
plane around which to search for selections.
The components, in Global Rectangular coordinates, of the normal to
REAL8 vVec[3]
the plane around which to search for selections.
0=Select Above Maximum (Positive Side), 1=Select Below Mini-
mum (Negative Side), 2=Select Outside (Below Min,Above Max),
INT4 nMode
3=Select Between (Above Min and Below Max), 4=Select At within
Tolerance
The minimum coordinate for most modes. Not used for Above
REAL8 dMin
Maximum. For Select At the coordinate location to select around.
The maximum coordinate for most modes. Not used for Below
REAL8 dMax Minimum. For Select At the tolerance around the specified loca-
tion that the coordinate must fall within to be selected.
Output:
None
Return Code:
FE_FAIL arrays not properly specified
FE_BAD_TYPE not a valid entityTYPE for this method
Remarks/Usage:
This works just like the Around Plane coordinate selection available from the entity selection dialog
except it selects both visible and non-visible entities.
Example:
None
AddNodesOnGeometry API-1069

4.6.2.23 AddNodesOnGeometry

AddNodesOnGeometry
( entityTYPE, entityID, bClear, bFullTree, bBoundaryOnly )
Description:
This function adds nodes to the set which are attached to the specified geometry.
Input:
INT4 entityTYPE The type of entity to find attached nodes.
INT4 entityID ID of entity to find attached nodes.
BOOL bClear Flag to clear the set before adding nodes.
If True, the nodes attached to the sub entities are also included (
BOOL bFullTree
Solid = Surf,Curve,Point: Surf=Curve,Point: Curve=Point )
BOOL bBoundaryOnly Flag to only include nodes at the boundary of the entity.
Output:
None
Return Code:
FE_FAIL Unable to return nodes, possibly none exist.
FE_NOT_EXIST No nodes were attached to the entity in the manner you selected.
FE_NO_MEMORY Insufficient memory to allocate list of attached nodes.
Remarks/Usage:
If bClear is false this method can be called multiple times to build up an accumulated list.
Example:
None
API-1070 AddAllTitle

4.6.2.24 AddAllTitle

AddAllTitle
( entityTYPE, nSetID, sFind )
Description:
This function adds the selected entities which have matching titles.
Input:
The type of entity to add. The entity type must have a title to be valid
INT4 entityTYPE
for this method.
Normally this should be 1. For specific set-based types such as Load
INT4 nSetID and Constraint Definitions, it must be the ID of the set to search for
matching titles.
A text string that will be compared to the entity title. If this string is
STRING sFind found anywhere in the title, that entity ID will be added to the set.
Comparisons are not case sensitive.
Output:
None
Return Code:
FE_INVALID You specified a blank string to match
FE_NOT_EXIST No entities were found that matched the string you supplied.
Remarks/Usage:
None
Example:
None
AddAllColor API-1071

4.6.2.25 AddAllColor

AddAllColor
( entityTYPE, nSetID, nColor, nColorMatch )
Description:
This function adds the selected entities which match a specified color.
Input:
The type of entity to add. The entity type must have a color to be
INT4 entityTYPE
valid for this method.
Normally this should be 1. For specific set-based types such as the
INT4 nSetID various load and constraint types, it must be the ID of the set to
search for matching colors.
The color to search for. This number is a combination of the color,
INT4 nColor
linestyle and pattern/transparency
Any combination of 1=Match Color only, 2=Match Pattern only,
INT4 nColorMatch 4=Match Linestyle only. So 3=Match Color & Pattern, 6=Pattern &
Linestyle, 5=Color & Linestyle, 7=Match All
Output:
None
Return Code:
FE_NOT_EXIST No entities were found that matched the color you supplied.
Remarks/Usage:
None
Example:
None
API-1072 AddMidsideNodes

4.6.2.26 AddMidsideNodes

AddMidsideNodes
( setID )
Description:
This function adds the midside nodes that are on selected elements
Input:
The ID of a Set object that contains the elements that reference the
INT4 setID midside nodes to add. Alternatively, if you specify a negative value,
this is simply the ID of the single element.
Output:
None
Return Code:
FE_NOT_EXIST No midside nodes were found on the elements that you specified.
Remarks/Usage:
None
Example:
None
IsAdded API-1073

4.6.2.27 IsAdded

IsAdded
( id )
Description:
This function checks to see if an ID is currently added into a selection set.
Input:
INT4 id ID to check.
Output:
None
Return Code:
FE_OK ID is added into the selection set.
FE_FAIL ID is not added into the selection set.
Remarks/Usage:
The selection set need not exist to use this function. However, if it does not, the return code will simply
be FE_FAIL - the ID is not selected.
Example:
None
API-1074 IsSetAdded

4.6.2.28 IsArrayAdded

IsSetAdded
( numID, arrayID )
Description:
This function checks to see if all IDs from an array are currently added into a selection set.
Input:
INT4 numID The number of IDs in the array
INT4 arrayID[0..numID-1] The array containing IDs to check to see if they are in the current Set
Output:
None
Return Code:
FE_OK All IDs in the array are in the current Set
FE_FAIL At least one ID from the array is not in the current Set
Remarks/Usage:
None
Example:
None
IsSetAdded API-1075

4.6.2.29 IsSetAdded

IsSetAdded
( nSetID )
Description:
This function checks to see if all IDs from a Set are currently added into a selection set.
Input:
INT4 nSetID The ID of the Set to check to see if all IDs are in this Set
Output:
None
Return Code:
FE_OK All IDs in nSetID are in the current Set
FE_FAIL At least one ID from nSetID is not in the current Set
Remarks/Usage:
None
Example:
None
API-1076 Select

4.6.2.30 Select

Select
( entityTYPE, clear, title )
Description:
This function displays a standard selection dialog box to allow a user to choose entities of a specific type
and create a selection set.
Input:
Type of entity to select. For more information, see Section 3.3.6,
INT4 entityTYPE
"Entity Types".
If True, the set is cleared prior to selection, and only the selected
entities will be in the set. If False, previously selected entities will be
BOOL clear
displayed in the dialog box for editing, or for combining with new
selections.
A text string that will be added to the title bar of the dialog box to
STRING title
give the user more information about what is being selected.
Output:
None
Return Code:
FE_CANCEL The user cancelled the selection.
No entities of the selected type exist. None were selected and the dia-
FE_NOT_EXIST log box was not displayed. If clear=True, the selection set will be
empty.
Remarks/Usage:
After the dialog box is closed, the set contains the list of all IDs that were selected. If clear=False, then
some of the entities could have been selected prior to the dialog being displayed. If the user hits Can-
cel to close the dialog, then the set contains whatever it contained before, unless clear=True, in which
case it contains nothing.
Example:
None
SelectID API-1077

4.6.2.31 SelectID

SelectID
( entityTYPE, title, ID )
Description:
This function displays a selection dialog box to allow a user to choose a single entity of a specific type.
The ID of the entity is returned and is stored in the current selection set.
Input:
Type of entity to select. For more information, see Section 3.3.6,
INT4 entityTYPE
"Entity Types".
A text string that will be added to the title bar of the dialog box to
STRING title
give the user more information about what is being selected.
Output:
INT4 ID The ID of the entity that was selected.
Return Code:
FE_CANCEL The user cancelled the selection.
No entities of the selected type exist. None were selected and the dia-
FE_NOT_EXIST log box was not displayed. If clear=True, the selection set will be
empty.
Remarks/Usage:
This function displays one of two different dialog boxes, depending on the entity type that you choose.
For entities that have titles, like properties or materials, the dialog box will contain a list of the available
entities along with their titles. For other entities, like nodes or elements, a simple dialog box is displayed
so that the ID can be typed or picked.
Example:
None
API-1078 SelectIDInSet

4.6.2.32 SelectIDInSet

SelectIDInSet
( entityTYPE, title, ID )
Description:
This function displays a selection dialog box to allow a user to choose a single entity of a specific type.
The ID of the entity is returned and is stored in the current selection set.
Input:
Type of entity to select. For more information, see Section 3.3.6,
INT4 entityTYPE
"Entity Types".
A text string that will be added to the title bar of the dialog box to
STRING title
give the user more information about what is being selected.
Select the entity from the specified SetID - for example an Output
INT4 nInSetID Vector from a specific Output Set, or a Load or Constraint Definition
from a specific Load or Constraint Set
Output:
INT4 ID The ID of the entity that was selected.
Return Code:
FE_CANCEL The user cancelled the selection.
No entities of the selected type exist. None were selected and the dia-
FE_NOT_EXIST log box was not displayed. If clear=True, the selection set will be
empty.
Remarks/Usage:
This function displays one of two different dialog boxes, depending on the entity type that you choose.
For entities that have titles, like properties or materials, the dialog box will contain a list of the available
entities along with their titles. For other entities, like nodes or elements, a simple dialog box is displayed
so that the ID can be typed or picked.
Example:
None
SelectMultiID API-1079

4.6.2.33 SelectMultiID

SelectMultiID
( entityTYPE, entitySET, title )
Description:
This function displays a multi-selection dialog box to allow a user to choose one or more entities of a
specific type. The IDs of the selected entities are stored in the current selection set.
Input:
Type of entity to select. For more information, see Section 3.3.6,
INT4 entityTYPE
"Entity Types".
The setID associated with the entities you want to select. For most
INT4 entitySET entities this is 1, however for some like Loads and Constraints, they
may be stored in other sets.
A text string that will be added to the title bar of the dialog box to
STRING title
give the user more information about what is being selected.
Output:
None
Return Code:
FE_CANCEL The user cancelled the selection.
Remarks/Usage:
This function will work for most entity types, however in most cases you should only use it for entities
with titles. If you use it for entities like Nodes or Elements, you will just see a potentially large list of
numbers which are not very useful for selection.
Example:
None
API-1080 SelectOutputVectorID

4.6.2.34 SelectOutputVectorID

SelectOutputVectorID
( title, outsetID, limitOutputType, limitComplex, limitToEntity, allowCorner, selID )
Description:
This function displays a selection dialog box to allow a user to choose an output vector. The ID of the
entity is returned and is stored in the current selection set.
Input:
A text string that will be added to the title bar of the dialog box to
STRING title
give the user more information about what is being selected.
The ID of the Output Set containing the list of possible vectors to
INT4 outsetID
select.
Reduces list of output vectors shown to the specified type (0=All,
INT4 limitOutputType
1=Disp, 2=Accel, 3=Force, 4=Stress, 5=Strain, 6=Temp)
Reduces list of output vectors shown based on type of real or com-
INT4 limitComplex plex data they contain (0=Magnitude, 1=Phase, 2=Real, 3=Imagi-
nary, 4=Any)
Reduces list of output vectors to those containing data on the speci-
INT4 limitToEntity
fied entity type
BOOL allowCorner If True, output vectors at element corners will also be included
Output:
INT4 selID The ID of the selected output vector.
Return Code:
FE_CANCEL The user cancelled the selection.
FE_NOT_EXIST No output vectors existed in the specified output set.
Remarks/Usage:
None
Example:
None
SelectList API-1081

4.6.2.35 SelectList

SelectList
( nNumEntity, entityTYPE )
Description:
This function displays a selection dialog box to allow a user to choose a specified number of entities of
a specific type. The IDs of the selected entities are stored in the current selection set.
Input:
INT4 nNumEntity Number of entities to be selected.
Type of entity to select. For more information, see Section 3.3.6,
INT4 entityTYPE
"Entity Types".
Output:
None
Return Code:
FE_CANCEL The user cancelled the selection.
Remarks/Usage:
The dialog box that is displayed by this method automatically closes when nNumEntity entities have
been selected.
Example:
None
API-1082 Clear

4.6.2.36 Clear

Clear
( void )
Description:
This function simply removes all selections and exclusions from the current set.
Input:
None
Output:
None
Return Code:
None
Remarks/Usage:
None
Example:
None
Remove API-1083

4.6.2.37 Remove

Remove
( id )
Description:
This function removes an ID from a selection set.
Input:
INT4 id ID to remove from the selection set.
Output:
None
Return Code:
FE_FAIL ID specifies an invalid value.
Remarks/Usage:
Any ID can be removed from a selection set. Although it has no effect, it is not an error to remove an ID
that was not currently added to a selection set, or even removing from a selection set that does not exist.
Example:
None
API-1084 RemoveRange

4.6.2.38 RemoveRange

RemoveRange
( startID, stopID, increment )
Description:
This function removes a range of IDs from a selection set.
Input:
INT4 startID The first ID to remove from the selection set.
INT4 stopID The last ID to remove from the selection set.
The ID increment between startID and stopID. Must be a positive
INT4 increment
number.
Output:
None
Return Code:
FE_FAIL ID specifies an invalid value.
Remarks/Usage:
This is just like the Remove Method, but it can be used to remove multiple IDs in one call.
Example:
None
RemoveArray API-1085

4.6.2.39 RemoveArray

RemoveArray
( nNumID, arrayID )
Description:
This function removes a list of IDs specified in an array from a selection set.
Input:
INT4 nNumID The number of IDs in the array to be removed
INT4 arrayID[0..nNumID-1] The array of IDs to be removed
Output:
None
Return Code:
FE_FAIL Unable to retrieve specified number of IDs from array.
FE_NO_MEMORY Unable to process the array.
Remarks/Usage:
This is just like the Remove Method, but it can be used to remove multiple IDs in one call.
Example:
None
API-1086 RemoveSet

4.6.2.40 RemoveSet

RemoveSet
( removeID )
Description:
This function removes all of the selected IDs in another set from the current set.
Input:
INT4 removeID ID of the selection set containing the IDs to remove.
Output:
None
Return Code:
FE_FAIL Unable to remove IDs from the specified set.
Remarks/Usage:
This function removes all IDs in the removeID set that are currently selected. If removeID contains IDs
that are not currently selected, they are skipped. This is not an error. The removeID set remains
unchanged during this command - only the current set is updated.
Example:
None
RemoveNotCommon API-1087

4.6.2.41 RemoveNotCommon

RemoveNotCommon
( nSetID )
Description:
This function removes any IDs that are not in both the current Set and the specified Set
Input:
INT4 nSetID ID of a Set that is checked for IDs that are common to the current Set
Output:
None
Return Code:
FE_FAIL Unable to remove IDs from the specified set.
Remarks/Usage:
This function removes all IDs from the current Set that are not in the selected Set. The result is that the
current Set will only contain IDs that are common to both Sets. The Set nSetID remains unchanged dur-
ing this command - only the current set is updated.
Example:
None
API-1088 RemoveNotCommonToGroup

4.6.2.42 RemoveNotCommonToGroup

RemoveNotCommonToGroup
( entityType, groupID )
Description:
This function removes any IDs that are not in both the current Set and the specified Group
Input:
The type of entities in the Group being tested. For entity information,
INT4 entityTYPE
see Section 3.3.6, "Entity Types"
INT4 groupID The ID of the group to test
Output:
None
Return Code:
FE_FAIL Unable to remove IDs from the specified set.
FE_NOT_EXIST There are no entities of the selected type in the Group
Remarks/Usage:
This function removes all IDs from the current Set that are not in the selected Group of the specified
entityTYPE. The result is that the current Set will only contain IDs that are common to the Set and the
Group. The Group remains unchanged during this command - only the current set is updated.
Example:
None
RemoveGroup API-1089

4.6.2.43 RemoveGroup

RemoveGroup
( entityType, groupID )
Description:
This function removes any IDs that are in a Group
Input:
The type of entities in the Group being tested. For entity information,
INT4 entityTYPE
see Section 3.3.6, "Entity Types"
INT4 groupID The ID of the group to test
Output:
None
Return Code:
FE_FAIL Unable to remove IDs from the specified set.
FE_NOT_EXIST There are no entities of the selected type in the Group
Remarks/Usage:
This function removes all IDs from the current Set that are in the selected Group and entityType. The
Group is unchanged.
Example:
None
API-1090 RemoveInternalCurves

4.6.2.44 RemoveInternalCurves

RemoveInternalCurves
( )
Description:
This function removes the IDs of any curves that are internal to a boundary/compound surface
Input:
None
Output:
None
Return Code:
FE_OK
Remarks/Usage:
None
Example:
None
HasCommon API-1091

4.6.2.45 HasCommon

HasCommon
( nSetID )
Description:
This function checks to see if there are any common IDs between two Sets
Input:
INT4 nSetID The ID of the Set to check for common IDs with the current Set
Output:
None
Return Code:
FE_OK Common IDs exist between the two Sets
FE_FAIL There are no common IDs in the Sets.
Remarks/Usage:
Neither Set is changed by this method, it simply looks for the same ID in both Sets.
Example:
None
API-1092 HasNotCommon

4.6.2.46 HasNotCommon

HasNotCommon
( nSetID )
Description:
This function checks to see if there are any IDs in the current Set that are not in the specified Set
Input:
INT4 nSetID The ID of the Set to check with the current Set
Output:
None
Return Code:
FE_OK At least one ID in the current Set is not in the specified Set
FE_FAIL All IDs in the current Set are also in the specified Set
Remarks/Usage:
Neither Set is changed by this method, it simply looks for common IDs in both Sets.
Example:
None
Reload API-1093

4.6.2.47 Reload

Reload
( oldSet )
Description:
This function reloads a saved selection set. This method is obsolete and should be replaced with
Reload2().
Input:
The ID of the selection set to reload. This ID can be determined by
INT4 oldSet
querying the ID property of a set.
Output:
None
Return Code:
FE_FAIL The oldSet selection set does not exist or is empty.
Remarks/Usage:
Selection sets can be made to persist across programs or modeling sessions using the Save property. If a
set is saved, it can be reloaded with this method.

If you reload a Set with this method, you must manually also set Save to True if you want the set to
persist after the object you reload into is destroyed.

Do not use this method in a loop where the Set object is reused to load multiple saved sets. This process
is unsupported and will cause random overwrites and loss of saved set data. If this is required you
should use Reload2() or code so Reload() is only called once per Set object, setting the save property
then destroying the object. See Example.
Example:
API-1094 Reload

Reload
( oldSet )
Dim App As femap.model
Sub Main
Set App = feFemap()

For i = 1 To 20
getSet( i )
Next i
End Sub

Sub getSet( i )

Dim fs As femap.Set
Set fs = App.feSet
Dim s As String

rc = fs.Reload( i )
fs.Save = True
s = "ID = " + Str( fs.ID ) + ", Count = " + Str( fs.Count )
App.feAppMessage ( FCM_COMMAND, s )

End Sub
Reload2 API-1095

4.6.2.48 Reload2

Reload2
( oldSet )
Description:
This function reloads a saved selection set. This function replaces Reload()
Input:
The ID of the selection set to reload. This ID can be determined by
INT4 oldSet
querying the ID property of a set.
Output:
None
Return Code:
FE_FAIL The oldSet selection set does not exist or is empty.
Remarks/Usage:
Selection sets can be made to persist across programs or modeling sessions using the Save property. If a
set is saved, it can be reloaded with this method.

If you reload a Set with this method, you must manually also set Save to True if you want the set to
persist after the object you reload into is destroyed.

This Method replaces Reload and is safe to use in a loop where a single Set object is used to load multi-
ple saved sets.
Example:
Sub Main
Dim App As femap.model
Set App = feFemap()
Dim fs As femap.Set
Set fs = App.feSet
Dim s As String
Dim rc As Long

For i = 1 To 10000
rc = fs.Reload2( i )
If rc = FE_OK Then
If fs.Count() > 0 Then
s = "ID = " + Str( fs.ID ) + ", Count = " + Str( fs.Count )
App.feAppMessage ( FCM_COMMAND, s )
End If
End If
Next i
End Sub
API-1096 Reset

4.6.2.49 Reset

Reset
( void )
Description:
This function resets the next pointer so that the next call to next will return the first entry in a selection
set.
Input:
None
Output:
None
Return Code:
None
Remarks/Usage:
To find the first ID in a set, you must use the Reset method before calling Next. If you have just created
a set and have not used Next, it is already reset.
Example:
None
Next API-1097

4.6.2.50 Next

Next
( void )
Description:
This function returns the next selected ID in a selection set
Input:
None
Output:
None
Return Code:
Any Positive Number The next selected ID.
FE_FAIL No additional IDs were selected.
Remarks/Usage:
To find the first ID in a set, you must use the Reset method before calling Next. If you have just created
a set and have not used Next, it is already reset.
This function updates internal pointers in the Set so that if you call it repeatedly it will walk through all
IDs.
Example:
None
API-1098 NextAfter

4.6.2.51 NextAfter

NextAfter
( nStartID )
Description:
This function returns the next higher ID after the specified starting ID
Input:
INT4 nStartID The starting ID
Output:
None
Return Code:
Any Positive Number The next ID higher/larger than the starting ID.
FE_FAIL No additional IDs were selected.
Remarks/Usage:
Unlike Next( ), this method does not rely on the internal pointers, nor Reset( ) - it simply uses the start-
ing ID that you supply.
Example:
None
NextEmptyAfter API-1099

4.6.2.52 NextEmptyAfter

NextEmptyAfter
( nStartID )
Description:
This function returns the first empty ID after the specified starting ID
Input:
INT4 nStartID The starting ID
Output:
None
Return Code:
Any Positive Number The next empty ID higher/larger than the starting ID.
FE_FAIL No additional IDs were selected.
Remarks/Usage:
Unlike Next( ), this method does not rely on the internal pointers, nor Reset( ) - it simply uses the start-
ing ID that you supply.
Example:
None
API-1100 NextID

4.6.2.53 NextID

NextID
( void )
Description:
This function returns the next selected ID in a selection set.
Input:
None
Output:
None
Return Code:
Any Positive Number The next selected ID.
FE_FAIL No additional IDs were selected.
Remarks/Usage:
This function is just like Next() except that it just returns the next ID. It does not increment the internal
pointers, so if you repeatedly call NextID( ), you will get the same ID every time.
Example:
None
Prev API-1101

4.6.2.54 Prev

Prev
( void )
Description:
This function returns the previous selected ID in a selection set
Input:
None
Output:
None
Return Code:
Any Positive Number The previous selected ID.
FE_FAIL No additional IDs were selected.
Remarks/Usage:
To find the last ID in a set, you must use the Reset method before calling Prev. If you have just created a
set and have not used Prev, it is already reset.
This function updates internal pointers in the Set so that if you call it repeatedly it will walk through all
IDs.
Example:
None
API-1102 PrevBefore

4.6.2.55 PrevBefore

PrevBefore
( nStartID )
Description:
This function returns the next lower ID after the specified starting ID
Input:
INT4 nStartID The starting ID
Output:
None
Return Code:
Any Positive Number The next ID lower/smaller than the starting ID.
FE_FAIL No additional IDs were selected.
Remarks/Usage:
Unlike Prev( ), this method does not rely on the internal pointers, nor Reset( ) - it simply uses the start-
ing ID that you supply.
Example:
None
PrevID API-1103

4.6.2.56 PrevID

PrevID
( void )
Description:
This function returns the previous selected ID in a selection set.
Input:
None
Output:
None
Return Code:
Any Positive Number The previous selected ID.
FE_FAIL No additional IDs were selected.
Remarks/Usage:
This function is just like Prev() except that it just returns the previous ID. It does not increment the inter-
nal pointers, so if you repeatedly call PrevID( ), you will get the same ID every time.
Example:
None
API-1104 First

4.6.2.57 First

First
( void )
Description:
This function returns the first selected ID in a selection set.
Input:
None
Output:
None
Return Code:
Any Positive Number The first selected ID.
FE_FAIL No IDs were selected.
Remarks/Usage:
The first ID is the lowest number, not the first entity added to the set. Calling this method is the same as
calling Reset( ) followed by Next( ).
Example:
None
Last API-1105

4.6.2.58 Last

Last
( void )
Description:
This function returns the last selected ID in a selection set.
Input:
None
Output:
None
Return Code:
Any Positive Number The last selected ID.
FE_FAIL No IDs were selected.
Remarks/Usage:
The last ID is the highest number, not the last entity added to the set.
Example:
None
API-1106 Match

4.6.2.59 Match

Match
( setID )
Description:
This function tests to see if the contents of set setID match the current set.
Input:
INT4 setID ID of the set to compare to this set.
Output:
None
Return Code:
FE_FAIL Sets do not match.
Remarks/Usage:
To match, the two sets must include all of the same IDs.
Example:
None
Copy API-1107

4.6.2.60 Copy

Copy
( origID )
Description:
This function makes a duplicate copy of a selection set.
Input:
INT4 origID ID of the selection set to duplicate.
Output:
None
Return Code:
FE_FAIL Unable to create the specified set.
Remarks/Usage:
If the current set already existed and contained selected IDs, those will be deleted prior to copying. The
resulting copy will always match the original.
Example:
None
API-1108 CopyToClipboard

4.6.2.61 CopyToClipboard

CopyToClipboard
( bAsList )
Description:
This function copies the IDs of the selected entities to the Clipboard as text.
Input:
If True, the IDs are placed on the clipboard in a format that is one ID
per line. If False, ranges of consecutive IDs are placed on the clip-
BOOL bAsList
board in the format startID, stopID, increment on each line.
stopID is zero if a single ID is selected in this format.
Output:
None
Return Code:
None
Remarks/Usage:
None
Example:
None
Count API-1109

4.6.2.62 Count

Count
( void )
Description:
This function counts the number of IDs that are currently selected in the set.
Input:
None
Output:
None
Return Code:
count The number of IDs in the set.
Remarks/Usage:
This function simply looks at each of the selected IDs and counts the number that it finds.
Example:
None
API-1110 CountCommon

4.6.2.63 CountCommon

CountCommon
( setID )
Description:
This function counts the number of IDs that are in the current set that are also in the specified set.
Input:
INT4 setID The ID of another set to compare this set to.
Output:
None
Return Code:
count The number of common IDs
Remarks/Usage:
None
Example:
None
CountNotCommon API-1111

4.6.2.64 CountNotCommon

CountNotCommon
( setID )
Description:
This function counts the number of IDs that are in the current set that are not in the specified set.
Input:
INT4 setID The ID of another set to compare this set to.
Output:
None
Return Code:
count The number of IDs that are not in both sets
Remarks/Usage:
None
Example:
None
API-1112 DeleteAll

4.6.2.65 DeleteAll

DeleteAll
( void )
Description:
This function simply deletes Sets which are saved in the model.
Input:
None
Output:
None
Return Code:
None
Remarks/Usage:
Great caution must be used when using this method. It deletes ALL sets in the model without any
further notification. Any set objects in your program file will also be cleared.
Example:
None
GetArray API-1113

4.6.2.66 GetArray

GetArray
( numID, arrayID )
Description:
This function adds an array of IDs into a selection set.
Input:
None
Output:
INT4 numID The number of entries in the set
INT4 arrayID[0..numID-1] The array of all IDs in the set.
Return Code:
FE_NOT_EXIST No IDs are in the set
FE_NO_MEMORY Unable to allocate working memory to retrieve contents of set
Remarks/Usage:
None
Example:
None
API-1114 ConvertToAllCurves

4.6.2.67 ConvertToAllCurves

ConvertToAllCurves
( void )
Description:
This function expands the current Set to contain all curves referenced by what is currently in the Set
Input:
None
Output:
None
Return Code:
FE_OK Expanded Set
Remarks/Usage:
If any Combined Curves are in the Set, then all curves used to define them are also added. If any Curves
used to define Combined Curves are in the Set, then those Combined Curves are also added.
Example:
None
ConvertToCombinedCurves API-1115

4.6.2.68 ConvertToCombinedCurves

ConvertToCombinedCurves
( void )
Description:
This function replaces curves that are used to define Combined Curves with the Combined Curve.
Input:
None
Output:
None
Return Code:
FE_OK Expanded Set
Remarks/Usage:
If any Curves used to define Combined Curves are in the Set, then those curves are removed, and the
Combined Curves are added. Other Curves, either Combined Curves themselves, or curves not used to
define Combined Curves are not changed in the Set.
Example:
None
API-1116 ConvertToCombinedCurvesOnly

4.6.2.69 ConvertToCombinedCurvesOnly

ConvertToCombinedCurvesOnly
( void )
Description:
This function replaces curves that are used to define Combined Curves with the Combined Curve and
removes all others.
Input:
None
Output:
None
Return Code:
FE_OK Expanded Set
Remarks/Usage:
If any Curves used to define Combined Curves are in the Set, then those curves are removed, and the
Combined Curves are added. Other Curves, either Combined Curves themselves, or curves not used to
define Combined Curves are all removed from the Set.
Example:
None
ConvertToInternalCurves API-1117

4.6.2.70 ConvertToInternalCurves

ConvertToInternalCurves
( void )
Description:
This function replaces any Combined Curves in the Set with the curves used to define them.
Input:
None
Output:
None
Return Code:
FE_OK Expanded Set
Remarks/Usage:
If any Combined Curves are in the Set, then those curves are removed, and the curves used to define
them are added. Other curves are not changed in the Set.
Example:
None
API-1118 ConvertToAllSurfaces

4.6.2.71 ConvertToAllSurfaces

ConvertToAllSurfaces
( void )
Description:
This function expands the current Set to contain all surfaces referenced by what is currently in the Set
Input:
None
Output:
None
Return Code:
FE_OK Expanded Set
Remarks/Usage:
If any Combined Surfaces are in the Set, then all surfaces used to define them are also added. If any Sur-
faces used to define Combined Surfaces are in the Set, then those Combined Surfaces are also added.
Example:
None
ConvertToBoundarySurfaces API-1119

4.6.2.72 ConvertToBoundarySurfaces

ConvertToBoundarySurfaces
( void )
Description:
This function replaces surfaces that are used to define Combined Surfaces with the Combined Surface.
Input:
None
Output:
None
Return Code:
FE_OK Expanded Set
Remarks/Usage:
If any Surfaces used to define Combined Surfaces are in the Set, then those surfaces are removed, and
the Combined Surfaces are added. Other Surfaces, either Combined Surfaces themselves, or surfaces
not used to define Combined Surfaces are not changed in the Set.
Example:
None
API-1120 ConvertToBoundarySurfacesOnly

4.6.2.73 ConvertToBoundarySurfacesOnly

ConvertToBoundarySurfacesOnly
( void )
Description:
This function replaces surfaces that are used to define Combined Surfaces with the Combined Surface
and removes all others.
Input:
None
Output:
None
Return Code:
FE_OK Expanded Set
Remarks/Usage:
If any Surfaces used to define Combined Surfaces are in the Set, then those surfaces are removed, and
the Combined Surfaces are added. Other Surfaces, either Combined Surfaces themselves, or surfaces
not used to define Combined Surfaces are all removed from the Set.
Example:
None
ConvertToInternalSurfaces API-1121

4.6.2.74 ConvertToInternalSurfaces

ConvertToInternalSurfaces
( void )
Description:
This function replaces any Combined Surfaces in the Set with the surfaces used to define them.
Input:
None
Output:
None
Return Code:
FE_OK Expanded Set
Remarks/Usage:
If any Combined Surfaces are in the Set, then those surfaces are removed, and the surfaces used to
define them are added. Other surfaces are not changed in the Set.
Example:
None
API-1122 EmptyBlock

4.6.2.75 EmptyBlock

EmptyBlock
( nStartID, nCount, nFirstEmptyID )
Description:
This function returns the first empty ID of an empty block of IDs of a specified size, after the specified
starting ID
Input:
INT4 nStartID ID used to begin searching
INT4 nCount Size of empty block needed to be found
Output:
First available ID in the set where an empty block of the size speci-
INT4 nFirstEmptyID
fied in nCount exists
Return Code:
FE_FAIL A block of the given size could not be found in the search range.
Remarks/Usage:
As an example, a set object contains IDs 1-10 and 12-20. If nCount is set to 1, then the nFirstEmptyID
will be returned as 11, as that is the first ID where an empty block of 1 is available. If, however, nCount
is set to 2, then the nFirstEmptyID will be returned as 21, as there are no empty blocks of 2 IDs available
within the IDs already entered into the set. Finally, if nStartID is set to 12 and nCount is set to 1, then
nFirstEmptyID will be returned as 21, as the available block at 11 is not included in the search.
Example:
None
Debug API-1123

4.6.2.76 Debug

Debug
( void )
Description:
This function simply writes all of the IDs contained in a Set to the Message Window
Input:
None
Output:
None
Return Code:
FE_OK
Remarks/Usage:
This method is really only intended for Debugging. There is no particular formatting of the list of IDs
(which can be quite long), it is simply dumped in a comma-separated fashion to the Message Window
Example:
None
API-1124 AddAllSavedSetIDs

4.6.2.77 AddAllSavedSetIDs

AddAllSavedSetIDs
( void )
Description:
This method will add the IDs of the Sets currently saved to this set.
Input:
None
Output:
None
Return Code:
None
Remarks/Usage:
None
Example:
None
Show API-1125

4.6.2.78 Show

Show
( entityType )
Description:
Uses the current settings of the Window, Show Entities command to highlight all of the entities of the
selected entity type currently in the group, in the graphics window
Input:
Type of entity to select. For more information, see Section 3.3.6,
INT4 entityTYPE
"Entity Types".
Output:
None
Return Code:

Remarks/Usage:

Example:
None
API-1126 Show
API-1127

4.7 Sort Objects


The Sort object is similar to the Set object, in that it is used to contain lists of IDs. This object how-
ever holds the IDs in a prescribed order - normally the order they were added to the object. The
order however can be changed by sorting based on various criteria - hence the name of the object.
This object is not used directly as input to other objects or methods, rather it can be used in your
code to traverse entities in a particular sorted order.
Use the feSort method of the FEMAP Application object to create Sort objects.

4.7.1 Sort Object Properties

Property Description
INT4 ID The internal ID of the object.
REAL8 dReal1 Real Values associated with an entry in the object
REAL8 dReal2
REAL8 dReal3
INT4 nInt1 Integer Values associated with an entry in the object
INT4 nInt2
INT4 nInt3
INT4 eDataType Entity Type that is associated with an entry in the object. For
possible values, refer to Section 3.3.6, "Entity Types"
API-1128 Add

4.7.2 Sort Object Methods


4.7.2.1 Add

Add
( id )
Description:
This function adds an ID into a sort object.
Input:
INT4 id ID to add to the sort object.
Output:
None
Return Code:
ID specifies an invalid value or memory can not be allocated for
FE_FAIL
additional IDs.
FE_NOT_AVAILABLE ID has already been added into object. IDs can only be added once.
Remarks/Usage:
The ID that you are adding to the sort object is just that, an ID. Although it usually represents the ID of
some other existing entity in your model, there is no requirement for this.

This method adds the ID and associates the current values of the dRealX, nIntX and eDataType proper-
ties with this ID. Therefore, if you want to later sort this object, you can first set the property values,
then call this method to add an entry. Alternatively, you can use one of the other Add type functions to
load both the ID and properties in one call.
Example:
None
AddReal API-1129

4.7.2.2 AddReal

AddReal
( id, dReal1, dReal2, dReal3 )
Description:
This function adds an ID and associated real properties into a sort object.
Input:
INT4 id ID to add to the sort object.
REAL8 dReal1
REAL8 dReal2 Real properties to associate with ID
REAL8 dReal3
Output:
None
Return Code:
ID specifies an invalid value or memory can not be allocated for
FE_FAIL
additional IDs.
FE_NOT_AVAILABLE ID has already been added into object. IDs can only be added once.
Remarks/Usage:
The ID that you are adding to the sort object is just that, an ID. Although it usually represents the ID of
some other existing entity in your model, there is no requirement for this.

This method adds the ID and sets the values of the dRealX properties. The current values of nIntX and
eDataType properties are also associated with this ID.
Example:
None
API-1130 AddInt

4.7.2.3 AddInt

AddInt
( id, nInt1, nInt2, nInt3 )
Description:
This function adds an ID and associated integer properties into a sort object.
Input:
INT4 id ID to add to the sort object.
INT4 nInt1
INT4 nInt2 Integer properties to associate with ID
INT4 nInt3
Output:
None
Return Code:
ID specifies an invalid value or memory can not be allocated for
FE_FAIL
additional IDs.
FE_NOT_AVAILABLE ID has already been added into object. IDs can only be added once.
Remarks/Usage:
The ID that you are adding to the sort object is just that, an ID. Although it usually represents the ID of
some other existing entity in your model, there is no requirement for this.

This method adds the ID and sets the values of the nIntX properties. The current values of dRealX and
eDataType properties are also associated with this ID.
Example:
None
AddAll API-1131

4.7.2.4 AddAll

AddAll
( id, dReal1, dReal2, dReal3, nInt1, nInt2, nInt3, eDataType )
Description:
This function adds an ID and associated integer properties into a sort object.
Input:
INT4 id ID to add to the sort object.
REAL8 dReal1
REAL8 dReal2 Real properties to associate with ID
REAL8 dReal3
INT4 nInt1
INT4 nInt2 Integer properties to associate with ID
INT4 nInt3
Entity Type that is associated with an entry in the object. For possi-
INT4 eDataType
ble values, refer to Section 3.3.6, "Entity Types"
Output:
None
Return Code:
ID specifies an invalid value or memory can not be allocated for
FE_FAIL
additional IDs.
FE_NOT_AVAILABLE ID has already been added into object. IDs can only be added once.
Remarks/Usage:
The ID that you are adding to the sort object is just that, an ID. Although it usually represents the ID of
some other existing entity in your model, there is no requirement for this.

This method adds the ID and sets the values of all of the properties.
Example:
None
API-1132 SetData

4.7.2.5 SetData

SetData
( id, dReal1, dReal2, dReal3, nInt1, nInt2, nInt3, eDataType )
Description:
This function updates the properties associated with an already added ID.
Input:
ID to update in the sort object. This ID must have been already added
INT4 id
to the object.
REAL8 dReal1
REAL8 dReal2 Real properties to associate with ID
REAL8 dReal3
INT4 nInt1
INT4 nInt2 Integer properties to associate with ID
INT4 nInt3
Entity Type that is associated with an entry in the object. For possi-
INT4 eDataType
ble values, refer to Section 3.3.6, "Entity Types"
Output:
None
Return Code:
FE_FAIL The specified ID could not be found in the object.
Remarks/Usage:
As an alternative to setting the properties prior to, or at the same time as you add IDs into the object, you
can simply add IDs and update the associated values with this method.
Example:
None
SetReal API-1133

4.7.2.6 SetReal

SetReal
( id, dReal1, dReal2, dReal3 )
Description:
This function updates the real properties associated with an already added ID.
Input:
ID to update in the sort object. This ID must have been already added
INT4 id
to the object.
REAL8 dReal1
REAL8 dReal2 Real properties to associate with ID
REAL8 dReal3
Output:
None
Return Code:
FE_FAIL The specified ID could not be found in the object.
Remarks/Usage:
As an alternative to setting the properties prior to, or at the same time as you add IDs into the object, you
can simply add IDs and update the associated real property values with this method.
Example:
None
API-1134 SetInt

4.7.2.7 SetInt

SetInt
( id, nInt1, nInt2, nInt3 )
Description:
This function updates the integer properties associated with an already added ID.
Input:
ID to update in the sort object. This ID must have been already added
INT4 id
to the object.
INT4 nInt1
INT4 nInt2 Integer properties to associate with ID
INT4 nInt3
Output:
None
Return Code:
FE_FAIL The specified ID could not be found in the object.
Remarks/Usage:
As an alternative to setting the properties prior to, or at the same time as you add IDs into the object, you
can simply add IDs and update the associated integer property values with this method.
Example:
None
SetDataType API-1135

4.7.2.8 SetDataType

SetDataType
( id, eDataType )
Description:
This function updates the entity type associated with an already added ID.
Input:
ID to update in the sort object. This ID must have been already added
INT4 id
to the object.
Entity Type that is associated with an entry in the object. For possi-
INT4 eDataType
ble values, refer to Section 3.3.6, "Entity Types"
Output:
None
Return Code:
FE_FAIL The specified ID could not be found in the object.
Remarks/Usage:
As an alternative to setting the properties prior to, or at the same time as you add IDs into the object, you
can simply add IDs and update the associated entity type with this method.
Example:
None
API-1136 GetData

4.7.2.9 GetData

GetData
( id, dReal1, dReal2, dReal3, nInt1, nInt2, nInt3, eDataType )
Description:
This function retrieves the properties associated with an already added ID.
Input:
ID to update in the sort object. This ID must have been already added
INT4 id
to the object.
Output:
REAL8 dReal1
REAL8 dReal2 Real properties associated with ID
REAL8 dReal3
INT4 nInt1
INT4 nInt2 Integer properties associated with ID
INT4 nInt3
Entity Type that is associated with an entry in the object. For possi-
INT4 eDataType
ble values, refer to Section 3.3.6, "Entity Types"
Return Code:
FE_FAIL The specified ID could not be found in the object.
Remarks/Usage:
None
Example:
None
GetReal API-1137

4.7.2.10 GetReal

GetReal
( id, dReal1, dReal2, dReal3 )
Description:
This function retrieves the real properties associated with an already added ID.
Input:
ID to update in the sort object. This ID must have been already added
INT4 id
to the object.
Output:
REAL8 dReal1
REAL8 dReal2 Real properties associated with ID
REAL8 dReal3
Return Code:
FE_FAIL The specified ID could not be found in the object.
Remarks/Usage:
None
Example:
None
API-1138 GetInt

4.7.2.11 GetInt

GetInt
( id, nInt1, nInt2, nInt3 )
Description:
This function retrieves the integer properties associated with an already added ID.
Input:
ID to update in the sort object. This ID must have been already added
INT4 id
to the object.
Output:
INT4 nInt1
INT4 nInt2 Integer properties associated with ID
INT4 nInt3
Return Code:
FE_FAIL The specified ID could not be found in the object.
Remarks/Usage:
None
Example:
None
GetDataType API-1139

4.7.2.12 GetDataType

GetDataType
( id, eDataType )
Description:
This function retrieves the entity type associated with an already added ID.
Input:
ID to update in the sort object. This ID must have been already added
INT4 id
to the object.
Output:
Entity Type that is associated with an entry in the object. For possi-
INT4 eDataType
ble values, refer to Section 3.3.6, "Entity Types"
Return Code:
FE_FAIL The specified ID could not be found in the object.
Remarks/Usage:
None
Example:
None
API-1140 Find

4.7.2.13 Find

Find
( id )
Description:
This function locates an ID within the object.
Input:
INT4 id ID to locate
Output:
None
Return Code:
FE_FAIL The specified ID could not be found in the object.
FE_NOT_AVAILABLE ID specifies an invalid value.
Remarks/Usage:
If the ID is found, the dRealX, nIntX and eDataType properties are all updated to match those associ-
ated with the ID.
Example:
None
Remove API-1141

4.7.2.14 Remove

Remove
( id )
Description:
This function removes an ID from a sort object.
Input:
INT4 id ID to remove from the sort object.
Output:
None
Return Code:
FE_NOT_AVAILABLE ID specifies an invalid value.
Remarks/Usage:
None
Example:
None
API-1142 RemoveSet

4.7.2.15 RemoveSet

RemoveSet
( id )
Description:
This function removes all of the selected IDs in another sort object from the current sort object.
Input:
INT4 id ID of the sort set containing the IDs to remove.
Output:
None
Return Code:
FE_NOT_AVAILABLE Unable to remove IDs from the specified sort set.
Remarks/Usage:
None
Example:
None
IsAdded API-1143

4.7.2.16 IsAdded

IsAdded
( id )
Description:
This function checks to see if an ID is currently added into a sort object.
Input:
INT4 id ID to check.
Output:
None
Return Code:
FE_OK ID is added into the sort object.
FE_FAIL ID is not added into the sort object.
Remarks/Usage:
None
Example:
None
API-1144 Clear

4.7.2.17 Clear

Clear
( void )
Description:
This function simply removes all IDs from the current object.
Input:
None
Output:
None
Return Code:
None
Remarks/Usage:
None
Example:
None
Reset API-1145

4.7.2.18 Reset

Reset
( void )
Description:
This function resets the next pointer so that the next call to next will return the first entry in a sort object.
Input:
None
Output:
None
Return Code:
None
Remarks/Usage:
To find the first ID in a set, you must use the Reset method before calling Next. If you have just created
a set and have not used Next, it is already reset.
Example:
None
API-1146 Next

4.7.2.19 Next

Next
( void )
Description:
This function returns the next selected ID in a sort object.
Input:
None
Output:
None
Return Code:
Any Positive Number The next ID.
FE_FAIL No additional IDs were available.
Remarks/Usage:
To find the first ID in a set, you must use the Reset method before calling Next. If you have just created
a set and have not used Next, it is already reset.

When you retrieve the ID, the properties dRealX, nIntX and eDataType are all udpated to match the val-
ues associated with that ID.
Example:
None
Prev API-1147

4.7.2.20 Prev

Prev
( void )
Description:
This function returns the previous selected ID in a sort object.
Input:
None
Output:
None
Return Code:
Any Positive Number The previous ID.
FE_FAIL No additional IDs were available.
Remarks/Usage:
To find the last ID in a set, you must use the Reset method before calling Prev. If you have just created a
set and have not used Prev (or Next), it is already reset.

When you retrieve the ID, the properties dRealX, nIntX and eDataType are all udpated to match the val-
ues associated with that ID.
Example:
None
API-1148 Current

4.7.2.21 Current

Current
( void )
Description:
This function returns the currently selected ID in a sort object.
Input:
None
Output:
None
Return Code:
Any Positive Number The current ID.
FE_FAIL No ID was available.
Remarks/Usage:
This method works just like Next() and Prev(), except that it does not move to a different ID. By calling
this method, you retrieve the ID and the properties dRealX, nIntX and eDataType are all udpated to
match the values associated with that ID.
Example:
None
First API-1149

4.7.2.22 First

First
( void )
Description:
This function returns the first ID in a sort object.
Input:
None
Output:
None
Return Code:
Any Positive Number The first ID.
FE_FAIL No IDs were available.
Remarks/Usage:
The first ID is the first ID in the object, either the first added, or the first after a sort. Calling this method
is the same as calling Reset( ) followed by Next( ).

When you retrieve the ID, the properties dRealX, nIntX and eDataType are all udpated to match the val-
ues associated with that ID.
Example:
None
API-1150 Last

4.7.2.23 Last

Last
( void )
Description:
This function returns the last selected ID in a sort object.
Input:
None
Output:
None
Return Code:
Any Positive Number The last ID.
FE_FAIL No IDs were available.
Remarks/Usage:
The last ID is the last ID in the object, either the first added, or the first after a sort. Calling this method
is the same as calling Reset( ) followed by Prev( ).

When you retrieve the ID, the properties dRealX, nIntX and eDataType are all udpated to match the val-
ues associated with that ID.
Example:
None
Count API-1151

4.7.2.24 Count

Count
( void )
Description:
This function counts the number of IDs that are currently selected in the object.
Input:
None
Output:
None
Return Code:
count The number of IDs in the object.
Remarks/Usage:
This function simply looks at each of the selected IDs and counts the number that it finds.
Example:
None
API-1152 Select

4.7.2.25 Select

Select
( entityTYPE, reload, title )
Description:
This function displays a standard selection dialog box to allow a user to choose entities of a specific type
and create a sort object.
Input:
Type of entity to select. For more information, see Section 3.3.6,
INT4 entityTYPE
"Entity Types".
If True, previously selected IDs will be displayed in the dialog box
BOOL reload
for editing, or for combining with new selections.
A text string that will be added to the title bar of the dialog box to
STRING title
give the user more information about what is being selected.
Output:
None
Return Code:
FE_CANCEL The user cancelled the selection.
No entities of the selected type exist. None were selected and the dia-
FE_NOT_EXIST log box was not displayed. If clear=True, the sort object will be
empty.
Remarks/Usage:
The final selection list contains all of the IDs that were selected when the user pressed OK. If
clear=True, these are all entities that were just selected. If clear=False, it is a combination of old and
new entities.
Example:
None
SelectID API-1153

4.7.2.26 SelectID

SelectID
( entityTYPE, title, ID )
Description:
This function displays a selection dialog box to allow a user to choose a single entity of a specific type.
The ID of the entity is returned and is stored in the current sort object.
Input:
Type of entity to select. For more information, see Section 3.3.6,
INT4 entityTYPE
"Entity Types".
A text string that will be added to the title bar of the dialog box to
STRING title
give the user more information about what is being selected.
Output:
INT4 ID The ID of the entity that was selected.
Return Code:
FE_CANCEL The user cancelled the selection.
No entities of the selected type exist. None were selected and the dia-
FE_NOT_EXIST log box was not displayed. If clear=True, the sort object will be
empty.
Remarks/Usage:
This function displays one of two different dialog boxes, depending on the entity type that you choose.
For entities that have titles, like properties or materials, the dialog box will contain a list of the available
entities along with their titles. For other entities, like nodes or elements, a simple dialog box is displayed
so that the ID can be typed or picked.
Example:
None
API-1154 SelectList

4.7.2.27 SelectList

SelectList
( nNumEntity, entityTYPE )
Description:
This function displays a selection dialog box to allow a user to choose a specified number of entities of
a specific type. The IDs of the selected entities are stored in the current sort set.
Input:
INT4 nNumEntity Number of entities to be selected.
Type of entity to select. For more information, see Section 3.3.6,
INT4 entityTYPE
"Entity Types".
Output:
None
Return Code:
FE_CANCEL The user cancelled the selection.
Remarks/Usage:
The dialog box automatically closes when nNumEntity entities have been selected.
Example:
None
Sort API-1155

4.7.2.28 Sort

Sort
( bSortReal )
Description:
This function sorts the IDs in the object based on values associated with each ID
Input:
If True, the IDs are sorted based on the dRealX values, if False, the
BOOL bSortReal
sort is based on the nIntX values.
Output:
None
Return Code:
FE_FAIL No IDs are available for sorting
Remarks/Usage:
Sorting is always done in increasing order, and always using all three values. If bSortReal is True, then
the primary sort value is dReal1, the second is dReal2 and third is dReal3. The same approach follows
for nInt1, nInt2, and nInt3. Even though sorting is always done in one direction, you can traverse the list
in either direction using either Next( ) or Prev( ), so you can still retrieve IDs in decreasing order.
Example:
None
API-1156 SortRemoveDuplicates

4.7.2.29 SortRemoveDuplicates

SortRemoveDuplicates
( bSortReal )
Description:
This function is the same as Sort( ) except it also removes duplicate entries from the sorted object, leav-
ing just one of each unique entry.
Input:
If True, the IDs are sorted based on the dRealX values, if False, the
BOOL bSortReal
sort is based on the nIntX values.
Output:
None
Return Code:
FE_FAIL No IDs are available for sorting
Remarks/Usage:
Sorting is always done in increasing order, and always using all three values. If bSortReal is True, then
the primary sort value is dReal1, the second is dReal2 and third is dReal3. The same approach follows
for nInt1, nInt2, and nInt3. Even though sorting is always done in one direction, you can traverse the list
in either direction using either Next( ) or Prev( ), so you can still retrieve IDs in decreasing order.
Example:
None
ConvertToBoundarySurfaces API-1157

4.7.2.30 ConvertToBoundarySurfaces

ConvertToBoundarySurfaces
( void )
Description:
This function replaces surfaces that are used to define Combined Surfaces with the Combined Surface.
Input:
None
Output:
None
Return Code:
FE_OK Expanded Set
Remarks/Usage:
If any Surfaces used to define Combined Surfaces are in the Sort Set, then those surfaces are removed,
and the Combined Surfaces are added. Other Surfaces, either Combined Surfaces themselves, or sur-
faces not used to define Combined Surfaces are not changed in the Sort Set.
Example:
None
API-1158 AddAroundPoint

4.7.2.31 AddAroundPoint

AddAroundPoint
( entityTYPE, nSetID, vBase )
Description:
This function adds selected entities with their sort value equal to the distance from the specified loca-
tion.
Input:
The type of entities being included into the set. For entity informa-
INT4 entityTYPE tion, see Section 3.3.6, "Entity Types". Only Point and Node types
are valid.
INT4 nSetID The ID of a Set object that contains the entities to add.
The coordinates, in Global Rectangular coordinates, of the point used
REAL8 vBase[3]
to compute the sort value
Output:
None
Return Code:
FE_FAIL specified entities do not exist
FE_BAD_TYPE not a valid entityTYPE for this method
Remarks/Usage:
None
Example:
None
AddAroundVector API-1159

4.7.2.32 AddAroundVector

AddAroundVector
( entityTYPE, nSetID, vBase, vVec )
Description:
This function adds selected entities with their sort value equal to the distance from the specified vector
Input:
The type of entities being included into the set. For entity informa-
INT4 entityTYPE tion, see Section 3.3.6, "Entity Types". Only Point and Node types
are valid.
INT4 nSetID The ID of a Set object that contains the entities to add.
The coordinates, in Global Rectangular coordinates, of the base of
REAL8 vBase[3]
the vector used to compute the sort value
The components, in Global Rectangular coordinates, of the vector
REAL8 vVec[3]
used to compute the sort value
Output:
None
Return Code:
FE_FAIL specified entities do not exist
FE_BAD_TYPE not a valid entityTYPE for this method
Remarks/Usage:
None
Example:
None
API-1160 AddAroundPlane

4.7.2.33 AddAroundPlane

AddAroundPlane
( entityTYPE, nSetID, vBase, vVec, bAbs )
Description:
This function adds selected entities with their sort value equal to the distance from the specified plane
Input:
The type of entities being included into the set. For entity informa-
INT4 entityTYPE tion, see Section 3.3.6, "Entity Types". Only Point and Node types
are valid.
INT4 nSetID The ID of a Set object that contains the entities to add.
The coordinates, in Global Rectangular coordinates, of the base of
REAL8 vBase[3]
the vector used to compute the sort value
The components, in Global Rectangular coordinates, of the vector
REAL8 vVec[3]
used to compute the sort value
If False, the sort value is computed as positive if the entity is on the
BOOL bAbs side of the plane pointed to by vVec and negative if in the other
direction. If True, the sort value is simply the distance to the plane.
Output:
None
Return Code:
FE_FAIL specified entities do not exist
FE_BAD_TYPE not a valid entityTYPE for this method
Remarks/Usage:
None
Example:
None
API-1161

4.8 UserData Objects


The UserData object is used to store your own data in the FEMAP database. You can think of each
UserData object as a binary file, where you can read and write any data that you need to keep with
a model.
Even though you can always store data in your own external files, UserData objects provide some
very beneficial features. Your data is stored in the same file as the other model data. This elimi-
nates many file/data management issues, and possibilities for errors. Data stored in the same model
is always available to that model, and cannot be mixed with other models. Possibly more impor-
tantly, however, data stored in UserData objects is supported through the FEMAP Undo/Redo sys-
tem. If your data is linked to the current model state, then rolling the model back through undo will
also roll back your data. This only applies to model that is in the database, not data that is already
loaded into a UserData Object. Following an Undo/Redo, you must destroy any objects that you
are holding, and reload them from the database.
Use the feUserData method of the FEMAP Application object to create UserData Objects.

4.8.1 UserData Object Properties

Property Description
STRING title[0..159] The title assigned to this object. You can update this title before
storing an object and then later retrieve it by specifying just the
title.
INT4 size The current size, in bytes, of the data stored in this object.
INT4 ID The internal ID of the Data object. This ID is assigned when
you Put and Get the object.
INT4 setID Another name for ID
API-1162 Get

4.8.2 UserData Object Methods


4.8.2.1 Get

Get
( entID )
Description:
Loads a data object that was previously stored with this entID.
Input:
INT4 entID The entity ID of the data object that will be loaded.
Output:
None
Return Code:
Unable to load the data object. Either it does not exist, or there is no
FE_NOT_EXIST
data in it.
FE_NO_MEMORY Unable to allocate memory for data buffering.
Remarks/Usage:
You must call this function, or GetTitle( ), to reload objects that have been stored in the model.
Example:
None
GetTitle API-1163

4.8.2.2 GetTitle

GetTitle
( title )
Description:
Loads a data object that was previously stored with this title.
Input:
STRING title[0..159] The title of the object to load.
Output:
None
Return Code:
Unable to load the data object. Either it does not exist, or there is no
FE_NOT_EXIST
data in it.
FE_NO_MEMORY Unable to allocate memory for data buffering.
Remarks/Usage:
To use this method to retrieve an object, it must have had its title property defined prior to being Put to
the database. The title specified here must be an exact match, including case, to the title specified when
the object was stored. Using titles to store and retrieve data objects can eliminate conflicts between data
stored from various programs.
Example:
None
API-1164 Put

4.8.2.3 Put

Put
( entID )
Description:
Stores data from the current data object.
Input:
INT4 entID The ID of the object to store.
Output:
None
Return Code:
FE_FAIL Unable to store the data object.
Remarks/Usage:
You must set the title property prior to using this method if you want to use GetTitle to retrieve the
object. You do not have to set the title if you plan on using Get to retrieve the object. Using this method
will always overwrite any data that was previously stored with the same entID - even if it was not from
your program - for that reason we recommend using PutTitle - with unique titles - whenever possible.

Data must be Put to the model database before it will be kept with the model, and before it will be sup-
ported by Undo/Redo.
Example:
None
PutTitle API-1165

4.8.2.4 PutTitle

PutTitle
( title )
Description:
Stores data from the current data object.
Input:
STRING title[0..159] The title of the object to store.
Output:
None
Return Code:
FE_FAIL Unable to store the data object.
Remarks/Usage:
There is no need to set the title property prior to using this method - that is done automatically. This
method will automatically find and overwrite any previous data with the same title - you should always
specify a unique title to avoid this possibility - or use GetTitle to test if there is other data using the same
title. If no data object exists in the database with a matching title, this method simply finds an unused ID
and stores the object.

Data must be Put to the model database before it will be kept with the model, and before it will be sup-
ported by Undo/Redo.
Example:
None
API-1166 Clear

4.8.2.5 Clear

Clear
( void )
Description:
This function simply removes all data from the current UserData object.
Input:
None
Output:
None
Return Code:
None
Remarks/Usage:
None
Example:
None
Reset API-1167

4.8.2.6 Reset

Reset
( void )
Description:
This method resets the Next pointer so that the next call to Next will return the first (lowest ID) User-
Data.
Input:
None
Output:
None
Return Code:
None
Remarks/Usage:
After calling Reset, Next will return the first entity and Prev will return the last (highest ID) UserData.
Example:
None
API-1168 Next

4.8.2.7 Next

Next
( void )
Description:
This method retrieves the next available UserData with a larger ID.
Input:
None
Output:
None
Return Code:
FE_FAIL No additional entities were found.
Remarks/Usage:
Calling this method simply finds the next available UserData with an ID that is greater than the current
ID, and calls the Get method with that ID.
Example:
None
Prev API-1169

4.8.2.8 Prev

Prev
( void )
Description:
This method retrieves the next available UserData with a smaller ID.
Input:
None
Output:
None
Return Code:
FE_FAIL No additional entities were found.
Remarks/Usage:
Calling this method simply finds the next available UserData with an ID that is smaller than the current
ID, and calls the Get method with that ID.
Example:
None
API-1170 First

4.8.2.9 First

First
( void )
Description:
This method loads the first (with the lowest ID) available UserData.
Input:
None
Output:
None
Return Code:
FE_FAIL No entities exist, or unable to load.
Remarks/Usage:
Calling this method is like calling Reset, followed by Next.
Example:
None
Last API-1171

4.8.2.10 Last

Last
( void )
Description:
This method loads the last (with the highest ID) available UserData.
Input:
None
Output:
None
Return Code:
FE_FAIL No entities exist, or unable to load.
Remarks/Usage:
Calling this method is like calling Reset, followed by Prev.
Example:
None
API-1172 NextSet

4.8.2.11 NextSet

NextSet
( void )
Description:
This method updates the setID to be the next existing UserData object.
Input:
None
Output:
None
Return Code:
FE_FAIL No more sets available.
Remarks/Usage:
If no more sets are found, setID remains unchanged. This method finds the next set with a higher ID.
Example:
None
PrevSet API-1173

4.8.2.12 PrevSet

PrevSet
( void )
Description:
This method updates the setID to be the previous existing UserData object.
Input:
None
Output:
None
Return Code:
FE_FAIL No more sets available.
Remarks/Usage:
If no more sets are found, setID remains unchanged. This method finds the next UserData with a lower
ID.
Example:
None
API-1174 NextEmptySet

4.8.2.13 NextEmptySet

NextEmptySet
( void )
Description:
This method updates the setID to be the next empty UserData object.
Input:
None
Output:
None
Return Code:
FE_FAIL No more sets available.
Remarks/Usage:
If no more empty sets are found, setID remains unchanged. This method finds the next setID that does
not contain any UserData.
Example:
None
PrevEmptySet API-1175

4.8.2.14 PrevEmptySet

PrevEmptySet
( void )
Description:
This method updates the setID to be the previous empty UserData object.
Input:
None
Output:
None
Return Code:
FE_FAIL No more sets available.
Remarks/Usage:
If no more empty sets are found, setID remains unchanged. This method finds the previous setID that
does not contain any UserData.
Example:
None
API-1176 Exist

4.8.2.15 Exist

Exist
( id )
Description:
This method checks to see if a specific UserData exists
Input:
INT4 id The ID of the UserData to check.
Output:
None
Return Code:
FE_FAIL The selected entity does not exist.
Remarks/Usage:
This method does not load any data. It simply returns FE_OK if the UserData exists, and FE_FAIL if it
does not.
Example:
None
Deletable API-1177

4.8.2.16 Deletable

Deletable
( id )
Description:
This method checks to see if a specific UserData is deletable
Input:
INT4 id The ID of the UserData to check.
Output:
None
Return Code:
None
Remarks/Usage:
This method is currently not used. It will always return FE_OK.
Example:
None
API-1178 Delete

4.8.2.17 Delete

Delete
( entID )
Description:
Deletes the data object from the database with the specified ID.
Input:
INT4 entID The ID of the object to delete.
Output:
None
Return Code:
FE_FAIL Unable to delete the data object.
Remarks/Usage:
Deleting a data object is permanent. The data is removed from the database; however, the data can
return if you undo past the point of the deletion.
Example:
None
DeleteTitle API-1179

4.8.2.18 DeleteTitle

DeleteTitle
( title )
Description:
Deletes the data object from the database with the specified title.
Input:
STRING title[0..159] The title of the object to delete.
Output:
None
Return Code:
FE_FAIL Unable to delete the data object.
Remarks/Usage:
Deleting a data object is permanent. The data is removed from the database; however, the data can
return if you undo past the point of the deletion.
Example:
None
API-1180 Position

4.8.2.19 Position

Position
( void )
Description:
Returns the current location in the data object where you are reading or writing.
Input:
None
Output:
None
Return Code:
INT4 position The current data object location.
Remarks/Usage:
This function can be used with Jump to reposition to a specific object location for rereading or
rewriting.
Example:
None
Jump API-1181

4.8.2.20 Jump

Jump
( jumpto )
Description:
Repositions the location in the data object where the next read or write will occur.
Input:
The position to move to. Specify jumpto=-1 to move to the end of the
INT4 jumpto
object, or jumpto=0 to move to the beginning of the object.
Output:
None
Return Code:
Unable to move to the specified location. Position must be less than
FE_FAIL
the total size of data in the object.
Remarks/Usage:
You should only specify jumpto as a value that you previously retrieved from a call to Position. Com-
puting numbers yourself is prone to error because of extra data need to store arrays and certain data
types.
Example:
None
API-1182 AtEOF

4.8.2.21 AtEOF

AtEOF
( void )
Description:
Indicates whether the current position for reading/writing is at the end of the data in the object.
Input:
None
Output:
None
Return Code:
At the end of the object. If you are reading from the object, you
FE_OK
should stop at this point. Writes will append to the object.
Not at the end of the object. You can continue reading. Writes will
FE_FAIL
overwrite previous data.
Remarks/Usage:
You can use this check to determine when you reach the end of the data in an object.
Example:
None
Truncate API-1183

4.8.2.22 Truncate

Truncate
( position )
Description:
Deletes all data in an object after the specified position.
Input:
The position to truncate the data in the object. Essentially the size of
INT4 position
the data in the remaining object.
Output:
None
Return Code:
Unable to truncate, position probably not between 0 and the size of
FE_FAIL
data in the object.
Remarks/Usage:
Truncating data in an object only changes the current object. Changes must be Put to the database to be
made permanent. The current reading/writing position is moved to the end of the object (position) fol-
lowing this method.
Example:
None
API-1184 WriteDouble

4.8.2.23 WriteDouble

WriteDouble
( val )
Description:
Writes a single double value to the current object.
Input:
REAL8 val The value to add to the current object.
Output:
None
Return Code:
FE_NO_MEMORY Unable to allocate enough memory to add the specified value.
FE_INVALID Invalid size for the data specified.
Remarks/Usage:
The specified value will be added to the object at the current position. You can change this position with
the Position method prior to calling this method. Data that is added to the object, with any of the write
methods, is not be saved to the model database until you call Put or PutTitle.
Example:
None
WriteFloat API-1185

4.8.2.24 WriteFloat

WriteFloat
( val )
Description:
Writes a single float value to the current object.
Input:
REAL4 val The value to add to the current object.
Output:
None
Return Code:
FE_NO_MEMORY Unable to allocate enough memory to add the specified value.
FE_INVALID Invalid size for the data specified.
Remarks/Usage:
The specified value will be added to the object at the current position. You can change this position with
the Position method prior to calling this method. Data that is added to the object, with any of the write
methods, is not be saved to the model database until you call Put or PutTitle.
Example:
None
API-1186 WriteLong

4.8.2.25 WriteLong

WriteLong
( val )
Description:
Writes a single long value to the current object.
Input:
INT4 val The value to add to the current object.
Output:
None
Return Code:
FE_NO_MEMORY Unable to allocate enough memory to add the specified value.
FE_INVALID Invalid size for the data specified.
Remarks/Usage:
The specified value will be added to the object at the current position. You can change this position with
the Position method prior to calling this method. Data that is added to the object, with any of the write
methods, is not be saved to the model database until you call Put or PutTitle.
Example:
None
WriteShort API-1187

4.8.2.26 WriteShort

WriteShort
( val )
Description:
Writes a single short value to the current object.
Input:
INT2 val The value to add to the current object.
Output:
None
Return Code:
FE_NO_MEMORY Unable to allocate enough memory to add the specified value.
FE_INVALID Invalid size for the data specified.
Remarks/Usage:
The specified value will be added to the object at the current position. You can change this position with
the Position method prior to calling this method. Data that is added to the object, with any of the write
methods, is not be saved to the model database until you call Put or PutTitle.
Example:
None
API-1188 WriteBool

4.8.2.27 WriteBool

WriteBool
( val )
Description:
Writes a single bool value to the current object.
Input:
BOOL val The value to add to the current object.
Output:
None
Return Code:
FE_NO_MEMORY Unable to allocate enough memory to add the specified value.
FE_INVALID Invalid size for the data specified.
Remarks/Usage:
The specified value will be added to the object at the current position. You can change this position with
the Position method prior to calling this method. Data that is added to the object, with any of the write
methods, is not be saved to the model database until you call Put or PutTitle.
Example:
None
WriteDoubleArray API-1189

4.8.2.28 WriteDoubleArray

WriteDoubleArray
( num, val )
Description:
Writes an array of double values to the current object.
Input:
INT4 num The number of entries in the val array that you want to write.
REAL8 val[0..num-1] The values to add to the current object.
Output:
None
Return Code:
The array that you specified is not large enough for the number of
FE_TOO_SMALL
entries that you specified.
The type of data in the array that you passed is not of the type
FE_BAD_TYPE
required for this method.
FE_NO_MEMORY Unable to allocate enough memory to add the specified value.
FE_INVALID Invalid size for the data specified.
Remarks/Usage:
The specified values will be added to the object at the current position. You can change this position
with the Position method prior to calling this method. Data that is added to the object, with any of the
write methods, is not be saved to the model database until you call Put or PutTitle.
Example:
None
API-1190 WriteLongArray

4.8.2.29 WriteLongArray

WriteLongArray
( num, val )
Description:
Writes an array of long values to the current object.
Input:
INT4 num The number of entries in the val array that you want to write.
INT4 val[0..num-1] The values to add to the current object.
Output:
None
Return Code:
The array that you specified is not large enough for the number of
FE_TOO_SMALL
entries that you specified.
The type of data in the array that you passed is not of the type
FE_BAD_TYPE
required for this method.
FE_NO_MEMORY Unable to allocate enough memory to add the specified value.
FE_INVALID Invalid size for the data specified.
Remarks/Usage:
The specified values will be added to the object at the current position. You can change this position
with the Position method prior to calling this method. Data that is added to the object, with any of the
write methods, is not be saved to the model database until you call Put or PutTitle.
Example:
None
WriteBoolArray API-1191

4.8.2.30 WriteBoolArray

WriteBoolArray
( num, val )
Description:
Writes an array of bool values to the current object.
Input:
INT4 num The number of entries in the val array that you want to write.
BOOL val[0..num-1] The values to add to the current object.
Output:
None
Return Code:
The array that you specified is not large enough for the number of
FE_TOO_SMALL
entries that you specified.
The type of data in the array that you passed is not of the type
FE_BAD_TYPE
required for this method.
FE_NO_MEMORY Unable to allocate enough memory to add the specified value.
FE_INVALID Invalid size for the data specified.
Remarks/Usage:
The specified values will be added to the object at the current position. You can change this position
with the Position method prior to calling this method. Data that is added to the object, with any of the
write methods, is not be saved to the model database until you call Put or PutTitle.
Example:
None
API-1192 WriteString

4.8.2.31 WriteString

WriteString
( val )
Description:
Writes a character string to the current object.
Input:
STRING val[0..length] The string to add to the current object.
Output:
None
Return Code:
FE_NO_MEMORY Unable to allocate enough memory to add the specified value.
FE_INVALID Invalid size for the data specified.
Remarks/Usage:
The specified values will be added to the object at the current position. You can change this position
with the Position method prior to calling this method. Data that is added to the object, with any of the
write methods, is not be saved to the model database until you call Put or PutTitle.
Example:
None
ReadDouble API-1193

4.8.2.32 ReadDouble

ReadDouble
( val )
Description:
Reads a single double value from the current object.
Input:
None
Output:
REAL8 val The value to read from the current object
Return Code:
There is not enough data left in the object to read, from the current
FE_NOT_AVAILABLE
position.
FE_INVALID Invalid size for the data specified.
Remarks/Usage:
The specified value will be read from the object at the current position. You can change this position
with the Position method prior to calling this method. Data can be read from an object after a call to Get,
or after data has been added to the object with one or more Write calls (and the position has been relo-
cated before the data).
Example:
None
API-1194 ReadFloat

4.8.2.33 ReadFloat

ReadFloat
( val )
Description:
Reads a single float value from the current object.
Input:
None
Output:
REAL4 val The value to read from the current object.
Return Code:
There is not enough data left in the object to read, from the current
FE_NOT_AVAILABLE
position.
FE_INVALID Invalid size for the data specified.
Remarks/Usage:
The specified value will be read from the object at the current position. You can change this position
with the Position method prior to calling this method. Data can be read from an object after a call to Get,
or after data has been added to the object with one or more Write calls (and the position has been relo-
cated before the data).
Example:
None
ReadLong API-1195

4.8.2.34 ReadLong

ReadLong
( val )
Description:
Reads a single long value from the current object.
Input:
None
Output:
INT4 val The value to read from the current object.
Return Code:
There is not enough data left in the object to read, from the current
FE_NOT_AVAILABLE
position.
FE_INVALID Invalid size for the data specified.
Remarks/Usage:
The specified value will be read from the object at the current position. You can change this position
with the Position method prior to calling this method. Data can be read from an object after a call to Get,
or after data has been added to the object with one or more Write calls (and the position has been relo-
cated before the data).
Example:
None
API-1196 ReadShort

4.8.2.35 ReadShort

ReadShort
( val )
Description:
Reads a single short value from the current object.
Input:
None
Output:
INT2 val The value to read from the current object.
Return Code:
There is not enough data left in the object to read, from the current
FE_NOT_AVAILABLE
position.
FE_INVALID Invalid size for the data specified.
Remarks/Usage:
The specified value will be read from the object at the current position. You can change this position
with the Position method prior to calling this method. Data can be read from an object after a call to Get,
or after data has been added to the object with one or more Write calls (and the position has been relo-
cated before the data).
Example:
None
ReadBool API-1197

4.8.2.36 ReadBool

ReadBool
( val )
Description:
Reads a single bool value from the current object.
Input:
None
Output:
BOOL val The value to read from the current object.
Return Code:
There is not enough data left in the object to read, from the current
FE_NOT_AVAILABLE
position.
FE_INVALID Invalid size for the data specified.
Remarks/Usage:
The specified value will be read from the object at the current position. You can change this position
with the Position method prior to calling this method. Data can be read from an object after a call to Get,
or after data has been added to the object with one or more Write calls (and the position has been relo-
cated before the data).
Example:
None
API-1198 ReadDoubleArray

4.8.2.37 ReadDoubleArray

ReadDoubleArray
( num, val )
Description:
Reads an array of double values from the current object.
Input:
None
Output:
INT4 num The number of items in the array that is read.
REAL8 val[0..num-1] The values from the current object.
Return Code:
There is not enough data left in the object to read, from the current
FE_NOT_AVAILABLE
position.
FE_NO_MEMORY Unable to allocate enough memory to read the specified values.
FE_INVALID Invalid size for the data specified.
Remarks/Usage:
The specified values will be read from the object at the current position. You can change this position
with the Position method prior to calling this method. Data can be read from an object after a call to Get,
or after data has been added to the object with one or more Write calls (and the position has been relo-
cated before the data).
Example:
None
ReadLongArray API-1199

4.8.2.38 ReadLongArray

ReadLongArray
( num, val )
Description:
Reads an array of long values from the current object.
Input:
None
Output:
INT4 num The number of items in the array that is read.
INT4 val[0..num-1] The values from the current object.
Return Code:
There is not enough data left in the object to read, from the current
FE_NOT_AVAILABLE
position.
FE_NO_MEMORY Unable to allocate enough memory to read the specified values.
FE_INVALID Invalid size for the data specified.
Remarks/Usage:
The specified values will be read from the object at the current position. You can change this position
with the Position method prior to calling this method. Data can be read from an object after a call to Get,
or after data has been added to the object with one or more Write calls (and the position has been relo-
cated before the data).
Example:
None
API-1200 ReadBoolArray

4.8.2.39 ReadBoolArray

ReadBoolArray
( num, val )
Description:
Reads an array of bool values from the current object.
Input:
None
Output:
INT4 num The number of items in the array that is read.
BOOL val[0..num-1] The values from the current object.
Return Code:
There is not enough data left in the object to read, from the current
FE_NOT_AVAILABLE
position.
FE_NO_MEMORY Unable to allocate enough memory to read the specified values.
FE_INVALID Invalid size for the data specified.
Remarks/Usage:
The specified values will be read from the object at the current position. You can change this position
with the Position method prior to calling this method. Data can be read from an object after a call to Get,
or after data has been added to the object with one or more Write calls (and the position has been relo-
cated before the data).
Example:
None
ReadString API-1201

4.8.2.40 ReadString

ReadString
( val )
Description:
Reads a text string from the current object.
Input:
None
Output:
STRING val[0..length] The string to read from the current object.
Return Code:
There is not enough data left in the object to read, from the current
FE_NOT_AVAILABLE
position.
FE_NO_MEMORY Unable to allocate enough memory to read the specified values.
FE_INVALID Invalid size for the data specified.
Remarks/Usage:
The specified values will be read from the object at the current position. You can change this position
with the Position method prior to calling this method. Data can be read from an object after a call to Get,
or after data has been added to the object with one or more Write calls (and the position has been relo-
cated before the data).
Example:
None
API-1202

4.9 Results Browsing Object


The Results Browsing object provides a fast, common interface to review analysis results whether
they are stored in the FEMAP database or in an attached external file. Using this object, results can
be reviewed and locally modified in the object, but they cannot be stored back in the database.
This object provides an alternative to using the Output and OutputSet objects. The Output object
provides access to a singe output vector, or a single vector and its components. This object pro-
vides two different groups of methods. The first simply allows you to directly find information
about the Output Sets, Vectors and individual Entity Results (although this last method will be
very slow and should only be used in rare cases). The second group of methods allows much faster
access to the actual analysis results. You should think of this capability just like a spreadsheet or
table - possibly a very large spreadsheet- that you will fill with analysis results. In the spread-
sheet the columns represent the output vectors, with one column per vector. The rows of the
spreadsheet represent the data for an individual entity - either a Node or an Element. The object
can only contain columns of one data type - that is, either Nodal Results or Elemental Results. You
can not add columns of Nodal Results (for example, Nodal Translations) and columns of Elemen-
tal Results (for example, Plate Von Mises Stress) to the same object at the same time.

4.9.1 Results Browsing Object Properties


Most of the functionality of this object is available through the methods which are described
below. This property provides additional functionality to support a number of those methods.

Property Description
REAL8 ValueForNonExisting This property allows you to control the value returned if you
use any of the Get functions and no results exist for that Row/
ID and Column. By default this is 0.0. You should always
check the return code of the Get Methods, but this property pro-
vides an additional way to flag individual cells that do not
exist - especially for methods that return multiple columns, or
entire rows in one call.

4.9.2 Limitations and Usage of Methods


While the commands that allow you to review analysis results can be thought of as a rather large
spreadsheet, it is still best to not go too far in loading results. Analysis results for large models, or
for large numbers of cases or time steps can generate files that are many gigabytes. Attempting to
load all of this data at once is not practical. The amount of memory required would be huge. This
object will swap its contents to disk allowing very large amounts of data to be loaded, however this
will result in significantly degraded performance. In cases where your programming approach
would require huge numbers of columns with huge numbers of rows, it may be more efficient to
think about a different, more incremental algorithm. For example, if you have a 1 million element
model with 1000 time steps of output where you wanted to find the max/min values just for one
output vector across all the time steps, loading all the data at once would require 1000 columns
(actually 1001, with the 1 extra being to keep the max or min value), and 1 million rows. In spread-
sheet terminology, this would require over 1 billion cells. In this case, it might be more efficient to
use two results objects. One object would contain the accumulated max/min data, and the other
could simply load one (or a few) time steps at a time, and then add logic to incrementally find the
API-1203

max/min. Again, this is not required, but it may be more efficient. There are no explicit limits on
the numbers of rows or columns. The practical limits will be determined by the amount of memory
that you have available.
When programming this object the methods that review the available Output Sets and Output Vec-
tors can be used just like the methods on normal Entity-based objects. For example, you can call
NextSetReset(), followed by repetitive calls to NextSet(...) to step thru all the available sets. Next-
VectorReset() and NextVector(...) are similar with Output Vectors. With the spreadsheet com-
mands, the required approach is to either start with an empty object, or Clear() an already used
object, then add the desired columns. Adding columns does not load any entity results into the
object, it simply defines the structure of the data to be loaded. At this time you can also define any
necessary transformations by setting the output orientations and the desired type of transform.
After you have defined ALL of the columns and transforms, a single call to Populate() must be
made. This creates the rows and fills data into cells in each defined column. After populating the
table with data, you can use the other methods to retrieve values from the table.
API-1204 Clear

4.9.3 Results Browsing General Object Methods


The following methods are for general use with the object.
4.9.3.1 Clear

Clear
( )
Description:
This method clears all data from the object and reinitializes it to a default state.
Input:
None
Output:
None
Return Code:
None
Remarks/Usage:
None
Example:
GetModel API-1205

4.9.3.2 GetModel

GetModel
( nModelID )
Description:
This method returns the identifier of the model being used by the object.
Input:
None
Output:
INT8 nModelID Model identifier
Return Code:
None
Remarks/Usage:
When the object is created, nModelID is set to the current/active model.
Example:
API-1206 SetModel

4.9.3.3 SetModel

SetModel
( nModelID )
Description:
This method chooses the model to be used for all further operations.
Input:
INT8 nModelID Model identifier
Output:
None
Return Code:
None
Remarks/Usage:
When the object is created, nModelID is set to the current/active model.
Example:
NumberOfSets API-1207

4.9.4 Results Browsing Set Methods


The following methods allow you to review the Output Sets that are available in the model.
4.9.4.1 NumberOfSets

NumberOfSets
()
Description:
This method returns the number of output sets that are currently available.
Input:
Non
Output:
None
Return Code:
Number of Sets The number of available Sets
Remarks/Usage:
None
Example:
API-1208 NextSetReset

4.9.4.2 NextSetReset

NextSetReset
()
Description:
This method resets the next pointer so that the next call to NextSet will return the first available Output
Set.
Input:
None
Output:
None
Return Code:
None
Remarks/Usage:
None
Example:
NextSet API-1209

4.9.4.3 NextSet

NextSet
( nExistState, nLocateOption )
Description:
This method returns the ID of the next available Output Set
Input:
0=ID of Next Existing Output Set, 1=ID of next NonExisting Output
INT4 nExistState
Set
1=After, 2=Before, 3=After or Equal, 4=Before or Equal. To incre-
ment from smallest to largest ID use 1. To go from largest to smallest
INT4 nLocateOption use 2. Options 3 and 4 are normally only used for finding the next
NonExisting Output Set - care must be taken with these options to
avoid infinite loops.
Output:
None
Return Code:
FE_FAIL No more Output Set IDs are found given the specified options.
Any other number The ID of the Existing/NonExisting Output Set found.
Remarks/Usage:
None
Example:
API-1210 SetExists

4.9.4.4 SetExists

SetExists
( nSetID )
Description:
This method determines if a selected Output Set exists.
Input:
INT4 nSetID The ID of the Output Set to query.
Output:
None
Return Code:
FE_FAIL The Output Set does not exist.
Remarks/Usage:
None
Example:
SetInfo API-1211

4.9.4.5 SetInfo

SetInfo
( nSetID, nAnalysisProgram, nAnalysisType, dSetValue )
Description:
This method returns information about a selected Output Set
Input:
INT4 nSetID The ID of the Output Set to query.
Output:
INT4 nAnalysisProgram Refer to the program property of the Output Set object
INT4 nAnalysisType Refer to the analysis property of the Output Set object
REAL8 dSetValue Refer to the value property of the Output Set object
Return Code:
Unable to retrieve information about selected set - most likely the set
FE_FAIL
does not exist.
Remarks/Usage:
None
Example:
API-1212 SetTitle

4.9.4.6 SetTitle

SetTitle
( nSetID, sTItle )
Description:
This method returns the title of a selected Output Set
Input:
INT4 nSetID The ID of the Output Set to query.
Output:
STRING sTitle The title of the selected Output Set
Return Code:
Unable to retrieve information about selected set - most likely the set
FE_FAIL
does not exist.
Remarks/Usage:
None
Example:
SetNotes API-1213

4.9.4.7 SetNotes

SetNotes
( nSetID, sNotes )
Description:
This method returns the notes of a selected Output Set
Input:
INT4 nSetID The ID of the Output Set to query.
Output:
STRING sNotes The notes of the selected Output Set
Return Code:
Unable to retrieve information about selected set - most likely the set
FE_FAIL
does not exist.
Remarks/Usage:
None
Example:
API-1214 SetLocation

4.9.4.8 SetLocation

SetLocation
( nSetID, nSetLocation )
Description:
This method identifies whether data for the Output Set is in the database or in an attached external file.
Input:
INT4 nSetID The ID of the Output Set to query.
Output:
INT4 nSetLocation 1=In FEMAP Database, 2=In Nastran OP2 File, 3=In FNO File
Return Code:
Unable to retrieve information about selected set - most likely the set
FE_FAIL
does not exist.
Remarks/Usage:
None
Example:
SetHasVectorsInDB API-1215

4.9.4.9 SetHasVectorsInDB

SetHasVectorsInDB
( nSetID )
Description:
This method indicates whether an Output Set contains Output Vectors that are in the FEMAP Database.
Input:
INT4 nSetID The ID of the Output Set to query.
Output:
None
Return Code:
FE_FAIL There are no Output Vectors in the FEMAP Database for this Set
Remarks/Usage:
If this method returns FE_OK, then it contains Output Vectors located in the FEMAP Database. Even
Output Sets that are located in an attached external file can contain certain Output Vectors in the
FEMAP Database, if one of the FEMAP commands (like Model->Output->Process) was used to create
additional Output Vectors in that Output Set.
Example:
API-1216 Sets

4.9.4.10 Sets

Sets
( nSetSetID, bClear )
Description:
This method fills a Set object with the IDs of all of the Output Sets that are available
Input:
INT4 nSetSetID The ID of the Set Object to fill with the available Output Set IDs
If True, the Set object is cleared prior to being filled with the avail-
BOOL bClear
able Output Set IDs.
Output:
None
Return Code:
FE_FAIL No Output Sets were found.
Remarks/Usage:
None
Example:
NextVectorReset API-1217

4.9.5 Results Browsing Vector Methods


The following methods allow you to review the Output Vectors that are available in a selected
Output Set.

4.9.5.1 NextVectorReset

NextVectorReset
( nSetID )
Description:
This method resets the next pointer so that the next call to NextVector will return the first available Out-
put Vector in the Output Set.
Input:
None
Output:
None
Return Code:
None
Remarks/Usage:
None
Example:
API-1218 NextVector

4.9.5.2 NextVector

NextVector
( nSetID, nExistState, nLocateOption )
Description:
This method returns the ID of the next available Output Vector in a selected Output Set
Input:
INT4 nSetID The ID of the Output Set to query for Output Vectors
0=ID of Next Existing Output Set, 1=ID of next Non-Existing Out-
INT4 nExistState
put Set
1=After, 2=Before, 3=After or Equal, 4=Before or Equal. To incre-
ment from smallest to largest ID use 1. To go from largest to smallest
INT4 nLocateOption use 2. Options 3 and 4 are normally only used for finding the next
Non-Existing Output Set - care must be taken with these options to
avoid infinite loops.
Output:
None
Return Code:
None
Remarks/Usage:
None
Example:
VectorExists API-1219

4.9.5.3 VectorExists

VectorExists
( nSetID, nVectorID )
Description:
This method indicates whether a selected Output Vector exists in a selected Output Set
Input:
INT4 nSetID The ID of the Output Set to query
INT4 nVectorID The ID of the Output Vector to query
Output:
None
Return Code:
FE_FAIL The Output Vector does not exist in the selected Output Set
Remarks/Usage:
None
Example:
API-1220 VectorInfo

4.9.5.4 VectorInfo

VectorInfo
( nSetID, nVectorID, nDataType, nOutputType, bCentroidTotal, bCalcWarn, nCompDir )
Description:
This method returns selected information about a selected Output Vector
Input:
INT4 nSetID The ID of the Output Set to query
INT4 nVectorID The ID of the Output Vector to query
Output:
INT4 nDataType Refer to the location property of the Output object
INT4 nOutputType Refer to the category property of the Output object
BOOL bCentroidTotal Refer to the centroidtotal property of the Output object
BOOL bCalcWarn Refer to the nonlinear property of the Output object
INT4 nCompDir Refer to the hascomponent property of the Output object
Return Code:
Unable to query the selected Output Vector - probably because it
FE_FAIL
does not exist.
Remarks/Usage:
None
Example:
VectorTitle API-1221

4.9.5.5 VectorTitle

VectorTitle
( nSetID, nVectorID, sTitle )
Description:
This method returns the title of the selected Output Vector
Input:
INT4 nSetID The ID of the Output Set to query
INT4 nVectorID The ID of the Output Vector to query
Output:
STRING sTitle The Output Vector Title
Return Code:
Unable to query the selected Output Vector - probably because it
FE_FAIL
does not exist.
Remarks/Usage:
None
Example:
API-1222 VectorComponents

4.9.5.6 VectorComponents

VectorComponents
( nSetID, nVectorID, nNumComponents, nComponents )
Description:
This method indicates whether a selected Output Vector exists in a selected Output Set
Input:
INT4 nSetID The ID of the Output Set to query
INT4 nVectorID The ID of the Output Vector to query
Output:
INT4 nNumComponents The number of components
INT4 nComponents[0..nNum-
An array of component vector IDs
Components-1]
Return Code:
Unable to query the selected Output Vector - probably because it
FE_FAIL
does not exist.
Remarks/Usage:
Components are the IDs of other Output Vectors that are related to the selected Output Vectors. For
things like Total Translation (or any other Total Nodal output), there will be 3 components that repre-
sent the X,Y,Z component of the translation in Global Rectangular coordinates. For Elemental Output
such as Plate or Solid Stresses, the Vector that contains the centroidal value will have components that
represent the same value at the associated corners (nodes) of the element. For Beam/Bar results, there
will be 2 components which are the vectors that contain the results at the two ends of the element. One
of these will be the same ID as the selected vector.
Example:
VectorLocation API-1223

4.9.5.7 VectorLocation

VectorLocation
( nSetID, nVectorID, nVectorLocation )
Description:
This method identifies whether data for the Output Vector is in the database or in an attached external
file.
Input:
INT4 nSetID The ID of the Output Set to query
INT4 nVectorID The ID of the Output Vector to query
Output:
INT4 nVectorLocation 0=In FEMAP Database, 1=In Nastran OP2 File, 2=In FNO File
Return Code:
Unable to query the selected Output Vector - probably because it
FE_FAIL
does not exist.
Remarks/Usage:
None
Example:
API-1224 VectorEntities

4.9.5.8 VectorEntities

VectorEntities
( nSetID, nVectorID, nEntitySetID, bClear )
Description:
This method loads the IDs of all Nodes or Elements that contain data in the selected vector into a Set
Object
Input:
INT4 nSetID The ID of the Output Set to query
INT4 nVectorID The ID of the Output Vector to query
The ID of the Set Object that will receive the IDs of the Nodes or
INT4 nEntitySetID
Elements that have data in this Output Vector
If True, the Set Object is cleared prior to loading it with the entity
BOOL bClear
IDs
Output:
None
Return Code:
Unable to query the selected Output Vector - probably because it
FE_FAIL
does not exist.
Remarks/Usage:
You can tell whether the IDs reference Nodes or Elements by using the VectorInfo method.
Example:
Vectors API-1225

4.9.5.9 Vectors

Vectors
( nSetID, nVectorSetID, bClear )
Description:
This method loads a Set Object with the IDs of all Output Vectors in a selected Output Set
Input:
INT4 nSetID The ID of the Output Set to query
INT4 nVectorSetID The ID of the Set Object which will receive the Output Vector IDs
BOOL bClear If True, the Set Object is cleared prior to loading the IDs
Output:
None
Return Code:
Unable to query the selected Output Vector - probably because it
FE_FAIL
does not exist.
Remarks/Usage:
None
Example:
API-1226 EntityValue

4.9.6 Results Browsing Entity Value Methods


The following method allows you to review the Output for individual Nodes or Elements in a
selected Output Vector.

4.9.6.1 EntityValue

WARNING
This method must be used with great caution - especially with attached results files. Using it may
result in reading large amounts of data for every call, and performance will be especially poor. The
only appropriate time to use this is if you must dynamically query the results on small numbers of
nodes/elements. In almost any other case, it will be more efficient to code an algorithm using the
spreadsheet capability of this object.

EntityValue
( nSetID, nVectorID, nEntityID, dVal )
Description:
This method returns the Output Value for a node/element in a selected Output Vector.
Input:
INT4 nSetID The ID of the Output Set to query
INT4 nVectorID The ID of the Output Vector to query
The ID of the Node or Element to query. If the vector contains nodal
data, this must be the ID of a node. Likewise, if the vector contains
INT4 nEntityID elemental data, this must be the ID of an element. Vectors that con-
tain element corner data are still elemental vectors, and must be spec-
ified by element ID.
Output:
REAL8 dVal The Output Value for the selected Set, Vector and Node/Element.
Return Code:
Unable to query the selected Output Vector - probably because it
FE_FAIL
does not exist.
Remarks/Usage:
See WARNING Above !
Example:
AddColumn API-1227

4.9.7 Results Browsing Bulk Data Review Methods


The following method allows you to review the Output for individual Nodes or Elements in a man-
ner that is similar to setting up, loading and querying a spreadsheet. For reviewing large amounts
of data, these methods are by far the fastest.
4.9.7.1 AddColumn

AddColumn
( nSetID, nVectorID, bAddComponentsCorners, nColumnsAdded, nColumnIndices )
Description:
This method adds a column to the object that will be filled by a specified Output Vector
Input:
INT4 nSetID The ID of the Output Set to load
INT4 nVectorID The ID of the Output Vector to Load
BOOL bAddComponentsCorn- If True, additional columns will be added to accommodate the com-
ers ponents of the selected vector, if any.
Output:
INT4 nColumnsAdded The total number of columns added.
The indices of the columns that were added. nColumnIndices[0] is
INT4 nColumnIndices[0..nCol- always the index of the column for the selected vector. If component/
umnsAdded-1] corner vectors were added, their indices will be in nColumnIndi-
ces[1] and beyond.
Return Code:
The object has already been populated with data. You can only add
FE_INVALID
columns prior to populating the object.
FE_NOT_EXIST The selected vector does not exist
The selected vector is not of the same type (Nodal or Elemental) as
FE_BAD_TYPE
other vectors in the object.
FE_FAIL Unable to add column.
Remarks/Usage:
Always remember to remember the nColumnIndices values - they will be needed to query the actual
results after data is loaded by Populate.
Example:
API-1228 AddEmptyColumns

4.9.7.2 AddEmptyColumns

AddEmptyColumns
( nNumberOfColumns, nColumnIndices )
Description:
This method adds one or more columns that are not associated with any Output Vectors.
Input:
INT4 nNumberOfColumns The number of columns to add
Output:
INT4 nColumnIndices[0..nCol-
The indices of the columns that were added.
umnsAdded-1]
Return Code:
The object has already been populated with data. You can only add
FE_INVALID
columns prior to populating the object.
FE_NO_MEMORY Unable to allocate memory to return the column indices
Remarks/Usage:
Use this method to add columns that you want to use to compute other values. When you populate the
object, these columns will remain empty, but they will be available for you to store values computed
from querying the other values.
Example:
AddConversionColumn API-1229

4.9.7.3 AddConversionColumn

AddConversionColumn
( nSetID, nVectorID, nConversionApproach, nColumnIndex )
Description:
This method adds one or more columns that are not associated with any Output Vectors.
Input:
INT4 nSetID The ID of the Output Set to load
INT4 nVectorID The ID of the Output Vector to Load
0=Average, 1=Max Value, 2= Average, Skip Corner Results, 3=Max
INT4 nConversionApproach Value, Skip Corner Results, 4=Min Value, 5=Min Value, Skip Cor-
ner Results.
Output:
INT4 nColumnIndex The index of the column that was added.
Return Code:
The object has already been populated with data. You can only add
FE_INVALID
columns prior to populating the object.
FE_NOT_EXIST The selected vector does not exist
The selected vector (once converted) is not of the same type (Nodal
FE_BAD_TYPE
or Elemental) as other vectors in the object.
FE_FAIL Unable to add column.
Remarks/Usage:
Use this method to add columns that you want to use to convert existing Nodal results to Elemental, or
vice versa. When you populate the object, these columns will be automatically populated with the con-
verted results.

If you do not want to convert based on results in the entire model, you must call DataNeeded() and
define the Element ID set prior to calling this method. You must define the Element ID set, no matter
whether you are converting Elemental to Nodal results or Nodal to Elemental.
Example:
API-1230 AddEnvelopeColumn

4.9.7.4 AddEnvelopeColumn

AddEnvelopeColumn
( nEnvelopeType, nDataColumnIndex, nColumnColumnIndex )
Description:
This method adds columns that will be Populated() with an envelope of the results from the Output Vec-
tors in each row.
Input:
INT4 nEnvelopeType 0=Max Value, 1=Min Value, 2=Max Absolute Value
Output:
INT4 nDataColumnIndex The index of the column that contains the enveloped results value
The index of the column that contains the index of the column where
INT4 nColumnColumnIndex
the enveloped value came from.
Return Code:
The object has already been populated with data. You can only add
FE_INVALID
columns prior to populating the object.
FE_BAD_DATA An invalid value has been specified for the envelope type
FE_FAIL Unable to add column.
Remarks/Usage:
Use this method if you want to find the maximum or minimum value of other Output Vectors. You can
Add any other combination of Output Vectors that you want and they will be enveloped during Popu-
late(). Empty columns are not considered. The envelope is performed as a final step so that all conver-
sions and transforms have already been applied to the populated data prior to enveloping.
AddEnvelopeColumn API-1231

AddEnvelopeColumn
( nEnvelopeType, nDataColumnIndex, nColumnColumnIndex )
Example:

Sub Main
Dim App As femap.model
Set App = feFemap()

Dim Res As femap.Results


Set Res = App.feResults

Dim ResVal1 As Double

Dim numcolumns As Long


Dim colindices As Variant
Dim dataloc As Long
Dim envcolumn As Long
Dim ColColIndex As Long

Dim eset As femap.Set


Set eset = App.feSet
eset.AddAll (FT_ELEM)

rc = Res.AddColumn (1, 7033, False, numcolumns, colindices)


rc = Res.AddColumn (2, 7033, False, numcolumns, colindices)
rc = Res.AddColumn (3, 7033, False, numcolumns, colindices)
rc = Res.AddEnvelopeColumn (0, envcolumn, ColColIndex)
rc = Res.DataLocation (dataloc)
rc = Res.Populate

While eset.Next
Res.GetValue (eset.CurrentID, envcolumn, ResVal1)
App.feAppMessage (FCM_NORMAL, _
"Value"+Str$(eset.CurrentID)+ " is"+Str$(ResVal1))
Wend

End Sub
API-1232 AddEnvelopeColumn

AddEnvelopeColumn
( nEnvelopeType, nDataColumnIndex, nColumnColumnIndex )
Sub Main
Dim App As femap.model
Set App = feFemap()

Dim Res As femap.Results
Set Res = App.feResults

Dim rc As femap.zReturnCode
Dim nNumCol As Long
Dim vCol As Variant
Dim nEnvCol(1) As Long
Dim i As Long
Dim nID As Long
Dim dVals As Variant
Dim nSet As Long
Dim nVec As Long

rc = Res.AddColumn( 1, 7020, False, nNumCol, vCol )
rc = Res.AddColumn( 1, 7021, False, nNumCol, vCol )
rc = Res.AddColumn( 1, 7023, False, nNumCol, vCol )
rc = Res.AddEnvelopeColumn( FOPA_ALL, nEnvCol(0), nEnvCol(1) )
Res.Populate()

For i=0 To Res.NumberOfRows()
Res.GetMultipleInRow( i, 2, nEnvCol, nID, dVals )
Res.GetColumnVector(dVals(1), nSet, nVec )
App.feAppMessage( FCM_NORMAL, "ID="+Str$(nID)+" Max="+ _
Format$(dVals(0)," 0.000E+00;-0.000E+00")+ _
" From Set="+Str$(nSet)+" Vector="+Str$(nVec))
Next
End Sub
DataNeeded API-1233

4.9.7.5 DataNeeded

DataNeeded
( nDataType, nEntitySetID )
Description:
This method defines a set of entity IDs that will be used to Populate the object.
Input:
INT4 nDataType The only available data types are 7=Node, 8=Element
INT4 nEntitySetID The ID of a Set object that contains the desired entity IDs
Output:
None
Return Code:
FE_BAD_TYPE The specified data type is not valid
Remarks/Usage:
This method must be called prior to calling Populate() and must specify the same data type as the Output
Vectors being loaded if it is to be effective. You can also use this method prior to calling AddConver-
sionColumn() to specify Element IDs to be used in converting results during Populate().
Example:
API-1234 SetTri3Orientation

4.9.7.6 SetTri3Orientation

SetTri3Orientation
( nStress, nStrain, nForce )
Description:
This method sets the default orientations for Elemental Results on 3-noded triangles
Input:
INT4 nStress 0=First Edge, 1=Midside Locations
INT4 nStrain 0=First Edge, 1=Midside Locations
INT4 nForce 0=First Edge, 1=Midside Locations
Output:
None
Return Code:
FE_INVALID The object has already been populated with data.
FE_BAD_DATA One or more of the arguments has an invalid value.
Remarks/Usage:
This method is not normally required, as defaults are set as preferences, but if it is used, it must be called
prior to calling Populate().
Example:
SetTri6Orientation API-1235

4.9.7.7 SetTri6Orientation

SetTri6Orientation
( nStress, nStrain, nForce )
Description:
This method sets the default orientations for Elemental Results on 6-noded triangles
Input:
INT4 nStress 0=First Edge, 1=Midside Locations
INT4 nStrain 0=First Edge, 1=Midside Locations
INT4 nForce 0=First Edge, 1=Midside Locations
Output:
None
Return Code:
FE_INVALID The object has already been populated with data.
FE_BAD_DATA One or more of the arguments has an invalid value.
Remarks/Usage:
This method is not normally required, as defaults are set as preferences, but if it is used, it must be called
prior to calling Populate().
Example:
API-1236 SetQuad4Orientation

4.9.7.8 SetQuad4Orientation

SetQuad4Orientation
( nStress, nStrain, nForce )
Description:
This method sets the default orientations for Elemental Results on 4-noded quadrilateral
Input:
INT4 nStress 0=First Edge, 1=Midside Locations, 2=Diagonal Bisector
INT4 nStrain 0=First Edge, 1=Midside Locations, 2=Diagonal Bisector
INT4 nForce 0=First Edge, 1=Midside Locations, 2=Diagonal Bisector
Output:
None
Return Code:
FE_INVALID The object has already been populated with data.
FE_BAD_DATA One or more of the arguments has an invalid value.
Remarks/Usage:
This method is not normally required, as defaults are set as preferences, but if it is used, it must be called
prior to calling Populate().
Example:
SetQuad8Orientation API-1237

4.9.7.9 SetQuad8Orientation

SetQuad8Orientation
( nStress, nStrain, nForce )
Description:
This method sets the default orientations for Elemental Results on 8-noded quadrilateral
Input:
INT4 nStress 0=First Edge, 1=Midside Locations, 2=Diagonal Bisector
INT4 nStrain 0=First Edge, 1=Midside Locations, 2=Diagonal Bisector
INT4 nForce 0=First Edge, 1=Midside Locations, 2=Diagonal Bisector
Output:
None
Return Code:
FE_INVALID The object has already been populated with data.
FE_BAD_DATA One or more of the arguments has an invalid value.
Remarks/Usage:
This method is not normally required, as defaults are set as preferences, but if it is used, it must be called
prior to calling Populate().
Example:
API-1238 SetSolidOrientation

4.9.7.10 SetSolidOrientation

SetSolidOrientation
( nIsotropic, nAnisotropic, nHyperelastic )
Description:
This method sets the default orientations for Elemental Results on Solid elements
Input:
INT4 nIsotropic 0=Material Direction, 1=Global Rectangular, 2=Element
INT4 nAnisotropic 0=Material Direction, 1=Global Rectangular, 2=Element
INT4 nHyperelastic 0=Material Direction, 1=Global Rectangular, 2=Element
Output:
None
Return Code:
FE_INVALID The object has already been populated with data.
FE_BAD_DATA One or more of the arguments has an invalid value.
Remarks/Usage:
This method is not normally required, as defaults are set as preferences, but if it is used, it must be called
prior to calling Populate().
Example:
SetEngrShearStrain API-1239

4.9.7.11 SetEngrShearStrain

SetEngrShearStrain
( bEngrShearStrain )
Description:
This method sets the assumption for shear strain
Input:
BOOL bEngrShearStrain True=Engineering Shear Strain, False = Actual Shear Strain
Output:
None
Return Code:
FE_INVALID The object has already been populated with data.
Remarks/Usage:
This method is not normally required, as defaults are set as preferences, but if it is used, it must be called
prior to calling Populate().
Example:
API-1240 SetNodalTransform

4.9.7.12 SetNodalTransform

SetNodalTransform
( nTransformTo, nCSysID )
Description:
This method defines parameters to transform nodal results when they are populated.
Input:
0=No Transform, results in Global Rectangular, 1=Results in nCSy-
INT4 nTransformTo
sID, 2=Results in Nodal Output Coordinate Systems
INT4 nCSysID ID of Coordinate System to transform into when nTransformTo=1
Output:
None
Return Code:
FE_INVALID The object has already been populated with data.
FE_BAD_DATA An invalid value has been specified for nTransformTo
FE_NOT_EXIST The coordinate system specified by nCSysID does not exist
Remarks/Usage:
This method must be called prior to calling Populate(), but is not required if you do not want to trans-
form results.
Example:
SetPlateTransform API-1241

4.9.7.13 SetPlateTransform

SetPlateTransform
( nTransformTo, nCSysID, nCSysAxis, dVecX, dVecY, dVecZ, dToleranceAngle )
Description:
This method defines parameters to transform Elemental Results on planar/plate elements when they are
populated.
Input:
0=No Transform, 3=Transform to Material Coordinate System,
INT4 nTransformTo
4=Transform to CSys nCSysID, 5=Transform to specified vector
INT4 nCSysID ID of Coordinate System to transform into when nTransformTo=4
INT4 nCSysAxis The Axis of CSys nCSysID to use as the transform direction.
REAL8 dVecX
The components of the vector to transform into when nTransfor-
REAL8 dVecY
mTo=5
REAL8 dVecZ
Maximum angle between element plane and specified direction
REAL8 dToleranceAngle
where the direction will not be projected onto the element plane.
Output:
None
Return Code:
FE_INVALID The object has already been populated with data.
FE_BAD_DATA An invalid value has been specified for nTransformTo
FE_NOT_EXIST The coordinate system specified by nCSysID does not exist
Remarks/Usage:
This method must be called prior to calling Populate(), but is not required if you do not want to trans-
form results.

When you transform plate data, you are really specifying a direction that the X component of the stress/
strain/... is transformed into.
Example:
API-1242 SetSolidTransform

4.9.7.14 SetSolidTransform

SetSolidTransform
( nTransformTo, nCSysID )
Description:
This method defines parameters to transform Solid element results when they are populated.
Input:
0=No Transform, results in Global Rectangular, 6=Results in nCSy-
INT4 nTransformTo
sID, 7=Results in Material Coordinate Systems
INT4 nCSysID ID of Coordinate System to transform into when nTransformTo=6
Output:
None
Return Code:
FE_INVALID The object has already been populated with data.
FE_BAD_DATA An invalid value has been specified for nTransformTo
FE_NOT_EXIST The coordinate system specified by nCSysID does not exist
Remarks/Usage:
This method must be called prior to calling Populate(), but is not required if you do not want to trans-
form results.
Example:
SetColumnGlobalPly API-1243

4.9.7.15 SetColumnGlobalPly

SetColumnGlobalPly
( nColumnIndex, nGlobalPlyID )
Description:
This method specifies that a column be populated with data from a Global Ply rather than simply data
from a single Output Vector.
Input:
INT4 nColumnIndex The index of a column that was created by AddColumn( )
INT4 nGlobalPlyID The ID of a Global Ply or 0=Bottom Ply, or -2=Top Ply
Output:
None
Return Code:
FE_INVALID The object has already been populated with data.
FE_BAD_DATA An invalid value has been specified for nColumnIndex
Remarks/Usage:
This method is used for laminate ply results and must be called prior to calling Populate(). If you simply
want results from a specific ply on all selected elements, you do not need to use this method. However,
if you want the column to be filled with data from a Global Ply that is represented by various ply num-
bers then use this method to choose that Global Ply.
Example:
API-1244 SetComplexOptions

4.9.7.16 SetComplexOptions

SetComplexOptions
( bExpandComplex , dComplexPhase )
Description:
This method defines parameters to expand complex results when they are populated.
Input:
If True, complex results will be expanded during Populate using the
BOOL bExpandComplex
value specified for dComplexPhase
REAL8 dComplexPhase Phase value to use during complex expansion
Output:
None
Return Code:
FE_FAIL No Output Sets were found.
Remarks/Usage:
None
Example:
Populate API-1245

4.9.7.17 Populate

Populate
()
Description:
This method loads analysis results into the columns that you have defined.
Input:
None
Output:
None
Return Code:
The object has already been populated with data. You can only popu-
FE_INVALID late an object one time. If you want to reuse the same object, you
must first call Clear().
FE_NOT_AVAILABLE You have not defined any columns to populate
There is a problem with the data you specified when calling Data-
FE_BAD_DATA
Needed()
Remarks/Usage:
This method must be called once to load results into the object columns. Normally, this method will cre-
ate and load rows for all available Nodes/Elements. If you only want results for certain entities, call
DataNeeded() prior to calling this method.
Example:
API-1246 IsPopulated

4.9.7.18 IsPopulated

IsPopulated
()
Description:
This method indicates whether Populate( ) has already been called.
Input:
None
Output:
None
Return Code:
FE_FAIL The object has not been populated.
Remarks/Usage:
None
Example:
DataLocation API-1247

4.9.7.19 DataLocation

DataLocation
()
Description:
This method indicates whether Nodal or Elemental data is or will be in the object
Input:
None
Output:
INT4 nDataType 7=Node, 8=Element
Return Code:
No columns have yet been defined that identify whether nodal or ele-
FE_FAIL
mental data will be loaded into this object.
Remarks/Usage:
None
Example:
API-1248 NumberOfRows

4.9.7.20 NumberOfRows

NumberOfRows
()
Description:
This method indicates the number of rows that have been defined.
Input:
None
Output:
None
Return Code:
The number of rows of data that have been loaded. Prior to calling
Number
Populate() this will be 0
Remarks/Usage:
None
Example:
NumberOfColumns API-1249

4.9.7.21 NumberOfColumns

NumberOfColumns
()
Description:
This method indicates the number of columns that have been defined.
Input:
None
Output:
None
Return Code:
Number The number of columns of data that have been defined.
Remarks/Usage:
None
Example:
API-1250 FindColumn

4.9.7.22 FindColumn

FindColumn
( nSetID, nVectorID, nColumnIndex )
Description:
This method locates a column based on the Output Set and Output Vector IDs
Input:
INT4 nSetID The desired Output Set ID
INT4 nVectorID The desired Output Vector ID
Output:
INT4 nColumnIndex The zero-based index of the location of the desired column
Return Code:
FE_NOT_AVAILABLE No columns have been defined
FE_FAIL Unable to located the desired column.
Remarks/Usage:
None
Example:
GetColumnTitle API-1251

4.9.7.23 GetColumnTitle

GetColumnTitle
( nColumnIndex, sTitle )
Description:
This method returns the title of the Output Vector loaded in the specified column
Input:
INT4 nColumnIndex Zero-based index of the desired column
Output:
STRING sTitle Title of the Output Vector in specified column
Return Code:
FE_BAD_DATA Column index is outside of the range of available columns
FE_FAIL Unable to retrieve title.
Remarks/Usage:
None
Example:
API-1252 IsApiColumn

4.9.7.24 IsApiColumn

IsApiColumn
( nColumnIndex )
Description:
This method identifies whether a column is an normal API column or one that was addded for internal
computations.
Input:
INT4 nColumnIndex Zero-based index of the desired column
Output:
None
Return Code:
FE_BAD_DATA Column index is outside of the range of available columns
FE_FAIL Not an API Column
Remarks/Usage:
In some cases, especially with attached result files, FEMAP must create additional columns to compute
the results that were requested. These columns will return FE_FAIL from this method.
Example:
GetColumnVector API-1253

4.9.7.25 GetColumnVector

GetColumnVector
( nColumnIndex, nSetID, nVectorID )
Description:
This method returns the Output Set ID and Output Vector ID of a selected column
Input:
INT4 nColumnIndex Zero-based index of the desired column
Output:
INT4 nSetID ID of the Output Set in the selected column
INT4 nVectorID ID of the Output Vector in the selected column
Return Code:
FE_BAD_DATA Column index is outside of the range of available columns
FE_FAIL Unable to retrieve vector info
Remarks/Usage:
None
Example:
API-1254 GetColumn

4.9.7.26 GetColumn

GetColumn
( nColIndex, nIDs, dVals )
Description:
This method returns the entity IDs and values from all rows in the selected column
Input:
INT4 nColIndex Zero-based index of the desired column
Output:
INT4 nIDs [0..nNumberOf-
The IDs of the Node/Element
Rows -1]
REAL8 dVals[0..nNumberOf-
The result values
Rows-1]
Return Code:
FE_NO_MEMORY Insufficient memory to allocate space for values
Object has not yet been populated. This method is only available
FE_INVALID
after results have been loaded.
FE_FAIL Unable to find data for the specified row/columns
Remarks/Usage:
This method will only work once the object has been populated. It simply returns values for all rows that
have been defined.
Example:
GetColumns API-1255

4.9.7.27 GetColumns

GetColumns
( nNumberOfColumns, nColIndices, nIDs, dVals )
Description:
This method returns the entity IDs and multiple values from the selected columns and all rows
Input:
INT4 nNumberOfColumns The number of column indices in nColIndices
INT4 nColIndices[0..nNumber-
Zero-based indices of the desired columns
OfColumns]
Output:
INT4 nIDs[0..nNumberOf-
The Node/Element ID from each row
Rows-1]
REAL8 dVals[0..nNumberOf-
The result values
Columns*nNumberOfRows-1]
Return Code:
FE_NO_MEMORY Insufficient memory to allocate space for values
Object has not yet been populated. This method is only available
FE_INVALID
after results have been loaded.
FE_FAIL Unable to find data for the specified columns/rows
Remarks/Usage:
This method will only work once the object has been populated. The entries in nIDs[ ] are the Node/Ele-
ment IDs that directly correspond to the rows of the columns selected in nColIndices. The entries in
dVals are the values from all the selected columns and all rows. Data is stored by rows so that all
selected columns for the first row come before the second row, and so on. For example, dVals[0] is from
the first row of the first selected column, dVals[1] is from the first row of the second selected col-
umn...then dVals[nNumberOfColumns] is from the second row of the first selected column, and so on.
Example:
API-1256 GetColumnMinMax

4.9.7.28 GetColumnMinMax

GetColumnMinMax
( nColumnIndex, nLimitToSet, nMinID, nMaxID, dMinVal, dMaxVal )
Description:
This method returns the minimum and maximum values in a column
Input:
INT4 nColumnIndex Zero-based index of the desired column
ID of Set object that contains the entities to consider when searching
INT4 nLimitToSet for min/max. Set to 0 if you want to consider all results that have
been loaded in the column.
Output:
INT4 nMinID ID of the Node/Element where the minimum value occurs
INT4 nMaxID ID of the Node/Element where the maximum value occurs
REAL8 dMinVal The minimum value
REAL8 dMaxVal The maximum value
Return Code:
FE_BAD_DATA Column index is outside of the range of available columns
Object has not yet been populated. This method is only available
FE_INVALID
after results have been loaded.
FE_FAIL Unable to compute min/max
Remarks/Usage:
None
Example:
GetColumnSum API-1257

4.9.7.29 GetColumnSum

GetColumnSum
( nColumnIndex, nLimitToSet, nNumVal, dSum, dSumOfSquares )
Description:
This method returns values for the sum and the sum of squares in a column
Input:
INT4 nColumnIndex Zero-based index of the desired column
ID of Set object that contains the entities to consider when calculat-
INT4 nLimitToSet ing sum and sum of squares. Set to 0 if you want to consider all
results that have been loaded in the column.
Output:
INT4 nNumVal Number of values used to compute sum and sum of squares
REAL8 dSum The sum of the column
REAL8 dSumOfSquares The sum of squares of the column
Return Code:
FE_BAD_DATA Column index is outside of the range of available columns
Object has not yet been populated. This method is only available
FE_INVALID
after results have been loaded.
FE_FAIL Unable to compute sum and/or sum of squares
Remarks/Usage:
None
Example:
API-1258 Reset

4.9.7.30 Reset

Reset
( )
Description:
This method resets internal row pointers so that the next call to Next() will return the first row.
Input:
None
Output:
None
Return Code:
None
Remarks/Usage:
None
Example:
Next API-1259

4.9.7.31 Next

Next
( nColumnIndex, nID, dVal)
Description:
This method returns the entityID and value from the next row in a selected column
Input:
INT4 nColumnIndex Zero-based index of the desired column
Output:
INT4 nID The ID of the Node/Element from the next row
REAL8 dVal The result value from the selected column in the next row.
Return Code:
FE_BAD_DATA Column index is outside of the range of available columns
Object has not yet been populated. This method is only available
FE_INVALID
after results have been loaded.
FE_FAIL You have reached the end of available rows.
Remarks/Usage:
This method will only work once the object has been populated. You must call Reset() prior to calling
this function so that repeated calls will start at the first row. Changing nColumnIndex will not automati-
cally reset back to the first row, it will continue from the location of the previous call to Next().
Example:
API-1260 Next

Next
( nColumnIndex, nID, dVal)
Sub Main
Dim App As femap.model
Set App = feFemap()

Dim Res As femap.Results
Set Res = App.feResults
Dim nNumCol As Long
Dim vCol As Variant
Dim nID As Long
Dim dVal As Double
Dim rc As femap.zReturnCode

rc = Res.AddColumn( 1, 7020, False, nNumCol, vCol )
rc = Res.Populate()
' This will retrieve all values from the added column
Res.Reset()
While Res.Next( vCol(0), nID, dVal) = FE_OK
App.feAppMessage( FCM_NORMAL, _
"ID="+Str$(nID)+" Value="+Str$(dVal))
Wend
End Sub
GetValue API-1261

4.9.7.32 GetValue

GetValue
( nID, nColumnIndex, dVal )
Description:
This method returns the value from the selected column for the specified Node/Element
Input:
INT4 nID The ID of the Node/Element desired
INT4 nColumnIndex Zero-based index of the desired column
Output:
REAL8 dVal The result value
Return Code:
FE_BAD_DATA Column index is outside of the range of available columns
Object has not yet been populated. This method is only available
FE_INVALID
after results have been loaded.
FE_FAIL Unable to find data for the specified ID
Remarks/Usage:
This method will only work once the object has been populated.
Example:
API-1262 GetInRow

4.9.7.33 GetInRow

GetInRow
( nRowIndex, nColumnIndex, nID, dVal )
Description:
This method returns the entity ID and value from the selected row and column
Input:
INT4 nRowIndex Zero-based index of the desired row
INT4 nColumnIndex Zero-based index of the desired column
Output:
INT4 nID The ID of the Node/Element
REAL8 dVal The result value
Return Code:
Either Row or Column index is outside of the range of available
FE_BAD_DATA
rows/columns
Object has not yet been populated. This method is only available
FE_INVALID
after results have been loaded.
FE_FAIL Unable to find data for the specified row/column
Remarks/Usage:
This method will only work once the object has been populated.
Example:
GetMultipleInRow API-1263

4.9.7.34 GetMultipleInRow

GetMultipleInRow
( nRowIndex, nNumberOfColumns, nColumnIndices, nID, dVals )
Description:
This method returns the entity ID and multiple values from the selected row and columns
Input:
INT4 nRowIndex Zero-based index of the desired row
INT4 nNumberOfColumns The number of entries in nColumnIndices
INT4 nColumnIndices
Zero-based indices of the desired columns
[0..nNumberOfColumns-1]
Output:
INT4 nID The ID of the Node/Element
REAL8 dVals[0..nNumberOf-
The result values, in the same order as nColumnIndices
Columns-1]
Return Code:
FE_NO_MEMORY Insufficient memory to allocate space for values
Object has not yet been populated. This method is only available
FE_INVALID
after results have been loaded.
FE_FAIL Unable to find data for the specified row/columns
Remarks/Usage:
This method will only work once the object has been populated.
Example:
API-1264 GetRow

4.9.7.35 GetRow

GetRow
( nRowIndex, nID, dVals )
Description:
This method returns the entity ID and multiple values from the selected row and all columns
Input:
INT4 nRowIndex Zero-based index of the desired row
Output:
INT4 nID The ID of the Node/Element
REAL8 dVals[0..nNumberOf-
The result values
Columns-1]
Return Code:
FE_NO_MEMORY Insufficient memory to allocate space for values
Object has not yet been populated. This method is only available
FE_INVALID
after results have been loaded.
FE_FAIL Unable to find data for the specified row/columns
Remarks/Usage:
This method will only work once the object has been populated. It is similar to GetMultipleInRow( ),
except that it simply returns values for all columns that have been defined. You can use the column
index values that were returned when columns were added as an index into the returned value array
Example:
GetRowByID API-1265

4.9.7.36 GetRowByID

GetRowByID
( nID, dVals )
Description:
This method returns multiple values from the selected Node/Element and all columns
Input:
INT4 nID The ID of the Node/Element
Output:
REAL8 dVals[0..nNumberOf-
The result values
Columns-1]
Return Code:
FE_NO_MEMORY Insufficient memory to allocate space for values
Object has not yet been populated. This method is only available
FE_INVALID
after results have been loaded.
FE_FAIL Unable to find data for the specified Node/Element
Remarks/Usage:
This method will only work once the object has been populated. Rather than using the rowIndex, this
method directly looks for a specific Node/Element ID. It is similar to GetMultipleInRow( ), except that
it simply returns values for all columns that have been defined. You can use the column index values
that were returned when columns were added as an index into the returned value array
Example:
API-1266 GetRows

4.9.7.37 GetRows

GetRows
( nNumberOfRows, nRowIndices, nIDs, dVals )
Description:
This method returns the entity IDs and multiple values from the selected rows and all columns
Input:
INT4 nNumberOfRows The number of row indices in nRowIndices
INT4 nRowIndices[0..nNum-
Zero-based indices of the desired rows
berOfRows]
Output:
INT4 nIDs[0..nNum-
The IDs of the Node/Element from each selected row
berOfRows]
REAL8 dVals[0..nNum-
berOfRows*nNumberOfCol- The result values
umns-1]
Return Code:
FE_NO_MEMORY Insufficient memory to allocate space for values
Object has not yet been populated. This method is only available
FE_INVALID
after results have been loaded.
FE_FAIL Unable to find data for the specified row/columns
Remarks/Usage:
This method will only work once the object has been populated. It is just like GetRow( ), except that it
will return data from multiple selected rows. The entries in nIDs[ ] are the Node/Element IDs that
directly correspond to the rows selected in nRowIndices. The entries in dVals are the values from all the
selected rows and all columns. Data is stored by row so that all columns for the first selected row come
before the second row, and so on. For example, dVals[0] is from the first column of the first selected
row, dVals[1] is from the second column of the first row ...then dVals[nNumberOfColumns] is from the
first column of the second row, and so on.
Example:
GetRowsByID API-1267

4.9.7.38 GetRowsByID

GetRowsByID
( nEntitySetID, dVals )
Description:
This method returns the values from all columns for the selected entities.
Input:
The ID of a Set object that contains the Node/Element IDs that are
INT4 nEntitySetID
desired.
Output:
REAL8 dVals[0..nNum-
berOfRows*nNumberOfCol- The result values
umns-1]
Return Code:
FE_NO_MEMORY Insufficient memory to allocate space for values
Object has not yet been populated. This method is only available
FE_INVALID
after results have been loaded.
FE_FAIL Unable to find data for the specified row/columns
Remarks/Usage:
This method will only work once the object has been populated. It is just like GetRowByID( ), except
that it will return data from multiple selected rows. The entries in dVals are the values from all the
selected rows and all columns. nNumberOfRows is the number of IDs in nEntitySetID, and IDs/rows
are always in increasing order from smallest to largest, no matter how the Set Object was created. Data
is stored by row so that all columns for the first selected row come before the second row, and so on.
For example, dVals[0] is from the first column of the first selected row, dVals[1] is from the second col-
umn of the first row ...then dVals[nNumberOfColumns] is from the first column of the second row, and
so on.
Example:
API-1268 GetRowsAndColumns

4.9.7.39 GetRowsAndColumns

GetRowsAndColumns
( nNumberOfRows, nRowIndices, nNumberOfColumns, nColIndices, nIDs, dVals,
bAllExist )
Description:
This method returns the entity IDs and multiple values from selected rows and columns
Input:
INT4 nNumberOfRows The number of row indices in nRowIndices
INT4 nRowIndices[0..nNumber-
Zero-based indices of the desired rows
OfRows]
INT4 nNumberOfColumns The number of column indices in nColIndices
INT4 nColIndices[0..nNumber-
Zero-based indices of the desired columns
OfColumns]
Output:
INT4 nIDs[0..nNumberOfRows] The IDs of the Node/Element from each selected row
REAL8 dVals[0..nNumberOf-
The result values
Rows*nNumberOfColumns-1]
When True, all rows and columns have values. When False, at
BOOL AllExist
least one value in the selected columns and rows is missing.
Return Code:
FE_NO_MEMORY Insufficient memory to allocate space for values
Object has not yet been populated. This method is only avail-
FE_INVALID
able after results have been loaded.
FE_FAIL Unable to find data for the specified row/columns
Remarks/Usage:
This method will only work once the object has been populated. It is just like GetRow( ), except that
it will return data from multiple selected rows and columns. The entries in nIDs[ ] are the Node/Ele-
ment IDs that directly correspond to the rows selected in nRowIndices. The entries in dVals are the
values from all the selected rows and selected columns. Data is stored by row so that all selected
columns for the first selected row come before the second row, and so on. For example, dVals[0] is
from the first column of the first selected row, dVals[1] is from the second column of the first
row...then dVals[nNumberOfColumns] is from the first column of the second row, and so on.
Example:
GetRowsAndColumnsByID API-1269

4.9.7.40 GetRowsAndColumnsByID

GetRowsAndColumnsByID
( nEntitySetID, nNumberOfColumns, nColIndices, dVals, bAllExist )
Description:
This method returns the values from selected columns for the selected entities.
Input:
The ID of a Set object that contains the Node/Element IDs that are
INT4 nEntitySetID
desired.
INT4 nNumberOfColumns The number of column indices in nColIndices
INT4 nColIndices[0..nNumber-
Zero-based indices of the desired columns
OfColumns]
Output:
REAL8 dVals[0..nNum-
berOfRows*nNumberOfCol- The result values
umns-1]
When True, all rows and columns have values. When False, at least
BOOL AllExist
one value in the selected columns and rows is missing.
Return Code:
FE_NO_MEMORY Insufficient memory to allocate space for values
Object has not yet been populated. This method is only available
FE_INVALID
after results have been loaded.
FE_FAIL Unable to find data for the specified row/columns
Remarks/Usage:
This method will only work once the object has been populated. It is just like GetRowByID( ), except
that it will return data from multiple selected rows using selected columns. The entries in dVals are the
values from all the selected rows and selected columns. nNumberOfRows is the number of IDs in nEn-
titySetID, and IDs/rows are always in increasing order from smallest to largest, no matter how the Set
Object was created. Data is stored by row so that selected columns for the first selected row come before
the second row, and so on. For example, dVals[0] is from the first column of the first selected row,
dVals[1] is from the second column of the first row...then dVals[nNumberOfColumns] is from the first
column of the second row, and so on.
Example:
API-1270 SetValue

4.9.7.41 SetValue

SetValue
( nID, nColumnIndex, dVal )
Description:
This method sets the value in the selected column for the specified Node/Element
Input:
INT4 nID The ID of the Node/Element desired
INT4 nColumnIndex Zero-based index of the desired column
REAL8 dVal The value to set in the row and column
Output:
None
Return Code:
FE_BAD_DATA Column index is outside of the range of available columns
FE_FAIL Unable to find data for the specified ID
Remarks/Usage:
This method allows you to update the value in a row/column. It is intended to be used so that you can
use the data in other columns, combined with data and logic in your program to fill values in empty col-
umns.
Example:
SetInRow API-1271

4.9.7.42 SetInRow

SetInRow
( nRowIndex, nColumnIndex, dVal )
Description:
This method sets the value in the selected column for the specified row
Input:
INT4 nRowIndex Zero-based index of the desired row
INT4 nColumnIndex Zero-based index of the desired column
REAL8 dVal The value to set in the row and column
Output:
None
Return Code:
Either Row or Column index is outside of the range of available
FE_BAD_DATA
rows/columns
FE_FAIL Unable to find data for the specified ID
Remarks/Usage:
This method allows you to update the value in a row/column. It is intended to be used so that you can
use the data in other columns, combined with data and logic in your program to fill values in empty col-
umns.
Example:
API-1272 SetMultipleInRow

4.9.7.43 SetMultipleInRow

SetMultipleInRow
( nRowIndex, nNumberOfColumns, nColumnIndices, dVals )
Description:
This method sets the values in multiple columns of a selected row.
Input:
INT4 nRowIndex Zero-based index of the desired row
INT4 nNumberOfColumns The number of entries in nColumnIndices
INT4 nColumnIndices
Zero-based indices of the desired columns
[0..nNumberOfColumns-1]
REAL8 dVals[0..nNumberOf-
The values to define, in the same order as nColumnIndices
Columns-1]
Output:
None
Return Code:
FE_NO_MEMORY Insufficient memory to allocate space for values
FE_FAIL Unable to find data for the specified row/columns
Remarks/Usage:
This method allows you to update the value in a row/column. It is intended to be used so that you can
use the data in other columns, combined with data and logic in your program to fill values in empty col-
umns.
Example:
API-1273

4.10 MapData Objects


The MapData object is essentially a random access array that allows you to store items based on a
ID/value pair and quickly retrieve them later. Rather than having fixed values of a certain type, the
FEMAP MapData object can hold one or more of several different data types, including Booleans,
Strings, Integers, Reals and variants. Each piece of data stored in a value is referred to as a field.
Conceptually, data within the MapData object can be visualized as a table where the ID is the first
column and each field is column 2-n (all columns represent the corresponding value in an ID/value
pair, regardless of how many fields are associated with a single ID). IDs do not need to be sequen-
tial, nor do they have to be in order (random is okay), however they must be unique for each row.
To use the MapData object, first Initialize() the object with an approximate guess at how many
items (ID/value pairs) will be stored in the object. Next, use the Define*() methods to add fields to
be associated with each ID added to the MapData object. Each call to a Define*() method, if suc-
cessful, will return a column index for that field of data. Populate the MapData object using the
various Set*() methods. Finally, retrieve values from the MapData object using the Get*() meth-
ods. Each Set*() and Get*() method requires an ID and an index where the ID is the unique identi-
fier for each ID/value pair, and the index is the order of the field of interest, obtained from the
Define*() methods. If you call Set*() method with an ID that hasn't been specified yet, it simply
adds it to the MapData object.
Note that when using the variant data type to hold arrays of data, the MapData object requires an
array of determinate length. As such, a variant array must be properly dimensioned prior to passing
it to the DefineVariant() method.
Use the feMapData method of the FEMAP application object to create MapData objects.
API-1274 Clear

4.10.1 MapData Object Methods


4.10.1.1 Clear

Clear
()
Description:
Clears everything in the MapData object, including all data definitions, which then must be set again.
Input:
None
Output:
None
Return Code:

Remarks/Usage:
To clear all of the data, but retain the data definitions, use the RemoveAll method instead.
Example:
None
Initialize API-1275

4.10.1.2 Initialize

Initialize
( nCount )
Description:
Sets approximate number of IDs to be added to MapData object
Input:
INT4 nCount Approximate number of IDs to be added to MapData object
Output:
None
Return Code:

Remarks/Usage:
The count supplied is only an estimate to the number of entries the MapData object will hold. If more or
fewer entries planned to be stored, there is no need to call this method again as the MapData will auto-
matically resize itself as appropriate, however a more accurate count will result in more efficient mem-
ory utilization and better performance.
Example:
None
API-1276 Count

4.10.1.3 Count

Count
()
Description:
Number of IDs in the MapData object
Input:
None
Output:
None
Return Code:

Remarks/Usage:

Example:
None
GetIDs API-1277

4.10.1.4 GetIDs

GetIDs
( nIDSet )
Description:
Fills Set Object with IDs from MapData object
Input:

Output:
nIDSet ID of Set object to fill with IDs from MapData object
Return Code:

Remarks/Usage:

Example:
None
API-1278 Remove

4.10.1.5 Remove

Remove
( nID)
Description:
Deletes a selected ID and associated data from the MapData object
Input:
INT4 nID ID to delete from MapData object
Output:

Return Code:

Remarks/Usage:

Example:
None
RemoveAll API-1279

4.10.1.6 RemoveAll

RemoveAll
()
Description:
Deletes a all data associated with all IDs from the MapData object, but the field definitions remain
Input:

Output:

Return Code:

Remarks/Usage:

Example:
None
API-1280 DefineReal

4.10.1.7 DefineReal

DefineReal
()
Description:
Defines a double field in MapData object and returns a number from 0..n that represents the index ID of
that piece of data.
Input:

Output:

Return Code:

Remarks/Usage:
If the data cannot be successfully added to the MapData object, -1 is returned.
Example:
None
DefineInt API-1281

4.10.1.8 DefineInt

DefineInt
()
Description:
Defines an integer field in MapData object and returns a number from 0..n that represents the index ID
of that piece of data.
Input:

Output:

Return Code:

Remarks/Usage:
If the data cannot be successfully added to the MapData object, -1 is returned.
Example:
None
API-1282 DefineBool

4.10.1.9 DefineBool

DefineBool
()
Description:
Defines an Boolean field in MapData object and returns a number from 0..n that represents the index ID
of that piece of data.
Input:

Output:

Return Code:

Remarks/Usage:
If the data cannot be successfully added to the MapData object, -1 is returned.
Example:
None
DefineString API-1283

4.10.1.10 DefineString

DefineString
(nLength)
Description:
Defines an String field of a specified maximum length in MapData object and returns a number from
0..n that represents the index ID of that piece of data.
Input:
INT4 nLength Maximum length of String
Output:

Return Code:

Remarks/Usage:

Example:
None
API-1284 DefineVariant

4.10.1.11 DefineVariant

DefineVariant
(vVar)
Description:
Defines an String field of a specified length in MapData object and returns a number from 0..n that rep-
resents the index ID of that piece of data.
Input:
VARIANT vVar Name of the variant
Output:

Return Code:

Remarks/Usage:
The size and data type of the Variant my be defined using the Array call in the API Programming Win-
dow
Example:
DefineVariant API-1285

DefineVariant
(vVar)
The following shows how an array can be created to hold Real values, in this case XYZ coordinates, then how
those values are set using SetVariant in the MapData object:
Dim fmap As femap.MapData
Set fmap = App.feMapData

Dim fsn As femap.Set


Set fsn = App.feSet

Dim nField1 As Long

Dim nNumNode As Long


Dim vNdID As Variant
Dim vNdXYZ As Variant

Dim vXyz As Variant

Dim i As Long

fsn.AddAll( FT_NODE )

fmap.Initialize( fsn.Count )
vXyz = Array( 0#, 0#, 0# )
nField1 = fmap.DefineVariant( vXyz )

fn.GetCoordArray( fsn.ID, nNumNode, vNdID, vNdXYZ )

For i = 0 To nNumNode - 1 Step 1


vXyz = Array(vNdXYZ(i*3 + 0), vNdXYZ(i*3 + 1), vNdXYZ(i*3 + 2))
fmap.SetVariant( nField1, vNdID( i ), vXyz )
Next
API-1286 SetReal

4.10.1.12 SetReal

SetReal
( nIndex, nID, dVal )
Description:
Sets Real value in field defined using DefineReal method for DataMap object for given index-ID data
pair
Input:
INT4 nIndex Index value for real field
INT4 nID ID value for real field
REAL8 dVal Real value for real field
Output:

Return Code:
Field does not currently exist (i.e., tried to set Field 4, but only Fields
FE_INVALID
1-3 are defined)
Field defined as one data type, but trying to set with a different data
FE_BAD_TYPE
type (i.e., tried to set a real value in a field defined for an integer)
Remarks/Usage:

Example:
None
SetInt API-1287

4.10.1.13 SetInt

SetInt
( nIndex, nID, nVal )
Description:
Sets Integer value for a field defined using DefineInt method for DataMap object for given Index-ID
data pair
Input:
INT4 nIndex Index value for integer field
INT4 nID ID value for integer field
INT4 nVal Integer value for integer field
Output:

Return Code:
Field does not currently exist (i.e., tried to set Field 4, but only Fields
FE_INVALID
1-3 are defined)
Field defined as one data type, but trying to set with a different data
FE_BAD_TYPE
type (i.e., tried to set a real value in a field defined for an integer)
Remarks/Usage:

Example:
None
API-1288 SetBool

4.10.1.14 SetBool

SetBool
( nIndex, nID, bVal )
Description:
Sets Boolean value for a field defined using DefineBool method for DataMap object for given Index-ID
data pair
Input:
INT4 nIndex Index value for Boolean field
INT4 nID ID value for Boolean field
BOOL bVal Boolean value for Boolean field
Output:

Return Code:
Field does not currently exist (i.e., tried to set Field 4, but only Fields
FE_INVALID
1-3 are defined)
Field defined as one data type, but trying to set with a different data
FE_BAD_TYPE
type (i.e., tried to set a real value in a field defined for an integer)
Remarks/Usage:

Example:
None
SetString API-1289

4.10.1.15 SetString

SetString
( nIndex, nID, sVal )
Description:
Sets String value for a field defined using DefineString method for DataMap object for given Index-ID
data pair
Input:
INT4 nIndex Index value for string field
INT4 nID ID value for string field
STRING sVal String value for string field
Output:

Return Code:
Field does not currently exist (i.e., tried to set Field 4, but only Fields
FE_INVALID
1-3 are defined)
Field defined as one data type, but trying to set with a different data
FE_BAD_TYPE
type (i.e., tried to set a real value in a field defined for an integer)
Remarks/Usage:

Example:
None
API-1290 SetVariant

4.10.1.16 SetVariant

SetVariant
( nIndex, nID, vVal )
Description:
Sets Variant value for a field defined using DefineVariant method for DataMap object for given Index-
ID data pair
Input:
INT4 nIndex Index value for variant field
INT4 nID ID value for variant field
VARIANT vVal Name of variant for variant field
Output:

Return Code:
Field does not currently exist (i.e., tried to set Field 4, but only Fields
FE_INVALID
1-3 are defined)
Field defined as one data type, but trying to set with a different data
FE_BAD_TYPE
type (i.e., tried to set a real value in a field defined for an integer)
Remarks/Usage:
The data type used here needs to be the exact same data type used with the DefineVariant() method
Example:
See DefineVariant method for example of using the SetVariant method
GetReal API-1291

4.10.1.17 GetReal

GetReal
( nIndex, nID, dVal )
Description:
Gets Real value from field filled by SetReal method for DataMap object for given Index-ID data pair.
Input:
INT4 nIndex Index value for real field
INT4 nID ID value for real field
Output:
REAL8 dVal Real value from real field
Return Code:
Field does not currently exist (i.e., tried to get Field 4, but only Fields
FE_INVALID
1-3 are defined and set)
Field defined as one data type, but trying to get a different data type
FE_BAD_TYPE (i.e., tried to get a real value from a field defined and set for an inte-
ger)
FE_NOT_EXIST Specified ID does currently does not exist in DataMap object
FE_TOO_SMALL Field exists for some IDs, but not for specified ID
Remarks/Usage:

Example:
None
API-1292 GetInt

4.10.1.18 GetInt

GetInt
( nIndex, nID, nVal )
Description:
Gets Integer value from field filled by SetInt method for DataMap object for given Index-ID data pair.
Input:
INT4 nIndex Index value for integer field
INT4 nID ID value for integer field
Output:
INT4 nVal Integer value from integer field
Return Code:
Field does not currently exist (i.e., tried to get Field 4, but only Fields
FE_INVALID
1-3 are defined and set)
Field defined as one data type, but trying to get a different data type
FE_BAD_TYPE (i.e., tried to get a real value from a field defined and set for an inte-
ger)
FE_NOT_EXIST Specified ID does currently does not exist in DataMap object
FE_TOO_SMALL Field exists for some IDs, but not for specified ID
Remarks/Usage:

Example:
None
GetBool API-1293

4.10.1.19 GetBool

GetBool
( nIndex, nID, bVal )
Description:
Gets Boolean value from field filled by SetBool method for DataMap object for given Index-ID data
pair.
Input:
INT4 nIndex Index value for Boolean field
INT4 nID ID value for Boolean field
Output:
BOOL bVal Boolean value from Boolean field
Return Code:
Field does not currently exist (i.e., tried to get Field 4, but only Fields
FE_INVALID
1-3 are defined and set)
Field defined as one data type, but trying to get a different data type
FE_BAD_TYPE (i.e., tried to get a real value from a field defined and set for an inte-
ger)
FE_NOT_EXIST Specified ID does currently does not exist in DataMap object
FE_TOO_SMALL Field exists for some IDs, but not for specified ID
Remarks/Usage:

Example:
None
API-1294 GetString

4.10.1.20 GetString

GetString
( nIndex, nID, sVal )
Description:
Gets String value from field filled by SetString method for DataMap object for given Index-ID data pair.
Input:
INT4 nIndex Index value for string field
INT4 nID ID value for string field
Output:
STRING sVal String value from string field
Return Code:
Field does not currently exist (i.e., tried to get Field 4, but only Fields
FE_INVALID
1-3 are defined and set)
Field defined as one data type, but trying to get a different data type
FE_BAD_TYPE (i.e., tried to get a real value from a field defined and set for an inte-
ger)
FE_NOT_EXIST Specified ID does currently does not exist in DataMap object
FE_TOO_SMALL Field exists for some IDs, but not for specified ID
Remarks/Usage:

Example:
None
GetVariant API-1295

4.10.1.21 GetVariant

GetVariant
( nIndex, nID, vVal )
Description:
Gets Variant from field filled by SetVarient method for DataMap object for given Index-ID data pair.
Input:
INT4 nIndex Index value for variant field
INT4 nID ID value for variant field
Output:
VARIANT vVal Name of variant for variant field
Return Code:
Field does not currently exist (i.e., tried to get Field 4, but only Fields
FE_INVALID
1-3 are defined and set)
Field defined as one data type, but trying to get a different data type
FE_BAD_TYPE (i.e., tried to get a real value from a field defined and set as an inte-
ger)
FE_NOT_EXIST Specified ID does currently does not exist in DataMap object
FE_TOO_SMALL Field exists for some IDs, but not for specified ID
Remarks/Usage:
The data type used here needs to be the exact same data type used with the DefineVariant() method
Example:
API-1296 GetVariant

GetVariant
( nIndex, nID, vVal )
See DefineVariant method for examples of using the DefineVariant and SetVariant method. This code
would be used along with that code from that example to retrieve the information from the Variant Data-
Map field to list the XYZ coordinates for all nodes in the model.

While fsn.Next > 0


nID = fsn.CurrentID
App.feAppMessage( FCM_COMMAND, "Node " + Str$( nID ))

fmap.GetVariant( nField1, nID, vXyz )

App.feAppMessage(FCM_NORMAL, "X: "+Format$(vXyz(0),"0.000")+ _


", Y: "+Format$(vXyz(1),"0.000")+", Z:"+Format$(vXyz(2),"0.000"))

Wend
API-1297

4.11 Entity Tracking Object


The Entity Tracking object is used to determine which entities have been created and/or deleted
during a particular portion of an API program. Use the feTrackData method of the FEMAP appli-
cation object to create TrackData objects.
To use the TrackData object, simply use the Start method anywhere in the API program to begin
tracking a particular entity type, then use the Stop method to stop tracking a particular entity type
later in the API program. Entity types which can be tracked individually are points, curves, sur-
faces, volumes, solids, coordinate systems, nodes, elements, materials, properties, layups, global
plies, load sets, constraint sets, functions, data surfaces, analysis sets, output sets, regions, connec-
tion properties, connectors, aero panel/bodies, aero properties, aero splines, aero control surfaces,
text entities, views, groups, layers, and design optimization entities.
In addition to the Start method, the StartGeometry method can be used to begin entity tracking of
geometric entities (points, curves, surfaces, and solids) and the StartMesh method can be used to
begin entity tracking of a subset of finite element entities (nodes, elements, materials, and proper-
ties). When using one of these methods, or tracking multiple entity types, it may be beneficial to
use the StopAll method, which will stop entity tracking for all entity types.
At any time during the tracking period or after entity tracking has been completed with the Stop or
StopAll method, use the Created method to fill a Set object with the entities of a specific type cre-
ated during the tracking period and/or use the Deleted method to fill a Set object with the entities
of a specific type deleted during the tracking period. Using the Created or Deleted method will
also stop entity tracking of the specified entity type, so the Start method must be called again in
order to begin entity tracking of the entity type again.
Both the Created and Deleted methods have an option to clear the Set object before filling it with
the entities of the specified type that have been created or deleted. If the Set object is not cleared
with these methods, then entity tracking can effectively be done using several different tracking
periods. If the Set object is cleared, then entity tracking of the specified entity type will only be
tracked from the previous call of one of the Start methods. Because of this, it is recommended to
use unique Set objects for tracking purposes (i.e., one Set object to track created entities of a spe-
cific entity type and a different Set object to track deleted entities).
The same tracking object can be used multiple times during the execution of an API program. To
remove everything from a TrackData object and start over at any time, simply use the Clear
method.
API-1298 Clear

4.11.1 TrackData Object Methods


4.11.1.1 Clear

Clear
()
Description:
Clears everything in the TrackData object.
Input:
None
Output:
None
Return Code:

Remarks/Usage:

Example:
None
Start API-1299

4.11.1.2 Start

Start
( entityType )
Description:
Begins entity tracking for the specified entity type.
Input:
Type of entity to begin tracking. 3=Point, 4=Curve, 5=Surface,
6=Volume, 7=Node, 8=Element, 9=Coordinate System, 10=Material,
11=Property, 12=Load Set, 17=Constraint Set, 21=Text, 22=View,
24=Group, 28=Output Set, 33=Layer, 35=Function, 39=Solid,
INT4 entityType 45=Design Optimization, 58=Region, 60=Analysis Set, 69=Data
Surface, 71=Connector, 72=Connection Property, 81=Layup,
83=Global Ply, 95=Aero Panel/Body, 96=Aero Property, 98=Aero
Spline, 99=Aero Control Surface. For more information, see Section
3.3.6, "Entity Types".
Output:
None
Return Code:
FE_BAD_TYPE Entity type is not supported by entity tracking.
Remarks/Usage:

Example:
None
API-1300 StartGeometry

4.11.1.3 StartGeometry

StartGeometry
()
Description:
Begins entity tracking of Point, Curve, Surface, and Solid entity types.
Input:
None
Output:
None
Return Code:

Remarks/Usage:

Example:
None
StartMesh API-1301

4.11.1.4 StartMesh

StartMesh
()
Description:
Begins entity tracking for Node, Element, Material, and Property entity types.
Input:

Output:

Return Code:

Remarks/Usage:

Example:
None
API-1302 Stop

4.11.1.5 Stop

Stop
( entityType )
Description:
Ends entity tracking for the specified entity type.
Input:
Type of entity to stop tracking. 3=Point, 4=Curve, 5=Surface, 6=Vol-
ume, 7=Node, 8=Element, 9=Coordinate System, 10=Material,
11=Property, 12=Load Set, 17=Constraint Set, 21=Text, 22=View,
24=Group, 28=Output Set, 33=Layer, 35=Function, 39=Solid,
INT4 entityType 45=Design Optimization, 58=Region, 60=Analysis Set, 69=Data
Surface, 71=Connector, 72=Connection Property, 81=Layup,
83=Global Ply, 95=Aero Panel/Body, 96=Aero Property, 98=Aero
Spline, 99=Aero Control Surface. For more information, see Section
3.3.6, "Entity Types".
Output:

Return Code:
FE_BAD_TYPE Entity type is not supported by entity tracking.
Entity type is not a type currently being tracked, thus tracking cannot
FE_NOT_AVAILABLE
be stopped.
Entity tracking of specified entity type has already been stopped,
FE_INVALID
thus cannot be stopped again.
Remarks/Usage:

Example:
None
StopAll API-1303

4.11.1.6 StopAll

StopAll
()
Description:
Ends entity tracking for all entity types.
Input:

Output:

Return Code:

Remarks/Usage:

Example:
None
API-1304 Created

4.11.1.7 Created

Created
( entityType, SetID, bClear )
Description:
Fills the specified Set object with the entities of the specified type which were created during the entity
tracking period.
Input:
Type of entity created during tracking period. 3=Point, 4=Curve,
5=Surface, 6=Volume, 7=Node, 8=Element, 9=Coordinate System,
10=Material, 11=Property, 12=Load Set, 17=Constraint Set,
21=Text, 22=View, 24=Group, 28=Output Set, 33=Layer, 35=Func-
INT4 entityType tion, 39=Solid, 45=Design Optimization, 58=Region, 60=Analysis
Set, 69=Data Surface, 71=Connector, 72=Connection Property,
81=Layup, 83=Global Ply, 95=Aero Panel/Body, 96=Aero Property,
98=Aero Spline, 99=Aero Control Surface. For more information,
see Section 3.3.6, "Entity Types".
ID of the Set object to fill with entities of the specified entity type
INT4 SetID created during the entity tracking period. It is recommended to use a
unique Set object for tracking created entities of each entity type.
If True, removes all entities of the specified entity type created in the
current tracking period from the Set object specified with SetID. If
BOOL bClear
false, entities created during the previous tracking period(s) will
remain in the Set object until cleared.
Output:

Return Code:
FE_BAD_TYPE Entity type is not supported by entity tracking.
Entity type is not a type currently being tracked, thus no information
FE_NOT_AVAILABLE
exists about entities of this type created during tracking period.
Remarks/Usage:
Calling the Created method stops tracking of the specified entity type. To begin tracking this entity type
again, the Start, StartGeometry, or StartMesh method must be called again.
Example:
None
Deleted API-1305

4.11.1.8 Deleted

Deleted
( entityType, SetID, bClear )
Description:
Fills the specified Set object with the entities of the specified type which were deleted during the entity
tracking period.
Input:
Type of entity deleted during tracking period. 3=Point, 4=Curve,
5=Surface, 6=Volume, 7=Node, 8=Element, 9=Coordinate System,
10=Material, 11=Property, 12=Load Set, 17=Constraint Set,
21=Text, 22=View, 24=Group, 28=Output Set, 33=Layer, 35=Func-
INT4 entityType tion, 39=Solid, 45=Design Optimization, 58=Region, 60=Analysis
Set, 69=Data Surface, 71=Connector, 72=Connection Property,
81=Layup, 83=Global Ply, 95=Aero Panel/Body, 96=Aero Property,
98=Aero Spline, 99=Aero Control Surface. For more information,
see Section 3.3.6, "Entity Types".
ID of the Set object to fill with entities of the specified entity type
INT4 SetID deleted during the entity tracking period. It is recommended to use a
unique Set object for tracking deleted entities of each entity type.
If True, removes all entities of the specified entity type deleted in the
current tracking period from the Set object specified with SetID. If
BOOL bClear
false, entities deleted during the previous tracking period(s) will
remain in the Set object until cleared.
Output:

Return Code:
FE_BAD_TYPE Entity type is not supported by entity tracking.
Entity type is not a type currently being tracked, thus no information
FE_NOT_AVAILABLE
exists about entities of this type created during tracking period.
Remarks/Usage:
Calling the Deleted method stops tracking of the specified entity type. To begin tracking this entity type
again, the Start, StartGeometry, or StartMesh method must be called again.
Example:
None
API-1306 Deleted
API-1307

4.12 Beam Calculator Object


The Beam Calculator object provides access to the FEMAP Beam Calculator. Results provided via
this tool are the same as those found in View, Advanced Post, Beam Cross Section command.
Prior to recovering any data for a beam, at the minimum, the Element property must be set. The
Element specified will be the element used for all subsequent calls to Beam Calculator Methods
(such as CalculateStress or GetElementProperties) until the Element property is updated and the
methods called again. This is generally true for all properties; however, it's not required that their
values be set prior to calling any of the Beam Calculator methods. Consult the description for each
property to see how changing it may affect the stress or beam property calculations.
Use the feBeamCalculator method of the FEMAP Application object to access Beam Calculator
Objects.

4.12.1 Beam Calculator Object Properties

Property Description
INT4 Element Element ID to use with the beam calculator. Must be a valid
beam element with a recoverable cross-section.

Used by all Beam Calculator methods.


REAL8 Position The position along the beam, between 0.0 and 1.0 to calculate
stresses. Default = 0.0. If not set, CalculateStress and Calculat-
eStressFromForces will use the default value.

Used by all Beam Calculator methods except FindMaxMin-


Stress.
INT4 MeshFactor Setting determining the mesh density used in calculating
stresses. Value from 1 (default, coarse) to 5 (fine).

Used by all Beam Calculator Methods.


INT4 IncludeAxialForce Consider axial forces when calculating internal stresses.
Default True.

Used by CalculateStress and FindMaxMinStress methods.


BOOL IncludeShearForceY Consider shear forces in the element y-direction. Default True.

Used by CalculateStress and FindMaxMinStress methods.


BOOL IncludeShearForceZ Consider shear forces in the element z-direction. Default True.

Used by CalculateStress and FindMaxMinStress methods.


BOOL IncludeMomentY Consider moment about the element y-axis. Default True.

Used by CalculateStress and FindMaxMinStress methods.


API-1308

Property Description
BOOL IncludeMomentZ Consider moment about the element z-axis. Default True.

Used by CalculateStress and FindMaxMinStress methods.


BOOL IncludeTorque Consider torque. Default True.

Used by CalculateStress and FindMaxMinStress methods.


API-1309

4.12.2 Beam Calculator Object Methods


4.12.2.1 GetElementProperties

GetElementProperties
(pdArea, pdIzz, pdIyy, pdIyz, pdJ, pdShearAreaY, pdShearAreaZ, pdWarp, pdNeutralAxi-
sOffsetY, pdNeutralAxisOffsetZ
Description:
Returns beam properties calculated from mesh at the location along the beam specified for the element
specified
Input:
None
Output:
REAL8 pdArea Area
REAL8 pdIzz Moment of Inertia, Izz
REAL8 pdIyy Moment of Inertia, Iyy
REAL8 pdIyz Moment of Inertia, Iyz
REAL8 pdJ Torsional constant
REAL8 pdShearAreaY Y Shear Area
REAL8 pdShearAreaZ Z Shear Area
REAL8 pdWarp Warping Constant
REAL8 pdNeutralAxisOffsetY Y neutral axis offset
REAL8 pdNeutralAxisOffsetZ Z neutral axis offset
Return Code:
Could not retrieve element properties. Either the element was not
FE_FAIL
specified or an invalid element was specified
Remarks/Usage:

Example:
None
API-1310

4.12.2.2 GetMeshInfo

GetMeshInfo
(pnNumNode, pvCoord, pnNumElem, pvNodes)
Description:
Returns node location element connectivity information about the associated mesh
Input:
None
Output:
INT4 pnNumNode Number of nodes
REAL8 pvCoord Y and Z coordinates of the each node. First value is the Y coordinate,
[0..((pnNumNode)*2 - 1)] second value is the Z coordinate. Repeats for each node.
INT4 pnNumElem Number of elements
INT4 pvNodes Node indices for 9-noded quad (node 9 is located at the element cen-
[0..((pnNumElem)*9 - 1)] troid)
Return Code:
Unable to retrieve mesh information. Invalid element likely speci-
FE_FAIL
fied.
Remarks/Usage:

Example:
None
API-1311

4.12.2.3 CalculateStress

CalculateStress
(nOutputSetID, enComponent, pnNumNodes, pvCoordinates, pvStresses, pvMax-
Stress, pvMaxStressInfo, pvMinStress, pvMinStressInfo)
Description:
Calculates stresses based on forces in one or more specified output sets. Use Include* properties to
specify which force components are considered in the calculations.

Note that unless the Position property is set, the default position along the beam (End A) is used for
all calculations. To recover stresses at different positions along the beam, the Position property must
be set for each position of interest prior to each corresponding CalculateStress.

The FindMaxMinStress method automatically will perform calculations for stresses at End A, the
beam midpoint, and End B, and return the maximum and minimum stresses.
Input:
Output set(s) to use when calculating internal stresses. Use a
negative number to specify a single output set ID, otherwise a
INT4 nOutputSetID
positive number specifies the Femap Set object ID containing
multiple Output Set IDs
Stress component to return. Use zBeamCalculatorStressCompo-
enum enComponent
nent.
Output:
INT4 pnNumNodes Number of Nodes
REAL8 pvCoordinates
Y and Z coordinate for each node
[(0..pnNumNodes)*2 - 1]
Stresses at each node. Array is organized by:
-Output sets
-Stress components
REAL8 pvStresses -Stress
[nOS*nComp*(pnNumNodes) - 1]
nOS = number of output sets requested
nComp = number of stress components requested. Normally 1,
unless FBMC_SC_ALL is specified, in which case 8.
Maximum stress. If only a single stress component is specified,
an array of length 1 is returned containing the maximum stress
for the requested stress component. If all stress components are
REAL8 pvMaxStress[0..(0 or 7)]
specified, the array is 8 items long and each index corresponds
to the values from the zBeamCalculatorStressComponent enu-
meration
API-1312

CalculateStress
(nOutputSetID, enComponent, pnNumNodes, pvCoordinates, pvStresses, pvMax-
Stress, pvMaxStressInfo, pvMinStress, pvMinStressInfo)
The values in this array vary based upon the requested data

If a single stress component is specified, the array will be of


length 1, otherwise the array will be of length 8.
INT4 pvMaxStressInfo[0..(0 or 7)]
If a single output set is specified the value(s) in the array will be
the node index where the maximum stress was found. If multi-
ple output sets are specified the value(s) in the array will be the
output set corresponding to the max stress
Minimum stress. If only a single stress component is specified,
an array of length 1 is returned containing the minimum stress
for the requested stress component. If all stress components are
REAL8 pvMinStress[0..(0 or 7)]
specified, the array is 8 items long and each index corresponds
to the values from the zBeamCalculatorStressComponent enu-
meration
The values in this array vary based upon the requested data

If a single stress component is specified, the array will be of


length 1, otherwise the array will be of length 8.
INT4 pvMinStressInfo[0..(0 or 7)]
If a single output set is specified the value(s) in the array will be
the node index where the minimum stress was found. If multiple
output sets are specified the value(s) in the array will be the out-
put set corresponding to the minimum stress
Return Code:
FE_FAIL Unable to calculate beam stresses
Current element is invalid - either it is not a beam element, the
FE_INVALID beam orientation could not be determined, or the element does
not exist
FE_NOT_EXIST One or more of the specified Output Set IDs does not exist
The specified stress component is invalid. Use zBeamCalcula-
FE_BAD_TYPE
torStressComponent enum.
FE_BAD_DATA Invalid output set specified
Remarks/Usage:

Example:
API-1313

CalculateStress
(nOutputSetID, enComponent, pnNumNodes, pvCoordinates, pvStresses, pvMax-
Stress, pvMaxStressInfo, pvMinStress, pvMinStressInfo)
Sub Main
Dim App As femap.model
Set App = feFemap()
Dim fe As femap.Elem
Dim fbc As femap.BeamCalculator
Dim fsO As femap.Set
Dim fsE As femap.Set
Dim nNumNode As Long
Dim ddCoord As Variant, ddStress As Variant
Dim ddMax As Variant, ddMin As Variant
Dim nnMaxI As Variant, nnMinI As Variant
Set fe = App.feElem
Set fbc = App.feBeamCalculator
Set fsO = App.feSet
Set fsE = App.feSet
fsO.AddAll( FT_OUT_CASE )
fsE.AddRule( FET_L_BEAM, FGD_ELEM_BYTYPE )
fbc.Position = 0.
fbc.MeshFactor = 1
' Loop through all beam elements, calculate stresses at End A
fsE.Reset()
While fsE.Next() <> FE_FAIL
fbc.Element = fsE.CurrentID
rc = fbc.CalculateStress( fsO.ID, FBMC_SC_ALL, nNumNode,
ddCoord, ddStress, ddMax, nnMaxI, ddMin, nnMinI )
Wend
fbc.Position = 1.
' Loop through all beam elements, calculate stresses at End B
fsE.Reset()
While fsE.Next() <> FE_FAIL
fbc.Element = fsE.CurrentID
rc = fbc.CalculateStress( fsO.ID, FBMC_SC_ALL, nNumNode,
ddCoord, ddStress, ddMax, nnMaxI, ddMin, nnMinI )
Wend
End Sub
API-1314

4.12.2.4 CalculateStressFromForces

CalculateStressFromForces
(dForcesA, dForcesB, enComponent, pnNumNodes, pvCoordinates, pvStresses,
pvMaxStress, pvMaxStressInfo, pvMinStress, pvMinStressInfo)
Description:
Calculates beam stresses using user-defined forces, rather than forces from an output set. Include*
Beam Calculator properties are ignored when using this method.

Note that unless the Position property is set, the default position along the beam (End A) is used for
all calculations. To recover stresses at different positions along the beam, the Position property must
be set for each position of interest prior to each corresponding CalculateStress.

The FindMaxMinStress method automatically will perform calculations for stresses at End A, the beam
midpoint, and End B, and return the maximum and minimum stresses.
Input:
Forces at end A
0 - Axial Force
1 - Shear Force Y
REAL8 dForcesA[0..5] 2 - Shear Force Z
3 - Moment Y
4 - Moment Z
5 - Torque
Forces at end B
0 - Axial Force
1 - Shear Force Y
REAL8 dForcesB[0..5] 2 - Shear Force Z
3 - Moment Y
4 - Moment Z
5 - Torque
Stress component to return. Use zBeamCalculatorStressCompo-
enum enComponent
nent
Output:
INT4 pnNumNodes Number of Nodes
REAL8 pvCoordinates
Y and Z coordinate for each node
[(0..pnNumNodes)*2 - 1]
API-1315

CalculateStressFromForces
(dForcesA, dForcesB, enComponent, pnNumNodes, pvCoordinates, pvStresses,
pvMaxStress, pvMaxStressInfo, pvMinStress, pvMinStressInfo)
Stresses at each node. Array is organized by:
-Output sets
-Stress components
REAL8 pvStresses -Stress
[nOS*nComp*(pnNumNodes) - 1]
nOS = number of output sets requested
nComp = number of stress components requested. Normally 1,
unless FBMC_SC_ALL is specified, in which case 8.
Maximum stress. If only a single stress component is specified,
an array of length 1 is returned containing the maximum stress for
REAL8 pvMaxStress[0..(0 or 7)] the requested stress component. If all stress components are spec-
ified, the array is 8 items long and each index corresponds to the
values from the zBeamCalculatorStressComponent enumeration
The values in this array vary based upon the requested data

If a single stress component is specified, the array will be of


length 1, otherwise the array will be of length 8.
INT4 pvMaxStressInfo[0..(0 or 7)]
If a single output set is specified the value(s) in the array will be
the node index where the maximum stress was found. If multiple
output sets are specified the value(s) in the array will be the out-
put set corresponding to the max stress
Minimum stress. If only a single stress component is specified, an
array of length 1 is returned containing the minimum stress for
REAL8 pvMinStress[0..(0 or 7)] the requested stress component. If all stress components are spec-
ified, the array is 8 items long and each index corresponds to the
values from the zBeamCalculatorStressComponent enumeration
The values in this array vary based upon the requested data

If a single stress component is specified, the array will be of


length 1, otherwise the array will be of length 8.
INT4 pvMinStressInfo[0..(0 or 7)]
If a single output set is specified the value(s) in the array will be
the node index where the minimum stress was found. If multiple
output sets are specified the value(s) in the array will be the out-
put set corresponding to the minimum stress
Return Code:
FE_FAIL Unable to calculate beam stresses
Current element is invalid - either it is not a beam element, the
FE_INVALID beam orientation could not be determined, or the element does not
exist
API-1316

CalculateStressFromForces
(dForcesA, dForcesB, enComponent, pnNumNodes, pvCoordinates, pvStresses,
pvMaxStress, pvMaxStressInfo, pvMinStress, pvMinStressInfo)
FE_NOT_EXIST One or more of the specified Output Set IDs does not exist
The specified stress component is invalid. Use zBeamCalculator-
FE_BAD_TYPE
StressComponent enum.
FE_BAD_TYPE Invalid data passed for End A or End B force arrays
Remarks/Usage:

Example:
None
API-1317

4.12.2.5 FindMaxMinStress

FindMaxMinStress
(nOutputSetID, enStressComponent, nMaxSetID, enMaxComponent, dMaxLocation,
dMaxStress, nMinSetID, enMinComponent, dMinLocation, dMinStress)
Description:
Returns maximum and minimum stress along with the associated stress component for an element
across one or more output sets. Max/min stresses are taken from calculations performed at End A, End
B and 50% along the length of the element.
Input:
Output Set ID. Positive value is the ID of a Set object containing one
INT4 nOutputSetID
or more output sets. A negative value is the ID of a single Output Set
Stress component(s) to calculate. Use zBeamCalculatorStressCom-
enum enComponent
ponent
Output:
INT4 nMaxSetID Output set ID associated with maximum stress
Stress component associated with maximum stress. Unless
enum enMaxComponent FBMC_SC_ALL is specified, this will be the same as the component
specified with enComponent
Location along the beam where maximum stress is found. Currently,
will return:
REAL8 dMaxLocation 0.0 - End A
0.5 - Midpoint
1.0 - End B
REAL8 dMaxStress Maximum stress
INT4 nMinSetID Output set ID associated with minimum stress
Stress component associated with minimum stress. Unless
enum enMinComponent FBMC_SC_ALL is specified, this will be the same as the component
specified with enComponent
Location along the beam where minimum stress is found. Currently,
will return:
REAL8 dMinLocation 0.0 - End A
0.5 - Midpoint
1.0 - End B
REAL8 dMinStress Minimum stress
Return Code:
FE_FAIL Unable to calculate beam stresses
API-1318

FindMaxMinStress
(nOutputSetID, enStressComponent, nMaxSetID, enMaxComponent, dMaxLocation,
dMaxStress, nMinSetID, enMinComponent, dMinLocation, dMinStress)
Current element is invalid - either it is not a beam element, the beam
FE_INVALID
orientation could not be determined, or the element does not exist
FE_NOT_EXIST One or more of the specified Output Set IDs does not exist
The specified stress component is invalid. Use zBeamCalculator-
FE_BAD_TYPE
StressComponent enum.
FE_BAD_DATA Invalid output set specified
Remarks/Usage:

Example:
None
API-1319

5. FEMAP Entity Objects

In addition to the various methods and properties that are available directly from the main FEMAP
application object, and the tool objects described earlier, FEMAP also provides objects that allow
you to query and manipulate the data in your model. You will find that these objects give you the
detailed control that is often necessary to implement your own functionality.
Using the Documentation for Entity Objects
All of the entity objects share common functionality to retrieve, store and search your model data.
Rather than describe all of this functionality for each object, these common functions are described
in Section 5.1, "Common Entity Properties and Methods". Each of the individual entity objects
then describes only the additional functionality provided by that object.
Creating an Object
To link your application to FEMAP, you had to declare an object and then connect it to FEMAP. In
Basic, this is done via the GetObject or CreateObject functions. Creating these additional FEMAP
objects is similar. First you must declare an object. Then, however, instead of using the standard
system level functions, you use one of the following FEMAP functions to actually create the
object. Once the object has been created, all of the properties and methods for that type of object
are available for use.
All of the following methods are available from the FEMAP application object, and return the
object that they create.

Entity Objects

Method Description Other Methods


feAeroPanel (Section 5.2, "Aero Panel/Body Creates an Aero Panel/Body
Objects") Object
feAeroProp (Section 5.3, "Aero Property Creates an Aero Property
Objects") Object
feAeroSpline (Section 5.4, "Aero Spline Creates an Aero Spline
Objects") Object
feAeroSurf (Section 5.5, "Aero Surface Creates an Aero Control
Objects") Surface Object
feAnalysisCase (Section 5.6, "AnalysisCase Creates an AnalysisCase AnalysisMgr.Case
Objects") Object
feAnalysisMgr (Section 5.7, "AnalysisMgr Creates an AnalysisMgr
Objects") Object
API-1320

Method Description Other Methods


feAnalysisStudy (Section 5.8, "Analysis- Creates an AnalysisStudy
Study Objects") Object
feBCDefinition (Section 5.9, "BCDefinition Creates a BCDefinition BCSet.NextBCDef
Objects") Object
feBCEqn (Section 5.10, "BCEqn Objects") Creates a BCEqn Object BCSet.NextBC,
BCDefini-
tion.NextBC
feBCGeom (Section 5.11, "BCGeom Creates a BCGeom Object BCSet.NextBC,
Objects") BCDefini-
tion.NextBC
feBCNode (Section 5.12, "BCNode Objects") Creates a BCNode Object BCSet.NextBC,
BCDefini-
tion.NextBC
feBCSet (Section 5.13, "BCSet Objects") Creates a BCSet Object
feChart (Section 5.14, "Chart Objects") Creates a Chart Object
feChartSeries (Section 5.15, "Chart Data Creates a Chart Data Series
Series Objects") Object
feConnectionProp (Section 5.16, "Connec- Creates a Connection Prop- Connection.Prop
tion Property Objects") erty
feConnectionRegion (Section 5.17, "Connec- Creates a Connection feContact
tion Region Objects") Region / Contact Object
feConnection (Section 5.18, "Connection Creates a Connection
Objects")
feCSys (Section 5.19, "CSys Objects") Creates a CSys Object
feCurve (Section 5.20, "Curve Objects") Creates a Curve Object
feDataSurface (Section 5.21, "Data Surface Creates a Data Surface
Objects") Object
feElem (Section 5.22, "Element Objects") Creates an Element Object
feFreebody (Section 5.23, "Freebody Creates an Freebody Object
Objects")
feFunction (Section 5.24, "Function Objects") Creates a Function Object
feGFXArrow (Section 5.25, "GFXArrow Creates a GFXArrow Object
Objects")
feGFXLine (Section 5.26, "GFXLine Creates a GFXLine Object
Objects")
API-1321

Method Description Other Methods


feGFXPoint (Section 5.27, "GFXPoint Creates a GFXPoint Object
Objects")
feGFXQuad4 (Section 5.28, "GFXQuad4 Creates a GFXQuad4 Object
Objects")
feGFXTria3 (Section 5.29, "GFXTria3 Creates a GFXTria3 Object
Objects")
feGlobalPly (Section 5.30, "GlobalPly Creates a GlobalPly Object
Objects")
feGroup (Section 5.31, "Group Objects") Creates a Group Object
feLayer (Section 5.32, "Layer Objects") Creates a Layer Object
feLayup (Section 5.33, "Layup Objects") Creates a Layup Object Prop.Layup
feLoadBolt (Section 5.34, "LoadBolt Object") Creates a LoadBolt Object
feLoadDefinition (Section 5.35, "LoadDefini- Creates a LoadDefinition LoadSet.NextLoad-
tion Objects") Object Def
feLoadETemp (Section 5.36, "LoadETemp Creates a LoadETemp LoadSet.NextLoad,
Objects") Object LoadDefinition.Next-
Load
feLoadGeom (Section 5.37, "LoadGeom Creates a LoadGeom Object LoadSet.NextLoad,
Objects") LoadDefinition.Next-
Load
feLoadMesh (Section 5.38, "LoadMesh Creates a LoadMesh Object LoadSet.NextLoad,
Objects") LoadDefinition.Next-
Load
feLoadNTemp (Section 5.39, "LoadNTemp Creates a LoadNTemp LoadSet.NextLoad,
Objects") Object LoadDefinition.Next-
Load
feLoadSet (Section 5.40, "LoadSet Objects") Creates a LoadSet Object
feMapOutput (Section 5.41, "MapOutput Creates a MapOutput Object
Objects")
feMatl (Section 5.42, "Material Objects") Creates a Material Object Element.Matl,
Prop.Matl
feNode (Section 5.43, "Node Objects") Creates a Node Object
feOptim (Section 5.44, "Optim Objects") Creates an Optimization
Object
API-1322

Method Description Other Methods


feOutput (Section 5.45, "Output Objects") Creates an Output Object Output.Corner,
Output.X, Output.Y,
Output.Z
feOutputSet (Section 5.46, "OutputSet Creates an OutputSet Object Output.Vector
Objects")
fePoint (Section 5.47, "Point Objects") Creates a Point Object
feProp (Section 5.48, "Property Objects") Creates a Property Object Element.Prop
feReport (Section 5.49, "Report Objects") Creates a Report Object
feSEReference (Section 5.50, "Superelement Creates an Superelement
Reference Objects") Object
feSolid (Section 5.51, "Solid Objects") Creates a Solid/Volume
Object
feSurface (Section 5.52, "Surface Objects") Creates a Surface Object
feText (Section 5.53, "Text Objects") Creates a Text Object
feTMGBC (Section 5.54, "TMGBC Objects") Creates a TMGBc Object
feTMGCtrl (Section 5.55, "TMGCtrl Creates a TMGCtrl Object
Objects")
feTMGInt (Section 5.56, "TMGInt Objects") Creates a TMGInt Object
feTMGOpt (Section 5.57, "TMGOpt Creates a TMGOpt Object
Objects")
feTMGReal (Section 5.58, "TMGReal Creates a TMGReal Object
Objects")
feVar (Section 5.59, "Variable Objects") Creates a Var Object
feView (Section 5.60, "View Objects") Creates a View Object

Other Objects
Method Description Other Methods
feUserData (Section 4.8, "UserData Objects") Creates a UserData Object

Example of Creating an Object


The following shows a sample (in Basic) of how to create a Node object, and use it to retrieve
Node 100, update its X coordinate, and save the updated location in your model. This example
assumes that FEMAP is running and has a model that contains Node 100.
API-1323

Sub Main
Dim App As femap.model
Set App = GetObject(, "femap.model")
Dim nd As Object
Set nd = App.feNode

rc = nd.Get(100)
nd.x = 50.5
rc = nd.Put(100)
End Sub

Destroying an Object
Objects are destroyed automatically when your application ends. However, you can, and should,
destroy them yourself as soon as you are done using them. By destroying objects sooner, you will
minize the amount of memory that is required at any one time by your application and by FEMAP.
From Basic, you can destroy an object simply by changing its value. For example, if you had:

Dim femap As Object
Set femap = GetObject(, "femap.model")
Dim nd As Object
Set nd = femap.feNode
...
Set nd = femap.feNode
...

The first nd object was destroyed as soon as you made the second Set statement. This, however,
creates a second node object that will be destroyed when your application terminates. Similarly,
you can do the following:

Dim femap As Object
Set femap = GetObject(, "femap.model")
Dim nd As Object
Set nd = femap.feNode
...
Set nd = Nothing
...
This destroys the nd object without creating another.
API-1324

5.1 Common Entity Properties and Methods


Entity objects are ones that contain the data that is part of your FEMAP model. This includes
nodes, elements, materials, properties, points, and curves. All of the properties and methods
described here can be accessed from any entity object, no matter what its type. As you will see,
most of these methods deal with traversing the entities in the model, or retrieving or storing entity
data. You will find properties and methods that are specific to an entity type documented with that
object.

5.1.1 Common Entity Properties

Property Description
INT4 ID The ID of the entity that has been loaded. This property can be
retrieved any time. It is automatically updated by any method
that loads or saves entity data. It is not recommended to change
this property directly. You can do it, but simply doing that does
not load the data for the entity with the new ID.
INT4 SetID The SetID of the entity that has been loaded. For many entity
types, this will always be 1. All entities that are not stored in
sets are stored with a SetID = 1. Loads, constraints, and other
set-based data are stored with SetID equal to the ID of the
appropriate set.
Unlike the ID property, you can and should update this property
to be the set that you want to use to retrieve and store entities.
You can do this either directly or indirectly with the NextSet,
PrevSet, NextEmptySet, or PrevEmpty Set methods.
INT4 Active The ID of the active entity. This is normally used for set-based
entities like load sets, output sets, etc. to choose the active set. It
is also used for properties and materials to choose the active
entity.
Get API-1325

5.1.2 Common Entity Methods


5.1.2.1 Get

Get
( id )
Description:
This method retrieves an entity from your model database with the specified ID.
Input:
ID of the entity to retrieve. If you specify id=0, then the current value
INT4 id
of the ID property will be used instead.
Output:
None
Return Code:
FE_FAIL The specified entity does not exist.
Remarks/Usage:
This method retrieves the data for the selected entity and updates the ID property.
Example:
None
API-1326 GetLibrary

5.1.2.2 GetLibrary

GetLibrary
( libINDEX )
Description:
This method retrieves an entity from the associated library.
Input:
The index of the entity stored in the library. The first entity stored is
libINDEX = 0, the second has libINDEX = 1, and so on. If you spec-
INT4 libINDEX
ify libINDEX = -1, a dialog box will be displayed showing all enti-
ties in the library, and will allow the user to select the entity to load.
Output:
None
Return Code:
This function is only available for entity types that have libraries
FE_FAIL (Material, Property, View, etc.). If you call this method from another
entity type, it will fail.
Remarks/Usage:
None
Example:
None
Put API-1327

5.1.2.3 Put

Put
( id )
Description:
This method stores an entity in the model database with the specified ID.
Input:
The ID of the entity to store. If you specify id=0, then the current
INT4 id
value of the ID property will be used instead.
Output:
None
Return Code:
FE_FAIL Unable to store the entity with the specified ID.
Remarks/Usage:
All of the data that has been currently loaded/updated is stored as the entity with the specified ID. The
ID where you store the data does not have to be the same as the ID that you used in a previous Get. For
example, calling Get(3), then Put(6), creates a new entity with an ID of 6 that is a copy of entity 3.
Example:
None
API-1328 PutLibrary

5.1.2.4 PutLibrary

PutLibrary
( void )
Description:
This method stores an entity in the associated library.
Input:
None
Output:
None
Return Code:
This function is only available for entity types that have libraries
FE_FAIL (Material, Property, View, etc.). If you call this method from another
entity type, it will fail.
Remarks/Usage:
For most entity types, the current data that you have loaded into the object can be stored directly to the
library. There is no need to necessarily store it in the model database. For several entity types, such as
functions and analysis sets, the object must first be stored in the database. For these entities, it is actually
the data from the database that is written to the library, not the data in the current object. The ID of the
current object must identify the database entity that you want written in the library.
Example:
None
GetTitleList API-1329

5.1.2.5 GetTitleList

GetTitleList
( minID, maxID, count, listID, listTITLE )
Description:
This method retrieves two arrays which contain the IDs and titles of all entities (in the selected ID
range) with the same type as the current object.
Input:
INT4 minID The minimum and maximum entity IDs to retrieve. You can set
INT4 maxID minID=maxID=0 to retrieve all available entities.

Output:
The number of entities retrieved. This is the number of entries in lis-
INT4 count
tID and listTITLE.
INT4 listID[0..count-1] The IDs of the available entities.
The titles of the available entities. If the entity does not have a title,
STRING listTITLE[0..count-1]
the string Untitled will be returned.
Return Code:
This function is only available for entity types that have titles (Mate-
FE_FAIL rial, Property, View, etc.). If you call this method from another entity
type, it will fail.
Remarks/Usage:
This method is identical to calling GetTitleIDList( False, ....). See that method for more information.
Example:
API-1330 GetTitleIDList

5.1.2.6 GetTitleIDList

GetTitleIDList
( bIncludeID, minID, maxID, count, listID, listTITLE )
Description:
This method retrieves two arrays which contain the IDs and titles of all entities (in the selected ID
range) with the same type as the current object.
Input:
If True, the titles are in the form ID..title (for example, 1..Steel.
BOOL bIncludeID
If False, only the title, without the ID or separator is returned.
INT4 minID The minimum and maximum entity IDs to retrieve. You can set
INT4 maxID minID=maxID=0 to retrieve all available entities.

Output:
The number of entities retrieved. This is the number of entries in lis-
INT4 count
tID and listTITLE.
INT4 listID[0..count-1] The IDs of the available entities.
The titles of the available entities. If the entity does not have a title,
STRING listTITLE[0..count-1]
the string Untitled will be returned.
Return Code:
This function is only available for entity types that have titles (Mate-
FE_FAIL rial, Property, View, etc.). If you call this method from another entity
type, it will fail.
Remarks/Usage:
This method is somewhat different than the other entity methods. It does not really operate on, or tell
about the current entity. It simply uses it to select the type of entity that you are interested in, and to
choose the setID of interest for certain entity types - like output objects.
Calling this method with bIncludedID=False, is the same as calling GetTitleList( )
Example:
GetTitleIDList API-1331

GetTitleIDList
( bIncludeID, minID, maxID, count, listID, listTITLE )

Attach to FEMAP........................
Dim femap As Object
Set femap = GetObject(, "femap.model")

Look at Output Set 3...................
Dim oc As Object
Set oc = femap.feOutputSet()
oc.Get (3)
Dim od As Object
Set od = oc.Vector(1)

Dim rc As Integer
Dim Count As Long
Dim ID As Variant
Dim Title As Variant
Dim Row As Integer

Retrieve ID and Title of all available Output Vectors...
rc = od.GetTitleIDList(False, 0, 0, Count, ID, Title)
Display list in cells of a spreadsheet.................
For Row = 1 To Count
Worksheets(1).Cells(Row, 1).Value = ID(Row - 1)
Worksheets(1).Cells(Row, 2).Value = Title(Row - 1)
Next Row
API-1332 ParseTitleID

5.1.2.7 ParseTitleID

ParseTitleID
( sTitleID )
Description:
Returns the ID from a string that was formatted by GetTitleIDList in the form ID..title
Input:
STRING sTitleID This must be a string in the format ID..title
Output:
None
Return Code:
This is the ID contained in the string. 0 if the string has the wrong
ID
format.
Remarks/Usage:
None
Example:
ParseTitleID API-1333

ParseTitleID
( sTitleID )
Sub ListOutputVectors()
'Attach to FEMAP........................
Dim femap As Object
Set femap = GetObject(, "femap.model")

'Look at Output Set 3...................
Dim oc As Object
Set oc = femap.feOutputSet()
oc.Get (1)
Dim od As Object
Set od = oc.Vector(1)

Dim rc As Integer
Dim Count As Long
Dim ID As Variant
Dim Title As Variant
Dim Row As Integer

'Retrieve ID and Title of all available Output Vectors...
rc = od.GetTitleIDList(True, 0, 0, Count, ID, Title)
' Display list in cells of a spreadsheet.................
For Row = 1 To Count
Worksheets(1).Cells(Row, 1).Value = _
od.ParseTitleID(Title(Row - 1))
Worksheets(1).Cells(Row, 2).Value = Title(Row - 1)
Next Row
End Sub
API-1334 Exist

5.1.2.8 Exist

Exist
( id )
Description:
This method checks to see if a specified entity currently exists.
Input:
The ID of the entity to check. If you specify id=0, then the current
INT4 id
value of the ID property will be used instead.
Output:
None
Return Code:
FE_FAIL The selected entity does not exist.
Remarks/Usage:
This method does not load any data. It simply returns FE_OK if the entity exists, and FE_FAIL if it does
not.
Example:
None
Deletable API-1335

5.1.2.9 Deletable

Deletable
( id )
Description:
This method checks to see if an entity can be deleted.
Input:
The ID of the entity to check. If you specify id=0, then the current
INT4 id
value of the ID property will be used instead.
Output:
None
Return Code:
FE_FAIL The entity is not deletable.
Remarks/Usage:
Entities are deletable only if there are no other entities in the model that require them to exist. For exam-
ple, nodes cannot be deleted until after all elements that reference them have been deleted.
Example:
None
API-1336 Delete

5.1.2.10 Delete

Delete
( id )
Description:
This method deletes an entity from the model database.
Input:
The ID of the entity to delete. If you specify id=0, then the current
INT4 id
value of the ID property will be used instead.
Output:
None
Return Code:
FE_OK The entity was deleted.
FE_FAIL The entity could not be deleted.
Remarks/Usage:
Entities are not deletable if there are other entities in the FEMAP model that require them to exist. Cer-
tain objects, like LoadSet and BCSet objects, will also automatically delete all of the other entities that
they contain if you delete them. For example, if you delete a LoadSet, all of the individual loads on
nodes, elements or geometry in that set will also be deleted.
Example:
None
DeleteLibrary API-1337

5.1.2.11 DeleteLibrary

DeleteLibrary
( libINDEX )
Description:
This method deletes an entity from the associated library.
Input:
The index of the entity stored in the library. The first entity stored is
libINDEX = 0, the second has libINDEX = 1, and so on. If you spec-
INT4 libINDEX
ify libINDEX = -1, a dialog box will be displayed showing all enti-
ties in the library, and will allow the user to select the entity to delete.
Output:
None
Return Code:
This function is only available for entity types that have libraries
FE_FAIL (Material, Property, View, etc.). If you call this method from another
entity type, it will fail.
Remarks/Usage:
You must use this method with caution. There is no option to allow the user to confirm the deletion and
no option to undo the operation. Once entities are deleted from a library, they cannot be recovered.
Example:
None
API-1338 Reset

5.1.2.12 Reset

Reset
( void )
Description:
This method resets the Next pointer so that the next call to Next will return the first (lowest ID) entity.
Input:
None
Output:
None
Return Code:
None
Remarks/Usage:
After calling Reset, Next will return the first entity and Prev will return the last (highest ID) entity.
Example:
None
Next API-1339

5.1.2.13 Next

Next
( void )
Description:
This method retrieves the next available entity with a larger ID.
Input:
None
Output:
None
Return Code:
FE_FAIL No additional entities were found.
Remarks/Usage:
Calling this method simply finds the next available entity with an ID that is greater than the current ID,
and calls the Get method with that ID.
Example:
None
API-1340 NextInSet

5.1.2.14 NextInSet

NextInSet
( setID )
Description:
This method retrieves the next available entity with a larger ID that is referenced in the Set.
Input:
The ID of a Set object that contains the IDs of the entities that you
INT4 setID
want to iterate through.
Output:
None
Return Code:
FE_FAIL No additional entities were found.
Remarks/Usage:
Calling this method simply finds the next available entity that is in the specified Set object that has an
ID that is greater than the current ID, and calls the Get method with that ID. So, to start at the beginning
of the Set, first call the Reset() method on the current entity (not on the Set), or call FirstInSet()
Example:
None
Prev API-1341

5.1.2.15 Prev

Prev
( void )
Description:
This method retrieves the next available entity with a smaller ID.
Input:
None
Output:
None
Return Code:
FE_FAIL No additional entities were found.
Remarks/Usage:
Calling this method simply finds the next available entity with an ID that is smaller than the current ID,
and calls the Get method with that ID.
Example:
None
API-1342 First

5.1.2.16 First

First
( void )
Description:
This method loads the first (with the lowest ID) available entity.
Input:
None
Output:
None
Return Code:
FE_FAIL No entities exist, or unable to load.
Remarks/Usage:
Calling this method is like calling Reset, followed by Next.
Example:
None
FirstInSet API-1343

5.1.2.17 FirstInSet

FirstInSet
( setID )
Description:
This method loads the first (with the lowest ID) available entity that is referenced in the Set.
Input:
The ID of the set that contains the entities that you want to iterate
INT4 setID
through.
Output:
None
Return Code:
FE_FAIL No entities exist, or unable to load.
Remarks/Usage:
Calling this method is like calling Reset, followed by NextInSet()
Example:
None
API-1344 Last

5.1.2.18 Last

Last
( void )
Description:
This method loads the last (with the highest ID) available entity.
Input:
None
Output:
None
Return Code:
FE_FAIL No entities exist, or unable to load.
Remarks/Usage:
Calling this method is like calling Reset, followed by Prev.
Example:
None
NextSet API-1345

5.1.2.19 NextSet

NextSet
( void )
Description:
This method updates the setID to be the next set that contains entities of this type.
Input:
None
Output:
None
Return Code:
FE_FAIL No more sets available.
Remarks/Usage:
If no more sets are found, setID remains unchanged. This method finds the next set with a higher ID.
Example:
None
API-1346 PrevSet

5.1.2.20 PrevSet

PrevSet
( void )
Description:
This method updates the setID to be the previous set that contains entities of this type.
Input:
None
Output:
None
Return Code:
FE_FAIL No more sets available.
Remarks/Usage:
If no more sets are found, setID remains unchanged. This method finds the next set with a lower ID.
Example:
None
NextEmptySet API-1347

5.1.2.21 NextEmptySet

NextEmptySet
( void )
Description:
This method updates the setID to be the next set of this entity type that is empty.
Input:
None
Output:
None
Return Code:
FE_FAIL No more sets available.
Remarks/Usage:
If no more empty sets are found, setID remains unchanged. This method finds the next set with a higher
ID.
Example:
None
API-1348 PrevEmptySet

5.1.2.22 PrevEmptySet

PrevEmptySet
( void )
Description:
This method updates the setID to be the previous set of this entity type that is empty.
Input:
None
Output:
None
Return Code:
FE_FAIL No more sets available.
Remarks/Usage:
If no more empty sets are found, setID remains unchanged. This method finds the next set with a lower
ID.
Example:
None
NextID API-1349

5.1.2.23 NextID

NextID
( void )
Description:
This method finds the ID of the next available entity with a higher ID.
Input:
None
Output:
None
Return Code:
If return value is less than or equal to MAX_LABEL, this is the
ID
entity that was found. Otherwise, there are no more available entities.
Remarks/Usage:
This method is the same as Next, except that it does not update the current ID, nor does it load the data
for the entity.
Example:
None
API-1350 PrevID

5.1.2.24 PrevID

PrevID
( void )
Description:
This method finds the ID of the next available entity with a lower ID.
Input:
None
Output:
None
Return Code:
If return value is greater than or equal to 1, this is the entity that was
ID
found. Otherwise, there are no more available entities.
Remarks/Usage:
This method is the same as Prev, except that it does not update the current ID, nor does it load the data
for the entity.
Example:
None
NextEmptyID API-1351

5.1.2.25 NextEmptyID

NextEmptyID
( void )
Description:
This method finds the ID of the next nonexisting entity with a higher ID.
Input:
None
Output:
None
Return Code:
If return value is less than or equal to MAX_LABEL, this is the
ID entity ID that was empty. Otherwise, there are no more available
empty entities.
Remarks/Usage:
None
Example:
None
API-1352 PrevEmptyID

5.1.2.26 PrevEmptyID

PrevEmptyID
( void )
Description:
This method finds the ID of the next nonexisting entity with a lower ID.
Input:
None
Output:
None
Return Code:
If return value is greater than or equal to 1, this is the entity that was
ID
empty. Otherwise, there are no more available empty entities.
Remarks/Usage:
None
Example:
None
SelectID API-1353

5.1.2.27 SelectID

SelectID
( title )
Description:
This function displays a selection dialog box to allow a user to choose a single entity of a specific type.
The selected entity is automatically loaded into the calling entity.
Input:
A text string that will be added to the title bar of the dialog box to
STRING title
give the user more information about what is being selected.
Output:
None
Return Code:
FE_CANCEL The user cancelled the selection.
No entities of the selected type exist. None were selected and the dia-
FE_NOT_EXIST
log box was not displayed.
Remarks/Usage:
This function displays one of two different dialog boxes, depending on the entity type that you choose.
For entities that have titles, like properties or materials, the dialog box will contain a list of the available
entities along with their titles. For other entities, like nodes or elements, a simple dialog box is displayed
so that the ID can be typed or picked.

This method is the same as the SelectID method in the Set Object, however instead of simply adding the
entity ID into the Set, it retrieves the selected entity.
Example:
None
API-1354 CountSet

5.1.2.28 CountSet

CountSet
( void )
Description:
Returns the number of entities in the database of the current type
Input:
None
Output:
None
Return Code:
Count The number of entities of the current type
Remarks/Usage:
This function only counts entities that are in the set specified by the SetID entity property. For most
entities (Curves, Surfaces, Nodes, Elements, ...) this counts all entities in the model. For other set-
based entities - like Loads and Constraints - it only counts the entities in the one set, so you must spec-
ify which set you want prior to calling this function.
Example:
None
( void ) API-1355
API-1356

5.2 Aero Panel/Body Objects


Aero Panel/Body objects correspond to the Aero Panels and Bodies in your model. They are
derived from Entity objects so, in addition to the properties and methods described here, all of the
properties and methods defined for Entity objects are also available for Aero Panel/Body objects.
For more information, see Section 5.1, "Common Entity Properties and Methods".
Use the feAeroPanel method of the FEMAP Application object to create Aero Panel/Body objects.

5.2.1 Aero Panel/Body Object Properties


Aero Panel/Bodies are always stored with a SetID=1, and the ID equal to the Aero Panel/Body ID.

Property Description
INT4 color The panel/body color.
INT4 layer The layer associated with the panel/body.
STRING title Aero Panel/Body title.
INT4 propID ID of Aero Property referenced by the panel/body.
INT4 defCSys The ID of the coordinate system in which points 1,4 are
defined.
INT4 nSpan Number of spanwise boxes.
INT4 nChord Number of chordwise boxes.
INT4 nIgid Interference group identification
REAL8 Pt1[0..2] Location of point 1 in coordinate system defCSys.
or
VARIANT vPt1
REAL8 Pt4[0..2] Location of point 4 in coordinate system defCSys.
or
VARIANT vPt4
REAL8 dChord12 Edge chord length 1-2
REAL8 dChord34 Edge chord length 3-4
INT4 nLspanID ID of Aero Division List
INT4 nLchordID ID of Aero Division List
Type of panel:
INT4 type
Panel=0, Body=1
GetDivisionList API-1357

5.2.2 Aero Panel/Body Object Methods


5.2.2.1 GetDivisionList

GetDivisionList
( nChord, cval, nSpan, sval )
Description:
This method retrieves Chord /Span division arrays for the Aero Panel
Input:

Output:
INT4 nChord The number of chord divisions for which data is being returned.
The division location along the chord as a percentage along the
REAL8 cval[0..(nChord-1]
edge - i.e. 0.8 mean a division 80% of the way between points
INT4 nSpan The number of span divisions for which data is being returned.
The division location along the span as a percentage along the edge
REAL8 sval[0..(nSpan-1]
- i.e. 0.8 mean a division 80% of the way between points
Return Code:
FE_FAIL Unable to retrieve data from the panel.
FE_NOT_EXIST No divisions have been defined.
FE_OK
Remarks/Usage:

Example:
None
API-1358 PutDivisionList

5.2.2.2 PutDivisionList

PutDivisionList
( nChord, cval, nSpan, sval )
Description:
This method retrieves Chord/Span division arrays for the Aero Panel
Input:
INT4 nChord The number of chord divisions for which data is being stored.
The division location along the chord as a percentage along the
REAL8 cval[0..(nChord-1]
edge - i.e. 0.8 mean a division 80% of the way between points
INT4 nSpan The number of span divisions for which data is being stored.
The division location along the span as a percentage along the edge
REAL8 sval[0..(nSpan-1]
- i.e. 0.8 mean a division 80% of the way between points
Output:
None
Return Code:
FE_FAIL Unable to save data to the panel.
FE_OK
Remarks/Usage:

Example:
None
SlenderBodyCount API-1359

5.2.2.3 SlenderBodyCount

SlenderBodyCount
( void )
Description:
This method retrieves the number of Slender Body elements defined.
Input:
None
Output:
None
Return Code:
count Number of Slender Body elements.
Remarks/Usage:

Example:
None
API-1360 InterferenceBodyCount

5.2.2.4 InterferenceBodyCount

InterferenceBodyCount
( void )
Description:
This method retrieves the number of Interference Body elements defined.
Input:
None
Output:
None
Return Code:
count Number of Interference Body elements.
Remarks/Usage:

Example:
None
PanelSpanCount API-1361

5.2.2.5 PanelSpanCount

PanelSpanCount
( void )
Description:
This method retrieves the number of Span elements defined.
Input:
None
Output:
None
Return Code:
count Number of Span elements.
Remarks/Usage:

Example:
None
API-1362 PanelChordCount

5.2.2.6 PanelChordCount

PanelChordCount
( void )
Description:
This method retrieves the number of Chord elements defined.
Input:
None
Output:
None
Return Code:
count Number of Chord elements.
Remarks/Usage:

Example:
None
GetBoxSet API-1363

5.2.2.7 GetBoxSet

GetBoxSet
( void )
Description:
This method creates and returns a Set object that contains the IDs of the aero elements included within
the box set bounded by Box 1 - Box2.
Input:
None
Output:
None
Return Code:

Remarks/Usage:
This method is used to determine the panel elements chosen based on a Aero Spline BOX1, BOX2 def-
inition.
Example:
None
API-1364 AeroChordXYZ

5.2.2.8 AeroChordXYZ

AeroChordXYZ
( nNumChord , dChrodLoc )
Description:
This methods retrieve the locations of the Chord edge locations in the global coordinate system
Input:
None
Output:
INT4 nNumChord Number of Chord edge locations
REAL8 dChordLoc
The global coordinates of the Chord point location
[0.. nNumChord -1]
Return Code:

Remarks/Usage:

Example:
None
AeroSpanXYZ API-1365

5.2.2.9 AeroSpanXYZ

AeroSpanXYZ
( nNumSpan , dSpanLoc )
Description:
This methods retrieve the locations of the Span edge locations in the global coordinate system
Input:
None
Output:
INT4 nNumSpan Number of Span edge locations
REAL8 dSpanLoc
The global coordinates of the Span point location
[0.. nNumChord -1]
Return Code:

Remarks/Usage:

Example:
None
API-1366

5.3 Aero Property Objects


Aero Panel/Body objects correspond to the Aero Properties in your model. They are derived from
Entity objects so, in addition to the properties and methods described here, all of the properties and
methods defined for Entity objects are also available for Aero Property objects. For more informa-
tion, see Section 5.1, "Common Entity Properties and Methods".
Use the Prop method of the FEMAP Application object to create Aero Property objects.

5.3.1 Aero Property Object Properties


Aero Properties are always stored with a SetID=1, and the ID equal to the Aero Property ID.

Property Description
INT4 color The property color.
INT4 layer The layer associated with the property.
STRING title Aero Property title.
REAL8 pdval[0..9] values associated with property.
or
VARIANT vpdval
INT4 pnval[0..14] values associated with property
or
VARIANT vpnval
REAL8 ap_d_width Reference half-width
REAL8 ap_d_ar Aspect ratio of the interference tube
INT4 ap_i_orient Orientation flag Z = 0, Y = 1, ZY = 2
INT4 ap_i_lrsb Slender Body Radius: ID of Aero Division List
INT4 ap_i_lrib Interference Body Radius: ID of Aero Division List
INT4 ap_i_lth1 Theta Array 1: ID of Aero Division List
INT4 ap_i_lth2 Theta Array 2: ID of Aero Division List
INT4 ap_i_thi1 First Interference element, Pair 1
INT4 ap_i_thi2 First Interference element, Pair 2
INT4 ap_i_thi3 First Interference element, Pair 3
INT4 ap_i_thn1 Last Interference element, Pair 1
INT4 ap_i_thn2 Last Interference element, Pair 2
INT4 ap_i_thn3 Last Interference element, Pair 3
Type of property:
INT4 type
Panel=0, Body=1
GetThetaList API-1367

5.3.2 Aero Property Object Methods


5.3.2.1 GetThetaList

GetThetaList
( nListID, ncount, nval )
Description:
This method retrieves theta arrays for the Aero Property
Input:
INT4 nListID 0 = Theta1, 1 = Theta2
Output:
INT4 ncount The number of theta values for which data is being returned.
REAL8 nval[0..(ncount-1] Theta values
Return Code:
FE_FAIL Unable to retrieve data from the property.
FE_NOT_EXIST No theta values have been defined.
FE_OK
Remarks/Usage:

Example:
None
API-1368 PutThetaList

5.3.2.2 PutThetaList

PutThetaList
( nListID, ncount, nval )
Description:
This method saves theta arrays to the Aero Property
Input:
INT4 nListID 0 = Theta1, 1 = Theta2
INT4 ncount The number of theta values being defined.
REAL8 nval[0..(ncount-1] Theta values
Output:
None
Return Code:
FE_FAIL Unable to save data to the property.
FE_OK
Remarks/Usage:

Example:
None
GetRadiList API-1369

5.3.2.3 GetRadiList

GetRadiList
( nListID, ncount, nval )
Description:
This method retrieves Radi arrays for the Aero Property
Input:
INT4 nListID 0 = Radi at Slender Body, 1 = Radi at Interference Body
Output:
INT4 ncount The number of values for which data is being returned.
REAL8 nval[0..(ncount-1] Radi values
Return Code:
FE_FAIL Unable to retrieve data from the property.
FE_NOT_EXIST No values have been defined.
FE_OK
Remarks/Usage:

Example:
None
API-1370 PutRadiList

5.3.2.4 PutRadiList

PutRadiList
( nListID, ncount, nval )
Description:
This method saves Radi arrays to the Aero Property
Input:
INT4 nListID 0 = Theta1, 1 = Theta2
INT4 ncount The number of theta values being defined.
REAL8 nval[0..(ncount-1] Theta values
Output:
None
Return Code:
FE_FAIL Unable to save data to the property.
FE_OK
Remarks/Usage:

Example:
None
ClearSbList API-1371

5.3.2.5 ClearSbList

ClearSbList
( void )
Description:
This method clears the Slender Body Radi arrays in the Aero Property
Input:
None
Output:
None
Return Code:
FE_OK
Remarks/Usage:

Example:
None
API-1372 ClearIbList

5.3.2.6 ClearIbList

ClearIbList
( void )
Description:
This method clears the Interference Body Radi arrays in the Aero Property
Input:
None
Output:
None
Return Code:
FE_OK
Remarks/Usage:

Example:
None
ClearTheta1List API-1373

5.3.2.7 ClearTheta1List

ClearTheta1List
( void )
Description:
This method clears the Theta 1 arrays in the Aero Property
Input:
None
Output:
None
Return Code:
FE_OK
Remarks/Usage:

Example:
None
API-1374 ClearTheta2List

5.3.2.8 ClearTheta2List

ClearTheta2List
( void )
Description:
This method clears the Theta 2 arrays in the Aero Property
Input:
None
Output:
None
Return Code:
FE_OK
Remarks/Usage:

Example:
None
ClearTheta2List API-1375
API-1376

5.4 Aero Spline Objects


Aero Spline objects correspond to the Aero Splines in your model. They are derived from Entity
objects so, in addition to the properties and methods described here, all of the properties and meth-
ods defined for Entity objects are also available for Aero Spline objects. For more information, see
Section 5.1, "Common Entity Properties and Methods".
Use the feAeroSpline method of the FEMAP Application object to create Aero Spline objects.

5.4.1 Aero Spline Object Properties


Aero Splines are always stored with a SetID=1, and the ID equal to the Aero Spline ID.

Property Description
INT4 color The spline color.
INT4 layer The layer associated with the spline.
STRING title Spline title.
Type of spline:
INT4 type
Surface=0, Beam=1
INT4 icaero Aero element ID
INT4 ibox1 First box in interpolation
INT4 ibox2 Last box in interpolation
INT4 isetg Group ID
REAL8 dz Linear attachment flexibility
INT4 meth IPS = 0,TPS = 1, FPS = 2
INT4 nelem The number of elements along the local spline x-axis
INT4 melem The number of elements along the local spline y-axis
INT4 usage FORCE =0, DISP=1, BOTH=2
REAL8 dtor Torsional flexibility ratio
INT4 cid CAERO2 CID
REAL8 dthx RX Rotational attachment flexibility
REAL8 dthy RY Rotational attachment flexibility
GetNodeSet API-1377

5.4.2 Aero Spline Object Methods


5.4.2.1 GetNodeSet

GetNodeSet
( void )
Description:
This method creates and returns a Set object that contains the IDs of the Nodes in the Structural Grid
Group.
Input:
None
Output:
None
Return Code:

Remarks/Usage:

Example:
None
API-1378 GetBoxSet

5.4.2.2 GetBoxSet

GetBoxSet
( void )
Description:
This method creates and returns a Set object that contains the IDs of the aero elements included within
the box set bounded by Box 1 - Box2 belonging to the Aero Panel defined by icaero in the Spline prop-
erties.
Input:
None
Output:
None
Return Code:

Remarks/Usage:
This method is used to determine the panel elements chosen based on a Aero Spline BOX1, BOX2 def-
inition.
Example:
None
GetBoxSet API-1379
API-1380

5.5 Aero Surface Objects


Aero Surface objects correspond to the Aero Control Surfaces in your model. They are derived
from Entity objects so, in addition to the properties and methods described here, all of the proper-
ties and methods defined for Entity objects are also available for Aero Surface objects. For more
information, see Section 5.1, "Common Entity Properties and Methods".
Use the feAeroSurf method of the FEMAP Application object to create Aero Surface objects.

5.5.1 Aero Surface Object Properties


Aero Surfaces are always stored with a SetID=1, and the ID equal to the Aero Surface ID.

Property Description
INT4 color The control surface color.
INT4 layer The layer associated with the control surface.
STRING title Aero Control Surface title.
INT4 csys The ID of the coordinate system which defines y axis of con-
trol surface 1.
INT4 csys1 The ID of the coordinate system which defines y axis of con-
trol surface 2.
INT4 aeid The ID of the division list that defines control surface 1.
INT4 aeid1 The ID of the division list that defines control surface 2.
REAL8 eff Control surface effectiveness
BOOL ldw Linear downwash flag, NOLDW = FALSE, LDW = TRUE
REAL8 crefc Reference chord length for the control surface
REAL8 crefs Reference surface area for the control surface
REAL8 pllim Lower deflection limits for the control surface
REAL8 pulim Upper deflection limits for the control surface
REAL8 hmllim Lower hinge moment limits
REAL8 hmulim Upper hinge moment limits
Femap function defining deflection limits vs dynamic pres-
INT4 tqllim
sure.
Femap function defining deflection limits vs dynamic pres-
INT4 tqulim
sure.
STRING label Controller name, 8 characters max.
PutSurfaceSet1 API-1381

5.5.2 Aero Surface Object Methods


5.5.2.1 PutSurfaceSet1

PutSurfaceSet1
( nSetID )
Description:
This method loads Aero Panel elements into Control Surface 1 arrays.
Input:
INT4 nSetID The ID of the Set Object that will contain the IDs of the elements.
Output:
None
Return Code:
FE_OK
Remarks/Usage:

Example:
None
API-1382 PutSurfaceSet2

5.5.2.2 PutSurfaceSet2

PutSurfaceSet2
( nSetID )
Description:
This method loads Aero Panel elements into Control Surface 2 arrays.
Input:
INT4 nSetID The ID of the Set Object that will contain the IDs of the elements.
Output:
None
Return Code:
FE_OK
Remarks/Usage:

Example:
None
GetSurfaceSet1 API-1383

5.5.2.3 GetSurfaceSet1

GetSurfaceSet1
( nSetID )
Description:
This method creates and returns a Set object that contains the IDs of the Aero Panel elements in Control
Surface 1.
Input:
None
Output:
None
Return Code:
FE_OK
Remarks/Usage:

Example:
None
API-1384 GetSurfaceSet2

5.5.2.4 GetSurfaceSet2

GetSurfaceSet2
( nSetID )
Description:
This method creates and returns a Set object that contains the IDs of the Aero Panel elements in Control
Surface 2.
Input:
None
Output:
None
Return Code:
FE_OK
Remarks/Usage:

Example:
None
ClearSurfaceSet1 API-1385

5.5.2.5 ClearSurfaceSet1

ClearSurfaceSet1
( nSetID )
Description:
This method clears the array that contains the IDs of the Aero Panel elements in Control Surface 1.
Input:
None
Output:
None
Return Code:
FE_OK
Remarks/Usage:

Example:
None
API-1386 ClearSurfaceSet2

5.5.2.6 ClearSurfaceSet2

ClearSurfaceSet2
( nSetID )
Description:
This method clears the array that contains the IDs of the Aero Panel elements in Control Surface 2.
Input:
None
Output:
None
Return Code:
FE_OK
Remarks/Usage:

Example:
None
API-1387

5.6 AnalysisCase Objects


AnalysisCase objects correspond to the analysis cases in the analysis sets in your model. They are
derived from Entity objects, so in addition to the properties and methods described here, all of the
properties and methods defined for Entity objects are also available for AnalysisCase objects. For
more information, see Section 5.1, "Common Entity Properties and Methods".
Use the feAnalysisCase method of the FEMAP Application object to create AnalysisCase objects.
Alternatively, you can create an AnalysisCase object by calling the Case method of the Analy-
sisMgr object. This approach has the added advantage of ensuring that the case is from the correct
analysis set, and pre-loading the case data.

5.6.1 AnalysisCase Object Properties


AnalysisCases are stored with their SetID equal to the ID of the analysis set, and the ID equal to
the analysis case that you are trying to access. Note that the master case is not accessed from an
AnalysisCase object. Those properties are directly available from the AnalysisMgr object.
In this table, you will see some properties that list two names - one of which is an array, the other a
Variant. Refer to Section 1.2.7, "Multiple Definitions of Array Properties" for more information.

Property Description
Analysis Case Options
STRING CaseTitle[80] Title of analysis case (maximum 80 characters).
STRING CaseLabel[80] Label of analysis case (maximum 80 characters).
ID of analysis case (Not Available for master, caseID for oth-
INT4 caseID
ers).
INT4 CaseType Type of analysis case (0=Normal, 1=Subcom)
SetIDs of load and constraint sets for this case: [0]=Constraints,
[1]=Constraint Equations, [2]=Loads, [3]=Initial Conditions,
INT4 BCSet[15]
[4]=Master DOF, [5]=Base/Support DOF, [6]=Omit DOF,
or
[7]=QSET DOF, [8]=CSET DOF, [9]=BSET DOF, [10]=Bolt
VARIANT vBCSet
Preloads, [11]=SUPORT1 DOF, [12]=Temperatures, [13]=Con-
nection Group (MSC Only), others not currently used.
Boundary Conditions dialog box for MSC Nastran Only. Sets
INT4 ContactOption BCONTACT Option (0=Default, 1=Inital Contact, 2=All
Body)
Boundary Conditions dialog box for MSC Nastran Only. Sets
Contact/Glue Sets option (0=All Connectors, 1=Connection
INT4 ContactSetType
Group, 2=All Body). ID of group for Connection Group set
using BCSet[13]
API-1388

Property Description
Output requests for this case: 0=off,-1=full model,
>0=groupID, [0]=Nodal Applied Load, [1]=Nodal Reaction
Force, [2]=Nodal Displacement, [3]=Nodal Velocity,
[4]=Nodal Acceleration, [5]=Nodal Temperature, [6]=Nodal
Heat Flux, [7]=Nodal Constraint Equation Forces, [8]=Nodal
INT4 Output[30]
Force Balance, [9]=Nodal Kinetic Energy, [15]=Element Force,
or
[16]=Element Stress, [17]=Element Strain, [18]=Element Plas-
VARIANT vOutput
tic Strain, [19]=Element Strain Energy, [20]=Element Heat
Flux, [21]=Element Enthalpy, [22]=Element Enthalpy Rate,
[23]=Element Contact, [24]=Element Temperature,
[25]=Kinetic Energy, [26]=Energy Loss, [27]=Fluid Pressure,
others not currently used.
STRING Echo[26] String for ECHO option.
BOOL SkipStandard Flag to skip standard output for this case.
INT4 StartText ID of starting text.
INT4 EndText ID of ending text.
Output destination: 0=Default, 1=Print, 2=Post, 3=Print+Post,
INT4 Destination
4=Punch, 5=Punch+Post.
Format for complex output: 0=Magnitude/Phase, 1=Real/Imag-
INT4 Imaginary
inary.
INT4 CornerOutput Flag to request output at element corners.
INT4 IntegrationOutput Flag to request output at element integration points.
BOOL NasRelEMotion Flag to request Relative Enforced Motion Results.
Analysis Case Options - ABAQUS Specific
BOOL AbaHistOn Flag indicating ABAQUS History Options have been defined.
REAL8 AbaHistTimePeriod Time period
REAL8 AbaHistInitTimeInc Initial time increment.
REAL8 AbaHistMinTimeInc Minimum time increment.
REAL8 AbaHistMaxTimeInc Maximum time increment.
INT4 AbaHistEigenvectors Number of eigenvectors.
REAL8 AbaHistMinFreq Dynamic analysis minimum frequency.
REAL8 AbaHistMaxFreq Dynamic analysis maximum frequency.
REAL8 AbaHistShiftFreq Dynamic analysis shift frequency.
REAL8 AbaHistScaleFactor Time step scale factor.
API-1389

Property Description
INT4 AbaHistOutInterval Time step number of output intervals.
BOOL AbaHistNonlinGeom Flag to specify nonlinear geometry.
BOOL AbaHistLinearPert Flag to specify linear perturbation.
BOOL AbaHistAutoContact Flag to specify auto contact.
BOOL AbaHistStabilize Flag to stabilize contact.
BOOL AbaHistOutZeroInc Flag to write results for zero time increment.
INT4 AbaHistStepAmp Step amplitude: 0=Default, 1=Step, 2=Ramp.
INT4 AbaHistStepLoad Step loads: 0=New, 1=Modify.
INT4 AbaHistStepConstr Step constraints: 0=New, 1=Modify.
Step based analysis type (see Analysis Type property above):
INT4 AbaHistAnalysisType
0=Default=Use Analysis Type
Analysis Case Options - ANSYS Specific
BOOL AnsDOFOn Flag indicating Dynamic DOF Options have been defined.
BOOL AnsDOFDoSet Flag indicating a master DOF set is specified and in use.
BOOL AnsDOFAutomatic Indicates automatic dynamic DOF selection.
BOOL AnsDOFNoRotation Excludes rotational DOF from automatic DOF selection.
INT4 AnsDOFSetID Constraint set ID to be used as a master DOF set.
INT4 AnsDOFNumber Number of degrees of freedom to automatically select.
Modal Options
BOOL AnsModesOn Flag indicating modal expansion options have been defined.
INT4 AnsModesNumModes Number of modes/frequencies to expand.
REAL8 AnsModesMinFreq Minimum frequency of interest.
REAL8 AnsModesMaxFreq Maximum frequency of interes.t
REAL8 AnsModesModalMethod Modal expansion method.
Flag indicating whether elemental results (stresses, strains...)
BOOL AnsModesElemResults
will be calculated.
Heat Transfer Options
BOOL AnsHeatOn Flag indicating Heat Transfer Options have been defined.
REAL8 AnsHeatEndTime Time at end of this load step.
REAL8 AnsHeatTimeStep Initial time increment.
API-1390

Property Description
INT4 AnsHeatOutputFreq Output step interval.
Analysis Case Options - MARC Specific
BOOL MarHistOn Flag indicating MARC History options have been defined
INT4 MarHistContactProp ID of Contact Property written to the CONTACT TABLE.
ID of control type written to the CONTROL option. 0=None,
INT4 MarHistCtrlMethod 1=Full Newton-Raphson, 2=Modified Newton-Raphson,
3=Strain Correction Newton-Raphson, 8=Secant Method,
ID of solver type written to the SOLVER option. 0=None,
INT4 MarHistSolverMeth 1=Profile Direct, 2=Sparse Iterative, 3=Sparse Direct, 4=Hard-
ware Provided Sparse Direct, 5=MultiFrontal Direct Sparse.
INT4 MarHistCtrlMaxStep Number of Max Steps written to CONTROL option.
INT4 MarHistCtrlMaxRecycle Number of Max Recycles written to CONTROL option.
INT4 MarHistCtrlMinRecycle Number of Min Recycles written to CONTROL option.
REAL8 MarHistMaxResidual Number of Max Conv. Residual written to CONTROL option.
ID of method written to CONTROL option. 0=Rel Force Resid-
uals, 1=Rel Disp Residuals, 2=Rel Strain Ener Res, 3=Abs
INT4 MarHistConvergeMeth
Force Residuals, 4=Abs Disp Residuals, 5=Abs Strain Ener
Res.
Flag indicating Nonpositive Def will be used on SOLVER
BOOL MarHistNonPosDefinite
option.
Flag indicating NonSymmetric will be used on SOLVER
BOOL MarHistNonSymmetric
option.
REAL8 MarHistModalMinFreq Number indicating the Min Freq for a modal analysis.
REAL8 MarHistModalMaxFreq Number indicating the Max Freq for a modal analysis.
Number indicating the Number of eigenvectors to be found in
INT4 MarHistModalEigen
modal analysis.
ID indicating checking will be used. 0=None, 1=Strum
INT4 MarHistChecking
Sequence.
BOOL MarHistAutoSwitch Flag indicating Auto Switch will be used on CONTROL option.
ID indicating the Analysis type for this Subcase 1=Static,
INT4 MarHistAnalCaseSol
2=Normal Modes, 3=Buckling.
INT4 MarHistBuckleNumModes Number of Buckling modes.
INT4 MarHistBucklePosEigen Number of Modes With positive eigenvalues.
BOOL MarIncOn Flag indicating MARC Increment options have been defined
API-1391

Property Description
ID indicating the Arclength Method. 0=None( AUTO STEP),
INT4 MarIncArcLenMeth 1=Crisfield, 2=Riks, 3=Modified Riks, 4=Crisfield/Modified
Riks.
REAL8 MarIncTimePeriod Number indicating AUTO STEP time period.
REAL8 MarIncInitTimeInc Number indicating AUTO STEP initial time increment.
REAL8 MarIncMinTimeInc Number indicating AUTO STEP min time increment.
REAL8 MarIncMaxTimeInc Number indicating AUTO STEP max time increment.
REAL8 MarIncScaleFact Number indicating AUTO STEP scale factor.
INT4 MarIncMaxStep Number indicating AUTO STEP max number of steps.
INT4 MarIncNumOutInc Number indicating number of output intervals.
BOOL MarIncQuasiStatDamp Flag to include Damping scheme for statics.
Number indicating AUTO INCREMENT fraction of total load
REAL8 MarIncFracFirst
applied in first step.
INT4 MarIncMaxNumInc Number indicating AUTO INCREMENT max num increments.
INT4 MarIncCtrlMaxRecycle Number indicating AUTO INCREMENT max recycles.
Number indicating AUTO INCREMENT max fraction of load
REAL8 MarIncMaxFracForAll
for any step.
REAL8 MarIncTotalTime Number indicating AUTO INCREMENT total time.
BOOL MarCtblOn Flag indicating the MARC Contact Table has been defined.
BOOL MarCtblWrite Flag indicating the MARC Contact Table is to be written.
Analysis Case Options - NASTRAN Specific
BOOL NasOmodesOn Flag indicating an OMODES request has been defined.
STRING NasOmodes[160] Expression used to select OMODES output
INT4 NasSubSeqCase[200] IDs of Subcases to be combined in this SUBCOM
REAL8 NasSubSeqCase[200] Scale factors applied to Subcases combined in SUBCOM
Nonlinear Case Options - NASTRAN Specific
BOOL NasCnlOn Flag indicating the Nonlinear Case Options has been defined.
BOOL NasCnlUseLoadSet Flag to use the Nonlinear options from the Load Set.
INT4 NasCnlIncrements Number of Time Increments.
REAL8 NasCnlTime_Increment Value for Time Step Size.
INT4 NasCnlMaxIter Nonlinear - Max Iterations per Step
API-1392

Property Description
BOOL NasCnlConvergenceF-
lags[0..2]
Nonlinear - Convergence Flags for 0=Displacement, 1=Load
or
and 2=Work
VARIANT vNasCnlConvergenceF-
lags
REAL8 NasCnlConvergenceV-
alue[0..2]
Nonlinear - Convergence Tolerances for Displacement, Load
or
and Work
VARIANT vNasCnlConvergenceV-
alue
BOOL MSCNasCnlConvergenceF-
lags[0..1]
Nonlinear - Convergence Flags for 0=Vector and 1=Length
or
MSC Nastran Only and there are no tolerance values.
VARIANT vMSCNasCnlConver-
genceFlags
INT4 NasCnlStiffnessMethod Nonlinear - Stiffness Update Method
INT4 NasCnlKstep Nonlinear - Iterations before Stiffness Update
INT4 NasCnlIntermediateOutput Nonlinear - Intermediate Output Type
INT4 NasCnlOutputInterval Nonlinear - Output Interval
Nonlinear - Nonlinear Arc-Length Solution Strategy (Arc-
INT4 NasCnlSolutionStrategy
Length if nonzero)
Nonlinear - Solution Strategy Overrides: 0=none/ advanced,
INT4 NasCnlSolutionOverrides
1=Full Newton Raphson, 2=Modified Newton Raphson
BOOL NasCnlModnewtonLine-
Nonlinear - Modified Newton Line Search Override (1=Skip)
Search
BOOL NasCnlModnewtonQuasiN- Nonlinear - Modified Newton Quasi-Newton Override
ewton (1=Skip)
BOOL NasCnlModnewtonBisection Nonlinear - Modified Newton Bisection Override (1=Skip)
INT4 NasCnlArcConstraintType Nonlinear - Arc Length Constraint Type
REAL8 NasCnlArcMinAdjust Nonlinear - Min Arc Length Adjust
REAL8 NasCnlArcMaxAdjust Nonlinear - Max Arc Length Adjust
REAL8 NasCnlArcLoadScale Nonlinear - Arc Length Method Constraint Load Scale
INT4 NasCnlArcDesiredIter Nonlinear - Arc Length Desired Iterations
INT4 NasCnlArcMaxSteps Nonlinear - Arc Length Max Steps
INT4 NasCnlTimeSkipAdjust Nonlinear - Transient Time Step Skip Factor
API-1393

Property Description
INT4 NasCnlDominantPeriodSteps Nonlinear - Transient Steps for Dominant Period
REAL8 NasCnlBoundsRb Nonlinear - Transient Bounds to Maintain Step
REAL8 NasCnlStabilityTolerance Nonlinear - Transient Minimum Stability Tolerance
INT4 NasCnlDivergenceLimit Nonlinear - Max Diverging Conditions
INT4 NasCnlQuasiNewtonVectors Nonlinear - Number of Quasi-Newton Vectors
INT4 NasCnlMaxLineSearch Nonlinear - Max Line Search per Iteration
REAL8 NasCnlLineSearchTolerance Nonlinear - Line Search Tolerance
INT4 NasCnlMaxBisections Nonlinear - Max Bisections per Increment
REAL8 NasCnlMaxRotation Nonlinear - Max Rotation per Bisection
REAL8 NasCnlFstress Nonlinear - Stress Fraction Limit
REAL8 NasCnlMaxAdjust Nonlinear - Max Adjusted vs. Initial Increment
BOOL NasCnlkDAMP Nonlinear - Flag to Include Differential Stiffness in Damping
BOOL NasCnlCreep Flag Indicating this a Creep Analysis.
BOOL NasCnlSkipNLPARM Flag to disable writing of the NLPARM for this case.
Aeroelasic Trim Case Options - NASTRAN Specific
BOOL NasCaeOn Flag indicating NASTRAN Trim Options have been defined.
REAL8 NasCaeMachNumber Mach number
REAL8 NasCaeDynPressure Dynamic pressure
BOOL NasCaeRigidTrim Flag to request a rigid trim analysis
BOOL NasCaeWrtieTrim Flag to enable writing of the TRIM for this case.
Aerodynamic Flutter Case Options - NASTRAN Specific
BOOL NasCflOn Flag indicating NASTRAN Flutter Options have been defined.
INT4 NasCflMethod Flutter analysis method
INT4 NasCflDenID Femap function defining density ratios
INT4 NasCflMachFactID Femap function defining density ratios
INT4 NasCflRfreqFactID Femap function defining density ratios
INT4 NasCflFliMethod Interpolation method
INT4 NasCflEig Number Eigenvalues
REAL8 NasCflEps Convergence
API-1394

Property Description
BOOL NasCflWriteFlutter Flag to enable writing of the FLUTTER for this case.
INT4 NasSELoad Superelement load set ID
INT4 NasCflSdampID ID of Femap function defining the Modal Damping Table
InitAnalysisCase API-1395

5.6.2 AnalysisCase Object Methods


In addition to the standard methods, the following methods are also available.
5.6.2.1 InitAnalysisCase

InitAnalysisCase
( nSetID, nCaseID )
Description:
This method initializes the default values for an analysis case
Input:
INT4 nSetID The Analysis SetID containing the case to be initialized
INT4 nCaseID The Case ID to be initialized
Output:
None
Return Value
Unable to initialize the case. Probably the Analysis Set you specified
FE_FAIL
does not exist.
Remarks/Usage:
None
Example:
None
API-1396 DeleteAnalysisCase

5.6.2.2 DeleteAnalysisCase

DeleteAnalysisCase
( nSetID, nCaseID )
Description:
Use this method to delete an analysis case.
Input:
INT4 nSetID The Analysis SetID containing the case to be deleted
INT4 nCaseID The Case ID to be deleted
Output:
None
Return Value
FE_FAIL
Remarks/Usage:
This method takes care of deleting any start/end text or Marc contact table records that referenced the
case.
Example:
None
GetContactTable API-1397

5.6.2.3 GetContactTable

GetContactTable
( count, rowSeg, colSeg, tieType, distTol, sepForce, friction, interClose )
Description:
This method retrieves data from the Contact Table.
Input:
None
Output:
INT4 count The number of entries in each of the other vectors.
INT4 rowSeg[0..count-1] The IDs of the contact segments referenced in rows of the table
INT4 colSeg[0..count-1] The IDs of the contact segments referenced in columns of the table
INT4 tieType[0..count-1] The tying type (0,1=None, 2=Touch, 3=Glue)
REAL8 distTol[0..count-1] The distance tolerance
REAL8 sepForce[0..count-1] The separation force
REAL8 friction[0..count-1] The friction values
REAL8 interClose[0..count-1] The interference closure
Return Value
FE_NOT_EXIST The contact table does not exist.
FE_FAIL Unable to allocate memory to return the contact table data.
Remarks/Usage:
None
Example:
None
API-1398 PutContactTable

5.6.2.4 PutContactTable

PutContactTable
( count, rowSeg, colSeg, tieType, distTol, sepForce, friction, interClose )
Description:
This method replaces data in the Contact Table
Input:
INT4 count The number of entries in each of the other vectors.
INT4 rowSeg[0..count-1] The IDs of the contact segments referenced in rows of the table
INT4 colSeg[0..count-1] The IDs of the contact segments referenced in columns of the table
INT4 tieType[0..count-1] The tying type (0,1=None, 2=Touch, 3=Glue)
REAL8 distTol[0..count-1] The distance tolerance
REAL8 sepForce[0..count-1] The separation force
REAL8 friction[0..count-1] The friction values
REAL8 interClose[0..count-1] The interference closure
Output:
None
Return Value
FE_FAIL Unable to update the contact table.
Remarks/Usage:
This function completely replaces the contact table - it does not add to data that is already there.
Example:
None
GetStandardTrim API-1399

5.6.2.5 GetStandardTrim

GetStandardTrim
( useTrim, TrimID, TrimVal )
Description:
This method retrieves data from the standard trim definition.
Input:
None
Output:
INT4 useTrim[0..11] 0=Off,1=Use, 2= Fixed
INT4 TrimID[0..11] See Remarks
REAL8 TrimVal[0..11] magnitude
Return Value
FE_NOT_EXIST Standard Trim values have not been defined.
FE_FAIL Unable to allocate memory to return the trim data.
Remarks/Usage:
Valid TrimID values:
0 = NAS_AERO_TRIM_ANGLEA
1 = NAS_AERO_TRIM_SIDES
2 = NAS_AERO_TRIM_ROLL
3 = NAS_AERO_TRIM_PITCH
4 = NAS_AERO_TRIM_YAW
5 = NAS_AERO_TRIM_URDD1
6 = NAS_AERO_TRIM_URDD2
7 = NAS_AERO_TRIM_URDD3
8 = NAS_AERO_TRIM_URDD4
9 = NAS_AERO_TRIM_URDD5
10 - NAS_AERO_TRIM_URDD6
Example:
None
API-1400 PutStandardTrim

5.6.2.6 PutStandardTrim

PutStandardTrim
( count, useTrim, TrimID, TrimVal )
Description:
This method loads standard trim data into the trim definition.
Input:
INT4 useTrim[0..11] 0=Off,1=Use, 2= Fixed
INT4 TrimID[0..11] See Remarks
REAL8 TrimVal[0..11] magnitude
Output:
None
Return Value
FE_NOT_EXIST Standard Trim values have not been defined.
FE_FAIL Unable to allocate memory to return the trim data.
Remarks/Usage:
Valid TrimID values:
0 = NAS_AERO_TRIM_ANGLEA
1 = NAS_AERO_TRIM_SIDES
2 = NAS_AERO_TRIM_ROLL
3 = NAS_AERO_TRIM_PITCH
4 = NAS_AERO_TRIM_YAW
5 = NAS_AERO_TRIM_URDD1
6 = NAS_AERO_TRIM_URDD2
7 = NAS_AERO_TRIM_URDD3
8 = NAS_AERO_TRIM_URDD4
9 = NAS_AERO_TRIM_URDD5
10 - NAS_AERO_TRIM_URDD6
Example:
None
GetTrimControlSurf API-1401

5.6.2.7 GetTrimControlSurf

GetTrimControlSurf
( useTrim, TrimID, TrimVal )
Description:
This method retrieves data from the trim definition for user defined Aero Control Surfaces
Input:
None
Output:
INT4 useTrim[0..29] 0=Off,1=Use, 2= Fixed
INT4 TrimID[0..29] ID of the Femap Aero Control Surface Entity
REAL8 TrimVal[0..29] magnitude
Return Value
FE_NOT_EXIST Trim values have not been defined.
FE_FAIL Unable to allocate memory to return the trim data.
Remarks/Usage:

Example:
None
API-1402 PutTrimControlSurf

5.6.2.8 PutTrimControlSurf

PutTrimControlSurf
( useTrim, TrimID, TrimVal )
Description:
This method loads user defined Aero Control Surface data into the Trim definition
Input:
INT4 useTrim[0..29] 0=Off,1=Use, 2= Fixed
INT4 TrimID[0..29] ID of the Femap Aero Control Surface Entity
REAL8 TrimVal[0..29] magnitude
Output:
None
Return Value
FE_FAIL Unable to store the trim data.
Remarks/Usage:

Example:
None
API-1403

5.7 AnalysisMgr Objects


While maybe not entirely obvious, AnalysisMgr objects correspond to the analysis sets in your
model. They are derived from Entity objects, so in addition to the properties and methods
described here, all of the properties and methods defined for Entity objects are also available for
AnalysisMgr objects. For more information, see Section 5.1, "Common Entity Properties and
Methods".
Use the feAnalysisMgr method of the FEMAP Application object to create AnalysisMgr objects.
Note: While a method called feAnalysisSet also exists, it is only used to create AnalysisMgr
objects, thus it is redundant and should NOT be used. It has not been removed for the sole purpose
of allowing any programs which have it specified to continue to run properly.

5.7.1 AnalysisMgr Object Properties


AnalysisMgr objects are always stored with their SetID = 1, and the ID equal to the analysis set
that you are trying to access.
In this table, you will see some properties that list two names - one of which is an array, the other a
Variant. Refer to Section 1.2.7, "Multiple Definitions of Array Properties" for more information.

Property Description
STRING title Analysis set title (maximum 79 characters).
INT4 Solver Analysis program to be used for analysis: 0=Unknown,
4=MSC/NASTRAN, 5=ANSYS, 16=ABAQUS, 28=LS-Dyna,
29=MSC.Marc, 31=NE/Nastran, 34=FEMAP Structural.
36=NX Nastran.
INT4 AnalysisType Type of analysis: 0=Unknown, 1=Static, 2=Normal Modes/
Eigenvalue, 3=Transient Dynamic/Time History, 4=Frequency/
Harmonic Response, 5=Response Spectrum, 6=Random
Response, 7=Buckling, 8=Design Opt, 9=Explicit Transient
Dynamics, 10=Nonlinear Static, 11=Nonlinear Buckling,
12=Nonlinear Transient, 13=Implicit Transient Dynamics,
17=Fatigue, 19=Computational Fluid Dynamics, 20=Steady-
State Heat Transfer, 21=Transient Heat Transfer, 22=Advanced
Nonlinear Static, 23=Advanced Nonlinear Transient,
24=Advanced Nonlinear Explicit, 25=Static Aeroelasticity,
26=Aerodynamic Flutter
BOOL LaunchWithVisQ Flag to launch the analysis using VisQ.
Master Case Options
STRING CaseTitle[80] Title of analysis set Master (maximum 80 characters).
STRING CaseLabel[80] Label of analysis set Master (maximum 80 characters).
INT4 CaseType 0=Normal, 1=Subcom (not used)
API-1404

Property Description
SetIDs of load and constraint sets for the Master case: [0]=Con-
straints, [1]=Constraint Equations, [2]=Loads, [3]=Initial Con-
INT4 BCSet[15]
ditions, [4]=Master DOF, [5]=Base/Support DOF, [6]=Omit
or
DOF, [7]=QSET DOF, [8]=CSET DOF, [9]=BSET DOF,
VARIANT vBCSet
[10]=Bolt Preloads, [11]=SUPORT1 DOF, [12]=Temperatures,
[13]=Connection Group (MSC Only), others not currently used.
Boundary Conditions dialog box for MSC Nastran Only. Sets
INT4 ContactOption BCONTACT Option (0=Default, 1=Inital Contact, 2=All
Body)
Boundary Conditions dialog box for MSC Nastran Only. Sets
Contact/Glue Sets option (0=All Connectors, 1=Connection
INT4 ContactSetType
Group, 2=All Body). ID of group for Connection Group set
using BCSet[13]
Output requests for this case: 0=off,-1=full model,
>0=groupID, [0]=Nodal Applied Load, [1]=Nodal Reaction
Force, [2]=Nodal Displacement, [3]=Nodal Velocity,
[4]=Nodal Acceleration, [5]=Nodal Temperature, [6]=Nodal
Heat Flux, [7]=Nodal Constraint Equation Forces, [8]=Nodal
INT4 Output[30]
Force Balance, [9]=Nodal Kinetic Energy, [15]=Element Force,
or
[16]=Element Stress, [17]=Element Strain, [18]=Element Plas-
VARIANT vOutput
tic Strain, [19]=Element Strain Energy, [20]=Element Heat
Flux, [21]=Element Enthalpy, [22]=Element Enthalpy Rate,
[23]=Element Contact, [24]=Element Temperature, [25]=Ele-
ment Kinetic Energy, [26]=Element Energy Loss, others not
currently used.
STRING Echo[80] String for ECHO option.
BOOL SkipStandard Flag to skip standard output for this case.
INT4 StartText ID of starting text.
INT4 EndText ID of ending text.
Output destination: 0=Default, 1=Print, 2=Post, 3=Print+Post,
INT4 Destination
4=Punch, 5=Punch+Post.
Format for complex output: 0=Magnitude/Phase, 1=Real/Imag-
INT4 Imaginary
inary.
INT4 CornerOutput Flag to request output at element corners.
INT4 IntegrationOutput Flag to request output at element integration points.
BOOL NasRelEMotion Flag to request Relative Enforced Motion Results.
Master Case Options - ABAQUS Specific
BOOL AbaHistOn Flag indicating ABAQUS History Options have been defined.
API-1405

Property Description
REAL8 AbaHistTimePeriod Time period.
REAL8 AbaHistInitTimeInc Initial time increment.
REAL8 AbaHistMinTimeInc Minimum time increment.
REAL8 AbaHistMaxTimeInc Maximum time increment.
INT4 AbaHistEigenvectors Number of eigenvectors.
REAL8 AbaHistMinFreq Dynamic analysis minimum frequency.
REAL8 AbaHistMaxFreq Dynamic analysis maximum frequency.
REAL8 AbaHistShiftFreq Dynamic analysis shift frequency.
REAL8 AbaHistScaleFactor Time step scale factor.
INT4 AbaHistOutInterval Time step number of output intervals.
BOOL AbaHistNonlinGeom Flag to specify nonlinear geometry
BOOL AbaHistLinearPert Flag to specify linear perturbation.
BOOL AbaHistAutoContact Flag to specify auto contact.
BOOL AbaHistStabilize Flag to stabilize contact.
BOOL AbaHistOutZeroInc Flag to write results for zero time increment.
INT4 AbaHistStepAmp Step amplitude: 0=Default, 1=Step, 2=Ramp.
INT4 AbaHistStepLoad Step loads: 0=New, 1=Modify.
INT4 AbaHistStepConstr Step constraints: 0=New, 1=Modify.
Step-based analysis type (see Analysis Type property above):
INT4 AbaHistAnalysisType
0=Default=Use Analysis Type
Master Case Options - ANSYS Specific
BOOL AnsDOFOn Flag indicating dynamic DOF options have been defined.
BOOL AnsDOFDoSet Flag indicating a master DOF set is specified and in use.
BOOL AnsDOFAutomatic Indicates automatic dynamic DOF selection.
BOOL AnsDOFNoRotation Excludes rotational DOF from automatic DOF selection.
INT4 AnsDOFSetID Constraint set ID to be used as a master DOF set.
INT4 AnsDOFNumber Number of degrees of freedom to automatically select.
ANSYS Modal Options
BOOL AnsModesOn Flag indicating modal expansion options have been defined.
INT4 AnsModesNumModes Number of modes/frequencies to expand.
API-1406

Property Description
REAL8 AnsModesMinFreq Minimum frequency of interest.
REAL8 AnsModesMaxFreq Maximum frequency of interest.
REAL8 AnsModesModalMethod Modal expansion method.
Flag indicating whether elemental results (stresses, strains...)
BOOL AnsModesElemResults
will be calculated.
ANSYS Heat Transfer Options
BOOL AnsHeatOn Flag indicating heat transfer options have been defined.
REAL8 AnsHeatEndTime Time at end of this load step.
REAL8 AnsHeatTimeStep Initial time increment.
INT4 AnsHeatOutputFreq Output step interval.
Master Case Options - DYNA Specific
BOOL DynHistOn Flag indicating an Dyna History section has been defined.
INT4 DynHistBodyLoadGrp Initial Body Load Group.
BOOL DynHistMassDampOn Flag indicating Mass Damping value has been defined.
REAL8 DynHistMsssDamp Mass Damping Value.
BOOL DynHistImplicit Flag indicating use of Implicit Solver.
BOOL DynHistSpringback Flag indicating Springback option has been defined.
BOOL DynHistStrinOutput Flag indicating Strain will be output.
REAL8 DynHistTotalTime Value defining total solution time,
REAL8 DynHistTimeHistOuput Number indicating output time interval.
REAL8 DynHistPrintHistOutput Number indicating print output time interval.
INT4 DynHistPlateIntgPts Number indicating number of plate integration points.
INT4 DynHistGroupHistId ID of group to limit output request.
Master Case Options - MARC Specific
BOOL MarHistOn Flag indicating MARC History options have been defined
INT4 MarHistContactProp ID of Contact Property written to the CONTACT TABLE.
ID of control type written to the CONTROL option. 0=None,
INT4 MarHistCtrlMethod 1=Full Newton-Raphson, 2=Modified Newton-Raphson,
3=Strain Correction Newton-Raphson, 8=Secant Method,
API-1407

Property Description
ID of solver type written to the SOLVER option. 0=None,
INT4 MarHistSolverMeth 1=Profile Direct, 2=Sparse Iterative, 3=Sparse Direct, 4=Hard-
ware Provided Sparse Direct, 5=MultiFrontal Direct Sparse.
INT4 MarHistCtrlMaxStep Number of Max Steps written to CONTROL option.
INT4 MarHistCtrlMaxRecycle Number of Max Recycles written to CONTROL option.
INT4 MarHistCtrlMinRecycle Number of Min Recycles written to CONTROL option.
REAL8 MarHistMaxResidual Number of Max Conv. Residual written to CONTROL option.
ID of method written to CONTROL option. 0=Rel Force Resid-
uals, 1=Rel Disp Residuals, 2=Rel Strain Ener Res, 3=Abs
INT4 MarHistConvergeMeth
Force Residuals, 4=Abs Disp Residuals, 5=Abs Strain Ener
Res.
Flag indicating Nonpositive Def will be used on SOLVER
BOOL MarHistNonPosDefinite
option.
Flag indicating NonSymmetric will be used on SOLVER
BOOL MarHistNonSymmetric
option.
REAL8 MarHistModalMinFreq Number indicating the Min Freq for a modal analysis.
REAL8 MarHistModalMaxFreq Number indicating the Max Freq for a modal analysis.
Number indicating the Number of eigenvectors to be found in
INT4 MarHistModalEigen
modal analysis.
ID indicating checking will be used. 0=None, 1=Strum
INT4 MarHistChecking
Sequence.
BOOL MarHistAutoSwitch Flag indicating Auto Switch will be used on CONTROL option.
ID indicating the Analysis type for this Subcase 1=Static,
INT4 MarHistAnalCaseSol
2=Normal Modes, 3=Buckling.
INT4 MarHistBuckleNumModes Number of Buckling modes.
INT4 MarHistBucklePosEigen Number of Modes With positive eigenvalues.
BOOL MarIncOn Flag indicating MARC Increment options have been defined
ID indicating the Arclength Method. 0=None( AUTO STEP),
INT4 MarIncArcLenMeth 1=Crisfield, 2=Riks, 3=Modified Riks, 4=Crisfield/Modified
Riks.
REAL8 MarIncTimePeriod Number indicating AUTO STEP time period.
REAL8 MarIncInitTimeInc Number indicating AUTO STEP initial time increment.
REAL8 MarIncMinTimeInc Number indicating AUTO STEP min time increment.
REAL8 MarIncMaxTimeInc Number indicating AUTO STEP max time increment.
API-1408

Property Description
INT4 MarIncScaleFact Number indicating AUTO STEP scale factor.
INT4 MarIncMaxStep Number indicating AUTO STEP max number of steps.
INT4 MarIncNumOutInc Number indicating number of output intervals.
BOOL MarIncQuasiStatDamp Flag to include Damping scheme for statics.
Number indicating AUTO INCREMENT fraction of total load
REAL8 MarIncFracFirst
applied in first step.
INT4 MarIncMaxNumInc Number indicating AUTO INCREMENT max num increments.
INT4 MarIncCtrlMaxRecycle Number indicating AUTO INCREMENT max recycles.
Number indicating AUTO INCREMENT max fraction of load
REAL8 MarIncMaxFracForAll
for any step.
REAL8 MarIncTotalTime Number indicating AUTO INCREMENT total time.
BOOL MarCtblOn Flag indicating the MARC Contact Table has been defined.
BOOL MarCtblWrite Flag indicating the MARC Contact Table is to be written.
Master Case Options - NASTRAN Specific
BOOL NasOmodesOn Flag indicating an OMODES request has been defined.
STRING NasOmodes[160] Expression used to select OMODES output
Nonlinear Case Options - NASTRAN Specific
BOOL NasCnlOn Flag indicating the Nonlinear Case Options has been defined.
BOOL NasCnlUseLoadSet Flag to use the Nonlinear options from the Load Set.
INT4 NasCnlIncrements Number of Time Increments.
REAL8 NasCnlTime_Increment Value for Time Step Size.
INT4 NasCnlMaxIter Nonlinear - Max Iterations per Step
BOOL NasCnlConver-
genceFlags[0..2]
Nonlinear - Convergence Flags for 0=Displacement, 1=Load
or
and 2=Work
VARIANT vNasCnlConvergenceF-
lags
REAL8 NasCnlConvergenceV-
alue[0..2]
Nonlinear - Convergence Tolerances for Displacement, Load
or
and Work
VARIANT vNasCnlConvergenceV-
alue
API-1409

Property Description
BOOL MSCNasCnlConvergenceF-
lags[0..1]
Nonlinear - Convergence Flags for 0=Vector and 1=Length
or
MSC Nastran Only and there are no tolerance values.
VARIANT vMSCNasCnlConver-
genceFlags
Nonlinear - Stiffness Update Method. 0=Default, 1=AUTO,
INT4 NasCnlStiffnessMethod
2=Full
INT4 NasCnlKstep Nonlinear - Iterations before Stiffness Update
INT4 NasCnlIntermediateOutput Nonlinear - Intermediate Output Type
INT4 NasCnlOutputInterval Nonlinear - Output Interval
Nonlinear - Nonlinear Arc-Length Solution Strategy (Arc-
INT4 NasCnlSolutionStrategy
Length if nonzero)
Nonlinear - Solution Strategy Overrides: 0=none/ advanced,
INT4 NasCnlSolutionOverrides
1=Full Newton Raphson, 2=Modified Newton Raphson
BOOL NasCnlModnewtonLine-
Nonlinear - Modified Newton Line Search Override (1=Skip)
Search
BOOL NasCnlModnewtonQuasiN- Nonlinear - Modified Newton Quasi-Newton Override
ewton (1=Skip)
BOOL NasCnlModnewtonBisection Nonlinear - Modified Newton Bisection Override (1=Skip)
INT4 NasCnlArcConstraintType Nonlinear - Arc Length Constraint Type
REAL8 NasCnlArcMinAdjust Nonlinear - Min Arc Length Adjust
REAL8 NasCnlArcMaxAdjust Nonlinear - Max Arc Length Adjust
REAL8 NasCnlArcLoadScale Nonlinear - Arc Length Method Constraint Load Scale
INT4 NasCnlArcDesiredIter Nonlinear - Arc Length Desired Iterations
INT4 NasCnlArcMaxSteps Nonlinear - Arc Length Max Steps
INT4 NasCnlTimeSkipAdjust Nonlinear - Transient Time Step Skip Factor
INT4 NasCnlDominantPeriodSteps Nonlinear - Transient Steps for Dominant Period
REAL8 NasCnlBoundsRb Nonlinear - Transient Bounds to Maintain Step
REAL8 NasCnlStabilityTolerance Nonlinear - Transient Minimum Stability Tolerance
INT4 NasCnlDivergenceLimit Nonlinear - Max Diverging Conditions
INT4 NasCnlQuasiNewtonVectors Nonlinear - Number of Quasi-Newton Vectors
INT4 NasCnlMaxLineSearch Nonlinear - Max Line Search per Iteration
REAL8 NasCnlLineSearchTolerance Nonlinear - Line Search Tolerance
API-1410

Property Description
INT4 NasCnlMaxBisections Nonlinear - Max Bisections per Increment
REAL8 NasCnlMaxRotation Nonlinear - Max Rotation per Bisection
REAL8 NasCnlFstress Nonlinear - Stress Fraction Limit
BOOL NasCnlkDAMP Nonlinear - Flag to Include Differential Stiffness in Damping
REAL8 NasCnlMaxAdjust Nonlinear - Max Adjusted vs. Initial Increment
BOOL NasCnlCreep Flag Indicating this a Creep Analysis.
BOOL NasCnlSkipNLPARM Flag to disable writing of the NLPARM for this case.
Aeroelasic Trim Case Options - NASTRAN Specific
BOOL NasCaeOn Flag indicating NASTRAN Trim Options have been defined.
REAL8 NasCaeMachNumber Mach number
REAL8 NasCaeDynPressure Dynamic pressure
BOOL NasCaeRigidTrim Flag to request a rigid trim analysis
BOOL NasCaeWrtieTrim Flag to enable writing of the TRIM for this case.
Aerodynamic Flutter Case Options - NASTRAN Specific
BOOL NasCflOn Flag indicating NASTRAN Flutter Options have been defined.
INT4 NasCflMethod Flutter analysis method
INT4 NasCflDenID Femap function defining density ratios
INT4 NasCflMachFactID Femap function defining density ratios
INT4 NasCflRfreqFactID Femap function defining density ratios
INT4 NasCflFliMethod Interpolation method
INT4 NasCflEig Number Eignevalues
REAL8 NasCflEps Convergence
BOOL NasCflWriteFlutter Flag to enable writing of the FLUTTER for this case.
INT4 NasCflSdampID ID of Femap function defining the Modal Damping Table
Analysis Set Options - NASTRAN Specific
NASTRAN Executive Control Options
Flag indicating NASTRAN Executive Options have been
BOOL NasExecOn
defined.
Version of NASTRAN to support - Possible values 2004, 2001
INT4 NasExecVersion
and 70 (for all previous versions)
API-1411

Property Description
STRING NasExecOutDir[260] Path to directory for output.
STRING NasExecAnalyzeFilename
Base File Name for input file (maximum 80 characters).
[80]
STRING NasExecProblem[160] Problem ID.
STRING NasExecSolName[80] Name of solution - specified as text, but could be a number.
REAL8 NasExecMaxTime Maximum execution time.
STRING NasExecDiag[160] String specifying diagnostics to include in the solution.
BOOL NasExecIterSolve Flag to select iterative solver.
Similar to NasExecIterSolve, but allows you to set 0=Off,
INT4 NasExecIterSolve2
1=On, 2=NX Nastran Elemental Iterative Solver
Number of processors to use during solution: 0=Default=1 Pro-
INT4 NasExecNumCPU
cessor.
BOOL NasExecSaveDB Flag to save solution databases for later restart.
BOOL NasExecRestart Flag indicating you want to restart a previous analysis.
STRING NasExecRestartDB[260] Path to solution database that you want to restart from.
BOOL NasExecRestartReadOnly Flag indicating you want to perform a read only restart.
INT4 NasExecRestartVersion ID of restart version in master file
INT4 NasExecRestartSubcase ID of subcase to start from when restarting a nonlinear analysis
BOOL NasExecSkipStandard Flag to skip writing standard Executive Control.
INT4 NasExecStartText ID of text to include at beginning of Executive Control.
INT4 NasExecEndText ID of text to include at end of Executive Control.
INT4 NasExecMemory Value of solution memory in Mb.
BOOL NasExecGPU Flag to enable GPU Computing
BOOL NasExecExtendedMessages Flag to enable Extended Error Messages.
STRING NasExecSystemCell[160] Specifies System Cell options for Nastran
STRING NasExecScratchDir1[260] Specifies primary scratch directory
STRING NasExecScratchDir2[260] Specifies secondary scratch directory
INT4 NasExecScratchSize1 Size of primary scratch directory (in MBytes)
INT4 NasExecScratchSize2 Size of secondary scratch directory (in MBytes)
Enables the Nastran Solution Monitor to be activated during an
BOOL NasExecSolutionMonitor
analysis.
API-1412

Property Description
Sets the Form option in the Create Assign Statement dialog box
accessed by clicking Start Text, then clicking Create ASSIGN.
INT4 NasExtSEOutAssignForm
0=None, 1=FORMATTED, 2=UNFORMATTED, 3=LIT-
TLEENDIAN, 4=BIGENDIAN
NASTRAN Bulk Data Options
Flag indicating NASTRAN Bulk Data Options have been
BOOL NasBulkOn
defined.
ID of the group of entities to be written to the NASTRAN file. 0
INT4 NasBulkGroupID
= entire model.
BOOL NasBulkAutospc Flag to write PARAM,AUTOSPC.
ID of Autospc method 0=Eigenvalue, 1=1..Singular Value
INT4 NasBulkAutospcType
Decomposition
BOOL NasBulkGrdpnt Flag to write PARAM,GRDPNT.
INT4 NasBulkGrdpntVal Value to include on PARAM,GRDPNT.
BOOL NasBulkWtmass Flag to write PARAM,WTMASS.
REAL8 NasBulkWtmassVal Value to include on PARAM,WTMASS.
BOOL NasBulkK6rot Flag to write PARAM,K6ROT.
REAL8 NasBulkK6rotVal Value to include on PARAM,K6ROT.
BOOL NasBulkMaxratio Flag to write PARAM,MAXRATIO.
REAL8 NasBulkMaxratioVal Value to include on PARAM,MAXRATIO.
BOOL NasBulkNdamp Flag to write PARAM,NDAMP.
REAL8 NasBulkNdampVal Value to include on PARAM,NDAMP.
BOOL NasBulkInrel Flag to write PARAM,INREL.
INT4 NasBulkInrelVal ID of Inertia Relief option: -1=On, -2=Automatic
BOOL NasBulkBoltFact Flag to write PARAM, BOLTFACT
REAL8 NasBulkBoltFactVal Value to be written with PARAM, BOLTFACT option
Flag to write NASTRAN command option for NX Nastran or
BOOL NasBulkEnfmotn
PARAM,ENFMOTN for MSC Nastran
INT4 NasBulkEnfmotnOpt ID of ENFMOTN option: 0,1, 2
BOOL BulkSwpangle Flag to write PARAM, SWPANGLE
REAL8 NasBulkSwpangleVal Value to be written with PARAM, SWPANGLE option
BOOL NasBulkMgrid Flag to write PARAM, MGRID
API-1413

Property Description
INT4 NasBulkMgridID ID of Node to write with PARAM, MGRID
INT4 NasBulkMdofVal DOF written with PARAM, MGRID, must be an integer 1-6
BOOL NasBulkLangle Flag to write PARAM,LANGLE.
BOOL NasBulkLgdisp Flag to write PARAM,LGDISP.
If True, writes PARAM,LGSTRN,1 to include effects of large
BOOL NasBulkLgstrn
strain.
BOOL NasBulkPrgpst Flag to write PARAM,PRGPST.
BOOL NasBulkOgeom Flag to write PARAM,OGEOM
If True, writes PARAM,SRCOMPS,YES to output Laminate
BOOL NasBulkSrcomps
Strength Ratios
If True, writes PARAM,NOFISR,1 to skip failure indices to the
BOOL NasBulkNofisr
F06 file.
BOOL NasBulkPARAMBailout Flag to write PARAM,BAILOUT,-1
BOOL NasBulkAutompc Flag to write PARAM,AUTOMPC.
BOOL NasBulkDdrmmOff Flag to control PARAM,DDRMM
BOOL NasBulkModacc Flag to write PARAM,MODACC
BOOL NasBulkResVec Flag to write PARAM,RESVEC
BOOL NasBulkResVecOn Value to write with PARAM,RESVEC
BOOL NasBulkResViner Flag to write PARAM,RESVINER
BOOL NasBulkCntAset Flag to write PARAM,CNTASET
BOOL NasBulkSecomb Flag to write PARAM,SECOMB
BOOL NasBulkAlpha1 Flag to write PARAM,ALPHA1
REAL8 NasBulkAlpha1Val[0..1]
Value to be written with PARAM, ALPHA1 option, 0=Real,
or
1=Complex
VARIANT vNasBulkAlpha1Val
BOOL NasBulkAlpha2 Flag to write PARAM,ALPHA2
REAL8 NasBulkAlpha2Val[0..1]
Value to be written with PARAM, ALPHA2 option, 0=Real,
or
1=Complex
VARIANT vNasBulkAlpha2Val
Selection of field format: 0=Small,1=Large Csys,Matl,Prop,
INT4 NasBulkLargeField
2=Large All But Elem, 3=Large, 4 = Large Csys, Node
Flag selecting CQUADR/CTRIAR as the preferred plate/shell
BOOL NasBulkQuadr
elements.
API-1414

Property Description
BOOL NasBulkSkipBeamShape Flag to skip writing Beam Shapes as PBEAML/PBARL
BOOL NasBulkRigidThermalExp If True includes effects of thermal expansion for rigid elements
BOOL NasBulkGapsAsContact Flag to write Gap Elements as contact.
BOOL NasBulkDynLdAsLOADSET Flag to write Dynamic Loads using LOADSET/LSEQ method
BOOL NasBulkWriteAllLoadBCSets Flag to write all Static Loads and BC Sets.
BOOL NasBulkSkipStandard Flag to skip standard bulk data.
BOOL NasBulkEndTextOutsideBulk Flag to write End Text at End of File Outside Bulk
INT4 NasBulkStartText ID of text written at the beginning of the Bulk Data.
INT4 NasBulkEndText ID of text written at the end of the Bulk Data.
NASTRAN Nonlinear Options
Flag indicating NASTRAN Nonlinear Options have been
BOOL NasNonlinOn
defined.
INT4 NasNonlinNDT Number of time steps.
Initial time increment. Positive value = Adaptive option
REAL8 NasNonlinDT selected in Nonlinear Control Options dialog box, Negative
value = Constant Interval option selected.
INT4 NasNonlinNO Output step interval.
INT4 NasNonlinMaxIter Max iterations per step.
BOOL NasNonlinEpsFlag[3]
Flags indicating data to use for checking convergence: 0=Tem-
or
perature, 1=Load, 2=Work.
VARIANT vNasNonlinEpsFlag
REAL8 NasNonlinEps[3]
or Convergence values to check with the convergence flags.
VARIANT vNasNonlinEps
INT4 NasNonlinKUPDATE Stiffness Update Method. 0=Default, 1=AUTO, 2=Full
BOOL NasNonlinKDAMP Flag to Include Differential Stiffness in Damping
NASTRAN Modal Options
BOOL NasModeOn Flag indicating NASTRAN Modal Options have been defined.
INT4 NasModeEigrSet SetID to be used for EIGR.
Modal Solution method: 0=Givens,1=Modified Givens,
2=Inverse Power, 3=Inverse Power/Strum, 4=Householder,
INT4 NasModeMethod 5=Modified Householder, 6=Lanczos, 7=Hessenberg, 8=Com-
plex Inverse Power, 9=Complex Lanczos, 10=Auto(HOU/
MHOU)/Auto (NEi), 11=Subspace (NEi Nastran only).
API-1415

Property Description
BOOL NasModeSolutionType Solution type: 1=Direct, 2=Modal.
REAL8 NasModeFreqRange[2]
or Frequency range of interest, [0]=Min, [1]=Max.
VARIANT vNasModeFreqRange
INT4 NasModeEstRoots Estimated number of eigenvalues.
INT4 NasModeDesiredRoots Number of desired eigenvalues/modes.
INT4 NasModeNormOpt Normalization method: 0=Mass,1=Max, 2=Point.
INT4 NasModeNormNode Node ID for use with point normalization method.
INT4 NasModeNormDOF Nodal DOF for use with point normalization method.
INT4 NasModeMassForm Mass matrix formulation: 0=Default, 1=Lumped, 2=Coupled.
If True, skips writing the EIGR card for specifying modal anal-
BOOL NasModesSkipEigr
ysis options
REAL8 NasModeImagFreqRange[2]
or For Complex Modes analysis, specifies the imaginary part of
VARIANT vNasModeImag- the Frequency Range of interest.
FreqRange
REAL8 NasModesComplexConverge Specifies Complex Modes convergence value
REAL8 NasModesComplexRegion-
Specifies Region Width for Complex Modes analysis.
Width
REAL8 NasModeDampOverall Specifies PARAM,G
NASTRAN Dynamic Options
Flag indicating NASTRAN Dynamic Options have been
BOOL NasDynOn
defined.
BOOL NasDynUseLoadSet Flag to use dynamic options from the load set.
REAL8 NasDynDampOverall Value for Overall Structural Damping.
REAL8 NasDynDampW3 Value for System Damping.
REAL8 NasDynDampW4 Value for Element Damping.
REAL8 NasDynKeepFreq[2]
or Max and Min frequencies used to limit response.
VARIANT vNasDynKeepFreq
REAL8 NasDynTranDT Value used for Transient Time Increment.
INT4 NasDynFreqTbl ID of Function defining the Solution frequencies.
INT4 NasDynDampModalTbl ID of Function defining the Modal Damping Table.
API-1416

Property Description
INT4 NasDynKeepModes Number of Modes used to limit response.
INT4 NasDynTranTimeSteps Number of Transient Time Steps
INT4 NasDynTransOutInt Number for Transient Output Interval
BOOL NasDynDampModalMethod
ID of Function defining the Modal Frequency Correlation for
INT4 NasDynRespSpect
Response Spectrum.
INT4 NasDynNoFreq[2]
or Number of Frequency Intervals
VARIANT vNasDynNoFreq
BOOL NasDynLogInterp[2]
or Flag to use Logarithmic Interpolation
VARIANT vNasDynLogInterp
INT4 NasDynFreqType[2]
or Input type for definition of Solution Frequencies
VARIANT vNasDynFreqType
REAL8 NasDynMinFreq[2]
or Min of frequency range for solution frequencies.
VARIANT vNasDynFreqType
REAL8 NasDynMaxFreq[2]
or Max of frequency range for solution frequencies.
VARIANT vNasDynMaxFreq
REAL8 NasDynSpreadCluster[2]
or Value defining frequency spread around modes.
VARIANT vNasDynSpreadCluster
BOOL NasDynFzero Flag to write PARAM,FZERO
REAL8 NasDynFzeroVal Value of PARAM, FZERO
BOOL NasDynWmodal Flag to write PARAM,WMODAL
NASTRAN Random OUTPUT2 Options
Flag indicating NASTRAN Random Output2 options have been
BOOL NasRandomOn
defined.
INT4 NasRandomRequest[2]
Output requests for Output2: [0]=Nodal Output, [1]=Elemental
or
Output.
VARIANT vNasRandomRequest
NASTRAN Modal XY Plot Options
Flag indicating NASTRAN Modal XY Plot Options have been
BOOL NasModeXYOn
defined.
API-1417

Property Description
BOOL NasModeXYRequest[5]
or Flags selecting types of output for XY plotting.
VARIANT vNasModeXYRequest
BOOL NasModeXYRefNode Flag indicating output of summary data only.
NASTRAN Random XY Plot Options
Flag indicating NASTRAN Random XY Plot Options have
BOOL NasRandXYOn
been defined.
BOOL NasRandXYRequest[48]
or Flags selecting nodal and elemental output for XY plotting.
VARIANT vNasRandXYRequest
BOOL NasRandXYSummary Flag indicating output of summary data only.
INT4 NasRandXYNodeGroup ID of group containing node IDs for XY plot output.
INT4 NasRandXYElemGroup ID of group containing element IDs for XY plot output.
NASTRAN Response Spectrum Generation
Flag indicating NASTRAN Response Spectrum Generation
BOOL NasGenSpecOn
Options have been specified
BOOL NasGenSpecRequest[18]
Flags selecting spectrum generation for displacement, velocity
or
and acceleration DOF.
VARIANT vNasGenSpecRequest
BOOL NasGenSpecAbsolute Flag indicating absolute or relative.
INT4 NasGenSpecNodeGroup ID of group containing node IDs for spectrum generation.
NASTRAN Response Spectrum Application
Flag indicating NASTRAN Response Spectrum Application
BOOL NasAppSpecOn
Options have been specified.
INT4 NasAppSpecType Spectrum type.
INT4 NasAppSpecFunction Spectrum function ID.
REAL8 NasAppSpecScale Scale factor to apply to spectrum.
Modal combination method: 0=ABS, 1=SRSS, 2=NRL,
INT4 NasAppSpecMethod
3=NRLO.
REAL8 NasAppSpecClose Modal combination closeness.
INT4 NasAppSpecSuport ID of constraint set to be used as a Base/SUPORT.
INT4 NasAppSpecDamp Function ID to be used for modal damping.
NASTRAN Design Optimization
API-1418

Property Description
Sets analysis type for design optimization. 1 = Linear Statics, 2
INT4 NasOptimAnalysisType
= Normal Modes/Eigenvalue
Enables mode shape tracking for normal modes design optimi-
BOOL NasOptimTrackModes
zation
NASTRAN GEOMCHECK Options
BOOL NasGCheckOn Flag indicating Geomtery checking is specified.
BOOL NasGCheckNone Flag to write GEOMCHECK, NONE
Flag indicating type of Geomtery checking specified.
[0]=Q4_SKEW, [1]=Q4_TAPER, [2]=Q4_WARP,
[3]=Q4_IAMIN, [4]=Q4_IAMAX, [5]=T3_SKEW,
BOOL NasGCheckTest[21] [6]=T3_IAMAX, [7]=TET_AR, [8]=TET_EPLR,
or [9]=TET_DETJ, [10]=TET_DETG, [11]=HEX_AR,
VARIANT vNasGCheckTest [12]=HEX_EPLR, [13]=HEX_DETJ, [14]=HEX_WARP,
[15]=PEN_AR, [16]=PEN_EPLR, [17]=PEN_DETJ,
[18]=PEN_WARP, [19]=BEAM_OFF, [20]=BAR_OFF.
Used in conjunction with NasGCheckTol and NasGCheckMsg.
Flag indicating type of Geomtery checking specified
BOOL NasGCheckTest2[3]
[0]=PYR_AR, [1]=PYR_EPLR, [2]=PYR_WARP,
or
[3]=PYR_DETJ. Used in conjunction with NasGCheckTol2
VARIANT vNasGCheckTest2
and NasGCheckMsg2.
REAL8 NasGCheckTol[21] Number indicating tolerance value for each GEOMCHEC.
or Used in conjunction with NasGCheckTest and
VARIANT vNasGCheckTol NasGCheckMsg.
REAL8 NasGCheckTol2[3] Number indicating tolerance value for each GEOMCHECK.
or Used in conjunction with NasGCheckTest2 and
VARIANT vNasGCheckTol2 NasGCheckMsg2.
INT4 NasGCheckMsg[21]
0=Fatal, 1=Inform, 2=Warn. Used in conjunction with
or
NasGCheckTest and NasGCheckTol.
VARIANT vNasGCheckMsg
INT4 NasGCheckMsg2[3]
0=Fatal, 1=Inform, 2=Warn. Used in conjunction with
or
NasGCheckTest2 and NasGCheckTol2.
VARIANT vNasGCheckMsg2
BOOL NasGCheckSummary Flag to request Geomtery Check summary.
INT4 NasGCheckMsgLimit Number indicating max number of messages
NASTRAN MODELCHECK Options
Flag indicating NASTRAN Model Check options have been
BOOL NasMCheckOn
specified.
API-1419

Property Description
BOOL NasMCheckWtDOFSet[6]
Flag indicating selected Model Checks [0]=G, [1]=N,
or
[2]=N+AUTOSPC, [3]=F, [4]=A [5]=V
VARIANT vNasMCheckWtDOFSet
BOOL NasMCheckWtCG Flag to select CGI option.
INT4 NasMCheckWtRefNode ID of Model Check Ref Node.
INT4 NasMCheckWtUnits Number indicating Units to be used. 0=MASS, 1=WEIGHT
INT4 NasMCheckGrndRefNode ID of Ground Check Ref Node.
BOOL NasMCheckGrndDOFSet[5]
or Flag indicating selected Ground Checks [0]=G, [1]=N,
VARIANT vNasMCheck- [2]=N+AUTOSPC, [3]=F, [4]=A.
GrndDOFSet
REAL8 NasMCheckMaxStrnEn Number indicating Max Strain Energy.
BOOL NasMCheckDataRec Flag to use DATAREC.
REAL8 NasMCheckDataTol Tolerance Number to print forces above.
NASTRAN NXSTRAT Options
Flag indicating NASTRAN Advanced Nonlinear options have
BOOL NasNXStratOn
been defined.
INT4 NasNXStratSolver Solver type 0=Direct Sparse 1=Multigrid
INT4 NasNXStratAuto Auto Incrementation
BOOL NasNXStratNposit Continue when not positive definite
BOOL NasNXStratMasstyp Mass Matrix Type
INT4 NasNXStratTint Integration order thru Shell thick
BOOL NasNXStratMstab Matrix Stabilization
REAL8 NasNXStratMsfac Matrix Stabilization Factor
REAL8 NasNXStratDtdelay Element Death Time delay
REAL8 NasNXStratSdofang Shell DOF Angle
BOOL NasNXStratUpform u/p formulation
BOOL NasNXStratDispopt Prescribed displacement option
BOOL NasNXStratLoadopt Applied Load option
REAL8 NasNXStratAlpha Newmark Time Integ alpha coefficient
REAL8 NasNXStratDelta Newmark Time Integ delta coefficient
INT4 NasNXStratItemax Max iter for multigrid solver
API-1420

Property Description
REAL8 NasNXStratEpsia Convergence Tolerance epsia
REAL8 NasNXStratEpsib Convergence Tolerance epsib
REAL8 NasNXStratEpsii Convergence Tolerance epsii
INT4 NasNXStratLsearch Line Search Flag
INT4 NasNXStratMaxite Max Iter per time step
INT4 NasNXStratConvcri Convergence Criteria
REAL8 NasNXStratEtol Relative Energy Tolerance
REAL8 NasNXStratRtol Relative Force Tolerance
REAL8 NasNXStratRnorm Reference Force
REAL8 NasNXStratRmnorm Reference Moment
REAL8 NasNXStratRctol Relative Contact Force Tolerance
REAL8 NasNXStratDtol Relative Displacement Tolerance
REAL8 NasNXStratDnorm Reference Translation
REAL8 NasNXStratDmnorm Reference Rotation
REAL8 NasNXStratStol Line Search Convergence Tolerance
REAL8 NasNXStratRconsm Reference Contact Force
REAL8 NasNXStratEnlsth Line Search Energy Threshold
INT4 NasNXStratAtssubd Auto Time Step Small Step Size
REAL8 NasNXStratAtsmxdt Auto Time Step Largest Step Size
INT4 NasNXStratAtsnext Auto Time Step Size Flag
REAL8 NasNXStratAtsdfac Division Factor for Sub Increment
BOOL NasNXStratAtslows Low Speed Dynamics Flag
REAL8 NasNXStratAtsdamp Low Speed Dynamics Damping Factor
INT4 NasNXStratLdcgrid Node ID for Prescribed Displacement
INT4 NasNXStratLdcdof DOF for Prescribed Displacement
REAL8 NasNXStratLdcdisp Magnitude of Prescribed Displacement
REAL8 NasNXStratLdcimax Displacement Convergence Factor
REAL8 NasNXStratLdcdmax Max Displacement
BOOL NasNXStratLdccont Solution Termination after Critical
API-1421

Property Description
INT4 NasNXStratLdcsubd Max Arc Length Subdivisions
INT4 NasNXStratImpact Impact Control Scheme
INT4 NasNXStratNsupp Num Iterations for Pairing
BOOL NasNXStratModex Restart Flag - Obsolete, use NasNXStratModexNew
INT4 NasNXStratModexNew Restart Flag/Option - 0=Normal, 1=Restart, 2=Recover Results
REAL8 NasNXStratAtsmass Value for Auto Time Stepping Inertia Factor
REAL8 NasNXStratTstart Restart Solution Time
INT4 NasNXStratIrint Frequency of Results in File
INT4 NasNXStratNsubgrp Number of Subgroups
BOOL NasNXStratElcv Conversion Flag
INT4 NasNXStratEqrbar RBAR element option
INT4 NasNXStratEqrbe2 RBE2 element option
REAL8 NasNXStratSpringk Stiffness of RBAR/RBE2 springs
REAL8 NasNXStratBeame Youngs modulus for RBAR/RBE2 elements
REAL8 NasNXStratBeama Effective cross section for RBAR/RBE2 elements
REAL8 NasNXStratRblcrit Critical Length for RBAR/RBE2 elements
INT4 NasNXStratXstep Time Step Method
INT4 NasNXStratXdtcal Critical time step recalculation every XDTCAL steps
REAL8 NasNXStratXdtfac Critical time step factor
REAL8 NasNXStratXmscale Mass scale factor
REAL8 NasNXStratXdtmin1 Min steps size to use mass scaling
REAL8 NasNXStratXdtmin2 Max steps size to use mass scaling
INT4 NasNXStratIcmode Incompatible mode flag 0=off 1=on
When True, Use NXN v8.5 Elastic Beam Formulation option is
BOOL NasNXStratBeamalg
enabled
INT4 NasNXStratUlform Large strain formulation used
INT4 NasNXStratTimeSteps[0..9] Number of Steps
REAL8 NasNXStratTimeIncre-
Time increment
ment[0..9]
INT4 NasNXStratSkipFactor[0..9] Output results every Nth step.
API-1422

Property Description
INT4 NasNXStratCstype Selects the type of contact segment to use.
For NX Nastran Advanced Nonlinear solver, if True, results are
BOOL NasNXStratElrescs in elemental coordinate system, if False, in the Material coordi-
nate system
REAL8 NasNXStratMaxDisp Limit for max incremental displacement/equilibrium iteration
INT4 NasNXStratBoltstp Number of steps for applying bolt pre-load force
Flag to convert TABLES1 from engineering stress strain to true
BOOL NasNXStratCvssval
stress strain.
BOOL NasNXStratRtalg Flag selecting the rigid target method: 0=Current, 1=Old(v4)

BOOL NasNXStratTnslcf Flag allowing tensile consistent contact forces on quadratic 3D


contact segments
Maximum Rotational Stiffness Factor used when drilling stiff-
REAL8 NasNXStratDrillkf
ness is zero
REAL8 NasNXStratLslower Value for Lower bound of line search.
REAL8 NasNXStratLsupper Value for Upper bound of line search.
BOOL NasNXStratXtcurve Flag to extend TABLES1 by linear extrapolation
NASTRAN DDAM Options
BOOL NasDdamOn Flag indicating Nastran DDAM Options have been specified
BOOL NasDdamEnabled If True, DDAM analysis is enabled
BOOL NasDdamIncludePath If True, full paths are specified in all filenames
If True, this is a DDAM analysis, otherwise it is a non-DDAM
BOOL NasDdamIsDDAM
spectrum analysis
INT4 NasDdamUseBuiltInCoeff 0=Specify Coefficients, 1=External File, 2=Built-In
INT4 NasDdamEquationType 0=DDS-072, 1=NRL 1396
INT4 NasDdamSurfaceShip 0=Surface, 1=Submerged
INT4 NasDdamEquipmentLocation 0=Deck, 1=Hull, 2=Shell
INT4 NasDdamElasticPlastic 0=Elastic, 1=Elastic-Plastic
INT4 NasDdamForeAftDirection Fore/Aft Axis (0=X, 1=Y, 2=Z)
INT4 NasDdamVerticalDirection Vertical Axis (0=X, 1=Y, 2=Z)
Number specifying sequence of axes to apply (X=1,Y=2,Z=3),
INT4 NasDdamDirectionSequence
so 132 means X then Z, then Y
REAL8 NasDdamMassToWeight Mass to Weight conversion factor
API-1423

Property Description
REAL8 NasDdamWeightCutoffPct Modal Mass Cutoff Percentage
REAL8 NasDdamGCutoff Minimum Acceleration in Gs
STRING NasDdamSpecCoeff- Filename (and path) of file containing spectrum coefficients
File[260] (only used if NasDdamUseBuiltInCoeff=1)
BOOL NasDdamCoeffOn[14]
or Flags to turn on/off specified spectrum coefficients
VARIANT vNasDdamCoeffOn
REAL8 NasDdamCoeffVal[14]
or Values of specified spectrum coefficients.
VARIANT vNasDdamCoeffVal
REAL8 NasDdamForceConversion Value for Force Unit Conversion
REAL8 NasDdamAccelConversion Value for Acceleration Unit Conversion
NASTRAN Rotor Dynamics Options
Flag indicating Nastran Rotor Dynamics Options have been
BOOL NasRotorOn
specified
BOOL NasRotorEnabled If True, Rotor Dynamics analysis is enabled
BOOL NasRotorIncludePath If True, full paths are specified in all filenames
If True, this is a single rotor analysis of the full model, if False,
BOOL NasRotorSingleRotor
multiple rotors must be specified with rotor regions
BOOL NasRotorFixedRefSys True = Fixed Reference CSys, False = Rotating
BOOL NasRotorAsyncResponse True = Asynchronous Response Calculations
BOOL NasRotorSteinerInertia True = Include Steiner Inertia Terms
BOOL NasRotorForceExcitation True = Force Excitation, False = Mass Unbalance
BOOL NasRotorDoCSV True = Create comma separated output file
BOOL NasRotorDoGPF True = Create GPF output file
Speed Input Units 0=Rev/Min, 1=Cycle/Sec, 2=Hz, 3=Radians/
INT4 NasRotorInputUnits
Sec
INT4 NasRotorOutputUnits Output Units 0=Rev/Min, 1=Cycle/Sec, 2=Hz, 3=Radians/Sec
Printed Output 0=None, 1=Generalized Matrices, 2=Eigen-
INT4 NasRotorPrintedOutput
value Summary/Eigenvectors, 3=Both
INT4 NasRotorSpeedNumSteps Number of Steps in Rotor Speed
REAL8 NasRotorComplexModeOut- Mode/Whirl Output (0.0=None, <0=All RPM, >0=Specified
put Speed)
API-1424

Property Description
REAL8 NasRotorWhirlThreshold Whirl Threshold
Excitation Order (Default = 1.0, 0.0=Forward Whirl, 2.0=Back-
REAL8 NasRotorExcitationOrder
ward Whirl)
REAL8 NasRotorSpeedStart Rotor Speed Start Value
REAL8 NasRotorSpeedStep Rotor Speed Step Size
STRING NasRotorModeSelec-
String specifying IDs of modes for dynamic response
tion[60]
NASTRAN Static Aerodynamic Options
Flag indicating NASTRAN Aerodynamic Data Options have
BOOL NasAeroOn
been defined.
INT4 NasAeroCsID Aerodynamic coordinate system
INT4 NasAeroRefCsID Reference coordinate system
REAL8 NasAeroRefLength Reference chord length (also used in Flutter for Ref Length)
REAL8 NasAeroRefSpan Reference span
REAL8 NasAeroRefArea Reference wing area
Symmetry flag for the aero coordinate x-y plane. -1 = Symme-
INT4 NasAeroSymXY
try, 0 = No Symmetry, 1 = Anti Symmetry (also used in Flutter)
Symmetry flag for the aero coordinate z-x plane 1 = Symmetry,
INT4 NasAeroSymxz
0 = No Symmetry, -1 = Anti Symmetry (also used in Flutter)
BOOL NasAeroAeunit PARAM, AUNITS flag
REAL8 NasAeroAeunitVal PARAM, AUNITS val
NASTRAN Aerodynamic Flutter Options
REAL8 NasAeroVelo Velocity for aerodynamic force
REAL8 NasAeroRefDens Reference density
INT4 NasAeroMkFuID Mach number/Reduced Frequency function.
Dynamic options: [0] sets PARAM, LFREQ and [1] sets
REAL8 vNasAeroFreqKeep[2]
PARAM, HFREQ
INT4 NasAeroModesKeep Dynamic options: When non-zero, writes PARAM, LMODES
BOOL NasAerobPARAMfzero Dynamic options: When True writes PARAM,FZERO
REAL8 NasAerodPARAMfzero Dynamic options: PARAM,FZERO val
BOOL NasAeroDampMethod Dynamic options: When True, writes PARAM,KDAMP
BOOL NasAerobOPPHIPA Dynamic options: When True, writes PARAM,OPPHIPA,1
API-1425

Property Description
NASTRAN External Superelement Creation Options (Nastran SOL 101 and 103 Only)
BOOL NasExtSEOutOn Enable creating of external superelement
INT4 NasExtSEOutExtID External super element ID
BOOL NasExtSEOutMatStiffness Store boundary stiffness matrix
BOOL NasExtSEOutMatMass Store boundary mass matrix
BOOL NasExtSEOutMatK4damp Store boundary structural damping matrix
BOOL NasExtSEOutMatLoads Store loads matrix
External superelement output location. 0=DMIGPCH,
INT4 NasExtSEOutTo
1=DMIGOP2, 2=MATOP4
INT4 NasExtSEOutUnitID Unit ID
STRING NasExtSEOutAssignTitle Title for filename when writing to DMIGOP2 or MATOP4
BOOL NasExtSEOutOptGeom Store geometry
BOOL NasExtSEOutOptAsmbulk Generate bulk entries related to superelement assembly process
BOOL NasExtSEOutOptExtbulk Generate bulk entries for external superelement
NASTRAN External Superelement Reference Options
Write PARAM,SECOMB when writing super element refer-
BOOL NasBulkSecomb
ences
BOOL NasExecAllowDuplicate-
Allow duplicate node IDs across super elements
Nodes
REAL8 NasExecDuplicateTolerance Specify duplicate node tolerance
BOOL NasExecWriteSERefPath Write full path for external super element references
NASTRAN MSC Nastran Contact Solver Parameters Options
Flag indicating MSC Nastran Contact Solver Parameters
BOOL NasMscCtOn
options have been defined.
If True, selected options in MSC Nastran Contact Solver
BOOL NasMscCtEnable
Parameters will be used
Specifies Contact Method (METHOD) option, 0=NODESURF,
INT4 NasMscCtMETHOD
1=SEGSMALL, 2=SEGLARGE
REAL8 NasMscCtERROR Specify value for Touch Dist (ERROR)
REAL8 NasMscCtBIAS Specify value for Cont Tolerance (BIAS), use 0.9 for default
REAL8 NasMscCtSLDLMT Specify value for Max Slide Dist (SLDLMT)
REAL8 NasMscCtSTKSLP Specify value for Max Slip Dist (STKSLP)
API-1426

Property Description
BOOL NasMscCtNLGLUE If True, All Glue (NLGLUE) is enabled
BOOL NasMscCtERRBAS If True, Error by Pair (ERRBAS) is enabled
BOOL NasMscCtBEAMB If True, Include 3D Beam (BEAMB) is enabled
Specifies the Augment Method (AUGMENT), 0=None, 1=Lin-
INT4 NasMscCtAUGMENT
ear-Constant, Quadratic-Bilinear, 2=Constant, 3=Bilinear
REAL8 NasMscCtAUGDIST Specify value for Aug Pen Dist (AUGDIST)
REAL8 NasMscCtPENALT Specify value for Augment PenFactor (PENALT)
REAL8 NasMscCtTPENALT Specify value for Stick Pen Fact (TPENALT)
REAL8 NasMscCtDDULMT Specify value for Max DDU (DDULMT)
BOOL NasMscCtTAUGMNT If True, Sticking Augment (TAUGMNT) is enabled
Specifies Friction (FTYPE) type, 0=None, 6=Bilinear Cou-
INT4 NasMscCtFTYPE
lomb, 7=Bilinear Shear
REAL8 NasMscCtRVCNST Specify value for Bilin (RVCNST)
BOOL NasMscCtSEGSYM If True, Non Symmetric Matrix (SEGSYM) is enabled
Specifies Sep Control (ICSEP) option, 0=Nodal Force > Sepa-
INT4 NasMscCtICSEP ration Force, 1=Prevent Separation Until Next Increment,
2=Prevent New Node Separation, 3=Both 1 and 2
Specifies Separation (IBSEP) option, 0=Force Based, 1=Abso-
INT4 NasMscCtIBSEP lute Stress Based, 2=Absolute Intg Pt Stress, 3=Relative Nodal
Stress, 4=Relative Intg Pt Stress
INT4 NasMscCtMAXSEP Integer value for Max Sep (MAXSEP), use 9999 for default
REAL8 NasMscCtFNTOL Specify value for Sep Force/Stress (FNTOL)
INT4 NasMscCtNODSEP Integer value for Skip Sep Check (NODSEP), use 2 for default
Analysis Set Options - ABAQUS Specific
BOOL AbaModOn Flag indicating ABAQUS Model options have been specified.
BOOL AbaModTitleSetNames Flag to write entity titles as set names.
BOOL AbaModGroupsAsSets Flag to write all groups as sets.
BOOL AbaModSkipStandard Flag to skip output of standard ABAQUS model.
INT4 AbaModStartText ID of text written at beginning of ABAQUS model
INT4 AbaModEndText ID of text written at end of ABAQUS model.
INT4 AbaModVersion Version number of ABAQUS to translate for (61=Version 6.1).
Analysis Set Options - ANSYS Specific
API-1427

Property Description
ANSYS Model Options
BOOL AnsModOn Flag indicating ANSYS Model options have been specified.
BOOL AnsModTitleSetNames Flag to Write FEMAP titles as set names.
BOOL AnsModSkipPreprocessCMD Flag to skip writing /PREP7 command
BOOL AnsModGroupsAsSets Flag to write Groups As Sets
BOOL AnsModSkipStandard Flag to skip output of standard ANSYS model.
INT4 AnsModStartText ID of text written at beginning of ANSYS model.
INT4 AnsModEndText ID of text written at end of ANSYS model.
STRING AnsModTitle Title for analysis (maximum 79 characters).
BOOL AnsModWriteSolCmd Flag to write commands for automatic solve of model.
BOOL AnsModWriteIter Flag to choose the iterative solver in ANSYS 5.3 and above.
BOOL AnsModWriteLargeDef Flag to include large deformation effects in nonlinear.
INT4 AnsModMemory Analysis memory: 0=Default.
INT4 AnsModVersion ANSYS version (4=ANSYS 4.4, 5=ANSYS 5.x).
ANSYS Random Analysis Options
Flag indicating ANSYS Random Analysis Options have been
BOOL AnsRandOn
specified.
BOOL AnsRandDisp Flag requesting displacement output.
BOOL AnsRandVel Flag requesting velocity output.
BOOL AnsRandAccel Flag requesting acceleration output.
Flag indicating displacement output should be relative or abso-
BOOL AnsRandDispRelative
lute.
BOOL AnsRandVelRelative Flag indicating velocity output should be relative or absolute.
Flag indicating acceleration output should be relative or abso-
BOOL AnsRandAccelRelative
lute.
Analysis Set Options - FEMAP Structural Specific
FEMAP Structural File Operations
Flag indicating FEMAP Structural File Operation Options have
BOOL FStFilOn
been specified.
STRING FStFilLogFile[260] Full path to the log file (blank=default).
BOOL FStFilKeepLogFile Flag indicating that the log file should be kept.
API-1428

Property Description
BOOL FStFilEchoLogFile
STRING FStFilHyper1[260] Filename for first Hypermatrix file (blank=default).
STRING FStFilHyper2[260] Filename for second Hypermatrix file (blank=default).
BOOL FStFilKeepHyper Flag indicating that Hypermatrix files should be kept.
STRING FStFilScratch1[260] Path to sparse solver scratch directory.
STRING FStFilScratch2[260] Path to additional sparse solver scratch directory.
FEMAP Structural Heat Transfer
Options
Flag indicating FEMAP Structural Heat Transfer Options have
BOOL FStHeatOn
been specified.
REAL8 FStHeatTempTol Temperature convergence tolerance.
INT4 FStHeatConvergeType Convergence norm: 0=Absolute, 1=Euclidean, 2=Maximum.
INT4 FStHeatMaxIter Maximum iterations.
FEMAP Structural Dynamic Solution Options
Flag indicating FEMAP Structural Dynamic Solution options
BOOL FStDynOn
have been specified.
INT4 FStDynSolMethod Solution method: 0=Guyan, 1=SVI, 2=Lanczos.
BOOL FStDynMassForm Mass formulation: 0=Consistent, 1=Lumped.
BOOL FStDynModalDamp Flag indicating that modal damping should be included.
BOOL FStDynModalNorm Flag indicating mode normalization method.
INT4 FStDynNumModes Number of flexible modes.
INT4 FStDynRigidModes Number of rigid body modes.
Frequency range method: 0=Above, 1=Below, 2=Around,
INT4 FStDynFreqMethod
3=Between.
REAL8 FStDynFreqRange[2]
Frequency range: [0]=Single or Min Frequency, [1]=Max Fre-
or
quency.
VARIANT vFStDynFreqRange
Effective mass direction: 0=None, 1=X, 2=Y, 3=Z, 4=X+Y,
INT4 FStDynMassDir
5=X+Z, 6=Y+Z, 7=X+Y+Z.
REAL8 FStDynMassTol Effective mass lower limit.
INT4 FStDynIterVec Number of iteration vectors.
INT4 FStDynMaxIter Max iterations.
API-1429

Property Description
INT4 FStDynSigDigits Significant digits.
FEMAP Structural Solver Options
Flag indicating FEMAP Structural Solver Options have been
BOOL FStSolOn
specified.
BOOL FStSolIter Flag choosing sparse or iterative solver.
REAL8 FStSolIterConvTol Iterative solver convergence tolerance.
INT4 FStSolIterMaxIter Iterative solver max iterations.
INT4 FStSolMemIterMax Max memory for iterative solver in MBytes.
INT4 FStSolMemVirtMax Total virtual memory limit in MBytes.
INT4 FStSolMemAppPct Application dynamic memory in percent.
INT4 FStSolMemFortranPct Fortran workspace in percent.
BOOL FStSolStressStiff Flag to turn on stress stiffening.
BOOL FStSolSpinSoft Flag to turn on spin softening.
INT4 FStSolStiffSoftLoad Load set ID for use with stress stiffening or spin softening.
BOOL FStSolShellAuto Shell autorestraint option.
BOOL FStSolSingularity Flag to select singularity removal.
BOOL FStSolVerification Flag indicating that a verification-only analysis.
REAL8 FStSolShellAutoAng Shell autorestraint angle.
REAL8 FStSolSingCriteria Singularity removal criteria.
ID of group containing node IDs for nodal output recovery
INT4 FStSolNodeGroup
(0=All Nodes).
ID of group containing element IDs for elemental output recov-
INT4 FStSolElemGroup
ery (0=All Elements).
Analysis Set Options - MARC Specific
BOOL MarModOn Flag Indicating MARC parameters have been specified.
BOOL MarModSkipStandard Flag to skip the standard MARC model section.
INT4 MarModStartText ID of text written at the begining of the model section.
INT4 MarModEndText ID of text written at the end of the model section.
char MarModTitle[160] Title of model specified as text.
INT4 MarModWorkSpVec Size of Work Space Vector on the SIZING command.
INT4 MarModMaxConstrain Max Number of constraints written to the SIZING command.
API-1430

Property Description
BOOL MarModFolOn Flag indicating Follower Force has been specified.
ID of Follower Option 1=Off Incremental, 2=Last Iter Inc,
INT4 MarModFolOpt 3=Beg Disp Incr, 4=Off Total, 5=Last Iter Total,
6=Beg Disp To
BOOL MarModPlasOn Flag indicating Plasticity has been specified.
ID of Plasticity Option 1=Add Normal Small Strain 2=Add
INT4 MarModPlasOpt Radial Small Strain, 3=Add Normal Large Strain, 4=Add
Radial Large Strain, 5=Multiplicative.
BOOL MarModElasOn Flag indicating Elasticity Force has been specified.
BOOL MarModElasTotal Total Lagrange=TRUE, Updated Lagrange=FALSE
BOOL MarModElasIs Flag indicating ELASTIC parameter will be used.
BOOL MarModConstDil Flag indicating CONSTANT parameter will be used.
BOOL MarModLgDisp Flag indicating LARGE DISP parameter will be used.
BOOL MarModUpdate Flag indicating UPDATE parameter will be used.
BOOL MarModFinite Flag indicating FINITE parameter will be used.
BOOL MarModEchoInput Flag to Echo the Input.
BOOL MarModWriteGroupSet Flag to write groups as sets.
BOOL MarModExtInput Flag indicating the EXTENDED parameter will be used.
BOOL MarModShlTrShear Flag indicating the TSHEAR parameter will be used.
INT4 MarModPltIntegPt Number of SHELL SECT integration points.
BOOL MarModDistLoadOn Flag indicating Load List information has been specified.
INT4 MarModDistLoadList Number indicating the max number of Load List in the model.
INT4 MarModDistLoadElem Number indicating the max number of Elements in any list.
INT4 MarModDistLoadNode Number indicating the max number of Nodes in any list.
BOOL MarModTyingOn Flag indicating TIE parameter will be used.
INT4 MarModTyingCe Number of tying type constraint equations.
INT4 MarModTyingType Number of different types of tying constraints.
INT4 MarModTyingServoNd Max Number of retained nodes for the tying type.
INT4 MarModTyingServoLk Max Number of Servo Links.
BOOL MarModOutOfCore Flag indicating the ELSTO parameter will be used.
INT4 MarModCoreVal Number indicating the Out Of Core buffer size.
API-1431

Property Description
BOOL MarModProcessors Flag indicating the PROCESSOR parameter will be used.
INT4 MarModNoCpu Number of CPUs to be used.
INT4 MarModVecLength Number indicating Vector Length for the PROCESSOR param.
BOOL MarModParallel Flag if matrices are to be formed in parallel.
BOOL MarModBWOpt Flag indicating the OPTIMIZE parameter will be used.
Analysis Set Options - LS-DYNA Specific
BOOL DynModOn Flag Indicating LS-DYNA parameters have been specified.
BOOL DynModExportRigidNodes Flag to export rigid reference nodes.
BOOL DynModMatlBasedParts Flag to write Material based plate parts.
BOOL DynModGroupsAsSets Flag to write Femap groups as sets.
BOOL DynModSkipStandard Flag to skip the standard LS-DYNA model section
INT4 DynModStartText ID of text written at the beginning of the model section.
INT4 DynModEndText ID of text written at the end of the model section.
API-1432 InitAnalysisMgr

5.7.2 AnalysisMgr Object Methods


5.7.2.1 InitAnalysisMgr

InitAnalysisMgr
( analysis_program, analysis_type, InitMasterCase )
Description:
This method initializes default options in the AnalysisMgr object
Input:
INT4 analysis_program Refer to the Solver property
INT4 analysis_type Refer to the AnalysisType property
BOOL InitMasterCase If true, also initializes the Master Case in in the object
Output:
None
Return Code:
FE_FAIL Unable to initialize the current object
Remarks/Usage:
None
Example:
None
GetText API-1433

5.7.2.2 GetText

GetText
( textID, text )
Description:
This method returns a string containing the text associated with a specified textID.
Input:
INT4 textID A textID returned from one of the text properties.
Output:
A string containing the text. This string will contain carriage control
STRING text
characters if there are multiple lines in the text.
Return Code:
FE_FAIL Unable to get the text. Check to see this is a valid ID.
Remarks/Usage:
Text IDs are returned from various AnalysisMgr properties. These properties have names ending with
StartText or EndText.
Example:
None
API-1434 PutText

5.7.2.3 PutText

PutText
( textID, text )
Description:
This method updates or creates text to associate with a text property.
Input:
A textID used to store the text string. Specify the same value as the
text property returned if you simply want to update the text. Specify
INT4 textID 0 if you want to create a new text entity. In this case, the return value
will be the textID that was created. You should set the text property
to this value.
A string containing the text. May contain carriage control to signify
STRING text
multiple lines.
Output:
None
Return Value
textID The ID.
Remarks/Usage:
Text IDs are returned from various AnalysisMgr properties. These properties have names ending with
StartText or EndText.
Example:
None
GetCorrelate API-1435

5.7.2.4 GetCorrelate

GetCorrelate
( count, excitedCase, appliedCase, realScale, imagScale, realFunc, imagFunc )
Description:
This method retrieves data from the Random Analysis Correlation Table.
Input:
None
Output:
INT4 count The number of entries in each of the other vectors.
INT4 excitedCase[0..count-1] The IDs of the analysis case being excited.
INT4 appliedCase[0..count-1] The IDs of the analysis case where the PSD is applied.
REAL8 realScale[0..count-1] The scale factor for the real portion of the PSD.
REAL8 imagScale[0..count-1] The scale factor for the imaginary portion of the PSD.
INT4 realFunc[0..count-1] The IDs of functions defining the real PSDs.
INT4 imagFunc[0..count-1] The IDs of functions defining the imaginary PSDs.
Return Value
FE_NOT_EXIST The correlation table does not exist.
FE_FAIL Unable to allocate memory to return the correlation data.
Remarks/Usage:
This function has been replace by GetCorrelate2 in Femap 10.1. The AnalysisMgr object must be
loaded with data from the associated set before this function can be used.
Example:
None
API-1436 GetCorrelate2

5.7.2.5 GetCorrelate2

GetCorrelate2
( count, excitedCase, appliedCase, realScale, imagScale, realFunc, imagFunc,
realInterp, imagInterp )
Description:
This method retrieves data from the Random Analysis Correlation Table.
Input:
None
Output:
INT4 count The number of entries in each of the other vectors.
INT4 excitedCase[0..count-1] The IDs of the analysis case being excited.
INT4 appliedCase[0..count-1] The IDs of the analysis case where the PSD is applied.
REAL8 realScale[0..count-1] The scale factor for the real portion of the PSD.
REAL8 imagScale[0..count-1] The scale factor for the imaginary portion of the PSD.
INT4 realFunc[0..count-1] The IDs of functions defining the real PSDs.
INT4 imagFunc[0..count-1] The IDs of functions defining the imaginary PSDs.
The IDs of Interpolation method defining the real PSD. 0=Log Log,
INT4 realInterp[0..count-1]
1=Linear, 2=XLog YLin, 3=XLin YLog
The IDs of Interpolation method defining the imaginary PSD. 0=Log
INT4 imagInterp[0..count-1]
Log, 1=Linear, 2=XLog YLin, 3=XLin YLog
Return Value
FE_NOT_EXIST The correlation table does not exist.
FE_FAIL Unable to allocate memory to return the correlation data.
Remarks/Usage:
The AnalysisMgr object must be loaded with data from the associated set before this function can be
used.
Example:
None
PutCorrelate API-1437

5.7.2.6 PutCorrelate

PutCorrelate
( count, excitedCase, appliedCase, realScale, imagScale, realFunc, imagFunc )
Description:
This method replaces data in the Random Analysis Correlation Table.
Input:
INT4 count The number of entries in each of the other vectors.
INT4 excitedCase[0..count-1] The IDs of the analysis case being excited.
INT4 appliedCase[0..count-1] The IDs of the analysis case where the PSD is applied.
REAL8 realScale[0..count-1] The scale factor for the real portion of the PSD.
REAL8 imagScale[0..count-1] The scale factor for the imaginary portion of the PSD.
INT4 realFunc[0..count-1] The IDs of functions defining the real PSDs.
INT4 imagFunc[0..count-1] The IDs of functions defining the imaginary PSDs.
Output:
None
Return Value
FE_FAIL Unable to update the correlation table.
Remarks/Usage:
This function has been replace by PutCorrelate2 in Femap 10.1. The AnalysisMgr object must be loaded
with data from the associated set before this function can be used. This function completely replaces the
correlation table - it does not add to data that is already there.
Example:
None
API-1438 PutCorrelate2

5.7.2.7 PutCorrelate2

PutCorrelate2
( count, excitedCase, appliedCase, realScale, imagScale, realFunc, imagFunc,
realInterp, imagInterp )
Description:
This method replaces data in the Random Analysis Correlation Table.
Input:
INT4 count The number of entries in each of the other vectors.
INT4 excitedCase[0..count-1] The IDs of the analysis case being excited.
INT4 appliedCase[0..count-1] The IDs of the analysis case where the PSD is applied.
REAL8 realScale[0..count-1] The scale factor for the real portion of the PSD.
REAL8 imagScale[0..count-1] The scale factor for the imaginary portion of the PSD.
INT4 realFunc[0..count-1] The IDs of functions defining the real PSDs.
INT4 imagFunc[0..count-1] The IDs of functions defining the imaginary PSDs.
The IDs of Interpolation method defining the real PSD. 0=Log Log,
INT4 realInterp[0..count-1]
1=Linear, 2=XLog YLin, 3=XLin YLog
The IDs of Interpolation method defining the imaginary PSD. 0=Log
INT4 imagInterp[0..count-1]
Log, 1=Linear, 2=XLog YLin, 3=XLin YLog
Output:
None
Return Value
FE_FAIL Unable to update the correlation table.
Remarks/Usage:
The AnalysisMgr object must be loaded with data from the associated set before this function can be
used. This function completely replaces the correlation table - it does not add to data that is already
there.
Example:
None
GetContactTable API-1439

5.7.2.8 GetContactTable

GetContactTable
( count, rowSeg, colSeg, tieType, distTol, sepForce, friction, interClose )
Description:
This method retrieves data from the Contact Table.
Input:
None
Output:
INT4 count The number of entries in each of the other vectors.
INT4 rowSeg[0..count-1] The IDs of the contact segments referenced in rows of the table
INT4 colSeg[0..count-1] The IDs of the contact segments referenced in columns of the table
INT4 tieType[0..count-1] The tying type (0,1=None, 2=Touch, 3=Glue)
REAL8 distTol[0..count-1] The distance tolerance
REAL8 sepForce[0..count-1] The separation force
REAL8 friction[0..count-1] The friction values
REAL8 interClose[0..count-1] The interference closure
Return Value
FE_NOT_EXIST The contact table does not exist.
FE_FAIL Unable to allocate memory to return the contact table data.
Remarks/Usage:
None
Example:
None
API-1440 PutContactTable

5.7.2.9 PutContactTable

PutContactTable
( count, rowSeg, colSeg, tieType, distTol, sepForce, friction, interClose )
Description:
This method replaces data in the Contact Table
Input:
INT4 count The number of entries in each of the other vectors.
INT4 rowSeg[0..count-1] The IDs of the contact segments referenced in rows of the table
INT4 colSeg[0..count-1] The IDs of the contact segments referenced in columns of the table
INT4 tieType[0..count-1] The tying type (0,1=None, 2=Touch, 3=Glue)
REAL8 distTol[0..count-1] The distance tolerance
REAL8 sepForce[0..count-1] The separation force
REAL8 friction[0..count-1] The friction values
REAL8 interClose[0..count-1] The interference closure
Output:
None
Return Value
FE_FAIL Unable to update the contact table.
Remarks/Usage:
This function completely replaces the contact table - it does not add to data that is already there.
Example:
None
Case API-1441

5.7.2.10 Case

Case
( caseID )
Description:
This method creates and returns an AnalysisCase object that is loaded with the options referenced by a
case.
Input:
INT4 caseID The ID of the Analysis Case to load.
Output:
Return Code:
None
Remarks/Usage:
The current AnalysisMgr object must be loaded with the data from the set that contains the case that you
want to retrieve. The AnalysisMgr.ID property is used to define the set that you want to retrieve.
Example:
None
API-1442 Analyze

5.7.2.11 Analyze

Analyze
( setID )
Description:
Selects and analyzes an Analysis Set.
Input:
INT4 setID The ID of the Analysis Set to be analyzed.
Output:
None
Return Code:
None
Remarks/Usage:
This method can be used to select an analysis set and run the associated analysis program.
Example:
None
AnalyzeMultiple API-1443

5.7.2.12 AnalyzeMultiple

AnalyzeMultiple
( setID )
Description:
Selects and sequentially analyzes one or more Analysis Sets.
Input:
The ID of a Set that contains the IDs of the Analysis Sets to be ana-
INT4 setID
lyzed.
Output:
None
Return Code:
None
Remarks/Usage:
This method can be used to select multiple analysis sets and run the associated analysis program.
Example:
None
API-1444 ClearAnalysisQueue

5.7.2.13 ClearAnalysisQueue

ClearAnalysisQueue
( void )
Description:
Clears the Analysis Job Queue of jobs.
Input:
None
Output:
None
Return Code:
FE_OK
Remarks/Usage:
None
Example:
None
Preview API-1445

5.7.2.14 Preview

Preview
( SetID )
Description:
Calls Preview Input in the Analysis Set Manager
Input:
The ID of a Analysis Set to be previewed in the Preview Analysis
INT4 setID
Input File window. Enter -1 for the Active Analysis Set.
Output:
None
Return Code:
FE_OK
Remarks/Usage:
None
Example:
None
API-1446 Preview
API-1447

5.8 AnalysisStudy Objects


AnalysisStudy objects correspond to the analysis studies in your model. They are derived from
Entity objects, so in addition to the properties and methods described here, essentially all of the
properties and methods defined for Entity objects are also available for AnalysisStudy objects. For
more information, see Section 5.1, "Common Entity Properties and Methods".
Use the feAnalysisStudy method of the FEMAP Application object to create AnalysisStudy
objects.

5.8.1 AnalysisStudy Object Properties


AnalysisStudy objects are always stored with their SetID = 1, and the ID equal to the analysis
study that you are trying to access. AnalysisStudy objects do not contain any of the actual results
data or output sets; they simply contain the header information for the analysis study.
Output Sets are added to an analysis study by specifying the Analysis Study ID on the output set
(study property on the OutputSet object).

Property Description
STRING Title Analysis Study title (maximum 79 characters).
INT4 AnalysisProg Analysis program where output came from: 0=Unknown,
4=MSC/NASTRAN, 5=ANSYS, 16=ABAQUS, 28=LS-
Dyna, 29=MSC.Marc, 31=NE/Nastran, 34=FEMAP Struc-
tural. 36=NX Nastran. Use enum zAnalysisProgram
INT4 AnalysisType Type of analysis the results came from: 0=None, 1=Static,
2=Normal Modes/Eigenvalue, 3=Transient Dynamic/Time
History, 4=Frequency/Harmonic Response, 5=Response Spec-
trum, 6=Random Response, 7=Buckling, 8=Design Opt,
9=Explicit Transient Dynamics, 10=Nonlinear Static,
11=Nonlinear Buckling, 12=Nonlinear Transient, 13=Implicit
Transient Dynamics, 17=Fatigue, 19=Computational Fluid
Dynamics, 20=Steady-State Heat Transfer, 21=Transient Heat
Transfer, 22=Advanced Nonlinear Static, 23=Advanced Non-
linear Transient, 24=Advanced Nonlinear Explicit, 25=Static
Aeroelasticity, 26=Aerodynamic Flutter.
Use enum zAnalysisType
INT4 FileTime Returns time as an integer which can be mapped to Windows
Time (time_t data type) using certain programming lan-
guages.
STRING Notes One or more lines of text. Maximum 256 characters. Each line
is separated by a CR-LF (0x0D, 0x0A) character pair. The end
of the string is terminated by a NULL character.
INT4 AnalysisSet ID of the FEMAP Analysis Set, if the input file created using
the Analysis Set Manager and automatic creation of studies is
enabled. If 0, the input file was likely created in a different
manner or the analysis study was created manually.
API-1448 CountOutputSets

5.8.2 AnalysisStudy Object Methods


5.8.2.1 CountOutputSets

CountOutputSets
( void )
Description:
This method returns the number of output sets which reside in an analysis study.
Input:
None
Output:
None
Return Code:
The number of output sets in the analysis study currently in the Anal-
INT4 count
ysisStudy object. If 0, no output sets are in the analysis study.
Remarks/Usage:

Example:
OutputSets API-1449

5.8.2.2 OutputSets

OutputSets
( nOuptutSetSetID )
Description:
This method loads an existing Set object with the output set IDs for the analysis study currently loaded
in the AnalysisStudy object
Input:
The ID of a Set object to be filled with output set IDs currently resid-
INT4 nOutputSetSetID
ing an analysis study.
Output:
None
Return Code:

Remarks/Usage:

Example:
API-1450 HasOutputSet

5.8.2.3 HasOutputSet

HasOutputSet
( nSetID )
Description:
This method returns a Boolean indicating if the specified output set reside in the analysis study currently
loaded in the AnalysisStudy object.
Input:
INT4 nSetID The ID of an output set
Output:
None
Return Code:
True = output set resides in analysis study, False = output set does
BOOL
not reside in analysis study
Remarks/Usage:

Example:
AddOutputSets API-1451

5.8.2.4 AddOutputSets

AddOutputSets
( nSetID )
Description:
The method adds all output sets in a set object to an analysis study
Input:
The ID of a Set that contains output set IDs to add to analysis study.
INT4 nSetID Alternatively, if you specify a negative value, this is simply the ID of
a single output set to add to the analysis study.
Output:
None
Return Code:
None
Remarks/Usage:

Example:
API-1452 RemoveOutputSets

5.8.2.5 RemoveOutputSets

RemoveOutputSets
( nSetID )
Description:
The method removes all output sets in a set object from an analysis study
Input:
The ID of a Set that contains output set IDs to remove from analysis
INT4 nSetID study. Alternatively, if you specify a negative value, this is simply
the ID of a single output set to remove from the analysis study.
Output:
None
Return Code:
None
Remarks/Usage:

Example:
RemoveAllOutputSets API-1453

5.8.2.6 RemoveAllOutputSets

RemoveAllOutputSets
( void )
Description:
The method removes all output sets from an analysis study
Input:
None
Output:
None
Return Code:
None
Remarks/Usage:

Example:
API-1454 Delete

5.8.2.7 Delete

Delete
( nSetID )
Description:
The method deletes all analysis studies in a set object from the model and optionally delete the output
sets in those studies from the model at the same time.
Input:
The ID of a Set that contains analysis study IDs to delete from the
INT4 nSetID model. Alternatively, if you specify a negative value, this is simply
the ID of a single analysis set to delete from the analysis study.
When True, will also delete any output sets currently residing in an
BOOL bDeleteOutput analysis study which is deleted. When False, output sets will remain
in the model.
Output:
None
Return Code:
None
Remarks/Usage:

Example:
Delete API-1455
API-1456 Property

5.9 BCDefinition Objects


BCDefinition objects correspond to the constraint definitions in your model. They group individ-
ual constraints into related sets and provide a title for the set. They are derived from Entity objects,
so in addition to the properties and methods described here, all of the properties and methods
defined for Entity objects are also available for BCDefinition objects. For more information, see
Section 5.1, "Common Entity Properties and Methods".
Use the feBCDefinition method of the FEMAP Application object to create BCDefinition objects.

5.9.1 BCDefinition Object Properties


BCDefinition objects are always stored with their SetID equal to the setID of the constraint set;
however, their IDs simply go from 1 to N. To find a particular object, you must retrieve each
object in the set and check the constraints it contains.

Property Description
STRING title Constraint Definition title.
The type of entity that the constraint is applied to in this
constraint definition. For more information on Entity
INT4 OnType Types refer to the table in Section 3.3.6, "Entity Types".
This must be FT_POINT, FT_CURVE, FT_SURFACE or
FT_NODE.
The type of entities that are referenced by this constraint
definition. For more information on Entity Types refer to
INT4 DataType
the table in Section 3.3.6, "Entity Types". This must be
FT_BCO, FT_BCO_GEOM or FT_BEQ
PutAll API-1457

5.9.2 BCDefinition Object Methods


5.9.2.1 PutAll

PutAll
( entID, enDataType, enOnType, sTitle )
Description:
This method stores a Constraint Definition with the specified ID along with all the available options.
Input:
INT4 entID The ID of the Constraint Definition to store.
INT4 DataType
INT4 OnType Refer to the property descriptions for each of these items.
STRING Title
Output:
None
Return Code:
FE_FAIL Unable to store the entity with the specified ID
Remarks/Usage:
Unlike the standard Put method, this function loads all of the properties as arguments. If you are updat-
ing all of the properties before storing an entity, this function will be faster than multiple calls to load
each property individually.
Example:
None
API-1458 ResetNextBC

5.9.2.2 ResetNextBC

ResetNextBC
( void )
Description:
This method initializes all options prior to calling the NextBC method below
Input:
None
Output:
None
Return Code:
FE_OK
Remarks/Usage:
This method is used prior to calling NextBC to specify which constraints will be retrieved. It simply
resets this object so that the next call to NextBC will return the first constraint available in the object.
Example:
NextBC API-1459

5.9.2.3 NextBC

NextBC
( pBC )
Description:
This method returns the next available constraint that is contained in the Constraint Definition
Input:
The next constraint object. Depending on the type of the constraint
OBJECT pBC
definition this could be a BCNode, BCGeom or BEqn object
Output:
None
Return Code:
There are no more constraints of the specified type to retrieve. Call
FE_FAIL ResetNextBC to go back to the first constraint, if you want to retrieve
the constraints again.
Remarks/Usage:
This method, coupled with ResetNextBC provides an easy way to retrieve all constraints from a Con-
straint Definition.
Example:
API-1460

5.10 BCEqn Objects


BCEqn objects correspond to the constraint equations in your model. They are derived from Entity
objects, so in addition to the properties and methods described here, all of the properties and meth-
ods defined for Entity objects are also available for BCEqn. For more information, see Section 5.1,
"Common Entity Properties and Methods".
Use the feBCEqn method of the FEMAP Application object to create BCEqn objects.

5.10.1 BCEqn Object Properties


BCEqns are always stored with their SetID equal to the setID of the constraint set; however, their
IDs simply go from 1 to N. To find a particular object, you must retrieve each object in the set and
check its nodes.
When you create a new BCEqn, it will always reference the active constraint set. You can change
the set that it references simply by changing the setID parameter.
In this table, you will see some properties that list two names - one of which is an array, the other a
Variant. Refer to Section 1.2.7, "Multiple Definitions of Array Properties" for more information.

Property Description
INT4 dof[0..5999] An integer from 1 to 6 indicating the DOF associated with the
or corresponding term in the equation.
VARIANT vdof
INT4 node[0..5999] The node ID referenced by each term in the equation.
or
VARIANT vnode
REAL8 coefficient[0..5999] The coefficient associated with each term in the equation.
or
VARIANT vcoefficient
INT4 color The constraint color.
INT4 layer The ID of the layer associated with the constraint.
INT4 BCDefinitionID The ID of the constraint definition that contains this constraint
(0=None)
Additional Properties
The number of nonzero terms in the equation. This property is
INT4 count
read-only and cannot be changed.

5.10.2 BCEqn Object Methods


There are no BCEqn object-specific methods. Only the standard entity methods are available.
API-1461

5.11 BCGeom Objects


BCGeom objects correspond to the geometry-based constraints in your model. They are derived
from Entity objects, so in addition to the properties and methods described here, all of the proper-
ties and methods defined for Entity objects are also available for BCGeom. For more information,
see Section 5.1, "Common Entity Properties and Methods".
Use the feBCGeom method of the FEMAP Application object to create BCGeom objects.

5.11.1 BCGeom Object Properties


BCGeoms are always stored with their SetID equal to the setID of the constraint set; however,
their IDs simply go from 1 to N. To find a particular object, you must retrieve each object in the set
and check its geomID and geomType.
When you create a new BCGeom, it will always reference the active constraint set. You can
change the set that it references simply by changing the setID parameter.
In this table, you will see some properties that list two names - one of which is an array, the other a
Variant. Refer to Section 1.2.7, "Multiple Definitions of Array Properties" for more information.

Property Description
BOOL dof[0..5] An array of flags telling whether or not the corresponding
or degrees of freedom are constrained (True) or free (False), in
VARIANT vdof this set.
INT4 color The constraint color.
INT4 layer The ID of the layer associated with the constraint.
BOOL expanded True if this geometry-based constraint is currently expanded.
INT4 geomType The type of geometry that is constrained by this object:
3=Point, 4=Curve, 5=Surface.
INT4 geomID The ID of the geometry that is constrained by this object.
INT4 type The type of constraint being applied (0=DOF Pinned or Fixed,
1=General 6 DOF Control in output_sys, 2=Constrained normal
to surface, 3=Constrained in all in-surface directions,
4=Allow sliding in a direction, 5=Cylinder, dof control direc-
tions)
REAL8 direction[0..2] The direction of sliding for type=4 constraints.
or
VARIANT vdirection
INT4 outCSys ID of constraint coordinate system for type=1 constraints.
INT4 BCDefinitionID The ID of the constraint definition that contains this constraint
(0=None)
Additional Properties
API-1462

Property Description
Accesses all six components of the dof vector and returns them
BOOL dofvec[0..5]
as a variant. Same as using dof independently.
GetSearch API-1463

5.11.2 BCGeom Object Methods


5.11.2.1 GetSearch

GetSearch
( geomType, geomID )
Description:
This method searches for and retrieves an entity that is constraining a specified geometric entity.
Input:
INT4 geomType Type of geometry being constrained: 3=Point, 4=Curve, 5=Surface.
INT4 geomID ID of geometry being constrained.
Output:
None
Return Code:
FE_FAIL The specified entity does not exist or is not constrained.
Remarks/Usage:
Since BCGeom objects are not stored by a specified ID, but rather in sequential order, the normal Get
method may not be useful if you are trying to find the constraints on a specific geometric entity. The
only way to do that would be to Get every constraint and check for the geometry that you want. This
method does that for you. You specify the geometry you want to search for, and it returns the constraints
on that entity. Be aware that this method does still search the entire set. If you are going to retrieve con-
straints on a large number of geometry entities, it could be faster to retrieve them all using Get, and dis-
card the ones you do not want.
Example:
None
API-1464 SetSurfSliding

5.11.2.2 SetSurfSliding

SetSurfSliding
( INT4 surfID )
Description:
This method initializes the current object to allow sliding along a surface.
Input:
INT4 surfID The ID of the surface to slide along
Output:
None
Return Code:
None
Remarks/Usage:
This method does not store the constraint. You must still call Put to do that. It simply initializes the
properties necessary to define this type of constraint.
Example:
None
SetSurfNormal API-1465

5.11.2.3 SetSurfNormal

SetSurfNormal
( INT4 surfID )
Description:
This method initializes the current object to allow movement normal to a surface.
Input:
INT4 surfID The ID of the surface to move normal to.
Output:
None
Return Code:
None
Remarks/Usage:
This method does not store the constraint. You must still call Put to do that. It simply initializes the
properties necessary to define this type of constraint.
Example:
None
API-1466 SetSurfDirection

5.11.2.4 SetSurfDirection

SetSurfDirection
( INT4 surfID, REAL8 x, REAL8 y, REAL8 z )
Description:
This method initializes the current object to allow sliding of a surface in a specified direction.
Input:
INT4 surfID The ID of the surface to slide
REAL8 x The Global X component of the permitted sliding direction
REAL8 y The Global Y component of the permitted sliding direction
REAL8 z The Global Z component of the permitted sliding direction
Output:
None
Return Code:
None
Remarks/Usage:
This method does not store the constraint. You must still call Put to do that. It simply initializes the
properties necessary to define this type of constraint.
Example:
None
SetCylinder API-1467

5.11.2.5 SetCylinder

SetCylinder
( INT4 surfID, BOOL radius, BOOL rotation, BOOL sliding )
Description:
This method initializes the current object to allow sliding of a surface in cylindrical directions.
Input:
INT4 surfID The ID of the surface to slide
BOOL radius If True, allow growth of the radius of the cylinder.
BOOL rotation If True, allow rotation around the axis of the cylinder.
BOOL sliding If True, allow sliding along the axis of the cylinder.
Output:
None
Return Code:
FE_FAIL The specified surface is not cylindrical.
Remarks/Usage:
This method does not store the constraint. You must still call Put to do that. It simply initializes the
properties necessary to define this type of constraint.
Example:
None
API-1468

5.12 BCNode Objects


BCNode objects correspond to the nodal constraints in your model. They are derived from Entity
objects, so in addition to the properties and methods described here, all of the properties and meth-
ods defined for Entity objects are also available for BCNodes. For more information, see Section
5.1, "Common Entity Properties and Methods".
Use the feBCNode method of the FEMAP Application object to create BCNode objects.

5.12.1 BCNode Object Properties


BCNodes are always stored with their SetID equal to the setID of the constraint set, and the ID
equal to the node ID.
When you create a new BCNode, it will always reference the active constraint set. You can change
the set that it references simply by changing the setID parameter.
In this table, you will see some properties that list two names - one of which is an array, the other a
Variant. Refer to Section 1.2.7, "Multiple Definitions of Array Properties" for more information.

Property Description
BOOL dof[0..5] An array of flags telling whether or not the corresponding
or degrees of freedom are constrained (True) or free (False) in this
VARIANT vdof set.
INT4 color The constraint color.
INT4 layer The ID of the layer associated with the constraint.
BOOL expanded True if this is a constraint from an expanded geometric con-
straint.
INT4 BCDefinitionID The ID of the constraint definition that contains this constraint
(0=None)
Additional Properties
Accesses all six components of the dof vector and returns them
BOOL dofvec[0..5]
as a Variant. Same as using dof independently.
Add API-1469

5.12.2 BCNode Object Methods


5.12.2.1 Add

Add
( setID, bDOF1, bDOF2, bDOF3, bDOF4, bDOF5, bDOF6 )
Description:
This method creates nodal constraints on all selected nodes
Input:
The ID of a Set object that contains the nodes to constraint. Alterna-
INT4 setID tively, if you specify a negative value, this is simply the ID of the sin-
gle node to constrain.
BOOL bDOF1
BOOL bDOF2
BOOL bDOF3 The constraints to apply to the nodes. If True, the corresponding
BOOL bDOF4 degree of freedom is constained.

BOOL bDOF5
BOOL bDOF6
Output:
None
Return Code:
FE_FAIL The Constraints could not be created.
Remarks/Usage:
Prior to using this method, you must properly specify the other parameters in the object - such as, color,
layer and setID, and any other types required for your constraints. This method simply uses the data you
specify here to overwrite specific values in the BCNode object, and create a new constraint for each
entry in the set.
Example:
None
API-1470 AddArray

5.12.2.2 AddArray

AddArray
( count, doDOF, NodeID, DOF )
Description:
This method creates multiple nodal constraints
Input:
The number of constraints to create, and the number of IDs in
INT4 count
NodeID
If True, then the DOF array must contain degree-of-freedom flags to
BOOL doDOF be used. If False, then whatever is specified in the current object is
used and DOF is ignored
The Node IDs where constraints will be created. One constraint is
INT4 NodeID[0..count-1]
created on each ID.
Flags specifying constraints on each specified node. 6 flags per node.
INT4 DOF[0..(6*count)-1]
Refer to dof property.
Output:
None
Return Code:
FE_FAIL The Constraints could not be created.
FE_NO_MEMORY Unable to allocate memory to store arrays of data.
Remarks/Usage:
Prior to using this method, you must properly specify the other parameters in the object - such as, color,
layer and setID, and any other types required for your constraints. This method simply uses the data you
specify here to overwrite specific values in the BCNode object, and create a new constraint for each
entry in the arrays.
Example:
None
API-1471

5.13 BCSet Objects


BCSet objects correspond to the constraint sets in your model. They are derived from Entity
objects, so in addition to the properties and methods described here, all of the properties and meth-
ods defined for Entity objects are also available for constraint sets. For more information, see Sec-
tion 5.1, "Common Entity Properties and Methods".
Use the feBCSet method of the FEMAP Application object to create BCSet objects.

5.13.1 BCSet Object Properties


BCSets are always stored with a SetID=1, and the ID equal to the constraint set ID.
BCSet objects are really simply placeholders for global data for the constraint set. The actual con-
straints are defined in other objects.

Property Description
STRING title Constraint set title (maximum 79 characters).
BOOL IsCombination This is a Nastran SPCADD/MPCADD combination set if True.
API-1472 Expand

5.13.2 BCSet Object Methods


5.13.2.1 Expand

Expand
( void )
Description:
This method expands all of the geometric constraints in a selected constraint set.
Input:
None
Output:
None
Return Code:
FE_FAIL The specified expansion did not work.
Remarks/Usage:
This method takes the current constraint set object (uses the ID), and expands all of the geometric con-
straints in that set, so that they may be retrieved as normal mesh-based constraints. If you are using
advanced geometric constraints (not just fixed and/or pinned), the resulting nodal output coordinate sys-
tems, and expanded constraints may depend on the sets you choose to expand. Expanding one set at a
time may not yield the result that you expect.

NOTE: This method only works with BCSets after they have been stored in the model database. If you
are creating a new BCSet, only call this method after you have called Put().
Example:
None
Compress API-1473

5.13.2.2 Compress

Compress
( void )
Description:
This method compresses all of the geometric constraints in a selected constraint set.
Input:
None
Output:
None
Return Code:
FE_FAIL The specified compression did not work.
Remarks/Usage:
This method takes the current constraint set object (uses the ID), and compresses (deletes) any expanded
constraints. You are left with the unexpanded geometric constraints.

NOTE: This method only works with BCSets after they have been stored in the model database. If you
are creating a new BCSet, only call this method after you have called Put().
Example:
None
API-1474 ResetNextBC

5.13.2.3 ResetNextBC

ResetNextBC
( enDataType, bOtherBCOnly, bIncludeExpanded )
Description:
This method initializes all options prior to calling the NextBC method below
Input:
The type of constraint entities to be retrieved. For entity information,
INT4 enDataType see Section 3.3.6, "Entity Types". Can be FT_BCO, FT_BCO_-
GEOM, or FT_BEQ.
If true, then only constraints that are not part of a constraint defini-
BOOL bOtherBCOnly
tion will be retrieved. Otherwise all are available.
If True, expanded geometric constraints (if any) will be returned
BOOL bIncludeExpanded along with normal constraints. Ignored if enDataType =
FT_BCO_GEOM.
Output:
None
Return Code:
FE_OK
Remarks/Usage:
This method is used prior to calling NextBC to specify which constraints will be retrieved. It also resets
this object so that the next call to NextBC will return the first constraint available in the object.
Example:
NextBC API-1475

5.13.2.4 NextBC

NextBC
( pBC )
Description:
This method returns the next available constraint that matches the criteria established by ResetNextBC
Input:
The next constraint object. Depending on the options specified, this
OBJECT pBC
could be a BCNode, BCGeom or BCEqn object
Output:
None
Return Code:
FE_BAD_DATA The data type that you are trying to retrieve is invalid.
There are no more constraints of the specified type to retrieve. Call
FE_FAIL ResetNextBC to go back to the first constraint, if you want to retrieve
the constraints again.
Remarks/Usage:
This method, coupled with ResetNextBC provides an easy way to retrieve all constraints from a Con-
straint Set.
Example:
This example loops through all constraint sets retrieving all
BCNode objects. For each it displays a message box.
Sub Main
Dim App As femap.model
Set App = GetObject(,"femap.model")
Dim bs As femap.BCSet
Set bs = App.feBCSet

Dim b As femap.BCNode

While bs.Next()
bs.ResetNextBC( FT_BCO, False, False )
While bs.NextBC( b )
MsgBox(Str$(b.setID)+""+Str$(b.ID) )
Wend
Wend
End Sub
API-1476 ResetNextBCDef

5.13.2.5 ResetNextBCDef

ResetNextBCDef
( bAllDataTypes, enDataType )
Description:
This method initializes all options prior to calling the NextBCDef method below
Input:
Used to limit the type of constraint definitions to be retrieved. If
True, all selected constraint definitions will be returned. If False,
BOOL bAllDataTypes
only constraint definitions that contain constraints of the type speci-
fied in enDataType will be returned.
The type of constraint entities to be retrieved. For entity information,
INT4 enDataType see Section 3.3.6, "Entity Types". Can be FT_BCO, FT_BCO_-
GEOM, or FT_BEQ.
Output:
None
Return Code:
FE_OK
Remarks/Usage:
This method is used prior to calling NextBCDef to specify which constraint definitions will be
retrieved. It also resets this object so that the next call to NextBCDef will return the first constraint defi-
nition available in the object.
Example:
NextBCDef API-1477

5.13.2.6 NextBCDef

NextBCDef
( pBC )
Description:
This method returns the next available constraint definition that matches the criteria established by
ResetNextBCDef
Input:
The next constraint definition object. This is always a BCDefinition
OBJECT pBC
object.
Output:
None
Return Code:
There are no more constraint definitions of the specified type to
FE_FAIL retrieve. Call ResetNextBCDef to go back to the first constraint defi-
nition, if you want to retrieve the constraints again.
Remarks/Usage:
This method, coupled with ResetNextBCDef provides an easy way to retrieve all constraint definitions
from a Constraint Set.
Example:
This example loops through all constraint sets retrieving all
nodal BCDefinition objects, then loops through each
BCDefinition to retrieve the individual constraints. For each
it displays a message box.
Sub Main
Dim App As femap.model
Set App = GetObject(,"femap.model")
Dim bs As femap.BCSet
Set bs = App.feBCSet
Dim bd As femap.BCDefinition
Dim b As femap.BCNode
While bs.Next()
bs.ResetNextBCDef( False, FT_BCO )
While bs.NextBCDef( bd )
MsgBox( "BC Set"+Str$(bd.setID)+" BC Def"+Str$(bd.ID))
While bd.NextBC( b )
MsgBox( "BC On Node "+Str$(b.ID) )
Wend
Wend
Wend
End Sub
API-1478 GetCombination

5.13.2.7 GetCombination

GetCombination
( nCombo, nSetID )
Description:
This method returns the data for a Nastran SPCADD/MPCADD Combination Set.
Input:
None
Output:
INT4 nCombo Number of entries in the combination.
INT4 nSetID [0..count-1] The IDs of the constraint sets in the combination.
Return Code:
FE_BAD_TYPE This is not a Combination Constraint Set.
FE_NOT_AVAILABLE No constraint sets are in the Combination.
Remarks/Usage:
None
Example:
None
PutCombination API-1479

5.13.2.8 PutCombination

PutCombination
( nCombo, nSetID )
Description:
This method sets the data in a Nastran SPCADD/MPCADD Combination Set.
Input:
INT4 nCombo Number of entries in the combination.
INT4 nSetID[0..count-1] The IDs of the constraint sets in the combination.
Output:
None
Return Code:
FE_NOT_EXIST One or more Combined Constraint Sets specified do not exist.
Remarks/Usage:

Example:
None
API-1480

5.14 Chart Objects


Chart objects correspond to the charts in Charting pane. They are derived from Entity objects, so in
addition to the properties and methods described here, all of the properties and methods defined
for Entity objects are also available for chart objects. For more information, see Section 5.1,
"Common Entity Properties and Methods".
Use the feChart method of the FEMAP Application object to create Chart objects.

5.14.1 Chart Object Properties


Charts are always stored with a SetID=1, and the ID equal to the Chart ID.
In this table, you will see some properties that list two names - one of which is an array, the other a
Variant. Refer to Section 1.2.7, "Multiple Definitions of Array Properties" for more information.

Property Description
INT4 Style Chart Style: 0=Point, 1=Line, 2=Line-Fast, 3=Line-Step,
4=Area, 5=Area-Step
STRING Title The Chart Title
BOOL TitleVisible Controls Chart Title visibility
INT4 TitleLocation Chart Title Location: 0=Top, 1=Left, 2=Right, 3=Bottom
INT4 TitleJustification Chart Title Justification: 0=Left, 1=Center, 2=Right
REAL8 TitleFontSize Title Font Size
BOOL TitleFontBold Controls if Font is Bold in Chart Title (TRUE=Bold)
BOOL TitleFontItalic Controls if Font is Italic in Chart Title (TRUE=Italic)
BOOL TitleFontUnderline Controls if Font is Underlined in Chart Title
(TRUE=underline)
INT4 TitleFontColor Controls Chart Title Font Color
STRING Font Controls overall Font for the Chart. Controls Title, Axis
Titles, and Axis Labels
INT4 Palette Chart Palette: 0=FEMAP, 1=Gray, 2=Office, 3=Vibrant,
4=Blue, 5=Brown, 6=Green, 7=Red
BOOL PaletteFromChart When TRUE, all Data Series use Chart Palette Colors.
When FALSE, Data Series colors controlled by individual
Data Series
BOOL DarkBackground When TRUE, Chart switches to have a Dark Background
BOOL LegendVisible Controls Chart Legend visibility
API-1481

Property Description
INT4 LegendLocation [0..1] Chart Legend Location
[0] = Vertical Location - 0= Top Outside, 1=Top, 2=Cen-
VARIANT vLegendLocation ter, 3=Bottom, 4=Bottom Outside
[1] = Horizontal Location - 0= Left Outside, 1=Left,
2=Center, 3=Right, 4=Right Outside
INT4 LegendDirection Chart Legend Direction: 0=Top to Bottom, 1=Left to
Right
REAL8 LegendFontSize Font size for legend labels. Must be greater than 0.0
BOOL AxisAutoscale[0..1] Controls if Autoscale is on for an Axis (TRUE=On)
or [0]=X Axis
VARIANT vAxisAutoscale [1]=YAxis
INT4 AxisStyle[0..1] Controls Axis Style. 0=Linear, 1=Logarithmic
or [0]=X Axis
VARIANT vAxisStyle [1]=YAxis
REAL8 AxisRange[0..1][0..1] Controls minimum and maximum values for each axis
or [0][0]=X Axis, minimum [0][1] =X Axis, maximum
VARIANT vAxisRange [1][0]=Y Axis, minimum [1][1] =Y Axis, maximum
BOOL AxisRangePad[0..1] Controls autoscale padding for axis
or [0]=X Axis
VARIANT vAxisRangePad [1]=YAxis
BOOL AxisVisible[0..1] Controls if an Axis is visible (TRUE=On)
or [0]=X Axis
VARIANT vAxisVisible [1]=YAxis
BOOL AxisMajorGridlineVisible[0..1] Controls if major grid lines on an Axis are visible
or (TRUE=On)
VARIANT vAxisMajorGridlineVisible [0]=X Axis
[1]=YAxis
REAL8 AxisMajorInterval[0..1] Sets the interval value for major grid lines on an axis.
or [0]=X Axis
VARIANT vAxisMajorInterval [1]=YAxis
BOOL AxisMajorTickmarkVisible[0..1] Controls if major grid line tick marks are visible on an axis
or (TRUE=On)
VARIANT vAxisMajorTickmarkVisible [0]=X Axis
[1]=YAxis
INT4 AxisMajorColor Controls Major Grid Line Color
BOOL AxisMajorColorAutoDim Controls Dim for Dark Backgrounds option (TRUE=On)
API-1482

Property Description
BOOL AxisMinorGridlineVisible[0..1] Controls if minor grid lines on an Axis are visible
or (TRUE=On) The major grid lines must be on for the minor
VARIANT vAxisMinorGridlineVisible grid lines to be visible.
[0]=X Axis
[1]=YAxis
INT4 AxisMinorCount[0..1] Sets the value for number of minor grid lines between each
or major grid line on an axis for linear scale.
VARIANT vAxisMinorCount [0]=X Axis
[1]=YAxis
INT4 AxisMinorCountLog[0..1] Sets the value for number of minor grid lines between each
or major grid line on an axis for logarithmic scale.
VARIANT vAxisMinorCountLog [0]=X Axis
[1]=YAxis
BOOL AxisMinorTickmarkVisible[0..1] Controls if minor grid line tick marks are visible on an
or axis (TRUE=On).
VARIANT vAxisMinorTickmarkVisible [0]=X Axis
[1]=YAxis
BOOL AxisZoom[0..1] Controls Allow Zooming option for an axis. TRUE =
or Allow Zooming on, FALSE = Allow Zooming Off.
VARIANT vAxisZoom [0]=X Axis
[1]=YAxis
STRING AxisTitleX Title of X Axis
STRING AxisTitleY Title of Y Axis
BOOL AxisTitleVisible[0..1] Controls visibility of Axis Title
or [0]=X Axis
VARIANT vAxisTitleVisible [1]=YAxis
INT4 AxisTitleJustification[0..1] Axis Title Justification: 0=Left, 1=Center, 2=Right
or [0]=X Axis
VARIANT vAxisTitleJustification [1]=YAxis
INT4 AxisTitleFontSize[0..1] Axis Title Font Size
or [0]=X Axis
VARIANT vAxisTitleFontSize [1]=YAxis
BOOL AxisTitleFontBold Controls if Font is Bold in Axis Title (TRUE=Bold)
or [0]=X Axis
VARIANT vAxisTitleFontBold [1]=YAxis
BOOL AxisTitleFontItalic Controls if Font is Italic in Axis Title (TRUE=Italic)
or [0]=X Axis
VARIANT vAxisTitleFontItalic [1]=YAxis
API-1483

Property Description
BOOL AxisTitleFontUnderline Controls if Font is Underlined in Axis Title
or (TRUE=underline)
VARIANT vAxisTitleFontUnderline [0]=X Axis
[1]=YAxis
INT4 AxisTitleFontColor Controls Axis Title Font Color
or [0]=X Axis
VARIANT vAxisTitleFontColor [1]=YAxis
INT4 AxisLabelDecimal[0..1] Controls number of digits after the decimal point. Set to -1
or for automatic mode
VARIANT vAxisLabelDecimal [0]=X Axis
[1]=YAxis
INT4 AxisLabelFormat[0..1] Controls Label Format on an axis. 0=Standard, 1=Scien-
or tific, 2=Percentage
VARIANT vAxisLabelFormat [0]=X Axis
[1]=YAxis
REAL8 AxisValueFontSize Font size for axis value labels. Must be greater than 0.0
BOOL MarkerFromChart When TRUE, overrides all data series marker settings and
uses only chart marker settings
BOOL MarkerVisible Controls visibility of Data Series Markers being controlled
by the Chart (MarkerFromChart = TRUE). When chart
style is set to FCH_STYLE_LINEFAST, markers are
unavailable and this setting is ignored
INT4 MarkerSize Data Series Marker size, 1 to 10
INT4 MarkerStyle Data Series Marker style. 0=Circle, 1=Square, 2=Dia-
mond, 3=Triangle, 4=Pentagon, 5=Hexagon, 6=Star
BOOL LabelFromChart When TRUE, overrides all data series label settings and
uses only chart marker settings
BOOL LabelVisible Controls visibility of Data Series Labels being controlled
by the Chart (LabelFromChart = TRUE). When chart style
is set to FCH_STYLE_LINEFAST, labels are unavailable
and this setting is ignored
REAL8 LabelFontSize Font size for point labels. Must be greater than 0.0
BOOL ShowLabelX Show X value on label (TRUE=ON). Also used to control
value shown in Tooltip labels
BOOL ShowLabelY Show Y value on label (TRUE=ON). Also used to control
value shown in Tooltip labels
API-1484

Property Description
BOOL ShowLabelMaxMin Show data series max/min values only.
ShowLabelX = TRUE, ShowLabelY = TRUE - XY data
shown at data series max/min Y values
ShowLabelX = TRUE, ShowLabelY = FALSE - X data
shown at data series max/min X values
ShowLabelX = FALSE, ShowLabelY = TRUE - Y data
shown at data series max/min Y values
BOOL OutputSetInherit Use output set / vector data specified on the Chart Data
Series (TRUE = Inherit from Data Series). Only for XY vs
ID, XY vs Set, XY vs Set Value, and XY vs Position)
BOOL OutputSet Output Set ID. Only used when OutputSetInherit =
FALSE. When using Type = XY vs ID or XY vs Position,
sets output set. When using Type = XY vs. Set or XY vs.
Set Value, sets the Start Output Set
BOOL OutputSetEnd Ending Output Set ID. Only used when OutputSetInherit =
FALSE. When using Type = XY vs. Set or XY vs. Set
Value, sets the End Output Set
BOOL OutputSetAll For XY vs Set and XY vs Set Value only. When TRUE, all
output sets in the model will be used when plotting. Only
used when OutputSetInherit = FALSE.
AddDataSeries API-1485

5.14.2 Chart Object Methods


5.14.2.1 AddDataSeries

AddDataSeries
( SetID )
Description:
Adds one or more Data Series to the Chart
Input:
ID of set containing Data Series IDs to add. When value is negative,
INT4 SetID
ID of Data Series to add
Output:
None
Return Code:
When value of SetID is negative, FE_NOT_EXIST is returned if the
FE_NOT_EXIST
Data Series does not exist
Remarks/Usage:
None.
Example:
None
API-1486 RemoveDataSeries

5.14.2.2 RemoveDataSeries

RemoveDataSeries
( SetID )
Description:
Removes one or more Data Series from the Chart
Input:
ID of set containing data series IDs to Remove. When value is nega-
INT4 SetID
tive, ID of data series to remove
Output:
None
Return Code:
None
Remarks/Usage:
None
Example:
None
GetDataSeries API-1487

5.14.2.3 GetDataSeries

GetDataSeries
( numDS, dsID )
Description:
Returns an array of Data Series displayed on the Chart
Input:
None
Output:
INT4 numDS Number of Data Series on Chart
INT4 dsID[0..numDS-1] Data Series IDs
Return Code:
None
Remarks/Usage:
None
Example:
None
API-1488 ShowPane

5.14.2.4 ShowPane

ShowPane
( void )
Description:
Displays the Chart in the Charting pane
Input:
None
Output:
None
Return Code:
FE_FAIL Charting pane is not displayed
Remarks/Usage:
The charting pane will display the chart as it exists in memory at the time this method is called. Any
subsequent changes to the chart object will not be displayed.
Example:
None
ShowPane API-1489
API-1490

5.15 Chart Data Series Objects


Chart Data Series objects correspond to Data Series objects which are displayed in the Charting
pane. They are derived from Entity objects, so in addition to the properties and methods described
here, all of the properties and methods defined for Entity objects are also available for chart
objects. For more information, see Section 5.1, "Common Entity Properties and Methods".
Use the feChartSeries method of the FEMAP Application object to create Chart objects.

5.15.1 Chart Data Series Object Properties


Chart Data Series are always stored with a SetID=1, and the ID equal to the Data Series ID.
In this table, you will see some properties that list two names - one of which is an array, the other a
Variant. Refer to Section 1.2.7, "Multiple Definitions of Array Properties" for more information.

Property Description
STRING Title Data Series title
INT4 SeriesType Data Series type. 0=XY vs. ID, 1=XY vs. Set, 2=XY vs.
Set Value, 3=XY vs. Position, 4=XY of Function, 7=Vec-
tor vs. Vector
INT4 OutputSet Output Set ID for SeriesType = XY vs. ID or XY vs. Posi-
tion. Starting Output Set ID for XY vs. Set or XY vs. Set
Value (only used when OuptutSetAll = False)
INT4 OutputSetEnd Ending Output Set ID for XY vs. Set or XY vs. Set Value
(only used when OuptutSetAll = False)
INT4 OutputSetAll When TRUE, all output sets in the model are used for
SeriesType = XY vs. Set or XY vs. Set Value.
INT4 OutputVector Output Vector ID or Independent Output Vector ID for
Vector vs. Vector.
INT4 OutputVector2 Dependent Output Vector ID for Vector vs. Vector.
INT4 Interval Interval for limiting retrieval of data when using XY vs
Set or XY vs Set Value. Regardless of the interval set, the
Start and End Output Sets are always included
INT4 FunctionID ID of Function for SeriesType = XY of Function
INT4 Group ID of Group (optional) for SeriesType = XY vs. ID or XY
vs. Position
INT4 Position Component of Position for SeriesType = XY vs. Position.
0=X, 1=Y, 2=Z
INT4 PositionCoordSys Coordinate System ID for SeriesType = XY vs. Position.
API-1491

Property Description
INT4 Location SeriesType = XY vs. Set or XY vs. Set Value: Location to
obtain data. Value must be a valid Node or Element ID and
correspond with selected OutputVector.
SeriesType = Vector vs. Vector: Independent entity loca-
tion.
SeriesType = Vector vs. Entity: Node ID of Relative to
Node. Value must be a valid Node ID.
INT4 Location2 Dependent entity location for Vector vs. Vector.
REAL8 Scale Scale factor applied to all values in an individual Data
Series
BOOL SortData When TRUE, use Sort Data option in Vector vs. Vector
BOOL ColorInherit When TRUE, use Palette colors from the Chart
INT4 Color When ColorInherit = FALSE, sets color of individual Data
Series
BOOL MarkerInherit When TRUE, use Marker settings from the Chart
BOOL MarkerVisible When MarkerInherit = FALSE, controls visibility of mark-
ers for individual Data Series.
INT4 MarkerStyle When MarkerInherit = FALSE, controls style of markers
for individual Data Series.
INT4 MarkerSize When MarkerInherit = FALSE, controls size of markers
for individual Data Series.
BOOL LabelInherit When TRUE, use Label settings from the Chart
BOOL LabelVisible When LabelInherit = FALSE, setting this to TRUE will
display labels for individual Data Series.
BOOL ShowLabelX When LabelInherit = FALSE and LabelVisible = TRUE,
setting this to TRUE will display the X value in labels for
individual Data Series.
BOOL ShowLabelY When LabelInherit = FALSE and LabelVisible = TRUE,
setting this to TRUE will display the Y value in labels for
individual Data Series.
BOOL ShowLabelMaxMin When LabelInherit = FALSE and LabelVisible = TRUE,
setting this to TRUE will display only the Max/Min labels
based on selected X and Y components.
API-1492 GetXY

5.15.2 Chart Data Series Object Methods


5.15.2.1 GetXY

GetXY
( numPoints, xyValues, xRange, yRange )
Description:
Retrieves all XY values from Data Series
Input:
None
Output:
INT4 numPoints Number of points returned
VARIANT VARIANT xRange[0..1]
xyValues[0..2*numpoints-1]
VARIANT xRange[0..1] Min/Max X Values
VARIANT xRange[0..1] Min/Max Y Values
Return Code:
None
Remarks/Usage:
None.
Example:
None
CopyToClipboard API-1493

5.15.2.2 CopyToClipboard

CopyToClipboard
( void )
Description:
Copies all of the XY values to the clipboard
Input:
None
Output:
None
Return Code:
FE_FAIL Unable to copy to clipboard/no values to copy.
Remarks/Usage:
None
Example:
None
API-1494 CopyToClipboard
API-1495

5.16 Connection Property Objects


Connection Property objects correspond to the connection properties in your model. They are
derived from Entity objects so, in addition to the properties and methods described here, all of the
properties and methods defined for Entity objects are also available for Connection Property
objects. For more information, see Section 5.1, "Common Entity Properties and Methods".
Use the feConnectionProp method of the FEMAP Application object to create Connection Prop-
erty objects.

5.16.1 Connection Property Object Properties


Connection Properties are always stored with a SetID=1, and the ID equal to the connection prop-
erty ID.
In this table, you will see some properties that list two names - one of which is an array, the other a
Variant. Refer to Section 1.2.7, "Multiple Definitions of Array Properties" for more information.

Property Description
INT4 color The connection property color.
INT4 layer The layer associated with the connection property.
INT4 type Type of Connection, 0=Contact, 1=Glued.
STRING title Connection property title (maximum 79 characters).
BOOL flag[0..3]
or Array of connection property flags.
VARIANT vflag
INT4 flagI[0..3]
Array of connection property flags accessed as an INT4. Most
or
flags are simply true/false and can be accessed with flag( ).
VARIANT vflagI
REAL8 pval[0..399]
or Array of connection property values.
VARIANT vpval
INT4 plyval[0..1]
or Array of material IDs.
VARIANT vplyval
Additional Properties
INT4 plymat[0..1] Same as plyval, but returns/sets entire array as a VARIANT.
INT4 pmat[0..234] Same as pval, but returns/sets entire array as a VARIANT.

5.16.2 Accessing Connection Property Properties


You can access the individual properties for the Property object by referencing the properties
described above, and the data contained in the table below. For example, to retrieve the coefficient
of static friction in direction 1, use:
API-1496

mu = pr.pval(0)

This approach provides great flexibility, but can be slow if you are going to work with a large
number of properties. In this case it is best to access the data using Additional Properties. These
all set and return entire arrays of values in one reference. For example, you could write:
Dim pr as Object
Set pr = femap.feConnectionProp
Dim v as Variant
pr.Get(1)
v = pr.pmat
v(0)=0.3
v(1)=0.35
pr.pmat = v
pr.Put(1)

This code loads Connection Property 1, retrieves the entire array of real values into v, updates
the two coefficients of friction, puts the entire array back, and saves the updated Connection Prop-
erty definition. While the code is slightly longer than simply accessing the individual properties,
performance will be better using this approach.
API-1497

5.16.2.1 Connection Property Array Index Values


In general, most of the property data is simply stored in the various array properties. The location
of the specific property data is defined in the following table.

Property Values (continued)


CONTACT
Flags
0
1
Values
0 Static Friction 1
1 Static Friction 2
2 Dynamic Friction
3 Decay
4 Viscous
5 Damping
6
7
8
9
10
11
12
13
14
15 Abaqus Small Slide
16 Abaqus Hcrit
17 Abaqus Ext Zone
18 Abaqus Smoothing
19 Abaqus Tied
20 Abaqus Weight
API-1498

Property Values (continued)


CONTACT
21 Abaqus Thickness
22 Abaqus Slide Dist
23 Abaqus Friction Type
24 Abaqus Friction Value
25 Abaqus Max Shear
26 Abaqus Adjust
27 Abaqus Approach
28
29
30 Dyna Type
31 Dyna One Way
32 Dyna Offset
33 Dyna Penalty
34 Dyna Birth
35 Dyna Death
36 Dyna Scale Slave Penalty Stiffness
37 Dyna Scale Master Penalty Stiffness
38 Dyna Over Slave Thick
39 Dyna Over Master Thick
40 Dyna Scale Slave Thick
41 Dyna Scale Master Thick
42 Dyna Scale Coulomb Friction
43 Dyna Scale Viscous Friction
44 Dyna Out SF
45 Dyna Out MF
46 Dyna Rigid Func
47 Dyna Rigid Force
48 Dyna Rigid Unload
API-1499

Property Values (continued)


CONTACT
49 Dyna Tie Norm
50 Dyna Tie Shear
51 Dyna Tie Norm Exp
52 Dyna Tie Shear Exp
53 Dyna Tie Function
54 Dyna Erode Sym
55 Dyna Erode Node
56 Dyna Erode Solid
57 Dyna Constraint
58 Dyna Static Friction
59 Dyna Dynamic Friction
60 Dyna Exponential Decay
61 Dyna Viscous
62 Dyna Viscous Damping
...
65 Marc Tolerance
66 Marc Sep Force
67 Marc Inter
68 Marc Disp
69 Marc Friction
70 Marc Stick Vel
71 Marc Fr Stress
72 Marc Con Type
73 Marc Con Shell
74 Marc Tol Bias
75 Marc Beam
76 Marc Sep
77 Marc Sep Max
API-1500

Property Values (continued)


CONTACT
78 Marc Sep Stress
79 Marc Slip Coeff
80 Marc Slip F
81 Marc Slip Trans
82 Marc Rig Avg
83 Marc Rig Cutoff

100 Sinda Type


101 Sinda Coeff1
102 Sinda View
103 Sinda Coeff2
104 Sinda Cfunc1
105 Sinda Vfunc
106 Sinda Cfunc2
107 Sinda Cfunc3

115 Ansys Closure


116 Ansys Min Pen
117 Ansys Max Pen
118 Ansys Close Stiff
119 Ansys Open Stiff
120 Ansys Norm Tol
121 Ansys Pinball
122 Ansys Surf Off
123 Ansys Max Fric
124 Ansys Penalty Type
125 Ansys Node Cont
126 Ansys Unsym
API-1501

Property Values (continued)


CONTACT
127 Ansys No Spurious
128 Ansys Shell Thick
129 Ansys Cont Surf
130 Ansys Init Pen
131 Ansys Time Inc

135 NE/Nastran Scale Fact


136 NE/Nastran Fric Stiff
137 NE/Nastran Static Friction
138 NE/Nastran Pen Type

139 (9.2+) NE/Nastran Max Penetration

140 (9.2+) NE/Nastran Max Adjust Ratio

141 (9.2+) NE/Nastran Max Penetration Fraction

142 (9.2+)
NE/Nastran Penetration Surface Offset

143 (9.2+)
NE/Nastran Max Activation Distance

144 (9.2+)
NE/Nastran Max Activation Distance ( Automatic )
...
145 NX/Nas601 Type
146 NX/Nas601 NSide
147 NX/Nas601 Birth Time
148 NX/Nas601 Death Time
149 NX/Nas601 Initial Penetration
150 NX/Nas601 Penetration Depth
151 NX/Nas601 Segment Normal
152 NX/Nas601 Offset Type
153 NX/Nas601 Offset Distance
154 NX/Nas601 Initial Penetration Duration
155 NX/Nas601 Consistant Stiffness
API-1502

Property Values (continued)


CONTACT
156 NX/Nas601 Tied
157 NX/Nas601 Tied Tolerance
158 NX/Nas601 Surface Extention Factor
159 NX/Nas601 Friction Model
160 NX/Nas601 Friction Parameter 1
161 NX/Nas601 Friction Parameter 2
162 NX/Nas601 Friction Parameter 3
163 NX/Nas601 Friction Parameter 4
164 NX/Nas601 Friction Parameter 5
165 NX/Nas601 Eps N
166 NX/Nas601 Eps T
167 NX/Nas601 CFactor 1
168 NX/Nas601 Penetration Tolerance
169 NX/Nas601 Normal Modulus
170 NX/Nas601 Tangential Modulus
171 NX/Nas601 Tensile Freeing Force
172 NX/Nas601 Total Freeing Force

173 (9.3+)NX/Nas601 DISP

174 (9.3+)
NX/Nas601 GAPVAL
...

175 (9.1+)
NX/Nas101 Max Force Iterations

176 (9.1+) NX/Nas101 Max Status Iterations

177 (9.1+)
NX/Nas101 Normal Penalty Factor

178 (9.1+)
NX/Nas101 Tangential Penalty Factor

179 (9.1+)
NX/Nas101 Force Convergence Tolerance

180 (9.1+) NX/Nas101 Number of Allow Contact Changes

181 (9.1+) NX/Nas101 Contact Precentage


API-1503

Property Values (continued)


CONTACT

182 (9.1+) NX/Nas101 Shell Offset

183 (9.1+)
NX/Nas101 Contact Status

184 (9.1+)
NX/Nas101 Friction

185 (9.1+)
NX/Nas101 Min Contact Search Dist

186 (9.1+)
NX/Nas101 Max Contact Search Dist

187 (9.1+) NX/Nas101 Averaging Method

188 (9.1+) NX/Nas101 Initial Penetration

189 (9.2+)
NX/Nas101 Gluing Search Distance

190 (9.2+)
NX/Nas101 Gluing Penalty Factor

191 (9.3+) NX/Nas101 Gluing Zoffset

192 (9.3+) NX/Nas101 INTORD

193 (9.3+)
NX/Nas101 REFINE

194 (10.0+)
NX/Nas101 NCHG TYPE

195 (10.0+)
NX/Nas101 PENTYPE

196 (10.0+)
NX/Nas101 CSTRAT

197 (10.1+)
NX/Nas101 GLUETYPE

198 (10.1+) NX/Nas101 PENGLUE

199 (10.1+) NX/Nas101 PENAUTO


...

200 (9.2+)
NX/Nas701 Friction
(9.2+)
201 Marc Friction

202 (9.2+)
AnsyNX/Nas601s Friction

203 (10.0+)
NX/Nas601BOND_EXT

204 (10.0+)NX/Nas601SLIDVEL

205 (10.0+)
NX/Nas601OCHECK
API-1504

Property Values (continued)


CONTACT

206 (10.0+)NX/Nas601GAPBIAS

207 (10.0+)
NX/Nas601OFFDET

208 (10.0+)
NX/Nas601RTPCHECK

209 (10.0+)
NX/Nas601RTPMAX

210 (10.0+)
NX/Nas601FRICDLY

211 (10.0+)NX/Nas601TFORCE

212 (10.0+)NX/Nas701 SLIDVEL

213 (10.0+)
NX/Nas701 OFFDET

214 (10.0+)
NX/Nas701 GAPBIAS

215 (10.1+) NX/Nas101 PENADAPT

216 (10.1+)NX/Nas101 PENETFAC


(10.3+)Dyna A Soft Constraint
217
(10.3+)Dyna A Soft Constraint Scale Factor
218
(10.3+)Dyna A Airbag Load Curve ID
219
(10.3+)Dyna A Maximum Parametric Segment Search
220
(10.3+)Dyna A Segment Based Contact Options
221
(10.3+)Dyna A Search Depth
222
(10.3+)Dyna
A Number of Cycles Between Sorts (or Fre-
223
quency Curve IDx (-1))
(10.3+)
224 Dyna A Cycles Between Contact Force Updates
(10.3+)
225 Dyna B Maximum Penetration Distance
(10.3+)
226 Dyna B Thickness Option
(10.3+)
227 Dyna B Shell Thickness Considerations
(10.3+)
228 Dyna B Shooting Node Logic (0=Enabled)
(10.3+)
229 Dyna B Symmetry Plane (0=Off)
(10.3+)
Dyna B Primary Segment Searching Option (0=2D;
230
1=3D)
(10.3+)
231 Dyna B Solid Element Thickness
API-1505

Property Values (continued)


CONTACT
(10.3+)
232 Dyna B Solid Element Stiffness
(10.3+)
233 Dyna C Improve Implicit Convergence (1=On; 2=Off)
(10.3+)
234 Dyna C Ignore Initial Penetration Options
(10.3+)
Dyna C Penetration Depth Reduction Factor (or Time
235
Curve ID X(-1))
(10.3+)
236 Dyna C Stiffness Time Step (or Time Curve IDx (-1))
(10.3+)
237 Dyna C Angle Tolerance for Feature Line (radians)
(10.3+)
Dyna D Split Quadrilateral Contact Segments into 2 tri-
238
angles
(10.3+)
Dyna D Time Interval between Shell Penetration
239
Reports
(10.3+)Dyna D Scale Factor for Neighbor Segment Contact
240
(10.3+)DynaD Incremental Displacement Update for Tied
241
Contacts (1=On)
(10.3+)Dyna ABCD Level (0=Off, 1=A, 2=AB, 3=ABC,
242
4=ABCD)
(10.3+)
243 NE/Nastran Maximum Normal Activation Distance
(10.3+)
244 NE/Nastran Maximum Radial Activation Distance
(10.3+)
245 NE/Nastran Maximum Allowable Slip
(10.3+)
NE/Nastran MAXAD OR MAXNAD/MAXRAD tog-
246
gle

5.16.3 Connection Property Object Methods


There following methods are available in addition to the standard entity methods.
API-1506 SetDefaults

5.16.3.1 SetDefaults

SetDefaults
( ContactTolerance )
Description:
This method initializes default values for the connection property.
Input:
Specifies the Max Contact Search Distance for NX Nastran Linear
Contact, the Search Distance for NX Nastran Glued Contact, and
the Tied Tolerance for NX Nastran Advnaced Nonlinear Contact.
REAL8 ContactTolerance
If you specify 0, FEMAP will automatically calculate the value (10 x
model merge tolerance)
Output:
None
Return Code:
None
Remarks/Usage:
This is a simple method that allows default values to be placed into the object.
Example:
None
API-1507

5.17 Connection Region Objects


Connection Region objects correspond to the connection regions in your model (in earlier ver-
sions, they were called Contact Objects and Contact Segments). They are derived from Entity
objects, so in addition to the properties and methods described here, all of the properties and meth-
ods defined for Entity objects are also available for Connection Region objects. For more informa-
tion, see Section 5.1, "Common Entity Properties and Methods".
Use the feConnectionRegion method of the FEMAP Application object to create Connection
Region objects. For compatibility with earlier releases, you can also use feContact to create this
object, however this method is obsolete.

5.17.1 Connection Region Object Properties


Connection Regions are always stored with a SetID=1, and the ID equal to the region ID.
In this table, you will see some properties that list two names - one of which is an array, the other a
Variant. Refer to Section 1.2.7, "Multiple Definitions of Array Properties" for more information.

Property Description
INT4 color The connection region color.
INT4 layer The layer associated with the connection region.
STRING title The connection region title (maximum 79 characters).
INT4 refNode Reference node ID.
INT4 output Output on nodes(7) or elements(8).
BOOL rigid Flag to indicate rigid segment.
REAL8 box[0..1][0..2]
Locations at corners of contact box: box[0][xyz] is the mini-
or
mum dimension, box[1][xyz] is the maximum.
VARIANT vbox
INT4 count The number of items in the connection region contact list
INT4 type Type of Region (0=Normal/Contact, 1=Fluid, 2=Bolt, 3=Rotor)
INT4 refCSys Reference Coordinate System
REAL8 offset Region Offset Distance
Fluid Region Options
BOOL FluidZFreeOn True = Fluid Z Free Surface is On
REAL8 FluidZFree Z-Depth of Fluid Free Surface
REAL8 FluidDensity Density of Fluid
Symmetry Condition for XZ Plane (0=None, 1=Symmetric,
INT4 FluidXZSymmetry
2=Antisymmetric)
API-1508

Property Description
Symmetry Condition for YZ Plane (0=None, 1=Symmetric,
INT4 FluidYZSymmetry
2=Antisymmetric)
REAL8 FluidCharLength Fluid Characteristic Length
REAL8 FluidExactIntegFact Exact Integration factor for fluid
Rotor Region Options
INT4 RotorLoadSet ID of Load Set containing Rotational body loads to be applied
REAL8 RotorOverallDamp Frequency for Overall Damping (W3)
REAL8 RotorMatlDamp Frequency for Material Damping (W4)
REAL8 RotorSpeed Rotor speed (not currently used)
NonStructural Mass Region Options
The type of Nonstructural Mass Region 0=Mass per length,
INT4 MassType
1=mass per area, 2=total mass on length, 3=total mass on area
REAL8 MassNSM Nonstructural mass value
Bolt Region Options
INT4 BoltType Type of bolt 1=Beam 2=Solid
INT4 BoltDir Bolt Direction 1=X, 2=Y, 3=Z
GetContactList API-1509

5.17.2 Connection Region Object Methods


There following methods are available in addition to the standard entity methods.
5.17.2.1 GetContactList
GetContactList
( listcount, listTYPE, entityID, faceID, expanded )
Description:
This method retrieves information from the contact list in a connection region.
Input:
None
Output:
INT4 listcount The number of entries in the other arrays.
The type of entity in each list entry. Refer to Section 3.3.6, "Entity
INT4 listTYPE[0..N]
Types" for a list of types.
INT4 entityID[0..N] The ID of the entity in each list entry.
The ID of the entity face in each list entry (if applicable).
INT4 faceID[0..N]
For elements, this represents element face, while for curves and sur-
faces, 1=Positive Side, 2=Negative Side.
Flag indicating that this is an expanded node/element entry from a
INT4 expanded[0..N]
geometry contact.
Return Code:
FE_NOT_EXIST There are no entries in the list.
Remarks/Usage:
This method simply retrieves the information about the contact lists from the current object. You must
first load that data - either using the Get( ) method, or by loading it yourself with PutContactList( ).
Example:
None
API-1510 PutContactList

5.17.2.2 PutContactList

PutContactList
( listcount, listTYPE, entityID, faceID, expanded )
Description:
This method loads information into the contact list for a connection region.
Input:
INT4 listcount The number of entries in the other arrays.
The type of entity specified in each entry. Refer to Section 3.3.6,
INT4 listTYPE[0..N]
"Entity Types" for a list of types.
INT4 entityID[0..N] The ID of the entity specified in each entry.
The ID of the face referenced by each entry (if applicable).
INT4 faceID[0..N]
For elements, this represents element face, while for curves and sur-
faces, 1=Positive Side, 2=Negative Side.
Flag indicating whether each entry is an expanded node/element
INT4 expanded[0..N]
entry from a geometric contact.
Output:
None
Return Code:
None
Remarks/Usage:
This method stores information into the list of the current object. Any previous list information in that
object is lost. This method does not store that information to the model database. After using this func-
tion, you must call Put( ) if you want to store the updated list in the database.
Example:
None
GetEntities API-1511

5.17.2.3 GetEntities
GetEntities
( entityTYPE, bGetExpanded )
Description:
This retrieves a set that contains all of the entities of a given type referenced by the region.
Input:
The type of entity that you want to select. Refer to Section 3.3.6,
INT4 entityTYPE
"Entity Types" for a list of types.
If True, the region is first expanded - any selected geometric entities
BOOL bGetExpanded
will also select associated nodes or elements.
Output:
None
Return Code:
None
Remarks/Usage:
None
Example:
This method must be used with a Set statement to define the Set object.

Dim App As femap.model
Set App = GetObject(,"femap.model")

Dim regn As femap.ConnectionRegion
Set regn = App.feConnectionRegion

Dim s As Object

regn.Get(1)
Set s = regn.GetEntities( FT_ELEM, True )

This sequence creates the s Set object with the list of elements that are referenced by Region 1.
API-1512 AddContact

5.17.2.4 AddContact

AddContact
( listTYPE, entityID, faceID )
Description:
This method loads information into the contact list for a connection region. Unlike PutContactList, this
method loads one entry at a time
Input:
The type of entity to be added. Refer to Section 3.3.6, "Entity Types"
INT4 listTYPE
for a list of types.
INT4 entityID The ID of the entity specified
The ID of the face referenced by each entity (if applicable).
INT4 faceID
For elements, this represents element face, while for curves and sur-
faces, 1=Positive Side, 2=Negative Side.
Output:
None
Return Code:
None
Remarks/Usage:
This method stores information into the list of the current object. After using this function, you must call
Put( ) if you want to store the updated list in the database.
Example:
None
SetOutputType API-1513

5.17.2.5 SetOutputType

SetOutputType
( entityTYPE )
Description:
This method sets the output type for the connection region.
Input:
The type of entity for output. Refer to Section 3.3.6, "Entity Types"
INT4 entityTYPE
for a list of types.
Output:
None
Return Code:
None
Remarks/Usage:
None
Example:
None
API-1514 SetOffset

5.17.2.6 SetOffset

SetOffset
( offset )
Description:
This method sets the offset for the connection region.
Input:
REAL8 offset The value of the region offset.
Output:
None
Return Code:
None
Remarks/Usage:
None
Example:
None
GetOffset API-1515

5.17.2.7 GetOffset

GetOffset
( offset )
Description:
This method returns the offset for the connection region.
Input:
None
Output:
REAL8 offset The value of the region offset.
Return Code:
None
Remarks/Usage:
None
Example:
None
API-1516 SetRigidType

5.17.2.8 SetRigidType

SetRigidType
( offset )
Description:
This method defines whether a connection region is rigid.
Input:
BOOLEAN isRigid Set to True for a rigid region, False otherwise
Output:
None
Return Code:
None
Remarks/Usage:
None
Example:
None
IsRigidType API-1517

5.17.2.9 IsRigidType

IsRigidType
( void )
Description:
This method indicates whether a connection region is rigid.
Input:
None
Output:
None
Return Code:
FE_FAIL Region is not rigid ( FE_OK = Rigid )
Remarks/Usage:
None
Example:
None
API-1518 Expand

5.17.2.10 Expand

Expand
( void )
Description:
This method expands all of the geometric connection regions in the model.
Input:
None
Output:
None
Return Code:
FE_FAIL The specified expansion did not work.
Remarks/Usage:
This method expands all connection regions, not just the one in the current object.
Example:
None
Compress API-1519

5.17.2.11 Compress

Compress
( void )
Description:
This method compresses all of the geometric connection regions in the model.
Input:
None
Output:
None
Return Code:
FE_FAIL The specified compression did not work.
Remarks/Usage:
This method compresses all connection regions, not just the one loaded into the current object.
Example:
None
API-1520 Clear

5.17.2.12 Clear

Clear
( void )
Description:
This method clears and resets the contents of the connection region
Input:
None
Output:
None
Return Code:
None
Remarks/Usage:
None
Example:
None
Reverse API-1521

5.17.2.13 Reverse

Reverse
( void )
Description:
This method reverses the direction of the connection region.
Input:
None
Output:
None
Return Code:
None
Remarks/Usage:
None
Example:
None
API-1522 Enable

5.17.2.14 Enable

Enable
( bEnable )
Description:
This method is used to enable or disable Fluid, Bolt or Rotor connection region.
Input:
BOOL bEnable Flag to set the state of the connection region.
Output:
None
Return Code:
FE_FAIL Region is not proper type.
Remarks/Usage:
None
Example:
None
IsEnabled API-1523

5.17.2.15 IsEnabled

IsEnabled
( void )
Description:
This method checks the state of the connection region.
Input:
None
Output:
None
Return Code:
FE_FAIL Region is disabled.
FE_OK Region is enabled.
Remarks/Usage:
None
Example:
None
API-1524 BoundingBox

5.17.2.16 BoundingBox

BoundingBox
( Box )
Description:
This method returns the coordinates of a rectangular box that encloses a connection region.
Input:
None
Output:
The dimensions of the bounding box, in Global Rectangular coordi-
nates.
REAL8 Box[0..5] Box[0] - Minimum X, Box[3] - Maximum X
Box[1] - Minimum Y, Box[4] - Maximum Y
Box[2] - Minimum Z, Box[5] - Maximum Z
Return Code:
FE_FAIL Unable to find a bounding box.
Remarks/Usage:
This method always retrieves a box that is aligned with Global Rectangular coordinates, not an aligned
box of minimum volume.
Example:
None
IsEmpty API-1525

5.17.2.17 IsEmpty

IsEmpty
( void )
Description:
This method checks if a connection region has no entities selected, thus is empty.
Input:
None
Output:
None
Return Code:
FE_FAIL Region is not empty (i.e., has entities).
FE_OK Region is empty.
Remarks/Usage:
None
Example:
None
API-1526 IsEmpty
API-1527

5.18 Connection Objects


Connection objects correspond to the connections in your model. They are derived from Entity
objects, so, in addition to the properties and methods described here, all of the properties and
methods defined for Entity objects are also available for Connection objects. For more informa-
tion, see Section 5.1, "Common Entity Properties and Methods".
Use the feConnection method of the FEMAP Application object to create Connection objects.

5.18.1 Connection Object Properties


Connections are always stored with a SetID=1, and the ID equal to the connection ID.
In this table, you will see some properties that list two names - one of which is an array, the other a
Variant. Refer to Section 1.2.7, "Multiple Definitions of Array Properties" for more information.

Property Description
INT4 color The connection color.
INT4 layer The layer associated with the connection.
INT4 propID ID of the connection property referenced by the connection
STRING title The title of the connection (max 79 char)
INT4 contact[0..1]
or The IDs of the Master and Slave connection regions.
VARIANT vcontact
API-1528 Prop

5.18.2 Connection Object Methods


The following methods are available in addition to the standard entity methods.
5.18.2.1 Prop

Prop
( void )
Description:
This method creates and returns a Connection Property object that is loaded with the property data refer-
enced by a connection
Input:
None
Output:
None
Return Code:
None
Remarks/Usage:

Example:
None
Enable API-1529

5.18.2.2 Enable

Enable
( bEnable )
Description:
This method enables and disables connections
Input:
BOOL bEnable Enable connection if True, disables it if False
Output:
None
Return Code:
None
Remarks/Usage:
Enabled connections are translated for analysis, disabled ones are not.
Example:
None
API-1530 IsEnabled

5.18.2.3 IsEnabled

IsEnabled
( void )
Description:
This method indicates whether a connection is enabled
Input:
None
Output:
None
Return Code:
FE_FAIL Indicates connection is disabled (FE_OK if enabled)
Remarks/Usage:
None
Example:
None
BoundingBox API-1531

5.18.2.4 BoundingBox

BoundingBox
( Box )
Description:
This method returns the coordinates of a rectangular box that encloses a connector.
Input:
None
Output:
The dimensions of the bounding box, in Global Rectangular coordi-
nates.
REAL8 Box[0..5] Box[0] - Minimum X, Box[3] - Maximum X
Box[1] - Minimum Y, Box[4] - Maximum Y
Box[2] - Minimum Z, Box[5] - Maximum Z
Return Code:
FE_FAIL Unable to find a bounding box.
Remarks/Usage:
This method always retrieves a box that is aligned with Global Rectangular coordinates, not an aligned
box of minimum volume.
Example:
None
API-1532

5.19 CSys Objects


CSys objects correspond to the coordinate systems in your model. They are derived from Entity
objects, so in addition to the properties and methods described here, all of the properties and meth-
ods defined for Entity objects are also available for CSys objects. For more information, see Sec-
tion 5.1, "Common Entity Properties and Methods".
Use the feCSys method of the FEMAP Application object to create CSys objects.

5.19.1 CSys Object Properties


CSys are always stored with a SetID=1, and the ID equal to the coordinate system ID.
The predefined global coordinate systems cannot be accessed or modified using this object. There-
fore you must always specify an ID > 2.

Property Description
REAL8 x The coordinates of the origin of the coordinate system. They are
always specified in global rectangular coordinates.
REAL8 y
REAL8 z
REAL8 rotx The rotations, in degrees, of the coordinate system axes, from
the global coordinate axes. These are ordered rotations about X,
REAL8 roty then the rotated Y axis, then the doubly-rotated Z. No matter
REAL8 rotz what definition coordinate system is used, these are always rel-
ative to global coordinates.
INT4 layer The ID of the layer associated with the coordinate system.
INT4 color The coordinate system color.
INT4 type The coordinate system type: 0=Rectangular, 1=Cylindrical,
2=Spherical.
INT4 defCSys The ID of the definition coordinate system.
STRING title Coordinate system title (maximum 79 characters).
Additional Properties
Accesses all three coordinates of the origin as a Variant. Same
REAL8 origin[0..2]
as using x, y, and z independently.
Accesses all three components of the rotations as a Variant.
REAL8 rotation[0..2]
Same as using rotx, roty, and rotz independently.
The 3 x 3 direction cosine matrix that corresponds to the orien-
REAL8 matrix[0..8] tation of the coordinate system in global rectangular. The rows
of the array are stored sequentially.
XYPoints API-1533

5.19.2 CSys Object Methods


5.19.2.1 XYPoints

XYPoints
( origin, xaxis, xyplane )
Description:
This method automatically updates the origin and rotations of a coordinate system based on three loca-
tions that you specify
Input:
The origin of the coordinate system. This, and all other locations,
REAL8 origin[0..2]
must be specified in global rectangular coordinates.
REAL8 xaxis[0..2] The coordinates of a point along the X Axis of the coordinate system.
The coordinates of a point in the XY Plane of the coordinate system.
REAL8 xyplane[0..2]
This point does not need to lie along any of the coordinate axes.
Output:
None
Return Code:
The operation failed. You probably did not correctly specify one of
FE_FAIL
the coordinate locations
Remarks/Usage:
None
Example:
None
API-1534

5.20 Curve Objects


Curve objects correspond to the curves in your model. They are derived from Entity objects, so in
addition to the properties and methods described here, all of the properties and methods defined
for Entity objects are also available for curve objects. For more information, see Section 5.1,
"Common Entity Properties and Methods".
Use the feCurve method of the FEMAP Application object to create Curve objects.

5.20.1 Curve Object Properties


Curves are always stored with a SetID=1, and the ID equal to the Curve ID.
In this table, you will see some properties that list two names - one of which is an array, the other a
Variant. Refer to Section 1.2.7, "Multiple Definitions of Array Properties" for more information.

Property Description
INT4 layer The ID of the layer associated with the curve.
INT4 color The curve color.
INT4 type The curve type: 0=Line, 1=Arc, 2=Circle, 3=Spline,
4=BSpline, 5=Solid, 6=Combined.
INT4 StdPoint[0..4] The IDs of the points referenced by lines, arcs, circles, splines
or and solid lines.
VARIANT vStdPoint
INT4 attrPID The Property ID of the meshing attribute.
REAL8 attrOrient[0..2] The orientation vector meshing attribute. Either a location or
or vector (based on attrOffsetType), specified in global rectangu-
VARIANT vattrOrient lar coordinates.
The meshing attribute defining the offset to be applied to ele-
ments. attrOffset[0][0..2] is at the beginning of the curve,
REAL8 attrOffset[0..1][0..2]
attrOffset[1][0..2] is at the end. Specified in global rectangular
or
coordinates. If doing radial offsets, attrOffset[0][0..2] contains
VARIANT vattrOffset
the radial origin, attrOffset[1][0] contains the radial offset dis-
tance.
INT4 attrOrientType Type of orientation for property attribute: 0=Orient By Vector,
1=Orient By Location, 2=Orient By Vector, Reversed Element
Direction, 3=Orient By Location, Reversed Element Direction.
INT4 attrOffsetType Type of offset for property attribute: 0=Offset by Vector,
1=Offset Radial, 2=Offset by Location.
INT4 attrRelease[0..1][0..5] The release flags for the start and end of the curve. Nonzero if
or the associated degree of freedom is released.
VARIANT vattrRelease
INT4 Engine The ID of the solid modeling engine used with this curve:
0=None, 1=Parasolid, 2=ACIS.
API-1535

Property Description
INT4 Address The solid modeling engine geometry address.
BOOL Suppressed True if this curve is suppressed (will not be meshed).
INT4 InternalToBoundary If this curve is internal to a multi-surface boundary, this prop-
erty contains the ID of the boundary, otherwise 0.
INT4 InCombinedCurve If this curve is used to define a combined curve, this property
contains the ID of the combined curve, otherwise 0
REAL8 ScaleFactor The Solid Geometry Scale Factor
Mesh Sizing
INT4 MeshElem[0..159] The number of elements associated with the curve or this seg-
or ment of a custom mesh size.
VARIANT vMeshElem
REAL8 MeshBias[0..159] The bias factor for these elements.
or
VARIANT vMeshBias
REAL8 MeshMaxParam[0..159] The s parametric value along the curve at the end of this seg-
or ment. If you do not use a custom mesh size, this will always
VARIANT vMeshMaxParam have MeshMaxParam[0] = 1.0.
BOOL LengthSpacing[0..159] True if elements are sized with equal length spacing. False if
or parametric spacing is used.
VARIANT vLengthSpacing
BOOL CenterBias[0..159] True if center biasing is used. False if end biasing is used.
or
VARIANT vCenterBias
BOOL GeometricBias[0..159] True if geometric biasing is used. False if linear biasing is used.
or
VARIANT vGeometricBias
BOOL HasCustomMesh True if this is a custom mesh size, False otherwise.
For BSplines only
INT4 BSplineOrder The order of the BSpline.
INT4 BSplineNumPoints The number of keypoints used to define the BSpline.
INT4 BSplinePoint[0..109] The IDs of the points used to define the Bspline.
or
VARIANT vBSplinePoint
REAL8 BSplineKnot[0..120] The knot values associated with the BSpline.
or
VARIANT vBSplineKnot
API-1536

Property Description
REAL8 BSplineWeight[0..120] The weight values associated with the control points of the
or BSpline.
VARIANT vBSplineWeight
REAL8 BSplineT0
REAL8 BSplineT1
BOOL BSplinePlanar True if the BSpline is planar.
BOOL BSplineClosed True if the BSpline is closed.
BOOL BSplineRational True if the BSpline is rational.
BOOL BSplinePeriodic True if the BSpline is periodic.
API-1537

5.20.1.1 The Curve Types


If you look at the curve Type property, you will see a list of seven available types. In fact, these
seven types really comprise three categories: Standard Curves, BSplines and Solid Curves. Each
category stores its point definitions differently. The following table shows the point definition for
each curve type.

Curve Type Point Location Description


Line StdPoint [0]=start, [1]=end
Arc StdPoint [0]=center, [1]=start, [2]=along in direction from start to
end, [3]=end
Circle StdPoint [0]=center, [1]=start/end, [2]=90 deg., [3]=180 deg.,
[4]=270 deg.
Spline StdPoint [0]=start, [1]=first keypoint, [2]=second keypoint,
[3]=end
BSpline BSplinePoint [0]=start, ... [BSplineNumPoints-1]=end
Solid Points are not defined, unless this is a solid curve that rep-
resents a line, in which case [0]=start,[1]=end.
Combined StdPoint [0]=start, [1]=end
API-1538 Reverse

5.20.2 Curve Object Methods


5.20.2.1 Reverse

Reverse
( void )
Description:
This method reverses the direction of a curve.
Input:
None
Output:
None
Return Code:
FE_FAIL Unable to reverse the curve, probably a solid curve.
Remarks/Usage:
This method will not work for solid curves.
Example:
None
EndPoints API-1539

5.20.2.2 EndPoints

EndPoints
( startPt, endPt )
Description:
This method retrieves the IDs of the endpoints of the current curve.
Input:
None
Output:
INT4 startPt
The IDs of the starting and ending points on the curve.
INT4 endPt
Return Code:
Unable to get the endpoints. Possibly curve has not been loaded, or
FE_FAIL
not stored.
Remarks/Usage:
This method works for any stored curve. You must first call Get to load the curve from the database. It
will not work with data you have loaded into a curve object but not yet stored.
Example:
None
API-1540 PointsAsSet

5.20.2.3 PointsAsSet

PointsAsSet
( SetID, bClear)
Description:
This method adds the end points of a curve into the specified Set object with the option to clear the set
before adding the end points
Input:
INT4 SetID ID of Set object to add end points
If True, the Set object will be cleared before the end points are added.
BOOL bClear
If False, the end points are simply added to the specified Set object.
Output:
None
Return Code:
FE_FAIL End Points could not be determined
Remarks/Usage:
None
Example:
None
ArcCircleInfo API-1541

5.20.2.4 ArcCircleInfo

ArcCircleInfo
( center, normal, startPt, endPt, angle, radius )
Description:
This method retrieves information about arcs and circles.
Input:
None
Output:
REAL8 center[0..2] The coordinates of the center of the circle.
REAL8 normal[0..2] The vector components of the arc/circle normal direction.
REAL8 startPt[0..2] The coordinates of the starting point of the curve.
REAL8 endPt[0..2] The coordinates of the ending point of the curve.
REAL8 angle The subtended angle of the curve.
REAL8 radius The radius of the curve.
Return Code:
Unable to get the information. Possibly the curve has not been
FE_FAIL
loaded, or is not the correct type.
Remarks/Usage:
This method will only work for arc and circle curve types - not for solids that represent those types.
Example:
None
API-1542 ParamToXYZ

5.20.2.5 ParamToXYZ

ParamToXYZ
( s, xyz )
Description:
This method retrieves the coordinates along the curve of a specified parametric location.
Input:
REAL8 s The parametric value (0<=s<=1) along the curve. 0=Start, 1=End.
Output:
REAL8 xyz[0..2] The coordinates of the parametric value along the curve.
Return Code:
Unable to get the information. Possibly the curve has not been
FE_FAIL
loaded.
Remarks/Usage:
This method will only work for any curve type.
Example:
None
XYZToParam API-1543

5.20.2.6 XYZToParam

XYZToParam
( xyz, s )
Description:
This method retrieves the parametric location along a curve closest to the specified coordinates.
Input:
REAL8 xyz[0..2] The coordinates of the location of interest.
Output:
REAL8 s The parametric value (0<=s<=1) along the curve. 0=Start, 1=End.
Return Code:
Unable to get the information. Possibly the curve has not been
FE_FAIL
loaded.
Remarks/Usage:
This method will only work for any curve type.
Example:
None
API-1544 Project

5.20.2.7 Project

Project
( fromXYZ, toXYZ )
Description:
This method projects a location onto a curve (This method is OBSOLETE, use ProjectToClosest method
for access to all functionality of the Modify, Project... commands)
Input:
REAL8 fromXYZ[0..2] The coordinates of the initial location.
Output:
REAL8 toXYZ[0..2] The coordinates of the projected location.
Return Code:
Unable to get the information. Possibly the curve has not been
FE_FAIL
loaded.
Remarks/Usage:
This method will only work for any curve type.
Example:
None
ProjectToClosest API-1545

5.20.2.8 ProjectToClosest

ProjectToClosest
( bExtendCurve, vOrig, vProj )
Description:
This method projects a location to the closest location that lies on a curve (i.e., FEMAP determines vec-
tor used for projection)
Input:
If True, a straight curve will be extended infinitely in both directions
and a circular curve will be extended a full 360 degrees. The closest
location will then be determined using the extended curve (i.e., the
BOOL bExtendCurve projected location could lie outside the end points of the curve). If
False, the location will be forced onto the curve itself and in some
cases this will result in the location being coincident with one of the
curves end points.
REAL8 vOrig[0..2] The coordinates of the initial location.
Output:
REAL8vProj[0..2] The coordinates of the projected location.
Return Code:
Unable to get the information. Possibly the curve has not been
FE_FAIL
loaded.
Remarks/Usage:
This method will only work for any curve type.
Example:
None
API-1546 ProjectAlongVector

5.20.2.9 ProjectAlongVector

ProjectAlongVector
( vAlong, vOrig, vProj )
Description:
This method projects a location along a specified vector to a location that lies on a curve (i.e., user sup-
plies vector used for projection)
Input:
REAL8 vAlong [0..2] The vector supplied by the user to project along.
REAL8 vOrig [0..2] The coordinates of the initial location.
Output:
REAL8 vProj [0..2] The coordinates of the projected location, on the curve
Return Code:
Unable to get the information. Possibly the curve has not been
FE_FAIL
loaded.
Remarks/Usage:
None
Example:
None
Tangent API-1547

5.20.2.10 Tangent

Tangent
( outward, fromXYZ, tangent )
Description:
This method finds the tangent to a curve at a specified location.
Input:
If True, the tangent along the first half of the curve (s<0.5) is com-
BOOL outward puted in the opposite direction from the curve. If False, all tangents
are computed in the curve direction from start to end.
REAL8 fromXYZ[0..2] The coordinates of the initial location.
Output:
REAL8 tangent[0..2] The vector components of the tangent.
Return Code:
Unable to get the information. Possibly the curve has not been
FE_FAIL
loaded.
Remarks/Usage:
This method will only work for any curve type.
Example:
None
API-1548 Length

5.20.2.11 Length

Length
( void )
Description:
This method returns the length of a curve.
Input:
None
Output:
None
Return Code:
Length The length of the curve. 0.0 for any invalid curve.
Remarks/Usage:
This method will only work for any curve type.
Example:
None
PartialLength API-1549

5.20.2.12 PartialLength

PartialLength
( s0, s1 )
Description:
This method returns the length of a curve between two parametric locations.
Input:
REAL8 s0 The starting parametric location.
REAL8 s1 The ending parametric location.
Output:
None
Return Code:
Length The length of the curve. 0.0 for any invalid curve.
Remarks/Usage:
This method will only work for any curve type. The values for s0 and s1 must be between 0.0 and 1.0. s1
must be greater than s0.
Example:
None
API-1550 ParamAtLength

5.20.2.13 ParamAtLength

ParamAtLength
( fromstart, length )
Description:
This method returns the parameter value at a specified distance from the end of a curve.
Input:
If True, length is measured from the start of the curve. If False, it is
BOOL fromstart
measured from the end.
The distance along the curve where the parameter value is deter-
REAL8 length
mined.
Output:
None
Return Code:
S The parametric value corresponding to the location along the curve.
Remarks/Usage:
This method will only work for any curve type. The length must be less than the total length of the
curve.
Example:
None
MeshParam API-1551

5.20.2.14 MeshParam

MeshParam
( numParam, meshParam )
Description:
This method returns an array of parametric locations along the curve that are currently established as
mesh locations, based on the mesh size specifications that are defined.
Input:
INT4 numParam The number of parametric locations in meshParam.
REAL8 meshParam[0..numP- The parametric locations along the curve where nodes will be
aram-1] meshed.
Output:
None
Return Code:
Unable to determine the mesh locations. Possibly the curve has not
FE_FAIL
been loaded or saved.
Remarks/Usage:
This method will only work for any curve type. The curve must however be Put to the database after any
changes have been made to mesh sizing or this command may not return the proper locations.
Example:
API-1552 MeshParam

MeshParam
( numParam, meshParam )
Sub Main()
' This function creates nodes at mesh locations
' on all curves in the model

Dim App As femap.model
Set App = GetObject(, "femap.model")
Dim cu As Object
Set cu = App.feCurve
Dim nd As Object
Set nd = App.feNode
Dim rc As Long
Dim n As Long
Dim meshloc As Variant
Dim ndloc As Variant

' Loop over all curves
While cu.Next
' Get the mesh locations on the curves
rc = cu.MeshParam(n, meshloc)
If rc Then
For i = 0 To n - 1
' Find the nodal location and create a node
rc = cu.ParamToXYZ(meshloc(i), ndloc)
nd.xyz = ndloc
nd.Put (nd.NextEmptyID)
Next i
End If
Wend

App.feViewRegenerate(0)
End Sub
AddMeshLoc API-1553

5.20.2.15 AddMeshLoc

AddMeshLoc
( s, numElem, spacing, biasMethod, bias, biasLoc )
Description:
This method adds a custom mesh size location at the specified parametric location.
Input:
The parametric location along the curve - must be between 0.0 and
REAL8 s
1.0 - where the mesh location will be added.
The number of elements between this location and the preceding one
INT4 numElem
(at the next lower s value).
If 0, then parametric spacing is used; otherwise, constant length spac-
INT4 spacing
ing is used.
INT4 biasMethod 0=Equal length spacing, 1=Linear Bias, 2=Geometric Bias.
The bias value - greater than or equal to 1.0. A value of 1.0 is not
REAL8 bias biased. A value of 2.0 means that the largest element is approxi-
mately 2.0 times the length of the smallest.
0=Small elements at start of curve, 1=Small elements at end of
INT4 biasLoc curve, 2=Small elements at center of curve, 3=Small elements at
both ends of curve.
Output:
None
Return Code:
Unable to add the mesh location. Possibly the curve has not been
FE_FAIL loaded or saved. Possibly there are already too many locations
defined.
Remarks/Usage:
The curve should be loaded prior to using this method. This will always result in a custom mesh size
being defined for the curve. You must always Put the curve to the database after finishing for the mesh
locations to be saved. To redefine a mesh location, simply call this method again with the same value for
s.
Example:
None
API-1554 AddMeshLocXYZ

5.20.2.16 AddMeshLocXYZ

AddMeshLocXYZ
( xyz, numElem, spacing, biasMethod, bias, biasLoc )
Description:
This method adds a custom mesh size location at the specified coordinate location.
Input:
The coordinates of the location for the mesh location. Must be in
REAL8 xyz[0..2] global rectangular. These coordinates are projected onto the curve to
determine the corresponding parametric location.
The number of elements between this location and the preceding one
INT4 numElem
(at the next lower s value).
If 0, then parametric spacing is used. Otherwise, constant length
INT4 spacing
spacing is used.
INT4 biasMethod 0=Equal length spacing, 1=Linear Bias, 2=Geometric Bias.
The bias value - greater than or equal to 1.0. A value of 1.0 is not
REAL8 bias biased. A value of 2.0 means that the largest element is approxi-
mately 2.0 times the length of the smallest.
0=Small elements at start of curve, 1=Small elements at end of
INT4 biasLoc curve, 2=Small elements at center of curve, 3=Small elements at
both ends of curve.
Output:
None
Return Code:
Unable to add the mesh location. Possibly the curve has not been
FE_FAIL loaded or saved. Possibly there are already too many locations
defined.
Remarks/Usage:
This method is essentially the same as AddMeshLoc, except that it uses a coordinate location instead of
a parametric location.
Example:
None
Nodes API-1555

5.20.2.17 Nodes

Nodes
( getBoundary, getInterior, numNodes, nodeID )
Description:
This method returns the nodes that are attached to this curve
Input:
BOOL getBoundary If True, the nodes attached to the curve endpoints are selected
If True, the nodes attached to the interior of the curve (not the end-
BOOL getInterior
points) are selected
Output:
INT4 numNodes The number of nodes returned.
INT4 nodeID[0..numNodes-1] The IDs of the selected nodes which are attached to the curve.
Return Code:
FE_FAIL Unable to return nodes, possibly none exist.
FE_NOT_EXIST No nodes were attached to the curve in the manner you selected.
FE_NO_MEMORY Insufficient memory to allocate list of attached nodes.
Remarks/Usage:
None
Example:
API-1556 Nodes

Nodes
( getBoundary, getInterior, numNodes, nodeID )
The following codes modifies the color of all nodes on Curve 4.
Sub Main

Dim App As femap.model
Set App = GetObject(,"femap.model")

Dim cu As Curve
Set cu = App.feCurve
Dim nd As Object
Set nd = App.feNode
Dim rc As Long
Dim Count As Long
Dim Nodes As Variant
Dim i As Long

rc = cu.Get (4)
rc = cu.Nodes(True, True, Count, Nodes)

For i = 0 To Count - 1
nd.Get (Nodes(i))
nd.color = 4
nd.Put (0)
Next i

App.feViewRegenerate(0)
End Sub
NodesAsSet API-1557

5.20.2.18 NodesAsSet

NodesAsSet
( getBoundary, getInterior, nSetID, bClear )
Description:
This method returns the nodes that are attached to this curve in a Set Object
Input:
BOOL getBoundary If True, the nodes attached to the curve endpoints are selected
If True, the nodes attached to the interior of the curve (not the end-
BOOL getInterior
points) are selected
INT4 nSetID The ID of a Set Object to receive the Node IDs
BOOL bClear If True, the Set is cleared prior to loading the Node IDs
Output:
None
Return Code:
FE_FAIL Unable to return nodes, possibly none exist.
Remarks/Usage:
Same as Nodes, except that the IDs are returned in a Set Object rather than an array.
Example:
None
API-1558 Elements

5.20.2.19 Elements

Elements
( numElems, elemID )
Description:
This method returns the elements that are attached to this curve
Input:
None
Output:
INT4 numElems The number of elements returned.
INT4 elemID[0..numElems-1] The IDs of the selected elements which are attached to the curve.
Return Code:
FE_FAIL Unable to return elements, possibly none exist.
FE_NOT_EXIST No elements were attached to the curve in the manner you selected.
FE_NO_MEMORY Insufficient memory to allocate list of attached elements.
Remarks/Usage:
Only elements that have all of their nodes on the curve will be returned by this method. Elements that
simply touch the curve at one edge or one node will not be returned.
Example:
None
ElementsAsSet API-1559

5.20.2.20 ElementsAsSet

ElementsAsSet
( nSetID, bClear )
Description:
This method returns the elements that are attached to this curve in a Set Object
Input:
INT4 nSetID The ID of the Set Object that receives the Element IDs
BOOL bClear If True, the Set is cleared before it is loaded with Element IDs.
Output:
None
Return Code:
FE_FAIL Unable to return elements, possibly none exist.
Remarks/Usage:
Only elements that have all of their nodes on the curve will be returned by this method. Elements that
simply touch the curve at one edge or one node will not be returned. Same as Elements method except
that IDs are returned in a Set rather than an array.
Example:
None
API-1560 ElementsWithFaces

5.20.2.21 ElementsWithFaces

ElementsWithFaces
( numElems, elemID )
Description:
This method returns the elements that have faces which are attached to this curve
Input:
None
Output:
INT4 numElems The number of elements returned.
The IDs of the selected elements which have faces attached to the
INT4 elemID[0..numElems-1]
curve.
Return Code:
FE_FAIL Unable to return elements, possibly none exist.
FE_NOT_EXIST No elements were attached to the curve in the manner you selected.
FE_NO_MEMORY Insufficient memory to allocate list of attached elements.
Remarks/Usage:
This will return elements that have any face on the curve - including planar elements that have one edge
along the curve. Planar elements that simply touch the curve at one corner/node will not be returned.
Example:
None
BoundingBox API-1561

5.20.2.22 BoundingBox

BoundingBox
( Box )
Description:
This method returns the coordinates of a rectangular box the encloses this geometry.
Input:
None
Output:
The dimensions of the bounding box, in Global Rectangular coordi-
nates.
INT4 Box[0..5] Box[0] - Minimum X, Box[3] - Maximum X
Box[1] - Minimum Y, Box[4] - Maximum Y
Box[2] - Minimum Z, Box[5] - Maximum Z
Return Code:
FE_FAIL Unable to find a bounding box.
Object does not contain valid geometry. This method only works for
FE_INVALID
Parasolid-based geometry.
Remarks/Usage:
This method always retrieves a box that is aligned with Global Rectangular coordinates, not an aligned
box of minimum volume.
Example:
None
API-1562 GetMeshLoc

5.20.2.23 GetMeshLoc

GetMeshLoc
( numLoc, meshParam )
Description:
Retrieves the parametric values along the curve of the mesh locations.
Input:
None
Output:
INT4 numLoc The number of mesh locations on the curve
INT4 meshParam[0..numLoc-
The parametric locations
1]
Return Code:
FE_FAIL Unable to find mesh locations
Remarks/Usage:
None
Example:
None
GetMeshLocXYZ API-1563

5.20.2.24 GetMeshLocXYZ

GetMeshLocXYZ
( numLoc, meshXYZ )
Description:
Retrieves the global coordinates of the mesh locations along the curve.
Input:
None
Output:
INT4 numLoc The number of mesh locations on the curve
INT4 meshXYZ[0..numLoc-1] The global coordinates of the mesh locations
Return Code:
FE_FAIL Unable to find mesh locations
Remarks/Usage:
Similar to GetMeshLoc, but this method returns coordinate rather than parametric values.
Example:
None
API-1564 IsSmoothEdge

5.20.2.25 IsSmoothEdge

IsSmoothEdge
( dAngle, nConvexityType )
Description:
Determines whether the adjacent surfaces of a solid meet smoothly at this curve
Input:
REAL8 dAngle The maximum angle that will be considered as smooth
Output:
0=Smooth and Flat, 1=Smooth and Convex, 2=Smooth and Concave,
INT4 nConvexityType
3=Smooth with Inflection, 4=Smooth and Variable Convex/Concave
Return Code:
FE_FAIL Unable to test smoothness and convexity
FE_INVALID Not smooth
FE_NOT_AVAILABLE Curve is not a curve on a solid
Remarks/Usage:
None
Example:
None
Surfaces API-1565

5.20.2.26 Surfaces

Surfaces
( nCombinedMode, numSurfaces, surfaceID )
Description:
Returns an array of surfaces that reference this curve
Input:
0=List contains the basic surfaces that are adjacent to the curve,
1=Any surfaces that are adjacent that are in a Combined Surface are
INT4 nCombinedMode
replaced by the ID of the Combined Surface, 2=List contains both
the underlying and combined surfaces.
Output:
INT4 numSurfaces The number of surfaces in the returned array
INT4 surfaceID[0..numSur-
The IDs of the surfaces.
faces-1]
Return Code:
FE_FAIL Unable to get surfaces
Remarks/Usage:
This function only works for Solid or Composite Curves that are defined on Solids. Same as Surface-
sAsSet except IDs are returned in an Array rather than in a Set.
Example:
None
API-1566 SurfacesAsSet

5.20.2.27 SurfacesAsSet

SurfacesAsSet
( nCombinedMode, nSetID, bClear )
Description:
Returns surfaces that reference this curve in a Set Object
Input:
0=List contains the basic surfaces that are adjacent to the curve,
1=Any surfaces that are adjacent that are in a Combined Surface are
INT4 nCombinedMode
replaced by the ID of the Combined Surface, 2=List contains both
the underlying and combined surfaces.
INT4 nSetID ID of the Set Object to receive the Surface IDs
BOOL bClear If True, the Set is cleared before loading the surfaces
Output:
None
Return Code:
FE_FAIL Unable to get surfaces
Remarks/Usage:
This function only works for Solid or Composite Curves that are defined on Solids. Same as Surfaces,
except that IDs are returned in the Set rather than in an array.
Example:
None
Normal API-1567

5.20.2.28 Normal

Normal
( xyz, vNormal )
Description:
Returns the average of the surface normals at a specified location along the curve
Input:
The Global Rectangular coordinates of a location along the curve
REAL8 xyz[0..2]
where you want to find the normal
Output:
REAL8 vNormal[0..2] The average surface normal at that location
Return Code:
FE_FAIL Unable to get surfaces
Remarks/Usage:
This function finds all of the surfaces adjoining the curve and computes a normal to each surface at the
specified location. The returned normal is simply the average of those surface normals.
Example:
None
API-1568 IsCombinedCurve

5.20.2.29 IsCombinedCurve

IsCombinedCurve
( void )
Description:
Indicates whether or not the curve is a combined curve
Input:
None
Output:
None
Return Code:
FE_OK Curve is a combined curve
FE_FAIL Curve is not a combined curve
Remarks/Usage:
You can also use the type property of the curve to determine whether a curve is a combined curve.
Example:
None
GetCombinedCurves API-1569

5.20.2.30 GetCombinedCurves

GetCombinedCurves
( nNumCurves, curveID )
Description:
Returns the IDs of the curves used to define a combined curve
Input:
None
Output:
INT4 nNumCurves The number of curves returned in curveID
The IDs of the curves used to define a combined curve. The curves in
this array are listed in the order they are used along the combined
curve - starting at the beginning of the curve. If the direction of the
INT4 curveID[0..nNumCurves]
returned curve is opposite that of the composite curve, then the ID in
the array will be negative (i.e. if you see an entry in curveID like -7,
that means that curve 7 is used in its reversed direction)
Return Code:
FE_FAIL Not a combined curve
FE_INVALID Invalid number of curves defining the composite curve
Remarks/Usage:
None
Example:
None
API-1570 CombinedCurvesAsSet

5.20.2.31 CombinedCurvesAsSet

CombinedCurvesAsSet
( nSetID, bClear )
Description:
Returns the IDs of the curves used to define a combined curve
Input:
INT4 nSetID The ID of a Set that will receive the curve IDs
BOOL bClear If True, the Set is cleared prior to loading the curve IDs
Output:
None
Return Code:
FE_FAIL Not a combined curve
FE_INVALID Invalid number of curves defining the composite curve
Remarks/Usage:
This method is similar to GetCombinedCurves, however there is no indication of forward/reverse direc-
tion when using this method. All IDs are positive and stored in the Set Object.
Example:
None
CombineCurves API-1571

5.20.2.32 CombineCurves

CombineCurves
( nNumCurves, curveID )
Description:
Creates a combined curve from an array of underlying curves.
Input:
INT4 nNumCurves The number of curves supplied in curveID
The IDs of the curves used to define a combined curve. The curves in
this array must be listed in the order they will be used along the com-
bined curve - starting at the beginning of the curve. If you need to
INT4 curveID[0..nNumCurves]
reverse a curve, then you must supply its ID as a negative number
(i.e. -ID) - then the usage of the curve in the combined curve will be
in the opposite direction from the original curve.
Output:
None
Return Code:
FE_FAIL Could not create combined curve.
FE_INVALID Too many curves specified.
FE_NOT_EXIST A supplied curve does not exist.
Remarks/Usage:
The curves supplied to this method must be properly ordered, connected and able to create a combined
curve.
Example:
None
API-1572 Facets

5.20.2.33 Facets

Facets
( numPoints, xyzPoint )
Description:
Returns the global rectangular coordinates of the locations along the curve that are used to draw the
curve
Input:
None
Output:
INT4 numPoints The number of points returned in xyzPoint
REAL8 xyz-
The locations along the curve, stored [x0,y0,z0,x1,y1,z1,...]
Point[0..(3*numPoints)-1]
Return Code:
FE_FAIL Could not retrieve facets.
Remarks/Usage:
The curve is drawn by simply connecting these locations sequentially.
Example:
None
PartialLengthXYZ API-1573

5.20.2.34 PartialLengthXYZ

PartialLengthXYZ
( xyz0, xyz1 )
Description:
This method returns the length of a curve between two XYZ locations.
Input:
REAL8 xyz0[0..2] The coordinates of the location of interest.
REAL8 xyz1[0..2] The coordinates of the location of interest.
Output:
None
Return Code:
Length The length of the curve. 0.0 for any invalid curve.
Remarks/Usage:
This method will only work for any curve type.
Example:
None
API-1574 PartialLengthNode

5.20.2.35 PartialLengthNode

PartialLengthNode
( nID1, nID2 )
Description:
This method returns the length of a curve between the Node locations that are closest to the curve.
Input:
INT4 nID1 The ID of the first Node.
INT4 nID2 The ID of the second Node
Output:
None
Return Code:
Length The length of the curve. 0.0 for any invalid curve.
Remarks/Usage:
This method will work for any curve type.
Example:
None
IsStraight API-1575

5.20.2.36 IsStraight

IsStraight
()
Description:
Determines whether the curve is a straight line
Input:
None
Output:
None
Return Code:
FE_OK Curve is a straight line
FE_FAIL Not a straight line.
Remarks/Usage:
None
Example:
None
API-1576 IsArc

5.20.2.37 IsArc

IsArc
()
Description:
Determines whether the curve is an arc
Input:
None
Output:
None
Return Code:
FE_OK Curve is an arc
FE_FAIL Not an arc.
Remarks/Usage:
None
Example:
None
IsNonManifold API-1577

5.20.2.38 IsNonManifold

IsNonManifold
()
Description:
Determines whether the curve is nonmanifold
Input:
None
Output:
None
Return Code:
FE_OK Manifold curve
FE_FAIL Curve is nonmanifold
Curve is not a supported type for this method. This method only
FE_BAD_TYPE
works with Solid and Composite curves.
Remarks/Usage:
Nonmanifold curves are ones that bound more than 2 surfaces.
Example:
None
API-1578 IsGeneral

5.20.2.39 IsGeneral

IsGeneral
()
Description:
Determines whether the curve is nonmanifold (on a general body) by querying Parasolid
Input:
None
Output:
None
Return Code:
FE_OK Manifold curve
FE_FAIL Curve is nonmanifold
Curve is not a supported type for this method. This method only
FE_BAD_TYPE
works with Solid and Composite curves.
Remarks/Usage:
Nonmanifold curves are ones that bound more than 2 surfaces. This command provides an alternate
method to the IsNonManifold method.
Example:
None
IsSmooth API-1579

5.20.2.40 IsSmooth

IsSmooth
( dAngle )
Description:
Determines whether the surfaces bounded by this curve are tangent within a specified angle along the
curve
Input:
The maximum angle below which the curve is considered to be a
REAL8 dAngle
smooth connection between the adjoining surfaces.
Output:
None
Return Code:
FE_OK Curve is smooth
FE_FAIL Not a smooth curve
FE_BAD_TYPE This method only works with Solid and Composite curves.
Remarks/Usage:
None
Example:
None
API-1580 TangentAtEnds

5.20.2.41 TangentAtEnds

TangentAtEnds
( outward, pvEnd1Tan, pvEnd2Tan )
Description:
Determines whether the surfaces bounded by this curve are tangent within a specified angle along the
curve
Input:
If true, the outward pointing tangents are computed at each end. If
BOOL outward False, tangents along the curve in the parametric direction of the
curve are computed.
Output:
REAL8 pvEnd1Tan[0..2] The tangent at the start of the curve
REAL8 pvEnd2Tan[0..2] The tangent at the end of the curve
Return Code:
FE_BAD_TYPE Curve type is not supported for this method
FE_FAIL Unable to compute tangents
Remarks/Usage:
This method is only supported for Solid and Composite Curves.
Example:
None
CurvatureAcrossEdge API-1581

5.20.2.42 CurvatureAcrossEdge

CurvatureAcrossEdge
( pdMinVal, pdMaxVal, pdAngleBetweenNormals )
Description:
Finds the minimum and maximum curvature along the curve and the maximum angle between normals
of the adjacent surfaces
Input:
None
Output:
REAL8 pdMinVal Minimum radius of curvature
REAL8 pdMaxVal Maximum radius of curvature
REAL8 pdAngleBetweenNor-
Maximum angle between the adjacent surface normals
mals
Return Code:
FE_BAD_TYPE Curve type is not supported for this method
FE_FAIL Unable to compute values
Remarks/Usage:
This method is only supported for Solid and Composite Curves.
Example:
None
API-1582 ClosestPointToCurve

5.20.2.43 ClosestPointToCurve

ClosestPointToCurve
( nCurveID, pdX, pdY, pdZ, pdDistance, pdAngleOfTangents )
Description:
Finds the closest point on the curve to a selected curve
Input:
INT4 nCurveID The curve to test for closest approach
Output:
REAL8 pdX
The coordinates of the closest location on the curve to the selected
REAL8 pdY
curve
REAL8 pdZ
REAL8 pdDistance The distance from the point to the selected curve
The Angle between the Curve Tangent and the curve tangent of the
REAL8 pdAngleOfTangents
selected curve at the location of closest approach
Return Code:
FE_BAD_TYPE Curve type is not supported for this method
FE_FAIL Unable to compute values
FE_INVALID Unable to find closest approach
FE_NOT_AVAILABLE Unable to locate selected curve
Remarks/Usage:
This method is only supported for Solid and Composite Curves.
Example:
None
ClosestPointToSurface API-1583

5.20.2.44 ClosestPointToSurface

ClosestPointToSurface
( nSurfaceID, pdX, pdY, pdZ, pdDistance, pdAngleOfTangentToSurfaceNormal )
Description:
Finds the closest point on the curve to a selected surface
Input:
INT4 nSurfaceID The surface to test for closest approach
Output:
REAL8 pdX
REAL8 pdY The coordinates of the closest location on the curve to the surface
REAL8 pdZ
REAL8 pdDistance The distance from the point to the surface
REAL8 pdAngleOfTangentTo- The Angle between the Curve Tangent and the surface normal at the
SurfaceNormal location of closest approach
Return Code:
FE_BAD_TYPE Curve type is not supported for this method
FE_FAIL Unable to compute values
FE_INVALID Unable to find closest approach
FE_NOT_AVAILABLE Unable to locate selected surface
Remarks/Usage:
This method is only supported for Solid and Composite Curves.
Example:
None
API-1584 MinRadius

5.20.2.45 MinRadius

MinRadius
( pdMinRadius)
Description:
Finds the minimum radius of a Solid curve or a Composite curve.
Input:
None
Output:
REAL8 pdMinRadius Minimum radius of curve
Return Code:
FE_BAD_TYPE Curve type is not supported for this method
FE_FAIL Unable to compute values
Remarks/Usage:
This method is only supported for Solid and Composite Curves.
Example:
None
ParamOnCombinedCurve API-1585

5.20.2.46 ParamOnCombinedCurve

ParamOnCombinedCurve
( s, pnCurveID)
Description:
This method returns the ID of the underlying curve of a composite curve at a specified parametric
location.
Input:
REAL8 s Parametric location along composite curve from 0.0 to 1.0
Output:
INT4 pnCurveID Curve ID of underlying curve at specified parametric location
Return Code:
FE_BAD_TYPE Curve type is not supported for this method
FE_FAIL Unable to determine underlying curve ID
Remarks/Usage:
This method is only supported for Composite Curves.
Example:
None
API-1586 IsSuppressed

5.20.2.47 IsSuppressed

IsSuppressed
( void )
Description:
Indicates whether or not the curve is suppressed
Input:
None
Output:
None
Return Code:
FE_OK Curve is suppressed
FE_FAIL Curve is not suppressed
Remarks/Usage:
None
Example:
None
ClearMeshLoc API-1587

5.20.2.48 ClearMeshLoc

ClearMeshLoc
( void )
Description:
Clears all previous mesh sizing on curve
Input:
None
Output:
None
Return Code:
FE_OK Mesh sizing has been removed from curve
Remarks/Usage:
The curve should be loaded prior to using this method. You must always Put the curve to the database
after finishing for removal of assigned mesh sizing. Sets number of elements to 0.
Example:
None
API-1588 HasMeshSize

5.20.2.49 HasMeshSize

HasMeshSize
( void )
Description:
Indicates if a curve has assigned mesh sizing.
Input:
None
Output:
None
Return Code:
FE_OK Curve has assigned mesh sizing
FE_FAIL Curve does not have assigned mesh sizing
Remarks/Usage:
None
Example:
None
SetSimpleMeshLoc API-1589

5.20.2.50 SetSimpleMeshLoc

SetSimpleMeshLoc
( nNumElem, spacing, biasMethod, bias, biasLoc )
Description:
This method sets mesh sizing on a curve using only Number of Elements and Node Spacing options.
Similar to using Mesh, Mesh Control, Size Along Curve menu command.
Input:
INT4 nNumElem The number of elements on the curve
If 0, then parametric spacing is used; otherwise, constant length spac-
INT4 spacing
ing is used.
INT4 biasMethod 0=Equal length spacing, 1=Linear Bias, 2=Geometric Bias.
The bias value - greater than or equal to 1.0. A value of 1.0 is not
REAL8 bias biased. A value of 2.0 means that the largest element is approxi-
mately 2.0 times the length of the smallest.
0=Small elements at start of curve, 1=Small elements at end of
INT4 biasLoc curve, 2=Small elements at center of curve, 3=Small elements at
both ends of curve.
Output:
None
Return Code:
Unable to set mesh location. Possibly the curve has not been loaded
FE_FAIL
or saved.
Remarks/Usage:
The curve should be loaded prior to using this method. You must always Put the curve to the database
after finishing for the mesh locations to be saved.
Example:
None
API-1590 MeshCount

5.20.2.51 MeshCount

MeshCount
( NumElem, CustomSize)
Description:
This method returns the number of elements specified via mesh sizing on a curve and if custom mesh
sizing has been assigned.
Input:
None
Output:
INT4 NumElem Number of elements assigned via mesh sizing on curve
If True, the curve has custom mesh sizing assigned. If False, standard
BOOL CustomSize
mesh sizing has been assigned.
Return Code:
None
Remarks/Usage:
None
Example:
None
CommonPoint API-1591

5.20.2.52 CommonPoint

CommonPoint
( OtherCurveID, CommonPoint, MultipleCommon )
Description:
The method returns the ID of a common point found between the curve currently loaded in the object
and another specified curve. In addition, it can also be used to determine if multiple points are common
between the curves.
Input:
INT4 OtherCurveID ID of curved used to determine if there are any common points
Output:
ID of point common between curve currently loaded in object and
INT4 CommonPoint
OtherCurveID
If True, more than one point is common between the curve currently
BOOL MultipleCommon loaded in the object and OtherCurveID. If False, then only ID of
CommonPoint is common between the curves.
Return Code:
FE_FAIL No points are common between the curves
Remarks/Usage:
None
Example:
None
API-1592 Solid

5.20.2.53 Solid

Solid
( nSolidID )
Description:
This method returns the ID of the Solid that contains the current Curve
Input:
None
Output:
INT4 nSolidID The ID of the Solid that references the current Curve
Return Code:
FE_FAIL Unable to get the solid
Remarks/Usage:
This method will only work with a Curve and Combined Curve that is defined on a Solid.
Example:
None
Midpoint API-1593

5.20.2.54 Midpoint

Midpoint
( Mipoint )
Description:
This method returns the coordinates of the midpoint of a curve or combined curve
Input:
None
Output:
The coordinates of the midpoint of the current curve or combined
REAL8 midpoint[0..2]
curve. Always returned in the global rectangular coordinate system
Return Code:

Remarks/Usage:

Example:
None
API-1594 Center

5.20.2.55 Center

Center
( center)
Description:
This method returns the coordinates of the center point of a circular arc (curve or combined curve)
Input:
None
Output:
The coordinates of the center point of the current curve or combined
REAL8 center[0..2]
curve. Always returned in the global rectangular coordinate system
Return Code:
FE_FAIL Curve or combined curve is not a circular arc or does not exist
Remarks/Usage:

Example:
None
GetPrecision API-1595

5.20.2.56 GetPrecision

GetPrecision
( void )
Description:
This method returns the current Parasolid precision of a curve
Input:
None
Output:
None
Return Code:
Current Parasolid precision of curve
Remarks/Usage:

Example:
None
API-1596 ResetPrecision

5.20.2.57 ResetPrecision

ResetPrecision
( void )
Description:
This method resets the Parasolid precision of a curve to a value equal to 5.0E-9*current Solid Geometry
Scale Factor.
Input:
None
Output:
None
Return Code:

Remarks/Usage:
If Solid Geometry Scale Factor is equal to 39.37 (Inches), then this value will be 1.9685E-7
If Solid Geometry Scale Factor is equal to 1.0 (Meters), then this value will be 5.0E-9
If Solid Geometry Scale Factor is equal to 1000.0 (Millimeters), then this value will be 5.0E-6
Example:
None
API-1597

5.21 Data Surface Objects


Data Surface objects correspond to Femap Data Surfaces which are used to create spatial and
entity based variations.
They are derived from Entity objects, so in addition to the properties and methods described here,
all of the properties and methods defined for Entity objects are also available for Data Surface
objects. For more information, see Section 5.1, "Common Entity Properties and Methods".
Use the feDataSurf method of the FEMAP Application object to create Data Surface objects.

5.21.1 Data Surface Object Properties


Data Surfaces are always stored with a SetID=1, and the ID equal to the surface ID.

Property Description
STRING title Data Surface title (maximum 79 characters).
Coordinate System in which the Data Surface should be evalu-
INT4 csys
ated in.
BOOL vector Flag indicating that this data surface contains vector data.
(Along Coordinates) Surface ID in which to project Along
INT4 AlongCoordProjectID
Curve Data surface drive spline.
(Between, Tabular) Curve ID or Surface ID that defines the
INT4 ParamCurveSurfID
parametric space.
(Between) When True, enables Extend Edge Values Outside
BOOL ExtendEdgeValues
Data Surface
(Arbituary 3D) Percent of variation locations to include in inter-
REAL8 InterpPercent
polation.
(Arbitrary 3D)Minimum number of variation locations to include
INT4 InterpMin
in interpolation.
INT4 TabularUdefOpt (Tabular XYZ) 0 = Interpolate from closest, 1 = Constant value.
REAL8 TabularUdefVal (Tabular XYZ)Value for TabularUdefOpt
(Output Map)Method used to determine values for target loca-
tions that fall outside of source mesh: 0=FMO_ZERO;
INT4 OutMapOption
1=FMO_VALUE;
2=FMO_EXTEND; 3=FMO_INTERP; 4=FMO_NONE
(Output Map)X value used if target mapping falls outside of
REAL8 DefOutMapValue1 source mesh and MapOption is set to 1 (FMO_VALUE)

(Output Map)Y value used if target mapping falls outside of


REAL8 DefOutMapValue2 source mesh and MapOption is set to 1 (FMO_VALUE)
API-1598 GetDataSurf

Property Description
(Output Map)Z value used if target mapping falls outside of
REAL8 DefOutMapValue3 source mesh and MapOption is set to 1 (FMO_VALUE)

REAL8 MapOffsetTolerance Specifies the Mapping Tolerance value

5.21.2 Data Surface Methods


The following methods are available in addition to the standard entity methods.
5.21.2.1 GetDataSurf

GetDataSurf
(EntID)
Description:
This method retrieves the Data Surface ID
Input:
INT4 EntID ID of the Data Surface to retrieve.
Output:
None
Return Code:
FE_FAIL Unable to get the data surface.
Remarks/Usage:

Example:
PutDataSurf API-1599

5.21.2.2 PutDataSurf

PutDataSurf
(EntID)
Description:
This method stores the Data Surface in the model database with the specified ID.
Input:
INT4 EntID ID of the Data Surface to store.
Output:
None
Return Code:
FE_FAIL Unable to store the data surface.
Remarks/Usage:

Example:
API-1600 VarAlongCoord

5.21.2.3 VarAlongCoord

VarAlongCoord
(numEntries, xyz, val_xyz)
Description:
This method creates a Along Coordinates Data Surface.
Input:
INT4 numEntries Number of variation locations used to create Data Surface
REAL8 xyz[0..(3*numEntries)- xyz is an array of the variation coordinates. In the array, there must
1] be 3 entries for each location, followed by the 3 for the next location.
or
VARIANT vxyz
REAL8 val_xyz[0..(3*numEn- val_xyz is an array of the variation values. In the array, there must be
tries )-1] 3 entries for the variation location, followed by the 3 variation values
or for the next location. If Data Surface is a Scalar then just define the
VARIANT vval_xyz y,z values as zero.
Output:
None
Return Code:
FE_FAIL Unable to create the Data Surface.
Remarks/Usage:
The following Data Surface Object properties that are valid:
1) AlongCoordProjectID
Example:
VarBetween2Pts API-1601

5.21.2.4 VarBetween2Pts

VarBetween2Pts
(xyz, val_xyz)
Description:
This method creates a Between Coordinates Data Surface with the 2 Point Linear Variation Type.
Input:
REAL8 xyz[0..(3*2)-1] xyz is an array of the variation coordinates. In the array, there must
or be 3 entries for each location, followed by the 3 for the next location.
VARIANT vxyz
val_xyz is an array of the variation values. In the array, there must be
REAL8 val_xyz[0..(3*2)-1]
3 entries for the variation location, followed by the 3 variation values
or
for the next location. If Data Surface is a Scalar then just define the
VARIANT vval_xyz
y,z values as zero.
Output:
None
Return Code:
FE_FAIL Unable to create the Data Surface.
Remarks/Usage:
The following Data Surface Object properties that are valid:
1) csys
API-1602 VarBetween2Pts

VarBetween2Pts
(xyz, val_xyz)
Example:
Sub Main
Dim App As femap.model
Set App = GetObject(,"femap.model")

Dim ds As femap.DataSurf
Set ds = App.feDataSurf

Dim xyz(6) As Double
Dim xyzVal(6) As Double

For j = 0 To 2-1
xyz(j*3+0) = j*2
xyz(j*3+1) = 0
xyz(j*3+2) = 0

xyzVal(j*3+0) = j*1
xyzVal(j*3+1) = j*2
xyzVal(j*3+2) = 0
Next j

ds.vector=True

rc = ds.VarBetween2Pts( xyz, xyzVal )
rc =ds.PutDataSurf( App.Info_NextID(FT_DATA_SURF) )

End Sub
VarBetween4Pts API-1603

5.21.2.5 VarBetween4Pts

VarBetween4Pts
(xyz, val_xyz)
Description:
This method creates a Between Coordinates Data Surface with the 4 Point Bilinear Variation Type.
Input:
REAL8 xyz[0..(3*4)-1] xyz is an array of the variation coordinates. In the array, there must
or be 3 entries for each location, followed by the 3 for the next location.
VARIANT vxyz
val_xyz is an array of the variation values. In the array, there must be
REAL8 val_xyz[0..(3*4)-1]
3 entries for the variation location, followed by the 3 variation values
or
for the next location. If Data Surface is a Scalar then just define the
VARIANT vval_xyz
y,z values as zero.
Output:
None
Return Code:
FE_FAIL Unable to create the Data Surface.
Remarks/Usage:
Data Surface Object properties that are valid:
1) csys
Example:
API-1604 VarBetween8Pts

5.21.2.6 VarBetween8Pts

VarBetween8Pts
(xyz, val_xyz)
Description:
This method creates a Between Coordinates Data Surface with the 8 Point Trilinear Variation Type.
Input:
REAL8 xyz[0..(3*8)-1] xyz is an array of the variation coordinates. In the array, there must
or be 3 entries for each location, followed by the 3 for the next location.
VARIANT vxyz
val_xyz is an array of the variation values. In the array, there must be
REAL8 val_xyz[0..(3*8)-1]
3 entries for the variation location, followed by the 3 variation values
or
for the next location. If Data Surface is a Scalar then just define the
VARIANT vval_xyz
y,z values as zero.
Output:
None
Return Code:
FE_FAIL Unable to create the Data Surface.
Remarks/Usage:
Data Surface Object properties that are valid:
1) csys
Example:
VarParametric2Pt API-1605

5.21.2.7 VarParametric2Pt

VarParametric2Pt
(xyz, val_xyz)
Description:
This method creates a Between Coordinates Data Surface with the 2 Point Parametric Variation Type.
Input:
REAL8 xyz[0..(3*2)-1] xyz is an array of the variation coordinates. In the array, there must
or be 3 entries for each location, followed by the 3 for the next location.
VARIANT vxyz
val_xyz is an array of the variation values. In the array, there must be
REAL8 val_xyz[0..(3*2)-1]
3 entries for the variation location, followed by the 3 variation values
or
for the next location. If Data Surface is a Scalar then just define the
VARIANT vval_xyz
y,z values as zero.
Output:
None
Return Code:
FE_FAIL Unable to create the Data Surface.
Remarks/Usage:
The following Data Surface Object properties that are valid:
1) csys
2) ParamCurveSurfID
Example:
API-1606 VarParametric4Pt

5.21.2.8 VarParametric4Pt

VarParametric4Pt
(xyz, val_xyz)
Description:
This method creates a Between Coordinates Data Surface with the 4 Point Parametric Variation Type.
Input:
REAL8 xyz[0..(3*4)-1] xyz is an array of the variation coordinates. In the array, there must
or be 3 entries for each location, followed by the 3 for the next location.
VARIANT vxyz
val_xyz is an array of the variation values. In the array, there must be
REAL8 val_xyz[0..(3*4)-1]
3 entries for the variation location, followed by the 3 variation values
or
for the next location. If Data Surface is a Scalar then just define the
VARIANT vval_xyz
y,z values as zero.
Output:
None
Return Code:
FE_FAIL Unable to create the Data Surface.
Remarks/Usage:
The following Data Surface Object properties that are valid:
1) csys
2) ParamCurveSurfID
Example:
VarOutputMap API-1607

5.21.2.9 VarOutputMap

VarOutputMap
(nModelID, groupID, outSetID, outVecID)
Description:
This method creates a Output Map Data Surface.
Input:
INT4 nModelID ID of the source model containing output to be mapped.
INT4 groupID ID of group of entities in source model from which to map output.
INT4 outSetID ID of output set containing data from which to map output.
INT4 outVecID ID of output vector containing data from which to map output.
Output:
None
Return Code:
FE_FAIL Unable to create the Data Surface.
Remarks/Usage:
The following Data Surface Object properties that are valid:
1) csys
2) OutMapOption
3) DefOutMapValue1
4) DefOutMapValue2
5) DefOutMapValue3
Example:
API-1608 VarMeshSurface

5.21.2.10 VarMeshSurface

VarMeshSurface
(setID, eDataType, sX, sY, sZ)
Description:
This method creates a Output Map Data Surface.
Input:
INT4 setID ID of the femap set containing the Data Surface entities.
INT4 eDataType Type of entity in Data Surface. For more information, see Section
3.3.5, "Entity Types". Only Node and Element types are valid.
STRING sX String containing value or expression for x cell in Data Surface.
STRING sY String containing value or expression for y cell in Data Surface.
STRING sZ String containing value or expression for z cell in Data Surface.
Output:
None
Return Code:
FE_FAIL Unable to create the Data Surface.
Remarks/Usage:
The following Data Surface Object properties that are valid:
1) csys
Example:
VarSpatialUVtable API-1609

5.21.2.11 VarSpatialUVtable

VarSpatialUVtable
(uDivisions, vDivisions)
Description:
This method creates a Tabular Parametric uv Data Surface.
Input:
INT4 uDivisions Number of divisions in the u direction.
INT4 vDivisions Number of divisions in the v direction.
Output:
None
Return Code:
FE_FAIL Unable to create the Data Surface.
Remarks/Usage:
The following Data Surface Object properties that are valid:
1) TabularUdefOption
2) TabularUdefVal
Example:
API-1610 VarSpatialXYZTable

5.21.2.12 VarSpatialXYZTable

VarSpatialXYZTable
(xDivisions, yDivisions, zDivisions)
Description:
This method creates a Output Map Data Surface.
Input:
INT4 xDivisions Number of divisions in the 1st dimension.
INT4 yDivisions Number of divisions in the 2st dimension.
INT4 zDivisions Number of divisions in the 3st dimension.
Output:
None
Return Code:
FE_FAIL Unable to create the Data Surface.
Remarks/Usage:
The following Data Surface Object properties that are valid:
1) csys
2) TabularUdefOption
3) TabularUdefVal
Example:
VarArbitrary3DCoord API-1611

5.21.2.13 VarArbitrary3DCoord

VarArbitrary3DCoord
(numEntries, xyz, val_xyz)
Description:
This method creates a Arbitrary 3D Data Surface.
Input:
INT4 numEntries Number of variation locations in xyz, val_xyz arrays.
REAL8 xyz[0..(3*numEntries)- xyz is an array of the variation coordinates. In the array, there must
1] be 3 entries for each location, followed by the 3 for the next location.
or
VARIANT vxyz
REAL8 val_xyz[0..(3*numEn- val_xyz is an array of the variation values. In the array, there must be
tries)-1] 3 entries for the variation location, followed by the 3 variation values
or for the next location. If Data Surface is a Scalar then just define the
VARIANT vval_xyz y,z values as zero.
Output:
None
Return Code:
FE_FAIL Unable to create the Data Surface.
Remarks/Usage:
The following Data Surface Object properties that are valid:
1) csys
2) InterpPercent
3) InterpMin
Example:
API-1612 VarEquation

5.21.2.14 VarEquation

VarEquation
(equation)
Description:
This method creates a Arbitrary 3D Data Surface.
Input:
STRING String containing equation.
Output:
None
Return Code:
FE_FAIL Unable to create the Data Surface.
Remarks/Usage:
The following Data Surface Object properties that are valid:
1) csys
Example:
GetCellValue API-1613

5.21.2.15 GetCellValue

GetCellValue
(nPage, nRow, nCol, nComponent, dValue)
Description:
This method retrieves the value of a cell.
Input:
INT4 nPage Page containing cell to retrieve value from
INT4 nRow Row containing cell to retrieve value from.
INT4 nCol Column containing cell to retrieve value from
Component of the value vector in which to retrieve value from. Com-
INT4 nComponent
ponent: Scalar = 0, Vector = 0..3
Output:
REAL8 dValue Value of the cell.
Return Code:
FE_NOT_AVAILABLE Cell is Blank
Remarks/Usage:

Example:
API-1614 SetCellValue

5.21.2.16 SetCellValue

SetCellValue
(nPage, nRow, nCol, nComponent, rVal)
Description:
This method sets the value of a cell.
Input:
INT4 nPage Page containing cell to set value.
INT4 nRow Row containing cell to set value.
INT4 nCol Column containing cell to set value.
Component of the value vector in which to set value for. Compo-
INT4 nComponent
nents: Scalar = 0, Vector = 0..3
REAL8 rVal Value to set.
Output:
None
Return Code:
FE_NOT_AVAILABLE Cell does not exist
Remarks/Usage:

Example:
SetCellEquation API-1615

5.21.2.17 SetCellEquation

SetCellEquation
(nPage, nRow, nCol, nComponent, equation)
Description:
This method sets the equation of a cell.
Input:
INT4 nPage Page containing cell to set.
INT4 nRow Row containing cell to set.
INT4 nCol Column containing cell to set.
Component of the value vector in which to set. Components: Scalar
INT4 nComponent
= 0, Vector = 0..3
STRING equation Equation to set the cell to.
Output:
None
Return Code:
FE_NOT_AVAILABLE Cell does not exist
Remarks/Usage:

Example:
API-1616 GetColumnTitle

5.21.2.18 GetColumnTitle

GetColumnTitle
(nPage, nCol, title)
Description:
This method retrieves the title of a column.
Input:
INT4 nPage Page containing column to retrieve title from
INT4 nCol Column retrieve title from.
Output:
STRING Title Title of column.
Return Code:
FE_FAIL Unable to get title.
Remarks/Usage:

Example:
GetColumnValue API-1617

5.21.2.19 GetColumnValue

GetColumnValue
(nPage, nCol, rVal)
Description:
This method retrieves the value of a column.
Input:
INT4 nPage Page containing column to retrieve value from
INT4 nCol Column retrieve value from.
Output:
REAL8 rVal Value of column.
Return Code:
FE_NOT_AVAILABLE Column Value is blank.
Remarks/Usage:

Example:
API-1618 GetRowTitle

5.21.2.20 GetRowTitle

GetRowTitle
(nPage, nRow, sTitle)
Description:
This method retrieves the title of a row.
Input:
INT4 nPage Page containing row to retrieve title from
INT4 nRow Row to retrieve title from.
Output:
STRING sTitle Title of row
Return Code:
FE_FAIL Unable to get title.
Remarks/Usage:

Example:
SetRowTitle API-1619

5.21.2.21 SetRowTitle

SetRowTitle
(nPage, nRow, sTitle)
Description:
This method sets the title of a row.
Input:
INT4 nPage Page containing row to set title for
INT4 nRow Row to set title for.
STRING sTitle Title of row.
Output:
None
Return Code:
FE_FAIL Unable to get title.
Remarks/Usage:

Example:
API-1620 GetRowValue

5.21.2.22 GetRowValue

GetRowValue
(nPage, nRow, rVal)
Description:
This method retrieves the title of a row.
Input:
INT4 nPage Page containing row to retrieve value from
INT4 nRow Row to retrieve value from.
Output:
REAL8 rVal Value of row
Return Code:
FE_NOT_AVAILABLE Row is blank.
Remarks/Usage:

Example:
SetRowValue API-1621

5.21.2.23 SetRowValue

SetRowValue
(nPage, nRow, sTitle)
Description:
This method sets the value of a row.
Input:
INT4 nPage Page containing row to set value for.
INT4 nRow Row to set value for.
REAL8 rVal Value of row.
Output:
None
Return Code:
FE_FAIL Unable to set value.
Remarks/Usage:

Example:
API-1622 GetPageTitle

5.21.2.24 GetPageTitle

GetPageTitle
(nPage, sTitle)
Description:
This method retrieves the title of a page.
Input:
INT4 nPage Page to retrieve title from.
Output:
STRING sTitle Title of page.
Return Code:
FE_FAIL Unable to get title.
Remarks/Usage:

Example:
SetPageTitle API-1623

5.21.2.25 SetPageTitle

SetPageTitle
(nPage, sTitle)
Description:
This method sets the title of a page.
Input:
INT4 nPage Page to set title.
STRING sTitle Title of page.
Output:
None
Return Code:
FE_FAIL Unable to set page title.
Remarks/Usage:

Example:
API-1624 GetPageValue

5.21.2.26 GetPageValue

GetPageValue
(nPage, rVal)
Description:
This method retrieves the value of a page.
Input:
INT4 nPage Page to retrieve value from.
Output:
REAL8 rVal Value of page.
Return Code:
FE_NOT_AVAILABLE Unable to get value.
Remarks/Usage:

Example:
SetPageValue API-1625

5.21.2.27 SetPageValue

SetPageValue
(nPage, rval)
Description:
This method sets the value of a page.
Input:
INT4 nPage Page to set value.
REAL8 rVal Value of page.
Output:
None
Return Code:
FE_FAIL Unable to set page value.
Remarks/Usage:

Example:
API-1626 SetColumTitle

5.21.2.28 SetColumTitle

SetColumTitle
(nPage, nCol, sTitle)
Description:
This method set the title of a column.
Input:
INT4 nPage Page that contains the column to set.
INT4 nCol Column to set.
STRING sTitle Title to set.
Output:
None
Return Code:
FE_FAIL Unable to set title.
Remarks/Usage:

Example:
SetColumValue API-1627

5.21.2.29 SetColumValue

SetColumValue
(nPage, nCol, rVal)
Description:
This method sets the value of a column.
Input:
INT4 nPage Page that contains the column to set.
INT4 nCol Column to set.
REAL8 Value to set.
Output:
None
Return Code:
FE_FAIL Unable to set value.
Remarks/Usage:

Example:
API-1628 SetCellBlank

5.21.2.30 SetCellBlank

SetCellBlank
(nPage, nRow, nCol, nComponent)
Description:
This method set a cell to blank.
Input:
INT4 nPage Page that contains the cell to set.
INT4 nRow Row containing cell to set.
INT4 nCol Column containing cell to set.
INT4 nComponent Component of value vector to set.
Output:
None
Return Code:
FE_FAIL Unable to set cell to blank.
Remarks/Usage:

Example:
GetDataSurfInfo API-1629

5.21.2.31 GetDataSurfInfo

GetDataSurfInfo
(nPages, nComponent, sTitle)
Description:
This method retrieves Data Surface information.
Input:
None
Output:
INT4 nPages Number of Pages in Data Surface
INT4 nComponent Number of components for Data Surface
STRING sTitle Title of Data Surface
Return Code:
FE_FAIL Unable to get Data Surface info.
Remarks/Usage:

Example:
API-1630 GetPageInfo

5.21.2.32 GetPageInfo

GetPageInfo
(nPage, nRows, nCols)
Description:
This method retrieves page information.
Input:
INT4 nPage Page to retrieve info for.
Output:
INT4 nRows Number of Row in page
INT4 nCols Number of Columns in page.
Return Code:
FE_FAIL Unable to get page info.
Remarks/Usage:

Example:
Resize API-1631

5.21.2.33 Resize

Resize
(nPage, nRow, nCol, bVector)
Description:
This method resizes the Data Surface grid.
Input:
INT4 nPage Number of Pages.
INT4 nRow Number of Rows.
INT4 nCol Number of Columns.
BOOL bVector Flag for vector Data Surface.
Output:
None
Return Code:
FE_TOO_SMALL Grid size is invalid.
Remarks/Usage:

Example:
API-1632 Evaluate

5.21.2.34 Evaluate

Evaluate
(geomID, eDataType, MapSetID, isElemental)
Description:
This method Evaluates the Data Surface prior to calling GetData().
Input:
Geometry supplying parametric space.
INT4 geomID Between 2 Point Parametric Data Surface: ID of Curve
Between 4 Point Parametric Data Surface: ID of Surface
Type of entity Data Surface needs to be evaluated for.
Between 2 Point Parametric Data Surface Type = Curve
Between 4 Point Parametric Data Surface Type = Surface
INT4 DataType Mesh Data Surface
Type = Node or Element
For more information, see Section 3.3.5, "Entity Types". Only Node
and Element types are valid.
(Output Map Data Surface)
INT4 MapSetID
ID of the Femap Set containing entities to map the Data Surface to.
BOOL isElemental (Output Map Data Surface) Flag for elemental output.
Output:
None
Return Code:
FE_FAIL Unable to evaluate Data Surface.
Remarks/Usage:

Example:
GetData API-1633

5.21.2.35 GetData

GetData
(geomID, feaID, Coord, answer, valXYZ)
Description:
This method gets the computed Data Surface value at the independent variable.
Input:
Between 2,4 Point Parametric Data Surface: ID of curve/surface sup-
INT4 geomID
plying parametric space.
Mesh, Output Map Data Surface: ID of mesh entity.
INT4 feaID
Equation Data Surface: ID of Mesh entity for id variable.
IREAL8 Coord[0..3] Along Coordinates, Between Coordinates, Tabular, Arbitrary 3D,
or Equation Data Surfaces: Location where the Data Surface will be
VARIANT Coord evaluated at.
Output:
Computed value for Scalar Data Surface. Magnitude for Vector Data
REAL8 answer
Surface.
REAL8 valXYZ[0..3]
or Computed vector components for Vector Data Surfaces.
VARIANT valXYZ
Return Code:
None
Remarks/Usage:
Before calling GetData the Data Surface must first have been evaluated with Evaluate().
Example:
Sub Main
Dim App As femap.model
Set App = GetObject(,"femap.model")

Dim dDim ds As femap.DataSurf
Set ds = App.feDataSurf
Dim Coord(3) As Double
Dim ans As Double
Dim entSet As femap.Set
Set entSet = App.feSet
API-1634 GetData

GetData
(geomID, feaID, Coord, answer, valXYZ)
Dim nd As femap.Node
Set nd = App.feNode
Dim output0 As femap.output
Set output0 = App.feOutput
Dim setID As Long
Dim outset As femap.OutputSet
Set outset = App.feOutputSet
Dim ndIDV As Variant
Dim thicknessV As Variant
Dim ndLIST(100000) As Long
Dim thick(100000) As Double
Dim k As Long
Dim i As Long

' Create Output Set
setID = outset.NextEmptyID()
outset.title = "Data Surface"
outset.value = 0
outset.analysis = 0
outset.Put (setID)

rc = output0.InitScalarAtNode(setID, 400000, "Interpolated
Data", 6, True)
k = i

' Get Nodes
entSet.Select( FT_NODE, True, "Select Nodes to Get Data Surface
Data" )

' Get Data Surface and evaluate
rc =ds.GetDataSurf(1)
rc = ds.Evaluate( 0, 0, 0, False )

i = 0
GetData API-1635

GetData
(geomID, feaID, Coord, answer, valXYZ)
'If entSet.count > 0 Then
feaID = entSet.First()
While feaID > 0
nd.Get(feaID)
Coord(0) = nd.x
Coord(1) = nd.y
Coord(2) = nd.z

' Get Data Surface value at nodal location
rc = ds.GetData( 0, feaID, Coord, ans, vXYZVal )

ndLIST(i) = feaID
thick(i) = ans

i = i +1
feaID = entSet.Next
Wend

k = entSet.count
ndIDV = ndLIST
thicknessV = thick

rc = output0.PutScalarAtNode(k, ndIDV, thicknessV)
rc = output0.Put(-1)
End If
End Sub
API-1636 GetDataSurfType

5.21.2.36 GetDataSurfType

GetDataSurfType
(void)
Description:
This method returns the Data Surface Type
Input:
None
Output:
None
Return Code:
The ID of the Data Surface Type.

0=Tabular Data Surface


1=Equation Data Surface
2=Nodes Data Surface
3=Elements Data Surface
4=Parametric 2 Point Data Surface
type
5=Parametric 4 Point Data Surface
6=Along Coordinates Data Surface
7=4 Point Bilinear Data Surface
8=8 Point Trilinear Data Surface
9=2 Point Linear Data Surface
10=Arbitrary 3-D Location Data Surface
11=Output Map Data Surface
Remarks/Usage:

Example:
API-1637

5.22 Element Objects


Element objects correspond to the elements in your model. They are derived from Entity objects,
so, in addition to the properties and methods described here, all of the properties and methods
defined for Entity objects are also available for Element objects. For more information, see Section
5.1, "Common Entity Properties and Methods".
Use the feElem method of the FEMAP Application object to create Element objects.

5.22.1 Element Object Properties


Elements are always stored with a SetID=1, and the ID equal to the element ID.
In this table, you will see some properties that list two names - one of which is an array, the other a
Variant. Refer to Section 1.2.7, "Multiple Definitions of Array Properties" for more information.

Property Description
INT4 color The element color.
INT4 layer The layer associated with the element.
Type of element:
Rod=1, Bar=2, Tube=3, Link=4, Beam=(Lin=5 Para=37),
Spring/Damper=6, DOFSpring=7, CurvedBeam=8, Gap=9,
PlotOnly=10, ShearPanel (Lin=11 Para=12), Membrane
(Lin=13 Para=14), BendingOnly (Lin=15 Para=16), Plate
INT4 type (Lin=17 Para=18), PlaneStrain (Lin=19 Para=20), Laminate
(Lin=21 Para=22), Axisymmetric (Lin=23 Para=24), Solid
(Lin=25 Para=26), Mass=27, MassMatrix=28, Rigid=29, Stiff-
nessMatrix=30, CurvedTube=31, PlotOnlyPlate=32, Slide-
Line=33, Contact=34, Axisymmetric Shell (Lin=35 Para=36),
Weld/Fastener=38, Solid Laminate (Lin=39, Para=40)
ID of property referenced by the element.This is not required
INT4 propID for certain property types, like plot-only and rigid elements.
These elements have no properties or materials.
The shape of the element:
0=Line2, 1=Line3, 2=Tri3, 3=Tri6, 4=Quad4, 5=Quad8, 6=Tet-
INT4 topology ra4, 7=Wedge6, 8=Brick8, 9=Point, 10=Tetra10, 11=Wedge15,
12=Brick20, 13=Rigid, 14= Pyramid5, 15=MultiList, 16=Con-
tact, 17=Weld, 18=Rigid (RBE1 elements only), 19=Pyramid13
The orientation node for elements like bars and beams that
INT4 orientID require an orientation. This can be 0, in which case the orient
property specifies an orientation vector.
If True, the MaterialAngle property has been set using an
BOOL MaterialAngleFlag Angle. This property has been superseded by the MaterialOri-
entType property
API-1638

Property Description
The material orientation for the element. 0=None, 1=Oriented
INT4 MaterialOrientType using an Angle ( MaterialAngle property ), 2=Oriented using a
Coordinate System ( Material CSys property )
The ID of the coordinate system used for material orientation if
INT4 MaterialCSys
the MaterialOrientType=2
The ID of the geometry associated to this element. This is a cur-
INT4 geomID veID for line elements, a surface ID for planar elements, and a
solid/volume ID for solid elements.
INT4 formulation[0..1]
or Additional flags defining the element type.
VARIANT vformulation
INT4 contact[0..1]
or Array of material IDs for each ply in a laminate.
VARIANT vcontact
INT4 node[0..19] Nodes referenced by element. This array does not contain the
or nodes referenced by rigid or slide line elements, which store
VARIANT vnode their nodes in a separate node list. Likewise, contact elements
are handled separately.
REAL8 orient[0..2] Element orientation vector for bar/beam. [0] contains material
or orientation angle for planar elements. In global rectangular
VARIANT vorient coordinates.
REAL8 offset[0..1][0..2] Offset vectors at ends of bar/beam elements. In global rectangu-
or lar coordinates. offset[0][...] is at the first end of the element,
VARIANT voffset offset[1][...] is at the second end.
Release flags at ends of bar/beam elements. release[0][...] is at
BOOL release[0..1][0..5] the first end of the element, release[1][...] is at the second end.
or The 6 second indices correspond to the degrees of freedom.
VARIANT vrelease This is also used for the DOFs of the independent node of Rigid
Element using [0][...]
Additional Properties
Same as the node property but accesses the entire array as a
INT4 nodes[0..19]
Variant.
Flag specifying whether an element with type=Rigid is really
BOOL RigidInterpolate
an interpolation element.
REAL8 RigidThermalExpansion Coefficient of thermal expansion for rigid elements
REAL8 RigidInterpolationFactor Scale factor for Rigid Interpolation elements
REAL8 PlateOffset Specifies the offset value for plate elements.
API-1639

Property Description
Specifies the material orientation angle for planar elements if
REAL8 MaterialAngle
MaterialAngleFlag=True.
INT4 connectTYPE[0..1]
connectTYPE[0] specifies type of weld element.
or
connectTYPE[1] Weld Location by: Projection=0 Axis=1
VARIANT vconnectTYPE
INT4 connectSEG[0..1]
Node, Element or Property ID for weld patch A and B respec-
or
for individual of weld types.
tively
VARIANT vconnectSEG
API-1640

5.22.1.1 Accessing Element Nodes


For most elements, the node property will give you access to the IDs of the nodes that define the
element. Before you can use this data, however, you must know where to find the nodes in the
node array. The following table defines the layout for the various element types:

Topology Array Entries


(optional/midside nodes in parentheses)
Point 0
Line 0,1
Tri3 0,1,2
Tri6 0,1,2, (4,5,6)
Quad4 0,1,2,3
Quad8 0,1,2,3,(4,5,6,7)
Tetra4 0,1,2, 4
Pyramid5 0,1,2,3, 4
Wedge6 0,1,2, 4,5,6
Brick8 0,1,2,3,4,5,6,7
Tetra10 0,1,2, 4 (8,9,10, 12,13,14)
Pyramid13 0,1,2,3, 4 (8,9,10,11, 12,13,14,15)
Wedge15 0,1,2, 4,5,6 (8,9,10, 12,13,14, 16,17,18)
Brick20 0,1,2,3,4,5,6,7,(8,9,10,11,12,13,14,15,16,17,18,19)
RigidList 0=Independent, dependent nodes use element lists, not array entries
MultiList Uses element lists, not array entries
Contact References contact segments, not nodes
Weld Weld Axis = 0,1 SegA= 4,5,6,( 7,8,9,10,11 ) SegB=12,13,14,( 15,16,17,18,19 )
GetAllArray API-1641

5.22.2 Element Object Methods


The following methods are available in addition to the standard entity methods.
5.22.2.1 GetAllArray

GetAllArray
( setID, numElem, entID, propID, elemTYPE, topology, layer, color, formulation, orient,
offset, release, orientSET, orientID, Nodes, connectTYPE, connectSEG )
Description:
This method retrieves arrays of values for a set of elements.
Input:
ID of the set that contains the element IDs to retrieve. If 0,
INT4 setID
retrieve all elements in the model.
Output:
INT4 numElem The number of elements for which data is being returned.
INT4 entID[0..numElem-1] Each entry is the ID of the associated element.
INT4 propID[0..numElem-1] The property ID of the element.
INT4 elemTYPE[0..numElem-1] The element type.
INT4 topology[0..numElem-1] The element topology/shape.
INT4 layer[0..numElem-1] The ID of the layer for the element.
INT4 color[0..numElem-1] The color of the element.
INT4 formulation[0..(2*numElem)-1] The element formulation. There are 2 values per element.
REAL8 orient[0..(3*numElem)-1] The element orientation vector, 3 values per element.
The element offset vectors, 6 values per element. The first 3 at
REAL8 offset[0..(6*numElem)-1]
end 1, the second 3 at end 2.
Flags indicating end releases. 12 values per element. The first
INT4 release[0..(12*numElem)-1] 6 correspond to the elemental degrees of freedom at the first
end of the element. The final 6 to the second end.
Flag indicating whether material orientation is on for this ele-
INT4 orientSET[0..numElem-1]
ment.
INT4 orientID[0..numElem-1] The ID of the third/orientation node for the element.
The node IDs used to define the element. Stored 20 values per
element. Unused nodes are 0. Element types that reference lists
INT4 Nodes[0..(20*numElem)-1] of nodes (like rigid, slide lines or contact), will not have the
nodes from their node lists in this array - you must use other
methods to retrieve those nodes.
API-1642 GetAllArray

GetAllArray
( setID, numElem, entID, propID, elemTYPE, topology, layer, color, formulation, orient,
offset, release, orientSET, orientID, Nodes, connectTYPE, connectSEG )
There are 2 values per element.
INT4 connectTYPE[0..(2*numElem)-
connectTYPE[0] specifies type of weld element( 0 thru 6 )
1]
connectTYPE[1] Weld Location by: Projection=0 Axis=1
There are 2 values per element. Node, Element or Property ID
INT4 connectSEG[0..(2*numElem)-
for weld patch A and B respectively for individual of weld
1]
types.
Error Codes:
FE_FAIL Unable to retrieve data from the selected elements.
Remarks/Usage:
This method is the fastest way to retrieve information about a large number of elements. If a retrieved
element ID does not exist, then all of the values for that element ID will be 0.
Example:
Sub Main
Dim App As femap.model
Set App = GetObject(,"femap.model")

Const MAX_NODES_PER_ELEM = 20

Dim El As Object
Set El = App.feElem
Dim elSet As Object
Set elSet = App.feSet
Dim numElem As Long
Dim entID As Variant
Dim propID As Variant
Dim elemType As Variant
Dim topology As Variant
Dim Lyr As Variant
Dim color As Variant
Dim formulation As Variant
Dim orient As Variant
Dim offset As Variant
Dim release As Variant
Dim orientSET As Variant
Dim orientID As Variant
Dim nodes As Variant
Dim connectTYPE As Variant
Dim connectSEG As Variant

Dim Msg As String


GetAllArray API-1643

GetAllArray
( setID, numElem, entID, propID, elemTYPE, topology, layer, color, formulation, orient,
offset, release, orientSET, orientID, Nodes, connectTYPE, connectSEG )
Dim findElemType As Integer
findElemType = 17 'Linear Plate

rc = elSet.AddRule(findElemType, FGD_ELEM_BYTYPE)
rc = El.GetAllArray(elSet.ID, numElem, entID, propID, _
elemType, topology, Lyr, color, formulation,orient,offset, _
release, orientSET, orientID, nodes, connectTYPE, connectSEG )

App.feAppMessage(FCL_NORMAL, _
" Number of elements: " + Str$(numElem))
For i = 0 To numElem-1
' Load ID, property, type, and nodes into String for display
Msg = Str$(entID(i)) + ", "+Str$(propID(i)) + ", "+ _
Str$(elemType(i))

For u = 0 To MAX_NODES_PER_ELEM-1
If nodes(i*MAX_NODES_PER_ELEM + u) <> 0 Then
Msg = Msg + ", "+ Str$(nodes(i*MAX_NODES_PER_ELEM + u))
End If
Next u
App.feAppMessage(FCM_NORMAL, Msg)
Next i

End Sub
API-1644 GetAllArray2

5.22.2.2 GetAllArray2

GetAllArray2
( setID, numElem, entID, exist, propID, elemTYPE, topology, layer, color, formulation,
orient, offset, release, orientSET, orientID, Nodes, connectTYPE, connectSEG )
Description:
This method retrieves arrays of values for a set of elements, including if an element exists in database
Input:
ID of the set that contains the element IDs to retrieve. If 0,
INT4 setID
retrieve all elements in the model.
Output:
INT4 numElem The number of elements for which data is being returned.
INT4 entID[0..numElem-1] Each entry is the ID of the associated element.
Element existence, True=Element exists, False=Element does
BOOL exist[0..numElem-1]
not exist
INT4 propID[0..numElem-1] The property ID of the element.
INT4 elemTYPE[0..numElem-1] The element type.
INT4 topology[0..numElem-1] The element topology/shape.
INT4 layer[0..numElem-1] The ID of the layer for the element.
INT4 color[0..numElem-1] The color of the element.
INT4 formulation[0..(2*numElem)-1] The element formulation. There are 2 values per element.
REAL8 orient[0..(3*numElem)-1] The element orientation vector, 3 values per element.
The element offset vectors, 6 values per element. The first 3 at
REAL8 offset[0..(6*numElem)-1]
end 1, the second 3 at end 2.
Flags indicating end releases. 12 values per element. The first
INT4 release[0..(12*numElem)-1] 6 correspond to the elemental degrees of freedom at the first
end of the element. The final 6 to the second end.
Flag indicating whether material orientation is on for this ele-
INT4 orientSET[0..numElem-1]
ment.
INT4 orientID[0..numElem-1] The ID of the third/orientation node for the element.
The node IDs used to define the element. Stored 20 values per
element. Unused nodes are 0. Element types that reference lists
INT4 Nodes[0..(20*numElem)-1] of nodes (like rigid, slide lines or contact), will not have the
nodes from their node lists in this array - you must use other
methods to retrieve those nodes.
GetAllArray2 API-1645

GetAllArray2
( setID, numElem, entID, exist, propID, elemTYPE, topology, layer, color, formulation,
orient, offset, release, orientSET, orientID, Nodes, connectTYPE, connectSEG )
There are 2 values per element.
INT4 connectTYPE[0..(2*numElem)-
connectTYPE[0] specifies type of weld element( 0 thru 6 )
1]
connectTYPE[1] Weld Location by: Projection=0 Axis=1
There are 2 values per element. Node, Element or Property ID
INT4 connectSEG[0..(2*numElem)-
for weld patch A and B respectively for individual of weld
1]
types.
Error Codes:
FE_FAIL Unable to retrieve data from the selected elements.
Remarks/Usage:
This method is the fastest way to retrieve information about a large number of elements. If a retrieved
element ID does not exist, then all of the values for that element ID will be 0. If it is known that all of the
elements in the element set exist, use GetAllArray.
Example:
None
API-1646 PutAllArray

5.22.2.3 PutAllArray

PutAllArray
( numElem, entID, propID, elemTYPE, topology, layer, color, formulation, orient, offset,
release, orientSET, orientID, Nodes, connectTYPE, connectSEG )
Description:
This method stores/creates multiple elements based on the values passed in various arrays.
Input:
The number of elements to create - the number of entries in
INT4 numElem
the arrays
INT4 entID[0..numElem-1] Each entry is the ID of the associated element to be created
INT4 propID[0..numElem-1] The property ID of the element.
INT4 elemTYPE[0..numElem-1] The element type.
INT4 topology[0..numElem-1] The element topology/shape.
INT4 layer[0..numElem-1] The ID of the layer for the element.
INT4 color[0..numElem-1] The color of the element.
INT4 formulation[0..(2*numElem)-1] The element formulation. There are 2 values per element.
REAL8 orient[0..(3*numElem)-1] The element orientation vector, 3 values per element.
The element offset vectors, 6 values per element. The first 3
REAL8 offset[0..(6*numElem)-1]
at end 1, the second 3 at end 2.
Flags indicating end releases. 12 values per element. The
INT4 release[0..(12*numElem)-1] first 6 correspond to the elemental degrees of freedom at the
first end of the element. The final 6 to the second end.
Flag indicating whether material orientation is on for this
INT4 orientSET[0..numElem-1]
element.
INT4 orientID[0..numElem-1] The ID of the third/orientation node for the element.
The node IDs used to define the element. Stored 20 values
per element. Unused nodes are 0. Element types that refer-
INT4 Nodes[0..(20*numElem)-1] ence lists of nodes (like rigid, slide lines or contact), can not
be created using this method - you must use Put to create
those element types.
There are 2 values per element.
INT4 connectTYPE[0..(2*numElem)-
connectTYPE[0] specifies type of weld element( 0 thru 6 )
1]
connectTYPE[1] Weld Location by: Projection=0 Axis=1
PutAllArray API-1647

PutAllArray
( numElem, entID, propID, elemTYPE, topology, layer, color, formulation, orient, offset,
release, orientSET, orientID, Nodes, connectTYPE, connectSEG )
There are 2 values per element. Node, Element or Property
INT4 connectSEG[0..(2*numElem)-
ID for weld patch A and B respectively for individual of weld
1]
types.
Output:
Error Codes:
FE_FAIL Unable to create the specified elements.
Remarks/Usage:
This method is the fastest way to create a large number of elements.
Example:
None
API-1648 GetNodeList

5.22.2.4 GetNodeList

GetNodeList
( listINDEX, nodecount, node, face, weight, dof )
Description:
This method retrieves information from the node lists on rigid and slide line elements.
Input:
The ID of the list to retrieve. For rigid elements, only list 0 is avail-
INT4 listINDEX
able. For slide lines, lists 0 and 1 are available.
Output:
The number of entries in the other arrays (except dof, which has
INT4 nodecount
6*nodecount entries).
INT4 node[0..N] The IDs of the nodes in the list.
INT4 face[0..N] The face numbers of any elements (not used).
The weighting factors associated with the nodes for interpolation ele-
REAL8 weight[0..N]
ments.
The degree of freedom flags associated with the nodes. This array
has six sequential entries for each node. For example, node[0] has
INT4 dof[0..6N]
entries dof[0]..dof[5] as its degree of freedom flags. node[1] has
dof[6]..dof[11], and so on.
Return Code:
FE_NOT_EXIST There are no entries in the list.
FE_NOT_AVAILABLE You have requested an invalid list, check listINDEX.
Remarks/Usage:
This method simply retrieves the information about the node lists from the current object. You must first
load that data - either using the Get( ) method, or by loading it yourself with PutNodeList( ).
Example:
None
PutNodeList API-1649

5.22.2.5 PutNodeList

PutNodeList
( listINDEX, nodecount, node, face, weight, dof )
Description:
This method loads information into the node lists on rigid and slide line elements.
Input:
The ID of the list to retrieve. For rigid elements, only list 0 is avail-
INT4 listINDEX
able. For slide lines, lists 0 and 1 are available.
The number of entries in the other arrays (except dof, which has
INT4 nodecount
6*nodecount entries).
INT4 node[0..N] The IDs of the nodes in the list.
INT4 face[0..N] The face numbers of any elements (not used - must be NULL)
The weighting factors associated with the nodes for interpolation ele-
REAL8 weight[0..N]
ments.
The degree of freedom flags associated with the nodes. This array
has six sequential entries for each node. For example, node[0] has
INT4 dof[0..6N]
entries dof[0]..dof[5] as its degree of freedom flags. node[1] has
dof[6]..dof[11], and so on.
Output:
None
Return Code:
FE_NOT_AVAILABLE You have requested an invalid list, check listINDEX.
Remarks/Usage:
This method stores information into the lists of the current object. Any previous list information in that
object is lost. This method does not store that information to the model database. After using this func-
tion, you must call Put( ) if you want to store the updated lists in the database.
Example:
None
API-1650 ClearNodeList

5.22.2.6 ClearNodeList

ClearNodeList
( listINDEX )
Description:
This method clears node lists on rigid and slide line elements.
Input:
The ID of the list to retrieve. For rigid elements, only list 0 is avail-
INT4 listINDEX able. For slide lines, lists 0 and 1 are available. You may specify -1 to
clear all lists in one call.
Output:
None
Return Code:
None
Remarks/Usage:
If there are node lists in the object, either because you added them with PutNodeList(), or because you
called Get() on an element that had lists, this method will simply erase the selected list. You can use this
if you want to clear the lists because you want to reuse the object for a different element type.
Example:
None
Prop API-1651

5.22.2.7 Prop

Prop
( void )
Description:
This method creates and returns a Property object that is loaded with the property data referenced by an
element.
Input:
None
Output:
None
Return Code:
None
Remarks/Usage:

Example:
This method must be used with a Set statement to define the Property object.
Sub Main
Dim App As femap.model
Set App = GetObject(,"femap.model")

Dim pr As Prop
Dim el As Elem
Set el = App.feElem

el.Get(83)
Set pr = el.Prop

App.feAppMessage(FCM_NORMAL, "Property: " + Str$(pr.ID)+ _
" "+pr.title)

End Sub


This sequence creates the pr Property object with the property data that is referenced by element 83.
API-1652 Matl

5.22.2.8 Matl

Matl
( void )
Description:
This method creates and returns a Material object that is loaded with the material data referenced by an
element.
Input:
None
Output:
None
Return Code:
None
Remarks/Usage:

Example:
This method must be used with a Set statement to define the Material object.
Sub Main()
Dim App As femap.model
Set App = GetObject(,"femap.model")

Dim pr As Prop
Dim mt As Matl
Set el = App.feElem

el.Get(83)
Set mt = el.Matl

App.feAppMessage(FCM_NORMAL, "Material: " + Str$(mt.ID)+ _
" "+mt.title)

End Sub

This sequence creates the mt Material object with the property data that is referenced by element 83.
GetCentroid API-1653

5.22.2.9 GetCentroid

GetCentroid
( cgXYZ )
Description:
This method returns the centroid of the current element
Input:
None
Output:
The coordinates of the centroid of the element. Always reported in
REAL8 cgXYZ[0..2]
Global Rectangular coordinates.
Return Code:
None
Remarks/Usage:
None
Example:
None
API-1654 GetFaceCentroid

5.22.2.10 GetFaceCentroid

GetFaceCentroid
( nFace, cgXYZ )
Description:
This method returns the centroid of a selected element face.
Input:
INT4 nFace The identifier of the face that you want to select.
Output:
The coordinates of the centroid of the element face. Always reported
REAL8 cgXYZ[0..2]
in Global Rectangular coordinates.
Return Code:
None
Remarks/Usage:
The face identifiers are the same as the face numbers used when applying elemental loads. These are
shown in the Element Reference in the User Manual. Only planar or solid elements can be used, but the
edges of planar elements are valid.
Example:
None
GetFaceNormal API-1655

5.22.2.11 GetFaceNormal

GetFaceNormal
( nFace, normalXYZ )
Description:
This method returns the normal vector of a selected element face.
Input:
INT4 nFace The identifier of the face that you want to select.
Output:
The vector components of the normal of the element face. Always
REAL8 normalXYZ[0..2] reported in Global Rectangular coordinates. These vector compo-
nents are always normalized.
Return Code:
None
Remarks/Usage:
The face identifiers are the same as the face numbers used when applying elemental loads. These are
shown in the Element Reference in the User Manual. Only planar or solid elements can be used, but the
edges of planar elements are valid.

For nonplanar faces, an approximate normal is computed as an average normal of the normals at the
face corners.
Example:
None
API-1656 GetFaceArea

5.22.2.12 GetFaceArea

GetFaceArea
( nFace, dArea )
Description:
This method returns the area of a selected element face.
Input:
INT4 nFace The identifier of the face that you want to select.
Output:
REAL8 dArea The area of the element face.
Return Code:
None
Remarks/Usage:
The face identifiers are the same as the face numbers used when applying elemental loads. These are
shown in the Element Reference in the User Manual. Only planar or solid elements can be used, but the
edges of planar elements are valid. If the element has thickness, its average thickness is used along with
the edge length to compute edge area. For axisymmetric elements, a thickness of 1.0 is used.
Example:
None
GetFaceNodes API-1657

5.22.2.13 GetFaceNodes

GetFaceNodes
( nFace, nodes )
Description:
This method returns the area of a selected element face.
Input:
INT4 nFace The identifier of the face that you want to select.
Output:
The nodes used to define the selected face. Corner nodes always
INT4 nodes[0..7] come first, followed by midside nodes. Most faces use less than 8
nodes, and the final node IDs will all be 0.
Return Code:
None
Remarks/Usage:
This method only works for Planar (Tria3, Tria6, Quad4 and Quad8) and Solid (Tetra4, Tetra10,
Wedge6, Wedge15, Brick8 and Brick20) shaped elements.

The face identifiers are the same as the face numbers used when applying elemental loads. These are
shown in the Element Reference in the User Manual. Only planar or solid elements can be used, but the
edges of planar elements are valid.
Example:
None
API-1658 GetEdgeNodes

5.22.2.14 GetEdgeNodes

GetEdgeNodes
( nEdge, n1, n2, nmid )
Description:
This method returns the nodes on the selected edge of the element.
Input:
INT4 nEdge The identifier of the edge that you want to select.
Output:
INT4 n1 The first node used to define the edge
INT4 n2 The last node used to define the edge
INT4 nmid The midside node on the edge (0 if edge has no midside node)
Return Code:
None
Remarks/Usage:
This method only works for Line (Line2 and Line3), Planar (Tria3, Tria6, Quad4 and Quad8) and Solid
(Tetra4, Tetra10, Wedge6, Wedge15, Brick8 and Brick20) shaped elements.

For Line elements, only edge 1 is available. For Planar elements, edge 1 connects the first and second
nodes on the element, and proceed in order around the element connectivity. For Solid elements, the first
edges are around the bottom face, followed by the edges connecting the bottom and top faces, and
finally the top face edges.
Example:
None
IsParabolic API-1659

5.22.2.15 IsParabolic

IsParabolic
( void )
Description:
This method indicates if the loaded element is parabolic or not
Input:
None
Output:
None
Return Code:
FE_OK Element is Parabolic
FE_FAIL Element is not Parabolic
Remarks/Usage:
None
Example:
None
API-1660 Thickness

5.22.2.16 Thickness

Thickness
( dAvg, dAtC1, dAtC2, dAtC3, dAtC4 )
Description:
This method returns the thickness of the element.
Input:
None
Output:
REAL8 dAvg The average thickness of the element.
REAL8 dAtC1 The element thickness at corner 1.
REAL8 dAtC2 The element thickness at corner 2.
REAL8 dAtC3 The element thickness at corner 3.
REAL8 dAtC4 The element thickness at corner 4.
Return Code:
FE_OK
FE_BAD_TYPE Element type does not have thickness.
FE_NOT_AVAILABLE Element does not reference a property.
Remarks/Usage:
None
Example:
None
Length API-1661

5.22.2.17 Length

Length
( dLength )
Description:
This method returns the length of a Line Element.
Input:
None
Output:
REAL8 dLength The element Length
Return Code:
FE_BAD_TYPE Element is not correct type.
Remarks/Usage:
None
Example:
None
API-1662 Area

5.22.2.18 Area

Area
( dAreaA, dAreaB )
Description:
This method returns the area at EndA and EndB of Line Element.
Input:
None
Output:
REAL8 dAreaA The element area at EndA.
REAL8 dAreaB The element area at EndB.
Return Code:
FE_OK
FE_BAD_TYPE Element is not correct type.
FE_NOT_AVAILABLE Element does not reference a property.
Remarks/Usage:
None
Example:
None
Inertia API-1663

5.22.2.19 Inertia

Inertia
( dI1A, dI2A, dI12A, dJA, dI1B, dI2B, dI12B, dJB )
Description:
This method returns line element properties at EndA and EndB.
Input:
None
Output:
REAL8 dI1A Area Moment of Inertia for plane 1 EndA
REAL8 dI2A Area Moment of Inertia for plane 2 EndA
REAL8 dI12A Cross product of inertia at EndA
REAL8 dIJA Torsional constant EndA
REAL8 dI1B Area Moment of Inertia for plane 1 EndB
REAL8 dI2B Area Moment of Inertia for plane 2 EndB
REAL8 dI12B Cross product of inertia at EndB
REAL8 dIJB Torsional constant EndB
Return Code:
FE_OK
FE_BAD_TYPE Element is not a line type.
FE_NOT_AVAILABLE Element does not reference a property.
Remarks/Usage:
None
Example:
None
API-1664 GetMinMaxEdgeLength

5.22.2.20 GetMinMaxEdgeLength

GetMinMaxEdgeLength
( dMinLen, dMaxLen )
Description:
Finds the minimum and maximum length of edges in the element
Input:
None
Output:
REAL8 dMinLen The minimum edge length
REAL8 dMaxLen The maximum edge length
Return Code:
FE_OK
Element is not a supported type - only line, planar and solid elements
FE_INVALID
are supported
Remarks/Usage:
None
Example:
None
SetPlateThickness API-1665

5.22.2.21 SetPlateThickness

SetPlateThickness
( dAtC1, dAtC2, dAtC3, dAtC4 )
Description:
Sets the element corner thickness on Plate elements
Input:
REAL8 dAtC1 The element thickness at corner 1
REAL8 dAtC2 The element thickness at corner 2
REAL8 dAtC3 The element thickness at corner 3
REAL8 dAtC4 The element thickness at corner 4
Output:
None
Return Code:
Element is not a supported type - only plate and plane strain elements
FE_BAD_TYPE
are supported
Remarks/Usage:
None
Example:
None
API-1666 ( dAtC1, dAtC2, dAtC3, dAtC4 )
API-1667

5.23 Freebody Objects


Freebody Objects refer to Freebody Entities in the model, which are used to create freebody dia-
grams in the model for post-porcessing. For more information, see Section 5.1, "Common Entity
Properties and Methods".
Use the feFreebody method of the FEMAP Application object to create Freebody objects.

5.23.1 Freebody Object Properties


Freebody entities are always stored with a SetID=1, and the ID equal to the Freebody ID.
In this table, you will see some properties that list two names - one of which is an array, the other a
Variant. Refer to Section 1.2.7, "Multiple Definitions of Array Properties" for more information.

Property Description
STRING title Freebody title (maximum 79 characters)
INT4 CSys ID of coordinate system used by the Freebody
Use nodal output coordinate system for freebody nodal vectors.
BOOL UseNodalOutputCS
Freebody coordinate system is used when FALSE
INT4 Layer ID of the layer containing the Freebody
The Display Mode of the Freebody (0=Freebody, 1=Interface
INT4 DisplayMode
Load, 2=Section Cut). Use enum zFbdDisplayMode
Sets the Entity Selection Mode of the Freebody (-1=Group
INT4 Group Select: use Active Group, 0=Entity Select, 1+ = Group Select:
use value to specify Group ID)
Section Cut Entity Selection Mode. 0=plane/normal,
INT4 SectionMode 1=plane/vector, 2=vector, 3=curve.
Use enum zFbdSectionMode
REAL8 SectionPlaneBase[0..2] Coordinates, in Global Rectangular Coordinate System, of sec-
or tion cut plane base. Only used when section cut mode (Section-
VARIANT vSectionPlaneBase Mode) is 0 (plane/normal) or 1 (plane/vector)
REAL8 SectionPlaneNormal[0..2] Unit vector for section cut plane normal. Only used when sec-
or tion cut mode (SectionMode) is 0 (plane/normal) or 1 (plane/
VARIANT vSectionPlaneNormal vector)
REAL8 SectionVectorBase[0..2] Coordinates, in Global Rectangular Coordinate System, of sec-
or tion cut vector base. Only used when section cut mode (Sec-
VARIANT vSectionVectorBase tionMode) is 1 (plane/vector) or 2 (vector)
REAL8 SectionVectorTip[0..2] Unit vector for section cut vector normal. Only used when
or section cut mode (SectionMode) is 1 (plane/vector) or 2 (vec-
VARIANT vSectionVectorTip tor)
ID of curve, only used when section cut mode (SectionMode) is
INT4 SectionCurve
3 (curve)
API-1668

Property Description
REAL8 SectionTolerance Entity search tolerance for section cut plane. Value > 0.0
Revere the normal direction of the section cut plane when
searching for entities. Does not modify the normal values in the
BOOL SectionReverse
object, only the search direction used internally to determine
freebody entities
Search radius for freebody section cut entities. Entities must be
less than this distance from the cutting plane base to be
REAL8 SectionRadius
included in the freebody (centroidal location is used for element
location). Value > 0.0
Limit entities for freebody section cut to those contained within
BOOL SectionLimitToGroup a specified group. Both nodes and elements must exist in the
specified group to be considered
INT4 SectionGroup ID of group to limit freebody section cut entities
Include elements clipped by cutting plane in as freebody ele-
BOOL SectionIncludeClippedElem
ments
Rotate nodal sums and total summation to tangent vector at sec-
BOOL SectionRotateSums
tion cut plane/path intersection
Location of total summation vector when in section cut mode.
INT4 SectionSumLocation 0=plane/path intersection, 1=centroid, 2=static location
(defined x, y, z). Use enum zFbdSectionSumLoc
REAL8 SectionLocation Location, along section cut path, of cutting plane
Sets the color of the Node Marker(s) for the Freebody. Only
INT4 NodeMarkerColor used when the Color Mode for the Node Makers is set to Free-
body Entity Color.
Array of Total Summation Vector display mode.
TotalVectorMode[0] = Force Vector Display mode
INT4 TotalVectorMode[0..1]
TotalVectorMode[1] = Moment Vector Display mode
or
VARIANT vTotalVectorMode
Set value to 0 = Off, 1 = Display Components, 2 = Display
Resultants
Array of on/off flags for Displayed Forces and Displayed
BOOL ShowTotalVec[0..5] Moments for Total Summation Vector
or ShowTotalVec[0] = FX, ShowTotalVec[1] = FY,
VARIANT vShowTotalVec ShowTotalVec[2] = FZ, ShowTotalVec[3] = MX,
ShowTotalVec[4] = MY, ShowTotalVec[5] = MZ
API-1669

Property Description
Array of on/off flags for Summed Components for Total Sum-
mation Vector:
SumComponents[0] = Forces X
BOOL SumComponents[0..5]
SumComponents[1] = Forces Y
or
SumComponents[2] = Forces Z
VARIANT vSumComponents
SumComponents[3] = Moments X
SumComponents[4] = Moments Y
SumComponents[5] = Moments Z
Array of Freebody Entity Colors for Total Summation Vector.
TotalVecColor[0] = Total Force Vector Freebody Color
INT4 TotalVecColor[0..1]
TotalVecColor[1] = Total Moment Vector Freebody Color
or
VARIANT vTotalVecColor
Only used when the Color Mode for the Total Force Vector
and/or Total Moment Vector is set to Freebody Entity Color
X coordinate of freebody total summation vector in coordinate
REAL8 x
system 0. Only used when Display Mode = Interface Load.
Y coordinate of freebody total summation vector in coordinate
REAL8 y
system 0. Only used when Display Mode = Interface Load.
Z coordinate of freebody total summation vector in coordinate
REAL8 z
system 0. Only used when Display Mode = Interface Load.
Array of Nodal Vector(s) display mode.
NodalVectorMode[0] = Force Vector Display mode
INT4 NodalVectorMode[0..1]
NodalVectorMode[1] = Moment Vector Display mode
or
VARIANT vNodalVectorMode
Set value to 0 = Off, 1 = Display Components, 2 = Display
Resultants
Array of on/off flags for Displayed Forces and Displayed
BOOL ShowNodalVec[0..5] Moments for Nodal Vector(s):
or ShowNodalVec[0] = FX, ShowNodalVec[1] = FY,
VARIANT vShowNodalVec ShowNodalVec[2] = FZ, ShowNodalVec[3] = MX,
ShowNodalVec[4] = MY, ShowNodalVec[5] = MZ
Array of Freebody Entity Colors for Total Summation Vector.
NodalVecColor[0] = Nodal Force Vector(s) Freebody Color
INT4 NodalVecColor[0..1] NodalVecColor[1] = Nodal Moment Vector(s) Freebody Color
or
VARIANT vNodalVecColor Only used when the Color Mode for the Nodal Force Vector(s)
and/or Nodal Moment Vector(s) is set to Freebody Entity
Color
API-1670

Property Description
Array of on/off flags for Freebody Contributions From:
SumContributions[0] = Applied
BOOL SumContributions[0..5] SumContributions[1] = Reaction
or SumContributions[2] = MultiPoint Reaction
VARIANT vSumContributions SumContributions[3] = Freebody Elements
SumContributions[4] = Peripheral Elements
SumContributions[5] = Nodal Summation
Allow use of alternate vector for load contribution component
BOOL AlternateApplied
for Applied.
Allow use of alternate vector for load contribution component
BOOL AlternateSPC
for Reaction.
Allow use of alternate vector for load contribution component
BOOL AlternateMPC
for MultiPoint Reaction.
BOOL ReverseTotalValues Reverse values for freebody nodal summation contribution
GetElements API-1671

5.23.2 Freebody Object Methods


The following methods are available in addition to the standard entity methods.
5.23.2.1 GetElements

GetElements
( numElem, elemID )
Description:
This method retrieves the number of elements and an array of element IDs selected by the Freebody.
Output:
INT4 numElem The number of elements for which IDs are being returned.
INT4 elemID[0..numElem-1] The IDs of the elements
Error Codes:
FE_FAIL Unable to retrieve elements from freebody.
FE_INVALID Freebody is not set to entity select mode (group is not 0)
Remarks/Usage:
The method only works when the freebody is set to entity select mode (group is set to 0), otherwise
FE_INVALID is returned.
Example:
None
API-1672 SetElements

5.23.2.2 SetElements

SetElements
( bClear, setID )
Description:
Sets the elements stored in the freebody object.
Input:
BOOL bClear Clear any existing elements from the freebody
INT4 setID Set ID containing elements to add to the freebody
Output:
None
Error Codes:
FE_FAIL Unable to store elements in Freebody entity
FE_INVALID Freebody is not set to entity select mode (group is not 0)
Remarks/Usage:
The method only works when the freebody is set to entity select mode (group is set to 0), otherwise
FE_INVALID is returned.
Example:
None
ClearElements API-1673

5.23.2.3 ClearElements

ClearElements
( void )
Description:
Resets elements stored in the freebody object.
Input:
None
Output:
None
Error Codes:
FE_FAIL No elements in Freebody entity
FE_INVALID Freebody is not set to entity select mode (group is not 0)
Remarks/Usage:
The method only works when the freebody is set to entity select mode (group is set to 0), otherwise
FE_INVALID is returned.
Example:
None
API-1674 GetNodes

5.23.2.4 GetNodes

GetNodes
( numNode, NodeID )
Description:
This method retrieves the number of nodes and an array of node IDs selected by the Freebody.
Output:
INT4 numElem The number of nodes for which IDs are being returned.
INT4 elemID[0..numElem-1] The IDs of the nodes
Error Codes:
FE_FAIL Unable to retrieve nodes from freebody.
FE_INVALID Freebody is not set to entity select mode (group is not 0)
Remarks/Usage:
The method only works when the freebody is set to entity select mode (group is set to 0), otherwise
FE_INVALID is returned.
Example:
None
SetNodes API-1675

5.23.2.5 SetNodes

SetNodes
( bClear, setID )
Description:
Sets the elements stored in the freebody object..
Input:
BOOL bClear Clear any existing nodes from the freebody
INT4 setID Set ID containing nodes to add to the freebody
Output:
None
Error Codes:
FE_FAIL Unable to store nodes in Freebody entity
FE_INVALID Freebody is not set to entity select mode (group is not 0)
Remarks/Usage:
The method only works when the freebody is set to entity select mode (group is set to 0), otherwise
FE_INVALID is returned.
Example:
None
API-1676 ClearNodes

5.23.2.6 ClearNodes

ClearNodes
( void )
Description:
Resets nodes stored in the freebody object.
Input:
None
Output:
None
Error Codes:
FE_FAIL No nodes stored in the freebody object
FE_INVALID Freebody is not set to entity select mode (group is not 0)
Remarks/Usage:
The method only works when the freebody is set to entity select mode (group is set to 0), otherwise
FE_INVALID is returned.
Example:
None
CalculateNodalCenter API-1677

5.23.2.7 CalculateNodalCenter

CalculateNodalCenter
( bUpdate, xyz)
Description:
Calculates the center of the nodes stored in the freebody object and optionally updates the summation
location.
Input:
BOOL bUpdate Update the location of the summation vector
Output:
Center of nodes in freebody in global rectangular coordinate
VARIANT xyz
system
Error Codes:
FE_FAIL No nodes stored in freebody
FE_INVALID Freebody is not set to entity select mode (group is not 0)
Freebody contains nodes that are not available in the data-
FE_NOT_AVAILABLE
base
Remarks/Usage:
The method only works when the freebody is set to entity select mode (group is set to 0), otherwise
FE_INVALID is returned.
Example:
None
API-1678 CalculateSummation

5.23.2.8 CalculateSummation

CalculateSummation
( outsetID, calculations)
Description:
This method is obsolete. For new applications, you should use CalculateSummation2
Calculates the total summation vector based on the settings in the freebody for the given output set.
Input:
INT4 outSetID Output set ID for calculation
Output:
VARIANT calculations Calculated summed forces and moments
Error Codes:
Freebody summation has been calculated with potential
FE_FAIL errors (ie missing contributions of load, missing elements,
etc.) The values need to be verified
FE_NOT_EXIST Specified output set does not exist
FE_INVALID Freebody is not set to interface mode
Remarks/Usage:
The method only works when the freebody is set to entity select mode (group is set to 0), otherwise
FE_INVALID is returned.
Example:
None
CalculateSummation2 API-1679

5.23.2.9 CalculateSummation2

CalculateSummation2
( nSetID, bUseFBCSys, nNumSets, OutSetIDs, calculations)
Description:
Calculates the total summation vector based on the settings in the freebody for one or more output sets
in either the freebody coordinate system, or the global coordinate system
Input:
The ID of a Set object containing a list of output sets. Alter-
INT4 nSetID natively, specify a negative number to specify the ID of a
single output set
Use the freebody coordinate system to return the calcula-
BOOL bUseFBCSys tions. If FALSE, calculations are returned in the global coor-
dinate system
Output:
INT4 nNumSets Number of output sets returned
VARIANT outsetIDs[0..nNumSets-1] IDs of output sets returned
Calculated total summation vectors Fx, Fy, Fz, Mx, My, Mz,
VARIANT
for each output set returned in either the global or freebody
calculations[0..6*(nNumSets)-1]
coordinate system.
Error Codes:
Freebody summation has been calculated with potential
FE_FAIL errors (ie missing contributions of load, missing elements,
etc.). The values may need to be verified.
FE_NOT_EXIST One or more of the specified output sets do not exist
FE_INVALID Freebody is not set to interface mode
Remarks/Usage:
This method only works when the freebody is set to interface load mode, otherwise FE_INVALID is
returned.
Example:
None
API-1680 GetNodalSums

5.23.2.10 GetNodalSums

GetNodalSums
( nSetID, nNumNodes, nNodeIDs, dVals )
Description:
This method Returns values for summations calculated at nodes for all freebody nodes for one or more
output sets.
Input:
The ID of a Set object containing a list of output sets. Alterna-
INT4 nSetID tively, specify a negative number to specify the ID of a single
output set
Output:
INT4 nNumNodes Number of nodes in freebody
INT4 nNodeIDs[0..nNumNodes-1] The IDs of the nodes
Each node returns six values (Fx, Fy, Fz, Mx, My, Mz), so the
INT4 dVals[(0..(6*numElem)-1)
data in the array is stored as 6 * nNumNode
*Number of Output Sets]
This is repeated for each output set requested
Error Codes:
One or more of the specified output sets does not exist in the
FE_NOT_EXIST
database
FE_FAIL The current freebody contains no nodes
Remarks/Usage:
This method returns the values that Femap calculates as a sum at a node, dependent on the selected com-
ponents and contributions. It does not return the solver-calculated nodal imbalance at a node.
Example:
None
GetSumAtNode API-1681

5.23.2.11 GetSumAtNode

GetSumAtNode
( nNodeID, nSetID, dVals )
Description:
Returns the calculated summation at a single node for one or more output sets.
Input:
INT4 nNodeID Node ID
The ID of a Set object containing a list of output sets. Alterna-
INT4 nSetID tively, specify a negative number to specify the ID of a single
output set
Output:
INT4 dVals[0..6*Number of Output
Six values (Fx, Fy, Fz, Mx, My, Mz) for each output set
Sets-1]
Error Codes:
FE_NOT_EXIST Specified node does not exist in the freebody
One or more of the specified output sets does not exist in the
FE_FAIL
database
Remarks/Usage:
This method returns the values that Femap calculates as a sum at a node, dependent on the selected com-
ponents and contributions. It does not return the solver-calculated nodal imbalance at a node.
Example:
None
API-1682 GetSectionCutSums

5.23.2.12 GetSectionCutSums

GetSectionCutSums
( nOutSetSetID, nCuts, pnNumCuts, pCutLocs, pSumLocs, pSums )
Description:
Calculates the total summation for a freebody in section cut mode across one or more output sets
Input:
The ID of a Set that contains output set IDs to use for calculat-
INT4 nOutSetSetID ing total summation. Alternatively, if you specify a negative
value, this is simply the ID of a single output set.
Positive value: number of equally spaced cuts to make

Negative value: ID of Along Coordinates Data Surface to use


for locating section cuts. When section cut (SectionMode) is 0
INT4 nCuts (plane/normal), 1 (plane/vector) or 2 (vector), specify XYZ
values in the coordinate system specified for the total summa-
tion vector. When section cut is (SectionMode) is 3 (curve),
specify a value between 0 and 1 representing the distance
along the curve for the X value in the Data Surface.
Output:
INT4 pnNumCuts Number of section cuts returned
REAL8 pCutLocs[0..3*Number of Section cut locations in coordinate system specified for total
Output Sets-1] summation. Three values (X, Y, Z) for each section cut
REAL8 pSumLocs[0..3*Number of Total summation location in coordinate system specified for
Output Sets-1] total summation. Three values (X,Y, Z) for each section cut
REAL8 pSums[0..6*Number of Out- Total summation for each section cut. Six values (Fx, Fy, Fz,
put Sets-1] Mx, My, Mz) for each section cut
Error Codes:
FE_FAIL Unable to calculate section cut summations
FE_INVALID Freebody is not in section cut mode
Data surface is specified and is not along coordinates, or data
FE_BAD_DATA
surface contains invalid data
Remarks/Usage:
Only valid for use with freebodies in section cut mode
Example:
None
SetLocationFromCoord API-1683

5.23.2.13 SetLocationFromCoord

SetLocationFromCoord
( x, y, z, pLoc )
Description:
Set the section cut location by specifying x, y, z coordinates
Input:
REAL8 x
REAL8 y Coordinates in global rectangular coordinate system
REAL8 z
Output:
REAL8 pLoc Calculated location
Return Code:
FE_FAIL Freebody is not in section cut mode
Freebody section cut is not defined by plane/normal, plane/vector or
FE_INVALID
vector
Remarks/Usage:
Only valid for use with freebody entities in section cut mode with section cut (SectionMode) defined by
plane/normal (0), plane/vector (1), or vector (2).
Example:
None
API-1684

5.24 Function Objects


Function objects correspond to the functions in your model. They are derived from Entity objects,
so, in addition to the properties and methods described here, all of the properties and methods
defined for Entity objects are also available for Function objects. For more information, see Sec-
tion 5.1, "Common Entity Properties and Methods".
Use the feFunction method of the FEMAP Application object to create Function objects.

5.24.1 Function Object Properties


Functions are always stored with a SetID=1, and the ID equal to the function ID.

Property Description
STRING title The function title (maximum 79 characters).
Type of function: 0=Dimensionless, 1=vs. Time, 2=vs. Temp,
3=vs. Freq, 4=vs. Stress, 5=Func vs. Temp, 6=Struct Damp vs.
Freq, 7=Crit Damp vs. Freq, 8=Q Damp vs. Freq, 9=vs. Strain
Rate, 10=Func vs. Strain Rate, 11=vs. Curve Length, 12=vs.
Curve Param, 13=Stress vs. Strain, 14=Stress vs. Plastic Strain,
INT4 type
15=Function vs Value, 16=Function vs. Critical Damp-
ing,17=vs. Angle of Incidence,18=vs. Direction of Inci-
dence,19=vs. Temp (TABLEM1 Linear,Linear),20=vs. Temp
(TABLEM1 Log,Linear), 21=vs. Temp (TABLEM1 Lin-
ear,Log),22=vs. Temp (TABLEM1 Log,Log).

5.24.2 Function Object Methods


There following methods are available in addition to the standard entity methods.
GetFunctionList API-1685

5.24.2.1 GetFunctionList

GetFunctionList
( listcount, x, y )
Description:
This method retrieves function pair information.
Input:
None
Output:
INT4 listcount The number of entries in the other arrays.
REAL8 x[0..N]
The x and y values for the function..
REAL8 y[0..N]
Return Code:
FE_NOT_EXIST There are no entries in the list.
Remarks/Usage:
This method simply retrieves the information about the function pairs from the current object. You must
first load that data - either using the Get( ) method, or by loading it yourself with PutFunctionList( ).
Data retrieved from the database using Get, will always be in order of ascending X values.
Example:
None
API-1686 PutFunctionList

5.24.2.2 PutFunctionList

PutFunctionList
( listcount, x, y )
Description:
This method saves function pair information.
Input:
INT4 listcount The number of entries in the other arrays.
REAL8 x[0..N]
The x and y values for the function.
REAL8 y[0..N]
Output:
Return Code:
None
Remarks/Usage:
This method stores information into the list of the current object. Any previous list information in that
object is lost. This method does not store that information to the model database. After using this func-
tion, you must call Put( ) if you want to store the updated list in the database. Data to be stored in the
database will be sorted into order of increasing x values. It is not required, however, Put performance
will be improved if you provide the x,y pairs in sorted order.
Example:
None
GetValue API-1687

5.24.2.3 GetValue

GetValue
( nMethod, x, y )
Description:
This method evaluates the function to find a y value given an x value.
Input:
The method to be used to find the y value.
0=Before (return the y value of the function at the x value before the
specified x)
1=After (return the y value of the function at the xvalue after the
specified x )
2=Closest (return the y value of the function at the x value closest to
the specified x)
3=Interpolate, Linear-Linear (return the y value at the specified "x"
location by linearly interpolating the function x values and the func-
INT4 nMethod tion y values).
4=Interpolate, Log-Log (return the y value at the specified "x" loca-
tion by linearly interpolating the log of the function x values and the
log of the function y values).
5=Interpolate, Linear-Log (return the y value at the specified "x"
location by linearly interpolating the function x values and the log of
the function y values).
6=Interpolate, Log-Linear (return the y value at the specified "x"
location by linearly interpolating the log of the function x values and
the function y values).
REAL8 x The location where the function is evaluated
Output:
REAL8 y The function value at the specified x location
Return Code:
If you use nMethod=0 then x must be above the lowest x value in the
FE_NOT_AVAILABLE function, or for nMethod=1 x must be below the highest x value, or
else the function can not be evaluated with this method.
Evaluation failed. Probably because insufficient (or no) points have
FE_FAIL
been defined in the function.
Remarks/Usage:
The Closest method returns one of the endpoints of the function if you specify an x value that is outside
the defined range of the function. The Interpolate method uses the first/last two points in the function
and linearly extrapolates to find values beyond the defined range of the function. If you attempt to inter-
polate on a function with only one defined value, you will simply get that value for every location.
API-1688

5.25 GFXArrow Objects


GFXArrow objects correspond to user-creatable graphics arrows in your model. They are derived
from Entity objects so, in addition to the properties and methods described here, all of the proper-
ties and methods defined for Entity objects are also available for nodes. For more information, see
Section 5.1, "Common Entity Properties and Methods".
Simply creating user-graphics objects will not make them visible in your model. You must also
use the methods described in Section 3.17, "User Graphics Methods", to select the data/set to dis-
play and the views where you want to display your graphics.
Use the feGFXArrow method of the FEMAP Application object to create GFXArrow objects.

5.25.1 GFXArrow Object Properties


User graphics data can be stored in any Set, but only one set can be selected for display at any
time.
In this table, you will see some properties that list two names - one of which is an array, the other a
Variant. Refer to Section 1.2.7, "Multiple Definitions of Array Properties" for more information.

Property Description
REAL8 x These are the coordinates of the end of an arrow. They are
always specified in global rectangular coordinates.
REAL8 y
REAL8 z
REAL8 dx These are the direction components of the arrow. They are
always specified in global rectangular coordinates.
REAL8 dy
REAL8 dz
REAL8 length The length of the arrow
REAL8 lengthmode 0=Absolute (length is a fixed size in model units), 1=Scaled
(length is scaled to view vector size)
INT4 layer The ID of the layer associated with the arrow.
INT4 color The arrow color.
INT4 style The arrow/arrowhead style (0=Line, 1=Solid, 2=Double-
headed line, 3=Double-headed Solid, 4=Reversed Double-
headed line, 5=Reversed Double-headed Solid)
REAL8 xyz[0..3] Accesses the coordinates of the end of an arrow as an array or
or Variant.
VARIANT vxyz
REAL8 dxyz[0..3] Accesses the direction components of the end of an arrow as an
or array or Variant.
VARIANT vdxyz
PutAll API-1689

5.25.2 GFXArrow Object Methods


5.25.2.1 PutAll

PutAll
( entID, x, y, z, dx, dy, dz, length, lengthmode, layer, color, style )
Description:
This method stores an entity with the specified ID.
Input:
INT4 entID The ID of the entity to store.
REAL8 x
REAL8 y
REAL8 z
REAL8 dx
REAL8 dy
REAL8 dz Refer to the property descriptions for each of these items.
REAL8 length
INT4 lengthmode
INT4 layer
INT4 color
INT4 style
Output:
None
Return Code:
FE_FAIL Unable to store the entity with the specified ID.
Remarks/Usage:
Unlike the standard Put method, this function loads all of the properties as arguments. If you are updat-
ing all of the properties before storing an entity, this function will be faster than multiple calls to load
each property individually.
Example:
None
API-1690 PutAllArray

5.25.2.2 PutAllArray

PutAllArray
( numAr, entID, xyz, dxyz, length, lengthmode, layer, color, style )
Description:
This method stores multiple GFXArrow entities with the specified data.
Input:
The number of GFXArrows to create (i.e. the number of entries in
INT4 numAr
the arrays)
INT4 entID[0..numAr-1] The IDs of the GFXArrows to store.
REAL8 xyz[0..(3*numar)-1]
REAL8 dxyz[0..(3*numar)-1]
REAL8 length[0..numAr-1] Refer to the property descriptions for each of these items. xyz is an
array of the entity coordinates. In the array, there must be 3 entries
INT4 lengthmode[0..numAr-1] for a entity, followed by the 3 for the next entity, ... .The dxyz array is
stored similarly. The other arrays have just one entry per arrow. All
INT4 layer[0..numAr-1] must be in global rectangular coordinates.
INT4 color[0..numAr-1]
INT4 style[0..numAr-1]
Output:
None
Return Code:
Unable to store the entity with the specified ID. Probably unable to
FE_FAIL
allocate memory for all of the arrays.
Remarks/Usage:
This is the fastest Put method if you have a large number of items to create, but still need full control
over all options. All data can be accumulated in arrays and then transferred in one call.
Example:
None
PutCoordArray API-1691

5.25.2.3 PutCoordArray

PutCoordArray
( numAr, xyz, dxyz, length, lengthmode, layer, color, style )
Description:
This is a simpler version of PutAllArray that allows multiple entities to be stored.
Input:
The number of GFXArrows to create (i.e. the number of entries in
INT4 numAr
the arrays)
REAL8 xyz[0..(3*numar)-1]
REAL8 dxyz[0..(3*numar)-1] Refer to the property descriptions for each of these items. xyz is an
REAL8 length[0..numAr-1] array of the entity coordinates. In the array, there must be 3 entries
for a entity, followed by the 3 for the next entity, ... .The dxyz array is
INT4 lengthmode stored similarly. The other arrays have just one entry per arrow. All
must be in global rectangular coordinates.
INT4 layer
INT4 color
INT4 style
Output:
None
Return Code:
Unable to store the entity with the specified ID. Probably unable to
FE_FAIL
allocate memory for all of the arrays.
Remarks/Usage:
This method is even faster than PutAllArray, and requires less memory, it does not however give you
full control. Entities are simply stored in the next available ID, and the same layer, color... are used for
every entity - only the coordinates are input as an array.
Example:
None
API-1692 DeleteAll

5.25.2.4 DeleteAll

DeleteAll
( bAllSets, nSetID )
Description:
Deletes all GFXArrows in one or more sets
Input:
If True, all entities, in all sets are deleted. If False, then all entities in
BOOL bAllSets
Set nSetID are deleted
INT4 nSetID The setID to delete if bAllSets=False
Output:
None
Return Code:
FE_FAIL Unable to delete entities
Remarks/Usage:
None
Example:
None
DeleteAll API-1693
API-1694

5.26 GFXLine Objects


GFXLine objects correspond to user-creatable graphics lines in your model. They are derived from
Entity objects so, in addition to the properties and methods described here, all of the properties and
methods defined for Entity objects are also available for nodes. For more information, see Section
5.1, "Common Entity Properties and Methods".
Simply creating user-graphics objects will not make them visible in your model. You must also
use the methods described in Section 3.17, "User Graphics Methods", to select the data/set to dis-
play and the views where you want to display your graphics.
Use the feGFXLine method of the FEMAP Application object to create GFXLine objects.

5.26.1 GFXLine Object Properties


User graphics data can be stored in any Set, but only one set can be selected for display at any
time.
In this table, you will see some properties that list two names - one of which is an array, the other a
Variant. Refer to Section 1.2.7, "Multiple Definitions of Array Properties" for more information.

Property Description
REAL8 x1 These are the coordinates of the first end of a line. They are
always specified in global rectangular coordinates.
REAL8 y1
REAL8 z1
REAL8 x2 These are the coordinates of the second end of a line. They are
always specified in global rectangular coordinates.
REAL8 y2
REAL8 z2
INT4 layer The ID of the layer associated with the line.
INT4 color The line color.
REAL8 xyz[0..5] Accesses the coordinates of a line as an array or Variant. End 1
or is store first, followed by end 2.
VARIANT vxyz
PutAll API-1695

5.26.2 GFXLine Object Methods


5.26.2.1 PutAll

PutAll
( entID, x1, y1, z1, x2, y2, z2, layer, color )
Description:
This method stores an entity with the specified ID.
Input:
INT4 entID The ID of the entity to store.
REAL8 x1
REAL8 y1
REAL8 z1
REAL8 x2
Refer to the property descriptions for each of these items.
REAL8 y2
REAL8 z2
INT4 layer
INT4 color
Output:
None
Return Code:
FE_FAIL Unable to store the entity with the specified ID.
Remarks/Usage:
Unlike the standard Put method, this function loads all of the properties as arguments. If you are updat-
ing all of the properties before storing an entity, this function will be faster than multiple calls to load
each property individually.
Example:
None
API-1696 PutAllArray

5.26.2.2 PutAllArray

PutAllArray
( numLn, entID, xyz, layer, color )
Description:
This method stores multiple GFXLine entities with the specified data.
Input:
The number of GFXLines to create (i.e. the number of entries in the
INT4 numLn
arrays)
INT4 entID[0..numLn-1] The IDs of the GFXLines to store.
REAL8 xyz[0..(2*3*numLn)-1] Refer to the property descriptions for each of these items. xyz is an
array of the entity coordinates. In the array, there must be 6 entries
INT4 layer[0..numLn-1] for a entity (3 for the first end then 3 for the second end), followed by
the 6 for the next entity, ... . All must be in global rectangular coordi-
INT4 color[0..numLn-1] nates.
Output:
None
Return Code:
Unable to store the entity with the specified ID. Probably unable to
FE_FAIL
allocate memory for all of the arrays.
Remarks/Usage:
This is the fastest Put method if you have a large number of items to create, but still need full control
over all options. All data can be accumulated in arrays and then transferred in one call.
Example:
None
PutCoordArray API-1697

5.26.2.3 PutCoordArray

PutCoordArray
( numLn, xyz, layer, color )
Description:
This is a simpler version of PutAllArray that allows multiple entities to be stored.
Input:
The number of GFXLines to create (i.e. the number of entries in the
INT4 numLn
arrays)
REAL8 xyz[0..(2*3*numLn)-1] Refer to the property descriptions for each of these items. xyz is an
array of the entity coordinates. In the array, there must be 6 entries
INT4 layer for a entity (3 for the first end then 3 for the second end), followed by
the 6 for the next entity, ... . All must be in global rectangular coordi-
INT4 color nates.
Output:
None
Return Code:
Unable to store the entity with the specified ID. Probably unable to
FE_FAIL
allocate memory for all of the arrays.
Remarks/Usage:
This method is even faster than PutAllArray, and requires less memory, it does not however give you
full control. Entities are simply stored in the next available ID, and the same layer, color... are used for
every entity - only the coordinates are input as an array.
Example:
None
API-1698 DeleteAll

5.26.2.4 DeleteAll

DeleteAll
( bAllSets, nSetID )
Description:
Deletes all GFXLines in one or more sets
Input:
If True, all entities, in all sets are deleted. If False, then all entities in
BOOL bAllSets
Set nSetID are deleted
INT4 nSetID The setID to delete if bAllSets=False
Output:
None
Return Code:
FE_FAIL Unable to delete entities
Remarks/Usage:
None
Example:
None
DeleteAll API-1699
API-1700

5.27 GFXPoint Objects


GFXPoint objects correspond to user-creatable graphics points in your model. They are derived
from Entity objects so, in addition to the properties and methods described here, all of the proper-
ties and methods defined for Entity objects are also available for nodes. For more information, see
Section 5.1, "Common Entity Properties and Methods".
Simply creating user-graphics objects will not make them visible in your model. You must also
use the methods described in Section 3.17, "User Graphics Methods", to select the data/set to dis-
play and the views where you want to display your graphics.
Use the feGFXPoint method of the FEMAP Application object to create GFXPoint objects.

5.27.1 GFXPoint Object Properties


User graphics data can be stored in any Set, but only one set can be selected for display at any
time.
In this table, you will see some properties that list two names - one of which is an array, the other a
Variant. Refer to Section 1.2.7, "Multiple Definitions of Array Properties" for more information.

Property Description
REAL8 x These are the coordinates of the point. They are always speci-
fied in global rectangular coordinates.
REAL8 y
REAL8 z
INT4 layer The ID of the layer associated with the point.
INT4 color The point color.
INT4 symbol The symbol to be used to display the point. (0=Point, 1=Square,
2=Filled Square, 3=Diamond, 4=X, 5=Triangle, 6=Small Trian-
gle, 7=Cross, 8=Circle, 9=Filled Circle, 10=Blank)
REAL8 xyz[0..3] Accesses all three coordinates of a point as an array or Variant.
or Same as using x, y, and z independently
VARIANT vxyz
PutAll API-1701

5.27.2 GFXPoint Object Methods


5.27.2.1 PutAll

PutAll
( entID, x, y, z, layer, color, symbol )
Description:
This method stores an entity with the specified ID.
Input:
INT4 entID The ID of the entity to store.
REAL8 x
REAL8 y
REAL8 z
Refer to the property descriptions for each of these items.
INT4 layer
INT4 color
INT4 symbol
Output:
None
Return Code:
FE_FAIL Unable to store the entity with the specified ID.
Remarks/Usage:
Unlike the standard Put method, this function loads all of the properties as arguments. If you are updat-
ing all of the properties before storing an entity, this function will be faster than multiple calls to load
each property individually.
Example:
None
API-1702 PutAllArray

5.27.2.2 PutAllArray

PutAllArray
( numPt, entID, xyz, layer, color, symbol )
Description:
This method stores multiple GFXPoint entities with the specified data.
Input:
The number of GFXPoints to create (i.e. the number of entries in the
INT4 numPt
arrays)
INT4 entID[0..numPt-1] The IDs of the GFXPoints to store.
REAL8 xyz[0..(3*numPt)-1]
Refer to the property descriptions for each of these items. xyz is an
INT4 layer[0..numPt-1] array of the entity coordinates. In the array, there must be 3 entries
INT4 color[0..numPt-1] for a entity, followed by the 3 for the next entity, ... . All must be in
global rectangular coordinates.
INT4 symbol[0..numPt-1]
Output:
None
Return Code:
Unable to store the entity with the specified ID. Probably unable to
FE_FAIL
allocate memory for all of the arrays.
Remarks/Usage:
This is the fastest Put method if you have a large number of items to create, but still need full control
over all options. All data can be accumulated in arrays and then transferred in one call.
Example:
None
PutCoordArray API-1703

5.27.2.3 PutCoordArray

PutCoordArray
( numPt, xyz, layer, color, symbol )
Description:
This is a simpler version of PutAllArray that allows multiple entities to be stored.
Input:
The number of GFXPoints to create (i.e. the number of entries in the
INT4 numPt
arrays)
REAL8 xyz[0..(3*numPt)-1]
Refer to the property descriptions for each of these items. xyz is an
INT4 layer array of the entity coordinates. In the array, there must be 3 entries
INT4 color for a entity, followed by the 3 for the next entity, ... . All must be in
global rectangular coordinates.
INT4 symbol
Output:
None
Return Code:
Unable to store the entity with the specified ID. Probably unable to
FE_FAIL
allocate memory for all of the arrays.
Remarks/Usage:
This method is even faster than PutAllArray, and requires less memory, it does not however give you
full control. Entities are simply stored in the next available ID, and the same layer, color... are used for
every entity - only the coordinates are input as an array.
Example:
None
API-1704 DeleteAll

5.27.2.4 DeleteAll

DeleteAll
( bAllSets, nSetID )
Description:
Deletes all GFXPoints in one or more sets
Input:
If True, all entities, in all sets are deleted. If False, then all entities in
BOOL bAllSets
Set nSetID are deleted
INT4 nSetID The setID to delete if bAllSets=False
Output:
None
Return Code:
FE_FAIL Unable to delete entities
Remarks/Usage:
None
Example:
None
DeleteAll API-1705
API-1706

5.28 GFXQuad4 Objects


GFXQuad4 objects correspond to user-creatable graphics quads in your model. They are derived
from Entity objects so, in addition to the properties and methods described here, all of the proper-
ties and methods defined for Entity objects are also available for nodes. For more information, see
Section 5.1, "Common Entity Properties and Methods".
Simply creating user-graphics objects will not make them visible in your model. You must also
use the methods described in Section 3.17, "User Graphics Methods", to select the data/set to dis-
play and the views where you want to display your graphics.
Use the feGFXQuad4 method of the FEMAP Application object to create GFXQuad4 objects.

5.28.1 GFXQuad4 Object Properties


User graphics data can be stored in any Set, but only one set can be selected for display at any
time.
In this table, you will see some properties that list two names - one of which is an array, the other a
Variant. Refer to Section 1.2.7, "Multiple Definitions of Array Properties" for more information.

Property Description
REAL8 xyz[0..11] The coordinates of the corners of a quad. Values are stored in
or the order (x1,y1,z1,x2,y2,z2,...). All values are specified in
VARIANT vxyz global rectangular coordinates.
The components of the normal vector to the quad at each cor-
REAL8 normal[0..11] ner. Stored in thes same order as the coordinates. These values
or are used for smooth shading and are only used if autonor-
VARIANT vnormal mal=False. All values are specified in global rectangular coor-
dinates.
INT4 layer The ID of the layer associated with the quad.
INT4 fillcolor The color used to fill the interior of the quad.
INT4 edgecolor The color used for the edge lines of the quad.
INT4 edgeflags Any combination of the following (0=No Edges, 0x0F=All
Edges Shown, 0x01=Edge 1 On, 0x02=Edge 2 On, 0x04=Edge
3 On, 0x08=Edge 4 On - for quads). These are used to control
which edges of the quad are drawn. By turning off edges, multi-
ple quads (and quads) can be combined to appear as one larger
shape.
BOOL autonormal If True, a single normal is computed for the quad and used for
shading. If False, you must supply normals in the normal
property for shading.
PutAll API-1707

5.28.2 GFXQuad4 Object Methods


5.28.2.1 PutAll

PutAll
( entID, xyz, edgeflags, normal, autonormal, layer, fillcolor, edgecolor )
Description:
This method stores an entity with the specified ID.
Input:
INT4 entID The ID of the entity to store.
REAL8 xyz[0..11]
INT4 edgeflags
REAL8 normal[0..11]
Refer to the property descriptions for each of these items.
BOOL autonormal
INT4 layer
INT4 fillcolor
INT4 edgecolor
Output:
None
Return Code:
FE_FAIL Unable to store the entity with the specified ID.
Remarks/Usage:
Unlike the standard Put method, this function loads all of the properties as arguments. If you are updat-
ing all of the properties before storing an entity, this function will be faster than multiple calls to load
each property individually.
Example:
None
API-1708 PutAllArray

5.28.2.2 PutAllArray

PutAllArray
( numQd, entID, xyz, edgeflags, normal, autonormal, layer, fillcolor, edgecolor )
Description:
This method stores multiple GFXQuad4 entities with the specified data.
Input:
The number of GFXQuad4s to create (i.e. the number of entries in
INT4 numQd
the arrays)
INT4 entID[0..numQd-1] The IDs of the GFXQuad4s to store.
REAL8 xyz[0..(4*3*numQd)-
1]
INT4 edgeflags[0..numQd-1] Refer to the property descriptions for each of these items. xyz is an
array of the entity coordinates. In the array, there must be 12 entries
REAL8 normal for a entity (3 for the first corner, 3 for the 2nd, ...), followed by the
[0..(4*3*numQd)-1] 12 for the next entity, ... . The normal array is stored similarly, but
BOOL autonormal[0..numQd- contains the components of the normal vectors. All other arrays con-
1] tain one entry per quad. All must be in global rectangular coordi-
nates.
INT4 layer[0..numQd-1]
INT4 fillcolor[0..numQd-1]
INT4 edgecolor[0..numQd-1]
Output:
None
Return Code:
Unable to store the entity with the specified ID. Probably unable to
FE_FAIL
allocate memory for all of the arrays.
Remarks/Usage:
This is the fastest Put method if you have a large number of items to create, but still need full control
over all options. All data can be accumulated in arrays and then transferred in one call.
Example:
None
PutCoordArray API-1709

5.28.2.3 PutCoordNormalArray

PutCoordArray
( numQd, xyz, layer, fillcolor, edgecolor )
Description:
This is a simpler version of PutAllArray that allows multiple entities to be stored, and still allows you to
specify the quad normal vectors.
Input:
The number of GFXQuad4s to create (i.e. the number of entries in
INT4 numQd
the arrays)
REAL8 xyz[0..(4*3*numQd)-
1]
INT4 edgeflags[0..numQd-1] Refer to the property descriptions for each of these items. xyz is an
array of the entity coordinates. In the array, there must be 12 entries
REAL8 normal for a entity (3 for the first corner, 3 for the 2nd, ...), followed by the
[0..(4*3*numQd)-1] 12 for the next entity, ... . The normal array is stored similarly, but
contains the components of the normal vectors. All other arrays con-
BOOL autonormal
tain one entry per quad. All must be in global rectangular coordi-
INT4 layer nates.

INT4 fillcolor
INT4 edgecolor
Output:
None
Return Code:
Unable to store the entity with the specified ID. Probably unable to
FE_FAIL
allocate memory for all of the arrays.
Remarks/Usage:
This method is even faster than PutAllArray, and requires less memory, it does not however give you
full control. Entities are simply stored in the next available ID, and the same layer, color... are used for
every entity - only the coordinates, edgeflags and normals are input as arrays.
Example:
None
API-1710 PutCoordArray

5.28.2.4 PutCoordArray

PutCoordArray
( numQd, xyz, layer, fillcolor, edgecolor )
Description:
This is a simpler version of PutAllArray that allows multiple entities to be stored.
Input:
The number of GFXQuad4s to create (i.e. the number of entries in
INT4 numQd
the arrays)
REAL8 xyz[0..(4*3*numQd)-
1] Refer to the property descriptions for each of these items. xyz is an
array of the entity coordinates. In the array, there must be 12 entries
INT4 layer for a entity (3 for the first corner, 3 for the 2nd, ...), followed by the
INT4 fillcolor 12 for the next entity, ... . All must be in global rectangular coordi-
nates.
INT4 edgecolor
Output:
None
Return Code:
Unable to store the entity with the specified ID. Probably unable to
FE_FAIL
allocate memory for all of the arrays.
Remarks/Usage:
This method is even faster than PutAllArray, and requires less memory, it does not however give you
full control. Entities are simply stored in the next available ID, and the same layer, color... are used for
every entity - only the coordinates are input as an array.
Example:
None
DeleteAll API-1711

5.28.2.5 DeleteAll

DeleteAll
( bAllSets, nSetID )
Description:
Deletes all GFXQuad4s in one or more sets
Input:
If True, all entities, in all sets are deleted. If False, then all entities in
BOOL bAllSets
Set nSetID are deleted
INT4 nSetID The setID to delete if bAllSets=False
Output:
None
Return Code:
FE_FAIL Unable to delete entities
Remarks/Usage:
None
Example:
None
API-1712

5.29 GFXTria3 Objects


GFXTria3 objects correspond to user-creatable graphics triangles in your model. They are derived
from Entity objects so, in addition to the properties and methods described here, all of the proper-
ties and methods defined for Entity objects are also available for nodes. For more information, see
Section 5.1, "Common Entity Properties and Methods".
Simply creating user-graphics objects will not make them visible in your model. You must also
use the methods described in Section 3.17, "User Graphics Methods", to select the data/set to dis-
play and the views where you want to display your graphics.
Use the feGFXTria3 method of the FEMAP Application object to create GFXTria3 objects.

5.29.1 GFXTria3 Object Properties


User graphics data can be stored in any Set, but only one set can be selected for display at any
time.
In this table, you will see some properties that list two names - one of which is an array, the other a
Variant. Refer to Section 1.2.7, "Multiple Definitions of Array Properties" for more information.

Property Description
REAL8 xyz[0..8] The coordinates of the corners of a triangle. Values are stored in
or the order (x1,y1,z1,x2,y2,z2,...). All values are specified in
VARIANT vxyz global rectangular coordinates.
The components of the normal vector to the triangle at each
REAL8 normal[0..8] corner. Stored in thes same order as the coordinates. These val-
or ues are used for smooth shading and are only used if autonor-
VARIANT vnormal mal=False. All values are specified in global rectangular
coordinates.
INT4 layer The ID of the layer associated with the triangle.
INT4 fillcolor The color used to fill the interior of the triangle.
INT4 edgecolor The color used for the edge lines of the triangle.
INT4 edgeflags Any combination of the following (0=No Edges, 0x0F=All
Edges Shown, 0x01=Edge 1 On, 0x02=Edge 2 On, 0x04=Edge
3 On, 0x08=Edge 4 On - for quads). These are used to control
which edges of the triangle are drawn. By turning off edges,
multiple triangles (and quads) can be combined to appear as
one larger shape.
BOOL autonormal If True, a single normal is computed for the triangle and used
for shading. If False, you must supply normals in the normal
property for shading.
PutAll API-1713

5.29.2 GFXTria3 Object Methods


5.29.2.1 PutAll

PutAll
( entID, xyz, edgeflags, normal, autonormal, layer, fillcolor, edgecolor )
Description:
This method stores an entity with the specified ID.
Input:
INT4 entID The ID of the entity to store.
REAL8 xyz[0..8]
INT4 edgeflags
REAL8 normal[0..8]
Refer to the property descriptions for each of these items.
BOOL autonormal
INT4 layer
INT4 fillcolor
INT4 edgecolor
Output:
None
Return Code:
FE_FAIL Unable to store the entity with the specified ID.
Remarks/Usage:
Unlike the standard Put method, this function loads all of the properties as arguments. If you are updat-
ing all of the properties before storing an entity, this function will be faster than multiple calls to load
each property individually.
Example:
None
API-1714 PutAllArray

5.29.2.2 PutAllArray

PutAllArray
( numTr, entID, xyz, edgeflags, normal, autonormal, layer, fillcolor, edgecolor )
Description:
This method stores multiple GFXTria3 entities with the specified data.
Input:
The number of GFXTria3s to create (i.e. the number of entries in the
INT4 numTr
arrays)
INT4 entID[0..numTr-1] The IDs of the GFXTria3s to store.
REAL8 xyz[0..(3*3*numTr)-1]
INT4 edgeflags[0..numTr-1] Refer to the property descriptions for each of these items. xyz is an
REAL8 normal array of the entity coordinates. In the array, there must be 9 entries
[0..(3*3*numTr)-1] for a entity (3 for the first corner, 3 for the 2nd, ...), followed by the 9
for the next entity, ... . The normal array is stored similarly, but con-
BOOL autonormal[0..numTr-1] tains the components of the normal vectors. All other arrays contain
one entry per triangle. All must be in global rectangular coordinates.
INT4 layer[0..numTr-1]
INT4 fillcolor[0..numTr-1]
INT4 edgecolor[0..numTr-1]
Output:
None
Return Code:
Unable to store the entity with the specified ID. Probably unable to
FE_FAIL
allocate memory for all of the arrays.
Remarks/Usage:
This is the fastest Put method if you have a large number of items to create, but still need full control
over all options. All data can be accumulated in arrays and then transferred in one call.
Example:
None
PutCoordArray API-1715

5.29.2.3 PutCoordNormalArray

PutCoordArray
( numTr, xyz, layer, fillcolor, edgecolor )
Description:
This is a simpler version of PutAllArray that allows multiple entities to be stored, and still allows you to
specify the triangle normal vectors.
Input:
The number of GFXTria3s to create (i.e. the number of entries in the
INT4 numTr
arrays)
REAL8 xyz[0..(3*3*numTr)-1]
INT4 edgeflags[0..numTr-1]
Refer to the property descriptions for each of these items. xyz is an
REAL8 normal array of the entity coordinates. In the array, there must be 9 entries
[0..(3*3*numTr)-1] for a entity (3 for the first corner, 3 for the 2nd, ...), followed by the 9
for the next entity, ... . The normal array is stored similarly, but con-
BOOL autonormal
tains the components of the normal vectors. All other arrays contain
INT4 layer one entry per triangle. All must be in global rectangular coordinates.

INT4 fillcolor
INT4 edgecolor
Output:
None
Return Code:
Unable to store the entity with the specified ID. Probably unable to
FE_FAIL
allocate memory for all of the arrays.
Remarks/Usage:
This method is even faster than PutAllArray, and requires less memory, it does not however give you
full control. Entities are simply stored in the next available ID, and the same layer, color... are used for
every entity - only the coordinates, edgeflags and normals are input as arrays.
Example:
None
API-1716 PutCoordArray

5.29.2.4 PutCoordArray

PutCoordArray
( numTr, xyz, layer, fillcolor, edgecolor )
Description:
This is a simpler version of PutAllArray that allows multiple entities to be stored.
Input:
The number of GFXTria3s to create (i.e. the number of entries in the
INT4 numTr
arrays)
REAL8 xyz[0..(3*3*numTr)-1]
Refer to the property descriptions for each of these items. xyz is an
INT4 layer array of the entity coordinates. In the array, there must be 9 entries
INT4 fillcolor for a entity (3 for the first corner, 3 for the 2nd, ...), followed by the 9
for the next entity, ... . All must be in global rectangular coordinates.
INT4 edgecolor
Output:
None
Return Code:
Unable to store the entity with the specified ID. Probably unable to
FE_FAIL
allocate memory for all of the arrays.
Remarks/Usage:
This method is even faster than PutAllArray, and requires less memory, it does not however give you
full control. Entities are simply stored in the next available ID, and the same layer, color... are used for
every entity - only the coordinates are input as an array.
Example:
None
DeleteAll API-1717

5.29.2.5 DeleteAll

DeleteAll
( bAllSets, nSetID )
Description:
Deletes all GFXTria3s in one or more sets
Input:
If True, all entities, in all sets are deleted. If False, then all entities in
BOOL bAllSets
Set nSetID are deleted
INT4 nSetID The setID to delete if bAllSets=False
Output:
None
Return Code:
FE_FAIL Unable to delete entities
Remarks/Usage:
None
Example:
None
API-1718

5.30 GlobalPly Objects


Global Ply objects correspond to the global plys in your model. They are derived from Entity
objects so, in addition to the properties and methods described here, all of the properties and meth-
ods defined for Entity objects are also available for GlobalPly objects. For more information, see
Section 5.1, "Common Entity Properties and Methods".
Use the feGlobalPly method of the FEMAP Application object to create GlobalPly objects.

5.30.1 GlobalPly Object Properties


GlobalPlys are always stored with a SetID=1, and the ID equal to the global ply ID.

Property Description
STRING title GlobalPly title.
REAL8 thickness The global ply thickness
INT4 matlID The ID of the material referenced by the global ply

5.30.2 GlobalPly Object Methods


There are no GlobalPly object-specific methods. Only the standard entity methods are available.
API-1719

5.31 Group Objects


Group objects correspond to the groups in your model. They are derived from Entity objects, so in
addition to the properties and methods described here, all of the properties and methods defined
for Entity objects are also available for Group objects. For more information, see Section 5.1,
"Common Entity Properties and Methods". .
Use the feGroup method of the FEMAP Application object to create Group objects.

5.31.1 Group Object Properties


Groups are always stored with a SetID=1, and the ID equal to the group ID.
In this table, you will see some properties that list two names - one of which is an array, the other a
Variant. Refer to Section 1.2.7, "Multiple Definitions of Array Properties" for more information.

Property Description
The mode to use layers to limit group contents: 0=All Layers,
INT4 LayerMode 1=Equal or Above Max, 2=Equal or Below Min, 3=Between,
4=Outside, 5=Single Layer.
The minimum layer ID used to limit layer selection in certain
INT4 LayerMin
LayerModes.
The maximum layer ID used to limit layer selection in certain
INT4 LayerMax
LayerModes.
INT4 CoordClipOn Flag used to indicate that coordinate clipping is being used.
The mode used for coordinate clipping: 0=Greater, 1=Less,
INT4 CoordClipMode
2=Between, 3=Outside.
The minimum coordinate location, used to limit coordinate
REAL8 CoordClipMin
clipping in certain CoordClipModes.
The maximum coordinate location, used to limit coordinate
REAL8 CoordClipMax
clipping in certain CoordClipModes.
The coordinate system in which coordinate clipping is being
INT4 CoordClipCSys performed. The CoordClipMin and CoordClipMax values refer
to coordinates in this coordinate system.
The coordinate axis along which coordinate clipping occurs:
INT4 CoordClipDir
0=X (or R), 1=Y (or theta), 2=Z (or phi).
The mode used for plane clipping: 0=Off, 1=Screen, 2=Plane,
INT4 PlaneClipMode
3=Volume.
Flag indicating whether to retain the inside or outside of the
BOOL PlaneClipInside
clipping region.
INT4 PlaneClipOn[0..5]
or Flag used to indicate whether each clipping plane is being used.
VARIANT vPlaneClipOn
API-1720

Property Description
BOOL PlaneClipNeg[0..5]
Flags indicating whether to use the negative sides of the planes
or
for clipping.
VARIANT vPlaneClipNeg
The coordinate locations defining a point on each of the clip-
REAL8 PlaneClipBase[0..5][0..2]
ping planes. The first index indicates the clipping plane. The
or
second index chooses the x, y, or z coordinates. In global rect-
VARIANT vPlaneClipBase
angular.
REAL8 PlaneClipDir[0..5][0..2] The components of vectors normal to each of the clipping
or planes. The first index indicates the clipping plane. The second
VARIANT vPlaneClipDir index chooses the x,y or z components. In global rectangular.
STRING title The group title (maximum 79 characters).
Flag indicating whether this group should be renumbered when
BOOL Renumber
other entities are renumbered.
Flag indicating that the current group needs to be evaluated
before use. This is automatically set to True every time you Put
BOOL NeedEval the group to the database. Evaluation computes the list of
objects selected into a group by rules, clipping, or any other
selection approach.
If you set this to True, then when you Put a group, it will be
marked so that it will be automatically evaluated every time it is
BOOL EvalAlways
used. With this set to False, the default, the group will be evalu-
ated once, and then never again until it is modified.
Set this to True if you want the group to be condensed when
you Put it back into the database. Condensing means converting
BOOL Condense
all possible selection methods into equivalent, by ID rules. To
see the effect of this operation, you must Put the group.
API-1721

5.31.1.1 Group Range Types


All of the Group methods that access ranges require you to specify which range you want to
access. The following table provides the rangeType values that you should use.

Group Range Types


0 CSys_ID 26 Matl_ID 52 Text_byColor
1 CSys_byDefCSys 27 Matl_onProp 53 Point_byColor
2 CSys_byType 28 Matl_onElem 54 Curve_byColor
3 Point_ID 29 Matl_byType 55 Surface_byColor
4 Point_byDefCSys 30 Prop_ID 56 Volume_byColor
5 Point_onCurve 31 Prop_onElem 57 Solid_byColor
6 Curve_ID 32 Prop_byMatl 58 CSys_byColor
7 Curve_byPoint 33 Prop_byType 59 Node_byColor
8 Curve_onSurface 34 Load_byNode 60 Elem_byColor
9 Surface_ID 35 Load_byElem 61 Prop_byColor
10 Surface_byCurve 36 BCo_ID 62 Matl_byColor
11 Surface_onVolume 37 BEq_byNode 63 Text_byLayer
12 Volume_ID 38 Node_atPoint 64 Point_byLayer
13 Volume_bySurface 39 Node_atCurve 65 Curve_byLayer
14 Text_ID 40 Node_atSurface 66 Surface_byLayer
15 Boundary_ID 41 Node_atSolid 67 Volume_byLayer
16 Boundary_byCurve 42 Elem_atPoint 68 Solid_byLayer
17 Node_ID 43 Elem_atCurve 69 CSys_byLayer
18 Node_byDefCSys 44 Elem_atSurface 70 Node_byLayer
19 Node_byOutCSys 45 Elem_atSolid 71 Elem_byLayer
20 Node_onElem 46 Load_byPoint 72 Prop_byLayer
21 Elem_ID 47 Load_byCurve 73 Matl_byLayer
22 Elem_byMatl 48 Load_bySurface 74 Solid_ID
23 Elem_byProp 49 BCo_byPoint 75 Solid_byCurve
24 Elem_byType 50 BCo_byCurve 76 Solid_bySurface
25 Elem_byNode 51 BCo_bySurface 77 Curve_onSolid
API-1722

Group Range Types


78 Surface_onSolid 92 ConnectionProp_byColor 106 Node_bySuperelement
79 Point_byProp 93 ConnectionProp_byLayer 107 Load_byRegion
80 Curve_byProp 94 Connector_ID 108 Contact_byElem
81 Surface_byProp 95 Connector_byColor 109 Contact_byNode
82 Volume_byProp 96 Connector_byLayer 110 Contact_byCurve
83 Solid_byProp 97 Connector_byProp 111 Contact_bySurface
84 Contact_ID 98 Contact_onConnector 112 Contact_byProp
ConnectionProp_onConn
85 Contact_byColor 99 113 Elem_byAllNodes
ector
86 Contact_byLayer 100 Connector_byContact 114 Elem_byGlobalPly
87 CSys_onNode 101 Layup_ID 115 Layup_byGlobalPly
88 CSys_onPoint 102 Layup_byMatl 116 CSys_onProp
89 Elem_byShape 103 Layup_byProp 117 CSys_onCSys
90 Node_onElemAsOrient 104 Elem_byLayup
91 ConnectionProp_ID 105 Prop_byLayup

Note: Any reference to Contact in the above table refers to Regions, usually Connection
Regions, but some may also be used for Fluid Regions, NonStructural Mass Regions, Bolt
Regions, and Rotor Regions.
API-1723

5.31.1.2 Group List Types


The Group List method returns a set of selected entities. You must, however, specify which list
you want to access. The following table provides the listType values that you should use.

Group Entity List Types


0 CSys 10 Property 20 Surface Const.
1 Point 11 Nodal Load 21 Solids
2 Curve 12 Elem Load 22 Connection Regions
3 Surface 13 Constraint 23 Connection Properties
4 Volume 14 Constraint Equations 24 Connectors
5 Text 15 Point Loads 25 Layups
6 Boundary 16 Curve Loads 26 Region Loads (Bolt)
7 Node 17 Surface Loads
8 Elem 18 Point Constraints
9 Material 19 Curve Constraints
API-1724 List

5.31.2 Group Object Methods


There following methods are available in addition to the standard entity methods.
5.31.2.1 List

List
( listType )
Description:
This method returns a Set object that contains all of the entities currently in the selected group list.
Input:
The type of group list that you want to retrieve. Refer to Section
INT4 listType
5.31.1.2, "Group List Types" for allowable list types.
Output:
None
Return Code:
None
Remarks/Usage:
None
Example:
List API-1725

List
( listType )
This method must be used with a Set statement to define the Set object.
Sub Main
Dim App As femap.model
Set App = GetObject(,"femap.model")

Const DELIM = " "
Dim gr As Group
Dim grID As Long
grID = 14
Dim s As Set
Set gr = App.feGroup

gr.Get(grID)
Set s = gr.List(FGR_NODE)

'Print out IDs in set
Dim msg As String
Dim ndID As Long

msg = "Nodes in group " + Str$(gr.ID)
App.feAppMessage(FCM_NORMAL, msg)
msg = ""

'Get first in set
ndID = s.First
msg = Str$(ndID) + DELIM

' prints out 10 ids per line
For i =0 To s.count-1
If ( (i+1) Mod 10 = 0) Or i=s.count-1 Then
App.feAppMessage(FCM_NORMAL, msg)

'get next in set
ndID = s.Next
msg = ""
msg = msg + Str$(ndID)+ DELIM
Else
'get next in set
ndID = s.Next
msg = msg + Str$(ndID)+ DELIM
End If
Next i
End Sub

This sequence creates the s Set object with the list of nodes (listType=7) that are selected in Group 14.
API-1726 GetList

5.31.2.2 GetList

GetList
( listType, setID )
Description:
This method is similar to the List method, but instead of returning a new Set object, it simply adds the
contents of the list into a Set object that already exists
Input:
The type of group list that you want to retrieve. Refer to Section
INT4 listType
5.31.1.2, "Group List Types" for allowable list types.
INT4 setID The ID of the Set object to fill.
Output:
None
Return Code:
None
Remarks/Usage:
None
Example:
HasList API-1727

5.31.2.3 HasList

HasList
( listType )
Description:
This method is used to determine if a list is present in the current Group
Input:
The type of group list that you want to retrieve. Refer to Section
INT4 listType
5.31.1.2, "Group List Types" for allowable list types.
Output:
None
Return Code:
FE_FAIL The specified list does not exist in the current Group
FE_OK The specified list does exist in the current Group
Remarks/Usage:
None
Example:
API-1728 CountList

5.31.2.4 CountList

CountList
( listType )
Description:
This method returns the number of entities selected in the specified Group list.
Input:
The type of group list that you want to retrieve. Refer to Section
INT4 listType
5.31.1.2, "Group List Types" for allowable list types.
Output:
None
Return Code:
The number of entities selected in the Group List (0 if the list does
count
not exist)
Remarks/Usage:
None
Example:
Range API-1729

5.31.2.5 Range

Range
( rangeType )
Description:
This method returns a Set object that contains all of the entities currently selected by the specified ran-
geType.
Input:
The type of group range list that you want to retrieve. Refer to Sec-
INT4 rangeType
tion 5.31.1.1, "Group Range Types" for allowable rangeTypes
Output:
None
Return Code:
None
Remarks/Usage:
None
Example:
API-1730 Range

Range
( rangeType )
This method must be used with a Set statement to define the Set object.
Sub Main
Const DELIM = " "
Dim App As femap.model
Set App = GetObject(,"femap.model")
Dim gr As Group
Dim grID As Long

grID = 14
Dim s As Set
Set gr = App.feGroup
gr.Get(grID)
Set s = gr.Range(FGD_ELEM_BYMATL)

'Print out IDs in set
Dim msg As String
Dim ndID As Long
msg = "Materials in group " + Str$(gr.ID)
App.feAppMessage(FCM_NORMAL, msg)
msg = ""

'Get first in set
ndID = s.First
msg = Str$(ndID) + DELIM

' print out 10 ids per line
For i =0 To s.count-1
If ( (i+1) Mod 10 = 0) Or i=s.count-1 Then
App.feAppMessage(FCM_NORMAL, msg)

ndID = s.Next 'get next in set
msg = ""
msg = msg + Str$(ndID)+ DELIM

Else
'get next in set
ndID = s.Next
msg = msg + Str$(ndID)+ DELIM
End If
Next i
End Sub

This sequence creates the s Set object with the list of materials used to select elements (ran-
geType=22) that are selected in Group 14.
RangeReset API-1731

5.31.2.6 RangeReset

RangeReset
( void )
Description:
This method resets the next pointer so that the next call to RangeNext will return the first (lowest ID)
range.
Input:
None
Output:
None
Return Code:
None
Remarks/Usage:
This method does not change the next pointer for the Group object, just for the ranges within the group.
The next method will still return the next group.
Example:
None
API-1732 RangeGetAll

5.31.2.7 RangeGetAll

RangeGetAll
( rangeType, rangeCount, startID, stopID, increment, include )
Description:
This method returns all of the ranges of a specific type in the form of arrays.
Input:
INT4 rangeType This is the type of range that you are retrieving.
Output:
The number of entries in each of the other arrays. That is, the number
INT4 rangeCount
of ranges that are returned.
INT4 startID[0..N] The starting ID in the range.
INT4 stopID[0..N] The ending ID in the range. This will be 0 for single entry ranges.
INT4 increment[0..N] The increment to count by between startID and stopID
INT4 include[0..N] The include flag 0=Remove, 1=Add, Exclude=-1.
Return Code:
FE_NOT_AVAILABLE The rangeType that you specified is invalid.
FE_FAIL Unable to retrieve the data for ranges.
Remarks/Usage:
Use the Reset method to go to the beginning of the lists of ranges, then keep calling RangeNext to
retrieve entries from a list of ranges one-by-one. Alternatively, you can call RangeGetAll to get all of
the entries in one call.
Example:
None
RangeNext API-1733

5.31.2.8 RangeNext

RangeNext
( rangeType, startID, stopID, increment, include )
Description:
This method returns the values from the next range of a specific type.
Input:
INT4 rangeType This is the type of range that you are retrieving.
Output:
INT4 startID The starting ID in the range.
INT4 stopID The ending ID in the range. This will be 0 for single entry ranges.
INT4 increment The increment to count by between startID and stopID.
INT4 include The include flag: 0=Remove, 1=Add, Exclude=-1.
Return Code:
FE_NOT_AVAILABLE The rangeType that you specified is invalid.
FE_FAIL Unable to retrieve the data for ranges, or you are at the end of the list.
Remarks/Usage:
Use the Reset method to go to the beginning of the lists of ranges, then keep calling RangeNext to
retrieve entries from a list of ranges one-by-one. Alternatively, you can call RangeGetAll to get all of
the entries in one call.
Example:
None
API-1734 RangeAdd

5.31.2.9 RangeAdd

RangeAdd
( rangeType, startID, stopID, increment, include )
Description:
This method adds a range selection to the end of a selected list.
Input:
INT4 rangeType This is the type of range that you are creating.
INT4 startID The starting ID in the range.
INT4 stopID The ending ID in the range. This should be 0 for single entry ranges.
INT4 increment The increment to count by between startID and stopID, usually 1.
INT4 include The include flag :0=Remove, 1=Add, Exclude=-1.
Output:
None
Return Code:
FE_NOT_AVAILABLE The rangeType that you specified is invalid.
FE_FAIL Unable to save the data for range.
Remarks/Usage:
If the entities that you want to add to the group are in a set, you can use the SetAdd method.
Example:
None
RangeDelete API-1735

5.31.2.10 RangeDelete

RangeDelete
( rangeType )
Description:
This method deletes a single range from the selected list.
Input:
INT4 rangeType This is the type of range that you are deleting.
Output:
None
Return Code:
FE_NOT_AVAILABLE The rangeType that you specified is invalid.
Remarks/Usage:
This function deletes the range at the current location. To use this function, you must use the RangeNext
function to retrieve ranges until you retrieve the one you want to delete, then call RangeDelete and that
range will be removed.
Example:
None
API-1736 RangeDeleteAll

5.31.2.11 RangeDeleteAll

RangeDeleteAll
( rangeType )
Description:
This method deletes all ranges from the selected list.
Input:
This is the type of range that you are deleting. Specify -1 to delete all
INT4 rangeType
ranges of all types.
Output:
None
Return Code:
FE_NOT_AVAILABLE The rangeType that you specified is invali.
Remarks/Usage:
Deleting all ranges of all types (rangeType=-1) is equivalent to the Group, Operations, Reset Rules
command.
Example:
None
SetAdd API-1737

5.31.2.12 SetAdd

SetAdd
( entityType, setID )
Description:
This method adds all entities in a set to a group.
Input:
Type of entity in the selected set. For more information, see Section
INT4 entityTYPE
3.3.6, "Entity Types".
INT4 setID The ID of the set containing the entities to add to the group
Output:
None
Return Code:
FE_FAIL Invalid entityTYPE to add to a group
Remarks/Usage:
This method creates one or more entity ID range type rules to select the entities into the group.
Example:
None
API-1738 SetAdd2

5.31.2.13 SetAdd2

SetAdd2
( GroupDataType, setID )
Description:
This method adds all entities in a set to a group, based on the specified Group Data Type.
Input:
Type of entity in the selected set. For more information, see Group
INT4 GroupDataType
Data Types.
INT4 setID The ID of the set containing the entities to add to the group
Output:
None
Return Code:
FE_FAIL Invalid GroupDataType to add to a group
Remarks/Usage:
This method creates one or more entity ID range type rules to select the entities into the group.
Example:
None
SetAddOpt API-1739

5.31.2.14 SetAddOpt

SetAddOpt
( entityType, setID, addOpt )
Description:
This method adds (or removes) all entities in a set to a group.
Input:
Type of entity in the selected set. For more information, see Section
INT4 entityTYPE
3.3.6, "Entity Types".
INT4 setID The ID of the set containing the entities to add to the group
INT4 addOpt 0=Remove, 1=Add, -1= Exclude
Output:
None
Return Code:
FE_FAIL Invalid entityTYPE to add to a group
Remarks/Usage:
This method works just like the RangeAdd method except that all entities in the set are either added or
removed.
Example:
None
API-1740 SetAddOpt2

5.31.2.15 SetAddOpt2

SetAddOpt2
( GroupDataType, setID, addOpt )
Description:
This method adds (or removes) all entities in a set to a group, based on the specified Group Data Type.
Input:
Type of entity in the selected set. For more information, see Group
INT4 GroupDataType
Data Types.
INT4 setID The ID of the set containing the entities to add to the group
INT4 addOpt 0=Remove, 1=Add, -1= Exclude
Output:
None
Return Code:
FE_FAIL Invalid GroupDataType to add to a group
Remarks/Usage:
This method works just like the RangeAdd method except that all entities in the set are either added or
removed.
Example:
None
Add API-1741

5.31.2.16 Add

Add
( entityType, entityID )
Description:
This method adds a single entity to a group.
Input:
Type of entity in the selected set. For more information, see Section
INT4 entityTYPE
3.3.6, "Entity Types".
INT4 entityID The ID of the entity to add to the group.
Output:
None
Return Code:
FE_FAIL Invalid entityTYPE to add to a group
Remarks/Usage:
None
Example:
None
API-1742 Add2

5.31.2.17 Add2

Add2
( GroupDataType, entityID )
Description:
This method adds a single entity of a specific Group Data Type to a group.
Input:
Type of entity in the selected set. For more information, see Group
INT4 entityTYPE
Data Types.
INT4 entityID The ID of the entity to add to the group.
Output:
None
Return Code:
FE_FAIL Invalid GroupDataType to add to a group
Remarks/Usage:
None
Example:
None
AddRelated API-1743

5.31.2.18 AddRelated

AddRelated
( void )
Description:
This method adds entities related to the entities already in the group currently in the object.
Input:
None
Output:
None
Return Code:
FE_FAIL
Remarks/Usage:
Performs the same function as the Group, Operations, Add Related Entities command.
Example:
None
API-1744 SelectModel

5.31.2.19 SelectModel

SelectModel
( void )
Description:
This method creates rules that select all possible entities in a model.
Input:
None
Output:
None
Return Code:
None
Remarks/Usage:
This method is like the Group, Operations, Select Model command. The group must be Put to the data-
base before these selections will take effect.
Example:
None
SelectMesh API-1745

5.31.2.20 SelectMesh

SelectMesh
( elemSET )
Description:
This method creates a group that contains all of the nodes, properties, materials, coordinate systems,
loads, and constraints that are referenced by the selected elements.
Input:
The set of elements to use to compute the desired subset of the
INT4 elemSET
model.
Output:
None
Return Code:
None
Remarks/Usage:
This is like the Group, Operations, Select Mesh command. The group must be Put to the database before
these selections will take effect.
Example:
None
API-1746 SelectContact

5.31.2.21 SelectContact

SelectContact
( contactSET )
Description:
This method creates a group that contains all of the entities referenced by a selected set of contact seg-
ments/surfaces.
Input:
INT4 contactSET The set of contact segments/surfaces used to generate the group.
Output:
None
Return Code:
None
Remarks/Usage:
This is like the Group, Operations, Contact Segment/Surface command. The group must be Put to the
database before these selections will take effect.
Example:
None
SelectAllOnLayer API-1747

5.31.2.22 SelectAllOnLayer

SelectAllOnLayer
( startLayer, endLayer )
Description:
This method selects all of the entities in the current model that are on layers startLayer thru end-
Layer.
Input:
INT4 startLayer The ID of the lowest layer to select.
The ID of the highest layer to select (If 0, then just entities on start-
INT4 endLayer
Layer are selected)
Output:
None
Return Code:
None
Remarks/Usage:
This is like the Group, Operations, Generate Entities On Layer command, except the entities are
selected into the current Group object.
Example:
None
API-1748 ReferencedGroups

5.31.2.23 ReferencedGroups

ReferencedGroups
( void )
Description:
This method creates and returns a Set object that contains the IDs of all sub-groups that are referenced
by this group.
Input:
None
Output:
None
Return Code:
None
Remarks/Usage:
The Set object is returned in place of the return code.
Example:
None
API-1749

5.32 Layer Objects


Layer objects correspond to the layer definitions in your model. They are derived from Entity
objects, so, in addition to the properties and methods described here, all of the properties and
methods defined for Entity objects are also available for Layer objects. For more information, see
Section 5.1, "Common Entity Properties and Methods".
Use the feLayer method of the FEMAP Application object to create Layer Objects.

5.32.1 Layer Object Properties


Layers are always stored with their SetID equal to the setID of the load set, and the ID equal to the
Layer ID.

Property Description
INT4 color The layer color.
STRING title The layer title (maximum 79 characters).

5.32.2 Layer Object Methods


There are no Layer object-specific methods. Only the standard entity methods are available.
API-1750

5.33 Layup Objects


Layup objects correspond to the layups in your model. They are derived from Entity objects so, in
addition to the properties and methods described here, all of the properties and methods defined
for Entity objects are also available for Layup objects. For more information, see Section 5.1,
"Common Entity Properties and Methods".
Use the feLayup method of the FEMAP Application object, or the Layup method of the Property
object to create Layup objects.

5.33.1 Layup Object Properties


Layups are always stored with a SetID=1, and the ID equal to the layup ID.
In this table, you will see some properties that list two names - one of which is an array, the other a
Variant. Refer to Section 1.2.7, "Multiple Definitions of Array Properties" for more information.
The ply information is stored as an array - with globalply, matlID, thickness and angle for each ply.

Property Description
STRING title Layup title.
INT4 NumberOfPlys The number of plys in the layup definition
The overall layup thickness (sum of all the ply thicknesses).
REAL8 LayupThickness
Read-only.
Array of global ply IDs referenced by each ply. The VARI-
INT4 globalply[0..NumberOfPlys-1] ANT form can only be used with layups of 500 plies or less.
or To set ply data using the VARIANT form, you must first set
VARIANT vglobalply NumberOfPlys to the number of plies you want to load from
the VARIANT.
Array of material IDs referenced by each ply. The VARI-
INT4 matlID[0..NumberOfPlys-1] ANT form can only be used with layups of 500 plies or less.
or To set ply data using the VARIANT form, you must first set
VARIANT vmatlID NumberOfPlys to the number of plies you want to load from
the VARIANT.
Array of thicknesses referenced by each ply. The VARIANT
REAL8 thickness[0..NumberOfPlys-1] form can only be used with layups of 500 plies or less. To set
or ply data using the VARIANT form, you must first set Num-
VARIANT vthickness berOfPlys to the number of plies you want to load from the
VARIANT.
Array of orientation angles referenced by each ply. The
REAL8 angle[0..NumberOfPlys-1] VARIANT form can only be used with layups of 500 plies
or or less. To set ply data using the VARIANT form, you must
VARIANT vangle first set NumberOfPlys to the number of plies you want to
load from the VARIANT.
API-1751

Property Description
REAL8 AMatrix[0..2,0..2]
or Computed Value - [A] Matrix
VARIANT vAMatrix
REAL8 BMatrix[0..2,0..2]
or Computed Value - [B] Matrix
VARIANT vBMatrix
REAL8 DMatrix[0..2,0..2]
or Computed Value - [D] Matrix
VARIANT vDMatrix
REAL8 AInvMatrix[0..2,0..2]
or Computed Value - [A]-1 Matrix
VARIANT vAInvMatrix
REAL8 BInvMatrix[0..2,0..2]
or Computed Value - [B]-1 Matrix
VARIANT vBInvMatrix
REAL8 DInvMatrix[0..2,0..2]
or Computed Value - [D]-1 Matrix
VARIANT vDInvMatrix
REAL8 InPlaneProp[0..7]
In-Plane Properties (Ex, Ey, Gxy, NUxy, NUyx, Alphax,
or
Alphay, Alphaxy)
VARIANT vInPlaneProp
REAL8 BendingProp[0..7]
Bending Properties (Exb, Eyb, Gxyb, NUxyb, NUyxb,
or
Alphaxb, Alphayb, Alphaxyb)
VARIANT vBendingProp
API-1752 AddPly

5.33.2 Layup Object Methods


There following methods are available in addition to the standard entity methods.
5.33.2.1 AddPly

AddPly
( nMatlID, dThickness, dAngle, nGlobalPly )
Description:
This method adds a ply to the layup.
Input:
INT4 nMatlID The ID of a material referenced by the ply
REAL8 dThickness The thickness of the ply
REAL8 dAngle The orientation angle of the ply
INT4 nGlobalPly The ID of a Global Ply referenced by this ply, if any.
Output:
None
Return Code:
None
Remarks/Usage:
This function simply adds a ply to the top of the layup. Same as calling InsertPly with nPlyID = Num-
berOfPlys+1
Example:
InsertPly API-1753

5.33.2.2 InsertPly

InsertPly
( nPlyID, nMatlID, dThickness, dAngle, nGlobalPly )
Description:
This method inserts a ply into the layup.
Input:
The index of the ply to insert. Ply 1 is at the bottom. The IDs of all
INT4 nPlyID
plys at and above this number are increased by one.
INT4 nMatlID The ID of a material referenced by the ply
REAL8 dThickness The thickness of the ply
REAL8 dAngle The orientation angle of the ply
INT4 nGlobalPly The ID of a Global Ply referenced by this ply, if any.
Output:
None
Return Code:
None
Remarks/Usage:

Example:
API-1754 SetPly

5.33.2.3 SetPly

SetPly
( nPlyID, nMatlID, dThickness, dAngle, nGlobalPly )
Description:
This method replaces the data for a ply in the layup.
Input:
INT4 nPlyID The index of the ply to replace/set. Ply 1 is at the bottom.
INT4 nMatlID The ID of a material referenced by the ply
REAL8 dThickness The thickness of the ply
REAL8 dAngle The orientation angle of the ply
INT4 nGlobalPly The ID of a Global Ply referenced by this ply, if any.
Output:
None
Return Code:
nPlyID does not specify a ply that currently exists in the layup. Use
FE_NOT_AVAILABLE
AddPly or InsertPly to create a new ply.
Remarks/Usage:

Example:
SetAllPly API-1755

5.33.2.4 SetAllPly

SetAllPly
( nNumPly, nMatlID, dThickness, dAngle, nGlobalPly )
Description:
This method replaces the data for all plys in the layup.
Input:
INT4 nNumPly The number of plys being specified.
INT4 nMatlID[0..nNumPly-1] The IDs of materials referenced by the plys
REAL8 dThick-
The thicknesses of the plys
ness[0..nNumPly-1]
REAL8 dAngle[0..nNumPly-1] The orientation angles of the plys
INT4 nGlobalPly[0..nNumPly-
The IDs of Global Plys referenced by the plys, if any.
1]
Output:
None
Return Code:
FE_FAIL Unable to set the ply data.
Remarks/Usage:
Unlike SetPly, this method simply clears all previous ply definitions and replaces the entire layup with
the definition supplied in the arrays. The first entry in the arrays becomes the bottom of the layup.
Example:
API-1756 GetPly

5.33.2.5 GetPly

GetPly
( nPlyID, nMatlID, dThickness, dAngle, nGlobalPly )
Description:
Returns all of the data for a selected ply.
Input:
INT4 nPlyID The index of the ply to retrieve. Ply 1 is at the bottom.
Output:
INT4 nMatlID The ID of a material referenced by the ply
REAL8 dThickness The thickness of the ply
REAL8 dAngle The orientation angle of the ply
INT4 nGlobalPly The ID of a Global Ply referenced by this ply, if any.
Return Code:
The ply ID that you specified did not exist. It must be between 1 and
FE_NOT_AVAILABLE
the number of plys in the layup.
Remarks/Usage:

Example:
GetAllPly API-1757

5.33.2.6 GetAllPly

GetAllPly
( nPlyID, nMatlID, dThickness, dAngle, nGlobalPly )
Description:
Returns all of the data for all plys.
Input:
None
Output:
INT4 nNumPly The number of plys, and the number of entries in each of the arrays
INT4 nMatlID[0..nNumPly-1] The IDs of materials referenced by each ply
REAL8 dThick-
The thicknesses of each ply
ness[0..nNumPly-1]
REAL8 dAngle[0..nNumPly-1] The orientation angles of each ply
INT4 nGlobalPly[0..nNumPly-
The IDs of Global Plys referenced by each ply, if any.
1]
Return Code:
FE_FAIL Unable to retrieve ply data.
Remarks/Usage:

Example:
API-1758 DeletePly

5.33.2.7 DeletePly

DeletePly
( nPlyID )
Description:
This method removes a ply from the layup.
Input:
The index of the ply to delete. Ply 1 is at the bottom. The IDs of all
INT4 nPlyID
plys at and above this number are decreased by one.
Output:
None
Return Code:
The ply ID that you specified did not exist. It must be between 1 and
FE_NOT_AVAILABLE
the number of plys in the layup.
Remarks/Usage:

Example:
Clear API-1759

5.33.2.8 Clear

Clear
( void )
Description:
This method removes all plys from the layup.
Input:
None
Output:
None
Return Code:
None
Remarks/Usage:

Example:
API-1760 Compute

5.33.2.9 Compute

Compute
( dynamic )
Description:
This method computes overall layup properties.
Input:
If True, the results will be immediately sent to the Entity Info win-
BOOL dynamic dow (if it is open). If False, the results will be sent to the message
window.
Output:
None
Return Code:
None
Remarks/Usage:
See Compute2( ) for more options
Example:
Compute2 API-1761

5.33.2.10 Compute2

Compute2
( nOption )
Description:
This method computes overall layup properties.
Input:
0=No Echo, just compute. 1=Compute and Echo to Entity Info.
INT4 nOption
2=Compute and Echo to Message Window.
Output:
None
Return Code:
None
Remarks/Usage:
None
Example:
API-1762 HasGlobalPly

5.33.2.11 HasGlobalPly

HasGlobalPly
( nGlobalPlyID, nPlyNum )
Description:
This method indicates whether or not a selected global ply is used in a layup.
Input:
INT4 nGlobalPlyID The ID of the Global Ply that you want to search for.
Output:
The index (1 is the bottom ply) of the ply that references nGlobal-
INT4 nPlyNum
PlyID - if any.
Return Code:
FE_NOT_AVAILABLE The layup has no plys to search
FE_FAIL The selected global ply was not used.
Remarks/Usage:

Example:
HasMaterial API-1763

5.33.2.12 HasMaterial

HasMaterial
( nMatlID )
Description:
This method indicates whether or not a selected material is used in a layup.
Input:
INT4 nMatlID The ID of the Material that you want to search for.
Output:
None
Return Code:
FE_NOT_AVAILABLE The layup has no plys to search
FE_FAIL The selected material was not used.
Remarks/Usage:

Example:
API-1764 HasFullGlobalPly

5.33.2.13 HasFullGlobalPly

HasFullGlobalPly
( )
Description:
This method indicates whether or not every ply in a layup references a global ply
Input:
None
Output:
None
Return Code:
FE_OK Every ply references a global ply
FE_FAIL At least one ply does not reference a global ply
Remarks/Usage:

Example:
HasFullGlobalPly API-1765
API-1766

5.34 LoadBolt Object


LoadBolt objects correspond to bolt preloads in your model. They are derived from Entity objects,
so in addition to the properties and methods described here, all of the properties and methods
defined for Entity objects are also available for LoadBolt objects. For more information, see Sec-
tion 5.1, "Common Entity Properties and Methods".
Use the feLoadBolt method of the FEMAP Application object to create LoadBolt objects.

5.34.1 LoadBolt Object Properties


LoadBolts are always stored with their SetID equal to the setID of the load set, and the ID equal to
the bolt region ID where they are applied.
When you create a new LoadBolt, it will always reference the active load set. You can change the
set that it references simply by changing the setID parameter.

Property Description
INT4 color The load color.
INT4 layer The ID of the layer associated with the load.
REAL8 preload The elemental temperature.
INT4 LoadDefinitionID The ID of the load definition that contains this load (0=None)

5.34.2 LoadBolt Object Methods


AddArray API-1767

5.34.2.1 AddArray

AddArray
( count, RegionID, Values )
Description:
This method creates multiple Bolt Preloads
Input:
The number of bolt preloads to create, and the number of IDs in
INT4 count
RegionID
The Bolt Region IDs where preloads will be created. One preload is
INT4 RegionID[0..count-1]
created on each ID.
REAL8 Values[0..count-1] Bolt Preload Values. Refer to preload property.
Output:
None
Return Code:
FE_FAIL The Loads could not be created.
FE_NO_MEMORY Unable to allocate memory to store arrays of data.
Remarks/Usage:
Prior to using this method, you must properly specify the other parameters in the object - such as, color
and setID, and any other types required for your loads. This method simply uses the data you specify
here to overwrite specific values in the LoadBolt object, and create a new preload for each entry in the
arrays.
Example:
None
API-1768 Property

5.35 LoadDefinition Objects


LoadDefinition objects correspond to the load definitions in your model. They group individual
loads into related sets and provide a title for the set. They are derived from Entity objects, so in
addition to the properties and methods described here, all of the properties and methods defined
for Entity objects are also available for Load Definition objects. For more information, see Section
5.1, "Common Entity Properties and Methods".
Use the feLoadDefinition method of the FEMAP Application object to create LoadDefinition
objects.

5.35.1 LoadDefinition Object Properties


LoadDefinition objects are always stored with their SetID equal to the setID of the load set; how-
ever, their IDs simply go from 1 to N. To find a particular object, you must retrieve each object in
the set and check the loads it contains.

Property Description
STRING title Load Definition title.
The type of load that is referenced by this load definition.
INT4 LoadType For more information on Load Types refer to the table in
Section 3.3.7, "FEMAP Constants"
The type of entities that are referenced by this load defini-
tion. For more information on Entity Types refer to the
INT4 DataType table in Section 3.3.6, "Entity Types". Can be FT_SURF_-
LOAD, FT_GEOM_LOAD, FT_NTHERM_LOAD, or
FT_ETHERM_LOAD
PutAll API-1769

5.35.2 LoadDefinition Object Methods


5.35.2.1 PutAll

PutAll
( entID, enDataType, enLoadType, sTitle )
Description:
This method stores a Load Definition with the specified ID along with all the available options.
Input:
INT4 entID The ID of the Load Definition to store.
INT4 DataType
INT4 LoadType Refer to the property descriptions for each of these items.
STRING Title
Output:
None
Return Code:
FE_FAIL Unable to store the entity with the specified ID
Remarks/Usage:
Unlike the standard Put method, this function loads all of the properties as arguments. If you are updat-
ing all of the properties before storing an entity, this function will be faster than multiple calls to load
each property individually.
Example:
None
API-1770 ResetNextLoad

5.35.2.2 ResetNextLoad

ResetNextLoad
( void )
Description:
This method initializes all options prior to calling the NextLoad method below
Input:
None
Output:
None
Return Code:
FE_OK
Remarks/Usage:
This method is used prior to calling NextLoad to specify which loads will be retrieved. It simply resets
this object so that the next call to NextLoad will return the first load available in the object.
Example:
NextLoad API-1771

5.35.2.3 NextLoad

NextLoad
( pLoad )
Description:
This method returns the next available load that is contained in the Load Definition
Input:
The next load object. Depending on the type of the load definition
OBJECT pLoad this could be a LoadGeom, LoadMesh, LoadNTemp or LoadGeom
object
Output:
None
Return Code:
There are no more loads of the specified type to retrieve. Call Reset-
FE_FAIL NextLoad to go back to the first load, if you want to retrieve the
loads again.
Remarks/Usage:
This method, coupled with ResetNextLoad provides an easy way to retrieve all loads from a Load Defi-
nition.
Example:
API-1772 CountLoads

5.35.2.4 CountLoads

CountLoads
( )
Description:
This method returns the next available load that is contained in the Load Definition
Input:
None
Output:
None
Return Code:
INT4 numLoads The number of loads referenced by this load definition.
Remarks/Usage:
This method relies on the current Load Definition ID to count the referenced loads
Example:
IsTotalLoad API-1773

5.35.2.5 IsTotalLoad

IsTotalLoad
( )
Description:
This method indicates whether the current load definition represents a total load applied to geometry.
Input:
None
Output:
None
Return Code:
FE_OK Load Definition represents a total load
FE_FAIL Not a total load
FE_INVALID Load is not a applied to geometry.
Remarks/Usage:
None
Example:
API-1774

5.36 LoadETemp Objects


LoadETemp objects correspond to the elemental temperatures in your model. They are derived
from Entity objects, so in addition to the properties and methods described here, all of the proper-
ties and methods defined for Entity objects are also available for LoadETemps objects. For more
information, see Section 5.1, "Common Entity Properties and Methods".
Use the feLoadETemp method of the FEMAP Application object to create LoadETemp objects.

5.36.1 LoadETemp Object Properties


LoadETemps are always stored with their SetID equal to the setID of the load set, and the ID equal
to the element ID where they are applied.
When you create a new LoadETemp, it will always reference the active load set. You can change
the set that it references simply by changing the setID parameter.

Property Description
INT4 color The load color.
INT4 layer The ID of the layer associated with the load.
BOOL expanded True if this is a load from an expanded geometric load.
REAL8 temp The elemental temperature.
REAL8 phase The phase value associated with the temperature.
INT4 function The ID of a function that defines time dependency of the tem-
perature.
INT4 LoadDefinitionID The ID of the load definition that contains this load (0=None)
REAL8 gradient The elemental linear thermal gradient.
AddArray API-1775

5.36.2 LoadETemp Object Methods


5.36.2.1 AddArray

AddArray
( count, doValues, doFunctions, ElemID, Values, FunctionID )
Description:
This method creates multiple elemental temperatures
Input:
The number of temperatures to create, and the number of IDs in
INT4 count
ElemID
If True, then the Values array must contain load values to be used. If
BOOL doValues False, then whatever is specified in the current object is used and
Values is ignored
If True, then the FunctionID array must contain Function IDs to be
BOOL doFunctions used. If False, then whatever is specified in the current object is used
and FunctionID is ignored.
The Element IDs where temperatures will be created. One tempera-
INT4 ElemID[0..count-1]
ture is created on each ID.
REAL8 Values[0..count-1] Temperature Values. Refer to temp property.
IDs of functions associated with each temperature. Specify 0 for con-
INT4 FunctionID[0..count-1]
stant values. Refer to function property.
Output:
None
Return Code:
FE_FAIL The Loads could not be created.
FE_NO_MEMORY Unable to allocate memory to store arrays of data.
Remarks/Usage:
Prior to using this method, you must properly specify the other parameters in the object - such as, color
and setID, and any other types required for your loads. This method simply uses the data you specify
here to overwrite specific values in the LoadETemp object, and create a new temperature for each entry
in the arrays. This method puts data directly into the database, so there is no need to call Put after using
this method.
Example:
None
API-1776

5.37 LoadGeom Objects


LoadGeom objects correspond to the geometry-based loads in your model. They are derived from
Entity objects, so in addition to the properties and methods described here, all of the properties and
methods defined for Entity objects are also available for LoadGeom objects. For more informa-
tion, see Section 5.1, "Common Entity Properties and Methods".
Use the feLoadGeom method of the FEMAP Application object to create LoadGeom objects.

5.37.1 LoadGeom Object Properties


LoadGeom objects are always stored with their SetID equal to the setID of the load set; however,
their IDs simply go from 1 to N. To find a particular object you must retrieve each object in the set
and check its type and geomID.
When you create a new LoadGeom, it will always reference the active load set. You can change
the set that it references simply by changing the setID parameter.
All of the data in a LoadGeom object can be accessed through the first set of properties listed
below. The Additional Properties simply provide other names, which may be more convenient
or descriptive, to access the same information. You will notice that the primary properties for
LoadGeom records are the same as those for LoadMesh objects.
In this table, you will see some properties that list two names - one of which is an array, the other a
Variant. Refer to Section 1.2.7, "Multiple Definitions of Array Properties" for more information.

Property Description
INT4 geomID ID of the point, curve or surface that is loaded.
INT4 addlID[0..1]
Additional IDs. These are not used for most loads. They contain the addi-
or
tional nodes for nonlinear force loads.
VARIANT vaddlID
The ID of the coordinate system used to define the load. Regardless of this
INT4 csys value, all loads that are vector-based are stored in global rectangular coordi-
nates.
INT4 function[0..4] The IDs of functions associated with the various load values:
or [0]=Load func, Emissivity func
VARIANT vfunction [1]=Absorbtivity vs. Temp
[2]=Temp vs Temp
[3]=View Factor vs Time
[4]=Phase vs. Freq
INT4 dof[0..2]
Array containing the face number (0) for face-based loads, or flags indicat-
or
ing which components are enabled for vector loads.
VARIANT vdof
BOOL flag[0..2]
or Flags specifying various load options.
VARIANT vflag
API-1777

Property Description
The type of load being defined. For values, see Section 5.37.3, "LoadGeom
INT4 type
Load Types".
An additional flag specifying more information about the type of load. Used
INT4 subtype
for nonlinear transient force loads.
The type of geometric entity that this load is applied to. For more informa-
INT4 geomtype tion on Entity Types refer to the table in Section 3.3.6, "Entity Types". Can
be FT_SURFACE, FT_CURVE, or FT_POINT. This property is Read-Only.
INT4 layer The layer associated with the load.
REAL8 load[0..4] The load values. The location of specific values varies for each type of load,
or but generally follows the order of the values in the load creation dialog box.
VARIANT vload For loads with a single value, it is located in load[0]. X,Y,Z components are
located in load[0],load[1],load[2].
REAL8 fluxdir[0..2] The components of the direction for certain elemental loads. For vector
or fluxes, the initial direction. This does not contain the direction for nodal vec-
VARIANT vfluxdir tor loads like force or displacement. Those values are in the "load" values.
INT4 DataSurface[0..2]
or
The IDs of Data Surfaces referenced by the various load values.
VARIANT vDataSur-
face
INT4 color The load color.
BOOL expanded True if this is an expanded geometric load.
INT4 LoadDefinitio- The ID of the load definition that contains this load (0=None)
nID
Geometry Load Specific Properties
The direction setting for the load: 0=None, 1=Vector, 2=AlongCurve, 3=
INT4 dirmode
Normal to Plane, 4=Normal to Surface.
REAL8 dirbase[0..2]
or The location of the base of the direction vector, if dirmode=1 or 3.
VARIANT vdirbase
REAL8 direction[0..2]
or The components of the direction vector, if dirmode = 1 or 3.
VARIANT vdirection
INT4 dirID The curve or surface ID if dirmode = 2 or 4.
The load variation mode: 0=None/Constant, 1=Equation, 2=Function,
INT4 variation
3=Interpolation.
STRING varname The variable name used for load variation.
STRING vareqn The equation defining the load variation if variation=1.
API-1778

Property Description
INT4 varfunction The ID of the function used for load variation if variation=2.
REAL8 varlocate
The coordinates of the locations used for interpolation if variation=3. The x,
[0..3][0..2]
y and z coordinates of a single point are stored in varlocate(i,0), varlo-
or
cate(i,1) and varlocate(i,2) respectively.
VARIANT vvarlocate
REAL8 varvalue[0..3]
or The values corresponding to each of the varlocate locations.
VARIANT vvarvalue
If True, then loads at midside nodes are adjusted during load expansion to
BOOL midside provide uniform loading. If False, midside nodes are treated just like other
nodes during expansion.
Additional Properties
INT4 FaceNumber The element face number for face-based loads, like pressure.
True if the X component of a nodal load, like force or displacement is active.
BOOL XOn
This refers to the X component in the definition CSys.
True if the Y component of a nodal load, like force or displacement is active.
BOOL YOn
This refers to the Y component in the definition CSys.
True if the Z component of a nodal load, like force or displacement is active.
BOOL ZOn
This refers to the Z component in the definition CSys.
The X component of a nodal load, like force or displacement. In global rect-
REAL8 X
angular coordinates.
The Y component of a nodal load, like force or displacement. In global rect-
REAL8 Y
angular coordinates.
The Z component of a nodal load, like force or displacement. In global rect-
REAL8 Z
angular coordinates.
REAL8 Temp The temperature associated with the load.
REAL8 Phase The phase associated with the load.
INT4 LoadFunction The ID of the function associated with the primary load value.
INT4 TempVsTime The ID of the function specifying the time dependence of temperature.
INT4 PhaseVsFreq The ID of the function specifying the frequency dependence of phase.
REAL8 LoadValue The primary load value.
Flag specifying whether a pressure load has corner values, or a single con-
BOOL CornerPressure
stant value.
REAL8 Pressure The pressure value for a pressure load.
REAL8 HeatGen The heat generation value for a heat generation load.
API-1779

Property Description
REAL8 HeatFlux The heat flux value for a heat flux load.
REAL8 Absorptivity The absorptivity for a radiation load.
INT4 AbsorptivityVs-
The ID of a function specifying temperature dependence of absorptivity.
Temp
BOOL VectorFlux Flag specifying that an elemental flux load is a vector flux.
REAL8 FluidValue Primary load value for a fluid load.
BOOL PeriodicMaster Flag specifying a periodic condition load as Master.
BOOL PeriodicDirec-
Flag specifying the periodic condition direction.
tion
REAL8 ConvectionCo-
The convection coefficient for a convection load.
eff
BOOL ForcedConvec-
Flag specifying that a convection load defines forced convection.
tion
BOOL FCDisableAd-
Flag specifying that a forced convection load is disabling advection.
vection
BOOL FCDisableCon-
Flag specifying that a forced convection load is disabling convection.
vection
REAL8 FlowRate The flow rate for forced convection.
REAL8 FlowDiameter The flow diameter for forced convection.
REAL8 FlowAreaFac-
The flow area factor for forced convection.
tor
REAL8 Emissivity The emissivity for a radiation load.
INT4 EmissivityFunc The ID of function specifying the variation of emissivity.
REAL8 ViewFactor The radiation view factor.
INT4 ViewFactorVs-
ID of the function specifying the time dependence of the view factor.
Time
BOOL EnclosureRadi-
Flag specifying a radiation load as enclosure radiation.
ation
BOOL CanShade Flag specifying a radiation load as shading other regions.
BOOL CanBeShaded Flag specifying a radiation load as being shaded by other regions.
INT4 CavityNumber The cavity number for enclosure radiation.
API-1780 GetSearch

5.37.2 LoadGeom Object Methods


5.37.2.1 GetSearch

GetSearch
( loadType, geomID )
Description:
This method searches for and retrieves an entity that is loading a specified geometric entity.
Input:
Type of load being applied. For values, see Section 5.37.3, "Load-
INT4 loadType
Geom Load Types".
ID of geometry loaded. The loadType determines whether this
INT4 geomID
should be a point, curve or surface ID.
Output:
None
Return Code:
FE_FAIL The specified entity does not exist or is not loaded.
Remarks/Usage:
Since LoadGeom objects are not stored by a specified ID, but rather in sequential order, the normal Get
method may not be useful if you are trying to find the loads on a specific curve or surface. The only way
to do that would be to Get every load and check for the references that you want. This method does that
for you. You specify the load type and point/curve/surface you want to search for, and it returns the
loads on that entity. Be aware that this method does still search the entire set. If you are going to retrieve
loads on a large number of geometry entities, it could be faster to retrieve them all using Get, and dis-
card the ones you do not want.
Example:
None
GetSearch API-1781

5.37.3 LoadGeom Load Types


The following table provides the list of available load types on geometry.

Geometry Load Types (p = Point ; c = Curve ; s = Surface, n=on Node, e=on Element)
81 pnForce 129 cnVelocity 165 snMomentPerArea
82 pnMoment 130 cnRotVelocity 166 snMomentAtNode
83 pnDisp 131 cnAccel 167 snDisp
84 pnRotDisp 132 cnRotAccel 168 snRotDisp
85 pnVelocity 133 cnTemp 169 snVelocity
86 pnRotVelocity 134 cnHeatFlux 170 snRotVelocity
87 pnAccel 135 cnHeatFluxPerLength 171 snAccel
88 pnRotAccel 136 cnHeatFluxAtNode 172 snRotAccel
89 pnTemp 137 cnHeatGen 173 snTemp
90 pnHeatFlux 138 cePressure 174 snHeatFlux
91 pnHeatGen 139 ceTemp 175 snHeatFluxPerArea
92 pnPressure 140 ceHeatFlux 176 snHeatFluxAtNode
93 pnTotalPressure 141 ceConvection 177 snHeatGen
94 pnScalar 142 ceRadiation 178 sePressure
95 pnSteamQuality 143 ceHeatGen 179 seTemp
96 pnHumidity 144 cnPressure 180 seHeatFlux
97 pnFluidHeight 145 cnTotalPressure 181 seConvection
98 pnUnknownCondition 146 cnScalar 182 seRadiation
99 pnSlipCondition 147 cnSteamQuality 183 seHeatGen
100 pnFanCurve 148 cnHumidity 184 snPressure
101 pnPeriodic 149 cnFluidHeight 185 snTotalPressure
121 cnForce 150 cnUnknownCondition 186 snScalar
122 cnForcePerLength 151 cnSlipCondition 187 snSteamQuality
123 cnForceAtNode 152 cnFanCurve 188 snHumidity
124 cnMoment 153 cnPeriodic 189 snFluidHeight
125 cnMomentPerLength 161 snForce 190 snUnknownCondition
126 cnMomentAtNode 162 snForcePerArea 191 snSlipCondition
API-1782 GetSearch

Geometry Load Types (p = Point ; c = Curve ; s = Surface, n=on Node, e=on Element)
127 cnDisp 163 snForceAtNode 192 snFanCurve
128 cnRotDisp 164 snMoment 193 snPeriodic
API-1783

5.38 LoadMesh Objects


LoadMesh objects correspond to the nodal and elemental loads (other than temperatures) in your
model. They are derived from Entity objects, so in addition to the properties and methods
described here, all of the properties and methods defined for Entity objects are also available for
LoadMesh objects. For more information, see Section 5.1, "Common Entity Properties and Meth-
ods".
Use the feLoadMesh method of the FEMAP Application object to create LoadMesh objects.

5.38.1 LoadMesh Object Properties


LoadMesh objects are always stored with their SetID equal to the setID of the load set; however,
their IDs simply go from 1 to N. To find a particular object, you must retrieve each object in the set
and check its type and meshID.
When you create a new LoadMesh, it will always reference the active load set. You can change the
set that it references simply by changing the setID parameter.
All of the data in a LoadMesh object can be accessed through the first set of properties listed
below. The Additional Properties simply provide other names, which may be more convenient
or descriptive, to access the same information.
In this table, you will see some properties that list two names - one of which is an array, the other a
Variant. Refer to Section 1.2.7, "Multiple Definitions of Array Properties" for more information.

Property Description
INT4 meshID ID of the node or element that is loaded.
INT4 addlID[0..1]
Additional IDs. These are not used for most loads. They contain the addi-
or
tional nodes for nonlinear force loads.
VARIANT vaddlID
The ID of the coordinate system used to define the load. Regardless of this
INT4 csys value, all loads that are vector-based are stored in global rectangular coordi-
nates.
INT4 function[0..4] The IDs of functions associated with the various load values:
or [0]=Load func, Emissivity func
VARIANT vfunction [1]=Absorbtivity vs. Temp
[2]=Temp vs Temp
[3]=View Factor vs Time
[4]=Phase vs. Freq
INT4 dof[0..2] Array containing the face number (0) for face based loads, or flags indicat-
or ing which components are enabled for vector loads. Also, dof[0] is used to
VARIANT vdof specify the Distributed Load Direction for a Distributed Load on a line
element (type = 41, eLineLoad): 1 = Element X, 2 = Element Y, 3 = Element
Z, 4 = Global X, 5 = Global Y, 6 = Global Z
BOOL flag[0..2]
or Flags specifying various load options.
VARIANT vflag
API-1784

Property Description
INT4 type The type of load being defined. Refer to the load type table for values.
An additional flag specifying more information about the type of load. Used
INT4 subtype
for nonlinear transient force loads.
INT4 layer The layer associated with the load.
REAL8 load[0..4] The load values. The location of specific values varies for each type of load,
or but generally follows the order of the values in the load creation dialog box.
VARIANT vload For loads with a single value, it is located in load[0]. X,Y,Z components are
located in load[0],load[1],load[2].
REAL8 fluxdir[0..2] The components of the direction for certain elemental loads. For vector
or fluxes, the initial direction. This does not contain the direction for nodal vec-
VARIANT vfluxdir tor loads like force or displacement. Those values are in the "load" values.
INT4 color The load color.
BOOL expanded True if this is an expanded geometric load.
INT4 LoadDefinitio- The ID of the load definition that contains this load (0=None)
nID
Additional Properties
INT4 FaceNumber The element face number for face-based loads, like pressure.
True if the X component of a nodal load, like force or displacement, is
BOOL XOn
active. This refers to the X component in the definition CSys.
True if the Y component of a nodal load, like force or displacement, is
BOOL YOn
active. This refers to the Y component in the definition CSys.
True if the Z component of a nodal load, like force or displacement, is
BOOL ZOn
active. This refers to the Z component in the definition CSys.
The X component of a nodal load, like force or displacement. In global rect-
REAL8 X
angular coordinates.
The Y component of a nodal load, like force or displacement. In global rect-
REAL8 Y
angular coordinates.
The Z component of a nodal load, like force or displacement. In global rect-
REAL8 Z
angular coordinates.
REAL8 Temp The temperature associated with the load.
REAL8 Phase The phase associated with the load.
INT4 LoadFunction The ID of the function associated with the primary load value.
INT4 TempVsTime The ID of the function specifying the time dependence of temperature.
INT4 PhaseVsFreq The ID of the function specifying the frequency dependence of phase.
API-1785

Property Description
REAL8 LoadValue The primary load value.
Flag specifying whether a pressure load has corner values, or a single con-
BOOL CornerPressure
stant value.
REAL8 Pressure The pressure value for a pressure load.
REAL8 HeatGen The heat generation value for a heat generation load.
REAL8 HeatFlux The heat flux value for a heat flux load.
REAL8 Absorptivity The absorptivity for a radiation load.
INT4 AbsorptivityVs-
The ID of a function specifying temperature dependence of absorptivity.
Temp
BOOL VectorFlux Flag specifying that an elemental flux load is a vector flux.
REAL8 FluidValue Primary load value for a fluid load.
BOOL PeriodicMaster Flag specifying a periodic condition load as Master.
BOOL PeriodicDirec-
Flag specifying the periodic condition direction.
tion
REAL8 ConvectionCo-
The convection coefficient for a convection load.
eff
BOOL ForcedConvec-
Flag specifying that a convection load defines forced convection.
tion
BOOL FCDisableAd-
Flag specifying that a forced convection load is disabling advection
vection
BOOL FCDisableCon-
Flag specifying that a forced convection load is disabling convection
vection
REAL8 FlowRate The flow rate for forced convection.
REAL8 FlowDiameter The flow diameter for forced convection.
REAL8 FlowAreaFac-
The flow area factor for forced convection.
tor
REAL8 Emissivity The emissivity for a radiation load.
INT4 EmissivityFunc The ID of function specifying the variation of emissivity.
REAL8 ViewFactor The radiation view factor.
INT4 ViewFactorVs-
ID of the function specifying the time dependence of the view factor.
Time
BOOL EnclosureRadi-
Flag specifying a radiation load as enclosure radiation.
ation
API-1786

Property Description
BOOL CanShade Flag specifying a radiation load as shading other regions.
BOOL CanBeShaded Flag specifying a radiation load as being shaded by other regions.
INT4 CavityNumber The cavity number for enclosure radiation.
GetSearch API-1787

5.38.2 LoadMesh Object Methods


5.38.2.1 GetSearch

GetSearch
( loadType, meshID, faceID )
Description:
This method searches for and retrieves an entity that is loading a specified node or element entity.
Input:
Type of load being applied. For values, see Section 5.38.3, "Load-
INT4 loadType
Mesh Load Types".
ID of node or element being loaded. The loadType determines
INT4 meshID
whether this should be a node ID or an element ID.
For certain face-based elemental loads (pressure, flux, etc.) you must
INT4 faceID also specify the element face that is being loaded. For all other load
types, this option is ignored.
Output:
None
Return Code:
FE_FAIL The specified entity does not exist or is not loaded.
Remarks/Usage:
Since LoadMesh objects are not stored by a specified ID, but rather in sequential order, the normal Get
method may not be useful if you are trying to find the loads on a specific node or element. The only way
to do that would be to Get every load and check for the references that you want. This method does that
for you. You specify the load type and node/element you want to search for, and it returns the loads on
that entity. Be aware that this method does still search the entire set. If you are going to retrieve loads on
a large number of mesh entities, it could be faster to retrieve them all using Get, and discard the ones
you do not want.
Example:
None
API-1788 Add

5.38.2.2 Add

Add
( setID, loadType, nCSys, DOF, Values, FunctionID )
Description:
This method creates multiple nodal or elemental loads
Input:
The ID of a Set object that contains the nodes or elements where
INT4 setID loads will be applied. Alternatively, if you specify a negative value,
this is simply the ID of the single node or element to load.
INT4 loadType The type of load being defined. Refer to type property.
The ID of the Coordinate System where load values are being
INT4 nCSys
defined.
Degree of Freedom flags for forces (True=On, False=Off). For Pres-
INT4 DOF[0..2] sures and other face-based loads the first DOF for each element is the
faceID (1-6) for the load. Refer to dof property.
REAL8 Values[0..4] Load Values, 5 per load. Refer to load property.
IDs of functions associated with each load value. Specify 0 for con-
INT4 FunctionID[0..4]
stant values. 5 per load. Refer to function property.
Output:
None
Return Code:
FE_FAIL The Loads could not be created.
FE_NO_MEMORY Unable to allocate memory to store arrays of data.
Remarks/Usage:
Prior to using this method, you must properly specify the other parameters in the object - such as, color,
setID, and any other types required for your loads. This method simply uses the data you specify here to
overwrite specific values in the loadmesh object, and create a new load for each entry in the set.
Example:
None
AddArray API-1789

5.38.2.3 AddArray

AddArray
( count, doDOF, doValues, doFunctions, NodeElemID, DOF, Values, FunctionID )
Description:
This method creates multiple nodal or elemental loads
Input:
The number of loads to create, and the number of IDs in
INT4 count
NodeElemID
If True, then the DOF array must contain the DOF flags/Face IDs to
BOOL doDOF be used. If False, then whatever is specified in the current object is
used, and DOF is ignored.
If True, then the Values array must contain load values to be used. If
BOOL doValues False, then whatever is specified in the current object is used and
Values is ignored
If True, then the FunctionID array must contain Function IDs to be
BOOL doFunctions used. If False, then whatever is specified in the current object is used
and FunctionID is ignored.
The Node or Element IDs where loads will be created. One load is
INT4 NodeElemID[0..count-1]
created on each ID.
Degree of Freedom flags for forces (True=On, False=Off). For Pres-
sures and other face-based loads the first DOF for each element is the
INT4 DOF[0..(3*count)-1]
faceID (1-6) for the load. There are three entries per load. Refer to
dof property.
REAL8 Values[0..(4*count)-1] Load Values, 5 per load. Refer to load property.
INT4 FunctionID[0..(4*count)- IDs of functions associated with each load value. Specify 0 for con-
1] stant values. 5 per load. Refer to function property.
Output:
None
Return Code:
FE_FAIL The Loads could not be created.
FE_NO_MEMORY Unable to allocate memory to store arrays of data.
Remarks/Usage:
Prior to using this method, you must properly specify the other parameters in the object - such as, load
type, color, setID, and any other types required for your loads. This method simply uses the data you
specify here to overwrite specific values in the loadmesh object, and create a new load for each entry in
the arrays.
API-1790 AddArray

AddArray
( count, doDOF, doValues, doFunctions, NodeElemID, DOF, Values, FunctionID )
Example:
None
AddArray API-1791

5.38.3 LoadMesh Load Types


The following table provides the list of available load types on nodes and elements.

Mesh Load Types (n = Nodal; e = Elemental)


1 nForce 11 nHeatGen 20 nSlipCondition
2 nMoment 12 Transient 21 nFanCurve
3 nDisplacement 13 nPressure 22 nPeriodic
4 nRotDisplacement 14 nTotalPressure 41 eLineLoad
5 nVelocity 15 nScalar 42 ePressure
6 nRotVelocity 16 nSteamQuality 44 eHeatFlux
7 nAcceleration 17 nHumidity 45 eConvection
8 nRotAcceleration 18 nFluidHeight 46 eRadiation
10 nHeatFlux 19 nUnknownCondition 47 eHeatGen
API-1792

5.39 LoadNTemp Objects


LoadNTemp objects correspond to the nodal temperatures in your model. They are derived from
Entity objects, so in addition to the properties and methods described here, all of the properties and
methods defined for Entity objects are also available for LoadNTemps objects. For more informa-
tion, see Section 5.1, "Common Entity Properties and Methods".
Use the feLoadNTemp method of the FEMAP Application object to create LoadNTemp objects.

5.39.1 LoadNTemp Object Properties


LoadNTemps are always stored with their SetID equal to the setID of the load set, and the ID equal
to the node ID where they are applied.
When you create a new LoadNTemp, it will always reference the active load set. You can change
the set that it references simply by changing the setID parameter.

Property Description
INT4 color The load color.
INT4 layer The ID of the layer associated with the load.
BOOL expanded True if this is a load from an expanded geometric load.
REAL8 temp The nodal temperature.
REAL8 phase The phase value associated with the temperature.
INT4 function The ID of a function that defines time dependency of the tem-
perature.
INT4 LoadDefinitionID The ID of the load definition that contains this load (0=None)
AddArray API-1793

5.39.2 LoadNTemp Object Methods


5.39.2.1 AddArray

AddArray
( count, doValues, doFunctions, NodeID, Values, FunctionID )
Description:
This method creates multiple nodal temperatures
Input:
The number of temperatures to create, and the number of IDs in
INT4 count
NodeID
If True, then the Values array must contain load values to be used. If
BOOL doValues False, then whatever is specified in the current object is used and
Values is ignored
If True, then the FunctionID array must contain Function IDs to be
BOOL doFunctions used. If False, then whatever is specified in the current object is used
and FunctionID is ignored.
The Node IDs where temperatures will be created. One temperature
INT4 NodeID[0..count-1]
is created on each ID.
REAL8 Values[0..count-1] Temperature Values. Refer to temp property.
IDs of functions associated with each temperature. Specify 0 for con-
INT4 FunctionID[0..count-1]
stant values. Refer to function property.
Output:
None
Return Code:
FE_FAIL The Loads could not be created.
FE_NO_MEMORY Unable to allocate memory to store arrays of data.
Remarks/Usage:
Prior to using this method, you must properly specify the other parameters in the object - such as, color
and setID, and any other types required for your loads. This method simply uses the data you specify
here to overwrite specific values in the LoadNTemp object, and create a new temperature for each entry
in the arrays. This method puts data directly into the database, so there is no need to call Put after using
this method.
Example:
None
API-1794 Property

5.40 LoadSet Objects


LoadSet objects correspond to the load sets in your model. They are derived from Entity objects,
so in addition to the properties and methods described here, all of the properties and methods
defined for Entity objects are also available for Load Set objects. For more information, see Sec-
tion 5.1, "Common Entity Properties and Methods".
Use the feLoadSet method of the FEMAP Application object to create LoadSet objects.

5.40.1 LoadSet Object Properties


LoadSets are always stored with a SetID=1, and the ID equal to the load set ID.
LoadSet objects are really simply placeholders for global data for the load set. The actual loads are
defined in other objects.
In this table, you will see some properties that list two names - one of which is an array, the other a
Variant. Refer to Section 1.2.7, "Multiple Definitions of Array Properties" for more information.

Property Description
STRING title Set title (maximum 79 characters).
BOOL IsCombination This is a Nastran LOAD combination set if True.
REAL8 CombinedScaleFactor Overall scale factor for Nastran LOAD combination.
INT4 layer The layer associated with the set.
BOOL BodyAccelOn Body Load - Accelerations are active if True.
REAL8 BodyAccel[0..5]
Body Load - Translational and rotational acceleration val-
or
ues
VARIANT vBodyAccel
INT4 BodyAccelFunction[0..5]
Body Load - IDs of functions associated with Translational
or
and rotational acceleration values
VARIANT vBodyAccelFunction
Body Load - Varying Translational Accelerations are
BOOL BodyVaryingAccelOn
active if True.
REAL8 BodyVaryingAccel[0..2]
or Body Load - Varying Translational acceleration values
VARIANT vBodyVaryingAccel
Body Load - Varying Translational acceleration axis to
REAL8 BodyVaryingAccelAxis
vary along (0=X, 1=Y, 2=Z)
Body Load - IDs of function associated with Varying
INT4 BodyVaryingAccelFunction
Translational acceleration values
BOOL BodyVelocityOn Body Load - Rotational Velocities are active if True.
Property API-1795

Property Description
REAL8 BodyVelocity[0..2]
or Body Load - Rotational Velocity
VARIANT vBodyVelocity
INT4 BodyVelocityFunction[0..2]
Body Load - IDs of functions associated with Rotational
or
Velocity values
VARIANT vBodyVelocityFunction
REAL8 BodyOrigin[0..2]
or Body Load - The center of rotation.
VARIANT vBodyOrigin
The ID of the coordinate system used to define the various
INT4 BodyLoadCSys
body loads
BOOL BodyDefTempOn Body Load - Default Temperature is active if True.
REAL8 BodyDefTemp Body Load - The default temperature.
BOOL BodyRefTempOn Body Load - Reference Temperature is active if True.
REAL8 BodyRefTemp Body Load - The reference temperature
REAL8 StefanBoltzmann Heat Transfer - Stefan-Boltzmann Constant
Heat Transfer - ID of element used for ambient temp in
INT4 RadiationAmbientElem
enclosure radiation.
REAL8 TempOffset Heat Transfer - Offset of Temperatures from Absolute Zero
REAL8 FreeConvExponent Heat Transfer - Free Convection Exponent.
Heat Transfer - Flag for Alternate Free Convection Formu-
BOOL FreeConvAlternateForm
lation
REAL8 FCFluidConductivity Heat Transfer - Forced Convection Fluid Conductivity
REAL8 FCFluidHeatCapacity Heat Transfer - Forced Convection Fluid Heat Capacity
REAL8 FCFluidViscosity Heat Transfer - Forced Convection Fluid Viscosity
REAL8 FCFluidDensity Heat Transfer - Forced Convection Fluid Density
Heat Transfer - Forced Convection Fluid Conductivity
INT4 FCFluidConductivityFunc
Function
Heat Transfer - Forced Convection Fluid Heat Capacity
INT4 FCFluidHeatCapacityFunc
Function
Heat Transfer - Forced Convection Fluid Viscosity Func-
INT4 FCFluidViscosityFunc
tion
INT4 FCFluidDensityFunc Heat Transfer - Forced Convection Fluid Density Function
API-1796 Property

Property Description
Heat Transfer - Forced Convection Equation Constant
REAL8 FCConstantCoeff
Coefficient
REAL8 FCReynoldsExp Heat Transfer - Forced Convection Reynolds Exponent
Heat Transfer - Forced Convection Prandtl Exponent into
REAL8 FCPrandtlIn
Fluid
Heat Transfer - Forced Convection Prandtl Exponent out of
REAL8 FCPrandtlOut
Fluid
Heat Transfer - Flag for Alternate Forced Convection For-
BOOL FCAlternateForm
mulation
Heat Transfer - Flag to Exclude Forced Convection Con-
BOOL FCExcludeConvective
vective Energy Flow
Flag for Nonlinear Analysis: 0=Off, 1=Static, 2=Creep,
INT4 NLOn
3=Transient
INT4NLIncrements Nonlinear - Number of Increments for Nonlinear Analysis
REAL8NLTimeIncrement Nonlinear - Time Increment
INT4 NLMaxIterPerStep Nonlinear - Max Iterations per Step
BOOL NLConvergenceFlag[0..2]
Nonlinear - Convergence Flags for 0=Displacement,
or
1=Load and 2=Work
VARIANT vNLConvergenceFlag
REAL8 NLConvergenceVal[0..2]
Nonlinear - Convergence Tolerances for Displacement,
or
Load and Work
VARIANT vNLConvergenceVal
INT4 NLStiffnessMethod Nonlinear - Stiffness Update Method
INT4 NLStiffnessIter Nonlinear - Iterations before Stiffness Update
INT4 NLIntermediateOutput Nonlinear - Intermediate Output Type
INT4 NLOutputInterval Nonlinear - Output Interval
Nonlinear - Nonlinear Arc-Length Solution Strategy (Arc-
INT4 NLArcLengthMethod
Length if nonzero)
Nonlinear - Solution Strategy Overrides: 0=none/
INT4 NLSolutionOverride advanced, 1=Full Newton Raphson, 2=Modified Newton
Raphson
Nonlinear - Modified Newton Line Search Override
BOOL NLNewtRaphLineSearch
(1=Skip)
Nonlinear - Modified Newton Quasi-Newton Override
BOOL NLNewtRaphQuasiNewton
(1=Skip)
Property API-1797

Property Description
BOOL NLNewtRaphBisection Nonlinear - Modified Newton Bisection Override (1=Skip)
REAL8 NLArcScaleConstLoad Nonlinear - Arc Length Method Constraint Load Scale
REAL8 NLArcMinAdjust Nonlinear - Min Arc Length Adjust
REAL8 NLArcMaxAdjust Nonlinear - Max Arc Length Adjust
INT4 NLArcConstraintType Nonlinear - Arc Length Constraint Type
INT4 NLArcDesiredIter Nonlinear - Arc Length Desired Iterations
INT4 NLArcMaxIncrement Nonlinear - Arc Length Max Steps
INT4 NLMaxDivergeCond Nonlinear - Max Diverging Conditions
INT4 NLQuasiNewtonVec Nonlinear - Number of Quasi-Newton Vectors
INT4 NLMaxLineSearch Nonlinear - Max Line Search per Iteration
REAL8 NLLineSearchTolerance Nonlinear - Line Search Tolerance
INT4 NLMaxBisection Nonlinear - Max Bisections per Increment
REAL8 NLMaxRotation Nonlinear - Max Rotation per Bisection
REAL8 NLStressFraction Nonlinear - Stress Fraction Limit
REAL8 NLMaxAdjusted Nonlinear - Max Adjusted vs. Initial Increment
INT4 NLTransStepSkipFactor Nonlinear - Transient Time Step Skip Factor
INT4 NLTransDominantSteps Nonlinear - Transient Steps for Dominant Period
REAL8 NLTransBoundsMaintain Nonlinear - Transient Bounds to Maintain Step
REAL8 NLTransStabilityTol Nonlinear - Transient Minimum Stability Tolerance
REAL8 DYNStructDamp Dynamics - Overall Structural Damping Coefficient, G
REAL8 DYNSystemFreqDamp Dynamics - Frequency for System Damping, W3
REAL8 DYNElemFreqDamp Dynamics - Frequency for Element Damping, W4
Dynamics - Flag for Dynamic Analysis: 0=Off, 1=Direct,
INT4 DYNOn
2=Modal
Dynamics - Addl Flag for Dynamic Analysis: 0=Off,
INT4 DYNType
1=Transient, 2=Freq
Dynamics - Dynamic Mass Formulation: 0=Default,
INT4 DYNMassFormulation
1=Lumped, 2=Coupled
Dynamics - Dynamic Data Recovery: 0=Mode Displace-
INT4 DYNDataRecovery
ment, 1=Mode Acceleration, 2=Matrix
INT4 DYNSolFreqType Dynamics - Solution Frequency Input Type
API-1798 Property

Property Description
INT4 DYNPSDType Dynamics - PSD Data Type
INT4 DYNPSDInterp Dynamics - PSD Interpolation Method
REAL8 DYNSolFreqSpread Dynamics - Spread for frequency clusters
INT4 DYNSolFreqNumFreq Dynamics - Solution Frequencies per Mode
REAL8 DYNSolFreqMin Dynamics - Minimum Frequency to Compute
REAL8 DYNSolFreqMax Dynamics - Maximum Frequency to Compute
BOOL DYNSolFreqLogInterp Dynamics - Frequency Logarithmic Interpolation
INT4 DYNTransTimeSteps Dynamics - Transient Analysis Number of Steps
REAL8 DYNTransTimePerStep Dynamics - Transient Analysis Time Step
INT4 DYNTransOutputInterval Dynamics - Transient Analysis Output Interval
INT4 DYNFrequencyTable Dynamics - Function ID of the Frequency Table
INT4 DYNDampingTable Dynamics - Function ID of the Damping Table
INT4 DYNRandomPSD Dynamics - Function ID of the PSD
Dynamics - Number of Modes to use in Response Calcula-
INT4 DYNResponseModes
tions
Dynamics - Minimum Response Frequency to Keep for
REAL8 DYNResponseMinFreq
further analysis
Dynamics - Maximum Response Frequency to Keep for
REAL8 DYNResponseMaxFreq
further analysis
Expand API-1799

5.40.2 LoadSet Object Methods


5.40.2.1 Expand

Expand
( void )
Description:
This method expands all of the geometric loads in a selected load set.
Input:
None
Output:
None
Return Code:
FE_FAIL The specified expansion did not work.
Remarks/Usage:
This method takes the current load set object (uses the ID), and expands all of the geometric loads in
that set, so that they may be retrieved as normal mesh-based loads.
Example:
None
API-1800 Compress

5.40.2.2 Compress

Compress
( void )
Description:
This method compresses all of the geometric loads in a selected load set.
Input:
None
Output:
None
Return Code:
FE_FAIL The specified compression did not work.
Remarks/Usage:
This method takes the current load set object (uses the ID), and compresses (deletes) any expanded
loads. You are left with the unexpanded geometric loads.
Example:
None
ResetNextLoad API-1801

5.40.2.3 ResetNextLoad

ResetNextLoad
( enDataType, bAllLoadTypes, enLoadType, bOtherLoadsOnly, bIncludeExpanded )
Description:
This method initializes all options prior to calling the NextLoad method below
Input:
The type of load entities to be retrieved. For entity information, see
Section 3.3.6, "Entity Types". Can be FT_SURF_LOAD, FT_-
INT4 enDataType
GEOM_LOAD (default), FT_NTHERM_LOAD, or FT_ETHER-
M_LOAD
Used to limit the type of loads to be retrieved. If True, all selected
BOOL bAllLoadTypes loads will be returned. If False, only loads that match the type speci-
fied in enLoadType will be returned.
The type of loads to return. Only used if bAllLoadTypes is False.
INT4 enLoadType Refer to the Load Types table in Section 3.3.7, "FEMAP Constants"
for more information.
If true, then only loads that are not part of a load definition will be
BOOL bOtherLoadsOnly
retrieved. Otherwise all are available.
If True, expanded geometric loads (if any) will be returned along
BOOL bIncludeExpanded
with normal loads. Ignored if enDataType=FT_GEOM_LOAD.
Output:
None
Return Code:
FE_OK
Remarks/Usage:
This method is used prior to calling NextLoad to specify which loads will be retrieved. It also resets this
object so that the next call to NextLoad will return the first load available in the object.
Example:
API-1802 NextLoad

5.40.2.4 NextLoad

NextLoad
( pLoad )
Description:
This method returns the next available load that matches the criteria established by ResetNextLoad
Input:
The next load object. Depending on the options specified, this could
OBJECT pLoad
be a LoadGeom, LoadMesh, LoadNTemp or LoadGeom object
Output:
None
Return Code:
FE_BAD_DATA The data type that you are trying to retrieve is invalid.
There are no more loads of the specified type to retrieve. Call Reset-
FE_FAIL NextLoad to go back to the first load, if you want to retrieve the
loads again.
Remarks/Usage:
This method, coupled with ResetNextLoad provides an easy way to retrieve all loads from a Load Set.
Example:
This example loops through all load sets retrieving all
LoadMesh objects. For each it displays a message box.
Sub Main
Dim App As femap.model
Set App = GetObject(,"femap.model")
Dim ls As femap.LoadSet
Set ls = App.feLoadSet

Dim l As femap.LoadMesh

While ls.Next()
ls.ResetNextLoad( FT_SURF_LOAD, True, 0, False, False )
While ls.NextLoad( l )
MsgBox(Str$(l.setID)+""+Str$(l.meshID) )
Wend
Wend
End Sub
ResetNextLoadDef API-1803

5.40.2.5 ResetNextLoadDef

ResetNextLoadDef
( bAllDataTypes, enDataType, bAllLoadTypes, enLoadType )
Description:
This method initializes all options prior to calling the NextLoadDef method below
Input:
Used to limit the type of load definitions to be retrieved. If True, all
selected load definitions will be returned. If False, only load defini-
BOOL bAllDataTypes
tions that contain loads of the type specified in enDataType will be
returned.
The type of load entities to be retrieved. For entity information, see
Section 3.3.6, "Entity Types". Can be FT_SURF_LOAD, FT_-
INT4 enDataType
GEOM_LOAD (default), FT_NTHERM_LOAD, or FT_ETHER-
M_LOAD
Used to limit the type of load definitions to be retrieved. If True, all
selected load definitions will be returned. If False, only load defini-
BOOL bAllLoadTypes
tions that contain loads of the type specified in enLoadType will be
returned.
The type of loads to return. Only used if bAllLoadTypes is False.
INT4 enLoadType Refer to the Load Types table in Section 3.3.7, "FEMAP Constants"
for more information.
Output:
None
Return Code:
FE_OK
Remarks/Usage:
This method is used prior to calling NextLoadDef to specify which load definitions will be retrieved. It
also resets this object so that the next call to NextLoadDef will return the first load definition available
in the object.
Example:
API-1804 NextLoadDef

5.40.2.6 NextLoadDef

NextLoadDef
( pLoad )
Description:
This method returns the next available load definition that matches the criteria established by ResetNex-
tLoadDef
Input:
The next load definition object. This is always a LoadDefinition
OBJECT pLoad
object.
Output:
None
Return Code:
There are no more load definitions of the specified type to retrieve.
FE_FAIL Call ResetNextLoadDef to go back to the first load definition, if you
want to retrieve the loads again.
Remarks/Usage:
This method, coupled with ResetNextLoadDef provides an easy way to retrieve all load definitions from
a Load Set.
Example:
This example loops through all load sets retrieving all nodal
force LoadDefinition objects, then loops through each
LoadDefinition to retrieve the individual loads. For each it
displays a message box.
Sub Main
Dim App As femap.model
Set App = GetObject(,"femap.model")
Dim ls As femap.LoadSet
Set ls = App.feLoadSet
Dim ld As femap.LoadDefinition
Dim l As femap.LoadMesh
While ls.Next()
ls.ResetNextLoadDef( False, FT_SURF_LOAD, False, FLT_NFORCE )
While ls.NextLoadDef( ld )
MsgBox( "Load Set"+Str$(ld.setID)+" Load Def"+Str$(ld.ID))
While ld.NextLoad( l )
MsgBox( "Load On Node "+Str$(l.meshID) )
Wend
Wend
Wend
End Sub
GetCombination API-1805

5.40.2.7 GetCombination

GetCombination
( dOverallScale, nCombo, dScale, nSetID )
Description:
This method returns the data for a Nastran LOAD Combination Set.
Input:
None
Output:
REAL8 dOverallScale Overall Scale Factor for Nastran LOAD Combination.
INT4 nCombo Number of entries in the LOAD Combination.
REAL8 dScale[0..count-1] The Scale Factor for the load sets in the Combination.
INT4 nSetID[0..count-1] The IDs of the load sets in the Nastran LOAD Combination.
Return Code:
FE_BAD_TYPE This is not a LOAD Combination Set.
FE_NOT_AVAILABLE No load sets are in the combination.
Remarks/Usage:

Example:
None
API-1806 PutCombination

5.40.2.8 PutCombination

PutCombination
( dOverallScale, nCombo, dScale, nSetID )
Description:
This method sets the data in a Load Combination Set.
Input:
REAL8 dOverallScale Overall Scale Factor for Nastran LOAD Combination.
INT4 nCombo Number of entries in the LOAD Combination.
REAL8 dScale[0..count-1] The Scale Factor for the load sets in the Combination.
INT4 nSetID[0..count-1] The IDs of the load sets in the Nastran LOAD Combination.
Output:
None
Return Code:
FE_NOT_EXIST One or more Combined Load Sets specified do not exist.
Remarks/Usage:

Example:
None
PutCombination API-1807
API-1808

5.41 MapOutput Objects


MapOutput objects correspond to the process of mapping output from a different model as loads
into your model. They are derived from Entity objects, so in addition to the properties and methods
described here, all of the properties and methods defined for Entity objects are also available for
solids. For more information, see Section 5.1, "Common Entity Properties and Methods"

Use the feMapOutput method of the FEMAP Application object to create MapOutput objects

5.41.1 MapObject Properties


MapOutput are always stored with a SetID=1, and the ID equal to the entity ID.

Property Description
INT4 MapOption Method used to determine values for target locations that fall
outside of source mesh: 0=FMO_ZERO; 1=FMO_VALUE;
2=FMO_EXTEND; 3=FMO_INTERP; 4=FMO_NONE
REAL8 DefaultMapValue1 X value used if target mapping falls outside of source mesh
and MapOption is set to 1 (FMO_VALUE)
REAL8 DefaultMapValue2 Y value used if target mapping falls outside of source mesh
and MapOption is set to 1 (FMO_VALUE)
REAL8 DefaultMapValue3 Z value used if target mapping falls outside of source mesh
and MapOption is set to 1 (FMO_VALUE)
INT4 TargetSet The ID of the target models set of nodes or elements.
INT4 LoadType Target model mapped load type: 0=FMLT_NTEMPERATURE;
1=FMLT_NFORCE; 2=FMLT_NDISPLACEMENT;
3=FMLT_NROTDISPLACEMENT; 4=FMLT_NVELOCITY;
5=FMLT_NROTVELOCITY; 6=FMLT_NACCELERATION;
7=FMLT_NROTACCELERATION;
8=FMLT_ETEMPERATURE; 9=FMLT_EHEATFLUX;
10=FMLT_EHEATGEN; 11=FMLT_EPRESSURE
INT4 MapToType Mapped (target load) entity type applied to:
0=FMP_STANDARD; 1=FMP_NODE; 2=FMP_ELEMENT

Note: Value used for cross-entity type mapping. If load will be


applied to the same entity type as the output: e.g. source NODE
to target NODE , use MapToType=FMP_STANDARD. (for
same type mapping)

However, for source NODE output mapping to target ELE-


MENT load, use FMP_ELEMENT.

REAL8 MapOffsetTolerance(10.3+) Maximum distance between Src and Target data locations
where locations are considered coincident and direct mapping
without interpolation occurs.
MapFromModelToSet API-1809

5.41.2 MapOutput Object Methods


5.41.2.1 MapFromModelToSet

MapFromModelToSet
( SourceModel, Group ID, OutputSetID, OutputVector )
Description:
This method maps output data from a source model to loads on a target model. It performs the same
function as Femap menu command Model->Load->Map Output From Model...
Input:
INT4 SourceModel ID of the source model containing output to be mapped.
INT4 GroupID ID of group of entities in source model from which to map output.
ID of output set in source model containing data from which to map
INT4 OutputSetID
output.
ID of output vector in source model containing data from which to
INT4 OutputVector
map output.
Output:
None
Return Code:
Unable to get the map data. Possibly data is not stored or source
FE_FAIL group does not exist in source model or required properties are set
incorrectly.
Remarks/Usage:
This method will work with any output, but will only map to types specified in LoadType. All listed
properties must be set on the MapOutput object before calling this method.
Example:
Sub Main

Dim App As femap.model


Set App = GetObject(,"femap.model")
Dim ret As Integer
Dim ret As Integer
Set map = App.feMapOutput
Dim s As Set
Set s = App.feSet
API-1810 MapFromModelToSet

MapFromModelToSet
( SourceModel, Group ID, OutputSetID, OutputVector )
'1 Create target Set
rc = s.Select(FT_NODE, True, "Nodes" )
If s.count = 0 Then
Exit Sub
End If
map.TargetSet = s.ID

'2 Set No-map preference


map.MapOption = femap.FMO_INTERP

'3 Set Default values


map.DefaultMapValue1 = 0.0
map.DefaultMapValue2 = 0.0
map.DefaultMapValue3 = 0.0

'4 Set element/Node conversion If any


map.MapToType = femap.FMP_STANDARD

'5 Set output load Type


map.loadTYPE = femap.FMLT_NDISPLACEMENT

'6 Get Model ID


Dim modelID As Long
Dim vModelID As Variant
Dim num As Long
Dim modelName As String
modelName =""
rc = App.feAppGetAllModels(num, vModelID)
For e=0 To num
rc = App.feAppGetModelName(vModelID(e), modelName)
If modelName <> App.ModelName Then
modelID = vModelID(e)
Debug.Print modelID; " - "; modelName
Exit For
End If
Next
MapFromModelToSet API-1811

MapFromModelToSet
( SourceModel, Group ID, OutputSetID, OutputVector )
Dim srcGroup As Long
Dim srcSet As Long
Dim srcVector As Long
srcGroup =1
srcSet = 1
srcVector = 1
ret = map.MapFromModelToSet(modelID, srcGroup, srcSet, src-
Vector)
End Sub
API-1812 MapFromModelToSet2

5.41.2.2 MapFromModelToSet2

MapFromModelToSet2
( SourceModel, Group ID, OutputSetID, OutputVector )
Description:
This method maps output data from a source model to loads on a target model. It performs the same
function as Femap menu command Model->Load->Map Output From Model... Similar to MapFrom-
ModelToSet, but allows specification of Element or Node IDs, along with Element Face IDs, if needed,
instead of specifying the TargetSet in the MapOutput object.
Input:
INT4 SourceModel ID of the source model containing output to be mapped.
INT4 GroupID ID of group of entities in source model from which to map output.
ID of output set in source model containing data from which to map
INT4 OutputSetID
output.
ID of output vector in source model containing data from which to
INT4 OutputVector
map output.
VARIANT vID Array of element or node IDs where data is to be mapped.
VARIANT vElFace Array of element faces where data is to be mapped.
Output:
None
Return Code:
Unable to get the map data. Possibly data is not stored or source
FE_FAIL group does not exist in source model or required properties are set
incorrectly.
Remarks/Usage:
This method will work with any output, but will only map to types specified in LoadType. All listed
properties in the MapOutput object, except TargetSet, must be set before calling this method.
Example:
MapFromModelToSet2 API-1813

MapFromModelToSet2
( SourceModel, Group ID, OutputSetID, OutputVector )
Sub Main
Dim App As femap.model
Set App = feFemap()

Dim rc As Integer
Dim Velems As Variant
Dim Vfaces As Variant
Dim num As Long

Dim map As femap.MapOutput


Set map = App.feMapOutput

Dim targElemSet As femap.Set


Set targElemSet = App.feSet

'1 Pick Target Elements and Faces


App.feGetElementFaces(" Pick Faces", 0, , , num, Velems, Vfaces
)

'2 Set No-map preference


map.MapOption = femap.FMO_INTERP

'3 Set Default values


map.DefaultMapValue1 = 0.0
map.DefaultMapValue2 = 0.0
map.DefaultMapValue3 = 0.0

'4 Set element/Node conversion If any


map.MapToType = femap.FMP_STANDARD

'5 Set output load Type


map.loadType = femap.FMLT_EPRESSURE
API-1814 MapFromModelToSet2

MapFromModelToSet2
( SourceModel, Group ID, OutputSetID, OutputVector )
'6 Get Model ID
Dim modelID As Long
Dim vModelID As Variant
Dim numM As Long
Dim modelName As String
modelName =""
rc = App.feAppGetAllModels(numM, vModelID)
For e=0 To numM
rc = App.feAppGetModelName(vModelID(e), modelName)
If modelName <> App.ModelName Then
modelID = vModelID(e)
Debug.Print modelID; " - "; modelName
Exit For
End If
Next

'7 Output data to map from


Dim srcGroup As Long
Dim srcSet As Long
Dim srcVector As Long
srcGroup = 1
srcSet = 2
srcVector = 9000000

ret = map.MapFromModelToSet2( modelID, srcGroup, srcSet,srcVec-


tor, Velems, Vfaces)

End Sub
MapFromModelToLocation API-1815

5.41.2.3 MapFromModelToLocation

MapFromModelToLocation
( SourceModel, Group ID, OutputSetID, OutputVector, XLoc, YLoc, ZLoc, vMapVal,
vUnitX, vUnitY, vUnitZ )
Description:
This method maps output data from a source model to any locations in space.
Input:
INT4 SourceModel ID of the source model containing output to be mapped.
INT4 GroupID ID of group of entities in source model from which to map output.
ID of output set in source model containing data from which to map
INT4 OutputSetID
output.
ID of output vector in source model containing data from which to
INT4 OutputVector
map output.
REAL8 XLoc[0...N-1] Array of global rectangular x-coordinates for locations where data is
or to be mapped.
VARIANT vXLoc N = number of locations for which mapped values are returned.
REAL8 YLoc[0...N-1] Array of global rectangular y-coordinates for locations where data is
or to be mapped.
VARIANT vYLoc N = number of locations for which mapped values are returned.
REAL8 ZLoc[0...N-1] Array of global rectangular z-coordinates for locations where data is
or to be mapped.
VARIANT vZLoc N = number of locations for which mapped values are returned.
Output:
Output value mapped to location. Values ordered 0..N-1 in VARI-
VARIANT vMapVal
ANT
Unit x vector (global, rectangular) of corresponding mapped output
VARIANT vUnitX
value.
Unit y vector (global, rectangular) of corresponding mapped output
VARIANT vUnitY
value.
Unit z vector (global, rectangular) of corresponding mapped output
VARIANT vUnitZ
value.
Return Code:
Unable to get the map data. Possibly data is not stored or group does
FE_FAIL not exist in model or required MapObject properties are set incor-
rectly.
Remarks/Usage:
API-1816 MapFromModelToLocation

MapFromModelToLocation
( SourceModel, Group ID, OutputSetID, OutputVector, XLoc, YLoc, ZLoc, vMapVal,
vUnitX, vUnitY, vUnitZ )
This method will work with any output, but will only map to types specified in LoadType. All listed
properties must be set on the MapOutput object before calling this method.
Example: None
API-1817

5.42 Material Objects


Material objects correspond to the materials in your model. They are derived from Entity objects
so, in addition to the properties and methods described here, all of the properties and methods
defined for Entity objects are also available for materials. For more information, see Section 5.1,
"Common Entity Properties and Methods".
Use the feMatl method of the FEMAP Application object, or the Matl method of the Element
object to create Material objects.

5.42.1 Material Object Properties


Materials are always stored with a SetID=1, and the ID equal to the material ID.
In this table, you will see some properties that list two names - one of which is an array, the other a
Variant. Refer to Section 1.2.7, "Multiple Definitions of Array Properties" for more information.

Property Description
INT4 color The material color.
Type of material (0=Iso, 1=2D Ortho, 2=3D Ortho, 3=2D
INT4 type
Aniso, 4=3D Aniso, 5=Hyperelastic, 6=General, 7=Fluid).
INT4 subtype Subtype for general materials.
INT4 layer The ID of the layer associated with the material.
STRING title Material title (maximum 79 characters).
BOOL bval[0..9]
or Array of Boolean flags.
VARIANT vbval
INT4 ival[0..24]
or Array of integer values.
VARIANT vival
REAL8 mval[0..199]
or Array of real values.
VARIANT vmval
INT4 fval[0..49]
or Array of function IDs.
VARIANT vfval
INT4 tval[0..69]
or Additional function IDs.
VARIANT vtval
Additional Properties
REAL8 mmat[0..199] Same as mval, but returns/sets entire array as a VARIANT.
INT4 imat[0..24] Same as ival but returns/sets entire array as a VARIANT.
API-1818

Property Description
INT4 fmat[0..49] Same as fval, but returns/sets entire array as a VARIANT.
INT4 tmat[0..69] Same as tval, but returns/sets entire array as a VARIANT
The following properties can be accessed directly from the value arrays, or by name using the following
references.
REAL8 Ex
REAL8 Ey Youngs Modulus
REAL8 Ez
REAL8 Gx
REAL8 Gy Shear Modulus
REAL8 Gz
REAL8 Nuxy
REAL8 Nuyz Poissons Ratio
REAL8 Nuxz
REAL8 Alphaxx
REAL8 Alphayy
REAL8 Alphazz
Coefficient of Thermal Expansion
REAL8 Alphaxy
REAL8 Alphayz
REAL8 Alphazx
REAL8 Kxx
REAL8 Kyy
REAL8 Kzz
Thermal Conductivity
REAL8 Kxy
REAL8 Kyz
REAL8 Kzx
REAL8 Cp Heat Capacity
REAL8 Density Density
REAL8 Damping Damping Coefficient
REAL8 RefTemp Reference Temperature
API-1819

Property Description
REAL8 TensionLimit1
Limit Stress/Strain in Tension
REAL8 TensionLimit2
REAL8 CompressionLimit1
Limit Stress/Strain in Compression
REAL8 CompressionLimit2
REAL8 ShearLimit Limit Stress/Strain in Shear
REAL8 TsaiWu Tsai-Wu Interaction Factor

5.42.1.1 Accessing Material Properties


You can access the individual properties for the Material object by referencing the properties
described above, and the data contained in the table below. For example, to retrieve the Youngs
Modulus for an Isotropic material, use:
E = mt.mval(0)

or
rho = mt.mval(49)

for density.
This method provides great flexibility, but can be slow if you are going to work with a large num-
ber of properties. In this case, it is best to access the data using Additional Properties. These all
set and return entire arrays of values in one reference. For example, you could write:
Dim mt as Object
Set mt = femap.feMatl
Dim v as Variant
mt.Get(1)
v = mt.mmat
v(0)=30.0E6
v(49)=0.1
mt.mmat = v
mt.Put(1)

This code loads Material 1, retrieves the entire array of real values into v, updates the Youngs
modulus and density, puts the entire array back, and saves the updated material definition. While
the code is slightly longer than simply accessing the individual properties, performance will be
better using this approach.
5.42.1.2 Material Array Index Values
In general, most of the material data is simply stored in the various array properties. The location
of the specific property data is defined in the following table.
The IDs of the functions used for function dependence of the standard properties (accessed in
FEMAP by pressing the Function button on the Material dialog boxes) can be accessed by looking
in the following table under the Real Values section. There you should identify the property that
you want, and call the tval property with the same index as the mval property that you are looking
for.
API-1820 Value

Value Description Locations


Integer Values
Strain Energy Polynomial Order for Hyper-
HYPER_POLYORD(i) ival[0],ival[1]
elastic
Nonlinear Type (0=None/Linear, 1=Nonlinear
NONLINEAR_TYPE ival[2]
Elastic, 2=Plastic, 3=Elasto-Plastic
HARDENING_TYPE Hardening Data Type ival[3]
Yield Criterion (0=von Mises, 1=Tresca,
YIELD_TYPE ival[4]
2=Mohr-Coloumb, 3=Drucker-Prager)
Creep Type (0=None, 1=Empirical, 2=Tabu-
CREEP_TYPE ival[5]
lar)
CREEP_EMPIRICAL_FORM(i) Empirical Creep Law Format Flags ival[6..9]
DP_HARDENING_DATA_TYPE Drucker-Prager Hardening data type ival[10]
Ply/Bond Failure - Ply Failure Theory
(0=None, 1=Hill, 2=Hoffman, 3=Tsai-Wu,
PLY_FAILURE_MODE ival[11]
4=Max Strain, 5=Max Stress, 6=Max Trans-
verse Shear)
Ply/Bond Failure - Bond Failure Theory
BOND_FAILURE_MODE (0=None, 1=Transverse Shear, 2=Normal ival[12]
Stress)
Boolean Values
Flag if material uses strain limits instead of
HAS_STRAIN_LIMITS bval[0]
stress limits
Flag if a fluid type material is a liquid vs. a
FLUID IS LIQUID bval[1]
gas
OPT_FRONT_SIDE bval[2]
OPT_REV_SIDE bval[3]
Flag to write D1 in Nastran Hyperelastic
DMATRIX_HYP_D1_ZERO bval[4]
material as Zero
Real Values
E(i) Young's modulus mval[0..2]
G(i) Shear modulus mval[3..5]
NU(i) Poisson's ratio mval[6..8]
Upper triangle of 6x6 3D anisotropic elastic
GMATRIX_3D(i) mval[9..29]
matrix.
Locations API-1821

Value Description Locations


Upper triangle of 3x3 2D anisotropic elastic
GMATRIX_2D(i) mval[30..35]
matrix.
THERMAL_EXPANSION(i) Thermal expansion coefficients. mval[36..41]
THERMAL_CONDUCTIVITY(i) Thermal conductivity coefficients. mval[42..47]
THERMAL_CAPACITY Specific Heat mval[48]
DENSITY Material density mval[49]
DAMPING Damping coefficient mval[50]
TEMPERATURE Reference temperature mval[51]
TENSION_LIMIT(i) Stress allowable in tension mval[52..53]
COMPRESSION_LIMIT(i) Stress allowable in compression mval[54..55]
SHEAR_LIMIT Stress allowable in shear mval[56]
TSAI_WU_INTERACTION Tsai_wu interaction factor mval[57]
AMATRIX_HYP(i) Hyperelastic Amatrix values mval[58..78]
DMATRIX_HYP(i) Hyperelastic Dmatrix values mval[79..83]
HARDENING_SLOPE Plasticity Hardening Slope mval[84]
Plasticity Yield Limits - Initial Yield Stress,
YIELD_LIMITS(i) mval[85..89]
Friction Angle, additional yield limits
CREEP_THRESHOLD_STRESS Creep Threshold Stress mval[90]
CREEP_REF_TEMP Creep Reference Temperature mval[91]
CREEP_TEMP_DEP_RATE Temperature Dependent Creep Rate mval[92]
CREEP_EMPIRICAL_COEFF(i) Empirical Creep Law Coefficients mval[93..99]
mval[100], or
HEAT GENERATION Heat Generation Value
tval[57]
REFERENCE ENTHALPY Enthalpy for Phase Change mval[101]
PHASE CHANGE TEMP Temperature for Phase Change Onset mval[102]
PHASE CHANGE TEMP RANGE Temperature Range for Phase Change mval[103]
LATENT HEAT OF FUSION Latent heat of Fusion mval[104]
SPECIFIC HEAT ABOVE PHASE Specific heat above Phase Change Temp mval[105]
OPT EMISSIVITY Optical - Emissivity mval[106]
OPT EMISSIVITY REV Optical - Emissivity, Reverse Side mval[107]
API-1822 Locations

Value Description Locations


OPT ABSORPTIVITY Optical - Absorptivity mval[108]
OPT ABSORPTIVITY REV Optical - Absorptivity, Reverse Side mval[109]
OPT TRANSMISSIVITY SOLAR Optical - Solar Transmissivity mval[110]
OPT TRANSMISSIVITY IR Optical - InfraRed Transmissivity mval[111]
OPT REFLECTIVITY SOLAR Optical - Solar Reflectivity mval[112]
OPT REFLECTIVITY SOLAR REV Optical - Solar Reflectivity, Reverse Side mval[113]
OPT REFLECTIVITY IR Optical - InfraRed Reflectivity mval[114]
OPT REFLECTIVITY IR REV Optical - InfraRed Reflectivity, Reverse mval[115]
mval[116] or
GAS CONSTANT Fluid Gas Constant
tval[58]
mval[117] or
DYNAMIC VISCOSITY Fluid Dynamic Viscosity
tval[59]
mval[118] or
PRANDTL NUMBER Prandtl Number
tval[60]
ELECTRICAL_RESISTIVITY Optical - Electrical Resistivity mval[119]
VOL_SPECIFIC_HEAT Fluid Specific Heat, Cv mval[120]
OPT_REFRACTION Optical - Index of Refraction mval[121]
OPT_REFRACTION_REV Optical - Index of Refraction, Reverse mval[122]
BULK_MODULUS Other Types - Bulk Modulus mval[123]
Other Types - Speed of Sound - C on NX Nas-
SPEED_OF_SOUND tran Fluid Material (MAT10) and on MSC mval[124]
Nastran Fluid Material (MAT10)
Ply/Bond Failure - Compressive Stress Limits
PLY_FAILURE_STRESS_XC mval[125]
Value 1
Ply/Bond Failure - Compressive Stress Limits
PLY_FAILURE_STRESS_YC mval[126]
Value 2
Ply/Bond Failure - Compressive Stress Limits
PLY_FAILURE_STRESS_ZC mval[127]
Value 3
Ply/Bond Failure - Tensile Stress Limits
PLY_FAILURE_STRESS_XT mval[128]
Value 1
Ply/Bond Failure - Tensile Stress Limits
PLY_FAILURE_STRESS_YT mval[129]
Value 2
Ply/Bond Failure - Tensile Stress Limits
PLY_FAILURE_STRESS_ZT mval[130]
Value 3
Locations API-1823

Value Description Locations


Ply/Bond Failure - Shear Stress Limits Value
PLY_FAILURE_STRESS_XYSHR mval[131]
12
Ply/Bond Failure - Shear Stress Limits Value
PLY_FAILURE_STRESS_YZSHR mval[132]
23
Ply/Bond Failure - Shear Stress Limits Value
PLY_FAILURE_STRESS_XZSHR mval[133]
13
Ply/Bond Failure - Compressive Strain Limits
PLY_FAILURE_STRAIN_XC mval[134]
Value 1
Ply/Bond Failure - Compressive Strain Limits
PLY_FAILURE_STRAIN_YC mval[135]
Value 2
Ply/Bond Failure - Compressive Strain Limits
PLY_FAILURE_STRAIN_ZC mval[136]
Value 3
Ply/Bond Failure - Tensile Strain Limits
PLY_FAILURE_STRAIN_XT mval[137]
Value 1
Ply/Bond Failure - Tensile Strain Limits
PLY_FAILURE_STRAIN_YT mval[138]
Value 2
Ply/Bond Failure - Tensile Strain Limits
PLY_FAILURE_STRAIN_ZT mval[139]
Value 3
Ply/Bond Failure - Shear Strain Limits Value
PLY_FAILURE_STRAIN_XYSHR mval[140]
12
Ply/Bond Failure - Shear Strain Limits Value
PLY_FAILURE_STRAIN_YZSHR mval[141]
23
Ply/Bond Failure - Shear Strain Limits Value
PLY_FAILURE_STRAIN_XZSHR mval[142]
13
Ply/Bond Failure - Tsai-Wu Interaction Value
PLY_FAILURE_TSAI_XY mval[143]
12
Ply/Bond Failure - Tsai-Wu Interaction Value
PLY_FAILURE_TSAI_YZ mval[144]
23
Ply/Bond Failure - Tsai-Wu Interaction Value
PLY_FAILURE_TSAI_XZ mval[145]
13
Other Types - Bulk Mod Ratio - GAMMA on
BULK_MODULUS_RATIO mval[170]
NX Nastran Fluid Material (MAT10)
Other Types - Admittance Coefficient -
ADMITTANCE_COEFFICIENT ALPHA on MSC Nastran Fluid Material mval[171]
(MAT10)
Function Values
API-1824 Locations

Value Description Locations


IDs of Hyperelastic Experimental Data Func-
EXPERIMENTAL_FUNCTIONS(i) fval[0..4]
tions
NONLINEAR_FUNCTION ID of function for Plasticity fval[5]
CREEP_FUNCTIONS(i) Tabular Model Creep Function IDs fval[6..8]
DP_YIELD_FUNCTION ID of Drucker-Prager Yield Function fval[9]
OPT EMISSIVITY FUNCTION ID of Optical Emissivity Function fval[10]
OPT_EMISSIVITY REV FUNC-
ID of Optical Emissivity Rev Side Function fval[11]
TION
OPT ABSORPTIVITY FUNCTION ID of Optical Absorptivity Function fval[12]
OPT ABSORPTIVITY REV FUNC ID of Optical Absorptivity Rev Side Function fval[13]
OPT TRANSMISSIVITY SOLAR
ID of Solar Transmissivity Function fval[14]
FUNC
OPT TRANSMISSIVITY IR FUNC ID of InfraRed Transmissivity Function fval[15]
OPT REFLECTIVITY SOLAR
ID of Solar Reflectivity Function fval[16]
FUNC
OPT REFLECTIVITY SOLAR REV
ID of Solar Reflectivity, Rev Side Function fval[17]
FUNC
OPT REFLECTIVITY IR FUNC ID of InfraRed Reflectivity Function fval[18]
OPT REFLECTIVITY IR REV
ID of InfraRed Reflectivity Rev Side Function fval[19]
FUNC
ELECTRICAL RESISTIVITY
ID of Electrical Resistivity Function fval[20]
FUNC
OPT_REFRACTION_FUNC ID of Index of Refraction Function fval[21]
OPT_REFRACTION_REV_FUNC ID of Index of Refraction Rev Side Function fval[22]
ID of Bulk Modulus Function - NX Nastran
BULK_MODULUS_FUNC fval[39]
Fluid Material (MAT10)
ID of Damping Coeff Function - NX Nastran
DAMPING_COEFFICIENT_FUNC fval[40]
Fluid Material (MAT10)
ID of Bulk Mod Ration Function - NX Nas-
BULK_MODULUS_RATIO_FUNC fval[41]
tran Fluid Material (MAT10)
ID of Density Function - NX Nastran Fluid
DENSITY_FUNC fval[49]
Material (MAT10)
AutoComplete API-1825

5.42.2 Material Object Methods


5.42.2.1 AutoComplete

AutoComplete
( void )
Description:
This method automatically fills out additional properties in the material object.
Input:
None
Output:
None
Return Code:
None
Remarks/Usage:
Often you want to define a material using a particular type - for example, orthotropic. In some cases
however FEMAP will need to use that material as another type - for example, anisotropic. To do this
successfully, all of the properties, not just the ones for the defined type need to be completed. This
method will automatically compute, using the standard definitions in FEMAP, the required properties.
Only standard structural properties are supported - E, G, NU, GMATRIX_2D, GMATRIX_3D, THER-
MAL_EXPANSION, and THERMAL_CONDUCTIVITY, and the TENSION_LIMIT and COMPRES-
SION_LIMIT are currently supported.

You should call this method after completing your material definition, and immediately before calling
Put to store the material in the database.
Example:
None
API-1826 AreDuplicate

5.42.2.2 AreDuplicate

AreDuplicate
( nMatl1, nMatl2, ignoretitle )
Description:
This method determines if two materials have identical values and includes an option to also consider
the titles of the two materials
Input:
INT4 nMatl1 ID of a material
INT4 nMatl2 ID of a material to compare to the material specified in nMatl1
Should title be ignored when determining if the 2 materials are dupli-
BOOL ignoretitle
cates (True=titles ignored, False=titles considered)
Output:
None
Return Code:
FE_FAIL Materials are not duplicates (i.e., different)
FE_OK Materials are duplicates
Remarks/Usage:

Example:
None
API-1827

5.43 Node Objects


Node objects correspond to the nodes in your model. They are derived from Entity objects so, in
addition to the properties and methods described here, all of the properties and methods defined
for Entity objects are also available for nodes. For more information, see Section 5.1, "Common
Entity Properties and Methods".
Use the feNode method of the FEMAP Application object to create Node objects.

5.43.1 Node Object Properties


Nodes are always stored with a SetID=1, and the ID equal to the node ID.
In this table, you will see some properties that list two names - one of which is an array, the other a
Variant. Refer to Section 1.2.7, "Multiple Definitions of Array Properties" for more information.

Property Description
REAL8 x These are the coordinates of the node. They are always speci-
fied in global rectangular coordinates.
REAL8 y
REAL8 z
VARIANT xyz The coordinates of the node as a Variant
INT4 layer The ID of the layer associated with the node.
INT4 color The node color.
BOOL permBC[0..5] An array of flags telling whether the corresponding degrees of
or freedom are constrained (True) or free (False) as permanent
VARIANT vpermBC constraints.
INT4 type The node type (0=Node, 1=Scalar, 2=Extra).
INT4 defCSys The ID of the definition coordinate system.
INT4 outCSys The ID of the output coordinate system.
INT4 superelementID The ID of the superelement that contains this node (0=None/
Residual)
INT4 NumberOfElements Number of elements using the node.
INT4 NumberOfLoads Total number of nodal loads using the node from all load sets
INT4 NumberOfConstraints Total number of nodal constraints and/or constraint equations
using the node from all constraint sets
Additional Properties
Accesses all three coordinates of a node as a Variant. Same as
REAL8 xyz[0..2]
using x, y, and z independently
API-1828 GetAll

5.43.2 Node Object Methods


5.43.2.1 GetAll

GetAll
( entID, x, y, z, layer, color, type, defCSys, outCSys, permBC )
Description:
This method retrieves an entity with the specified ID.
Input:
INT4 entID ID of the entity to retrieve.
Output:
REAL8 x
REAL8 y
REAL8 z
INT4 layer
Refer to the property descriptions for each of these items. permBC is
INT4 color returned in an integer array, even though it contains only True/False
values.
INT4 type
INT4 defCSys
INT4 outCSys
INT4 permBC[0..5]
Return Code:
FE_FAIL The specified entity does not exist.
Remarks/Usage:
Unlike the standard Get method, this function returns all of the properties as arguments. If you need to
get all of the property data anyway, calling this will be faster than multiple calls to retrieve each property
individually.
Example:
None
GetAllArray API-1829

5.43.2.2 GetAllArray

GetAllArray
( setID, numNode, entID, xyz, layer, color, type, defCSys, outCSys, permBC )
Description:
This method retrieves arrays of values for a set of nodes.
Input:
ID of the set that contains the node IDs to retrieve. If 0, retrieve
INT4 setID
all nodes in the model.
Output:
INT4 numNode The number of nodes for which data is being returned.
INT4 entID[0..numNode-1] Each entry is the ID of the associated node.
The coordinates of the node. There are 3 entries, x, y, z for each
REAL8 xyz[0..(3*numNode)-1]
node.
INT4 layer[0..numNode-1] The ID of the layer for the node.
INT4 color[0..numNode-1] The color of the node.
INT4 type[0..numNode-1] The type of the node.
INT4 defCSys[0..numNode-1] The definition coordinate system of the node.
INT4 outCSys[0..numNode-1] The output coordinate system of the node.
Flags indicating the permanent constraints on the node. 0=off,
INT4 permBC[0..(6*numNode)-1] 1=on. There are 6 entries, corresponding to the degrees of free-
dom for each node.
Return Code:
FE_FAIL Unable to retrieve data from the selected nodes.
Remarks/Usage:
This method is the fastest way to retrieve information about a large number of nodes. If a retrieved node
ID does not exist, then all of the values for that node ID will be 0.
Example:
None
API-1830 GetAllArray2

5.43.2.3 GetAllArray2

GetAllArray2
( setID, numNode, entID, exist, xyz, layer, color, type, defCSys, outCSys, permBC )
Description:
This method retrieves arrays of values for a set of nodes, including if a node exists in the database
Input:
ID of the set that contains the node IDs to retrieve. If 0, retrieve
INT4 setID
all nodes in the model.
Output:
INT4 numNode The number of nodes for which data is being returned.
INT4 entID[0..numNode-1] Each entry is the ID of the associated node.
BOOL exist[0..numNode-1] Node existence, True=Node exists, False=Node does not exist
The coordinates of the node. There are 3 entries, x, y, z for each
REAL8 xyz[0..(3*numNode)-1]
node.
INT4 layer[0..numNode-1] The ID of the layer for the node.
INT4 color[0..numNode-1] The color of the node.
INT4 type[0..numNode-1] The type of the node.
INT4 defCSys[0..numNode-1] The definition coordinate system of the node.
INT4 outCSys[0..numNode-1] The output coordinate system of the node.
Flags indicating the permanent constraints on the node. 0=off,
INT4 permBC[0..(6*numNode)-1] 1=on. There are 6 entries, corresponding to the degrees of free-
dom for each node.
Return Code:
FE_FAIL Unable to retrieve data from the selected nodes.
Remarks/Usage:
This method is the fastest way to retrieve information about a large number of nodes. If a retrieved node
ID does not exist, then all of the values for that node ID will be 0. If it is known that all of the nodes in
the node set exist, use GetAllArray.
Example:
None
GetCoordArray API-1831

5.43.2.4 GetCoordArray

GetCoordArray
( setID, numNode, entID, xyz )
Description:
This method retrieves arrays of coordinates for a set of Nodes
Input:
ID of the set that contains the node IDs to retrieve. If 0, retrieve all
INT4 setID
nodes in the model
Output:
INT4 numNode The number of nodes for which data is being returned.
INT4 entID[0..numNode-1] Each entry is the ID of the associated node
The coordinates of the node. There are 3 entries, x, y, z for each
REAL8 xyz[0..(3*numNode)-1]
node.
Return Code:
FE_FAIL Unable to retrieve data from the selected nodes.
Remarks/Usage:
This is a simpler form of GetAllArray, if you simply need the nodal coordinates. If a retrieved node ID
does not exist, then all of the values for that node ID will be 0.
Example:
None
API-1832 GetCoordArray2

5.43.2.5 GetCoordArray2

GetCoordArray2
( setID, numNode, entID, exist, xyz )
Description:
This method retrieves arrays of coordinates for a set of Nodes and an additional array designating if a
node exists in the database
Input:
ID of the set that contains the node IDs to retrieve. If 0, retrieve all
INT4 setID
nodes in the model
Output:
INT4 numNode The number of nodes for which data is being returned.
INT4 entID[0..numNode-1] Each entry is the ID of the associated node
BOOL exist[0..numNode-1] Node existence, True=Node exists, False=Node does not exist
The coordinates of the node. There are 3 entries, x, y, z for each
REAL8 xyz[0..(3*numNode)-1]
node.
Return Code:
FE_FAIL Unable to retrieve data from the selected nodes.
Remarks/Usage:
This is a simpler form of GetAllArray2, if you simply need the nodal coordinates and also want to know
if a node exists in the database. If a retrieved node ID does not exist, then all of the values for that node
ID will be 0.
Example:
None
PutAll API-1833

5.43.2.6 PutAll

PutAll
( entID, x, y, z, layer, color, type, defCSys, outCSys, permBC )
Description:
This method stores an entity with the specified ID.
Input:
INT4 entID The ID of the entity to store.
REAL8 x
REAL8 y
REAL8 z
INT4 layer
Refer to the property descriptions for each of these items. permBC is
INT4 color loaded in an integer array, even though it contains only True/False
values.
INT4 type
INT4 defCSys
INT4 outCSys
INT4 permBC[0..5]
Output:
None
Return Code:
FE_FAIL Unable to store the entity with the specified ID.
Remarks/Usage:
Unlike the standard Put method, this function loads all of the properties as arguments. If you are updat-
ing all of the properties before storing an entity, this function will be faster than multiple calls to load
each property individually.
Example:
None
API-1834 PutAllArray

5.43.2.7 PutAllArray

PutAllArray
( numNode, entID, xyz, layer, color, type, defCSys, outCSys, permBC )
Description:
This method stores multiple node entities with the specified data.
Input:
The number of nodes to create (i.e. the number of entries in the
INT4 numNode
arrays)
INT4 entID[0..numNode-1] The IDs of the nodes to store.
REAL8 xyz[0..(3*numNode)-1]
INT4 layer[0..numNode-1]
INT4 color[0..numNode-1] Refer to the property descriptions for each of these items. xyz is
an array of the nodal coordinates, there are 3 entries for each
INT4 type[0..numNode-1] node (must be in global rectangular coordinates). permBC is
loaded in an integer array, even though it contains only True/
INT4 defCSys[0..numNode-1] False values. It contains six values per node.
INT4 outCSys[0..numNode-1]
INT4 permBC[0..(6*numNode)-1]
Output:
None
Return Code:
FE_FAIL Unable to store the entity with the specified ID.
Remarks/Usage:
This is the fastest Put method if you have a large number of nodes to create. All data can be accumu-
lated in arrays and then transferred in one call.
Example:
None
PutCoordArray API-1835

5.43.2.8 PutCoordArray

PutCoordArray
( numNode, entID, xyz )
Description:
This is a simpler version of PutAllArray that allows multiple node entities to be stored with the specified
data.
Input:
The number of nodes to create (i.e. the number of entries in the
INT4 numNode
arrays)
INT4 entID[0..numNode-1] The IDs of the nodes to store.
REAL8 xyz[0..(3*numNode)-1] The coordinates of the nodes to store.
Output:
None
Return Code:
FE_FAIL Unable to store the entity with the specified ID.
Remarks/Usage:
This method is even faster than PutAllArray, and requires less memory, it does not however give you
full control. The same layer, color... are used for every entity - only the coordinates are input as an array.
Example:
None
API-1836 GetClosest

5.43.2.9 GetClosest

GetClosest
( xyz )
Description:
This method finds the Node closest to the desired location and loads it into the current object
Input:
REAL8 xyz[0..2] The coordinates of the location of interest.
Output:
None
Return Code:
FE_NOT_EXIST Unable to find closest Node.
Remarks/Usage:
None
Example:
None
IsMidsideNode API-1837

5.43.2.10 IsMidsideNode

IsMidsideNode
( elemSET )
Description:
This method determines if the current Node is used as a midside node on any elements
Input:
The ID of a Set Object used to limit the elements to consider when
INT4 elemSET determining if the current Node is a midside node. Set this to 0 if you
simply want to consider all elements.
Output:
None
Return Code:
FE_OK Current node is used as a midside node on one or more elements
FE_FAIL Current node is not used as a midside node.
Remarks/Usage:
If you are going to call this method repeatedly for multiple nodes performance may not be as good as
using the AddMidsideNodes() method on the Set Object to find all midside nodes and then testing if this
node is in the Set.
Example:
None
API-1838

5.44 Optim Objects


Optim objects correspond to the Design Optimization definitions in your model. They are derived
from Entity objects, so in addition to the properties and methods described here, all of the proper-
ties and methods defined for Entity objects are also available for Optim objects. For more informa-
tion, see Section 5.1, "Common Entity Properties and Methods".
Use the feOptim method of the FEMAP Application object to create Optim objects.

5.44.1 Optim Object Properties


Optim are always stored with their SetID = 1, and the ID varying from 1 to N, depending on the
order in which the item was created. Each object contains a specific type of information: goal, vary
or limit. You must look at the total collection of Optim objects to assemble the full design optimi-
zation definition.

Property Description
INT4 type The Optim object type: 1=Goal, 2=Vary, 3=Limit.
INT4 goal Goal of optimization (only if type=1):
0=None,1=MinWeight
INT4 vary Optimization variable:
0=None,1=RodArea,2=RodTorsion, 3=BarArea, 4=BarI1,
5=BarI2, 6=BarTorsion, 7=PlateThickness
INT4 limit Optimization limit:
0=None, 1=NodXDisp, 2=NodYDisp,3=NodZDisp,
4=NodXRDisp, 5=NodYRDisp,6=NodZRDisp, 7=RodAxial-
Stress,8=RodTorsionStress, 9=RodAxialStrain, 10=RodTor-
sionStrain, 11=BarAxialStress, 12=BarMaxStress,
13=BarMinStress, 14=BarAxialStrain, 15=BarMaxStrain,
16=BarMinStrain, 17=PltXNormalStress, 18=PltYNormal-
Stress, 19=PltXYShearStress, 20=PltMaxPrinStress, 21=Plt-
MinPrinStress, 22=PltVonMisesStress, 23=PltXNormalStrain,
24=PltYNormalStrain, 25=PltXYShearStrain, 26=PltMaxPrin-
Strain, 27=PltMinPrinStrain, 28=PltVonMisesStrain
INT4 cycles The number of design cycles.
INT4 varyType The type of data to vary. 11=Property
INT4 varyID Property ID to vary.
INT4 varyExtraID Not used.
BOOL varyPct If True, max/min specified as %, otherwise as values.
REAL8 varyMin Minimum allowable value for variable.
REAL8 varyMax Maximum allowable value for variable.
REAL8 varyDelta Maximum change in variable before new analysis is required.
API-1839

Property Description
INT4 respType Response on: Node=7 or Property=11.
INT4 respID ID of node or property for response.
REAL8 respMin Minimum allowable response.
REAL8 respMax Maximum allowable response.

5.44.2 Optim Object Methods


There are no Optim object-specific methods. Only the standard entity methods are available.
API-1840

5.45 Output Objects


Output objects correspond to the Output data in your model. They are derived from Entity objects,
so in addition to the properties and methods described here, all of the properties and methods
defined for Entity objects are also available for Output objects. For more information, see Section
5.1, "Common Entity Properties and Methods".
Use the feOutput method of the FEMAP Application object to create Output objects.
NOTE: The Results Browsing object should be used whenever possible in place of the Out-
put object. It provides more capability when reviewing existing results. This object should
only be used if it is necessary to create new output from the API.
NOTE: When using this object, it is HIGHLY recommended to use the initialization methods
(InitScalarAtNode, InitVectorAtNode, etc) in place of setting individual object properties. If
you do not use the initialization methods, poor performance is likely.

5.45.1 Output Object Properties


Output objects are always stored with their SetID equal to the ID of the output set/step that they
reference, and the ID equal to the output vector ID of the type of data stored in the vector. Output
vector IDs can vary from version to version of FEMAP. The best way to determine the standard
IDs used is to simply read results into FEMAP and see what vectors are created.
In this table, you will see some properties that list two names - one of which is an array, the other a
Variant. Refer to Section 1.2.7, "Multiple Definitions of Array Properties" for more information.

Property Description
STRING title Output vector title (maximum 79 characters).
INT4 component[0..19] Component vectors. Either zero, or the IDs of the X,Y,Z com-
or ponents, or the IDs of the corresponding elemental corner out-
VARIANT vcomponent put. See below.
INT4 category General category of output: 0=Any, 1=Disp, 2=Accel, 3=Force,
4=Stress, 5=Strain, 6=Temp, others=User.
INT4 location The location where the output is computed and stored. Nodal =
7, Elemental Centroid or Element Corner = 8.
BOOL nonlinear If True, this result cannot be linearly combined.
INT4 hascomponent If 1, component[0..2] are the X,Y,Z component values for nodal
output. If 1, for centroidal plate and centroidal solid element
data, this indicates that the component property contains the
IDs of Output Vectors that contain the associated element cor-
ner data. If 2, component[0..1] contain the vector IDs of data at
end of beams. If 3, component[0..1] contain the vector IDs of
data at end of beams, but the data at the second end of beam is
reversed in sign.
BOOL centroidtotal If True, this vector has centroidal or nodal output.
BOOL InitAsInteger If True, this vector is initialized to store integer values
API-1841

Property Description
REAL8 maxval (Read Only) The maximum value in the output vector.
REAL8 minval (Read Only) The minimum value in the output vector.
REAL8 absmaxval (Read Only) The maximum absolute value of any value in the output vector.
INT4 maxvalID (Read Only) The ID of the node/element where the maxval occurs.
INT4 minvalID (Read Only) The ID of the node/element where the minval occurs.
REAL8 Value[1..N] The output values. The index must be the ID of the node/ele-
ment where the output value is stored. The value for any node
or element where no output exists will be 0.0. This property can
be used to manipulate results one value at a time. In general,
however, it will be faster to use one or more of the output meth-
ods that manipulate entire output vectors.
API-1842

5.45.1.1 Output Components


The components are 20 vector IDs of other vectors that are "components" of the current vector.
There are several possible ways these components are used:
1. The current vector contains the vector magnitude of 3 other vectors that are in the global
X, Y, and Z components of similar data:
In this case, Components 0, 1, and 2 are the vector IDs of the X, Y, and Z component vectors,
respectively. An example of this type of usage is Vector 1 (TOTAL TRANSLATION), which has
Component 0=2(X TRANSLATION), Component 1=3(Y TRANSLATION) and Component
2=4(Z TRANSLATION). These components MUST be defined for deformed/animated plotting to
work correctly. Components 3 through 19 must be 0 for this case.
2. The current vector contains data which should be plotted in a specific global direction:
In this case, if plotting should occur in Global X, then Component 0 must equal the current Vector
ID. If Global Y, then Component 1 = current Vector ID, and if Global Z then Component 2 = cur-
rent Vector ID. All other components must equal 0 (i.e. only 1 nonzero component and it is equal
to the current Vector ID).
3. The current vector contains elemental centroidal data for elements which also have
related data at the element corners:
In this case, the number of nonzero components depends upon the number of nodes on this ele-
ment type (for example, output for linear plates has 4 components-4 nodes/corners). The nonzero
components must equal the Vector IDs of the same type of data at the corners of the elements. For
example, if the current vector is 7033 (CENTROIDAL VON MISES STRESS) then component 0
may be 20133 (CORNER1 VON MISES STRESS) and component 1 may be 30133 (CORNER2
VON MISES STRESS) etc. If you do not have corner data, all components must be 0. If the com-
ponents are defined, FEMAP will use the corner data (not the data in the current vector) when cal-
culating data at nodes (like for contouring). If no components are defined, FEMAP will assign the
centroidal value to each node when doing the calculation.
4. The current vector contains line element data at one end of the element:
This is just like the previous case. The first component is the vector ID of the End A data, the sec-
ond component is the vector ID of the End B data. This type of output also requires special settings
in the comp_dir variable. Set comp_dir to 2 if you want FEMAP to use the data as it is specified.
Set comp_dir to 3 if you want FEMAP to reverse the sign of all End B data when doing a beam
diagram. This adjusts for differences in sign conventions between the various analysis programs.
5. All other cases:
All components should be 0. This will force the data in the current vector to be used for every case.
The current setting of the View Option Deformed Style - Deformed Direction option will control
the deformed plotting direction.
API-1843

5.45.1.2 Output Vector IDs


If you are writing your own Neutral files, you can choose any vector IDs that you want, but the
normal conventions used by FEMAP are as follows:

Standard Output Vectors


Category Vector Range Type
1 to 2,999 Nodal output
3,000 to 5,999 Line element output
6,000 to 59,999 Plate element output
60,000 to 79,999 Solid element output
1 to 9,999,999 (magnitude,
80,000 to 89,999 Output on any element type
or non-complex)
90,000 to 99,999 PATRAN elemental output
100,000 to 299,999 Plate corner output
1,000,000 to 6,000,000 Laminate Ply output
9,000,000 to 9,999,999 User Defined output
10,000,001 to 20,000,000
Same definition as magnitude data, just add 10,000,000 to IDs.
(complex, phase)
20,000,001 to 30,000,000
Same definition as magnitude data, just add 20,000,000 to IDs.
(complex, real)
30,000,001 to 40,000,000
Same definition as magnitude data, just add 30,000,000 to IDs.
(complex, imaginary)
API-1844 GetFromSet

5.45.2 Output Object Methods


There following methods are available in addition to the standard entity methods.
5.45.2.1 GetFromSet

GetFromSet
( setID, entID )
Description:
This method retrieves data from a specified output vector, in a specified set.
Input:
INT4 setID The Output Set containing the output vector to retrieve
INT4 entID The Output Vector to retrieve
Output:
None
Return Code:
None
Remarks/Usage:
This method is simply a shortcut to replace the standard Get() method. Assuming Out is an Output
object, the following two sequences are identical...

Out.GetFromSet( s, v )

and

Out.setID = s
Out.Get( v )

Example:
None
GetOutputList API-1845

5.45.2.2 GetOutputList

GetOutputList
( listcount, ID, value )
Description:
This method retrieves an output vector.
Input:
None
Output:
INT4 listcount The number of entries in the ID and value arrays.
INT4 ID[0..N] The IDs of the nodes/elements where output is available..
The output values associated with the corresponding node/element in
REAL8 value[0..N]
the ID array.
Return Code:
FE_NOT_EXIST There are no entries in the list.
Remarks/Usage:
This method simply retrieves the information about the output from the current object. You must first
load that data - either using the Get( ) method, or by creating it yourself.
Example:
None
API-1846 GetOutputListAtID

5.45.2.3 GetOutputListAtID

GetOutputListAtID
( ID, defaultVal, value )
Description:
This method retrieves data from an output vector at specified IDs.
Input:
INT4 ID[0..N] The IDs of the nodes/elements where output is being requested
The default values to be returned if no output is found for a specified
REAL8 defaultVal[0..N] ID. This can be specified as NULL, in which case all default values
will be 0.0.
Output:
The output values associated with the corresponding node/element in
REAL8 value[0..N]
the ID array.
Return Code:
Unable to retrieve IDs from the list or allocate memory for process-
FE_FAIL
ing.
Remarks/Usage:
This method simply retrieves the information about the output from the current object. You must first
load that data - either using the Get( ) method, or by creating it yourself.
Example:
None
GetOutputListAtSet API-1847

5.45.2.4 GetOutputListAtSet

GetOutputListAtSet
( idSET, defaultVal, value )
Description:
This method retrieves data from an output vector at IDs selected in a Set.
Input:
INT4 idSET The ID of a Set object that contains the IDs of the entities to retrieve.
The default values to be returned if no output is found for a specified
REAL8 defaultVal[0..N] ID. This can be specified as NULL, in which case all default values
will be 0.0.
Output:
The output values associated with the corresponding node/element in
REAL8 value[0..N]
the ID array.
Return Code:
Unable to retrieve IDs from the list or allocate memory for process-
FE_FAIL
ing.
Remarks/Usage:
This method simply retrieves the information about the output from the current object. You must first
load that data - either using the Get( ) method, or by creating it yourself.
Example:
None
API-1848 GetModel

5.45.2.5 GetModel

GetModel
( nModelID )
Description:
This method returns the identifier of the model being used by the object.
Input:
None
Output:
INT8 nModelID Model identifier
Return Code:
None
Remarks/Usage:
When the object is created, nModelID is set to the current/active model.
Example:
SetModel API-1849

5.45.2.6 SetModel

SetModel
( nModelID )
Description:
This method chooses the model to be used for all further operations.
Input:
INT8 nModelID Model identifier
Output:
None
Return Code:
None
Remarks/Usage:
When the object is created, nModelID is set to the current/active model.
Example:
API-1850 SetComplexOptions

5.45.2.7 SetComplexOptions

SetComplexOptions
( bExpandComplex, dComplexPhase )
Description:
This method sets a phase angle to use for any complex output vector (magnitude, phase, real or imagi-
nary) which will cause the output to be returned as the expanded complex magnitude at the specified
phase angle.
Input:
BOOL bExpandComplex When True, complex expansion will occur
REAL8 dComplexPhase Value of phase angle to use for complex expansion
Output:
None
Return Code:
None
Remarks/Usage:
This method MUST be called before any Get call in order for the expanded complex output to be loaded
into the output object
Example:
Sub Main
Dim App As femap.model
Set App = feFemap()

Dim out As femap.Output


Set out = App.feOutput

out.setID = 11
out.SetComplexOptions (True, 15.0)
out.Get(10000024)

For i = 0 To 1000
outval = out.Value(i)
Next

End Sub
Clear API-1851

5.45.2.8 Clear

Clear
( )
Description:
This method clears all data from the object and reinitializes it to a default state.
Input:
None
Output:
None
Return Code:
None
Remarks/Usage:
None
Example:
API-1852 PutOutputList

5.45.2.9 PutOutputList

PutOutputList
( listcount, ID, value )
Description:
This method stores data to an output vector.
Input:
INT4 listcount The number of entries in both the ID and value arrays.
INT4 ID[0..N] The IDs of the nodes/elements where output is being created.
The output values associated with the corresponding node/element in
REAL8 value[0..N]
the ID array.
Output:
None
Return Code:
FE_NOT_EXIST There are no entries in the list - you specified listcount = 0.
Remarks/Usage:
This method stores information into the current object. Any previous output information in that object is
lost. You cannot use this method to add to an existing output vector. This method does not store that
information to the model database. After using this function, you must call Put( ) if you want to store the
updated lists in the database.
Example:
None
InitScalarAtNode API-1853

5.45.2.10 InitScalarAtNode

InitScalarAtNode
( outputSET, vec, title, category, nonlinear )
Description:
This method initializes the current object to prepare it for creating an output vector containing a single
scalar value at each node.
Input:
INT4 outputSET The ID of the output set where this vector will be stored.
INT4 vec The ID of the output vector which will be created.
STRING title The Output vector title (maximum 79 characters).
General category of output: 0=Any, 1=Disp, 2=Accel, 3=Force,
INT4 category
4=Stress, 5=Strain, 6=Temp, others=User.
BOOL nonlinear If True, this result cannot be linearly combined.
Output:
None
Return Code:
None
Remarks/Usage:
This method simply sets up the various properties in a convenient manner for this style of output. You
can override the parameters that are created automatically by directly manipulating the properties after
the object has been initialized. Calling this method destroys any output that was previously loaded into
the object.
Example:
None
API-1854 GetScalarAtNode

5.45.2.11 GetScalarAtNode

GetScalarAtNode
( listcount, ID, value )
Description:
This method is identical to GetOutputList. It is simply an alias available for use with objects initialized
with InitScalarAtNode.
GetScalarAtNodeSet API-1855

5.45.2.12 GetScalarAtNodeSet

GetScalarAtNodeSet
( idSET, value )
Description:
This method is identical to GetOutputListAtSet - except that the default values are not specified, and are
always just 0.0. It is simply an alias available for use with objects initialized with InitScalarAtNode.
API-1856 PutScalarAtNode

5.45.2.13 PutScalarAtNode

PutScalarAtNode
( listcount, ID, value )
Description:
This method is identical to PutOutputList. It is simply an alias available for use with objects initialized
with InitScalarAtNode.
InitVectorAtNode API-1857

5.45.2.14 InitVectorAtNode

InitVectorAtNode
( outputSET, vec, vecX, vecY, vecZ, title, category, nonlinear )
Description:
This method initializes the current object to prepare it for creating output containing vector data at each
node. Actually four output values are created for each node, the magnitude, and the X, Y and Z compo-
nents.
Input:
INT4 outputSET The ID of the output set where this vector will be stored.
The ID of the output vector which will be created to contain the mag-
INT4 vec
nitude of the output vectors.
The ID of the output vector which will be created to contain the X
INT4 vecX
components of output.
The ID of the output vector which will be created to contain the Y
INT4 vecY
components of output.
The ID of the output vector which will be created to contain the Z
INT4 vecZ
components of output.
STRING title The output vector title (maximum 79 characters).
General category of output: 0=Any, 1=Disp, 2=Accel, 3=Force,
INT4 category
4=Stress, 5=Strain, 6=Temp, others=User.
If True, the components of this result cannot be linearly combined.
BOOL nonlinear
The magnitude can never be linearly combined.
Output:
None
Return Code:
None
Remarks/Usage:
This method initializes the current object to contain the magnitude results, and creates three additional
objects which are the X, Y and Z components of the vector results. All of the component properties
are properly initialized to indicate that this is nodal vector data.
Example:
None
API-1858 GetVectorAtSingleNode

5.45.2.15 GetVectorAtSingleNode

GetVectorAtSingleNode
( ID, x, y, z )
Description:
This method retrieves the components of the results stored in an object that contains nodal vector data.
Input:
INT4 ID The ID of the node to retrieve output
Output:
REAL8 x The X component of the results
REAL8 y The Y component of the results
REAL8 z The Z component of the results
Return Code:
None
Remarks/Usage:
This method simply retrieves the information about the output from the current object. You must first
load that data - either using the Get( ) method, or by creating it yourself. The object must contain nodal
vector data for this method to work properly. Only the X,Y,Z components are returned. If you want to
retrieve the magnitude data, you can do that by calling GetScalarAtNode - even though the object con-
tains vector data.

All results are returned in the coordinate system in which they were stored. Results must be stored in
global rectangular coordinates to be useful in other post-processing functions.
Example:
None
GetVectorAtNode API-1859

5.45.2.16 GetVectorAtNode

GetVectorAtNode
( listcount, ID, x, y, z )
Description:
This method retrieves the components of the results stored in an object that contains nodal vector data.
Input:
None
Output:
INT4 listcount The number of entries in the ID and x,y,z arrays.
INT4 ID[0..N] The IDs of the nodes/elements where output is available.
The X component of the values associated with the corresponding
REAL8 x[0..N]
node/element in the ID array.
The Y component of the values associated with the corresponding
REAL8 y[0..N]
node/element in the ID array.
The Z component of the values associated with the corresponding
REAL8 z[0..N]
node/element in the ID array.
Return Code:
None
Remarks/Usage:
This method simply retrieves the information about the output from the current object. You must first
load that data - either using the Get( ) method, or by creating it yourself. The object must contain nodal
vector data for this method to work properly. Only the X,Y,Z components are returned. If you want to
retrieve the magnitude data, you can do that by calling GetScalarAtNode - even though the object con-
tains vector data.

All results are returned in the coordinate system in which they were stored. Results must be stored in
global rectangular coordinates to be useful in other post-processing functions.
Example:
None
API-1860 GetVectorAtNodeSet

5.45.2.17 GetVectorAtNodeSet

GetVectorAtNodeSet
( idSET, x, y, z )
Description:
This method retrieves the components of the results stored in an object that contains nodal vector data
for all IDs stored in the specifed Set.
Input:
INT4 idSET The ID of a Set object that contains the IDs of the entities to retrieve.
Output:
The X component of the values associated with the corresponding
REAL8 x[0..N]
node/element in the Set.
The Y component of the values associated with the corresponding
REAL8 y[0..N]
node/element in the Set.
The Z component of the values associated with the corresponding
REAL8 z[0..N]
node/element in the Set.
Return Code:
None
Remarks/Usage:
This method simply retrieves the information about the output from the current object. You must first
load that data - either using the Get( ) method, or by creating it yourself. The object must contain nodal
vector data for this method to work properly. Only the X,Y,Z components are returned. If you want to
retrieve the magnitude data, you can do that by calling GetScalarAtNodeSet - even though the object
contains vector data.

All results are returned in the coordinate system in which they were stored. Results must be stored in
global rectangular coordinates to be useful in other post-processing functions.
Example:
None
PutVectorAtNode API-1861

5.45.2.18 PutVectorAtNode

PutVectorAtNode
( listcount, ID, x, y, z )
Description:
This method loads nodal vector data into an object. The object must first be initialized with InitVector-
AtNode.
Input:
INT4 listcount The number of entries in the ID and x,y,z arrays.
INT4 ID[0..N] The IDs of the nodes/elements where output is being created.
The X component of the values associated with the corresponding
REAL8 x[0..N]
node/element in the ID array.
The Y component of the values associated with the corresponding
REAL8 y[0..N]
node/element in the ID array.
The Z component of the values associated with the corresponding
REAL8 z[0..N]
node/element in the ID array.
Output:
None
Return Code:
None
Remarks/Usage:
This method stores information into the current object. Any previous output information in that object is
lost. You cannot use this method to add to an existing output vector. This method does not store that
information to the model database. After using this function, you must call Put( ) if you want to store the
updated lists in the database.

You do not have to specify the vector magnitudes with this method - they are computed and created
automatically from the components.

All results are stored in the coordinate system in which they were supplied. Results must be stored in
global rectangular coordinates to be useful in other post-processing functions.
Example:
None
API-1862 InitScalarAtElem

5.45.2.19 InitScalarAtElem

InitScalarAtElem
( outputSET, vec, title, category, nonlinear )
Description:
This method initializes the current object to prepare it for creating an output vector containing a single
scalar value at each element.
Input:
INT4 outputSET The ID of the output set where this vector will be stored.
INT4 vec The ID of the output vector which will be created.
STRING title The output vector title (maximum 79 characters).
General category of output: 0=Any, 1=Disp, 2=Accel, 3=Force,
INT4 category
4=Stress, 5=Strain, 6=Temp, others=User.
BOOL nonlinear If True, this result cannot be linearly combined.
Output:
None
Return Code:
None
Remarks/Usage:
This method simply sets up the various properties in a convenient manner for this style of output. You
can override the parameters that are created automatically by directly manipulating the properties after
the object has been initialized. Calling this method destroys any output that was previously loaded into
the object.
Example:
None
GetScalarAtElem API-1863

5.45.2.20 GetScalarAtElem

GetScalarAtElem
( listcount, ID, value )
Description:
This method is identical to GetOutputList. It is simply an alias available for use with objects initialized
with InitScalarAtElem.
API-1864 GetScalarAtElemSet

5.45.2.21 GetScalarAtElemSet

GetScalarAtElemSet
( idSET, value )
Description:
This method is identical to GetOutputListAtSet - except that the default values are not specified, and are
always just 0.0. It is simply an alias available for use with objects initialized with InitScalarAtElem.
PutScalarAtElem API-1865

5.45.2.22 PutScalarAtElem

PutScalarAtElem
( listcount, ID, value )
Description:
This method is identical to PutOutputList. It is simply an alias available for use with objects initialized
with InitScalarAtElem.
API-1866 InitElemWithCorner

5.45.2.23 InitElemWithCorner

InitElemWithCorner
( outputSET, vec, vec1, vec2, vec3, vec4, vec5, vec6, vec7, vec8, title, category, nonlin-
ear )
Description:
This method initializes the current object to prepare it for creating output containing a scalar value at the
element centroid, and a scalar value at each element corner.
Input:
INT4 outputSET The ID of the output set where this vector will be stored.
The ID of the output vector which will be created to contain the cen-
INT4 vec
troidal results.
INT4 vec1
INT4 vec2
INT4 vec3
INT4 vec4 The ID of the output vector which will be created to contain the
INT4 vec5 results at the corresponding element corners.

INT4 vec6
INT4 vec7
INT4 vec8
STRING title The output vector title (maximum 79 characters).
General category of output: 0=Any, 1=Disp, 2=Accel, 3=Force,
INT4 category
4=Stress, 5=Strain, 6=Temp, others=User.
BOOL nonlinear If True, the components of this result cannot be linearly combined.
Output:
None
Return Code:
None
Remarks/Usage:
This method initializes the current object to contain the centroid results, and creates additional objects
which are the corner results. All of the component properties are properly initialized to indicate that
this is elemental data with corner values.
Example:
InitElemWithCorner API-1867

InitElemWithCorner
( outputSET, vec, vec1, vec2, vec3, vec4, vec5, vec6, vec7, vec8, title, category, nonlin-
ear )
None
API-1868 GetElemWithCorner

5.45.2.24 GetElemWithCorner

GetElemWithCorner
( listcount, maxcorner, ID, centroid, c1, c2, c3, c4, c5, c6, c7, c8 )
Description:
This method retrieves the centroid and corner results stored in an object that contains elemental data
with corners.
Input:
None
Output:
INT4 listcount The number of entries in the ID and results arrays.
The ID of the maximum corner available for this object. For exam-
ple, if this object contains results on quadrilateral plates, maxcorner
INT4 maxcorner
will typically equal 4, since results are only available for corners
1,2,3, and 4.
INT4 ID[0..N] The IDs of the nodes/elements where output is available.
The results at the element centroid associated with the corresponding
INT4 centroid[0..N]
node/element in the ID array.
INT4 c1[0..N]
INT4 c2[0..N]
INT4 c3[0..N]
The results at the element corners associated with the corresponding
INT4 c4[0..N] node/element in the ID array. Some elements have missing corners.
INT4 c5[0..N] For example, Tetrahedral results are stored on corners 1,2,3 and 5.
Wedge results are stored on 1,2,3 and 5,6,7.
INT4 c6[0..N]
INT4 c7[0..N]
INT4 c8[0..N]
Return Code:
None
Remarks/Usage:
GetElemWithCorner API-1869

GetElemWithCorner
( listcount, maxcorner, ID, centroid, c1, c2, c3, c4, c5, c6, c7, c8 )
This method simply retrieves the information about the output from the current object. You must first
load that data - either using the Get( ) method, or by creating it yourself. The object must contain ele-
mental data with corners for this method to work properly. If you only want to retrieve the centroidal
data, you can do that by calling GetScalarAtElem - even though the object contains corner data.

For models where the output vectors may only contain partial corner data - for example mixed quad/tri
models where there is no corner output for the triangles, or at least one missing corner - this method will
return the centroidal value for all missing corner data. This only applies to corners where there are some
results (below maxcorner). Corners that have no output for all elements are still not returned.
Example:
None
API-1870 GetElemWithCornerSet

5.45.2.25 GetElemWithCornerSet

GetElemWithCornerSet
( idSET, maxcorner, centroid, c1, c2, c3, c4, c5, c6, c7, c8 )
Description:
This method retrieves the centroid and corner results stored in an object that contains elemental data
with corners. Results are retrieved for all elements specified in the Set
Input:
INT4 idSET The ID of a Set object that contains the IDs of the entities to retrieve.
Output:
The ID of the maximum corner available for this object. For exam-
ple, if this object contains results on quadrilateral plates, maxcorner
INT4 maxcorner
will typically equal 4, since results are only available for corners
1,2,3, and 4.
The results at the element centroid associated with the corresponding
INT4 centroid[0..N]
node/element in the Set.
INT4 c1[0..N]
INT4 c2[0..N]
INT4 c3[0..N]
The results at the element corners associated with the corresponding
INT4 c4[0..N] node/element in the Set. Some elements have missing corners. For
INT4 c5[0..N] example, Tetrahedral results are stored on corners 1,2,3 and 5.
Wedge results are stored on 1,2,3 and 5,6,7.
INT4 c6[0..N]
INT4 c7[0..N]
INT4 c8[0..N]
Return Code:
None
Remarks/Usage:
This method simply retrieves the information about the output from the current object. You must first
load that data - either using the Get( ) method, or by creating it yourself. The object must contain ele-
mental data with corners for this method to work properly. If you only want to retrieve the centroidal
data, you can do that by calling GetScalarAtElemSet - even though the object contains corner data.

For models where the output vectors may only contain partial corner data - for example mixed quad/tri
models where there is no corner output for the triangles, or at least one missing corner - this method will
return the centroidal value for all missing corner data. This only applies to corners where there are some
results (below maxcorner). Corners that have no output for all elements are still not returned.
GetElemWithCornerSet API-1871

GetElemWithCornerSet
( idSET, maxcorner, centroid, c1, c2, c3, c4, c5, c6, c7, c8 )
Example:
None
API-1872 PutElemWithCorner

5.45.2.26 PutElemWithCorner

PutElemWithCorner
( listcount, maxcorner, ID, centroid, c1, c2, c3, c4, c5, c6, c7, c8 )
Description:
This method loads elemental centroidal and corner data into an object. The object must first be initial-
ized with InitElemWithCorner.
Input:
INT4 listcount The number of entries in the ID and results arrays.
The ID of the maximum corner available for this object. For exam-
ple, if this object contains results on quadrilateral plates, maxcorner
will typically equal 4, since results are only available for corners
INT4 maxcorner
1,2,3, and 4. If you are trying to store results with less than 8 corners,
you must still specify all 8 corner values, but you can simply provide
dummy values for all corners past maxcorner.
INT4 ID[0..N] The IDs of the nodes/elements where output is available.
The results at the element centroid associated with the corresponding
INT4 centroid[0..N]
node/element in the ID array.
INT4 c1[0..N]
INT4 c2[0..N]
INT4 c3[0..N]
The results at the element corners associated with the corresponding
INT4 c4[0..N] node/element in the ID array. Some elements have missing corners.
INT4 c5[0..N] For example, Tetrahedral results are stored on corners 1,2,3 and 5.
Wedge results are stored on 1,2,3 and 5,6,7.
INT4 c6[0..N]
INT4 c7[0..N]
INT4 c8[0..N]
Output:
None
Return Code:
None
Remarks/Usage:
This method stores information into the current object. Any previous output information in that object is
lost. You cannot use this method to add to an existing output vector. This method does not store that
information to the model database. After using this function, you must call Put( ) if you want to store the
updated lists in the database.
PutElemWithCorner API-1873

PutElemWithCorner
( listcount, maxcorner, ID, centroid, c1, c2, c3, c4, c5, c6, c7, c8 )
Example:
None
API-1874 InitScalarAtBeam

5.45.2.27 InitScalarAtBeam

InitScalarAtBeam
( outputSET, vec1, vec2, title, vecstyle, category, nonlinear, bAddEndTitles )
Description:
This method initializes the current object to prepare it for creating Beam output vectors for EndA and
EndB containing a single scalar value at each element.
Input:
INT4 outputSET The ID of the output set where this vector will be stored.
INT4 vec1 The ID of the EndA output vector which will be created.
INT4 vec2 The ID of the EndB output vector which will be created.
STRING title The output vector title (maximum 79 characters).
If 1, component[0..2] are the X,Y,Z component values. If 2, data at
INT4 vecstyle
end of beams. If 3, reverse data at second end of beam
General category of output: 0=Any, 1=Disp, 2=Accel, 3=Force,
INT4 category
4=Stress, 5=Strain, 6=Temp, others=User.
BOOL nonlinear If True, this result cannot be linearly combined.
BOOL bAddEndTitles Flag to prepend End A, End B to the title.
Output:
None
Return Code:
None
Remarks/Usage:
None
Example:
None
PutScalarAtBeam API-1875

5.45.2.28 PutScalarAtBeam

PutScalarAtBeam
( listcount, ID, v1, v2 )
Description:
This method stores data to an output vectors for beam elements.
Input:
INT4 listcount The number of the elements where output is being created.
INT4 ID[0..listcount-1] The IDs of the elements where output is being created.
The EndA output values associated with the corresponding element
INT4 v1[0..listcount-1]
in the ID array.
The EndB output values associated with the corresponding element
INT4 v2[0..listcount-1]
in the ID array.
Output:
None
Return Code:
None
Remarks/Usage:
None
Example:
None
API-1876 FindMaxMin

5.45.2.29 FindMaxMin

FindMaxMin
( idSET, bUseCornersOrComponents, minID, minValue, maxID, maxValue )
Description:
This method searches the data that has been loaded to find minimum and maximum values
Input:
INT4 idSET The ID of a Set object that contains the node or element IDs to search
If True, and the object has corner or component data loaded, then
BOOL bUseCornersOrCompo-
those corners will also be searched to find the max/min values. If
nents
False, then only the primary vector will be searched.
Output:
INT4 minID The ID of node/element where the minimum value occurs
REAL8 minValue The minimum output value
INT4 maxID The ID of the node/element where the maximum value occurs
REAL8 maxValue The maximum output value
Return Code:
None
Remarks/Usage:
None
Example:
None
API-1877

5.46 OutputSet Objects


OutputSet objects correspond to the output/results sets in your model. They are derived from
Entity objects, so in addition to the properties and methods described here, all of the properties and
methods defined for Entity objects are also available for OutputSet objects. For more information,
see Section 5.1, "Common Entity Properties and Methods". .
Use the feOutputSet method of the FEMAP Application object to create OutputSet objects.

5.46.1 OutputSet Object Properties


OutputSets are always stored with their SetID = 1, and the ID equal to the output set or time step
that you are trying to access. OutputSet objects do not contain any of the actual results data; they
simply contain the header information for the set.

Property Description
STRING title Output set title (maximum 79 characters).
INT4 program Analysis program where output came from: 0=Unknown,
1=FEMAP Generated, 2=PAL, 3=PAL 2, 4=MSC/NASTRAN,
5=ANSYS, 6=STARDYNE, 7=COSMOS, 8=PATRAN,
9=FEMAP Neutral, 10=ALGOR, 11=SSS/NASTRAN,
12=Comma Separated, 13=UAI/NASTRAN, 14=Cosmic
NASTRAN, 15=STAAD, 16=ABAQUS, 17=WECAN,
18=MTAB/SAP, 19=CDA/Sprint, 20=CAEFEM, 21=I-DEAS,
22=ME/NASTRAN, 26=CSA/NASTRAN, 28=CFDesign,
31=LS-DYNA, 32=MARC, 33=SINDA, 38=NX Nastran.
INT4 analysis Type of analysis: 0=Unknown, 1=Static, 2=Normal Modes/
Eigenvalue, 3=Transient Dynamic/Time History, 4=Fre-
quency/Harmonic Response, 5=Response Spectrum, 6=Ran-
dom Response, 7=Buckling, 8=Design Opt, 9=Explicit
Transient Dynamics, 10=Nonlinear Static, 11=Nonlinear
Buckling, 12=Nonlinear Transient, 13=Implicit Transient
Dynamics, 17=Fatigue, 19=Computational Fluid Dynamics,
20=Steady-State Heat Transfer, 21=Transient Heat Transfer,
22=Advanced Nonlinear Static, 23=Advanced Nonlinear
Transient, 24=Advanced Nonlinear Explicit, 25=Static Aero-
elasticity, 26=Aerodynamic Flutter
REAL8 value The output set value. For modal analyses, the modal fre-
quency. For any transient or nonlinear analysis, the time value
at this step. For Buckling, the eigenvalue. For static analysis =
0.0
STRING notes One or more lines of text. Maximum 256 characters. Each line
is separated by a CR-LF (0x0D, 0x0A) character pair. The end
of the string is terminated by a NULL character.
INT4 study ID of analysis study where the output set currently resides, 0
indicates output set is not in an analysis study.
API-1878

Property Description
INT4 combination_type Type of output processing operation used to create the output
set: 0=None, 1=Linear Combination, 2=RSS Combination,
3=Max Envelope, 4=Min Envelope, 5=MaxAbs Envelope,
6=SetID Max Envelope, 7=SetID Min Envelope, 8=SetID
MaxAbs Envelope
Vector API-1879

5.46.2 OutputSet Object Methods


5.46.2.1 Vector

Vector
( vectorID )
Description:
This method creates and returns an Output object that is loaded with the data for a specific output vector.
Input:
INT4 caseID The ID of the output vector to load.
Output:
None
Return Code:
None
Remarks/Usage:
The current OutputSet must be loaded with the Set data from the set where you want to retrieve the vec-
tor prior to calling this method. The OutputSet ID property is used to define the set where the vector is
retrieved.
Example:
API-1880 OutputVectors

5.46.2.2 OutputVectors

OutputVectors
( nVectorSetID )
Description:
This method fills a Set object with the IDs of all Output vectors that are in the currently selected Output
Set
Input:
INT4 nVectorSetID The ID of a Set Object that will receive the IDs of the Output vectors
Output:
None
Return Code:
None
Remarks/Usage:
You must set the ID property of the current object to match the Output Set where you want to retrieve
the vectors - this happens automatically if you Get the Output Set object.
Example:
SetComplexOptions API-1881

5.46.2.3 SetComplexOptions

SetComplexOptions
( bExpandComplex, dComplexPhase )
Description:
Used to control the output returned when using the OutputVectors method. This method sets a phase
angle to use for any complex output (magnitude, phase, real or imaginary) which will cause the output
to be returned in OutputVectors as the expanded complex magnitude at the specified phase angle.
Input:
BOOL bExpandComplex When True, complex expansion will occur
REAL8 dComplexPhase Value of phase angle to use for complex expansion
Output:
None
Return Code:
None
Remarks/Usage:
This method MUST be called before the Get call in order for the expanded complex output to be loaded
into the output set object
Example:
API-1882 SetCombination

5.46.2.4 SetCombination

SetCombination
( enProcessType, nNumFactors, vnSetID, vdFactorArray )
Description:
This method sets the output processing operation, output set IDs, and scale factors to create a new pro-
cessed output set or for an existing output set currently in the OutputSet object
Input:
Type of output processing operation, 1=Linear Combination,
enum zResultsProcessType 2=RSS Combination, 3=Max Envelope, 4=Min Envelope, 5=Max-
enProcessType Abs Envelope, 6=SetID Max Envelope, 7=SetID Min Envelope,
8=SetID MaxAbs Envelope
INT4 nNumFactors Number of output set and scale factor pairs in the combination
INT4 vnSetID[0..numFactors-1] The IDs of the output sets used in the combination.
REAL8 xyz[0..numFactors-1] The scale factors for each output set used in the combination.
Output:
None
Return Code:
None
Remarks/Usage:
If using this method to create a new processed output set, call ExpandCombination immediately after
this method to create a new output set (i.e. a Put is not needed).

If using this method to modify an existing Create All Immediately processed output set, you will need
to call ExpandCombination to update the values in the output set (i.e., a Put is not needed).

If using this method to modify an existing As Needed/Temporary processed output set, you will not
want to use ExpandCombination, but instead will need to use Put to update the processed output set. If
you call ExpandCombination, it will change the processed output set from As Needed/Temporary to
Create All Immediately.
Example:
SetStudyCombination API-1883

5.46.2.5 SetStudyCombination

SetStudyCombination
( enProcessType, nStudyID )
Description:
This method sets the output processing operation for an analysis study
Input:
Type of output processing operation, 1=Linear Combination, 2=RSS
enum zResultsProcessType Combination, 3=Max Envelope, 4=Min Envelope, 5=MaxAbs Enve-
enProcessType lope, 6=SetID Max Envelope, 7=SetID Min Envelope, 8=SetID
MaxAbs Envelope
INT4 nStudyID ID of Analysis Study
Output:
None
Return Code:
None
Remarks/Usage:

Example:
API-1884 ExpandCombination

5.46.2.6 ExpandCombination

ExpandCombination
( bSetTitles )
Description:
This method can be used in conjunction with SetCombination to create a new processed output set in the
next available output set ID. Also, it is used update the values in a Create All Immediately type of pro-
cessed output set after using SetCombination.

Alternatively, it can be used convert an existing As Needed/Temporary type of processed output set to
a Create All Immediately type of processed output set
Input:
When True, an descriptive title based on the process type and output
sets used in the combination will be applied to the new processed
BOOL bSetTitles output set. When False, a default title will be created. If modifying an
existing output set, this option does nothing, as the title will not be
changed.
Output:
None
Return Code:
None
Remarks/Usage:
This method deletes all existing output in an existing Create All Immediately processed output set,
then recreates all of the output. Also, after using this method, the output data for the expanded output
set will be stored in the database.
Example:
API-1885

5.47 Point Objects


Point objects correspond to the points in your model. They are derived from Entity objects, so in
addition to the properties and methods described here, all of the properties and methods defined
for Entity objects are also available for point objects. For more information, see Section 5.1,
"Common Entity Properties and Methods".
Use the fePoint method of the FEMAP Application object to create Point objects.

5.47.1 Point Object Properties


Points are always stored with a SetID=1, and the ID equal to the Point ID.

Property Description
REAL8 x These are the coordinates of the point. They are always speci-
fied in global rectangular coordinates.
REAL8 y
REAL8 z
INT4 layer The ID of the layer associated with the point.
INT4 color The point color.
INT4 type The point type: 0=Default, 1=Solid.
INT4 defCSys The ID of the definition coordinate system.
INT4 attrPID The Property ID of the meshing attribute.
INT4 engine The ID of the solid modeling engine used with this point:
0=None, 1=Parasolid, 2=ACIS.
INT4 address The solid modeling engine geometry address.
REAL8 meshsize MeshSize at the point. 0.0, unless a point-based mesh size has
been defined.
INT4 InCombinedCurve If the point is internal to a combined curve, this propety con-
tains the ID of the combined curve, otherwise it is 0
REAL8 ScaleFactor The Solid Geometry Scale Factor
Additional Properties
Accesses all three coordinates of a point as a Variant. Same as
REAL8 xyz[0..2]
using x, y, and z independently.
API-1886 Nodes

5.47.2 Point Object Methods


5.47.2.1 Nodes

Nodes
( numNodes, nodeID )
Description:
This method returns the nodes that are attached to this point
Input:
None
Output:
INT4 numNodes The number of nodes returned.
INT4 nodeID[0..numNodes-1] The IDs of the selected nodes which are attached to the point.
Return Code:
FE_FAIL Unable to return nodes, possibly none exist.
FE_NOT_EXIST No nodes were attached to the point in the manner you selected.
FE_NO_MEMORY Insufficient memory to allocate list of attached nodes.
Remarks/Usage:
None
Example:
Nodes API-1887

Nodes
( numNodes, nodeID )
The following codes modifies the color of all nodes on Point 4.
Sub Main
Dim App As femap.model
Set App = GetObject(,"femap.model")
Dim pt As Object
Set pt = App.fePoint
Dim nd As Object
Set nd = App.feNode
Dim rc As Long
Dim Count As Long
Dim Nodes As Variant
Dim i As Long
rc = pt.Get (4)
rc = pt.Nodes(Count, Nodes)
For i = 0 To Count - 1
nd.Get (Nodes(i))
nd.color = 4
nd.Put (0)
Next i
App.feViewRegenerate(0)
End Sub
API-1888 NodesAsSet

5.47.2.2 NodesAsSet

NodesAsSet
( nSetID, bClear )
Description:
This method returns the nodes that are attached to this point in a Set Object
Input:
INT4 nSetID The ID of the Set Object which receives the Node IDs.
BOOL bClear If True, the Set is cleared before loading the Node IDs.
Output:
None
Return Code:
FE_FAIL Unable to return nodes, possibly none exist.
Remarks/Usage:
None
Example:
None
Curves API-1889

5.47.2.3 Curves

Curves
( nCombinedMode, numCurves, curveID )
Description:
This method returns the curves that are attached to this point
Input:
0=List contains the basic curves that are adjacent to the point, 1=Any
curves that are adjacent that are in a Combined Curve are replaced by
INT4 nCombinedMode
the ID of the Combined Curve, 2=List contains both the underlying
and combined curves.
Output:
INT4 numCurves The number of curves in the returned array
INT4 curveID[0..numCurves-1] The IDs of the curves.
Return Code:
FE_FAIL Unable to return curves, possibly none exist.
Remarks/Usage:
Only points that are on Solids/Sheet Solids can be used with this method.
Example:
None
API-1890 CurvesAsSet

5.47.2.4 CurvesAsSet

CurvesAsSet
( nCombinedMode, nSetID, bClear )
Description:
This method returns the curves that are attached to this point in a Set Object
Input:
0=List contains the basic curves that are adjacent to the point, 1=Any
curves that are adjacent that are in a Combined Curve are replaced by
INT4 nCombinedMode
the ID of the Combined Curve, 2=List contains both the underlying
and combined curves.
INT4 nSetID ID of the Set Object to receive the Curve IDs
BOOL bClear If True, the Set is cleared before loading the curves
Output:
None
Return Code:
FE_FAIL Unable to return curves, possibly none exist.
Remarks/Usage:
Similar to Curves, except that the attached curves are returned in a Set Object instead of an array. Only
points that are on Solids/Sheet Solids can be used with this method.
Example:
None
SurfacesAsSet API-1891

5.47.2.5 SurfacesAsSet

SurfacesAsSet
( nCombinedMode, nSetID, bClear )
Description:
This method returns the surfaces that are attached to this point in a Set Object
Input:
0=List contains the basic surfaces that are adjacent to the curve,
1=Any surfaces that are adjacent that are in a Combined Surface are
INT4 nCombinedMode
replaced by the ID of the Combined Surface, 2=List contains both
the underlying and combined surfaces.
INT4 nSetID ID of the Set Object to receive the Surface IDs
BOOL bClear If True, the Set is cleared before loading the surfaces
Output:
None
Return Code:
FE_FAIL Unable to return surfaces, possibly none exist.
Remarks/Usage:
Only points that are on Solids/Sheet Solids can be used with this method.
Example:
None
API-1892 Solid

5.47.2.6 Solid

Solid
( nSolidID )
Description:
This method returns the ID of the Solid that contains the current point
Input:
None
Output:
INT4 nSolidID The ID of the Solid that references the current Point
Return Code:
FE_FAIL Unable to get the solid
Remarks/Usage:
This method will only work with a point that is defined on a Solid.
Example:
None
GetClosest API-1893

5.47.2.7 GetClosest

GetClosest
( xyz )
Description:
This method finds the Point closest to the desired location and loads it into the current object
Input:
REAL8 xyz[0..2] The coordinates of the location of interest.
Output:
None
Return Code:
FE_NOT_EXIST Unable to find closest Point.
Remarks/Usage:
None
Example:
None
API-1894

5.48 Property Objects


Property objects correspond to the properties in your model. They are derived from Entity objects
so, in addition to the properties and methods described here, all of the properties and methods
defined for Entity objects are also available for Property objects. For more information, see Sec-
tion 5.1, "Common Entity Properties and Methods".
Use the feProp method of the FEMAP Application object, or the Prop method of the Element
object to create Property objects.

5.48.1 Property Object Properties


Properties are always stored with a SetID=1, and the ID equal to the property ID.
In this table, you will see some properties that list two names - one of which is an array, the other a
Variant. Refer to Section 1.2.7, "Multiple Definitions of Array Properties" for more information.

Property Description
INT4 color The property color.
INT4 layer The layer associated with the property.
Type of property:
Rod=1, Bar=2, Tube=3, Link=4, Beam=5, Spring/Damper=6,
DOFSpring=7, CurvedBeam=8, Gap=9, PlotOnly=10, Shear-
Panel (Lin=11 Para=12), Membrane (Lin=13 Para=14), Bend-
ingOnly (Lin=15 Para=16), Plate (Lin=17 Para=18),
PlaneStrain (Lin=19 Para=20), Laminate (Lin=21 Para=22),
INT4 type
Axisymmetric (Lin=23 Para=24), Solid (Lin=25 Para=26),
Mass=27, MassMatrix=28, Rigid=29, StiffnessMatrix=30,
CurvedTube=31, PlotOnlyPlate=32, SlideLine=33, Con-
tact=34, Axisymmetric Shell (Lin=35, Para=36), Para
Beam=37, Weld/Fastener=38, Solid Laminate (Lin=39,
Para=40)
ID of material referenced by property. This is not used for cer-
INT4 matlID tain property types, like masses and laminates. These proper-
ties do not directly reference material data
ID of the layup referenced by property. This is only used for
INT4 layupID
laminates.
STRING title Property title (maximum 79 characters).
Reference coordinate system. Used to specify the coordinate
INT4 refCS system used on the Weld/Fastener property in the Fastener
Property Values section.
BOOL flag[0..3]
or Array of property flags.
VARIANT vflag
API-1895

Property Description
Array of property flags accessed as an INT4. Most flags are
simply true/false and can be accessed with flag( ).
For bars, beams and curved beams, where shapes are available,
flagI(1) defines the type of shape selected must be accessed as
an INT4.
Beam/Bar Sections: 1 = Rectangular Bar, 2 = Rectangular
Tube, 3 = Trapezoidal Bar, 4 = Trapezoidal Tube, 5 = Circular
Bar, 6 = Circular Tube, 7 = Hex Bar, 8 = Hex Tube, 9 = I, 10 =
Channel, 11 = Angle, 12 = T, 13 = Z, 14 = Hat, 15 = General
NASTRAN PBEAML/PBARL sections: 16 = ROD, 17 =
TUBE, 18 = L, 19 = I, 20 = CHAN, 21 = T, 22 = BOX, 23 =
INT4 flagI[0..3] BAR, 24 = CROSS, 25 = H, 26 = T1, 27 = I1, 28 = CHAN1,
or 29 = Z, 30 = CHAN2, 31 = T2, 32 = BOX1, 33 = HEXA, 34 =
VARIANT vflagI HAT, 35 = HAT1
For bars, beams and curved beams, flagI(2) (End A) & flagI(3)
(End B) define the Section Property Generation Method.
Beam/Bar Section Property Methods: 1 = Original FEMAP, 2
= Alternate FEMAP, 3 = NASTRAN PBARL/PBEAML
For laminates...
Failure Theory: 0 = None, 1 = Hill, 2 = Hoffman, 3 = Tsai-Wu,
4 = Max Strain NEi Only(10.3+):( 5 = Max Stress, 6 = NASA
LaRC (LARC02), 7 = Puck PCP (PUCK), 8 = Multicontinuum
(MCT) )
Options: 0 = As Specified, 1 = Symmetry, 2 = Membrane
Only, 3 = Bending Only, 4 = Smear, 5 = Smear-core
REAL8 pval[0..188]
or Array of property values.
VARIANT vpval
Array of extra material IDs.
For Plate elements...
ExtraMatlID[0] = Bending Material Specification
ExtraMatlID[1] = Transverse Shear Material Specification
ExtraMatlID[2] = Membrane-Bending Coupling Specification
INT4 ExtraMatlID[0..9] Link property...
or ExtraMatlID[0] = Conduction Calculated Material ID
VARIANT vExtraMatlID ExtraMatlID[1] = Convection Fluid Material ID
ExtraMatlID[2] = Advection Fluid Material ID
ExtraMatlID[3] = Radiation Coating Material ID
Advanced Thermal Interface Style Only:
Mass property...
ExtraMatlID[0] = Mass Material
Additional Properties
INT4 extramat[0..9] Same as plyval, but returns/sets entire array as a VARIANT.
INT4 pmat[0..74] Same as pval, but returns/sets entire array as a VARIANT.
API-1896

Property Description
This is a read-only property that specifies the number of points
available in the current outline. You can multiply this value by
INT4 numOutline
3 to get the number of real numbers that are available in out-
line.
Gets or sets the outline drawn for a general shape. The outline
array consists of real numbers. For each point in the outline,
there are three consecutive entries in the array. The first two
entries are the x,y coordinates (in the 2D coordinates of the
outline) of the location on the outline. The third entry is a flag
INT4 outline[0..3N] indicating the type of location being specified. Possible values
include: 0=Off, 1=Normal, 2=Start of Loop, 3=End of Loop,
4=Stress Recovery, 5=No Draw (used by FEMAP to reduce
complexity of beam elements displayed with cross-sections in
the graphics window, cannot be a Stress Recovery). Points on
each loop in the outline must be specified in consecutive order.

5.48.2 Accessing Property Properties


You can access the individual properties for the Property object by referencing the properties
described above, and the data contained in the table below. For example, to retrieve the cross-sec-
tional area for a bar property, use:
A = pr.pval(0)

or
bend = pr.pval(10)

for the bending stiffness parameter of a plate property.


This approach provides great flexibility, but can be slow if you are going to work with a large
number of properties. In this case it is best to access the data using Additional Properties. These
all set and return entire arrays of values in one reference. For example, you could write:
Dim pr as Object
Set pr = femap.feProp
Dim v as Variant
pr.Get(1)
v = pr.pmat
v(0)=10.5
v(1)=14.5
pr.pmat = v
pr.Put(1)

This code loads Property 1, retrieves the entire array of real values into v, updates the area and
first moment of inertia (assuming the property was a bar), puts the entire array back, and saves the
updated Property definition. While the code is slightly longer than simply accessing the individual
properties, performance will be better using this approach.
API-1897

5.48.2.1 Property Array Index Values


In general, most of the property data is simply stored in the various array properties. The location
of the specific property data is defined in the following table.
For laminate properties, the ply information is stored on the layup referenced by the property.Prop-
erty values are listed in the following tables:
Property Values for Rod, Bar, Tube, Link, Beam, and Spring Elements
Property Values for DOF Spring, Curved Beam, Gap, Shear, Membrane, and Bending Elements
Property Values for Plate, Plane Strain, Laminate, Mass, Mass Matrix, and Stiff Matrix Ele-
ments
Property Values for Rod, Bar, Tube, Link, Beam, and Spring Elements

Property Values
ROD BAR TUBE LINK BEAM SPRING/
DAMPER
Typ 1 2 3 4 5 6
e
Flags
Bush orient.
0 cable pipe tapered
csys
compress. closed axial(1)/
1 shape type shape type
only gaps ends torsion(0)
Bush Spring/
2 section method section method_A
Damper Loc.
CBUSH(1)/
3 section method_B
Other (0)
Values
0 Area Area Dout Ku_A Area_A Stiffness
Cable -
1 I1 Din Kv_A I1_A Damping
Area I
Bush Struc.
2 I2 Kw_A I2_A
Damping
Bush Spring/
3 I12 Kthu_A I12_A
Damper Loc.
Bush Trans.
4 J J Kthv_A J_A
Stress Coeff
Bush Rot.
5 Ctors K1,eff Kthw_A K1_A,eff
Stress Coeff
API-1898

Property Values
ROD BAR TUBE LINK BEAM SPRING/
DAMPER
Bush Trans.
6 K2,eff Ku_B K2_A,eff
Strain Coeff
Bush Rot.
7 NSM NSM NSM Kv_B NSM_A
Strain Coeff
Pipe
Initial
8 Yf_A1 Pres- Kw_B Yf_A1
Tension
sure
9 Init. Slack Zf_A1 Kthu_B Zf_A1
Allow. Bush DOF1
10 Yf_A2 Kthv_B Yf_A2
Ten. Stress Struct Damp
Bush DOF2
11 Zf_A2 Kthw_B Zf_A2
Struct Damp
Bush DOF3
12 Yf_A3 Yf_A3
Struct Damp
Bush DOF4
13 Zf_A3 Zf_A3
Struct Damp
Bush DOF5
14 Yf_A4 Yf_A4
Struct Damp
link type:
1 = Struct.
2 = Cond. Bush DOF6
15 Zf_A4 Zf_A4
3 = Conv. Struct Damp
4 = Advect.
5 = Rad.
16 Yoff_A
17 Zoff_A
18 Warp_A
19 Perimeter Perimeter_A
cond. type
20 0 = Bulk Area_B
1 = Calc.
21 Bulk cond. I1_B
22 Calc. Area I2_B
API-1899

Property Values
ROD BAR TUBE LINK BEAM SPRING/
DAMPER
Calc. Damp Force
23 I12_B
Length vs Freq
24 Calc. Cond J_B
Cond.
25 K1_B,eff
Direct.
26 K2_B,eff
27 NSM_B
28 Yf_B1
29 Zf_B1
30 Conv. Area Yf_B2
Conv.
31 Zf_B2
Coeff.
32 Yf_B3
33 Zf_B3
34 Yf_B4
Adv. Mass
35 Zf_B4
Flow
Adv. Spec. Bush DOF1
36 Yoff_B
Heat Stiffness
Bush DOF2
37 Adv. Direct. Z_offB
Stiffness
Bush DOF3
38 Warp_B
Stiffness
Bush DOF4
39 Perimeter_B
Stiffness
Std Shape H or Rad. View Std Shape H or Bush DOF5
40
Radius (DIM1) Factor Radius (DIM1) Stiffness
Std Shape W1 Rad. View Std Shape W1 Bush DOF6
41
(DIM2) Fac. Func. (DIM2) Stiffness
Std Shape W2 Std Shape W2 Bush DOF1
42 Rad. Area
(DIM3) (DIM3) Damping
API-1900

Property Values
ROD BAR TUBE LINK BEAM SPRING/
DAMPER
Std Shape T1 Std Shape T1 Bush DOF2
43 Rad. Emiss.
(DIM4) (DIM4) Damping
Std Shape T2 Std Shape T2 Bush DOF3
44
(DIM5) (DIM5) Damping
Std Shape T Std Shape T Bush DOF4
45
(DIM6) (DIM6) Damping
Bush DOF5
46 Std Shape SR1 Std Shape SR1
Damping
Bush DOF6
47 Std Shape SR2 Std Shape SR2
Damping
Bush DOF1 K
48 Std Shape SR3 Std Shape SR3 vs. Frequency
Function
Bush DOF2 K
49 Std Shape SR4 Std Shape SR4 vs. Frequency
Function
Bush DOF3 K
Std Shape Ori-
50 Std Shape Orient vs. Frequency
ent
Function
Bush DOF4 K
Std Shape
51 Std Shape RefLoc vs. Frequency
RefLoc
Function
Bush DOF5 K
52 Shape RefY Shape RefY vs. Frequency
Function
Bush DOF6 K
53 Shape RefZ Shape RefZ vs. Frequency
Function
Bush DOF1 F/
54 V vs. Freq.
Function
End B_Std Shape Bush DOF2 F/
55 H or Radius V vs. Freq.
(DIM1) Function
Bush DOF3 F/
B_Std Shape W1
56 V vs. Freq.
(DIM2)
Function
API-1901

Property Values
ROD BAR TUBE LINK BEAM SPRING/
DAMPER
Bush DOF4 F/
B_Std Shape W2
57 V vs. Freq.
(DIM3)
Function
Bush DOF5 F/
B_Std Shape T
58 V vs. Freq.
(DIM4)
Function
Bush DOF6 F/
B_Std Shape T2
59 V vs. Freq.
(DIM5)
Function
Bush DOF1
B_Std Shape T
60 F vs. Disp.
(DIM6)
Function
Bush DOF2
61 B_Std Shape SR1 F vs. Disp.
Function
Bush DOF3
62 B_Std Shape SR2 F vs. Disp.
Function
Bush DOF4
63 B_Std Shape SR3 F vs. Disp.
Function
Bush DOF5
64 B_Std Shape SR4 F vs. Disp.
Function
Bush DOF6
B_Std Shape Ori-
65 F vs. Disp.
ent
Function
Bush DOF1
B_Std Shape Struc. Damp-
66
RefLoc ing vs. Fre-
quency
Bush DOF2
Struc. Damp-
67 B_Shape RefY
ing vs. Fre-
quency
API-1902

Property Values
ROD BAR TUBE LINK BEAM SPRING/
DAMPER
Bush DOF3
Struc. Damp-
68 B_Shape RefZ
ing vs. Fre-
quency
Bush DOF4
Struc. Damp-
69
ing vs. Fre-
quency
Bush DOF5
Struc. Damp-
70
ing vs. Fre-
quency
Bush DOF6
Struc. Damp-
71
ing vs. Fre-
quency
API-1903

Property Values for DOF Spring, Curved Beam, Gap, Shear, Membrane, and Bending Elements

Property Values (continued)


DOF CURVED GAP SHEAR MEM- BENDING
SPRING BEAM BRANE
Type 7 8 9 11/12 13/14 15/16
Flags
0 Has CSys Top Fiber
1 shape type Bot Fiber
section
2 DOF_A
method
3 DOF_B
Values
0 Stiffness Area Gap,initial T T T
1 Damping I1 Stiff,comp.
2 I2 Stiff,tens.
3 I12 Stiff,trans.
4 J Mu,y
5 K1,eff Mu,z
6 K2,eff PreloadT
7 NSM Plane X NSM NSM NSM
8 Yf_A1 Plane Y F1,eff.fact. Top Fiber
9 Zf_A1 Plane Z F2,eff.fact. Bot Fiber
(9.1+)
10 Yf_A2 Width/Area 12I/T3
F3,eff.fact.
MaxPenRat
(Set value to -1 (9.1+)
11 Zf_A2 F4,eff.fact.
to uncheck
Adaptive box)
12 Yf_A3 MaxAdjRat
13 Zf_A3 MinPenRat
14 Yf_A4
15 Zf_A4
API-1904

Property Values (continued)


DOF CURVED GAP SHEAR MEM- BENDING
SPRING BEAM BRANE
16
17 R, bend rad
20 = Force vs.
Freq. function
21 = Damping
18..39 vs. Frequency
function
22 = Force vs.
Disp. function
Std Shape H
40
or R (DIM1)
Std Shape
41
W1 (DIM2)
Std Shape
42
W2 (DIM3)
Std Shape T1
43
(DIM4)
Std Shape T2
44
(DIM5)
Std Shape T
45
(DIM6)
Std Shape
46
SR1
Std Shape
47
SR2
Std Shape
48
SR3
Std Shape
49
SR4
Std Shape
50
Orient
Std Shape
51
RefLoc
52 Shape RefY
53 Shape RefZ
API-1905

Property Values for Plate, Plane Strain, Laminate, Mass, Mass Matrix, and Stiff Matrix Ele-
ments

Property Values (continued)


PLATE PLANE LAMINATE MASS MASS STIFF
STRAIN MATRIX MATRIX
Type 17/18 19/20 21/22 27 28 30
Flags
0 Top Fiber Top Fiber failure theory
1 Bot Fiber Bot Fiber options
Values
0 Tavg,T1 T Bottom Fiber M11 K11
1 T2 NSM Ixx M12 K12
2 T3 Bond Shear Ixy M13 K13

3 T4 Ref Temp Iyy M14 K14

4 Damping Izx M15 K15


5 Iyz M16 K16
6 Izz
7 NSM NSM M or Mx M22 K22
8 Top Fiber Top Fiber Xoff,refCS M23 K23
9 Bot Fiber Bot Fiber Yoff,refCS M24 K24
10 12I/T3 Zoff,refCS M25 K25
11 Ts/T My M26 K26
(NE)
12 Comp. Mz
Direction
(NE)Copress
13
Allowable

14 (NE) M33 K33


X Fact.

15 (NE) M34 K34


Y Fact.

16 (NE)Type M35 K35

17 (NE) M36 K36


F1, eff.
API-1906

Property Values (continued)


PLATE PLANE LAMINATE MASS MASS STIFF
STRAIN MATRIX MATRIX

18 (NE)
F2, eff.

(NE) Effective
19 F3, eff. Diameter
(1)
20 (NE) Mass
F4, eff.
Functon
21 M44 K44
22 M45 K45
23 M46 K46
24
25
26
27
28 M55 K55
29 M56 K56
30
31
32
33
34
35 M66 K66
1. Signifies value only available in GUI when using the Advanced Thermal Interface Style.
NE. Signifies these values are only available after clicking the NEiNastran Tesion Only button.
For Laminate Properties, the follwing values specify the Failure Theory options:
flagI(0): 0 = None, 1 = Hill, 2 = Hoffman, 3 = Tsai-Wu, 4 = Max Stran, 5 = NEi Nastran/STRESS, 6 = NEi
Nastran/LARC02, 7 = NEi Nastran/PUCK, and 8 = NEi Nastran/MCT
API-1907

Property Values for Curved Tube, Slide Line, Axisymmetric Shell, and Weld/Fastener Elements

Property Values (continued)

CURVED SLIDE LINE AXISYM WELD/FASTENER Solid Laminate


TUBE SHELL
Type 31 33 35/36 38 39/40
Flags
Penetration (9.1+)M-Set
0 (Unsym = 1, DOF
Sym = 0) (CWELD)

(9.1+)Spot
Weld
1
(CWELD)
(10+)Absolute
2
(CFAST)
(10+)
3 Use Material
CSys (CFAST)
Values
(10+)Diameter
for
0 Dout Stiffness Scale (8.2+)
T both CWELD and
CFAST
Nonsliding (10+)
1 Din Mass
Friction
(11+)Bond Shear Stress
2 (10+)Struct Damping
Allowable
(11+)
3 (10+) Reference Tem-
KTX
perature
(11+)
4 Static Friction (10+) Damping Coeffi-
KTY
cient
(11+)
5 (10+)KTZ Bond Normal
Stress Allowable
(11+)Ply/StackDirec-
tion. 0=Default,
6 (10+)
KRX 1=XY(12), 2=XZ(13),
3=YX(21), 4=YZ(23),
5=ZX(31), 6=ZY(32)

7 NSM (10+)
KRY
API-1908

Property Values (continued)

CURVED SLIDE LINE AXISYM WELD/FASTENER Solid Laminate


TUBE SHELL

8 (10+)KRZ

(10+)
CWELD/CFAST
9 toggle (0 = CWELD,
1 = CFAST)
10 Master Width
11 Slave Width
12
13
14
15
16
17 R, bend rad

When two types are listed, the first number corresponds to a linear type, the second to a parabolic
type. The following types are also available: Plot Only (10), Plot Plate (32), Axisymmetric (23/
24), Solid (25/26), and Rigid (29) and Contact (34 - Obsolete and should not be used).
For Solid Properties (25/26):
flag(0): False = Align to CSys, True = Align to Element
pval(0): Integration Network (must be a value from 0 to 3)
For Solid Laminate Properties (39/40):
layupID property: Laminate Definition - Layup
refCS property: Material Coordinate System - CSys

5.48.3 Property Object Methods


There following methods are available in addition to the standard entity methods.
ComputeShape API-1909

5.48.3.1 ComputeShape

ComputeShape
( shear_center_offset, warping, stress_recovery )
Description:
This method computes the properties for a standard shape.
Input:
BOOL shear_center_offset If True, the shear center offset is computed.
BOOL warping If True, the warping constants are computed.
If True, the stress recovery locations and cross section orientation
BOOL stress_recovery that are currently defined in the object are used for the computation.
If False, default stress recovery locations and orientation are used.
Output:
None
Return Code:
None
Remarks/Usage:
NOTE: This method is obsolete - for new applications you should use either ComputeStdShape()
or ComputeGeneralShape()

To use this method, the property must be a type that uses a shape - Bar, Beam... Prior to using this
method, you must load the appropriate properties (as shown in the table above) to define the type of
shape and its dimensions. This method will not work with general shapes.
For bars, beams and curved beams, where shapes are available, flagI(1) defines the type of shape
selected. Available values are:
1 = Rectangular Bar, 2 = Rectangular Tube, 3 = Trapezoidal Bar, 4 = Trapezoidal Tube, 5 = Circular
Bar, 6 = Circular Tube, 7 = Hex Bar, 8 = Hex Tube, 9 = I, 10 = Channel, 11 = Angle, 12 = T, 13 = Z, 14
= Hat, 15 = General
Example:
API-1910 ComputeShape

ComputeShape
( shear_center_offset, warping, stress_recovery )
Sub Main()
Dim App As femap.model
Set App = GetObject(,"femap.model")

Dim pr As Object
Set pr = App.feProp

pr.matlID = 1
pr.Type = 5 ' Beam
pr.flagI(1) = 1 ' Rect Bar
pr.pval(40) = 3 ' Height
pr.pval(41) = 5 ' Width
pr.pval(46) = 1
pr.pval(47) = 2
pr.pval(48) = 0
pr.pval(49) = 0
rc = pr.ComputeShape(False, False, True)
pr.Put (33)

End Sub
This example defines a beam property and computes its properties from a 3x5 rectangular cross section.
Two stress recovery locations are defined and computed. The property is stored in the model database as
Property 33. This example does not define the color and layer, and they will be defaulted to the active
values.
ComputeStdShape API-1911

5.48.3.2 ComputeStdShape

ComputeStdShape
( shapeID, dimensions, shape_orient, eval_method, shear_center_offset, warping,
stress_recovery )
Description:
This method computes the properties for a standard shape.
Input:
ID of one of the...
Standard Shapes ( 1 = Rectangular Bar, 2 = Rectangular Tube, 3 =
Trapezoidal Bar, 4 = Trapezoidal Tube, 5 = Circular Bar, 6 = Circu-
lar Tube, 7 = Hex Bar, 8 = Hex Tube, 9 = I, 10 = Channel, 11 =
INT4 shapeID
Angle, 12 = T, 13 = Z, 14 = Hat ), or ...
Nastran Shapes (16=Rod, 17=Tube, 18=L, 19=I, 20 = Channel,
21=T, 22=Box, 23=Bar, 24=Cross, 25=H, 26=T1, 27=I1, 28=Chan1,
29=Z, 30=Chan2, 31=T2, 32=Box1, 33=Hexa, 34=Hat, 35=Hat1).
The dimensions that define the shape. Values are in the same order
REAL8 dimensions[0..5]
that they are shown in the shape dialog box.
The orientation direction (0=Right, 1=Up, 2=Left, 3=Down).
INT4 shape_orient Ignored for the Nastran shapes - for these orientation is always
Right
The method used to evaluate the section properties (0=Auto, 1=Orig-
INT4 eval_method
inal, 2=Alternate, 3=Nastran PBEAML)
BOOL shear_center_offset If True, the shear center offset is computed.
BOOL warping If True, the warping constants are computed.
If True, the stress recovery locations and cross section orientation
BOOL stress_recovery that are currently defined in the object are used for the computation.
If False, default stress recovery locations and orientation are used.
Output:
None
Return Code:
FE_BAD_TYPE Property type not set to a type that uses a shape
API-1912 ComputeStdShape

ComputeStdShape
( shapeID, dimensions, shape_orient, eval_method, shear_center_offset, warping,
stress_recovery )
Remarks/Usage:
The General shape is not available with this method. Use ComputeGeneralShape() instead.
The Nastran PBEAML evaluator assumes thin-walled theory. If your shape is not thin it
will produce an inaccurate representation of the shape.
To use this method, the object must first be set to a type that uses shapes - for example a Bar
or Beam. ( for example p.type = FET_L_BEAM )
If you use the Alternate eval_method, you should first set the Poissons Ratio to be used in
the computation (for example p.pval(70) = 0.3)
Only End A properties can be computed with this method. Tapered beams are not supported.
Example:
Sub Main
Dim App As femap.model
Set App = feFemap()
Dim p As femap.Prop
Set p = App.feProp

Dim d(5) As Double

d(0) = 2.0
d(1) = 1.0
d(2) = 0.2
d(3) = 0.1

p.type = FET_L_BEAM
p.ComputeStdShape( FSHP_NAS_L, d, FSOR_RIGHT, FSEV_PBEAML,
True, True, True )
p.Put(1)
End Sub
ComputeGeneralShape API-1913

5.48.3.3 ComputeGeneralShape

ComputeGeneralShape
( surfaceID, vecDIR, shape_orient, eval_method, shear_center_offset, warping,
stress_recovery )
Description:
This method computes the properties for a general shape.
Input:
INT4 surfaceID ID of a surface to be used to compute the general shape
REAL8 vecDIR[0..2] A vector that defines the original surface Y axis
The orientation direction (0=Right, 1=Up, 2=Left, 3=Down).
INT4 shape_orient
Ignored for the Nastran shapes - for these orientation is always Up
The method used to evaluate the section properties (0=Auto, 1=Orig-
INT4 eval_method
inal, 2=Alternate)
BOOL shear_center_offset If True, the shear center offset is computed.
BOOL warping If True, the warping constants are computed.
If True, the stress recovery locations and cross section orientation
BOOL stress_recovery that are currently defined in the object are used for the computation.
If False, default stress recovery locations and orientation are used.
Output:
None
Return Code:
FE_BAD_TYPE Property type not set to a type that uses a shape
Remarks/Usage:
The Nastran PBEAML evaluator is not available for the general section
To use this method, the object must first be set to a type that uses shapes - for example a Bar
or Beam. ( for example p.type = FET_L_BEAM )
If you use the Alternate eval_method, you should first set the Poissons Ratio to be used in
the computation (for example p.pval(70) = 0.3)
Only End A properties can be computed with this method. Tapered beams are not supported.
Example:
API-1914 Matl

5.48.3.4 Matl

Matl
( void )
Description:

Input:
None
Output:
None
Return Code:
None
Remarks/Usage:
This method loads the material that is referenced by the currently loaded property object.
Example:
This method must be used with a Set statement to define the Material object.
Sub Main()
Dim App As femap.model
Set App = GetObject(, "femap.model")
Dim mt As Matl
Dim pr As Prop

Dim prID as Long
prID = 83

Set pr = App.feProp
pr.Get(prID)
Set mt = pr.Matl()

App.feAppMessage(FCM_NORMAL, "Material: " _
+ Str$(mt.ID)+ " "+mt.title)

End Sub

This sequence creates the mt Material object with the material data that is referenced by property 83.
Layup API-1915

5.48.3.5 Layup

Layup
( void )
Description:

Input:
None
Output:
None
Return Code:
None
Remarks/Usage:
This method loads the layup that is referenced by the currently loaded property object.
Example:
API-1916 Thickness

5.48.3.6 Thickness

Thickness
( dAvgOrC1, dAtC2, dAtC3, dAtC4 )
Description:
This method returns the thickness of the property.
Input:
None
Output:
REAL8 dAvgOrC1 The thickness or alternately the thickness at corner 1.
REAL8 dAtC2 The thickness at corner 2.
REAL8 dAtC3 The thickness at corner 3.
REAL8 dAtC4 The thickness at corner 4.
Return Code:
FE_OK
FE_BAD_TYPE Property type does not have thickness.
FE_NOT_AVAILABLE Laminate property does not reference a Layup.
Remarks/Usage:
None
Example:
None
Area API-1917

5.48.3.7 Area

Area
( dAreaA, dAreaB )
Description:
This method returns the area at EndA and EndB of the line element property.
Input:
None
Output:
REAL8 dAreaA The area at EndA.
REAL8 dAreaB The area at EndB.
Return Code:
FE_OK
FE_BAD_TYPE Property is not correct type.
Remarks/Usage:
None
Example:
None
API-1918 Inertia

5.48.3.8 Inertia

Inertia
( dI1A, dI2A, dI12A, dJA, dI1B, dI2B, dI12B, dJB )
Description:
This method returns the Inertia properties of the line property.
Input:
None
Output:
REAL8 dI1A Area Moment of Inertia for plane 1 EndA
REAL8 dI2A Area Moment of Inertia for plane 2 EndA
REAL8 dI12A Cross product of inertia at EndA
REAL8 dIJA Torsional constant EndA
REAL8 dI1B Area Moment of Inertia for plane 1 EndB
REAL8 dI2B Area Moment of Inertia for plane 2 EndB
REAL8 dI12B Cross product of inertia at EndB
REAL8 dIJB Torsional constant EndB
Return Code:
FE_OK
FE_BAD_TYPE Property is not a line type.
Remarks/Usage:
None
Example:
None
AreDuplicate API-1919

5.48.3.9 AreDuplicate

AreDuplicate
( nProp1, nProp2, ignoretitle )
Description:
This method determines if two properties have identical values and includes an option to also consider
the titles of the two properties
Input:
INT4 nProp1 ID of a property
INT4 nProp2 ID of a property to compare to the property specified in nProp1
Should title be ignored when determining if the 2 properties are
BOOL ignoretitle
duplicates (True=titles ignored, False=titles considered)
Output:
None
Return Code:
FE_FAIL Properties are not duplicates (i.e., different)
FE_OK Properties are duplicates
Remarks/Usage:

Example:
None
API-1920

5.49 Report Objects


Report objects correspond to the report formats in your model. They are derived from Entity
objects, so in addition to the properties and methods described here, all of the properties and meth-
ods defined for Entity objects are also available for Report objects. For more information, see Sec-
tion 5.1, "Common Entity Properties and Methods".
Use the feReport method of the FEMAP Application object to create Report objects.

5.49.1 Report Object Properties


Reports are always stored with a SetID=1, and the ID equal to the report ID.

Property Description
STRING title Material title (maximum 79 characters).
The type of data included in this report: 7=Nodal Results,
INT4 DataType
8=Elemental Results.
BOOL CenterHeader1
Set to True to center the associated header.
BOOL CenterHeader2
BOOL DbSpHeader1
Set to True to double-space the associated header.
BOOL DbSpHeader2
STRING Header1
STRING Header2
STRING ColumnHeader The formats associated with the various lines of the report.
Refer to the List, Output, Use Format command for more infor-
STRING Data1
mation about how to define each of these formats. Maximum
STRING Data2 size is 130 characters.

STRING Data3
STRING Data4

5.49.2 Report Object Methods


There are no Report object-specific methods. Only the standard entity methods are available.
API-1921
API-1922

5.50 Superelement Reference Objects


Superelement references work in conjunction with Nastran AnalysisMgr objects and are used to
create references to external superelements in an analysis set. Note that superelement references
are ignored in an analysis set if the NasExtSEOutOn property is set to TRUE in the analysis set.
Use the feSEReference method of the FEMAP Application object to create superelement reference
objects.

5.50.1 Superelement Reference Object Properties


Superelement references are stored with the setID value equal to the ID of the analysis set.
In this table, you may see some properties that list two names - one of which is an array, the other
a Variant. Refer to Section 1.2.7, "Multiple Definitions of Array Properties" for more information.

Property Description
STRING ReferenceFile External Superelement file
INT4 ReferenceType Type of Superelement Reference. 0 = OP2, 1=OP4,
2=PCH
INT4 ReferenceID Superelement ID
STRING ASMFile ASM file. Only used when Reference Type is set to OP2
or OP4.
BOOL Stiffness Only used when ReferenceType = PCH. Stiffness Matrix
(K2GG)
BOOL Mass Only used when ReferenceType = PCH. Mass Matrix
(M2GG)
BOOL ViscousDamping Only used when ReferenceType = PCH. Viscous Damping
Matrix (B4GG)
BOOL StructuralDamping Only used when ReferenceType = PCH. Structural Damp-
ing Matrix (K42GG)
BOOL LoadsMatrix Only used when ReferenceType = PCH. Loads Matrix
(P2G)
Form used for ASSIGN statements, 0=None, 1=FOR-
enum zAnalysisAssignForm
MATTED, 2=UNFORMATTED, 3=LITTLEENDIAN,
AssignForm
4=BIGENDIAN
API-1923

5.51 Solid Objects


Solid objects correspond to the solids and volumes in your model. They are derived from Entity
objects, so in addition to the properties and methods described here, all of the properties and meth-
ods defined for Entity objects are also available for solids. For more information, see Section 5.1,
"Common Entity Properties and Methods".
Use the feSolid method of the FEMAP Application object to create Solid objects.

5.51.1 Solid Object Properties


Surfaces are always stored with a SetID=1, and the ID equal to the Solid (or Volume) ID.

Property Description
INT4 Type The solid/volume type: 6=Volume, 39=Solid.
INT4 attrPID The Property ID of the meshing attribute.
For Volumes Only
INT4 VolSurface[0..5] The IDs of the surfaces used to define the volume.
or
VARIANT vVolSurface
BOOL VolReverse[0..5][0..2] Flags used to indicate how the surface parametric directions are
or reversed when defining the volume. True=Reversed
VARIANT vVolReverse
INT4 VolColor The color of the volume.
INT4 VolLayer The layer associated with the volume.
INT4 VolType The type/shape of the volume: 0=Brick,1=Wedge,2=Pyra-
mid,3=Tetra.
For Solids Only
INT4 color The color of the solid.
INT4 layer The layer associated with the solid.
INT4 Engine The ID of the solid modeling engine used with this solid:
0=None, 1=Parasolid, 2=ACIS.
INT4 Address The solid modeling engine geometry address.
STRING title The title of the solid (maximum 79 characters).
REAL8 ScaleFactor The Solid Geometry Scale Factor
API-1924 Points

5.51.2 Solid Object Methods


5.51.2.1 Points

Points
( numPoints, pointID )
Description:
This method returns a list of all of the points used to define this solid/volume.
Input:
None
Output:
INT4 numPoints The number of points in the pointID list.
INT4 pointID[0..numPoints-1] The IDs of the points on the solid.
Return Code:
Unable to get the point list. Possibly data is not stored or ID is not set
FE_FAIL
correctly.
Remarks/Usage:
This method will work with any solid/volume, but it uses the data stored in the database, not any
changes made in the current object (until it is Put to the database). The ID field must be properly speci-
fied.
Example:
None
PointsAsSet API-1925

5.51.2.2 PointsAsSet

PointsAsSet
( nSetID, bClear )
Description:
This method returns all of the points used to define this solid/volume in a Set object.
Input:
INT4 nSetID The ID of the Set Object that will contain the IDs of the Points
BOOL bClear If True, the Set is cleared prior to loading the Point IDs
Output:
None
Return Code:
Unable to get the point list. Possibly data is not stored or ID is not set
FE_FAIL
correctly.
Remarks/Usage:
This method will work with any solid/volume, but it uses the data stored in the database, not any
changes made in the current object (until it is Put to the database). The ID field must be properly speci-
fied.
Example:
None
API-1926 Curves

5.51.2.3 Curves

Curves
( nCombinedMode, numCurves, curveID )
Description:
This method returns a list of all of the curves used to define this solid/volume.
Input:
0=List contains the basic curves that are on the solid, 1=Any curves
that are on the solid that are in a Combined Curve are replaced by the
INT4 nCombinedMode
ID of the Combined Curve, 2=List contains both the underlying and
combined curves.
Output:
INT4 numCurves The number of curves in the curveID list.
INT4 curveID[0..numCurves-1] The IDs of the curves on the solid.
Return Code:
Unable to get the curve list. Possibly data is not stored or ID is not set
FE_FAIL
correctly.
Remarks/Usage:
This method will work with any solid/volume, but it uses the data stored in the database, not any
changes made in the current object (until it is Put to the database). The ID field must be properly speci-
fied.
Example:
None
CurvesAsSet API-1927

5.51.2.4 CurvesAsSet

CurvesAsSet
( nCombinedMode, nSetID, bClear )
Description:
This method returns all of the curves used to define this solid/volume in a Set object.
Input:
0=List contains the basic curves that are on the solid, 1=Any curves
that are on the solid that are in a Combined Curve are replaced by the
INT4 nCombinedMode
ID of the Combined Curve, 2=List contains both the underlying and
combined curves.
INT4 nSetID The ID of the Set Object that will contain the IDs of the Curves
BOOL bClear If True, the Set is cleared prior to loading the Curve IDs
Output:
None
Return Code:
Unable to get the curve list. Possibly data is not stored or ID is not set
FE_FAIL
correctly.
Remarks/Usage:
This method will work with any solid/volume, but it uses the data stored in the database, not any
changes made in the current object (until it is Put to the database). The ID field must be properly speci-
fied.
Example:
None
API-1928 FreeCurvesAsSet

5.51.2.5 FreeCurvesAsSet

FreeCurvesAsSet
( nCombinedMode, nSetID, bClear )
Description:
This method returns all of the free curves used to define this Solid in a Set object. Free curves are
curves on a sheet solid that are only attached to one surface - the free edges of the sheet
Input:
0=List contains the basic curves that are on the solid, 1=Any curves
that are on the solid that are in a Combined Curve are replaced by the
INT4 nCombinedMode
ID of the Combined Curve, 2=List contains both the underlying and
combined curves.
INT4 nSetID The ID of the Set Object that will contain the IDs of the Curves
BOOL bClear If True, the Set is cleared prior to loading the Curve IDs
Output:
None
Return Code:
Unable to get the curve list. Possibly data is not stored or ID is not set
FE_FAIL
correctly.
Remarks/Usage:
This method will work with any solid/volume, but it uses the data stored in the database, not any
changes made in the current object (until it is Put to the database). The ID field must be properly speci-
fied.
Example:
None
Surfaces API-1929

5.51.2.6 Surfaces

Surfaces
( nCombinedMode, numSurfs, surfaceID )
Description:
This method returns a list of all of the surfaces used to define this solid/volume.
Input:
0=List contains the basic surfaces that are on the solid, 1=Any sur-
faces that are on the solid that are in a Combined Surface are
INT4 nCombinedMode
replaced by the ID of the Combined Surface, 2=List contains both
the underlying and combined surfaces.
Output:
INT4 numSurfs The number of surfaces in the surfaceID list.
INT4 surfaceID[0..numSurfs-1] The IDs of the surfaces on the solid.
Return Code:
Unable to get the surface list. Possibly data is not stored or ID is not
FE_FAIL
set correctly.
Remarks/Usage:
This method will work with any solid/volume, but it uses the data stored in the database, not any
changes made in the current object (until it is Put to the database). The ID field must be properly speci-
fied.
Example:
None
API-1930 SurfacesAsSet

5.51.2.7 SurfacesAsSet

SurfacesAsSet
( nCombinedMode, nSetID, bClear )
Description:
This method returns a list of all of the surfaces used to define this solid/volume.
Input:
0=List contains the basic surfaces that are on the solid, 1=Any sur-
faces that are on the solid that are in a Combined Surface are
INT4 nCombinedMode
replaced by the ID of the Combined Surface, 2=List contains both
the underlying and combined surfaces.
INT4 nSetID The ID of the Set Object that will contain the IDs of the Surfaces
BOOL bClear If True, the Set is cleared prior to loading the Surface IDs
Output:
None
Return Code:
Unable to get the surface list. Possibly data is not stored or ID is not
FE_FAIL
set correctly.
Remarks/Usage:
This method will work with any solid/volume, but it uses the data stored in the database, not any
changes made in the current object (until it is Put to the database). The ID field must be properly speci-
fied.
Example:
None
SheetFacesAsSet API-1931

5.51.2.8 SheetFacesAsSet

SheetFacesAsSet
( nSetID, nInsideSolidSetID )
Description:
This method returns a list of all of the surfaces which are sheet faces on a sheet solid or general body
and also returns a list of all of the surfaces which are sheet faces inside a general body.
Input:
The ID of the Set Object that will contain the IDs of the Surfaces
INT4 nSetID
which are sheet faces of a sheet solid or general body
The ID of the Set Object that will contain the IDs of the Surfaces
INT4 nInsideSolidSetID which are sheet faces found on the interior (inside) of a general
body
Output:
None
Return Code:
Unable to get the surface list. Possibly data is not stored or ID is not
FE_FAIL
set correctly.
Remarks/Usage:

Example:
None
API-1932 WireCurvesAsSet

5.51.2.9 WireCurvesAsSet

WireCurvesAsSet
( nSetID, nInsideSolidSetID )
Description:
This method returns a list of all of the curves which are wire solids on a general body and also returns
a list of all of the curves which are wire solids inside a general body.
Input:
The ID of the Set Object that will contain the IDs of the Curves
INT4 nSetID
which are wire solids of a general body
The ID of the Set Object that will contain the IDs of the Curves
INT4 nInsideSolidSetID
which are wire solids found inside a general body
Output:
None
Return Code:
Unable to get the surface list. Possibly data is not stored or ID is not
FE_FAIL
set correctly.
Remarks/Usage:

Example:
None
MassProp API-1933

5.51.2.10 MassProp

MassProp
( area, volume, cg, inertia )
Description:
This function computes the mass properties of a solid.
Input:
None
Output:
REAL8 area The total surface area of the solid.
REAL8 volume The volume of the solid (if closed).
REAL8 cg[0..2] The location of the center of gravity of the solid.
The 3x3 inertia matrix stored in row order [0][0], [0][1], [0][2],
REAL8 inertia[0..9]
[1][0]...[2][2].
Return Code:
FE_NOT_EXIST The solid that you have selected does not exist.
Remarks/Usage:
The cg and inertia terms are in global rectangular coordinates.
This method will only work with solids. Furthermore, it uses the data stored in the database, not any
changes made in the current object (until it is Put to the database). The ID field must be properly speci-
fied.
Example:
None
API-1934 Export

5.51.2.11 Export

Export
( fName )
Description:
This function writes the current solid to an export (SAT or X_T) file.
Input:
STRING fName The name of the file to create.
Output:
None
Return Code:
The current object does not contain a solid (must be a solid, not a
FE_FAIL
volume).
Remarks/Usage:
This method will only work with solids. Furthermore, it uses the data stored in the database, not any
changes made in the current object (until it is Put to the database). The ID field must be properly speci-
fied.
Example:
None
IsSolid API-1935

5.51.2.12 IsSolid

IsSolid
( void )
Description:
This function indicates whether a solid is a true, valid solid.
Input:
None
Output:
None
Return Code:
FE_FAIL The solid is not a true solid - could be a sheet or wire.
The current object does not contain a valid solid - volumes are not
FE_INVALID
supported.
Remarks/Usage:
This method will only work with solids, not volumes. Returns FE_OK if current object is a solid.
Example:
None
API-1936 IsSheet

5.51.2.13 IsSheet

IsSheet
( void )
Description:
This function indicates whether a solid is a sheet solid.
Input:
None
Output:
None
Return Code:
FE_FAIL The solid is not a sheet solid - could be a solid body or wire.
The current object does not contain a valid solid - volumes are not
FE_INVALID
supported
Remarks/Usage:
This method will only work with solids, not volumes. Returns FE_OK if current object is a sheet solid.
A sheet solid is a collection of surfaces, possibly stitched, but which do not enclose a closed volume.
Example:
None
IsWire API-1937

5.51.2.14 IsWire

IsWire
( void )
Description:
This function indicates whether a solid is a wire solid.
Input:
None
Output:
None
Return Code:
FE_FAIL The solid is not a wire solid - could be a solid body or sheet.
The current object does not contain a valid solid - volumes are not
FE_INVALID
supported.
Remarks/Usage:
This method will only work with solids, not volumes. Returns FE_OK if current object is a wire solid. A
wire solid is a collection of curves, without surfaces.
Example:
None
API-1938 IsGeneral

5.51.2.15 IsGeneral

IsGeneral
( void )
Description:
This function indicates whether a solid is a general body.
Input:
None
Output:
None
Return Code:
FE_FAIL The solid is not a general body.
The current object does not contain a valid solid - volumes are not
FE_INVALID
supported.
Remarks/Usage:
This method will only work with solids, not volumes. Returns FE_OK if current object is a general
body.
Example:
None
Inside API-1939

5.51.2.16 Inside

Inside
( vXYZ, nInsideCode )
Description:
This method finds if a coordinate location lies inside, outside, or on the specified solid.
Input:
REAL8 xyz[0..2] The Global Rectangular coordinates of the location to be tested.
Output:
0=Location is outside, 1=Location is inside, 2=Location is on a
INT4 nInsideCode
point, curve, or surface of the specified solid.
Return Code:

Remarks/Usage:

Example:
None
API-1940 Facets

5.51.2.17 Facets

Facets
( numFacets, xyzFacet )
Description:
This method returns the triangular facets used for display of solids.
Input:
None
Output:
INT4 numFacets The number of facets returned.
The coordinates of the corners of the facets. Each facet is a triangle,
REAL8 xyzFacet[0..9*numFac- and therefore has 9 coordinates. They are arranged in xyzFacet as
ets-1] [X1,Y1,Z1,X2,Y2,Z2,X3,Y3,Z3....] for the first facet, followed by
the second and so on.
Return Code:
FE_FAIL Not a solid, or unable to retrieve facets.
Remarks/Usage:
This method will only work with solid faces that have facetting information. The surface information
must be in the database. Only the ID from the current object is used.
Example:
None
Nodes API-1941

5.51.2.18 Nodes

Nodes
( getBoundary, getInterior, numNodes, nodeID )
Description:
This method returns the nodes that are attached to this solid
Input:
If True, the nodes attached to the solid boundary (the surfaces, curves
BOOL getBoundary
and points) are selected
If True, the nodes attached to the interior of the solid (not on the sur-
BOOL getInterior
faces, curves or points) are selected
Output:
INT4 numNodes The number of nodes returned.
INT4 nodeID[0..numNodes-1] The IDs of the selected nodes which are attached to the solid.
Return Code:
FE_FAIL Unable to return nodes, possibly none exist.
FE_NOT_EXIST No nodes were attached to the solid in the manner you selected.
FE_NO_MEMORY Insufficient memory to allocate list of attached nodes.
Remarks/Usage:
None
Example:
API-1942 Nodes

Nodes
( getBoundary, getInterior, numNodes, nodeID )
The following codes modifies the color of all nodes on Solid 4.
Sub Main
Dim App As femap.model
Set App = GetObject(,"femap.model")

Dim so As Object
Set so = App.feSolid
Dim nd As Object
Set nd = App.feNode
Dim rc As Long
Dim Count As Long
Dim Nodes As Variant
Dim i As Long

solidID = 4

rc = so.Get (solidID)
rc = so.Nodes(True, True, Count, Nodes)
For i = 0 To Count - 1
nd.Get (Nodes(i))
nd.Color = 4
nd.Put (0)
Next i

App.feViewRegenerate(0)
End Sub
NodesAsSet API-1943

5.51.2.19 NodesAsSet

NodesAsSet
( getBoundary, getInterior, nSetID, bClear )
Description:
This method returns the nodes that are attached to this solid in a Set
Input:
If True, the nodes attached to the solid boundary (the surfaces, curves
BOOL getBoundary
and points) are selected
If True, the nodes attached to the interior of the solid (not on the sur-
BOOL getInterior
faces, curves or points) are selected
INT4 nSetID The ID of the Set Object that will contain the IDs of the Nodes
BOOL bClear If True, the Set is cleared prior to loading the Node IDs
Output:
None
Return Code:
FE_FAIL Unable to return nodes, possibly none exist.
FE_NOT_EXIST No nodes were attached to the solid in the manner you selected.
FE_NO_MEMORY Insufficient memory to allocate list of attached nodes.
Remarks/Usage:
None
Example:
None
API-1944 Elements

5.51.2.20 Elements

Elements
( numElems, elemID )
Description:
This method returns the elements that are attached to this solid
Input:
None
Output:
INT4 numElems The number of elements returned.
INT4 elemID[0..numElems-1] The IDs of the selected elements which are attached to the solid.
Return Code:
FE_FAIL Unable to return elements, possibly none exist.
FE_NOT_EXIST No elements were attached to the solid in the manner you selected.
FE_NO_MEMORY Insufficient memory to allocate list of attached elements.
Remarks/Usage:
Only elements that have all of their nodes in the solid will be returned by this method. Elements that
simply touch the solid at one edge or one node will not be returned.
Example:
None
ElementsAsSet API-1945

5.51.2.21 ElementsAsSet

ElementsAsSet
( nSetID, bClear )
Description:
This method returns the elements that are attached to this solid in a Set
Input:
INT4 nSetID The ID of the Set Object that will contain the IDs of the Elements
BOOL bClear If True, the Set is cleared prior to loading the Element IDs
Output:
None
Return Code:
FE_FAIL Unable to return elements, possibly none exist.
FE_NOT_EXIST No elements were attached to the solid in the manner you selected.
FE_NO_MEMORY Insufficient memory to allocate list of attached elements.
Remarks/Usage:
Only elements that have all of their nodes in the solid will be returned by this method. Elements that
simply touch the solid at one edge or one node will not be returned.
Example:
None
API-1946 BoundingBox

5.51.2.22 BoundingBox

BoundingBox
( Box )
Description:
This method returns the coordinates of a rectangular box the encloses this geometry.
Input:
None
Output:
The dimensions of the bounding box, in Global Rectangular coordi-
nates.
INT4 Box[0..5] Box[0] - Minimum X, Box[3] - Maximum X
Box[1] - Minimum Y, Box[4] - Maximum Y
Box[2] - Minimum Z, Box[5] - Maximum Z
Return Code:
FE_FAIL Unable to find a bounding box.
Object does not contain valid geometry. This method only works for
FE_INVALID
Parasolid-based geometry.
Remarks/Usage:
This method always retrieves a box that is aligned with Global Rectangular coordinates, not an aligned
box of minimum volume.
Example:
None
API-1947

5.52 Surface Objects


Surface objects correspond to the surfaces (including boundary surfaces) in your model. They are
derived from Entity objects, so in addition to the properties and methods described here, all of the
properties and methods defined for Entity objects are also available for Surface objects. For more
information, see Section 5.1, "Common Entity Properties and Methods"..
Use the feSurface method of the FEMAP Application object to create Surface objects.

5.52.1 Surface Object Properties


Surfaces are always stored with a SetID=1, and the ID equal to the Surface ID.
In this table, you will see some properties that list two names - one of which is an array, the other a
Variant. Refer to Section 1.2.7, "Multiple Definitions of Array Properties" for more information.

Property Description
INT4 layer The ID of the layer associated with the surface.
INT4 color The surface color.
INT4 type The surface type: 0=Bilinear, 1=Ruled, 2=Revolution,
3=Coons, 4=Bezier, 5=Solid, 6=Not Used, 7=Boundary.
INT4 StdCurve[0..5] The IDs of the curves referenced by Bilinear, Ruled, Revolu-
or tion, Coons and Bezier surfaces.
VARIANT vStdCurve
BOOL StdCurveReverse[0..5] If True, the surface uses the corresponding StdCurve in a
or reversed orientation.
VARIANT vStdCurveReverse
INT4 Divisions[0..1] The number of divisions in the u and v parametric directions for
or display purposes.
VARIANT vDivisions
INT4 Engine The ID of the solid modeling engine used with this surface:
0=None, 1=Parasolid.
INT4 Address The solid modeling engine geometry address
BOOL Suppressed True if this surface is suppressed (will not be meshed).
INT4 InternalToBoundary If this surface is used to define a Combined Surface, then this
property contains the ID of the Combined Surface, otherwise it
is 0.
REAL8 ScaleFactor The Solid Geometry Scale Factor
Mesh Attributes
INT4 attrPID The Property ID of the meshing attribute.
INT4 attrTopology The shape of elements that will be meshed onto the surface
(2=Tri3, 3=Tri6, 4=Quad4, 5=Quad8)
API-1948

Property Description
INT4 attrMesher The mesher that will be used (0=Auto,1=Subdivision, 2=Fast
Tri, 3=3D Tri
INT4 attrMappedLevel Mapped Meshing Switch (0=Off,1=On)
BOOL attrMapSubdivisions If True and using subdivision mesher, then additional mapped
meshing may be done at the subdivision level
BOOL attrMapEqualOnly If True, only surfaces with equal numbers of elements on oppo-
site sides will be mapped mesh
BOOL attrMapAltTri If True, and Mapped Tri meshing, the triangle cuts will alter-
nate directions
BOOL attrMapRightBias If True and Mapped Tri meshing, the first cut will be right
oriented, otherwise left
BOOL attrMapSplitQuads If True and Mapped Tri meshing, the map will be done with
quads, then the quads will be split along the diagonal that
makes the best triangles.
REAL8 attrMapAngleDeviation If Mapped Meshing, this value is the max angle deviation from
90 deg to determine a corner of the mapped mesh
REAL8 attrMapMinCornerAngle If Mapped Meshing, prevents mapped meshing if a mapped
corner angle is less than this value.
BOOL attrMidsideGeom If True, Midside nodes will be moved to (or toward) the geome-
try. If False, Midside nodes are at the midpoint of the element
edge. This has no effect on planar surfaces.
REAL8 attrMidsideAngle If Nonzero, then this limits the angle that an edge can be dis-
torted as the midside node is moved toward the geometry.
INT4 attrMinBetween For the Subdivision mesher, ensures that there will be at least
this number of elements along any cut between edges. Nor-
mally should be set to 1.
REAL8 attrMaxAspect For the Subdivision mesher, the divisions are adjusted to
attempt to get a max element aspect ratio less than this value.
INT4 attrQuickCutNodes For the Subdivision mesher, surfaces with more than this num-
ber of elements along its edges are subdivided without looking
at every possibility. Not used with v10 Mesher.
REAL8 attrQuadCutAngle Quad elements with angles that are further from 90 deg than
this angle are split into triangles.
BOOL attrSmoothLaplacian If True, use Laplacian smoothing. If False, Centroidal.
INT4 attrSmoothIter Number of Smoothing Iterations
API-1949

Property Description
REAL8 attrSmoothTolerance Tolerance value for smoothing. Smoothing will stop prior to the
specified number of iterations if no nodes are moving further
than this value.
BOOL attrConnectEdgeNodes If True, automatically uses nodes on curves when meshing this
surface (automatically connects to adjoining meshes)
REAL8 attrConnectEdgeNodeTol Tolerance between nodal locations and mesh locations on edge
for finding existing edge nodes to connect.
INT4 attrOffsetFrom Location in element to offset from (0=Centerline, 1=Top Face,
2=Bottom Face)
REAL8 attrOffset The meshing attribute defining the offset to be applied to ele-
ments.
BOOL attrInitialized If True, the attributes have been initialized - probably because
the surface has been meshed, or attributes have been defined.
BOOL attrPostMeshCleanup If True, for the v10 meshers, after meshing has completed the
mesh is scanned for certain patterns of elements that can be
adjusted to improve the mesh.
INT4 QuadMeshLayers The number of quad mesh layers to pave around holes
Mesh Approach
INT4 approach The meshing approach for the surface: 0=Not Specified,
1=Free-Parametric, 2=Free-Planar, 3=Mapped-Four Corner,
4=Mapped-Three Corner, 5=Mapped-Three Corner Fan,
6=Link to Surface, 7=Fast Tri-Parametric, 8=Fast Tri-Planar.
The data for various approaches. For the mapped approaches,
INT4 approachData[0..3]
these are the point IDs defining the corners of the mapped
or
mesh. For the Link to Surface approach, approachData[0] is the
VARIANT vapproachData
ID of the surface that this surface is linked to.
Mesh Sizing
REAL8 MeshSizeInterior Growth factor on interior of surface.
REAL8 MeshSizeChord Factor for curvature-based meshing.
For Mesh Points on Surface
INT4 MeshPoint[0..149] The IDs of points used as mesh points on the surface.
or
VARIANT vMeshPoint
For Boundary Surfaces only
INT4 BoundaryCurve[0..749] The IDs of the curves used to define the boundary.
or
VARIANT vBoundaryCurve
API-1950

Property Description
An identifier corresponding to how each curve is used in the
boundary. This flag should be compared against the following
values to see if the corresponding conditions exist.
0x00 - curve is used in a forward orientation
0x01 - curve is used in a reverse orientation
0x10 - curve is used as the start of a loop
INT4 BoundaryFlag[0..749]
0x20 - curve is used as the end of a loop
or
0x80 - curve is used in a loop that is part of a hole in the sur-
VARIANT vBoundaryFlag
face
The outer loop of the boundary always comes first, starts with a
curve marked with 0x10 (start of loop), and ends with a curve
marked as 0x20 (end of loop). This is followed by any addi-
tional loops which define the holes in the surface. There can
only be one outer loop.
INT4 BoundaryMode The mapping of the boundary for meshing: 0=Planar/Interpo-
late Curves, 3=Map to Surface.
INT4 BoundaryOnSurface The ID for the surface to use for mapping if BoundaryMode=3.
Inside API-1951

5.52.2 Surface Object Methods


5.52.2.1 Inside

Inside
( u, v )
Description:
This method finds if a parametric location lies inside the specified surface.
Input:
REAL8 u
The parametric coordinates of the location to be tested.
REAL8 v
Output:
None
Return Code:
FE_FAIL The location lies outside of the surface (or inside a hole).
Remarks/Usage:
This method will work for any type of surface except combined boundary surfaces. Use InsideXYZ for
those surfaces.
Example:
None
API-1952 InsideXYZ

5.52.2.2 InsideXYZ

InsideXYZ
( xyz )
Description:
This method finds if a location lies inside the specified surface.
Input:
REAL8 xyz[0..2] The Global Rectangular coordinates of the location to be tested.
Output:
None
Return Code:
FE_FAIL The location lies outside of the surface (or inside a hole).
Remarks/Usage:
This method will work for any type of surface including combined boundary surfaces.
Example:
None
ParamToXYZ API-1953

5.52.2.3 ParamToXYZ

ParamToXYZ
( u, v, xyz )
Description:
This method converts a parametric location (u,v) to a coordinate location (xyz).
Input:
REAL8 u
The parametric coordinates of the location being specified.
REAL8 v
Output:
REAL8 xyz[0..2] The coordinates of the location in global rectangular.
Return Code:
FE_FAIL Unable to compute the location.
Remarks/Usage:
This method will work for any type of surface.
Example:
None
API-1954 XYZToParam

5.52.2.4 XYZToParam

XYZToParam
( xyz, u, v )
Description:
This method converts a coordinate location (xyz) to a parametric location (u,v).
Input:
REAL8 xyz[0..2] The coordinates of the location in global rectangular.
Output:
REAL8 u
The parametric coordinates of the location.
REAL8 v
Return Code:
FE_FAIL Unable to compute the location.
Remarks/Usage:
This method will work for any type of surface.
Example:
None
CG API-1955

5.52.2.5 CG

CG
( xyz )
Description:
This method finds the center of gravity of a surface.
Input:
None
Output:
REAL8 xyz[0..2] The coordinates of the center of gravity, in global rectangular.
Return Code:
Unable to compute the location. Possibly wrong surface type, ID is
FE_FAIL
not set, or data is not stored in database.
Remarks/Usage:
This method will only work for solid surfaces. Furthermore, the surface must be Put to the model. The
data in the current object is not used.
Example:
None
API-1956 Area

5.52.2.6 Area

Area
( area )
Description:
This method finds the area of a surface.
Input:
None
Output:
REAL8 area The area of the surface.
Return Code:
Unable to compute the location. Possibly wrong surface type, ID is
FE_FAIL
not set, or data is not stored in database.
Remarks/Usage:
This method will only work for solid surfaces. Furthermore, the surface must be Put to the model. The
data in the current object is not used.
Example:
None
ApproximateArea API-1957

5.52.2.7 ApproximateArea

ApproximateArea
( area )
Description:
This method is similar to Area( ), however the area is not computed as precisely to improve perfor-
mance
Input:
None
Output:
REAL8 area The area of the surface.
Return Code:
Unable to compute the location. Possibly wrong surface type, ID is
FE_FAIL
not set, or data is not stored in database.
Surface type is not supported. This method only works with Solid
FE_BAD_TYPE
and Combined Surfaces
FE_NOT_EXIST The surface does not exist
Remarks/Usage:
This method will only work for solid surfaces. Furthermore, the surface must be Put to the model. The
data in the current object is not used.
Example:
None
API-1958 Tangents

5.52.2.8 Tangents

Tangents
( u, v, uTangent, vTangent )
Description:
This method finds unit vectors in the directions of the tangents to the surface at a selected location.
Input:
REAL8 u
The parametric coordinates of the location being specified.
REAL8 v
Output:
The tangent vector in the direction of the u parametric space of the
REAL8 uTangent[0..2]
surface.
The tangent vector in the direction of the v parametric space of the
REAL8 vTangent[0..2]
surface.
Return Code:
Unable to compute the location. Possibly wrong surface type, ID is
FE_FAIL
not set, or data is not stored in database.
Remarks/Usage:
This method will work for any surface.
Example:
None
Normal API-1959

5.52.2.9 Normal

Normal
( u, v, normal )
Description:
This method finds a unit vector in the direction of the surface normal at a selected location.
Input:
REAL8 u
The parametric coordinates of the location being specified.
REAL8 v
Output:
REAL8 normal[0..2] The vector in the direction of the surface normal.
Return Code:
Unable to compute the normal. Possibly wrong surface type, ID is
FE_FAIL
not set, or data is not stored in database.
Remarks/Usage:
This method will work for any surface.
Example:
None
API-1960 NormalAtXYZ

5.52.2.10 NormalAtXYZ

NormalAtXYZ
( nLocations, xyz, normal )
Description:
This method finds a unit vector in the direction of the surface normal at one or more locations.
Input:
INT4 nLocations Number of locations specified in the xyz array
The Global Rectangular coordinates of the locations where you want
REAL8 xyz[0..3*nLocations-1] normals computed. This array is stored [x0,y0,z0,x1,y1,z1...], and
must contain 3*nLocations entries.
Output:
The vectors in the direction of the surface normals. Each set of 3
REAL8 normal[0..3*nLoca-
entries in this array correspond to the matching entries in the xyz
tions-1]
array, and are the x,y and z vector components of the normal.
Return Code:
Unable to compute the normals. Possibly wrong surface type, ID is
FE_FAIL
not set, or data is not stored in database.
Remarks/Usage:
This method will work for any surface.
Example:
None
ProjectOnto API-1961

5.52.2.11 ProjectOnto

ProjectOnto
( initial, tolerance, projection )
Description:
This method projects a location to the closest location that lies on a surface.
Input:
REAL8 initial[0..2] The initial coordinates to be projected onto the surface.
The tolerance within which you will consider the projected location
to be on the surface. The method stops when it finds a point that is at
REAL8 tolerance
least this close. This tolerance is only used for certain standard sur-
face types.
Output:
REAL8 projection[0..2] The projected location, on the surface.
Return Code:
Unable to compute the location. Possibly wrong surface type, ID is
FE_FAIL
not set, or data is not stored in database.
Remarks/Usage:
This method will work for any surface, but all boundary surfaces must be Put to the database before
using this method.
Example:
None
API-1962 ProjectToClosest

5.52.2.12 ProjectToClosest

ProjectToClosest
( vOrig, vProj )
Description:
This method projects a location to the closest location that lies on a surface (i.e., FEMAP determines
vector used for projection)
Input:
REAL8 vOrig [0..2] The initial coordinates to be projected onto the surface.
Output:
REAL8 vProj [0..2] The projected location, on the surface.
Return Code:
Unable to compute the location. Possibly wrong surface type, ID is
FE_FAIL
not set, or data is not stored in database.
Remarks/Usage:
Does the same thing as the ProjectOnto method, but always uses a Tolerance value of 1.0E-8
Example:
None
ProjectAlongVector API-1963

5.52.2.13 ProjectAlongVector

ProjectAlongVector
( bBothDirections, vAlong, vOrig, vProj )
Description:
This method projects a location along a specified vector to a location that lies on a surface (i.e., user
supplies vector used for projection)
Input:
When True, the location will be projected in both directions along the
supplied vector to determine the location to use (i.e., if a location was
inside a cylindrical surface, it could actually find 2 locations on the
BOOL bBothDirections
surface, and the one closest to the original location will be used).
When False, the location will only be projected in the direction of the
supplied vector.
REAL8 vAlong [0..2] The vector supplied by the user to project along.
REAL8 vOrig [0..2] The initial coordinates to be projected onto the surface.
Output:
REAL8 vProj [0..2] The projected location, on the surface.
Return Code:
Unable to compute the location. Possibly wrong surface type, ID is
not set, or data is not stored in database. Additionally, if the supplied
FE_FAIL
vector never intersects the surface, no projected location can be
determined.
Remarks/Usage:
None
Example:
None
API-1964 Solid

5.52.2.14 Solid

Solid
( nSolidID )
Description:
This method returns the ID of the Solid that contains the current Surface
Input:
None
Output:
INT4 nSolidID The ID of the Solid that references the current Surface
Return Code:
FE_FAIL Unable to get the solid
Remarks/Usage:
This method will only work with Solid surfaces and Combined Surfaces that are defined on a Solid.
Example:
None
BoundarySurfaces API-1965

5.52.2.15 BoundarySurfaces

BoundarySurfaces
( numSurf, surfID )
Description:
For a combined surface, this method returns a list of all of the surfaces used to define this surface.
Input:
None
Output:
INT4 numSurf The number of surfaces in the surfID list.
INT4 surfID[0..numSurf-1] The IDs of the surfaces used to define the Combined Surface
Return Code:
Unable to get the surface list. Possibly data is not stored or this is not
FE_FAIL
a Combined Surface
FE_NOT_AVAILABLE No surfaces available for this surface.
Remarks/Usage:
This method will only work with Combined Surfaces.
Example:
None
API-1966 BoundarySurfacesAsSet

5.52.2.16 BoundarySurfacesAsSet

BoundarySurfacesAsSet
( nSetID, bClear )
Description:
For a combined surface, this method returns a list of all of the surfaces used to define this surface in a
Set object
Input:
INT4 nSetID The ID of the Set Object that will contain the IDs of the Surfaces
BOOL bClear If True, the Set is cleared prior to loading the Surface IDs
Output:
None
Return Code:
Unable to get the surface list. Possibly data is not stored or this is not
FE_FAIL
a Combined Surface
FE_NOT_AVAILABLE No surfaces available for this surface.
Remarks/Usage:
This method will only work with Combined Surfaces.
Example:
None
AdjacentSurfaces API-1967

5.52.2.17 AdjacentSurfaces

AdjacentSurfaces
( nCombinedMode, numSurf, surfID )
Description:
This method returns a list of all of the surfaces that are adjacent to the current surface.
Input:
0=List contains the basic surfaces that are adjacent (FCC_OFF),
1=Any surfaces that are adjacent that are in a Combined Surface are
INT4 nCombinedMode
replaced by the ID of the Combined Surface (FCC_ON), 2=List con-
tains both the underlying and combined surfaces (FCC_BOTH).
Output:
INT4 numSurf The number of surfaces in the surfID list.
INT4 surfID[0..numSurf-1] The IDs of the adjacent surfaces
Return Code:
FE_FAIL Unable to find adjacent surfaces
Remarks/Usage:
This method will only work with Solid Surfaces or Combined Surfaces on Solids. It finds all of the
curves on the current surface and then finds and returns all of the other surfaces that use one or more of
those curves.
Example:
None
API-1968 AdjacentSurfacesAsSet

5.52.2.18 AdjacentSurfacesAsSet

AdjacentSurfacesAsSet
( nCombinedMode, nSetID, bClear )
Description:
This method returns a list of all of the surfaces that are adjacent to the current surface in a Set object.
Input:
0=List contains the basic surfaces that are adjacent (FCC_OFF),
1=Any surfaces that are adjacent that are in a Combined Surface are
INT4 nCombinedMode
replaced by the ID of the Combined Surface (FCC_ON), 2=List con-
tains both the underlying and combined surfaces (FCC_BOTH).
INT4 nSetID The ID of the Set Object that will contain the IDs of the Surfaces
BOOL bClear If True, the Set is cleared prior to loading the Surface IDs
Output:
None
Return Code:
FE_FAIL Unable to find adjacent surfaces
Remarks/Usage:
This method will only work with Solid Surfaces or Combined Surfaces on Solids. It finds all of the
curves on the current surface and then finds and returns all of the other surfaces that use one or more of
those curves.
Example:
None
Curves API-1969

5.52.2.19 Curves

Curves
( nCombinedMode, numCurves, curveID )
Description:
This method returns a list of all of the curves used to define this surface.
Input:
0=List contains the basic curves that are on the surface (FCC_OFF),
1=Any curves that are on the surface that are in a Combined Curve
INT4 nCombinedMode
are replaced by the ID of the Combined Curve (FCC_ON), 2=List
contains both the underlying and combined curves (FCC_BOTH).
Output:
INT4 numCurves The number of curves in the curveID list.
INT4 curveID[0..numCurves-1] The IDs of the curves on the surface.
Return Code:
Unable to get the curve list. Possibly data is not stored or ID is not set
FE_FAIL
correctly.
Remarks/Usage:
This method will work with any surface, but it uses the data stored in the database, not any changes
made in the current object (until it is Put to the database). The ID field must be properly specified.
Example:
None
API-1970 CurveLoops

5.52.2.20 CurveLoops

CurveLoops
( nCombinedMode, numLoops, numCurves, curveID )
Description:
This method returns a list of all of the curves used to define this surface. Unlike Curves() this method
returns the curves in their order around each surface loop.
Input:
0=List contains the basic curves that are on the surface (FCC_OFF),
1=Any curves that are on the surface that are in a Combined Curve
INT4 nCombinedMode
are replaced by the ID of the Combined Curve (FCC_ON), 2=List
contains both the underlying and combined curves (FCC_BOTH).
Output:
The number of loops on the surface and in the curveID list. A loop
is a connected set of curves. Any surface with no interior holes or
INT4 numLoops
other features only has one loop. Each hole in the surface adds
another loop.
The number of entries in the curveID list. This is not the number
INT4 numCurves
of curves since there is an extra 0 at the end of each loop.
The IDs of the curves on the surface. Each loop ends with a 0. If the
INT4 curveID[0..numCurves-1] ID is negative, this indicates that the curve is used in the reverse
direction.
Return Code:
Unable to get the curve list. Possibly data is not stored or ID is not set
FE_FAIL
correctly.
Remarks/Usage:
The ID list in curveID list looks like
outer c1, outer c2...outer cn, 0, inner1 c1...inner1 cn, 0, ... innerN c1...innerN cn, 0

The 0 entries define the end of a loop. IDs are negative if a curve is used in reverse direction.

This method will work with any surface, but it uses the data stored in the database, not any changes
made in the current object (until it is Put to the database). The ID field must be properly specified.
Example:
None
CurvesAsSet API-1971

5.52.2.21 CurvesAsSet

CurvesAsSet
( nCombinedMode, nSetID, bClear )
Description:
This method returns a list of all of the curves used to define this surface in a Set object.
Input:
0=List contains the basic curves that are on the surface (FCC_OFF),
1=Any curves that are on the surface that are in a Combined Curve
INT4 nCombinedMode
are replaced by the ID of the Combined Curve (FCC_ON), 2=List
contains both the underlying and combined curves (FCC_BOTH).
INT4 nSetID The ID of the Set Object that will contain the IDs of the Curves
BOOL bClear If True, the Set is cleared prior to loading the Curve IDs
Output:
None
Return Code:
Unable to get the curve list. Possibly data is not stored or ID is not set
FE_FAIL
correctly.
Remarks/Usage:
This method will work with any surface, but it uses the data stored in the database, not any changes
made in the current object (until it is Put to the database). The ID field must be properly specified.
Example:
None
API-1972 Points

5.52.2.22 Points

Points
( nCombinedMode, numPoints, pointID )
Description:
This method returns a list of all of the points referenced by the surface.
Input:
When finding the list of points, this method first finds all curves on
the surface, then points on those curves.

INT4 nCombinedMode 0=Uses the basic curves that are on the surface (FCC_OFF), 1=Any
curves that are on the surface that are in a Combined Curve are
replaced by the ID of the Combined Curve (FCC_ON), 2=Uses both
the underlying and combined curves (FCC_BOTH).
Output:
INT4 numPoints The number of points in the pointID list.
INT4 pointID[0..numPoints-1] The IDs of the points on the surface.
Return Code:
Unable to get the point list. Possibly data is not stored or ID is not set
FE_FAIL
correctly.
Remarks/Usage:
This method will work with any surface, but it uses the data stored in the database, not any changes
made in the current object (until it is Put to the database). The ID field must be properly specified.
Example:
None
PointsAsSet API-1973

5.52.2.23 PointsAsSet

PointsAsSet
( nCombinedMode, nSetID, bClear )
Description:
This method returns a list of all of the points referenced by the surface in a Set object.
Input:
When finding the list of points, this method first finds all curves on
the surface, then points on those curves.

INT4 nCombinedMode 0=Uses the basic curves that are on the surface (FCC_OFF), 1=Any
curves that are on the surface that are in a Combined Curve are
replaced by the ID of the Combined Curve (FCC_ON), 2=Uses both
the underlying and combined curves (FCC_BOTH).
INT4 nSetID The ID of the Set Object that will contain the IDs of the Points
BOOL bClear If True, the Set is cleared prior to loading the Point IDs
Output:
None
Return Code:
Unable to get the point list. Possibly data is not stored or ID is not set
FE_FAIL
correctly.
Remarks/Usage:
This method will work with any surface, but it uses the data stored in the database, not any changes
made in the current object (until it is Put to the database). The ID field must be properly specified.
Example:
None
API-1974 EndPoints

5.52.2.24 EndPoints

EndPoints
( numPoints, pointID )
Description:
This method returns a list of all of the points referenced by the surface at the ends of the defining curves.
Input:
None
Output:
INT4 numPoints The number of points in the pointID list.
INT4 pointID[0..numPoints-1] The IDs of the points on the surface.
Return Code:
Unable to get the point list. Possibly data is not stored or ID is not set
FE_FAIL
correctly.
Remarks/Usage:
This method will work with any surface, but it uses the data stored in the database, not any changes
made in the current object (until it is Put to the database). The ID field must be properly specified.

This is just like the Points method, except that function will return other points like the points at the cen-
ter of an arc used to define the surface. This method will only return one pair of points (the endpoints)
for each curve.
Example:
None
EndPointsAsSet API-1975

5.52.2.25 EndPointsAsSet

EndPointsAsSet
( nSetID, bClear )
Description:
This method returns a list of all of the points referenced by the surface at the ends of the defining curves
in a Set object
Input:
INT4 nSetID The ID of the Set Object that will contain the IDs of the Points
BOOL bClear If True, the Set is cleared prior to loading the Point IDs
Output:
None
Return Code:
Unable to get the point list. Possibly data is not stored or ID is not set
FE_FAIL
correctly.
Remarks/Usage:
This method will work with any surface, but it uses the data stored in the database, not any changes
made in the current object (until it is Put to the database). The ID field must be properly specified.

This is just like the Points method, except that function will return other points like the points at the cen-
ter of an arc used to define the surface. This method will only return one pair of points (the endpoints)
for each curve.
Example:
None
API-1976 Planar

5.52.2.26 Planar

Planar
( base, normal )
Description:
This method returns information about planar surfaces.
Input:
None
Output:
REAL8 base[0..2] The coordinates of a point on the surface
REAL8 normal[0..2] The vector that is normal to the plane
Return Code:
FE_FAIL Surface is not planar, or could not evaluate the surface.
Remarks/Usage:
This method will only work with solid surfaces, not surfaces created with the FEMAP Standard geome-
try engine. It uses the data stored in the database, not any changes made in the current object (until they
are Put to the database).

Note: This method has changed for consistency with other surface methods. Prior to v9.2 it did not
return information about the plane. To access the old functionality, use IsPlane( ).
Example:
None
Cylindrical API-1977

5.52.2.27 Cylindrical

Cylindrical
( radius, base, axis )
Description:
This method returns information about cylindrical surfaces
Input:
None
Output:
REAL8 radius The radius of the cylinder.
REAL8 base[0..2] The coordinates of the center of the base of the cylinder.
REAL8 axis[0..2] The components of the axis vector.
Error Codes:
FE_FAIL Surface is not cylindrical, or could not evaluate the surface.
Remarks/Usage:
This method will only work with solid surfaces, not surfaces created with the FEMAP Standard geome-
try engine. It uses the data stored in the database, not any changes made in the current object (until it is
Put to the database).
Example:
None
API-1978 Spherical

5.52.2.28 Spherical

Spherical
( radius, center )
Description:
This method returns information about spherical surfaces
Input:
None
Output:
REAL8 radius The radius of the sphere.
REAL8 center[0..2] The coordinates of the center of the sphere.
Error Codes:
FE_FAIL Surface is not spherical, or could not evaluate the surface.
Remarks/Usage:
This method will only work with solid surfaces, not surfaces created with the FEMAP Standard geome-
try engine. It uses the data stored in the database, not any changes made in the current object (until it is
Put to the database).
Example:
None
Conical API-1979

5.52.2.29 Conical

Conical
( radius, angle, base, axis )
Description:
This method returns information about conical surfaces
Input:
None
Output:
REAL8 radius The radius of the cone in the plane of the base location.
REAL8 angle The half angle of the cone
REAL8 base[0..2] A location along the axis of the cone.
REAL8 axis[0..2] The vector along the axis of the cone
Error Codes:
FE_FAIL Surface is not conical, or could not evaluate the surface.
Remarks/Usage:
This method will only work with solid surfaces, not surfaces created with the FEMAP Standard geome-
try engine. It uses the data stored in the database, not any changes made in the current object (until it is
Put to the database).
Example:
None
API-1980 Toroidal

5.52.2.30 Toroidal

Toroidal
( radius1, radius2, base, axis )
Description:
This method returns information about toroidal surfaces
Input:
None
Output:
REAL8 radius1 The major radius of the toroid.
REAL8 radius2 The minor radius of the toroid
REAL8 base[0..2] A location along the axis of the toroid.
REAL8 axis[0..2] The vector along the axis of the toroid
Error Codes:
FE_FAIL Surface is not toroidal, or could not evaluate the surface.
Remarks/Usage:
This method will only work with solid surfaces, not surfaces created with the FEMAP Standard geome-
try engine. It uses the data stored in the database, not any changes made in the current object (until it is
Put to the database).
Example:
None
IsPlane API-1981

5.52.2.31 IsPlane

IsPlane
( void )
Description:
This method indicates whether a surface is planar
Input:
None
Output:
None
Error Codes:
FE_FAIL Surface is not planar, or could not evaluate the surface.
FE_BAD_TYPE Surface is not a solid surface
FE_NOT_AVAILABLE Surface object has not been loaded with valid data from the database
Remarks/Usage:
This method will only work with solid surfaces, not surfaces created with the FEMAP Standard geome-
try engine. It uses the data stored in the database, not any changes made in the current object (until it is
Put to the database).
Example:
None
API-1982 IsCylinder

5.52.2.32 IsCylinder

IsCylinder
( void )
Description:
This method indicates whether a surface is cylindrical
Input:
None
Output:
None
Error Codes:
FE_FAIL Surface is not cylindrical, or could not evaluate the surface.
FE_BAD_TYPE Surface is not a solid surface
FE_NOT_AVAILABLE Surface object has not been loaded with valid data from the database
Remarks/Usage:
This method will only work with solid surfaces, not surfaces created with the FEMAP Standard geome-
try engine. It uses the data stored in the database, not any changes made in the current object (until it is
Put to the database).
Example:
None
IsSphere API-1983

5.52.2.33 IsSphere

IsSphere
( void )
Description:
This method indicates whether a surface is spherical
Input:
None
Output:
None
Error Codes:
FE_FAIL Surface is not shperical, or could not evaluate the surface.
FE_BAD_TYPE Surface is not a solid surface
FE_NOT_AVAILABLE Surface object has not been loaded with valid data from the database
Remarks/Usage:
This method will only work with solid surfaces, not surfaces created with the FEMAP Standard geome-
try engine. It uses the data stored in the database, not any changes made in the current object (until it is
Put to the database).
Example:
None
API-1984 IsCone

5.52.2.34 IsCone

IsCone
( void )
Description:
This method indicates whether a surface is conical
Input:
None
Output:
None
Error Codes:
FE_FAIL Surface is not conical, or could not evaluate the surface.
FE_BAD_TYPE Surface is not a solid surface
FE_NOT_AVAILABLE Surface object has not been loaded with valid data from the database
Remarks/Usage:
This method will only work with solid surfaces, not surfaces created with the FEMAP Standard geome-
try engine. It uses the data stored in the database, not any changes made in the current object (until it is
Put to the database).
Example:
None
IsTorus API-1985

5.52.2.35 IsTorus

IsTorus
( void )
Description:
This method indicates whether a surface is toroidal
Input:
None
Output:
None
Error Codes:
FE_FAIL Surface is not toroidal, or could not evaluate the surface.
FE_BAD_TYPE Surface is not a solid surface
FE_NOT_AVAILABLE Surface object has not been loaded with valid data from the database
Remarks/Usage:
This method will only work with solid surfaces, not surfaces created with the FEMAP Standard geome-
try engine. It uses the data stored in the database, not any changes made in the current object (until it is
Put to the database).
Example:
None
API-1986 IsBlend

5.52.2.36 IsBlend

IsBlend
( blendtype, dRadius)
Description:
This method indicates whether a surface is a blend
Input:
None
Output:
The Type of blend. 4002=cylinder, 4003=cone, 4004=sphere,
INT4 blendtype 4005= torus, 4006=B-Surface, 4007=blend surface, 4009=swept,
4010=spun
Blend Radius. For blends with two radii, it is always the smaller of
REAL8 dRadius
the two.
Error Codes:
FE_FAIL Surface is not a blend, or could not evaluate the surface.
FE_BAD_TYPE Surface is not a solid surface
FE_NOT_AVAILABLE Surface object has not been loaded with valid data from the database
Remarks/Usage:
This method will only work with solid surfaces, not surfaces created with the FEMAP Standard geome-
try engine. It uses the data stored in the database, not any changes made in the current object (until it is
Put to the database).
Example:
None
IsBoundingSolidRegion API-1987

5.52.2.37 IsBoundingSolidRegion

IsBoundingSolidRegion
( void )
Description:
This method indicates whether a surface is part of a solid body definition.
Input:
None
Output:
None
Error Codes:
FE_FAIL Could not evaluate the surface.
FE_BAD_TYPE Surface is not a solid surface
Remarks/Usage:
This method will only work with solid surfaces, not surfaces created with the FEMAP Standard geome-
try engine. It uses the data stored in the database, not any changes made in the current object (until it is
Put to the database).
Example:
None
API-1988 Facets

5.52.2.38 Facets

Facets
( numFacets, xyzFacet )
Description:
This method returns the triangular facets used for display of solid surfaces.
Input:
None
Output:
INT4 numFacets The number of facets returned.
The coordinates of the corners of the facets. Each facet is a triangle,
REAL8 xyzFacet[0..9*numFac- and therefore has 9 coordinates. They are arranged in xyzFacet as
ets-1] [X1,Y1,Z1,X2,Y2,Z2,X3,Y3,Z3....] for the first facet, followed by
the second and so on.
Return Code:
FE_FAIL Wrong type of surface, or unable to retrieve facets.
Remarks/Usage:
This method will only work with solid faces that have facetting information. The surface information
must be in the database. Only the ID from the current object is used.
Example:
None
Nodes API-1989

5.52.2.39 Nodes

Nodes
( getBoundary, getInterior, numNodes, nodeID )
Description:
This method returns the nodes that are attached to this surface
Input:
If True, the nodes attached to the surface boundary (the curves and
BOOL getBoundary
points) are selected
If True, the nodes attached to the interior of the surface (not on the
BOOL getInterior
curves or points) are selected
Output:
INT4 numNodes The number of nodes returned.
INT4 nodeID[0..numNodes-1] The IDs of the selected nodes which are attached to the surface.
Return Code:
FE_FAIL Unable to return nodes, possibly none exist.
FE_NOT_EXIST No nodes were attached to the surface in the manner you selected.
FE_NO_MEMORY Insufficient memory to allocate list of attached nodes.
Remarks/Usage:
None
Example:
API-1990 Nodes

Nodes
( getBoundary, getInterior, numNodes, nodeID )
The following code modifies the color of all nodes on Surface 4.

Sub Main()
Dim App As femap.model
Set App = GetObject(,"femap.model")

Dim su As Surface
Set su = App.feSurface
Dim nd As Node
Set nd = App.feNode
Dim rc As Long
Dim Count As Long
Dim Nodes As Variant
Dim i As Long

surfID = 4

rc = su.Get (surfID)
rc = su.Nodes(True, True, Count, Nodes)
For i = 0 To Count - 1
nd.Get (Nodes(i))
nd.Color = 4
nd.Put (0)

Next i
App.feViewRegenerate(0)
End Sub
NodesAsSet API-1991

5.52.2.40 NodesAsSet

NodesAsSet
( getBoundary, getInterior, nSetID, bClear )
Description:
This method returns the nodes that are attached to this surface in a Set object
Input:
If True, the nodes attached to the surface boundary (the curves and
BOOL getBoundary
points) are selected
If True, the nodes attached to the interior of the surface (not on the
BOOL getInterior
curves or points) are selected
INT4 nSetID The ID of the Set Object that will contain the IDs of the Nodes
BOOL bClear If True, the Set is cleared prior to loading the Node IDs
Output:
None
Return Code:
FE_FAIL Unable to return nodes, possibly none exist.
FE_NOT_EXIST No nodes were attached to the surface in the manner you selected.
FE_NO_MEMORY Insufficient memory to allocate list of attached nodes.
Remarks/Usage:
None
Example:
None
API-1992 Elements

5.52.2.41 Elements

Elements
( numElems, elemID )
Description:
This method returns the elements that are attached to this surface
Input:
None
Output:
INT4 numElems The number of elements returned.
INT4 elemID[0..numElems-1] The IDs of the selected elements which are attached to the surface.
Return Code:
FE_FAIL Unable to return elements, possibly none exist.
FE_NOT_EXIST No elements were attached to the surface in the manner you selected.
FE_NO_MEMORY Insufficient memory to allocate list of attached elements.
Remarks/Usage:
Only elements that have all of their nodes on the surface will be returned by this method. Elements that
simply touch the surface at one edge or one node will not be returned. Similarly, solid elements with one
face on the surface will not be returned.
Example:
None
ElementsAsSet API-1993

5.52.2.42 ElementsAsSet

ElementsAsSet
( nSetID, bClear )
Description:
This method returns the elements that are attached to this surface in a Set object
Input:
INT4 nSetID The ID of the Set Object that will contain the IDs of the Elements
BOOL bClear If True, the Set is cleared prior to loading the Element IDs
Output:
None
Return Code:
FE_FAIL Unable to return elements, possibly none exist.
FE_NOT_EXIST No elements were attached to the surface in the manner you selected.
FE_NO_MEMORY Insufficient memory to allocate list of attached elements.
Remarks/Usage:
Only elements that have all of their nodes on the surface will be returned by this method. Elements that
simply touch the surface at one edge or one node will not be returned. Similarly, solid elements with one
face on the surface will not be returned.
Example:
None
API-1994 ElementsWithFaces

5.52.2.43 ElementsWithFaces

ElementsWithFaces
( numElems, elemID )
Description:
This method returns the elements that have faces which are attached to this surface
Input:
None
Output:
INT4 numElems The number of elements returned.
The IDs of the selected elements which have faces that are attached
INT4 elemID[0..numElems-1]
to the surface.
Return Code:
FE_FAIL Unable to return elements, possibly none exist.
FE_NOT_EXIST No elements were attached to the surface in the manner you selected.
FE_NO_MEMORY Insufficient memory to allocate list of attached elements.
Remarks/Usage:
Only elements that have faces on the surface will be returned by this method. Solid elements with one
face on the surface will be returned, as will planar elements meshed on the surface. Other elements that
simply touch the surface at a corner, or solid elements touching just along an edge will not be returned.
Example:
None
ElementFaces API-1995

5.52.2.44 ElementFaces

ElementFaces
( getPlaneElem, getSolidElem, requireElemAttach, numFaces, elemID, faceID )
Description:
This method returns the element faces that are attached to this surface
Input:
BOOL getPlaneElem If True, planar elements with faces on the surface will be returned.
BOOL getSolidElem If True, solid elements with faces on the surface will be returned.
If True, planar elements must actually have been meshed on the sur-
BOOL requireElemAttach
face, not just have all of its nodes on the surface.
Output:
INT4 numFaces The number of elements and faces returned.
The IDs of the selected elements which have faces that are attached
INT4 elemID[0..numFaces-1]
to the surface.
INT4 faceID[0..numFaces-1] The IDs of the faces of the elements which are on the surface.
Return Code:
FE_FAIL Unable to return element faces, possibly none exist.
FE_NOT_EXIST No faces were attached to the surface in the manner you selected.
FE_NO_MEMORY Insufficient memory to allocate lists of attached elements/faces.
Remarks/Usage:
The elemID and faceID arrays are stored in corresponding order . . . elemID[i] and faceID[i] together
represent the element face that is actually attached to the surface.
Example:
None
API-1996 BoundingBox

5.52.2.45 BoundingBox

BoundingBox
( Box )
Description:
This method returns the coordinates of a rectangular box the encloses this geometry.
Input:
None
Output:
The dimensions of the bounding box, in Global Rectangular coordi-
nates.
INT4 Box[0..5] Box[0] - Minimum X, Box[3] - Maximum X
Box[1] - Minimum Y, Box[4] - Maximum Y
Box[2] - Minimum Z, Box[5] - Maximum Z
Return Code:
FE_FAIL Unable to find a bounding box.
Object does not contain valid geometry. This method only works for
FE_INVALID
Parasolid-based geometry.
Remarks/Usage:
This method always retrieves a box that is aligned with Global Rectangular coordinates, not an aligned
box of minimum volume.
Example:
None
BoundingSize API-1997

5.52.2.46 BoundingSize

BoundingSize
( pvDim, pvLongDir, pvNormalDir )
Description:
This method finds the sizes of the smallest box that encloses the surface and the direction of the longest
side and the shortest side
Input:
None
Output:
VARIANT pvDim[0..2] The dimensions of the bounding box
VARIANT pvLongDir[0..2] The direction along the longest side
The direction along the shortest side of the box (normal to a planar
VARIANT pvNormalDir[0..2]
surface)
Return Code:
Unable to compute the size. Possibly wrong surface type, ID is not
FE_FAIL
set, or data is not stored in database.
Invalid surface type, this method only works with Solid and Com-
FE_INVALID
bined surfaces.
Remarks/Usage:
This method will only work for solid surfaces. Furthermore, the surface must be Put to the model. The
data in the current object is not used.
Example:
None
API-1998 NormalBox

5.52.2.47 NormalBox

NormalBox
( box )
Description:
This method finds a bounding box around the unit normals
Input:
None
Output:
The values of the normal bounding box, in Global Rectangular coor-
dinates.
REAL8 box[0..5] Box[0] - Minimum dX, Box[3] - Maximum dX
Box[1] - Minimum dY, Box[4] - Maximum dY
Box[2] - Minimum dZ, Box[5] - Maximum dZ
Return Code:
Unable to compute the normals. Possibly wrong surface type, ID is
FE_FAIL
not set, or data is not stored in database.
Remarks/Usage:
This method will work for any surface.
Example:
None
MaxNormalDeviation API-1999

5.52.2.48 MaxNormalDeviation

MaxNormalDeviation
( dLimit, dAngle )
Description:
This method the maximum angle between the normal vectors on this surface
Input:
A maximum angle that is acceptable. Normally set this to 0.0 - which
means to return any angle variation. If you set this to some other pos-
REAL8 dLimit
itive number, then the method will fail if the angle is greater than the
specified value.
Output:
REAL8 dAngle The maximum angle between normal vectors
Return Code:
FE_FAIL The maximum angle exceeded the limit you set. (dAngle is invalid)
FE_NOT_AVAILABLE Surface facetting information is not available to compute the normals
FE_NO_MEMORY Not enough memory to load all of the surface facets.
Remarks/Usage:
This is an approximate method. It uses the normals at the corners of facets, therefore you are not guaran-
teed that the maximum deviation will not be slightly larger than the value computed.
Example:
None
API-2000 AngleAtPoint

5.52.2.49 AngleAtPoint

AngleAtPoint
( nPtID, dAngle, vBisector, vNormal )
Description:
This method retrieves the internal angle, the surface normal vector, and a surface tangent vector that
bisects the angle at a point on a surface boundary
Input:
INT4 nPtID The ID of the point to check
Output:
The angle, in the surface, formed by the edges meeting at the
REAL8 dAngle
selected point
REAL8 vBisector[0..2] The surface tangent vector that bisects the angle
REAL8 vNormal[0..2] The surface normal at the point
Return Code:
FE_FAIL Unable to determine the requested information.
FE_NOT_AVAILABLE The selected point was not found
FE_NO_MEMORY Not enough memory to load all of the surface facets.
Remarks/Usage:
None
Example:
None
HasPole API-2001

5.52.2.50 HasPole

HasPole
( void )
Description:
This method indicates whether a surface contains a pole.
Input:
None
Output:
None
Return Code:
FE_FAIL Surface does not contain a pole, or could not evaluate the surface.
FE_BAD_TYPE Surface is not a Parasolid surface
FE_NOT_AVAILABLE Surface object has not been loaded with valid data from the database
Remarks/Usage:

Example:
None
API-2002 MinRadiiOfCurvature

5.52.2.51 MinRadiiOfCurvature

MinRadiiOfCurvature
( pdConcaveRadius, pdConvexRadius, pbIsPlanar )
Description:
This method returns the minimum concave and convex radii of curvature of a surface
Input:
None
Output:
REAL8 pdConcaveRadius The minimum radius of curvature on the concave side of the surface
REAL8 pdConvexRadius The maximum radius of curvature on the concave side of the surface
BOOL pbIsPlanar True if the surface is plaanr
Return Code:
None
Remarks/Usage:
Use this method to reset all parameters, then adjust individual properties to suit your needs.
Example:
None
RationalParamToXYZ API-2003

5.52.2.52 RationalParamToXYZ

RationalParamToXYZ
( u, v, XYZ )
Description:
This method converts a parametric location (u,v) to a coordinate location (xyz) using rational uv space.
Input:
REAL8 u The rational parametric coordinates of the location being specified.
REAL8 v Parametric coordinates are between 0 and 1

Output:
REAL8 XYZ[0..2] The coordinates of the location in global rectangular.
Return Code:
FE_FAIL Unable to compute the location.
Remarks/Usage:

Example:
None
API-2004 ResetMeshAttr

5.52.2.53 ResetMeshAttr

ResetMeshAttr
()
Description:
This method resets the mesh attribute parameters to default values.
Input:
None
Output:
None
Return Code:
None
Remarks/Usage:
Use this method to reset all parameters, then adjust individual properties to suit your needs.
Example:
None
Mesh API-2005

5.52.2.54 Mesh

Mesh
( propID, elemShape, bAllowMapped )
Description:
This method meshes the surface using the current meshing attributes and the values specified.
Input:
Specifies the ID of the property to use for elements as they are cre-
ated. If you want to use predefined meshing attributes, set propID=0.
INT4 propID In this case, all selected surfaces must have meshing attributes
defined or they will not be meshed. The propID property must be
compatible with surface meshing.
The shape of the elements to mesh. Must be 2=Tria3, 3=Tria6,
INT4 elemShape 4=Quad4, 5=Quad8 or set to 0 to use the shape that is predefined on
the meshing attributes.
If True, mapped meshing of the surfaces is allowed, otherwise it is
BOOL bAllowMapped
not. This argument is ignored if elemShape=0
Output:
None
Return Code:
FE_FAIL Could not mesh surfaces.
FE_INVALID The value specified for elemShape is invalid
FE_NOT_EXIST The property specified does not exist.
FE_NOT_AVAILABLE No surface has been loaded in the current object.
Remarks/Usage:
This method simply calls the application method feMeshSurface2( ) with the ID of the current surface
and without resetting meshing attributes. If you have made changes to the meshing attributes in the cur-
rent surface object, you must call Put() prior to calling this method or those changes will not be used.
Example:
API-2006 Mesh

Mesh
( propID, elemShape, bAllowMapped )
This example meshes Surface 2 with Parabolic Quad elements that are offset by 0.1
Sub Main
Dim App As femap.model
Set App = feFemap()
Dim s As femap.Surface
Set s = App.feSurface

s.Get(2)
s.ResetMeshAttr()
s.attrOffset = 0.1
s.attrOffsetFrom = FMOF_TOP
s.Put(2)
s.Mesh(1,FTO_QUAD8,True)
End Sub
CurvesAtPoint API-2007

5.52.2.55 CurvesAtPoint

CurvesAtPoint
( nPtID, PrevCurveID, NextCurveID )
Description:
This method retrieves the curve before and after a specified point on a surface boundary
Input:
INT4 nPtID The ID of the point to check
Output:
The angle, in the surface, formed by the edges meeting at the
INT4 PrevCurveID
selected point
INT4 NextCurveID The surface tangent vector that bisects the angle
Return Code:
FE_FAIL Point was not associated to surface currently loaded in object
FE_NOT_AVAILABLE The selected point was not found
Remarks/Usage:
None
Example:
None
API-2008 CommonCurvesAsSet

5.52.2.56 CommonCurvesAsSet

CommonCurvesAsSet
( nCombinedMode, nOtherCurveID, nSetID, bClear )
Description:
This method adds all curves which are common between the surface currently in the Surface object and
another specified surface to a specified Set object. There are options to clear the set before adding the
common curves and whether or not regular curves, combined curves, or both types should be added to
the Set object.
Input:
When finding common curves, this method limits which curves on
the surfaces will be considered.

INT4 nCombinedMode 0=Uses the basic curves that are on the surface (FCC_OFF), 1=Any
basic curves that are on the surface that are in a Combined Curve are
replaced by the ID of the Combined Curve (FCC_ON), 2=Uses both
the underlying and combined curves (FCC_BOTH).
INT4 nOtherSurfaceID ID of other surface used to determine if there are any common curves
INT4 nSetID ID of set to add common curves
If True, the Set object will be cleared before the common curves are
BOOL bClear added. If False, the common curves are simply added to the specified
Set object.
Output:
None
Return Code:
FE_FAIL No common curves were found between the surfaces
Remarks/Usage:
None
Example:
None
FindMappedMeshingCorners API-2009

5.52.2.57 FindMappedMeshingCorners

FindMappedMeshingCorners
( nNumDesired, nNumFound, nCornerList)
Description:
This method returns a list of corner points for used to specify a mapped meshing approach.
Input:
Number of corners to attempt to locate. Should be set to 0 (Auto-
INT4 nNumDesired
matic), 3, or 4.
Output:
Number of corners found which may be used to set a mapped mesh-
INT4 nNumFound
ing approach
INT4 nCornerList [0..Num- The IDs of the appropriate corner points, in order, to properly set up
Found-1] a mapped meshing approach.
Return Code:
None
Remarks/Usage:
None
Example:
None
API-2010 IsSuppressed

5.52.2.58 IsSuppressed

IsSuppressed
( void )
Description:
Indicates whether or not the surface is suppressed
Input:
None
Output:
None
Return Code:
FE_OK Surface is suppressed
FE_FAIL Surface is not suppressed
Remarks/Usage:
None
Example:
None
Curvature API-2011

5.52.2.59 Curvature

Curvature
( vXYZ, pdRadius1, vCurveDir1, pdRadius2, vCurveDir2, vNormDir )
Description:
Returns curvature of surface in 2 directions based on specified coordinates
Input:
REAL8 XYZ[0..2] The coordinates of specified location in global rectangular.
Output:
REAL pdRadius1 Radius of curvature in Direction 1
REAL8 vCurveDir1[0..2] The vector in the direction of Direction 1.
REAL pdRadius2 Radius of curvature in Direction 2
REAL8 vCurveDir1[0..2] The vector in the direction of Direction 2.
REAL8 XYZ[0..2] The vector in the direction of the surface normal.
Return Code:
FE_BAD_TYPE Surface type is not supported for this method
FE_FAIL
Remarks/Usage:
None
Example:
None
API-2012 IsMappedApproach

5.52.2.60 IsMappedApproach

IsMappedApproach
( void )
Description:
Indicates whether or not the surface has a mapped meshing approach assigned
Input:
None
Output:
None
Return Code:
FE_OK Surface has mapped meshing approach assigned
FE_FAIL Surface does not have mapped meshing approach assigned
Remarks/Usage:
None
Example:
None
IsMappable API-2013

5.52.2.61 IsMappable

IsMappable
( bForceBlands, dMaxBlendRadius, dMergeAngle, pnNumEdges, pnCornerPoints,
pdEdgeLength, pnNumEdgeCurves, pnEdgeCurves )
Description:
This function attempts to determine if a surface is appropriate for mapped meshing. If so, it provides
corners and edges which will be used to apply a mapped mesh.
Input:
If True, the command will see if a forced mapped mesh would be
possible for a blend (fillet) with a radius smaller than the dMaxBlen-
BOOL bForceBlends
dRadius value. If False, only a blend surface which fits other criteria
for mapped meshing will return FE_OK.
REAL8 dMaxBlendRadius Maximum Radius of Blend to consider for forced mapped meshing
Maximum Angle allowed between two curves for the curves to be
REAL8 dMergeAngle
considered one edge for mapped meshing purposes.
Output:
INT4 pnNumEdges Number of mapped edges, usually 4
INT4 pnCornerPoints [0..pnNu- Point IDs of the mapped corners, in order, starting with the end point
mEdges - 1] of the first edge.
REAL8 pdEdgeLength
Total length of each mapped edge
[0..pnNumEdges -1]
Total number of curves on surface +1 to allow for 0 indicating last
INT4 pnNumEdgeCurves
curve of last edge
IDs of the curves making up the edges. +ID indicates more curves
INT4 pnEdgeCurves [0..pnNu-
exist for current edge. -ID indicates last curve on an edge. 0 is
mEdgeCurves-1]
returned after last curve of last edge
Return Code:
FE_BAD_TYPE Surface type is not supported for this method
FE_FAIL By default, surface is not appropriate for a mapped mesh.
Remarks/Usage:
If a surface has a mapped meshing approach defined, this command will always return FE_OK for the
surface.
Example:
None
API-2014 AddMeshPoint

5.52.2.62 AddMeshPoint

AddMeshPoint
( nPointID )
Description:
Adds a mesh point to a surface using the ID of the point
Input:
INT4 AddMeshPoint ID of point to add as a mesh point on surface.
Output:
None
Return Code:
Max number of available mesh points for the surface has been
FE_INVALID
exceeded
FE_FAIL Point does not exist
Remarks/Usage:
None
Example:
None
CountMeshPoint API-2015

5.52.2.63 CountMeshPoint

CountMeshPoint
( void )
Description:
Returns the number of mesh points currently specified on a surface
Input:
None
Output:
None
Return Code:
count The number of mesh points specified on a surface
Remarks/Usage:
None
Example:
None
API-2016 IsMultiLoop

5.52.2.64 IsMultiLoop

IsMultiLoop
( void )
Description:
Indicates if a surface has any interior loops (For example, interior holes, slots, etc.)
Input:
None
Output:
None
Return Code:
FE_OK Surface has interior loops
FE_FAIL Surface does not have interior loops
FE_INVALID Number of loops cannot be properly calculated
Remarks/Usage:
None
Example:
None
PointLoops API-2017

5.52.2.65 PointLoops

PointLoops
( nCombinedMode, numLoops, numPoints, PointID)
Description:
This method returns the number of loops on a surface along with the IDs of the points used for each
loop.
Input:
When finding loops, this method limits which curves on the surfaces
will be considered.

INT4 nCombinedMode 0=Uses the basic curves that are on the surface (FCC_OFF), 1=Any
basic curves that are on the surface that are in a Combined Curve are
replaced by the ID of the Combined Curve (FCC_ON), 2=Uses both
the underlying and combined curves (FCC_BOTH).
Output:
INT4 numLoops Total number of surface loops
INT4 numPoints Total number of points used by the loops + numLoops
IDs of the points making up each loop. 0 is returned after the last
VARIANT PointID
point of each loop as a separator
Return Code:
None
Remarks/Usage:
None
Example:
None
API-2018

5.53 Text Objects


Text objects correspond to the text entities in your model. They are derived from Entity objects, so
in addition to the properties and methods described here, all of the properties and methods defined
for Entity objects are also available for text. For more information, see Section 5.1, "Common
Entity Properties and Methods".
Use the feText method of the FEMAP Application object to create Text objects.

5.53.1 Text Object Properties


Text entities are always stored with a SetID=1, and the ID equal to the Text ID.
In this table, you will see some properties that list two names - one of which is an array, the other a
Variant. Refer to Section 1.2.7, "Multiple Definitions of Array Properties" for more information.

Property Description
BOOL ModelPosition Method for positioning text (True=Model, False=Screen)
BOOL AllViews Indicates if the text is visible in all Views - if False, only visible
in VisibleView
BOOL DrawPointer If True, a pointer is drawn in addition to the text
BOOL DrawBorder If True, a border is drawn around the text
INT4 VisibleView The ID of a view where the text is visible. Only used if All-
Views=False
INT4 layer The layer associated with the text.
INT4 color The color of the text
INT4 BorderColor The color of the border drawn around the text. Only used if
DrawBorder=True
INT4 BackColor The background color of the text. Only used if the DrawBor-
der=True
The coordinates of the text. If ModelPosition=True, these are
REAL8 TextPosition[0..2]
model coordinates in the Global Rectangular CSys. If Model-
or
Position=False, these are specified as a percent of the view
VARIANT vTextPosition
location and TextPosition[2] is not used.
REAL8 PointerPosition[0..2] The location of the tip of the pointer, specified in the same man-
or ner as TextPosition. Only used if DrawPointer=True.
VARIANT vPointerPosition
INT4 HorzJustify The horizontal justification method
INT4 VertJustify The vertical justification method
INT4 FontNumber The ID of the font for the text
STRING text The actual text string (limited to 256 characters). Contains car-
riage return and line-feed characters between lines of text.
API-2019
API-2020

5.53.2 Text Object Methods


There are no Text object-specific methods. Only the standard entity methods are available.
API-2021

5.54 TMGBC Objects


TMGBC objects correspond to the TMG-defined boundary condition data in your model. They are
derived from Entity objects, so in addition to the properties and methods described here, all of the
properties and methods defined for Entity objects are also available for TmbBC Objects. For more
information, see Section 5.1, "Common Entity Properties and Methods".
Use the feTMGBC method of the FEMAP Application object to create TMGBC objects.

5.54.1 TMGBC Object Properties


In this table, you will see some properties that list two names - one of which is an array, the other a
Variant. Refer to Section 1.2.7, "Multiple Definitions of Array Properties" for more information.

Property Description
INT4 i[0..119]
or Integer array.
VARIANT vi
REAL8 r[0..73]
or Real array.
VARIANT vr
INT4 c[0..242]
Character array, each entry is returned and accessed via an
or
INT4.
VARIANT vc
API-2022 GetAll

5.54.2 TMGBC Object Methods


5.54.2.1 GetAll

GetAll
( entID, i, r, c )
Description:
This method retrieves an entity with the specified ID.
Input:
INT4 entID ID of the entity to retrieve.
Output:
INT4 i
Refer to the property descriptions for each of these items. c is
REAL8 r
returned in an integer array, even though it contains only char values.
INT4 c
Return Code:
FE_FAIL The specified entity does not exist.
Remarks/Usage:

Example:
None
PutAll API-2023

5.54.2.2 PutAll

PutAll
( entID, i, r, c )
Description:
This method stores an entity with the specified ID.
Input:
INT4 entID The ID of the entity to store.
INT4 i
Refer to the property descriptions for each of these items. c is loaded
REAL8 r
in an integer array, even though it contains only char values.
INT4 c
Output:
None
Return Code:
FE_FAIL Unable to store the entity with the specified ID.
Remarks/Usage:

Example:
None
API-2024

5.55 TMGCtrl Objects


TMGCtrl objects correspond to the TMG-defined control data in your model. They are derived
from Entity objects, so in addition to the properties and methods described here, all of the proper-
ties and methods defined for Entity objects are also available for TMGCtrl objects. For more infor-
mation, see Section 5.1, "Common Entity Properties and Methods".
Use the feTMGCtrl method of the FEMAP Application object to create TMGCtrl objects.

5.55.1 TMGCtrl Object Properties


In this table, you will see some properties that list two names - one of which is an array, the other a
Variant. Refer to Section 1.2.7, "Multiple Definitions of Array Properties" for more information.

Property Description
INT4 i[0..53]
or Integer array.
VARIANT vi
REAL8 r[0..19]
or Real array.
VARIANT vr
BOOL b[0..121]
or Boolean array.
VARIANT vb
INT4 c[0..485]
Character array, each entry is returned and accessed via an
or
INT4.
VARIANT vc
GetAll API-2025

5.55.2 TMGCtrl Object Methods


5.55.2.1 GetAll

GetAll
( entID, i, r, b, c )
Description:
This method retrieves an entity with the specified ID.
Input:
INT4 entID ID of the entity to retrieve.
Output:
INT4 i
REAL8 r Refer to the property descriptions for each of these items. c is
BOOLEAN b returned in an integer array, even though it contains only char values.

INT4 c
Return Code:
FE_FAIL The specified entity does not exist.
Remarks/Usage:

Example:
None
API-2026 PutAll

5.55.2.2 PutAll

PutAll
( entID, i, r, b, c )
Description:
This method stores an entity with the specified ID.
Input:
INT4 entID The ID of the entity to store.
INT4 i
REAL8 r Refer to the property descriptions for each of these items. c is loaded
BOOLEAN b in an integer array, even though it contains only char values.

INT4 c
Output:
None
Return Code:
FE_FAIL Unable to store the entity with the specified ID.
Remarks/Usage:

Example:
None
API-2027

5.56 TMGInt Objects


TMGInt objects correspond to the TMG-defined integer data in your model. They are derived
from Entity objects, so in addition to the properties and methods described here, all of the proper-
ties and methods defined for Entity objects are also available for TmbInt objects. For more infor-
mation, see Section 5.1, "Common Entity Properties and Methods".
Use the feTMGInt method of the FEMAP Application object to create TMGInt Objects.

5.56.1 TMGInt Object Properties


In this table, you will see some properties that list two names - one of which is an array, the other a
Variant. Refer to Section 1.2.7, "Multiple Definitions of Array Properties" for more information.

Property Description
INT4 i[0..49]
or Integer array.
VARIANT vi
API-2028 GetAll

5.56.2 TMGInt Object Methods


5.56.2.1 GetAll

GetAll
( entID, i )
Description:
This method retrieves an entity with the specified ID.
Input:
INT4 entID ID of the entity to retrieve.
Output:
INT4 i Refer to the property descriptions for each of these items.
Return Code:
FE_FAIL The specified entity does not exist.
Remarks/Usage:

Example:
None
PutAll API-2029

5.56.2.2 PutAll

PutAll
( entID, i )
Description:
This method stores an entity with the specified ID.
Input:
INT4 entID The ID of the entity to store.
Refer to the property descriptions for each of these items. c is loaded
INT4 i
in an integer array, even though it contains only char values.
Output:
None
Return Code:
FE_FAIL Unable to store the entity with the specified ID.
Remarks/Usage:

Example:
None
API-2030

5.57 TMGOpt Objects


TMGOpt objects correspond to the TMG-defined option data in your model. They are derived
from Entity objects, so in addition to the properties and methods described here, all of the proper-
ties and methods defined for Entity objects are also available for TMGOpt objects. For more infor-
mation, see Section 5.1, "Common Entity Properties and Methods".
Use the feTMGOpt method of the FEMAP Application object to create TMGOpt objects.

5.57.1 TMGOpt Object Properties


In this table, you will see some properties that list two names - one of which is an array, the other a
Variant. Refer to Section 1.2.7, "Multiple Definitions of Array Properties" for more information.

Property Description
INT4 i[0..16]
or Integer array.
VARIANT vi
REAL8 r[0..1]
or Real array.
VARIANT vr
INT4 c[0..84]
Character array, each entry is returned and accessed via an
or
INT4.
VARIANT vc
GetAll API-2031

5.57.2 TMGOpt Object Methods


5.57.2.1 GetAll

GetAll
( entID, i, r, c )
Description:
This method retrieves an entity with the specified ID.
Input:
INT4 entID ID of the entity to retrieve.
Output:
INT4 i
Refer to the property descriptions for each of these items. c is
REAL8 r
returned in an integer array, even though it contains only char values.
INT4 c
Return Code:
FE_FAIL The specified entity does not exist.
Remarks/Usage:

Example:
None
API-2032 PutAll

5.57.2.2 PutAll

PutAll
( entID, i, r, c )
Description:
This method stores an entity with the specified ID.
Input:
INT4 entID The ID of the entity to store.
INT4 i
Refer to the property descriptions for each of these items. c is loaded
REAL8 r
in an integer array, even though it contains only char values.
INT4 c
Output:
None
Return Code:
FE_FAIL Unable to store the entity with the specified ID.
Remarks/Usage:

Example:
None
API-2033

5.58 TMGReal Objects


TMGReal objects correspond to the TMG-defined real data in your model. They are derived from
Entity objects, so in addition to the properties and methods described here, all of the properties and
methods defined for Entity objects are also available for TMGReal objects. For more information,
see Section 5.1, "Common Entity Properties and Methods".
Use the feTMGReal method of the FEMAP Application object to create TMGReal objects.

5.58.1 TMGReal Object Properties


In this table, you will see some properties that list two names - one of which is an array, the other a
Variant. Refer to Section 1.2.7, "Multiple Definitions of Array Properties" for more information.

Property Description
INT4 i[0..11]
or Integer array.
VARIANT vi
REAL8 r[0..55]
or Real array.
VARIANT vr
API-2034 GetAll

5.58.2 TMGReal Object Methods


5.58.2.1 GetAll

GetAll
( entID, i, r )
Description:
This method retrieves an entity with the specified ID.
Input:
INT4 entID ID of the entity to retrieve.
Output:
INT4 i
Refer to the property descriptions for each of these items.
REAL8 r
Return Code:
FE_FAIL The specified entity does not exist.
Remarks/Usage:

Example:
None
PutAll API-2035

5.58.2.2 PutAll

PutAll
( entID, i, r )
Description:
This method stores an entity with the specified ID.
Input:
INT4 entID The ID of the entity to store.
INT4 i
Refer to the property descriptions for each of these items.
REAL8 r
Output:
None
Return Code:
FE_FAIL Unable to store the entity with the specified ID.
Remarks/Usage:

Example:
None
API-2036

5.59 Variable Objects


Variable objects correspond to the variables in your model. They are derived from Entity objects,
so in addition to the properties and methods described here, all of the properties and methods
defined for Entity objects are also available for Variable objects. For more information, see Section
5.1, "Common Entity Properties and Methods".
Use the feVar method of the FEMAP Application object to create Variable objects.

5.59.1 Variable Object Properties


Variables are always stored with a SetID=1, and the ID equal to an encoded value that is derived
from the variable name. You can use the GetVarID method described below to find the ID.
If you use the properties to define a variable, it is your responsibility to update all of them in a
compatible fashion. You cannot simply specify one or two of them and leave the rest blank. In
addition, VarName must be defined to match the ID that you pass to Put. It is often easier to use
the Define method below to create variables, and simply use the properties to retrieve their values.

Property Description
REAL8 Value The stored value of the variable.
STRING VarName The name of the variable. Maximum 20 characters.
STRING Equation The defining equation of the variable. Maximum 160 charac-
ters.
GetVarID API-2037

5.59.2 Variable Object Methods


5.59.2.1 GetVarID

GetVarID
( varname )
Description:
This method retrieves the encoded ID that is associated with a specified variable name.
Input:
STRING varname The name of the variable to compute the associated ID.
Output:
None
Return Code:
INT4 ID The ID associated with the name.
Remarks/Usage:
You do not need to have a variable with the specified name to use this function.
Example:
None
API-2038 Evaluate

5.59.2.2 Evaluate

Evaluate
( void )
Description:
This method evaluates the equation stored in the current Equation property. The result is returned, and
used to update the Value property.
Input:
None
Output:
None
Return Values:
REAL8 value The value of the equation property. Also stored in Value.
Remarks/Usage:
None
Example:
None
Define API-2039

5.59.2.3 Define

Define
( varname, equation )
Description:
This method evaluates the equation stored in the current Equation property. The result is returned, and
used to update the Value property.
Input:
STRING varname The variable name to create or update. Maximum 20 characters.
STRING equation The equation used to define the variable. Maximum 160 characters.
Output:
None
Return Code:
None
Remarks/Usage:
This method automatically computes the value and sets all properties for the variable. In addition, the
variable is Put to the database so it is permanently retained.
Example:
None
API-2040 DefineReal

5.59.2.4 DefineReal

DefineReal
( varname, value )
Description:
This method defines a variable and its associated real number.
Input:
STRING varname The variable name to create or update. Maximum 20 characters.
REAL8 value The value to assigned to the variable.
Output:
None
Return Code:
None
Remarks/Usage:
None
Example:
None
API-2041

5.60 View Objects


View objects correspond to the views in your model. They are derived from Entity objects, so in
addition to the properties and methods described here, all of the properties and methods defined
for Entity objects are also available for View objects. For more information, see Section 5.1,
"Common Entity Properties and Methods".
Use the feView method of the FEMAP Application object to create View objects.

5.60.1 View Object Properties


Views are always stored with a SetID=1, and the ID equal to the view ID.
In this table, you will see some properties that list two names - one of which is an array, the other a
Variant. Refer to Section 1.2.7, "Multiple Definitions of Array Properties" for more information.

Property Description
STRING title View title (maximum 79 characters).
Drawing style: 0=Draw, 1=Feature, 2=Quick Hide, 3=Hide,
INT4 Mode 4=Free Edge, 5=Free Face, 6=XYvsID, 7=XYvsSET,
8=XYvsVALUE, 9=XYvsPOSITION, 10=XY of Function.
Deformed style: 0=Off, 1=Deformed, 2=Animate, 3=Ani-
INT4 Deformed
mate Multi-Case, 4=Arrow.
Contour style: 0=Off, 1=Contour, 2=Criteria, 3=Beam Dia-
INT4 Contour
gram, 4=IsoSurface, 5=Section Cut, 6=Contour Vector.
BOOL UndefAnimation True if undeformed animation.
INT4 BC Constraint SetID, or -1 for active.
INT4 Load Load SetID, or -1 for active.
Group SetID, -1 for active group, -2 for multiple groups, 0
INT4 Group
for all groups.
ID of Group containing Elements to be used for various con-
INT4 ContourGroup
tour style displays. -1 for active.
INT4 OutputSet Output Set ID for post.
INT4 FinalOutputSet Final Output Set ID for multi-case animation.
INT4 OutputSetInc Output Set increment for multi-case animation.
INT4 DeformData Output Vector ID for deformation.
INT4 ContourData Output Vector ID for contour.
First Output Vector ID in Select Multiple Contour Vectors
INT4 ContourVector1
dialog box (Same as ContourData).
Second Output Vector ID in Select Multiple Contour Vectors
INT4 ContourVector2
dialog box.
API-2042

Property Description
Third Output Vector ID in Select Multiple Contour Vectors
INT4 ContourVector3
dialog box.
INT4 XYOutputSet[0..8]
or Output Set IDs for each curve.
VARIANT vXYOutputSet
INT4 XYSetRange[0..1]
or Output Set IDs for all XY curves.
VARIANT vXYSetRange
INT4 XYOutputData[0..8]
or Output Vector IDs for XY curves.
VARIANT vXYOutputData
INT4 XYOutputEntity[0..8]
or Entity ID (node or element) for each XY curve.
VARIANT vXYOutputEntity
INT4 Function[0..8]
or Function IDs for XY plot curves.
VARIANT vFunction
REAL8 Rotation[0..2]
or Rotation angles
VARIANT vRotation
REAL8 PrevRotation[0..2]
or Previous rotation angles
VARIANT vPrevRotation
REAL8 Center[0..2]
or Location of view center.
VARIANT vCenter
REAL8 Magnification Magnification factor (1=AutoScale).
REAL8 Aspect View aspect ratio.
BOOL RotationCenterOn Flag to use rotation center for dynamic rotation.
REAL8 RotationCenter[0..2]
or Center of rotation for dynamic rotation.
VARIANT vRotationCenter
REAL8 RotationVector[0..2]
or Axis of rotation for dynamic rotation.
VARIANT vRotationVector
REAL8 PrevCenter[0..2]
or Previous center location.
VARIANT vPrevCenter
API-2043

Property Description
REAL8 PrevMagnification Previous magnification factor.
BOOL ShowAllLayers Flag to display all layers.
BOOL WindowTitleBar Flag to indicate title bar is on.
INT4 WindowBorder Border mode.
BOOL WindowEraseBack True if background should be erased.
INT4 WindowBackColor Background Color ID.
True if background should be shaded using second back-
BOOL WindowShadeBack
ground color.
0=Vertical, 1=Horizontal, 2=Diagonal Up, 3=Diagonal
INT4 WindowShadeBackOpt Down, 4=Square Spot, 5=Circular Spot, 6=Horizon, 7=Bit-
map, 8=Stretched Bitmap
Second Background Color ID - only used in render with
INT4 WindowBackColor2
WindowShadeBack=True.
Third Background Color ID - only used in render with Win-
INT4 WindowBackColor3
dowShadeBack=True and WindowShadeBackOpt=6
The location of the background horizon in percent of screen
INT4 WindowShadeHorizon
height.
If True, and a logo bitmap is defined, it will be shown in this
BOOL WindowLogo
view
REAL8 LogoLocation[0..2]
The location of the logo bitmap if it is shown in the view. In
or
percent of screen.
VARIANT vLogoLocation
REAL8 PrevWindowLeft
REAL8 PrevWindowTop
REAL8 PrevWindowRight
REAL8 PrevWindowBottom
Previous sizing of XY plot in window.
REAL8 PrevWindowXmin
REAL8 PrevWindowXmax
REAL8 PrevWindowYmin
REAL8 PrevWindowYmax
BOOL Draw[0..114]
or View Option Draw flags.
VARIANT vDraw
API-2044

Property Description
INT4 Label[0..114]
or View Option Labelling.
VARIANT vLabel
INT4 ColorMode[0..114]
or View Option Color Modes.
VARIANT vColorMode
INT4 Color[0..114]
or View Option View Color.
VARIANT vColor
REAL8 PerspectiveDist Perspective distance.
REAL8 InterOccularDist Perspective separation.
REAL8 SpotlightDist Spotlight distance.
REAL8 SpotlightDir[0..2]
or
VARIANT vSpotlightDir
REAL8 ShrinkFactor Element shrink factor.
REAL8 CurveError Obsolete - use Global Info_FacetXXX properties
REAL8 AmbientLight Ambient light value.
REAL8 Light[0..2]
or Location of light source.
VARIANT vLight
REAL8 AxisLocation[0..1]
or Location of screen axes.
VARIANT vAxisLocation
REAL8 ArrowsToLabel Percent of post arrows to label.
INT4 SurfaceDivisions Obsolete - use surface facetting
REAL8 LoadVecLength Length of load vectors.
REAL8 OtherVecLength Length of other vectors
REAL8 LoadVectorMinScale Load vector minimum scale factor.
Controls edge offset of filled entities such as surfaces and
REAL8 RenderPushForward
elements at an angle to the screen (25 to 150)
Controls edge offset of filled entities such as surfaces and
REAL8 RenderPushUnit
elements perpendicular to normal (25 to 150)
Controls the screen normal offset of the undeformed model
REAL8 RenderPushUndeformed
with respect to the deformed model (-100 to 100)
API-2045

Property Description
Controls the screen normal offset of labels. The value is a
INT4 RenderPushLabel
multiple of the font height (0-10)
REAL8 DeformedRelScale Deformed relative scale factor.
REAL8 DeformedAbsScale Deformed absolute scale factor.
INT4 AnimationFrames Number of animation frames.
INT4 AnimationDelay Animation delay factor.
INT4 UserContourLevel[0..11]
or Use User Defined contours.
VARIANT vUserContourLevel
REAL8 UserContourValue[0..11]
or Contour level value.
VARIANT vUserContourValue
INT4 UserContourCount Number of user defined levels.
INT4 ContourLabelFreq Contour labelling frequenc.y
INT4 ContourLegendFreq Contour legend labelling frequency.
INT4 ContourLabelDigits Number of digits on contour labels.
INT4 ContourLegendDigits Number of digits on contour legend.
INT4 ContourColor[0..5]
or Contour Base Colors
VARIANT vContourColor
REAL8 CriteriaMax Upper criteria limit.
REAL8 CriteriaMin Lower criteria limit.
BOOL ContourElemUnaveraged Show unaveraged element contours.
BOOL ContourElemBreakProp Dont average across properties.
BOOL ContourElemBreakMatl Dont average across materials.
BOOL ContourElemBreakLayer Dont average across layers.
BOOL ContourElemBreakColor Dont average across colors.
BOOL ContourElemBreakGeom Dont average across discontinuous geometry.
REAL8 ContourElemBreakAngle Geometry break angle.
Sets Data Selection option in Contour Options. 0 = Contour
INT4 ContourDataSelection
Group, 1 = Visible Group(s), 2 = All Data/Full Model
Sets Use Corner Data option in Contour Options. True = On,
BOOL ContourCornerData
False = Off.
API-2046

Property Description
Specifies Data Conversion option in Contour Options.
INT4 ContourDataConversion
0 = Average, 1 = Max Value, 2 = Min Value
REAL8 XYXmin
XY X axis range.
REAL8 XYXmax
REAL8 XYymin
XY Y aAxis range.
REAL8 XYymax
REAL8 XYScale[0..8]
or Scale factor for associated XY curve.
VARIANT vXYScale
STRING XYTitle
XY plot titles (maximum 79 characters).
STRING XYSubtitle
INT4 XYCSys CSys for XY vs Position.
INT4 XYDirection Direction for XY vs Position.
INT4 XYXTics Number of tics along X axis.
INT4 XYYTics Number of tics along Y axis.
The mode for section displays - True for Multiple Section
BOOL SectionPlaneMode
mode, false otherwise.
BOOL Section1On True if Section plane 1 is on in Multiple Section mode
BOOL Section2On True if Section plane 2 is on in Multiple Section mode
BOOL Section3On True if Section plane 3 is on in Multiple Section mode
REAL8 SectionBase[0..2]
or Origin for first cut plane.
VARIANT vSectionBase
REAL8 SectionNormal[0..2]
or Vector normal for first cut plane.
VARIANT vSectionNormal
REAL8 Section2Base[0..2]
or Origin for second cut plane.
VARIANT vSection2Base
REAL8 Section2Normal[0..2]
or Vector normal for second cut plane.
VARIANT vSection2Normal
REAL8 Section3Base[0..2]
or Origin for third cut plane.
VARIANT vSection3Base
API-2047

Property Description
REAL8 Section3Normal[0..2]
or Vector normal for third cut plane.
VARIANT vSection3Normal
REAL8 SectionSpacing Spacing between cut planes.
INT4 SectionCount Number of Cutting Planes.
BOOL SectionMode Section cut mode.
REAL8 IsosurfaceValue Single iso-surface value.
INT4 TraceOpt Trace option.
INT4 TraceID ID of output vector for trace plots.
True if contour vectors should be included in hidden line cal-
BOOL ContourVecHide
culation.
INT4 ContourVecMode Contour vector output relative to mode.
INT4 ContourVecID1[0..2]
or IDs of output vectors for contour vector.
VARIANT vContourVecID1
INT4 ContourVecID2[0..2]
or IDs of output vectors for second contour vector.
VARIANT vContourVecID2
INT4 ContourVecID3[0..2]
or IDs of output vectors for third contour vector.
VARIANT vContourVecID3
INT4 ContourVecCSys Contour vector CSys.
REAL8 ContourVecDir[0..2]
or Components of contour vector direction.
VARIANT vContourVecDir
Additional contour vector output ID. Same as ContourVec-
INT4 ContourVecAddl
tor2.
INT4 ContourVecColor2 Color for second contour vector.
INT4 ContourVecColor3 Color for third contour vector.
INT4 ContourVecDigits Number of digits in contour vector labels
INT4 ContourVecLength Length of contour vectors
Determines what location(s) are used to initiate streamlines
INT4 StreamLineOpt (0 uses vStreamLineLocation, 1 uses StreamLineID as a
point ID, 2 uses StreamLineID as a group ID)
INT4 StreamLineID ID of a point or group of points used to initiate a streamline
API-2048

Property Description
Controls accuracy of streamline solution the higher the
INT4 StreamLineRungeKuttaOrder
value, the more accurate and slower the solution (1 to 4)
Controls accuracy of streamline solution the lower the
REAL8 StreamLineTolerance
value, the more accurate and slower the solution (1e-15 to 1)
This is a multiplier times the model diameter if the
REAL8 StreamLineMaxLenFactor streamline is too long, calculation is terminated (1e-15
upwards)
This is a percentage of the maximum speed if the speed
REAL8 StreamLineMinSpeedPct
gets too low, calculation is terminated (1e-15 to 100)
REAL8 StreamLineMaxTime Not Used
REAL8 StreamLineLocation[0..2]
XYZ location of start point of streamline if StreamLineOpt =
or
0
VARIANT vStreamLineLocation
Contour legend is shrunk to this percentage to avoid overlap
REAL8 ContourLegendShrinkPct with view legend, post title and logo bitmap. Must be a value
between 1.0 and 100.0
Transparency percentage applied to all entities
INT4 TransparencyPercent
(0=opaque,100=fully transparent)
If True, dynamic rotations are around the model axes. If
BOOL RotateAroundModelAxes
False, screen axes. (used if RotateUseAxis is true)
If True, dynamic rotations are around a single axis based on
BOOL RotateSingleAxis
the predominant direction. (used if RotateUseAxis is true)
BOOL RotateUseAxis If True, single and model axis dynamic rotation is available.
The ID of the Coordinate System used for rotations by the
INT4 RotateCSys
View Rotate command.
INT4 UserContourPalette[0..63]
or Colors for user contour palette.
VARIANT vUserContourPalette
INT4 MaxUserContourPalette Number of colors stored in UserContour Palette.
Controls destination of transformed deformation data
0 = None
INT4 TransformDeformMode
1 = Coordinate System given in TransformDeformCSys
2 = Nodal Output Coordinate System
Destination coordinate system when
INT4 TransformDeformCSys
TransformDeformMode = 1
API-2049

Property Description
BOOL TransformDeformX
Control which components of the transformed deformation
BOOL TransformDeformY
are displayed
BOOL TransformDeformZ
Controls contour/criteria destination coordinate system for
transformed nodal output vectors
INT4 TransformNodalMode 0 = None
1 = Coordinate System given in TransformNodalCSys
2 = Nodal Output Coordinate System
Destination coordinate system when
INT4 TransformNodalCSys
TransformNodalMode = 1
Controls contour/criteria destination for transformed plate
element output vectors
0 = None
3 = Material Coordinate System
INT4 TransformPlateMode
4 = Vector defined by axis TransformPlateDOF of Coordi-
nate System TransformPlateCSys projected onto plate
5 = Vector defined by TransformPlateVector projected onto
plate
Destination coordinate system when
INT4 TransformPlateCSys
TransformPlateMode = 4
Axis of destination coordinate system when TransformPlate-
INT4 TransformPlateDOF
Mode = 4
INT4 TransformPlateVector[0..2]
or Vector used when TransformPlateMode = 5
VARIANT vTransformPlateVector
Controls contour/criteria destination coordinate system for
transformed solid element output vectors
INT4 TransformSolidMode 0 = None
6 = Coordinate System given in TransformSolidCSys
7 = Material Coordinate System
Destination coordinate system when
INT4 TransformSolidCSys
TransformSolidMode = 4
For laminate results, the global ply location to display for
contour/criteria displays: 0=Location of Selected Output
INT4 GlobalPlyLocation Vector, -1=Top Ply, -2=Bottom Ply, any other positive num-
ber is the ID of the Global Ply to display. Not used unless
laminate results are selected.
The NodeID to deform/animate around. You must also set
INT4 DeformRelativeToNode
the label value for this to be used.
REAL8 BeamDiagramScale The scale factor for beam diagrams
API-2050

Property Description
Complex Results - Sets method for complex expansion
(-1=Use Model Settings, 0=Selected Results - Ignore Phase
INT4 ComplexSyncMethod
Differences in View Override section, 1=Synchronize Phase
in View Override section)
Complex Results - Static Display Phase Angle in View Over-
REAL8 ComplexSyncPhase
ride section
Complex Results - Animation Phase Increment in View
REAL8 ComplexSyncIncrement
Override section.
REAL8 ClipPlaneOrigin[0..2]
or The coordinates of a point on the model clipping plane
VARIANT vClipPlaneOrigin
REAL8 ClipPlaneNormal[0..2]
The vector components of the normal to the model clipping
or
plane
VARIANT vClipPlaneNormal
If True, nodes associated with the blanked entity will not be
BOOL BlankNodesOff
blanked.
API-2051

5.60.1.1 View Object Freebody Interface


The following table shows properties that were part of the View Object Freebody Interface prior to
Version 10.3. With that release, the entire methodology of Freebody Display was changed necessi-
tating changes to the API. This table shows how to map the old API interface to the new one.

Property Description Now Controlled By


Flag indicating free- View Object Draw[FVI_FREEBODY]
BOOL FreebodyOn
body is on. Property
BOOL FreebodyLoad[0..5]
Flags for load types Freebody Object SumContributions
or
for freebody. Property
VARIANT vFreebodyLoad
ID of group to be used
INT4 FreebodyGroup Freebody Object Group Property
in freebody.
Vector visibility: Freebody Object
ShowTotalVec and ShowNodalVec
BOOL FreebodyForceMom[0..1]
Show forces[0] and Properties.
or
moments[1]. Inclusion in summation vector calcula-
VARIANT vFreebodyForceMom
tion: Freebody Object SumCompo-
nents Property
Show internal free-
BOOL FreebodyShowInternal No longer used
body data.
Show summed data at
BOOL FreebodyShowSum Still Valid
each node.
Show vectors with a
BOOL FreebodyMinVecFlag Still Valid
minimum length.
Show vector compo- Freebody Object TotalVectorMode
BOOL FreebodyComponents
nents. and NodalVectorMode Properties
Vector visibility: Freebody Object
ShowTotalVec and ShowNodalVec
BOOL FreebodyXYZ[0..2]
Flags for X,Y,Z com- Properties.
or
ponents. Inclusion in summation vector calcula-
VARIANT vFreebodyXYZ
tion: Freebody Object SumCompo-
nents Property
View Object
Scale vectors based on
BOOL FreebodyScaleMag Draw[FVI_FREEBODY_VECTOR]
their magnitude.
Property
Show resultant of
Freebody Object TotalVectorMode
BOOL FreebodyShowResultant summed freebody
Property
info.
API-2052

Property Description Now Controlled By


View Object
Show freebody with ColorMode[FVI_NODAL_F] and Col-
BOOL FreebodyEntityColor
entity colors. orMode[FVI_NODAL_M] Properties.
Set to 3 for Entity Colors
CSys ID for freebody
INT4 FreebodyShowCSys Freebody Object CSys Property
display.
Minimum magnitude
REAL8 FreebodyShowMag Still Valid
vector to show.
View Object Freebody_Length,
Freebody_UnitsPerLength,
REAL8 FreebodyShowLength[0..1] Freebody_Total_Force_Factor,
Min/Max display
or Freebody_Total_Moment_Factor,
length.
VARIANT vFreebodyShowLength Freebody_Nodal_Force_Factor and
Freebody_Nodal_Moment_Factor
Properties
REAL8 FreebodyResultant-
Loc[0..2] Location for resultant
Freebody Object X, Y and Z Properties
or vector.
VARIANT vFreebodyResultantLoc
Freebody Object TotalVecColor Prop-
Color for resultant
INT4 FreebodyResultantColor erty when Total Vector Color Mode is
vector.
set to Freebody in the Active View

The following table describes new View Object Properties that were added in Version 10.3 for
controlling Freebody displays.

Property Description
INT4 FreebodyLength Controls the baseline length for all Freebody Vectors
Controls the number of units per baseline length when Free-
INT4 FreebodyUnitsPerLength
body Vector scaling is enabled.
REAL8 FreebodyTotalForceFactor Length Factor for Freebody Total Force Vector
REAL8 FreebodyTotalMomentFactor Length Factor for Freebody Total Moment Vector
REAL8 FreebodyNodalForceFactor Length Factor for Freebody Nodal Force Vectors
REAL8 FreebodyNodalMomentFactor Length Factor for Freebody Nodal Moment Vectors
Controls the number of digits on Freebody value labels. This
INT4 FreebodyDigits is an alias for the ColorMode[FVI_FREEBODY_VECTOR]
Property
API-2053

5.60.1.2 View Option Types


All of the the View Option properties (Draw, Label, Color, ColorMode) require an index to access
the desired values. These properties and their related indices correspond to the options that you can
control in the user interface View Options command. The following figure shows how the API
properties relate to the various controls in the dialog box.

Draw( )

Label( )
Index selects
option from
this list

ColorMode( )

Color( )

Value 1 Value 2
More Properties

So, for example, to set the View to use Double-Sided, Elemental Contours, as shown above, you
would set
View.Draw( FVI_CONTOUR_TYPE ) = True
View.Label( FVI_CONTOUR_TYPE ) = 1
and save the View object. Note that for FVI_CONTOUR_TYPE, the Color( ) property is not used
and does not appear in the dialog box. You should not query or set these unused properties. Doing
so will not cause any current problem, but it will also not be useful and if those properties are used
in future releases, it could cause errors.
API-2054

The View Options dialog does have additional controls that are not linked to the Draw( ), Label( ),
ColorMode( ) or Color( ) properties. In the figure above, they are labeled Value 1, Value 2 and
More Properties. Accessing these properties is described later, first however, the following table
maps the index used by Draw( ), Label( ), ColorMode( ) and Color( ) to the names in the View
Options command.

Text in View Options Index Constant


Labels, Entities and Colors
Label Parameters 0 FVI_LABEL
Coordinate System 1 FVI_CSYS
Point 2 FVI_POINT
Curve 3 FVI_CURVE
Combined Curve 95 FVI_COMPOSITE_CURVE
Curve - Mesh Size 24 FVI_CURVE_MESHSIZE
Curve/Surface Directions 39 FVI_CURVE_ACCURACY
Surface 4 FVI_SURFACE
Volume 5 FVI_VOLUME
Text 6 FVI_TEXT
Boundary 27 FVI_BOUNDARY
Node 7 FVI_NODE
Node - Perm Constraint 8 FVI_NODE_PERMCONSTRAINT
Element 9 FVI_ELEMENT
Element - Directions 10 FVI_ELEMENT_DIRECTION
Element - Offsets/Releases 11 FVI_ELEMENT_OFFSET
Element - Orientation/Shape 12 FVI_ELEMENT_ORIENT
Element - Beam Y-Axis 13 FVI_BEAM_YAXIS
Element - Coordinate System 96 FVI_ELEM_CSYS
Element - Material Direction 115 FVI_ELEM_MATL_DIR
Element - Weld 90 FVI_ELEMENT_WELD
Element - Rigid 94 FVI_RIGID
Load Vectors 78 FVI_LOAD_VECTORS
Load Body 100 FVI_LOAD_BODY
API-2055

Text in View Options Index Constant


Load Force 14 FVI_LOAD_FORCE
Load Moment and Torque 15 FVI_LOAD_MOMENT
Load Temperature 16 FVI_LOAD_THERMAL
Load Distributed 71 FVI_LOAD_DISTRIBUTEDLOAD
Load Pressure 17 FVI_LOAD_PRESSURE
Load Acceleration 18 FVI_LOAD_ACCELERATION
Load Velocity 72 FVI_LOAD_VELOCITY
Load Enforced Displacement 19 FVI_LOAD_ENFORCEDDISP
Load Nonlinear Force 73 FVI_LOAD_NONLINEARFORCE
Load Heat Generation 66 FVI_LOAD_HEATGEN
Load Heat Flux 67 FVI_LOAD_HEATFLUX
Load Convection 68 FVI_LOAD_CONVECTION
Load Radiation 69 FVI_LOAD_RADIATION
Load Bolt Preload 93 FVI_BOLT_PRELOAD
Load Fluid Tracking 81 FVI_LOAD_FLUIDTRACKING
Load Unknown Condition 82 FVI_LOAD_UNKNOWN
Load Slip Wall Condition 83 FVI_LOAD_SLIPWALL
Load Fan Curve 84 FVI_LOAD_FANCURVE
Load Periodic Condition 85 FVI_LOAD_PERIODIC
Constraint 20 FVI_CONSTRAINT
Constraint Equation 21 FVI_CONSTRAINT_EQUATION
Connector 79 FVI_CONNECTOR
Connection Region 91 FVI_CONNECTION_REGION
Combined - Eliminated Points 99 FVI_INTERIOR_POINT
Combined - Eliminated Curves 97 FVI_INTERIOR_CURVE
Combined - Eliminated Surfaces 98 FVI_INTERIOR_SURFACE
Aero Panel 102 FVI_AERO_PANEL
Aero Mesh 103 FVI_AERO_MESH
API-2056

Text in View Options Index Constant


Aero Interference 108 FVI_AERO_INTERFERENCE
Aero Splines 104 FVI_AERO_SPLINE
Aero Control Surfaces 105 FVI_AERO_SURFACE
Tools and View Style
Free Edge and Face 22 FVI_FREE_EDGE
Shrink Elements 23 FVI_SHRINK_ELEM
Fill, Backfaces and Hidden 25 FVI_FILL_ELEM
Filled Edges 26 FVI_FILLED_EDGES
Render Options 77 FVI_RENDER_OPTIONS
Transparency 92 FVI_TRANSPARENCY
Shading 28 FVI_SHADING
Perspective 29 FVI_PERSPECTIVE
Stereo 30 FVI_STEREO
Axisymmetric Axis 87 FVI_AXISYM_AXIS
View Legend 31 FVI_VIEW_LEGEND
View Axes 32 FVI_VIEW_AXES
Origin 33 FVI_ORIGIN
Workplane and Rulers 34 FVI_WORKPLANE
Workplane Grid 35 FVI_WORKPLANE_GRID
Clipping Planes 36 FVI_CLIPPING_PLANE
Symbols 37 FVI_SYMBOL
Preview 109 FVI_PREVIEW
View Aspect Ratio 38 FVI_ASPECT_RATIO
Model Clipping Plane 101 FVI_CLIP_PLANE
PostProcessing
Post Titles 40 FVI_POST_TITLES
Deformed Style 41 FVI_DEFORMED_STYLE
Vector Style 42 FVI_VECTOR_STYLE
API-2057

Text in View Options Index Constant


Animated Style 43 FVI_ANIMATED_STYLE
Deformed Model 44 FVI_DEFORMED
Undeformed Model 45 FVI_UNDEFORMED
Trace Style 74 FVI_TRACE_STYLE
Contour Type 80 FVI_CONTOUR_TYPE
Contour/Criteria Style 46 FVI_CONTOUR_STYLE
Contour/Criteria Levels 47 FVI_CONTOUR_LEVELS
Contour/Criteria Legend 48 FVI_CONTOUR_LEGEND
Criteria Limits 49 FVI_CRITERIA_LIMITS
Criteria - Elements that Pass 50 FVI_CRITERIA_PASS
Criteria - Elements that Fail 51 FVI_CRITERIA_FAIL
Beam Diagram 86 FVI_BEAM_DIAGRAM
IsoSurface 76 FVI_ISOSURFACE
IsoLine 88 FVI_ISOLINE
Streamline 89 FVI_STREAMLINE
Contour Vector Style 75 FVI_CONTOUR_VECTOR
Freebody 114 FVI_FREEBODY
Freebody Node Markers 106 FVI_FREEBODY_NODEMARKER
Freebody Vectors 113 FVI_FREEBODY_VECTOR
Freebody Total Force 107 FVI_FREEBODY_TOTALF
Freebody Total Moment 110 FVI_FREEBODY_TOTALM
Freebody Nodal Force 111 FVI_FREEBODY_NODAL_F
Freebody Nodal Force 112 FVI_FREEBODY_NODAL_M
All XY options in the View object only The Chart object and Chart Data Series
work with Legacy XY plotting enabled object should be used instead
XY Titles (obsolete) 52 FVI_XY_TITLES
XY Legend (obsolete) 53 FVI_XY_LEGEND
XY Axes Style (obsolete) 54 FVI_XY_AXES_STYLE
API-2058

Text in View Options Index Constant


XY X Range/Grid (obsolete) 55 FVI_XY_XAXIS
XY Y Range/Grid (obsolete) 56 FVI_XY_YAXIS
XY Curve 1 (obsolete) 57 FVI_XY_CURVE1
XY Curve 2 (obsolete) 58 FVI_XY_CURVE2
XY Curve 3 (obsolete) 59 FVI_XY_CURVE3
XY Curve 4 (obsolete) 60 FVI_XY_CURVE4
XY Curve 5 (obsolete) 61 FVI_XY_CURVE5
XY Curve 6 (obsolete) 62 FVI_XY_CURVE6
XY Curve 7 (obsolete) 63 FVI_XY_CURVE7
XY Curve 8 (obsolete) 64 FVI_XY_CURVE8
XY Curve 9 (obsolete) 65 FVI_XY_CURVE9

The following table describes how to get to the extra properties used by some of the dialog
options.

Text in View Options Control Property


Labels, Entities and Colors
Label Parameters Value1, Render Offset RenderPushLabel
Value1, Load Len LoadVecLength
Load Vectors
Value2, Min Scale LoadVectorMinScale
Tools and View Style
Shrink Elements Value1, Shrink To % ShrinkFactor
Value1, Offset Factor RenderPushForward
Render Options
Value2, Offset RenderPushUnit
Transparency Value1, Percent TransparencyPercent
Value1, % Ambient AmbientLight
Shading Value2, Distance SpotlightDist
More - Light... Light
Perspective Value1, Distance PerspectiveDist
View Axes More - Position... AxisLocation
API-2059

Text in View Options Control Property


Value1, Load Len LoadVecLength
Symbols
Value2, Other Vec OtherVecLength
View Aspect Ratio Value1, Aspect Ratio Aspect
ClipPlaneOrigin
Model Clipping Plane More - Clipping Plane
ClipPlaneNormal
PostProcessing
Value1, Scale % DeformedRelScale
Deformed Style
Value2, Scale Act DeformedAbsScale
Vector Style Value1, Top Percent ArrowsToLabel
Value1, Frames AnimationFrames
Animated Style
Value2, Delay AnimationDelay
Deformed Model Value1, Node ID DeformRelativeToNode
Undeformed Model Value1, Render Offset % RenderPushUndeformed
More - Contour Options Select Contour Options Dialog...
Contour Group ContourGroup
Contour Type Label( FVI_CONTOUR_TYPE )
Data Conversion ColorMode( FVI_CONTOUR_STYLE )
No Averaging ContourElemUnaveraged
Property ContourElemBreakProp
Material ContourElemBreakMatl
Contour Type
Layer ContourElemBreakLayer
Color ContourElemBreakColor
Angle Between Check ContourElemBreakGeom
Angle Between Text ContourElemBreakAngle
Double-Sided Planar Draw( FVI_CONTOUR_TYPE )
Additional Element Data ContourVecAddl
Rendered Contours ColorMode( FVI_CONTOUR_TYPE )
Value1, Label Freq ContourLabelFreq
Contour/Criteria Style
Value2, Digits ContourLabelDigits
API-2060

Text in View Options Control Property


Value1, Minimum UserContourValue(11)
Value2, Maximum UserContourValue(0)
More - Set Levels Contour/Criteria Levels Dialog...

Contour/Criteria Levels UserContourLevel(1..10) for Level,


Specified Levels
UserContourValue(1..10) for Values
Colors ContourColor
MaxUserContourPaletter,
User Palette
UserContourPalette
Value1, Label Freq ContourLegendFreq
Contour/Criteria Legend Value2, Digits ContourLegendDigits
More - Legend Shrink ContourLegendShrinkPct
Value1, Minimum CriteriaMin
Criteria Limits
Value2, Maximum CriteriaMax
Beam Diagram Value1, Scale % BeamDiagramScale
IsoSurface Value1, IsoSurface At IsosurfaceValue
IsoLine Value1, IsoLine At IsosurfaceValue
Value1, Max Length StreamLineMaxLenFactor
Streamline Value2, Min Speed StreamLineMinSpeedPct
More - Streamline Loc StreamLineLocation
Value1, Digits ContourVecDigits
Contour Vector Style
Value2, Length ContourVecLength
XYTitle
XY Titles More - Titles
XYSubtitle
Value1, X Tics XYXTics
XY Axes Style
Value2, Y Tics XYYTics
Value1, Minimum XYXmin
XY X Range/Grid
Value2, Maximum XYXmax
Value1, Minimum XYYmin
XY Y Range/Grid
Value2, Maximum XYYmax
XY Curve 1 Value1, Scale XYScale(0)
API-2061

Text in View Options Control Property


XY Curve 2 Value1, Scale XYScale(1)
XY Curve 3 Value1, Scale XYScale(2)
XY Curve 4 Value1, Scale XYScale(3)
XY Curve 5 Value1, Scale XYScale(4)
XY Curve 6 Value1, Scale XYScale(5)
XY Curve 7 Value1, Scale XYScale(6)
XY Curve 8 Value1, Scale XYScale(7)
XY Curve 9 Value1, Scale XYScale(8)
Value1, Units/Length FreebodyUnitsPerLength
Freebody Vectors
Value2, Length FreebodyLength
Freebody Total Force Value2, Factor FreebodyTotalForceFactor
Freebody Total Moment Value2, Factor FreebodyTotalMomentFactor
Freebody Nodal Force Value2, Factor FreebodyNodalForceFactor
Freebody Nodal Force Value2, Factor FreebodyNodalMomentFactor
API-2062 Initialize

5.60.2 View Object Methods


5.60.2.1 Initialize

Initialize
( void )
Description:
This initializes a view object to the default settings.
Input:
None
Output:
None
Return Code:
None
Remarks/Usage:
View Objects have many properties, and it is difficult and time consuming to initialize them all individ-
ually. This method initializes the object just like creating a new view in FEMAP with the default view
settings. You can then selectively modify just the properties that you need.
Example:
None
GetMultiGroupList API-2063

5.60.2.2 GetMultiGroupList

GetMultiGroupList
( nGroups, nGroupID )
Description:
This method retrieves the group ids used in the current view for the Multi Group Display.
Input:
None
Output:
INT4 nGroups Number of groups in nGroupID
The group IDs that have been referenced in Multi Group display
INT4 nGroupID[0..nGroups-1]
(Positive ID value = Shown, Negative ID value = Hidden)
Return Code:
FE_NO_MEMORY Unable to allocate memory for group list.
FE_NOT_AVAILABLE No groups have be referenced in the Multi Group Display.
Remarks/Usage:
None
Example:
None
API-2064 SetMultiGroupList

5.60.2.3 SetMultiGroupList

SetMultiGroupList
( bClear, nGroups, nGroupID )
Description:
This method sets the group ids to be used in the current view for the Multi Group Display.
Input:
If True then clear the list of groups in the multi group display before
INT4 bClear
adding groups in nGroupID.
INT4 nGroups Number of groups in nGroupID
The group IDs used in the Multi Group display
INT4 nGroupID[0..nGroups-1]
(Positive ID value = Show, Negative ID value = Hide)
Output:
None
Return Code:
None
Remarks/Usage:

Example:
None
ClearMultiGroupList API-2065

5.60.2.4 ClearMultiGroupList

ClearMultiGroupList
( void )
Description:
This method clear the groups in the Multi Group Display.
Input:
None
Output:
None
Return Code:
None
Remarks/Usage:

Example:
None
API-2066 Visible

5.60.2.5 Visible

Visible
( visible )
Description:
This makes a view visible on the screen, or removes it from the screen.
Input:
BOOL visible Set to True to make a view visible, False to remove it.
Output:
None
Return Code:
The operation failed. Either you asked to make a view visible that
FE_FAIL
was already visible, or to remove a view that was not visible.
Remarks/Usage:
This method accomplishes the same task as the View, Activate command.
Example:
None
Redraw API-2067

5.60.2.6 Redraw

Redraw
( void )
Description:
Redraws the current view.
Input:
None
Output:
None
Return Code:
None
Remarks/Usage:
The current object must be loaded with a view that is visible on the screen. Same as the View, Redraw
command.
Example:
None
API-2068 Regenerate

5.60.2.7 Regenerate

Regenerate
( void )
Description:
Regenerates the current view.
Input:
None
Output:
None
Return Code:
None
Remarks/Usage:
The current object must be loaded with a view that is visible on the screen. Same as the View, Regener-
ate command.
Example:
None
IsLayerVisible API-2069

5.60.2.8 IsLayerVisible

IsLayerVisible
( layerID )
Description:
Indicates whether the selected layer is in the visible layer list.
Input:
INT4 layerID ID of layer to check.
Output:
None
Return Code:
Selected layer is not in the visible layer list (FE_OK means layer is
FE_FAIL
in the visible layer list).
Remarks/Usage:
The current object must be loaded with a view that is visible on the screen.

This command does not tell whether the visible layer list is actually being used. If you are displaying all
layers, layers that are not in the visible layer list will still be reported as not visible, even though they are
because the list is not used.
Example:
None
API-2070 SetLayerVisible

5.60.2.9 SetLayerVisible

SetLayerVisible
( layerID, visible )
Description:
Adds or removes layers from the visible layer list.
Input:
INT4 layerID ID of layer to modify.
Set to True to make the layer visible, False to remove it from the vis-
BOOL visible
ible list.
Output:
None
Return Code:
None
Remarks/Usage:
The current object must be loaded with a view that is visible on the screen.

In addition to this command, you must also change the ShowAllLayers property to make sure that the
visible layer list is being used (instead of all layers).
Example:
None
Rotate API-2071

5.60.2.10 Rotate

Rotate
( oX, oY, oZ, dX, dY, dZ, angle )
Description:
Rotates the current view around the specified axis.
Input:
REAL8 oX
REAL8 oY The origin of the axis of rotation - in global rectangular coordinates.
REAL8 oZ
REAL8 dX
REAL8 dY The components of the axis of rotation.
REAL8 dZ
REAL8 angle The angle of rotation, in degrees.
Output:
None
Return Code:
None
Remarks/Usage:
The current object must be loaded with a view from your model.

This command simply updates the view object. To update the display in FEMAP, the view must be Put
to the database, and then you must Redraw.
Example:
None
API-2072 AlignCSys

5.60.2.11 AlignCSys

AlignCSys
( csysID )
Description:
Rotates the current view to be aligned with the XY plane of the selected coordinate system.
Input:
INT4 csysID The ID of the coordinate system used for alignment.
Output:
None
Return Code:
None
Remarks/Usage:
The current object must be loaded with a view from your model.

This command simply updates the view object. To update the display in FEMAP, the view must be Put
to the database, and then you must Redraw.
Example:
None
AlignVector API-2073

5.60.2.12 AlignVector

AlignVector
( oX, oY, oZ, dX, dY, dZ )
Description:
Rotates the current view to be aligned looking along the specified vector.
Input:
REAL8 oX
REAL8 oY The origin of the alignment axis - in global rectangular coordinates.
REAL8 oZ
REAL8 dX
REAL8 dY The components of the axis of alignment.
REAL8 dZ
Output:
None
Return Code:
None
Remarks/Usage:
The current object must be loaded with a view from your model.

This command simply updates the view object. To update the display in FEMAP, the view must be put
to the database, and then you must Redraw.
Example:
None
API-2074 Align2Vector

5.60.2.13 Align2Vector

Align2Vector
( vZx, vZy, vZz, vXYx, vXYy, vXYz, bAutoXY )
Description:
Rotates the current view to be aligned looking along the specified vector.
Input:
REAL8 vZx
REAL8 vZy The components of the axis of alignment (normal to the screen)
REAL8 vZz
REAL8 vXYx The components of a vector used to determine the X and Y (in
screen) axes. The normal vector (vZx,vZy,vZz) is crossed with this
REAL8 vXYy
vector to determine the Y vector, which is then crossed again to
REAL8 vXYz determine X.

If True, the X and Y vectors are swapped so that the model better fits
BOOL bAutoXY
into the window shape.
Output:
None
Return Code:
None
Remarks/Usage:
The current object must be loaded with a view from your model.

This command simply updates the view object. To update the display in FEMAP, the view must be put
to the database, and then you must Redraw.
Example:
None
AlignWorkplane API-2075

5.60.2.14 AlignWorkplane

AlignWorkplane
( void )
Description:
Rotates the current view to be aligned with the normal to the workplane.
Input:
None
Output:
None
Return Code:
None
Remarks/Usage:
The current object must be loaded with a view from your model.

This command simply updates the view object. To update the display in FEMAP, the View must be Put
to the database, and then you must Redraw.
Example:
None
API-2076 AutoscaleAll

5.60.2.15 AutoscaleAll

AutoscaleAll
( redoBox )
Description:
Changes the magnification so that the current model is scaled to fit in the view.
Input:
If set to True, then the imaginary box around the model that is used
BOOL redoBox for autoscaling is recomputed. If set to False, the existing box is
used.
Output:
None
Return Code:
None
Remarks/Usage:
The current object must be loaded with a view from your model.

This command simply updates the view object. To update the display in FEMAP, the View must be Put
to the database, and then you must Redraw.
Example:
None
AutoscaleVisible API-2077

5.60.2.16 AutoscaleVisible

AutoscaleVisible
( redoBox )
Description:
Changes the magnification so that the visible portions of the model are scaled to fit in the view.
Input:
If set to True, then the imaginary box around the model that is used
BOOL redoBox for autoscaling is recomputed. If set to False, the existing box is
used.
Output:
None
Return Code:
None
Remarks/Usage:
The current object must be loaded with a view from your model that is currently visible in a window.
This method differs from AutoscaleAll in that the current group, layers and display options are consid-
ered when scaling the view.

This command simply updates the view object. To update the display in FEMAP, the View must be Put
to the database, and then you must Redraw.
Example:
None
API-2078

6. FEMAP Events

Events provide a way for your application to be notified when certain operations are happening in
the FEMAP session. For example, by processing events, you will be notified when a new model is
opened, a command is processed or FEMAP is shut down, and your program can then respond
appropriately to that event.

6.1 Receiving and Processing Events


To receive and process events in your application, you must do the following:
1. Register your application with FEMAP as an add-in. You do this by calling the feAppRegiste-
rAddInPane method (see Section 3.16.5.2, "feAppRegisterAddInPane"). Event messages are
only sent to applications that are registered as add-ins. When calling this method, you should
specify the handle to the window that contains the message loop that will process the events.
2. Call the Windows API function RegisterWindowMessage to obtain the message identifier for
the event message. The syntax of this call will be something like:
EventMessage = RegisterWindowMessage ( FE_EVENT_MESSAGE );

You must register the FE_EVENT_MESSAGE string to select the proper message.
3. Modify your window procedure to process the event messages that FEMAP sends. The format
of these messages is described later in this section. You do not have to process any particular
messages. Only process the messages that you need for your application.
One important thing to note is that FEMAP simply sends the event messages to your application.
FEMAP is not waiting for a response from you; it will go on processing whatever other commands
or actions are requested.

6.2 Alternate Method - Event Callbacks


As an alternative to handling event messages, if you can build your event functionality as a stand-
alone program file, basic script or executable, then you can register an event callback to call that
code. This approach is often simpler if the code you want to execute can be stand-alone. Simply
call feAppEventCallback ( Section 3.16.5.10, "feAppEventCallback" ) to hook your code to a par-
ticular event. After that every time the event occurs, your code will be called.

If the event that your callback processes uses the lParam value (like FEVENT_COMMAND), you
can access it from your callback routine by using EventLParam described in Section 3.3.2, "Global
Integer Properties"
API-2079

6.3 Format of Event Messages


All windows messages contain four parameters.

Parameter Description
hWnd The handle to the window where the message is being sent. Not really very
important in this case.
message The message type. This parameter will always be equal to the return value
from RegisterWindowMessage( FE_EVENT_MESSAGE ) for event mes-
sages. This is how you will be able to distinguish a FEMAP event message
from other windows messages coming to your window.
wParam For FEMAP event messages, this parameter indicates the type of event that
has occurred. Refer to the various events for more information.
lParam For FEMAP event messages, this parameter contains additional data for that
event. Refer to the various events for more information.

In general, you will want to modify your message loop to check to see if message is equal to the
FEMAP event message value. If it is, you will then check wParam, and possibly lParam, to see if
this is an event that is important. If it is not important, simply ignore the message. If it is important,
start the appropriate action in your application.

6.4 The FEMAP Events


The following events are currently defined in FEMAP.

wParam Event Description


1 FEVENT_INITIALIZE FEMAP is initializing for the first time. lParam is not used.
Starting a new model, or opening an existing model. Any
2 FEVENT_NEWMODEL previous model that was in use has now been closed. lParam
is not used.
3 FEVENT_ENDMODEL Closing the current model. lParam is not used.
FEMAP is being shut down. The model that was in use has
4 FEVENT_SHUTDOWN
been closed. lParam is not used.
5 FEVENT_COMMAND A command has been executed - either from the menu, or
thru some other mechanism. lParam is the command number
that was executed.
6 FEVENT_PROGSTART Indicates that a program file is starting execution. lParam is
not used.
7 FEVENT_PROGEND Indicates that a program file is ending execution. lParam is
not used.
API-2080

wParam Event Description


8 FEVENT_DRAWSTART Indicates that a redraw or regenerate is beginning. Neither
this nor the FEVENT_DRAWEND event are issued every
time a view is updated - they are only issued if a standard
Redraw or Regenerate command are selected from the menu
or the API, or when some other action or command triggers a
full redraw or regenerate.
9 FEVENT_DRAWEND Indicates that a redraw or regenerate is ending.
10 FEVENT_ANALYSISEND Indicates that an analysis that FEMAP was monitoring has
been completed
11 FEVENT_RESULTSEND Indicates that the automatic loading of results after an analy-
sis finishes has completed.
12 FEVENT_SWITCHMODEL Indicates that the active model has been switched to a differ-
ent model. lParam contains an identifier of the new active
model - the same value that is returned by feAppGetModel()

When processing the FEVENT_COMMAND event, you will need to know the command number
that you are looking for. Although we do not publish these command numbers, it is easy to find
them. Simply process the FEVENT_COMMAND event, run your application, switch to FEMAP
and execute the command that you want to process. Remember the value of lParam that you
receive with the FEVENT_COMMAND event that you receive. It will be the same each time you
perform that command. Several examples are as follows:

Command lParam
View, Redraw 2001
View, Regenerate 2002
Tools, Undo 1101
Tools, Redo 1102
File, Save 1003
File, Open 1002
File, Exit 1025

6.5 Using FEMAP Events


The program below shows an example of how FEMAP Events can be captured in your application.
The code does not actually do anything after watching the events, it provides a framework that you
can use to get started.

Global Const FEVENT_INITIALIZE = 1


Global Const FEVENT_NEWMODEL = 2
API-2081

Global Const FEVENT_ENDMODEL = 3


Global Const FEVENT_SHUTDOWN = 4
Global Const FEVENT_COMMAND = 5
Global Const FEVENT_PROGSTART = 6
Global Const FEVENT_PROGEND = 7

Dim WM_FEMAP_MESSAGE As Long


Dim PreviousWindowProc As Long

Dim hMainForm As Long


Dim hMainWnd As Long

Public femap As Object

Const GWL_WNDPROC = (-4&)


Const GWL_HWNDPARENT = (-8)

Public Declare Function RegisterWindowMessage Lib "user32" _


Alias "RegisterWindowMessageA" (ByVal lpString As String) As Long

Public Declare Function SetWindowLong Lib "user32" _


Alias "SetWindowLongA" (ByVal hwnd As Long, _
ByVal nIndex As Long, ByVal dwNewLong As Long) _
As Long

Public Declare Function CallWindowProc Lib "user32" _


Alias "CallWindowProcA" _
(ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, _
ByVal wParam As Long, ByVal lParam As Long) As Long

This function is the Window procedure that you must supply to


override the default message handling

Public Function WindowProc(ByVal hwnd As Long, _


ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) _
As Long

Dim rc As Long

If uMsg = WM_FEMAP_MESSAGE Then


If wParam = FEVENT_SHUTDOWN Then
Unload Form1
End If
If wParam = FEVENT_COMMAND Then
'MsgBox ("Femap Command")
End If
If wParam = FEVENT_PROGSTART Then
MsgBox ("Program Start")
End If
If wParam = FEVENT_PROGEND Then
API-2082

MsgBox ("Program End")


End If

Else
WindowProc = CallWindowProc(PreviousWindowProc, hwnd, uMsg, _
wParam, lParam)
End If

End Function

This function is called to initialize capturing the events

Public Function InitApp()


Dim rc As Long
hMainForm = Form1.hwnd
Set femap = GetObject(, "femap.model")
For more control over window placement and style use
feAppRegisterAddInPane( )
rc = femap.feAppRegisterAddIn(True, hMainForm, hMainForm, True, 1)
WM_FEMAP_MESSAGE = RegisterWindowMessage("FE_EVENT_MESSAGE")
PreviousWindowProc = SetWindowLong(Form1.hwnd, GWL_WNDPROC, _
AddressOf WindowProc)
End Function

This function is called to terminate capture

Public Function CloseApp()


rc = SetWindowLong(hMainForm, GWL_WNDPROC, PreviousWindowProc)
rc = femap.feAppRegisterAddIn(False, hMainForm, hMainForm, _
True, 1)
End Function
Index AddSet 1037, 1047
AddSetRule 1048
AddSolid 973
AddSort 878
Symbols AddSurface 974
.NET 36, 39, 47 AdjcacentSurfaces 1967
AdjcacentSurfacesAsSet 1968
Aero Panel/Body object 1356
A methods 1357, 1358, 1377
ABAQUS file 213, 219, 249 properties 1356
ACIS file 184, 186 Aero Property object 1366
ACIS SAT file 242 methods 1367
Add 1036, 1044, 1128, 1469, 1741, 1788 properties 1366
add Aero Spline object 1376
solid 430 methods 1377
Add2 1742 properties 1376
AddAll 1054, 1131 Aero Surface object 1380
AddAllColor 1071 methods 1381
AddAllExcept 1055 properties 1380
AddAllInRange 1056 AeroChordXYZ 1364
AddAllTitle 1070 AeroSpanXYZ 1365
AddAroundPlane 1067, 1160 align
AddAroundPlane2 1068 entities 577, 578
AddAroundPoint 1063, 1158 Align2Vector 2074
AddAroundPoint2 1064 AlignCSys 2072
AddAroundVector 1065, 1159 AlignVector 2073
AddAroundVector2 1066 AlignWorkplane 2075
AddArray 1060, 1470, 1767, 1775, 1789, 1793 AlternateTaper 905
AddColumn 861, 1227 AnalysisCase object 1387
AddCommon 1057 methods 1395
AddContact 1512 properties 1387
AddConversionColumn 1229 AnalysisMgr object 1403
AddCoordinate 1061 methods 1432
AddCoordinate2 1062 properties 1403
AddDataSeries 1485 AnalysisSet object
AddElementChecks 869 methods 1448
AddEmptyColumns 1228 AnalysisStudy object 1447
AddEntitiesOnLayer 1046 Analyze 1442
AddEntityData 866 AnalyzeMultiple 1443
AddEnvelopeColumn 1230 AngleAtPoint 2000
AddGroup 874, 1059 ANSYS file 214, 220, 250
AddInt 1130 application
AddMassProperties 868 register 786, 787, 788
AddMeshAssociativity 871 application object 35, 73
AddMeshLoc 1553 methods 35
AddMeshLocXYZ 1554 properties 35
AddMeshPoint 2014 Apply 982
AddMidsideNodes 1072 ApproximateArea 1957
AddNastranElementChecks 870 arc
AddNewRemoveCommonSet 1058 create from point 351
AddNodesOnGeometry 1069 create with angle 346, 347
AddOutput 867 create with center 344, 350
AddOutputSets 1451 create with chord 348
AddRange 1045 create with points 349
AddReal 1129 create with radius 345
AddRelated 1743 ArcCircleInfo 1541
AddRule 1049 Area 1662, 1917, 1956
AddSelection 881 AreDuplicate 1826, 1919
array 37, 40
AspectRatio 901 Case 1441
AtEOF 987, 1182 CATIA file 187, 189
attach CATIAV5 file 191
to geometry 589, 590, 591 center 1594
attributes CG 1955
meshing 414 chamfer
AutoComplete 1825 solid 429
AutoscaleAll 2076 chart
AutoscaleVisible 2077 get displayed 332
Chart Data Series object 1490
Chart object 1480
B charts
set displayed 333
bar offsets
CheckQuality 898
modify 615, 616
circle
BCDefinition object 1456
create concentric 356
methods 1457
create from center 354, 358
properties 1456
create from curve 359
BCEqn object 1460
create from diameter 353
methods 1460
create from points 355, 357
properties 1460
create from radius 352
BCGeom object 1461
create tangent 360
methods 1463
cleanup
properties 1461
solid 441, 442
BCNode object 1468
Clear 887, 895, 975, 1024, 1082, 1144, 1166, 1204, 1520,
methods 1469
1759, 1851
properties 1468
ClearAll 1023
BCSet object 1471
ClearElements 1673
methods 1472
ClearGroup 875
properties 1471
ClearIbList 1372
Beam Calculator
ClearMeshLoc 1587
CalculateStress 1311
ClearMultiGroupList 2065
CalculateStressFromForces 1314
ClearNodeList 1650
GetElementProperties 1309
ClearNodes 1676
GetMeshInfo 1310
ClearSbList 1371
Beam Calculator object 1307
ClearSearch 1007
beam offsets
ClearSelection 882
modify 615, 616
ClearSort 879
BoolField 1020
ClearSurfaceSet1 1385
boundary conditions
ClearSurfaceSet2 1386
modify 595
ClearTheta1List 1373
boundary surface
ClearTheta2List 1374
create 387, 388, 389, 390
close
update 391
file 988
BoundarySurfaces 1965
close model 179
BoundarySurfacesAsSet 1966
ClosestPointToCurve 1582
BoundingBox 1524, 1531, 1561, 1946, 1996
ClosestPointToSurface 1583
BoundingSize 1997
coincident
BSpline curves
curves 315
knots 597
elements 317
modify 596
loads 327
nodes 309, 311, 312
points 313
C colinear
C,C++ 35 coordinates 683
C++ 39, 69 color
CalculateNodalCenter 1677 modify 580, 581
CalculateSummation 1678 Color Palette 735
CalculateSummation2 1679 CombineCurves 1571
Combined 919 in surface 676
CombinedCurvesAsSet 1570 node 679
CommonCurvesAsSet 2008 point 678
CommonPoint 1591 project 671, 675, 686, 687
Compress 1473, 1519, 1800 rotate 685
Compute 1760 transform 680, 681, 682
Compute2 1761 Copy 885, 1040, 1107
ComputeGeneralShape 1913 copy 451
ComputeShape 1752, 1909 radial 453
ComputeStdShape 1911 CopyToClipboard 1493
Conical 1979 Count 1025, 1109, 1151, 1354
Connection 462 CountCommon 1110, 1111
Connection object 1527 CountList 1728
methods 1528 CountLoads 1772
properties 1527 CountMeshPoint 2015
Connection Property object 1495 CountOutputSets 1448
access properties 1495 CSys object 1532
array index values 1497 methods 1533
methods 1505 properties 1532
properties 1495 Current 1148
Connection Region object 1507 Curvature 2011
constant CurvatureAcrossEdge 1581
global 42 curve
constraint break 383
combine 469 chamfer 386
constraints create by projection 370, 371
check 326 create by slicing solid 373
modify 595 create from intersection 369
Contact object 1507 create on surface 372
methods 1509 extend 382
properties 1507 fillet 385
convert join 384
coordinates 667, 668, 684 trim 381
units 278, 279 types 1537
ConvertToAllCurves 1114 Curve object 1534
ConvertToAllSurfaces 1118 methods 1485, 1492, 1538
ConvertToBoundarySurfaces 1119, 1157 properties 1480, 1490, 1534, 1922
ConvertToBoundarySurfacesOnly 1120 CurveLoops 1970
ConvertToCombinedCurves 1115 Curves 1889, 1926, 1969
ConvertToCombinedCurvesOnly 1116 curves
ConvertToInternalCurves 1117 BSpline 596, 597
ConvertToInternalSurfaces 1121 coincident 315
coordinate system reverse direction 598, 599
modify 594 revolve 558
move 572, 573 sweep 560
rotate 690, 691, 692 CurvesAsSet 1890, 1927, 1971
update 593 CurvesAtPoint 2007
coordinates Cylindrical 1977
along curve 672
at curve center
curve D
coordinates 674
data
at intersection 677, 688, 689
example storing 55
at line intersection 670
data type 36
at midpoint 673
DataLocation 1247
colinear 683
DataNeeded 1233
convert 668, 684
DataTable object
curves 669
methods 842, 846, 856, 874, 878, 881, 884
enter 665, 666
properties 840 update 611
Debug 1123 update property 605
Define 2039 ElementsAsSet 1559, 1945, 1993
DefineReal 2040 ElementsWithFaces 1560, 1994
definition coordinate system 593 embed 789, 794
Deletable 1177, 1335 multiple solids 434
Delete 1178, 1336, 1454 solid 433, 440
delete EmptyBlock 1122
constraints 625 Enable 1522, 1529
entities 622 end of file 987
loads 624 EndPoints 1539, 1974
mesh 623 EndPointsAsSet 1975
model 621 enter
output 626 coordinates 665, 666
DeleteAll 1108, 1112, 1692, 1698, 1704, 1711, 1717 entity
DeleteAnalysisCase 1396 align 577, 578
DeleteLibrary 1337 rotate 575, 576
DeletePly 1758 scale 579
DeleteRows 888 Entity object 1324
DeleteTitle 1179 methods 1325
detach properties 1324
nodes and elements 592 Entity Tracking object 1297
direction entity types 134, 136
curves 598, 599 EntityValue 1226
directory equation 283
current 832 Evaluate 1632, 2038
distortion event 795
elements 319, 321, 323, 324 messages 2079
docking panes 754, 755 receiving and processing 2078
DXF file 193 example
using API 47
Excel
E example using 47, 49, 60, 62
Exist 1176, 1334
element
exit
rigid 58
FEMAP 180
Element object 1637, 1667
Expand 1472, 1518, 1799
access nodes 1640
ExpandCombination 1884
methods 1641, 1671
ExplicitTimeStep 921
properties 1637, 1667
explode
Element Quality object 892
solid 402, 403, 406, 423
methods 895
Export 1934
properties 892
export
ElementFaces 1995
ABAQUS 249
Elements 1558, 1944, 1992
ACIS 242
elements
ANSYS 250
attach to geometry 589, 590
FEMAP Neutral 237, 238
beam releases 610
FEMAP Neutral Output 240, 241
coincident 317
I-DEAS 252
detach from geometry 592
IGES 243
distortion 319, 321, 323, 324
LS-DYNA 251
fixup 318
MARC 253
formulation 613
NASTRAN 254
line 617
Parasolid 244
modify type 618
STAAD 255
move 574
STEP 245
normals 325
STL 247
reverse normals 608, 609
VRML 248
sweep 559
extend
surface 417 feAppUnlock 797
extrude feAppUnlockDraw 803
curves 556 feAppUnlockExit 799
elements 552 feAppUnlockModel 801
solid 421 feAppUpdateModelBox 645
feAppUpdatePanes 755
feAppVersion 817
F feAppVisiblel 793
feArcAngleCenterStart 347
Facets 1572, 1940, 1988
feArcAngleStartEnd 346
feAddToolbar 765
feArcCenterPoints 350
feAddToolbarCommand 776
feArcCenterStartEnd 344
feAddToolbarSubmenu 766
feArcChordCenterStart 348
feAddToolbarSubmenuCommand 777
feArcPoints 349
feAddToolbarSubmenuSubmenu 767
feArcRadiusStartEnd 345
feAddToolbarSubmenuUserCommand 779
feArcTangentStartEnd 351
feAddToolbarUserCommand 778
feAutoMeshAssociativity 589
feAddUserCommand 762
feBCCombine 469
feAlignBetweenCSys 578
feBoundaryAddSurfaces 390
feAlignTo 577
feBoundaryFromCurves 388
feAppBringToTop 790
feBoundaryFromPoints 387
feAppColorCreate 736
feBoundaryFromSurfaces 389
feAppColorGetBaseColor 737
feBoundaryUpdateSurfaces 391
feAppColorGetLinestyle 739
feChartPaneGetDisplayed 332
feAppColorGetPattern 738
feChartPaneSetDisplayed 333
feAppColorGetRGB 740
feCheckCoincidentCurve 315
feAppColorPalette 735
feCheckCoincidentElem 317
feAppCountModels 749
feCheckCoincidentLoads 327
feAppEmbed 789
feCheckCoincidentNode 309
feAppEmbedMessages 794
feCheckCoincidentNode2 311
feAppEventCallback 795
feCheckCoincidentNode3 312
feAppGetAllModels 750
feCheckCoincidentPoint 313
feAppGetModel 743
feCheckConstraints 326
feAppGetModel32 744
feCheckElemDistortion 319
feAppGetModelName 745
feCheckElemDistortion2 321
feAppLock 796
feCheckElemFixup 318
feAppLockDraw 802
feCheckElemNormal 325
feAppLockExit 798
feCheckPlanarNodes 316
feAppLockModel 800
feCheckSumForces 328
feAppManagePanes 754
feCheckSumForces2 330
feAppManageStatusBar 756, 757
feCircle2Point 355
feAppManageToolbars 753
feCircle3Point 357
feAppMessage 807
feCircleCenter 354
feAppMessageBox 734
feCircleCenterPoints 358
feAppMessageClear 810
feCircleCenterTangent 359
feAppMessageEndListing 809
feCircleConcentric 356
feAppMessageStartListing 808
feCircleDiameter 353
feAppModelContents 751
feCircleRadius 352
feAppModelDefragment 752
feCircleTangentTangent 360
feAppRegisterAddIn 786
feCompute2DInvariants 493
feAppRegisterAddInPane 787
feConnectAuto 462
feAppRegisterAddInPaneWithFrame 788
feConnectAuto2 462
feAppSetModel 746
feCoordAlongCurve 672
feAppSetModel32 747
feCoordArrayTransform 681
feAppSetModelByName 748
feCoordArrayTransform2 682
feAppShowWindow 792
feCoordColinear 683
feAppStatusRedraw 804
feCoordCurveCenter 674
feAppStatusShow 805
feCoordCurveMidpoint 673
feAppStatusUpdate 806
feCoordFromWorkplane 667
feCoordInSurface 676 feFilePageSetupReset 260
feCoordIntersectCurves 669 feFilePageSetupSave 259
feCoordIntersectLines 670 feFilePictureCopy 263
feCoordOnNode 679 feFilePictureCopy2 264
feCoordOnPoint 678 feFilePictureReplay 267
feCoordOntoCurve 671 feFilePictureSave 265
feCoordOntoLine 687 feFilePictureSave2 266
feCoordOntoPlane 686 feFilePreferencesReset 275
feCoordOntoSurface 675 feFilePreferencesSave 274
feCoordPick 665 feFilePrint 261
feCoordPickByMethod 666 feFilePrint2 262
feCoordPlaneIntersect 688 feFileProgramRun 830
feCoordRotate 685 feFileProgramRuning 831
feCoordSurfaceIntersect 677 feFileReadAbaqus 213
feCoordToDirCos 684 feFileReadAbaqusResults 219
feCoordToWorkplane 668 feFileReadAcis 186
feCoordTransform 680 feFileReadAcisOpt 184
feCoordVectorPlaneIntersect 689 feFileReadAnsys 214
feCurveBreak 383 feFileReadAnsysResults 220
feCurveChamfer 386 feFileReadCatia 187
feCurveExtend 382 feFileReadCatia2 189
feCurveFillet 385 feFileReadCatiaV5 191
feCurveIntersectSolids 369 feFileReadDxf 193
feCurveJoin 384 feFileReadDyna 215
feCurveOffsetCurveWasher 374 feFileReadDynaResults 221
feCurvePad 379 feFileReadIdeas 195
feCurveParametricOnSurface 372 feFileReadIges 198
feCurveProjectCurvesOntoSurfaces 457 feFileReadIgesAdv 196
feCurveProjectOntoSolid 370 feFileReadMarc 216
feCurveProjectOntoSurfaces 371 feFileReadMarcResults 222
feCurveSlice 373 feFileReadNastran 217
feCurveSplitEdgeToEdge 378 feFileReadNastranResults 223
feCurveSplitPointToEdge 377 feFileReadNeutral 233
feCurveSplitPointToPoint 376 feFileReadNeutral2 234
feCurveTrim 381 feFileReadNeutral3 235
feCurveUpdateSurfaces 368 feFileReadParasolid 202
feDelete 622 feFileReadParasolidOpt 200
feDeleteAll 621 feFileReadPatran 218
feDeleteConstraints 625 feFileReadProe 203
feDeleteLoads 624 feFileReadSolidEdge 204
feDeleteMesh 623 feFileReadStep 207
feDeleteOutput 626 feFileReadStepOpt2 205
feDeleteToolbar 768 feFileReadStl 211
feDeleteUserCommand 763 feFileReadUg 212
feElemCountOnProp 494 feFileRebuild 272
feElementFreeEdge 662 feFileRecoverDBData 273
feElementFreeFace 663 feFileSaveAs 182
feEntityVisibility 644 feFileTimedSave 183
feFileClose 179 feFileWriteAbaqus 249
feFileCurrentDirectory 832 feFileWriteAcis 242
feFileExecute 829 feFileWriteAnsys 250
feFileExit 180 feFileWriteDyna 251
feFileGetName 828 feFileWriteFNO 240
feFileMessageCopy 268 feFileWriteFNO2 241
feFileMessageLineNumber 271 feFileWriteIdeas 252
feFileMessageSave 269 feFileWriteIges 243
feFileMessageSelect 270 feFileWriteMarc 253
feFileNew 177 feFileWriteNastran 254
feFileOpen 178 feFileWriteNeutral 237
feFileWriteNeutral2 238 feLoadFromFreebody 468
feFileWriteParasolid 244 feLoadToolbarLayout 785
feFileWriteSTAAD 255 FEMAP
feFileWriteStep2 245 events 2079, 2080
feFileWriteStl 247 FEMAP Basic Scripting 35
feFileWriteVrml 248 FEMAP FNO file 240, 241
feFormatReal 811 FEMAP Neutral file 233, 234, 235, 237, 238
feGenerateCopy 451 feMeasureAngle 300
feGenerateRadialCopy 453 feMeasureAngleBetweenNodes 301
feGenerateReflect 456 feMeasureCurve 302
feGenerateRotate 455 feMeasureDistance 292
feGenerateScale 454 feMeasureDistanceBetweenGeometrys 294
feGetElemDistortion 323 feMeasureDistanceBetweenLines 298
feGetElemDistortion2 324 feMeasureDistanceBetweenNodes 296
feGetElementEdges 730 feMeasureDistanceBetweenNodes2 297
feGetElementFaces 729 feMeasureDistanceBetweenSolids 299
feGetInt 733 feMeasureDistanceToPlane 293
feGetMenuCommand 772 feMeasureMeshMassProp 305
feGetMenuCommands 771 feMeasureMeshSectionProp 308
feGetReal 731 feMeasureSolidMassProp 304
feGetRealLength 732 feMeasureSurfaceArea 303
feGetToolbarCommand 775 feMeasureSurfSectionProp 307
feGetToolbarCommands 773 feMeshApproachSurface 510
feGetToolbars 764 feMeshAttach 590
feGetToolbarSubCommands 774 feMeshAttachNodes 591
feGetUserCommands 761 feMeshAttrCurve 506
feGFXDelete 822 feMeshAttrPoint 505
feGFXEnableView 824 feMeshAttrSolid 509
feGFXLoad 820 feMeshAttrSurface 508
feGFXReset 825 feMeshBetween 528
feGFXSelect 823 feMeshBuildRemeshRegions 545
feGroupBoolean 648 feMeshCleanupSlivers 543
feGroupBoolean2 649 feMeshClosestLink 530
feGroupCombine 650 feMeshCoincidentLink 531
feGroupEvaluate 647 feMeshConvertFacets 542
feGroupGenElemType 657 feMeshCurve 513
feGroupGenerate 651 feMeshDetach 592
feGroupGenerate2 652 feMeshEdgeMembers 549
feGroupGenMatl 656 feMeshEdgeRemoval 544
feGroupGenProp 655 feMeshEdgeSplit 535
feGroupGenSolid 654 feMeshEdgeSplit2 536
feGroupMoveToLayer 659 feMeshEditRemeshRegions 546
feGroupPeel 658 feMeshExtrudeCurve 556
feGroupsContaining 660 feMeshExtrudeElem 552
feLayerGet 285 feMeshExtrudeElem2 554
feLayerPut 284 feMeshHexSolid 524
feLicenseExpiration 813, 816 feMeshHexSolidFromElements 526
feLicenseIsAvailable 815 feMeshPoint 511
feLicenseMethod 814 feMeshRemesh 540
feLine2Tangent 341 feMeshRemeshRegions 547
feLineAtAngl 337 feMeshRevolveCurve 558
feLineHorzVert 336 feMeshRevolveElem 557
feLineMidline 339 feMeshSizeCurve 497
feLineParallel 338 feMeshSizeCurveMatchNodes 499
feLinePointDs 343 feMeshSizeCurveMatchXYZ 500
feLinePoints 335 feMeshSizePoint 496
feLinePointTangent 340 feMeshSizeSolid 503
feLineRectangle 342 feMeshSizeSurface 501
feLoadCombine 467 feMeshSmooth 550
feMeshSmooth2 551 fePlaneBisect 718
feMeshSurface 517 fePlaneCSys 719
feMeshSurface2 515 fePlaneCurveNormal 721
feMeshSurfaceByAttributes 519 fePlaneLocation 715
feMeshSweepCurve 560 fePlaneNodes 716
feMeshSweepElem 559 fePlanePick 713
feMeshTetSolid 520 fePlanePickByMethod 714
feMeshTransition 537 fePlanePoints 717
feMeshUnzip 532 fePlaneRotate 723
feMeshUnzip2 533 fePlaneSurfaceNormal 720
feModifyColor 580 fePlaneViewAlign 722
feModifyColorMultiple 581 feProjectAlongVector 569
feModifyDefCSys 593 feProjectOntoCurve 564
feModifyElemOrder 611 feProjectOntoPlane 570
feModifyElemPropID 605 feProjectOntoSolid 571
feModifyElemRelease 610 feProjectOntoSurface 567
feModifyElemReverse 609 feProjectOntoVector 568
feModifyElemReverse2 608 feRenumber 584
feModifyElemType 618 feRenumberOpt 585
feModifyFormulation 613 feRenumberOpt2 587
feModifyLayer 583 feResetToolbar 769
feModifyLoadPhase 604 feRotateBy 576
feModifyMaterialAngle 607 feRotateTo 575
feModifyMidside 612 feRotationFromDirCos 692
feModifyOffsets 615, 616 feRotationToDirCos 691
feModifyOrient 617 feRotationTransform 690
feModifyOutCSys 594 feRunIOTest 276
feModifyPermBC 595 feSaveToolbarLayout 784
feModifyPropMatlID 606 feScale 579
feModifyReverseCurve 598, 599 feScreenPctPick 741
feModifySolidFacetting 602 feSelectOutput 725
feModifySplineKnots 597 feSelectOutputSets 728
feModifySplineOrder 596 feSetToolbarCommandBitmap 783
feModifySplitQuads 614 feSetToolbarCommandTitle 782
feModifySuperelementID 603 feSetToolbarCommandVisible 780
feModifySurfaceDivisions 600 feSetToolbarSeparator 781
feModifySurfaceNormal 601 feSetToolbarVisible 770
feModifyTransparency 582 feSolidAdd 430
feMoveBy 573 feSolidChamfer 429
feMoveOffset 574 feSolidCleanup 441
feMoveTo 572 feSolidCleanupAdvanced 442
feNotePut 258 feSolidCommon 432
feNotesGet 257 feSolidEmbed 433
feOutputCalculate 486 feSolidEmbedFace 440
feOutputCompare 491, 492 feSolidEmbedMultiple 434
feOutputConvertV92VectorID 487 feSolidExplode 402, 403, 406, 423
feOutputForceBalance 488 feSolidExtendEdgesToSurfaces 458
feOutputForceBalance2 490 feSolidExtendToSurface 445
feOutputFromLoad 482 feSolidExtrude 421
feOutputProcess 470 feSolidFillCavity 446
feOutputProcessConvert 476 feSolidFillet 428
feOutputProcessCopy 472 feSolidIntersect 435
feOutputProcessEnvelope 477 feSolidMidSurfaceManualInput 449
feOutputProcessEnvelopeFromSets 479 feSolidMovePointOntoGeometry 459
feOutputProcessErrorEstimate 481 feSolidPrimitives 419
feOutputProcessLinearCombination 474 feSolidRayFire 450
feOutputProcessMerge 473 feSolidRemove 431
feOutputProcessRSSCombination 475 feSolidRemoveBlendsBelowRadius 447
feOutputTransform2 484 feSolidRemoveFace 444
feSolidRemoveRedundantPoint 448 feVectorNormalToSurface 709
feSolidRevolve 422 feVectorNormalToView 710
feSolidShell 436 feVectorPerpendicular 700
feSolidSlice 437 feVectorPick 705
feSolidSliceAlongFace 439 feVectorPickByMethod 706
feSolidSliceMatch 438 feVectorPlaneIntersect 703
feSolidStitch 424 feVectorRotate 712
feSolidStitchNoCleanup 425 feVectorTangentToCurve
feSolidSweep 426 vector
feSolidSweepBetween 427 unit 708
feSplineBlend 367 feVectorToBeam 695
feSplineEllipse 364 feVectorTransform 693
feSplineHyperbola 366 feVectorUnit 704
feSplineParabola 365 feViewAllViews 633
feSplinePoints 361 feViewAutoscaleAll 631
feSplineTangent 363 feViewAutoscaleVisible 632
feSurfaceAlignedCurves 394 feViewCascade 637
feSurfaceConvert 401 feViewRedraw 629
feSurfaceCorners 392 feViewRegenerate 630
feSurfaceEdgeCurves 393 feViewShow 634
feSurfaceExtend 417 feViewTile 635
feSurfaceExtrude 397 feViewVisible 628
feSurfaceFromMesh 408 feWindowCascade 637
feSurfaceMidAttrib 414 feWindowMaximize 639
feSurfaceMidAuto 411 feWindowMinimize 638
feSurfaceMidAuto2 412 feWindowRedraw 629
feSurfaceMidSingle 410 feWindowRestore 640
feSurfaceNonManifoldAdd 402 feWindowSetRect 641
feSurfaceNonManifoldAdd2 403 feWindowSetSize 642
feSurfaceNonManifoldAdd3 404 feWindowShow 634
feSurfaceNonManifoldAddExpress 405 feWindowTile 635
feSurfaceNormalDeviation 400 feWindowTileHorz 636
feSurfaceOffsetTangent 413, 418 feWindowTitle 643
feSurfaceRayFire 409 feWindowVisible 628
feSurfaceRecoverManifold 406 Field 1017
feSurfaceRemoveHole 407 file
feSurfaceRevolve 398 close 988
feSurfaceRuled 396 end 987
feSurfaceSweep 399 jump to location in 990, 991
feSurfaceTrimToSolid 415 new 177, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752,
feSurfaceTrimWithCurves 416 820
feTextGet 290 open 178, 985
feTextMultiPut 288 position in 989
feTextPut 286 print 261, 262
feToolUnitConvert 279 read line from 986
feToolUnitConvertFactors 278 save as 182
feTruncateReal 812 size 992
feVarEval 283 time accessed 995
feVarGet 282 time created 993
feVarPut 281 time written 994
feVectorAngle 701 timed save 183
feVectorAngleAxis 702 filename
feVectorAxis 707 get 828
feVectorAxisOfSurface 711 fillet
feVectorCrossPoduct 697 solid 428
feVectorDotProduct 698 Find 1140
feVectorFromBeam 694 FindColumn 846, 1250
feVectorLength 696 FindMappedMeshingCorners 2009
feVectorNormalizedDotProduct 699 FindMaxMin 1876
FindRow 842 GetElements 1671, 1674
First 1104, 1149, 1170, 1342 GetElemWithCorner 1868
FirstInSet 1343 GetElemWithCornerSet 1870
FixedFormat 1013 GetEntities 1511
fixup GetExplicitTimeStep 920
elements 318 GetFaceArea 1656
Free Edge 662 GetFaceCentroid 1654
Free Face 663 GetFaceNodes 1657
FreeCurvesAsSet 1928 GetFaceNormal 1655
Function object 1684 GetFromSet 1844
methods 1684 GetFunctionList 1685
properties 1684 GetGroup 876
GetInRow 1262
GetInt 1138
G GetInternalAngle 906
GetJacobian 916
Geometry Preparation object 966
GetLibrary 1326
methods 973
GetList 1726
properties 966
GetMeshLoc 1562
Get 1162, 1325
GetMeshLocXYZ 1563
Get Search 1780
GetMinMaxEdgeLength 1664
GetAll 1828, 2022, 2025, 2028, 2031, 2034
GetModel 1205, 1848
GetAllArray 1641, 1829
GetModelDefaults 897
GetAllArray2 1644, 1830
GetMultiGroupList 2063
GetAllPly 1757
GetMultipleInRow 1263
GetAlternateTaper 904
GetNastranHexAR 942
GetArray 1113
GetNastranHexDetJ 946
GetAspectRatio 900
GetNastranHexEPLR 944
GetBoxSet 1363, 1378
GetNastranHexWarp 948
GetCellValue 1613
GetNastranPenAR 950
GetCentroid 1653
GetNastranPenDetJ 954
GetClosest 1836, 1893
GetNastranPenEPLR 952
GetColumn 1254
GetNastranPenWarp 956
GetColumnInfo 847
GetNastranPyrAR 958
GetColumnMinMax 1256
GetNastranPyrDetJ 962
GetColumns 1255
GetNastranPyrEPLR 960
GetColumnSum 1257
GetNastranPyrWarp 964
GetColumnText 858
GetNastranQuadIAMax 930
GetColumnTitle 852, 1251, 1616
GetNastranQuadIAMin 928
GetColumnValue 856, 1617
GetNastranQuadSkew 922
GetColumnVector 1253
GetNastranQuadTaper 924
GetColumnVisible 848
GetNastranQuadWarp 926
GetColumnWidth 850
GetNastranTetraAR 936
GetCombination 1478, 1805
GetNastranTetraDetJ 940
GetCombined 918
GetNastranTetraEPLR 938
GetCombinedCurves 1569
GetNastranTriaIAMax 934
GetContactList 1509
GetNastranTriaSkew 932
GetContactTable 1397, 1439
GetNastranWarping 912
GetCoordArray 1831
GetNodalSums 1680
GetCoordArray2 1832
GetNodeList 1648
GetCorrelate 1435, 1436
GetNodeSet 1377
GetData 1136, 1633
GetOffset 1515
GetDataSeries 1487
GetOutputList 1845
GetDataSurf 1598
GetOutputListAtID 1846
GetDataSurfInfo 1629
GetOutputListAtSet 1847
GetDataSurfType 1636
GetPageInfo 1630
GetDataType 1139
GetPageTitle 1622
GetDivisionList 1357
GetPageValue 1624
GetEdgeNodes 1658
GetPly 1756
GetPrecision 1595 global integer properties 124
GetRadiList 1369 global real properties 129
GetReal 1137 global string properties 133
GetRow 1264, 1265 GlobalPly object 1718
GetRowInfo 843 methods 1718
GetRows 1266 properties 1718
GetRowsAndColumns 1268 group
GetRowsAndColumnsByID 1269 boolean 648, 649
GetRowsByID 1267 combine 650
GetRowTitle 1618 create 651
GetRowValue 1620 create based on property 655
GetRowValues 859 create based on solids 654
GetRowVisible 844 evaluate 647
GetScalarAtElem 1863 generate based on element type 657
GetScalarAtElemSet 1864 generate based on layers of solid elements 658
GetScalarAtNode 1854 generate based on materials 656
GetScalarAtNodeSet 1855 move to layer 659
GetSearch 1463, 1787 selection rules 1050
GetSectionCutSums 1682 Group object 1719
GetSelected 1038 list types 1723
GetSelectedID 1039 methods 1724
GetSelection 883 properties 1719
GetSkew 908 range types 1721
GetSort 880 Grow 1030
GetStandardTrim 1399
GetSumAtNode 1681
GetSurfaceSet1 1383 H
GetSurfaceSet2 1384
HasCommon 1091, 1092
GetTaper 902
HasFullGlobalPly 1764
GetTetCollapse 914
HasGlobalPly 1762
GetText 1433
HasList 1727
GetThetaList 1367
HasMaterial 1763
GetTitle 1163
HasMeshSize 1588
GetTitleIDList 1330
HasOutputSet 1450
GetTitleList 1329
HasPole 2001
GetTrimControlSurf 1401
HasPrevious 977
GetValue 1261, 1687
GetVarID 2037
GetVectorAtNode 1859
GetVectorAtNodeSet 1860 I
GetVectorAtSingleNode 1858 I-DEAS file 195, 252
GetWarping 910 IDs
GetXY 1492 renumber 584, 585
GFXArrow object 1688 IGES file 196, 198, 243
properties 1688 import
GFXLine object 1694 ABAQUS 213, 219
methods 1689, 1695 ACIS 184, 186
properties 1694 ANSYS 214, 220
GFXPoint object 1700 CATIA 187, 189
methods 1701 CATIAV5 191
properties 1700 DXF 193
GFXQuad4 object 1706 FEMAP Neutral 233, 234, 235
methods 1707 I-DEAS 195
properties 1706 IGES 196, 198
GFXTria3 object 1712 LS-DYNA 215, 221
methods 1713 MARC 216, 222
properties 1712 NASTRAN 217, 223
global boolean properties 132 Parasolid 200, 202
global constant 42 Patran 218
ProE 203
PRT 212
J
SolidEdge 204 Jacobian 917
STEP 205, 207 Jump 1181
STL 211 jump
Inertia 1663, 1918 to file location 990, 991
InitAnalysisCase 1395
InitAnalysisMgr 1432
InitElemWithCorner 1866 K
InitScalarAtElem 1862, 1874 knots
InitScalarAtNode 1853 BSpline curves 597
InitVectorAtNode 1857
InsertPly 1753
Inside 1939, 1951
InsideXYZ 1952
L
interface Last 1105, 1150, 1171, 1344
embedded 789, 794 layer
unlock 797, 799, 801, 803 get information 285
visible 793 modify 583
InterferenceBodyCount 1360 update 284
InternalAngle 907 Layer object 1749
intersect methods 1749
solids 435 properties 1749
intersection Layup 1915
coordinates 677, 688, 689 Layup object 1750
IntField 1018 methods 1752
IsAdded 1073, 1143 properties 1750
IsApiColumn 1252 Length 1548, 1661
IsArrayAdded 1074 length
IsBlend 1986 vector 696
IsBoundingSolidRegion 1987 license 813, 814, 815, 816
IsCombinedCurve 1568 line
IsCone 1984 create at angle 337
IsCylinder 1982 create between other lines 339
IsEmpty 1525 create between points 335
IsEnabled 1523, 1530 create horizontal or vertical 336
IsGeneral 1578, 1938 create parallel 338
IsLayerVisible 2069 create rectangle 342, 343
IsMappable 2013 create tangent to curve 340
IsMappedApproach 2012 create tangent to curves 341
IsMidsideNode 1837 line elements
IsMultiLoop 2016 modify 617
IsNonManifold 1577, 1579 LineInit 1011
IsParabolic 1659 List 1724
IsPlane 1981 listing 808, 809
IsPopulated 1246 load
IsSetAdded 1075 combine 467
IsSheet 1936 from Freebody 468
IsSmoothEdge 1564 LoadBolt object 1766
IsSolid 1935 methods 1766
IsSphere 1983 properties 1766
IsStraight 1575, 1576 LoadDefinition object 1768
IsSuppressed 1586, 2010 methods 1769
IsTorus 1985 properties 1768
IsTotalLoad 1773 LoadETemp object 1774
IsWire 1937 methods 1775
properties 1774
LoadGeom object 1776
load types 1781
methods 1780 material
properties 1776 access properties 1819
LoadGroup 1034 array index values 1819
LoadMesh object 1783 update 606
load types 1791 material angle
methods 1787 update 607
properties 1783 Material object 1817
LoadNTemp object 1792 methods 1825
methods 1793 properties 1817
properties 1792 Matl 1652
loads maximize
coincident 327 window 792
LoadGeom types 1781 MaxNormalDeviation 1999
LoadMesh types 1791 measure
update phase 604 angle 300, 301
LoadSet object 1794 curve 302
methods 1799 distance between geometry 294
properties 1794 distance between lines 298
Lock 884 distance between nodes 296, 297
lock distance between solids 299
interface mesh mass properties 305
interface solid mass properties 304
lock 796, 798, 800, 802 surface area 303
LS-DYNA file 215, 221, 251 measure distance 292
measure distance to plane 293
memory
M allocating 41
Mesh 981, 2005
MapData
mesh
Clear 1274
approach on surfaces 510
Count 1276
attributes on curves 506
DefineBool 1282
attributes on points 505
DefineInt 1281
attributes on solids 509
DefineReal 1280
attributes on surfaces 508
DefineVariant 1284
between locations 528
GetBool 1293
between nodes 530, 531
GetIDs 1277
build remeshing regions 545
GetInt 1292
change remeshing regions 546, 547
GetReal 1291
cleanup slivers 543
GetString 1294
convert facets 542
GetVariant 1295
edge split 535
Initialize 1275
extrude curves 556
Remove 1278
extrude elements 552
RemoveAll 1279
from elements 526
SetBool 1288
from points 511
SetInt 1287
generate on free edges or faces 549
SetReal 1286
on curves 513
SetString 1289
on solids 520, 524
SetVariant 1290
on surfaces 515, 517
MapData object 1273
project 571
methods 1274
remesh 540
MapFromModelToSet 1809, 1815
remove edge 544
MapFromModelToSet2 1812
revolve curves 558
MapOutput object 1808
revolve elements 557
properties 1808
size 496
MARC file 216, 222, 253
size on curves 497
MassProp 1933
size on solid 503
Match 1106
size on surfaces 501
Material 1914
sizes on points 496
smooth 550 NastranPyrDetJ 963
surface 519 NastranPyrEPLR 961
sweep curves 560 NastranPyrWarp 965
transition 537 NastranQuadIAMax 931
unzip 532 NastranQuadIAMin 929
MeshCount 1590 NastranQuadSkew 923
meshing attributes 414 NastranQuadTaper 925
Meshing object 966 NastranQuadWarp 927
methods 973 NastranTetraAR 937
properties 966 NastranTetraDetJ 941
MeshParam 1551 NastranTetraEPLR 939
message NastranTriaIAMax 935
copy 268 NastranTriaSkew 933
save 269 NastranWarping 913
select 270 new
write 807, 808, 809 file 177, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752,
MessageBox 734 820
Midpoint 1593 Next 1097, 1146, 1168, 1259, 1339
midside nodes NextAfter 1098
update 612 NextBC 1459, 1475
midsurface NextBCDef 1477
create 410, 411, 412 NextEmptyAfter 1099
minimize NextEmptyID 1351
window 792 NextEmptySet 1174, 1347
MinRadiiOfCurvature 2002 NextID 1100, 1349
MinRadius 1584 NextInSet 1340
model 73 NextLoad 1771, 1802
modify NextLoadDef 1804
color 580, 581 NextSet 1172, 1209, 1345
constraints 595 NextSetReset 1208
coordinate systems 594 NextVector 1218
element offsets 615, 616 NextVectorReset 1217
element type 618 node
layers 583 coordinates 679
line elements 617 modify 603
node superelementID 603 Node object 1827
quadrilateral element 614 methods 1828
solid facetting 602 properties 1827
surfaces 600, 601 Nodes 1555, 1886, 1941, 1989
transparency 582 nodes
move access 1640
elements 574 attach to geometry 589, 590, 591
nodes, points, coordinate systems 572, 573 coincident 309, 311, 312
MsgBox 734 detach from geometry 592
multi-dimensional 40 move 572, 573
planar 316
project 564, 567, 568, 569, 570
N to define plane 716
update midside 612
NASTRAN file 217, 223, 254
NodesAsSet 1557, 1888, 1943, 1991
NastranHexAR 943
Normal 1567, 1959
NastranHexDetJ 947
NormalAtXYZ 1960
NastranHexEPLR 945
NormalBox 1998
NastranHexWarp 949
normals
NastranPenAR 951
elements 325
NastranPenDetJ 955
reverse 608, 609
NastranPenEPLR 953
notes
NastranPenWarp 957
get 257
NastranPyrAR 959
put 258
NumberOfColumns 1249 Output 1840
NumberOfRows 1248 OutputSet 1877
NumberOfSets 1207 Point 1885
properties 86
Property 1894
O Readfile 54, 984
Report 1920
object
Results Browsing 1202
Aero Panel/Body 1356
Selector 840, 1022
Aero Property 1366
Set 1043
Aero Spline 1376
Solid 1923
Aero Surface 1380
Sort 1127
AnalysisCase 1387
superelement reference 1922
AnalysisMgr 1403
Surface 1947
AnalysisStudy 1447
TMG 2027
application 35, 73
TMGBC 2021
BCDefinition 1456
TMGCtrl 2024
BCEqn 1460
TMGOpt 2030
BCGeom 1461
TMGReal 2033
BCNode 1468
tools 837
BCSet 1471
UserData 1161
Beam Calculator 1307
Variable 2036
chart 1480
View 2041
chart data series 1490
objects
Connection 1527
FEMAP 35
Connection Property 1495
offsets
Connection Region 1507
element 615, 616
Contact 1507
open
creating 1319
file 178, 985
CSys 1532
Optim object 1838
curves 1534
methods 1809, 1839
destroying 1323
properties 1808, 1838
Element 1637, 1667
order
Element Quality 892
BSpline 596
Entity 1324
elements 611
Entity Tracking 1297
output
Function 1684
calculate 486
Geometry Preparation and Meshing 966
compare 491, 492
GFXArrow 1688
components 1842
GFXLine 1694
convert vector ID 487
GFXPoint 1700
example creating 52
GFXQuad4 1706
force balance 488, 490
GFXTria3 1712
from loads 482
GlobalPly 1718
process 470, 472, 473, 474, 475, 476, 477, 481
Group 1719
transforming 484
Layer 1749
vector IDs 1843
Layup 1750
output coordinate system 594
LoadBolt 1766
Output object 1840
LoadDefinition 1768
methods 1844
LoadETemp 1774
properties 1840
LoadGeom 1776
OutputSet object 1877
LoadMesh 1783
methods 1879
LoadNTemp 1792
properties 1447, 1877
LoadSet 1794
OutputSets 1449
MapData 1273, 1297
OutputVectors 1880
MapOutput 1808
Material 1817
Node 1827
Optim 1838
P preferences
reset 275
page setup save 274
reset 260 Prepare 979
save 259 Prev 1101, 1147, 1169, 1341
PanelChordCount 1362 PrevBefore 1102
PanelSpanCount 1361 PrevEmptyID 1352
panes 754, 755 PrevEmptySet 1175, 1348
ParamAtLength 1550 PrevID 1103, 1350
parametric coordinates 676 PrevSet 1173, 1346
ParamOnCombinedCurve 1585 primitive
ParamToXYZ 1542, 1953 create 419
Parasolid file 200, 202, 244 principal planes 719
ParseTitleID 1332 Print 890
PartialLength 1549 print
PartialLengthNode 1574 file 261, 262
PartialLengthXYZ 1573 ProE file 203
Paste 1041 program
Patran file 218 run 829, 830, 831
Performance 85 Project 1544
phase project
loads 604 coordinates 671, 675, 686, 687
Pick mesh 571
Screen 741 nodes 567, 568, 569, 570
pick nodes/points 564
coordinates 665, 666 points 567, 568, 569, 570
picture ProjectAlongVector 1546, 1963
copy 263, 264 ProjectOnto 1961
replay 267 ProjectToClosest 1545, 1962
save 265, 266 Prop 1528, 1651
Planar 1976 properties
planar elements 605
nodes 316 global boolean 132
plane global integer 124
bisect 718 global real 129
define 713, 714, 715 global string 133
define with nodes 716 update material 606
define with points 717 Property object 1894
normal 720, 721, 722 access properties 1896
principal 719 array index values 1897
point methods 1908
coordinates 678 properties 1894
Point object 1885 Put 1164, 1327
methods 1886 PutAll 1457, 1689, 1695, 1701, 1707, 1713, 1769, 1833, 2023,
properties 1885 2026, 2029, 2032, 2035
PointLoops 2017 PutAllArray 1646, 1690, 1696, 1702, 1708, 1714, 1834
Points 1924, 1972 PutCombination 1479, 1806
points PutContactList 1510
coincident 313 PutContactTable 1398, 1440
mesh size 496 PutCoordArray 1691, 1697, 1703, 1710, 1716, 1835
move 572, 573 PutCoordNormalArray 1709, 1715
project 564, 567, 568, 569, 570 PutCorrelate 1437, 1438
to define plane 717, 718 PutDataSurf 1599
PointsAsSet 1925, 1973 PutDivisionList 1358
Populate 1245 PutElemWithCorner 1872
Position 1180 PutFunctionList 1686
position PutLibrary 1328
in file 989 PutNodeList 1649
window 790 PutOutputList 1852
PutRadiList 1370 Reload 1093
PutScalarAtElem 1865, 1875 Reload2 1095
PutScalarAtNode 1856 remesh 540
PutStandardTrim 1400 Remove 1083, 1141
PutSurfaceSet1 1381 RemoveAllOutputSets 1453
PutSurfaceSet2 1382 RemoveArray 1085
PutText 1432, 1433, 1434 RemoveDataSeries 1486
PutThetaList 1368 RemoveGroup 1089
PutTitle 1165 RemoveInternalCurves 1090
PutTrimControlSurf 1402 RemoveNotCommon 1087, 1088
PutVectorAtNode 1861 RemoveOutputSets 1452
RemovePrevious 978
RemoveRange 1084
Q RemoveSet 1086, 1142
renumber
quadrilateral elements
IDs 584, 585
modify 614
Reparse 1012
Report object 1920
methods 1920
R properties 1597, 1920
Range 1729 Reset 1096, 1145, 1167, 1258, 1338
RangeAdd 1734 ResetMeshAttr 2004
RangeDelete 1735 ResetNextBC 1458, 1474
RangeDeleteAll 1736 ResetNextBCDef 1476
RangeGetAll 1732 ResetNextLoad 1770, 1801
RangeNext 1733 ResetNextLoadDef 1803
RangeReset 1731 ResetPrecision 1596
RationalParamToXYZ 2003 Resize 1631
read 986 Results Browsing object 1202
ReadBool 1197 bulk data review methods 1227
ReadBoolArray 1200 entity value methods 1226
ReadDouble 1193 general methods 1204
ReadDoubleArray 1198 properties 1202
Readfile set methods 1207
example using 54 vector methods 1217
Readfile object 984 Reverse 1521, 1538
methods 985 revolve
properties 984 elements 557
ReadFloat 1194 solid 422
ReadLong 1195 rigid element
ReadLongArray 1199 example creating 58
ReadShort 1196 Rotate 2071
ReadString 1201 rotate 455
RealField 1019 coordinate system 690, 691, 692
rebuild 272, 273 coordinates 685
recover 273 entities 575, 576
rectangle
create 342, 343
Redraw 2067 S
redraw
Save 886
view 629
save as 182
reflect 456
SaveGroup 1033
Regenerate 2068
scale 454
regenerate
entities 579
view 630
section properties
register
mesh 308
application 786, 787, 788
surface 307
releases
Select 1076, 1152
beam 610
SelectAllOnLayer 1747 SetModelDefaults 896
SelectBox 1026 SetMultiGroupList 2064
SelectCircle 1027 SetMultipleInRow 1272
SelectContact 1746 SetNoBlankLines 998
SelectFreehand 1029 SetNodalTransform 1240
SelectID 1077, 1153, 1353 SetNodes 1675
SelectIDInSet 1078 SetNoShortLines 999
SelectList 1081, 1154 SetNotes 1213
SelectMesh 1745 SetOffset 1514
SelectModel 1744 SetOutputType 1513
SelectMultiID 1079 SetPageTitle 1623
Selector object 840, 1022 SetPageValue 1625
methods 1023 SetPlateThickness 1665
properties 1022 SetPlateTransform 1241
SelectOutputVectorID 1080 SetPly 1754
SelectPolygon 1028 SetQuad4Orientation 1236
Set SetQuad8Orientation 1237
object 1043, 1127, 1273, 1297, 1307 SetReal 1133
Set object SetRigidType 1516, 1517
methods 1044 SetRowTitle 1619
properties 1043, 1307 SetRowValue 1621
SetAdd 1737 SetRowVisible 845
SetAdd2 1738 Sets 1216
SetAddOpt 1739 SetSearch 1005
SetAddOpt2 1740 SetSearchString 1006
SetAllPly 1755 SetSimpleMeshLoc 1589
SetAutoFormat 1016 SetSizes 976
SetBackgroundColor 873 SetSkip 1004
SetCellBlank 1628 SetSkipAfterSearch 1008
SetCellEquation 1615 SetSolidOrientation 1238
SetCellValue 1614 SetSolidTransform 1242
SetColumnAlignment 855 SetStudyCombination 1883
SetColumnGlobalPly 1243 SetSurfDirection 1466
SetColumnPosition 854 SetSurfNormal 1465
SetColumnTitle 853 SetSurfSliding 1464
SetColumnVisible 849 SetTabSize 1010
SetColumnWidth 851 SetTextColor 872
SetColumTitle 1626 SetTitle 1212
SetColumValue 1627 SetTri3Orientation 1234
SetCombination 1882 SetTri6Orientation 1235
SetComplexOptions 1216, 1244, 1850, 1881 SetTrimEndSpace 1001
SetCylinder 1467 SetTrimFront 1002
SetData 1132 SetTrimSpace 1000
SetDataType 1135 SetUppercase 1003
SetDefaults 1506 SetValue 1270
SetElements 1672 SheetFacesAsSet 1931
SetEngrShearStrain 1239 shell
SetExists 1210 solid 436
SetFixedFormat 1014 Show 889, 1032, 1488
SetFormFeed 1009 ShowGroup 877
SetFreeFormat 1015 ShowStatus 997
SetHasVectorsInDB 1215 Shrink 1031
SetInfo 1211 Size 980
SetInRow 1271 size of file 992
SetInt 1134 Skew 909
SetLayerVisible 2070 skipped 996
SetLocation 1214 SlenderBodyCount 1359
SetLocationFromCoord 1683 slice
SetModel 1206, 1849 solid 437, 438, 439
slivers create 392
cleanup 543 create between curves 396
Solid 1592, 1892, 1964 create by extrusion 397
solid create by revolution 398
add 430 create by sweeping 399
chamfer 429 create from curves 393, 394
cleanup 441, 442 extend 417
create 432 from mesh 408
create primitive 419 mesh 519
embed 433 meshing attributes 414
embed face 440 modify 600, 601
embed multiple 434 normal 400
explode 402, 403, 406, 423 remove hole 407
extrude 421 trim 416
fill hole 446 update 368
fillet 428 Surface object 1947
intersect 435 methods 1951
modify 602 properties 1947
remove 431 Surfaces 1565, 1929
remove face 444 SurfacesAsSet 1566, 1891, 1930
revolve 422 sweep
shell 436 elements 559
slice 437, 438, 439 solid 426
stitch 424, 425 sweep between
sweep 426 solid 427
sweep between 427
trim surface 415
Solid object 1923 T
methods 1924
Tangent 1547
properties 1923
TangentAtEnds 1580
SolidEdge file 204
Tangents 1958
Sort 1155
Taper 903
Sort object
TetCollapse 915
methods 1128
Text 2018
properties 1127
SortRemoveDuplicates 1156
methods 2020
Spherical 1978
properties 2018
spline
text
create from curves 367
create or update 286, 288
create from ellipse 364
retrieve 290
create from hyperbola 366
Thickness 1660, 1916
create from parabola 365
timed save 183
create from points 361
TMG object
create from tangent vectors 363
properties 2021
split
TMGBC object 2021
elements 614
methods 2022
split surface 376, 377, 378
TMGCtrl object 2024
STAAD file 255
methods 2025
status bar 756, 757, 804, 805, 806, 997
properties 2024
STEP file 205, 207, 245
TMGInt object 2027
Stereolithography (STL) file 211, 247
methods 2028
stitch
properties 2027
solid 424, 425
TMGOpt object 2030
Superelement Reference object 1922
methods 2031
surface
properties 2030
axis vector 711
TMGReal object 2033
boundary 387, 388, 389, 390, 391
methods 2034
convert 401
properties 2033
coordinates on 675
toolbars 753 Variable object 2036
Tooltips 1042 methods 2037
Toroidal 1980 properties 2036
TrackData variant 37
Clear 1298 VarMeshSurface 1608
Created 1304 VarOutputMap 1607
Deleted 1305 VarParametric2Pt 1605
Start 1299 VarParametric4Pt 1606
StartGeometry 1300 VarSpatialUVtable 1609
StartMesh 1301 VarSpatialXYZTable 1610
Stop 1302, 1317 VB6 36, 39, 47
StopAll 1303 VBA 35
TrackData object Vector 1879
methods 1298, 1309 vector
transform at intersection 703
coordinates 680, 681, 682 create unit 707
vector 693, 695 length 696
transparency normalize 704
modify 582 transform 695
trim transform
surface 415, 416 vector 694
Truncate 1183 unit 709, 710
VectorComponents 1222
VectorEntities 1224
U VectorExists 1219
VectorInfo 1220
UI 983
VectorLocation 1223
Unigraphics (.PRT) file 212
Vectors 1225
unit vector 707, 708, 709, 710
vectors
unlock
angle between 701, 702
interface 797, 799, 801, 803
cross product 697
update
dot product 698, 699
beam releases 610
perpendicular 700
coordinate systems 593
pick or enter 705, 706
element formulations 613
transform 693
elements 611
VectorTitle 1221
loads 604
version 817
material angle 607
view
material properties 606
all 633
midside nodes 612
cascade 637
surfaces 368
make visible 628
UpdateColumn 865
redraw 629
UpdateColumnByID 864
regenerate 630
UpdateDataTable 1035
show 634
UserData object 1161
tile 635, 636
methods 1162
View object 2041
properties 1161
methods 2062
properties 2041
View Option
V types 2053
VarAlongCoord 1600 visibility 644
VarArbitrary3DCoord 1611 Visible 2066
VarBetween2Pts 1601 visible 793
VarBetween4Pts 1603 Visual Basic 35, 36, 39, 47
VarBetween8Pts 1604 create FEMAP object 73
VarEquation 1612 Visual C++ 35, 39
variable example using 69
add to model 281 VRML file 248
retrieve 282
W
Warping 911
washer 374
window
minimize or maximize 792
position 790
WireCurvesAsSet 1932
workplane coordinates
convert 667
WriteBool 1188
WriteBoolArray 1191
WriteDouble 1184
WriteDoubleArray 1189
WriteFloat 1185
WriteLong 1186
WriteLongArray 1190
WriteShort 1187
WriteString 1192

X
XYPoints 1533
XYZToParam 1543, 1954

Potrebbero piacerti anche