You are on page 1of 1559

FEMAP

API Reference

Version 10.2

Proprietary and Restricted Rights Notice


2010 Siemens Product Lifecycle Management Software Inc. All Rights Reserved. This software and related documentation are proprietary to Siemens Product Lifecycle Management Software Inc. All trademarks belong to their respective holders.

Siemens PLM Web: Customer Support Phone: Web: (714) 952-5444, (800) 955-0000 (In US & Canada) http://support.ugs.com http://www.femap.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, distribute, 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. Shows text that you should type. Shows a command name or text that you will see in a dialog box.

a:setup
OK, Cancel

Throughout this manual, you will see references to Windows. Windows refers to Microsoft Windows XP, Windows Vista, and Windows 7 (32-bit and 64-bit versions). 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


Introduction to the FEMAP API
Objects, Methods and Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31 The Application Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31 Other Objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31 Data Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .32 Using Visual Basic .NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .32 Arrays and Variants. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33 An Array Shortcut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35 Arrays and Visual Basic .NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35 Arrays and Visual C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35 Using Multi-dimensional Arrays. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .36 Multiple Definitions of Array Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .37 Memory Allocation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .37 Global Constants. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .38

Using the FEMAP API


Using Visual Basic .NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .43 Loading Data into Excel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .43 Loading Data from Excel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45 Creating Output in FEMAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .48 Using the ReadFile Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .50 Storing Your Own Data in the FEMAP Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .51 Creating a Rigid Element . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .54 Updating Loads and Constraints. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .56 Charting FEMAP Results in Excel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .58 Calling the API from Visual C++. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .65

The FEMAP Application Object


Getting Started . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .69 Using the FEMAP API Programming Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .69 Creating a FEMAP Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .69 Using the FEMAP Type Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .70 Working with the User Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .73 Running as two separate applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .73 Running FEMAP as a hidden server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .74 Running your application as a FEMAP add-in . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .74 Embedding FEMAP in your application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .75 Embedding FEMAP in your Application. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .76 Capturing the FEMAP Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .77 API Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .81 FEMAP Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .81 Global Properties - File menu commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .82 File, Import, Geometry - Geometry Replacement Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .82 File, Page Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .84 File, Preferences - Messages tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .86

File, Preferences - Views tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 File, Preferences - Render tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 File, Preferences - User Interface tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 File, Preferences - Database tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 File, Preferences - Geometry/Model tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 File, Preferences - Interfaces tab. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 File, Preferences - Library/Startup tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 File, Preferences - Color tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 File, Preferences - Spaceball tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 Global Integer Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 Global Real Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 Global Boolean Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 Global String Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 Entity Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 FEMAP Constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 File Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 File Open/Exit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 feFileNew . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 feFileOpen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 feFileClose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 feFileExit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 File Save. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 feFileSave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 feFileSaveAs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 feFileTimedSave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 Import Geometry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 feFileReadAcisOpt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 feFileReadAcis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 feFileReadCatia. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 feFileReadCatiaV5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 feFileReadDxf. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 feFileReadIdeas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 feFileReadIgesAdv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 feFileReadIges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 feFileReadParasolidOpt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 feFileReadParasolid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 feFileReadProe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 feFileReadSolidEdge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 feFileReadStepOpt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 feFileReadStep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 feFileReadStl. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 feFileReadUg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 Import Analysis Model. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 feFileReadAbaqus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 feFileReadAnsys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 feFileReadDyna . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 feFileReadMarc. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 feFileReadNastran. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 feFileReadPatran. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 Import Analysis Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 feFileReadAbaqusResults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 feFileReadAnsysResults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 feFileReadDynaResults. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 feFileReadMarcResults. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 feFileReadNastranResults. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 Import/Export Neutral File. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 feFileReadNeutral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194

feFileReadNeutral2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feFileReadNeutral3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feFileWriteNeutral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feFileWriteNeutral2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Export Geometry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feFileWriteAcis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feFileWriteIges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feFileWriteParasolid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feFileWriteStep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feFileWriteStl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feFileWriteVrml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Export Analysis Model. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feFileWriteAbaqus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feFileWriteAnsys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feFileWriteDyna . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feFileWriteMarc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feFileWriteNastran . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Notes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feNotesGet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feNotesPut. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Print and Copy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feFilePageSetupSave. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feFilePageSetupReset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feFilePrint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feFilePrint2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feFilePictureCopy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feFilePictureCopy2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feFilePictureSave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feFilePictureSave2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feFilePictureReplay. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feFileMessageCopy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feFileMessageSave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feFileMessageSelect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feFileMessageLineNumber. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Rebuild and Preferences. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feFileRebuild. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feFilePreferencesSave. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feFilePreferencesReset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feRunIOTest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tool Methods. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Units . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feToolUnitConvertFactors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feToolUnitConvert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Variables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feVarPut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feVarGet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feVarEval . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feLayerPut. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feLayerGet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Text. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feTextPut. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feTextMultiPut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feTextGet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Measure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feMeasureDistance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feMeasureDistanceToPlane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

194 194 196 196 198 198 199 200 201 202 203 204 204 205 206 207 208 209 209 210 211 211 212 213 214 215 216 217 218 219 220 221 222 223 224 224 225 226 227 228 229 229 230 231 231 232 233 234 234 235 236 236 238 240 242 242 243

feMeasureDistanceBetweenNodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . eMeasureDistanceBetweenLines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feMeasureAngle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feMeasureAngleBetweenNodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feMeasureCurve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feMeasureSurfaceArea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feMeasureSolidMassProp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feMeasureMeshMassProp. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feMeasureSurfSectionProp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feMeasureMeshSectionProp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Checks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feCheckCoincidentNode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feCheckCoincidentNode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feCheckCoincidentPoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feCheckCoincidentCurve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feCheckPlanarNodes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feCheckCoincidentElem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feCheckElemFixup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feCheckElemDistortion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feCheckElemDistortion2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feGetElemDistortion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feGetElemDistortion2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feCheckElemNormal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feCheckConstraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feCheckCoincidentLoads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feCheckSumForces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Geometry Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Lines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feLinePoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feLineHorzVert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feLineAtAngle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feLineParallel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feLineMidline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feLinePointTangent. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feLine2Tangent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feLineRectangle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feLinePointIDs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Arcs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feArcCenterStartEnd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feArcRadiusStartEnd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feArcAngleStartEnd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feArcAngleCenterStart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feArcChordCenterStart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feArcPoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feArcCenterPoints. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feArcTangentStartEnd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Circles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feCircleRadius. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feCircleDiameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feCircleCenter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feCircle2Point . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feCircleConcentric . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feCircle3Point . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feCircleCenterPoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feCircleCenterTangent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feCircleTangentTangent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Splines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

244 245 246 247 248 249 250 251 253 254 255 255 257 258 260 261 262 263 264 266 268 269 270 271 272 273 274 275 275 276 277 278 279 280 281 282 283 284 284 285 286 287 288 289 290 291 292 292 293 294 295 296 297 298 299 300 301

feSplinePoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feSplineTangent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feSplineEllipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feSplineParabola . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feSplineHyperbola . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feSplineBlend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Curves from Surfaces Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feCurveUpdateSurfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feCurveIntersectSolids . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feCurveProjectOntoSolid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feCurveProjectOntoSurfaces. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feCurveParametricOnSurface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feCurveSlice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feCurveOffsetCurveWasher . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feCurveSplitPointToPoint. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feCurveSplitPointToEdge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feCurveSplitEdgeToEdge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Curve Modification Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feCurveTrim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feCurveExtend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feCurveBreak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feCurveJoin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feCurveFillet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feCurveChamfer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Boundaries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feBoundaryFromPoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feBoundaryFromCurves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feBoundaryFromSurfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feBoundaryAddSurfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feBoundaryUpdateSurfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Surfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feSurfaceCorners. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feSurfaceEdgeCurves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feSurfaceAlignedCurves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feSurfaceRuled . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feSurfaceExtrude. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feSurfaceRevolve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feSurfaceSweep. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feSurfaceNormalDeviation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feSurfaceConvert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feSurfaceNonManifoldAdd. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feSurfaceRecoverManifold . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feSurfaceRemoveHole . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Midsurfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feSurfaceMidSingle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feSurfaceMidAuto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feSurfaceMidAttrib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feSurfaceTrimToSolid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feSurfaceTrimWithCurves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Solids . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feSolidPrimitive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feSolidExtrude . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feSolidRevolve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feSolidExplode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feSolidStitch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feSolidStitchNoCleanup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feSolidFillet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

301 303 304 305 306 307 308 308 309 310 311 312 313 314 315 316 317 318 318 319 320 321 322 323 324 324 325 326 327 328 329 329 330 331 333 334 335 336 337 338 339 340 341 342 342 343 344 345 346 347 347 349 350 351 352 353 354

feSolidChamfer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feSolidAdd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feSolidRemove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feSolidCommon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feSolidEmbed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feSolidIntersect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feSolidShell. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feSolidSlice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feSolidSliceMatch. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feSolidSliceAlongFace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feSolidEmbedFace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feSolidCleanup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feSolidCleanupAdvanced . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feSolidRemoveFace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Geometry and Mesh Generation Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feGenerateCopy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feGenerateRadialCopy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feGenerateScale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feGenerateRotate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feGenerateReflect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Connection Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Generating Connections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feConnectAuto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feConnectAuto2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Model Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Model Load Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feLoadCombine. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Model Constraint Methods. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feBCCombine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Model Output Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feOutputProcess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feOutputProcessCopy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feOutputProcessMerge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feOutputProcessLinearCombination. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feOutputProcessRSSCombination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feOutputProcessConvert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feOutputProcessEnvelope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feOutputProcessErrorEstimate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feOutputFromLoad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feOutputTransform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feOutputCalculate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feOutputConvertV92VectorID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feOutputForceBalance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Meshing Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Mesh Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feMeshSizePoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feMeshSizeCurve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feMeshSizeSurface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feMeshSizeSolid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feMeshAttrPoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feMeshAttrCurve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feMeshAttrSurface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feMeshAttrSolid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feMeshApproachSurface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Meshing Geometry. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feMeshPoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feMeshCurve. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

355 356 357 358 359 360 361 362 363 364 365 366 367 369 370 370 372 373 374 375 377 378 378 378 382 382 382 383 383 384 384 386 387 388 389 390 391 393 394 395 397 398 399 400 401 401 402 404 406 408 409 411 412 413 414 414 416

feMeshSurface2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feMeshSurface - obsolete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feMeshSurfaceByAttributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feMeshTetSolid. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feMeshHexSolid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feMeshHexSolidFromElement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Other Meshing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feMeshBetween. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feMeshClosestLink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feMeshCoincidentLink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feMeshUnzip. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feMeshTransition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feMeshRemesh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feMeshConvertFacets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feMeshCleanupSlivers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feMeshEdgeRemoval . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feMeshBuildRemeshRegions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feMeshEditRemeshRegions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feMeshRemeshRegions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feMeshEdgeMembers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feMeshSmooth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feMeshExtrudeElem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feMeshExtrudeCurve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feMeshRevolveElem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feMeshRevolveCurve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feMeshSweepElem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feMeshSweepCurve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Modification Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Projection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feProjectOntoCurve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feProjectOntoSurface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feProjectOntoVector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feProjectAlongVector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feProjectOntoPlane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feProjectOntoSolid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Move, Rotate and Scale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feMoveTo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feMoveBy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feMoveOffset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feRotateTo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feRotateBy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feAlignTo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feScale. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Color and Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feModifyColor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feModifyTransparency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feModifyLayer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Renumbering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feRenumber . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feRenumberOpt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Associativity. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feAutoMeshAssociativity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feMeshAttach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feMeshAttachNodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feMeshDetach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Other Updates. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feModifyDefCSys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

418 420 422 423 425 427 429 429 431 432 433 434 437 439 440 441 442 443 444 446 447 448 450 451 452 453 454 456 457 457 458 459 460 461 462 463 463 464 465 466 467 468 469 470 470 471 472 473 473 474 476 476 477 478 479 480 480

feModifyOutCSys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feModifyPermBC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feModifySplineOrder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feModifySplineKnots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feModifyReverseCurve. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feModifyNoMergeCurve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feModifySurfaceDivisions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feModifySolidFacetting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feModifySuperelementID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feModifyLoadPhase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Element Updates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feModifyElemPropID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feModifyPropMatlID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feModifyMaterialAngle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feModifyElemReverse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feModifyElemRelease. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feModifyElemOrder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feModifyMidside . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feModifyFormulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feModifySplitQuads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feModifyOffsets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feModifyOffsetsToRefPt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feModifyOrient . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feModifyElemType. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feModifyBeamWarping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Delete Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feDeleteAll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feDelete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feDeleteMesh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feDeleteLoads. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feDeleteConstraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feDeleteOutput . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . View, Window and Visibility Methods. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feViewVisible (or feWindowVisible) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feViewRedraw (or feWindowRedraw) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feViewRegenerate (or feWindowRegenerate) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feViewAllViews. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feViewShow (or feWindowShow) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feViewTile (or feWindowTile) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feWindowTileHorz. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feViewCascade (or feWindowCascade). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feWindowMinimize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feWindowMaximize. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feWindowRestore. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feWindowSetRect. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feWindowTitle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feEntityVisibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feAppUpdateModelBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Group Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feGroupEvaluate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feGroupBoolean . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feGroupCombine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feGroupGenerate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feGroupGenSolid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feGroupGenProp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feGroupGenMatl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feGroupGenElemType . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

481 482 483 484 485 486 487 488 489 490 491 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536

feGroupPeel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feGroupMoveToLayer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Free Edge and Free Face Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feElementFreeEdge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feElementFreeFace. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Standard Dialog Boxes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Coordinate Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feCoordPick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feCoordPickByMethod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feCoordFromWorkplane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feCoordToWorkplane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feCoordIntersectCurves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feCoordIntersectLines. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feCoordOntoCurve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feCoordAlongCurve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feCoordCurveMidpoint. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feCoordCurveCenter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feCoordOntoSurface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feCoordInSurface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feCoordSurfaceIntersect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feCoordOnPoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feCoordOnNode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feCoordTransform. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feCoordArrayTransform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feCoordArrayTransform2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feCoordColinear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feCoordToDirCos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feCoordRotate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feCoordOntoPlane. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feCoordOntoLine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feCoordPlaneIntersect. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feCoordVectorPlaneIntersect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feRotationTransform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feRotationToDirCos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feRotationFromDirCos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Vector Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feVectorTransform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feVectorFromBeam. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feVectorToBeam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feVectorLength . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feVectorCrossPoduct . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feVectorDotProduct . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feVectorPerpendicular . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feVectorAngle. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feVectorAngleAxis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feVectorPlaneIntersect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feVectorUnit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feVectorPick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feVectorPickByMethod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feVectorAxis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feVectorTangentToCurve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feVectorNormalToSurface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feVectorNormalToView . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feVectorAxisOfSurface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Plane Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . fePlanePick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . fePlanePickByMethod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

537 538 539 540 541 542 543 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 589 590

fePlaneLocation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . fePlaneNodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . fePlanePoints. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . fePlaneBisect. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . fePlaneCSys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . fePlaneSurfaceNormal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . fePlaneCurveNormal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . fePlaneViewAlign. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Entity Selection Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Selection Dialog Boxes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feSelectOutput. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feGetElementFaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feGetElementEdges. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Other Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feGetReal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feGetInt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feAppMessageBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feAppColorPalette. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feScreenPctPick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . User Interface Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Model Activation and Management. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feAppGetModel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feAppGetModelName. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feAppSetModel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feAppSetModelByName. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feAppCountModels. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feAppGetAllModels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feAppModelContents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feAppModelDefragment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Window Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feAppManageToolbars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feAppManagePanes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feAppUpdatePanes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feAppManageStatusBar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feAppManageGraphicsTabs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . View Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feAppGetActiveView . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feAppSetActiveView . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feAppGetAllViews . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Toolbar and Menu Customization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feGetUserCommands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feAddUserCommand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feDeleteUserCommand. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feGetToolbars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feAddToolbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feAddToolbarSubmenu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feAddToolbarSubmenuSubmenu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feDeleteToolbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feResetToolbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feSetToolbarVisible . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feGetMenuCommands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feGetMenuCommand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feGetToolbarCommands. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feGetToolbarSubCommands. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feGetToolbarCommand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feAddToolbarCommand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feAddToolbarSubmenuCommand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

591 592 593 594 595 596 597 598 599 599 600 603 604 605 605 606 607 608 609 610 611 611 612 613 614 615 616 617 618 619 619 620 621 622 623 624 624 625 626 627 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643

feAddToolbarUserCommand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feAddToolbarSubmenuUserCommand. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feSetToolbarCommandVisible . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feSetToolbarSeparator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feSetToolbarCommandTitle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feSetToolbarCommandBitmap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feSaveToolbarLayout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feLoadToolbarLayout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Embedding Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feAppRegisterAddIn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feAppRegisterAddInPane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feAppRegisterAddInPaneWithFrame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feAppEmbed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feAppBringToTop. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feAppPosition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feAppShowWindow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feAppVisible . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feAppRegisterMessageHandler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feAppEventCallback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Locking FEMAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feAppLock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feAppUnlock. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feAppLockExit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feAppUnlockExit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feAppLockModel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feAppUnlockModel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feAppLockDraw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feAppUnlockDraw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Status Bar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feAppStatusRedraw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feAppStatusShow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feAppStatusUpdate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Message Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feAppMessage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feAppMessageStartListing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feAppMessageEndListing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Real Number Text Formatting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feFormatReal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feFormatReal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Other Utilities. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feLicenseExpiration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feLicenseMethod. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feLicenseIsAvailable. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feRunCommand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feAppVersion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . User Graphics Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Managing User Graphics Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feGFXLoad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feGFXDelete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Displaying User Graphics Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feGFXSelect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feGFXEnableView . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feGFXReset. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . File Utility Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feFileGetName . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feFileExecute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . feFileProgramRun . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

644 645 646 647 648 649 650 651 652 652 653 654 655 656 657 658 659 660 661 662 662 663 664 665 666 667 668 669 670 670 671 672 673 673 674 675 676 676 677 678 678 679 680 681 682 684 685 686 688 689 689 690 691 693 694 695 696

feFileProgramRunning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 697 feFileCurrentDirectory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 698

FEMAP Tool Objects


DataTable Object. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DataTable Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Specifying Row and Column Indexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DataTable Object Row Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FindRow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetRowInfo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetRowVisible . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SetRowVisible . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DataTable Object Column Methods. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FindColumn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetColumnInfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetColumnVisible . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SetColumnVisible . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetColumnWidth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SetColumnWidth. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetColumnTitle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SetColumnTitle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SetColumnPosition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SetColumnAlignment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DataTable Object Data Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetColumnValue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetColumnText. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetRowValues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AddColumn. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . UpdateColumnByID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . UpdateColumn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AddEntityData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AddOutput. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AddMassProperties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AddElementChecks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AddMeshAssociativity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SetTextColor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SetBackgroundColor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DataTable Object Grouping Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AddGroup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ClearGroup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetGroup. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ShowGroup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DataTable Object Sorting Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AddSort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ClearSort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetSort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DataTable Object Selection Methods. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AddSelection. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ClearSelection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetSelection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DataTable Object Other Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Lock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Copy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Save. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Clear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DeleteRows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 702 702 702 703 703 704 705 706 707 707 708 709 710 711 712 713 714 715 716 717 717 719 720 722 725 726 727 728 729 730 731 732 733 734 734 735 736 737 738 738 739 740 741 741 742 743 744 744 745 746 747 748

Show . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Print. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ReadFile Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ReadFile Object Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ReadFile Object Methods. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Open . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Read . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AtEOF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Close . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Position . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Jump . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . JumpToEnd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TimeCreated . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TimeWritten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TimeAccessed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Skipped . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ShowStatus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SetNoBlankLines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SetNoShortLines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SetTrimSpace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SetTrimEndSpace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SetTrimFront. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SetUppercase. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SetSkip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SetSearch. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SetSearchString. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SetSkipAfterSearch. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SetFormFeed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SetTabSize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LineInit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Reparse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FixedFormat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SetFixedFormat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SetFreeFormat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SetAutoFormat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IntField . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RealField . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BoolField. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Selector Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Selector Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Selector Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ClearAll. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Clear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Count. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SelectBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SelectCircle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SelectPolygon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SelectFreehand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Grow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Shrink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Show . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SaveGroup. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LoadGroup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . UpdateDataTable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Add . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

749 750 751 751 752 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 788 788 789 789 790 791 792 793 794 795 796 797 798 799 800 801 802

AddSet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetSelected . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Copy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Paste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Set Objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Set Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Set Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Add . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AddRange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AddEntitiesOnLayer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AddSet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AddSetRule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AddRule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Group Selection Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AddAll. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AddAllExcept . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AddCommon. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AddNewRemoveCommonSet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AddGroup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AddArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AddCoordinate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AddAroundPoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AddAroundVector. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AddAroundPlane. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AddNodesOnGeometry. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AddAllTitle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AddAllColor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AddMidsideNodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IsAdded . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IsArrayAdded . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IsSetAdded . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Select. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SelectID. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SelectIDInSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SelectMultiID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SelectOutputVectorID. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SelectList. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Clear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Remove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RemoveRange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RemoveArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RemoveSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RemoveNotCommon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RemoveNotCommonToGroup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RemoveGroup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RemoveInternalCurves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . HasCommon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Reload . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Next. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . NextID. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . First . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Last . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Match . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Copy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CopyToClipboard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Count. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

803 804 805 806 807 807 808 808 809 810 811 812 813 814 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860

DeleteAll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ConvertToAllCurves. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ConvertToCombinedCurves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ConvertToCombinedCurvesOnly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ConvertToInternalCurves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ConvertToAllSurfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ConvertToBoundarySurfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ConvertToBoundarySurfacesOnly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ConvertToInternalSurfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Debug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sort Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sort Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sort Object Methods. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Add . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AddReal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AddInt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AddAll. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SetData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Find . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Remove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RemoveSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IsAdded . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Clear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Next. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Prev . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Current . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . First . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Last . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Count. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Select. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SelectID. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SelectList. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SortRemoveDuplicates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ConvertToBoundarySurfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . UserData Objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . UserData Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . UserData Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Get. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetTitle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Put . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PutTitle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Clear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Next. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Prev . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . First . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Last . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . NextSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PrevSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . NextEmptySet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PrevEmptySet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Exist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Deletable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

861 862 863 864 865 866 867 868 869 870 871 873 873 874 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 898 899 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914

Delete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DeleteTitle. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Position . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Jump . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AtEOF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Truncate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . WriteDouble . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . WriteFloat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . WriteLong . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . WriteShort. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . WriteBool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . WriteDoubleArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . WriteLongArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . WriteBoolArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . WriteString . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ReadDouble. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ReadFloat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ReadLong . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ReadShort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ReadBool. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ReadDoubleArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ReadLongArray. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ReadBoolArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ReadString. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938

FEMAP Entity Objects


Common Entity Properties and Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Common Entity Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Common Entity Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Get. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetLibrary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Put . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PutLibrary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetTitleList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetTitleIDList. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ParseTitleID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Exist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Deletable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Delete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DeleteLibrary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Next. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . NextInSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Prev . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . First . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FirstInSet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Last . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . NextSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PrevSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . NextEmptySet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PrevEmptySet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . NextID. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PrevID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . NextEmptyID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PrevEmptyID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SelectID. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 944 944 945 945 946 947 948 949 950 952 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973

CountSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 974 AnalysisCase Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 975 AnalysisCase Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 975 AnalysisCase Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 980 InitAnalysisCase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 980 GetContactTable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 981 PutContactTable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 982 AnalysisSet and AnalysisMgr Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 983 AnalysisSet (AnalysisMgr) Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 983 AnalysisSet (AnalysisMgr) Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1007 InitAnalysisMgr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1007 GetText . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1008 PutText . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1009 GetCorrelate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1010 GetCorrelate2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1011 PutCorrelate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1012 PutCorrelate2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1013 GetContactTable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1014 PutContactTable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1015 Case. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1016 Analyze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1017 AnalyzeMultiple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1018 ClearAnalysisQueue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1019 Preview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1020 BCDefinition Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1022 BCDefinition Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1022 BCDefinition Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1023 PutAll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1023 ResetNextBC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1024 NextBC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1025 BCEqn Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1026 BCEqn Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1026 BCEqn Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1026 BCGeom Objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1027 BCGeom Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1027 BCGeom Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1029 GetSearch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1029 SetSurfSliding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1030 SetSurfNormal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1031 SetSurfDirection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1032 SetCylinder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1033 BCNode Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1034 BCNode Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1034 BCNode Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1034 Add . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1035 AddArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1036 BCSet Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1037 BCSet Object Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1037 BCSet Object Methods. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1038 Expand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1038 Compress. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1039 ResetNextBC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1040 NextBC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1041 ResetNextBCDef. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1042 NextBCDef . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1043 GetCombination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1044 PutCombination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1045

Connection Property Objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Connection Property Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Accessing Connection Property Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Connection Property Array Index Values. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Connection Property Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SetDefaults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Connection Region Objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Connection Region Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Connection Region Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetContactList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PutContactList. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetEntities. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AddContact . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SetOutputType . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SetOffset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetOffset. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SetRigidType . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IsRigidType. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Expand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Compress. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Clear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Reverse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IsEnabled. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Connection Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Connection Object Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Connection Object Methods. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Prop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IsEnabled. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CSys Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CSys Object Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CSys Object Methods. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XYPoints. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Curve Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Curve Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . The Curve Types. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Curve Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Reverse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . EndPoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ArcCircleInfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ParamToXYZ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XYZToParam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tangent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PartialLength. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ParamAtLength . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . MeshParam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AddMeshLoc. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AddMeshLocXYZ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . NodesAsSet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ElementsAsSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ElementsWithFaces. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BoundingBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1047 1047 1047 1049 1056 1057 1058 1058 1060 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1075 1076 1077 1078 1079 1080 1080 1081 1081 1082 1082 1085 1086 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1098 1099 1100 1102 1103 1104 1105 1106

GetMeshLoc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetMeshLocXYZ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IsSmoothEdge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Surfaces. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SurfacesAsSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Normal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IsCombinedCurve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetCombinedCurves. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CombinedCurvesAsSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CombineCurves. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Facets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PartialLengthXYZ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PartialLengthNode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IsStraight . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IsNonManifold . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IsSmooth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TangentAtEnds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CurvatureAcrossEdge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ClosestPointToSurface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Data Surface Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Data Surface Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Data Surface Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetDataSurf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PutDataSurf. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VarAlongCoord. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VarBetween2Pts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VarBetween4Pts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VarBetween8Pts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VarParametric2Pt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VarParametric4Pt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VarOutputMap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VarMeshSurface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VarSpatialUVtable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VarSpatialXYZTable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VarArbitrary3DCoord. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VarEquation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetCellValue. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SetCellValue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SetCellEquation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetColumnTitle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetColumnValue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetRowTitle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SetRowTitle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetRowValue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SetRowValue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetPageTitle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SetPageTitle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetPageValue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SetPageValue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SetColumTitle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SetColumValue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SetCellBlank . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetDataSurfInfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetPageInfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Resize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Evaluate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1127 1127 1128 1128 1129 1130 1131 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163

GetDataSurfType . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Element Objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Element Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Accessing Element Nodes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Element Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetAllArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PutAllArray. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetNodeList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PutNodeList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ClearNodeList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Prop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Matl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetCentroid. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetFaceCentroid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetFaceNormal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetFaceArea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetFaceNodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetEdgeNodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IsParabolic. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Thickness . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Area. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Inertia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetMinMaxEdgeLength . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Function Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Function Object Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Function Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetFunctionList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PutFunctionList. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetValue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GFXArrow Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GFXArrow Object Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GFXArrow Object Methods. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PutAll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PutAllArray. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PutCoordArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DeleteAll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GFXLine Objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GFXLine Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GFXLine Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PutAll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PutAllArray. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PutCoordArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DeleteAll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GFXPoint Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GFXPoint Object Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GFXPoint Object Methods. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PutAll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PutAllArray. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PutCoordArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DeleteAll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GFXQuad4 Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GFXQuad4 Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GFXQuad4 Object Methods. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PutAll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PutAllArray. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PutCoordNormalArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1166 1167 1167 1169 1170 1170 1174 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1193 1193 1194 1195 1196 1198 1198 1199 1199 1200 1201 1202 1204 1204 1205 1205 1206 1207 1208 1210 1210 1211 1211 1212 1213 1214 1216 1216 1217 1217 1218 1219

PutCoordArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DeleteAll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GFXTria3 Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GFXTria3 Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GFXTria3 Object Methods. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PutAll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PutAllArray. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PutCoordNormalArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PutCoordArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DeleteAll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GlobalPly Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GlobalPly Object Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GlobalPly Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Group Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Group Object Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Group Range Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Group List Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Group Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Range . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RangeReset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RangeGetAll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RangeNext. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RangeAdd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RangeDelete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RangeDeleteAll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SetAdd. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SetAddOpt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Add . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SelectModel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SelectMesh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SelectContact . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SelectAllOnLayer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ReferencedGroups. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Layer Objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Layer Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Layer Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Layup Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Layup Object Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Layup Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AddPly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . InsertPly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SetPly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SetAllPly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetPly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetAllPly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DeletePly. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Clear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Compute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Compute2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . HasGlobalPly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . HasMaterial. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . HasFullGlobalPly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LoadBolt Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LoadBolt Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LoadBolt Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AddArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1220 1221 1222 1222 1223 1223 1224 1225 1226 1227 1228 1228 1228 1229 1229 1231 1233 1234 1234 1236 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1252 1252 1254 1254 1256 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1270 1270 1270 1271

LoadDefinition Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LoadDefinition Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LoadDefinition Object Methods. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PutAll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ResetNextLoad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . NextLoad. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CountLoads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IsTotalLoad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LoadETemp Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LoadETemp Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LoadETemp Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AddArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LoadGeom Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LoadGeom Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LoadGeom Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetSearch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LoadGeom Load Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LoadMesh Objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LoadMesh Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LoadMesh Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetSearch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Add . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AddArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LoadMesh Load Types. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LoadNTemp Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LoadNTemp Object Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LoadNTemp Object Methods. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AddArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LoadSet Objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LoadSet Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LoadSet Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Expand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Compress. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ResetNextLoad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . NextLoad. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ResetNextLoadDef . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . NextLoadDef. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetCombination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PutCombination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . MapOutput Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . MapObject Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . MapOutput Object Methods. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . MapFromModelToSet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . MapFromModelToLocation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Material Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Material Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Accessing Material Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Material Array Index Values. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Material Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AutoComplete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Node Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Node Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Node Object Methods. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetAll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetAllArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetCoordArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PutAll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1272 1272 1273 1273 1274 1275 1276 1277 1278 1278 1278 1279 1280 1280 1284 1284 1285 1287 1287 1291 1291 1292 1293 1295 1296 1296 1296 1297 1298 1298 1303 1303 1304 1305 1306 1307 1308 1309 1310 1312 1312 1313 1313 1316 1318 1318 1320 1320 1324 1324 1325 1325 1326 1326 1327 1328 1329

PutAllArray. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetClosest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Optim Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Optim Object Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Optim Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Output Objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Output Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Output Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Output Vector IDs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Output Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Corner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X............................................................................ Y............................................................................ Z ............................................................................ GetFromSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetOutputList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetOutputListAtID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetOutputListAtSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PutOutputList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . InitScalarAtNode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetScalarAtNode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetScalarAtNodeSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PutScalarAtNode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . InitVectorAtNode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetVectorAtSingleNode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetVectorAtNode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetVectorAtNodeSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PutVectorAtNode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . InitScalarAtElem. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetScalarAtElem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetScalarAtElemSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PutScalarAtElem. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . InitElemWithCorner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetElemWithCorner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetElemWithCornerSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PutElemWithCorner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . InitScalarAtBeam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PutScalarAtBeam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FindMaxMin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OutputSet Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OutputSet Object Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OutputSet Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Vector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OutputVectors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Point Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Point Object Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Point Object Methods. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . NodesAsSet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Curves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CurvesAsSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SurfacesAsSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Property Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Property Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Accessing Property Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Property Array Index Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Property Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1330 1331 1332 1332 1333 1334 1334 1336 1337 1338 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1362 1364 1366 1368 1369 1370 1371 1371 1372 1372 1373 1374 1374 1374 1375 1377 1378 1379 1380 1381 1381 1383 1384 1394

ComputeShape . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ComputeStdShape. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ComputeGeneralShape . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Matl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Layup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Thickness . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Area. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Inertia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Report Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Report Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Report Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Solid Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Solid Object Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Solid Object Methods. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Points. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PointsAsSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Curves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CurvesAsSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FreeCurvesAsSet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Surfaces. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SurfacesAsSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . MassProp. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Export . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IsSolid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IsSheet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IsWire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IsGeneral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Facets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . NodesAsSet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ElementsAsSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BoundingBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Surface Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Surface Object Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Surface Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Inside. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . InsideXYZ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ParamToXYZ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XYZToParam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Area. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ApproximateArea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tangents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Normal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . NormalAtXYZ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ProjectOnto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Solid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BoundarySurfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BoundarySurfacesAsSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AdjacentSurfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AdjacentSurfacesAsSet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Curves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CurveLoops. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CurvesAsSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Points. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PointsAsSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1395 1397 1399 1400 1401 1402 1403 1404 1405 1405 1405 1406 1406 1407 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1423 1424 1425 1426 1427 1427 1431 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451

EndPoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . EndPointsAsSet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Planar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cylindrical. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Spherical . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Conical . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Toroidal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IsPlane. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IsCylinder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IsSphere. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IsCone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IsTorus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IsBoundingSolidRegion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Facets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . NodesAsSet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ElementsAsSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ElementsWithFaces. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ElementFaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BoundingBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BoundingSize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . NormalBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . MaxNormalDeviation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AngleAtPoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . HasPole . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . MinRadiiOfCurvature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RationalParamToXYZ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ResetMeshAttr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Mesh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Text Objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Text Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Text Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TMGBC Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TMGBC Object Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TMGBC Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetAll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PutAll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TMGCtrl Objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TMGCtrl Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TMGCtrl Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetAll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PutAll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TMGInt Objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TMGInt Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TMGInt Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetAll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PutAll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TMGOpt Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TMGOpt Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TMGOpt Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetAll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PutAll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TMGReal Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TMGReal Object Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TMGReal Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetAll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1484 1484 1486 1487 1487 1488 1488 1489 1490 1490 1491 1491 1492 1493 1493 1494 1494 1495 1496 1496 1497 1497 1498 1499 1499 1500 1500

PutAll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Variable Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Variable Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Variable Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetVarID. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Evaluate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Define . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DefineReal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . View Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . View Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . View Option Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . View Object Methods. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Initialize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetMultiGroupList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SetMultiGroupList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ClearMultiGroupList. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Visible . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Redraw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Regenerate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IsLayerVisible. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SetLayerVisible. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Rotate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AlignCSys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AlignVector. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Align2Vector. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AlignWorkplane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AutoscaleAll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AutoscaleVisible . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1501 1502 1502 1503 1503 1504 1505 1506 1507 1507 1517 1521 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536

FEMAP Events
Receiving and Processing Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Alternate Method - Event Callbacks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Format of Event Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . The FEMAP Events. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Using FEMAP Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1537 1537 1538 1538 1539

API-31

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 programming, you should have no problem understanding the concepts discussed. If you are not, this section 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 properties. 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, Preferences) 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-32

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 understand 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 differences 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 descriptive 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 summarizes what you will find in the manual:

API Definition in the Manual

Description

From Basic Visual Basic 6 Visual Basic .NET


Boolean Integer Integer Single Double String

From C++

BOOL INT2 INT4 REAL4 REAL8 STRING

Single byte, True/ False value 2-byte integer 4-byte integer 4-byte real 8-byte real character string, null terminated

Boolean Integer Long Single Double String

Unsigned Char short long, int float double char[..]

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 4byte 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 incompatible 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-33
This will generate a type mismatch error, because the String variable has not been initialized. If instead you use: Sub Main Dim Set Dim s = 'Full Subroutine usable in FEMAP API window

App As femap.model ' Declare App model object App = GetObject(,"femap.model") ' Instantiate App object s As String ""

rc = App.feNotesGet( 1, s ) ' Puts model notes into String s MsgBox(s) End Sub then, everything will work properly. One final difference is that the Set command is no longer used in Visual Basic .NET. Throughout 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 correct syntax: Dim femap as Object femap = GetObject(, femap.model) ' Shows String s in modal dialog box

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-34
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 rc = e.WriteDoubleArray(3, va) 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 ' Variant to Array ' Write Variant as Array

API-35
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 single 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-36

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 in the Manual

Safe Array Creation

BOOL INT4 REAL8 To create Variants, you can use: CComVariant vdir;

CComSafeArray<BOOL> ... CComSafeArray<LONG> ... CComSafeArray<DOUBLE> ...

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 declaring 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-37
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 multidimensional 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 however 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 BOOL dof[0..5] or VARIANT vdof Description An array of flags telling whether or not the corresponding degrees of freedom are constrained (True) or free (False) in this 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 procedure 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-38
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 FE_FAIL FE_CANCEL FE_INVALID FE_NOT_EXIST FE_SECURITY Events FEVENT_INITIALIZE FEVENT_NEWMODEL FEVENT_ENDMODEL FEVENT_SHUTDOWN FEVENT_COMMAND FEVENT_PROGSTART Option Definitions FO_FILE_MODEL FO_FILE_NEUTRAL FO_FILE_ABAQUS Entity Types FT_POINT FT_CURVE FT_SURFACE
3 4 5 1 2 3 1 2 3 4 5 6 -1 0 2 3 4 5

FE_NOT_AVAILABLE FE_TOO_SMALL FE_BAD_TYPE FE_BAD_DATA FE_NO_MEMORY FE_NO_FILENAME

6 7 8 9 10 16

FEVENT_PROGEND FEVENT_DRAWSTART FEVENT_DRAWEND FEVENT_ANALYSISEND FEVENT_RESULTSEND

7 8 9 10 11

FO_FILE_ANSYS FO_FILE_MSC_NASTRAN FO_FILE_NX_NASTRAN

4 5 6

FT_VAR FT_OUT_CASE FT_OUT_DIR

27 28 29

API-39
FT_VOLUME FT_NODE FT_ELEM FT_CSYS FT_MATL FT_PROP FT_LOAD_DIR FT_SURF_LOAD FT_GEOM_LOAD FT_NTHERM_LOAD FT_ETHERM_LOAD FT_BC_DIR FT_BCO FT_BCO_GEOM FT_BEQ FT_ESP_TEXT FT_VIEW FT_GROUP Group Rules FGD_CSys_byDefCSys FGD_CSys_byType FGD_Point_ID FGD_Point_byDefCSys FGD_Point_onCurve FGD_Curve_ID FGD_Curve_byPoint FGD_Curve_onSurface FGD_Surface_ID FGD_Surface_byCurve FGD_Surface_onVolume
1 2 3 4 5 6 7 8 9 10 11 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 24

FT_OUT_DATA FT_REPORT FT_BOUNDARY FT_LAYER FT_MATL_TABLE FT_FUNCTION_DIR FT_FUNCTION_TABLE FT_SOLID FT_COLOR FT_OUT_CSYS FT_CONTACT FT_GRTYPE FT_AMGR_DIR FT_TMG_BCO FT_TMG_CONTROL FT_TMG_INTEGER FT_TMG_REAL FT_TMG_OPTION

30 31 32 33 34 35 36 39 40 41 58 59 60 112 113 114 115 116

FGD_Load_byPoint FGD_Load_byCurve FGD_Load_bySurface FGD_BCo_byPoint FGD_BCo_byCurve FGD_BCo_bySurface FGD_Text_byColor FGD_Point_byColor FGD_Curve_byColor FGD_Surface_byColor FGD_Volume_byColor

46 47 48 49 50 51 52 53 54 55 56

API-40
FGD_Volume_ID FGD_Volume_bySurface FGD_Text_ID FGD_Boundary_ID FGD_Boundary_byCurve FGD_Node_ID FGD_Node_byDefCSys FGD_Node_byOutCSys FGD_Node_onElem FGD_Elem_ID FGD_Elem_byMatl FGD_Elem_byProp FGD_Elem_byType FGD_Elem_byNode FGD_Matl_ID FGD_Matl_onProp FGD_Matl_onElem FGD_Matl_byType FGD_Prop_ID FGD_Prop_onElem FGD_Prop_byMatl FGD_Prop_byType FGD_Load_byNode FGD_Load_byElem FGD_BCo_ID FGD_BEq_byNode FGD_Node_atPoint FGD_Node_atCurve FGD_Node_atSurface FGD_Node_atSolid
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41

FGD_Solid_byColor FGD_CSys_byColor FGD_Node_byColor FGD_Elem_byColor FGD_Prop_byColor FGD_Matl_byColor FGD_Text_byLayer FGD_Point_byLayer FGD_Curve_byLayer FGD_Surface_byLayer FGD_Volume_byLayer FGD_Solid_byLayer FGD_CSys_byLayer FGD_Node_byLayer FGD_Elem_byLayer FGD_Prop_byLayer FGD_Matl_byLayer FGD_Solid_ID FGD_Solid_byCurve FGD_Solid_bySurface FGD_Curve_onSolid FGD_Surface_onSolid FGD_Point_byProp FGD_Curve_byProp FGD_Surface_byProp FGD_Volume_byProp FGD_Solid_byProp FGD_Contact_ID FGD_Contact_byColor FGD_Contact_byLayer

57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86

API-41
FGD_Elem_atPoint FGD_Elem_atCurve FGD_Elem_atSurface FGD_Elem_atSolid
42 43 44 45

FGD_CSys_onNode FGD_CSys_onPoint FGD_Elem_byShape

87 88 89

API-42

API-43

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, Worksheets(1).Cells(Row, Worksheets(1).Cells(Row, Worksheets(1).Cells(Row, Worksheets(1).Cells(Row, Worksheets(1).Cells(Row, Worksheets(1).Cells(Row, Worksheets(1).Cells(Row, 1).Value 2).Value 3).Value 4).Value 5).Value 6).Value 7).Value 8).Value = = = = = = = = "ID" "Layer" "Color" "Def CSys" "Out CSys" "X" "Y" "Z"

API-44
'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, Worksheets(1).Cells(Row, Worksheets(1).Cells(Row, Worksheets(1).Cells(Row, Worksheets(1).Cells(Row, Worksheets(1).Cells(Row, Worksheets(1).Cells(Row, Worksheets(1).Cells(Row, 1).Value 2).Value 3).Value 4).Value 5).Value 6).Value 7).Value 8).Value = = = = = = = = nd.ID nd.layer nd.Color nd.defCSys nd.outCSys nd.x nd.y 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 Dim Dim Dim Dim Dim Dim Dim Dim Dim x As Double y As Double z As Double l As Long co As Long d As Long oc As Long e As Long rc As Long ID As Long

API-45
Dim pb As Variant '4. Make the titles in the first row of the worksheet. Row = 1 Worksheets(1).Cells(Row, Worksheets(1).Cells(Row, Worksheets(1).Cells(Row, Worksheets(1).Cells(Row, Worksheets(1).Cells(Row, Worksheets(1).Cells(Row, Worksheets(1).Cells(Row, Worksheets(1).Cells(Row, 1).Value 2).Value 3).Value 4).Value 5).Value 6).Value 7).Value 8).Value = = = = = = = = "ID" "Layer" "Color" "Def CSys" "Out CSys" "X" "Y" "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, Worksheets(1).Cells(Row, Worksheets(1).Cells(Row, Worksheets(1).Cells(Row, Worksheets(1).Cells(Row, Worksheets(1).Cells(Row, Worksheets(1).Cells(Row, Worksheets(1).Cells(Row, Worksheets(1).Cells(Row, z, l, co, e, d, oc, pb) 1).Value = ID 2).Value = l 3).Value = co 4).Value = d 5).Value = oc 6).Value = x 7).Value = y 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, Worksheets(1).Cells(Row, Worksheets(1).Cells(Row, Worksheets(1).Cells(Row, Worksheets(1).Cells(Row, Worksheets(1).Cells(Row, ID = nd.nextID 9).Value = pb(0) 10).Value = pb(1) 11).Value = pb(2) 12).Value = pb(3) 13).Value = pb(4) 14).Value = pb(5)

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-46
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-47
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 Dim Dim Dim Dim Dim Dim Dim Dim Dim x As Double y As Double z As Double l As Long co As Long d As Long oc As Long e As Long rc As Long 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-48
'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 output 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 Set Dim Dim o As Object o = App.feOutput rc As Long 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-49
'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-50
'9. Make output for 90,000 elements. Make both the center and corner results. For i = 0 To ID(i) = i + c(i) = i c1(i) = i + c2(i) = i + c3(i) = i c4(i) = i Next i cV = c c1V = c1 c2V = c2 c3V = c3 c4V = c4 89999 1 0.1 0.2 0.2 0.1

'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-51
'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 rc rc rc = = = = f.SetSearchString("GRID", "") f.FixedFormat(10, wVar) f.SetAutoFormat() 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. The

API-52
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 Dim Dim Dim Dim Dim a(5) As Double va As Variant rc As Long b(4) As Boolean vb As Variant 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-53
b(0) b(1) b(2) b(3) b(4) vb = rc = = True = False = True = True = 3 b 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 Dim Dim Dim Dim x As Double i As Long s As String vb As Variant 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-54
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 Dim Dim Dim Dim Dim Dim Dim Dim Dim Dim App As femap.model feNode As Object fN As Object nodeSet As Object feElem As Object nodeCount As Long nodeX As Double nodeY As Double nodeZ As Double nodeID As Long elemID As Long

Dim vDOF As Variant Dim vNodeArray As Variant Dim vDum As Variant vDOF = DOF nodeX = 0# nodeY = 0# nodeZ = 0#

API-55
'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 ReDim ReDim ReDim nodeArray(nodeCount) faceArray(nodeCount) Weight(nodeCount) As DOFArray(nodeCount * As Long As Long Long 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-56
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-57
______________________________________________________________________________ Sub Main Dim App As Object Set App = GetObject(, "femap.model") Dim Dim Set Dim Set Dim Set Dim Set Dim Set Dim Set rc as Integer BCSet As Object BCSet = App.feBCSet BC As Object BC = App.feBCNode LdSet As Object LdSet = App.feLoadSet Ld As Object Ld = App.feLoadMesh Nt As Object Nt = App.feLoadNTemp Et As Object 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-58
'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-59
'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 Dim Dim Dim Dim v setID def_vecID Nodal vec_title As As As As As Long Long Long Boolean 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-60
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 Dim Dim Dim Dim Dim s1 As Object view_Group As sID As x As y As z As Long Long Long Long 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-61
'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-62
'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-63

'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-64
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-65
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-66
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-67
{ 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-68
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-69

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 connect 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-70
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 Collector. 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 running (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 interface and can not be avoided. If you are using the integrated WinWrap environment (API Programming) however, you can overcome 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 environment is fully integrated with FEMAP, it can always determine the session that launched your application 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 programming 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-71
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 different depending on where you are working.
In Visual Basic

In Microsoft Visual Basic, go to the Project>References command (or Project->Add Reference in VB .NET) Look through the list of available references. 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 reference to femap, make sure it is checked and press OK. Although the list may be somewhat different, 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 command.
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 reference.

API-72
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 available 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 Dim App as femap.model Set App = feFemap() to always connect to the current FEMAP session.

API-73
To create a new FEMAP session, using the type library use: Dim App as femap.model Set App = CreateObject(femap.model) As stated previously, there are definite advantages to using the type library. One of which is the popup list of available 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 939.

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 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

API-74
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 methods 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 additional 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 applications. 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-75

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 feAppRegisterAddInPane 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 be embedded directly into one of your windows. This can provide you all of the graphical capabilities 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.

API-76
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 button 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() 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

API-77

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 maximize 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 modifying 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 addition, you can turn message capture on and off at any time. The procedure to capture messages is as follows:

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.

API-78

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 Windows 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 feAppRegisterMessageHandler 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 message however was created to allow interprocess communication of other data types. In this message, 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 embedding a messages window, but does provide the flexibility of modifying and displaying the messages 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 MsgWindowProc 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. 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 messages. Global Global Global Global Global femap As Object Const GWL_WNDPROC = (-4&) Const GWL_HWNDPARENT = (-8) Const WM_COPYDATA = &H4A PreviousWindowProc As Long

API-79
'=============================================================== 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) '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

API-80
'---------------------------------------------------------------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. 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

API-81
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 visible, 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 invisible state (with-out calling feAppVisible( True ) ). Using this function simply locks the user interface 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 beginning 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 performance 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.

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 commands. 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.

API-82

Geometry Replacement Options

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 information.

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


Property Description If True, active Parasolid geometry will be updated with the geometry being imported. This option is actually on the Solid Model Read Options dialog box and allows access to the other options. Type

Solid_UpdateActive

BOOL

Mesh Sizing The type of mesh resizing to do if you are updating Parasolid geometry on import: 0=Keep existing sizes, 1=Update sizes on curves that exceed a certain length change tolerance, 2=Resize all.

Solid_UpdateResizeMode

INT4

API-83
Geometry Replacement Options
Property Description The tolerance above which curve mesh sizes will be recomputed when curves change length during import of updated Parasolid geometry. Only used if the appropriate Solid_UpdateResizeMode is used. Type

Solid_UpdateResizeTol

REAL8

Update Options If True, active Parasolid geometry and any mesh on that geometry will be deleted if updated geometry is imported. Only used if Solid_UpdateActive is also True. If True, the geometry will be updated using Parasolid Identifiers. Only used if Solid_UpdateActive is also True. If True, the existing geometry will be updated to use the Material Data of the imported solid. Only used if Solid_UpdateActive is also True.

Solid_UpdateDelete

BOOL

Solid_UpdateParasolidIdent

BOOL

Solid_UpdateMaterialData

BOOL

API-84

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

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

PgSetup_IntegerScaling

BOOL

PgSetup_FillMargins PgSetup_CustomHeight PgSetup_CustomWidth PgSetup_VertAlign PgSetup_HorzAlign

BOOL REAL8 REAL8 INT4 INT4

API-86

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 General Pref_ScrollBackLines Number of lines of text to be saved for scrollback in the Messages and Lists window. Number of times an error message will be repeated before listing stops. A final message will be listed with an error count. INT4 Description Type

Pref_ScrollBackLines Fonts and Colors

INT4

API-87
Messages Preference Properties
Property Pref_MessageFont Pref_MsgWndFontSize Pref_ListingFont Pref_ProgramFont Pref_ProgramFontSize Pref_MsgWndBackColor Pref_MsgWndTextColor Pref_MsgWndTextBold Pref_MsgWndCmdColor Pref_MsgWndCmdBold Pref_MsgWndHighColor Pref_MsgWndHighBold Pref_MsgWndWarnColor Pref_MsgWndWarnBold Pref_MsgWndErrorColor Pref_MsgWndErrorBold Pref_MsgWndFont Description Name of font used for messages (other than listings) in the Message Window. Message window font size in points. Name of font (fixed-pitch) used for listings in the Message Window. Name of font used for API and Program File windows. Font size of the font used for the API and Program File panes Message window Background Color. Message window Text Color. If True, normal Text written to the Message Window uses a bold font Message window Command Color If True, Command names written to the Message Window use a bold font Message window Highlighted Text Color. If True, Highlighted Text written to the Message Window uses a bold font Message window Status Message Color. If True, Status Messages written to the Message Window use a bold font Message window Error Color. If True, Error messages written to the Message Window use a bold font Name of fixed-pitch font to be used in Messages and Lists window. Type STRING REAL8 STRING STRING REAL8 INT4 INT4 BOOL INT4 BOOL INT4 BOOL INT4 BOOL INT4 BOOL STRING

API-88

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 Startup View (from View Library) Pref_LibViewNumber Index of default view in the view library. INT4 Description Type

Background Bitmaps (Render Only) Pref_ViewBkgdBitmap Pref_ViewLogo Filename for the Background bitmap. Filename for the Logo bitmap. STRING STRING

API-89
Views Preference Properties
Property Description If True, the View Logo is defined in Screen Resolution, and will be scaled when printed. If False, it is in Print Resolution and is scaled for Screen display. Type

Pref_ViewLogoScreenRes

BOOL

Picture Copy Pref_PictureCopyTextForXY Controls whether comma-separated text is sent to the clipboard when an XY plot is copied. True = Include Text. Controls whether a Windows Metafile is sent to the clipboard when the graphics area is copied. True = Include Metafile format. BOOL

Pref_MetafileToClip Picture Save Defaults Pref_PictureFormat Pref_AnimationFormat

BOOL

Controls the default picture format for Picture Save. 0=BMP, 1=JPG, 2=PNG, 3=GIF, 4=TIF Controls the default animation format for Picture Save. 0=BMP, 1=BMP series, 2=AVI, 3=GIF

INT4 INT4

Picture Save Defaults (Resolution Options) Pref_ResPrintMethod Pref_ResPrintScale Specifies the Print Resolution method (0=Printer, 1=Screen, 2=Screen Scaled By) Scale factor used by Screen Scaled By method in the Print Resolution section Specifies the Copy/Save Resolution method (0=Screen, 1=Screen Scaled By, 2=Screen Scaled With Width, 3=Screen Scaled With Height, 4=Fixed Size) Scale factor used by Screen Scaled By method in the Copy/Save Resolution section Resolution used by Screen Scaled With Width method in the Copy/Save Resolution section Resolution used by Screen Scaled With Height method in the Copy/Save Resolution section. Resolution used by Fixed Size method to set the Width in the Copy/Save Resolution section Resolution used by Fixed Size method to set the Height in the Copy/Save Resolution section INT4 REAL8

Pref_ResCopySaveMethod

INT4

Pref_ResCopySaveScale Pref_ResScaleWithWidth Pref_ResScaleWithHeight Pref_ResFixedWidth Pref_ResFixedHeight

REAL8 INT4 INT4 INT4 INT4

API-90
Views Preference Properties
Property Pref_ResPenMethod Pref_ResPenScale Pref_ResScreenLogoScale Pref_ResPrintLogoScale Pref_ResCopySaveLogoScale Description Specifies the Pen Width method (0=Auto, 1=Manual Factor) Sets Manual Factor value in the Pen Width section Sets the value for Screen Scale in the Logo and Background Bitmap Scaling section Sets the value for Print Scale in the Logo and Background Bitmap Scaling section Sets the value for Copy/Save Scale in the Logo and Background Bitmap Scaling section Type INT4 INT4 REAL8 REAL8 REAL8

Picture Save Defaults (GIF Options) Pref_GIFColorOpt Pref_GIFAnimationDelay Pref_GIFFrameSeries Options Pref_AltFillMode Pref_WorkplaneNotVisible Alternate filling mode for polygons. Controls whether the workplane will be visible when you start a new model. True = Workplane Never Visible in New View Obsolete - see Pref_DefContourPalette Default Contour Palette 0=Standard, 1=No Magenta, 2=Temperature, 3=Red,Yellow,Green, 4=Gray If True, the views that were active when a model was saved are reopened when the model is opened. Aspect ratio for new views. BOOL BOOL The color options for creating a GIF picture file. 1=Network, 2=Octree, 3=Color Diffusion (Dither) The delay between frames of an animated GIF file Controls whether Animations will be saved in GIF formats as a series of files or a single animated GIF. True=Save GIF Frame Series. INT4 INT4 BOOL

Pref_AltContourPalette

BOOL

Pref_DefContourPalette

INT4

Pref_OpenSavedViews Pref_AspectRatio

BOOL REAL8 BOOL

View and Dynamic Rotation Pref_DeltaAngle Angle for incremental rotation in the View, Rotate command. REAL8

API-91
Views Preference Properties
Property Pref_ViewDynamicMode Pref_ViewDynamSpeed Pref_ViewDimetric Pref_ViewIsometric Pref_ViewTrimetric Pref_AngleIsometric[0..2] or VARIANT vPref_AngleIsometric Pref_AngleDimetric[0..2] or VARIANT vPref_AngleDimetric Pref_AngleTrimetric[0..2] or VARIANT vPref_AngleTrimetric The rotation angles assigned to the corresponding buttons in the View, Rotate command. Description Dynamic rotation mode: 0=Fast Redraw, 1=Reduced Bitmap, 2=Full Bitmap. Speed of dynamic rotation. Text for Dimetric button in View, Rotate. Text for Isometric button in View, Rotate. Text for Trimetric button in View, Rotate. Type INT4 REAL8 STRING STRING STRING REAL8

REAL8

REAL8

API-92

Render Preference Properties

3.3.1.5 File, Preferences - Render tab

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

Render Preference Properties


Property Render Options Pref_RenderHW Pref_RenderMidside Pref_RenderMemoryOpt If True, Render mode will attempt to use Hardware Acceleration. If True, Render mode will Use Midside Nodes when drawing elements. If True, render Memory Optimization is on BOOL BOOL BOOL Description Type

API-93
Render Preference Properties
Property Description Type

Pref_RenderBeamEdges Pref_RenderSmoothLines Pref_RenderAutoRegen Pref_RenderFastPick

Controls drawing of Beam Facet Edges between cross sections of beams If True, uses antialiasing to render smooth lines If True, graphics are completely regenerated after every command If True, enables faster, in-memory selection of entities

BOOL BOOL BOOL BOOL

Pref_RenderEdgesAsLines

If True, element and surface edges are drawn as lines rather than using edge flags.

BOOL

Pref_RenderVertexArrays

0=No use of Vertex Arrays, 1=Partial, 2=Full for all graphics

INT4

Pref_RenderSearchDepth Include In Dynamic Rotation

Search Depth for adding entities to graphics system

INT4

Pref_RenderRotate[0..21] or VARIANT vPref_RenderRotate

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, 7-Node, 8-Element, 9-Constraint, 10-Load, 11Connections, 12-Fill, 13-Filled Edges, 14-Shading, 15-Undeformed, 16-Labels, 17-Workplane, 18-Mesh Size, 19-Smooth Lines, 20-Elements as Free Edge, 21-Element Symbols

BOOL

Textures Pref_RenderTex2D Pref_RenderTexSmooth Pref_RenderTexAllTri Pref_RenderTexNumber Advanced/Debug Options Pref_RenderTiming If True, prints render timings BOOL If True, uses 2D Texture Mapping If True, uses smooth textures If True, forces all triangles for texture mapping Max Number of Textures BOOL BOOL BOOL INT4

API-94
Render Preference Properties
Property Pref_RenderBitmapAlignment Pref_RenderPixelFormat Pref_RenderBitBltDelay Description Alignment of Bitmaps stored for OpenGL - do not change. Controls selection of Graphics Descriptors 0=Automatic Value needed for Delay in synchronizing OpenGL and GDI on some graphics cards (0..1000) Type INT4 INT4 INT4

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

API-95

User Interface Preference Properties


Property Menus and Dialog Boxes Pref_AltTheme Pref_RepeateCreate If True, use an Alternate Color Scheme and style for the user interface If True, entity Create Commands will repeat. If True, each dialog position is remembered during a session and if a dialog is redisplayed it will be located at the same position as when it was last closed. If True, redefine certain accelerator keys to access Top, Bottom, ... Views. Sets the Fast Output Delete option. 0=Confirm, 1=Fast (No Undo), and 2=Preserve Undo. Number of files on the Most Recently Used list. BOOL BOOL Description Type

Pref_RememberDialogPos

BOOL

Pref_AltAccelerator Pref_FastOutputDelete Pref_RecentlyUsedFiles Graphical Selection Pref_TrackMousePick Pref_PickAllInside Pref_TooltipDelay Pref_TooltipDuration Mouse Interface Pref_ReverseMouseWheel Pref_ReversePanZoom Meshing Toolbox Pref_TbxExpandActive Pref_TbxAutomesh Dockable Panes

BOOL INT4 INT4

Activates dynamic selection tracking. Controls selection of entities when screen area picking is used. Delay before Selector Tooltips appear (in tenths of a second). Length of time before Selector Tooltips automatically disappear (in tenths of a second).

BOOL BOOL INT4 INT4

Controls the direction of zoom when you turn the mouse wheel If True, hold down Shift to Zoom, and Ctrl for Pan in Dynamic Rotation. If False, reverse the keys.

BOOL BOOL

If True, only the active tool will be expanded 0=AutoRemesh, 1=Track Changes, 2=Disable Remesh

BOOL INT4

API-96
User Interface Preference Properties
Property Pref_AnimatePanes Description If True, the docking panes will animate when you 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 they are either on the top or left, whichever takes less space. If True, the docking position indicators will be shown using the original symbols instead of the new symbols. Type BOOL

Pref_PaneCaptionsOnTop

BOOL

Pref_PaneAltDockSymbols Model Info Pref_ModelInfoMaxEntity Pref_AutomaticTitles Show Entities Defaults

BOOL

Limits the max number of items of each type to show in the Model Info tree. Controls whether automatic titles will be given to otherwise untitled entities.

INT4 BOOL

Database Preference Properties

API-97

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 Database Options Pref_BackupModel Pref_DeleteScratchFile If True, any existing model will be copied before each save. If True, scratch files are automatically deleted whenever you exit a model. BOOL BOOL Description Type

API-98
Database Preference Properties
Property Pref_DBLowDiskWarning Pref_DBUndoLevels Database Performance Pref_DBCacheMaxMemoryPct Pref_DBCacheBlocksPerPage Pref_DBCacheMaxLabel Sets max percentage value to use for Database Memory Limit Number of blocks per page in the database cache. Maximum cached database node/element label. Choose and Open/Save Method. 0=Window I/O, 1=C I/O, 2=Windows 64K I/O, and 3=C 64K I/O. See Section 3.4.11.4, "feRunIOTest" for information about running the Read/Write Test to determine the preferred value for Open/Save Method INT4 INT4 INT4 Description Issues a warning when free space on the model scratch disk falls below this amount (in MByte). 0=Disable. Maximum number of undo levels. Type INT4 INT4

Pref_OpenSaveMethod

INT4

Timed Save Pref_TimedSaveOn Pref_TimedSaveNotify Pref_TimedSaveInterval Pref_TimedSaveCommands Scratch Directory Pref_DBScratch Path (no filename) for model scratch file. STRING Turns on Timed Save automatically. Sets Timed Save to notify you before saving. Number of minutes between timed saves. Number of commands between timed saves. BOOL BOOL INT4 INT4

Geometry/Model Preference Properties

API-99

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 Geometry Preferences Pref_GeomEngine Default geometry engine: 0=Std, 1=Parasolid. INT4 Description Type

API-100
Geometry/Model Preference Properties
Property Description 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. 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, 1=Move To No Pick Layer, 2=Do Nothing. If True, geometry scale factors are automatically adjusted to match the modeling scale factor. Type

Pref_GeometryScale

REAL8

Pref_ConstructionGeometry Pref_GeomScaleAdjust

INT4 BOOL

Load Expansion on Midside Nodes Pref_GeomLoadEdgeFactor Pref_GeomLoadTriFactor Pref_GeomLoadQuadFactor Adjustment factor for load expansion on midside nodes along edges. Adjustment factor for load expansion on midside nodes on tri faces. Adjustment factor for load expansion on midside nodes on quad faces. Enables default adjustment of nodal loads at the midside of parabolic elements during geometry load expansion. REAL8 REAL8 REAL8

Pref_AdjMidsideGeomLoad Log File Pref_GeomLogFile Meshing and Properties Pref_MeshInMemory Pref_FastTriMesh Pref_LengthBasedMeshSize Pref_AltSectionProp

BOOL

Enables a log file for all solid modeling operations (for debugging purposes only).

BOOL

Allows the boundary mesher to allocate additional memory to speed up its operation. Chooses the Fast Tri Mesher as the default triangular mesher. If True, the default mode for mesh sizing will be length-based, rather than parametric. If True, uses the alternate section property calculator

BOOL BOOL BOOL BOOL

API-101
Geometry/Model Preference Properties
Property Output Orientation button Defines raw orientation of isotropic material solid element output vector data 0 = Material Direction 1 = Global Rectangular 2 = Element Defines raw orientation of anisotropic material solid element output vector data 0 = Material Direction 1 = Global Rectangular 2 = Element Defines raw orientation of hyperelastic material solid element output vector data 0 = Material Direction 1 = Global Rectangular 2 = Element Defines raw orientation of Tria3 stress output vector data 0 = First Edge 1 = Midside Location Defines raw orientation of Tria3 strain output vector data 0 = First Edge 1 = Midside Location Defines raw orientation of Tria3 force output vector data 0 = First Edge 1 = Midside Location Defines raw orientation of Tria6 stress output vector data 0 = First Edge 1 = Midside Location Defines raw orientation of Tria6 strain output vector data 0 = First Edge 1 = Midside Location Defines raw orientation of Tria6 force output vector data 0 = First Edge 1 = Midside Location Description Type

Info_OrientSolidIsoOutput

INT4

Info_OrientSolidAnisoOutput

INT4

Info_OrientSolidHyperOutput

INT4

Info_OrientTria3StressOutput

INT4

Info_OrientTria3StrainOutput

INT4

Info_OrientTria3ForceOutput

INT4

Info_OrientTria6StressOutput

INT4

Info_OrientTria6StrainOutput

INT4

Info_OrientTria6ForceOutput

INT4

API-102
Geometry/Model Preference Properties
Property Description Defines raw orientation of Quad4 stress output vector data 0 = First Edge 1 = Midside Location 2 = Diagonal Bisector Defines raw orientation of Quad4 strain output vector data 0 = First Edge 1 = Midside Location 2 = Diagonal Bisector Defines raw orientation of Quad4 force output vector data 0 = First Edge 1 = Midside Location 2 = Diagonal Bisector Defines raw orientation of Quad8 stress output vector data 0 = First Edge 1 = Midside Location 2 = Diagonal Bisector Defines raw orientation of Quad8 strain output vector data 0 = First Edge 1 = Midside Location 2 = Diagonal Bisector Defines raw orientation of Quad8 force output vector data 0 = First Edge 1 = Midside Location 2 = Diagonal Bisector Type

Info_OrientQuad4StressOutput

INT4

Info_OrientQuad4StrainOutput

INT4

Info_OrientQuad4ForceOutput

INT4

Info_OrientQuad8StressOutput

INT4

Info_OrientQuad8StrainOutput

INT4

Info_OrientQuad8ForceOutput

INT4

Interfaces Preference Properties

API-103

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 Interface options Pref_AnalysisProg Pref_AnalysisType Pref_NeutralVersion Default analysis program Interface. Default Analysis Type. Neutral file version number when writing Neutral files for third party analysis programs. INT4 INT4 REAL8 Description Type

API-104
Interfaces Preference Properties
Property Pref_NeutralDigits Pref_InterfaceStyle Pref_UseOldAnalysisInterfaces Analysis Monitor Options Pref_AnalysisMonAutoLoad Pref_AnalysisMonMaxLines File Reference Options Pref_FileRefCheck Pref_FileRefGeometry Pref_FileRefModel Pref_FileRefResults General Solver Options Pref_UseVisQ For an integerated solver, turning this on will start the solver with VisQ (if it is available). If True, comments will NOT be written to NASTRAN. This can get around some character set issues in entity titles. If True, FEMAP automatically Computes Principal Stress/Strain and other quantities if they have not been read from results. If True, FEMAP Assumes Shear Strain results are Engineering shear strain. BOOL If True, checks file references when the model is opened If True, creates geometry references when files are read If True, creates analysis model references when files are read If True, creates results file references when files are read. BOOL BOOL BOOL BOOL If True, will automatically load results when using the Analysis Monitor Default Max number of lines to include in the Analysis Monitor BOOL INT4 Description Number of significant digits for real numbers in Neutral files. Default user Interface Style: 0=Structural, 1=Thermal, 2=Adv. Thermal. If True, older, unsupported analysis program interfaces will still be available. Type INT4 INT4 BOOL

Pref_WriteComments

BOOL

Pref_ComputePrincipal

BOOL

Pref_AssumeEngrStrain Nastran Solver Write Options Pref_UseMSCNastran2004

BOOL

If True, enables the MSC.Nastran 2004 interface options

BOOL

API-105
Interfaces Preference Properties
Property Pref_ImproveSinglePrecision Description If True, FEMAP writes real numbers to Nastran files using a nonstandard exponential format that improves precision. Used by the Nastran OP2 file reader to set Output Set titles to the TITLE (1), SUBTITLE (2), or LABLE (3) text. Amount of memory specified for Nastran solver Location of Nastran Output Files (0=Current Directory, 1=Model File Directory, 2=Specified Directory) Name/path of specified Output Directory for Nastran solver output Flag to use ILP64 NX Nastran if installed. Default for Analysis Set to write all Static Loads/ Boundary conditions. If True, an attempt will be made to read NASTRAN comment cards as entity titles. If True, FEMAP will read direction cosine matrices for stress/strain results. If True, FEMAP will delete Synthetic load sets that it creates during reading of NASTRAN LOAD cards. If True, FEMAP will create groups based on entities in INCLUDE files found in a Nastran input file. Type BOOL

Pref_OutputSetTitles Pref_NastranMemory Pref_NastranOutputTo Pref_NastranOutputPath Pref_NastranUseILP64 Pref_NastranWriteAllLdbcSets Pref_ReadComments Pref_ReadDirCos Pref_DeleteRdScratchLdSets Pref_GroupIncludeFiles Auto Answer Post Questions Pref_NasQstOn[0..5] or VARIANT vPrefNasQstOn

INT4 INT4 INT4 STRING BOOL BOOL BOOL BOOL BOOL BOOL

Pref_NasQstVal[0..5] or VARIANT vPrefNasQstVal

Pref_NasQstOn enables Auto Answer for each question. Questions: 0-Read Nonlinear Output, 1-Output Contains QUADR Elements, 2-Output Contains Corner Output, 3-Read PSD/Freq Functions, 4-Read Corner Output, 5-Hide f06 Warning dialog Pref_NasQstVal sets the question answer. Answers: 0 - No, 1 - Yes

BOOL

BOOL

API-106

Library/Startup Preference Properties

3.3.1.10 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 Libraries Pref_LibView Pref_LibMatl Pref_LibProp Filename for View Library. Filename for Material Library. Filename for Property Library. STRING STRING STRING Description Type

Pref_LibConnectionProp

Filename for Connection Property Library

STRING

API-107
Library/Startup Preference Properties
Property Pref_LibFunction Pref_LibAnalysis Pref_LibReport Pref_LibMatlDef Description Filename for Function Library. Filename for Analysis Library. Filename for report Format Library. Filename for Material Definition Library. Type STRING STRING STRING STRING

Startup Program File/Basic Script/Executable and Custom Tools Pref_CustomToolsPath Pref_StartupProg Pref_RunProgNewModels Name/path of specified directory for Custom API Tools Name/path of a startup program (Program File or API) If True, the startup program will be run every time a new model is opened. STRING STRING BOOL

API-108

Color Preference Properties

3.3.1.11 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 Entity Colors 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, 8-Element, 9-Material, 10-Property, 11-Load, 12-Nodal Constraint, 13-Constraint Eqn, 14-Region, 15Connector, 16-Connection Property, 17-Combined Curve Description Type

Pref_EntityColor[0..17] or VARIANT vPref_EntityColor

INT4

API-109
Color Preference Properties
Property Palettes (Blank for Standard) Pref_LibPalette Pref_LibContPal Filename for Color Palette Library. Filename for User Contour Palette Library. STRING STRING Description Type

3.3.1.12 File, Preferences - Spaceball tab

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

API-110

Spaceball Preference Properties

Spaceball Preference Properties


Property Scale Factors Description Type

Debug Options

3.3.2 Global Integer Properties Global Integer Properties


Property Window Handles hMainWnd The handle to the FEMAP main window (read-only). 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 (readonly). NOTE: This is an 8-byte integer, not a 4-byte integer like most other properties. Description

hListWnd

Event Properties The lParam value for the active event. This is not used for many events, but can be accessed from any event callback. NOTE: This is an 8-byte integer, not a 4-byte integer like most other properties.

EventLParam

File Print Print_Copies Message Window A combination of one or more destinations (Screen, Printer, File) where listings are sent. 1=Messages Window only, 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 chosen.(STRING) Number of copies to print (only works with printers that support setting a number of copies).

List_Destination

List_FileName

Global Integer Properties

API-111

Global Integer Properties


Property Model Info Info_CommandNumber Info_MaxID[entity] or VARIANT vInfo_MaxID Info_MinID[entity] or VARIANT vInfo_MinID Info_Increment[entity] or VARIANT vInfo_Increment Info_Count[entity] or VARIANT vInfo_Count Info_NextID[entity] or VARIANT vInfo_NextID Info_ActiveID[entity] or VARIANT vInfo_ActiveID Info_ActiveType[entity] or VARIANT vInfo_ActiveType Info_Color[entity] or VARIANT vInfo_Color Info_OutputCSys Info_NodeType Info_TextBorderColor Info_WorkplaneOnSurface Info_WorkplaneOnSurfacePrev Info_SnapTo Info_SnapStyle The number of commands that have been performed in this database (read-only). The maximum ID of the selected entity (read-only). For information on entities, see Section 3.3.6, "Entity Types". The minimum ID of the selected entity (read-only). For information on entities, see Section 3.3.6, "Entity Types". The ID creation increment for the selected entity. For information on entities, see Section 3.3.6, "Entity Types". The number of selected entities in the database (read-only). For information on entities, see Section 3.3.6, "Entity Types". Description

The ID of the next entity of a given type to be created.

The Active ID of the selected entity. For information on entities, see Section 3.3.6, "Entity Types". The Active Type of the selected entity. For information on entities, see Section 3.3.6, "Entity Types". The default color for the selected entity. For information on entities, see Section 3.3.6, "Entity Types". The default output coordinate system for node creation. The default node type for node creation: 0=Node, 1=Scalar, 2=Extra. 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 the workplane is simply located somewhere in model space. The previous value of Info_WorkplaneOnSurface. Current snap mode: 0=Screen, 1=Grid, 2=Point, 3=Node. The snap grid style: 0=Invisible, 1=Dots, 2=Lines.

API-112

Global Integer Properties

Global Integer Properties


Property Info_SnapSpacingMode Info_WorkplaneTics Info_MatlAngleMethod Description The snap grid spacing mode: 0=Automatic, 1=Uniform, 2=Nonuniform. The number of divisions between labels along the workplane rulers. Sets the method for defining material angles for planar elements: 0=None/Off, 1=Vector, 2=CoordSys, 3=Angle. Sets the direction (0=X,1=Y,2=Z) in the specified coordinate system to be used for material angles. Only used if Info_MatlAngleMethod=CoordSys. Sets the coordinate system ID to be used for the definition of material angles for planar elements if InfoMatlAngleMethod=CoordSys. Sets the default for the minimum number of elements on any curves where a mesh size has not been explicitly specified. From Mesh, Mesh Control, Default Size command. Sets the default number of divisions to be displayed in the parametric directions of surfaces along linear edges: 0=s dir, 1=t dir Sets the default number of divisions to be displayed in the parametric directions of surfaces along curved edges. Unlike linear edges, which specify the total number of divisions, this number is the total to be displayed for a closed surface. The actual number displayed depends on the total curvature of the surface. The color to be used by the View, Show command. The default type of entity to be shown by the View, Show command. If nonzero, the View, Show command will label all selected entities. Controls the setting of the Group, Automatic Add comman: 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 engine. Specifies the ID of the NoPick Layer. Set to 0 for None. The default type of user-defined material to be created.

Info_MatlAngleDir

Info_MatlAngleCSys

Info_MeshSizeMinElem Info_SurfDivisionsLinear[0..1] or VARIANT vInfo_SurfDivisionsLinear Info_SurfDivisionsCurved[0..1] or VARIANT vInfo_SurfDivisionsCurved Info_ViewShowColor Info_ViewShowEntity Info_ViewShowLabel

Info_GroupAutomaticAdd

Info_SplineOrder Info_LayerNoPick Info_MatlUserType

Global Integer Properties

API-113

Global Integer Properties


Property Info_ElemFormulation1[0..34] or VARIANT vInfo_ElemFormulation1 Info_ElemFormulation2[0..34] or VARIANT vInfo_ElemFormulation2 Info_SuppressedCurveColor Info_SuppressedSurfaceColor 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 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 interface is not hidden The current method used by the standard coordinate dialog box. Refer to Coordinate Dialog Methods for possible values. The current method used by the standard vector dialog box. Refer to Vector Dialog Methods for possible values. The current method used by the standard plane dialog box. 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 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 2=Pick Only Internal Curves 3=Pick Only Combined Curves 4=Never Pick Combined Curves 5=Never Pick Combined nor Internal Curves Description

The formulation options which are available for the various types of elements. Data is stored as bits inside these values.

The color used to draw curves that are suppressed for meshing The color used to draw surfaces that are suppressed for meshing

DialogAutoAnswer

DialogAutoSkip CoordDialogMethod VectorDialogMethod PlaneDialogMethod

PickBoundaryInternalMode

PickCombinedCurveInternalMode

User Interface

API-114

Global Real Properties

Global Integer Properties


Property Description

3.3.3 Global Real Properties Global Real Properties


Property Model Info Info_Version Info_WorkplaneOrigin[0..2] or VARIANT vInfo_WorkplaneOrigin Info_WorkplaneX[0..2] or VARIANT vInfo_WorkplaneX Info_WorkplaneY[0..2] or VARIANT vInfo_WorkplaneY Info_WorkplaneZ[0..2] or VARIANT vInfo_WorkplaneZ Info_WorkplanePrevOrigin [0..2] or VARIANT vInfo_WorkplanePrevOrigin Info_WorkplanePrevX[0..2] or VARIANT vInfo_WorkplanePrevX Info_WorkplanePrevY[0..2] or VARIANT vInfo_WorkplanePrevY Info_WorkplanePrevZ[0..2] or VARIANT vInfo_WorkplanePrevZ The direction cosines of the workplane axes. Like the origin, these are specified in global rectangular model coordinates. The coordinates of the previous origin of the workplane. These are saved values of Info_WorkplaneOrigin, used by the Previous Workplane command. The direction cosines of the workplane axes. Like the origin, these are specified in global rectangular model coordinates. The current database version. This may not equal the software version - for example, FEMAP v10.1.1 uses a v10.1 database. (read-only). The coordinates of the origin of the workplane. Specified in global rectangular model coordinates. Description

Global Real Properties

API-115

Global Real Properties


Property Info_SnapSpacing[0..1] or VARIANT vInfo_SnapSpacing Info_WorkplaneSizeX[0..1] or VARIANT vInfo_WorkplaneSizeX Info_WorkplaneSizeY[0..1] or VARIANT vInfo_WorkplaneSizeY Info_WorkplaneLabels Info_DefaultX Info_DefaultY Info_DefaultZ Info_LineLength Info_ModelSizeX[0..1] or VARIANT vInfo_ModelSizeX Info_ModelSizeY[0..1] or VARIANT vInfo_ModelSizeY Info_ModelSizeZ[0..1] or VARIANT vInfo_ModelSizeZ Info_MatlAngleVec[0..2] or VARIANT vInfo_MatlAngleVec Info_MatlAngle The vector to be used for definition of material angles for planar elements (only used if Info_MatlAngleMethod=Vector). Sets the angle to be used for the definition of material angles for planar elements when InfoMatlAngleMethod=Angle. The default mesh size for geometry where mesh sizes have not 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 sure that solid geometry fits inside the limited coordinate space allowed by the solid modeling engines (read-only). The minimum and maximum coordinates of the current model in the corresponding global rectangular direction. These values are only valid if the model box has been computed and Info_ModelNeedBox is False (read_only). The default length used to create horizontal and vertical lines. The default values for the coordinate dialog box. Stored in global rectangular model coordinates. Description The snap grid spacing X and Y values.

The minimum and maximum dimensions of the workplane in the X and Y directions.

The length between labels on the workplane rulers.

Info_MeshSizeDefault

Info_GeometryScale

API-116

Global Boolean Properties

Global Real Properties


Property Info_FacetAngleTolerance Info_FacetChordTolerance Info_FacetCurveFactor Tools Tool_MergeTolerance The default coincident location merge tolerance for the model. Only used if Tool_MergeToleranceAuto is False Factors used for Curve Facetting - found in Tools Parameters Description

3.3.4 Global Boolean Properties Global Boolean Properties


Property File Preferences Pref_CompressBitmaps Model Info Info_PermBC[0..5] or VARIANT vInfo_PermBC Info_WorkplaneModelAdjust Info_WorkplaneSurfaceAdjust Info_WorkplaneRuler[0..1] or VARIANT vInfo_WorkplaneRuler Info_SnapFullPrecision Info_SnapCoordOnly Info_ModelNeedBox Info_UpdateAllViews Info_TranslateNotes The default permanent boundary conditions for node creation. Automatically adjust the size of the workplane to the model size. Automatically adjust the size of the workplane to the size of any surface where it is located. If True, draws the workplane X and Y rulers respectively. Controls whether coordinates or equations functions are loaded into the dialog boxes when a user picks coordinates. If True, the snap mode will only be used during coordinate picking. If True the model box has been computed, otherwise the box coordinates are not valid. The current setting of the View, All Views command. If True, the Notes translation text will be written during a model export. Controls whether Windows Bitmaps will be compressed during Picture Save Description

Global String Properties

API-117

Global Boolean Properties


Property Info_ViewShowErase Info_ViewShowUseColor Tools Tool_CursorXYZ[0..2] or VARIANT vTool_CursorXYZ Tool_CursorSingle Tool_MergeToleranceAuto If True, the corresponding coordinate direction will be picked whenever you select a coordinate with the mouse. Automatically updated with every pick. If True, each cursor pick selects and updates only a single coordinate value. If True, the merge tolerance is automatically calculated, if False, then Tool_MergeTolerance is used. Description If True, the View, Show command will erase the window before showing entities. If True, View, Show will use the color specified by Info_ViewShowColor, otherwise entity colors will be used.

3.3.5 Global String Properties Global String Properties


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

API-118

Global String Properties

3.3.6 Entity Types


The following table list the values to be used for each of the entity types. These values are typically 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 explanations after the table.

Entity Type FT_POINT FT_CURVE FT_SURFACE FT_VOLUME FT_NODE FT_ELEM FT_CSYS FT_MATL FT_PROP FT_LOAD_DIR * FT_SURF_LOAD * FT_GEOM_LOAD * FT_NTHERM_LOAD * FT_ETHERM_LOAD * FT_BC_DIR * FT_BCO * FT_BCO_GEOM * FT_BEQ * FT_TEXT FT_VIEW FT_GROUP FT_VAR * FT_OUT_CASE *

Numeric Value 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 24 27 28

Entity Type FT_LAYER FT_FUNCTION_DIR FT_FUNCTION_TABLE FT_SOLID FT_COLOR FT_OUT_CSYS FT_DESIGN_OPT * FT_LOAD _DEFINITION FT_MODEL_NOTES * FT_CONTACT * FT_AMGR_DIR FT_REFERENCE * FT_DATA_SURF FT_CONNECTION FT_CONNECTION_PROP FT_BC_DEFINITION * FT_LAYUP FT_LAYUP_PLY FT_LAYUP_GLOBALPLY FT_BOLT_PRELOAD FT_TMG_BCO FT_TMG_CONTROL FT_TMG_INTEGER

Numeric Value 33 35 36 39 40 41 45 46 54 58 60 68 69 71 72 80 81 82 83 84 112 113 114

Global String Properties

API-119
Numeric Value 115 116

Entity Type FT_OUT_DIR * FT_OUT_DATA * FT_REPORT *

Numeric Value 29 30 31

Entity Type FT_TMG_REAL FT_TMG_OPTION

FT_BOUNDARY 32 *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 = Constriant on geometic 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 Elemental, 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 Connector (contact pair) FT_REFERENCE = References saved in File, References FT_BC_DEFINITION = FEMAP Constraint Definition.

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.

API-120

Global String Properties

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

FAT_UNKNOWN FAT_STATIC FAT_MODES FAT_TRANSIENT FAT_FREQUENCY_RESPONSE FAT_RESPONSE_SPECTRUM FAT_RANDOM FAT_LINEAR_BUCKLING FAT_DESIGN_OPTIMIZATION FAT_EXPLICIT FAT_NONLINEAR_STATIC

FAT_NONLINEAR_BUCKLING FAT_NONLINEAR_TRANSIENT FAT_FATIGUE FAT_DATA_RECOVERY FAT_CFD FAT_STEADY_STATE_HEAT FAT_TRANSIENT_HEAT FAT_601_STATIC FAT_601_TRANSIENT FAT_701_EXPLICIT

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

FAP_UNKNOWN FAP_FEMAP_GEN FAP_PAL FAP_PAL2 FAP_MSC_NASTRAN FAP_ANSYS FAP_STARDYNE FAP_COSMOS FAP_PATRAN FAP_NEUTRAL FAP_ALGOR

FAP_CDA_SPRINT FAP_CAEFEM FAP_IDEAS FAP_ME_NASTRAN FAP_ADINA FAP_GENESIS FAP_ODBC FAP_CSA_NASTRAN FAP_CFDESIGN FAP_LS_DYNA FAP_MARC

Global String Properties

API-121

Constant Name

Constant Name

FAP_PC_NASTRAN FAP_TABLE FAP_UAI_NASTRAN FAP_COSMIC_NASTRAN FAP_STAAD FAP_ABAQUS FAP_WECAN FAP_SAP

FAP_SINDA FAP_NE_NASTRAN FAP_NCODE FAP_TMG FAP_FEMAP_STRUCTURAL FAP_VR_NASTRAN FAP_NX_NASTRAN

Analysis Manager Solvers


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

FAM_UNKNOWN FAM_MSC_NASTRAN FAM_ANSYS FAM_ABAQUS

FAM_MARC FAM_NE_NASTRAN FAM_FEMAP_STRUCTURAL FAM_NX_NASTRAN

Analysis Boundary Condition Set Types


The following table lists constants to be used for AnalysisBoundary Condition Set Types. Constant Name Constant Name

FABT_CONSTRAINTS FABT_CONSTRAINT_EQUATIONS FABT_LOADS FABT_INITIAL_CONDITIONS FABT_MASTER_DOF FABT_SUPORT_DOF

FABT_SUPORT1_DOF FABT_OMIT_DOF FABT_QSET_DOF FABT_CSET_DOF FABT_BSET_DOF FABT_BOLT_PRELOADS

API-122

Global String Properties

Analysis Output Requests


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

FABC_ND_APPLIED LOAD FABC_ND_REACTION_FORCE FABC_ND_DISPLACEMENT FABC_ND_VELOCITY FABC_ND_ACCELERATION FABC_ND_TEMPERATURE FABC_ND_HEAT_FLUX FABC_ND_MPC_FORCES FABC_ND_FORCE_BALANCE FABC_ND_KINETIC_ENERGY FABC_EL_FORCE FABC_EL_STRESS

FABC_EL_STRAIN FABC_EL_PLASTIC_STRAIN FABC_EL_STRAIN_ENERGY FABC_EL_HEAT_FLUX FABC_EL_ENTHALPY FABC_EL_ENTHALPY_RATE FABC_EL_CONTACT FABC_EL_TEMPERATURE FABC_EL_KINETIC_ENERGY FABC_EL_ENERGY_LOSS FABC_EL_FLUID PRESSURE

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_ARC FCU_CIRCLE FCU_SPLINE

FCU_BSPLINE FCU_SOLID FCU_COMPOSITE

Global String Properties

API-123

Curve Orinet Methods


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

FCR_BY_VECTOR FCR_BY_LOCATION

FCR_BY_VECTOR_REV FCR_BY_LOCATION_REV

Curve Offest Methods


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

FCO_BY_VECTOR FCO_RADIAL

FCO_POINT

Combined Curve Methods


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

FCC_OFF FCC_ON

FCC_BOTH

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

FSU_BILINEAR FSU_RULED FSU_REVOLUTION FSU_COONS

FSU_BEZIER FSU_SOLID FSU_BSPLINE FSU_BOUNDARY

Surface - Mesh Approaches


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

FMAP_NONE FMAP_FREE_PARAMETRIC

FMAP_MAP_4CORNER FMAP_MAP_3CORNER

API-124

Global String Properties

Constant Name

Constant Name

FMAP_FREE_PLANAR FMAP_TRI_PARAMETRIC FMAP_TRI_PLANAR

FMAP_MAP_3CORNERFAN FMAP_MAP_LINKED

Surface - Mesh Offset Attribute


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

FMOF_CENTERLINE FMOF_TOP

FMOF_BOTTOM

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_SUBDIVISION

FMSH_FASTTRI FMSH_3DTRI

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

FVO_BRICK FVO_WEDGE

FVO_PYRAMID FVO_TETRA

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

FND_NODE FND_SPOINT

FND_EPOINT

Global String Properties

API-125

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

FMT_ISOTROPIC FMT_ORTHOTROPIC_2D FMT_ORTHOTROPIC_3D FMT_ANISOTROPIC_2D

FMT_ANISOTROPIC_3D FMT_HYPERELASTIC FMT_GENERAL FMT_FLUID

Element Topology Types


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

FTO_LINE2 FTO_LINE3 FTO_TRIA3 FTO_TRIA6 FTO_QUAD4 FTO_QUAD8 FTO_TETRA4 FTO_WEDGE6 FTO_BRICK8

FTO_POINT1 FTO_TETRA10 FTO_WEDGE15 FTO_BRICK20 FTO_RIGIDLIST FTO_PYRAMID5 FTO_MULTILIST2 FTO_CONTACT2 FTO_WELD2

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

FET_NONE FET_L_ROD FET_L_BAR FET_L_TUBE FET_L_LINK FET_L_BEAM

FET_P_PLANE_STRAIN FET_L_LAMINATE_PLATE FET_P_LAMINATE_PLATE FET_L_AXISYM FET_P_AXISYM FET_L_SOLID

API-126

Global String Properties

Constant Name

Constant Name

FET_L_SPRING FET_L_DOF_SPRING FET_L_CURVED_BEAM FET_L_GAP FET_L_PLOT FET_L_SHEAR FET_P_SHEAR FET_L_MEMBRANE FET_P_MEMBRANE FET_L_BENDING FET_P_BENDING FET_L_PLATE FET_P_PLATE FET_L_PLANE_STRAIN

FET_P_SOLID FET_L_MASS FET_L_MASS_MATRIX FET_L_RIGID FET_L_STIFF_MATRIX FET_L_CURVED_TUBE FET_L_PLOT_PLATE FET_L_SLIDE_LINE FET_L_CONTACT FET_L_AXISYM_SHELL FET_P_AXISYM_SHELL FET_P_BEAM FET_L_WELD

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_UP

FSOR_LEFT FSOR_DOWN

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_RECT_TUBE FSHP_TRAP_BAR FSHP_TRAP_TUBE FSHP_CIRC_BAR

FSHP_NAS_I FSHP_NAS_CHAN FSHP_NAS_T FSHP_NAS_BOX FSHP_NAS_BAR

Global String Properties

API-127

Constant Name

Constant Name

FSHP_CIRC_TUBE FSHP_HEX_BAR FSHP_HEX_TUBE FSHP_I FSHP_C FSHP_L FSHP_T FSHP_Z FSHP_HAT FSHP_NAS_ROD FSHP_NAS_TUBE FSHP_NAS_L

FSHP_NAS_CROSS FSHP_NAS_H FSHP_NAS_T1 FSHP_NAS_I1 FSHP_NAS_CHAN1 FSHP_NAS_Z FSHP_NAS_CHAN2 FSHP_NAS_T2 FSHP_NAS_BOX1 FSHP_NAS_HEXA FSHP_NAS_HAT 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_ORIG

FSEV_ALT FSEV_PBEAML

Coordinate System Types


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

FCS_RECTANGULAR FCS_CYLINRICAL

FCS_SPHERICAL

Connection Region Types


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

FRT_CONNECTION

FRT_BOLT

API-128

Global String Properties

Constant Name

Constant Name

FRT_FLUID

FRT_ROTOR

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_GENERAL FBG_SURFSLIDING

FBG_SURFNONSLIDING FBG_SURFDIRSLIDING FBG_CYLINDER

Load Direction Methods


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

FLD_NONE FLD_VECTOR FLD_ALONGCURVE

FLD_NORMALTOPLANE FLD_NORMALTOSURFACE

Load Variation Methods


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

FLV_NONE FLV_EQUATION FLV_DATASURFACE

FLV_FUNCTION FLV_INTERPOLATION

Global String Properties

API-129

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_NFORCE FLT_NMOMENT FLT_NDISPLACEMENT FLT_NROTDISPLACEMENT FLT_NVELOCITY FLT_NROTVELOCITY FLT_NACCELERATION FLT_NROTACCELERATION FLT_NTEMPERATURE FLT_NHEATFLUX FLT_NHEATGEN

FLT_NTRANSIENT FLT_NPRESSURE FLT_NTOTALPRESSURE FLT_NSCALAR FLT_NSTEAMQUALITY FLT_NHUMIDITY FLT_NFLUIDHEIGHT FLT_NUNKNOWNCONDITION FLT_NSLIPCONDITION FLT_NFANCURVE FLT_NPERIODIC

The following table lists constants to be used for Elemental Load Types. Constant Name Constant Name

FLT_ELINELOAD FLT_EPRESSURE FLT_ETEMPERATURE FLT_EHEATFLUX

FLT_ECONVECTION FLT_ERADIATION FLT_EHEATGEN FLT_EBOLTPRELOAD

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_PNMOMENT FLT_PNDISPLACEMENT FLT_PNROTDISPLACEMENT

FLT_PNPRESSURE FLT_PNTOTALPRESSURE FLT_PNSCALAR FLT_PNSTEAMQUALITY

API-130

Global String Properties

Constant Name

Constant Name

FLT_PNVELOCITY FLT_PNROTVELOCITY FLT_PNACCELERATION FLT_PNROTACCELERATION FLT_PNTEMPERATURE FLT_PNHEATFLUX FLT_PNHEATGEN

FLT_PNHUMIDITY FLT_PNFLUIDHEIGHT FLT_PNUNKNOWNCONDITION FLT_PNSLIPCONDITION FLT_PNFANCURVE FLT_PNPERIODICFLT_NPRESSURE

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_CNFORCEPERLEN FLT_CNFORCEATNODE FLT_CNMOMENT FLT_CNMOMENTPERLEN FLT_CNMOMENTATNODE FLT_CNDISPLACEMENT FLT_CNROTDISPLACEMENT FLT_CNVELOCITY FLT_CNROTVELOCITY FLT_CNACCELERATION FLT_CNROTACCELERATION FLT_CNTEMPERATURE FLT_CNHEATFLUX

FLT_CNHEATFLUXPERLEN FLT_CNHEATFLUXATNODE FLT_CNHEATGEN FLT_CNPRESSURE FLT_CNTOTALPRESSURE FLT_CNSCALAR FLT_CNSTEAMQUALITY FLT_CNHUMIDITY FLT_CNFLUIDHEIGHT FLT_CNUNKNOWNCONDITION FLT_CNSLIPCONDITION FLT_CNFANCURVE FLT_CNPERIODIC

Global String Properties

API-131

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_CETEMPERATURE FLT_CEHEATFLUX

FLT_CECONVECTION FLT_CERADIATION 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_SNFORCEPERAREA FLT_SNFORCEATNODE FLT_SNMOMENT FLT_SNMOMENTPERAREA FLT_SNMOMENTATNODE FLT_SNDISPLACEMENT FLT_SNROTDISPLACEMENT FLT_SNVELOCITY FLT_SNROTVELOCITY FLT_SNACCELERATION FLT_SNROTACCELERATION FLT_SNTEMPERATURE FLT_SNHEATFLUX

FLT_SNHEATFLUXPERAREA FLT_SNHEATFLUXATNODE FLT_SNHEATGEN FLT_SNPRESSURE FLT_SNTOTALPRESSURE FLT_SNSCALAR FLT_SNSTEAMQUALITY FLT_SNHUMIDITY FLT_SNFLUIDHEIGHT FLT_SNUNKNOWNCONDITION FLT_SNSLIPCONDITION FLT_SNFANCURVE FLT_SNPERIODIC FLT_SNTORQUE

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_SETEMPERATURE

FLT_SECONVECTION FLT_SERADIATION

API-132

Global String Properties

Constant Name

Constant Name

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_BODY FLS_NONLINEAR FLS_NHTGEN FLS_NHTFLUX FLS_FORCE FLS_DISP FLS_ACCEL FLS_LINELOAD FLS_VELOCITY FLS_PRESS FLS_EHTGEN FLS_EHTFLUX

FLS_NTEMP FLS_ETEMP FLS_ECONVECTION FLS_ERADIATION FLS_NTRANSIENT FLS_FLPRESSURE FLS_FLTRACKING FLS_FLUNKNOWN FLS_FLSLIP FLS_FLFAN FLS_FLPERIODIC FLS_NONE

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

FTB_NONE FTB_TIME FTB_TEMP FTB_FREQ FTB_STRESSSTRAIN FTB_FUNCTEMP

FTB_CURVEPARAM FTB_STRAINSTRESS FTB_PLASTICSTRAIN FTB_FUNCVAL FTB_DAMPFUNC FTB_ANGLEINCIDENCE

Global String Properties

API-133

Constant Name

Constant Name

FTB_GDAMP FTB_CRITDAMP FTB_QDAMP FTB_STRAINRATE FTB_FUNCSTRAINRATE FTB_CURVELENGTH

FTB_DIRECTIONINCIDENCE FTB_TBLM1LINLIN FTB_TBLM1LOGLIN FTB_TBLM1LINLOG FTB_TBLM1LOGLOG

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_NFORCE FMLT_NMOMENT FMLT_NDISPLACEMENT FMLT_NROTDISPLACEMENT FMLT_NVELOCITY FMLT_NROTVELOCITY

FMLT_NACCELERATION FMLT_NROTACCELERATION FMLT_ETEMPERATURE FMLT_EHEATFLUX FMLT_EHEATGEN FMLT_EPRESSURE

The following table lists constants to be used for MapOption that can be used to specify algorithm 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_VALUE FMO_EXTEND

FMO_INTERP FMO_NONE

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 Element) as the desired target load.

API-134

Global String Properties

These constants are used for MapFromModelToSet method. Constant Name Constant Name

FMP_STANDARD FMP_NODE

FMP_ELEMENT

Data Surface Constants


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

FDT_VALUE_X FDT_VALUE_Y FDT_VALUE_Z FDT_ROWVALUE FDT_COLUMNVALUE

FDT_PAGEVALUE FDT_BASECOLUMNTITLE FDT_COLUMNTITLE FDT_PAGETITLE FDT_PAGESIZE

The following table lists constants to be used for Data Surface Dimension Constant Name Constant Name

FDM_1D FDM_2D

FDM_3D

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_INT

FCT_DOUBLE FCT_STRING

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

FAL_LEFT FAL_CENTER

FAL_RIGHT

Global String Properties

API-135

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

FSF_TEXT FSF_CSV

FSF_RTF

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

FOP_NONE FOP_GOAL

FOP_VARY 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_RODAREA FOV_RODTORSION FOV_BARAREA

FOV_BARI1 FOV_BARI2 FOV_BARTORSION FOV_PLATETHICKNESS

The following table lists constants to be used for Optimization Limit Method. Constant Name Constant Name

FOL_NONE FOL_NODXDISP FOL_NODYDISP FOL_NODZDISP FOL_NODXRDISP FOL_NODYRDISP FOL_NODZRDISP FOL_RODAXIALSTRESS

FOL_BARMAXSTRAIN FOL_BARMINSTRAIN FOL_PLTXNORMALSTRESS FOL_PLTYNORMALSTRESS FOL_PLTXYSHEARSTRESS FOL_PLTMAXPRINSTRESS FOL_PLTMINPRINSTRESS FOL_PLTVONMISESSTRESS

API-136

Global String Properties

Constant Name

Constant Name

FOL_RODTORSIONSTRESS FOL_RODAXIALSTRAIN FOL_RODTORSIONSTRAIN FOL_BARAXIALSTRESS FOL_BARMAXSTRESS FOL_BARMINSTRESS FOL_BARAXIALSTRAIN

FOL_PLTXNORMALSTRAIN FOL_PLTYNORMALSTRAIN FOL_PLTXYSHEARSTRAIN FOL_PLTMAXPRINSTRAIN FOL_PLTMINPRINSTRAIN FOL_PLTVONMISESSTRAIN

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

FOT_ANY FOT_DISP FOT_ACCEL FOT_FORCE

FOT_STRESS FOT_STRAIN FOT_TEMP

Output - Complex Types


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

FOC_ANY FOC_MAGNITUDE FOC_PHASE

FOC_REAL FOC_IMAGINARY

Output - Transformation Types


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

FOD_NONE FOD_VECTOR_TO_CSYS FOD_VECTOR_TO_NODE_OUTPUT_CSYS

FOD_PLATE_TO_CSYS FOD_PLATE_TO_VECTOR FOD_SOLID_TO_CSYS

Global String Properties

API-137

Constant Name

Constant Name

FOD_PLATE_TO_MATL

FOD_SOLID_TO_MATL

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

FVM_DRAW FVM_FEATURE FVM_SORT FVM_HIDE FVM_FREE FVM_FREE_FACE

FVM_XY_VS_ID FVM_XY_VS_CASE FVM_XY_VS_VALUE FVM_XY_VS_POSITION FVM_XY_OF_FUNCTION

View Options
A list of the View Options constants for use with Draw, Label, Color, and ColorMode can be found in Section 5.51.1.1, "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_MODEL_UNDEF FDF_DEFORMED FDF_ANIMATE

FDF_ANIMATE_MULTICASE FDF_ARROW FDF_TRACE FDF_STREAMLINE

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

FCF_NONE FCF_MODEL_COLOR FCF_CONTOUR

FCF_BEAM_DIAGRAM FCF_ISOSURFACE FCF_SECTION_CUT

API-138

Global String Properties

Constant Name

Constant Name

FCF_CRITERIA

FCF_CONTOUR_VECTOR

Group Data Types


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

FGR_CSYS FGR_POINT FGR_CURVE FGR_SURFACE FGR_VOLUME FGR_TEXT FGR_NODE FGR_ELEM FGR_MATL FGR_PROP FGR_NLOAD FGR_ELOAD FGR_BCO

FGR_BEQ FGR_PLOAD FGR_CLOAD FGR_SLOAD FGR_PBCO FGR_CBCO FGR_SBCO FGR_SOLID FGR_CONTACT FGR_CONNECTIONPROP FGR_CONNECTION FGR_LAYUP 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_BYCOLOR

FGD_TEXT_BYLAYER

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

FGD_POINT_ID FGD_POINT_BYDEFCSYS

FGD_POINT_BYCOLOR FGD_POINT_BYLAYER

Global String Properties

API-139

Constant Name

Constant Name

FGD_POINT_ONCURVE
Constant Name

FGD_POINT_BYPROP
Constant Name

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

FGD_CURVE_ID FGD_CURVE_BYPOINT FGD_CURVE_ONSURFACE FGD_CURVE_BYCOLOR

FGD_CURVE_BYLAYER FGD_CURVE_BYPROP FGD_CURVE_ONSOLID

The following table lists constants to be used for adding Surfaces to Groups Constant Name Constant Name

FGD_SURFACE_ID FGD_SURFACE_BYCURVE FGD_SURFACE_ONVOLUME FGD_SURFACE_BYCOLOR

FGD_SURFACE_BYLAYER FGD_SURFACE_BYPROP FGD_SURFACE_ONSOLID

The following table lists constants to be used for adding Boundary Surfaces to Groups Constant Name Constant Name

FGD_BOUNDARY_ID

FGD_BOUNDARY_BYCURVE

The following table lists constants to be used for adding Volumes to Groups Constant Name Constant Name

FGD_VOLUME_ID FGD_VOLUME_BYSURFACE FGD_VOLUME_BYCOLOR

FGD_VOLUME_BYLAYER FGD_VOLUME_BYPROP

The following table lists constants to be used for adding Solids to Groups Constant Name Constant Name

FGD_SOLID_ID FGD_SOLID_BYCURVE FGD_SOLID_BYSURFACE

FGD_SOLID_BYCOLOR FGD_SOLID_BYLAYER FGD_SOLID_BYPROP

API-140

Global String Properties

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_BYCOLOR FGD_CONNECTION_BYLAYER

FGD_CONNECTION_BYPROP FGD_CONNECTION_BYCONTACT

The following table lists constants to be used for adding Connectors (contact pairs) to Groups. Constant Name Constant Name

FGD_CONTACT_ID FGD_CONTACT_BYCOLOR FGD_CONTACT_BYLAYER FGD_CONTACT_ONCONNECTION FGD_CONTACT_BYELEM

FGD_CONTACT_BYNODE FGD_CONTACT_BYCURVE FGD_CONTACT_BYSURFACE FGD_CONTACT_BYPROP

The following table lists constants to be used for adding Coordinate Systems to Groups Constant Name Constant Name

FGD_CSYS_IDF FGD_CSYS_BYDEFCSYS FGD_CSYS_BYTYPE FGD_CSYS_BYCOLOR

FGD_CSYS_BYLAYER FGD_CSYS_ONNODE FGD_CSYS_ONPOINT

The following table lists constants to be used for adding Nodes to Groups. Constant Name Constant Name

FGD_NODE_ID FGD_NODE_BYDEFCSYS FGD_NODE_BYOUTCSYS

FGD_NODE_ATSURFACE FGD_NODE_ATSOLID FGD_NODE_BYCOLOR

Global String Properties

API-141

Constant Name

Constant Name

FGD_NODE_ONELEM FGD_NODE_ATPOINT FGD_NODE_ATCURVE


Constant Name

FGD_NODE_BYLAYER FGD_NODE_ONELEMASORIENT FGD_NODE_BYSUPERELEMENT


Constant Name

The following table lists constants to be used for adding Elements to Groups.

FGD_ELEM_ID FGD_ELEM_BYMATL FGD_ELEM_BYPROP FGD_ELEM_BYTYPE FGD_ELEM_BYNODE FGD_ELEM_ATPOINT FGD_ELEM_ATCURVE

FGD_ELEM_ATSURFACE FGD_ELEM_ATSOLID FGD_ELEM_BYCOLOR FGD_ELEM_BYLAYER FGD_ELEM_BYSHAPE FGD_ELEM_BYLAYUP FGD_ELEM_BYALLNODES

The following table lists constants to be used for adding Materials to Groups. Constant Name Constant Name

FGD_MATL_ID FGD_MATL_ONPROP FGD_MATL_ONELEM

FGD_MATL_BYTYPE FGD_MATL_BYCOLOR 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_ONELEM FGD_PROP_BYMATL FGD_PROP_BYTYPE

FGD_PROP_BYCOLOR FGD_PROP_BYLAYER FGD_PROP_BYLAYUP

The following table lists constants to be used for adding Layups to Groups Constant Name Constant Name

FGD_LAYUP_ID FGD_LAYUP_BYMATL

FGD_LAYUP_ONPROP

API-142

Global String Properties

The following table lists constants to be used for adding Loads to Groups. Constant Name Constant Name

FGD_LOAD_BYNODE FGD_LOAD_BYELEM FGD_LOAD_BYPOINT

FGD_LOAD_BYCURVE FGD_LOAD_BYSURFACE 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_BEQ_BYNODE FGD_BCO_BYPOINT

FGD_BCO_BYCURVE FGD_BCO_BYSURFACE

Print Source Options


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

FPS_VIEW FPS_DESKTOP FPS_FILE FPS_LAYOUT

FPS_MESSAGES FPS_PROGRAMFILE FPS_ENTITYINFO 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 FE_FAIL FE_CANCEL FE_INVALID FE_NOT_EXIST FE_SECURITY FE_NOT_AVAILABLE

FE_TOO_SMALL FE_BAD_TYPE FE_BAD_DATA FE_NO_MEMORY FE_NEGATIVE_MASS_VOLUME FE_NO_FILENAME

Global String Properties

API-143

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

FEVENT_INITIALIZE FEVENT_NEWMODEL FEVENT_ENDMODEL FEVENT_SHUTDOWN FEVENT_COMMAND FEVENT_PROGSTART

FEVENT_PROGEND FEVENT_DRAWSTART FEVENT_DRAWEND FEVENT_ANALYSISEND FEVENT_RESULTSEND FEVENT_SWITCHMODEL

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_SEPIA (1) FCL_DARKRED (2) FCL_MAROON (3) FCL_RED (4) FCL_DARKESTGREEN (5) FCL_DARKOLIVEGREEN (6) FCL_BROWN (7) FCL_SIENNA (8) FCL_ORANGERED (9) FCL_GREEN (10) FCL_FERNGREEN (11) FCL_OLIVE (12)

FCL_DARKGOLDENROD (13) FCL_ORANGE (14) FCL_LIMEGREEN (15) FCL_YELLOWLIMEGREEN (16) FCL_AVOCADO (17) FCL_OLIVEYELLOW (18) FCL_GOLD (19) FCL_LIME (20) FCL_BRIGHTLIME (21) FCL_CHARTREUSE (22) FCL_BRIGHTCHARTREUSE (23) FCL_YELLOW (24)

API-144

Global String Properties

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_EGGPLANT (26) FCL_DARKRASPBERRY (27) FCL_RASPBERRY (28) FCL_CRIMSON (29) FCL_DARKSLATEGRAY (30) FCL_DARKGRAY (31) FCL_CAMOUFLAGEGREEN (32) FCL_FIREBRICK (33) FCL_TOMATO (34) FCL_PINEGREEN (35) FCL_FORESTGREEN (36) FCL_PALEOLIVE (37)

FCL_PERU (38) FCL_CORAL (39) FCL_DARKPASTELGREEN (40) FCL_PALELIMEGREEN (41) FCL_YELLOWGREEN (42) FCL_OLDGOLD (43) FCL_GOLDENROD (44) FCL_BLUELIME (45) FCL_PALELIME (46) FCL_PALEBRIGHTGREEN (47) FCL_GREENYELLOW (48) FCL_NOTEYELLOW (49)

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_INDIGO (51) FCL_PURPLE (52) FCL_MEDIUMVIOLETRED (53) FCL_DEEPPINK (54) FCL_DARKCERULEAN (55) FCL_DARKSLATEBLUE (56) FCL_PALEPURPLE (57) FCL_MAUVE (58)

FCL_ROSYBROWN (63) FCL_LIGHTSALMON (64) FCL_JADE (65) FCL_SEAGREEN (66) FCL_DARKSEAGREEN (67) FCL_DARKKHAKI (68) FCL_SANDYBROWN (69) FCL_SPRINGGREEN (70) FCL_LIGHTSPRINGGREEN (71)

Global String Properties

API-145

Constant Name

Constant Name

FCL_CERISE (59) FCL_DARKCYAN (60) FCL_VIRIDIAN (61) FCL_GRAY (62)

FCL_LIGHTGREEN (72) FCL_TEAGREEN (73) FCL_PALEYELLOW (74)

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_BLUEINDIGO (76) FCL_DARKVIOLET (77) FCL_VIOLETEGGPLANT (78) FCL_FUCHSIA (79) FCL_COBALT (80) FCL_PALEBLUEPURPLE (81) FCL_MEDIUMPURPLE (82) FCL_ORCHID (83) FCL_PINKCERISE (84) FCL_CERULEAN (85) FCL_STEELBLUE (86) FCL_SLATEBLUE (87)

FCL_PLUM (88) FCL_REDPINK (89) FCL_DARKTURQUOISE (90) FCL_MEDIUMTURQUOISE (91) FCL_MEDIUMAQUAMARINE (92) FCL_SILVER (93) FCL_PALEREDVIOLET (94) FCL_MEDIUMSPRINGGREEN (95) FCL_TURQUOISE (96) FCL_AQUAMARINE (97) FCL_MINTCREAM (98) FCL_LEMONCHIFFON (99)

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_PERSIANBLUE (101) FCL_VIOLET (102)

FCL_WISTERIA (113) FCL_PINK (114) FCL_DEEPSKYBLUE (115)

API-146

Global String Properties

Constant Name

Constant Name

FCL_BRIGHTVIOLET (103) FCL_MAGENTA (104) FCL_BRIGHTCOBALT (105) FCL_PALECOBALT (106) FCL_BLUEVIOLET (107) FCL_MEDIUMORCHID (108) FCL_HOTPINK (109) FCL_DODGERBLUE (110) FCL_ROYALBLUE (111) FCL_MEDIUMSLATEBLUE (112)

FCL_SKYBLUE (116) FCL_PALESKYBLUE (117) FCL_THISTLE (118) FCL_PALEPINK (119) FCL_CYAN (120) FCL_BRIGHTTURQUOISE (121) FCL_PALEBLUE (122) FCL_POWDERBLUE (123) FCL_WHITE (124)

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_GRAY20 (126) FCL_GRAY30 (127) FCL_GRAY40 (128) FCL_GRAY50 (129) FCL_GRAY60 (130) FCL_GRAY70 (131) FCL_GRAY80 (132) FCL_GRAY90 (133) FCL_GRAY100 (134) FCL_GRAY110 (135) FCL_GRAY120 (136) FCL_GRAY130 (137)

FCL_GRAY140 (138) FCL_GRAY150 (139) FCL_GRAY160 (140) FCL_GRAY170 (141) FCL_GRAY180 (142) FCL_GRAY190 (143) FCL_GRAY200 (144) FCL_GRAY210 (145) FCL_GRAY220 (146) FCL_GRAY230 (147) FCL_GRAY240 (148) FCL_GRAY250 (149)

Global String Properties

API-147

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 Example, to make a green color with level 4 transparency, you would put FCL_GREEN or

FPF_TRANSPARENT4.
Constant Name

Constant Name

FPF_SOLID FPF_HORIZONTAL FPF_VERTICAL FPF_FDIAGONAL FPF_BDIAGONAL FPF_CROSS FPF_DIAGCROSS FPF_TRANSPARENT8

FPF_TRANSPARENT7 FPF_TRANSPARENT6 FPF_TRANSPARENT5 FPF_TRANSPARENT4 FPF_TRANSPARENT3 FPF_TRANSPARENT2 FPF_TRANSPARENT1

FEMAP Pen Linestyles


The following table lists constants to be used for FEMAP Pen Linstyles. 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_DASH FPL_DOT FPL_DASHDOT

FPL_DASHDOTDOT FPL_THICK2 FPL_THICK3 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_LAYOUT

FPRG_DESKTOP

API-148

Global String Properties

FEMAP Picture Formats


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

FPM_BMP FPM_METAFILE FPM_PLACEMF FPM_JPEG FPM_BMPSERIES FPM_AVI

FPM_JT (Constant Reserved) FPM_GIF FPM_GIFANIM FPM_TIF FPM_PNG

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_JPEG PPFM_PNG

PPFM_GIF PPFM_TIF

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_BMPSERIES

PAFM_AVI PAFM_GIF

FEMAP GIF Options


The following table lists constants to be used for GIF Formats which can be set via the Preferences. Constant Name Constant Name

GIFC_NET GIFC_OCTREE

GIFC_DITHER

Global String Properties

API-149

Messages Window Text Colors


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

FCM_NORMAL FCM_HIGHLIGHT FCM_WARNING

FCM_ERROR FCM_COMMAND

Coordinate Dialog Methods


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

FCD_COORDINATES FCD_WORKPLANE_COORDINATES FCD_USE_POINTS FCD_USE_NODES FCD_OFFSET FCD_DISTANCE FCD_CENTER FCD_ALONG FCD_MESH_LOCATION

FCD_BETWEEN FCD_INTERSECTION FCD_MIDPOINT FCD_PROJECT_ON_CURVE FCD_PROJECT_ON_SURFACE FCD_ON_SURFACE FCD_INTERSECTCURVESURFACE FCD_CG_SURFACE FCD_ALONGLENGTH

Vector Dialog Methods


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

FVD_POSITION FVD_POSITION_LENGTH FVD_USE_POINTS FVD_USE_NODES FVD_COMPONENTS FVD_DIRECTION

FVD_NORMAL_TO_SURFACE FVD_BISECT FVD_NORMAL FVD_DEFCS_AXIS FVD_GLOBAL_AXIS FVD_NORMAL_TO_VIEW

API-150

Global String Properties

Constant Name

Constant Name

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_USE_POINTS FPD_USE_NODES FPD_COMPONENTS FPD_BISECT FPD_NORMAL

FPD_DEFCS_AXIS FPD_GLOBAL_AXIS FPD_NORMAL_TO_VIEW FPD_NORMAL_TO_CURVE FPD_NORMAL_TO_SURFACE

Selector Constants
The Selector (Select Toolbar) is used to create Selection sets in FEMAP which may contain different 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_CURVE FS_SURFACE FS_SOLID FS_CONNECTION_PROP FS_CONNECTION_REGION FS_CONNECTION FS_CSYS FS_NODE FS_ELEM FS_MATL FS_PROP

FS_LOAD_NODAL FS_LOAD_ELEMENTAL FS_LOAD_ON_POINT FS_LOAD_ON_CURVE FS_LOAD_ON_SURFACE FS_BC_NODAL FS_BC_EQUATION FS_BC_ON_POINT FS_BC_ON_CURVE FS_BC_ON_SURFACE FS_TEXT

Global String Properties

API-151

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

FSD_OFF FSD_QUERY

FSD_FRONT

Real Number Formats


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

FRFM_NORMAL FRFM_EXPONENTIAL

FRFM_NASTRAN

API-152
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, "Import/Export Neutral File" Section 3.4.7, "Export Geometry" Section 3.4.8, "Export Analysis Model" Section 3.4.9, "Notes" Section 3.4.10, "Print and Copy" Section 3.4.11, "Rebuild and Preferences"

feFileNew

API-153

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 Remarks/Usage: In releases prior to v9, this API function required 2 arguments because multiple models were not supported and the previous model needed to be closed prior to opening the new model. Example: None Unable to create a new file.

API-154

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 displayed allowing the user to choose a model to open. If False, the model specified in fName is opened. 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.

STRING fName

Output: None Return Code: FE_FAIL FE_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 Unable to open file. Specified file does not exist.

feFileClose

API-155

3.4.1.3 feFileClose

feFileClose
( saveChanges ) Description: This function closes the active model Input: BOOL saveChanges 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 If True, any changes in the model will be saved. If False, the model will simply close, discarding any changes.

API-156

feFileExit

3.4.1.4 feFileExit

feFileExit
( void ) Description: This function causes FEMAP to exit. Input: None Output: None Return Code: None 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-157

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 specified, 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 FE_NO_FILENAME Remarks/Usage: None Example: None The save operation failed. Either the filename specified cannot be written, or some other error occurred during the save operation. useDlg=False and the model name has never been specified. Use feFileSaveAs instead to specify a name to be used to save the model.

API-158

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 specified 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. The filename to use to save the current model. This is only used if useDlg=False.

STRING fName Output: None Return Code: FE_FAIL FE_CANCEL FE_INVALID Remarks/Usage:

The save operation failed. Either the filename specified cannot be written, or some other error occurred during the save operation. useDlg=True and the user cancelled the save operation. The filename is not valid to save the model.

feFileSaveAs( True, ) - ask the user for a filename and save the current model to that file. feFileSaveAs( False, c:\models\car.mod ) - automatically save the current model to the specified file. Example: None

feFileTimedSave

API-159

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. Turns on/off timed save ( True = on, False = off). If this is on, then the user will be notified prior to a timed save taking place. Time in minutes between timed saves ( 1..999 ). 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.

BOOL saving BOOL notify INT4 interval INT4 commands Output: None Return Code: FE_CANCEL FE_INVALID Remarks/Usage:

The user aborted the operation by cancelling a dialog box. At least one of the arguments contains data that is invalid or out of the allowable range.

Calling this function automatically stops any previous timed save operations. When the function is complete, if timed save is turned on, it is reinitialized. Example: None

API-160

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. The filename/path of the ACIS file to be read. The title that is assigned to created layers and the solid. The ID of the layer for new geometry. Set to -1 to use the active layer. The color used for the geometry that is created. Set to -1 to use the active solid color. Only used if assign_color=True 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. If True and you read an assembly, geometry for each solid is colored differently. If True, the specified color value is used for geometry; otherwise the default colors are used. If True, surfaces are all converted to B-Spline surfaces. If False, surfaces retain their original definition. Should always be set to True. ACIS geometry can no longer be read in native format - it is always converted to Parasolid. Only used if convert_format=True. If True, this attempts to detect and remove sliver faces or other geometric problems. Only used if convert_format=True. If True, attempts to close gaps and correct geometric inaccuracies. Only used if convert_format=True. If True, checks converted Parasolid geometry to find and report any problems.

STRING fName STRING title INT4 layer INT4 color BOOL increment_layer BOOL increment_color BOOL assign_color BOOL convert_to_splines BOOL convert_format BOOL clean BOOL heal BOOL check

feFileReadAcisOpt

API-161

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 BOOL delete_invalid BOOL faces Only used if convert_format=True. If True, checks for surface discontinuities or irregularities in the converted Parasolid geometry. Only used if convert_format=True. If True and geometry was checked, this deletes any geometry that failed the checking. 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. 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).

REAL8 scale

Output: None Return Code: FE_CANCEL FE_INVALID FE_NOT_AVAILABLE FE_SECURITY 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 The user aborted the operation by cancelling a dialog box. You specified a parameter that was not in the supported range. The required module for this function is not loaded on this system. The required module for this function is not properly licensed.

API-162

feFileReadAcis

3.4.3.2 feFileReadAcis

feFileReadAcis
( fName ) Description: Short form of feFileReadAcisOpt( ). Input: STRING fName 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 The filename/path of the ACIS file to be read.

feFileReadCatia

API-163

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, Geometry, 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. The filename/path of the CATIA file to be read. Set to True to read the analytical definition for surfaces defined as splines. 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. Set to True to read 3D trimming curves, or False to read 2D trimming curves. Set to True to automatically stitch surfaces into a solid. If False, individual surfaces will be read. Set to True to attempt to repair tolerance and gap problems.

STRING fName BOOL rdAnalytical BOOL rdTopology BOOL rdCurves BOOL stitch BOOL heal Output: None Return Code: FE_CANCEL FE_INVALID FE_NOT_AVAILABLE FE_SECURITY Remarks/Usage: None Example: None

The user aborted the operation by cancelling a dialog box. You specified a parameter that was not in the supported range. The required module for this function is not loaded on this system. The required module for this function is not properly licensed.

API-164

feFileReadCatiaV5

3.4.3.4 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. The filename/path of the CATIA V5 file to be read. 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. If True, reads No Show geometry. If True, reads geometry from layers marked as Inactive. Set to True to read points Set to True to read curves Set to True to read surfaces Set to True to read bodies If True, simplifies the underlying geometry for curves and surfaces

STRING fName STRING fPath

BOOL rdNoShow BOOL rdInactiveLayers BOOL rdPoints BOOL rdCurves BOOL rdSurfaces BOOL rdBodies BOOL simplify Output: None Return Code: FE_CANCEL FE_NOT_AVAILABLE FE_SECURITY Remarks/Usage: None Example:

The user aborted the operation by cancelling a dialog box. The required module for this function is not loaded on this system. The required module for this function is not properly licensed.

feFileReadCatiaV5

API-165

feFileReadCatiaV5
( useDlg, fName, fPath, rdNoShow, rdInactiveLayers, rdPoints, rdCurves, rdSurfaces, rdBodies, simplify ) None

API-166

feFileReadDxf

3.4.3.5 feFileReadDxf

feFileReadDxf
( useDlg, fName, rdText, rd3DFace, rdBlocks, rdPolyelem, rdTraceBoundary, rdTraceCenterline, 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. The filename/path of the DXF file to be read. If True, reads text or notes. Skipped if False. If True, reads 3DFaces as elements. If False, lines are created to form the outline of the face. If True, entities inside block references will be read. If True, reads polygon meshes as elements. If True, creates lines to represent the edges of a traceline. If True, creates lines to represent the center of a traceline. If True, reads color and layer information and assigns it to the geometry. 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. If True, coincident points will be merged after geometry is read. If mergePoints=True, this is the distance used to determine coincident points. Points that are closer than this distance from each other will be merged.

STRING fName BOOL rdText BOOL rd3DFace BOOL rdBlocks BOOL rdPolyelem BOOL rdTraceBoundary BOOL rdTraceCenterline BOOL rdLayer INT4 firstLayer BOOL mergePoints REAL8 mergeDist

Output: None Return Code: FE_CANCEL FE_INVALID The user aborted the operation by cancelling a dialog box. You specified an layer that was not in the supported range.

feFileReadDxf

API-167

feFileReadDxf
( useDlg, fName, rdText, rd3DFace, rdBlocks, rdPolyelem, rdTraceBoundary, rdTraceCenterline, rdLayer, firstLayer, mergePoints, mergeDist ) Remarks/Usage: None Example: None

API-168

feFileReadIdeas

3.4.3.6 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 Output: None Return Code: FE_NOT_AVAILABLE FE_SECURITY Remarks/Usage: None Example: None The required module for this function is not loaded on this system. The required module for this function is not properly licensed. The filename/path of the I-DEAS file to be read.

feFileReadIgesAdv

API-169

3.4.3.7 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. The filename/path of the IGES file to be read. Set to True to read free curves (curves that are not connected to surfaces or solids). Set to True to read free untrimmed surfaces. Set to True to read free trimmed surfaces. Set to True to read solid data. =0 for No flavoring, =1 for AutoCAD customization (old versions of AutoCAD only). =0 for default trim curves, =1 for 2D trim curves, =2 for 3D trim curves

STRING fName BOOL read_curves BOOL read_untrimmed_surfaces BOOL read_trimmed_surfaces BOOL read_solids INT4 flavor INT4 trim_curve_option Output: None Return Code: FE_CANCEL FE_INVALID FE_NOT_AVAILABLE FE_SECURITY Remarks/Usage:

The user aborted the operation by cancelling a dialog box. You specified a parameter that was not in the supported range. The required module for this function is not loaded on this system. The required module for this function is not properly licensed.

If you are having trouble reading solid data, try turning off read_solids, and just read the trimmed surfaces. These surfaces can then be stitched into a solid.

API-170

feFileReadIgesAdv

feFileReadIgesAdv
( useDlg, fName, read_curves, read_untrimmed_surfaces, read_trimmed_surfaces, read_solids, flavor, trim_curve_option ) Example: None

feFileReadIges

API-171

3.4.3.8 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. The filename/path of the IGES file to be read. Set to True to merge all coincident points that are created. Set to True to read layer information and assign geometry to the appropriate layers. Set to True to only read data marked as geometry. Set to True to read trimmed surface data. If you set this to True, you must have the appropriate license. =0 for Default Trim curves per the IGES file specification. =1 for 2D trim curves, =2 for 3D trim curves. Set to the minimum resolution for coincident points in the file. Used for tolerances of surface data, and for merging coincident points.

STRING fName BOOL merge_points BOOL read_layer BOOL read_geom_only BOOL read_surface_data INT4 trim_preference REAL8 min_resolution Output: None Return Code: FE_CANCEL FE_SECURITY Remarks/Usage: None Example: None

The user aborted the operation by cancelling a dialog box. The required module for this function is not properly licensed.

API-172

feFileReadParasolidOpt

3.4.3.9 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. The filename/path of the Parasolid file to be read. The title that is assigned to created layers and the solid. The ID of the layer for new geometry. Set to -1 to use the active layer. The color used for the geometry that is created. Set to -1 to use the active solid color. Only used if assign_color=True. 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. If True and you read an assembly, geometry for each solid is colored differently. If True, the specified color value is used for geometry; otherwise, the default colors are used. Should always be set to False. Parasolid geometry can no longer be converted to ACIS format. Only used if convert_format=True. If True, this attempts to detect and remove sliver faces or other geometric problems. Only used if convert_format=True. If True, attempts to close gaps and correct geometric inaccuracies. Only used if convert_format=True. If True, checks converted ACIS geometry to find and report any problems. Only used if convert_format=True. If True, checks for surface discontinuities or irregularities in the converted ACIS geometry. Only used if convert_format=True. If True and geometry was checked, this deletes any geometry that failed the checking.

STRING fName STRING title INT4 layer INT4 color BOOL increment_layer BOOL increment_color BOOL assign_color BOOL convert_format BOOL clean BOOL heal BOOL check BOOL stringent BOOL delete_invalid

feFileReadParasolidOpt

API-173

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. 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.

REAL8 scale

Output: None Return Code: FE_CANCEL FE_INVALID FE_NOT_AVAILABLE FE_SECURITY 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 The user aborted the operation by cancelling a dialog box. You specified a parameter that was not in the supported range. The required module for this function is not loaded on this system. The required module for this function is not properly licensed.

API-174

feFileReadParasolid

3.4.3.10 feFileReadParasolid

feFileReadParasolid
( fName ) Description: Short form of feFileReadParasolidOpt( ). Input: STRING fName 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.9, "feFileReadParasolidOpt". Example: None The filename/path of the Parasolid file to be read.

feFileReadProe

API-175

3.4.3.11 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 Output: None Return Code: FE_NOT_AVAILABLE FE_SECURITY Remarks/Usage: None Example: None The required module for this function is not loaded on this system. The required module for this function is not properly licensed. The filename/path of the Pro/E file to be read.

API-176

feFileReadSolidEdge

3.4.3.12 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 Output: None Return Code: FE_NOT_AVAILABLE FE_SECURITY Remarks/Usage: None Example: None The required module for this function is not loaded on this system. The required module for this function is not properly licensed. The filename/path of the Solid Edge file to be read.

feFileReadStepOpt

API-177

3.4.3.13 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 ) 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. The filename/path of the STEP file to be read. The title that is assigned to created layers and the solid. The ID of the layer for new geometry. Set to -1 to use the active layer. The color used for the geometry that is created. Set to -1 to use the active solid color. Only used if assign_color=True. 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. If True and you read an assembly, geometry for each solid is colored differently. If True, the specified color value is used for geometry; otherwise, the default colors are used. Set to True if you want to read Class VI solids. Set to True if you want to read Class V faceted solids. Set to True if you want to read Class IV surfaces. Set to True if you want to read Class III wireframe - edge based and shell based wireframe geometry. Set to True if you want to read Class II wireframe - wireframe without topology or other underlying surfaces. Set to True if you want to read Class II curve bounded surfaces.

STRING fName STRING title INT4 layer INT4 color BOOL increment_layer BOOL increment_color BOOL assign_color BOOL class_VI BOOL class_V BOOL class_IV BOOL class_III BOOL class_II_wf BOOL class_II_curv

API-178

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 ) 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. 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. If True, attempts to eliminate discontinuities in the STEP geometry which cannot be represented in Parasolid. Set this to True for the best conversion. If True, STEP geometry will be read as independent faces, then Parasolid 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. If True, geometry will be simplified to analytical surfaces whenever possible. If True, surfaces will be stitched into a solid. If True, extra checking is done to eliminate problems that can occur in closed analytical (sphere and torus) surfaces that produce complementary surfaces. 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. If True, syntax checking of the STEP file is done prior to reading. If True, the Parasolid geometry is checked for validity after the conversion.

BOOL class_II_2d

BOOL smooth_g1

BOOL explode

BOOL analytics BOOL stitch BOOL closed_orient

BOOL pro_e

BOOL check_input BOOL check_output Output: None Return Code: FE_CANCEL FE_INVALID FE_NOT_AVAILABLE FE_SECURITY

The user aborted the operation by cancelling a dialog box. You specified a parameter that was not in the supported range. The required module for this function is not loaded on this system. The required module for this function is not properly licensed.

feFileReadStepOpt

API-179

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 ) Remarks/Usage: None Example: None

API-180

feFileReadStep

3.4.3.14 feFileReadStep

feFileReadStep
( fName ) Description: Short form of feFileReadStepOpt( ). Input: STRING fName 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.13, "feFileReadStepOpt". Example: None The filename/path of the STEP file to be read.

feFileReadStl

API-181

3.4.3.15 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. The filename/path of the STL file to be read. Set to True to skip edges that are shorter than the min_distance setting. Set to True to merge all coincident nodes after the file is loaded. Set to True to attempt to close gaps in the STL mesh. Set to True to read a PATRAN generated STL file where negative coordinates can run together with no spaces between them. The minimum distance of short edges to be skipped.

STRING fName BOOL skip_short_edges BOOL merge_nodes BOOL close_gaps BOOL PATRAN_file REAL8 min_distance Output: None Return Code: FE_CANCEL FE_INVALID FE_FAIL Remarks/Usage: None Example: None

The user aborted the operation by cancelling a dialog box. You specified a parameter that was not in the supported range. An error occurred while reading the file.

API-182

feFileReadUg

3.4.3.16 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. The filename/path of the Unigraphics file to be read. Set to True to read parts that are blanked. If False, only unblanked parts will be read. Set to True to read parts that are on invisible layers. If False, only parts on visible layers will be read.

STRING fName BOOL rdBlanked BOOL rdLayers Output: None Return Code: FE_CANCEL FE_INVALID FE_NOT_AVAILABLE FE_SECURITY Remarks/Usage: None Example: None

The user aborted the operation by cancelling a dialog box. You specified a parameter that was not in the supported range. The required module for this function is not loaded on this system. The required module for this function is not properly licensed.

feFileReadAbaqus

API-183

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 STRING fName Output: None Return Code: FE_INVALID Remarks/Usage: None Example: None You specified an invalid value for the brand option. Used to select the format of the ABAQUS file. 0=Abaqus Input File (.INP), 1=Abaqus Results File (.FIL) The filename of the ABAQUS input file to read.

API-184

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 STRING fName Output: None Return Code: FE_INVALID Remarks/Usage: None Example: None You specified an invalid value for the brand option. Used to select the format of the ANSYS input file. 4 = Version 4, 5 = Version 5+. The filename of the ANSYS input file to read.

feFileReadDyna

API-185

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 STRING fName Output: None Return Code: FE_INVALID Remarks/Usage: None Example: None You specified an invalid value for the brand option. Used to select the format of the DYNA file. Currently this MUST be specified as 1=DYNA Results file. The filename of the DYNA file to read.

API-186

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 STRING fName Output: None Return Code: FE_INVALID Remarks/Usage: None Example: None You specified an invalid value for the brand option. Used to select the format of the Marc file. Currently this MUST be specified as 1=Marc Results file. The filename of the Marc file to read.

feFileReadNastran

API-187

3.4.4.5 feFileReadNastran

feFileReadNastran
( brand, fName ) Description: This function loads finite element model data from an existing NASTRAN file. Input: INT4 brand STRING fName Output: None Return Code: FE_INVALID Remarks/Usage: None Example: None You specified an invalid value for the brand option. 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. The filename of the NASTRAN input file to read.

API-188

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 BOOL bSaveZeroDispAsBC Output: None Return Code: FE_NOT_EXIST Remarks/Usage: None Example: None The file you specified does not exist. The filename of the Patran input file to read. If True, Zero Nodal Displacements are stored as Constraints. If False, they are stored as loads.

feFileReadAbaqusResults

API-189

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 STRING fName Output: None Return Code: FE_INVALID Remarks/Usage: None Example: None You specified an invalid value for the brand option. Used to select the format of the ABAQUS file. Currently this MUST be specified as 1=Abaqus Results file. The filename of the ABAQUS results file to read.

API-190

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 STRING fName Output: None Return Code: FE_INVALID Remarks/Usage: This function can read results files from structural (.RST) and thermal analyses (.RTH). Example: None You specified an invalid value for the brand option. Used to select the format of the ANSYS results file. 4 = Version 4, 5 = Version 5..9, 10 = 10 and up. The filename of the ANSYS results file to read.

feFileReadDynaResults

API-191

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 STRING fName Output: None Return Code: FE_INVALID Remarks/Usage: None Example: None You specified an invalid value for the brand option. Used to select the format of the DYNA file. Currently this MUST be specified as 1=DYNA Results file. The filename of the DYNA results file to read.

API-192

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 STRING fName Output: None Return Code: FE_INVALID Remarks/Usage: None Example: None You specified an invalid value for the brand option. Used to select the format of the Marc file. Currently this MUST be specified as 1=Marc Results file. The filename of the Marc file to read.

feFileReadNastranResults

API-193

3.4.5.5 feFileReadNastranResults

feFileReadNastranResults
( brand, fName ) Description: This function loads finite element results data from an existing NASTRAN file. Input: INT4 brand STRING fName Output: None Return Code: FE_INVALID Remarks/Usage: This function can read both NASTRAN printed results file (.F06) or OUTPUT2 files (.OP2). Example: None You specified an invalid value for the brand option. 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. The filename of the NASTRAN results file to read.

API-194

feFileReadNeutral

3.4.6 Import/Export Neutral File


3.4.6.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.
3.4.6.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.
3.4.6.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 STRING fName BOOL read_geometry BOOL read_model BOOL read_output BOOL read_groups BOOL read_views BOOL status_messages Used to select the format of the Neutral file. Not currently used. The filename of the Neutral file to read. If True, geometry is read from the file. If True, finite element model data is read from the file. If True, analysis results will be read from the file. If True, groups will be read from the file. If True, views will be read from the file. If True, status messages will be written to the Messages and Lists window to show how many entities are read.

feFileReadNeutral3

API-195

feFileReadNeutral3
( brand, fName, read_geometry, read_model, read_output, read_groups, read_views, status_messages, offsetID, renumber_layers, renumber_load_bc, create_new_output ) INT4 offsetID BOOL renumber_layers BOOL renumber_load_bc BOOL create_new_output Normally set to 0. If you specify another value, all IDs that are read are offset by this value. If True, layers will be renumbered by the offsetID along with the rest of the model. If False, they are not renumbered. If True, Load and Constraint sets are renumbered by offsetID along with the rest of the model. If False, they are not renumbered. If True, Output Sets are never overwritten - new ones are always created. 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 contained 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: None Remarks/Usage: None Example: None

API-196

feFileWriteNeutral

3.4.6.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.
3.4.6.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. The filename of the Neutral file to write. If True, geometry is written to the file. If True, finite element model data is written to the file. If True, analysis results will be written to the file. If True, selector information will be written to the file If True, color palette information will be written to the file If True, groups will be written to the file If True, views will be written to the file 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. If True, geometric loads and constraints will be expanded before being written. If True, spaces are compressed out of the file to reduce its size.

STRING fName BOOL write_geometry_model BOOL write_analysis_model BOOL write_output BOOL write_selector BOOL write_palette BOOL write_groups BOOL write_views BOOL write_addl_info

BOOL expand_geometric BOOL minimize_size

feFileWriteNeutral2

API-197

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 ) INT4 digits REAL8 version The number of digits of precision for all real numbers (must be 2 to 20). The version of the Neutral file to produce. Set to 0.0 to create the latest version. If you do not use 0.0, some model data may not be compatible with the file you write and will be lost. The ID of the group to write to the file. Specify 0 to write the entire model.

INT4 groupID Output: None Return Code: FE_INVALID FE_NOT_EXIST FE_FAIL Remarks/Usage: None Example: None

You specified an invalid value for digits. You chose a group that does not exist. An error occurred processing the group.

API-198

feFileWriteAcis

3.4.7 Export Geometry


3.4.7.1 feFileWriteAcis

feFileWriteAcis
( useDlg, fName, version, solidSET ) Description: This function writes solids from your model into a ACIS SAT file. Input: BOOL useDlg STRING fName REAL8 version If True, the function runs interactively. The dialog box that asks you to pick the solids to write will be displayed. The filename of the ACIS SAT file to write. 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. 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.

INT4 solidSET

Output: None Return Code: None Remarks/Usage: None Example: None

feFileWriteIges

API-199

3.4.7.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 BOOL spline_curves BOOL spline_surfaces BOOL bounded_surfaces INT4 customization INT4 surface_options INT4 export_as INT4 solidSET The filename of the IGES file to write. If True, all curves are written as splines. If True, surfaces are written as splines. If True, surfaces will be written as Type 143, bounded surfaces. Otherwise, Type 144 trimmed surfaces will be written. Controls the IGES customization options: 0=None, 1=AutoCAD, 2=JAMA-IS, 3=I-DEAS. Controls how trimming curves will be written: 0=Both, 1=2D Curves, 2=3D Curves. Controls how to write solids: 0=Solid MSBO, 1=Trimmed Surfaces, 2=Wireframe. 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 FE_INVALID FE_NOT_AVAILABLE FE_SECURITY Remarks/Usage: Only Parasolid solids can be written to an IGES file. Example: None The user aborted the operation by cancelling a dialog box. You specified a parameter that was not in the supported range. The required module for this function is not loaded on this system. The required module for this function is not properly licensed.

API-200

feFileWriteParasolid

3.4.7.3 feFileWriteParasolid

feFileWriteParasolid
( useDlg, fName, version, solidSET ) Description: This function writes solids from your model into a Parasolid X_T file. Input: BOOL useDlg STRING fName REAL8 version If True, the function runs interactively. The dialog box that asks you to pick the solids to write will be displayed. The filename of the Parasolid X_T file to write. 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. 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.

INT4 solidSET

Output: None Return Code: None Remarks/Usage: None Example: None

feFileWriteStep

API-201

3.4.7.4 feFileWriteStep

feFileWriteStep
( fName, solidSET ) Description: This function writes selected solids to a STEP file. Input: STRING fName INT4 solidSET The filename of the STEP file to write. 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 FE_INVALID FE_NOT_AVAILABLE FE_SECURITY Remarks/Usage: None Example: None The user aborted the operation by cancelling a dialog box. You specified a parameter that was not in the supported range. The required module for this function is not loaded on this system. The required module for this function is not properly licensed.

API-202

feFileWriteStl

3.4.7.5 feFileWriteStl

feFileWriteStl
( fName, elemSET ) Description: This function writes elements, or the faces of elements (solids) into a stereolithography (STL) file. Input: STRING fName INT4 elemSET The filename of the STL file to write. 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

feFileWriteVrml

API-203

3.4.7.6 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 REAL8 version BOOL write_solid The filename of the VRML file to write. Either 1.0 or 2.0. Specifies the version of VRML to write. 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. If True, all entities are written in the color specified. If True and elements are written and the current view style is deformed, then the geometry written is in its deformed location. If True and elements are written and the current view style is contour, then the geometry written will include contour information. If True, a plane representing the background is written along with the model geometry. If the background is written, this is its color. If single_color=True, this is the color used for all entities. 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.

BOOL single_color BOOL write_deformed BOOL write_contour BOOL write_background INT4 background_color INT4 color INT4 solidSET

Output: None Return Code: FE_INVALID Remarks/Usage: None Example: None One of the color values is outside of its acceptable range.

API-204

feFileWriteAbaqus

3.4.8 Export Analysis Model


3.4.8.1 feFileWriteAbaqus

feFileWriteAbaqus
( brand, fName ) Description: This function writes an ABAQUS input file. Input: INT4 brand STRING fName 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 Not currently used. The filename of the ABAQUS input file to write.

feFileWriteAnsys

API-205

3.4.8.2 feFileWriteAnsys

feFileWriteAnsys
( brand, fName ) Description: This function writes an ANSYS input file. Input: INT4 brand STRING fName 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 Not currently used. The filename of the ANSYS input file to write.

API-206

feFileWriteDyna

3.4.8.3 feFileWriteDyna

feFileWriteDyna
( brand, fName ) Description: This function writes an LS-DYNA input file. Input: INT4 brand STRING fName 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 Not currently used. The filename of the DYNA file to write.

feFileWriteMarc

API-207

3.4.8.4 feFileWriteMarc

feFileWriteMarc
( brand, fName ) Description: This function writes a Marc input file. Input: INT4 brand STRING fName 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 Not currently used. The filename of the Marc file to read.

API-208

feFileWriteNastran

3.4.8.5 feFileWriteNastran

feFileWriteNastran
( brand, fName ) Description: This function writes a NASTRAN input file. Input: INT4 brand STRING fName Output: None Return Code: FE_INVALID 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 You specified an invalid value for the brand option. 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. The filename of the NASTRAN input file to write.

feNotesGet

API-209

3.4.9 Notes
3.4.9.1 feNotesGet

feNotesGet
( noteSET, notes ) Description: This function retrieves the currently defined model notes. Input: INT4 noteSET Output: STRING notes Return Code: FE_FAIL FE_NOT_EXIST 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 An error occurred allocating the notes string. There are no currently defined notes. The string containing the notes. =1 for Model Notes, =2 for Translation Text

API-210

feNotesPut

3.4.9.2 feNotesPut

feNotesPut
( noteSET, clear, notes ) Description: This function updates the currently defined model notes. Input: INT4 noteSET BOOL clear STRING notes Output: None Return Code: FE_FAIL 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 An error occurred creating the notes. =1 for Model Notes, =2 for Translation Text If True, any existing notes are deleted before these notes are added; otherwise, this function appends to the current notes. The string containing the notes to add.

feFilePageSetupSave

API-211

3.4.10 Print and Copy


3.4.10.1 feFilePageSetupSave

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

API-212

feFilePageSetupReset

3.4.10.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-213

3.4.10.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. If True, printing is done at screen (bitmap) resolution. If False, printing is in printer resolution. Selects the data to print. (Active View=0, Desktop=1, File=2, MultiView Layout=3, Messages=4, Program File=5, Entity Info=6, API Programming=7, Data Table=8) Only used if source=2, print from file. In this case, this is the full pathname of the file to print. Complete path/filename of print destination. If blank, print will go to the current printer.

BOOL asBitmap INT4 source

STRING fromFile STRING toFile Output: None Return Code: FE_CANCEL FE_FAIL Remarks/Usage: None Example: None

User cancelled the dialog box. An error occurred while printing.

API-214

feFilePrint2

3.4.10.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. Selects the data to print. (Active View=0, Desktop=1, File=2, MultiView Layout=3, Messages=4, Program File=5, Entity Info=6, API Programming=7, Data Table=8) Complete path/filename of print destination. If blank, print will go to the current printer.

INT4 source

STRING toFile Output: None Return Code: FE_CANCEL FE_FAIL Remarks/Usage: None Example: None

User cancelled the dialog box. An error occurred while printing.

feFilePictureCopy

API-215

3.4.10.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 partially or fully obscured by other applications, then the picture that you copy will not be correct. Example: None

API-216

feFilePictureCopy2

3.4.10.6 feFilePictureCopy2

feFilePictureCopy2
( saveRegion ) Description: This function copies portions of the screen to the clipboard. Input: INT4 saveRegion 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 partially or fully obscured by other applications, then the picture that you copy will not be correct. Example: None 0=Graphics Window, 1=Layout, 2=Entire Desktop

feFilePictureSave

API-217

3.4.10.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 BOOL saveDesktop If True, this function runs interactively and displays a dialog box to ask the user to define the format and fName options. 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 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 animating windows. Metafiles and Placeable Metafiles are only available for non-Render windows. The name of the file to create.

INT4 format

STRING fName Output: None Return Code: FE_INVALID FE_FAIL Remarks/Usage:

You specified an invalid format. An error occurred saving the file.

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-218

feFilePictureSave2

3.4.10.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 INT32 saveRegion INT4 format If True, this function runs interactively and displays a dialog box to ask the user to define the format and fName options. 0=Graphics Window, 1=Layout, 2=Entire Desktop 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 animating windows. Metafiles and Placeable Metafiles are only available for non-Render windows. The name of the file to create.

STRING fName Output: None Return Code: FE_INVALID FE_FAIL Remarks/Usage:

You specified an invalid format. An error occurred saving the file.

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-219

3.4.10.9 feFilePictureReplay

feFilePictureReplay
( fName ) Description: This function replays an existing bitmap or metafile. Input: STRING fName Output: None Return Code: FE_FAIL 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 An error occurred replaying the picture - most likely the file does not exist. The name of the picture to replay - must be a bitmap or metafile.

API-220

feFileMessageCopy

3.4.10.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 copied. Example: None

feFileMessageSave

API-221

3.4.10.11 feFileMessageSave

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

API-222

feFileMessageSelect

3.4.10.12 feFileMessageSelect

feFileMessageSelect
( firstLine, lastLine ) Description: This function selects the specified lines in the Messages and Lists window. Input: INT4 firstLine INT4 lastLine Output: None Return Code: FE_INVALID Remarks/Usage: If either firstLine or lastLine are -1, the selection will be reset - no lines will be selected. Setting firstLine = 0, will automatically select starting at the first available line. Setting lastLine = 0 will automatically select up to the last available line. You can use the global integer Message_LineNumber 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 select. Example: None One of the line numbers that you selected was outside of the range of lines that are available. The line number of the first line of text to be selected. The line number of the last line of text to be selected.

feFileMessageLineNumber

API-223

3.4.10.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 Return Code: FE_INVALID 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 Either the message window is closed or the last line can not be retrieved. The line number of the last line in the message window

API-224

feFileRebuild

3.4.11 Rebuild and Preferences


3.4.11.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. 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.

BOOL fullRebuild

Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None An error occurred during rebuild. Some data is missing or corrupted. (or the rebuild was cancelled if useDlg=True)

feFilePreferencesSave

API-225

3.4.11.2 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 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 A problem occurred trying to save the settings.

API-226

feFilePreferencesReset

3.4.11.3 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

feRunIOTest

API-227

3.4.11.4 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 Output: INT4 nMethod Return Code: None Remarks/Usage: None Example: None Preferred result of test. 0=Windows I/O, 1=C I/O, 2=Windows 64K I/O, or 3=C 64K I/O. Directory path to the current Scratch directory, where the test will take place.

API-228
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"

feToolUnitConvertFactors

API-229

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] REAL8 baseAdd[0..5] Output: REAL8 factorMult[0..25] REAL8 factorAdd[0..25] Return Code: FE_TOO_SMALL FE_NOT_AVAILABLE FE_INVALID FE_BAD_TYPE 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=Acceleration, 9=AccelRot, 10=VelocityRot, 11=Damping, 12=DampingRot, 13=Mass, 14=Mass-Len, 15=MassPerLen, 16=MassPerArea, 17=Density, 18=MassInertia, 19=Temperature, 20=ThermalExpansion, 21=ThermConductivity, 22=SpecificHeat, 23=HeatGenRate, 24=Velocity, 25=EnergyPerMass This method can be called prior to calling feToolUnitConvert to compute the factor arrays needed for that method. Example: None One of the arrays has dimensions that are too small to be used where you specified it. One of the arrays does not contain the required data. 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 INT4). Computed factors used to multiply dimensions Computed factors added to converted dimensions. Base factors used to multiply dimensions. Base factors added to converted dimensions.

API-230

feToolUnitConvert

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] REAL8 baseAdd[0..5] REAL8 factorMult[0..25] REAL8 factorAdd[0..25] Output: None Return Code: FE_TOO_SMALL FE_NOT_AVAILABLE FE_INVALID FE_BAD_TYPE 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=Acceleration, 9=AccelRot, 10=VelocityRot, 11=Damping, 12=DampingRot, 13=Mass, 14=Mass-Len, 15=MassPerLen, 16=MassPerArea, 17=Density, 18=MassInertia, 19=Temperature, 20=ThermalExpansion, 21=ThermConductivity, 22=SpecificHeat, 23=HeatGenRate, 24=Velocity, 25=EnergyPerMass You can use the feToolUnitConvertFactors( ) method to automatically compute values for factorMult and factorAdd prior to calling this method. Example: None One of the arrays has dimensions that are too small to be used where you specified it. One of the arrays does not contain the required data. 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 INT4). Base factors used to multiply dimensions. Base factors added to converted dimensions. Computed factors used to multiply dimensions Computed factors added to converted dimensions.

feVarPut

API-231

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: STRING varName BOOL evalEqn BOOL setConst REAL8 varValue STRING varEqn Output: None Return Code: FE_BAD_DATA FE_INVALID 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 The equation that you specified in varEqn cannot be evaluated. You specified an invalid variable name. Specifies the name of the variable to define. Must follow normal FEMAP variable naming conventions - start with a letter, unique to 5 characters. 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 constant equation in varEqn. Current evaluated value for the variable. Should be the current value of the equation specified. The defining equation for the variable.

API-232

feVarGet

3.5.2.2 feVarGet

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

feVarEval

API-233

3.5.2.3 feVarEval

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

API-234
3.5.3 Layers

feLayerPut

3.5.3.1 feLayerPut

feLayerPut
( layID, layColor, layTitle ) Description: This function creates or updates a layer. Input: INT4 layID INT4 layColor STRING layTitle Output: None Return Code: None Remarks/Usage: None Example: None 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 layer color. The title to be used for the layer.

feLayerGet

API-235

3.5.3.2 feLayerGet

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

API-236
3.5.4 Text

feTextPut

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 BOOL drawPointer BOOL drawBorder BOOL modelPos INT4 horzJust INT4 vertJust INT4 visView INT4 layer INT4 fontID INT4 backColor INT4 bordColor INT4 textColor REAL8 textLoc[0..2] REAL8 pointerLoc[0..2] STRING text Output: None Return Code: None 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 specify in pointerLoc. If True, a border will be drawn around the text. If True, both the textLoc and pointerLoc are in global Cartesian model coordinates. If False, they are in screen coordinates. The horizontal justification: 0=Center, 1=Left, 2=Right. The vertical justification: 0=Center, 1=Top, 2=Bottom. Specifies the views where the text will be visible: -1=All Views, 0=Currently Active View, >0=Specified View ID. The layer attribute for the text. The ID of the font for the text. Same fonts as in the Tools, Text command. The color of the background of the border (if drawBorder=True). The color of the edge of the border (if drawBorder=True). The color of the text. The location of the text. If in model coordinates, the X,Y,Z coordinates in global Cartesian. If in screen, the X and Y screen coordinates. In this case, the third coordinate should always be 0.0 The location of the tip of the pointer. The text to create.

feTextPut

API-237

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) characters between the lines. For example, from Basic, you could use: s = "First Line" & Chr(13) & Chr(10) & "Second Line" Example: None

API-238

feTextMultiPut

3.5.4.2 feTextMultiPut

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

REAL8 textLoc[0..3*nCount1] REAL8 pointerLoc[0..3*nCount-1] STRING text[0..nCount-1] Output: None Return Code:

feTextMultiPut

API-239

feTextMultiPut
( drawPointer, drawBorder, modelPos, horzJust, vertJust, visView, layer, fontID, backColor, 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) characters 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-240

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

feTextGet

API-241

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

API-242

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] REAL8 p2[0..2] Output: REAL8 dist 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 The distance between the coordinate locations. The first coordinate location. The second coordinate location.

feMeasureDistanceToPlane

API-243

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] REAL8 planePt[0..2] REAL8 planeNorm[0..2] Output: REAL8 dist 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 The distance from the coordinate location to its projection onto the plane. The coordinate location. The coordinates of any point on the plane. The components of the perpendicular vector to the plane.

API-244

feMeasureDistanceBetweenNodes

3.5.5.3 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. Input: INT4 nFrom INT4 nTo INT4 nOutSetID INT4 nOutVecID INT4 nCSysID Output: REAL8 vecBase[0..2] REAL8 vecDist[0..2] REAL8 magDist Return Code: FE_NOT_AVAILABLE FE_INVALID FE_NOT_EXIST Remarks/Usage: None Example: None Selected results Set/Vector do not exist No output available for one or more of the nodes in the selected results vector. One or more of the nodes does not exist The coordinates of the nFrom node (possibly deformed) in CSys nCSysID The components of the vector from nFrom to nTo in CSys nCSysID The distance between the nodes The ID of the node to measure from The ID of the node to measure to The ID of the output set which contains the results to use to deform the nodes. If 0, use the undeformed location of the nodes. The ID of the output vector in nOutSetID which contains the results to use to deform the nodes. If 0, use the undeformed locations. The ID of the coordinate system in which the results are returned.

feMeasureDistanceBetweenLines

API-245

3.5.5.4 eMeasureDistanceBetweenLines

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] REAL8 pA2[0..2] REAL8 pB1[0..2] REAL8 pB2[0..2] Output: REAL8 dist 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 The minimum distance between the two line segments. The coordinates at the first end of the first line. The coordinates at the second end of the first line. The coordinates at the first end of the second line. The coordinates at the second end of the second line.

API-246

feMeasureAngle

3.5.5.5 feMeasureAngle

feMeasureAngle
( center, p1, p2, angle ) Description: This function measures the angle between three coordinate locations. Input: REAL8 center[0..2] REAL8 p1[0..2] REAL8 p2[0..2] Output: REAL8 angle 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 The angle between the coordinate locations (in degrees). The coordinates of the center location. The first coordinate location. The second coordinate location.

feMeasureAngleBetweenNodes

API-247

3.5.5.6 feMeasureAngleBetweenNodes

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

API-248

feMeasureCurve

3.5.5.7 feMeasureCurve

feMeasureCurve
( curveSET, totalLength ) Description: This function measures the length of one or more curves. Input: INT4 curveSET Output: REAL8 totalLength 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 The total length of all the curves. The ID of a selection set that contains the IDs of the curves to measure. Alternatively, if you specify a negative value, this is simply the ID of the single curve to measure.

feMeasureSurfaceArea

API-249

3.5.5.8 feMeasureSurfaceArea

feMeasureSurfaceArea
( surfaceSET, totalArea ) Description: This function measures the area of one or more surfaces. Input: INT4 surfaceSET Output: REAL8 totalArea Return Code: FE_NOT_EXIST FE_BAD_TYPE 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 One or more of the surfaces that you selected did not exist. totalArea is still the area of the existing surfaces. One or more of the surfaces that you selected was not a solid surface. The total area of the selected surfaces. The ID of a selection set that contains the IDs of the surfaces to measure. Alternatively, if you specify a negative value, this is simply the ID of the single surface to measure.

API-250

feMeasureSolidMassProp

3.5.5.9 feMeasureSolidMassProp

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

feMeasureMeshMassProp

API-251

3.5.5.10 feMeasureMeshMassProp

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

API-252

feMeasureMeshMassProp

feMeasureMeshMassProp
( elemSET, csysID, printResults, printDetails, len, area, volume, structMass, nonstructMass, 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 function and just select a single element. Example: None

feMeasureSurfSectionProp

API-253

3.5.5.11 feMeasureSurfSectionProp

feMeasureSurfSectionProp
( surfID, vecBase, vecDir, sectProp ) Description: This function computes the section properties for a planar surface. Input: INT4 surfID REAL8 vecBase[0..2] REAL8 vecDir[0..2] 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 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 centroid, 19= Y Shear Area, 20= Z Shear Area, 21= YZ Shear Area, 22= Warping Constant, 23= Torsional Constant, 24= Not Used. The ID of the surface to compute the properties. The coordinates of the origin of the orientation vector. Section properties are reported about this point. A vector in the direction of the Y axis of the section. Section properties are reported about this axis.

REAL8 sectProp[0..24]

Return Code: FE_TOO_SMALL FE_NOT_AVAILABLE FE_INVALID FE_BAD_TYPE Remarks/Usage: None Example: None One of the arrays has dimensions which are too small to be used where you specified it. One of the arrays does not contain the required data. 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 INT4).

API-254

feMeasureMeshSectionProp

3.5.5.12 feMeasureMeshSectionProp

feMeasureMeshSectionProp
( elemSET, vecBase, vecDir, sectProp ) Description: This function computes the section properties for a selected set of elements. Input: INT4 elemSET The ID of a selection set that contains the IDs of the elements to 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 properties are reported about this point. A vector in the direction of the Y axis of the section. Section properties are reported about this axis.

REAL8 vecBase[0..2] REAL8 vecDir[0..2] Output:

REAL8 sectProp[0..24]

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 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 centroid, 19= Y Shear Area, 20= Z Shear Area, 21= YZ Shear Area, 22= Warping Constant, 23= Torsional Constant, 24= Not Used.

Return Code: FE_TOO_SMALL FE_NOT_AVAILABLE FE_INVALID FE_BAD_TYPE Remarks/Usage: The elements that you select should all be planar elements. Example: None One of the arrays has dimensions which are too small to be used where you specified it. One of the arrays does not contain the required data. 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 INT4).

feCheckCoincidentNode

API-255

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 feCheckCoincidentNode2( ) 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 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 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. The distance below which nodes will be considered to be coincident. If True, coincident nodes will be merged. If True, messages will be printed listing all coincident nodes that are found.

INT4 keepSET

INT4 mergeSET

REAL8 tolerance BOOL merge BOOL messages 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]. 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.

INT4 coinNodes[0..N]

Return Code: FE_TOO_SMALL FE_NOT_AVAILABLE FE_INVALID FE_BAD_TYPE One of the arrays has dimensions which are too small to be used where you specified it. One of the arrays does not contain the required data. 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 INT4).

API-256

feCheckCoincidentNode

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

feCheckCoincidentNode2

API-257

3.5.6.2 feCheckCoincidentNode

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

API-258

feCheckCoincidentPoint

3.5.6.3 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 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 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. The distance below which points will be considered to be coincident. If True, coincident points will be merged. If True, messages will be printed listing all coincident points that are found.

INT4 keepSET

INT4 mergeSET

REAL8 tolerance BOOL merge BOOL messages 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]. 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.

INT4 coinPoints[0..N]

Return Code: FE_TOO_SMALL FE_NOT_AVAILABLE FE_INVALID FE_BAD_TYPE Remarks/Usage: None One of the arrays has dimensions which are too small to be used where you specified it. One of the arrays does not contain the required data. 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 INT4).

feCheckCoincidentPoint

API-259

feCheckCoincidentPoint
( keepSET, mergeSET, tolerance, merge, messages, coinCount, coinPoints ) Example: None

API-260

feCheckCoincidentCurve

3.5.6.4 feCheckCoincidentCurve

feCheckCoincidentCurve
( curveSET, tolerance ) Description: This function checks and merges coincident curves. Input: INT4 curveSET The ID of a selection set that contains the IDs of the curves to check 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 considered to be coincident.

REAL8 tolerance Output: None Return Code: None Remarks/Usage: None Example: None

feCheckPlanarNodes

API-261

3.5.6.5 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: INT4 nodeSET 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 the single node to check. If True, status messages are written showing the nodes that are not on 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 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 the plane. Only used if project=True. If True, a dialog box will be displayed asking the user to pick a plane. If False, the planeBase and planeNormal will be used to specify the plane location. A location (in global rectangular coordinates) on the plane. A vector that is normal to the plane.

BOOL messages

BOOL project

REAL8 tolerance

BOOL askPlane REAL8 planeBase[0..2] REAL8 planeNormal[0..2] Output: None Return Code: None Remarks/Usage: None Example: None

API-262

feCheckCoincidentElem

3.5.6.6 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: INT4 elemSET BOOL chkTYPE BOOL chkSHAPE BOOL chkMASS BOOL doLIST BOOL makeGROUP1 BOOL makeGROUP2 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 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 the ID of the single element to check. If True, elements of different type can still be considered coincident. If True, elements of different shape can be considered coincident if all of the nodes of one of the elements are on the other element. If True, mass elements are included in the check. If True, coincident elements are listed in the Messages and Lists window. If True, a group is made of the first element in the coincident pair. If True, a group is made of the second element in the coincident pair.

feCheckElemFixup

API-263

3.5.6.7 feCheckElemFixup

feCheckElemFixup
( elemSET ) Description: This function checks and attempts to fix a set of elements to see if any of them are invalid. Input: INT4 elemSET 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 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 the ID of the single element to check.

API-264

feCheckElemDistortion

3.5.6.8 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: INT4 elemSET 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 the ID of the single element to check. If True, distorted elements are listed in the Messages and Lists window. If True, a group is made of the distorted elements. If True, the aspect ratio check is performed. If True, element taper is checked. If True, the element internal angle check is performed. If True, the element warping check is performed. If True, the alternate element taper check is performed. If True, tetrahedral elements are checked for collapse. If True, checks element Jacobian If True, checks for combined element distortion factor Limit for aspect ratio check. Limit for taper check. Limit for internal angle check. Limit for warping check. Limit for alternate element taper check. Limit for tet collapse check. Limit for Jacobian check Limit for Combined Element Distortion check

BOOL doLIST BOOL makeGROUP BOOL chkASPECT BOOL chkTAPER BOOL chkANGLE BOOL chkWARP BOOL chkALTTAPER BOOL chkTET BOOL chkJDet BOOL chkComb REAL8 maxASPECT REAL8 maxTAPER REAL8 maxANGLE REAL8 maxWARP REAL8 maxALTTAPER REAL8 maxTET REAL8 maxJDet REAL8 maxComb Output: None

feCheckElemDistortion

API-265

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

API-266

feCheckElemDistortion2

3.5.6.9 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: INT4 elemSET 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 the ID of the single element to check. If True, distorted elements are listed in the Messages and Lists window. If True, a group is made of the distorted elements. If True, the aspect ratio check is performed. If True, element taper is checked. If True, the element internal angle check is performed. If True, the element warping check is performed. If True, the alternate element taper check is performed. If True, tetrahedral elements are checked for collapse. If True, checks element Jacobian If True, checks for combined element distortion factor If True, checks for Explicit Time Step factors Limit for aspect ratio check. Limit for taper check. Limit for internal angle check. Limit for warping check. Limit for alternate element taper check. Limit for tet collapse check. Limit for Jacobian check Limit for Combined Element Distortion check Limit for Explicit Time Step check

BOOL doLIST BOOL makeGROUP BOOL chkASPECT BOOL chkTAPER BOOL chkANGLE BOOL chkWARP BOOL chkALTTAPER BOOL chkTET BOOL chkJDet BOOL chkComb BOOL chkExpTime REAL8 maxASPECT REAL8 maxTAPER REAL8 maxANGLE REAL8 maxWARP REAL8 maxALTTAPER REAL8 maxTET REAL8 maxJDet REAL8 maxComb REAL8 maxExpTime

feCheckElemDistortion2

API-267

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

API-268

feGetElemDistortion

3.5.6.10 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 Output: REAL8 valASPECT REAL8 valTAPER REAL8 valANGLE REAL8 valWARP REAL8 valNasWARP REAL8 valALTTAPER REAL8 valTET REAL8 valJDet REAL8 valComb 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 Result of aspect ratio check. Result of taper check. Result of internal angle check. Result of warping check. Result of Nastran warping check Result of alternate element taper check. Result of tet collapse check. Result of Jacobian check. Results of Combined Quality check The ID of the element to check for distortion.

feGetElemDistortion2

API-269

3.5.6.11 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 Output: REAL8 valASPECT REAL8 valTAPER REAL8 valANGLE REAL8 valWARP REAL8 valNasWARP REAL8 valALTTAPER REAL8 valTET REAL8 valJDet REAL8 valComb REAL8 valExpTime 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 Result of aspect ratio check. Result of taper check. Result of internal angle check. Result of warping check. Result of Nastran warping check Result of alternate element taper check. Result of tet collapse check. Result of Jacobian check. Results of Combined Quality check Results of Explicit Time Step check The ID of the element to check for distortion.

API-270

feCheckElemNormal

3.5.6.12 feCheckElemNormal

feCheckElemNormal
( elemSET, csysID, doLIST, swapNORMAL, autoNORMAL, manNORMAL ) Description: This function checks and optionally reverses element normals. Input: INT4 elemSET 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 the ID of the single element to check. The coordinate system in which the check is done. If you are specifying manNORMAL, it must be in this coordinate system. If True, swapped elements are listed in the Messages and Lists window. If True, elements with normals that are opposite to the desired normal are reversed. If True, the desired normal direction is automatically determined 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 the desired normal. Only used if autoNORMAL=False.

INT4 csysID BOOL doLIST BOOL swapNORMAL

BOOL autoNORMAL

REAL8 manNORMAL[0..2] Output: None Return Code: FE_TOO_SMALL FE_NOT_AVAILABLE FE_INVALID FE_BAD_TYPE Remarks/Usage: Only works with planar elements. Example: None

One of the arrays has dimensions which are too small to be used where you specified it. One of the arrays does not contain the required data. 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 INT4)

feCheckConstraints

API-271

3.5.6.13 feCheckConstraints

feCheckConstraints
( doPERM, doLIST, bcSUM, bcSEP ) Description: This function checks constraints in the active constraint set. Input: BOOL doPERM BOOL doLIST Output: REAL8 bcSUM[0..5] The sum of the constraint values in each of the six degrees of freedom. The max separation of constraints. [0],[1],[2] are the max XYZ separation 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. If True, permanent nodal constraints are included in the check. If True, a summary report is listed.

REAL8 bcSUM[0..8] Return Code: FE_TOO_SMALL FE_NOT_AVAILABLE FE_INVALID FE_BAD_TYPE Remarks/Usage:

One of the arrays has dimensions which are too small to be used where you specified it. One of the arrays does not contain the required data. 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 INT4).

Automatically uses whichever constraint set is active. Example: None

API-272

feCheckCoincidentLoads

3.5.6.14 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: INT4 loadSET The ID of a selection set that contains the IDs of the load sets to 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/ combine them.

BOOL mergeLOADS 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

feCheckSumForces

API-273

3.5.6.15 feCheckSumForces

feCheckSumForces
( expandGEOM, doLIST, useSETS, nodeSET, elemSET, basePOINT, csysID, summedFORCES ) Description: This function checks loads from the active load set and sums the forces around a specific location. Input: BOOL expandGEOM BOOL doLIST BOOL useSETS If True, geometric loads are expanded before the check. If not, nonexpanded geometric loads will be ignored. If True, a summary report is written. If True, nodeSET and elemSET must specify the nodes and elements 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 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 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 rectangular coordinates. The coordinate system used to report and returned the summed loads.

INT4 nodeSET

INT4 elemSET

REAL8 basePOINT[0..2] INT4 csysID Output: REAL8 summedFORCES[0..14] Return Code: None Remarks/Usage:

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.

Uses the loads in the active load set. Example: None

API-274
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"

feLinePoints

API-275

3.6.1 Lines
3.6.1.1 feLinePoints

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

API-276

feLineHorzVert

3.6.1.2 feLineHorzVert

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

feLineAtAngle

API-277

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 INT4 curveID 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 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 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. 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 the curve is created.

REAL8 origin[0..2]

REAL8 side[0..2]

BOOL messages Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None

Could not create the line - probably the curve does not exist.

API-278

feLineParallel

3.6.1.4 feLineParallel

feLineParallel
( offset, curveID, side, messages ) Description: Creates a line parallel to another in the workplane. Input: REAL8 offset INT4 curveID REAL8 side[0..2] The perpendicular distance from the selected curve used to locate the new curve. The ID of the reference curve. A location on the side of the curve where the line will be drawn. The 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 the curve is created.

BOOL messages Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None

Could not create the line - either the curve does not exist or it is not of the correct type.

feLineMidline

API-279

3.6.1.5 feLineMidline

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

API-280

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 REAL8 origin[0..2] 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 location and be tangent to the curve. A location on the side of the curve where the line will be tangent. 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 the curve is created.

REAL8 side[0..2]

BOOL messages Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None

Could not create the line - either the curve does not exist or there is no tangent that could be computed.

feLine2Tangent

API-281

3.6.1.7 feLine2Tangent

feLine2Tangent
( curve1, curve2, side, messages ) Description: Creates a line that is tangent to two selected curves. Input: INT4 curve1 INT4 curve2 REAL8 side[0..2] The IDs of the curves that the line will be tangent to. A location on the side of the first curve where the line will be tangent. 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 the curve is created.

BOOL messages Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None

Could not create the line - either one of the curves does not exist or there is no tangent that could be computed.

API-282

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] REAL8 p2[0..2] BOOL messages Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Unable to create the curves. The diagonal locations that define the corners of the rectangle. These locations are projected onto the workplane. If True, messages are written to the Messages and Lists window as the curve is created.

feLinePointIDs

API-283

3.6.1.9 feLinePointIDs

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

API-284
3.6.2 Arcs

feArcCenterStartEnd

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] REAL8 start[0..2] REAL8 end[0..2] BOOL messages Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Unable to create the arc. 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 defines the radius. end is not necessarily on the arc, but specifies the ending location. If True, messages are written to the Messages and Lists window as the curve is created.

feArcRadiusStartEnd

API-285

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 REAL8 start[0..2] REAL8 end[0..2] BOOL messages Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Unable to create the arc - radius could be too small for locations specified. The radius of the arc. 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 arc. If True, messages are written to the Messages and Lists window as the curve is created.

API-286

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 REAL8 start[0..2] REAL8 end[0..2] BOOL messages Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Unable to create the arc - angle may not be valid. The included angle swept out by the arc. 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 arc. If True, messages are written to the Messages and Lists window as the curve is created.

feArcAngleCenterStart

API-287

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 REAL8 center[0..2] REAL8 start[0..2] BOOL messages Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Unable to create the arc - angle may not be valid. The included angle swept out by the arc. 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 the radius. If True, messages are written to the Messages and Lists window as the curve is created.

API-288

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 REAL8 center[0..2] REAL8 start[0..2] BOOL messages Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Unable to create the arc. The chord length of the arc, used to determine the included angle. 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 the radius. If True, messages are written to the Messages and Lists window as the curve is created.

feArcPoints

API-289

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] REAL8 mid[0..2] REAL8 end[0..2] BOOL messages Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Unable to create the arc - points may be colinear. If True, messages are written to the Messages and Lists window as the curve is created. The three points on the arc. The arc goes from start, toward mid and stops at end.

API-290

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] REAL8 start[0..2] REAL8 mid[0..2] REAL8 end[0..2] BOOL messages Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Unable to create the arc - points may be colinear or invalid. The location at the center of the arc. The location at the start of the arc. This, along with center, determine the radius of the arc. A location used to determine the direction of the arc from start - it does not necessarily lie on the arc. A location used to determine the ending angle of the arc - it does not necessarily lie on the arc. If True, messages are written to the Messages and Lists window as the curve is created.

feArcTangentStartEnd

API-291

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] REAL8 start[0..2] REAL8 end[0..2] BOOL messages Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Unable to create the arc. A vector in the direction of the starting tangent of the arc. The location at the start of the arc. The location at the end of the arc. If True, messages are written to the Messages and Lists window as the curve is created.

API-292
3.6.3 Circles

feCircleRadius

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] REAL8 start[0..2] BOOL messages Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Unable to create the circle. The location at the center of the circle. A location on the perimeter of the circle. If True, messages are written to the Messages and Lists window as the curve is created.

feCircleDiameter

API-293

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] REAL8 dia2[0..2] BOOL messages Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Unable to create the circle. The locations at the opposite ends of the diameter of the circle. If True, messages are written to the Messages and Lists window as the curve is created.

API-294

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 REAL8 center[0..2] BOOL messages Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Unable to create the circle. The radius of the circle.s The location of the center of the circle. If True, messages are written to the Messages and Lists window as the curve is created.

feCircle2Point

API-295

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 counterclockwise direction from pt1 to pt2. Specify a negative number 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. The locations on the circle. If True, messages are written to the Messages and Lists window as the curve is created.

REAL8 radius

REAL8 pt1[0..2] REAL8 pt2[0..2] BOOL messages Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None

Unable to create the circle.

API-296

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 INT4 curveID BOOL messages Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Unable to create the circle. The radius of the circle. The ID of another arc or circle - used to define the center. If True, messages are written to the Messages and Lists window as the curve is created.

feCircle3Point

API-297

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] REAL8 pt3[0..2] BOOL messages Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Unable to create the circle. If True, messages are written to the Messages and Lists window as the curve is created. The locations on the circle.

API-298

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] REAL8 pt1[0..2] REAL8 pt2[0..2] BOOL messages Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Unable to create the circle. The center of the circle. 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 the circle. If True, messages are written to the Messages and Lists window as the curve is created.

feCircleCenterTangent

API-299

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 REAL8 center[0..2] BOOL messages Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Unable to create the circle. ID of the curve that this circle will be tangent to. The center of the circle. If True, messages are written to the Messages and Lists window as the curve is created.

API-300

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 INT4 curve2 REAL8 radius REAL8 nearloc[0..2] IDs of the curves that this circle will be tangent to. The radius of the circle being created. A location near the tangency. This is used to select which tangency to 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 the curve is created.

BOOL messages Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None

Unable to create the circle.

feSplinePoints

API-301

3.6.4 Splines
3.6.4.1 feSplinePoints

feSplinePoints
( project, controlpoints, count, xyz, messages ) Description: Creates a spline using the specified points. Input: BOOL project Set to True if you want to project the xyz coordinates onto the workplane before creating the spline. Set to True if xys contains coordinates of the spline control points. 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, and can be no larger than 109. The coordinates of the locations used to define the spline. This array 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 the curve is created.

BOOL controlpoints

INT4 count REAL8 xyz[0..3*count-1] BOOL messages Output: None Return Code: FE_FAIL Remarks/Usage: None Example:

Unable to create the spline.

API-302

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-303

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] REAL8 v1[0..2] REAL8 x2[0..2] REAL8 v2[0..2] BOOL messages Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Unable to create the spline. The coordinates of the start of the spline. The components of the starting tangent of the spline. The coordinates of the ending location of the spline. The components of the ending tangent of the spline. If True, messages are written to the Messages and Lists window as the curve is created.

API-304

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] REAL8 vector[0..2] REAL8 a REAL8 b BOOL messages Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Unable to create the spline. The coordinates at the center of the ellipse. The components of the vector along one axis of the ellipse. The radius of the ellipse along the vector. The radius of the ellipse perpendicular to the vector. If True, messages are written to the Messages and Lists window as the curve is created.

feSplineParabola

API-305

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] REAL8 focus[0..2] REAL8 trim[0..2] BOOL messages Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Unable to create the spline. The coordinates at the center of the parabola. The coordinates of the focus of the parabola. The coordinates used to trim the outer end of the parabola. If True, messages are written to the Messages and Lists window as the curve is created.

API-306

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] REAL8 towardfocus[0..2] REAL8 angle REAL8 height REAL8 trim[0..2] BOOL messages Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Unable to create the spline. The coordinates at the center of the hyperbola. The components of a vector in the direction pointing toward the focus from the center. The asymptote angle. The vertex height. The coordinates used to trim the outer end of the hyperbola. If True, messages are written to the Messages and Lists window as the curve is created.

feSplineBlend

API-307

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 REAL8 near1[0..2] INT4 curve2 REAL8 near2[0..2] REAL8 factor BOOL messages Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Unable to create the spline. The ID of the first curve. Coordinates near the desired end of curve1. The ID of the second curve. Coordinates near the desired end of curve2. The blend factor - adjusts the curvature of the spline between the curves. If True, messages are written to the Messages and Lists window as the curve is created.

API-308

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: BOOL update Set to True to update/split the underlying surfaces as curves are projected or created on the surfaces. If False, then the curves will be created at the same locations, but the surfaces will remain unchanged. If True, messages are written to the Messages and Lists window as the curve is created.

BOOL messages Output: None Return Code: None Remarks/Usage: None Example: None

feCurveIntersectSolids

API-309

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 INT4 solid2 Output: None Return Code: FE_FAIL Remarks/Usage: If feCurveUpdateSurfaces is True, the surfaces of the solids will be split at the intersection curves. Example: None Unable to create the curves. 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 enclosed volume).

API-310

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: BOOL projectNormal REAL8 along[0..2] INT4 solidID INT4 curveSET BOOL messages Output: None Return Code: FE_FAIL Remarks/Usage: If feCurveUpdateSurfaces is True, the surfaces of the solids will be split at the projected curves. Example: None Unable to create the curves. If True, the projection is done to the closest location on the solid. If False, the projection is along the along vector. The components of the vector to project along. Ignored unless projectNormal is False. The ID of the solid to project onto. The ID of the set of existing curves to project onto the solid. Specify as a negative value to project a single curve. If True, messages are written to the Messages and Lists window as the curve is created.

feCurveProjectOntoSurfaces

API-311

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: BOOL projectNormal REAL8 along[0..2] INT4 surfSET INT4 curveSET BOOL messages Output: None Return Code: FE_FAIL Remarks/Usage: If feCurveUpdateSurfaces is True, the surfaces will be split at the projected curves. Example: None Unable to create the curves. If True, the projection is done to the closest location on the surface. If False, the projection is along the along vector. The components of the vector to project along. Ignored unless projectNormal is False. The ID of the set of existing surfaces to project onto. Specify as a negative value to project onto a single surface. The ID of the set of existing curves to project onto the surfaces. Specify as a negative value to project a single curve. If True, messages are written to the Messages and Lists window as the curve is created.

API-312

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 BOOL uDir The ID of the surface used to define the curve. If True, the curve will be along the surface U parametric direction. If False, the V parametric direction will be used. A location that the curve will pass through. This location is projected 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 the curve is created.

REAL8 location[0..2]

BOOL messages Output: None Return Code: FE_FAIL Remarks/Usage:

Unable to create the curves.

If feCurveUpdateSurfaces is True, the surface will be split at the parametric curve. Example: None

feCurveSlice

API-313

3.6.5.6 feCurveSlice

feCurveSlice
( solidID, planeBASE, planeNORMAL, planeX ) Description: Creates curves by slicing a solid with a plane. Input: INT4 solidID REAL8 planeBASE[0..2] REAL8 planeNORMAL[0..2] REAL8 planeX[0..2] Output: None Return Code: FE_FAIL 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 Unable to create the curves. The ID of the solid being sliced. Any location that lies on the plane used to slice the solid. The components of a vector that is normal to the plane. The components of a reference vector that lies in the plane - must be perpendicular to planeNORMAL.

API-314

feCurveOffsetCurveWasher

3.6.5.7 feCurveOffsetCurveWasher

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

feCurveSplitPointToPoint

API-315

3.6.5.8 feCurveSplitPointToPoint

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

API-316

feCurveSplitPointToEdge

3.6.5.9 feCurveSplitPointToEdge

feCurveSplitPointToEdge
( nPtA, nCuID ) Description: Splits a surface between a point and an edge Input: INT4 nPtA INT4 nCuID Output: None Return Code: FE_FAIL 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 Unable to create the curves / split the surface. The points to split the surface from The ID of the curve to split to

feCurveSplitEdgeToEdge

API-317

3.6.5.10 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. Alternatively, specify a negative value to choose the ID of a single short edge.

INT4 nShortEdgeSet

Output: None Return Code: FE_FAIL 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 Unable to create the curves / split the surface.

API-318

feCurveTrim

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 INT4 trimID The ID of the curve to be trimmed. 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 end of the curve to trim, and to choose between multiple intersections of the curves. If True, the trim curve is considered infinite and intersections are found anywhere along its length. If False, intersections must be between the curve endpoints.

REAL8 nearLoc[0..2]

BOOL extend Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None

Did not trim the curve - possibly there was no intersection.

feCurveExtend

API-319

3.6.6.2 feCurveExtend

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

API-320

feCurveBreak

3.6.6.3 feCurveBreak

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

feCurveJoin

API-321

3.6.6.4 feCurveJoin

feCurveJoin
( curve1, curve2, nearLoc, update1, update2 ) Description: Extends or trims two curves to their intersection location. Input: INT4 curve1 INT4 curve2 The ID of the first curve to be joined. 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 of the curves to trim/extend, and to choose between multiple intersections of the curves. If True, curve1 is extended or trimmed to the join location. If False, curve1 is left unchanged. If True, curve2 is extended or trimmed to the join location. If False, curve2 is left unchanged.

REAL8 nearLoc[0..2]

BOOL update1 BOOL update2 Output: None Return Code: FE_FAIL Remarks/Usage:

Did not join the curves - possibly there was no intersection.

Do not set update1=update2=False. In this case, nothing will be changed. Example: None

API-322

feCurveFillet

3.6.6.5 feCurveFillet

feCurveFillet
( radius, curve1, curve2, nearLoc, update1, update2 ) Description: Fillets the intersection of two curves. Input: REAL8 radius INT4 curve1 INT4 curve2 The fillet radius. The ID of the first curve to be filleted. 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 important. It chooses the quadrant of the intersection that is going to be filleted. If True, curve1 is extended or trimmed to the fillet location. If False, curve1 is left unchanged. If True, curve2 is extended or trimmed to the fillet location. If False, curve2 is left unchanged.

REAL8 nearLoc[0..2]

BOOL update1 BOOL update2 Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None

Did not fillet the curves - possibly there was no intersection.

feCurveChamfer

API-323

3.6.6.6 feCurveChamfer

feCurveChamfer
( len1, len2, curve1, curve2, nearLoc, update1, update2 ) Description: Chamfers the intersection of two curves. Input: REAL8 len1 REAL8 len2 INT4 curve1 INT4 curve2 The chamfer length along curve1. The chamfer length along curve2. The ID of the first curve to be chamfered. 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 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, curve1 is left unchanged. If True, curve2 is extended or trimmed to the fillet location. If False, curve2 is left unchanged.

REAL8 nearLoc[0..2]

BOOL update1 BOOL update2 Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None

Did not chamfer the curves - possibly there was no intersection.

API-324

feBoundaryFromPoints

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: INT4 nCSys INT4 nPoints REAL8 pXYZ[0..3*nPoints-1] Output: INT4 nBoundaryID Return Code: FE_FAIL 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 Unable to create the boundary - either points and curves failed to be created or the loop is not connected. The ID of the boundary that is created. The ID of a Coordinate System that the pXYZ coordinates are defined in. 0=Global Rectangular The number of locations specified in the pXYZ array The coordinates of the points used to define the boundary, specified in the selected Coordinate System. The array must be stored as [x0,y0,z0,x1,y1,z1,...xN,yN,zN]

feBoundaryFromCurves

API-325

3.6.7.2 feBoundaryFromCurves

feBoundaryFromCurves
( setID ) Description: Creates a boundary surface from a group of connected curves. Input: INT4 setID Output: None Return Code: FE_FAIL 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 Unable to create the boundary - either curves do not exist, or are not connected. The ID of a set that contains a list of Curve IDs used to define the boundary. Alternatively, if you specify a negative value, this is simply the ID of the single curve to write (which must be closed).

API-326

feBoundaryFromSurfaces

3.6.7.3 feBoundaryFromSurfaces

feBoundaryFromSurfaces
( surfaceSET ) Description: Creates a boundary surface from a group of adjacent surfaces on a solid. Input: INT4 surfaceSET Output: None Return Code: FE_FAIL 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 Unable to create the boundary - either surfaces do not exist, or are not adjacent. The ID of a set that contains a list of Surface IDs used to define the boundary. Alternatively, if you specify a negative value, this is simply the ID of the single surface to use.

feBoundaryAddSurfaces

API-327

3.6.7.4 feBoundaryAddSurfaces

feBoundaryAddSurfaces
( nBoundaryID, surfaceSET, bAddToExisting ) Description: Adds surfaces to an already defined multi-surface boundary Input: INT4 nBoundaryID INT4 surfaceSET BOOL bAddToExisting Output: None Return Code: FE_FAIL 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 Unable to create the boundary - either surfaces do not exist, or are not adjacent. The ID of the boundary to update The ID of a set that contains a list of Surface IDs used to define the boundary. Alternatively, if you specify a negative value, this is simply the ID of the single surface to use. Set to True, to add the new surfaces into the existing boundary.

API-328

feBoundaryUpdateSurfaces

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 Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Unable to update the boundary - possibly the original definition is no longer valid. The ID of the boundary surface to update.

feSurfaceCorners

API-329

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: BOOL fourCorners REAL8 c1[0..2] REAL8 c2[0..2] REAL8 c3[0..2] REAL8 c4[0..2] Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Unable to create surface. Points may be colinear. The corner locations. These locations should be specified in global coordinates, and must be specified in a continuous loop around the surface. Set to True to define a surface from four corners, or False to define a three-corner surface.

API-330

feSurfaceEdgeCurves

3.6.8.2 feSurfaceEdgeCurves

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

feSurfaceAlignedCurves

API-331

3.6.8.3 feSurfaceAlignedCurves

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

API-332

feSurfaceAlignedCurves

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 curveID(0) curveID(1) curveID(2) curveID(3) curveID(4) curveID(5) vcurveID = = 6 = 5 = 4 = 3 = 2 = 6 = 1 curveID

rc = App.feSurfaceAlignedCurves(curveCOUNT, vcurveID) App.feViewRegenerate(0) End Sub

feSurfaceRuled

API-333

3.6.8.4 feSurfaceRuled

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

API-334

feSurfaceExtrude

3.6.8.5 feSurfaceExtrude

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

feSurfaceRevolve

API-335

3.6.8.6 feSurfaceRevolve

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

API-336

feSurfaceSweep

3.6.8.7 feSurfaceSweep

feSurfaceSweep
( curveSET, pathSET ) Description: Creates one or more surfaces by sweeping a set of curves along a path. Input: INT4 curveSET ID of set containing the IDs of the curves to be swept. Alternatively, 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 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.

INT4 pathSET

Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Unable to create surface. Curves may not exist, or path may not be connected.

feSurfaceNormalDeviation

API-337

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

API-338

feSurfaceConvert

3.6.8.9 feSurfaceConvert

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

feSurfaceNonManifoldAdd

API-339

3.6.8.10 feSurfaceNonManifoldAdd

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

API-340

feSurfaceRecoverManifold

3.6.8.11 feSurfaceRecoverManifold

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

feSurfaceRemoveHole

API-341

3.6.8.12 feSurfaceRemoveHole

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

API-342

feSurfaceMidSingle

3.6.9 Midsurfaces
3.6.9.1 feSurfaceMidSingle

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

feSurfaceMidAuto

API-343

3.6.9.2 feSurfaceMidAuto

feSurfaceMidAuto
( surfSET, thick ) Description: Creates midsurfaces between a set of selected surfaces Input: INT4 surfSET REAL8 thick Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Could not create the midsurfaces. ID of set containing the IDs of the surfaces to be used to generate midsurfaces. The target thickness to be used to find midsurfaces.

API-344

feSurfaceMidAttrib

3.6.9.3 feSurfaceMidAttrib

feSurfaceMidAttrib
( surfSET, matlID ) Description: Assigns meshing attributes, including thicknesses, to surfaces that were created as midsurfaces. Input: INT4 surfSET INT4 matlID Output: None Return Code: FE_FAIL 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 Could not assign attributes. ID of set containing the IDs of the surfaces to have attributes assigned. Alternatively, if you specify a negative value, this is simply the ID of the single surface to use. The ID of the material to assign as a meshing attribute.

feSurfaceTrimToSolid

API-345

3.6.9.4 feSurfaceTrimToSolid

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

API-346

feSurfaceTrimWithCurves

3.6.9.5 feSurfaceTrimWithCurves

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

feSolidPrimitive

API-347

3.6.10 Solids
3.6.10.1 feSolidPrimitive

feSolidPrimitive
( operation, shape, positive, origin, size, title ) Description: Creates a solid primitive. Input: INT4 operation The type of operation to perform when creating the solid: 0=Create 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), 2=Cylinder, 3=Cone, 4=Sphere, 5=Sphere (Alt) Set to True if the Z direction should be in the positive workplane Z direction, or False to go in the negative workplane Z direction. Dimensions should all be positive. The location, in the workplane, of the origin of the solid. The size of the primitive to create. The exact meaning of these dimensions varies depending on the value of shape. Refer to the table at the end of this command for details. The title to assign to the solid - only used if creating a new solid.

INT4 shape

BOOL positive REAL8 origin[0..1] REAL8 size[0..2] STRING title Output: None Return Code: FE_FAIL Remarks/Usage:

Could not create the primitive.

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-348

feSolidPrimitive

Primitive/Shape size(0) = Radius Cylinder size(1) = not used size(2) = Height

Size

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-349

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: INT4 operation INT4 surfID The type of operation to perform when creating the solid: 0=Create New Solid, 1=Add to Active Solid, 2=Remove from Active Solid. The surface to extrude. This surface can either be an existing solid surface, or a planar boundary. Specifies the approach you will use to specify the extrusion direction: 0=Positive Surface Normal, 1=Negative Surface Normal, 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], 1=To Location - the location to extrude to is specified in depthVec[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 vector. Only used if dirMode = 3, 4 or 5. The extrusion length (depthMode=0) or the location to extrude to, in global rectangular coordinates (depthMode=1). Not used for Thru All extrusions.

INT4 dirMode

INT4 depthMode

REAL8 dirVec[0..2]

REAL8 depthVec[0..2] Output: None Return Code: FE_FAIL Remarks/Usage:

Could not create the extrusion.

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-350

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: INT4 operation INT4 surfID The type of operation to perform when creating the solid: 0=Create New Solid, 1=Add to Active Solid, 2=Remove from Active Solid. The surface to revolve. This surface can either be an existing solid surface, or a planar boundary. Specifies the approach you will use to specify the extrusion direction: 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 revolution: 0=Specified Angle - the angle is defined in angleVec[0], 1=To 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 rectangular coordinates. The components of the axis of revolution, specified in global rectangular coordinates. The angle of revolution (angleMode=0) or the location to revolve to, in global rectangular coordinates (angleMode=1). Not used for Full 360 revolutions.

INT4 dirMode

INT4 angleMode

REAL8 axisBase[0..2] REAL8 axisVec[0..2]

REAL8 angleVec[0..2] Output: None Return Code: FE_FAIL Remarks/Usage:

Could not create the revolution.

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-351

3.6.10.4 feSolidExplode

feSolidExplode
( solidSET ) Description: Explodes selected solids into individual surfaces. Input: INT4 solidSET Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Could not explode selected solids. The ID of a set that contains a list of Solid IDs that will be exploded. Alternatively, if you specify a negative value, this is simply the ID of the single solid to explode.

API-352

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: INT4 surfaceSET The ID of a set that contains a list of Surface IDs that will be stitched. 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). Specify 0.0 to use the default stitching tolerance.

REAL8 tolerance Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None

Could not stitch selected surfaces.

feSolidStitchNoCleanup

API-353

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: INT4 surfaceSET The ID of a set that contains a list of Surface IDs that will be stitched. 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). Specify 0.0 to use the default stitching tolerance.

REAL8 tolerance Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None

Could not stitch selected surfaces.

API-354

feSolidFillet

3.6.10.7 feSolidFillet

feSolidFillet
( curveSET, radius ) Description: Fillets one or more edges of a solid. Input: INT4 curveSET REAL8 radius Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Could not fillet selected curves. The ID of a set that contains a list of Curve IDs that will be filleted. Alternatively, if you specify a negative value, this is simply the ID of the single curve to fillet. The fillet radius.

feSolidChamfer

API-355

3.6.10.8 feSolidChamfer

feSolidChamfer
( curveSET, length ) Description: Chamfers one or more edges of a solid. Input: INT4 curveSET REAL8 chamfer Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Could not chamfer selected curves. The ID of a set that contains a list of Curve IDs that will be chamfered. Alternatively, if you specify a negative value, this is simply the ID of the single curve to chamfer. The chamfer length.

API-356

feSolidAdd

3.6.10.9 feSolidAdd

feSolidAdd
( solidSET, redraw ) Description: Adds two or more solids to form a new solid. Input: INT4 solidSET BOOL redraw Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Could not add the selected solids. The ID of a set that contains a list of Solid IDs that will be added. This list must contain at least two solids to be added. If True, the graphics will be redrawn to reflect the updated solids following this operation.

feSolidRemove

API-357

3.6.10.10 feSolidRemove

feSolidRemove
( baseID, solidSET, redraw ) Description: Removes (subtracts) one or more solids from a base solid. Input: INT4 baseID The ID of the base solid, from which the solids in solidSET will be removed. The ID of a set that contains a list of Solid IDs that will be removed. 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 following this operation.

INT4 solidSET

BOOL redraw Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None

Could not remove the selected solids.

API-358

feSolidCommon

3.6.10.11 feSolidCommon

feSolidCommon
( baseID, toolID, redraw ) Description: Creates a new solid that represents the common volume between two original solids. Input: INT4 baseID INT4 toolID BOOL redraw Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Could not find the common volume between the selected solids. The ID of the base solid. The ID of the tool solid. If True, the graphics will be redrawn to reflect the updated solids following this operation.

feSolidEmbed

API-359

3.6.10.12 feSolidEmbed

feSolidEmbed
( baseID, toolID, redraw ) Description: Embeds one solid (the tool) inside another (the base). Input: INT4 baseID INT4 toolID BOOL redraw Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Could not embed the selected solid. The ID of the base solid. The ID of the tool solid. If True, the graphics will be redrawn to reflect the updated solids following this operation.

API-360

feSolidIntersect

3.6.10.13 feSolidIntersect

feSolidIntersect
( solidSET, redraw ) Description: Breaks all of the surfaces of the selected solids at their intersections with other surfaces. Input: INT4 solidSET BOOL redraw Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Could not intersect the selected solids. The ID of a set that contains a list of solid IDs that will be intersected. This list must contain at least two solids. If True, the graphics will be redrawn to reflect the updated solids following this operation.

feSolidShell

API-361

3.6.10.14 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 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 the outer surfaces are offset to form the inner surfaces. If True, the graphics will be redrawn to reflect the updated solids following this operation.

INT4 surfaceSET

REAL8 thickness BOOL redraw Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None

Could not shell the selected solid.

API-362

feSolidSlice

3.6.10.15 feSolidSlice

feSolidSlice
( solidSET, planeBASE, planeNORMAL, redraw ) Description: Slices one or more solids with a plane. Input: INT4 solidSET REAL8 planeBASE[0..2] REAL8 planeNORMAL[0..2] BOOL redraw Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Could not slice the selected solids. The ID of a set that contains a list of solid IDs that will be sliced. Alternatively, if you specify a negative value, this is simply the ID of the single solid to slice. Any location that lies on the plane used to slice the solid. The components of a vector that is normal to the plane. If True, the graphics will be redrawn to reflect the updated solids following this operation.

feSolidSliceMatch

API-363

3.6.10.16 feSolidSliceMatch

feSolidSliceMatch
( solidSET, planeBASE, planeNORMAL, redraw ) Description: Slices one or more solids with a plane and leaves matching surfaces on both new solids. Input: INT4 solidSET REAL8 planeBASE[0..2] REAL8 planeNORMAL[0..2] BOOL redraw Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Could not slice the selected solids. The ID of a set that contains a list of solid IDs that will be sliced. Alternatively, if you specify a negative value, this is simply the ID of the single solid to slice. Any location that lies on the plane used to slice the solid. The components of a vector that is normal to the plane. If True, the graphics will be redrawn to reflect the updated solids following this operation.

API-364

feSolidSliceAlongFace

3.6.10.17 feSolidSliceAlongFace

feSolidSliceAlongFace
( surfaceID ) Description: Separates a solid by slicing it with one of its surfaces. Input: INT4 surfaceID Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Could not slice the solid with the selected surface. The ID of the surface used to slice the solid. This surface is also used to determine the solid to slice, since only the solid that contains the surface can be sliced.

feSolidEmbedFace

API-365

3.6.10.18 feSolidEmbedFace

feSolidEmbedFace
( surfaceID, dirMode, curveOpt, direction, offset, redraw ) Description: Uses a surface of a solid to divide it. Input: INT4 surfaceID The ID of the surface used to slice the solid. This surface is also used 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 projected as it is embedded into the solid: 0=Automatic direction and offset selection, 1=Specified direction, Automatic offset, 2= Automatic Direction, Specified offset. The option used to determine which curves of the surface will be embedded: 0=Outline only (skip interior curves/holes), 1=All Curves. The vector used to specify the direction to embed the face - only used if dirMode=1. The distance that the face will be embedded into the solid. Only used if dirMode=1 or dirMode=2. If True, the graphics will be redrawn to reflect the updated solids following this operation.

INT4 dirMode

INT4 curveOpt

REAL8 direction[0..2] REAL8 offset BOOL redraw Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None

Could not embed the surface into the solid.

API-366

feSolidCleanup

3.6.10.19 feSolidCleanup

feSolidCleanup
( solidSET, redundant, sliver, check ) Description: Performs various cleanup and checking on selected solids. Input: INT4 solidSET The ID of a set that contains a list of solid IDs that will be checked. 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 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 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. This is especially important if you have attempted to remove sliver surfaces.

BOOL redundant

BOOL sliver

BOOL check Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None

Could not cleanup the selected solids.

feSolidCleanupAdvanced

API-367

3.6.10.20 feSolidCleanupAdvanced

feSolidCleanupAdvanced
( solidSET, RepairEdges, RepairEdgesVal, CleanSmoothDiscont, CleanSmoothDiscontVal, RemoveSelfInt, AllowSurfMod, RemoveSpikes, RemoveSpikesVal, RemoveSmallEdges, RemoveSmallEdgesVal, RemoveSmallFaces, RemoveSmallFacesVal, RemoveSliverFaces, RemoveSliverFacesVal, ConvertToAnalytic, ConvertToAnalyticVal, RecalcEdges, RecalcEdgesVal, MergeEdges, HealSurfaces, HealSurfacesVal, HealSmoothDiscont, HealSmoothDiscontVal, ReplaceMissing ) Description: Performs more advanced cleanup and checking on selected solids. Input: INT4 solidSET BOOL RepairEdges REAL8 RepairEdgesVal BOOL CleanSmoothDiscont REAL8 CleanSmoothDiscontVal BOOL RemoveSelfInt BOOL AllowSurfMod BOOL RemoveSpikes REAL8 RemoveSpikesVal BOOL RemoveSmallEdges REAL8 RemoveSmallEdgesVal BOOL RemoveSmallFaces REAL8 RemoveSmallFacesVal BOOL RemoveSliverFaces REAL8 RemoveSliverFacesVal BOOL ConvertToAnalytic REAL8 ConvertToAnalyticVal BOOL RecalcEdges REAL8 RecalcEdgesVal The ID of a set that contains a list of solid IDs that will be checked. Alternatively, if you specify a negative value, this is simply the ID of the single solid to check. If True, turn on Cleaning Repair Edges Size for repairing edges If True, turn on Cleaning Smooth or Split Discontinuities Angle for Smooth or Split Discontinuities If True, turn on Cleaning Remove Surface Self-Intersections If True, turn on Cleaning Allow Surface Modifications If True, turn on Small Feature Remove Spikes Size for spike removal If True, turn on Small Feature Remove Small Edges Size for small edge removal If True, turn on Small Feature Remove Small Faces Size for small face removal If True, turn on Small Feature Remove Sliver Faces Size for sliver face removal If True, turn on Geometry Simplification Convert to Analytic Geometry Value for Analytic Geometry conversion If True, turn on Edge Heal Recalculate Edge Geometry Value for recalculating edge geometry

API-368

( solidSET, RepairEdges, RepairEdgesVal, CleanSmoothDiscont, CleanSmooth-

feSolidCleanupAdvanced
( solidSET, RepairEdges, RepairEdgesVal, CleanSmoothDiscont, CleanSmoothDiscontVal, RemoveSelfInt, AllowSurfMod, RemoveSpikes, RemoveSpikesVal, RemoveSmallEdges, RemoveSmallEdgesVal, RemoveSmallFaces, RemoveSmallFacesVal, RemoveSliverFaces, RemoveSliverFacesVal, ConvertToAnalytic, ConvertToAnalyticVal, RecalcEdges, RecalcEdgesVal, MergeEdges, HealSurfaces, HealSurfacesVal, HealSmoothDiscont, HealSmoothDiscontVal, ReplaceMissing ) BOOL MergeEdges BOOL HealSurfaces REAL8 HealSurfacesVal BOOL HealSmoothDiscont REAL8 HealSmoothDiscontVal BOOL ReplaceMissing Output: None Return Code: FE_FAIL 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 Could not cleanup the selected solids. If True, turn on Edge Heal Merge Edges If True, turn on Surface Heal and Stitch Heal Surfaces Value for healing surfaces If True, turn on Surface Heal and Stitch Smooth or Split Discontinuities Value for Smoothing/Splitting Discontinuities during Surface Healing If True, turn on Surface Heal and Stitch Replace Missing Geometry

feSolidRemoveFace

API-369

3.6.10.21 feSolidRemoveFace

feSolidRemoveFace
( surfaceSET, aggressive, redraw ) Description: Removes faces from a solid and then heals the gap. Input: INT4 surfaceSET BOOL aggressive BOOL redraw Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Could not remove face. The ID of a set that contains a list of surface IDs that will be removed. Alternatively, if you specify a negative value, this is simply the ID of the single surface to remove. Attempts aggressive face removal. Redraw the model after command.

API-370

feGenerateCopy

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: INT4 entityTYPE The entity type to copy: 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. 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 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 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 to the newly created entities. If False, only the selected entities are duplicated. (only available in v8.2 and later)

INT4 entitySET

REAL8 alongVEC[0..2]

INT4 nodeINC

BOOL match Output: None Return Code: FE_FAIL Remarks/Usage: None Example:

Could not copy the entities.

feGenerateCopy

API-371

feGenerateCopy
( entityTYPE, entitySET, alongVEC, nodeINC, match ) None

API-372

feGenerateRadialCopy

3.6.11.2 feGenerateRadialCopy

feGenerateRadialCopy
( entityTYPE, entitySET, origVEC, length, match ) Description: Creates new entities by radially copying existing entities about an origin. Input: INT4 entityTYPE The entity type to copy: 3=Point, 4=Curve, 5=Surface, 6=Volume, 7=Node, 8=Element. Solids cannot be radially copied. The ID of a set that contains a list of entity IDs that will be copied. 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 performed. The coordinates must be in global rectangular. The radial distance to copy the entities. A positive value increases the distance from the origin. A negative value decreases the distance. If True, then loads and constraints on the original entities are copied to the newly created entities. If False, only the selected entities are duplicated. (only available in v8.2 and later)

INT4 entitySET

REAL8 origVEC[0..2] REAL8 length

BOOL match Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None

Could not copy the entities.

feGenerateScale

API-373

3.6.11.3 feGenerateScale

feGenerateScale
( entityTYPE, entitySET, origVEC, scaleVEC, csysID, match ) Description: Creates new entities by scaling entities about a location. Input: INT4 entityTYPE The entity type to scale: 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. 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 performed. 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. 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 scaling. 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 to the newly created entities. If False, only the selected entities are duplicated. (only available in v8.2 and later)

INT4 entitySET

REAL8 origVEC[0..2]

REAL8 scaleVEC[0..2]

INT4 csysID

BOOL match Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None

Could not scale the entities.

API-374

feGenerateRotate

3.6.11.4 feGenerateRotate

feGenerateRotate
( entityTYPE, entitySET, origVEC, axisVEC, rotANGLE, transDIST, match ) Description: Creates new entities by rotating entities about an axis. Input: INT4 entityTYPE The entity type to rotate: 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. 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 specified in global rectangular coordinates. The components of the axis of rotation, in global rectangular coordinates. The rotation will be in positive, right-hand rule sense about this axis. The angle of rotation about the axis vector, in degrees. The translation distance, through which the entities are translated along the rotation axis, as they are rotated. Usually this is zero. If True, then loads and constraints on the original entities are copied to the newly created entities. If False, only the selected entities are duplicated. (only available in v8.2 and later)

INT4 entitySET

REAL8 origVEC[0..2]

REAL8 axisVEC[0..2] REAL8 rotANGLE REAL8 transDIST

BOOL match Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None

Could not rotate the entities.

feGenerateReflect

API-375

3.6.11.5 feGenerateReflect

feGenerateReflect
( entityTYPE, entitySET, origVEC, normVEC, trapWIDTH, match ) Description: Creates new entities by reflecting entities about a plane. Input: INT4 entityTYPE The entity type to reflect: 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. 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 specified in global rectangular coordinates. The components of the normal to the reflection plane, in global rectangular coordinates. It is not necessary for this axis to point toward (or away from) the existing entities - either vector will yield the same result. The trapWIDTH of the reflection plane. Entities that fall within this distance from the reflection plane will not be reflected. If True, then loads and constraints on the original entities are copied to the newly created entities. If False, only the selected entities are duplicated. (only available in v8.2 and later)

INT4 entitySET

REAL8 origVEC[0..2]

REAL8 normVEC[0..2]

REAL8 trapWIDTH

BOOL match Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None

Could not reflect the entities.

API-376

feGenerateReflect

API-377
3.7 Connection Methods
Connection Methods include:

Section 3.7.1, "Generating Connections"

API-378

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 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 to Face The maximum distance between adjacent faces to find connections. If 0.0, then use default. The maximum angle deviation between adjacent planar faces to still consider them for connection. If 0.0, then use default. A value between 1 and 5 that indicates the search strategy. You can also specify strategy = 0 to use the default strategy If True, allow connections between surfaces of the same solid If True, connections between faces of the same two solids will be combined into a single conneciton The ID of a Connection Property to be used for the connections (if 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 a Glued type, otherwise a Contact type.

INT4 solidSET

INT4 connectType REAL8 linearTolerance REAL8 angeTolerance INT4 strategy BOOL bSelfConnect BOOL bCombineAll

INT32 nConnectProp

BOOL bGlued

feConnectAuto2

API-379

feConnectAuto2
( solidSET, connectType, linearTolerance, angleTolerance, strategy, bSelfConnect, bCombineAll, nConnectProp, bGlued ) Output: None Return Code: FE_FAIL FE_INVALID FE_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 Creating connections failed The search strategy is invalid The Connection Property does not exist.

API-380

feConnectAuto2

feConnectAuto2

API-381

API-382

feLoadCombine

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 commands that are located on the Model menu. Those are supported directly, and are described in the following sections.

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 INT4 toSET REAL8 scale Output: None Return Code: FE_FAIL 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 Could not combine the load set, most likely it does not exist. The ID of the Load Set to be combined 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 1.0 to simply combine loads.

feBCCombine

API-383

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 INT4 toSET The ID of the Constraint Set to be combined The ID of the Constraint Set which will contain the combined constraints. If True, constraints in the toSET will be overwritten with any duplicate constraints on the same node. If False, degrees of freedom on the common nodes will be combined to form a new constraint. Does not apply to constraint equations.

BOOL overwrite

Output: None Return Code: FE_FAIL Remarks/Usage: The functionality of this method is identical to the Model, Constraint, Combine command. All restrictions on combinations that apply to that command apply equally to this method. Example: None Could not combine the constraint set, most likely it does not exist.

API-384

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 OutputProcess 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, combine, envelope, or convert output. Input: INT4 count The number of processing operations; that is, the number of entries in the other arrays. Set to True if the operations will process entire sets of output, or 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, 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 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). The ID of the output set to process. The ID of the output vector to process (not used if full_set=True). 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 used if full_set=True). The ID of the group used to restrict output processing. If 0, all available output, on the full model is processed. The scale factor for linear and RSS combinations. The Skip Below value for Error Estimates. Flag to overwrite existing output if you are combining output.

BOOL full_set

INT4 processing_method

INT4 approach[0..count-1]

INT4 from_setID[0..count-1] INT4 from _vectorID[0..count1] INT4 to_setID[0..count-1] INT4 to_vectorID[0..count-1] INT4 groupID[0..count-1] REAL8 factor[0..count-1] BOOL overwrite[0..count-1]

feOutputProcess

API-385

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..count1] BOOL set_info[0..count-1] Output: None Return Code: FE_FAIL 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 Could not process the requested information. For Envelope, if True, this will compute the ply summary information for laminate output. For Envelope, if True and doing full sets, this will compute the additional set summary information for the enveloped data.

API-386

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: BOOL bFullSet INT4 from_setID INT4 from _vectorID INT4 to_setID Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Could not process the requested information. Set to True if the operation will process entire sets of output, or False if individual vectors are to be processed. If True, from_vectorID and to_setID are ignored. The ID of the output set to process. The ID of the output vector to process The ID of the Set to contain the resulting copy. If 0, a new Output Set will be created.

feOutputProcessMerge

API-387

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: BOOL bFullSet Set to True if the operation will process entire sets of output, or False 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 be merged onto nodes/elements that have no output. The number of entries in from_setID and from_vectorID The IDs of the output sets to process. The IDs of the output vectors to process. The ID of the Set to contain the resulting copy. If 0, a new Output Set will be created.

BOOL bOverwrite INT4 nCount INT4 from_setID[0..nCount-1] INT4 from _vectorID[0..nCount-1] INT4 to_setID Output: None Return Code: FE_FAIL Remarks/Usage:

Could not process the requested information.

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-388

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: BOOL bFullSet Set to True if the operation will process entire sets of output, or False 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 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 from_vectorID The scale factor to apply to each set or vector. The IDs of the output sets to process. The IDs of the output vectors to process. The ID of the Set to contain the resulting combination. If 0, a new Output Set will be created.

INT4 nApproach

INT4 nCount REAL8 dScaleFactor[0..nCount-1] INT4 from_setID[0..nCount-1] INT4 from _vectorID[0..nCount-1] INT4 to_setID Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None

Could not process the requested information.

feOutputProcessRSSCombination

API-389

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: BOOL bFullSet Set to True if the operation will process entire sets of output, or False 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 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 from_vectorID The scale factor to apply to each set or vector. The IDs of the output sets to process. The IDs of the output vectors to process. The ID of the Set to contain the resulting combination. If 0, a new Output Set will be created.

INT4 nApproach

INT4 nCount REAL8 dScaleFactor[0..nCount-1] INT4 from_setID[0..nCount-1] INT4 from _vectorID[0..nCount-1] INT4 to_setID Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None

Could not process the requested information.

API-390

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 INT4 from_setID INT4 from _vectorID INT4 to_setID INT4 to_vectorID INT4 groupID Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Could not process the requested information. 0=Avg, 1=Max The ID of the output set to process. The ID of the output vector to process Not Used Not Used The ID of the group used to restrict output processing. If 0, all available output, on the full model is processed.

feOutputProcessEnvelope

API-391

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: BOOL bFullSet Set to True if the operation will process entire sets of output, or False 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 Value. 0=Envelope All Vectors in All Sets, 1=Envelope All Locations (like 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 original results Ignored and always False if bFullSet=True or nApproach=2 If True, results for similar vectors are enveloped across all of the selected sets. Ignored and always True if bFullSet=True or nApproach=2 If True extra output vectors are created which contain the ID of the set and possibly the location where the envelope value came from. The number of entries in from_setID and from_vectorID The IDs of the output sets to process. The IDs of the output vectors to process. Ignored if bFullSet=True The ID of the Set to contain the resulting combination. If 0, a new Output Set will be created. Ignored and always 0 if bFullSet=True or nApproach=2

INT4 nType

INT4 nApproach

BOOL bEnvelopeInSets

BOOL bEnvelopeAcrossSets

BOOL bSetInfo INT4 nCount INT4 from_setID[0..nCount-1] INT4 from _vectorID[0..nCount-1] INT4 to_setID Output: None Return Code: FE_FAIL Remarks/Usage:

Could not process the requested information.

API-392

feOutputProcessEnvelope

feOutputProcessEnvelope
( bFullSet, nType, nApproach, bEnvelopeInSets, bEnvelopeAcrossSets, bSetInfo, nCount, from_setID, from_vectorID, to_setID ) None Example: None

feOutputProcessErrorEstimate

API-393

3.8.3.8 feOutputProcessErrorEstimate

feOutputProcessErrorEstimate
( nMethod, from_setID, from_vectorID, groupID ) Description: Allows you to compute an Error Estimate of a single output vector. Input: INT4 nMethod INT4 from_setID INT4 from _vectorID INT4 groupID Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Could not process the requested information. 0=Max Diff, 1=Diff to Avg, 2=%Max Diff, 3=%Diff to Avg, 4=Norm% Max Diff, 5=Norm% Diff to Avg The ID of the output set to process. The ID of the output vector to process The ID of the group used to restrict output processing. If 0, all available output, on the full model is processed.

API-394

feOutputFromLoad

3.8.3.9 feOutputFromLoad

feOutputFromLoad
( setID, loadType ) Description: Creates output from existing load information. Input: INT4 setID The ID of a set that contains a list of node or elements IDs that will be checked for loads to create the output. Alternatively, if you specify 0, all nodes/elements will be checked. The type of load to check to create output: Force=16, Displacement=32, Velocity=2048, Acceleration=64, Nodal Temperature=4096, Nodal HeatGen=2, Nodal Heat Flux=4, Elem Distributed Load=128, Pressure=256, Elem Temperature=8192, Elem Heat Gen 512, Elem Heat Flux=1024, Elem Convection=16384, Elem Radiation=32768, Fluid Pressure=131072, Fluid Tracking=262144, Fluid Fan Curve=2097152.

INT4 loadType

Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Could not compute output.

feOutputTransform

API-395

3.8.3.10 feOutputTransform

feOutputTransform
( INT4 option, BOOL allSETS, INT4 outSET, INT4 outVEC, INT4 csysID, INT4 elemSET, INT4 alignMode, INT4 alignHyperElasticMode ) Description: Transforms existing output to another orientation. Input: Specifies the type of data transformation to be done: 1=Transform Vector data from Global Rectangular into the specified coordinate system, 2=Transform Vector data from Global Rectangular into Nodal Output Coordinate Systems 3=Transform Plate Force/Stress/Strain results into the current material orientation direction. 4=Transform Plate Force/Stress/Strain results into the direction specified by the projection of a specified coordinate system axis onto the element. 5=Transform Plate Force/Stress/Strain results into the direction specified by the projection of a specified vector onto the element 6=Transform Solid Force/Stress/Strain results into the specified coordinate system 7=Transform Solid Force/Stress/Strain results into the Material coordinate system If True, all output sets will be translated, and outSET is ignored. The output set in which data will be transformed. The output vector which will be transformed. If option=0, then this should be the ID of the total value. Used only if option=0. Specifies the coordinate system to transform into. The ID of the set that contains the element IDs to transform. Only used if option=1. Specifies the axis of the coordinate system to project onto planar elements if option=4. X=1,Y=2,Z=3 Specifies the Global Rectangular components of a vector to project onto planar elements if option=5

INT4 option

BOOL allSETS INT4 outSET INT4 outVEC INT4 csysID INT4 elemSET INT4 alignDOF REAL8 alignX REAL8 alignY REAL8 alignZ Output: None Return Code:

API-396

feOutputTransform

feOutputTransform
( INT4 option, BOOL allSETS, INT4 outSET, INT4 outVEC, INT4 csysID, INT4 elemSET, INT4 alignMode, INT4 alignHyperElasticMode ) FE_FAIL Remarks/Usage: The current output orientation may vary with element type, shape or output type. If more than one alignMode specification is required, this method must be called multiple times. Example: None Could not transform output.

feOutputCalculate

API-397

3.8.3.11 feOutputCalculate

feOutputCalculate
( outSET, ndelem, elemSET, title, IDvar, CASEvar, formula ) Description: Computes output values based on an equation that you provide. Input: INT4 outSET INT4 ndelem INT4 elemSET STRING title STRING IDvar STRING CASEvar The ID of the set that contains the output set IDs where the calculations will be performed. Specifies whether the calculation will create nodal or elemental data. (7=Nodal, 8=Elemental) The ID of the set that contains the nodes or elements where the output will be computed. The title of the output vectors to be created The name of the variable used as the Node/Element ID in the formula that you specify. The name of the variable used as the Output Set ID in the formula that you specify. The equation used to calculate the results. This must be specified in standard FEMAP form, using the two variables defined in IDvar and CASEvar.

STRING formula Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None

Could not compute output.

API-398

feOutputConvertV92VectorID

3.8.3.12 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 Output: None Return Code: newVecID Remarks/Usage: None Example: None The v9.3 (and later) vector ID The v9.2 (and before) vector ID that you want to convert.

feOutputForceBalance

API-399

3.8.3.13 feOutputForceBalance

feOutputForceBalance
( outSETS, boundarynodeSET, boundaryelemSET, csysID, aroundXYZ, numSETS, resultant ) Description: Returns the resulting force/moment information on a model interface defined by selected nodes/elements across selected output sets. Input: INT4 outSETS The ID of a Set object that contains the output sets to process. Alternatively, 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 where the force balance will be computed. Alternatively, if you specify 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 interface 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 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 computed

INT4 boundarynodeSET

INT4 boundaryelemSET

INT4 csysID

REAL8 aroundXYZ[0..2] 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 will be 6 consecutive entries in this array [Fx1, Fy1, Fz1, Mx1, My1, Mz1, Fx2, Fy2, ...]. All values are relative to the coordinate system selected by csysID.

REAL8 resultant[0..6*numSETS-1]

Return Code: FE_NO_MEMORY Remarks/Usage: This method requires that all selected output sets contain Nastran Grid Point Force Balance results. Example: None Insufficient memory to compute and return all Resultants.

API-400
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"

feMeshSizePoint

API-401

3.9.1 Mesh Control


3.9.1.1 feMeshSizePoint

feMeshSizePoint
( pointSET, meshSIZE ) Description: Sets mesh sizes on a selected set of points. Input: INT4 pointSET The ID of a set that contains a list of point IDs that will have mesh 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 size should be in model units. Specify 0.0 to remove mesh sizes from the points.

REAL8 meshSIZE Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None

Could not define mesh sizes.

API-402

feMeshSizeCurve

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: INT4 curveSET The ID of a set that contains a list of curve IDs that will have mesh 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 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 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 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 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 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 spacing is used. 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 biased. A value of 2.0 means that the largest element is approximately 2.0 times the length of the smallest. 0=Small elements at start of curve, 1=Small elements at end of 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 mesh size if this is True. Not used for parametric spacing.

INT4 numElem

REAL8 meshSIZE

INT4 minLine

INT4 minClosed

INT4 minOther

INT4 spacing INT4 biasMethod REAL8 bias

INT4 biasLoc

BOOL customSize

feMeshSizeCurve

API-403

feMeshSizeCurve
( curveSET, numElem, meshSize, minLine, minClosed, minOther, spacing, biasMethod, bias, biasLoc, customSize ) Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Could not define mesh sizes.

API-404

feMeshSizeSurface

3.9.1.3 feMeshSizeSurface

feMeshSizeSurface
( surfaceSET, replaceAll, meshSize, minEdge, maxAngle, maxOnSmall, smallSize, vertexAspect, mappedRefinement, growthFactor, refineRatio, refineSurf ) Description: Sets mesh sizes on a selected set of surfaces. Input: INT4 surfaceSET The ID of a set that contains a list of surface IDs that will have mesh 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 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 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 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 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 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 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 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.

BOOL replaceAll

REAL8 meshSIZE

INT4 minEdge

REAL8 maxAngle

INT4 maxOnSmall

REAL8 smallSize

REAL8 vertexAspect

feMeshSizeSurface

API-405

feMeshSizeSurface
( surfaceSET, replaceAll, meshSize, minEdge, maxAngle, maxOnSmall, smallSize, vertexAspect, mappedRefinement, growthFactor, refineRatio, refineSurf ) If True, additional modifications are done to the mesh sizes on a surface that favor mapped meshing. This does 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. The factor that is multiplied by the average curve element size to adjust the mesh size on the interior of a surface. Set to 0.0 to skip setting interior growth factors. The curvature-based mesh refinement ratio. Adjusts the mesh sizes along curves in areas of high curvature. Set to 0.0 to skip curvaturebased sizing. Set to True to also consider curvature requirements when sizing the interior of the mesh. You must specify a nonzero refineRatio, or this option will be ignored.

BOOL mappedRefinement

REAL8 growthFactor

REAL8 refineRatio

BOOL refineSurf Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None

Could not define mesh sizes.

API-406

feMeshSizeSolid

3.9.1.4 feMeshSizeSolid

feMeshSizeSolid
( solidSET, replaceAll, meshSize, minEdge, maxAngle, maxOnSmall, smallSize, vertexAspect, mappedRefinement, growthFactor, refineRatio, refineSurf, matchAdjacent, hexMesh, adjustColor, removeSlaving ) Description: Sets mesh sizes on a selected set of solids. Input: INT4 solidSET The ID of a set that contains a list of solid IDs that will have mesh 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 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, 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 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 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 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 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 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 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.

BOOL replaceAll

REAL8 meshSIZE

INT4 minEdge

REAL8 maxAngle

INT4 maxOnSmall

REAL8 smallSize

REAL8 vertexAspect

feMeshSizeSolid

API-407

feMeshSizeSolid
( solidSET, replaceAll, meshSize, minEdge, maxAngle, maxOnSmall, smallSize, vertexAspect, mappedRefinement, growthFactor, refineRatio, refineSurf, matchAdjacent, hexMesh, adjustColor, removeSlaving ) If True, additional modifications are done to the mesh sizes on a surface that favor mapped meshing. This does 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. The factor that is multiplied by the average curve element size to adjust the mesh size on the interior of a surface. Set to 0.0 to skip setting interior growth factors. The curvature-based mesh refinement ratio. Adjusts the mesh sizes along curves in areas of high curvature. Set to 0.0 to skip curvaturebased sizing. Set to True to also consider curvature requirements when sizing the 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 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 for tetrahedral meshing. Set to True if you want to change the surface colors to indicate the 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 surfaces of the solids that you are sizing.

BOOL mappedRefinement

REAL8 growthFactor

REAL8 refineRatio

BOOL refineSurf

BOOL matchAdjacent

BOOL hexMesh

BOOL adjustColor

BOOL removeSlaving Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None

Could not define mesh sizes.

API-408

feMeshAttrPoint

3.9.1.5 feMeshAttrPoint

feMeshAttrPoint
( pointSET, propID ) Description: Sets mesh attributes on a selected set of points. Input: INT4 pointSET The ID of a set that contains a list of point IDs that will have mesh 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 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.

INT4 propID

Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Could not define mesh attribute.

feMeshAttrCurve

API-409

3.9.1.6 feMeshAttrCurve

feMeshAttrCurve
(curveSET, propID, Orient, Offset1, Offset2, OrientType, OffsetType, Release1, Release2) Description: Sets mesh attributes on a selected set of curves. Input: INT4 curveSET The ID of a set contains a list of curve IDs that will have mesh attributes 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 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 (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 end. Specified in global rectangular coordinates. If doing radial offsets, Offset1[0..2] contains the radial origin; Offset2[0] contains the radial offset distance. 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. Type of offset for property attribute: 0=Offset by Vector, 1=Offset Radial, 2=Offset by Location. The release flags for the start and end of the curve. Nonzero if the associated degree of freedom is released. Release1[0..5] is at the beginning of the curve; Release2[0..5] is at the end.

INT4 propID

REAL8 Orient[0..2]

REAL8 Offset1[0..2] REAL8 Offset2[0..2]

INT4 OrientType

INT4 OffsetType INT4 Release1[0..5] INT4 Release2[0..5] Output: None Return Code: FE_FAIL Remarks/Usage:

Could not define mesh attribute.

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.

API-410

feMeshAttrCurve

feMeshAttrCurve
(curveSET, propID, Orient, Offset1, Offset2, OrientType, OffsetType, Release1, Release2) Example: None

feMeshAttrSurface

API-411

3.9.1.7 feMeshAttrSurface

feMeshAttrSurface
( surfaceSET, propID, offset ) Description: Sets mesh attributes on a selected set of surfaces. Input: INT4 surfaceSET The ID of a set that contains a list of surface IDs that will have mesh 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 the surfaces. If nonzero, this must be the ID of a property of an element type that is compatible with surface meshing - a planar element, for example. The offset to be applied to elements meshed on this surface. Normally this is specified as 0 - the elements are meshed directly on the surface. Offsets can only be applied to certain planar elements such as plates.

INT4 propID

REAL8 offset

Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Could not define mesh attribute.

API-412

feMeshAttrSolid

3.9.1.8 feMeshAttrSolid

feMeshAttrSolid
( solidSET, propID ) Description: Sets mesh attributes on a selected set of solids or volumes. Input: INT4 solidSET The ID of a set that contains a list of solid (or volume) IDs that will 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 attributes 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 element, for example.

INT4 propID

Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Could not define mesh attribute.

feMeshApproachSurface

API-413

3.9.1.9 feMeshApproachSurface

feMeshApproachSurface
( surfaceSET, approach, approachData ) Description: Sets the meshing approach on a selected set of surfaces. Input: INT4 surfaceSET The ID of a set that contains a list of surface IDs that will have mesh 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=FreeParametric, 2=Free-Planar, 3=Mapped-Four Corner, 4=MappedThree 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 Link to Surface approach, approachData[0] is the ID of the surface that this surface is linked to.

INT4 approach

INT4 approachData

Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Could not define mesh approach.

API-414

feMeshPoint

3.9.2 Meshing Geometry


3.9.2.1 feMeshPoint

feMeshPoint
( pointSET, meshElem, propID ) Description: Meshes a selected set of points. Input: INT4 pointSET The ID of a set that contains a list of point IDs that will be meshed. 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 points. If False, only nodes will be generated. Specifies the ID of the property to use for elements as they are created. If you want to use meshing attributes, set propID=0. In this case, all selected points must have meshing attributes defined or they will not be meshed. The propID property must be compatible with point meshing.

BOOL meshElem

INT4 propID

Output: None Return Code: FE_FAIL Remarks/Usage: None Example: Could not mesh points.

feMeshPoint

API-415

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

API-416

feMeshCurve

3.9.2.2 feMeshCurve

feMeshCurve
( curveSET, meshElem, propID, orient ) Description: Meshes a selected set of curves. Input: INT4 curveSET The ID of a set that contains a list of curve IDs that will be meshed. 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 curves. If False, only nodes will be generated. Specifies the ID of the property to use for elements as they are created. If you want to use meshing attributes, set propID=0. In this case, all selected curves must have meshing attributes defined or they 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 rectangular coordinates. This is only used for those element types that require orientation - like bars and beams.

BOOL meshElem

INT4 propID

REAL8 orient[0..2] Output: None Return Code: FE_FAIL Remarks/Usage: None Example:

Could not mesh curves.

feMeshCurve

API-417

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) orient(1) orient(2) vOrient = = 1 = 1 = 0.5 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

API-418

feMeshSurface2

3.9.2.3 feMeshSurface2

feMeshSurface2
( surfaceSET, propID, elemShape, bAllowMapped, beDefaults ) Description: Meshes a selected set of surfaces. This function replaces feMeshSurface( ) Input: INT4 surfaceSET The ID of a set that contains a list of surface IDs that will be meshed. 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 created. If you want to use predefined meshing attributes, set propID=0. 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, 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 not. This argument is ignored if elemShape=0 If True, all meshing attributes are reset to their defaults prior to applying the propID, elemShape and bAllowMapped settings. Normally this argument should be False to use the existing attributes.

INT4 propID

INT4 elemShape

BOOL bAllowMapped

BOOL bResetDefaults Output: None Return Code: FE_FAIL FE_INVALID FE_NOT_EXIST Remarks/Usage: None Example:

Could not mesh surfaces. The value specified for elemShape is invalid The property specified does not exist.

feMeshSurface2

API-419

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 Set Dim Dim Set Dim Set App As femap.model App = GetObject(, "femap.model") rc As Long pr As Object pr = App.feProp() pt As Object 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

API-420

feMeshSurface

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: INT4 surfaceSET The ID of a set that contains a list of surface IDs that will be meshed. 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 created. If you want to use meshing attributes, set propID=0. 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. 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 generation. Not used for fast-tri mesher. The maximum allowable element aspect ratio. Not used for fast-tri mesher. Boundaries/surfaces with more than this number of nodes on the boundary are quick-cut. Not used for fast-tri mesher. The mesher to use when meshing the surfaces. (0=Triangle, 1=Quad, 2=Fast-Triangle). The maximum angular deviation from 90 degrees allowed in a quad before it is split into triangles. Only applies to quad mesher. If True and you are meshing with parabolic elements, midside nodes will be projected toward the geometry. The maximum angle formed by the edge of the element as the midside nodes are projected onto the geometry. If midsideAngle=0.0 and midsideGeom=True, then midside nodes will be projected completely onto the geometry regardless of the distortion introduced in the elements. If True, Laplacian smoothing is performed. If False, centroidal smoothing is used. The number of smoothing iterations to perform. Set to 0 to skip smoothing.

INT4 propID

INT4 minBetween REAL8 maxAspect INT4 maxQuickNodes INT4 meshApproach REAL8 quadAngle BOOL midsideGeom

REAL8 midsideAngle

BOOL smoothLaplacian INT4 smoothIter

feMeshSurface

API-421

feMeshSurface
( surfaceSET, propID, minBetween, maxAspect, maxQuickNodes, meshApproach, quadAngle, midsideGeom, midsideAngle, smoothLaplacian, smoothIter, smoothTol ) INT4 smoothTol Output: None Return Code: FE_FAIL Remarks/Usage: Could not mesh surfaces. The smoothing tolerance. Smoothing will stop if node movement during a smoothing pass falls below this tolerance.

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 converges to a 0.01 tolerance. Sub Main Const FGD_Surface_onSolid = 78 Dim Set Dim Dim Set Dim Set App As femap.model App = GetObject(, "femap.model") rc As Long pr As Object pr = App.feProp() pt As Object 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

API-422

feMeshSurfaceByAttributes

3.9.2.5 feMeshSurfaceByAttributes

feMeshSurfaceByAttributes
( surfaceSET ) Description: Meshes a selected set of surfaces using its stored attributes. Input: INT4 surfaceSET Output: None Return Code: FE_FAIL Remarks/Usage: None Example: Could not mesh surfaces. The ID of a set that contains a list of surface IDs that will be meshed using their saved attributes. Alternatively, if you specify a negative value, this is simply the ID of the single surface to mesh.

feMeshTetSolid

API-423

3.9.2.6 feMeshTetSolid

feMeshTetSolid
( entityTYPE, entitySET, propID, surfaceMeshOnly, makeMidside, tetGrowth, checkSurfElem, deleteSurfElem, midsideGeom, midsideAngle, allocateElem ) Description: Meshes a selected set of solids (or surfaces or planar elements) with tetrahedral elements. Input: INT4 entityTYPE The type of entities being meshed that are contained in entitySET. 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 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 or they will not be meshed. This only works if entityTYPE=FT_SOLID. The propID property must be compatible with solid meshing. If True, only surface elements are generated, and the meshing process stops before generating tetrahedra. If True, the solids will have midside nodes created. Otherwise, linear 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 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. Not usually required if meshing solids, but should be done for surface or element meshing. Set to True if you want to delete the surface elements that are being generated or meshed. If True, and you are meshing with parabolic elements, midside nodes will be projected toward the geometry.

INT4 entitySET

INT4 propID

BOOL surfaceMeshOnly BOOL makeMidside

REAL8 tetGrowth

BOOL checkSurfElem

BOOL deleteSurfElem BOOL midsideGeom

API-424

feMeshTetSolid

feMeshTetSolid
( entityTYPE, entitySET, propID, surfaceMeshOnly, makeMidside, tetGrowth, checkSurfElem, deleteSurfElem, midsideGeom, midsideAngle, allocateElem ) The maximum angle formed by the edge of the element as the midside nodes are projected onto the geometry. If midsideAngle=0.0 and midsideGeom=True, then midside nodes will be projected completely 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 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.

REAL8 midsideAngle

INT4 allocateElem

Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Could not mesh solid.

feMeshHexSolid

API-425

3.9.2.7 feMeshHexSolid

feMeshHexSolid
( solidSET, propID, surfaceMeshOnly, makeMidside, checkSurfElem, deleteSurfElem, midsideGeom, midsideAngle ) Description: Meshes a selected set of solids with hexahedral elements. Input: INT4 solidSET The ID of a set that contains a list of solid IDs that will be meshed. 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. 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 process stops before generating hex elements. If True, the solids will have midside nodes created. Otherwise, linear elements are created. Checks the surface elements for validity prior to tet meshing if True. Not usually required if meshing solids, but should be done for surface or element meshing. Set to True if you want to delete the surface elements that are being generated or meshed. If True and you are meshing with parabolic elements, midside nodes will be projected toward the geometry. The maximum angle formed by the edge of the element as the midside nodes are projected onto the geometry. If midsideAngle=0.0 and midsideGeom=True, then midside nodes will be projected completely onto the geometry regardless of the distortion introduced in the elements.

INT4 propID

BOOL surfaceMeshOnly BOOL makeMidside

BOOL checkSurfElem

BOOL deleteSurfElem BOOL midsideGeom

REAL8 midsideAngle

Output: None Return Code: FE_FAIL Remarks/Usage: For this function to work, the solids must be compatible with, and properly sized for hex meshing. Could not mesh solid.

API-426

feMeshHexSolid

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 midside nodes onto the surfaces. Sub Main Dim Set Dim Set App As femap.model App = GetObject(,"femap.model") so As Object 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

feMeshHexSolidFromElement

API-427

3.9.2.8 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 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 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. 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 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 meshes. If you have a symmetric or rotated mesh, it may be necessary 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 elements are created. Checks the surface elements for validity prior to tet meshing if True. Not usually required if meshing solids, but should be done for surface or element meshing.

INT4 baseSET

INT4 topSET

INT4 propID

INT4 numLayers

INT4 match1 INT4 match2

BOOL makeMidside

BOOL checkSurfElem

API-428

feMeshHexSolidFromElement

feMeshHexSolidFromElement
( baseSET, topSET, propID, numLayers, match1, match2, makeMidside, checkSurfElem, deleteSurfElem ) BOOL deleteSurfElem Output: None Return Code: FE_FAIL 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 Set Dim Dim Set Set App As femap.model App = GetObject(, "femap.model") b As Object t As Object b = App.feSet() t = App.feSet() Could not mesh solid. Set to True if you want to delete the surface elements that are being generated or meshed.

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

feMeshBetween

API-429

3.9.3 Other Meshing


3.9.3.1 feMeshBetween

feMeshBetween
( propID, genMode, shape, rightSplit, alternate, allQuad, logSpacing, numCorners, numNodes, bias, nodeInc, cornerXYZ ) Description: Meshes between selected coordinate locations. No geometry is required. Input: INT4 propID Specifies the ID of the property to use for elements as they are created. The propID property must be compatible with the type of elements that you will be creating, and the shape value. The mesh generation mode: 0=Nodes Only, 1=Elements only on existing Nodes, 2=Both Nodes and Elements. The shape of the elements to generate: 0=Line, 2=Tria, 4=Quad, 6=Tetra, 7=Wedge, 8=Brick. Not used if only generating nodes. Only used for Tria,Tetra and Wedge shapes. If True, indicates that the first elements should be split along a right-hand diagonal. Only used for Tria,Tetra and Wedge shapes. If True, indicates that the element split direction should alternate with each group of elements, 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 elements. This also requires compatible numbers of nodes along all edges. Only used if you are generating nodes (or nodes and elements), and 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 (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 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 biasing.

INT4 genMode INT4 shape BOOL rightSplit

BOOL alternate

BOOL allQuad

BOOL logSpacing

INT4 numCorners

INT4 numNodes[0..2]

REAL8 bias[0..2]

API-430

feMeshBetween

feMeshBetween
( propID, genMode, shape, rightSplit, alternate, allQuad, logSpacing, numCorners, numNodes, 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 meshed with elements. nodeINC[1] and nodeINC[2] are the additional 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 coordinates. Each corner is specified in consecutive locations in this array. 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.

INT4 nodeINC[0..2]

REAL8 cornerXYZ[0..23]

Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Could not mesh between corners.

feMeshClosestLink

API-431

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 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. Alternatively, if you specify a negative value, this is simply the ID of the single node to mesh. The type of element to use for the connection: 1=Constraint Equation, 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 required by connectWith). The degrees of freedom (DOF) to connect. Set values to 1 for DOF to connect; 0 for DOF to skip. Reverses the connection order: connections are still made from the fromSET to the toSET, but the element nodal order is reversed.

INT4 fromSET

INT4 toSET

INT4 connectWith

REAL8 orient[0..2] INT4 dof[0..5] BOOL reverse Output: None Return Code: FE_FAIL Remarks/Usage:

Could not mesh.

If you want to simulate the same capability found in the Multiple Link command, simply call this function multiple times, using negative nodeIDs in place of the fromSET and toSET. Example: None

API-432

feMeshCoincidentLink

3.9.3.3 feMeshCoincidentLink

feMeshCoincidentLink
( fromSET, toSET, connectWith, orient, dof, tolerance ) Description: Meshes connections between coincident nodes. Input: INT4 fromSET A set containing the node IDs of the nodes to mesh. Only nodes in 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 Equation, 2=Rigid, 3=Line Element, 4=Gap 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 required by connectWith). The degrees of freedom (DOF) to connect. Set values to 1 for DOF to connect; 0 for DOF to skip. The coincident node tolerance. Only nodes within this tolerance of each other are meshed.

INT4 connectWith

REAL8 orient[0..2] INT4 dof[0..5] REAL8 tolerance Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None

Could not mesh.

feMeshUnzip

API-433

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. Input: INT4 fromSET A set containing the element IDs on the primary side of the interface. 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 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=Line Element, 4=Gap Element. 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 required by connectWith). The degrees of freedom (DOF) to connect. Set values to 1 for DOF to connect; 0 for DOF to skip.

INT4 toSET

INT4 connectWith

REAL8 orient[0..2] INT4 dof[0..5] Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None

Could not mesh.

API-434

feMeshTransition

3.9.3.5 feMeshTransition

feMeshTransition
( useNodes, entCount, entID, edgeNum, edgeBias, edgeSize, propID, minBetween, maxAspect, maxQuickNodes, meshApproach, quadAngle, smoothLaplacian, smoothIter, smoothTol ) Description: Meshes between nodes or line elements that form a closed boundary. Input: BOOL useNodes INT4 entCount INT4 entID[0..entCount-1] If True, then entID contains a list of nodes used to define the boundary; otherwise, entID contains a list of line elements. The number of items contained in entID, edgeNum, edgeBias, and edgeSize. The IDs of the node or elements used to define the boundary being 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[entCount1] and entID[0]; that is, the last segment closing the boundary. Specify 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 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 each segment. The distance between nodes is simply divided by this 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 created. The propID property must be compatible with surface meshing. 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 generation. Not used for fast-tri mesher. The maximum allowable element aspect ratio. Not used for fast-tri mesher. Boundaries/surfaces with more than this number of nodes on the boundary are quick-cut. Not used for fast-tri mesher.

INT4 edgeNum[0..entCount-1]

INT4 edgeBias[0..entCount-1]

REAL8 edgeSize[0..entCount1]

INT4 propID

INT4 minBetween REAL8 maxAspect INT4 maxQuickNodes

feMeshTransition

API-435

feMeshTransition
( useNodes, entCount, entID, edgeNum, edgeBias, edgeSize, propID, minBetween, maxAspect, maxQuickNodes, meshApproach, quadAngle, smoothLaplacian, smoothIter, smoothTol ) INT4 meshApproach REAL8 quadAngle BOOL smoothLaplacian INT4 smoothIter INT4 smoothTol Output: None Return Code: FE_FAIL Remarks/Usage: None Example: Could not mesh. Boundary may not be valid - it may be self intersecting. The mesher to use when meshing the surfaces: 0=Triangle, 1=Quad, 2=Fast-Triangle. The maximum angular deviation from 90 degrees allowed in a quad before it is split into triangles. Only applies to quad mesher. If True, Laplacian smoothing is performed. If False, centroidal smoothing is used. The number of smoothing iterations to perform. Set to 0 to skip smoothing. The smoothing tolerance. Smoothing will stop if node movement during a smoothing pass falls below this tolerance.

API-436

feMeshTransition

feMeshTransition
( useNodes, entCount, entID, edgeNum, edgeBias, edgeSize, propID, minBetween, maxAspect, 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 Dim Dim Dim Dim Dim Dim Dim Dim Dim Dim nodeCOUNT As Long nodes(20) As Long edgeNUM(20) As Long edgeBIAS(20) As Double edgeSIZE(20) As Double vnodes As Variant vedgeNUM As Variant vedgeSIZE As Variant vedgeBiAS As Variant i As Long 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

feMeshRemesh

API-437

3.9.3.6 feMeshRemesh

feMeshRemesh
( elemSET, nodeSET, remeshMode, refineRatio, breakAngle, deleteOrig, propID, minBetween, 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 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 be applied. Not used if you set remeshMode=1. 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, 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 removed, no matter what the refineRatio value is. This helps to preserve corners in the mesh. Only used when remeshMode=2, unrefine. If True, the original nodes and elements that are being remeshed (those elements selected in elemSET and their nodes) will be deleted. Specifies the ID of the property to use for elements as they are created. 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 generation. Not used for fast-tri mesher. The maximum allowable element aspect ratio. Not used for fast-tri mesher. Boundaries/surfaces with more than this number of nodes on the boundary are quick-cut. Not used for fast-tri mesher.

INT4 elemSET

INT4 nodeSET INT4 remeshMode

INT4 refineRatio

REAL8 breakAngle

BOOL deleteOrig

INT4 propID

INT4 minBetween REAL8 maxAspect INT4 maxQuickNodes

API-438

feMeshRemesh

feMeshRemesh
( elemSET, nodeSET, remeshMode, refineRatio, breakAngle, deleteOrig, propID, minBetween, maxAspect, maxQuickNodes, meshApproach, quadAngle, smoothLaplacian, smoothIter, smoothTol ) INT4 meshApproach REAL8 quadAngle BOOL smoothLaplacian INT4 smoothIter INT4 smoothTol Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Could not mesh. Boundary may not be valid - it may be self intersecting. The mesher to use when meshing the surfaces: 0=Triangle, 1=Quad, 2=Fast-Triangle. The maximum angular deviation from 90 degrees allowed in a quad before it is split into triangles. Only applies to quad mesher. If True, Laplacian smoothing is performed. If False, centroidal smoothing is used. The number of smoothing iterations to perform. Set to 0 to skip smoothing. The smoothing tolerance. Smoothing will stop if node movement during a smoothing pass falls below this tolerance.

feMeshConvertFacets

API-439

3.9.3.7 feMeshConvertFacets

feMeshConvertFacets
( solidID ) Description: Converts the current graphical facets of a solid into nodes and plot-only elements. Input: INT4 solidID Output: None Return Code: None Remarks/Usage: The current facetting of the solid is used to generate the elements. You can update the facetting tolerance prior to using this method if you want more (or fewer) elements. Example: None The ID of the solid to use to create the nodes and elements.

API-440

feMeshCleanupSlivers

3.9.3.8 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 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 0.0 to skip angle checking Identifies slivers to be removed based on a minimum edge length. Set to 0.0 to skip length checking.

INT4 elemSET

REAL8 minAngle REAL8 minLength Output: None Return Code: FE_FAIL Remarks/Usage:

Unable to remove slivers.

You must not include missing elements in the elemSET. Example: None

feMeshEdgeRemoval

API-441

3.9.3.9 feMeshEdgeRemoval

feMeshEdgeRemoval
( elemSET, nd1, nd2 ) Description: Removes an edge from a surface mesh by collapsing the connected elements. Input: INT4 elemSET INT4 nd1 INT4 nd2 Output: None Return Code: FE_FAIL Remarks/Usage: The elements selected must form a single, manifold hull - there can only be two elements that share each edge. Example: None Unable to remove edge. The ID of a set that contains the IDs of the elements to be checked. The elements contained in this set must be surface (planar) elements. The ID of the first node along the element edge. The ID of the second node along the element edge.

API-442

feMeshBuildRemeshRegions

3.9.3.10 feMeshBuildRemeshRegions

feMeshBuildRemeshRegions
( elemSET, breakAngle ) Description: Builds remeshing regions from a set of planar elements. Input: INT4 elemSET REAL8 breakAngle Output: None Return Code: FE_FAIL 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 Unable to build regions. The ID of a set that contains the IDs of the elements to be checked. The elements contained in this set must be surface (planar) elements. The maximum angle between adjacent elements for those elements to be considered in the same region.

feMeshEditRemeshRegions

API-443

3.9.3.11 feMeshEditRemeshRegions

feMeshEditRemeshRegions
( el1, el2 ) Description: Moves an element from one remeshing region to an adjacent region. Input: INT4 el1 INT4 el2 Output: None Return Code: FE_FAIL Remarks/Usage: The element to be moved, el1, must be adjacent, on at least one edge to the region containing element el2. Example: None Unable to update regions. 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 element will be placed.

API-444

feMeshRemeshRegions

3.9.3.12 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: REAL8 meshSize The default mesh size, used to determine the size of elements that will be generated. Specifies the ID of the property to use for elements as they are created. Set propID=0 to mesh with whatever property and element type are currently active. Set propID=-1 to automatically mesh with plotonly elements, which do not require other property information. The minimum number of elements between boundaries during mesh generation. Not used for fast-tri mesher. The maximum allowable element aspect ratio. Not used for fast-tri mesher. Boundaries/surfaces with more than this number of nodes on the boundary are quick-cut. Not used for fast-tri mesher. The mesher to use when meshing the surfaces (0=Triangle, 1=Quad, 2=Fast-Triangle). The maximum angular deviation from 90 degrees allowed in a quad before it is split into triangles. Only applies to quad mesher. If True, Laplacian smoothing is performed. If False, centroidal smoothing is used. The number of smoothing iterations to perform. Set to 0 to skip smoothing. The smoothing tolerance. Smoothing will stop if node movement during a smoothing pass falls below this tolerance.

INT4 propID

INT4 minBetween REAL8 maxAspect INT4 maxQuickNodes INT4 meshApproach REAL8 quadAngle BOOL smoothLaplacian INT4 smoothIter INT4 smoothTol Output: None Return Code: FE_FAIL Remarks/Usage: None

Unable to remesh

feMeshRemeshRegions

API-445

feMeshRemeshRegions
( meshSize, propID, minBetween, maxAspect, maxQuickNodes, meshApproach, quadAngle, smoothLaplacian, smoothIter, smoothTol ) Example: None

API-446

feMeshEdgeMembers

3.9.3.13 feMeshEdgeMembers

feMeshEdgeMembers
( elemSET, nodeSET, propID, orient ) Description: Generates elements along the free edges or free faces of selected elements. Input: INT4 elemSET The ID of a set that contains the IDs of the elements to be checked. 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 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 elements. If planar elements are selected in the elemSET, then this must 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 if elemSET contains planar elements, and propID specifies a line element type that requires orientation.

INT4 nodeSET

INT4 propID

REAL8 orient[0..2] Output: None Return Code: FE_FAIL Remarks/Usage:

Unable to create edge members. Either you selected elements that did not exist, or they are of the wrong type.

Only planar or solid elements can be selected in elemSET, not both at the same time. Example: None

feMeshSmooth

API-447

3.9.3.14 feMeshSmooth

feMeshSmooth
( elemSET, laplaceSmooth, iter, tolerance ) Description: Smooths a selected set of elements. Input: INT4 elemSET The ID of a set that contains the IDs of the elements to be smoothed. The elements contained in this set must be surface (planar) elements or solid elements. If True, Laplacian smoothing is performed; otherwise, centroidal smoothing is used. The maximum number of smoothing passes that will be performed. Smoothing will terminate sooner if the tolerance is reached. The nodal movement tolerance. If no nodes move farther than this distance during a smoothing pass, smoothing will be terminated.

BOOL laplaceSmooth INT4 iter REAL8 tolerance Output: None Return Code: FE_FAIL Remarks/Usage:

Unable to smooth. Your elemSET may contain multiple element types, or element types that are not compatible with this operation.

Only planar or solid elements can be selected in elemSET, not both at the same time. Example: None

API-448

feMeshExtrudeElem

3.9.3.15 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 (planar) elements, but not both. Line elements are extruded into planar elements; planar elements are extruded into solid elements. The extrusion length (See Remarks). The extrusion direction vector (See Remarks). The ID of the property that will be used for the new elements. This 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 the extrusion direction. The method of determining the extrusion direction. 0=Along axisVec, 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 active settings. If False, they will match the generating elements. If True, the elements in elemSET will be deleted, leaving only the new elements.

INT4 elemSET

REAL8 axisLen REAL8 axisVec[0..2] INT4 propID

INT4 numElem

INT4 method

BOOL matchCurrent BOOL deleteOrig Output: None Return Code: FE_FAIL Remarks/Usage:

Unable to extrude. Check the extrusion direction, and the element and property types.

The extrusion length (with method=0) 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.

feMeshExtrudeElem

API-449

feMeshExtrudeElem
( elemSET, axisLen, axisVec, propID, numElem, method, matchCurrent, deleteOrig ) Example: None

API-450

feMeshExtrudeCurve

3.9.3.16 feMeshExtrudeCurve

feMeshExtrudeCurve
( curveSET, axisLen, axisVec, propID, numElem ) Description: Extrudes existing curves into new elements. Input: INT4 curveSET REAL8 axisLen REAL8 axisVec[0..2] INT4 propID INT4 numElem Output: None Return Code: FE_FAIL 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 Unable to extrude. Check the extrusion direction, and the element and property types. The ID of a set that contains the IDs of the curves to be extruded. The curves are extruded into planar elements. The number and spacing of elements is dependent on the mesh size established on the curves. The extrusion length (See Remarks). The extrusion direction vector (See Remarks). The ID of the property that will be used for the new elements. This property must be a planar type. The number of elements generated along the extrusion direction.

feMeshRevolveElem

API-451

3.9.3.17 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 (planar) elements, but not both. Line elements are revolved into planar elements; planar elements are revolved into solid elements. The angle of rotation, in degrees. The total thrust distance (along the axis of rotation), typically zero. The origin of the axis of revolution. The direction of the axis of revolution. The ID of the property that will be used for the new elements. This 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 the revolution direction. If True, the attributes of the elements that are created will match the active settings. If False, they will match the generating elements. If True, the elements in elemSET will be deleted, leaving only the new elements.

INT4 elemSET

REAL8 rotAngle REAL8 rotThrust REAL8 axisOrig[0..2] REAL8 axisVec[0..2] INT4 propID

INT4 numElem BOOL matchCurrent BOOL deleteOrig Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None

Unable to revolve. Check the axis of revolution, and the element and property types.

API-452

feMeshRevolveCurve

3.9.3.18 feMeshRevolveCurve

feMeshRevolveCurve
( curveSET, rotAngle, rotThrust, axisOrig, axisVec, propID, numElem ) Description: Revolves existing curves into new elements. Input: INT4 curveSET REAL8 rotAngle REAL8 rotThrust REAL8 axisOrig[0..2] REAL8 axisVec[0..2] INT4 propID The ID of a set that contains the IDs of the curves to be revolved. The curves are revolved into planar elements. The number and spacing of elements is dependent on the mesh size established on the curves. The angle of rotation, in degrees. The total thrust distance (along the axis of rotation), typically zero. The origin of the axis of revolution. The direction of the axis of revolution. The ID of the property that will be used for the new elements. This 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 the revolution direction.

INT4 numElem Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None

Unable to revolve. Check the axis of revolution, and the element and property types.

feMeshSweepElem

API-453

3.9.3.19 feMeshSweepElem

feMeshSweepElem
( elemSET, numPath, curvePath, numAlign, curveAlign, alignLoc, propID ) Description: Sweeps existing elements along one or more curves into new elements. Input: INT4 elemSET INT4 numPath INT4 curvePath[0..numPath-1] The ID of a set that contains the IDs of the elements to be swept. The curves are swept into planar elements. The number and spacing of elements is dependent on the mesh size established on the curves. The number of curves in the curvePath array. The IDs of the curves along the sweep path. These IDs should be 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 are using an alignment path to orient the elements along sweep path). The IDs of curves along the alignment path. The alignment position. Only used if the sweep path is nonplanar, and numPath=0 (not using an alignment path). The ID of the property that will be used for the new elements. This property must be a planar type.

INT4 numAlign INT4 curveAlign[0..numAlign1] REAL8 alignLoc[0..2] INT4 propID Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None

Unable to sweep. Check the order of the curves for the path and alignment, and the element and property types.

API-454

feMeshSweepCurve

3.9.3.20 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) elements, but not both. Line elements are swept into planar elements; planar elements are swept into solid elements. The number of curves in the curvePath array. The IDs of the curves along the sweep path. These IDs should be 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 are using an alignment path to orient the elements along sweep path). The IDs of curves along the alignment path. The alignment position. Only used if the sweep path is nonplanar, and numPath=0 (not using an alignment path). The ID of the property that will be used for the new elements. This 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 active settings. If False, they will match the generating elements. If True, the elements in elemSET will be deleted, leaving only the new elements.

INT4 elemSET

INT4 numPath INT4 curvePath[0..numPath-1]

INT4 numAlign INT4 curveAlign[0..numAlign1] REAL8 alignLoc[0..2]

INT4 propID

BOOL matchCurrent BOOL deleteOrig Output: None Return Code: FE_FAIL Remarks/Usage: None

Unable to sweep. Check the order of the curves for the path and alignment, and the element and property types.

feMeshSweepCurve

API-455

feMeshSweepCurve
( curveSET, numPath, curvePath, numAlign, curveAlign, alignLoc, propID ) Example: None

API-456
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"

feProjectOntoCurve

API-457

3.10.1 Projection
3.10.1.1 feProjectOntoCurve

feProjectOntoCurve
( entityTYPE, entitySET, curveID ) Description: Projects nodes or points onto a curve. Input: INT4 entityTYPE The type of entities to be projected. For entity information, see Section 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 projected. Alternatively, if you specify a negative value, this is simply the ID of the single entity to project. The ID of the curve to project onto.

INT4 entitySET INT4 curveID Output: None Return Code: FE_INVALID FE_FAIL Remarks/Usage:

EntityTYPE does not specify either points or nodes. Could not project.

Points/nodes are projected to the closest location on the curve, not along any specified vector. Example: None

API-458

feProjectOntoSurface

3.10.1.2 feProjectOntoSurface

feProjectOntoSurface
( entityTYPE, entitySET, surfaceID ) Description: Projects nodes or points onto a surface. Input: INT4 entityTYPE The type of entities to be projected. For entity information, see Section 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 projected. Alternatively, if you specify a negative value, this is simply the ID of the single entity to project. The ID of the surface to project onto.

INT4 entitySET INT4 surfaceID Output: None Return Code: FE_INVALID FE_FAIL Remarks/Usage:

EntityTYPE does not specify either points or nodes. Could not project.

Points/nodes are projected to the closest location on the surface, not along any specified vector. Example: None

feProjectOntoVector

API-459

3.10.1.3 feProjectOntoVector

feProjectOntoVector
( entityTYPE, entitySET, vecLoc, vecDir ) Description: Projects points or nodes onto a vector Input: INT4 entityTYPE The type of entities to be projected. For entity information, see Section 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 projected. Alternatively, if you specify a negative value, this is simply the ID of the single entity to project. The XYZ location of the base of the vector to project onto. Must be specified in Global Rectangular coordinates. The XYZ components of the vector to project onto. Must be specified in Global Rectangular coordinates.

INT4 entitySET

REAL8 vecLoc[0..2] REAL8 vecDir[0..2] Output: None Return Code: FE_FAIL FE_INVALID Remarks/Usage: None Example: None

Could not project. entityTYPE must be either FT_POINT or FT_NODE

API-460

feProjectAlongVector

3.10.1.4 feProjectAlongVector

feProjectAlongVector
( entityTYPE, entitySET, surfaceSET, vecAlong ) Description: Projects points or nodes along a vector onto selected surfaces Input: INT4 entityTYPE The type of entities to be projected. For entity information, see Section 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 projected. 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 surface IDs that the entities will 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 specified in Global Rectangular coordinates.

INT4 entitySET

INT4 surfaceSET

REAL8 vecAlong[0..2] Output: None Return Code: FE_FAIL FE_INVALID Remarks/Usage: None Example: None

Could not project. entityTYPE must be either FT_POINT or FT_NODE

feProjectOntoPlane

API-461

3.10.1.5 feProjectOntoPlane

feProjectOntoPlane
( entityTYPE, entitySET, planeLoc, planeNormal ) Description: Projects points or nodes onto a plane Input: INT4 entityTYPE The type of entities to be projected. For entity information, see Section 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 projected. Alternatively, if you specify a negative value, this is simply the ID of the single entity to project. The XYZ location of the base of the plane to project onto. Must be specified in Global Rectangular coordinates. The XYZ components of the plane normal to project onto. Must be specified in Global Rectangular coordinates.

INT4 entitySET

REAL8 planeLoc[0..2] REAL8 planeNormal[0..2] Output: None Return Code: FE_FAIL FE_INVALID Remarks/Usage: None Example: None

Could not project. entityTYPE must be either FT_POINT or FT_NODE

API-462

feProjectOntoSolid

3.10.1.6 feProjectOntoSolid

feProjectOntoSolid
( nodeSET, elemSET, solidID, surfCount, surfID ) Description: Projects a mesh onto a solid. Input: INT4 nodeSET The ID of a set that contains a list of node IDs that will be projected. 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, 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 specify surfaces. The number of surfaces specified in surfID - only used if solidID=0. The IDs of the surfaces to project onto - only used if solidID=0 and surfCount is not 0.

INT4 elemSET

INT4 solidID INT4 surfCount INT4 surfID[0..surfCount-1] Output: None Return Code: FE_FAIL Remarks/Usage:

Could not project.

A mesh can either be projected to a solid by specifying solidID, or to surfaces by specifying surfCount and surfID. Example: None

feMoveTo

API-463

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: INT4 entityTYPE The type of entities to be moved. For entity information, see Section 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 node IDs that will be moved. Alternatively, if you specify a negative value, this is simply the ID of the single entity to move. The coordinates that you want to move to. Specified in the inCsys coordinate system.

INT4 entitySET REAL8 x REAL8 y REAL8 z BOOL doX BOOL doY BOOL doZ INT4 inCsys BOOL moveRef Output: None Return Code: FE_INVALID FE_FAIL Remarks/Usage:

If True, the corresponding coordinate direction (in inCsys) will be updated to the specified value. Only directions specified as True will be moved. The ID of the coordinate system where the update will take place. Only used if entityTYPE=FT_CSYS. If True, then all entities that reference the coordinate systems being moved will also be updated as a rigid body.

EntityTYPE does not specify coordinate systems, points, or nodes. Could not move.

You cannot move the global coordinate systems. Example: None

API-464

feMoveBy

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, 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. 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 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 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 the coordinates of the center that you are moving around, also specified in global rectangular coordinates.

INT4 entityTYPE

INT4 entitySET

BOOL radial

REAL8 length

REAL8 vecLoc[0..2]

Output: None Return Code: FE_INVALID FE_FAIL Remarks/Usage: You cannot move the global coordinate systems. Example: None Invalid entity type. Must specify one of the types listed in entityTYPE. Can only specify nodes or elements if radial=True. Could not move.

feMoveOffset

API-465

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: INT4 elemSET The ID of a set that contains a list of element IDs that will be offset. 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, 1=along the element normal, 2=along the element normal with thickness corrections. The distance to offset. If method=0, this length is multiplied by the length of the vector to get the total distance. Only used if method=0. Contains the components of the vector to move along, specified in global rectangular coordinates.

INT4 method

REAL8 length REAL8 alongVec[0..2] Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None

Could not offset.

API-466

feRotateTo

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, 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. 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 rectangular coordinates. The components of the axis of rotation, in global rectangular coordinates. The coordinates of a point that you will rotate from, in global rectangular coordinates. The coordinates of a point that you will rotate to, in global rectangular coordinates.

INT4 entityTYPE

INT4 entitySET

REAL8 axisLoc[0..2] REAL8 axisVec[0..2] REAL8 fromLoc[0..2] REAL8 toLoc[0..2] Output: None Return Code: FE_INVALID FE_FAIL Remarks/Usage:

EntityTYPE does not specify a valid type. Could not rotate. Check to make sure that the locations and vectors that you defined are not colinear or otherwise invalid.

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

feRotateBy

API-467

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, 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. 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 rectangular coordinates. The components of the axis of rotation, in global rectangular coordinates. The angle of rotation, in degrees. The total thrust distance (along the axis of rotation), typically zero.

INT4 entityTYPE

INT4 entitySET

REAL8 axisLoc[0..2] REAL8 axisVec[0..2] REAL8 rotAngle REAL8 rotThrust Output: None Return Code: FE_INVALID FE_FAIL Remarks/Usage: None Example: None

EntityTYPE does not specify a valid type. Could not rotate. Check to make sure that the locations and vectors that you defined are not colinear or otherwise invalid.

API-468

feAlignTo

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, 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. 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 rectangular coordinates. The components of the original vector, in global rectangular coordinates. The coordinates of the origin of the destination vector, in global rectangular coordinates. The components of the destination vector, in global rectangular coordinates.

INT4 entityTYPE

INT4 entitySET

REAL8 fromLoc[0..2] REAL8 fromVec[0..2] REAL8 toLoc[0..2] REAL8 toVec[0..2] Output: None Return Code: FE_INVALID FE_FAIL Remarks/Usage: None Example: None

EntityTYPE does not specify a valid type. Could not align. Check to make sure that the locations and vectors that you defined are not colinear or otherwise invalid.

feScale

API-469

3.10.2.7 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 3.3.6, "Entity Types". Can be FT_POINT, FT_CURVE, 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 scaled. 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 scaled, in global rectangular coordinates. The ID of the coordinate system in which scaling will take place. The scale factors in the axis directions of coordinate system csysID.

INT4 entityTYPE

INT4 entitySET

REAL8 fromLoc[0..2] INT4 csysID REAL8 xScale REAL8 yScale REAL8 zScale Output: None Return Code: FE_INVALID FE_FAIL Remarks/Usage: None Example: None

EntityTYPE does not specify a valid type. Could not scale.

API-470

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 Section 3.3.6, "Entity Types". Can be FT_CSYS, FT_POINT, 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. Alternatively, if you specify a negative value, this is simply the ID of the single entity to modify. The new color that you want to assign to the selected entities. Only valid for FT_PROP, FT_MATL, and FT_SURFACE. If True, then colors are randomized for the selected entities. The specified color is simply used as initialization for the randomization process.

INT4 entityTYPE

INT4 entitySET INT4 color BOOL randomize Output: None Return Code: FE_INVALID FE_FAIL Remarks/Usage: None Example: None

EntityTYPE does not specify a valid type. Could not modify.

feModifyTransparency

API-471

3.10.3.2 feModifyTransparency

feModifyTransparency
( entityTYPE, entitySET, transparency ) Description: Modifies the transparency of selected entities. Input: INT4 entityTYPE The type of entities to be modified. For entity information, see Section 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. 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 100 (fully transparent).

INT4 entitySET

REAL8 transparency Output: None Return Code: FE_INVALID FE_FAIL Remarks/Usage: None Example: None

EntityTYPE does not specify a valid type. Could not modify.

API-472

feModifyLayer

3.10.3.3 feModifyLayer

feModifyLayer
( entityTYPE, entitySET, layer ) Description: Modifies the layer of selected entities. Input: The type of entities to be modified. For entity information, see Section 3.3.6, "Entity Types". Can be FT_CSYS, FT_POINT, FT_CURVE, FT_SURFACE, FT_VOLUME, FT_SOLID, 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. Alternatively, if you specify a negative value, this is simply the ID of the single entity to modify. The new layer that you want to assign to the selected entities.

INT4 entityTYPE

INT4 entitySET INT4 color Output: None Return Code: FE_INVALID FE_FAIL Remarks/Usage: None Example: None

EntityTYPE does not specify a valid type. Could not modify.

feRenumber

API-473

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 Section 3.3.6, "Entity Types". Can be FT_POINT, FT_CURVE, FT_SURFACE, FT_VOLUME, FT_SOLID, FT_CSYS, FT_NODE, 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. 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 will be renumbered to available IDs that are higher than this number.

INT4 entityTYPE

INT4 entitySET

INT4 startID Output: None Return Code: FE_INVALID FE_FAIL Remarks/Usage:

EntityTYPE does not specify a valid type. Could not renumber.

For more renumbering options, use feRenumberOpt( ) Example: None

API-474

feRenumberOpt

3.10.4.2 feRenumberOpt

feRenumberOpt
( entityTYPE, entitySET, startID, renumMethod, renumCSysID, renumAbs, renumDescend, renumConstOff ) Description: Renumbers the IDs of selected entities. Input: The type of entities to be modified. For entity information, see Section 3.3.6, "Entity Types". Can be FT_POINT, FT_CURVE, FT_SURFACE, FT_VOLUME, FT_SOLID, FT_CSYS, FT_NODE, 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. 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 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 Coord, 7=Reference Entity ID (Material ID if renumbering properties, Property ID if renumbering Elements), 8=Entity Type, 9=Minimum Node ID The coordinate system ID in which coordinate renumbering is done. This is only used for the entityTYPEs where X,Y,Z sorting is available, and when renumMethod is set to one of those options If True, the absolute value of coordinate values are used when sorting by coordinates If True, the sort is done in Descending order, otherwise in Ascending order If True, all entities are renumbered with a constant ID offset

INT4 entityTYPE

INT4 entitySET

INT4 startID

INT4 renumMethod

INT4 renumCSysID

BOOL renumAbs BOOL renumDescend BOOL renumConstOff Output: None Return Code: FE_INVALID FE_FAIL

EntityTYPE does not specify a valid type. Could not renumber.

feRenumberOpt

API-475

feRenumberOpt
( entityTYPE, entitySET, startID, renumMethod, renumCSysID, renumAbs, renumDescend, renumConstOff ) Remarks/Usage: This works just like feRenumber, but allows you to specify additional renumbering options. Use feRenumber for a simpler interface if you are simply renumbering by ID. Not all combinations of renumMethod and entityTYPE are available - only those combinations available in the interactive renumbering commands will work properly. Example: None

API-476

feAutoMeshAssociativity

3.10.5 Associativity
3.10.5.1 feAutoMeshAssociativity

feAutoMeshAssociativity
( elemSetID, solidSetID, dTolerance, bClearPrevious, bCheckContainment, bAttachMidside, 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 the ID of the single entity to attach. Nodes are automatically determined for attachment based on the selected elements. The ID of a set that contains a list of solid IDs to which the mesh will be attached. The tolerance value. Nodes must be within this tolerance distance of the geometry that they will be associated too. If True, removes and previous atttachments from the nodes/elements prior to completing this command. If True and you are associating to multiple solids this will first find 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., Otherwise only corners will be associated. If True, status and warning messages will be written during the processing

INT4 elemSetID

INT4 solidSetID REAL8 dTolerance BOOL bClearPrevious

BOOL bCheckContainment

BOOL bAttachMidside BOOL bMessages Output: INT4 nUnattachedGroup Return Code: None Remarks/Usage: None Example: None

The ID of a group that will receive any geometry that could not be attached fully

feMeshAttach

API-477

3.10.5.2 feMeshAttach

feMeshAttach
( entityTYPE, entitySET, attachTYPE, attachID, doNodes ) Description: Associates nodes or elements with specified geometry. Input: INT4 entityTYPE The type of entities to be attached. For entity information, see Section 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. 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 FT_POINT, FT_CURVE, FT_SURFACE, or FT_SOLID. The ID of the geometry to attach to. Only used if entityTYPE=FT_ELEM. In this case, if True, then the nodes on the element will also be associated with the same geometry as the element.

INT4 entitySET

INT4 attachTYPE INT4 attachID BOOL doNodes Output: None Return Code: FE_INVALID FE_FAIL Remarks/Usage: None Example: None

EntityTYPE does not specify a valid type. Could not attach.

API-478

feMeshAttachNodes

3.10.5.3 feMeshAttachNodes

feMeshAttachNodes
( nNodes, nodeID, attachTYPE, attachID ) Description: Associates nodes with specified geometry. Input: INT4 nNodes INT4 nodeID[0..nNodes-1] INT4 attachTYPE[0..nNodes-1] INT4 attachID[0..nNodes-1] Output: None Return Code: FE_INVALID FE_FAIL Remarks/Usage: For each node you want to attach to geometry, there must be corresponding entries in the three arrays. Example: None One or more attachTYPEs do not specify a valid type. Could not attach one or more nodes The number of nodes specified in the other arrays The IDs of the nodes being attached to geometry. The types of geometry to attach the node/element to. Entries can be FT_POINT, FT_CURVE, FT_SURFACE, or FT_SOLID. The IDs of the geometry to attach each node to.

feMeshDetach

API-479

3.10.5.4 feMeshDetach

feMeshDetach
( entityTYPE, entitySET, attachTYPE, attachID, interior ) Description: Removes association between nodes or elements and specified geometry. Input: INT4 entityTYPE The type of entities to be detached. For entity information, see Section 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. 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 also specify attachTYPE=0, in which case attachID is not used, and the node/element is detached from all geometry. The ID of the geometry to detach. Not used if attachTYPE=0. Only used if entityTYPE=FT_NODE, and attachTYPE=FT_CURVE, FT_SURFACE or FT_SOLID. If True, the node is detached only if it is an interior node.

INT4 entitySET

INT4 attachTYPE

INT4 attachID BOOL interior Output: None Return Code: FE_INVALID FE_FAIL Remarks/Usage: None Example: None

EntityTYPE does not specify a valid type. Could not detach.

API-480

feModifyDefCSys

3.10.6 Other Updates


3.10.6.1 feModifyDefCSys

feModifyDefCSys
( entityTYPE, entitySET, csysID ) Description: Updates the definition coordinate system of selected entities. Input: INT4 entityTYPE The type of entities to be updated. For entity information, see Section 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. 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 system.

INT4 entitySET

INT4 csysID Output: None Return Code: FE_INVALID FE_FAIL Remarks/Usage: None Example: None

EntityTYPE does not specify a valid type. Could not update. Check to see that coordinate system exists.

feModifyOutCSys

API-481

3.10.6.2 feModifyOutCSys

feModifyOutCSys
( entityTYPE, entitySET, csysID ) Description: Updates the output coordinate system of selected entities. Input: INT4 entityTYPE The type of entities to be updated. For entity information, see Section 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. 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 system.

INT4 entitySET

INT4 csysID Output: None Return Code: FE_INVALID FE_FAIL Remarks/Usage: None Example: None

EntityTYPE does not specify a valid type. Could not update. Check to see that coordinate system exists.

API-482

feModifyPermBC

3.10.6.3 feModifyPermBC

feModifyPermBC
( entitySET, t1, t2, t3, r1, r2, r3 ) Description: Updates the permanent constraints on nodes. Input: INT4 entitySET BOOL t1 BOOL t2 BOOL t3 BOOL r1 BOOL r2 BOOL r3 Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Could not update. Corresponds to the six degrees of freedom of each node. If True, the associated degree of freedom is constrained. The ID of a set that contains a list of node IDs that will be updated. Alternatively, if you specify a negative value, this is simply the ID of the single node to update.

feModifySplineOrder

API-483

3.10.6.4 feModifySplineOrder

feModifySplineOrder
( entitySET, order ) Description: Updates the order of b-spline curves. Input: INT4 entitySET The ID of a set that contains a list of curve IDs that will be updated. 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 10.

INT4 order Output: None Return Code: FE_FAIL Remarks/Usage:

Could not update.

Only used with standard geometry engine b-splines - not solid engine curves. Example: None

API-484

feModifySplineKnots

3.10.6.5 feModifySplineKnots

feModifySplineKnots
( entitySET, knotLoc ) Description: Insert knots into b-spline curves. Input: INT4 entitySET REAL8 knotLoc[0..2] Output: None Return Code: FE_FAIL Remarks/Usage: Only used with standard geometry engine b-splines - not solid engine curves. Example: None Could not update. The ID of a set that contains a list of curve IDs that will be updated. Alternatively, if you specify a negative value, this is simply the ID of the single curve to update. The location, in global rectangular coordinates, of the knot to insert.

feModifyReverseCurve

API-485

3.10.6.6 feModifyReverseCurve

feModifyReverseCurve
( entitySET ) Description: Reverses the direction of selected curves. Input: INT4 entitySET Output: None Return Code: FE_FAIL Remarks/Usage: Only used with standard geometry engine curves - not solid engine curves. Example: None Could not update. The ID of a set that contains a list of curve IDs that will be updated. Alternatively, if you specify a negative value, this is simply the ID of the single curve to update.

API-486

feModifyNoMergeCurve

3.10.6.7 feModifyNoMergeCurve

feModifyNoMergeCurve
( entitySET, bNoMerge ) Description: Marks selected curves as mergeable or nonmergeable. Input: INT4 entitySET BOOL bNoMerge Output: None Return Code: FE_FAIL Remarks/Usage: Only used with solid engine curves - not standard geometry engine curves. Example: None Could not update. The ID of a set that contains a list of curve IDs that will be updated. Alternatively, if you specify a negative value, this is simply the ID of the single curve to update. If True, curves are made nonmergeable. If False, they are mergeable.

feModifySurfaceDivisions

API-487

3.10.6.8 feModifySurfaceDivisions

feModifySurfaceDivisions
( entitySET, sDiv, tDiv, tolerance ) Description: Updates the graphical divisions and facetting used to display surfaces. Input: INT4 entitySET The ID of a set that contains a list of surface IDs that will be updated. 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 direction of the surface. The number of divisions displayed along the second parametric direction of the surface. The accuracy with which the graphical facetting of solid geometry engine surfaces is created. Decreasing this number results in more 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.

INT4 sDiv INT4 tDiv

REAL8 tolerance

Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Could not update.

API-488

feModifySolidFacetting

3.10.6.9 feModifySolidFacetting

feModifySolidFacetting
( entitySET, sDiv, tDiv, dAngleTol, dChordTol, dCurveFactor ) Description: Updates the graphical divisions and facetting used to display solids. Input: INT4 entitySET The ID of a set that contains a list of solid IDs that will be updated. 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 direction of the surfaces of the solid. The number of divisions displayed along the second parametric direction of the surfaces of the solid. The percent of angle error allowed between the solid and facets The percent of chord error allowed between the solid and facets The refinement factor for curve facets compared to the default solid facetting.

INT4 sDiv INT4 tDiv REAL8 dAngleTol REAL8 dChordTol REAL8 dCurveFactor Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None

Could not update.

feModifySuperelementID

API-489

3.10.6.10 feModifySuperelementID

feModifySuperelementID
( entitySET, nSEID ) Description: Updates the superelementID of a set of nodes. Input: INT4 entitySET INT4 nSEID Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Could not update. The ID of a set that contains a list of node IDs that will be updated. Alternatively, if you specify a negative value, this is simply the ID of the single node to update. The superelementID to assign to the nodes.

API-490

feModifyLoadPhase

3.10.6.11 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 FT_NODE, FT_ELEM, FT_POINT, FT_CURVE, or FT_SURFACE. 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 applied. Alternatively, if you specify a negative value, this is simply the ID of the single entity with a load applied. The new phase value.

INT4 entityTYPE

INT4 entitySET REAL8 phase Output: None Return Code: FE_INVALID FE_FAIL Remarks/Usage:

EntityTYPE does not specify a valid type. Could not update.

Only loads in the active load set will be updated. The selection/specification of entities refers to the entities where the loads are applied - not the loads themselves. Example: None

feModifyElemPropID

API-491

3.10.7 Element Updates


3.10.7.1 feModifyElemPropID

feModifyElemPropID
( entitySET, propID ) Description: Updates the property ID of selected elements. Input: INT4 entitySET The ID of a set that contains a list of element IDs that will be 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 must be compatible with the element types chosen.

INT4 propID Output: None Return Code: FE_INVALID FE_FAIL Remarks/Usage: None Example: None

EntityTYPE does not specify a valid type. Could not update. Check to see that property exists and is of the correct type.

API-492

feModifyPropMatlID

3.10.7.2 feModifyPropMatlID

feModifyPropMatlID
( entitySET, matlID ) Description: Updates the material ID of selected properties. Input: INT4 entitySET INT4 matlID Output: None Return Code: FE_INVALID FE_FAIL Remarks/Usage: This method only updates the primary material identifier. Laminate properties cannot be updated using this method. Example: None EntityTYPE does not specify a valid type. Could not update. Check to see that material exists. The ID of a set that contains a list of property IDs that will be updated. Alternatively, if you specify a negative value, this is simply the ID of the single property to update. The ID of the new material to assign to the properties.

feModifyMaterialAngle

API-493

3.10.7.3 feModifyMaterialAngle

feModifyMaterialAngle
( entitySET, method, vecDir, coordDir, coordCSys, angle ) Description: Updates the material angle of selected entities. Input: INT4 entitySET The ID of a set that contains a list of element IDs that will be 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, 2=CoordSys, 3=Angle. 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 to be used for material angles. Only used if method=2. Sets the coordinate system ID to be used if method=2. Sets the angle to be used for the definition of material angles when method=3.

INT4 method REAL8 vecDir[0..2] INT4 coordDir INT4 coordCSys REAL8 angle Output: None Return Code: FE_FAIL Remarks/Usage:

Could not define material angle.

To turn material angles off for the selected elements, simply specify method=0. Example: None

API-494

feModifyElemReverse

3.10.7.4 feModifyElemReverse

feModifyElemReverse
( entitySET, method, vecDir ) Description: Reverses the normal of planar elements, or optionally spins them to orient the first edge along a vector. Input: INT4 entitySET The ID of a set that contains a list of element IDs that will be 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 Outward, 2=Normals Inward, 3=Align to Vector. The vector to be used for aligning the first edge of the elements if method=3.

INT4 method REAL8 vecDir[0..2] Output: None Return Code: FE_FAIL Remarks/Usage:

Could not update.

This method should only be used with planar elements. Example: None

feModifyElemRelease

API-495

3.10.7.5 feModifyElemRelease

feModifyElemRelease
( entitySET, rel1, rel2 ) Description: Updates the releases at the ends at the ends of beam (and other) elements. Input: INT4 entitySET The ID of a set that contains a list of element IDs that will be 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 corresponding elemental degree of freedom. The release flags for End 2 of the element. Specify True to release a corresponding elemental degree of freedom.

BOOL rel1[0..5] BOOL rel2[0..5] Output: None Return Code: FE_FAIL Remarks/Usage:

Could not update.

This method should only be used with beam or bar elements. Example: None

API-496

feModifyElemOrder

3.10.7.6 feModifyElemOrder

feModifyElemOrder
( entitySET, makeParabolic, ontoGeometry, maxAngle ) Description: Updates the order of elements between linear and parabolic. Input: INT4 entitySET The ID of a set that contains a list of element IDs that will be 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 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 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 maximum angle that any edge can be distorted by the movement.

BOOL makeParabolic

BOOL ontoGeometry

REAL8 maxAngle Output: None Return Code: FE_FAIL Remarks/Usage:

Could not update.

This method should only be used with elements that have both linear and parabolic types. Example: None

feModifyMidside

API-497

3.10.7.7 feModifyMidside

feModifyMidside
( elemSET, nodeSET ) Description: Updates the midside nodes of selected elements to be at the middle of the element edge. Input: INT4 elemSET The ID of a set that contains a list of element IDs that will be 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 updated. If you want to skip some nodes, include them in this set. Specify nodeSET=0 if you want to update all midside nodes.

INT4 nodeSET

Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Could not update.

API-498

feModifyFormulation

3.10.7.8 feModifyFormulation

feModifyFormulation
( elemSET, form1, form2 ) Description: Updates the element formulation for selected elements. Input: INT4 elemSET INT4 form1 INT4 form2 Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Could not update. The ID of a set that contains a list of element IDs that will be updated. Alternatively, if you specify a negative value, this is simply the ID of the single element to update. The formulation values.

feModifySplitQuads

API-499

3.10.7.9 feModifySplitQuads

feModifySplitQuads
( elemSET, form1, form2 ) Description: Splits quadrilateral elements into triangular elements. Input: INT4 elemSET Output: None Return Code: FE_FAIL Remarks/Usage: The split direction is automatically chosen to get the best shaped triangles; no further input is required. Example: None Could not update. The ID of a set that contains a list of element IDs that will be updated. Alternatively, if you specify a negative value, this is simply the ID of the single element to update.

API-500

feModifyOffsets

3.10.7.10 feModifyOffsets

feModifyOffsets
( elemSET, endA, endB, radial, offA, offB ) Description: Modifies the offsets of beam and bar elements. Input: INT4 elemSET BOOL endA BOOL endB BOOL radial The ID of a set that contains a list of element IDs that will be updated. Alternatively, if you specify a negative value, this is simply the ID of the single element to update. If True, the offset at the first end of the element will be updated. 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 vector 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 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 offB values are not used. If radial=False, then offB contains the components of the vector offset at the second end of the element.

REAL8 offA[0..2]

REAL8 offB[0..2] Output: None Return Code: FE_FAIL Remarks/Usage:

Could not update.

This method can only be used with elements that have offsets: beams and bars. Example: None

feModifyOffsetsToRefPt

API-501

3.10.7.11 feModifyOffsetsToRefPt

feModifyOffsetsToRefPt
( elemSET ) Description: Modifies the offsets of beam and bar elements so that the shape reference point is at the nodes. Input: INT4 elemSET Output: None Return Code: FE_FAIL 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. Offsets for each element are redefined so that the reference point is moved to the nodal location. Example: None Could not update. The ID of a set that contains a list of element IDs that will be updated. Alternatively, if you specify a negative value, this is simply the ID of the single element to update.

API-502

feModifyOrient

3.10.7.12 feModifyOrient

feModifyOrient
( elemSET, method, nodeID, orientVec ) Description: Modifies the orientation of line elements. Input: INT4 elemSET The ID of a set that contains a list of element IDs that will be 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 elements. The ID of the node to use as a third node for orientation - only used if method=0. The components, in global rectangular coordinates, of the orientation vector to use if method=1.

INT4 method

INT4 nodeID REAL8 orientVEC[0..2] Output: None Return Code: FE_FAIL Remarks/Usage:

Could not update.

This method can only be used with elements that have orientations. Example: None

feModifyElemType

API-503

3.10.7.13 feModifyElemType

feModifyElemType
( elemSET, propID, method, nodeID, orientVec ) Description: Modifies the element type of elements. Input: INT4 elemSET The ID of a set that contains a list of element IDs that will be 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 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 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 method=0. This parameter is only used if you are modifying line elements 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 modifying line elements with no orientation to a type that requires orientation.

INT4 propID

INT4 method

INT4 nodeID

REAL8 orientVEC[0..2]

Output: None Return Code: FE_FAIL Remarks/Usage: This method will only work to change elements from one type to another if the element shapes are compatible. Example: None Could not update.

API-504

feModifyBeamWarping

3.10.7.14 feModifyBeamWarping

feModifyBeamWarping
( elemSET, method, nodeType,nodeID_endA, nodeID_endB ) Description: Modifies/Creates warping NODES or SPOINTS for Beam Warping. Input: INT4 elemSET The ID of a set that contains a list of element IDs that will be 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 = None(Remove), 1 = Continuous, 2 = All Continuous, 3 = Discontinuous. The type of node to create 0 = Node, 1 = SPOINT. If the elemSET contains a single element then the warping node for endA and endB will be set to nodeID_endA, nodeID_endB respectively.

INT4 method INT4 nodeType INT4 nodeID_endA, nodeID_endB Output: None Return Code: FE_FAIL Remarks/Usage:

Could not update.

This method can only be used with Beam elements. Example: None

API-505
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.5, "feDeleteConstraints" Section 3.11.6, "feDeleteOutput"

API-506

feDeleteAll

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: BOOL geometry BOOL mesh BOOL output If True, all geometry in the model will be deleted - points, curves, surfaces, solids, volumes, etc. If True, the entire finite element mesh, including all loads, constraints, properties, all results, etc. will be deleted. If True, all results will be deleted. If you set mesh=True, then this is ignored and results will always be deleted. If True, the user will be asked to confirm the delete operation. If False, the selected portions of the model will be deleted without warning.

BOOL confirm Output: None Return Code: None Remarks/Usage:

Coordinate systems will only be deleted if both geometry and the mesh are deleted. Example: None

feDelete

API-507

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, 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. The ID of the set containing the IDs of the entities to delete.

INT4 entityTYPE

INT4 entitySET Output: None Return Code: FE_INVALID Remarks/Usage:

You specified an invalid entityTYPE - the entityTYPE must be one of the values listed above.

Entities will only be deleted if they are not referenced by other entities. You should always delete entities in the order of their references to each other in the model. For example, delete elements first, properties next, and materials last. Example: None

API-508

feDeleteMesh

3.11.3 feDeleteMesh feDeleteMesh


( entityTYPE, entitySET, bDeleteUnused) Description: This method deletes entire meshes from your model. Input: INT4 entityTYPE INT4 entitySET Must be either 7=Node or 8=Element The ID of the set containing the IDs of the nodes/elements which define the mesh to be deleted. If entitySET<0, it is the ID of the single entity where the mesh will be deleted. If True, then any unused Properties and Materials will also be deleted.

BOOL bDeleteUnused Output: None Return Code: FE_BAD_TYPE Remarks/Usage:

entityTYPE must be either Node or Element.

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

feDeleteLoads

API-509

3.11.4 feDeleteLoads feDeleteLoads


( loadSetID, entityTYPE, entitySET, loadTYPE ) Description: This method deletes selected loads from your model. Input: INT4 loadSetID INT4 entityTYPE The ID of the Load Set containing the loads to be deleted. The entity type of the entities specified in entitySET. Loads of loadTYPE 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 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, LineLoad=128, Pressure=256, Elem Heat Gen=512, Elem Heat Flux=1024, Velocity=2048, Nodal Temp=4096, Elem Temp=8192, Convection=16384, Radiation=32768, Transient=65536, Fluid Pressure=131072, Fluid Tracking = 262144, Fluid Unknown=524288, Fluid Slip=1048576, Fluid Fan=2097152, Fluid Periodic=4194304

INT4 entitySET

INT4 loadTYPE

Output: None Return Code: FE_INVALID Remarks/Usage: None Example: None You specified an invalid entityTYPE or loadTYPE - they must be one of the values listed above.

API-510

feDeleteConstraints

3.11.5 feDeleteConstraints feDeleteConstraints


( bcSetID, entityTYPE, entitySET, deleteBC, deleteBE ) Description: This method deletes selected constraints from your model. Input: INT4 bcSetID INT4 entityTYPE The ID of the Constraint Set containing the constraints to be deleted. The entity type of the entities specified in entitySET. Constraints will 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 will be deleted. If entitySET<0, it is the ID of the single entity where constraints will be deleted. If True, normal constraints will be deleted If True, constraint equations will be deleted

INT4 entitySET BOOL deleteBC BOOL deleteBE Output: None Return Code: FE_INVALID Remarks/Usage: None Example: None

You specified an invalid entityTYPE - it must be one of the values listed above.

feDeleteOutput

API-511

3.11.6 feDeleteOutput feDeleteOutput


( outputSetID, vectorSET ) Description: This method deletes selected output vectors from your model. Input: INT4 outputSetID INT4 vectorSET Output: None Return Code: None Remarks/Usage: None Example: None 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. Alternatively, if vectorSET<0, it is the ID of the single vector to delete.

API-512
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, "feViewAllViews" Section 3.12.5, "feViewShow (or feWindowShow)" Section 3.12.6, "feViewTile (or feWindowTile)" Section 3.12.7, "feWindowTileHorz" Section 3.12.8, "feViewCascade (or feWindowCascade)" Section 3.12.9, "feWindowMinimize" Section 3.12.10, "feWindowMaximize" Section 3.12.11, "feWindowRestore" Section 3.12.12, "feWindowSetRect" Section 3.12.13, "feWindowTitle" Section 3.12.14, "feEntityVisibility"

feViewVisible

API-513

3.12.1 feViewVisible (or feWindowVisible) feViewVisible


( viewID, visible ) Description: This method makes views visible or removes them from the screen. Input: INT4 viewID BOOL visible Output: None Return Code: FE_FAIL Remarks/Usage: This is similar to the Window, New Window command. feViewVisible and feWindowVisible perform identical functions. Example: None The operation failed. Either you asked to make a view visible that was already visible, or to remove a view that was not visible. The ID of the view to manipulate. Set to True to activate a view; False to remove it from the screen.

API-514

feViewRedraw

3.12.2 feViewRedraw (or feWindowRedraw) feViewRedraw


( viewID ) Description: This method redraws the selected view. Input: INT4 viewID Remarks/Usage: The selected view must be visible. Same as the Window, Redraw command. feViewRedraw and feWindowRedraw are identical. Example: None The ID of the view to redraw. Use viewID=0 to redraw the active view.

feViewRegenerate

API-515

3.12.3 feViewRegenerate (or feWindowRegenerate) feViewRegenerate


( viewID ) Description: This method regenerates the selected view. Input: INT4 viewID Remarks/Usage: The selected view must be visible. Same as the Window, Regenerate command.feViewRegenerate and feWindowRegenerate are identical Example: None The ID of the view to regenerate. Use viewID=0 to regenerate the active view.

API-516

feViewAllViews

3.12.4 feViewAllViews feViewAllViews


( on_off ) Description: This function turns on and off the All Views functionality. Input: BOOL on_off Output: None Return Code: None Remarks/Usage: Same as the View, All Views command. Example: None Set to True to enable All Views; False to only update a single view.

feViewShow

API-517

3.12.5 feViewShow (or feWindowShow) feViewShow


( entityTYPE, showSET ) Description: This function shows a selected group of entities. Input: INT4 entityTYPE The entity type to show: 3=Point, 4=Curve, 5=Surface, 7=Node, 8=Element, 9=Coordinate System, 53=Solid/Volume. The ID of a selection set that contains the IDs of the entities to show. Alternatively, if you specify a negative value, this is simply the ID of the single entity to show.

INT4 showSET Output: None Remarks/Usage:

Like the Window, Show Entities command. feViewShow and feWindowShow are identical. Example: None

API-518

feViewTile

3.12.6 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

feWindowTileHorz

API-519

3.12.7 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

API-520

feViewCascade

3.12.8 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

feWindowMinimize

API-521

3.12.9 feWindowMinimize feWindowMinimize


( vuID ) Description: This function minimizes the window that contains the specified view Input: INT4 vuID Output: None Return Code: None Remarks/Usage: None Example: None The ID of the view in the window to be modified. Specify vuID=0 to modify the active view.

API-522

feWindowMaximize

3.12.10 feWindowMaximize feWindowMaximize


( vuID ) Description: This function maximizes the window that contains the specified view Input: INT4 vuID Output: None Return Code: None Remarks/Usage: None Example: None The ID of the view in the window to be modified. Specify vuID=0 to modify the active view.

feWindowRestore

API-523

3.12.11 feWindowRestore feWindowRestore


( vuID ) Description: This function restores the window (from either a maximized or minimized state) that contains the specified view Input: INT4 vuID Output: None Return Code: None Remarks/Usage: None Example: None The ID of the view in the window to be modified. Specify vuID=0 to modify the active view.

API-524

feWindowSetRect

3.12.12 feWindowSetRect feWindowSetRect


( vuID, pctLeft, pctTop, pctRight, pctBottom ) Description: This function sizes the window using perchentages of graphics area from the Left, Top, Right, and/or Bottom of the graphics area. Input: INT4 vuID REAL8 pctLeft REAL8 pctTop REAL8 pctRight REAL8 pctBottom Output: None Return Code: FE_FAIL FE_BAD_DATA Remarks/Usage: None Example: None The operation failed. View is invalid or does not exist. Values for pctLeft, pctTop, pctRight, or pctBottom are out of 0.0 to 100.0 range. Location of view window in percent of graphics area. Numbers must be between 0.0 and 100.0 The ID of the view in the window to be modified. Specify vuID=0 to modify the active view.

feWindowTitle

API-525

3.12.13 feWindowTitle feWindowTitle


( vuID, sTitle ) Description: This function sets the View Title and the Tab Title at once for an existing view. Input: INT4 vuID STRING sTitle Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None The operation failed. View is invalid or does not exist. The ID of the view in the window to be modified. Specify vuID=0 to modify the active view. View and Tab Title (maximum 79 characters).

API-526

feEntityVisibility

3.12.14 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: INT4 visType The type of entity to blank - can be FVIS_PROP, FVIS_MATL, FVIS_ELEM_TYPE or FVIS_ELEM_SHAPE 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 element types or shapes, not element IDs. Set to a negative number to select a single ID/type/shape. Set to True to make entity visible, False to hide it. If True, the model is redrawn after the visibility change is made

INT4 visID

BOOL bIsVisible BOOL bRedraw Output: None Return Code: FE_INVALID Remarks/Usage: None Example: None

Invalid visType

feAppUpdateModelBox

API-527

3.12.15 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 Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None No model is active If True, the box is always recomputed. If False, only if necessary.

API-528
3.13 Group Methods
Group Methods include:

Section 3.13.2, "feGroupBoolean" Section 3.13.4, "feGroupGenerate" Section 3.13.5, "feGroupGenSolid" Section 3.13.6, "feGroupGenProp" Section 3.13.7, "feGroupGenMatl" Section 3.13.8, "feGroupGenElemType" Section 3.13.9, "feGroupPeel"

feGroupEvaluate

API-529

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: INT4 grSET The ID of a set that contains a list of Group IDs that you want to 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 only be evaluated if it is marked as needing evaluation.

BOOLEAN forceEval Output: None Return Code: FE_FAIL Remarks/Usage:

One or more of the groups you chose was unable to be evaluated

This method accomplishes the same tasks as the Group, Operations, Evaluate command. Example: None

API-530

feGroupBoolean

3.13.2 feGroupBoolean feGroupBoolean


( operation, grID1, grID2, grCreate, grTitle ) Description: This method takes one or two existing groups and creates a new group based on a specified operation. Input: INT4 operation INT4 grID1 INT4 grID2 INT4 grCreate STRING grTitle Output: None Return Code: FE_INVALID FE_FAIL 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 The ID of the group that you specified to create is invalid. Either it is not a valid ID, or that group already exists. Unable to manipulate the groups that you specified. Check to see if they exist. The operation to be done: 0=And, 1=Or, 2=Exclusive Or, 3=Invert. The first group to use in the operation. The second group to use in the operation. (This should be 0 for the Invert operation, because only the first group is used.) The ID of the group to create. The title of the group that is created.

feGroupCombine

API-531

3.13.3 feGroupCombine feGroupCombine


( groupSET, groupID ) Description: This method takes one or more existing groups and combines them to create a new group Input: INT4 groupSET Output: INT4 groupID Return Code: FE_INVALID Remarks/Usage: None Example: None Unable to combine groups. The ID of the group that is created The ID of a Set Object that contains the IDs of the groups to combine.

API-532

feGroupGenerate

3.13.4 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 BOOL planar 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 elements will be used. Set to 0 to ignore property or material discontinuities. Set to 1 to start a new group when property IDs change. Set to 2 to start a new group when material IDs change. Set to nonzero to start a new group when layers change. 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 degrees. Set to True if you not only want to create groups, but move the elements in each group to a separate layer.

INT4 brkPropMatl INT4 brkLayer INT4 brkColor REAL8 brkAngle

BOOL addLayers Output: None Return Code: None Remarks/Usage:

Same as the Group, Operations, Generate command. Example: None

feGroupGenSolid

API-533

3.13.5 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 Output: None Return Code: None Remarks/Usage: Same as the Group, Operations, Generate Solid command. A group is created for each solid that contains the solid, its surfaces, curves and points. Example: None The ID of the set of solids to be used in defining the groups.

API-534

feGroupGenProp

3.13.6 feGroupGenProp feGroupGenProp


( propSET ) Description: This method automatically makes one or more groups by subdividing a mesh based on property IDs. Input: INT4 propSET 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 The ID of the set of properties to be used in defining the groups.

feGroupGenMatl

API-535

3.13.7 feGroupGenMatl feGroupGenMatl


( matlSET ) Description: This method automatically makes one or more groups by subdividing a mesh based on material IDs. Input: INT4 matlSET 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 The ID of the set of materials to be used in defining the groups.

API-536

feGroupGenElemType

3.13.8 feGroupGenElemType feGroupGenElemType


( elemSET ) Description: This method automatically makes one or more groups by subdividing a mesh based on element type. Input: INT4 elemSET 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 The ID of the set of elements to be used in defining the groups.

feGroupPeel

API-537

3.13.9 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 INT4 peelLayers BOOL keepPeel BOOL keepCore Output: None Return Code: None Remarks/Usage: Same as the Group, Operations, Peel command. Example: None The ID of the set of elements to be used in defining the groups. The number of layers of elements to remove from the mesh. 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 removed, will be placed into a group.

API-538

feGroupMoveToLayer

3.13.10 feGroupMoveToLayer feGroupMoveToLayer


( nGroupID, nLayerID ) Description: Assigns all entities in the selected group to the specified layer. Input: INT4 nGroupID INT4 nLayerID Output: None Return Code: None Remarks/Usage: None Example: None The ID of the Group to reas Th ID of the Layer to move entities onto

API-539
3.14 Free Edge and Free Face Methods
Free Edge and Free Face Methods include:

Section3.14.1, "feElementFreeEdge" Section3.14.2, "feElementFreeFace"

API-540

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: INT4 elemSetID The ID of a Set Object that contains the IDs of the elements to be 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 midside nodes (if any). If False, only corner nodes are considered. If True, then any line elements that lie along an edge are considered when deciding if the edge is free.

BOOL bParabolicEdges BOOL bLineElem 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 free edge is defined by 3 entries in the array - the ID of the element containing the free edge, followed by the two corner nodes on the element of the free edge.

INT4 nFreeData[0..3*nFreeCount-1]

Return Code: FE_NO_MEMORY FE_FAIL Remarks/Usage: None Example: Could not allocate memory to return the Free Edge Data Could not compute the Free Edges for your selected elements.

feElementFreeFace

API-541

3.14.2 feElementFreeFace feElementFreeFace


( elemSetID, bParabolicEdges, bPlaneElem, nFreeCount, nFreeData ) Description: Allows you to find the Free Faces in a set of elements Input: INT4 elemSetID The ID of a Set Object that contains the IDs of the elements to be 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 nodes (if any). If False, only corner nodes are considered. If True, then any selected plane elements are considered when deciding if the face is free.

BOOL bParabolicEdges BOOL bPlaneElem Output: INT4 nFreeCount INT4 nFreeData[0..2*nFreeCount-1] Return Code: FE_NO_MEMORY FE_FAIL Remarks/Usage: None Example:

The number of Free Faces returned Data that defines the Free Faces. This is an array, stored as follows... [element1, face1, element2, face2, element3...]. Each free face is defined by 2 entries in the array - the ID of the element containing the free face, followed by the face ID

Could not allocate memory to return the Free Face Data Could not compute the Free Faces for your selected elements.

API-542
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-543

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 Output: REAL8 xyz[0..2] Return Code: FE_CANCEL 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 The user cancelled the dialog box. Coordinates are not valid. The coordinates selected. Always returned in the global rectangular coordinate system. A string that specifies a title to be added to the dialog box title.

API-544

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: INT4 method STRING dlgTITLE Output: REAL8 xyz[0..2] Return Code: FE_CANCEL 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 The user cancelled the dialog box. Coordinates are not valid. The coordinates selected. Always returned in the global rectangular coordinate system. The initial dialog box method. Refer to Coordinate Dialog Methods for possible values. A string that specifies a title to be added to the dialog box title.

feCoordFromWorkplane

API-545

3.15.1.3 feCoordFromWorkplane

feCoordFromWorkplane
( wpXYZ, xyz ) Description: This function converts coordinates from workplane coordinates to global rectangular coordinates. Input: REAL8 wpXYZ[0..2] Output: REAL8 xyz[0..2] Return Code: None Remarks/Usage: None Example: None The coordinates selected. Always returned in the global rectangular coordinate system. The original workplane coordinates. Although three coordinates can be specified, normally wpXYZ[2] is 0.0 if the location is actually on the workplane.

API-546

feCoordToWorkplane

3.15.1.4 feCoordToWorkplane

feCoordToWorkplane
( xyz, wpXYZ ) Description: This function converts coordinates from workplane coordinates to global rectangular coordinates. Input: REAL8 xyz[0..2] Output: REAL8 wpXYZ[0..2] Return Code: None Remarks/Usage: None Example: None The workplane coordinates. Three coordinates are returned. wpXYZ[2] is the elevation off of the workplane. Ignore this value to get the coordinates in the workplane. The original coordinates. Must be specified in global rectangular coordinates.

feCoordIntersectCurves

API-547

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 INT4 cuID2 REAL8 nearXYZ[0..2] Output: REAL8 xyz[0..2] Return Code: FE_INVALID Remarks/Usage: None Example: None The curve IDs may not specify the same curve. The coordinates selected. Always returned in the global rectangular coordinate system. The ID of the first curve to intersect. The ID of the second curve to intersect. A location near the desired intersection. This is not used unless there are multiple intersections detected.

API-548

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: BOOL infLine REAL8 pA1[0..2] REAL8 pA2[0..2] REAL8 pA1[0..2] REAL8 pA1[0..2] Output: REAL8 pIntersect[0..2] Return Code: FE_FAIL Remarks/Usage: None Example: None No intersection was found. This could be because the lines were parallel, or you were working with line segments and the intersection was outside of the segments you specified. The coordinates of the intersection point. Set to True if you want the intersection calculation to consider the lines as infinite. Set to False if you want to only consider the line segments between the endpoints that you provided. The coordinates of the first point on the first line. The coordinates of the second point on the first line. The coordinates of the first point on the second line. The coordinates of the second point on the second line.

feCoordOntoCurve

API-549

3.15.1.7 feCoordOntoCurve

feCoordOntoCurve
( cuID, fromXYZ, xyz ) Description: This function projects coordinates onto a curve. Input: INT4 cuID REAL8 fromXYZ[0..2] Output: REAL8 xyz[0..2] Return Code: FE_NOT_EXIST Remarks/Usage: None Example: None The selected curve does not exist. The coordinates selected. Always returned in the global rectangular coordinate system. The ID of the curve to project onto. The original location that is to be projected onto the curve.

API-550

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 BOOL fromSTART REAL8 cuLENGTH Output: REAL8 xyz[0..2] Return Code: FE_NOT_EXIST Remarks/Usage: None Example: None The selected curve does not exist. The coordinates selected. Always returned in the global rectangular coordinate system. The ID of the curve to measure along. If True, then the length is measured from the start of the curve; otherwise, it is measured from the end of the curve. The length, along the curve, from the selected endpoint to the coordinates.

feCoordCurveMidpoint

API-551

3.15.1.9 feCoordCurveMidpoint

feCoordCurveMidpoint
( cuID, xyz ) Description: This function finds the coordinates that are located at the midpoint of a curve. Input: INT4 cuID Output: REAL8 xyz[0..2] Return Code: FE_NOT_EXIST Remarks/Usage: None Example: None The selected curve does not exist. The coordinates selected. Always returned in the global rectangular coordinate system. The ID of the curve to measure along. The midpoint is halfway (along the curve) between the start and end of the curve.

API-552

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 Output: REAL8 xyz[0..2] Return Code: FE_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 The selected curve does not exist. The coordinates selected. Always returned in the global rectangular coordinate system. The ID of the curve to find the center.

feCoordOntoSurface

API-553

3.15.1.11 feCoordOntoSurface

feCoordOntoSurface
( suID, fromXYZ, xyz ) Description: This function projects coordinates onto a selected surface. Input: INT4 suID REAL8 fromXYZ[0..2] Output: REAL8 xyz[0..2] Return Code: FE_NOT_EXIST Remarks/Usage: None Example: None The selected surface does not exist. The coordinates selected. Always returned in the global rectangular coordinate system. The ID of the surface to project onto. The original coordinate which will be projected.

API-554

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 REAL8 suXY[0..1] Output: REAL8 xyz[0..2] Return Code: FE_NOT_EXIST Remarks/Usage: None Example: None The selected surface does not exist. The coordinates selected. Always returned in the global rectangular coordinate system. The ID of the surface to use. The parametric coordinates on the surface.

feCoordSurfaceIntersect

API-555

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 INT4 suID REAL8 nearXY[0..2] Output: REAL8 xyz[0..2] Return Code: FE_NOT_EXIST Remarks/Usage: None Example: None The selected curve or surface does not exist. The coordinates selected. Always returned in the global rectangular coordinate system. The ID of the curve to use. The ID of the surface to use. Coordinates near the intersection location. This is only used if multiple intersections are found. In this case, the closest one to this location is returned. Specify in global rectangular coordinates.

API-556

feCoordOnPoint

3.15.1.14 feCoordOnPoint

feCoordOnPoint
( ptID, xyz ) Description: This function returns the coordinates of a point. Input: INT4 ptID Output: REAL8 xyz[0..2] Return Code: FE_NOT_EXIST Remarks/Usage: None Example: None The selected point does not exist. The coordinates selected. Always returned in the global rectangular coordinate system. The ID of the point to locate.

feCoordOnNode

API-557

3.15.1.15 feCoordOnNode

feCoordOnNode
( ndID, xyz ) Description: This function returns the coordinates of a node. Input: INT4 ndID Output: REAL8 xyz[0..2] Return Code: FE_NOT_EXIST Remarks/Usage: None Example: None The selected node does not exist. The coordinates selected. Always returned in the global rectangular coordinate system. The ID of the node to locate.

API-558

feCoordTransform

3.15.1.16 feCoordTransform

feCoordTransform
( fromCSYS, fromXYZ, toCSYS, xyz ) Description: This function transforms coordinates from one coordinate system to another. Input: INT4 fromCSYS REAL8 fromXYZ[0..2] INT4 toCSYS Output: REAL8 xyz[0..2] Return Code: FE_NOT_EXIST Remarks/Usage: None Example: None One of the coordinate systems does not exist. The transformed coordinates, returned in the toCSYS coordinate system. The two sets of coordinates MAY NOT be specified as the same variable. The ID of the coordinate system in which the fromXYZ coordinates are currently specified. Specify 0 for global rectangular. The coordinates to transform, specified in fromCSYS. The ID of the coordinate system to transform into.

feCoordArrayTransform

API-559

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: INT4 count INT4 fromCSYS INT4 toCSYS Output: On input, this array contains the original coordinates. On output, it contains the transformed coordinates, returned in the toCSYS coordinate system. Coordinates in this array must be in the order X0,Y0,Z0,X1,Y1,Z1,...,Xcount,Ycount,Zcount. The number of sets of coordinates in xyz. There must be 3*count entries in xyz. The ID of the coordinate system in which the coordinates are currently specified. Specify 0 for global rectangular. The ID of the coordinate system to transform into.

REAL8 xyz[0..3*count-1]

Return Code: FE_INVALID FE_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 The count must be a positive number. One of the coordinate systems does not exist.

API-560

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: INT4 count INT4 fromCSYS INT4 toCSYS REAL8 inXYZ[0..3*count-1] Output: REAL8 xyz[0..3*count-1] Return Code: FE_INVALID FE_NOT_EXIST Remarks/Usage: This method replaces the feCoordArrayTransform( ) method which will not work with .NET Example: None The count must be a positive number. One of the coordinate systems does not exist. Contains the transformed coordinates, returned in the toCSYS coordinate system. Coordinates in this array are in the same order as in inXYZ. The number of sets of coordinates in xyz. There must be 3*count entries in xyz. The ID of the coordinate system in which the coordinates are currently specified. Specify 0 for global rectangular. The ID of the coordinate system to transform into. This array contains the original coordinates that will be transformed. Coordinates in this array must be in the order X0,Y0,Z0,X1,Y1,Z1,...,Xcount,Ycount,Zcount.

feCoordColinear

API-561

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: REAL8 xyz1[0..2] REAL8 xyz2[0..2] REAL8 xyz3[0..2] Output: BOOL isColinear Return Code: None Remarks/Usage: None Example: None True if the points are colinear (within the tolerance specified internally); False otherwise. The coordinates of the first point. This, and the other coordinates, must be stored in rectangular coordinates. The coordinates of the second point. The coordinates of the third point.

API-562

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] REAL8 xAxis[0..2] REAL8 xyPlane[0..2] Output: REAL8 dircos[0..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 The 3x3 direction cosine matrix. Data is stored in row-order. [0,0]=[0], [0,1]=[1], [0,2]=[2], [1,0]=3 ... [2,2]=[8] The location at the origin. A location along the positive X axis. A location in the positive quadrant of the XY plane.

feCoordRotate

API-563

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: REAL8 xyz[0..2] REAL8 angle REAL8 origin[0..2] REAL8 axis[0..2] Output: REAL8 xyzROT[0..2] Return Code: None Remarks/Usage: All coordinates and vector components must be specified in the same rectangular coordinate system normally global rectangular. Example: None The rotated coordinates. The original unrotated coordinates - must be specified in rectangular coordinates. The angle of rotation. The coordinates at the origin/base of the rotation axis vector. The components of the rotation axis vector.

API-564

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: REAL8 xyz[0..2] REAL8 projDir[0..2] REAL8 planePt[0..2] REAL8 planeNorm[0..2] Output: REAL8 xyzPlane[0..2] Return Code: FE_FAIL Remarks/Usage: All coordinates and vector components must be specified in the same rectangular coordinate system normally global rectangular. Example: None The projection failed. Probably the projDir vector is parallel to the plane (perpendicular to planeNorm). The projected coordinates. The original unprojected coordinates - must be specified in rectangular coordinates. The components of the vector to project along. The coordinates of any point on the plane. The components of the normal vector of the plane.

feCoordOntoLine

API-565

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: REAL8 xyz[0..2] REAL8 p1[0..2] REAL8 p2[0..2] Output: REAL8 xyzLine[0..2] 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 infinite. Example: None The projected coordinates. The original unprojected coordinates - must be specified in rectangular coordinates. The first set of coordinates along the line. The second set of coordinates along the line.

API-566

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] REAL8 normA[0..2] REAL8 baseB[0..2] REAL8 normB[0..2] REAL8 baseC[0..2] REAL8 normC[0..2] Output: REAL8 ptV[0..2] Return Code: FE_FAIL Remarks/Usage: All coordinates and vector components must be specified in the same rectangular coordinate system normally global rectangular. Example: None No intersection could be found. The coordinates at the intersection location. The coordinates of a point on the first plane. The components of the normal of the first plane. The coordinates of a point on the second plane. The components of the normal of the second plane. The coordinates of a point on the third plane. The components of the normal of the third plane.

feCoordVectorPlaneIntersect

API-567

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] REAL8 normVEC[0..2] REAL8 ptPLANE[0..2] REAL8 normPLANE[0..2] Output: REAL8 ptV[0..2] Return Code: FE_FAIL Remarks/Usage: All coordinates and vector components must be specified in the same rectangular coordinate system normally global rectangular. Example: None No intersection could be found. The coordinates at the intersection location. The coordinates of a point on the vector The components of direction along the vector The coordinates of a point on the plane. The components of the normal of the plane.

API-568

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: INT4 fromCSYS REAL8 fromROT[0..2] INT4 toCSYS Output: REAL8 rot[0..2] Return Code: FE_NOT_EXIST Remarks/Usage: None Example: None One of the coordinate systems does not exist. The transformed rotations, returned in the toCSYS coordinate system. The two sets of rotations MAY NOT be specified as the same variable. The ID of the coordinate system in which the fromROT rotations are currently specified. Specify 0 for global rectangular. The rotations to transform, specified in fromCSYS. The rotations are triple rotations, about X, the rotated Y and the doubly-rotated Z. The ID of the coordinate system to transform into.

feRotationToDirCos

API-569

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: REAL8 rot[0..2] Output: REAL8 dircos[0..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 The 3x3 direction cosine matrix. Data is stored in row-order. [0,0]=[0], [0,1]=[1], [0,2]=[2], [1,0]=3 ... [2,2]=[8] The rotations, first about X, then the rotated Y, then the doublyrotated Z.

API-570

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: REAL8 dircos[0..8] Output: REAL8 rot[0..2] 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 The rotations, first about X, then the rotated Y, then the doublyrotated Z. The 3x3 direction cosine matrix. Data is stored in row-order. [0,0]=[0], [0,1]=[1], [0,2]=[2], [1,0]=3 ... [2,2]=[8].

feVectorTransform

API-571

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: INT4 fromCSYS REAL8 baseXYZ[0..2] REAL8 fromXYZ[0..2] INT4 toCSYS Output: REAL8 xyz[0..2] Return Code: FE_NOT_EXIST Remarks/Usage: None Example: None One of the coordinate systems does not exist. The transformed vector components, returned in the toCSYS coordinate system. The ID of the coordinate system in which the fromXYZ coordinates are currently specified. Specify 0 for global rectangular. The coordinates at the base of the vector to be transformed. Must be specified in the fromCSYS coordinate system. The components of the vector to be transformed. Must be specified in the fromCSYS coordinate system. The ID of the coordinate system to transform into.

API-572

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: INT4 elemID REAL8 bmXYZ[0..2] Output: REAL8 xyz[0..2] Return Code: None Remarks/Usage: The element specified must exist, and must be an appropriate line element (beam, bar...) type. Example: None The transformed vector components, returned in the global rectangular coordinate system. The ID of the element that defines the coordinate system where the bmXYZ components are defined. The components of the vector to be transformed. Must be specified in the elemental coordinate system of element elemID.

feVectorToBeam

API-573

3.15.2.3 feVectorToBeam

feVectorToBeam
( elemID, xyz, bmXYZ ) Description: This function transforms a vector from global rectangular coordinates into beam/bar elemental coordinates. Input: INT4 elemID REAL8 xyz[0..2] Output: REAL8 bmXYZ[0..2] Return Code: None Remarks/Usage: The element specified must exist, and must be an appropriate line element (beam, bar...) type. Example: None The transformed vector components, returned in the elemental coordinates of elemID. The ID of the element that defines the coordinate system where the bmXYZ components are defined. The components of the vector to be transformed. Must be specified in global rectangular coordinates.

API-574

feVectorLength

3.15.2.4 feVectorLength

feVectorLength
( xyz, vecLength ) Description: This function computes the length of a vector. Input: REAL8 xyz[0..2] Output: REAL8 vecLength Return Code: None Remarks/Usage: None Example: None The length of the vector. The components of the vector to be measure. Must be specified in rectangular coordinates.

feVectorCrossProduct

API-575

3.15.2.5 feVectorCrossPoduct

feVectorCrossProduct
( vecA, vecB, vecAxB ) Description: This function computes the cross product of two vectors. Input: REAL8 vecA[0..2] REAL8 vecB[0..2] Output: REAL8 vecAxB[0..2] Return Code: None Remarks/Usage: None Example: None The components of the cross product of the two vectors. The components of the first vector. The components of the second vector.

API-576

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] REAL8 vecB[0..2] Output: REAL8 dot Return Code: None Remarks/Usage: None Example: None The scalar product of the two vectors. The components of the first vector. The components of the second vector.

feVectorPerpendicular

API-577

3.15.2.7 feVectorPerpendicular

feVectorPerpendicular
( vecIN, vecOUT ) Description: This function computes an arbitrary vector that is perpendicular to the specified vector. Input: REAL8 vecIN[0..2] Output: REAL8 vecOUT[0..2] 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 The perpendicular vector. The components of the first vector.

API-578

feVectorAngle

3.15.2.8 feVectorAngle

feVectorAngle
( vecA, vecB, angle ) Description: This function computes the angle between two vectors. Input: REAL8 vecA[0..2] REAL8 vecB[0..2] Output: REAL8 angle 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 The included angle between the two vectors. The components of the first vector. The components of the second vector.

feVectorAngleAxis

API-579

3.15.2.9 feVectorAngleAxis

feVectorAngleAxis
( vecA, vecB, axis, angle ) Description: This function computes the angle between two vectors rotating around an axis. Input: REAL8 vecA[0..2] REAL8 vecB[0..2] REAL8 axis[0..2] Output: REAL8 angle 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 The included angle between the two vectors. The components of the first vector. The components of the second vector. The components of the axis of rotation.

API-580

feVectorPlaneIntersect

3.15.2.10 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] REAL8 normA[0..2] REAL8 baseB[0..2] REAL8 normB[0..2] Output: REAL8 ptV[0..2] REAL8 dirV[0..2] Return Code: None Remarks/Usage: All coordinates and components must be specified in the same rectangular coordinate system - normally global rectangular. Example: None The coordinates of a location on the intersection vector. The components of the vector along the line of intersection. The coordinates of a location on the first plane. The components of the normal vector of the first plane. The coordinates of a location on the second plane. The components of the normal vector of the second plane.

feVectorUnit

API-581

3.15.2.11 feVectorUnit

feVectorUnit
( vecIN, vecNORM ) Description: This function normalizes a vector to make it into an equivalent unit vector. Input: REAL8 vecIN[0..2] Output: REAL8 vecNORM[0..2] Return Code: None Remarks/Usage: In addition to simply dividing by the length of the vector, this function also completely eliminates components of the vector that are very small ( less than 1E-8 times the length) compared to the other components. This helps to eliminate numerical errors which can creep in during transformations or other vector operations. Example: None The normalized vector The componets of the vector to be normalized

API-582

feVectorPick

3.15.2.12 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 BOOL unitVector Output: REAL8 vecLength REAL8 vecBase[0..2] REAL8 vecDir[0..2] Return Code: FE_CANCEL Remarks/Usage: The components in vecDir will always be those of a unit vector. The vector length is always returned in vecLength. Example: None The dialog box was cancelled. The length of the vector. This will be 1.0 if unitVector=True. The coordinates at the base of the vector. The components of the vector. A string that specifies a title to be added to the dialog box title. Set to False if you want the user to be able to enter a vector length.

feVectorPickByMethod

API-583

3.15.2.13 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: INT4 method STRING dlgTitle BOOL unitVector Output: REAL8 vecLength REAL8 vecBase[0..2] REAL8 vecDir[0..2] Return Code: FE_CANCEL Remarks/Usage: The components in vecDir will always be those of a unit vector. The vector length is always returned in vecLength. Example: None The dialog box was cancelled. The length of the vector. This will be 1.0 if unitVector=True. The coordinates at the base of the vector. The components of the vector. The initial dialog box method. Refer to Vector Dialog Methods for possible values. A string that specifies a title to be added to the dialog box title. Set to False if you want the user to be able to enter a vector length.

API-584

feVectorAxis

3.15.2.14 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 INT4 axis BOOL positive Output: REAL8 vecDir[0..2] Return Code: FE_NOT_EXIST Remarks/Usage: The components in vecDir will always be those of a unit vector. Example: None The coordinate system that you requested does not exist. The components of the vector. The ID of the coordinate system to use for the vector definition. Set to 0=X axis, 1=Y axis, 2=Z axis. True if you want the positive axis; False for the negative axis.

feVectorTangentToCurve

API-585

3.15.2.15 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 REAL8 baseXYZ[0..2] Output: REAL8 vecDir[0..2] Return Code: FE_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 The specified curve does not exist. The components of the tangent vector at baseXYZ. The ID of the curve used to compute the tangent. The coordinates of the location used to compute the tangent.

API-586

feVectorNormalToSurface

3.15.2.16 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 REAL8 baseXYZ[0..2] Output: REAL8 vecDir[0..2] Return Code: FE_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 The specified surface does not exist. The components of the normal vector at baseXYZ. The ID of the surface used to compute the normal. The coordinates of the location used to compute the normal.

feVectorNormalToView

API-587

3.15.2.17 feVectorNormalToView

feVectorNormalToView
( suID, vecDir ) Description: This function returns a unit vector that is the normal to a view. Input: INT4 vuID Output: REAL8 vecDir[0..2] Return Code: FE_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 The specified view does not exist. The components of the normal vector. The ID of the view used to compute the normal. Set to -1 to compute the normal of the active view.

API-588

feVectorAxisOfSurface

3.15.2.18 feVectorAxisOfSurface

feVectorAxisOfSurface
( suID, baseXYZ, vecDir ) Description: This function returns the axis of revolution for a surface. Input: INT4 suID Output: REAL8 baseXYZ[0..2] REAL8 vecDir[0..2] Return Code: FE_NOT_EXIST FE_CANCEL Remarks/Usage: None Example: None Surface does not exist. Unable to find surface axis or surface is not a revolute type. The coordinates at the base of the revolution vector. The components of the revolution vector. The ID of the surface to find revolution axis.

fePlanePick

API-589

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 Output: REAL8 plBase[0..2] REAL8 plNormal[0..2] REAL8 plAxis[0..2] Return Code: FE_CANCEL Remarks/Usage: The plane Y axis can be computed from a cross product of the normal and the X axis. Example: None The dialog box was cancelled. The coordinates of a location on the plane, in global rectangular coordinates. The components of the vector that is normal to the plane. The components of a vector along the plane X axis. A string that specifies a title to be added to the dialog box title.

API-590

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: INT4 method STRING dlgTitle Output: REAL8 plBase[0..2] REAL8 plNormal[0..2] REAL8 plAxis[0..2] Return Code: FE_CANCEL Remarks/Usage: The plane Y axis can be computed from a cross product of the normal and the X axis. Example: None The dialog box was cancelled. The coordinates of a location on the plane, in global rectangular coordinates. The components of the vector that is normal to the plane. The components of a vector along the plane X axis. The initial dialog box method. Refer to Plane Dialog Methods for possible values. A string that specifies a title to be added to the dialog box title.

fePlaneLocation

API-591

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] REAL8 p2[0..2] REAL8 p3[0..2] Output: REAL8 plBase[0..2] REAL8 plNormal[0..2] REAL8 plAxis[0..2] Return Code: FE_FAIL Remarks/Usage: The plane Y axis can be computed from a cross product of the Normal and the X axis. Example: None The three locations were colinear. The coordinates of a location on the plane, in global rectangular coordinates. The components of the vector that is normal to the plane. The components of a vector along the plane X axis. The coordinates of the points on the plane. The first point is the origin. The vector from the first to the second point is the X axis.

API-592

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 INT4 n2 INT4 n3 Output: REAL8 plBase[0..2] REAL8 plNormal[0..2] REAL8 plAxis[0..2] Return Code: FE_FAIL Remarks/Usage: The plane Y axis can be computed from a cross product of the normal and the X axis. Example: None The three locations were colinear. The coordinates of a location on the plane, in global rectangular coordinates. The components of the vector that is normal to the plane. The components of a vector along the plane X axis. The IDs of the three nodes on the plane. The first point is the origin. The vector from the first to the second point is the X axis.

fePlanePoints

API-593

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 INT4 p2 INT4 p3 Output: REAL8 plBase[0..2] REAL8 plNormal[0..2] REAL8 plAxis[0..2] Return Code: FE_FAIL Remarks/Usage: The plane Y axis can be computed from a cross product of the normal and the X axis. Example: None The three locations were colinear. The coordinates of a location on the plane, in global rectangular coordinates. The components of the vector that is normal to the plane. The components of a vector along the plane X axis. The IDs of the three points on the plane. The first point is the origin. The vector from the first to the second point is the X axis.

API-594

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] REAL8 p2[0..2] REAL8 p3[0..2] Output: REAL8 plBase[0..2] REAL8 plNormal[0..2] REAL8 plAxis[0..2] Return Code: FE_FAIL Remarks/Usage: The plane Y axis can be computed from a cross product of the normal and the X axis. Example: None The three locations were colinear. The coordinates of a location on the plane, in global rectangular coordinates. The components of the vector that is normal to the plane. The components of a vector along the plane X axis. 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 bisection. The end of the second vector (from p1) that will be used for the bisection.

fePlaneCSys

API-595

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: REAL8 p1[0..2] INT4 csysID A location that will be the origin of the plane - specified in global coordinates. The ID of the coordinate system to use to define the plane. Specify as 0 for global coordinates. A number that selects the plane of the coordinate system to use: 0=Positive XY, 1=Positive, YZ, 2=Positive ZX, 3=Negative XY, 4=Negative, YZ, 5=Negative ZX.

INT4 planeID Output: REAL8 plBase[0..2] REAL8 plNormal[0..2] REAL8 plAxis[0..2] Return Code: FE_FAIL Remarks/Usage:

The coordinates of a location on the plane, in global rectangular coordinates. The components of the vector that is normal to the plane. The components of a vector along the plane X axis.

The coordinate system was invalid or does not exist

The plane Y axis can be computed from a cross product of the normal and the X axis. Example: None

API-596

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 INT4 ptID1 INT4 ptID2 BOOL reversed BOOL align REAL8 offset Output: REAL8 plBase[0..2] REAL8 plNormal[0..2] REAL8 plAxis[0..2] Return Code: FE_FAIL Remarks/Usage: The plane Y axis can be computed from a cross product of the normal and the X axis. Example: None The surface was invalid or does not exist. The coordinates of a location on the plane, in global rectangular coordinates. The components of the vector that is normal to the plane. The components of a vector along the plane X axis. The ID of the surface used to define the normal. The ID of a point that will define the origin of the plane 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 normal. 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, from the first point (origin).

fePlaneCurveNormal

API-597

3.15.3.9 fePlaneCurveNormal

fePlaneCurveNormal
( cuID, planeBase, planeNormal, planeX ) Description: Defines a plane that is normal to a curve. Input: INT4 cuID Output: REAL8 plBase[0..2] REAL8 plNormal[0..2] REAL8 plAxis[0..2] Return Code: FE_FAIL Remarks/Usage: The plane Y axis can be computed from a cross product of the normal and the X axis. Example: None The curve was invalid or does not exist. The coordinates of a location on the plane, in global rectangular coordinates. The components of the vector that is normal to the plane. The components of a vector along the plane X axis. The ID of the curve used to determine the normal. The curve must be planar, and cannot be a line. This is usually used with arcs and circles to determine their plane.

API-598

fePlaneViewAlign

3.15.3.10 fePlaneViewAlign

fePlaneViewAlign
( viewID, intoView, planeNormal, planeX ) Description: Defines a plane that is normal to a view. Input: INT4 viewID BOOL intoView Output: REAL8 plNormal[0..2] REAL8 plAxis[0..2] Return Code: FE_FAIL Remarks/Usage: The plane Y axis can be computed from a cross product of the normal and the X axis. Example: None The view was invalid or does not exist. The components of the vector that is normal to the plane. The components of a vector along the plane X axis. The ID of a view. Determines whether the normal will be into or out of the screen.

fePlaneViewAlign

API-599

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.4.2.25, "Select" - standard FEMAP entity selection dialog box Section 4.4.2.26, "SelectID" - standard Single entity selection dialog box in FEMAP. Section 4.4.2.28, "SelectMultiID" - standard Multiple entity selection dialog box in FEMAP. Section 4.4.2.29, "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:

API-600

feSelectOutput

3.15.4.2 feSelectOutput

feSelectOutput
( dlgTITLE, nBaseOutputSetID, limitOutputType, limitComplex, limitToEntity, includeCorner, pOutputSets, pOutputVecs ) 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 ID of an output set to use to fill the Output Vector selection control. If 0, then the active Output Set is used, or if none is active, the 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, 1=Disp, 2=Accel, 3=Force, 4=Stress, 5=Strain, 6=Temp) Reduces list of output vectors shown based on type of real or complex data they contain (0=Magnitude, 1=Phase, 2=Real, 3=Imaginary, 4=Any) Reduces list of output vectors to those containing data on the specified entity type If True, output vectors at element corners will also be included

INT4 nBaseOutputSetID

INT4 limitOutputType

INT4 limitComplex

INT4 limitToEntity BOOL includeCorner Output: OBJECT pOutputSets OBJECT pOutputVectors Return Code: FE_CANCEL FE_NOT_EXIST Remarks/Usage:

A Set object that contains the Output Sets that were selected. A Set object that contains the Output Vectors that were selected.

The user cancelled the dialog box. No output sets/vectors exist.

feSelectOutput

API-601

feSelectOutput
( dlgTITLE, nBaseOutputSetID, limitOutputType, limitComplex, limitToEntity, includeCorner, pOutputSets, pOutputVecs ) The following dialog box is used for the set/vector selection...

Checking the Include Components/Corner Results will automatically select related corner or vector component vectors, without having to manually check those vectors. Checking Select Similar Layer/ Ply/Corner Vectors will automatically select the same output type on various layers or plys - for example, if this is checked, picking the Plate Top X Normal Stress will also select the Plate Bottom X Normal Stress, or for laminates, results across all plies. Example:

API-602

feSelectOutput

feSelectOutput
( dlgTITLE, nBaseOutputSetID, limitOutputType, limitComplex, limitToEntity, includeCorner, pOutputSets, pOutputVecs ) The following routine allows you to select output vectors and list the max/min values for selected elements... Sub Main Dim App As femap.model Set App = GetObject(,"femap.model") Dim Dim Dim Set Dim Set Dim Dim Dim Dim s As femap.Set v As femap.Set e As femap.Set e = App.feSet ov As femap.output ov = App.feOutput minID As Long maxID As Long minVAL As Double 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

feGetElementFaces

API-603

3.15.4.3 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 INT4 orig_nCount INT4 orig_elemID[0..orig_nCount-1] INT4 orig_faceID[0..orig_nCount-1] Output: INT4 nCount INT4 elemID[0..nCount-1] INT4 faceID[0..nCount-1] Return Code: FE_CANCEL 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 The user cancelled the dialog box. Value is not valid. The number of elements/faces that have been selected. Unless some or all of the orig faces were deleted, they will also be contained in this list. The element IDs that were selected The face IDs that were selected 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 orig_faceID. These element faces are displayed in the dialog box when it is opened. Specify 0 to display an empty dialog box. The element IDs to be loaded when the dialog is opened The face IDs to be loaded when the dialog is opened

API-604

feGetElementEdges

3.15.4.4 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 INT4 orig_nCount INT4 orig_elemID[0..orig_nCount-1] INT4 orig_edgeID[0..orig_nCount-1] Output: INT4 nCount INT4 elemID[0..nCount-1] INT4 edgeID[0..nCount-1] Return Code: FE_CANCEL 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 The user cancelled the dialog box. Value is not valid. The number of elements/edges that have been selected. Unless some or all of the orig edges were deleted, they will also be contained in this list. The element IDs that were selected The edge IDs that were selected 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 orig_faceID. These element faces are displayed in the dialog box when it is opened. Specify 0 to display an empty dialog box. The element IDs to be loaded when the dialog is opened The edgeIDs to be loaded when the dialog is opened

feGetReal

API-605

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 REAL8 lowerlimit REAL8 upperlimit Output: REAL8 value Return Code: FE_CANCEL Remarks/Usage: None Example: None The user cancelled the dialog box. Value is not valid. The number entered by the user. On input, value is displayed as the default. A string that specifies a title to be used as the dialog box title. The minimum acceptable value for the number The maximum acceptable value for the number

API-606

feGetInt

3.15.5.2 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 INT4 lowerlimit INT4 upperlimit Output: INT4 value Return Code: FE_CANCEL Remarks/Usage: None Example: None The user cancelled the dialog box. Value is not valid. The number entered by the user. On input, value is displayed as the default. A string that specifies a title to be used as the dialog box title. The minimum acceptable value for the number The maximum acceptable value for the number

feAppMessageBox

API-607

3.15.5.3 feAppMessageBox

feAppMessageBox
( msgmode, message ) Description: Displays a message box, asking the user to press a button to continue. Input: INT4 msgmode STRING message Output: None Return Code: FE_OK FE_FAIL FE_CANCEL Remarks/Usage: This method is useful if your application is windowless since it insures the Message Box will be displayed on top of all FEMAP windows. Example: None User pressed either the OK or Yes button User pressed No button User pressed Cancel button Determines the buttons that will be available in the box. 0=OK, 1=OK and Cancel, 2 = Yes and No, 3 = Yes, No and Cancel The text of the message to write. Must be less than 160 characters.

API-608

feAppColorPalette

3.15.5.4 feAppColorPalette

feAppColorPalette
( nDefault, nColor ) Description: Displays the color palette dialog box allowing a user to pick a color. Input: INT4 nDefault Output: INT4 nColor Return Code: FE_OK Remarks/Usage: None Example: None Dialog box was displayed. Returns FE_OK even if Cancel is pressed. The color/pattern/linestyle that the user selected. If the user presses Cancel, this will be the same as nDefault The default color, used to initialize the dialog box. This is a combination of the desired color, pattern and linestyle.

feScreenPctPick

API-609

3.15.5.5 feScreenPctPick

feScreenPctPick
( x, y ) Description: Displays a dialog box that allows picking a location in a view Input: None Output: REAL8 x REAL8 y Return Code: FE_CANCEL Remarks/Usage: None Example: None Dialog box was cancelled. 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 80% of the way from the top/left to the bottom/right of the view.

API-610
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-611

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 Return Code: FE_FAIL 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 There is no active model The ID of the active model

API-612

feAppGetModelName

3.16.1.2 feAppGetModelName

feAppGetModelName
( model, ModelName ) Description: Retrieves the name of the selected model Input: INT8 model Output: STRING ModelName Return Code: FE_FAIL 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 The specified model is not currently open. The name of the active model The ID of the model to retrieve the name.

feAppSetModel

API-613

3.16.1.3 feAppSetModel

feAppSetModel
( model ) Description: Activates a model chosen by its internal ID Input: INT8 model Output: None Return Code: FE_FAIL Remarks/Usage: You can find the ID of the active model using feAppGetMethod, and that ID can then be passed to this method at a later time to reactivate the model. Example: None The model ID that you specified is not a valid, open model The ID of the model that you want to activate

API-614

feAppSetModelByName

3.16.1.4 feAppSetModelByName

feAppSetModelByName
( fName ) Description: Activates a model chosen by specifying its filename Input: STRING fName Output: None Return Code: FE_FAIL 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( ) The model name that you specified is not a valid, open model The complete filename of the model that you want to activate

feAppCountModels

API-615

3.16.1.5 feAppCountModels

feAppCountModels
( numModels ) Description: Finds the number of models that are currently opened Input: None Output: INT4 numModels Return Code: FE_FAIL Remarks/Usage: None Example: None Unable to retrieve the number of active models The number of currently opened models. Could be 0 if no models are open.

API-616

feAppGetAllModels

3.16.1.6 feAppGetAllModels

feAppGetAllModels
( numModels, model ) Description: Finds the number of models that are currently opened Input: None Output: INT4 numModels INT8 model[0..numModels-1] Return Code: FE_FAIL Remarks/Usage: This function will return the IDs of all currently opened models, which can then be used with feAppSetModel to activate any of those desired models. Example: None There are either no models opened, or unable to retrieve the model IDs The number of currently opened models. The IDs of all of the currently opened models.

feAppModelContents

API-617

3.16.1.7 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 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. 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". If True, a report of the contents is written to the Message Window

INT4 nEntityBlocks[0..max]

Return Code: FE_FAIL 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 There are either no models opened, or unable to retrieve the model information

API-618

feAppModelDefragment

3.16.1.8 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 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 Unable to defragment

feAppManageToolbars

API-619

3.16.2 Window Management


When you are running FEMAP via the API, especially if you are embedding it in your own applications, 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 BOOL visible Output: None Return Code: FE_FAIL Remarks/Usage: The names of the toolbars can be found by running FEMAP manually and looking on the Tools->Toolbars 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 Unable to find the selected toolbar. The name of the toolbar to manage If True, the toolbar is made visible, otherwise it is hidden

API-620

feAppManagePanes

3.16.2.2 feAppManagePanes

feAppManagePanes
( paneName, action ) Description: Changes the state of one or more of the docking panes Input: STRING paneName INT4 action Output: None Return Code: FE_FAIL FE_INVALID 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, and Model Info. 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 Unable to find the selected pane. Invalid action specified. The name of the pane to manage 0=Hide, 1=Show/Visible, 2=Dock as a Tab, 3=Toggle Docking

feAppUpdatePanes

API-621

3.16.2.3 feAppUpdatePanes

feAppUpdatePanes
( fullRefresh ) Description: Updates the contents of the docking panes Input: BOOL fullRefresh Output: None Return Code: None Remarks/Usage: If called with fullRefresh=False, then it must be called after each command, before redraws occur, otherwise some changes may be lost. Example: None If True, the Model Info pane is fully rebuilt, otherwise incremental changes are added to all panes.

API-622

feAppManageStatusBar

3.16.2.4 feAppManageStatusBar

feAppManageStatusBar
( visible ) Description: Sets the visibility of the status bar Input: BOOL visible Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Unable to find the status bar If True, show the status bar, otherwise hide it

feAppManageGraphicsTabs

API-623

3.16.2.5 feAppManageGraphicsTabs

feAppManageGraphicsTabs
( visible ) Description: Sets the visibility of the tabs on the top of the graphics windows Input: BOOL visible Output: None Return Code: FE_FAIL Remarks/Usage: The tabs controlled by this method are shown here: Unable to find the tabs If True, show the tabs, otherwise hide them

Example: None

API-624

feAppGetActiveView

3.16.3 View Management


Sometimes you will need to know and control which views are available on the screen. The methods 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 Return Code: FE_FAIL Remarks/Usage: This method allows you to retrieve the active view from the active model. Example: None There is no active view. The ID of the active view.

feAppSetActiveView

API-625

3.16.3.2 feAppSetActiveView

feAppSetActiveView
( viewID ) Description: Activates a view in the active model chosen by its ID. Input: INT4 viewID 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 The ID of the view that you want to activate.

API-626

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 visible. Input: None Output: INT4 numViews INT4 viewID[0..numViews-1] Return Code: FE_FAIL 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 No views exist. The number of views visible in the active model. The IDs of all of the views visible in the active model.

feGetUserCommands

API-627

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: INT4 numCmd STRING sTitle[0..numCmd-1] STRING sCmd[0..numCmd-1] STRING sArg[0..numCmd-1] STRING sStartDir[0..numCmd1] Return Code: FE_FAIL FE_NOT_EXIST Remarks/Usage: None Example: None Unable to retrieve the user commands No user commands are defined. The number of user commands that are current defined, and the number of entries in the other arrays The title assigned to each command The command line used to execute the command Any command line arguments assigned to the command The starting directory, if any, for the command.

API-628

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: STRING sTitle STRING sCmd STRING sArg STRING sStartDir Output: None Return Code: FE_FAIL FE_INVALID Remarks/Usage: User commands defined with this method can be assigned to a toolbar using the feAddToolbarUserCommand method. Example: None Unable to add the user commands A user command with the same title has already been defined. You must specify a unique title. The title assigned to the command. This title is used later to assign the command to the menu or toolbar. It must be unique when compared to all other user commands. The command line used to execute the command Any command line arguments assigned to the command The starting directory, if any, for the command.

feDeleteUserCommand

API-629

3.16.4.3 feDeleteUserCommand

feDeleteUserCommand
( sTitle ) Description: Deletes a user command Input: STRING sTitle Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Unable to delete the user commands The title of the command to be deleted.

API-630

feGetToolbars

3.16.4.4 feGetToolbars

feGetToolbars
( numBars, barID, barVisible, barTitle ) Description: Retrieves all toolbars that have been defined Input: None Output: INT4 numBars INT4 barID[0..numBars-1] BOOLEAN barVisible[0..numBars-1] STRING barTitle[0..numBars1] Return Code: FE_FAIL Remarks/Usage: Toolbars do not need to be visible on the screen to be accessed by this method. Example: None Unable to retrieve the toolbar information The number of toolbars that are current defined, and the number of entries in the other arrays. The ID of each toolbar A flag indicating whether the toolbar is currently visible. True=Visible. The title of the toolbar.

feAddToolbar

API-631

3.16.4.5 feAddToolbar

feAddToolbar
( barName, barLocation ) Description: Creates a new toolbar Input: STRING barName INT4 barLocation Output: None Return Code: FE_FAIL FE_INVALID Remarks/Usage: After creating a toolbar with this method, you can add commands to it using either feAddToolbarCommand or feAddToolbarUserCommand Example: None Unable to add the toolbar A toolbar with the same title has already been defined. You must specify a unique title. The title assigned to the toolbar. This title must be unique, and will be used in other methods to access the toolbar. The location where the bar will be docked. 0=Top, 1=Left, 2=Right, 3=Top, 4=Bottom

API-632

feAddToolbarSubmenu

3.16.4.6 feAddToolbarSubmenu

feAddToolbarSubmenu
( barName, cmdIndex, menuName, menuID ) Description: Creates a new submenu in a toolbar Input: STRING barName INT4 cmdIndex STRING menuName Output: INT4 menuID Return Code: FE_FAIL FE_NOT_EXIST Remarks/Usage: After creating a toolbar with this method, you can add commands to it using either feAddToolbarSubmenuCommand or feAddToolbarSubmenuUserCommand, or submenus using feAddToolbarSubmenuSubmenu Example: None Unable to add the menu The toolbar barName does not exist. ID of the menu that was inserted - needed for feAddToolbarSubmenuSubmenu, feAddToolbarSubmenuCommand or feAddToolbarSubmenuUserCommand to add commands or submenus to this menu The title assigned to the toolbar. This title must be unique, and will be used in other methods to access the toolbar. Location in barName to place the new menu. 0=Before first item, -1=After last item, N=After Nth item. Title to be used for the menu drop-down.

feAddToolbarSubmenuSubmenu

API-633

3.16.4.7 feAddToolbarSubmenuSubmenu

feAddToolbarSubmenuSubmenu
( menuID, cmdIndex, menuName, submenuID ) Description: Adds a new submenu to a submenu on a toolbar. Input: INT4 menuID The ID of the menu where you want to place the command. This is returned by feAddToolbarSubmenu The location in the menu for the submenu. 0=At the front of the menu before any other buttons. -1=At the end of the menu, after all other buttons. Any other positive value means after that button. Title to be used for the menu drop-down.

INT4 cmdIndex STRING menuName Output: INT4 submenuID Return Code: FE_FAIL FE_NOT_EXIST Remarks/Usage: None Example: None

ID of the menu that was inserted - needed for feAddToolbarSubmenuCommand or feAddToolbarSubmenuUserCommand to add commands to this menu

Unable to add the submenu. The menu does not exist.

API-634

feDeleteToolbar

3.16.4.8 feDeleteToolbar

feDeleteToolbar
( barName ) Description: Deletes a toolbar Input: STRING barName Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Unable to delete the toolbar The title of the toolbar to be deleted.

feResetToolbar

API-635

3.16.4.9 feResetToolbar

feResetToolbar
( barName ) Description: Resets a toolbar back to its original state Input: STRING barName Output: None Return Code: FE_FAIL 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 Unable to reset the toolbar The title of the toolbar to be reset. If this is an empty string () then all toolbars will be reset.

API-636

feSetToolbarVisible

3.16.4.10 feSetToolbarVisible

feSetToolbarVisible
( barName, bVisible ) Description: Makes one or more toolbars visible (or hidden) Input: STRING barName BOOLEAN bVisible Output: None Return Code: FE_FAIL Remarks/Usage: The names of the toolbars can be found by running FEMAP manually and looking on the Tools->Toolbars 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 Unable to reset the toolbar The title of the toolbar to be updated. If this is an empty string () then all toolbars will be reset. If True, the toolbar will be made visible. If False, it will be hidden.

feGetMenuCommands

API-637

3.16.4.11 feGetMenuCommands

feGetMenuCommands
( menuName1, menuName2, numCmds, cmdID, cmdTitle ) Description: Retrieves information about all commands on a selected menu Input: STRING menuName1 The menu name you see at the top level (for example, File). Specify an empty string () here to retrieve information about the commands at the top level (File, Tools, ...) The menu name you see inside the top level menu (for example, Import if menuName1=File). Specify an empty string here to retrieve the commands on the drop down from the top level.

STRING menuName2 Output: INT4 numCmds

The number of commands on this menu, and the number of entries in the other arrays. The IDs of the commands associated with each menu item. The cmdID of any item on the menu that is a drop-down (rather than a command) will be -1. The titles of the commands associated with each menu item.

INT4 cmdID[0..numCmds-1] STRING cmdTitle[0..numCmds-1] Return Code: FE_FAIL Remarks/Usage:

Unable to retrieve information about the specified menu - make sure you are specifying the name of a drop-down menu, and not an individual command

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 specify 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-638

feGetMenuCommand

3.16.4.12 feGetMenuCommand

feGetMenuCommand
( menuName1, menuName2, menuName3, cmdID ) Description: Retrieves the ID of a specified command Input: STRING menuName1 STRING menuName2 The menu name you see at the top level (for example, File). The menu name you see inside the top level menu (for example, 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 menuName2=Import). Specify an empty string here to retrieve a command on the first level drop-down menu.

STRING menuName3

Output: INT4 cmdID Return Code: FE_FAIL 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 specify the title as if nothing was underlined. Example: None Unable to retrieve information about the specified menu. The ID of the command associated with the menu item. The cmdID of any item on the menu that is a drop-down (rather than a command) will be -1.

feGetToolbarCommands

API-639

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 Output: INT4 numCmds INT4 cmdID[0..numCmds-1] BOOLEAN cmdVisible[0..numCmds-1] BOOLEAN cmdSubmenu[0..numCmds-1] STRING cmdTitle[0..numCmds-1] Return Code: FE_FAIL FE_NOT_AVAILABLE FE_INVALID Remarks/Usage: None Example: None Unable to retrieve information about the specified toolbar commands No commands are available on the selected toolbar Unable to find the specified toolbar The number of commands on this toolbar, and the number of entries in the other arrays. The IDs of the commands associated with each toolbar item. A flag indicating whether or not the item is currently visible on the toolbar. True=Visible. A flag indicating whether the item is a command button, or a button that drops down another menu. True=Drop-Down a Submenu The titles of the commands associated with each toolbar item. The title of the toolbar containing the commands to be retrieved.

API-640

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 Output: INT4 numCmds INT4 cmdID[0..numCmds-1] BOOLEAN cmdVisible[0..numCmds-1] STRING cmdTitle[0..numCmds-1] Return Code: FE_FAIL FE_NOT_AVAILABLE FE_INVALID Remarks/Usage: None Example: None Unable to retrieve information about the specified menu commands No commands are available on the selected menu Unable to find the specified toolbar The number of commands on this menu, and the number of entries in the other arrays. The IDs of the commands associated with each menu item. A flag indicating whether or not the item is currently visible on the menu. True=Visible. The titles of the commands associated with each menu item. The ID of the toolbar button that drops down the menu

feGetToolbarCommand

API-641

3.16.4.15 feGetToolbarCommand

feGetToolbarCommand
( barName, cmdIndex, cmdID ) Description: Finds the ID of the command associated with a toolbar button Input: STRING barName INT4 cmdIndex Output: INT4 cmdID Return Code: FE_FAIL FE_NOT_EXIST Remarks/Usage: None Example: None Unable to find the toolbar The specified button does not exist on the toolbar The command ID associated with the button The title of the toolbar to be searched. The index of the button to retrieve. The first button on the toolbar is button 0, the second is 1, and so on.

API-642

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 INT4 cmdIndex INT4 cmdID Output: None Return Code: FE_FAIL FE_NOT_EXIST Remarks/Usage: None Example: None Unable to add the command. The toolbar does not exist. 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 toolbar before any other buttons. -1=At the end of the toolbar, after all other buttons. Any other positive value means after that button. The command ID associated with the button

feAddToolbarSubmenuCommand

API-643

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: INT4 menuID The ID of the menu where you want to place the command. This is returned by feAddToolbarSubmenu The location in the menu for the button. 0=At the front of the menu before any other buttons. -1=At the end of the menu, after all other buttons. Any other positive value means after that button. The command ID associated with the button

INT4 cmdIndex INT4 cmdID Output: None Return Code: FE_FAIL FE_NOT_EXIST Remarks/Usage: None Example: None

Unable to add the command. The menu does not exist.

API-644

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 INT4 cmdIndex 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 toolbar 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 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 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.

STRING cmdTitle

STRING cmdBitmap

Output: INT4 cmdID Return Code: FE_FAIL FE_NOT_EXIST FE_NOT_AVAILABLE Remarks/Usage: None Example: None Unable to add the command. The toolbar does not exist. The specified user command has not been defined. The command ID assigned to the button

feAddToolbarSubmenuUserCommand

API-645

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 INT4 cmdIndex 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 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 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 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.

STRING cmdTitle

STRING cmdBitmap

Output: INT4 cmdID Return Code: FE_FAIL FE_NOT_EXIST FE_NOT_AVAILABLE Remarks/Usage: None Example: None Unable to add the command. The menu does not exist. The specified user command has not been defined. The command ID assigned to the button

API-646

feSetToolbarCommandVisible

3.16.4.20 feSetToolbarCommandVisible

feSetToolbarCommandVisible
( barName, cmdID, bVisible ) Description: Shows (or hides) a specified command on a toolbar or menu Input: STRING barName INT4 cmdID BOOLEAN bVisible Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Unable to find the specified command. The title of the toolbar where the command button is found. Specify an empty string () to show or hide the command on all toolbars and the menu. The ID of the command to show or hide. True=Show the command, False=Hide

feSetToolbarSeparator

API-647

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: STRING barName INT4 cmdID BOOLEAN bAddSep Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Unable to find the specified command. The title of the toolbar where the command button is found. Specify an empty string () to show or hide the command on all toolbars and the menu. The ID of the command or menu to modify the separator True=Add a separator before the command/menu, False=Remove separator

API-648

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: STRING barName INT4 cmdID STRING cmdTitle The title of the toolbar where the command button is found. Specify an empty string () to set the titles for the command on all toolbars and the menu. The ID of the command to update Sets the title of the command. The title is the text shown on the toolbar 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 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 command. Specify an empty string () if you do not want to update the command description.

STRING cmdToolTip

STRING cmdDescription

Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Unable to find the specified command.

feSetToolbarCommandBitmap

API-649

3.16.4.23 feSetToolbarCommandBitmap

feSetToolbarCommandBitmap
( cmdID, cmdBitmap ) Description: Sets the icon for a command on the menu or toolbar Input: INT4 cmdID STRING cmdBitmap Output: None Return Code: FE_FAIL FE_NOT_AVAILABLE 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 Unable to find the specified command. Unable to access the bitmap file specified. The ID of the command to update The full pathname to a Windows Bitmap file that is used for the command icon.

API-650

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: STRING fName Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Unable to save the layout The full pathname of the file to create (normally with a .tbr extension)

feLoadToolbarLayout

API-651

3.16.4.25 feLoadToolbarLayout

feLoadToolbarLayout
( fName ) Description: Loads a toolbar and menu definition and layout from a file Input: STRING fName Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Unable to load the layout The full pathname of the file to load, that was either created with feSaveToolbarLayout or through File->Preferences

API-652

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: BOOL register INT4 windowID INT4 messageID BOOL tile INT4 location 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 Set to True to register a new application, or False to unregister an add-in that is about to close. The handle to the add-in application main window/form. The handle to the add-in application window that is to receive event messages. This must be a window that has a message loop. Not used Not used

feAppRegisterAddInPane

API-653

3.16.5.2 feAppRegisterAddInPane

feAppRegisterAddInPane
( register, windowID, messageID, bPreventClose, bPreventHide, location, neighborID ) Description: Registers an add-in application with FEMAP. Input: BOOL register INT4 windowID INT4 messageID Set to True to register a new application, or False to unregister an add-in that is about to close. The handle to the add-in application main window/form. The handle to the add-in application window that is to receive event 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 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 window to be collapsed to a tab. 0 - floating window, 1 - dock left, 2 - dock right, 3 - dock top, 4 dock bottom 0-femap main window, 1-Message Pane, 2-Model Info Tree Pane, 3Entity Editor Pane, 4-Data Table Pane, otherwise the handle to an existing add-in window.

BOOL bPreventClose

BOOL bPreventHide INT4 location

INT4 neighborID 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 neighborID=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-654

feAppRegisterAddInPaneWithFrame

3.16.5.3 feAppRegisterAddInPaneWithFrame

feAppRegisterAddInPaneWithFrame
( register, windowID, messageID, bPreventClose, bPreventHide, location, neighborID ) Description: Registers an add-in application with FEMAP. Input: BOOL register INT4 windowID INT4 messageID Set to True to register a new application, or False to unregister an add-in that is about to close. The handle to the add-in application main window/form. The handle to the add-in application window that is to receive event 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 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 window to be collapsed to a tab. 0 - floating window, 1 - dock left, 2 - dock right, 3 - dock top, 4 dock bottom 0-femap main window, 1-Message Pane, 2-Model Info Tree Pane, 3Entity Editor Pane, 4-Data Table Pane, otherwise the handle to an existing add-in window.

BOOL bPreventClose

BOOL bPreventHide INT4 location

INT4 neighborID Output: None Return Code: None Remarks/Usage:

This method is essentially the same as feAppRegisterAddInPane, however it does not modify the window 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 feAppRegisterAddInPane. 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-655

3.16.5.4 feAppEmbed

feAppEmbed
( windowID, x, y, cx, cy ) Description: Embeds the FEMAP window(s) into another application Input: INT4 windowID INT4 x INT4 y INT4 cx 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 application. 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 75 for more information. Example: None The handle to your application main window/form, or any other window where you want the FEMAP window displayed. The coordinates of the upper left corner of the embedded window(s). These are specified in the client coordinates of the parent window specified by windowID The horizontal and vertical size of the embedded window(s)

API-656

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: BOOL toTop If True, the window is moved forward in the window list. If False, it 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 leave it behind another window, specify that window handle in this field.

INT4 underWindow

Output: None Return Code: None Remarks/Usage: None Example: None

feAppPosition

API-657

3.16.5.6 feAppPosition

feAppPosition
( move, size, x, y, cx, cy ) Description: Allows you to move and size the FEMAP window. Input: BOOL move BOOL size REAL8 x REAL8 y REAL8 cx REAL8 cy Output: None Return Code: None Remarks/Usage: None Example: None If True, the upper left corner of the window is moved to the new location specified by x,y. If True, the window is resized to the size specified by cx,cy. The horizontal location of the upper left corner of the window. Specified as a percent of the total screen size. The vertical location of the upper left corner of the window. Specified as a percent of the total screen size. The horizontal size of the window. Specified as a percent of the total screen size. The vertical size of the window. Specified as a percent of the total screen size.

API-658

feAppShowWindow

3.16.5.7 feAppShowWindow

feAppShowWindow
( maximize ) Description: Allows you to minimize and maximize the FEMAP window. Input: BOOL maximize Output: None Return Code: None Remarks/Usage: None Example: None If True, the window will be maximized. If False, it will be minimized to an icon.

feAppVisible

API-659

3.16.5.8 feAppVisible

feAppVisible
( visible ) Description: Makes a FEMAP session that was started with CreateObject visible (or invisible) Input: BOOL visible 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 If True, the session becomes visible, if False, invisible

API-660

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: BOOL register INT4 windowID 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 Messages on page 77 for more information. Example: None If True, your application will start receiving messages as they are written to the window. If False, messages will no longer be sent. The handle your applications main window/form, or any other window that you want to receive the message text.

feAppEventCallback

API-661

3.16.5.10 feAppEventCallback

feAppEventCallback
( eventID, callback ) Description: Registers a program to be called when a particular event occurs Input: INT4 eventID The ID of the event to watch. Refer to Section 6.4, "The FEMAP Events" for possible event values. A full path to a FEMAP Program file, Basic program, or any executable that can be run from the operating system command line. Specify callback as a blank (zero length) string to unregister your callback.

STRING callback

Output: None Return Code: FE_NOT_EXIST FE_NO_MEMORY 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 calling 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 You tried to unregister the callback for an event which was not registered Unable to register callback.

API-662

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: INT4 lock_count 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 feAppUnlock before FEMAP will again be active. Example: None The lock count after this call. Will be nonzero if the interface was locked.

feAppUnlock

API-663

3.16.6.2 feAppUnlock

feAppUnlock
( void ) Description: Unlocks the FEMAP user interface. Input: None Output: None Return Code: INT4 lock_count 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 The number of locks remaining after this call. Will be 0 if the user interface was actually unlocked.

API-664

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 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 accidentally or intentionally terminated using Task Manager or other approaches. Example: None The lock count after this call. Will be nonzero if the exit was locked.

feAppUnlockExit

API-665

3.16.6.4 feAppUnlockExit

feAppUnlockExit
( void ) Description: Unlocks the FEMAP session so that the user can exit. Input: None Output: None Return Code: INT4 lock_count 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 feAppUnlockExit must be called an equal number of times before exit will be unlocked. There is no harm in calling feAppUnlockExit extra times, or even if feAppLockExit was never called. Example: None The number of locks remaining after this call. Will be 0 if the session was actually unlocked.

API-666

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 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 The lock count after this call. Will be nonzero if the exit was locked.

feAppUnlockModel

API-667

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: INT4 lock_count 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 multiple 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 The number of locks remaining after this call. Will be 0 if the session was actually unlocked.

API-668

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 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 The lock count after this call. Will be nonzero if the exit was locked.

feAppUnlockDraw

API-669

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: INT4 lock_count Remarks/Usage: This method unlocks drawing, after a call to feAppLockDraw, so that redraws can again be done. Actually, feAppLockDraw increases a lock count, so if it has been called multiple times, then feAppUnlockDraw 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 The number of locks remaining after this call. Will be 0 if the session was actually unlocked.

API-670

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 feAppManageStatusBar on page 622.
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-671

3.16.7.2 feAppStatusShow

feAppStatusShow
( enable, max_status ) Description: Enables or disables the status tracker inside the Status bar. Input: BOOL enable INT4 max_status 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 Set to True to enable/show the status tracker. Set to False to remove it. The value that you will use as 100% complete when sending feAppStatusUpdate commands.

API-672

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 feAppStatusShow method. When you specify current_status=max_status, the status tracker will be drawn as fully complete.

INT4 current_status

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-673

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 feAppManagePanes on page 620.
3.16.8.1 feAppMessage

feAppMessage
( color, message ) Description: Writes a message to the Messages and Lists window. Input: INT4 color STRING message 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 The color/status of the message to write: 0=Normal, 1=Highlight, 2=Warning, 3=Error. The text of the message to write. Must be less than 160 characters.

API-674

feAppMessageStartListing

3.16.8.2 feAppMessageStartListing

feAppMessageStartListing
() Description: Begins a listing to the active listing destinations Input: None Output: None Return Code: FE_FAIL 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 destinations are selected - Message Window, File and/or Printer. Finally it means that text written to the Message 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 feAppMessageEndListing() 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 Unable to begin listing - no need to call feAppMessageEndListing()

feAppMessageEndListing

API-675

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 feAppMessageEndListing() is sent to the printer as a single job when you call feAppMessageEndListing(). Example:

API-676

feFormatReal

3.16.9 Real Number Text Formatting


The methods described here allow you to access functionality used in FEMAP to format real numbers 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 INT4 nWidth INT4 nSigFig INT4 nFormat Output: CHAR strValue Return Code: None Remarks/Usage: None Example: None The text string containing the formatted real number The real value to format The overall width of the text string to produce The number of significant figures to attempt to format. Must be able to fit within the specified width The formatting method to use 0=Normal, 1=Force Exponential, 2=Nastran

feTruncateReal

API-677

3.16.9.2 feFormatReal

feTruncateReal
( dValue, nWidth, nSigFig, nFormat, truncValue ) Description: Truncates a real number to the precision of a formatted text string. Input: REAL8 dValue INT4 nWidth INT4 nSigFig INT4 nFormat Output: REAL8 truncValue Return Code: None Remarks/Usage: This is the same as calling feFormatReal() and then parsing the resulting text string into a new real variable. Example: None The precision truncated version of the formatted real number The real value to format The overall width of the text string to produce The number of significant figures to attempt to format. Must be able to fit within the specified width The formatting method to use 0=Normal, 1=Force Exponential, 2=Nastran

API-678

feLicenseExpiration

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 Return Code: None Remarks/Usage: nDays is returned as -1 for perpetual licenses. Example: None The number of days until the license expires

feLicenseMethod

API-679

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 2 = Node/Curve limited Demo 4 = FLEXlm-based Network Licensing 5 = API-only Licensing

INT4 nLicenseType

Return Code: FE_FAIL FE_SECURITY Remarks/Usage: None Example: None Licensing information is not valid Licensing method is valid, but currently exceeding some limitation on the license (like a node limit)

API-680

feLicenseIsAvailable

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 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

INT4 nFeature

Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Feature is not licensed

feRunCommand

API-681

3.16.10.4 feRunCommand

feRunCommand
( nCmdID, bWaitForCompletion ) Description: Runs a FEMAP command Input: INT4 nCmdID BOOL bWaitForCompletion Output: None Return Code: None Remarks/Usage: Command IDs can be found by calling various functions defined earlier in this section, like feGetMenuCommand( ). This method provides no means for automatically answering dialog boxes that are displayed by the selected command - the command is run interactively. Example: None The ID of the command to run If True, this method only returns when the command is finished. If False, it returns immediately.

API-682

feAppVersion

3.16.10.5 feAppVersion

feAppVersion
( void ) Description: Returns the version of FEMAP Input: None Output: None Return Code: INT4 version Remarks/Usage: None Example: None The version of FEMAP specified as an integer. This is 100 times the version number. For Example, v9.3.1 will return 931, v10.0 will return 1000.

feAppVersion

API-683

API-684
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-685
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-686

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 INT4 nxyz REAL8 xyz[0..(3*nxyz)-1] The User Graphics Set to create The number of locations specified in the coordinate table (xyz) 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. The number of entries in the poly array 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 contain 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. The color of the entities created. For triangles and quads this is the fillcolor Only used for triangles and quads. The color of the edges. Only used for points. The symbol to be displayed for points.

INT4 npoly INT4 poly[0..(4*npoly)-1]

INT4 color INT4 edgecolor INT4 symbol Output: None Return Code: FE_FAIL FE_BAD_DATA Remarks/Usage: None Example:

Unable to allocate memory or access the data provided. One of the indices in poly is out of the range provided in xyz

feGFXLoad

API-687

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 Set Dim Set n n e e As femap.Node = App.feNode As femap.Elem = 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-688

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: BOOL bAllSets INT4 nSetID Output: None Return Code: FE_FAIL 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 graphics from the display. Example: None Unable to delete entities If True, all entities, in all sets are deleted. If False, then all entities in Set nSetID are deleted The setID to delete if bAllSets=False

feGFXSelect

API-689

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 BOOL bEnableAll The setID to be selected for display If True, then display of User Graphics will be enabled for all active 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. If True, this forces an immediate redraw. Otherwise you will have to redraw later to see your graphics.

BOOL bRedraw Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None

Unable to load selected set.

API-690

feGFXEnableView

3.17.2.2 feGFXEnableView

feGFXEnableView
( bEnableAll, nVuID ) Description: Enables display of User Graphics in one or more selected views. Input: BOOL bEnableAll INT4 nVuID Output: None Return Code: FE_FAIL Remarks/Usage: This method is only needed if you only want to enable display of User Graphics in certain views. To display in every view, simply specify bEnableAll=True when you call "feGFXSelect" (Section 3.17.2.1) to select the data to display. Example: None Unable to load selected set. If True, then display of User Graphics will be enabled for all active views. If False, only the view specified by nVuID will be enabled. The ID of the View to enable. Only used if bEnableAll=False

feGFXReset

API-691

3.17.2.3 feGFXReset

feGFXReset
( void ) Description: Disables display of User Graphics in all views. Input: None Output: None Return Code: FE_FAIL 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 User Graphics not reset.

API-692

feGFXReset

API-693
3.18 File Utility Methods
File Utility Methods include:

Section3.18.1, "feFileGetName" Section3.18.2, "feFileExecute" Section3.18.3, "feFileProgramRun"

API-694

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 STRING filterName STRING filterStr BOOL openForRead Output: STRING fName 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 The name of the file chosen by the user. A text string to be displayed as the title of the dialog box. 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 of the form *.XXX to display all files with an XXX file extension. Use *.* to display all files. If True, the name of an existing file must be selected.

feFileExecute

API-695

3.18.2 feFileExecute feFileExecute


( cmdLine, waitForCompletion ) Description: Allows you to run a program or other object as a separate process. Input: STRING cmdLine BOOL waitForCompletion Output: None Return Code: None Remarks/Usage: None Example: None The full command line used to launch the program. If True, this method will wait until the other process completes before returning. If False, it will return as soon as the process starts.

API-696

feFileProgramRun

3.18.3 feFileProgramRun feFileProgramRun


( useDlg, init, isFile, buff ) Description: This function selects and runs a program file. Input: BOOL useDlg BOOL init BOOL isFile 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. If True, any previously running program file is terminated and other variables are reinitialized. In most cases, this should be True. 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. Either the name or the contents of the program file to run (depends on the isFile parameter).

STRING buff Output: None Return Code: FE_FAIL Remarks/Usage:

The program file could not be run.

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 immediately, 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-697

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 FE_FAIL 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 Program file is still running No program file is running

API-698

feFileCurrentDirectory

3.18.5 feFileCurrentDirectory feFileCurrentDirectory


( sCurrentDir ) Description: This function sets the current directory for a model Input: STRING sCurrentDir Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None The directory specified is not valid The directory to set as current

API-699

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 feDataTable (Section 4.2, "ReadFile Objects") Description Creates a DataTable Object Other Methods

ReadFile Objects
Method feRead (Section 4.2, "ReadFile Objects") Description Creates a ReadFile Object Other Methods

Selector Object
Method feSelector (Section 4.3, "Selector Object") Description Creates a Selector Object Other Methods

API-700
Set Object
Method feSet (Section 4.4, "Set Objects") Description Creates a Set Object Other Methods Group.List

Sort Object
Method feSort (Section 4.5, "Sort Objects") Description Creates a Sort Object Other Methods

API-701

API-702
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 INT4 NumberOfRows INT4 NumberOfColumns INT4 Type Description The number of data rows in the Data Table (Read Only) The number of columns in the Data Table (Read Only) The type of entities being shown in the Data Table. For more information on Entity Types refer to the table in Section 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 they were added to the table, regardless of which rows are displayer or their order. If True, then column indexes reference the columns as currently displayed in the table. If False, they reference the columns as they were added to the table, regardless of which columns are displayer or their order.

BOOL VisibleRowsOnly

BOOL VisibleColsOnly

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 different applications, there are two separate ways to specify those indexes. The choice of these methods 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 (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 visible row or column in the table. If you hide rows or columns, those columns are no longer accessible 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 created, or the top row/left column in the table.

FindRow

API-703

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: INT4 ModelID The ID of the Model to match. ( 0 = Any Model ). This is only necessary 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 necessary for most model entities (like nodes, elements, properties...) which all have SetID = 1 The ID of the entity to match ( 0 = Any ID )

INT4 SetID INT4 ID Output: None Return Code: rowIndex Remarks/Usage:

The index of the row in the Data Table that matches your criteria. If no row matches rowIndex will be negative.

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

API-704

GetRowInfo

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 INT4 ModelID[0..numRows-1] INT4 SetID[0..numRows-1] INT4 ID[0..numRows-1] Return Code: FE_NOT_AVAILABLE FE_NOT_EXIST FE_NO_MEMORY Remarks/Usage: This method can be used to retrieve arrays that indicate all of the entities in the Data Table. If VisibleRowsOnly is True, only information about visible rows is returned. Example: The Data Table is not currently displayed. The Data Table does not contain any data. Can not allocate memory to retrieve info from the Data Table The number of entries in the ModelID, SetID and ID arrays The ID of the Model associated with the entity in each row. The SetID of the entity in the row The ID of the entity in the row.

GetRowVisible

API-705

4.1.3.3 GetRowVisible

GetRowVisible
( nRow, bVisible ) Description: Returns the visibility of a row in the table. Input: INT4 nRow Output: BOOL bVisible Return Code: FE_NOT_AVAILABLE FE_NOT_EXIST Remarks/Usage: None Example: None The Data Table is not currently displayed. The specified row does not exist True if the row is visible, False if hidden The index of the row to query

API-706

SetRowVisible

4.1.3.4 SetRowVisible

SetRowVisible
( nRowOrAll, bVisible ) Description: Sets one or all rows visible or hidden Input: INT4 nRowOrAll BOOL bVisible Output: None Return Code: FE_NOT_AVAILABLE FE_NOT_EXIST Remarks/Usage: None Example: None The Data Table is not currently displayed. The specified row does not exist The index of the row to update (-1=All Rows) True to make the row(s) visible, or False to hide them.

FindColumn

API-707

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 Output: None Return Code: colIndex Remarks/Usage: This function can be used if you do not want to keep track of column indices. Because it returns the column 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 The index of the column in the Data Table that matches your criteria. If no column matches colIndex will be negative. The title of the column to locate

API-708

GetColumnInfo

4.1.4.2 GetColumnInfo

GetColumnInfo
( numColumns, colType, colTitle ) Description: Returns information about all the columns in the table. Input: None Output: INT4 numColumns INT4 colType[0..numColumns1] STRING colTitle[0..numColumns-1] Return Code: FE_NOT_AVAILABLE FE_NOT_EXIST FE_NO_MEMORY Remarks/Usage: This method can be used to retrieve arrays that indicate all of the entities in the Data Table. If VisibleColsOnly is True, only information about visible columns is returned. Example: The Data Table is not currently displayed. The Data Table does not contain any data. Can not allocate memory to retrieve info from the Data Table The number of entries in the colType and colTitle arrays A value indicating the type of data in the column. The titles of the columns

GetColumnVisible

API-709

4.1.4.3 GetColumnVisible

GetColumnVisible
( nColumn, bVisible ) Description: Returns the visibility of a column in the table. Input: INT4 nColumn Output: BOOL bVisible Return Code: FE_NOT_AVAILABLE FE_NOT_EXIST Remarks/Usage: None Example: None The Data Table is not currently displayed. The specified column does not exist True if the column is visible, False if hidden The index of the column to query.

API-710

SetColumnVisible

4.1.4.4 SetColumnVisible

SetColumnVisible
( nColumnOrAll, bVisible ) Description: Sets one or all columns visible or hidden Input: INT4 nColumnOrAll BOOL bVisible Output: None Return Code: FE_NOT_AVAILABLE FE_NOT_EXIST Remarks/Usage: None Example: None The Data Table is not currently displayed. The specified column does not exist The index of the column to update (-1=All Columns) True to make the column(s) visible, or False to hide them.

GetColumnWidth

API-711

4.1.4.5 GetColumnWidth

GetColumnWidth
( nColumn, nWidth ) Description: Returns the width of a column in the table. Input: INT4 nColumn Output: INT4 nWidth Return Code: FE_NOT_AVAILABLE FE_NOT_EXIST Remarks/Usage: None Example: None The Data Table is not currently displayed. The specified column does not exist The width of the column in pixels The index of the column to query.

API-712

SetColumnWidth

4.1.4.6 SetColumnWidth

SetColumnWidth
( nColumnOrAll, nWidth ) Description: Sets the width of one or all columns Input: INT4 nColumnOrAll INT4 nWidth Output: None Return Code: FE_NOT_AVAILABLE FE_NOT_EXIST Remarks/Usage: None Example: None The Data Table is not currently displayed. The specified column does not exist The index of the column to update (-1=All Columns) The width of the columns in pixels

GetColumnTitle

API-713

4.1.4.7 GetColumnTitle

GetColumnTitle
( nColumn, colTitle ) Description: Returns the title of a column in the table. Input: INT4 nColumn Output: STRING colTitle Return Code: FE_NOT_AVAILABLE FE_NOT_EXIST Remarks/Usage: None Example: None The Data Table is not currently displayed. The specified column does not exist The title of the column The index of the column to query.

API-714

SetColumnTitle

4.1.4.8 SetColumnTitle

SetColumnTitle
( nColumn, colTitle ) Description: Sets the title for a column Input: INT4 nColumn STRING colTitle Output: None Return Code: FE_NOT_AVAILABLE FE_NOT_EXIST Remarks/Usage: None Example: None The Data Table is not currently displayed. The specified column does not exist The index of the column to update The title of the column

SetColumnPosition

API-715

4.1.4.9 SetColumnPosition

SetColumnPosition
( nColumn, nNewIndex, bAfter ) Description: Moves the display location of a column in the Data Table Input: INT4 nColumn INT4 nNewIndex BOOL bAfter Output: None Return Code: FE_NOT_AVAILABLE FE_NOT_EXIST FE_FAIL Remarks/Usage: This method will automatically make the specified column that you are moving visible - even if it is not currently. Example: None The Data Table is not currently displayed. The specified column does not exist Not able to move column to the requested location The index of the column to update The index of the new location in the table. The column is moved to the left of this location. If True, the nColumn is placed after the nNewIndex column, otherwise it is placed before that column

API-716

SetColumnAlignment

4.1.4.10 SetColumnAlignment

SetColumnAlignment
( nColumn, nAlign ) Description: Updates the alignment of data in the selected column(s) Input: INT4 nColumnOrAll INT4 nAlign Output: None Return Code: FE_NOT_AVAILABLE FE_NOT_EXIST Remarks/Usage: None Example: None The Data Table is not currently displayed. The specified column does not exist The index of the column to update ( -1 = All Columns ) The data alignment (0=Left, 1=Center, 2=Right)

GetColumnValue

API-717

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 INT4 numRowsOrAll INT4 Rows[0..numRowsOrAll1] Output: INT4 numData VARIANT ColumnData Return Code: FE_NOT_AVAILABLE FE_NOT_EXIST FE_NO_MEMORY FE_BAD_TYPE 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: The Data Table is not currently displayed. The Data Table does not contain any data. Can not allocate memory to retrieve info from the Data Table The selected column contains a type of data that is not supported by this method. The number of items returned in ColumnData The data recovered from Column nColumn and the selected rows. Depending on the type of data contained in the column, this could be an array of booleans, integers, doubles or strings. The index of a column to query The number of entries in the Rows array, or -1 to retrieve data from all rows The indices of the rows to query

API-718

( nColumn, numRowsOrAll, Rows, numData, ColumnData )

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

GetColumnText

API-719

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 INT4 numRowsOrAll INT4 Rows[0..numRowsOrAll1] Output: INT4 numData STRING ColumnText[0..numData-1] Return Code: FE_NOT_AVAILABLE FE_NOT_EXIST FE_NO_MEMORY FE_BAD_TYPE Remarks/Usage: This method is identical to GetColumnValue, except that it always returns the data as a text string. Example: None The Data Table is not currently displayed. The Data Table does not contain any data. Can not allocate memory to retrieve info from the Data Table The selected column contains a type of data that is not supported by this method. The number of items returned in ColumnData The data recovered from Column nColumn and the selected rows. This method always retrieves the text that is displayed, rather than numeric values. For columns displaying check boxes, the string returned is 1 if the box is on, and 0 if it is off. The index of a column to query The number of entries in the Rows array, or -1 to retrieve data from all rows The indices of the rows to query

API-720

GetRowValues

4.1.5.3 GetRowValues

GetRowValues
( numRowsOrAll, Rows, numData, RowData ) Description: This method returns data from all columns for selected rows Input: INT4 numRowsOrAll INT4 Rows[0..numRowsOrAll1] 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 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. The number of entries in the Rows array, or -1 to retrieve data from all rows The indices of the rows to query

VARIANT RowData

Return Code: FE_NOT_AVAILABLE FE_NOT_EXIST FE_NO_MEMORY FE_BAD_TYPE 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: The Data Table is not currently displayed. The Data Table does not contain any data. Can not allocate memory to retrieve info from the Data Table The selected column contains a type of data that is not supported by this method.

( numRowsOrAll, Rows, numData, RowData )

API-721

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

API-722

AddColumn

4.1.5.4 AddColumn

AddColumn
( bClear, bHidden, entityType, entitySetID, colTitle, colType, nRows, ID, Value, nNewColumnID ) Description: This method creates a new column in the Data Table and adds data to it. Input: BOOL bClear BOOL bHidden INT4 entityType If True, all previously existing data in the Data Table is deleted. 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 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 match any Set ID or use the default for new rows. The title for the column - must be unique among all existing columns The type of column to create (0=Bool/Check Box, 1=Integer, 2=Real, 3=String). Boolean arrays will create a column that is displayed as Check Boxes (checked on if True). 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 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 on the option you specify in colType, the variant must contain either a Boolean, Integer, Double or String array.

INT4 entitySetID STRING colTitle INT4 colType INT4 nRows

INT4 ID[0..nRows-1]

VARIANT Value

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 matter how VisibleColsOnly is set. If VisibleColsOnly=False, this number can be used to access the column.

INT4 nNewColumnID

Return Code: FE_NOT_AVAILABLE FE_SECURITY The Data Table is not currently displayed. The Data Table is locked and can not be updated.

( bClear, bHidden, entityType, entitySetID, colTitle, colType, nRows, ID, Value, nNewColumnID )

AddColumn
( bClear, bHidden, entityType, entitySetID, colTitle, colType, nRows, ID, Value, nNewColumnID ) FE_INVALID FE_FAIL FE_BAD_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: The colTitle is invalid. It is either zero length or matches an existing column. Unable to add column. The Value Array has an invalid type

API-724
AddColumn

( bClear, bHidden, entityType, entitySetID, colTitle, colType, nRows, ID, Value,

( bClear, bHidden, entityType, entitySetID, colTitle, colType, nRows, ID, Value, nNewColumnID ) 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 Dim Dim Dim newi newc newx newt As As As As Long Long Long 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

UpdateColumnByID

API-725

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 INT4 entitySetID INT4 colType INT4 nRows Index of the column to update The Set ID associated with these values being updated. Can be 0 to match any Set ID or use the default for new rows. The type of data being updated (0=Bool/Check Box, 1=Integer, 2=Real, 3=String). 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 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 on the option you specify in colType, the variant must contain either a Boolean, Integer, Double or String array.

INT4 ID[0..nRows-1]

VARIANT Value

Output: None Return Code: FE_NOT_AVAILABLE FE_SECURITY FE_FAIL FE_BAD_TYPE Remarks/Usage: None Example: None The Data Table is not currently displayed. The Data Table is locked and can not be updated. Unable to update column. The Value Array has an invalid type

API-726

UpdateColumn

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 INT4 colType INT4 nRows INT4 Rows[0..nRows-1] Index of the column to update The type of data being updated (0=Bool/Check Box, 1=Integer, 2=Real, 3=String). The number of entries in the ID and Value arrays. 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 on the option you specify in colType, the variant must contain either a Boolean, Integer, Double or String array.

VARIANT Value

Output: None Return Code: FE_NOT_AVAILABLE FE_SECURITY FE_FAIL FE_BAD_TYPE Remarks/Usage: This method is similar to UpdateColumnByID except that it cannot add additional rows to the table. Example: None The Data Table is not currently displayed. The Data Table is locked and can not be updated. Unable to update column. The Value Array has an invalid type

AddEntityData

API-727

4.1.5.7 AddEntityData

AddEntityData
( bClear, entityType, entitySetID, entityIDSet ) Description: This method adds entity data to the Data Table Input: BOOL bClear INT4 entityType If True, all previously existing data in the Data Table is deleted. The type of entities being added to the Data Table. 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 use the default Set ID. The ID of a Set object that contains the IDs of the entities to add. If entityIDSet is negative, then just a single entity is added whose id is the absolute value of entityIDSet

INT4 entitySetID

INT4 entityIDSet Output: None Return Code: FE_NOT_AVAILABLE FE_SECURITY FE_FAIL Remarks/Usage: None Example:

The Data Table is not currently displayed. The Data Table is locked and can not be updated. Unable to add entities

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

API-728

AddOutput

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 INT4 nOutputVector Output: INT4 nNewColumnID Return Code: FE_NOT_AVAILABLE FE_SECURITY FE_NOT_EXIST FE_FAIL 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 components, 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: The Data Table is not currently displayed, or does not contain rows with Nodes/Elements. The Data Table is locked and can not be updated. The selected Output Set/Output Vector does not exist. Unable to add entities The column ID of the column that is created. The Output Set that contains the data to add. The ID of the Output Vector that contains the data to add.

AddMassProperties

API-729

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 FE_SECURITY FE_BAD_TYPE 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 The Data Table is not currently displayed. The Data Table is locked and can not be updated. Invalid entity type or no data in the Data Table

API-730

AddElementChecks

4.1.5.10 AddElementChecks

AddElementChecks
( void ) Description: Adds element checks to the existing entities in the table Input: None Output: None Return Code: FE_NOT_AVAILABLE FE_SECURITY FE_BAD_TYPE Remarks/Usage: This method simply calls the Add Element Checks command from the Data Table toolbar. The Data Table must contain one or more Elements. Example: None The Data Table is not currently displayed. The Data Table is locked and can not be updated. Invalid entity type or no data in the Data Table

AddMeshAssociativity

API-731

4.1.5.11 AddMeshAssociativity

AddMeshAssociativity
( void ) Description: Adds mesh associativity data to the existing entities in the table Input: None Output: None Return Code: FE_NOT_AVAILABLE FE_SECURITY FE_BAD_TYPE 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 The Data Table is not currently displayed. The Data Table is locked and can not be updated. Invalid entity type or no data in the Data Table

API-732

SetTextColor

4.1.5.12 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 INT4 numRows INT4 Rows[0..numRows-1] INT4 nRed INT4 nGreen INT4 nBlue Output: None Return Code: FE_NOT_AVAILABLE FE_FAIL Remarks/Usage: None Example: None The Data Table is not currently displayed. Unable to update Data Table The index of the column to update The number of entries in th Rows array The indices of the rows to update The Red level (0-255) The Green level (0-255) The Blue level (0-255)

SetBackgroundColor

API-733

4.1.5.13 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 INT4 numRows INT4 Rows[0..numRows-1] INT4 nRed INT4 nGreen INT4 nBlue Output: None Return Code: FE_NOT_AVAILABLE FE_FAIL Remarks/Usage: None Example: None The Data Table is not currently displayed. Unable to update Data Table The index of the column to update The number of entries in th Rows array The indices of the rows to update The Red level (0-255) The Green level (0-255) The Blue level (0-255)

API-734

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 BOOL bShowInGroupOnly BOOL bSortAscending Output: None Return Code: FE_NOT_AVAILABLE FE_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 The Data Table is not currently displayed. The selected column does not exist The index of a column to add to Grouping If True, the column is removed from being visible in the table, and is only visible in grouping and the group headers. If False, the column is still used for grouping, but is also visible in the table. True=Sort in Ascending order, False=Descending order

ClearGroup

API-735

4.1.6.2 ClearGroup

ClearGroup
( void ) Description: This method removes any grouping order Input: None Output: None Return Code: FE_NOT_AVAILABLE Remarks/Usage: None Example: None The Data Table is not currently displayed.

API-736

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 INT4 Columns[0..numColumns-1] Return Code: FE_NOT_AVAILABLE FE_NOT_EXIST FE_BAD_TYPE Remarks/Usage: None Example: None The Data Table is not currently displayed. No grouping columns exist VisibleColsOnly is True. This method is only available when VisibleColsOnly is False because grouped/sorted columns do not need to be visible. The number of columns in the grouping order The indices of the grouping columns

ShowGroup

API-737

4.1.6.4 ShowGroup

ShowGroup
( bVisible ) Description: This method shows and hides the Group By header Input: BOOL bVisible Output: None Return Code: FE_NOT_AVAILABLE Remarks/Usage: None Example: None The Data Table is not currently displayed. True = Show Header, False = Hide Header

API-738

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 BOOL bSortAscending Output: None Return Code: FE_NOT_AVAILABLE FE_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 The Data Table is not currently displayed. The selected column does not exist The index of a column to sort by True=Sort in Ascending order, False=Descending order

ClearSort

API-739

4.1.7.2 ClearSort

ClearSort
( void ) Description: This method removes any sorting order Input: None Output: None Return Code: FE_NOT_AVAILABLE Remarks/Usage: None Example: None The Data Table is not currently displayed.

API-740
4.1.7.3 GetSort

GetSort

GetSort
( numColumns, Columns ) Description: This method retrieves the indices of all columns used for sorting Input: None Output: INT4 numColumns INT4 Columns[0..numColumns-1] Return Code: FE_NOT_AVAILABLE FE_NOT_EXIST FE_BAD_TYPE Remarks/Usage: None Example: None The Data Table is not currently displayed. No sorting columns exist VisibleColsOnly is True. This method is only available when VisibleColsOnly is False because grouped/sorted columns do not need to be visible. The number of columns in the sorting order The indices of the sorting columns

AddSelection

API-741

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 INT4 Rows[0..numRows-1] BOOL bSelect Output: None Return Code: FE_NOT_AVAILABLE Remarks/Usage: This method can be used multiple times to add additional rows to the selection. Example: None The Data Table is not currently displayed. The number of entries in the Rows array The indices of the rows to select/deselect True = Select, False = Deselect Rows

API-742

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 Remarks/Usage: None Example: None The Data Table is not currently displayed.

GetSelection

API-743

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 INT4 Rows[0..numRows-1] Return Code: FE_NOT_AVAILABLE Remarks/Usage: None Example: None The Data Table is not currently displayed. The number of rows in the selection The indices of the selected rows

API-744

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 Output: None Return Code: FE_NOT_AVAILABLE Remarks/Usage: None Example: None The Data Table is not currently displayed. True = Lock, False = Unlock the Data Table

Copy

API-745

4.1.9.2 Copy

Copy
( bCopyAll ) Description: This method copies the contents of the Data Table to the clipboard Input: BOOL bCopyAll Output: None Return Code: FE_NOT_AVAILABLE Remarks/Usage: None Example: None The Data Table is not currently displayed. True = Copy entire Data Table, False = Copy only selected rows (and header)

API-746
4.1.9.3 Save

Save

Save
( bCopyAll, fName, nFormat ) Description: This method copies the contents of the Data Table to a file. Input: BOOL bCopyAll STRING fName INT4 nFormat Output: None Return Code: FE_NOT_AVAILABLE Remarks/Usage: None Example: None The Data Table is not currently displayed. True = Copy entire Data Table, False = Copy only selected rows (and header) The name of the file that you want to create The format that you want to use when creating the file (0=Tab Delimitted Text, 1=Comma-Separated Text, 2=Rich Text Format - RTF)

Clear

API-747

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 FE_SECURITY Remarks/Usage: None Example: None The Data Table is not currently displayed. The Data Table is locked and can not be updated.

API-748

DeleteRows

4.1.9.5 DeleteRows

DeleteRows
( numRows, Rows ) Description: This method deletes specified rows from the Data Table Input: INT4 numRows INT4 Rows[0..numRows-1] Output: None Return Code: FE_NOT_AVAILABLE FE_SECURITY Remarks/Usage: None Example: None The Data Table is not currently displayed. The Data Table is locked and can not be updated. The number of entries in the Rows array The indices of the rows to delete

Show

API-749

4.1.9.6 Show

Show
( bShowAll ) Description: This method shows (draws) the specified contents of the Data Table Input: BOOL bShowAll Output: None Return Code: FE_NOT_AVAILABLE Remarks/Usage: None Example: None The Data Table is not currently displayed. True = Show all visible Rows, False = Show only selected rows

API-750
4.1.9.7 Print

Print

Print
( void ) Description: This method prints the visible contents of the Data Table Input: None Output: None Return Code: FE_NOT_AVAILABLE FE_NOT_EXIST Remarks/Usage: None Example: None The Data Table is not currently displayed. There are no rows in the Data Table

API-751
4.2 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 Windows 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.2.1 ReadFile Object Properties


Property STRING line[0..max_length] BOOL truncated BOOL shared Description The current line of text that was read from the file. The maximum length is established when you open the file. True if any line that has been read to that point was longer than the maximum length that you specified and was truncated. 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. 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. Set to True prior to calling Open if you want the file to be opened for exclusive access.

BOOL shareddelete

BOOL Exclusive

API-752

Open

4.2.2 ReadFile Object Methods


4.2.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. Longer lines may exist in the file, but they will simply be truncated at this length.

INT4 maxLineLength

Output: None Return Code: FE_FAIL FE_NO_MEMORY Remarks/Usage: You must call this function prior to reading from a file. You should always call Close when you are finished. Example: None Unable to open the file. Unable to allocate memory for file buffering.

Read

API-753

4.2.2.2 Read

Read
( void ) Description: This function reads a line from an open file. Input: None Output: None Return Code: FE_FAIL Remarks/Usage: This function reads the next line from the open file. The text from that line (without any carriage control) 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 Unable to read from the file

API-754
4.2.2.3 AtEOF

AtEOF

AtEOF
( void ) Description: This function indicates whether you have reached the end of the file. Input: None Output: None Return Code: FE_OK FE_FAIL 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 At the end of the file. You should stop reading. Not at the end of the file; there is more data to be read.

Close

API-755

4.2.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

API-756
4.2.2.5 Position

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 Remarks/Usage: This function can be used with Jump to reposition to a specific file location for rereading. Example: None The current file location.

Jump

API-757

4.2.2.6 Jump

Jump
( jumpto ) Description: This function repositions the location in the file where the next read will occur. Input: INT4 jumpto Output: None Return Code: None Remarks/Usage: You should only specify jumpto as a value that you previously retrieved from a call to Position. Computing numbers yourself is prone to error because of handling of carriage control. Example: None The position to start reading. This position is the offset from the first byte in the file. Setting jumpto=0 positions to the beginning of the file

API-758

JumpToEnd

4.2.2.7 JumpToEnd

JumpToEnd
( jumpto ) Description: This function repositions the location in the file where the next read will occur. Input: INT4 jumpto Output: None Return Code: None Remarks/Usage: You should only specify jumpto as a value that you previously retrieved from a call to Position. Computing numbers yourself is prone to error because of handling of carriage control. Example: None The position to start reading. This position is the offset from the last byte in the file. Setting jumpto=0 positions to the end of the file

Size

API-759

4.2.2.8 Size

Size
( nSize ) Description: This function returns the size of the file in bytes. Input: INT8 nSize Output: None Return Code: FE_FAIL Remarks/Usage: Note that the file size is an 8-byte integer - this allows support for files over 4 GByte. Example: None Unable to retrieve file size. The size of the file.

API-760

TimeCreated

4.2.2.9 TimeCreated

TimeCreated
( nTime ) Description: Returns the time that the file was created. Input: INT8 nTime Output: None Return Code: FE_FAIL Remarks/Usage: Note that the file size is an 8-byte integer. Example: None Unable to retrieve file information. The time the file was created.

TimeWritten

API-761

4.2.2.10 TimeWritten

TimeWritten
( nTime ) Description: Returns the time that the file was written. Input: INT8 nTime Output: None Return Code: FE_FAIL Remarks/Usage: Note that the file size is an 8-byte integer. Example: None Unable to retrieve file information. The time the file was written.

API-762

TimeAccessed

4.2.2.11 TimeAccessed

TimeAccessed
( nTime ) Description: Returns the time that the file was accessed. Input: INT8 nTime Output: None Return Code: FE_FAIL Remarks/Usage: Note that the file size is an 8-byte integer. Example: None Unable to retrieve file information. The time the file was accessed.

Skipped

API-763

4.2.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 FE_FAIL 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 One or more lines were skipped. No lines were skipped.

API-764

ShowStatus

4.2.2.13 ShowStatus

ShowStatus
( on ) Description: Turn on or off the status bar in FEMAP during the read. Input: BOOL on Output: None Return Code: None Remarks/Usage: None Example: None If True, the Status bar will be displayed showing the reading progress. If False, no Status bar will be displayed.

SetNoBlankLines

API-765

4.2.2.14 SetNoBlankLines

SetNoBlankLines
( on ) Description: Indicate whether or not to read blank lines. Input: BOOL on 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 If True, blank lines will be skipped.

API-766

SetNoShortLines

4.2.2.15 SetNoShortLines

SetNoShortLines
( on, minLineLength ) Description: Indicate whether or not to read lines that are shorter than a specified length. Input: BOOL on INT4 minLineLength Output: None Return Code: None Remarks/Usage: None Example: None If True, short lines will be skipped. If on=True, lines shorter than this length will be skipped.

SetTrimSpace

API-767

4.2.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 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 character and before the last non-white space character) is not deleted. Example: None If True, white space will be trimmed.

API-768

SetTrimEndSpace

4.2.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 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 If True, trailing white space will be trimmed.

SetTrimFront

API-769

4.2.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 INT4 numChar Output: None Return Code: None Remarks/Usage: Turning this on trims numChar from the front of every line. Example: None If True, leading characters will be trimmed. The number of characters to trim, regardless of content.

API-770

SetUppercase

4.2.2.19 SetUppercase

SetUppercase
( on ) Description: Returns all text in uppercase. Input: BOOL on Output: None Return Code: None Remarks/Usage: None Example: None If True, all text will be returned in uppercase.

SetSkip

API-771

4.2.2.20 SetSkip

SetSkip
( on ) Description: Indicates that lines containing the search strings are to be skipped. Input: BOOL on 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 If True, all lines that contain the search strings are skipped.

API-772

SetSearch

4.2.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 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 If True, all lines that do not contain the search strings are skipped.

SetSearchString

API-773

4.2.2.22 SetSearchString

SetSearchString
( mainStr, orStr ) Description: Searches for lines containing the specified strings. Input: STRING mainStr STRING orStr Output: None Return Code: FE_FAIL Remarks/Usage: This method can be called up to five times before reading to search for multiple strings. Example: None More than five search string pairs have been specified. The primary search string. A second alternate string which could be on the line instead of mainStr. This should normally be specified as a blank string to just use the primary search string.

API-774

SetSkipAfterSearch

4.2.2.23 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 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 The number of lines to skip.

SetFormFeed

API-775

4.2.2.24 SetFormFeed

SetFormFeed
( on ) Description: Indicates that Form Feed (FF) characters should be treated as end-of-line carriage control. Input: BOOL on 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 If True, FF characters will also end a line.

API-776

SetTabSize

4.2.2.25 SetTabSize

SetTabSize
( tabsize ) Description: Specifies the number of spaces to convert tab characters into. Input: INT4 tabsize 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 The number of spaces to convert into.

LineInit

API-777

4.2.2.26 LineInit

LineInit
( maxLineLength ) Description: Used to initialize the necessary properties required for line parsing if you are not reading a file. Input: INT4 maxLineLength 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 capabilities, all of that will be handled automatically. If, however, you just want to use the parsing/field capabilities 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 The maximum length of line that you will be parsing.

API-778

Reparse

4.2.2.27 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-779

4.2.2.28 FixedFormat

FixedFormat
( numField, width ) Description: Used to specify the number of fields and field widths for a fixed format read. Input: INT4 numField INT4 width[0..numField-1] Output: None Return Code: None Remarks/Usage: None Example: None The number of fields to parse from the line. Must be between 1 and 50. The widths, in characters, of the fields to parse.

API-780

SetFixedFormat

4.2.2.29 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-781

4.2.2.30 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. Multiple spaces do not. Example: None

API-782

SetAutoFormat

4.2.2.31 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 format is used. Example: None

Field

API-783

4.2.2.32 Field

Field
( fieldID ) Description: Parses the current line and returns the indicated field as a text string. Input: INT4 fieldID Output: None Return Value STRING field Remarks/Usage: None Example: None The text in the selected field. The ID of the field on the line (1..N).

API-784

IntField

4.2.2.33 IntField

IntField
( fieldID, defaultValue ) Description: Parses the current line and returns the indicated field as an integer. Input: INT4 fieldID INT4 defaultValue Output: None Return Code: INT4 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 An integer representation of the text in the field The ID of the field on the line (1..N). If the selected field is blank, the return value will be this value.

RealField

API-785

4.2.2.34 RealField

RealField
( fieldID, defaultValue ) Description: Parses the current line and returns the indicated field as a real number. Input: INT4 fieldID REAL8 defaultValue Output: None Return Code: REAL8 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 An real number representation of the text in the field. The ID of the field on the line (1..N). If the selected field is blank, the return value will be this value.

API-786

BoolField

4.2.2.35 BoolField

BoolField
( fieldID, defaultValue ) Description: Parses the current line and returns the indicated field as a boolean value. Input: INT4 fieldID BOOL defaultValue Output: None Return Code: BOOL field Remarks/Usage: This function will interpret either 1, y, or yes as True, and 0, n or no as False. Example: None An Boolean representation of the text in the field. The ID of the field on the line (1..N). If the selected field is blank, the return value will be this value.

BoolField

API-787

API-788
4.3 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.3.1 Selector Object Properties


Property BOOL MultipleMode BOOL AddMode INT4 DrillMode Description If True, the selector will be in Select Multiple mode, otherwise it will be in Select Single Item mode If True, the selector will be in Add to Selection mode, otherwise it will be in Remove From Selection mode 0=Drill Off (normal selection mode), 1=Drill Query, 2=Drill Front If True, then when an entity is selected, all related entities will also be selected (for example, selecting an element will also select its nodes, properties, materials...) The entity type that is being selected. If True, the selector is active, otherwise it is inactive.

BOOL RelatedMode INT4 SelectEntity BOOL Active

ClearAll

API-789

4.3.2 Selector Object Methods


There following methods are available.
4.3.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-790
4.3.2.2 Clear

Clear

Clear
( entityType ) Description: This method clears all entities of the specified type from the Selector Input: INT4 entityType Output: None Return Code: None Remarks/Usage: None Example: The entity type to remove from the selector.

Count

API-791

4.3.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 Output: INT4 nSelected Return Code: None Remarks/Usage: None Example: The number of entityType entities that are currently selected. The entity type to query

API-792

SelectBox

4.3.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-793

4.3.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-794

SelectPolygon

4.3.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-795

4.3.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-796
4.3.2.8 Grow

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-797

4.3.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-798
4.3.2.10 Show

Show

Show
( bShowAll ) Description: This method shows the current selection Input: BOOL bShowAll Output: None Return Code: None Remarks/Usage: None Example: If True, all selected entities are shown. If False, only those of the active type (specified by the SelectEntity property) are shown.

SaveGroup

API-799

4.3.2.11 SaveGroup

SaveGroup
( groupID ) Description: This method saves the current selection as a group Input: INT4 groupID Output: None Return Code: FE_FAIL Remarks/Usage: None Example: Unable to create group from selection The ID of the group to create

API-800

LoadGroup

4.3.2.12 LoadGroup

LoadGroup
( groupID ) Description: This method adds the specified group to the selection Input: INT4 groupID Output: None Return Code: FE_FAIL Remarks/Usage: This Method automatically enables Multiple Mode. It does not clear the current selection before adding the group. Example: Unable to load the group The ID of the group to load

UpdateDataTable

API-801

4.3.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-802
4.3.2.14 Add

Add

Add
( entityType, ID ) Description: This method adds an entity to the selector. Input: INT4 entityType INT4 ID Output: None Return Code: None Remarks/Usage: None Example: The type of entity to add. The ID of the entity of entityType to add

AddSet

API-803

4.3.2.15 AddSet

AddSet
( entityType, nSetID, bUpdateDataTable ) Description: This method adds multiple entities to the selector. Input: INT4 entityType INT4 nSetID BOOL bUpdateDataTable Output: None Return Code: None Remarks/Usage: None Example: The type of entity to add. The ID of a Set object that contains the list of IDs of the entities to add. If True, the selected entities are automatically added to the Data Table.

API-804

GetSelected

4.3.2.16 GetSelected

GetSelected
( entityType ) Description: This method creates and returns a Set object that containst the IDs of all entities of a specified type that are currently selected. Input: INT4 entityType Output: None Return Code: None Remarks/Usage: The Set object is returned in place of the return code. Example: The type of entity that will be queried.

Copy

API-805

4.3.2.17 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:

API-806
4.3.2.18 Paste

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 command/method. Example:

API-807
4.4 Set Objects
The Set object is used to contain lists of IDs. Sets, once created, can be passed to many other functions 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. Use the feSet method of the FEMAP Application object to create Set objects.

4.4.1 Set Object Properties


Property INT4 ID Description 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. Default=False. Set to True if you want the selection set to persist after the object is destroyed. If you set this option, you can reload the selection set as long as you remember the ID. 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

BOOL Save

INT4 CurrentID

API-808

Add

4.4.2 Set Object Methods


4.4.2.1 Add

Add
( id ) Description: This function adds an ID into a selection set. Input: INT4 id Output: None Return Code: FE_FAIL 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 ID specifies an invalid value. ID to add to the selection set.

AddRange

API-809

4.4.2.2 AddRange

AddRange
( startID, stopID, increment ) Description: This function adds a range of IDs into a selection set. Input: INT4 startID INT4 stopID INT4 increment Output: None Return Code: FE_FAIL Remarks/Usage: This is just like the Add Method, but it can be used to add multiple IDs in one call. Example: None ID specifies an invalid value. The first ID to add to the selection set. The last ID to add to the selection set. The ID increment between startID and stopID. Must be a positive number.

API-810

AddEntitiesOnLayer

4.4.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: INT4 laySET The setID that contains the layers to include. Specify a negative number to include entities on a single layer. The type of entities being included into the set. Only those entities that reference a layer in laySET will be included. For entity information, see Section 3.3.6, "Entity Types"

INT4 entityTYPE Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None

Unable to include entities

AddSet

API-811

4.4.2.4 AddSet

AddSet
( addID ) Description: This function adds all of the selected IDs from another set into the current set. Input: INT4 addID Output: None Return Code: FE_FAIL 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 Unable to add into the specified set. ID of the selection set containing IDs to add. Accessed from the ID property of the set.

API-812

AddSetRule

4.4.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: INT4 addID INT4 ruleID Output: None Return Code: FE_FAIL FE_NOT_EXIST 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 Not able to create the requested selection set. Either the addID selection set was empty, or there was a problem processing it. The selection set where the IDs will be found. The interpretation of these IDs depends on the type of rule that you select. ID of a selection rule. For more information, see Section 4.4.2.7, "Group Selection Rules".

AddRule

API-813

4.4.2.6 AddRule

AddRule
( id, ruleID ) Description: This function adds to a selection set by using one of the standard group selection rules. Input: INT4 id INT4 ruleID Output: None Return Code: FE_FAIL 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 Not able to create the requested selection set. The ID that you are specifying. The interpretation of this value depends on the type of rule that you select. ID of a selection rule. For more information, see Section 4.4.2.7, "Group Selection Rules".

API-814

Group Selection Rules

4.4.2.7 Group Selection Rules

Group Selection Rules


Rule Type FGD_CSys_byDefCSys FGD_CSys_byType FGD_Point_ID FGD_Point_byDefCSys FGD_Point_onCurve FGD_Curve_ID FGD_Curve_byPoint FGD_Curve_onSurface FGD_Surface_ID FGD_Surface_byCurve FGD_Surface_onVolume FGD_Volume_ID FGD_Volume_bySurface FGD_Text_ID FGD_Boundary_ID FGD_Boundary_byCurve FGD_Node_ID FGD_Node_byDefCSys FGD_Node_byOutCSys FGD_Node_onElem FGD_Elem_ID FGD_Elem_byMatl FGD_Elem_byProp FGD_Elem_byType FGD_Elem_byNode FGD_Matl_ID FGD_Matl_onProp Selects Coordinate Systems Coordinate Systems Points Points Points Curves Curves Curves Surfaces Surfaces Surfaces Volumes Volumes Texts Boundaries Boundaries Nodes Nodes Nodes Nodes Elements Elements Elements Elements Elements Materials Materials Which... have selected definition coordinate system have the type: 0=Rect, 1=Cyl, 2=Sph you choose - just matches the ID have selected definition coordinate system are referenced on the curve ID you choose - just matches the ID are attached to the point ID are referenced on the surface ID you choose - just matches the ID are attached to the curve ID are referenced on the volume ID you choose - just matches the ID are attached to the surface ID you choose - just matches the ID you choose - just matches the ID are attached to the surface ID you choose - just matches the ID have selected definition coordinate system have selected output coordinate system are referenced on the element ID you choose - just matches the ID use the material ID use the property ID have the element type reference the node ID you choose - just matches the ID are used by the property ID

Group Selection Rules

API-815

Group Selection Rules


Rule Type FGD_Matl_onElem FGD_Matl_byType FGD_Prop_ID FGD_Prop_onElem FGD_Prop_byMatl FGD_Prop_byType FGD_Load_byNode FGD_Load_byElem FGD_BCo_ID FGD_BEq_byNode FGD_Node_atPoint FGD_Node_atCurve FGD_Node_atSurface FGD_Node_atSolid FGD_Elem_atPoint FGD_Elem_atCurve FGD_Elem_atSurface FGD_Elem_atSolid FGD_Load_byPoint FGD_Load_byCurve FGD_Load_bySurface FGD_BCo_byPoint FGD_BCo_byCurve FGD_BCo_bySurface FGD_Text_byColor FGD_Point_byColor FGD_Curve_byColor FGD_Surface_byColor Selects Materials Materials Properties Properties Properties Properties Loads Loads Constraints Constraint Equations Nodes Nodes Nodes Nodes Elements Elements Elements Elements Loads Loads Loads Constraints Constraints Constraints Texts Points Curves Surfaces Which... are used by the element ID have the material type you choose - just matches the ID are used by the elementID reference the material ID have the property type are applied on the node ID are applied on the element ID are applied on the node ID reference the node ID are attached to the point ID are attached to the curve ID are attached to the surface ID are attached to the solid/volume ID are attached to the point ID are attached to the curve ID are attached to the surface ID are attached to the solid/volume ID are applied at the point ID are applied to the curve ID are applied to the surface ID are applied at the point ID are applied to the curve ID are applied to the surface ID are defined with the selected color are defined with the selected color are defined with the selected color are defined with the selected color

API-816

Group Selection Rules

Group Selection Rules


Rule Type FGD_Volume_byColor FGD_Solid_byColor FGD_CSys_byColor FGD_Node_byColor FGD_Elem_byColor FGD_Prop_byColor FGD_Matl_byColor FGD_Text_byLayer FGD_Point_byLayer FGD_Curve_byLayer FGD_Surface_byLayer FGD_Volume_byLayer FGD_Solid_byLayer FGD_CSys_byLayer FGD_Node_byLayer FGD_Elem_byLayer FGD_Prop_byLayer FGD_Matl_byLayer FGD_Solid_ID FGD_Solid_byCurve FGD_Solid_bySurface FGD_Curve_onSolid FGD_Surface_onSolid FGD_Point_byProp FGD_Curve_byProp FGD_Surface_byProp FGD_Volume_byProp FGD_Solid_byProp Selects Volumes Solids Coordinate Systems Nodes Elements Properties Materials Text Points Curves Surfaces Volumes Solids Coordinate Systems Nodes Elements Properties Materials Solids Solids Solids Curves Surfaces Points Curves Surfaces Volumes Solids Which... are defined with the selected color are defined with the selected color are defined with the selected color are defined with the selected color are defined with the selected color are defined with the selected color are defined with the selected color is on the same layer as the entity you select is on the same layer as the entity you select is on the same layer as the entity you select is on the same layer as the entity you select is on the same layer as the entity you select is on the same layer as the entity you select is on the same layer as the entity you select is on the same layer as the entity you select is on the same layer as the entity you select is on the same layer as the entity you select is on the same layer as the entity you select you choose - just matches the ID contain the curve ID contain the surface ID are contained on the solid/volume ID are contained on the solid/volume ID have the property ID as a meshing attribute have the property ID as a meshing attribute have the property ID as a meshing attribute have the property ID as a meshing attribute have the property ID as a meshing attribute

Group Selection Rules

API-817

Group Selection Rules


Rule Type FGD_Contact_ID FGD_Contact_byColor FGD_Contact_byLayer FGD_CSys_onNode FGD_CSys_onPoint FGD_Elem_byShape Selects Contact Segments Contact Segments Contact Segments Coordinate Systems Coordinate Systems Elements Which... you choose - just matches the ID are defined with the selected color is on the same layer as the entity you select which are referenced on the nodeID which are referenced on the point ID which have the selected shape

API-818
4.4.2.8 AddAll

AddAll

AddAll
( entityTYPE ) Description: This function adds the IDs of all existing entities of a selected type into the current selection set. Input: INT4 entityTYPE Output: None Return Code: FE_FAIL Remarks/Usage: All entity IDs are added to the current set. The set is not emptied before this operation. Example: None Unable to add to current set. Type of entity to select. For more information, see Section 3.3.6, "Entity Types".

AddAllExcept

API-819

4.4.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: INT4 entityTYPE INT4 exceptSET Output: None Return Code: FE_FAIL Remarks/Usage: The set is not emptied before this operation. Example: None Unable to add to current set. Type of entity to select. For more information, see Section 3.3.6, "Entity Types". The ID of a set that contains the IDs of entities to not add into this set. Specify a negative number to skip adding a single entity.

API-820

AddCommon

4.4.2.10 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 INT4 set2 Output: None Return Code: FE_FAIL 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 Unable to add IDs to the current set. ID of the first selection set to check. ID of the second selection set to check.

AddNewRemoveCommonSet

API-821

4.4.2.11 AddNewRemoveCommonSet

AddNewRemoveCommonSet
( addID ) Description: This function adds all IDs in addID that are not in the current set, and removes any IDs that are common to both sets Input: INT4 addID Output: None Return Code: FE_FAIL Remarks/Usage: This method implements a boolean XOR of the addID set and the current set. Example: None Unable to add IDs to the current set. ID of the set to combine with the current set

API-822

AddGroup

4.4.2.12 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: INT4 entityTYPE INT4 groupID Output: None Return Code: FE_NOT_EXIST FE_FAIL Remarks/Usage: All entity IDs from the group are added to the current set. The set is not emptied before this operation. Example: None Either the group did not exist, or no entities of the selected type were in the group. Unable to add to current set. Type of entity to select. For more information, see Section 3.3.6, "Entity Types". ID of the group to copy IDs from.

AddArray

API-823

4.4.2.13 AddArray

AddArray
( numID, arrayID ) Description: This function adds an array of IDs into a selection set. Input: INT4 numID INT4 arrayID[0..numID-1] Output: None Return Code: FE_FAIL FE_NO_MEMORY Remarks/Usage: This is just like the Add Method, but it can be used to add multiple IDs in one call. Example: None arrayID not properly defined unable to allocate working memory to add contents of arrayID to set The number of entries in the arrayID array An array of IDs to be added to the selection set.

API-824

AddCoordinate

4.4.2.14 AddCoordinate

AddCoordinate
( 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 information, see Section 3.3.6, "Entity Types". Only Point, Curve, Surface, Boundary, Solid, Volume, Node, Element, Property, Material, Coordinate System, Layup, Text, Connection_Region, Connection and Connection _Prop entity types are valid. The ID of the coordinate system to select in. For Rectangular systems, 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 direction. If True, then the other arguments are used to define the selection. If False, no selections will be done based on that coordinate. 0=Select Above Maximum, 1=Select Below Minimum, 2=Select 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 Maximum. For Select At the coordinate location to select around. The maximum coordinate for most modes. Not used for Below Minimum. For Select At the tolerance around the specified location that the coordinate must fall within to be selected.

INT4 entityTYPE

INT4 nCSysID

BOOL vbXYZ[3]

INT4 vnMode[3]

REAL8 vdMin[3]

REAL8 vdMax[3] Output: None Return Code: FE_FAIL FE_BAD_TYPE Remarks/Usage:

arrays not properly specified not a valid entityTYPE for this method

This works just like the coordinate selection available from the entity selection dialog. Example: None

AddAroundPoint

API-825

4.4.2.15 AddAroundPoint

AddAroundPoint
( entityTYPE, vBase, nMode, dMin, dMax ) Description: This function adds entity IDs into a set as selected by their proximit to a specified location Input: The type of entities being included into the set. For entity information, see Section 3.3.6, "Entity Types". Only Point, Curve, Surface, Boundary, Solid, Volume, Node, Element, Property, Material, Coordinate System, Layup, Text, Connection_Region, Connection and Connection _Prop entity types are valid. The coordinates, in Global Rectangular coordinates, of the point to search around for selections. 0=Select Above Maximum (Farther Than), 1=Select Below Minimum (Closer Than), 2=Select 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 Maximum. For Select At the coordinate location to select around. The maximum coordinate for most modes. Not used for Below Minimum. For Select At the tolerance around the specified location that the coordinate must fall within to be selected.

INT4 entityTYPE

REAL8 vBase[3]

INT4 nMode

REAL8 dMin

REAL8 dMax Output: None Return Code: FE_FAIL FE_BAD_TYPE Remarks/Usage:

arrays not properly specified not a valid entityTYPE for this method

This works just like the Around Point coordinate selection available from the entity selection dialog. Example: None

API-826

AddAroundVector

4.4.2.16 AddAroundVector

AddAroundVector
( entityTYPE, vBase, vVec, nMode, dMin, dMax ) Description: This function adds entity IDs into a set as selected by their proximit to a specified vector Input: The type of entities being included into the set. For entity information, see Section 3.3.6, "Entity Types". Only Point, Curve, Surface, Boundary, Solid, Volume, Node, Element, Property, Material, Coordinate System, Layup, Text, Connection_Region, Connection and Connection _Prop entity types are valid. The coordinates, in Global Rectangular coordinates, of the base of the vector around which to search for selections. The components, in Global Rectangular coordinates, of the vector around which to search for selections. 0=Select Above Maximum (Farther Than), 1=Select Below Minimum (Closer Than), 2=Select 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 Maximum. For Select At the coordinate location to select around. The maximum coordinate for most modes. Not used for Below Minimum. For Select At the tolerance around the specified location that the coordinate must fall within to be selected.

INT4 entityTYPE

REAL8 vBase[3] REAL8 vVec[3]

INT4 nMode

REAL8 dMin

REAL8 dMax Output: None Return Code: FE_FAIL FE_BAD_TYPE Remarks/Usage:

arrays not properly specified not a valid entityTYPE for this method

This works just like the Around Vector coordinate selection available from the entity selection dialog. Example: None

AddAroundPlane

API-827

4.4.2.17 AddAroundPlane

AddAroundPlane
( entityTYPE, vBase, vVec, nMode, dMin, dMax ) Description: This function adds entity IDs into a set as selected by their proximit to a specified plane Input: The type of entities being included into the set. For entity information, see Section 3.3.6, "Entity Types". Only Point, Curve, Surface, Boundary, Solid, Volume, Node, Element, Property, Material, Coordinate System, Layup, Text, Connection_Region, Connection and Connection _Prop entity types are valid. The coordinates, in Global Rectangular coordinates, of a point on the plane around which to search for selections. The components, in Global Rectangular coordinates, of the normal to the plane around which to search for selections. 0=Select Above Maximum (Positive Side), 1=Select Below Minimum (Negative Side), 2=Select 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 Maximum. For Select At the coordinate location to select around. The maximum coordinate for most modes. Not used for Below Minimum. For Select At the tolerance around the specified location that the coordinate must fall within to be selected.

INT4 entityTYPE

REAL8 vBase[3] REAL8 vVec[3]

INT4 nMode

REAL8 dMin

REAL8 dMax Output: None Return Code: FE_FAIL FE_BAD_TYPE Remarks/Usage:

arrays not properly specified not a valid entityTYPE for this method

This works just like the Around Plane coordinate selection available from the entity selection dialog. Example: None

API-828

AddNodesOnGeometry

4.4.2.18 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 INT4 entityID BOOL bClear BOOL bFullTree BOOL bBoundaryOnly Output: None Return Code: FE_FAIL FE_NOT_EXIST FE_NO_MEMORY Remarks/Usage: If bClear is false this method can be called multiple times to build up an accumulated list. Example: None Unable to return nodes, possibly none exist. No nodes were attached to the entity in the manner you selected. Insufficient memory to allocate list of attached nodes. The type of entity to find attached nodes. ID of entity to find attached nodes. Flag to clear the set before adding nodes. If True, the nodes attached to the sub entities are also included ( Solid = Surf,Curve,Point: Surf=Curve,Point: Curve=Point ) Flag to only include nodes at the boundary of the entity.

AddAllTitle

API-829

4.4.2.19 AddAllTitle

AddAllTitle
( entityTYPE, nSetID, sFind ) Description: This function adds the selected entities which have matching titles. Input: INT4 entityTYPE The type of entity to add. The entity type must have a title to be valid for this method. Normally this should be 1. For specific set-based types such as Load 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 found anywhere in the title, that entity ID will be added to the set. Comparisons are not case sensitive.

INT4 nSetID

STRING sFind Output: None Return Code: FE_INVALID FE_NOT_EXIST Remarks/Usage: None Example: None

You specified a blank string to match No entities were found that matched the string you supplied.

API-830

AddAllColor

4.4.2.20 AddAllColor

AddAllColor
( entityTYPE, nSetID, nColor, nColorMatch ) Description: This function adds the selected entities which match a specified color. Input: INT4 entityTYPE The type of entity to add. The entity type must have a color to be valid for this method. Normally this should be 1. For specific set-based types such as the 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, linestyle and pattern/transparency Any combination of 1=Match Color only, 2=Match Pattern only, 4=Match Linestyle only. So 3=Match Color & Pattern, 6=Pattern & Linestyle, 5=Color & Linestyle, 7=Match All

INT4 nSetID

INT32 nColor

INT32 nColorMatch Output: None Return Code: FE_NOT_EXIST Remarks/Usage: None Example: None

No entities were found that matched the color you supplied.

AddMidsideNodes

API-831

4.4.2.21 AddMidsideNodes

AddMidsideNodes
( setID ) Description: This function adds the midside nodes that are on selected elements Input: INT4 setID Output: None Return Code: FE_NOT_EXIST Remarks/Usage: None Example: None No midside nodes were found on the elements that you specified. The ID of a Set object that contains the elements that reference the midside nodes to add. Alternatively, if you specify a negative value, this is simply the ID of the single element.

API-832

IsAdded

4.4.2.22 IsAdded

IsAdded
( id ) Description: This function checks to see if an ID is currently added into a selection set. Input: INT4 id Output: None Return Code: FE_OK FE_FAIL 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 ID is added into the selection set. ID is not added into the selection set. ID to check.

IsSetAdded

API-833

4.4.2.23 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 INT4 arrayID[0..numID-1] Output: None Return Code: FE_OK FE_FAIL Remarks/Usage: None Example: None All IDs in the array are in the current Set At least one ID from the array is not in the current Set The number of IDs in the array The array containing IDs to check to see if they are in the current Set

API-834

IsSetAdded

4.4.2.24 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 Output: None Return Code: FE_OK FE_FAIL Remarks/Usage: None Example: None All IDs in nSetID are in the current Set At least one ID from nSetID is not in the current Set The ID of the Set to check to see if all IDs are in this Set

Select

API-835

4.4.2.25 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: INT4 entityTYPE Type of entity to select. For more information, see Section 3.3.6, "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 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 give the user more information about what is being selected.

BOOL clear

STRING title Output: None Return Code: FE_CANCEL FE_NOT_EXIST Remarks/Usage:

The user cancelled the selection. No entities of the selected type exist. None were selected and the dialog box was not displayed. If clear=True, the selection set will be empty.

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 Cancel to close the dialog, then the set contains whatever it contained before, unless clear=True, in which case it contains nothing. Example: None

API-836

SelectID

4.4.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 selection set. Input: INT4 entityTYPE STRING title Output: INT4 ID Return Code: FE_CANCEL FE_NOT_EXIST 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 The user cancelled the selection. No entities of the selected type exist. None were selected and the dialog box was not displayed. If clear=True, the selection set will be empty. The ID of the entity that was selected. Type of entity to select. For more information, see Section 3.3.6, "Entity Types". A text string that will be added to the title bar of the dialog box to give the user more information about what is being selected.

SelectIDInSet

API-837

4.4.2.27 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: INT4 entityTYPE STRING title Type of entity to select. For more information, see Section 3.3.6, "Entity Types". A text string that will be added to the title bar of the dialog box to give the user more information about what is being selected. Select the entity from the specified SetID - for example an Output Vector from a specific Output Set, or a Load or Constraint Definition from a specific Load or Constraint Set

INT4 nInSetID Output: INT4 ID Return Code: FE_CANCEL FE_NOT_EXIST Remarks/Usage:

The ID of the entity that was selected.

The user cancelled the selection. No entities of the selected type exist. None were selected and the dialog box was not displayed. If clear=True, the selection set will be empty.

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-838

SelectMultiID

4.4.2.28 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: INT4 entityTYPE Type of entity to select. For more information, see Section 3.3.6, "Entity Types". The setID associated with the entities you want to select. For most 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 give the user more information about what is being selected.

INT4 entitySET

STRING title Output: None Return Code: FE_CANCEL Remarks/Usage:

The user cancelled the selection.

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

SelectOutputVectorID

API-839

4.4.2.29 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: STRING title INT4 outsetID INT4 limitOutputType A text string that will be added to the title bar of the dialog box to give the user more information about what is being selected. The ID of the Output Set containing the list of possible vectors to select. Reduces list of output vectors shown to the specified type (0=All, 1=Disp, 2=Accel, 3=Force, 4=Stress, 5=Strain, 6=Temp) Reduces list of output vectors shown based on type of real or complex data they contain (0=Magnitude, 1=Phase, 2=Real, 3=Imaginary, 4=Any) Reduces list of output vectors to those containing data on the specified entity type If True, output vectors at element corners will also be included

INT4 limitComplex

INT4 limitToEntity BOOL allowCorner Output: INT4 selID Return Code: FE_CANCEL FE_NOT_EXIST Remarks/Usage: None Example: None

The ID of the selected output vector.

The user cancelled the selection. No output vectors existed in the specified output set.

API-840

SelectList

4.4.2.30 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 INT4 entityTYPE Output: None Return Code: FE_CANCEL Remarks/Usage: The dialog box that is displayed by this method automatically closes when nNumEntity entities have been selected. Example: None The user cancelled the selection. Number of entities to be selected. Type of entity to select. For more information, see Section 3.3.6, "Entity Types".

Clear

API-841

4.4.2.31 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

API-842

Remove

4.4.2.32 Remove

Remove
( id ) Description: This function removes an ID from a selection set. Input: INT4 id Output: None Return Code: FE_FAIL 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 ID specifies an invalid value. ID to remove from the selection set.

RemoveRange

API-843

4.4.2.33 RemoveRange

RemoveRange
( startID, stopID, increment ) Description: This function removes a range of IDs from a selection set. Input: INT4 startID INT4 stopID INT4 increment Output: None Return Code: FE_FAIL Remarks/Usage: This is just like the Remove Method, but it can be used to remove multiple IDs in one call. Example: None ID specifies an invalid value. The first ID to remove from the selection set. The last ID to remove from the selection set. The ID increment between startID and stopID. Must be a positive number.

API-844

RemoveArray

4.4.2.34 RemoveArray

RemoveArray
( nNumID, arrayID ) Description: This function removes a list of IDs specified in an array from a selection set. Input: INT4 nNumID INT4 arrayID[0..nNumID-1] Output: None Return Code: FE_FAIL FE_NO_MEMORY Remarks/Usage: This is just like the Remove Method, but it can be used to remove multiple IDs in one call. Example: None Unable to retrieve specified number of IDs from array. Unable to process the array. The number of IDs in the array to be removed The array of IDs to be removed

RemoveSet

API-845

4.4.2.35 RemoveSet

RemoveSet
( removeID ) Description: This function removes all of the selected IDs in another set from the current set. Input: INT4 removeID Output: None Return Code: FE_FAIL 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 Unable to remove IDs from the specified set. ID of the selection set containing the IDs to remove.

API-846

RemoveNotCommon

4.4.2.36 RemoveNotCommon

RemoveNotCommon
( nSetID ) Description: This function removes any IDs that are not in both the current Set and the specified Set Input: INT4 nSetID Output: None Return Code: FE_FAIL 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 during this command - only the current set is updated. Example: None Unable to remove IDs from the specified set. ID of a Set that is checked for IDs that are common to the current Set

RemoveNotCommonToGroup

API-847

4.4.2.37 RemoveNotCommonToGroup

RemoveNotCommonToGroup
( entityType, groupID ) Description: This function removes any IDs that are not in both the current Set and the specified Group Input: INT4 entityTYPE INT4 groupID Output: None Return Code: FE_FAIL FE_NOT_EXIST 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 Unable to remove IDs from the specified set. There are no entities of the selected type in the Group The type of entities in the Group being tested. For entity information, see Section 3.3.6, "Entity Types" The ID of the group to test

API-848

RemoveGroup

4.4.2.38 RemoveGroup

RemoveGroup
( entityType, groupID ) Description: This function removes any IDs that are in a Group Input: INT4 entityTYPE INT4 groupID Output: None Return Code: FE_FAIL FE_NOT_EXIST 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 Unable to remove IDs from the specified set. There are no entities of the selected type in the Group The type of entities in the Group being tested. For entity information, see Section 3.3.6, "Entity Types" The ID of the group to test

RemoveInternalCurves

API-849

4.4.2.39 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

API-850

HasCommon

4.4.2.40 HasCommon

HasCommon
( nSetID ) Description: This function checks to see if there are any common IDs between two Sets Input: INT4 nSetID Output: None Return Code: FE_OK FE_FAIL Remarks/Usage: Neither Set is changed by this method, it simply looks for the same ID in both Sets. Example: None Common IDs exist between the two Sets There are no common IDs in the Sets. The ID of the Set to check for common IDs with the current Set

Reload

API-851

4.4.2.41 Reload

Reload
( oldSet ) Description: This function reloads a saved selection set. Input: INT4 oldSet Output: None Return Code: FE_FAIL 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. Example: None The oldSet selection set does not exist or is empty. The ID of the selection set to reload. This ID can be determined by querying the ID property of a set.

API-852
4.4.2.42 Reset

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-853

4.4.2.43 Next

Next
( void ) Description: This function returns the next selected ID in a selection set Input: None Output: None Return Code: Any Positive Number FE_FAIL 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 The next selected ID. No additional IDs were selected.

API-854
4.4.2.44 NextID

NextID

NextID
( void ) Description: This function returns the next selected ID in a selection set. Input: None Output: None Return Code: Any Positive Number FE_FAIL 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 The next selected ID. No additional IDs were selected.

First

API-855

4.4.2.45 First

First
( void ) Description: This function returns the first selected ID in a selection set. Input: None Output: None Return Code: Any Positive Number FE_FAIL 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 The first selected ID. No IDs were selected.

API-856
4.4.2.46 Last

Last

Last
( void ) Description: This function returns the last selected ID in a selection set. Input: None Output: None Return Code: Any Positive Number FE_FAIL Remarks/Usage: The last ID is the highest number, not the last entity added to the set. Example: None The last selected ID. No IDs were selected.

Match

API-857

4.4.2.47 Match

Match
( setID ) Description: This function tests to see if the contents of set setID match the current set. Input: INT4 setID Output: None Return Code: FE_FAIL Remarks/Usage: To match, the two sets must include all of the same IDs. Example: None Sets do not match. ID of the set to compare to this set.

API-858
4.4.2.48 Copy

Copy

Copy
( origID ) Description: This function makes a duplicate copy of a selection set. Input: INT4 origID Output: None Return Code: FE_FAIL 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 Unable to create the specified set. ID of the selection set to duplicate.

CopyToClipboard

API-859

4.4.2.49 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 clipboard in the format startID, stopID, increment on each line. stopID is zero if a single ID is selected in this format.

BOOL bAsList

Output: None Return Code: None Remarks/Usage: None Example: None

API-860
4.4.2.50 Count

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 Remarks/Usage: This function simply looks at each of the selected IDs and counts the number that it finds. Example: None The number of IDs in the set.

DeleteAll

API-861

4.4.2.51 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

API-862

GetArray

4.4.2.52 GetArray

GetArray
( numID, arrayID ) Description: This function adds an array of IDs into a selection set. Input: None Output: INT4 numID INT4 arrayID[0..numID-1] Return Code: FE_NOT_EXIST FE_NO_MEMORY Remarks/Usage: None Example: None No IDs are in the set Unable to allocate working memory to retrieve contents of set The number of entries in the set The array of all IDs in the set.

ConvertToAllCurves

API-863

4.4.2.53 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 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 Expanded Set

API-864

ConvertToCombinedCurves

4.4.2.54 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 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 Expanded Set

ConvertToCombinedCurvesOnly

API-865

4.4.2.55 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 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 Expanded Set

API-866

ConvertToInternalCurves

4.4.2.56 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 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 Expanded Set

ConvertToAllSurfaces

API-867

4.4.2.57 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 Remarks/Usage: If any Combined Surfaces are in the Set, then all surfaces used to define them are also added. If any Surfaces used to define Combined Surfaces are in the Set, then those Combined Surfaces are also added. Example: None Expanded Set

API-868

ConvertToBoundarySurfaces

4.4.2.58 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 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 Expanded Set

ConvertToBoundarySurfacesOnly

API-869

4.4.2.59 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 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 Expanded Set

API-870

ConvertToInternalSurfaces

4.4.2.60 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 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 Expanded Set

Debug

API-871

4.4.2.61 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-872

Debug

API-873
4.5 Sort Objects
The Sort object is similar to the Set object, in that it is used to contain lists of IDs. This object however 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.5.1 Sort Object Properties


Property INT4 ID REAL8 dReal1 REAL8 dReal2 REAL8 dReal3 INT4 nInt1 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" Integer Values associated with an entry in the object Description The internal ID of the object. Real Values associated with an entry in the object

API-874

Add

4.5.2 Sort Object Methods


4.5.2.1 Add

Add
( id ) Description: This function adds an ID into a sort object. Input: INT4 id Output: None Return Code: FE_FAIL FE_NOT_AVAILABLE 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 properties 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 ID specifies an invalid value or memory can not be allocated for additional IDs. ID has already been added into object. IDs can only be added once. ID to add to the sort object.

AddReal

API-875

4.5.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 REAL8 dReal1 REAL8 dReal2 REAL8 dReal3 Output: None Return Code: FE_FAIL FE_NOT_AVAILABLE 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 ID specifies an invalid value or memory can not be allocated for additional IDs. ID has already been added into object. IDs can only be added once. Real properties to associate with ID ID to add to the sort object.

API-876
4.5.2.3 AddInt

AddInt

AddInt
( id, nInt1, nInt2, nInt3 ) Description: This function adds an ID and associated integer properties into a sort object. Input: INT4 id INT4 nInt1 INT4 nInt2 INT4 nInt3 Output: None Return Code: FE_FAIL FE_NOT_AVAILABLE 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 ID specifies an invalid value or memory can not be allocated for additional IDs. ID has already been added into object. IDs can only be added once. Integer properties to associate with ID ID to add to the sort object.

AddAll

API-877

4.5.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 REAL8 dReal1 REAL8 dReal2 REAL8 dReal3 INT4 nInt1 INT4 nInt2 INT4 nInt3 INT4 eDataType Output: None Return Code: FE_FAIL FE_NOT_AVAILABLE 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 ID specifies an invalid value or memory can not be allocated for additional IDs. ID has already been added into object. IDs can only be added once. Entity Type that is associated with an entry in the object. For possible values, refer to Section 3.3.6, "Entity Types" Integer properties to associate with ID Real properties to associate with ID ID to add to the sort object.

API-878
4.5.2.5 SetData

SetData

SetData
( id, dReal1, dReal2, dReal3, nInt1, nInt2, nInt3, eDataType ) Description: This function updates the properties associated with an already added ID. Input: INT4 id REAL8 dReal1 REAL8 dReal2 REAL8 dReal3 INT4 nInt1 INT4 nInt2 INT4 nInt3 INT4 eDataType Output: None Return Code: FE_FAIL 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 The specified ID could not be found in the object. Entity Type that is associated with an entry in the object. For possible values, refer to Section 3.3.6, "Entity Types" Integer properties to associate with ID Real properties to associate with ID ID to update in the sort object. This ID must have been already added to the object.

GetData

API-879

4.5.2.6 GetData

GetData
( id, dReal1, dReal2, dReal3, nInt1, nInt2, nInt3, eDataType ) Description: This function retrieves the properties associated with an already added ID. Input: INT4 id Output: REAL8 dReal1 REAL8 dReal2 REAL8 dReal3 INT4 nInt1 INT4 nInt2 INT4 nInt3 INT4 eDataType Return Code: FE_FAIL Remarks/Usage: None Example: None The specified ID could not be found in the object. Entity Type that is associated with an entry in the object. For possible values, refer to Section 3.3.6, "Entity Types" Integer properties associated with ID Real properties associated with ID ID to update in the sort object. This ID must have been already added to the object.

API-880
4.5.2.7 Find

Find

Find
( id ) Description: This function locates an ID within the object. Input: INT4 id Output: None Return Code: FE_FAIL FE_NOT_AVAILABLE Remarks/Usage: If the ID is found, the dRealX, nIntX and eDataType properties are all updated to match those associated with the ID. Example: None The specified ID could not be found in the object. ID specifies an invalid value. ID to locate

Remove

API-881

4.5.2.8 Remove

Remove
( id ) Description: This function removes an ID from a sort object. Input: INT4 id Output: None Return Code: FE_NOT_AVAILABLE Remarks/Usage: None Example: None ID specifies an invalid value. ID to remove from the sort object.

API-882

RemoveSet

4.5.2.9 RemoveSet

RemoveSet
( id ) Description: This function removes all of the selected IDs in another sort object from the current sort object. Input: INT4 id Output: None Return Code: FE_NOT_AVAILABLE Remarks/Usage: None Example: None Unable to remove IDs from the specified sort set. ID of the sort set containing the IDs to remove.

IsAdded

API-883

4.5.2.10 IsAdded

IsAdded
( id ) Description: This function checks to see if an ID is currently added into a sort object. Input: INT4 id Output: None Return Code: FE_OK FE_FAIL Remarks/Usage: None Example: None ID is added into the sort object. ID is not added into the sort object. ID to check.

API-884
4.5.2.11 Clear

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-885

4.5.2.12 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-886
4.5.2.13 Next

Next

Next
( void ) Description: This function returns the next selected ID in a sort object. Input: None Output: None Return Code: Any Positive Number FE_FAIL 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 values associated with that ID. Example: None The next ID. No additional IDs were available.

Prev

API-887

4.5.2.14 Prev

Prev
( void ) Description: This function returns the previous selected ID in a sort object. Input: None Output: None Return Code: Any Positive Number FE_FAIL 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 values associated with that ID. Example: None The previous ID. No additional IDs were available.

API-888

Current

4.5.2.15 Current

Current
( void ) Description: This function returns the currently selected ID in a sort object. Input: None Output: None Return Code: Any Positive Number FE_FAIL 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 The current ID. No ID was available.

First

API-889

4.5.2.16 First

First
( void ) Description: This function returns the first ID in a sort object. Input: None Output: None Return Code: Any Positive Number FE_FAIL 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 values associated with that ID. Example: None The first ID. No IDs were available.

API-890
4.5.2.17 Last

Last

Last
( void ) Description: This function returns the last selected ID in a sort object. Input: None Output: None Return Code: Any Positive Number FE_FAIL 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 values associated with that ID. Example: None The last ID. No IDs were available.

Count

API-891

4.5.2.18 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 Remarks/Usage: This function simply looks at each of the selected IDs and counts the number that it finds. Example: None The number of IDs in the object.

API-892
4.5.2.19 Select

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: INT4 entityTYPE BOOL reload STRING title Output: None Return Code: FE_CANCEL FE_NOT_EXIST 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 The user cancelled the selection. No entities of the selected type exist. None were selected and the dialog box was not displayed. If clear=True, the sort object will be empty. Type of entity to select. For more information, see Section 3.3.6, "Entity Types". If True, previously selected IDs will be 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 give the user more information about what is being selected.

SelectID

API-893

4.5.2.20 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: INT4 entityTYPE STRING title Output: INT4 ID Return Code: FE_CANCEL FE_NOT_EXIST 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 The user cancelled the selection. No entities of the selected type exist. None were selected and the dialog box was not displayed. If clear=True, the sort object will be empty. The ID of the entity that was selected. Type of entity to select. For more information, see Section 3.3.6, "Entity Types". A text string that will be added to the title bar of the dialog box to give the user more information about what is being selected.

API-894

SelectList

4.5.2.21 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 INT4 entityTYPE Output: None Return Code: FE_CANCEL Remarks/Usage: The dialog box automatically closes when nNumEntity entities have been selected. Example: None The user cancelled the selection. Number of entities to be selected. Type of entity to select. For more information, see Section 3.3.6, "Entity Types".

Sort

API-895

4.5.2.22 Sort

Sort
( bSortReal ) Description: This function sorts the IDs in the object based on values associated with each ID Input: BOOL bSortReal Output: None Return Code: FE_FAIL 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 No IDs are available for sorting If True, the IDs are sorted based on the dRealX values, if False, the sort is based on the nIntX values.

API-896

SortRemoveDuplicates

4.5.2.23 SortRemoveDuplicates

SortRemoveDuplicates
( bSortReal ) Description: This function is the same as Sort( ) except it also removes duplicate entries from the sorted object, leaving just one of each unique entry. Input: BOOL bSortReal Output: None Return Code: FE_FAIL 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 No IDs are available for sorting If True, the IDs are sorted based on the dRealX values, if False, the sort is based on the nIntX values.

ConvertToBoundarySurfaces

API-897

4.5.2.24 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 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 surfaces not used to define Combined Surfaces are not changed in the Sort Set. Example: None Expanded Set

API-898
4.6 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 eliminates 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 importantly, however, data stored in UserData objects is supported through the FEMAP Undo/Redo system. 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.6.1 UserData Object Properties


Property STRING title[0..159] Description 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. The current size, in bytes, of the data stored in this object. The internal ID of the Data object. This ID is assigned when you Put and Get the object. Another name for ID

INT4 size INT4 ID INT4 setID

Get

API-899

4.6.2 UserData Object Methods


4.6.2.1 Get

Get
( entID ) Description: Loads a data object that was previously stored with this entID. Input: INT4 entID Output: None Return Code: FE_NOT_EXIST FE_NO_MEMORY Remarks/Usage: You must call this function, or GetTitle( ), to reload objects that have been stored in the model. Example: None Unable to load the data object. Either it does not exist, or there is no data in it. Unable to allocate memory for data buffering. The entity ID of the data object that will be loaded.

API-900
4.6.2.2 GetTitle

GetTitle

GetTitle
( title ) Description: Loads a data object that was previously stored with this title. Input: STRING title[0..159] Output: None Return Code: FE_NOT_EXIST FE_NO_MEMORY 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 Unable to load the data object. Either it does not exist, or there is no data in it. Unable to allocate memory for data buffering. The title of the object to load.

Put

API-901

4.6.2.3 Put

Put
( entID ) Description: Stores data from the current data object. Input: INT4 entID Output: None Return Code: FE_FAIL 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 supported by Undo/Redo. Example: None Unable to store the data object. The ID of the object to store.

API-902
4.6.2.4 PutTitle

PutTitle

PutTitle
( title ) Description: Stores data from the current data object. Input: STRING title[0..159] Output: None Return Code: FE_FAIL 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 supported by Undo/Redo. Example: None Unable to store the data object. The title of the object to store.

Clear

API-903

4.6.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

API-904
4.6.2.6 Reset

Reset

Reset
( void ) Description: This method resets the Next pointer so that the next call to Next will return the first (lowest ID) UserData. 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

Next

API-905

4.6.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 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 No additional entities were found.

API-906
4.6.2.8 Prev

Prev

Prev
( void ) Description: This method retrieves the next available UserData with a smaller ID. Input: None Output: None Return Code: FE_FAIL 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 No additional entities were found.

First

API-907

4.6.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 Remarks/Usage: Calling this method is like calling Reset, followed by Next. Example: None No entities exist, or unable to load.

API-908
4.6.2.10 Last

Last

Last
( void ) Description: This method loads the last (with the highest ID) available UserData. Input: None Output: None Return Code: FE_FAIL Remarks/Usage: Calling this method is like calling Reset, followed by Prev. Example: None No entities exist, or unable to load.

NextSet

API-909

4.6.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 Remarks/Usage: If no more sets are found, setID remains unchanged. This method finds the next set with a higher ID. Example: None No more sets available.

API-910

PrevSet

4.6.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 Remarks/Usage: If no more sets are found, setID remains unchanged. This method finds the next UserData with a lower ID. Example: None No more sets available.

NextEmptySet

API-911

4.6.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 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 No more sets available.

API-912

PrevEmptySet

4.6.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 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 No more sets available.

Exist

API-913

4.6.2.15 Exist

Exist
( id ) Description: This method checks to see if a specific UserData exists Input: INT4 id Output: None Return Code: FE_FAIL 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 The selected entity does not exist. The ID of the UserData to check.

API-914

Deletable

4.6.2.16 Deletable

Deletable
( id ) Description: This method checks to see if a specific UserData is deletable Input: INT4 id Output: None Return Code: None Remarks/Usage: This method is currently not used. It will always return FE_OK. Example: None The ID of the UserData to check.

Delete

API-915

4.6.2.17 Delete

Delete
( entID ) Description: Deletes the data object from the database with the specified ID. Input: INT4 entID Output: None Return Code: FE_FAIL 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 Unable to delete the data object. The ID of the object to delete.

API-916

DeleteTitle

4.6.2.18 DeleteTitle

DeleteTitle
( title ) Description: Deletes the data object from the database with the specified title. Input: STRING title[0..159] Output: None Return Code: FE_FAIL 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 Unable to delete the data object. The title of the object to delete.

Position

API-917

4.6.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 Remarks/Usage: This function can be used with Jump to reposition to a specific object location for rereading or rewriting. Example: None The current data object location.

API-918
4.6.2.20 Jump

Jump

Jump
( jumpto ) Description: Repositions the location in the data object where the next read or write will occur. Input: INT4 jumpto Output: None Return Code: FE_FAIL Remarks/Usage: You should only specify jumpto as a value that you previously retrieved from a call to Position. Computing numbers yourself is prone to error because of extra data need to store arrays and certain data types. Example: None Unable to move to the specified location. Position must be less than the total size of data in the object. The position to move to. Specify jumpto=-1 to move to the end of the object, or jumpto=0 to move to the beginning of the object.

AtEOF

API-919

4.6.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: FE_OK FE_FAIL Remarks/Usage: You can use this check to determine when you reach the end of the data in an object. Example: None At the end of the object. If you are reading from the object, you should stop at this point. Writes will append to the object. Not at the end of the object. You can continue reading. Writes will overwrite previous data.

API-920

Truncate

4.6.2.22 Truncate

Truncate
( position ) Description: Deletes all data in an object after the specified position. Input: INT4 position Output: None Return Code: FE_FAIL 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) following this method. Example: None Unable to truncate, position probably not between 0 and the size of data in the object. The position to truncate the data in the object. Essentially the size of the data in the remaining object.

WriteDouble

API-921

4.6.2.23 WriteDouble

WriteDouble
( val ) Description: Writes a single double value to the current object. Input: REAL8 val Output: None Return Code: FE_NO_MEMORY FE_INVALID 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 Unable to allocate enough memory to add the specified value. Invalid size for the data specified. The value to add to the current object.

API-922

WriteFloat

4.6.2.24 WriteFloat

WriteFloat
( val ) Description: Writes a single float value to the current object. Input: REAL4 val Output: None Return Code: FE_NO_MEMORY FE_INVALID 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 Unable to allocate enough memory to add the specified value. Invalid size for the data specified. The value to add to the current object.

WriteLong

API-923

4.6.2.25 WriteLong

WriteLong
( val ) Description: Writes a single long value to the current object. Input: INT4 val Output: None Return Code: FE_NO_MEMORY FE_INVALID 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 Unable to allocate enough memory to add the specified value. Invalid size for the data specified. The value to add to the current object.

API-924

WriteShort

4.6.2.26 WriteShort

WriteShort
( val ) Description: Writes a single short value to the current object. Input: INT2 val Output: None Return Code: FE_NO_MEMORY FE_INVALID 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 Unable to allocate enough memory to add the specified value. Invalid size for the data specified. The value to add to the current object.

WriteBool

API-925

4.6.2.27 WriteBool

WriteBool
( val ) Description: Writes a single bool value to the current object. Input: BOOL val Output: None Return Code: FE_NO_MEMORY FE_INVALID 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 Unable to allocate enough memory to add the specified value. Invalid size for the data specified. The value to add to the current object.

API-926

WriteDoubleArray

4.6.2.28 WriteDoubleArray

WriteDoubleArray
( num, val ) Description: Writes an array of double values to the current object. Input: INT4 num REAL8 val[0..num-1] Output: None Return Code: FE_TOO_SMALL FE_BAD_TYPE FE_NO_MEMORY FE_INVALID 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 The array that you specified is not large enough for the number of entries that you specified. The type of data in the array that you passed is not of the type required for this method. Unable to allocate enough memory to add the specified value. Invalid size for the data specified. The number of entries in the val array that you want to write. The values to add to the current object.

WriteLongArray

API-927

4.6.2.29 WriteLongArray

WriteLongArray
( num, val ) Description: Writes an array of long values to the current object. Input: INT4 num INT4 val[0..num-1] Output: None Return Code: FE_TOO_SMALL FE_BAD_TYPE FE_NO_MEMORY FE_INVALID 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 The array that you specified is not large enough for the number of entries that you specified. The type of data in the array that you passed is not of the type required for this method. Unable to allocate enough memory to add the specified value. Invalid size for the data specified. The number of entries in the val array that you want to write. The values to add to the current object.

API-928

WriteBoolArray

4.6.2.30 WriteBoolArray

WriteBoolArray
( num, val ) Description: Writes an array of bool values to the current object. Input: INT4 num BOOL val[0..num-1] Output: None Return Code: FE_TOO_SMALL FE_BAD_TYPE FE_NO_MEMORY FE_INVALID 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 The array that you specified is not large enough for the number of entries that you specified. The type of data in the array that you passed is not of the type required for this method. Unable to allocate enough memory to add the specified value. Invalid size for the data specified. The number of entries in the val array that you want to write. The values to add to the current object.

WriteString

API-929

4.6.2.31 WriteString

WriteString
( val ) Description: Writes a character string to the current object. Input: STRING val[0..length] Output: None Return Code: FE_NO_MEMORY FE_INVALID 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 Unable to allocate enough memory to add the specified value. Invalid size for the data specified. The string to add to the current object.

API-930

ReadDouble

4.6.2.32 ReadDouble

ReadDouble
( val ) Description: Reads a single double value from the current object. Input: None Output: REAL8 val Return Code: FE_NOT_AVAILABLE FE_INVALID 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 relocated before the data). Example: None There is not enough data left in the object to read, from the current position. Invalid size for the data specified. The value to read from the current object

ReadFloat

API-931

4.6.2.33 ReadFloat

ReadFloat
( val ) Description: Reads a single float value from the current object. Input: None Output: REAL4 val Return Code: FE_NOT_AVAILABLE FE_INVALID 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 relocated before the data). Example: None There is not enough data left in the object to read, from the current position. Invalid size for the data specified. The value to read from the current object.

API-932

ReadLong

4.6.2.34 ReadLong

ReadLong
( val ) Description: Reads a single long value from the current object. Input: None Output: INT4 val Return Code: FE_NOT_AVAILABLE FE_INVALID 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 relocated before the data). Example: None There is not enough data left in the object to read, from the current position. Invalid size for the data specified. The value to read from the current object.

ReadShort

API-933

4.6.2.35 ReadShort

ReadShort
( val ) Description: Reads a single short value from the current object. Input: None Output: INT2 val Return Code: FE_NOT_AVAILABLE FE_INVALID 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 relocated before the data). Example: None There is not enough data left in the object to read, from the current position. Invalid size for the data specified. The value to read from the current object.

API-934

ReadBool

4.6.2.36 ReadBool

ReadBool
( val ) Description: Reads a single bool value from the current object. Input: None Output: BOOL val Return Code: FE_NOT_AVAILABLE FE_INVALID 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 relocated before the data). Example: None There is not enough data left in the object to read, from the current position. Invalid size for the data specified. The value to read from the current object.

ReadDoubleArray

API-935

4.6.2.37 ReadDoubleArray

ReadDoubleArray
( num, val ) Description: Reads an array of double values from the current object. Input: None Output: INT4 num REAL8 val[0..num-1] Return Code: FE_NOT_AVAILABLE FE_NO_MEMORY FE_INVALID 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 relocated before the data). Example: None There is not enough data left in the object to read, from the current position. Unable to allocate enough memory to read the specified values. Invalid size for the data specified. The number of items in the array that is read. The values from the current object.

API-936

ReadLongArray

4.6.2.38 ReadLongArray

ReadLongArray
( num, val ) Description: Reads an array of long values from the current object. Input: None Output: INT4 num INT4 val[0..num-1] Return Code: FE_NOT_AVAILABLE FE_NO_MEMORY FE_INVALID 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 relocated before the data). Example: None There is not enough data left in the object to read, from the current position. Unable to allocate enough memory to read the specified values. Invalid size for the data specified. The number of items in the array that is read. The values from the current object.

ReadBoolArray

API-937

4.6.2.39 ReadBoolArray

ReadBoolArray
( num, val ) Description: Reads an array of bool values from the current object. Input: None Output: INT4 num BOOL val[0..num-1] Return Code: FE_NOT_AVAILABLE FE_NO_MEMORY FE_INVALID 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 relocated before the data). Example: None There is not enough data left in the object to read, from the current position. Unable to allocate enough memory to read the specified values. Invalid size for the data specified. The number of items in the array that is read. The values from the current object.

API-938

ReadString

4.6.2.40 ReadString

ReadString
( val ) Description: Reads a text string from the current object. Input: None Output: STRING val[0..length] Return Code: FE_NOT_AVAILABLE FE_NO_MEMORY FE_INVALID 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 relocated before the data). Example: None There is not enough data left in the object to read, from the current position. Unable to allocate enough memory to read the specified values. Invalid size for the data specified. The string to read from the current object.

API-939

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 feAnalysisCase (Section 5.2, "AnalysisCase Objects") feAnalysisSet (Section 5.3, "AnalysisSet and AnalysisMgr Objects") feBCDefinition (Section 5.4, "BCDefinition Objects") feBCEqn (Section 5.5, "BCEqn Objects") Description Creates an AnalysisCase Object Creates an AnalysisSet Object Creates a BCDefinition Object Creates a BCEqn Object BCSet.NextBCDef BCSet.NextBC, BCDefinition.NextBC BCSet.NextBC, BCDefinition.NextBC Other Methods AnalysisSet.Case

feBCGeom (Section 5.6, "BCGeom Objects")

Creates a BCGeom Object

API-940
Method feBCNode (Section 5.7, "BCNode Objects") Description Creates a BCNode Object Other Methods BCSet.NextBC, BCDefinition.NextBC

feBCSet (Section 5.8, "BCSet Objects") feConnectionProp (Section 5.9, "Connection Property Objects") feConnectionRegion (Section 5.10, "Connection Region Objects") feConnection (Section 5.11, "Connection Objects") feCSys (Section 5.12, "CSys Objects") feCurve (Section 5.13, "Curve Objects") feDataSurface (Section 5.14, "Data Surface Objects") feElem (Section 5.15, "Element Objects") feFunction (Section 5.16, "Function Objects") feGFXArrow (Section 5.17, "GFXArrow Objects") feGFXLine (Section 5.18, "GFXLine Objects") feGFXPoint (Section 5.19, "GFXPoint Objects") feGFXQuad4 (Section 5.20, "GFXQuad4 Objects") feGFXTria3 (Section 5.21, "GFXTria3 Objects") feGlobalPly (Section 5.22, "GlobalPly Objects") feGroup (Section 5.23, "Group Objects") feLayer (Section 5.24, "Layer Objects") feLayup (Section 5.25, "Layup Objects") feLoadBolt (Section 5.26, "LoadBolt Object") feLoadDefinition (Section 5.27, "LoadDefinition Objects")

Creates a BCSet Object Creates a Connection Property Creates a Connection Region / Contact Object Creates a Connection Creates a CSys Object Creates a Curve Object Creates a Data Surface Object Creates an Element Object Creates a Function Object Creates a GFXArrow Object Creates a GFXLine Object Creates a GFXPoint Object Creates a GFXQuad4 Object Creates a GFXTria3 Object Creates a GlobalPly Object Creates a Group Object Creates a Layer Object Creates a Layup Object Creates a LoadBolt Object Creates a LoadDefinition Object LoadSet.NextLoadDef Prop.Layup Connection.Prop feContact

API-941
Method feLoadETemp (Section 5.28, "LoadETemp Objects") feLoadGeom (Section 5.29, "LoadGeom Objects") feLoadMesh (Section 5.30, "LoadMesh Objects") feLoadNTemp (Section 5.31, "LoadNTemp Objects") feLoadSet (Section 5.32, "LoadSet Objects") feMapOutput (Section 5.33, "MapOutput Objects") feMatl (Section 5.34, "Material Objects") feNode (Section 5.35, "Node Objects") feOptim (Section 5.36, "Optim Objects") feOutput (Section 5.37, "Output Objects") Description Creates a LoadETemp Object Creates a LoadGeom Object Other Methods LoadSet.NextLoad, LoadDefinition.NextLoad LoadSet.NextLoad, LoadDefinition.NextLoad LoadSet.NextLoad, LoadDefinition.NextLoad LoadSet.NextLoad, LoadDefinition.NextLoad

Creates a LoadMesh Object

Creates a LoadNTemp Object Creates a LoadSet Object Creates a MapOutput Object Creates a Material Object Creates a Node Object Creates an Optimization Object Creates an Output Object

Element.Matl, Prop.Matl

Output.Corner, Output.X, Output.Y, Output.Z Output.Vector

feOutputSet (Section 5.38, "OutputSet Objects") fePoint (Section 5.39, "Point Objects") feProp (Section 5.40, "Property Objects") feReport (Section 5.41, "Report Objects") feSolid (Section 5.42, "Solid Objects") feSurface (Section 5.43, "Surface Objects") feText (Section 5.44, "Text Objects") feTMGBC (Section 5.45, "TMGBC Objects") feTMGCtrl (Section 5.46, "TMGCtrl Objects")

Creates an OutputSet Object Creates a Point Object Creates a Property Object Creates a Report Object Creates a Solid/Volume Object Creates a Surface Object Creates a Text Object Creates a TMGBc Object Creates a TMGCtrl Object

Element.Prop

API-942
Method feTMGInt (Section 5.47, "TMGInt Objects") feTMGOpt (Section 5.48, "TMGOpt Objects") feTMGReal (Section 5.49, "TMGReal Objects") feVar (Section 5.50, "Variable Objects") feView (Section 5.51, "View Objects") Description Creates a TMGInt Object Creates a TMGOpt Object Creates a TMGReal Object Creates a Var Object Creates a View Object Other Methods

Other Objects
Method feUserData (Section 4.6, "UserData Objects")
Example of Creating an Object

Description Creates a UserData Object

Other Methods

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. Sub Main Dim App As femap.model Set App = GetObject(, "femap.model") Dim nd As Object Set nd = App.feNode rc nd.x rc 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.

= nd.Get(100) = 50.5 = nd.Put(100)

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 ...

API-943
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-944
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 INT4 ID Description 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. 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. 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.

INT4 SetID

INT4 Active

Get

API-945

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: INT4 id Output: None Return Code: FE_FAIL Remarks/Usage: This method retrieves the data for the selected entity and updates the ID property. Example: None The specified entity does not exist. ID of the entity to retrieve. If you specify id=0, then the current value of the ID property will be used instead.

API-946

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 specify libINDEX = -1, a dialog box will be displayed showing all entities in the library, and will allow the user to select the entity to load.

INT4 libINDEX

Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None This function is only available for entity types that have libraries (Material, Property, View, etc.). If you call this method from another entity type, it will fail.

Put

API-947

5.1.2.3 Put

Put
( id ) Description: This method stores an entity in the model database with the specified ID. Input: INT4 id Output: None Return Code: FE_FAIL 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 Unable to store the entity with the specified ID. The ID of the entity to store. If you specify id=0, then the current value of the ID property will be used instead.

API-948

PutLibrary

5.1.2.4 PutLibrary

PutLibrary
( void ) Description: This method stores an entity in the associated library. Input: None Output: None Return Code: FE_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 This function is only available for entity types that have libraries (Material, Property, View, etc.). If you call this method from another entity type, it will fail.

GetTitleList

API-949

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 INT4 maxID Output: INT4 count INT4 listID[0..count-1] STRING listTITLE[0..count-1] Return Code: FE_FAIL Remarks/Usage: This method is identical to calling GetTitleIDList( False, ....). See that method for more information. Example: This function is only available for entity types that have titles (Material, Property, View, etc.). If you call this method from another entity type, it will fail. The number of entities retrieved. This is the number of entries in listID and listTITLE. The IDs of the available entities. The titles of the available entities. If the entity does not have a title, the string Untitled will be returned. The minimum and maximum entity IDs to retrieve. You can set minID=maxID=0 to retrieve all available entities.

API-950

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: BOOL bIncludeID INT4 minID INT4 maxID Output: INT4 count INT4 listID[0..count-1] STRING listTITLE[0..count-1] Return Code: FE_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: This function is only available for entity types that have titles (Material, Property, View, etc.). If you call this method from another entity type, it will fail. The number of entities retrieved. This is the number of entries in listID and listTITLE. The IDs of the available entities. The titles of the available entities. If the entity does not have a title, the string Untitled will be returned. If True, the titles are in the form ID..title (for example, 1..Steel. If False, only the title, without the ID or separator is returned. The minimum and maximum entity IDs to retrieve. You can set minID=maxID=0 to retrieve all available entities.

GetTitleIDList

API-951

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 Dim Dim Dim Dim rc As Integer Count As Long ID As Variant Title As Variant 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-952

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 Output: None Return Code: ID Remarks/Usage: None Example: This is the ID contained in the string. 0 if the string has the wrong format. This must be a string in the format ID..title

ParseTitleID

API-953

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 Dim Dim Dim Dim rc As Integer Count As Long ID As Variant Title As Variant 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-954
5.1.2.8 Exist

Exist

Exist
( id ) Description: This method checks to see if a specified entity currently exists. Input: INT4 id Output: None Return Code: FE_FAIL 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 The selected entity does not exist. The ID of the entity to check. If you specify id=0, then the current value of the ID property will be used instead.

Deletable

API-955

5.1.2.9 Deletable

Deletable
( id ) Description: This method checks to see if an entity can be deleted. Input: INT4 id Output: None Return Code: FE_FAIL Remarks/Usage: Entities are deletable only if there are no other entities in the model that require them to exist. For example, nodes cannot be deleted until after all elements that reference them have been deleted. Example: None The entity is not deletable. The ID of the entity to check. If you specify id=0, then the current value of the ID property will be used instead.

API-956
5.1.2.10 Delete

Delete

Delete
( id ) Description: This method deletes an entity from the model database. Input: INT4 id Output: None Return Code: FE_OK FE_FAIL Remarks/Usage: Entities are not deletable if there are other entities in the FEMAP model that require them to exist. Certain 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 The entity was deleted. The entity could not be deleted. The ID of the entity to delete. If you specify id=0, then the current value of the ID property will be used instead.

DeleteLibrary

API-957

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 specify libINDEX = -1, a dialog box will be displayed showing all entities in the library, and will allow the user to select the entity to delete.

INT4 libINDEX

Output: None Return Code: FE_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 This function is only available for entity types that have libraries (Material, Property, View, etc.). If you call this method from another entity type, it will fail.

API-958
5.1.2.12 Reset

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-959

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 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 No additional entities were found.

API-960

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: INT4 setID Output: None Return Code: FE_FAIL 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 No additional entities were found. The ID of a Set object that contains the IDs of the entities that you want to iterate through.

Prev

API-961

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 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 No additional entities were found.

API-962
5.1.2.16 First

First

First
( void ) Description: This method loads the first (with the lowest ID) available entity. Input: None Output: None Return Code: FE_FAIL Remarks/Usage: Calling this method is like calling Reset, followed by Next. Example: None No entities exist, or unable to load.

FirstInSet

API-963

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: INT4 setID Output: None Return Code: FE_FAIL Remarks/Usage: Calling this method is like calling Reset, followed by NextInSet() Example: None No entities exist, or unable to load. The ID of the set that contains the entities that you want to iterate through.

API-964
5.1.2.18 Last

Last

Last
( void ) Description: This method loads the last (with the highest ID) available entity. Input: None Output: None Return Code: FE_FAIL Remarks/Usage: Calling this method is like calling Reset, followed by Prev. Example: None No entities exist, or unable to load.

NextSet

API-965

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 Remarks/Usage: If no more sets are found, setID remains unchanged. This method finds the next set with a higher ID. Example: None No more sets available.

API-966

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 Remarks/Usage: If no more sets are found, setID remains unchanged. This method finds the next set with a lower ID. Example: None No more sets available.

NextEmptySet

API-967

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 Remarks/Usage: If no more empty sets are found, setID remains unchanged. This method finds the next set with a higher ID. Example: None No more sets available.

API-968

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 Remarks/Usage: If no more empty sets are found, setID remains unchanged. This method finds the next set with a lower ID. Example: None No more sets available.

NextID

API-969

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: ID 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 If return value is less than or equal to MAX_LABEL, this is the entity that was found. Otherwise, there are no more available entities.

API-970
5.1.2.24 PrevID

PrevID

PrevID
( void ) Description: This method finds the ID of the next available entity with a lower ID. Input: None Output: None Return Code: ID 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 If return value is greater than or equal to 1, this is the entity that was found. Otherwise, there are no more available entities.

NextEmptyID

API-971

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: ID Remarks/Usage: None Example: None If return value is less than or equal to MAX_LABEL, this is the entity ID that was empty. Otherwise, there are no more available empty entities.

API-972

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: ID Remarks/Usage: None Example: None If return value is greater than or equal to 1, this is the entity that was empty. Otherwise, there are no more available empty entities.

SelectID

API-973

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: STRING title Output: None Return Code: FE_CANCEL FE_NOT_EXIST 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 The user cancelled the selection. No entities of the selected type exist. None were selected and the dialog box was not displayed. A text string that will be added to the title bar of the dialog box to give the user more information about what is being selected.

API-974

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 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 setbased entities - like Loads and Constraints - it only counts the entities in the one set, so you must specify which set you want prior to calling this function. Example: None The number of entities of the current type

API-975
5.2 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 AnalysisSet object. This approach has the added advantage of ensuring that the case is from the correct analysis set, and preloading the case data.

5.2.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 AnalysisSet 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 Analysis Case Options STRING CaseTitle[80] INT4 caseID INT4 CaseType INT4 BCSet[15] or VARIANT vBCSet

Description

Title of analysis set (maximum 80 characters). ID of analysis case (Not Available for master, caseID for others). 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, [4]=Master DOF, [5]=Base/Support DOF, [6]=Omit DOF, [7]=QSET DOF, [8]=CSET DOF, [9]=BSET DOF, [10]=Bolt Preloads, others not currently used. 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 Force Balance, [9]=Nodal Kinetic Energy, [15]=Element Force, [16]=Element Stress, [17]=Element Strain, [18]=Element Plastic 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 for ECHO option. Flag to skip standard output for this case.

INT4 Output[30] or VARIANT vOutput

STRING Echo[26] BOOL SkipStandard

API-976
Property INT4 StartText INT4 EndText INT4 Destination INT4 Imaginary INT4 CornerOutput INT4 IntegrationOutput ID of starting text. ID of ending text. Output destination: 0=Default, 1=Print, 2=Post, 3=Print+Post, 4=Punch, 5=Punch+Post. Format for complex output: 0=Magnitude/Phase, 1=Real/Imaginary. Flag to request output at element corners. Flag to request output at element integration points. Description

Analysis Case Options - ABAQUS Specific BOOL AbaHistOn REAL8 AbaHistTimePeriod REAL8 AbaHistInitTimeInc REAL8 AbaHistMinTimeInc REAL8 AbaHistMaxTimeInc INT4 AbaHistEigenvectors REAL8 AbaHistMinFreq REAL8 AbaHistMaxFreq REAL8 AbaHistShiftFreq REAL8 AbaHistScaleFactor INT4 AbaHistOutInterval BOOL AbaHistNonlinGeom BOOL AbaHistLinearPert BOOL AbaHistAutoContact BOOL AbaHistStabilize BOOL AbaHistOutZeroInc INT4 AbaHistStepAmp INT4 AbaHistStepLoad INT4 AbaHistStepConstr INT4 AbaHistAnalysisType Flag indicating ABAQUS History Options have been defined. Time period Initial time increment. Minimum time increment. Maximum time increment. Number of eigenvectors. Dynamic analysis minimum frequency. Dynamic analysis maximum frequency. Dynamic analysis shift frequency. Time step scale factor. Time step number of output intervals. Flag to specify nonlinear geometry. Flag to specify linear perturbation. Flag to specify auto contact. Flag to stabilize contact. Flag to write results for zero time increment. Step amplitude: 0=Default, 1=Step, 2=Ramp. Step loads: 0=New, 1=Modify. Step constraints: 0=New, 1=Modify. Step based analysis type (see Analysis Type property above): 0=Default=Use Analysis Type

Analysis Case Options - ANSYS Specific

API-977
Property BOOL AnsDOFOn BOOL AnsDOFDoSet BOOL AnsDOFAutomatic BOOL AnsDOFNoRotation INT4 AnsDOFSetID INT4 AnsDOFNumber Modal Options BOOL AnsModesOn INT4 AnsModesNumModes REAL8 AnsModesMinFreq REAL8 AnsModesMaxFreq REAL8 AnsModesModalMethod BOOL AnsModesElemResults Heat Transfer Options BOOL AnsHeatOn REAL8 AnsHeatEndTime REAL8 AnsHeatTimeStep INT4 AnsHeatOutputFreq Flag indicating Heat Transfer Options have been defined. Time at end of this load step. Initial time increment. Output step interval. Flag indicating modal expansion options have been defined. Number of modes/frequencies to expand. Minimum frequency of interest. Maximum frequency of interes.t Modal expansion method. Flag indicating whether elemental results (stresses, strains...) will be calculated. Description Flag indicating Dynamic DOF Options have been defined. Flag indicating a master DOF set is specified and in use. Indicates automatic dynamic DOF selection. Excludes rotational DOF from automatic DOF selection. Constraint set ID to be used as a master DOF set. Number of degrees of freedom to automatically select.

Analysis Case Options - MARC Specific BOOL MarHistOn INT4 MarHistContactProp INT4 MarHistCtrlMethod Flag indicating MARC History options have been defined ID of Contact Property written to the CONTACT TABLE. ID of control type written to the CONTROL option. 0=None, 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, 1=Profile Direct, 2=Sparse Iterative, 3=Sparse Direct, 4=Hardware Provided Sparse Direct, 5=MultiFrontal Direct Sparse. Number of Max Steps written to CONTROL option. Number of Max Recycles written to CONTROL option. Number of Min Recycles written to CONTROL option.

INT4 MarHistSolverMeth INT4 MarHistCtrlMaxStep INT4 MarHistCtrlMaxRecycle INT4 MarHistCtrlMinRecycle

API-978
Property REAL8 MarHistMaxResidual Description Number of Max Conv. Residual written to CONTROL option. ID of method written to CONTROL option. 0=Rel Force Residuals, 1=Rel Disp Residuals, 2=Rel Strain Ener Res, 3=Abs Force Residuals, 4=Abs Disp Residuals, 5=Abs Strain Ener Res. Flag indicating Nonpositive Def will be used on SOLVER option. Flag indicating NonSymmetric will be used on SOLVER option. Number indicating the Min Freq for a modal analysis. Number indicating the Max Freq for a modal analysis. Number indicating the Number of eigenvectors to be found in modal analysis. ID indicating checking will be used. 0=None, 1=Strum Sequence. Flag indicating Auto Switch will be used on CONTROL option. ID indicating the Analysis type for this Subcase 1=Static, 2=Normal Modes, 3=Buckling. Number of Buckling modes. Number of Modes With positive eigenvalues. Flag indicating MARC Increment options have been defined ID indicating the Arclength Method. 0=None( AUTO STEP), 1=Crisfield, 2=Riks, 3=Modified Riks, 4=Crisfield/Modified Riks. Number indicating AUTO STEP time period. Number indicating AUTO STEP initial time increment. Number indicating AUTO STEP min time increment. Number indicating AUTO STEP max time increment. Number indicating AUTO STEP scale factor. Number indicating AUTO STEP max number of steps. Number indicating number of output intervals. Flag to include Damping scheme for statics. Number indicating AUTO INCREMENT fraction of total load applied in first step.

INT4 MarHistConvergeMeth

BOOL MarHistNonPosDefinite BOOL MarHistNonSymmetric REAL8 MarHistModalMinFreq REAL8 MarHistModalMaxFreq INT4 MarHistModalEigen INT4 MarHistChecking BOOL MarHistAutoSwitch INT4 MarHistAnalCaseSol INT4 MarHistBuckleNumModes INT4 MarHistBucklePosEigen BOOL MarIncOn INT4 MarIncArcLenMeth REAL8 MarIncTimePeriod REAL8 MarIncInitTimeInc REAL8 MarIncMinTimeInc REAL8 MarIncMaxTimeInc REAL8 MarIncScaleFact INT4 MarIncMaxStep INT4 MarIncNumOutInc BOOL MarIncQuasiStatDamp REAL8 MarIncFracFirst

API-979
Property INT4 MarIncMaxNumInc INT4 MarIncCtrlMaxRecycle REAL8 MarIncMaxFracForAll REAL8 MarIncTotalTime BOOL MarCtblOn BOOL MarCtblWrite Description Number indicating AUTO INCREMENT max num increments. Number indicating AUTO INCREMENT max recycles. Number indicating AUTO INCREMENT max fraction of load for any step. Number indicating AUTO INCREMENT total time. Flag indicating the MARC Contact Table has been defined. Flag indicating the MARC Contact Table is to be written.

Analysis Case Options - NASTRAN Specific BOOL NasOmodesOn STRING NasOmodes[160] INT4 NasSubSeqCase[200] REAL8 NasSubSeqCase[200] Flag indicating an OMODES request has been defined. Expression used to select OMODES output IDs of Subcases to be combined in this SUBCOM Scale factors applied to Subcases combined in SUBCOM

API-980

InitAnalysisCase

5.2.2 AnalysisCase Object Methods


In addition to the standard methods, the following methods are also available.
5.2.2.1 InitAnalysisCase

InitAnalysisCase
( nSetID, nCaseID ) Description: This method initializes the default values for an analysis case Input: INT32 nSetID INT32 nCaseID Output: None Return Value FE_FAIL Remarks/Usage: None Example: None Unable to initialize the case. Probably the Analysis Set you specified does not exist. The Analysis SetID containing the case to be initialized The Case ID to be initialized

GetContactTable

API-981

5.2.2.2 GetContactTable

GetContactTable
( count, rowSeg, colSeg, tieType, distTol, sepForce, friction, interClose ) Description: This method retrieves data from the Contact Table. Input: None Output: INT4 count INT4 rowSeg[0..count-1] INT4 colSeg[0..count-1] INT4 tieType[0..count-1] REAL8 distTol[0..count-1] REAL8 sepForce[0..count-1] REAL8 friction[0..count-1] REAL8 interClose[0..count-1] Return Value FE_NOT_EXIST FE_FAIL Remarks/Usage: None Example: None The contact table does not exist. Unable to allocate memory to return the contact table data. The number of entries in each of the other vectors. The IDs of the contact segments referenced in rows of the table The IDs of the contact segments referenced in columns of the table The tying type (0,1=None, 2=Touch, 3=Glue) The distance tolerance The separation force The friction values The interference closure

API-982

PutContactTable

5.2.2.3 PutContactTable

PutContactTable
( count, rowSeg, colSeg, tieType, distTol, sepForce, friction, interClose ) Description: This method replaces data in the Contact Table Input: INT4 count INT4 rowSeg[0..count-1] INT4 colSeg[0..count-1] INT4 tieType[0..count-1] REAL8 distTol[0..count-1] REAL8 sepForce[0..count-1] REAL8 friction[0..count-1] REAL8 interClose[0..count-1] Output: None Return Value FE_FAIL Remarks/Usage: This function completely replaces the contact table - it does not add to data that is already there. Example: None Unable to update the contact table. The number of entries in each of the other vectors. The IDs of the contact segments referenced in rows of the table The IDs of the contact segments referenced in columns of the table The tying type (0,1=None, 2=Touch, 3=Glue) The distance tolerance The separation force The friction values The interference closure

API-983
5.3 AnalysisSet and AnalysisMgr Objects
AnalysisSet 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 AnalysisSet objects. For more information, see Section 5.1, "Common Entity Properties and Methods". AnalysisMgr does the same thing as AnalysisSet. Use the feAnalysisSet method of the FEMAP Application object to create AnalysisSet objects. AnalysisMgr does the same thing as AnalysisSet and uses all of the same Object Properties.

5.3.1 AnalysisSet (AnalysisMgr) Object Properties


AnalysisSet (AnalysisMgr) 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 STRING title INT4 Solver

Description Analysis set title (maximum 79 characters). 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. Type of analysis: 0=Unknown, 1=Static, 2=Modes, 3=Transient, 4=Frequency Response, 5=Response Spectrum, 6=Random, 7=Linear Buckling, 8=Design Opt, 9=Explicit, 10=Nonlinear Static, 11=Nonlinear Buckling, 12=Nonlinear Transient, 19=Comp Fluid Dynamics, 20=Steady State Heat Transfer, 21=Transient Heat, 22=Advanced Nonlinear Static, 23=Advanced Nonlinear Transient, 24=Advanced Nonlinear Explicit. Flag to launch the analysis using VisQ.

INT4 AnalysisType

BOOL LaunchWithVisQ Master Case Options STRING CaseTitle[80] INT4 CaseType INT4 BCSet[15] or VARIANT vBCSet

Title of analysis set (maximum 80 characters). 0=Normal, 1=Subcom SetIDs of load and constraint sets for this case: [0]=Constraints, [1]=Constraint Equations, [2]=Loads, [3]=Initial Conditions, [4]=Master DOF, [5]=Base/Support DOF, [6]=Omit DOF, [7]=QSET DOF, [8]=CSET DOF, [9]=BSET DOF, others not currently used.

API-984
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 Force Balance, [9]=Nodal Kinetic Energy, [15]=Element Force, [16]=Element Stress, [17]=Element Strain, [18]=Element Plastic Strain, [19]=Element Strain Energy, [20]=Element Heat Flux, [21]=Element Enthalpy, [22]=Element Enthalpy Rate, [23]=Element Contact, [24]=Element Temperature, [25]=Element Kinetic Energy, [26]=Element Energy Loss, others not currently used. String for ECHO option. Flag to skip standard output for this case. ID of starting text. ID of ending text. Output destination: 0=Default, 1=Print, 2=Post, 3=Print+Post, 4=Punch, 5=Punch+Post. Format for complex output: 0=Magnitude/Phase, 1=Real/Imaginary. Flag to request output at element corners. Flag to request output at element integration points.

INT4 Output[30] or VARIANT vOutput

STRING Echo[26] BOOL SkipStandard INT4 StartText INT4 EndText INT4 Destination INT4 Imaginary INT4 CornerOutput INT4 IntegrationOutput

Master Case Options - ABAQUS Specific BOOL AbaHistOn REAL8 AbaHistTimePeriod REAL8 AbaHistInitTimeInc REAL8 AbaHistMinTimeInc REAL8 AbaHistMaxTimeInc INT4 AbaHistEigenvectors REAL8 AbaHistMinFreq REAL8 AbaHistMaxFreq REAL8 AbaHistShiftFreq REAL8 AbaHistScaleFactor INT4 AbaHistOutInterval Flag indicating ABAQUS History Options have been defined. Time period. Initial time increment. Minimum time increment. Maximum time increment. Number of eigenvectors. Dynamic analysis minimum frequency. Dynamic analysis maximum frequency. Dynamic analysis shift frequency. Time step scale factor. Time step number of output intervals.

API-985
Property BOOL AbaHistNonlinGeom BOOL AbaHistLinearPert BOOL AbaHistAutoContact BOOL AbaHistStabilize BOOL AbaHistOutZeroInc INT4 AbaHistStepAmp INT4 AbaHistStepLoad INT4 AbaHistStepConstr INT4 AbaHistAnalysisType Description Flag to specify nonlinear geometry Flag to specify linear perturbation. Flag to specify auto contact. Flag to stabilize contact. Flag to write results for zero time increment. Step amplitude: 0=Default, 1=Step, 2=Ramp. Step loads: 0=New, 1=Modify. Step constraints: 0=New, 1=Modify. Step-based analysis type (see Analysis Type property above): 0=Default=Use Analysis Type

Master Case Options - ANSYS Specific BOOL AnsDOFOn BOOL AnsDOFDoSet BOOL AnsDOFAutomatic BOOL AnsDOFNoRotation INT4 AnsDOFSetID INT4 AnsDOFNumber ANSYS Modal Options BOOL AnsModesOn INT4 AnsModesNumModes REAL8 AnsModesMinFreq REAL8 AnsModesMaxFreq REAL8 AnsModesModalMethod BOOL AnsModesElemResults ANSYS Heat Transfer Options BOOL AnsHeatOn REAL8 AnsHeatEndTime REAL8 AnsHeatTimeStep INT4 AnsHeatOutputFreq Flag indicating heat transfer options have been defined. Time at end of this load step. Initial time increment. Output step interval. Flag indicating modal expansion options have been defined. Number of modes/frequencies to expand. Minimum frequency of interest. Maximum frequency of interest. Modal expansion method. Flag indicating whether elemental results (stresses, strains...) will be calculated. Flag indicating dynamic DOF options have been defined. Flag indicating a master DOF set is specified and in use. Indicates automatic dynamic DOF selection. Excludes rotational DOF from automatic DOF selection. Constraint set ID to be used as a master DOF set. Number of degrees of freedom to automatically select.

API-986
Property Master Case Options - DYNA Specific BOOL DynHistOn INT4 DynHistBodyLoadGrp BOOL DynHistMassDampOn REAL8 DynHistMsssDamp BOOL DynHistImplicit BOOL DynHistSpringback BOOL DynHistStrinOutput REAL8 DynHistTotalTime REAL8 DynHistTimeHistOuput REAL8 DynHistPrintHistOutput INT4 DynHistPlateIntgPts INT4 DynHistGroupHistId Flag indicating an Dyna History section has been defined. Initial Body Load Group. Flag indicating Mass Damping value has been defined. Mass Damping Value. Flag indicating use of Implicit Solver. Flag indicating Springback option has been defined. Flag indicating Strain will be output. Value defining total solution time, Number indicating output time interval. Number indicating print output time interval. Number indicating number of plate integration points. ID of group to limit output request. Description

Master Case Options - MARC Specific BOOL MarHistOn INT4 MarHistContactProp INT4 MarHistCtrlMethod Flag indicating MARC History options have been defined ID of Contact Property written to the CONTACT TABLE. ID of control type written to the CONTROL option. 0=None, 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, 1=Profile Direct, 2=Sparse Iterative, 3=Sparse Direct, 4=Hardware Provided Sparse Direct, 5=MultiFrontal Direct Sparse. Number of Max Steps written to CONTROL option. Number of Max Recycles written to CONTROL option. Number of Min Recycles written to CONTROL option. Number of Max Conv. Residual written to CONTROL option. ID of method written to CONTROL option. 0=Rel Force Residuals, 1=Rel Disp Residuals, 2=Rel Strain Ener Res, 3=Abs Force Residuals, 4=Abs Disp Residuals, 5=Abs Strain Ener Res. Flag indicating Nonpositive Def will be used on SOLVER option.

INT4 MarHistSolverMeth INT4 MarHistCtrlMaxStep INT4 MarHistCtrlMaxRecycle INT4 MarHistCtrlMinRecycle REAL8 MarHistMaxResidual

INT4 MarHistConvergeMeth

BOOL MarHistNonPosDefinite

API-987
Property BOOL MarHistNonSymmetric REAL8 MarHistModalMinFreq REAL8 MarHistModalMaxFreq INT4 MarHistModalEigen INT4 MarHistChecking BOOL MarHistAutoSwitch INT4 MarHistAnalCaseSol INT4 MarHistBuckleNumModes INT4 MarHistBucklePosEigen BOOL MarIncOn INT4 MarIncArcLenMeth REAL8 MarIncTimePeriod REAL8 MarIncInitTimeInc REAL8 MarIncMinTimeInc REAL8 MarIncMaxTimeInc INT4 MarIncScaleFact INT4 MarIncMaxStep INT4 MarIncNumOutInc BOOL MarIncQuasiStatDamp REAL8 MarIncFracFirst INT4 MarIncMaxNumInc INT4 MarIncCtrlMaxRecycle REAL8 MarIncMaxFracForAll REAL8 MarIncTotalTime Description Flag indicating NonSymmetric will be used on SOLVER option. Number indicating the Min Freq for a modal analysis. Number indicating the Max Freq for a modal analysis. Number indicating the Number of eigenvectors to be found in modal analysis. ID indicating checking will be used. 0=None, 1=Strum Sequence. Flag indicating Auto Switch will be used on CONTROL option. ID indicating the Analysis type for this Subcase 1=Static, 2=Normal Modes, 3=Buckling. Number of Buckling modes. Number of Modes With positive eigenvalues. Flag indicating MARC Increment options have been defined ID indicating the Arclength Method. 0=None( AUTO STEP), 1=Crisfield, 2=Riks, 3=Modified Riks, 4=Crisfield/Modified Riks. Number indicating AUTO STEP time period. Number indicating AUTO STEP initial time increment. Number indicating AUTO STEP min time increment. Number indicating AUTO STEP max time increment. Number indicating AUTO STEP scale factor. Number indicating AUTO STEP max number of steps. Number indicating number of output intervals. Flag to include Damping scheme for statics. Number indicating AUTO INCREMENT fraction of total load applied in first step. Number indicating AUTO INCREMENT max num increments. Number indicating AUTO INCREMENT max recycles. Number indicating AUTO INCREMENT max fraction of load for any step. Number indicating AUTO INCREMENT total time.

API-988
Property BOOL MarCtblOn BOOL MarCtblWrite Description Flag indicating the MARC Contact Table has been defined. Flag indicating the MARC Contact Table is to be written.

Master Case Options - NASTRAN Specific BOOL NasOmodesOn STRING NasOmodes[160] Flag indicating an OMODES request has been defined. Expression used to select OMODES output

Nonlinear Case Options - NASTRAN Specific BOOL NasCnlOn BOOL NasCnlUseLoadSet INT32 NasCnlIncrements REAL8 NasCnlTime_Increment INT32 NasCnlMaxIter BOOL NasCnlConvergenceFlags[0..2] or VARIANT vNasCnlConvergenceFlags REAL8 NasCnlConvergenceValue[0..2] or VARIANT vNasCnlConvergenceValue INT4 NasCnlStiffnessMethod INT4 NasCnlKstep INT4 NasCnlIntermediateOutput INT4 NasCnlOutputInterval INT4 NasCnlSolutionStrategy INT4 NasCnlSolutionOverrides BOOL NasCnlModnewtonLineSearch BOOL NasCnlModnewtonQuasiNewton BOOL NasCnlModnewtonBisection Flag indicating the Nonlinear Case Options has been defined. Flag to use the Nonlinear options from the Load Set. Number of Time Increments. Value for Time Step Size. Nonlinear - Max Iterations per Step

Nonlinear - Convergence Flags for 0=Displacement, 1=Load and 2=Work

Nonlinear - Convergence Tolerances for Displacement, Load and Work

Nonlinear - Stiffness Update Method Nonlinear - Iterations before Stiffness Update Nonlinear - Intermediate Output Type Nonlinear - Output Interval Nonlinear - Nonlinear Arc-Length Solution Strategy (ArcLength if nonzero) Nonlinear - Solution Strategy Overrides: 0=none/ advanced, 1=Full Newton Raphson, 2=Modified Newton Raphson Nonlinear - Modified Newton Line Search Override (1=Skip) Nonlinear - Modified Newton Quasi-Newton Override (1=Skip) Nonlinear - Modified Newton Bisection Override (1=Skip)

API-989
Property INT4 NasCnlArcConstraintType REAL8 NasCnlArcMinAdjust REAL8 NasCnlArcMaxAdjust REAL8 NasCnlArcLoadScale INT4 NasCnlArcDesiredIter INT4 NasCnlArcMaxSteps INT4 NasCnlTimeSkipAdjust INT4 NasCnlDominantPeriodSteps REAL8 NasCnlBoundsRb REAL8 NasCnlStabilityTolerance INT4 NasCnlDivergenceLimit INT4 NasCnlQuasiNewtonVectors INT4 NasCnlMaxLineSearch REAL8 NasCnlLineSearchTolerance INT4 NasCnlMaxBisections REAL8 NasCnlMaxRotation REAL8 NasCnlFstress REAL8 NasCnlMaxAdjust BOOL NasCnlCreep BOOL NasCnlSkipNLPARM Description Nonlinear - Arc Length Constraint Type Nonlinear - Min Arc Length Adjust Nonlinear - Max Arc Length Adjust Nonlinear - Arc Length Method Constraint Load Scale Nonlinear - Arc Length Desired Iterations Nonlinear - Arc Length Max Steps Nonlinear - Transient Time Step Skip Factor Nonlinear - Transient Steps for Dominant Period Nonlinear - Transient Bounds to Maintain Step Nonlinear - Transient Minimum Stability Tolerance Nonlinear - Max Diverging Conditions Nonlinear - Number of Quasi-Newton Vectors Nonlinear - Max Line Search per Iteration Nonlinear - Line Search Tolerance Nonlinear - Max Bisections per Increment Nonlinear - Max Rotation per Bisection Nonlinear - Stress Fraction Limit Nonlinear - Max Adjusted vs. Initial Increment Flag Indicating this a Creep Analysis. Flag to disable writing of the NLPARM for this case.

Analysis Set Options - NASTRAN Specific NASTRAN Executive Control Options BOOL NasExecOn INT4 NasExecVersion STRING NasExecOutDir[260] STRING NasExecProblem[160] STRING NasExecSolName[26] REAL8 NasExecMaxTime Flag indicating NASTRAN Executive Options have been defined. Version of NASTRAN to support - Possible values 2004, 2001 and 70 (for all previous versions) Path to directory for output. Problem ID. Name of solution - specified as text, but could be a number. Maximum execution time.

API-990
Property STRING NasExecDiag[160] BOOL NasExecIterSolve INT4 NasExecIterSolve2 INT4 NasExecNumCPU BOOL NasExecSaveDB BOOL NasExecRestart STRING NasExecRestartDB[260] BOOL NasExecSkipStandard INT4 NasExecStartText INT4 NasExecEndText INT4 NasExecMemory BOOL NasExecExtendedMessages STRING NasExecSystemCell[160] STRING NasExecScratchDir1[260] STRING NasExecScratchDir2[260] INT4 NasExecScratchSize1 INT4 NasExecScratchSize2 BOOL NasExecSolutionMonitor NASTRAN Bulk Data Options BOOL NasBulkOn INT4 NasBulkGroupID BOOL NasBulkAutospc BOOL NasBulkAutompc BOOL NasBulkGrdpnt INT4 NasBulkGrdpntVal BOOL NasBulkWtmass Flag indicating NASTRAN Bulk Data Options have been defined. ID of the group of entities to be written to the NASTRAN file. 0 = entire model. Flag to write PARAM,AUTOSPC. Flag to write PARAM,AUTOMPC. Flag to write PARAM,GRDPNT. Value to include on PARAM,GRDPNT. Flag to write PARAM,WTMASS. Description String specifying diagnostics to include in the solution. Flag to select iterative solver. Similar to NasExecIterSolve, but allows you to set 0=Off, 1=On, 2=NX Nastran Elemental Iterative Solver Number of processors to use during solution: 0=Default=1 Processor. Flag to save solution databases for later restart. Flag indicating you want to restart a previous analysis. Path to solution database that you want to restart from. Flag to skip writing standard Executive Control. ID of text to include at beginning of Executive Control. ID of text to include at end of Executive Control. Value of solution memory in Mb. Flag to enable Extended Error Messages. Specifies System Cell options for Nastran Specifies primary scratch directory Specifies secondary scratch directory Size of primary scratch directory (in MBytes) Size of secondary scratch directory (in MBytes) Enables the Nastran Solution Monitor to be activated during an analysis.

API-991
Property REAL8 NasBulkWtmassVal BOOL NasBulkK6rot REAL8 NasBulkK6rotVal BOOL NasBulkMaxratio REAL8 NasBulkMaxratioVal BOOL NasBulkNdamp REAL8 NasBulkNdampVal BOOL NasBulkInrel BOOL NasBulkLangle BOOL NasBulkPrgpst BOOL NasBulkLgdisp BOOL NasBulkDdrmmOff BOOL NasBulkModacc BOOL NasBulkResVec BOOL NasBulkResVecOn BOOL NasBulkOgeom INT4 NasBulkLargeField BOOL NasBulkQuadr BOOL NasBulkSkipStandard INT4 NasBulkStartText INT4 NasBulkEndText BOOL NasBulkSkipBeamShape INT4 NasBulkAutospcType BOOL NasBulkRigidThermalExp BOOL NasBulkSrcomps BOOL NasBulkNofisr Description Value to include on PARAM,WTMASS. Flag to write PARAM,K6ROT. Value to include on PARAM,K6ROT. Flag to write PARAM,MAXRATIO. Value to include on PARAM,MAXRATIO. Flag to write PARAM,NDAMP. Value to include on PARAM,NDAMP. Flag to write PARAM,INREL. Flag to write PARAM,LANGLE. Flag to write PARAM,PRGPST. Flag to write PARAM,LGDISP. Flag to control PARAM,DDRMM Flag to write PARAM,MODACC Flag to write PARAM,RESVEC Value to write with PARAM,RESVEC Flag to write PARAM,OGEOM Selection of field format: 0=Small,1=Large Csys,Matl,Prop, 2=Large All But Elem, 3=Large, 4 = Large Csys, Node Flag selecting CQUADR/CTRIAR as the preferred plate/shell elements. Flag to skip standard bulk data. ID of text written at the beginning of the Bulk Data. ID of text written at the end of the Bulk Data. Flag to skip writing Beam Shapes as PBEAML/PBARL ID of Autospc method 0=Eigenvalue, 1=1..Singular Value Decomposition If True includes effects of thermal expansion for rigid elements If True, writes PARAM,SRCOMPS,YES to output Laminate Strength Ratios If True, writes PARAM,NOFISR,1 to skip failure indices to the F06 file.

API-992
Property BOOL NasBulkLgstrn INT4 NasBulkInrelVal BOOL NasBulkGapsAsContact BOOL NasBulkBoltFact REAL8 NasBulkBoltFactVal BOOL NasBulkDynLdAsLOADSET BOOL NasBulkResViner BOOL NasBulkWriteAllLoadBCSets BOOL NasBulkEnfmotn INT4 NasBulkEnfmotnOpt NASTRAN Nonlinear Options BOOL NasNonlinOn INT4 NasNonlinNDT REAL8 NasNonlinDT INT4 NasNonlinNO INT4 NasNonlinMaxIter BOOL NasNonlinEpsFlag[3] or VARIANT vNasNonlinEpsFlag REAL8 NasNonlinEps[3] or VARIANT vNasNonlinEps NASTRAN Modal Options BOOL NasModeOn INT4 NasModeEigrSet INT4 NasModeMethod BOOL NasModeSolutionType Flag indicating NASTRAN Modal Options have been defined. SetID to be used for EIGR. Modal Solution method: 0=Givens,1=Modified Givens, 2=Inverse Power, 3=Inverse Power/Sturm, 4=Householder, 5=Modified Householder, 6=Lanczos. Solution type: 1=Direct, 2=Modal. Flag indicating NASTRAN Nonlinear Options have been defined. Number of time steps. Initial time increment. Output step interval. Max iterations per step. Flags indicating data to use for checking convergence: 0=Temperature, 1=Load, 2=Work. Description If True, writes PARAM,LGSTRN,1 to include effects of large strain. ID of Inertia Relief option: -1=On, -2=Automatic Flag to write Gap Elements as contact. Flag to write PARAM, BOLTFACT Value to be written with PARAM, BOLTFACT option Flag to write Dynamic Loads using LOADSET/LSEQ method Flag to write PARAM,RESVINER Flag to write all Static Loads and BC Sets. Flag to write NASTRAN command option for NX Nastran or PARAM,ENFMOTN for MSC Nastran ID of ENFMOTN option: 0,1, 2

Convergence values to check with the convergence flags.

API-993
Property REAL8 NasModeFreqRange[2] or VARIANT vNasModeFreqRange INT4 NasModeEstRoots INT4 NasModeDesiredRoots INT4 NasModeNormOpt INT4 NasModeNormNode INT4 NasModeNormDOF INT4 NasModeMassForm BOOL NasModesSkipEigr REAL8 NasModeImagFreqRange[2] or VARIANT vNasModeImagFreqRange REAL8 NasModesComplexConverge REAL8 NasModesComplexRegionWidth REAL8 NasModeDampOverall NASTRAN Dynamic Options BOOL NasDynOn BOOL NasDynUseLoadSet REAL8 NasDynDampOverall REAL8 NasDynDampW3 REAL8 NasDynDampW4 REAL8 NasDynKeepFreq[2] or VARIANT vNasDynKeepFreq REAL8 NasDynTranDT INT4 NasDynFreqTbl INT4 NasDynDampModalTbl INT4 NasDynKeepModes Flag indicating NASTRAN Dynamic Options have been defined. Flag to use dynamic options from the load set. Value for Overall Structural Damping. Value for System Damping. Value for Element Damping. Max and Min frequencies used to limit response. Value used for Transient Time Increment. ID of Function defining the Solution frequencies. ID of Function defining the Modal Damping Table. Number of Modes used to limit response. Description Frequency range of interest, [0]=Min, [1]=Max. Estimated number of eigenvalues. Number of desired eigenvalues/modes. Normalization method: 0=Mass,1=Max, 2=Point. Node ID for use with point normalization method. Nodal DOF for use with point normalization method. Mass matrix formulation: 0=Default, 1=Lumped, 2=Coupled. If True, skips writing the EIGR card for specifying modal analysis options For Complex Modes analysis, specifies the imaginary part of the Frequency Range of interest. Specifies Complex Modes convergence value Specifies Region Width for Complex Modes analysis.

API-994
Property INT4 NasDynTranTimeSteps INT4 NasDynTransOutInt BOOL NasDynDampModalMethod INT4 NasDynRespSpect INT4 NasDynNoFreq[2] or VARIANT vNasDynNoFreq BOOL NasDynLogInterp[2] or VARIANT vNasDynLogInterp INT4 NasDynFreqType[2] or VARIANT vNasDynFreqType REAL8 NasDynMinFreq[2] or VARIANT vNasDynFreqType REAL8 NasDynMaxFreq[2] or VARIANT vNasDynMaxFreq REAL8 NasDynSpreadCluster[2] or VARIANT vNasDynSpreadCluster BOOL NasDynFzero REAL8 NasDynFzeroVal BOOL NasDynWmodal ID of Function defining the Modal Frequency Correlation for Response Spectrum. Number of Frequency Intervals Description Number of Transient Time Steps Number for Transient Output Interval

Flag to use Logarithmic Interpolation

Input type for definition of Solution Frequencies

Min of frequency range for solution frequencies.

Max of frequency range for solution frequencies.

Value defining frequency spread around modes. Flag to write PARAM,FZERO Value of PARAM, FZERO Flag to write PARAM,WMODAL

NASTRAN Random OUTPUT2 Options BOOL NasRandomOn INT4 NasRandomRequest[2] or VARIANT vNasRandomRequest NASTRAN Modal XY Plot Options BOOL NasModeXYOn Flag indicating NASTRAN Modal XY Plot Options have been defined. Flag indicating NASTRAN Random Output2 options have been defined. Output requests for Output2: [0]=Nodal Output, [1]=Elemental Output.

API-995
Property BOOL NasModeXYRequest[5] or VARIANT vNasModeXYRequest BOOL NasModeXYRefNode Description Flags selecting types of output for XY plotting. Flag indicating output of summary data only.

NASTRAN Random XY Plot Options BOOL NasRandXYOn BOOL NasRandXYRequest[48] or VARIANT vNasRandXYRequest BOOL NasRandXYSummary INT4 NasRandXYNodeGroup INT4 NasRandXYElemGroup Flag indicating NASTRAN Random XY Plot Options have been defined. Flags selecting nodal and elemental output for XY plotting. Flag indicating output of summary data only. ID of group containing node IDs for XY plot output. ID of group containing element IDs for XY plot output.

NASTRAN Response Spectrum Generation BOOL NasGenSpecOn BOOL NasGenSpecRequest[18] or VARIANT vNasGenSpecRequest BOOL NasGenSpecAbsolute INT4 NasGenSpecNodeGroup Flag indicating NASTRAN Response Spectrum Generation Options have been specified Flags selecting spectrum generation for displacement, velocity and acceleration DOF. Flag indicating absolute or relative. ID of group containing node IDs for spectrum generation.

NASTRAN Response Spectrum Application BOOL NasAppSpecOn INT4 NasAppSpecType INT4 NasAppSpecFunction REAL8 NasAppSpecScale INT4 NasAppSpecMethod REAL8 NasAppSpecClose INT4 NasAppSpecSuport INT4 NasAppSpecDamp NASTRAN GEOMCHECK Options Flag indicating NASTRAN Response Spectrum Application Options have been specified. Spectrum type. Spectrum function ID. Scale factor to apply to spectrum. Modal combination method: 0=ABS, 1=SRSS, 2=NRL, 3=NRLO. Modal combination closeness. ID of constraint set to be used as a Base/SUPORT. Function ID to be used for modal damping.

API-996
Property BOOL NasGCheckOn BOOL NasGCheckNone Description Flag indicating Geomtery checking is specified. 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, [6]=T3_IAMAX, [7]=TET_AR, [8]=TET_EPLR, [9]=TET_DETJ, [10]=TET_DETG, [11]=HEX_AR, [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. Number indicating tolerance value for each GEOM CHECK

BOOL NasGCheckTest[21] or VARIANT vNasGCheckTest

REAL8 NasGCheckTol[21] or VARIANT vNasGCheckTol INT4 NasGCheckMsg[21] or VARIANT vNasGCheckMsg BOOL NasGCheckSummary INT4 NasGCheckMsgLimit

0=Fatal, 1=Inform, 2=Warn Flag to request Geomtery Check summary. Number indicating max number of messages

NASTRAN MODELCHECK Options BOOL NasMCheckOn BOOL NasMCheckWtDOFSet[6] or VARIANT vNasMCheckWtDOFSet BOOL NasMCheckWtCG INT4 NasMCheckWtRefNode INT4 NasMCheckWtUnits INT4 NasMCheckGrndRefNode BOOL NasMCheckGrndDOFSet[5] or VARIANT vNasMCheckGrndDOFSet REAL8 NasMCheckMaxStrnEn BOOL NasMCheckDataRec INT4 NasMCheckDataTol NASTRAN NXSTRAT Options Flag indicating NASTRAN Model Check options have been specified. Flag indicating selected Model Checks [0]=G, [1]=N, [2]=N+AUTOSPC, [3]=F, [4]=A [5]=V Flag to select CGI option. ID of Model Check Ref Node. Number indicating Units to be used. 0=MASS, 1=WEIGHT ID of Ground Check Ref Node. Flag indicating selected Ground Checks [0]=G, [1]=N, [2]=N+AUTOSPC, [3]=F, [4]=A. Number indicating Max Strain Energy. Flag to use DATAREC. Tolerance Number to print forces above.

API-997
Property BOOL NasNXStratOn INT4 NasNXStratSolver INT4 NasNXStratAuto BOOL NasNXStratNposit BOOL NasNXStratMasstyp INT4 NasNXStratTint BOOL NasNXStratMstab REAL8 NasNXStratMsfac REAL8 NasNXStratDtdelay REAL8 NasNXStratSdofang BOOL NasNXStratUpform BOOL NasNXStratDispopt BOOL NasNXStratLoadopt REAL8 NasNXStratAlpha REAL8 NasNXStratDelta INT4 NasNXStratItemax REAL8 NasNXStratEpsia REAL8 NasNXStratEpsib REAL8 NasNXStratEpsii INT4 NasNXStratLsearch INT4 NasNXStratMaxite INT4 NasNXStratConvcri REAL8 NasNXStratEtol REAL8 NasNXStratRtol REAL8 NasNXStratRnorm REAL8 NasNXStratRmnorm REAL8 NasNXStratRctol REAL8 NasNXStratDtol REAL8 NasNXStratDnorm Description Flag indicating NASTRAN Advanced Nonlinear options have been defined. Solver type 0=Direct Sparse 1=Multigrid Auto Incrementation Continue when not positive definite Mass Matrix Type Integration order thru Shell thick Matrix Stabilization Matrix Stabilization Factor Element Death Time delay Shell DOF Angle u/p formulation Prescribed displacement option Applied Load option Newmark Time Integ alpha coefficient Newmark Time Integ delta coefficient Max iter for multigrid solver Convergence Tolerance epsia Convergence Tolerance epsib Convergence Tolerance epsii Line Search Flag Max Iter per time step Convergence Criteria Relative Energy Tolerance Relative Force Tolerance Reference Force Reference Moment Relative Contact Force Tolerance Relative Displacement Tolerance Reference Translation

API-998
Property REAL8 NasNXStratDmnorm REAL8 NasNXStratStol REAL8 NasNXStratRconsm REAL8 NasNXStratEnlsth INT4 NasNXStratAtssubd REAL8 NasNXStratAtsmxdt INT4 NasNXStratAtsnext REAL8 NasNXStratAtsdfac BOOL NasNXStratAtslows REAL8 NasNXStratAtsdamp INT4 NasNXStratLdcgrid INT4 NasNXStratLdcdof REAL8 NasNXStratLdcdisp REAL8 NasNXStratLdcimax REAL8 NasNXStratLdcdmax BOOL NasNXStratLdccont INT4 NasNXStratLdcsubd INT4 NasNXStratImpact INT4 NasNXStratNsupp BOOL NasNXStratModex INT4 NasNXStratModexNew REAL8 NasNXStratAtsmass REAL8 NasNXStratTstart INT4 NasNXStratIrint INT4 NasNXStratNsubgrp BOOL NasNXStratElcv INT4 NasNXStratEqrbar INT4 NasNXStratEqrbe2 REAL8 NasNXStratSpringk Reference Rotation Line Search Convergence Tolerance Reference Contact Force Line Search Energy Threshold Auto Time Step Small Step Size Auto Time Step Largest Step Size Auto Time Step Size Flag Division Factor for Sub Increment Low Speed Dynamics Flag Low Speed Dynamics Damping Factor Node ID for Prescribed Displacement DOF for Prescribed Displacement Magnitude of Prescribed Displacement Displacement Convergence Factor Max Displacement Solution Termination after Critical Max Arc Length Subdivisions Impact Control Scheme Num Iterations for Pairing Restart Flag - Obsolete, use NasNXStratModexNew Restart Flag/Option Value for Auto Time Stepping Inertia Factor Restart Solution Time Frequency of Results in File Number of Subgroups Conversion Flag RBAR element option RBE2 element option Stiffness of RBAR/RBE2 springs Description

API-999
Property REAL8 NasNXStratBeame REAL8 NasNXStratBeama REAL8 NasNXStratRblcrit INT4 NasNXStratXstep INT4 NasNXStratXdtcal REAL8 NasNXStratXdtfac REAL8 NasNXStratXmscale REAL8 NasNXStratXdtmin1 REAL8 NasNXStratXdtmin2 INT4 NasNXStratIcmode INT4 NasNXStratUlform INT4 NasNXStratTimeSteps[0..9] REAL8 NasNXStratTimeIncrement[0..9] INT4 NasNXStratSkipFactor[0..9] INT4 NasNXStratRtsubd INT4 NasNXStratCstype BOOL NasNXStratElrescs REAL8 NasNXStratMaxDisp INT4 NasNXStratBoltstp BOOL NasNXStratCvssval BOOL NasNXStratRtalg BOOL NasNXStratTnslcf REAL8 NasNXStratDrillkf REAL8 NasNXStratLslower REAL8 NasNXStratLsupper BOOL NasNXStratXtcurve Description Youngs modulus for RBAR/RBE2 elements Effective cross section for RBAR/RBE2 elements Critical Length for RBAR/RBE2 elements Time Step Method Critical time step recalculation every XDTCAL steps Critical time step factor Mass scale factor Min steps size to use mass scaling Max steps size to use mass scaling Incompatible mode flag 0=off 1=on Large strain formulation used Number of Steps Time increment Output results every Nth step. Rigid-target subdivision scheme used. Selects the type of contact segment to use. For NX Nastran Advanced Nonlinear solver, if True, results are in elemental coordinate system, if False, in the Material coordinate system Limit for max incremental displacement/equilibrium iteration Number of steps for applying bolt pre-load force Flag to convert TABLES1 from engineering stress strain to true stress strain. Flag selecting the rigid target method: 0=Current, 1=Old(v4) Flag allowing tensile consistent contact forces on quadratic 3D contact segments Maximum Rotational Stiffness Factor used when drilling stiffness is zero Value for Lower bound of line search. Value for Upper bound of line search. Flag to extend TABLES1 by linear extrapolation

API-1000
Property NASTRAN DDAM Options BOOL NasDdamOn BOOL NasDdamEnabled BOOL NasDdamIncludePath BOOL NasDdamIsDDAM INT4 NasDdamUseBuiltInCoeff INT4 NasDdamEquationType INT4 NasDdamSurfaceShip INT4 NasDdamEquipmentLocation INT4 NasDdamElasticPlastic INT4 NasDdamForeAftDirection INT4 NasDdamVerticalDirection INT4 NasDdamDirectionSequence REAL8 NasDdamMassToWeight REAL8 NasDdamWeightCutoffPct REAL8 NasDdamGCutoff STRING NasDdamSpecCoeffFile[260] BOOL NasDdamCoeffOn[14] or VARIANT vNasDdamCoeffOn REAL8 NasDdamCoeffVal[14] or VARIANT vNasDdamCoeffVal REAL8 NasDdamForceConversion REAL8 NasDdamAccelConversion Flag indicating Nastran DDAM Options have been specified If True, DDAM analysis is enabled If True, full paths are specified in all filenames If True, this is a DDAM analysis, otherwise it is a non-DDAM spectrum analysis 0=Specify Coefficients, 1=External File, 2=Built-In 0=DDS-072, 1=NRL 1396 0=Surface, 1=Submerged 0=Deck, 1=Hull, 2=Shell 0=Elastic, 1=Elastic-Plastic Fore/Aft Axis (0=X, 1=Y, 2=Z) Vertical Axis (0=X, 1=Y, 2=Z) Number specifying sequence of axes to apply (X=1,Y=2,Z=3), so 132 means X then Z, then Y Mass to Weight conversion factor Modal Mass Cutoff Percentage Minimum Acceleration in Gs Filename (and path) of file containing spectrum coefficients (only used if NasDdamUseBuiltInCoeff=1) Flags to turn on/off specified spectrum coefficients Description

Values of specified spectrum coefficients. Value for Force Unit Conversion Value for Acceleration Unit Conversion

NASTRAN Rotor Dynamics Options BOOL NasRotorOn BOOL NasRotorEnabled Flag indicating Nastran Rotor Dynamics Options have been specified If True, Rotor Dynamics analysis is enabled

API-1001
Property BOOL NasRotorIncludePath BOOL NasRotorSingleRotor BOOL NasRotorFixedRefSys BOOL NasRotorAsyncResponse BOOL NasRotorSteinerInertia BOOL NasRotorForceExcitation BOOL NasRotorDoCSV BOOL NasRotorDoGPF INT4 NasRotorInputUnits INT4 NasRotorOutputUnits INT4 NasRotorPrintedOutput INT4 NasRotorSpeedNumSteps REAL8 NasRotorComplexModeOutput REAL8 NasRotorWhirlThreshold REAL8 NasRotorExcitationOrder REAL8 NasRotorSpeedStart REAL8 NasRotorSpeedStep STRING NasRotorModeSelection[60] Description If True, full paths are specified in all filenames If True, this is a single rotor analysis of the full model, if False, multiple rotors must be specified with rotor regions True = Fixed Reference CSys, False = Rotating True = Asynchronous Response Calculations True = Include Steiner Inertia Terms True = Force Excitation, False = Mass Unbalance True = Create comma separated output file True = Create GPF output file Speed Input Units 0=Rev/Min, 1=Cycle/Sec, 2=Hz, 3=Radians/ Sec Output Units 0=Rev/Min, 1=Cycle/Sec, 2=Hz, 3=Radians/Sec Printed Output 0=None, 1=Generalized Matrices, 2=Eigenvalue Summary/Eigenvectors, 3=Both Number of Steps in Rotor Speed Mode/Whirl Output (0.0=None, <0=All RPM, >0=Specified Speed) Whirl Threshold Excitation Order (Default = 1.0, 0.0=Forward Whirl, 2.0=Backward Whirl) Rotor Speed Start Value Rotor Speed Step Size String specifying IDs of modes for dynamic response

Analysis Set Options - ABAQUS Specific BOOL AbaModOn BOOL AbaModTitleSetNames BOOL AbaModGroupsAsSets BOOL AbaModSkipStandard INT4 AbaModStartText INT4 AbaModEndText INT4 AbaModVersion Flag indicating ABAQUS Model options have been specified. Flag to write entity titles as set names. Flag to write all groups as sets. Flag to skip output of standard ABAQUS model. ID of text written at beginning of ABAQUS model ID of text written at end of ABAQUS model. Version number of ABAQUS to translate for (61=Version 6.1).

API-1002
Property Analysis Set Options - ANSYS Specific ANSYS Model Options BOOL AnsModOn BOOL AnsModTitleSetNames BOOL AnsModGroupsAsSets BOOL AnsModSkipStandard INT4 AnsModStartText INT4 AnsModEndText STRING AnsModTitle BOOL AnsModWriteSolCmd BOOL AnsModWriteIter BOOL AnsModWriteLargeDef INT4 AnsModMemory INT4 AnsModVersion ANSYS Random Analysis Options BOOL AnsRandOn BOOL AnsRandDisp BOOL AnsRandVel BOOL AnsRandAccel BOOL AnsRandDispRelative BOOL AnsRandVelRelative BOOL AnsRandAccelRelative Flag indicating ANSYS Random Analysis Options have been specified. Flag requesting displacement output. Flag requesting velocity output. Flag requesting acceleration output. Flag indicating displacement output should be relative or absolute. Flag indicating velocity output should be relative or absolute. Flag indicating acceleration output should be relative or absolute. Flag indicating ANSYS Model options have been specified. Flag to Write FEMAP titles as set names. Flag to write Groups As Sets Flag to skip output of standard ANSYS model. ID of text written at beginning of ANSYS model. ID of text written at end of ANSYS model. Title for analysis (maximum 79 characters). Flag to write commands for automatic solve of model. Flag to choose the iterative solver in ANSYS 5.3 and above. Flag to include large deformation effects in nonlinear. Analysis memory: 0=Default. ANSYS version (4=ANSYS 4.4, 5=ANSYS 5.x). Description

Analysis Set Options - FEMAP Structural Specific FEMAP Structural File Operations BOOL FStFilOn STRING FStFilLogFile[260] BOOL FStFilKeepLogFile Flag indicating FEMAP Structural File Operation Options have been specified. Full path to the log file (blank=default). Flag indicating that the log file should be kept.

API-1003
Property BOOL FStFilEchoLogFile STRING FStFilHyper1[260] STRING FStFilHyper2[260] BOOL FStFilKeepHyper STRING FStFilScratch1[260] STRING FStFilScratch2[260] FEMAP Structural Heat Transfer Options BOOL FStHeatOn REAL8 FStHeatTempTol INT4 FStHeatConvergeType INT4 FStHeatMaxIter Flag indicating FEMAP Structural Heat Transfer Options have been specified. Temperature convergence tolerance. Convergence norm: 0=Absolute, 1=Euclidean, 2=Maximum. Maximum iterations. Filename for first Hypermatrix file (blank=default). Filename for second Hypermatrix file (blank=default). Flag indicating that Hypermatrix files should be kept. Path to sparse solver scratch directory. Path to additional sparse solver scratch directory. Description

FEMAP Structural Dynamic Solution Options BOOL FStDynOn INT4 FStDynSolMethod BOOL FStDynMassForm BOOL FStDynModalDamp BOOL FStDynModalNorm INT4 FStDynNumModes INT4 FStDynRigidModes INT4 FStDynFreqMethod REAL8 FStDynFreqRange[2] or VARIANT vFStDynFreqRange INT4 FStDynMassDir REAL8 FStDynMassTol INT4 FStDynIterVec INT4 FStDynMaxIter Flag indicating FEMAP Structural Dynamic Solution options have been specified. Solution method: 0=Guyan, 1=SVI, 2=Lanczos. Mass formulation: 0=Consistent, 1=Lumped. Flag indicating that modal damping should be included. Flag indicating mode normalization method. Number of flexible modes. Number of rigid body modes. Frequency range method: 0=Above, 1=Below, 2=Around, 3=Between. Frequency range: [0]=Single or Min Frequency, [1]=Max Frequency. Effective mass direction: 0=None, 1=X, 2=Y, 3=Z, 4=X+Y, 5=X+Z, 6=Y+Z, 7=X+Y+Z. Effective mass lower limit. Number of iteration vectors. Max iterations.

API-1004
Property INT4 FStDynSigDigits FEMAP Structural Solver Options BOOL FStSolOn BOOL FStSolIter REAL8 FStSolIterConvTol INT4 FStSolIterMaxIter INT4 FStSolMemIterMax INT4 FStSolMemVirtMax INT4 FStSolMemAppPct INT4 FStSolMemFortranPct BOOL FStSolStressStiff BOOL FStSolSpinSoft INT4 FStSolStiffSoftLoad BOOL FStSolShellAuto BOOL FStSolSingularity BOOL FStSolVerification REAL8 FStSolShellAutoAng REAL8 FStSolSingCriteria INT4 FStSolNodeGroup INT4 FStSolElemGroup Flag indicating FEMAP Structural Solver Options have been specified. Flag choosing sparse or iterative solver. Iterative solver convergence tolerance. Iterative solver max iterations. Max memory for iterative solver in MBytes. Total virtual memory limit in MBytes. Application dynamic memory in percent. Fortran workspace in percent. Flag to turn on stress stiffening. Flag to turn on spin softening. Load set ID for use with stress stiffening or spin softening. Shell autorestraint option. Flag to select singularity removal. Flag indicating that a verification-only analysis. Shell autorestraint angle. Singularity removal criteria. ID of group containing node IDs for nodal output recovery (0=All Nodes). ID of group containing element IDs for elemental output recovery (0=All Elements). Significant digits. Description

Analysis Set Options - MARC Specific BOOL MarModOn BOOL MarModSkipStandard INT4 MarModStartText INT4 MarModEndText char MarModTitle[160] INT4 MarModWorkSpVec INT4 MarModMaxConstrain Flag Indicating MARC parameters have been specified. Flag to skip the standard MARC model section. ID of text written at the begining of the model section. ID of text written at the end of the model section. Title of model specified as text. Size of Work Space Vector on the SIZING command. Max Number of constraints written to the SIZING command.

API-1005
Property BOOL MarModFolOn INT4 MarModFolOpt BOOL MarModPlasOn INT4 MarModPlasOpt BOOL MarModElasOn BOOL MarModElasTotal BOOL MarModElasIs BOOL MarModConstDil BOOL MarModLgDisp BOOL MarModUpdate BOOL MarModFinite BOOL MarModEchoInput BOOL MarModWriteGroupSet BOOL MarModExtInput BOOL MarModShlTrShear INT4 MarModPltIntegPt BOOL MarModDistLoadOn INT4 MarModDistLoadList INT4 MarModDistLoadElem INT4 MarModDistLoadNode BOOL MarModTyingOn INT4 MarModTyingCe INT4 MarModTyingType INT4 MarModTyingServoNd INT4 MarModTyingServoLk BOOL MarModOutOfCore INT4 MarModCoreVal Description Flag indicating Follower Force has been specified. ID of Follower Option 1=Off Incremental, 2=Last Iter Inc, 3=Beg Disp Incr, 4=Off Total, 5=Last Iter Total, 6=Beg Disp To Flag indicating Plasticity has been specified. ID of Plasticity Option 1=Add Normal Small Strain 2=Add Radial Small Strain, 3=Add Normal Large Strain, 4=Add Radial Large Strain, 5=Multiplicative. Flag indicating Elasticity Force has been specified. Total Lagrange=TRUE, Updated Lagrange=FALSE Flag indicating ELASTIC parameter will be used. Flag indicating CONSTANT parameter will be used. Flag indicating LARGE DISP parameter will be used. Flag indicating UPDATE parameter will be used. Flag indicating FINITE parameter will be used. Flag to Echo the Input. Flag to write groups as sets. Flag indicating the EXTENDED parameter will be used. Flag indicating the TSHEAR parameter will be used. Number of SHELL SECT integration points. Flag indicating Load List information has been specified. Number indicating the max number of Load List in the model. Number indicating the max number of Elements in any list. Number indicating the max number of Nodes in any list. Flag indicating TIE parameter will be used. Number of tying type constraint equations. Number of different types of tying constraints. Max Number of retained nodes for the tying type. Max Number of Servo Links. Flag indicating the ELSTO parameter will be used. Number indicating the Out Of Core buffer size.

API-1006
Property BOOL MarModProcessors INT4 MarModNoCpu INT4 MarModVecLength BOOL MarModParallel BOOL MarModBWOpt Description Flag indicating the PROCESSOR parameter will be used. Number of CPUs to be used. Number indicating Vector Length for the PROCESSOR param. Flag if matrices are to be formed in parallel. Flag indicating the OPTIMIZE parameter will be used.

Analysis Set Options - LS-DYNA Specific BOOL DynModOn BOOL DynModExportRigidNodes BOOL DynModMatlBasedParts BOOL DynModGroupsAsSets BOOL DynModSkipStandard INT4 DynModStartText INT4 DynModEndText Flag Indicating LS-DYNA parameters have been specified. Flag to export rigid reference nodes. Flag to write Material based plate parts. Flag to write Femap groups as sets. Flag to skip the standard LS-DYNA model section ID of text written at the beginning of the model section. ID of text written at the end of the model section.

InitAnalysisMgr

API-1007

5.3.2 AnalysisSet (AnalysisMgr) Object Methods


5.3.2.1 InitAnalysisMgr

InitAnalysisMgr
( analysis_program, analysis_type, InitMasterCase ) Description: This method initializes default options in the AnalysisMgr object Input: INT4 analysis_program INT4 analysis_type BOOL InitMasterCase Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Unable to initialize the current object Refer to the Solver property Refer to the AnalysisType property If true, also initializes the Master Case in in the object

API-1008
5.3.2.2 GetText

GetText

GetText
( textID, text ) Description: This method returns a string containing the text associated with a specified textID. Input: INT4 textID Output: STRING text Return Code: FE_FAIL Remarks/Usage: Text IDs are returned from various AnalysisSet properties. These properties have names ending with StartText or EndText. Example: None Unable to get the text. Check to see this is a valid ID. A string containing the text. This string will contain carriage control characters if there are multiple lines in the text. A textID returned from one of the text properties.

PutText

API-1009

5.3.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 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 multiple lines.

INT4 textID

STRING text Output: None Return Value textID Remarks/Usage:

The ID.

Text IDs are returned from various AnalysisSet properties. These properties have names ending with StartText or EndText. Example: None

API-1010

GetCorrelate

5.3.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 INT4 excitedCase[0..count-1] INT4 appliedCase[0..count-1] REAL8 realScale[0..count-1] REAL8 imagScale[0..count-1] INT4 realFunc[0..count-1] INT4 imagFunc[0..count-1] Return Value FE_NOT_EXIST FE_FAIL Remarks/Usage: This function has been replace by GetCorrelate2 in Femap 10.1 The AnalysisSet must be loaded with data from the associated set before this function can be used. Example: None The correlation table does not exist. Unable to allocate memory to return the correlation data. The number of entries in each of the other vectors. The IDs of the analysis case being excited. The IDs of the analysis case where the PSD is applied. The scale factor for the real portion of the PSD. The scale factor for the imaginary portion of the PSD. The IDs of functions defining the real PSDs. The IDs of functions defining the imaginary PSDs.

GetCorrelate2

API-1011

5.3.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 INT4 excitedCase[0..count-1] INT4 appliedCase[0..count-1] REAL8 realScale[0..count-1] REAL8 imagScale[0..count-1] INT4 realFunc[0..count-1] INT4 imagFunc[0..count-1] INT4 realInterp[0..count-1] INT4 imagInterp[0..count-1] Return Value FE_NOT_EXIST FE_FAIL Remarks/Usage: The AnalysisSet must be loaded with data from the associated set before this function can be used. Example: None The correlation table does not exist. Unable to allocate memory to return the correlation data. The number of entries in each of the other vectors. The IDs of the analysis case being excited. The IDs of the analysis case where the PSD is applied. The scale factor for the real portion of the PSD. The scale factor for the imaginary portion of the PSD. The IDs of functions defining the real PSDs. The IDs of functions defining the imaginary PSDs. The IDs of Interpolation method defining the real PSD. 0=Log Log, 1=Linear, 2=XLog YLin, 3=XLin YLog The IDs of Interpolation method defining the imaginary PSD. 0=Log Log, 1=Linear, 2=XLog YLin, 3=XLin YLog

API-1012

PutCorrelate

5.3.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 INT4 excitedCase[0..count-1] INT4 appliedCase[0..count-1] REAL8 realScale[0..count-1] REAL8 imagScale[0..count-1] INT4 realFunc[0..count-1] INT4 imagFunc[0..count-1] Output: None Return Value FE_FAIL Remarks/Usage: This function has been replace by PutCorrelate2 in Femap 10.1 The AnalysisSet 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 Unable to update the correlation table. The number of entries in each of the other vectors. The IDs of the analysis case being excited. The IDs of the analysis case where the PSD is applied. The scale factor for the real portion of the PSD. The scale factor for the imaginary portion of the PSD. The IDs of functions defining the real PSDs. The IDs of functions defining the imaginary PSDs.

PutCorrelate2

API-1013

5.3.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 INT4 excitedCase[0..count-1] INT4 appliedCase[0..count-1] REAL8 realScale[0..count-1] REAL8 imagScale[0..count-1] INT4 realFunc[0..count-1] INT4 imagFunc[0..count-1] INT4 realInterp[0..count-1] INT4 imagInterp[0..count-1] Output: None Return Value FE_FAIL Remarks/Usage: The AnalysisSet 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 Unable to update the correlation table. The number of entries in each of the other vectors. The IDs of the analysis case being excited. The IDs of the analysis case where the PSD is applied. The scale factor for the real portion of the PSD. The scale factor for the imaginary portion of the PSD. The IDs of functions defining the real PSDs. The IDs of functions defining the imaginary PSDs. The IDs of Interpolation method defining the real PSD. 0=Log Log, 1=Linear, 2=XLog YLin, 3=XLin YLog The IDs of Interpolation method defining the imaginary PSD. 0=Log Log, 1=Linear, 2=XLog YLin, 3=XLin YLog

API-1014

GetContactTable

5.3.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 INT4 rowSeg[0..count-1] INT4 colSeg[0..count-1] INT4 tieType[0..count-1] REAL8 distTol[0..count-1] REAL8 sepForce[0..count-1] REAL8 friction[0..count-1] REAL8 interClose[0..count-1] Return Value FE_NOT_EXIST FE_FAIL Remarks/Usage: None Example: None The contact table does not exist. Unable to allocate memory to return the contact table data. The number of entries in each of the other vectors. The IDs of the contact segments referenced in rows of the table The IDs of the contact segments referenced in columns of the table The tying type (0,1=None, 2=Touch, 3=Glue) The distance tolerance The separation force The friction values The interference closure

PutContactTable

API-1015

5.3.2.9 PutContactTable

PutContactTable
( count, rowSeg, colSeg, tieType, distTol, sepForce, friction, interClose ) Description: This method replaces data in the Contact Table Input: INT4 count INT4 rowSeg[0..count-1] INT4 colSeg[0..count-1] INT4 tieType[0..count-1] REAL8 distTol[0..count-1] REAL8 sepForce[0..count-1] REAL8 friction[0..count-1] REAL8 interClose[0..count-1] Output: None Return Value FE_FAIL Remarks/Usage: This function completely replaces the contact table - it does not add to data that is already there. Example: None Unable to update the contact table. The number of entries in each of the other vectors. The IDs of the contact segments referenced in rows of the table The IDs of the contact segments referenced in columns of the table The tying type (0,1=None, 2=Touch, 3=Glue) The distance tolerance The separation force The friction values The interference closure

API-1016
5.3.2.10 Case

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 Output: Return Code: None Remarks/Usage: The current AnalysisSet object must be loaded with the data from the set that contains the case that you want to retrieve. The AnalysisSet ID property is used to define the set that you want to retrieve. Example: None The ID of the Analysis Case to load.

Analyze

API-1017

5.3.2.11 Analyze

Analyze
( setID ) Description: Selects and analyzes an Analysis Set. Input: INT4 setID 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 The ID of the Analysis Set to be analyzed.

API-1018

AnalyzeMultiple

5.3.2.12 AnalyzeMultiple

AnalyzeMultiple
( setID ) Description: Selects and sequentially analyzes one or more Analysis Sets. Input: INT4 setID 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 The ID of a Set that contains the IDs of the Analysis Sets to be analyzed.

ClearAnalysisQueue

API-1019

5.3.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

API-1020
5.3.2.14 Preview

Preview

Preview
( SetID ) Description: Calls Preview Input in the Analysis Set Manager Input: INT4 setID Output: None Return Code: FE_OK Remarks/Usage: None Example: None The ID of a Analysis Set to be previewed in the Preview Analysis Input File window. Enter -1 for the Active Analysis Set.

Preview

API-1021

API-1022

Property

5.4 BCDefinition Objects


BCDefinition objects correspond to the constraint definitions in your model. They group individual 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.4.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 STRING title Description Constraint Definition title. The type of entity that the constraint is applied to in this constraint definition. For more information on Entity 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 the table in Section 3.3.6, "Entity Types". This must be FT_BCO, FT_BCO_GEOM or FT_BEQ

INT4 OnType

INT4 DataType

PutAll

API-1023

5.4.2 BCDefinition Object Methods


5.4.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 INT4 DataType INT4 OnType STRING Title Output: None Return Code: FE_FAIL Remarks/Usage: Unlike the standard Put method, this function loads all of the properties as arguments. If you are updating all of the properties before storing an entity, this function will be faster than multiple calls to load each property individually. Example: None Unable to store the entity with the specified ID Refer to the property descriptions for each of these items. The ID of the Constraint Definition to store.

API-1024

ResetNextBC

5.4.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-1025

5.4.2.3 NextBC

NextBC
( pBC ) Description: This method returns the next available constraint that is contained in the Constraint Definition Input: OBJECT pBC Output: None Return Code: FE_FAIL Remarks/Usage: This method, coupled with ResetNextBC provides an easy way to retrieve all constraints from a Constraint Definition. Example: There are no more constraints of the specified type to retrieve. Call ResetNextBC to go back to the first constraint, if you want to retrieve the constraints again. The next constraint object. Depending on the type of the constraint definition this could be a BCNode, BCGeom or BEqn object

API-1026
5.5 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 methods 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.5.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 INT4 dof[0..69] or VARIANT vdof INT4 node[0..69] or VARIANT vnode REAL8 coefficient[0..69] or VARIANT vcoefficient INT4 color INT4 layer INT4 BCDefinitionID Additional Properties INT4 count The number of nonzero terms in the equation. This property is read-only and cannot be changed. Description An integer from 1 to 6 indicating the DOF associated with the corresponding term in the equation. The node ID referenced by each term in the equation.

The coefficient associated with each term in the equation.

The constraint color. The ID of the layer associated with the constraint. The ID of the constraint definition that contains this constraint (0=None)

5.5.2 BCEqn Object Methods


There are no BCEqn object-specific methods. Only the standard entity methods are available.

API-1027
5.6 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 properties 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.6.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 BOOL dof[0..5] or VARIANT vdof INT4 color INT4 layer BOOL expanded INT4 geomType INT4 geomID INT4 type Description An array of flags telling whether or not the corresponding degrees of freedom are constrained (True) or free (False), in this set. The constraint color. The ID of the layer associated with the constraint. True if this geometry-based constraint is currently expanded. The type of geometry that is constrained by this object: 3=Point, 4=Curve, 5=Surface. The ID of the geometry that is constrained by this object. 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 directions) The direction of sliding for type=4 constraints.

REAL8 direction[0..2] or VARIANT vdirection INT4 outCSys INT4 BCDefinitionID Additional Properties

ID of constraint coordinate system for type=1 constraints. The ID of the constraint definition that contains this constraint (0=None)

API-1028
Property BOOL dofvec[0..5] Description Accesses all six components of the dof vector and returns them as a variant. Same as using dof independently.

GetSearch

API-1029

5.6.2 BCGeom Object Methods


5.6.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 INT4 geomID Output: None Return Code: FE_FAIL 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 constraints on a large number of geometry entities, it could be faster to retrieve them all using Get, and discard the ones you do not want. Example: None The specified entity does not exist or is not constrained. Type of geometry being constrained: 3=Point, 4=Curve, 5=Surface. ID of geometry being constrained.

API-1030

SetSurfSliding

5.6.2.2 SetSurfSliding

SetSurfSliding
( INT4 surfID ) Description: This method initializes the current object to allow sliding along a surface. Input: INT4 surfID 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 The ID of the surface to slide along

SetSurfNormal

API-1031

5.6.2.3 SetSurfNormal

SetSurfNormal
( INT4 surfID ) Description: This method initializes the current object to allow movement normal to a surface. Input: INT4 surfID 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 The ID of the surface to move normal to.

API-1032

SetSurfDirection

5.6.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 REAL8 x REAL8 y REAL8 z 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 The ID of the surface to slide The Global X component of the permitted sliding direction The Global Y component of the permitted sliding direction The Global Z component of the permitted sliding direction

SetCylinder

API-1033

5.6.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 BOOL radius BOOL rotation BOOL sliding Output: None Return Code: FE_FAIL 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 The specified surface is not cylindrical. The ID of the surface to slide If True, allow growth of the radius of the cylinder. If True, allow rotation around the axis of the cylinder. If True, allow sliding along the axis of the cylinder.

API-1034
5.7 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 methods 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.7.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 BOOL dof[0..5] or VARIANT vdof INT4 color INT4 layer BOOL expanded INT4 BCDefinitionID Additional Properties BOOL dofvec[0..5] Accesses all six components of the dof vector and returns them as a Variant. Same as using dof independently. Description An array of flags telling whether or not the corresponding degrees of freedom are constrained (True) or free (False) in this set. The constraint color. The ID of the layer associated with the constraint. True if this is a constraint from an expanded geometric constraint. The ID of the constraint definition that contains this constraint (0=None)

5.7.2 BCNode Object Methods

Add

API-1035

5.7.2.1 Add

Add
( setID, bDOF1, bDOF2, bDOF3, bDOF4, bDOF5, bDOF6 ) Description: This method creates nodal constraints on all selected nodes Input: INT4 setID BOOL bDOF1 BOOL bDOF2 BOOL bDOF3 BOOL bDOF4 BOOL bDOF5 BOOL bDOF6 Output: None Return Code: FE_FAIL 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 The Constraints could not be created. The constraints to apply to the nodes. If True, the corresponding degree of freedom is constained. The ID of a Set object that contains the nodes to constraint. Alternatively, if you specify a negative value, this is simply the ID of the single node to constrain.

API-1036
5.7.2.2 AddArray

AddArray

AddArray
( count, doDOF, NodeID, DOF ) Description: This method creates multiple nodal constraints Input: INT4 count The number of constraints to create, and the number of IDs in NodeID If True, then the DOF array must contain degree-of-freedom flags to 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 created on each ID. Flags specifying constraints on each specified node. 6 flags per node. Refer to dof property.

BOOL doDOF

INT4 NodeID[0..count-1] INT4 DOF[0..(6*count)-1] Output: None Return Code: FE_FAIL FE_NO_MEMORY Remarks/Usage:

The Constraints could not be created. Unable to allocate memory to store arrays of data.

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-1037
5.8 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 methods defined for Entity objects are also available for constraint sets. For more information, see Section 5.1, "Common Entity Properties and Methods". Use the feBCSet method of the FEMAP Application object to create BCSet objects.

5.8.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 constraints are defined in other objects. Property STRING title BOOL IsCombination Description Constraint set title (maximum 79 characters). This is a Nastran SPCADD/MPCADD combination set if True.

API-1038

Expand

5.8.2 BCSet Object Methods


5.8.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 Remarks/Usage: This method takes the current constraint set object (uses the ID), and expands all of the geometric constraints 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 systems, 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 The specified expansion did not work.

Compress

API-1039

5.8.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 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 The specified compression did not work.

API-1040

ResetNextBC

5.8.2.3 ResetNextBC

ResetNextBC
( enDataType, bOtherBCOnly, bIncludeExpanded ) Description: This method initializes all options prior to calling the NextBC method below Input: INT4 enDataType The type of constraint entities to be retrieved. For entity information, 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 definition will be retrieved. Otherwise all are available. If True, expanded geometric constraints (if any) will be returned along with normal constraints. Ignored if enDataType = FT_BCO_GEOM.

BOOL bOtherBCOnly

BOOL bIncludeExpanded 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-1041

5.8.2.4 NextBC

NextBC
( pBC ) Description: This method returns the next available constraint that matches the criteria established by ResetNextBC Input: OBJECT pBC Output: None Return Code: FE_BAD_DATA FE_FAIL Remarks/Usage: This method, coupled with ResetNextBC provides an easy way to retrieve all constraints from a Constraint 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 bs.ResetNextBC( FT_BCO, False, False ) While bs.Next() While bs.NextBC( b ) MsgBox(Str$(b.setID)+""+Str$(b.ID) ) Wend Wend End Sub The data type that you are trying to retrieve is invalid. There are no more constraints of the specified type to retrieve. Call ResetNextBC to go back to the first constraint, if you want to retrieve the constraints again. The next constraint object. Depending on the options specified, this could be a BCNode, BCGeom or BCEqn object

API-1042

ResetNextBCDef

5.8.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, only constraint definitions that contain constraints of the type specified in enDataType will be returned. The type of constraint entities to be retrieved. For entity information, see Section 3.3.6, "Entity Types". Can be FT_BCO, FT_BCO_GEOM, or FT_BEQ.

BOOL bAllDataTypes

INT4 enDataType 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 definition available in the object. Example:

NextBCDef

API-1043

5.8.2.6 NextBCDef

NextBCDef
( pBC ) Description: This method returns the next available constraint definition that matches the criteria established by ResetNextBCDef Input: OBJECT pBC Output: None Return Code: FE_FAIL 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 bs.ResetNextBCDef( False, FT_BCO ) While bs.Next() 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 There are no more constraint definitions of the specified type to retrieve. Call ResetNextBCDef to go back to the first constraint definition, if you want to retrieve the constraints again. The next constraint definition object. This is always a BCDefinition object.

API-1044

GetCombination

5.8.2.7 GetCombination

GetCombination
( nCombo, nSetID ) Description: This method returns the data for a Nastran SPCADD/MPCADD Combination Set. Input: None Output: INT4 nCombo INT4 nSetID Return Code: FE_BAD_TYPE FE_NOT_AVAILABLE Remarks/Usage: None Example: None This is not a Combination Constraint Set. No constraint sets are in the Combination. Number of entries in the combination. The IDs of the constraint sets in the combination.

PutCombination

API-1045

5.8.2.8 PutCombination

PutCombination
( nCombo, nSetID ) Description: This method sets the data in a Nastran SPCADD/MPCADD Combination Set. Input: INT4 nCombo INT4 nSetID Output: None Return Code: FE_NOT_EXIST FE_BAD_TYPE Remarks/Usage: One or more Combined Constraint Sets specfiied do not exist. One or more Combined Constraint Sets specfiied is a Constraint Combination. Number of entries in the combination. The IDs of the constraint sets in the combination.

Example: None

API-1046

PutCombination

API-1047
5.9 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 Property objects.

5.9.1 Connection Property Object Properties


Connection Properties are always stored with a SetID=1, and the ID equal to the connection 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 INT4 color INT4 layer INT4 type STRING title BOOL flag[0..3] or VARIANT vflag INT4 flagI[0..3] or VARIANT vflagI REAL8 pval[0..234] or VARIANT vpval INT4 plyval[0..1] or VARIANT vplyval Additional Properties INT4 plymat[0..1] INT4 pmat[0..234] Same as plyval, but returns/sets entire array as a VARIANT. Same as pval, but returns/sets entire array as a VARIANT. Description The connection property color. The layer associated with the connection property. Type of Connection, 0=Contact, 1=Glued. Connection property title (maximum 79 characters). Array of connection property flags.

Array of connection property flags accessed as an INT4. Most flags are simply true/false and can be accessed with flag( ).

Array of connection property values.

Array of material IDs.

5.9.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-1048
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 Property definition. While the code is slightly longer than simply accessing the individual properties, performance will be better using this approach.

API-1049
5.9.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 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Abaqus Small Slide Abaqus Hcrit Abaqus Ext Zone Abaqus Smoothing Abaqus Tied Abaqus Weight Static Friction 1 Static Friction 2 Dynamic Friction Decay Viscous Damping

API-1050
Property Values (continued) CONTACT 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 Dyna Type Dyna One Way Dyna Offset Dyna Penalty Dyna Birth Dyna Death Dyna Scale Slave Penalty Stiffness Dyna Scale Master Penalty Stiffness Dyna Over Slave Thick Dyna Over Master Thick Dyna Scale Slave Thick Dyna Scale Master Thick Dyna Scale Coulomb Friction Dyna Scale Viscous Friction Dyna Out SF Dyna Out MF Dyna Rigid Func Dyna Rigid Force Dyna Rigid Unload Abaqus Thickness Abaqus Slide Dist Abaqus Friction Type Abaqus Friction Value Abaqus Max Shear Abaqus Adjust Abaqus Approach

API-1051
Property Values (continued) CONTACT 49 50 51 52 53 54 55 56 57 ... 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 Marc Tolerance Marc Sep Force Marc Inter Marc Disp Marc Friction Marc Stick Vel Marc Fr Stress Marc Con Type Marc Con Shell Marc Tol Bias Marc Beam Marc Sep Marc Sep Max Marc Sep Stress Marc Slip Coeff Marc Slip F Marc Slip Trans Marc Rig Avg Dyna Tie Norm Dyna Tie Shear Dyna Tie Norm Exp Dyna Tie Shear Exp Dyna Tie Function Dyna Erode Sym Dyna Erode Node Dyna Erode Solid Dyna Constraint

API-1052
Property Values (continued) CONTACT 83 100 101 102 103 104 105 106 107 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 Ansys Closure Ansys Min Pen Ansys Max Pen Ansys Close Stiff Ansys Open Stiff Ansys Norm Tol Ansys Pinball Ansys Surf Off Ansys Max Fric Ansys Penalty Type Ansys Node Cont Ansys Unsym Ansys No Spurious Ansys Shell Thick Ansys Cont Surf Ansys Init Pen Ansys Time Inc Sinda Type Sinda Coeff1 Sinda View Sinda Coeff2 Sinda Cfunc1 Sinda Vfunc Sinda Cfunc2 Sinda Cfunc3 Marc Rig Cutoff

API-1053
Property Values (continued) CONTACT 135 136 137 138 139 140 141 142 143 144 ... 145 146 147 148 149 150 151 152 153 154 155 156 NX/Nas601 Type NX/Nas601 NSide NX/Nas601 Birth Time NX/Nas601 Death Time NX/Nas601 Initial Penetration NX/Nas601 Penetration Depth NX/Nas601 Segment Normal NX/Nas601 Offset Type NX/Nas601 Offset Distance NX/Nas601 Initial Penetration Duration NX/Nas601 Consistant Stiffness NX/Nas601 Tied NE/Nastran Scale Fact NE/Nastran Fric Stiff NE/Nastran Static Friction NE/Nastran Pen Type
(9.2+) NE/Nastran (9.2+) (9.2+)

Max Penetration

NE/Nastran Max Adjust Ratio

NE/Nastran Max Penetration Fraction NE/Nastran Penetration Surface Offset


(9.2+) NE/Nastran (9.2+)

Max Activation

Distance NE/Nastran Max Activation Distance ( Automatic )


(9.2+)

API-1054
Property Values (continued) CONTACT 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 ... 175 176 177 178 179
(9.1+)

NX/Nas601 Tied Tolerance NX/Nas601 Surface Extention Factor NX/Nas601 Friction Model NX/Nas601 Friction Parameter 1 NX/Nas601 Friction Parameter 2 NX/Nas601 Friction Parameter 3 NX/Nas601 Friction Parameter 4 NX/Nas601 Friction Parameter 5 NX/Nas601 Eps N NX/Nas601 Eps T NX/Nas601 CFactor 1 NX/Nas601 Penetration Tolerance NX/Nas601 Normal Modulus NX/Nas601 Tangential Modulus NX/Nas601 Tensile Freeing Force NX/Nas601 Total Freeing Force
(9.3+) (9.3+)

NX/Nas601 DISP NX/Nas601 GAPVAL

NX/Nas101 Max Force IteraNX/Nas101 Max Status Itera-

tions
(9.1+)

tions NX/Nas101 Normal Penalty Factor


(9.1+) (9.1+)

NX/Nas101 Tangential Penalty Factor Force Conver-

(9.1+) NX/Nas101

gence Tolerance

API-1055
Property Values (continued) CONTACT 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 ... 200
(9.2+) NX/Nas701 (9.1+) NX/Nas101

Number of Allow

Contact Changes
(9.1+)

NX/Nas101 Contact PrecentShell Offset Contact Status Friction

age
(9.1+) NX/Nas101 (9.1+) NX/Nas101 (9.1+) NX/Nas101 (9.1+)

NX/Nas101 Min Contact Search Dist


(9.1+) NX/Nas101

Max Contact

Search Dist
(9.1+) NX/Nas101 Averaging Method (9.1+) (9.2+)

NX/Nas101 Initial Penetration

NX/Nas101 Gluing Search Distance NX/Nas101 Gluing Penalty Factor


(9.3+) (9.3+) (9.3+) (9.2+)

NX/Nas101 Gluing Zoffset NX/Nas101 INTORD NX/Nas101 REFINE NX/Nas101 NCHG TYPE NX/Nas101 PENTYPE CSTRAT GLUETYPE

(10.0+) (10.0+)

(10.0+) NX/Nas101 (10.1+) NX/Nas101 (10.1+)

NX/Nas101 PENGLUE PENAUTO

(10.1+) NX/Nas101

Friction

API-1056
Property Values (continued) CONTACT 201 202 203 204 205 206 207 208 209 2010 2011 2012 2013 2014 2015 2016
(9.2+)

Marc Friction

(9.2+)

AnsyNX/Nas601s Friction NX/Nas601BOND_EXT NX/Nas601SLIDVEL NX/Nas601OCHECK NX/Nas601GAPBIAS

(10.0+) (10.0+) (10.0+) (10.0+)

(10.0+)NX/Nas601OFFDET (10.0+)NX/Nas601RTPCHECK (10.0+) (10.0+)

NX/Nas601RTPMAX NX/Nas601FRICDLY

(10.0+)NX/Nas601TFORCE (10.0+)NX/Nas701 (10.0+) (10.0+) (10.1+) (10.1+)

SLIDVEL

NX/Nas701 OFFDET NX/Nas701 GAPBIAS NX/Nas101 PENADAPT NX/Nas101 PENETFAC

5.9.3 Connection Property Object Methods


There following methods are available in addition to the standard entity methods.

SetDefaults

API-1057

5.9.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. 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

REAL8 ContactTolerance

API-1058
5.10 Connection Region Objects
Connection Region objects correspond to the connection regions in your model (in earlier versions, 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 methods defined for Entity objects are also available for Connection Region objects. For more information, 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.10.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 INT4 color INT4 layer STRING title INT4 refNode INT4 output BOOL rigid REAL8 box[0..1][0..2] or VARIANT vbox INT4 count INT4 type INT4 refCSys REAL8 offset Fluid Region Options BOOL FluidZFreeOn REAL8 FluidZFree REAL8 FluidDensity INT4 FluidXZSymmetry True = Fluid Z Free Surface is On Z-Depth of Fluid Free Surface Density of Fluid Symmetry Condition for XZ Plane (0=None, 1=Symmetric, 2=Antisymmetric) Description The connection region color. The layer associated with the connection region. The connection region title (maximum 79 characters). Reference node ID. Output on nodes(7) or elements(8). Flag to indicate rigid segment. Locations at corners of contact box: box[0][xyz] is the minimum dimension, box[1][xyz] is the maximum. The number of items in the connection region contact list Type of Region (0=Normal/Contact, 1=Fluid, 2=Bolt, 3=Rotor) Reference Coordinate System Region Offset Distance

API-1059
Property INT4 FluidYZSymmetry REAL8 FluidCharLength REAL8 FluidExactIntegFact Rotor Region Options INT4 RotorLoadSet REAL8 RotorOverallDamp REAL8 RotorMatlDamp REAL8 RotorSpeed ID of Load Set containing Rotational body loads to be applied Frequency for Overall Damping (W3) Frequency for Material Damping (W4) Rotor speed (not currently used) Description Symmetry Condition for YZ Plane (0=None, 1=Symmetric, 2=Antisymmetric) Fluid Characteristic Length Exact Integration factor for fluid

API-1060

GetContactList

5.10.2 Connection Region Object Methods


There following methods are available in addition to the standard entity methods.
5.10.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 INT4 listTYPE[0..N] INT4 entityID[0..N] The number of entries in the other arrays. The type of entity in each list entry. Refer to Section 3.3.6, "Entity Types" for a list of types. 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 surfaces, 1=Positive Side, 2=Negative Side. Flag indicating that this is an expanded node/element entry from a geometry contact.

INT4 expanded[0..N] Return Code: FE_NOT_EXIST Remarks/Usage:

There are no entries in the list.

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

PutContactList

API-1061

5.10.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 INT4 listTYPE[0..N] INT4 entityID[0..N] The number of entries in the other arrays. The type of entity specified in each entry. Refer to Section 3.3.6, "Entity Types" for a list of types. 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 surfaces, 1=Positive Side, 2=Negative Side. Flag indicating whether each entry is an expanded node/element entry from a geometric contact.

INT4 expanded[0..N] 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 function, you must call Put( ) if you want to store the updated list in the database. Example: None

API-1062

GetEntities

5.10.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: None Output: INT4 entityTYPE BOOL bGetExpanded 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. The type of entity that you want to select. Refer to Section 3.3.6, "Entity Types" for a list of types. If True, the region is first expanded - any selected geometric entities will also select associated nodes or elements.

AddContact

API-1063

5.10.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: INT4 listTYPE INT4 entityID The type of entity to be added. Refer to Section 3.3.6, "Entity Types" for a list of types. 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 surfaces, 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

API-1064

SetOutputType

5.10.2.5 SetOutputType

SetOutputType
( entityTYPE ) Description: This method sets the output type for the connection region. Input: INT4 entityTYPE Output: None Return Code: None Remarks/Usage: None Example: None The type of entity for output. Refer to Section 3.3.6, "Entity Types" for a list of types.

SetOffset

API-1065

5.10.2.6 SetOffset

SetOffset
( offset ) Description: This method sets the offset for the connection region. Input: REAL8 offset Output: None Return Code: None Remarks/Usage: None Example: None The value of the region offset.

API-1066
5.10.2.7 GetOffset

GetOffset

GetOffset
( offset ) Description: This method returns the offset for the connection region. Input: None Output: REAL8 offset Return Code: None Remarks/Usage: None Example: None The value of the region offset.

SetRigidType

API-1067

5.10.2.8 SetRigidType

SetRigidType
( offset ) Description: This method defines whether a connection region is rigid. Input: BOOLEAN isRigid Output: None Return Code: None Remarks/Usage: None Example: None Set to True for a rigid region, False otherwise

API-1068

IsRigidType

5.10.2.9 IsRigidType

IsRigidType
( void ) Description: This method indicates whether a connection region is rigid. Input: None Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Region is not rigid ( FE_OK = Rigid )

Expand

API-1069

5.10.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 Remarks/Usage: This method expands all connection regions, not just the one in the current object. Example: None The specified expansion did not work.

API-1070

Compress

5.10.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 Remarks/Usage: This method compresses all connection regions, not just the one loaded into the current object. Example: None The specified compression did not work.

Clear

API-1071

5.10.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

API-1072
5.10.2.13 Reverse

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

Enable

API-1073

5.10.2.14 Enable

Enable
( bEnable ) Description: This method is used to enable or disable Fluid, Bolt or Rotor connection region. Input: BOOL bEnable Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Region is not proper type. Flag to set the state of the connection region.

API-1074

IsEnabled

5.10.2.15 IsEnabled

IsEnabled
( void ) Description: This method checks the state of the connection region. Input: None Output: None Return Code: FE_FAIL FE_OK Remarks/Usage: None Example: None Region is disabled. Region is enabled.

API-1075
5.11 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 information, see Section 5.1, "Common Entity Properties and Methods". Use the feConnection method of the FEMAP Application object to create Connection objects.

5.11.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 INT4 color INT4 layer INT4 propID INT4 type STRING title INT4 contact[0..1] or VARIANT vcontact The connection color. The layer associated with the connection. ID of the connection property referenced by the connection Not currently used The title of the connection (max 79 char) The IDs of the Master and Slave connection regions. Description

API-1076
5.11.2 Connection Object Methods
The following methods are available in addition to the standard entity methods.

Prop

API-1077

5.11.2.1 Prop

Prop
( void ) Description: This method creates and returns a Connection Property object that is loaded with the property data referenced by a connection Input: None Output: None Return Code: None Remarks/Usage:

Example: None

API-1078
5.11.2.2 Enable

Enable

Enable
( bEnable ) Description: This method enables and disables connections Input: BOOL bEnable Output: None Return Code: None Remarks/Usage: Enabled connections are translated for analysis, disabled ones are not. Example: None Enable connection if True, disables it if False

IsEnabled

API-1079

5.11.2.3 IsEnabled

IsEnabled
( void ) Description: This method indicates whether a connection is enabled Input: None Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Indicates connection is disabled (FE_OK if enabled)

API-1080
5.12 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 methods defined for Entity objects are also available for CSys objects. For more information, see Section 5.1, "Common Entity Properties and Methods". Use the feCSys method of the FEMAP Application object to create CSys objects.

5.12.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. Therefore you must always specify an ID > 2. Property REAL8 x REAL8 y REAL8 z REAL8 rotx REAL8 roty REAL8 rotz INT4 layer INT4 color INT4 type INT4 defCSys STRING title Additional Properties REAL8 origin[0..2] REAL8 rotation[0..2] Accesses all three coordinates of the origin as a Variant. Same as using x, y, and z independently. Accesses all three components of the rotations as a Variant. Same as using rotx, roty, and rotz independently. The 3 x 3 direction cosine matrix that corresponds to the orientation of the coordinate system in global rectangular. The rows of the array are stored sequentially. The rotations, in degrees, of the coordinate system axes, from the global coordinate axes. These are ordered rotations about X, then the rotated Y axis, then the doubly-rotated Z. No matter what definition coordinate system is used, these are always relative to global coordinates. The ID of the layer associated with the coordinate system. The coordinate system color. The coordinate system type: 0=Rectangular, 1=Cylindrical, 2=Spherical. The ID of the definition coordinate system. Coordinate system title (maximum 79 characters). Description The coordinates of the origin of the coordinate system. They are always specified in global rectangular coordinates.

REAL8 matrix[0..8]

XYPoints

API-1081

5.12.2 CSys Object Methods


5.12.2.1 XYPoints

XYPoints
( origin, xaxis, xyplane ) Description: This method automatically updates the origin and rotations of a coordinate system based on three locations that you specify Input: REAL8 origin[0..2] REAL8 xaxis[0..2] REAL8 xyplane[0..2] Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None The operation failed. You probably did not correctly specify one of the coordinate locations The origin of the coordinate system. This, and all other locations, must be specified in global rectangular coordinates. 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. This point does not need to lie along any of the coordinate axes.

API-1082

5.13 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.13.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 INT4 layer INT4 color INT4 type INT4 StdPoint[0..4] or VARIANT vStdPoint INT4 attrPID REAL8 attrOrient[0..2] or VARIANT vattrOrient Description The ID of the layer associated with the curve. The curve color. The curve type: 0=Line, 1=Arc, 2=Circle, 3=Spline, 4=BSpline, 5=Solid, 6=Combined. The IDs of the points referenced by lines, arcs, circles, splines and solid lines. The Property ID of the meshing attribute. The orientation vector meshing attribute. Either a location or vector (based on attrOffsetType), specified in global rectangular coordinates. The meshing attribute defining the offset to be applied to elements. attrOffset[0][0..2] is at the beginning of the curve, attrOffset[1][0..2] is at the end. Specified in global rectangular coordinates. If doing radial offsets, attrOffset[0][0..2] contains the radial origin, attrOffset[1][0] contains the radial offset distance. 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. Type of offset for property attribute: 0=Offset by Vector, 1=Offset Radial, 2=Offset by Location. The release flags for the start and end of the curve. Nonzero if the associated degree of freedom is released.

REAL8 attrOffset[0..1][0..2] or VARIANT vattrOffset

INT4 attrOrientType

INT4 attrOffsetType INT4 attrRelease[0..1][0..5] or VARIANT vattrRelease

API-1083
Property INT4 Engine INT4 Address BOOL Suppressed INT4 InternalToBoundary INT4 InCombinedCurve Mesh Sizing INT4 MeshElem[0..159] or VARIANT vMeshElem REAL8 MeshBias[0..159] or VARIANT vMeshBias REAL8 MeshMaxParam[0..159] or VARIANT vMeshMaxParam BOOL LengthSpacing[0..159] or VARIANT vLengthSpacing BOOL CenterBias[0..159] or VARIANT vCenterBias BOOL GeometricBias[0..159] or VARIANT vGeometricBias BOOL HasCustomMesh For BSplines only INT4 BSplineOrder INT4 BSplineNumPoints INT4 BSplinePoint[0..109] or VARIANT vBSplinePoint REAL8 BSplineKnot[0..120] or VARIANT vBSplineKnot The order of the BSpline. The number of keypoints used to define the BSpline. The IDs of the points used to define the Bspline. The number of elements associated with the curve or this segment of a custom mesh size. The bias factor for these elements. Description The ID of the solid modeling engine used with this curve: 0=None, 1=Parasolid, 2=ACIS. The solid modeling engine geometry address. True if this curve is suppressed (will not be meshed). If this curve is internal to a multi-surface boundary, this property contains the ID of the boundary, otherwise 0. If this curve is used to define a combined curve, this property contains the ID of the combined curve, otherwise 0

The s parametric value along the curve at the end of this segment. If you do not use a custom mesh size, this will always have MeshMaxParam[0] = 1.0. True if elements are sized with equal length spacing. False if parametric spacing is used. True if center biasing is used. False if end biasing is used.

True if geometric biasing is used. False if linear biasing is used.

True if this is a custom mesh size, False otherwise.

The knot values associated with the BSpline.

API-1084
Property REAL8 BSplineWeight[0..120] or VARIANT vBSplineWeight REAL8 BSplineT0 REAL8 BSplineT1 BOOL BSplinePlanar BOOL BSplineClosed BOOL BSplineRational BOOL BSplinePeriodic True if the BSpline is planar. True if the BSpline is closed. True if the BSpline is rational. True if the BSpline is periodic. Description The weight values associated with the control points of the BSpline.

API-1085
5.13.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 Line Arc Circle Spline BSpline Solid Combined StdPoint Point Location StdPoint StdPoint StdPoint StdPoint BSplinePoint [0]=start, [1]=end [0]=center, [1]=start, [2]=along in direction from start to end, [3]=end [0]=center, [1]=start/end, [2]=90 deg., [3]=180 deg., [4]=270 deg. [0]=start, [1]=first keypoint, [2]=second keypoint, [3]=end [0]=start, ... [BSplineNumPoints-1]=end Points are not defined, unless this is a solid curve that represents a line, in which case [0]=start,[1]=end. [0]=start, [1]=end Description

API-1086

Reverse

5.13.2 Curve Object Methods


5.13.2.1 Reverse

Reverse
( void ) Description: This method reverses the direction of a curve. Input: None Output: None Return Code: FE_FAIL Remarks/Usage: This method will not work for solid curves. Example: None Unable to reverse the curve, probably a solid curve.

EndPoints

API-1087

5.13.2.2 EndPoints

EndPoints
( startPt, endPt ) Description: This method retrieves the IDs of the endpoints of the current curve. Input: None Output: INT4 startPt INT4 endPt Return Code: FE_FAIL 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 Unable to get the endpoints. Possibly curve has not been loaded, or not stored. The IDs of the starting and ending points on the curve.

API-1088

ArcCircleInfo

5.13.2.3 ArcCircleInfo

ArcCircleInfo
( center, normal, startPt, endPt, angle, radius ) Description: This method retrieves information about arcs and circles. Input: None Output: REAL8 center[0..2] REAL8 normal[0..2] REAL8 startPt[0..2] REAL8 endPt[0..2] REAL8 angle REAL8 radius Return Code: FE_FAIL Remarks/Usage: This method will only work for arc and circle curve types - not for solids that represent those types. Example: None Unable to get the information. Possibly the curve has not been loaded, or is not the correct type. The coordinates of the center of the circle. The vector components of the arc/circle normal direction. The coordinates of the starting point of the curve. The coordinates of the ending point of the curve. The subtended angle of the curve. The radius of the curve.

ParamToXYZ

API-1089

5.13.2.4 ParamToXYZ

ParamToXYZ
( s, xyz ) Description: This method retrieves the coordinates along the curve of a specified parametric location. Input: REAL8 s Output: REAL8 xyz[0..2] Return Code: FE_FAIL Remarks/Usage: This method will only work for any curve type. Example: None Unable to get the information. Possibly the curve has not been loaded. The coordinates of the parametric value along the curve. The parametric value (0<=s<=1) along the curve. 0=Start, 1=End.

API-1090

XYZToParam

5.13.2.5 XYZToParam

XYZToParam
( xyz, s ) Description: This method retrieves the parametric location along a curve closest to the specified coordinates. Input: REAL8 xyz[0..2] Output: REAL8 s Return Code: FE_FAIL Remarks/Usage: This method will only work for any curve type. Example: None Unable to get the information. Possibly the curve has not been loaded. The parametric value (0<=s<=1) along the curve. 0=Start, 1=End. The coordinates of the location of interest.

Project

API-1091

5.13.2.6 Project

Project
( fromXYZ, toXYZ ) Description: This method projects a location onto a curve. Input: REAL8 fromXYZ[0..2] Output: REAL8 toXYZ[0..2] Return Code: FE_FAIL Remarks/Usage: This method will only work for any curve type. Example: None Unable to get the information. Possibly the curve has not been loaded. The coordinates of the projected location. The coordinates of the initial location.

API-1092
5.13.2.7 Tangent

Tangent

Tangent
( outward, fromXYZ, tangent ) Description: This method finds the tangent to a curve at a specified location. Input: BOOL outward REAL8 fromXYZ[0..2] Output: REAL8 tangent[0..2] Return Code: FE_FAIL Remarks/Usage: This method will only work for any curve type. Example: None Unable to get the information. Possibly the curve has not been loaded. The vector components of the tangent. If True, the tangent along the first half of the curve (s<0.5) is computed in the opposite direction from the curve. If False, all tangents are computed in the curve direction from start to end. The coordinates of the initial location.

Length

API-1093

5.13.2.8 Length

Length
( void ) Description: This method returns the length of a curve. Input: None Output: None Return Code: Length Remarks/Usage: This method will only work for any curve type. Example: None The length of the curve. 0.0 for any invalid curve.

API-1094

PartialLength

5.13.2.9 PartialLength

PartialLength
( s0, s1 ) Description: This method returns the length of a curve between two parametric locations. Input: REAL8 s0 REAL8 s1 Output: None Return Code: Length 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 The length of the curve. 0.0 for any invalid curve. The starting parametric location. The ending parametric location.

ParamAtLength

API-1095

5.13.2.10 ParamAtLength

ParamAtLength
( fromstart, length ) Description: This method returns the parameter value at a specified distance from the end of a curve. Input: BOOL fromstart REAL8 length Output: None Return Code: S 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 The parametric value corresponding to the location along the curve. If True, length is measured from the start of the curve. If False, it is measured from the end. The distance along the curve where the parameter value is determined.

API-1096

MeshParam

5.13.2.11 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 REAL8 meshParam[0..numParam-1] Output: None Return Code: FE_FAIL 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: Unable to determine the mesh locations. Possibly the curve has not been loaded or saved. The number of parametric locations in meshParam. The parametric locations along the curve where nodes will be meshed.

MeshParam

API-1097

MeshParam
( numParam, meshParam ) Sub Main() ' This function creates nodes at mesh locations ' on all curves in the model Dim Set Dim Set Dim Set Dim Dim Dim Dim App As femap.model App = GetObject(, "femap.model") cu As Object cu = App.feCurve nd As Object nd = App.feNode rc As Long n As Long meshloc As Variant 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

API-1098

AddMeshLoc

5.13.2.12 AddMeshLoc

AddMeshLoc
( s, numElem, spacing, biasMethod, bias, biasLoc ) Description: This method adds a custom mesh size location at the specified parametric location. Input: REAL8 s INT4 numElem INT4 spacing INT4 biasMethod REAL8 bias The parametric location along the curve - must be between 0.0 and 1.0 - where the mesh location will be added. The number of elements between this location and the preceding one (at the next lower s value). If 0, then parametric spacing is used; otherwise, constant length spacing is used. 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 biased. A value of 2.0 means that the largest element is approximately 2.0 times the length of the smallest. 0=Small elements at start of curve, 1=Small elements at end of curve, 2=Small elements at center of curve, 3=Small elements at both ends of curve.

INT4 biasLoc Output: None Return Code: FE_FAIL Remarks/Usage:

Unable to add the mesh location. Possibly the curve has not been loaded or saved. Possibly there are already too many locations defined.

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

AddMeshLocXYZ

API-1099

5.13.2.13 AddMeshLocXYZ

AddMeshLocXYZ
( xyz, numElem, spacing, biasMethod, bias, biasLoc ) Description: This method adds a custom mesh size location at the specified coordinate location. Input: REAL8 xyz[0..2] The coordinates of the location for the mesh location. Must be in 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 (at the next lower s value). If 0, then parametric spacing is used. Otherwise, constant length spacing is used. 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 biased. A value of 2.0 means that the largest element is approximately 2.0 times the length of the smallest. 0=Small elements at start of curve, 1=Small elements at end of curve, 2=Small elements at center of curve, 3=Small elements at both ends of curve.

INT4 numElem INT4 spacing INT4 biasMethod REAL8 bias

INT4 biasLoc Output: None Return Code: FE_FAIL Remarks/Usage:

Unable to add the mesh location. Possibly the curve has not been loaded or saved. Possibly there are already too many locations defined.

This method is essentially the same as AddMeshLoc, except that it uses a coordinate location instead of a parametric location. Example: None

API-1100
5.13.2.14 Nodes

Nodes

Nodes
( getBoundary, getInterior, numNodes, nodeID ) Description: This method returns the nodes that are attached to this curve Input: BOOL getBoundary BOOL getInterior Output: INT4 numNodes INT4 nodeID[0..numNodes-1] Return Code: FE_FAIL FE_NOT_EXIST FE_NO_MEMORY Remarks/Usage: None Example: Unable to return nodes, possibly none exist. No nodes were attached to the curve in the manner you selected. Insufficient memory to allocate list of attached nodes. The number of nodes returned. The IDs of the selected nodes which are attached to the curve. If True, the nodes attached to the curve endpoints are selected If True, the nodes attached to the interior of the curve (not the endpoints) are selected

Nodes

API-1101

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 Set Dim Set Dim Dim Dim Dim cu As Curve cu = App.feCurve nd As Object nd = App.feNode rc As Long Count As Long Nodes As Variant 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

API-1102

NodesAsSet

5.13.2.15 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 BOOL getInterior INT4 nSetID BOOL bClear Output: None Return Code: FE_FAIL Remarks/Usage: Same as Nodes, except that the IDs are returned in a Set Object rather than an array. Example: None Unable to return nodes, possibly none exist. If True, the nodes attached to the curve endpoints are selected If True, the nodes attached to the interior of the curve (not the endpoints) are selected The ID of a Set Object to receive the Node IDs If True, the Set is cleared prior to loading the Node IDs

Elements

API-1103

5.13.2.16 Elements

Elements
( numElems, elemID ) Description: This method returns the elements that are attached to this curve Input: None Output: INT4 numElems INT4 elemID[0..numElems-1] Return Code: FE_FAIL FE_NOT_EXIST FE_NO_MEMORY 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 Unable to return elements, possibly none exist. No elements were attached to the curve in the manner you selected. Insufficient memory to allocate list of attached elements. The number of elements returned. The IDs of the selected elements which are attached to the curve.

API-1104

ElementsAsSet

5.13.2.17 ElementsAsSet

ElementsAsSet
( nSetID, bClear ) Description: This method returns the elements that are attached to this curve in a Set Object Input: INT4 nSetID BOOL bClear Output: None Return Code: FE_FAIL 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 Unable to return elements, possibly none exist. The ID of the Set Object that receives the Element IDs If True, the Set is cleared before it is loaded with Element IDs.

ElementsWithFaces

API-1105

5.13.2.18 ElementsWithFaces

ElementsWithFaces
( numElems, elemID ) Description: This method returns the elements that have faces which are attached to this curve Input: None Output: INT4 numElems INT4 elemID[0..numElems-1] Return Code: FE_FAIL FE_NOT_EXIST FE_NO_MEMORY 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 Unable to return elements, possibly none exist. No elements were attached to the curve in the manner you selected. Insufficient memory to allocate list of attached elements. The number of elements returned. The IDs of the selected elements which have faces attached to the curve.

API-1106

BoundingBox

5.13.2.19 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 coordinates. Box[0] - Minimum X, Box[3] - Maximum X Box[1] - Minimum Y, Box[4] - Maximum Y Box[2] - Minimum Z, Box[5] - Maximum Z

INT4 Box[0..5]

Return Code: FE_FAIL FE_INVALID Remarks/Usage: This method always retrieves a box that is aligned with Global Rectangular coordinates, not an aligned box of minimum volume. Example: None Unable to find a bounding box. Object does not contain valid geometry. This method only works for Parasolid-based geometry.

GetMeshLoc

API-1107

5.13.2.20 GetMeshLoc

GetMeshLoc
( numLoc, meshParam ) Description: Retrieves the parametric values along the curve of the mesh locations. Input: None Output: INT4 numLoc INT4 meshParam[0..numLoc1] Return Code: FE_FAIL Remarks/Usage: None Example: None Unable to find mesh locations The number of mesh locations on the curve The parametric locations

API-1108

GetMeshLocXYZ

5.13.2.21 GetMeshLocXYZ

GetMeshLocXYZ
( numLoc, meshXYZ ) Description: Retrieves the global coordinates of the mesh locations along the curve. Input: None Output: INT4 numLoc INT4 meshXYZ[0..numLoc-1] Return Code: FE_FAIL Remarks/Usage: Similar to GetMeshLoc, but this method returns coordinate rather than parametric values. Example: None Unable to find mesh locations The number of mesh locations on the curve The global coordinates of the mesh locations

IsSmoothEdge

API-1109

5.13.2.22 IsSmoothEdge

IsSmoothEdge
( dAngle, nConvexityType ) Description: Determines whether the adjacent surfaces of a solid meet smoothly at this curve Input: REAL8 dAngle Output: INT4 nConvexityType Return Code: FE_FAIL FE_INVALID FE_NOT_AVAILABLE Remarks/Usage: None Example: None Unable to test smoothness and convexity Not smooth Curve is not a curve on a solid 0=Smooth and Flat, 1=Smooth and Convex, 2=Smooth and Concave, 3=Smooth with Inflection, 4=Smooth and Variable Convex/Concave The maximum angle that will be considered as smooth

API-1110

Surfaces

5.13.2.23 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 replaced by the ID of the Combined Surface, 2=List contains both the underlying and combined surfaces.

INT4 nCombinedMode

Output: INT4 numSurfaces INT4 surfaceID[0..numSurfaces-1] Return Code: FE_FAIL Remarks/Usage: This function only works for Solid or Composite Curves that are defined on Solids. Same as SurfacesAsSet except IDs are returned in an Array rather than in a Set. Example: None Unable to get surfaces The number of surfaces in the returned array The IDs of the surfaces.

SurfacesAsSet

API-1111

5.13.2.24 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 replaced by the ID of the Combined Surface, 2=List contains both the underlying and combined surfaces. ID of the Set Object to receive the Surface IDs If True, the Set is cleared before loading the surfaces

INT4 nCombinedMode

INT4 nSetID BOOL bClear Output: None Return Code: FE_FAIL Remarks/Usage:

Unable to get surfaces

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

API-1112
5.13.2.25 Normal

Normal

Normal
( xyz, vNormal ) Description: Returns the average of the surface normals at a specified location along the curve Input: REAL8 xyz[0..2] Output: REAL8 vNormal[0..2] Return Code: FE_FAIL 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 Unable to get surfaces The average surface normal at that location The Global Rectangular coordinates of a location along the curve where you want to find the normal

IsCombinedCurve

API-1113

5.13.2.26 IsCombinedCurve

IsCombinedCurve
( void ) Description: Indicates whether or not the curve is a combined curve Input: None Output: None Return Code: FE_OK FE_FAIL Remarks/Usage: You can also use the type property of the curve to determine whether a curve is a combined curve. Example: None Curve is a combined curve Curve is not a combined curve

API-1114

GetCombinedCurves

5.13.2.27 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 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)

INT4 curveID[0..nNumCurves]

Return Code: FE_FAIL FE_INVALID Remarks/Usage: None Example: None Not a combined curve Invalid number of curves defining the composite curve

CombinedCurvesAsSet

API-1115

5.13.2.28 CombinedCurvesAsSet

CombinedCurvesAsSet
( nSetID, bClear ) Description: Returns the IDs of the curves used to define a combined curve Input: INT4 nSetID BOOL bClear Output: None Return Code: FE_FAIL FE_INVALID Remarks/Usage: This method is similar to GetCombinedCurves, however there is no indication of forward/reverse direction when using this method. All IDs are positive and stored in the Set Object. Example: None Not a combined curve Invalid number of curves defining the composite curve The ID of a Set that will receive the curve IDs If True, the Set is cleared prior to loading the curve IDs

API-1116

CombineCurves

5.13.2.29 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 combined curve - starting at the beginning of the curve. If you need to 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.

INT4 curveID[0..nNumCurves]

Output: None Return Code: FE_FAIL FE_INVALID FE_NOT_EXIST Remarks/Usage: The curves supplied to this method must be properly ordered, connected and able to create a combined curve. Example: None Could not create combined curve. Too many curves specified. A supplied curve does not exist.

Facets

API-1117

5.13.2.30 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 REAL8 xyzPoint[0..(3*numPoints)-1] Return Code: FE_FAIL Remarks/Usage: The curve is drawn by simply connecting these locations sequentially. Example: None Could not retrieve facets. The number of points returned in xyzPoint The locations along the curve, stored [x0,y0,z0,x1,y1,z1,...]

API-1118

PartialLengthXYZ

5.13.2.31 PartialLengthXYZ

PartialLengthXYZ
( xyz0, xyz1 ) Description: This method returns the length of a curve between two XYZ locations. Input: REAL8 xyz0[0..2] REAL8 xyz1[0..2] Output: None Return Code: Length Remarks/Usage: This method will only work for any curve type. Example: None The length of the curve. 0.0 for any invalid curve. The coordinates of the location of interest. The coordinates of the location of interest.

PartialLengthNode

API-1119

5.13.2.32 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 INT4 nID2 Output: None Return Code: Length Remarks/Usage: This method will work for any curve type. Example: None The length of the curve. 0.0 for any invalid curve. The ID of the first Node. The ID of the second Node

API-1120

IsStraight

5.13.2.33 IsStraight

IsStraight
() Description: Determines whether the curve is a straight line Input: None Output: None Return Code: FE_OK FE_FAIL Remarks/Usage: None Example: None Curve is a straight line Not a straight line.

IsNonManifold

API-1121

5.13.2.34 IsNonManifold

IsNonManifold
() Description: Determines whether the curve is nonmanifold Input: None Output: None Return Code: FE_OK FE_FAIL Remarks/Usage: Nonmanifold curves are ones that bound more than 2 surfaces. Example: None Curve is nonmanifold Manifold curve

API-1122

IsSmooth

5.13.2.35 IsSmooth

IsSmooth
( dAngle ) Description: Determines whether the surfaces bounded by this curve are tangent within a specified angle along the curve Input: REAL8 dAngle Output: None Return Code: FE_OK FE_FAIL Remarks/Usage: None Example: None Curve is smooth Not a smooth curve The maximum angle below which the curve is considered to be a smooth connection between the adjoining surfaces.

TangentAtEnds

API-1123

5.13.2.36 TangentAtEnds

TangentAtEnds
( outward, pvEnd1Tan, pvEnd2Tan ) Description: Determines whether the surfaces bounded by this curve are tangent within a specified angle along the curve Input: BOOL outward Output: REAL8 pvEnd1Tan[0..2] REAL8 pvEnd2Tan[0..2] Return Code: FE_BAD_TYPE FE_FAIL Remarks/Usage: This method is only supported for Solid and CompositeCurves. Example: None Curve type is not supported for this method Unable to compute tangents The tangent at the start of the curve The tangent at the end of the curve If true, the outward pointing tangents are computed at each end. If False, tangents along the curve in the parametric direction of the curve are computed.

API-1124

CurvatureAcrossEdge

5.13.2.37 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 REAL8 pdMaxVal REAL8 pdAngleBetweenNormals Return Code: FE_BAD_TYPE FE_FAIL Remarks/Usage: This method is only supported for Solid and CompositeCurves. Example: None Curve type is not supported for this method Unable to compute values Minimum radius of curvature Maximum radius of curvature Maximum angle between the adjacent surface normals

ClosestPointToSurface

API-1125

5.13.2.38 ClosestPointToSurface

ClosestPointToSurface
( nSurfaceID, pdX, pdY, pdZ, pdDistance, pdAngleOfTangentToSurfaceNormal ) Description: Finds the closest point on the curve to a selected surface Input: INT4 nSurfaceID Output: REAL8 pdX REAL8 pdY REAL8 pdZ REAL8 pdDistance REAL8 pdAngleOfTangentToSurfaceNormal Return Code: FE_BAD_TYPE FE_FAIL FE_INVALID FE_NOT_AVAILABLE Remarks/Usage: This method is only supported for Solid and CompositeCurves. Example: None Curve type is not supported for this method Unable to compute values Unable to find closest approach Unable to locate selected surface The distance from the point to the surface The Angle betweent the Curve Tangent and the surface normal at the location of closest approach The coordinates of the closest location on the curve to the surface The surface to test for closest approach

API-1126

ClosestPointToSurface

API-1127
5.14 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.14.1 Data Surface Object Properties


Data Surfaces are always stored with a SetID=1, and the ID equal to the surface ID. Property STRING title INT4 csys BOOL vector INT4 InterpMin REAL8 InterpPercent INT4 TabularUdefOpt REAL8 TabularUdefVal Description Data Surface title (maximum 79 characters). Coordinate System in which the Data Surface should be evaluated in. Flag indicating that this data surface contains vector data. (Arbitrary 3D)Minimum number of variation locations to include in interpolation. (Arbituary 3D) Percent of variation locations to include in interpolation. (Tabular XYZ) 0 = Interpolate from closest, 1 = Constant value. (Tabular XYZ)Value for TabularUdefOpt (Output Map)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 (Output Map)X value used if target mapping falls outside of source mesh and MapOption is set to 1 (FMO_VALUE) (Output Map)Y value used if target mapping falls outside of source mesh and MapOption is set to 1 (FMO_VALUE) (Output Map)Z value used if target mapping falls outside of source mesh and MapOption is set to 1 (FMO_VALUE) (Along Coordinates)Surface ID in which to project Along Curve Data surface drive spline. (Between, Tabular)Surface ID that defines the parametric space.

INT4 OutMapOption

REAL8 DefOutMapValue1

REAL8 DefOutMapValue2

REAL8 DefOutMapValue3

INT4 AlongCoordProjectID INT4 ParamCurveSurfID

API-1128

GetDataSurf

5.14.2 Data Surface Methods


The following methods are available in addition to the standard entity methods.
5.14.2.1 GetDataSurf

GetDataSurf
(EntID) Description: This method retrieves the Data Surface ID Input: INT4 EntID Output: None Return Code: FE_FAIL Remarks/Usage: Unable to get the data surface. ID of the Data Surface to retrieve.

Example:

PutDataSurf

API-1129

5.14.2.2 PutDataSurf

PutDataSurf
(EntID) Description: This method stores the Data Surface in the model database with the specified ID. Input: INT4 EntID Output: None Return Code: FE_FAIL Remarks/Usage: Unable to store the data surface. ID of the Data Surface to store.

Example:

API-1130

VarAlongCoord

5.14.2.3 VarAlongCoord

VarAlongCoord
(numEntries, xyz, val_xyz) Description: This method creates a Along Coordinates Data Surface. Input: INT4 numEntries REAL8 xyz[0..(3*numEntries)1] or VARIANT vxyz REAL8 val_xyz[0..(3*numEntries )-1] or VARIANT vval_xyz Output: None Return Code: FE_FAIL Remarks/Usage: The following Data Surface Object properties that are valid: 1) AlongCoordProjectID Example: Unable to create the Data Surface. Number of variation locations used to create Data Surface xyz is an array of the variation coordinates. In the array, there must be 3 entries for each location, followed by the 3 for the next location.

val_xyz is an array of the variation values. In the array, there must be 3 entries for the variation location, followed by the 3 variation values for the next location. If Data Surface is a Scalar then just define the y,z values as zero.

VarBetween2Pts

API-1131

5.14.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] or VARIANT vxyz REAL8 val_xyz[0..(3*2)-1] or VARIANT vval_xyz Output: None Return Code: FE_FAIL Remarks/Usage: The following Data Surface Object properties that are valid: 1) csys Unable to create the Data Surface. xyz is an array of the variation coordinates. In the array, there must be 3 entries for each location, followed by the 3 for the next location. val_xyz is an array of the variation values. In the array, there must be 3 entries for the variation location, followed by the 3 variation values for the next location. If Data Surface is a Scalar then just define the y,z values as zero.

API-1132

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) = xyz(j*3+1) = xyz(j*3+2) =

j*2 0 0 j*1 j*2 0

xyzVal(j*3+0) = xyzVal(j*3+1) = xyzVal(j*3+2) = Next j ds.vector=True

rc = ds.VarBetween2Pts( xyz, xyzVal ) rc =ds.PutDataSurf( App.Info_NextID(FT_DATA_SURF) ) End Sub

VarBetween4Pts

API-1133

5.14.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] or VARIANT vxyz REAL8 val_xyz[0..(3*4)-1] or VARIANT vval_xyz Output: None Return Code: FE_FAIL Remarks/Usage: Data Surface Object properties that are valid: 1) csys Example: Unable to create the Data Surface. xyz is an array of the variation coordinates. In the array, there must be 3 entries for each location, followed by the 3 for the next location. val_xyz is an array of the variation values. In the array, there must be 3 entries for the variation location, followed by the 3 variation values for the next location. If Data Surface is a Scalar then just define the y,z values as zero.

API-1134

VarBetween8Pts

5.14.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] or VARIANT vxyz REAL8 val_xyz[0..(3*8)-1] or VARIANT vval_xyz Output: None Return Code: FE_FAIL Remarks/Usage: Data Surface Object properties that are valid: 1) csys Example: Unable to create the Data Surface. xyz is an array of the variation coordinates. In the array, there must be 3 entries for each location, followed by the 3 for the next location. val_xyz is an array of the variation values. In the array, there must be 3 entries for the variation location, followed by the 3 variation values for the next location. If Data Surface is a Scalar then just define the y,z values as zero.

VarParametric2Pt

API-1135

5.14.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] or VARIANT vxyz REAL8 val_xyz[0..(3*2)-1] or VARIANT vval_xyz Output: None Return Code: FE_FAIL Remarks/Usage: The following Data Surface Object properties that are valid: 1) csys 2) ParamCurveSurfID Example: Unable to create the Data Surface. xyz is an array of the variation coordinates. In the array, there must be 3 entries for each location, followed by the 3 for the next location. val_xyz is an array of the variation values. In the array, there must be 3 entries for the variation location, followed by the 3 variation values for the next location. If Data Surface is a Scalar then just define the y,z values as zero.

API-1136

VarParametric4Pt

5.14.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] or VARIANT vxyz REAL8 val_xyz[0..(3*4)-1] or VARIANT vval_xyz Output: None Return Code: FE_FAIL Remarks/Usage: The following Data Surface Object properties that are valid: 1) csys 2) ParamCurveSurfID Example: Unable to create the Data Surface. xyz is an array of the variation coordinates. In the array, there must be 3 entries for each location, followed by the 3 for the next location. val_xyz is an array of the variation values. In the array, there must be 3 entries for the variation location, followed by the 3 variation values for the next location. If Data Surface is a Scalar then just define the y,z values as zero.

VarOutputMap

API-1137

5.14.2.9 VarOutputMap

VarOutputMap
(nModelID, groupID, outSetID, outVecID) Description: This method creates a Output Map Data Surface. Input: INT4 nModelID INT4 groupID INT4 outSetID INT4 outVecID Output: None Return Code: FE_FAIL Remarks/Usage: The following Data Surface Object properties that are valid: 1) csys 2) OutMapOption 3) DefOutMapValue1 4) DefOutMapValue2 5) DefOutMapValue3 Example: Unable to create the Data Surface. ID of the source model containing output to be mapped. ID of group of entities in source model from which to map output. ID of output set containing data from which to map output. ID of output vector containing data from which to map output.

API-1138

VarMeshSurface

5.14.2.10 VarMeshSurface

VarMeshSurface
(setID, eDataType, sX, sY, sZ) Description: This method creates a Output Map Data Surface. Input: INT4 setID INT4 eDataType STRING sX STRING sY STRING sZ Output: None Return Code: FE_FAIL Remarks/Usage: The following Data Surface Object properties that are valid: 1) csys Example: Unable to create the Data Surface. ID of the femap set containing the Data Surface entities. Type of entity in Data Surface. For more information, see Section 3.3.5, "Entity Types". Only Node and Element types are valid. String containing value or expression for x cell in Data Surface. String containing value or expression for y cell in Data Surface. String containing value or expression for z cell in Data Surface.

VarSpatialUVtable

API-1139

5.14.2.11 VarSpatialUVtable

VarSpatialUVtable
(uDivisions, vDivisions) Description: This method creates a Tabular Parametric uv Data Surface. Input: INT4 uDivisions INT4 vDivisions Output: None Return Code: FE_FAIL Remarks/Usage: The following Data Surface Object properties that are valid: 1) TabularUdefOption 2) TabularUdefVal Example: Unable to create the Data Surface. Number of divisions in the u direction. Number of divisions in the v direction.

API-1140

VarSpatialXYZTable

5.14.2.12 VarSpatialXYZTable

VarSpatialXYZTable
(xDivisions, yDivisions, zDivisions) Description: This method creates a Output Map Data Surface. Input: INT4 xDivisions INT4 yDivisions INT4 zDivisions Output: None Return Code: FE_FAIL Remarks/Usage: The following Data Surface Object properties that are valid: 1) csys 2) TabularUdefOption 3) TabularUdefVal Example: Unable to create the Data Surface. Number of divisions in the 1st dimension. Number of divisions in the 2st dimension. Number of divisions in the 3st dimension.

VarArbitrary3DCoord

API-1141

5.14.2.13 VarArbitrary3DCoord

VarArbitrary3DCoord
(numEntries, xyz, val_xyz) Description: This method creates a Arbitrary 3D Data Surface. Input: INT4 numEntries REAL8 xyz[0..(3*numEntries)1] or VARIANT vxyz REAL8 val_xyz[0..(3*numEntries)-1] or VARIANT vval_xyz Output: None Return Code: FE_FAIL Remarks/Usage: The following Data Surface Object properties that are valid: 1) csys 2) InterpPercent 3) InterpMin Example: Unable to create the Data Surface. Number of variation locations in xyz, val_xyz arrays. xyz is an array of the variation coordinates. In the array, there must be 3 entries for each location, followed by the 3 for the next location.

val_xyz is an array of the variation values. In the array, there must be 3 entries for the variation location, followed by the 3 variation values for the next location. If Data Surface is a Scalar then just define the y,z values as zero.

API-1142

VarEquation

5.14.2.14 VarEquation

VarEquation
(equation) Description: This method creates a Arbitrary 3D Data Surface. Input: STRING Output: None Return Code: FE_FAIL Remarks/Usage: The following Data Surface Object properties that are valid: 1) csys Example: Unable to create the Data Surface. String containing equation.

GetCellValue

API-1143

5.14.2.15 GetCellValue

GetCellValue
(nPage, nRow, nCol, nComponent, dValue) Description: This method retrieves the value of a cell. Input: INT4 nPage INT4 nRow INT4 nCol INT4 nComponent Output: REAL8 dValue Return Code: FE_NOT_AVAILABLE Remarks/Usage: Cell is Blank Value of the cell. Page containing cell to retrieve value from Row containing cell to retrieve value from. Column containing cell to retrieve value from Component of the value vector in which to retrieve value from. Component: Scalar = 0, Vector = 0..3

Example:

API-1144

SetCellValue

5.14.2.16 SetCellValue

SetCellValue
(nPage, nRow, nCol, nComponent, rVal) Description: This method sets the value of a cell. Input: INT4 nPage INT4 nRow INT4 nCol INT4 nComponent REAL8 rVal Output: None Return Code: FE_NOT_AVAILABLE Remarks/Usage: Cell does not exist Page containing cell to set value. Row containing cell to set value. Column containing cell to set value. Component of the value vector in which to set value for. Components: Scalar = 0, Vector = 0..3 Value to set.

Example:

SetCellEquation

API-1145

5.14.2.17 SetCellEquation

SetCellEquation
(nPage, nRow, nCol, nComponent, equation) Description: This method sets the equation of a cell. Input: INT4 nPage INT4 nRow INT4 nCol INT4 nComponent STRING equation Output: None Return Code: FE_NOT_AVAILABLE Remarks/Usage: Cell does not exist Page containing cell to set. Row containing cell to set. Column containing cell to set. Component of the value vector in which to set. Components: Scalar = 0, Vector = 0..3 Equation to set the cell to.

Example:

API-1146

GetColumnTitle

5.14.2.18 GetColumnTitle

GetColumnTitle
(nPage, nCol, title) Description: This method retrieves the title of a column. Input: INT4 nPage INT4 nCol Output: STRING Title Return Code: FE_FAIL Remarks/Usage: Unable to get title. Title of column. Page containing column to retrieve title from Column retrieve title from.

Example:

GetColumnValue

API-1147

5.14.2.19 GetColumnValue

GetColumnValue
(nPage, nCol, rVal) Description: This method retrieves the value of a column. Input: INT4 nPage INT4 nCol Output: REAL8 rVal Return Code: FE_NOT_AVAILABLE Remarks/Usage: Column Value is blank. Value of column. Page containing column to retrieve value from Column retrieve value from.

Example:

API-1148

GetRowTitle

5.14.2.20 GetRowTitle

GetRowTitle
(nPage, nRow, sTitle) Description: This method retrieves the title of a row. Input: INT4 nPage INT4 nRow Output: STRING sTitle Return Code: FE_FAIL Remarks/Usage: Unable to get title. Title of row Page containing row to retrieve title from Row to retrieve title from.

Example:

SetRowTitle

API-1149

5.14.2.21 SetRowTitle

SetRowTitle
(nPage, nRow, sTitle) Description: This method sets the title of a row. Input: INT4 nPage INT4 nRow STRING sTitle Output: None Return Code: FE_FAIL Remarks/Usage: Unable to get title. Page containing row to set title for Row to set title for. Title of row.

Example:

API-1150

GetRowValue

5.14.2.22 GetRowValue

GetRowValue
(nPage, nRow, rVal) Description: This method retrieves the title of a row. Input: INT4 nPage INT4 nRow Output: REAL8 rVal Return Code: FE_NOT_AVAILABLE Remarks/Usage: Row is blank. Value of row Page containing row to retrieve value from Row to retrieve value from.

Example:

SetRowValue

API-1151

5.14.2.23 SetRowValue

SetRowValue
(nPage, nRow, sTitle) Description: This method sets the value of a row. Input: INT4 nPage INT4 nRow REAL8 rVal Output: None Return Code: FE_FAIL Remarks/Usage: Unable to set value. Page containing row to set value for. Row to set value for. Value of row.

Example:

API-1152

GetPageTitle

5.14.2.24 GetPageTitle

GetPageTitle
(nPage, sTitle) Description: This method retrieves the title of a page. Input: INT4 nPage Output: STRING sTitle Return Code: FE_FAIL Remarks/Usage: Unable to get title. Title of page. Page to retrieve title from.

Example:

SetPageTitle

API-1153

5.14.2.25 SetPageTitle

SetPageTitle
(nPage, sTitle) Description: This method sets the title of a page. Input: INT4 nPage STRING sTitle Output: None Return Code: FE_FAIL Remarks/Usage: Unable to set page title. Page to set title. Title of page.

Example:

API-1154

GetPageValue

5.14.2.26 GetPageValue

GetPageValue
(nPage, rVal) Description: This method retrieves the value of a page. Input: INT4 nPage Output: REAL8 rVal Return Code: FE_NOT_AVAILABLE Remarks/Usage: Unable to get value. Value of page. Page to retrieve value from.

Example:

SetPageValue

API-1155

5.14.2.27 SetPageValue

SetPageValue
(nPage, rval) Description: This method sets the value of a page. Input: INT4 nPage REAL8 rVal Output: None Return Code: FE_FAIL Remarks/Usage: Unable to set page value. Page to set value. Value of page.

Example:

API-1156

SetColumTitle

5.14.2.28 SetColumTitle

SetColumTitle
(nPage, nCol, sTitle) Description: This method set the title of a column. Input: INT4 nPage INT4 nCol STRING sTitle Output: None Return Code: FE_FAIL Remarks/Usage: Unable to set title. Page that contains the column to set. Column to set. Title to set.

Example:

SetColumValue

API-1157

5.14.2.29 SetColumValue

SetColumValue
(nPage, nCol, rVal) Description: This method sets the value of a column. Input: INT4 nPage INT4 nCol REAL8 Output: None Return Code: FE_FAIL Remarks/Usage: Unable to set value. Page that contains the column to set. Column to set. Value to set.

Example:

API-1158

SetCellBlank

5.14.2.30 SetCellBlank

SetCellBlank
(nPage, nRow, nCol, nComponent) Description: This method set a cell to blank. Input: INT4 nPage INT4 nRow INT4 nCol INT4 nComponent Output: None Return Code: FE_FAIL Remarks/Usage: Unable to set cell to blank. Page that contains the cell to set. Row containing cell to set. Column containing cell to set. Component of value vector to set.

Example:

GetDataSurfInfo

API-1159

5.14.2.31 GetDataSurfInfo

GetDataSurfInfo
(nPages, nComponent, sTitle) Description: This method retrieves Data Surface information. Input: None Output: INT4 nPages INT4 nComponent STRING sTitle Return Code: FE_FAIL Remarks/Usage: Unable to get Data Surface info. Number of Pages in Data Surface Number of components for Data Surface Title of Data Surface

Example:

API-1160

GetPageInfo

5.14.2.32 GetPageInfo

GetPageInfo
(nPage, nRows, nCols) Description: This method retrieves page information. Input: INT4 nPage Output: INT4 nRows INT4 nCols Return Code: FE_FAIL Remarks/Usage: Unable to get page info. Number of Row in page Number of Columns in page. Page to retrieve info for.

Example:

Resize

API-1161

5.14.2.33 Resize

Resize
(nPage, nRow, nCol, bVector) Description: This method resizes the Data Surface grid. Input: INT4 nPage INT4 nRow INT4 nCol BOOL bVector Output: None Return Code: FE_TOO_SMALL Remarks/Usage: Grid size is invalid. Number of Pages. Number of Rows. Number of Columns. Flag for vector Data Surface.

Example:

API-1162

Evaluate

5.14.2.34 Evaluate

Evaluate
(geomID, eDataType, MapSetID, isElemental) Description: This method Evaluates the Data Surface prior to calling GetData(). Input: INT4 geomID Geometry supplying parametric space. 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 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) ID of the Femap Set containing entities to map the Data Surface to. (Output Map Data Surface) Flag for elemental output.

INT4 DataType

INT4 MapSetID BOOL isElemental Output: None Return Code: FE_FAIL Remarks/Usage:

Unable to evaluate Data Surface.

Example:

GetData

API-1163

5.14.2.35 GetData

GetData
(geomID, feaID, Coord, answer, valXYZ) Description: This method gets the computed Data Surface value at the independent variable. Input: INT4 geomID INT4 feaID IREAL8 Coord[0..3] or VARIANT Coord Output: REAL8 answer REAL8 valXYZ[0..3] or 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 Set Dim Dim Dim Set dDim ds As femap.DataSurf ds = App.feDataSurf Coord(3) As Double ans As Double entSet As femap.Set entSet = App.feSet Computed value for Scalar Data Surface. Magnitude for Vector Data Surface. Computed vector components for Vector Data Surfaces. Between 2,4 Point Parametric Data Surface: ID of curve/surface supplying parametric space. Mesh, Output Map Data Surface: ID of mesh entity. Equation Data Surface: ID of Mesh entity for id variable. Along Coordinates, Between Coordinates, Tabular, Arbitrary 3D, Equation Data Surfaces: Location where the Data Surface will be evaluated at.

API-1164
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-1165

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-1166

GetDataSurfType

5.14.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 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

type

Remarks/Usage:

Example:

API-1167
5.15 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.15.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 INT4 color INT4 layer The element color. 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 (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, StiffnessMatrix=30, CurvedTube=31, PlotOnlyPlate=32, SlideLine=33, Contact=34, Axisymmetric Shell (Lin=35 Para=36), Weld/Fastener=38 ID of property referenced by the element.This is not required for certain property types, like plot-only and rigid elements. These elements have no properties or materials. The shape of the element: 0=Line, 2=Tri3, 3=Tri6, 4=Quad4, 5=Quad8, 6=Tetra4, 7=Wedge6, 8=Brick8, 9=Point, 10=Tetra10, 11=Wedge15, 12=Brick20, 13=Rigid, 15=MultiList, 16=Contact, 17=Weld The orientation node for elements like bars and beams that 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. The ID of the geometry associated to this element. This is a curveID for line elements, a surface ID for planar elements, and a solid/volume ID for solid elements. Description

INT4 type

INT4 propID

INT4 topology

INT4 orientID BOOL MaterialAngleFlag INT4 geomID

API-1168
Property INT4 formulation[0..1] or VARIANT vformulation INT4 contact[0..1] or VARIANT vcontact INT4 node[0..19] or VARIANT vnode REAL8 orient[0..2] or VARIANT vorient REAL8 offset[0..1][0..2] or VARIANT voffset BOOL release[0..1][0..5] or VARIANT vrelease Additional Properties INT4 nodes[0..19] BOOL RigidInterpolate REAL8 RigidThermalExpansion REAL8 RigidInterpolationFactor REAL8 PlateOffset REAL8 MaterialAngle INT4 connectTYPE[0..1] or VARIANT vconnectTYPE INT4 connectSEG[0..1] or VARIANT vconnectSEG Same as the node property but accesses the entire array as a Variant. Flag specifying whether an element with type=Rigid is really an interpolation element. Coefficient of thermal expansion for rigid elements Scale factor for Rigid Interpolation elements Specifies the offset value for plate elements. Specifies the material orientation angle for planar elements if MaterialAngleFlag=True. connectTYPE[0] specifies type of weld element. connectTYPE[1] Weld Location by: Projection=0 Axis=1 Node, Element or Property ID for weld patch A and B respecfor individual of weld types. Description Additional flags defining the element type.

Array of material IDs for each ply in a laminate. Nodes referenced by element. This array does not contain the nodes referenced by rigid or slide line elements, which store their nodes in a separate node list. Likewise, contact elements are handled separately. Element orientation vector for bar/beam. [0] contains material orientation angle for planar elements. In global rectangular coordinates. Offset vectors at ends of bar/beam elements. In global rectangular coordinates. offset[0][...] is at the first end of the element, offset[1][...] is at the second end. Release flags at ends of bar/beam elements. release[0][...] is at the first end of the element, release[1][...] is at the second end. The 6 second indices correspond to the degrees of freedom. This is also used for the DOFs of the independent node of Rigid Element using [0][...]

tively

API-1169
5.15.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 Point Line Tri3 Tri6 Quad4 Quad8 Tetra4 Wedge6 Brick8 Tetra10 Wedge15 Brick20 RigidList MultiList Contact Weld 0 0,1 0,1,2 0,1,2, (4,5,6) 0,1,2,3 0,1,2,3,(4,5,6,7) 0,1,2, 4 0,1,2, 4,5,6 0,1,2,3,4,5,6,7 0,1,2, 4 (8,9,10, 12,13,14) 0,1,2, 4,5,6 (8,9,10, 12,13,14, 16,17,18) 0,1,2,3,4,5,6,7,(8,9,10,11,12,13,14,15,16,17,18,19) 0=Independent, dependent nodes use element lists, not array entries Uses element lists, not array entries References contact segments, not nodes Weld Axis = 0,1 SegA= 4,5,6,( 7,8,9,10,11 ) SegB=12,13,14,( 15,16,17,18,19 ) Array Entries (optional/midside nodes in parentheses)

API-1170

GetAllArray

5.15.2 Element Object Methods


The following methods are available in addition to the standard entity methods.
5.15.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: INT4 setID Output: INT4 numElem INT4 entID[0..numElem-1] INT4 propID[0..numElem-1] INT4 elemTYPE[0..numElem-1] INT4 topology[0..numElem-1] INT4 layer[0..numElem-1] INT4 color[0..numElem-1] INT4 formulation[0..(2*numElem)-1] REAL8 orient[0..(3*numElem)-1] REAL8 offset[0..(6*numElem)-1] The number of elements for which data is being returned. Each entry is the ID of the associated element. The property ID of the element. The element type. The element topology/shape. The ID of the layer for the element. The color of the element. The element formulation. There are 2 values per element. The element orientation vector, 3 values per element. The element offset vectors, 6 values per element. The first 3 at end 1, the second 3 at end 2. Flags indicating end releases. 12 values per element. The 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 element. 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 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. ID of the set that contains the element IDs to retrieve. If 0, retrieve all elements in the model.

INT4 release[0..(12*numElem)-1]

INT4 orientSET[0..numElem-1] INT4 orientID[0..numElem-1]

INT4 Nodes[0..(20*numElem)-1]

GetAllArray

API-1171

GetAllArray
( setID, numElem, entID, propID, elemTYPE, topology, layer, color, formulation, orient, offset, release, orientSET, orientID, Nodes, connectTYPE, connectSEG ) INT4 connectTYPE[0..1] INT4 connectSEG[0..1] Error Codes: FE_FAIL Remarks/Usage: This method is the fastest way to retrieve information about a large number of elements. Example: Unable to retrieve data from the selected elements. connectTYPE[0] specifies type of weld element( 0 thru 6 ) connectTYPE[1] Weld Location by: Projection=0 Axis=1 Node, Element or Property ID for weld patch A and B respectively for individual of weld types.

API-1172
GetAllArray

GetAllArray

( setID, numElem, entID, propID, elemTYPE, topology, layer, color, formulation, orient, offset, release, orientSET, orientID, Nodes, connectTYPE, connectSEG ) Sub Main Dim App As femap.model Set App = GetObject(,"femap.model") Const MAX_NODES_PER_ELEM = 20 Dim Set Dim Set Dim Dim Dim Dim Dim Dim Dim Dim Dim Dim Dim Dim Dim Dim Dim Dim El As Object El = App.feElem elSet As Object elSet = App.feSet numElem As Long entID As Variant propID As Variant elemType As Variant topology As Variant Lyr As Variant color As Variant formulation As Variant orient As Variant offset As Variant release As Variant orientSET As Variant orientID As Variant nodes As Variant connectTYPE As Variant connectSEG As Variant

Dim Msg As String 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))

GetAllArray

API-1173

GetAllArray
( setID, numElem, entID, propID, elemTYPE, topology, layer, color, formulation, orient, offset, release, orientSET, orientID, Nodes, connectTYPE, connectSEG ) 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-1174

PutAllArray

5.15.2.2 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: INT4 numElem INT4 entID[0..numElem-1] INT4 propID[0..numElem-1] INT4 elemTYPE[0..numElem-1] INT4 topology[0..numElem-1] INT4 layer[0..numElem-1] INT4 color[0..numElem-1] INT4 formulation[0..(2*numElem)-1] REAL8 orient[0..(3*numElem)-1] REAL8 offset[0..(6*numElem)-1] The number of elements to create - the number of entries in the arrays Each entry is the ID of the associated element to be created The property ID of the element. The element type. The element topology/shape. The ID of the layer for the element. The color of the element. The element formulation. There are 2 values per element. The element orientation vector, 3 values per element. The element offset vectors, 6 values per element. The first 3 at end 1, the second 3 at end 2. Flags indicating end releases. 12 values per element. The 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 element. 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 of nodes (like rigid, slide lines or contact), can not be created using this method - you must use Put to create those element types. connectTYPE[0] specifies type of weld element( 0 thru 6 ) connectTYPE[1] Weld Location by: Projection=0 Axis=1 Node, Element or Property ID for weld patch A and B respectively for individual of weld types.

INT4 release[0..(12*numElem)-1]

INT4 orientSET[0..numElem-1] INT4 orientID[0..numElem-1]

INT4 Nodes[0..(20*numElem)-1]

INT4 connectTYPE[0..1] INT4 connectSEG[0..1] Output:

PutAllArray

API-1175

PutAllArray
( numElem, entID, propID, elemTYPE, topology, layer, color, formulation, orient, offset, release, orientSET, orientID, Nodes, connectTYPE, connectSEG ) Error Codes: FE_FAIL Remarks/Usage: This method is the fastest way to create a large number of elements. Example: None Unable to create the specified elements.

API-1176

GetNodeList

5.15.2.3 GetNodeList

GetNodeList
( listINDEX, nodecount, node, face, weight, dof ) Description: This method retrieves information from the node lists on rigid and slide line elements. Input: INT4 listINDEX Output: INT4 nodecount INT4 node[0..N] INT4 face[0..N] REAL8 weight[0..N] The number of entries in the other arrays (except dof, which has 6*nodecount entries). The IDs of the nodes in the list. The face numbers of any elements (not used). The weighting factors associated with the nodes for interpolation elements. The degree of freedom flags associated with the nodes. This array has six sequential entries for each node. For example, node[0] has entries dof[0]..dof[5] as its degree of freedom flags. node[1] has dof[6]..dof[11], and so on. The ID of the list to retrieve. For rigid elements, only list 0 is available. For slide lines, lists 0 and 1 are available.

INT4 dof[0..6N]

Return Code: FE_NOT_EXIST FE_NOT_AVAILABLE 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 There are no entries in the list. You have requested an invalid list, check listINDEX.

PutNodeList

API-1177

5.15.2.4 PutNodeList

PutNodeList
( listINDEX, nodecount, node, face, weight, dof ) Description: This method loads information into the node lists on rigid and slide line elements. Input: INT4 listINDEX INT4 nodecount INT4 node[0..N] INT4 face[0..N] REAL8 weight[0..N] The ID of the list to retrieve. For rigid elements, only list 0 is available. For slide lines, lists 0 and 1 are available. The number of entries in the other arrays (except dof, which has 6*nodecount entries). The IDs of the nodes in the list. The face numbers of any elements (not used - must be NULL) The weighting factors associated with the nodes for interpolation elements. The degree of freedom flags associated with the nodes. This array has six sequential entries for each node. For example, node[0] has entries dof[0]..dof[5] as its degree of freedom flags. node[1] has dof[6]..dof[11], and so on.

INT4 dof[0..6N]

Output: None Return Code: FE_NOT_AVAILABLE 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 function, you must call Put( ) if you want to store the updated lists in the database. Example: None You have requested an invalid list, check listINDEX.

API-1178

ClearNodeList

5.15.2.5 ClearNodeList

ClearNodeList
( listINDEX ) Description: This method clears node lists on rigid and slide line elements. Input: INT4 listINDEX 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 The ID of the list to retrieve. For rigid elements, only list 0 is available. For slide lines, lists 0 and 1 are available. You may specify -1 to clear all lists in one call.

Prop

API-1179

5.15.2.6 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-1180
5.15.2.7 Matl

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-1181

5.15.2.8 GetCentroid

GetCentroid
( cgXYZ ) Description: This method returns the centroid of the current element Input: None Output: REAL8 cgXYZ[0..2] Return Code: None Remarks/Usage: None Example: None The coordinates of the centroid of the element. Always reported in Global Rectangular coordinates.

API-1182

GetFaceCentroid

5.15.2.9 GetFaceCentroid

GetFaceCentroid
( nFace, cgXYZ ) Description: This method returns the centroid of a selected element face. Input: INT4 nFace Output: REAL8 cgXYZ[0..2] 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 The coordinates of the centroid of the element face. Always reported in Global Rectangular coordinates. The identifier of the face that you want to select.

GetFaceNormal

API-1183

5.15.2.10 GetFaceNormal

GetFaceNormal
( nFace, normalXYZ ) Description: This method returns the normal vector of a selected element face. Input: INT4 nFace Output: REAL8 normalXYZ[0..2] 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 The vector components of the normal of the element face. Always reported in Global Rectangular coordinates. These vector components are always normalized. The identifier of the face that you want to select.

API-1184

GetFaceArea

5.15.2.11 GetFaceArea

GetFaceArea
( nFace, dArea ) Description: This method returns the area of a selected element face. Input: INT4 nFace Output: REAL8 dArea 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 The area of the element face. The identifier of the face that you want to select.

GetFaceNodes

API-1185

5.15.2.12 GetFaceNodes

GetFaceNodes
( nFace, nodes ) Description: This method returns the area of a selected element face. Input: INT4 nFace Output: INT4 nodes[0..7] 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 The nodes used to define the selected face. Corner nodes always come first, followed by midside nodes. Most faces use less than 8 nodes, and the final node IDs will all be 0. The identifier of the face that you want to select.

API-1186

GetEdgeNodes

5.15.2.13 GetEdgeNodes

GetEdgeNodes
( nEdge, n1, n2, nmid ) Description: This method returns the nodes on the selected edge of the element. Input: INT4 nEdge Output: INT4 n1 INT4 n2 INT4 nmid 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 The first node used to define the edge The last node used to define the edge The midside node on the edge (0 if edge has no midside node) The identifier of the edge that you want to select.

IsParabolic

API-1187

5.15.2.14 IsParabolic

IsParabolic
( void ) Description: This method indicates if the loaded element is parabolic or not Input: None Output: None Return Code: FE_OK FE_FAIL Remarks/Usage: None Example: None Element is Parabolic Element is not Parabolic

API-1188

Thickness

5.15.2.15 Thickness

Thickness
( dAvg, dAtC1, dAtC2, dAtC3, dAtC4 ) Description: This method returns the thickness of the element. Input: None Output: REAL8 dAvg REAL8 dAtC1 REAL8 dAtC2 REAL8 dAtC3 REAL8 dAtC4 Return Code: FE_OK FE_BAD_TYPE FE_NOT_AVAILABLE Remarks/Usage: None Example: None Element type does not have thickness. Element does not reference a property. The average thickness of the element. The element thickness at corner 1. The element thickness at corner 2. The element thickness at corner 3. The element thickness at corner 4.

Length

API-1189

5.15.2.16 Length

Length
( dLength ) Description: This method returns the length of a Line Element. Input: None Output: REAL8 dLength Return Code: FE_BAD_TYPE Remarks/Usage: None Example: None Element is not correct type. The element Length

API-1190
5.15.2.17 Area

Area

Area
( dAreaA, dAreaB ) Description: This method returns the area at EndA and EndB of Line Element. Input: None Output: REAL8 dAreaA REAL8 dAreaB Return Code: FE_OK FE_BAD_TYPE FE_NOT_AVAILABLE Remarks/Usage: None Example: None Element is not correct type. Element does not reference a property. The element area at EndA. The element area at EndB.

Inertia

API-1191

5.15.2.18 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 REAL8 dI2A REAL8 dI12A REAL8 dIJA REAL8 dI1B REAL8 dI2B REAL8 dI12B REAL8 dIJB Return Code: FE_OK FE_BAD_TYPE FE_NOT_AVAILABLE Remarks/Usage: None Example: None Element is not a line type. Element does not reference a property. Area Moment of Inertia for plane 1 EndA Area Moment of Inertia for plane 2 EndA Cross product of inertia at EndA Torsional constant EndA Area Moment of Inertia for plane 1 EndB Area Moment of Inertia for plane 2 EndB Cross product of inertia at EndB Torsional constant EndB

API-1192

GetMinMaxEdgeLength

5.15.2.19 GetMinMaxEdgeLength

GetMinMaxEdgeLength
( dMinLen, dMaxLen ) Description: Finds the minimum and maximum length of edges in the element Input: None Output: REAL8 dMinLen REAL8 dMaxLen Return Code: FE_OK FE_INVALID Remarks/Usage: None Example: None Element is not a supported type - only line, planar and solid elements are supported The minimum edge length The maximum edge length

API-1193
5.16 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 Section 5.1, "Common Entity Properties and Methods". Use the feFunction method of the FEMAP Application object to create Function objects.

5.16.1 Function Object Properties


Functions are always stored with a SetID=1, and the ID equal to the function ID. Property STRING title Description 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, 15=Function vs Value, 16=Function vs. Critical Damping,17=vs. Angle of Incidence,18=vs. Direction of Incidence,19=vs. Temp (TABLEM1 Linear,Linear),20=vs. Temp (TABLEM1 Log,Linear), 21=vs. Temp (TABLEM1 Linear,Log),22=vs. Temp (TABLEM1 Log,Log).

INT4 type

5.16.2 Function Object Methods


There following methods are available in addition to the standard entity methods.

API-1194

GetFunctionList

5.16.2.1 GetFunctionList

GetFunctionList
( listcount, x, y ) Description: This method retrieves function pair information. Input: None Output: INT4 listcount REAL8 x[0..N] REAL8 y[0..N] Return Code: FE_NOT_EXIST 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 There are no entries in the list. The number of entries in the other arrays. The x and y values for the function..

PutFunctionList

API-1195

5.16.2.2 PutFunctionList

PutFunctionList
( listcount, x, y ) Description: This method saves function pair information. Input: INT4 listcount REAL8 x[0..N] 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 function, 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 The number of entries in the other arrays. The x and y values for the function.

API-1196
5.16.2.3 GetValue

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 function y values). 4=Interpolate, Log-Log (return the y value at the specified "x" location 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). The location where the function is evaluated

INT4 nMethod

REAL8 x Output: REAL8 y Return Code: FE_NOT_AVAILABLE

The function value at the specified x location

If you use nMethod=0 then x must be above the lowest x value in the 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 been defined in the function.

FE_FAIL 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 interpolate on a function with only one defined value, you will simply get that value for every location.

GetValue

API-1197

API-1198
5.17 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 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 display and the views where you want to display your graphics. Use the feGFXArrow method of the FEMAP Application object to create GFXArrow objects.

5.17.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 REAL8 x REAL8 y REAL8 z REAL8 dx REAL8 dy REAL8 dz REAL8 length REAL8 lengthmode INT4 layer INT4 color INT4 style The length of the arrow 0=Absolute (length is a fixed size in model units), 1=Scaled (length is scaled to view vector size) The ID of the layer associated with the arrow. The arrow color. The arrow/arrowhead style (0=Line, 1=Solid, 2=Doubleheaded line, 3=Double-headed Solid, 4=Reversed Doubleheaded line, 5=Reversed Double-headed Solid) Accesses the coordinates of the end of an arrow as an array or Variant. Accesses the direction components of the end of an arrow as an array or Variant. These are the direction components of the arrow. They are always specified in global rectangular coordinates. Description These are the coordinates of the end of an arrow. They are always specified in global rectangular coordinates.

REAL8 xyz[0..3] or VARIANT vxyz REAL8 dxyz[0..3] or VARIANT vdxyz

PutAll

API-1199

5.17.2 GFXArrow Object Methods


5.17.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 REAL8 x REAL8 y REAL8 z REAL8 dx REAL8 dy REAL8 dz REAL8 length INT4 lengthmode INT4 layer INT4 color INT4 style Output: None Return Code: FE_FAIL Remarks/Usage: Unlike the standard Put method, this function loads all of the properties as arguments. If you are updating all of the properties before storing an entity, this function will be faster than multiple calls to load each property individually. Example: None Unable to store the entity with the specified ID. Refer to the property descriptions for each of these items. The ID of the entity to store.

API-1200

PutAllArray

5.17.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: INT4 numAr INT4 entID[0..numAr-1] REAL8 xyz[0..(3*numar)-1] REAL8 dxyz[0..(3*numar)-1] REAL8 length[0..numAr-1] INT4 lengthmode[0..numAr-1] INT4 layer[0..numAr-1] INT4 color[0..numAr-1] INT4 style[0..numAr-1] Output: None Return Code: FE_FAIL 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 Unable to store the entity with the specified ID. Probably unable to allocate memory for all of the arrays. 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 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 must be in global rectangular coordinates. The number of GFXArrows to create (i.e. the number of entries in the arrays) The IDs of the GFXArrows to store.

PutCoordArray

API-1201

5.17.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: INT4 numAr REAL8 xyz[0..(3*numar)-1] REAL8 dxyz[0..(3*numar)-1] REAL8 length[0..numAr-1] INT4 lengthmode INT4 layer INT4 color INT4 style Output: None Return Code: FE_FAIL 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 Unable to store the entity with the specified ID. Probably unable to allocate memory for all of the arrays. 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 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 must be in global rectangular coordinates. The number of GFXArrows to create (i.e. the number of entries in the arrays)

API-1202
5.17.2.4 DeleteAll

DeleteAll

DeleteAll
( bAllSets, nSetID ) Description: Deletes all GFXArrows in one or more sets Input: BOOL bAllSets INT4 nSetID Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Unable to delete entities If True, all entities, in all sets are deleted. If False, then all entities in Set nSetID are deleted The setID to delete if bAllSets=False

DeleteAll

API-1203

API-1204
5.18 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 display and the views where you want to display your graphics. Use the feGFXLine method of the FEMAP Application object to create GFXLine objects.

5.18.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 REAL8 x1 REAL8 y1 REAL8 z1 REAL8 x2 REAL8 y2 REAL8 z2 INT4 layer INT4 color REAL8 xyz[0..5] or VARIANT vxyz The ID of the layer associated with the line. The line color. Accesses the coordinates of a line as an array or Variant. End 1 is store first, followed by end 2. These are the coordinates of the second end of a line. They are always specified in global rectangular coordinates. Description These are the coordinates of the first end of a line. They are always specified in global rectangular coordinates.

PutAll

API-1205

5.18.2 GFXLine Object Methods


5.18.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 REAL8 x1 REAL8 y1 REAL8 z1 REAL8 x2 REAL8 y2 REAL8 z2 INT4 layer INT4 color Output: None Return Code: FE_FAIL Remarks/Usage: Unlike the standard Put method, this function loads all of the properties as arguments. If you are updating all of the properties before storing an entity, this function will be faster than multiple calls to load each property individually. Example: None Unable to store the entity with the specified ID. Refer to the property descriptions for each of these items. The ID of the entity to store.

API-1206

PutAllArray

5.18.2.2 PutAllArray

PutAllArray
( numLn, entID, xyz, layer, color ) Description: This method stores multiple GFXLine entities with the specified data. Input: INT4 numLn INT4 entID[0..numLn-1] REAL8 xyz[0..(2*3*numLn)-1] INT4 layer[0..numLn-1] INT4 color[0..numLn-1] Output: None Return Code: FE_FAIL 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 Unable to store the entity with the specified ID. Probably unable to allocate memory for all of the arrays. The number of GFXLines to create (i.e. the number of entries in the arrays) The IDs of the GFXLines to store. 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 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 coordinates.

PutCoordArray

API-1207

5.18.2.3 PutCoordArray

PutCoordArray
( numLn, xyz, layer, color ) Description: This is a simpler version of PutAllArray that allows multiple entities to be stored. Input: INT4 numLn REAL8 xyz[0..(2*3*numLn)-1] INT4 layer INT4 color Output: None Return Code: FE_FAIL 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 Unable to store the entity with the specified ID. Probably unable to allocate memory for all of the arrays. The number of GFXLines to create (i.e. the number of entries in the arrays) 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 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 coordinates.

API-1208
5.18.2.4 DeleteAll

DeleteAll

DeleteAll
( bAllSets, nSetID ) Description: Deletes all GFXLines in one or more sets Input: BOOL bAllSets INT4 nSetID Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Unable to delete entities If True, all entities, in all sets are deleted. If False, then all entities in Set nSetID are deleted The setID to delete if bAllSets=False

DeleteAll

API-1209

API-1210
5.19 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 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 display and the views where you want to display your graphics. Use the feGFXPoint method of the FEMAP Application object to create GFXPoint objects.

5.19.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 REAL8 x REAL8 y REAL8 z INT4 layer INT4 color INT4 symbol The ID of the layer associated with the point. The point color. The symbol to be used to display the point. (0=Point, 1=Square, 2=Filled Square, 3=Diamond, 4=X, 5=Triangle, 6=Small Triangle, 7=Cross, 8=Circle, 9=Filled Circle, 10=Blank) Accesses all three coordinates of a point as an array or Variant. Same as using x, y, and z independently Description These are the coordinates of the point. They are always specified in global rectangular coordinates.

REAL8 xyz[0..3] or VARIANT vxyz

PutAll

API-1211

5.19.2 GFXPoint Object Methods


5.19.2.1 PutAll

PutAll
( entID, x, y, z, layer, color, symbol ) Description: This method stores an entity with the specified ID. Input: INT4 entID REAL8 x REAL8 y REAL8 z INT4 layer INT4 color INT4 symbol Output: None Return Code: FE_FAIL Remarks/Usage: Unlike the standard Put method, this function loads all of the properties as arguments. If you are updating all of the properties before storing an entity, this function will be faster than multiple calls to load each property individually. Example: None Unable to store the entity with the specified ID. Refer to the property descriptions for each of these items. The ID of the entity to store.

API-1212

PutAllArray

5.19.2.2 PutAllArray

PutAllArray
( numPt, entID, xyz, layer, color, symbol ) Description: This method stores multiple GFXPoint entities with the specified data. Input: INT4 numPt INT4 entID[0..numPt-1] REAL8 xyz[0..(3*numPt)-1] INT4 layer[0..numPt-1] INT4 color[0..numPt-1] INT4 symbol[0..numPt-1] Output: None Return Code: FE_FAIL 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 Unable to store the entity with the specified ID. Probably unable to allocate memory for all of the arrays. The number of GFXPoints to create (i.e. the number of entries in the arrays) The IDs of the GFXPoints to store. 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 for a entity, followed by the 3 for the next entity, ... . All must be in global rectangular coordinates.

PutCoordArray

API-1213

5.19.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: INT4 numPt REAL8 xyz[0..(3*numPt)-1] INT4 layer INT4 color INT4 symbol Output: None Return Code: FE_FAIL 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 Unable to store the entity with the specified ID. Probably unable to allocate memory for all of the arrays. The number of GFXPoints to create (i.e. the number of entries in the arrays) 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 for a entity, followed by the 3 for the next entity, ... . All must be in global rectangular coordinates.

API-1214
5.19.2.4 DeleteAll

DeleteAll

DeleteAll
( bAllSets, nSetID ) Description: Deletes all GFXPoints in one or more sets Input: BOOL bAllSets INT4 nSetID Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Unable to delete entities If True, all entities, in all sets are deleted. If False, then all entities in Set nSetID are deleted The setID to delete if bAllSets=False

DeleteAll

API-1215

API-1216
5.20 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 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 display and the views where you want to display your graphics. Use the feGFXQuad4 method of the FEMAP Application object to create GFXQuad4 objects.

5.20.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 REAL8 xyz[0..11] or VARIANT vxyz REAL8 normal[0..11] or VARIANT vnormal INT4 layer INT4 fillcolor INT4 edgecolor INT4 edgeflags Description The coordinates of the corners of a quad. Values are stored in the order (x1,y1,z1,x2,y2,z2,...). All values are specified in global rectangular coordinates. The components of the normal vector to the quad at each corner. Stored in thes same order as the coordinates. These values are used for smooth shading and are only used if autonormal=False. All values are specified in global rectangular coordinates. The ID of the layer associated with the quad. The color used to fill the interior of the quad. The color used for the edge lines of the quad. 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, multiple quads (and quads) can be combined to appear as one larger shape. 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.

BOOL autonormal

PutAll

API-1217

5.20.2 GFXQuad4 Object Methods


5.20.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 REAL8 xyz[0..11] INT4 edgeflags REAL8 normal[0..11] BOOL autonormal INT4 layer INT4 fillcolor INT4 edgecolor Output: None Return Code: FE_FAIL Remarks/Usage: Unlike the standard Put method, this function loads all of the properties as arguments. If you are updating all of the properties before storing an entity, this function will be faster than multiple calls to load each property individually. Example: None Unable to store the entity with the specified ID. Refer to the property descriptions for each of these items. The ID of the entity to store.

API-1218

PutAllArray

5.20.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: INT4 numQd INT4 entID[0..numQd-1] REAL8 xyz[0..(4*3*numQd)1] INT4 edgeflags[0..numQd-1] REAL8 normal [0..(4*3*numQd)-1] BOOL autonormal[0..numQd1] INT4 layer[0..numQd-1] INT4 fillcolor[0..numQd-1] INT4 edgecolor[0..numQd-1] Output: None Return Code: FE_FAIL 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 Unable to store the entity with the specified ID. Probably unable to allocate memory for all of the arrays. 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 for a entity (3 for the first corner, 3 for the 2nd, ...), followed by the 12 for the next entity, ... . The normal array is stored similarly, but contains the components of the normal vectors. All other arrays contain one entry per quad. All must be in global rectangular coordinates. The number of GFXQuad4s to create (i.e. the number of entries in the arrays) The IDs of the GFXQuad4s to store.

PutCoordArray

API-1219

5.20.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: INT4 numQd REAL8 xyz[0..(4*3*numQd)1] INT4 edgeflags[0..numQd-1] REAL8 normal [0..(4*3*numQd)-1] BOOL autonormal INT4 layer INT4 fillcolor INT4 edgecolor Output: None Return Code: FE_FAIL 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 Unable to store the entity with the specified ID. Probably unable to allocate memory for all of the arrays. 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 for a entity (3 for the first corner, 3 for the 2nd, ...), followed by the 12 for the next entity, ... . The normal array is stored similarly, but contains the components of the normal vectors. All other arrays contain one entry per quad. All must be in global rectangular coordinates. The number of GFXQuad4s to create (i.e. the number of entries in the arrays)

API-1220

PutCoordArray

5.20.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: INT4 numQd REAL8 xyz[0..(4*3*numQd)1] INT4 layer INT4 fillcolor INT4 edgecolor Output: None Return Code: FE_FAIL 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 Unable to store the entity with the specified ID. Probably unable to allocate memory for all of the arrays. The number of GFXQuad4s to create (i.e. the number of entries in the arrays) 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 for a entity (3 for the first corner, 3 for the 2nd, ...), followed by the 12 for the next entity, ... . All must be in global rectangular coordinates.

DeleteAll

API-1221

5.20.2.5 DeleteAll

DeleteAll
( bAllSets, nSetID ) Description: Deletes all GFXQuad4s in one or more sets Input: BOOL bAllSets INT4 nSetID Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Unable to delete entities If True, all entities, in all sets are deleted. If False, then all entities in Set nSetID are deleted The setID to delete if bAllSets=False

API-1222
5.21 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 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 display and the views where you want to display your graphics. Use the feGFXTria3 method of the FEMAP Application object to create GFXTria3 objects.

5.21.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 REAL8 xyz[0..8] or VARIANT vxyz REAL8 normal[0..8] or VARIANT vnormal INT4 layer INT4 fillcolor INT4 edgecolor INT4 edgeflags Description The coordinates of the corners of a triangle. Values are stored in the order (x1,y1,z1,x2,y2,z2,...). All values are specified in global rectangular coordinates. The components of the normal vector to the triangle at each corner. Stored in thes same order as the coordinates. These values are used for smooth shading and are only used if autonormal=False. All values are specified in global rectangular coordinates. The ID of the layer associated with the triangle. The color used to fill the interior of the triangle. The color used for the edge lines of the triangle. 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. 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.

BOOL autonormal

PutAll

API-1223

5.21.2 GFXTria3 Object Methods


5.21.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 REAL8 xyz[0..8] INT4 edgeflags REAL8 normal[0..8] BOOL autonormal INT4 layer INT4 fillcolor INT4 edgecolor Output: None Return Code: FE_FAIL Remarks/Usage: Unlike the standard Put method, this function loads all of the properties as arguments. If you are updating all of the properties before storing an entity, this function will be faster than multiple calls to load each property individually. Example: None Unable to store the entity with the specified ID. Refer to the property descriptions for each of these items. The ID of the entity to store.

API-1224

PutAllArray

5.21.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: INT4 numTr INT4 entID[0..numTr-1] REAL8 xyz[0..(3*3*numTr)-1] INT4 edgeflags[0..numTr-1] REAL8 normal [0..(3*3*numTr)-1] BOOL autonormal[0..numTr-1] INT4 layer[0..numTr-1] INT4 fillcolor[0..numTr-1] INT4 edgecolor[0..numTr-1] Output: None Return Code: FE_FAIL 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 Unable to store the entity with the specified ID. Probably unable to allocate memory for all of the arrays. Refer to the property descriptions for each of these items. xyz is an array of the entity coordinates. In the array, there must be 9 entries 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 contains the components of the normal vectors. All other arrays contain one entry per triangle. All must be in global rectangular coordinates. The number of GFXTria3s to create (i.e. the number of entries in the arrays) The IDs of the GFXTria3s to store.

PutCoordArray

API-1225

5.21.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: INT4 numTr REAL8 xyz[0..(3*3*numTr)-1] INT4 edgeflags[0..numTr-1] REAL8 normal [0..(3*3*numTr)-1] BOOL autonormal INT4 layer INT4 fillcolor INT4 edgecolor Output: None Return Code: FE_FAIL 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 Unable to store the entity with the specified ID. Probably unable to allocate memory for all of the arrays. Refer to the property descriptions for each of these items. xyz is an array of the entity coordinates. In the array, there must be 9 entries 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 contains the components of the normal vectors. All other arrays contain one entry per triangle. All must be in global rectangular coordinates. The number of GFXTria3s to create (i.e. the number of entries in the arrays)

API-1226

PutCoordArray

5.21.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: INT4 numTr REAL8 xyz[0..(3*3*numTr)-1] INT4 layer INT4 fillcolor INT4 edgecolor Output: None Return Code: FE_FAIL 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 Unable to store the entity with the specified ID. Probably unable to allocate memory for all of the arrays. The number of GFXTria3s to create (i.e. the number of entries in the arrays) Refer to the property descriptions for each of these items. xyz is an array of the entity coordinates. In the array, there must be 9 entries 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.

DeleteAll

API-1227

5.21.2.5 DeleteAll

DeleteAll
( bAllSets, nSetID ) Description: Deletes all GFXTria3s in one or more sets Input: BOOL bAllSets INT4 nSetID Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Unable to delete entities If True, all entities, in all sets are deleted. If False, then all entities in Set nSetID are deleted The setID to delete if bAllSets=False

API-1228
5.22 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 methods 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.22.1 GlobalPly Object Properties


GlobalPlys are always stored with a SetID=1, and the ID equal to the global ply ID. Property STRING title REAL8 thickness INT4 matlID GlobalPly title. The global ply thickness The ID of the material referenced by the global ply Description

5.22.2 GlobalPly Object Methods


There are no GlobalPly object-specific methods. Only the standard entity methods are available.

API-1229
5.23 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.23.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 INT4 LayerMode Description The mode to use layers to limit group contents: 0=All Layers, 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 LayerModes. The maximum layer ID used to limit layer selection in certain LayerModes. Flag used to indicate that coordinate clipping is being used. The mode used for coordinate clipping: 0=Greater, 1=Less, 2=Between, 3=Outside. The minimum coordinate location, used to limit coordinate clipping in certain CoordClipModes. The maximum coordinate location, used to limit coordinate clipping in certain CoordClipModes. The coordinate system in which coordinate clipping is being performed. The CoordClipMin and CoordClipMax values refer to coordinates in this coordinate system. The coordinate axis along which coordinate clipping occurs: 0=X (or R), 1=Y (or theta), 2=Z (or phi). The mode used for plane clipping: 0=Off, 1=Screen, 2=Plane, 3=Volume. Flag indicating whether to retain the inside or outside of the clipping region. Flag used to indicate whether each clipping plane is being used.

INT4 LayerMin INT4 LayerMax INT4 CoordClipOn INT4 CoordClipMode REAL8 CoordClipMin REAL8 CoordClipMax

INT4 CoordClipCSys

INT4 CoordClipDir INT4 PlaneClipMode BOOL PlaneClipInside INT4 PlaneClipOn[0..5] or VARIANT vPlaneClipOn

API-1230
Property BOOL PlaneClipNeg[0..5] or VARIANT vPlaneClipNeg REAL8 PlaneClipBase[0..5][0..2] or VARIANT vPlaneClipBase REAL8 PlaneClipDir[0..5][0..2] or VARIANT vPlaneClipDir STRING title BOOL Renumber Description Flags indicating whether to use the negative sides of the planes for clipping. The coordinate locations defining a point on each of the clipping planes. The first index indicates the clipping plane. The second index chooses the x, y, or z coordinates. In global rectangular. The components of vectors normal to each of the clipping planes. The first index indicates the clipping plane. The second index chooses the x,y or z components. In global rectangular. The group title (maximum 79 characters). Flag indicating whether this group should be renumbered when 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 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 used. With this set to False, the default, the group will be evaluated 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 all possible selection methods into equivalent, by ID rules. To see the effect of this operation, you must Put the group.

BOOL NeedEval

BOOL EvalAlways

BOOL Condense

API-1231
5.23.1.1 Group Range Types

All of the 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 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 CSys_ID CSys_byDefCSys CSys_byType Point_ID Point_byDefCSys Point_onCurve Curve_ID Curve_byPoint Curve_onSurface Surface_ID Surface_byCurve Surface_onVolume Volume_ID Volume_bySurface Text_ID Boundary_ID Boundary_byCurve Node_ID Node_byDefCSys Node_byOutCSys Node_onElem Elem_ID Elem_byMatl Elem_byProp Elem_byType Elem_byNode 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 Prop_ID Prop_onElem Prop_byMatl Prop_byType Load_byNode Load_byElem BCo_ID BEq_byNode Node_atPoint Node_atCurve Node_atSurface Node_atSolid Elem_atPoint Elem_atCurve Elem_atSurface Elem_atSolid Load_byPoint Load_byCurve Load_bySurface BCo_byPoint BCo_byCurve BCo_bySurface Text_byColor Point_byColor Curve_byColor Surface_byColor 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 Elem_byColor Prop_byColor Matl_byColor Text_byLayer Point_byLayer Curve_byLayer Surface_byLayer Volume_byLayer Solid_byLayer CSys_byLayer Node_byLayer Elem_byLayer Prop_byLayer Matl_byLayer Solid_ID Solid_byCurve Solid_bySurface Curve_onSolid Surface_onSolid Point_byProp Curve_byProp Surface_byProp Volume_byProp Solid_byProp Contact_ID Contact_byColor

API-1232
Group Range Types 26 27 28 29 Matl_ID Matl_onProp Matl_onElem Matl_byType 56 57 58 59 Volume_byColor Solid_byColor CSys_byColor Node_byColor 86 87 88 89 Contact_byLayer CSys_onNode CSys_onPoint Elem_byShape

API-1233
5.23.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 1 2 3 4 5 6 7 CSys Point Curve Surface Volume Text Boundary Node 8 9 10 11 12 13 14 15 Elem Material Property Nodal Load Elem Load Constraint Cosntraint Equations Point Loads 16 17 18 19 20 21 22 Curve Loads Surface Loads Point Constraints Curve Constraints Surface Const. Solids Contact Segments

API-1234

List

5.23.2 Group Object Methods


There following methods are available in addition to the standard entity methods.
5.23.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: INT4 listType Output: None Return Code: None Remarks/Usage: None Example: The type of group list that you want to retrieve. Refer to Section 5.23.1.2, "Group List Types" for allowable list types.

List

API-1235

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-1236
5.23.2.2 Range

Range

Range
( rangeType ) Description: This method returns a Set object that contains all of the entities currently selected by the specified rangeType. Input: INT4 rangeType Output: None Return Code: None Remarks/Usage: None Example: The type of group range list that you want to retrieve. Refer to Section 5.23.1.1, "Group Range Types" for allowable rangeTypes

Range

API-1237

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 (rangeType=22) that are selected in Group 14.

API-1238

RangeReset

5.23.2.3 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

RangeGetAll

API-1239

5.23.2.4 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 Output: INT4 rangeCount INT4 startID[0..N] INT4 stopID[0..N] INT4 increment[0..N] INT4 include[0..N] Return Code: FE_NOT_AVAILABLE FE_FAIL 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 The rangeType that you specified is invalid. Unable to retrieve the data for ranges. The number of entries in each of the other arrays. That is, the number of ranges that are returned. The starting ID in the range. The ending ID in the range. This will be 0 for single entry ranges. The increment to count by between startID and stopID The include flag 0=Remove, 1=Add, Exclude=-1. This is the type of range that you are retrieving.

API-1240

RangeNext

5.23.2.5 RangeNext

RangeNext
( rangeType, startID, stopID, increment, include ) Description: This method returns the values from the next range of a specific type. Input: INT4 rangeType Output: INT4 startID INT4 stopID INT4 increment INT4 include Return Code: FE_NOT_AVAILABLE FE_FAIL 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 The rangeType that you specified is invalid. Unable to retrieve the data for ranges, or you are at the end of the list. The starting ID in the range. The ending ID in the range. This will be 0 for single entry ranges. The increment to count by between startID and stopID. The include flag: 0=Remove, 1=Add, Exclude=-1. This is the type of range that you are retrieving.

RangeAdd

API-1241

5.23.2.6 RangeAdd

RangeAdd
( rangeType, startID, stopID, increment, include ) Description: This method adds a range selection to the end of a selected list. Input: INT4 rangeType INT4 startID INT4 stopID INT4 increment INT4 include Output: None Return Code: FE_NOT_AVAILABLE FE_FAIL 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 The rangeType that you specified is invalid. Unable to save the data for range. This is the type of range that you are creating. The starting ID in the range. The ending ID in the range. This should be 0 for single entry ranges. The increment to count by between startID and stopID, usually 1. The include flag :0=Remove, 1=Add, Exclude=-1.

API-1242

RangeDelete

5.23.2.7 RangeDelete

RangeDelete
( rangeType ) Description: This method deletes a single range from the selected list. Input: INT4 rangeType Output: None Return Code: FE_NOT_AVAILABLE 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 The rangeType that you specified is invalid. This is the type of range that you are deleting.

RangeDeleteAll

API-1243

5.23.2.8 RangeDeleteAll

RangeDeleteAll
( rangeType ) Description: This method deletes all ranges from the selected list. Input: INT4 rangeType Output: None Return Code: FE_NOT_AVAILABLE Remarks/Usage: Deleting all ranges of all types (rangeType=-1) is equivalent to the Group, Operations, Reset Rules command. Example: None The rangeType that you specified is invali. This is the type of range that you are deleting. Specify -1 to delete all ranges of all types.

API-1244
5.23.2.9 SetAdd

SetAdd

SetAdd
( entityType, setID ) Description: This method adds all entities in a set to a group. Input: INT4 entityTYPE INT4 setID Output: None Return Code: FE_FAIL Remarks/Usage: This method creates one or more entity ID range type rules to select the entities into the group. Example: None Invalid entityTYPE to add to a group Type of entity in the selected set. For more information, see Section 3.3.6, "Entity Types". The ID of the set containing the entities to add to the group

SetAddOpt

API-1245

5.23.2.10 SetAddOpt

SetAddOpt
( entityType, setID, addOpt ) Description: This method adds (or removes) all entities in a set to a group. Input: INT4 entityTYPE INT4 setID INT4 addOpt Output: None Return Code: FE_FAIL Remarks/Usage: This method works just like the RangeAdd method except that all entities in the set are either added or removed. Example: None Invalid entityTYPE to add to a group Type of entity in the selected set. For more information, see Section 3.3.6, "Entity Types". The ID of the set containing the entities to add to the group 0=Remove, 1=Add, -1= Exclude

API-1246
5.23.2.11 Add

Add

Add
( entityType, entityID ) Description: This method adds a single entity to a group. Input: INT4 entityTYPE INT4 entityID Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Invalid entityTYPE to add to a group Type of entity in the selected set. For more information, see Section 3.3.6, "Entity Types". The ID of the entity to add to the group.

SelectModel

API-1247

5.23.2.12 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 database before these selections will take effect. Example: None

API-1248

SelectMesh

5.23.2.13 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: INT4 elemSET 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 The set of elements to use to compute the desired subset of the model.

SelectContact

API-1249

5.23.2.14 SelectContact

SelectContact
( contactSET ) Description: This method creates a group that contains all of the entities referenced by a selected set of contact segments/surfaces. Input: INT4 contactSET 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 The set of contact segments/surfaces used to generate the group.

API-1250

SelectAllOnLayer

5.23.2.15 SelectAllOnLayer

SelectAllOnLayer
( startLayer, endLayer ) Description: This method selects all of the entities in the current model that are on layers startLayer thru endLayer. Input: INT4 startLayer INT4 endLayer 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 The ID of the lowest layer to select. The ID of the highest layer to select (If 0, then just entities on startLayer are selected)

ReferencedGroups

API-1251

5.23.2.16 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-1252
5.24 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.24.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 INT4 color STRING title The layer color. The layer title (maximum 79 characters). Description

5.24.2 Layer Object Methods


There are no Layer object-specific methods. Only the standard entity methods are available.

API-1253

API-1254
5.25 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.25.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 STRING title INT4 NumberOfPlys REAL8 LayupThickness INT4 globalply[0..NumberOfPlys-1] or VARIANT vglobalply INT4 matlID[0..NumberOfPlys-1] or VARIANT vmatlID REAL8 thickness[0..NumberOfPlys-1] or VARIANT vthickness REAL8 angle[0..NumberOfPlys-1] or VARIANT vangle REAL8 AMatrix[0..2,0..2] or VARIANT vAMatrix REAL8 BMatrix[0..2,0..2] or VARIANT vBMatrix REAL8 DMatrix[0..2,0..2] or VARIANT vDMatrix Layup title. The number of plys in the layup definition The overall layup thickness (sum of all the ply thicknesses). Read-only. Array of global ply IDs referenced by each ply. The VARIANT form can only be used with layups of 500 plies or less. Array of material IDs referenced by each ply. The VARIANT form can only be used with layups of 500 plies or less. Array of thicknesses referenced by each ply. The VARIANT form can only be used with layups of 500 plies or less. Array of orientation angles referenced by each ply. The VARIANT form can only be used with layups of 500 plies or less. Computed Value - [A] Matrix Description

Computed Value - [B] Matrix

Computed Value - [D] Matrix

API-1255
Property REAL8 AInvMatrix[0..2,0..2] or VARIANT vAInvMatrix REAL8 BInvMatrix[0..2,0..2] or VARIANT vBInvMatrix REAL8 DInvMatrix[0..2,0..2] or VARIANT vDInvMatrix REAL8 InPlaneProp[0..7] or VARIANT vInPlaneProp REAL8 BendingProp[0..7] or VARIANT vBendingProp Description Computed Value - [A]-1 Matrix

Computed Value - [B]-1 Matrix

Computed Value - [D]-1 Matrix In-Plane Properties (Ex, Ey, Gxy, NUxy, NUyx, Alphax, Alphay, Alphaxy) Bending Properties (Exb, Eyb, Gxyb, NUxyb, NUyxb, Alphaxb, Alphayb, Alphaxyb)

API-1256

AddPly

5.25.2 Layup Object Methods


There following methods are available in addition to the standard entity methods.
5.25.2.1 AddPly

AddPly
( nMatlID, dThickness, dAngle, nGlobalPly ) Description: This method adds a ply to the layup. Input: INT4 nMatlID REAL8 dThickness REAL8 dAngle INT4 nGlobalPly 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 = NumberOfPlys+1 Example: The ID of a material referenced by the ply The thickness of the ply The orientation angle of the ply The ID of a Global Ply referenced by this ply, if any.

InsertPly

API-1257

5.25.2.2 InsertPly

InsertPly
( nPlyID, nMatlID, dThickness, dAngle, nGlobalPly ) Description: This method inserts a ply into the layup. Input: INT4 nPlyID INT4 nMatlID REAL8 dThickness REAL8 dAngle INT4 nGlobalPly Output: None Return Code: None Remarks/Usage: The index of the ply to insert. Ply 1 is at the bottom. The IDs of all plys at and above this number are increased by one. The ID of a material referenced by the ply The thickness of the ply The orientation angle of the ply The ID of a Global Ply referenced by this ply, if any.

Example:

API-1258
5.25.2.3 SetPly

SetPly

SetPly
( nPlyID, nMatlID, dThickness, dAngle, nGlobalPly ) Description: This method replaces the data for a ply in the layup. Input: INT4 nPlyID INT4 nMatlID REAL8 dThickness REAL8 dAngle INT4 nGlobalPly Output: None Return Code: FE_NOT_AVAILABLE Remarks/Usage: nPlyID does not specify a ply that currently exists in the layup. Use AddPly or InsertPly to create a new ply. The index of the ply to replace/set. Ply 1 is at the bottom. The ID of a material referenced by the ply The thickness of the ply The orientation angle of the ply The ID of a Global Ply referenced by this ply, if any.

Example:

SetAllPly

API-1259

5.25.2.4 SetAllPly

SetAllPly
( nNumPly, nMatlID, dThickness, dAngle, nGlobalPly ) Description: This method replaces the data for all plys in the layup. Input: INT4 nNumPly INT4 nMatlID[0..nNumPly-1] REAL8 dThickness[0..nNumPly-1] REAL8 dAngle[0..nNumPly-1] INT4 nGlobalPly[0..nNumPly1] Output: None Return Code: FE_FAIL 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: Unable to set the ply data. The number of plys being specified. The IDs of materials referenced by the plys The thicknesses of the plys The orientation angles of the plys The IDs of Global Plys referenced by the plys, if any.

API-1260
5.25.2.5 GetPly

GetPly

GetPly
( nPlyID, nMatlID, dThickness, dAngle, nGlobalPly ) Description: Returns all of the data for a selected ply. Input: INT4 nPlyID Output: INT4 nMatlID REAL8 dThickness REAL8 dAngle INT4 nGlobalPly Return Code: FE_NOT_AVAILABLE Remarks/Usage: The ply ID that you specified did not exist. It must be between 1 and the number of plys in the layup. The ID of a material referenced by the ply The thickness of the ply The orientation angle of the ply The ID of a Global Ply referenced by this ply, if any. The index of the ply to retrieve. Ply 1 is at the bottom.

Example:

GetAllPly

API-1261

5.25.2.6 GetAllPly

GetAllPly
( nPlyID, nMatlID, dThickness, dAngle, nGlobalPly ) Description: Returns all of the data for all plys. Input: None Output: INT4 nNumPly INT4 nMatlID[0..nNumPly-1] REAL8 dThickness[0..nNumPly-1] REAL8 dAngle[0..nNumPly-1] INT4 nGlobalPly[0..nNumPly1] Return Code: FE_FAIL Remarks/Usage: Unable to retrieve ply data. The number of plys, and the number of entries in each of the arrays The IDs of materials referenced by each ply The thicknesses of each ply The orientation angles of each ply The IDs of Global Plys referenced by each ply, if any.

Example:

API-1262
5.25.2.7 DeletePly

DeletePly

DeletePly
( nPlyID ) Description: This method removes a ply from the layup. Input: INT4 nPlyID Output: None Return Code: FE_NOT_AVAILABLE Remarks/Usage: The ply ID that you specified did not exist. It must be between 1 and the number of plys in the layup. The index of the ply to delete. Ply 1 is at the bottom. The IDs of all plys at and above this number are decreased by one.

Example:

Clear

API-1263

5.25.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-1264
5.25.2.9 Compute

Compute

Compute
( dynamic ) Description: This method computes overall layup properties. Input: BOOL dynamic Output: None Return Code: None Remarks/Usage: See Compute2( ) for more options Example: If True, the results will be immediately sent to the Entity Info window (if it is open). If False, the results will be sent to the message window.

Compute2

API-1265

5.25.2.10 Compute2

Compute2
( nOption ) Description: This method computes overall layup properties. Input: INT4 nOption Output: None Return Code: None Remarks/Usage: None Example: 0=No Echo, just compute. 1=Compute and Echo to Entity Info. 2=Compute and Echo to Message Window.

API-1266

HasGlobalPly

5.25.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 Output: INT4 nPlyNum Return Code: FE_NOT_AVAILABLE FE_FAIL Remarks/Usage: The layup has no plys to search The selected global ply was not used. The index (1 is the bottom ply) of the ply that references nGlobalPlyID - if any. The ID of the Global Ply that you want to search for.

Example:

HasMaterial

API-1267

5.25.2.12 HasMaterial

HasMaterial
( nMatlID ) Description: This method indicates whether or not a selected material is used in a layup. Input: INT4 nMatlID Output: None Return Code: FE_NOT_AVAILABLE FE_FAIL Remarks/Usage: The layup has no plys to search The selected material was not used. The ID of the Material that you want to search for.

Example:

API-1268

HasFullGlobalPly

5.25.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 FE_FAIL Remarks/Usage: Every ply references a global ply At least one ply does not reference a global ply

Example:

HasFullGlobalPly

API-1269

API-1270
5.26 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 Section 5.1, "Common Entity Properties and Methods". Use the feLoadBolt method of the FEMAP Application object to create LoadBolt objects.

5.26.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 INT4 color INT4 layer REAL8 preload INT4 LoadDefinitionID The load color. The ID of the layer associated with the load. The elemental temperature. The ID of the load definition that contains this load (0=None) Description

5.26.2 LoadBolt Object Methods

AddArray

API-1271

5.26.2.1 AddArray

AddArray
( count, RegionID, Values ) Description: This method creates multiple Bolt Preloads Input: INT4 count INT4 RegionID[0..count-1] REAL8 Values[0..count-1] Output: None Return Code: FE_FAIL FE_NO_MEMORY 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 The Loads could not be created. Unable to allocate memory to store arrays of data. The number of bolt preloads to create, and the number of IDs in RegionID The Bolt Region IDs where preloads will be created. One preload is created on each ID. Bolt Preload Values. Refer to preload property.

API-1272

Property

5.27 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.27.1 LoadDefinition Object Properties


LoadDefinition 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 the loads it contains. Property STRING title INT4 LoadType Load Definition title. The type of load that is referenced by this load definition. 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 definition. For more information on Entity Types refer to the table in Section 3.3.6, "Entity Types". Can be FT_SURF_LOAD, FT_GEOM_LOAD, FT_NTHERM_LOAD, or FT_ETHERM_LOAD Description

INT4 DataType

PutAll

API-1273

5.27.2 LoadDefinition Object Methods


5.27.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 INT4 DataType INT4 LoadType STRING Title Output: None Return Code: FE_FAIL Remarks/Usage: Unlike the standard Put method, this function loads all of the properties as arguments. If you are updating all of the properties before storing an entity, this function will be faster than multiple calls to load each property individually. Example: None Unable to store the entity with the specified ID Refer to the property descriptions for each of these items. The ID of the Load Definition to store.

API-1274

ResetNextLoad

5.27.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-1275

5.27.2.3 NextLoad

NextLoad
( pLoad ) Description: This method returns the next available load that is contained in the Load Definition Input: OBJECT pLoad Output: None Return Code: FE_FAIL Remarks/Usage: This method, coupled with ResetNextLoad provides an easy way to retrieve all loads from a Load Definition. Example: There are no more loads of the specified type to retrieve. Call ResetNextLoad to go back to the first load, if you want to retrieve the loads again. The next load object. Depending on the type of the load definition this could be a LoadGeom, LoadMesh, LoadNTemp or LoadGeom object

API-1276

CountLoads

5.27.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 Remarks/Usage: This method relies on the current Load Definition ID to count the referenced loads Example: The number of loads referenced by this load definition.

IsTotalLoad

API-1277

5.27.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 FE_FAIL FE_INVALID Remarks/Usage: None Example: Load Definition represents a total load Not a total load Load is not a applied to geometry.

API-1278
5.28 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 properties 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.28.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 INT4 color INT4 layer BOOL expanded REAL8 temp REAL8 phase INT4 function INT4 LoadDefinitionID REAL8 gradient The load color. The ID of the layer associated with the load. True if this is a load from an expanded geometric load. The elemental temperature. The phase value associated with the temperature. The ID of a function that defines time dependency of the temperature. The ID of the load definition that contains this load (0=None) The elemental linear thermal gradient. Description

5.28.2 LoadETemp Object Methods

AddArray

API-1279

5.28.2.1 AddArray

AddArray
( count, doValues, doFunctions, ElemID, Values, FunctionID ) Description: This method creates multiple elemental temperatures Input: INT4 count The number of temperatures to create, and the number of IDs in ElemID If True, then the Values array must contain load values to be used. If 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 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 temperature is created on each ID. Temperature Values. Refer to temp property. IDs of functions associated with each temperature. Specify 0 for constant values. Refer to function property.

BOOL doValues

BOOL doFunctions

INT4 ElemID[0..count-1] REAL8 Values[0..count-1] INT4 FunctionID[0..count-1] Output: None Return Code: FE_FAIL FE_NO_MEMORY Remarks/Usage:

The Loads could not be created. Unable to allocate memory to store arrays of data.

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. Example: None

API-1280
5.29 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 information, see Section 5.1, "Common Entity Properties and Methods". Use the feLoadGeom method of the FEMAP Application object to create LoadGeom objects.

5.29.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 INT4 geomID INT4 addlID[0..1] or VARIANT vaddlID INT4 csys INT4 function[0..4] or VARIANT vfunction

Description ID of the point, curve or surface that is loaded. Additional IDs. These are not used for most loads. They contain the additional nodes for nonlinear force loads. The ID of the coordinate system used to define the load. Regardless of this value, all loads that are vector-based are stored in global rectangular coordinates. The IDs of functions associated with the various load values: [0]=Load func, Emissivity func [1]=Absorbtivity vs. Temp [2]=Temp vs Temp [3]=View Factor vs Time [4]=Phase vs. Freq Array containing the face number (0) for face-based loads, or flags indicating which components are enabled for vector loads.

INT4 dof[0..2] or VARIANT vdof BOOL flag[0..2] or VARIANT vflag

Flags specifying various load options.

API-1281
Property INT4 type INT4 subtype Description The type of load being defined. For values, see Section 5.29.3, "LoadGeom Load Types". An additional flag specifying more information about the type of load. Used for nonlinear transient force loads. The type of geometric entity that this load is applied to. For more information 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. The layer associated with the load. The load values. The location of specific values varies for each type of load, but generally follows the order of the values in the load creation dialog box. 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]. The components of the direction for certain elemental loads. For vector fluxes, the initial direction. This does not contain the direction for nodal vector loads like force or displacement. Those values are in the "load" values.

INT4 geomtype INT4 layer REAL8 load[0..4] or VARIANT vload REAL8 fluxdir[0..2] or VARIANT vfluxdir INT4 DataSurface[0..2] or VARIANT vDataSurface INT4 color BOOL expanded INT4 LoadDefinitionID

The IDs of Data Surfaces referenced by the various load values.

The load color. True if this is an expanded geometric load. The ID of the load definition that contains this load (0=None)

Geometry Load Specific Properties INT4 dirmode REAL8 dirbase[0..2] or VARIANT vdirbase REAL8 direction[0..2] or VARIANT vdirection INT4 dirID INT4 variation STRING varname STRING vareqn The direction setting for the load: 0=None, 1=Vector, 2=AlongCurve, 3= Normal to Plane, 4=Normal to Surface. The location of the base of the direction vector, if dirmode=1 or 3.

The components of the direction vector, if dirmode = 1 or 3. The curve or surface ID if dirmode = 2 or 4. The load variation mode: 0=None/Constant, 1=Equation, 2=Function, 3=Interpolation. The variable name used for load variation. The equation defining the load variation if variation=1.

API-1282
Property INT4 varfunction REAL8 varlocate [0..3][0..2] or VARIANT vvarlocate REAL8 varvalue[0..3] or VARIANT vvarvalue BOOL midside Additional Properties INT4 FaceNumber BOOL XOn BOOL YOn BOOL ZOn REAL8 X REAL8 Y REAL8 Z REAL8 Temp REAL8 Phase INT4 LoadFunction INT4 TempVsTime INT4 PhaseVsFreq REAL8 LoadValue BOOL CornerPressure REAL8 Pressure REAL8 HeatGen 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. 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. 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. This refers to the Z component in the definition CSys. The X component of a nodal load, like force or displacement. In global rectangular coordinates. The Y component of a nodal load, like force or displacement. In global rectangular coordinates. The Z component of a nodal load, like force or displacement. In global rectangular coordinates. The temperature associated with the load. The phase associated with the load. The ID of the function associated with the primary load value. The ID of the function specifying the time dependence of temperature. The ID of the function specifying the frequency dependence of phase. The primary load value. Flag specifying whether a pressure load has corner values, or a single constant value. The pressure value for a pressure load. The heat generation value for a heat generation load. Description The ID of the function used for load variation if variation=2. The coordinates of the locations used for interpolation if variation=3. The x, y and z coordinates of a single point are stored in varlocate(i,0), varlocate(i,1) and varlocate(i,2) respectively.

The values corresponding to each of the varlocate locations. If True, then loads at midside nodes are adjusted during load expansion to provide uniform loading. If False, midside nodes are treated just like other nodes during expansion.

API-1283
Property REAL8 HeatFlux REAL8 Absorptivity INT4 AbsorptivityVsTemp BOOL VectorFlux REAL8 FluidValue BOOL PeriodicMaster BOOL PeriodicDirection REAL8 ConvectionCoeff BOOL ForcedConvection BOOL FCDisableAdvection BOOL FCDisableConvection REAL8 FlowRate REAL8 FlowDiameter REAL8 FlowAreaFactor REAL8 Emissivity INT4 EmissivityFunc REAL8 ViewFactor INT4 ViewFactorVsTime BOOL EnclosureRadiation BOOL CanShade BOOL CanBeShaded INT4 CavityNumber Description The heat flux value for a heat flux load. The absorptivity for a radiation load. The ID of a function specifying temperature dependence of absorptivity. Flag specifying that an elemental flux load is a vector flux. Primary load value for a fluid load. Flag specifying a periodic condition load as Master. Flag specifying the periodic condition direction. The convection coefficient for a convection load. Flag specifying that a convection load defines forced convection. Flag specifying that a forced convection load is disabling advection. Flag specifying that a forced convection load is disabling convection. The flow rate for forced convection. The flow diameter for forced convection. The flow area factor for forced convection. The emissivity for a radiation load. The ID of function specifying the variation of emissivity. The radiation view factor. ID of the function specifying the time dependence of the view factor. Flag specifying a radiation load as enclosure radiation. Flag specifying a radiation load as shading other regions. Flag specifying a radiation load as being shaded by other regions. The cavity number for enclosure radiation.

API-1284

GetSearch

5.29.2 LoadGeom Object Methods


5.29.2.1 GetSearch

GetSearch
( loadType, geomID ) Description: This method searches for and retrieves an entity that is loading a specified geometric entity. Input: INT4 loadType INT4 geomID Output: None Return Code: FE_FAIL 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 discard the ones you do not want. Example: None The specified entity does not exist or is not loaded. Type of load being applied. For values, see Section 5.29.3, "LoadGeom Load Types". ID of geometry loaded. The loadType determines whether this should be a point, curve or surface ID.

GetSearch

API-1285

5.29.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 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 121 122 123 124 125 126 pnForce pnMoment pnDisp pnRotDisp pnVelocity pnRotVelocity pnAccel pnRotAccel pnTemp pnHeatFlux pnHeatGen pnPressure pnTotalPressure pnScalar pnSteamQuality pnHumidity pnFluidHeight pnUnknownCondition pnSlipCondition pnFanCurve pnPeriodic cnForce cnForcePerLength cnForceAtNode cnMoment cnMomentPerLength cnMomentAtNode 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 161 162 cnVelocity cnRotVelocity cnAccel cnRotAccel cnTemp cnHeatFlux cnHeatFluxPerLength cnHeatFluxAtNode cnHeatGen cePressure ceTemp ceHeatFlux ceConvection ceRadiation ceHeatGen cnPressure cnTotalPressure cnScalar cnSteamQuality cnHumidity cnFluidHeight cnUnknownCondition cnSlipCondition cnFanCurve cnPeriodic snForce snForcePerArea 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 snMomentPerArea snMomentAtNode snDisp snRotDisp snVelocity snRotVelocity snAccel snRotAccel snTemp snHeatFlux snHeatFluxPerArea snHeatFluxAtNode snHeatGen sePressure seTemp seHeatFlux seConvection seRadiation seHeatGen snPressure snTotalPressure snScalar snSteamQuality snHumidity snFluidHeight snUnknownCondition snSlipCondition

API-1286

GetSearch

Geometry Load Types (p = Point ; c = Curve ; s = Surface, n=on Node, e=on Element) 127 128 cnDisp cnRotDisp 163 164 snForceAtNode snMoment 192 193 snFanCurve snPeriodic

API-1287
5.30 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 Methods". Use the feLoadMesh method of the FEMAP Application object to create LoadMesh objects.

5.30.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 INT4 meshID INT4 addlID[0..1] or VARIANT vaddlID INT4 csys INT4 function[0..4] or VARIANT vfunction

Description ID of the node or element that is loaded. Additional IDs. These are not used for most loads. They contain the additional nodes for nonlinear force loads. The ID of the coordinate system used to define the load. Regardless of this value, all loads that are vector-based are stored in global rectangular coordinates. The IDs of functions associated with the various load values: [0]=Load func, Emissivity func [1]=Absorbtivity vs. Temp [2]=Temp vs Temp [3]=View Factor vs Time [4]=Phase vs. Freq Array containing the face number (0) for face based loads, or flags indicating which components are enabled for vector loads.

INT4 dof[0..2] or VARIANT vdof BOOL flag[0..2] or VARIANT vflag INT4 type

Flags specifying various load options. The type of load being defined. Refer to the load type table for values.

API-1288
Property INT4 subtype INT4 layer REAL8 load[0..4] or VARIANT vload REAL8 fluxdir[0..2] or VARIANT vfluxdir INT4 color BOOL expanded INT4 LoadDefinitionID Additional Properties INT4 FaceNumber BOOL XOn BOOL YOn BOOL ZOn REAL8 X REAL8 Y REAL8 Z REAL8 Temp REAL8 Phase INT4 LoadFunction INT4 TempVsTime INT4 PhaseVsFreq REAL8 LoadValue 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. 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. 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. This refers to the Z component in the definition CSys. The X component of a nodal load, like force or displacement. In global rectangular coordinates. The Y component of a nodal load, like force or displacement. In global rectangular coordinates. The Z component of a nodal load, like force or displacement. In global rectangular coordinates. The temperature associated with the load. The phase associated with the load. The ID of the function associated with the primary load value. The ID of the function specifying the time dependence of temperature. The ID of the function specifying the frequency dependence of phase. The primary load value. Description An additional flag specifying more information about the type of load. Used for nonlinear transient force loads. The layer associated with the load. The load values. The location of specific values varies for each type of load, but generally follows the order of the values in the load creation dialog box. 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]. The components of the direction for certain elemental loads. For vector fluxes, the initial direction. This does not contain the direction for nodal vector loads like force or displacement. Those values are in the "load" values. The load color. True if this is an expanded geometric load. The ID of the load definition that contains this load (0=None)

API-1289
Property BOOL CornerPressure REAL8 Pressure REAL8 HeatGen REAL8 HeatFlux REAL8 Absorptivity INT4 AbsorptivityVsTemp BOOL VectorFlux REAL8 FluidValue BOOL PeriodicMaster BOOL PeriodicDirection REAL8 ConvectionCoeff BOOL ForcedConvection BOOL FCDisableAdvection BOOL FCDisableConvection REAL8 FlowRate REAL8 FlowDiameter REAL8 FlowAreaFactor REAL8 Emissivity INT4 EmissivityFunc REAL8 ViewFactor INT4 ViewFactorVsTime BOOL EnclosureRadiation BOOL CanShade Description Flag specifying whether a pressure load has corner values, or a single constant value. The pressure value for a pressure load. The heat generation value for a heat generation load. The heat flux value for a heat flux load. The absorptivity for a radiation load. The ID of a function specifying temperature dependence of absorptivity. Flag specifying that an elemental flux load is a vector flux. Primary load value for a fluid load. Flag specifying a periodic condition load as Master. Flag specifying the periodic condition direction. The convection coefficient for a convection load. Flag specifying that a convection load defines forced convection. Flag specifying that a forced convection load is disabling advection Flag specifying that a forced convection load is disabling convection The flow rate for forced convection. The flow diameter for forced convection. The flow area factor for forced convection. The emissivity for a radiation load. The ID of function specifying the variation of emissivity. The radiation view factor. ID of the function specifying the time dependence of the view factor. Flag specifying a radiation load as enclosure radiation. Flag specifying a radiation load as shading other regions.

API-1290
Property BOOL CanBeShaded INT4 CavityNumber Description Flag specifying a radiation load as being shaded by other regions. The cavity number for enclosure radiation.

GetSearch

API-1291

5.30.2 LoadMesh Object Methods


5.30.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: INT4 loadType INT4 meshID Type of load being applied. For values, see Section 5.30.3, "LoadMesh Load Types". ID of node or element being loaded. The loadType determines whether this should be a node ID or an element ID. For certain face-based elemental loads (pressure, flux, etc.) you must also specify the element face that is being loaded. For all other load types, this option is ignored.

INT4 faceID Output: None Return Code: FE_FAIL Remarks/Usage:

The specified entity does not exist or is not loaded.

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-1292
5.30.2.2 Add

Add

Add
( setID, loadType, nCSys, DOF, Values, FunctionID ) Description: This method creates multiple nodal or elemental loads Input: INT4 setID INT4 loadType INT4 nCSys The ID of a Set object that contains the nodes or elements where loads will be applied. Alternatively, if you specify a negative value, this is simply the ID of the single node or element to load. The type of load being defined. Refer to type property. The ID of the Coordinate System where load values are being defined. Degree of Freedom flags for forces (True=On, False=Off). For Pressures and other face-based loads the first DOF for each element is the faceID (1-6) for the load. Refer to dof property. Load Values, 5 per load. Refer to load property. IDs of functions associated with each load value. Specify 0 for constant values. 5 per load. Refer to function property.

INT4 DOF[0..2] REAL8 Values[0..4] INT4 FunctionID[0..4] Output: None Return Code: FE_FAIL FE_NO_MEMORY Remarks/Usage:

The Loads could not be created. Unable to allocate memory to store arrays of data.

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-1293

5.30.2.3 AddArray

AddArray
( count, doDOF, doValues, doFunctions, NodeElemID, DOF, Values, FunctionID ) Description: This method creates multiple nodal or elemental loads Input: INT4 count The number of loads to create, and the number of IDs in NodeElemID If True, then the DOF array must contain the DOF flags/Face IDs to 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 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 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 created on each ID. Degree of Freedom flags for forces (True=On, False=Off). For Pressures and other face-based loads the first DOF for each element is the faceID (1-6) for the load. There are three entries per load. Refer to dof property. Load Values, 5 per load. Refer to load property. IDs of functions associated with each load value. Specify 0 for constant values. 5 per load. Refer to function property.

BOOL doDOF

BOOL doValues

BOOL doFunctions

INT4 NodeElemID[0..count-1]

INT4 DOF[0..(3*count)-1]

REAL8 Values[0..(4*count)-1] INT4 FunctionID[0..(4*count)1] Output: None Return Code: FE_FAIL FE_NO_MEMORY Remarks/Usage:

The Loads could not be created. Unable to allocate memory to store arrays of data.

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-1294
AddArray

AddArray

( count, doDOF, doValues, doFunctions, NodeElemID, DOF, Values, FunctionID ) Example: None

AddArray

API-1295

5.30.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 2 3 4 5 6 7 8 10 nForce nMoment nDisplacement nRotDisplacement nVelocity nRotVelocity nAcceleration nRotAcceleration nHeatFlux 11 12 13 14 15 16 17 18 19 nHeatGen Transient nPressure nTotalPressure nScalar nSteamQuality nHumidity nFluidHeight nUnknownCondition 20 21 22 41 42 44 45 46 47 nSlipCondition nFanCurve nPeriodic eLineLoad ePressure eHeatFlux eConvection eRadiation eHeatGen

API-1296
5.31 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 information, see Section 5.1, "Common Entity Properties and Methods". Use the feLoadNTemp method of the FEMAP Application object to create LoadNTemp objects.

5.31.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 INT4 color INT4 layer BOOL expanded REAL8 temp REAL8 phase INT4 function INT4 LoadDefinitionID The load color. The ID of the layer associated with the load. True if this is a load from an expanded geometric load. The nodal temperature. The phase value associated with the temperature. The ID of a function that defines time dependency of the temperature. The ID of the load definition that contains this load (0=None) Description

5.31.2 LoadNTemp Object Methods

AddArray

API-1297

5.31.2.1 AddArray

AddArray
( count, doValues, doFunctions, NodeID, Values, FunctionID ) Description: This method creates multiple nodal temperatures Input: INT4 count The number of temperatures to create, and the number of IDs in NodeID If True, then the Values array must contain load values to be used. If 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 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 is created on each ID. Temperature Values. Refer to temp property. IDs of functions associated with each temperature. Specify 0 for constant values. Refer to function property.

BOOL doValues

BOOL doFunctions

INT4 NodeID[0..count-1] REAL8 Values[0..count-1] INT4 FunctionID[0..count-1] Output: None Return Code: FE_FAIL FE_NO_MEMORY Remarks/Usage:

The Loads could not be created. Unable to allocate memory to store arrays of data.

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. Example: None

API-1298

Property

5.32 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 Section 5.1, "Common Entity Properties and Methods". Use the feLoadSet method of the FEMAP Application object to create LoadSet objects.

5.32.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 STRING title BOOL IsCombination REAL8 CombinedScaleFactor INT4 layer BOOL BodyAccelOn REAL8 BodyAccel[0..5] or VARIANT vBodyAccel INT4 BodyAccelFunction[0..5] or VARIANT vBodyAccelFunction BOOL BodyVelocityOn REAL8 BodyVelocity[0..2] or VARIANT vBodyVelocity INT4 BodyVelocityFunction[0..2] or VARIANT vBodyVelocityFunction REAL8 BodyOrigin[0..2] or VARIANT vBodyOrigin INT4 BodyLoadCSys Description Set title (maximum 79 characters). This is a Nastran LOAD combination set if True. Overall scale factor for Nastran LOAD combination. The layer associated with the set. Body Load - Accelerations are active if True. Body Load - Translational and rotational acceleration values Body Load - IDs of functions associated with Translational and rotational acceleration values Body Load - Rotational Velocities are active if True. Body Load - Rotational Velocity

Body Load - IDs of functions associated with Rotational Velocity values

Body Load - The center of rotation. The ID of the coordinate system used to define the various body loads

Property

API-1299

Property BOOL BodyDefTempOn REAL8 BodyDefTemp BOOL BodyRefTempOn REAL8 BodyRefTemp REAL8 StefanBoltzmann INT4 RadiationAmbientElem REAL8 TempOffset REAL8 FreeConvExponent BOOL FreeConvAlternateForm REAL8 FCFluidConductivity REAL8 FCFluidHeatCapacity REAL8 FCFluidViscosity REAL8 FCFluidDensity INT4 FCFluidConductivityFunc INT4 FCFluidHeatCapacityFunc INT4 FCFluidViscosityFunc INT4 FCFluidDensityFunc REAL8 FCConstantCoeff REAL8 FCReynoldsExp REAL8 FCPrandtlIn REAL8 FCPrandtlOut BOOL FCAlternateForm BOOL FCExcludeConvective

Description Body Load - Default Temperature is active if True. Body Load - The default temperature. Body Load - Reference Temperature is active if True. Body Load - The reference temperature Heat Transfer - Stefan-Boltzmann Constant Heat Transfer - ID of element used for ambient temp in enclosure radiation. Heat Transfer - Offset of Temperatures from Absolute Zero Heat Transfer - Free Convection Exponent. Heat Transfer - Flag for Alternate Free Convection Formulation Heat Transfer - Forced Convection Fluid Conductivity Heat Transfer - Forced Convection Fluid Heat Capacity Heat Transfer - Forced Convection Fluid Viscosity Heat Transfer - Forced Convection Fluid Density Heat Transfer - Forced Convection Fluid Conductivity Function Heat Transfer - Forced Convection Fluid Heat Capacity Function Heat Transfer - Forced Convection Fluid Viscosity Function Heat Transfer - Forced Convection Fluid Density Function Heat Transfer - Forced Convection Equation Constant Coefficient Heat Transfer - Forced Convection Reynolds Exponent Heat Transfer - Forced Convection Prandtl Exponent into Fluid Heat Transfer - Forced Convection Prandtl Exponent out of Fluid Heat Transfer - Flag for Alternate Forced Convection Formulation Heat Transfer - Flag to Exclude Forced Convection Convective Energy Flow

API-1300

Property

Property INT4 NLOn INT4NLIncrements REAL8NLTimeIncrement INT4 NLMaxIterPerStep BOOL NLConvergenceFlag[0..2] or VARIANT vNLConvergenceFlag REAL8 NLConvergenceVal[0..2] or VARIANT vNLConvergenceVal INT4 NLStiffnessMethod INT4 NLStiffnessIter INT4 NLIntermediateOutput INT4 NLOutputInterval INT4 NLArcLengthMethod

Description Flag for Nonlinear Analysis: 0=Off, 1=Static, 2=Creep, 3=Transient Nonlinear - Number of Increments for Nonlinear Analysis Nonlinear - Time Increment Nonlinear - Max Iterations per Step Nonlinear - Convergence Flags for 0=Displacement, 1=Load and 2=Work Nonlinear - Convergence Tolerances for Displacement, Load and Work Nonlinear - Stiffness Update Method Nonlinear - Iterations before Stiffness Update Nonlinear - Intermediate Output Type Nonlinear - Output Interval Nonlinear - Nonlinear Arc-Length Solution Strategy (ArcLength if nonzero) Nonlinear - Solution Strategy Overrides: 0=none/ advanced, 1=Full Newton Raphson, 2=Modified Newton Raphson Nonlinear - Modified Newton Line Search Override (1=Skip) Nonlinear - Modified Newton Quasi-Newton Override (1=Skip) Nonlinear - Modified Newton Bisection Override (1=Skip) Nonlinear - Arc Length Method Constraint Load Scale Nonlinear - Min Arc Length Adjust Nonlinear - Max Arc Length Adjust Nonlinear - Arc Length Constraint Type Nonlinear - Arc Length Desired Iterations Nonlinear - Arc Length Max Steps Nonlinear - Max Diverging Conditions Nonlinear - Number of Quasi-Newton Vectors

INT4 NLSolutionOverride

BOOL NLNewtRaphLineSearch BOOL NLNewtRaphQuasiNewton BOOL NLNewtRaphBisection REAL8 NLArcScaleConstLoad REAL8 NLArcMinAdjust REAL8 NLArcMaxAdjust INT4 NLArcConstraintType INT4 NLArcDesiredIter INT4 NLArcMaxIncrement INT4 NLMaxDivergeCond INT4 NLQuasiNewtonVec

Property

API-1301

Property INT4 NLMaxLineSearch REAL8 NLLineSearchTolerance INT4 NLMaxBisection REAL8 NLMaxRotation REAL8 NLStressFraction REAL8 NLMaxAdjusted INT4 NLTransStepSkipFactor INT4 NLTransDominantSteps REAL8 NLTransBoundsMaintain REAL8 NLTransStabilityTol REAL8 DYNStructDamp REAL8 DYNSystemFreqDamp REAL8 DYNElemFreqDamp INT4 DYNOn INT4 DYNType INT4 DYNMassFormulation INT4 DYNDataRecovery INT4 DYNSolFreqType INT4 DYNPSDType INT4 DYNPSDInterp REAL8 DYNSolFreqSpread INT4 DYNSolFreqNumFreq REAL8 DYNSolFreqMin REAL8 DYNSolFreqMax BOOL DYNSolFreqLogInterp INT4 DYNTransTimeSteps REAL8 DYNTransTimePerStep

Description Nonlinear - Max Line Search per Iteration Nonlinear - Line Search Tolerance Nonlinear - Max Bisections per Increment Nonlinear - Max Rotation per Bisection Nonlinear - Stress Fraction Limit Nonlinear - Max Adjusted vs. Initial Increment Nonlinear - Transient Time Step Skip Factor Nonlinear - Transient Steps for Dominant Period Nonlinear - Transient Bounds to Maintain Step Nonlinear - Transient Minimum Stability Tolerance Dynamics - Overall Structural Damping Coefficient, G Dynamics - Frequency for System Damping, W3 Dynamics - Frequency for Element Damping, W4 Dynamics - Flag for Dynamic Analysis: 0=Off, 1=Direct, 2=Modal Dynamics - Addl Flag for Dynamic Analysis: 0=Off, 1=Transient, 2=Freq Dynamics - Dynamic Mass Formulation: 0=Default, 1=Lumped, 2=Coupled Dynamics - Dynamic Data Recovery: 0=Mode Displacement, 1=Mode Acceleration, 2=Matrix Dynamics - Solution Frequency Input Type Dynamics - PSD Data Type Dynamics - PSD Interpolation Method Dynamics - Spread for frequency clusters Dynamics - Solution Frequencies per Mode Dynamics - Minimum Frequency to Compute Dynamics - Maximum Frequency to Compute Dynamics - Frequency Logarithmic Interpolation Dynamics - Transient Analysis Number of Steps Dynamics - Transient Analysis Time Step

API-1302

Property

Property INT4 DYNTransOutputInterval INT4 DYNFrequencyTable INT4 DYNDampingTable INT4 DYNRandomPSD INT4 DYNResponseModes REAL8 DYNResponseMinFreq REAL8 DYNResponseMaxFreq

Description Dynamics - Transient Analysis Output Interval Dynamics - Function ID of the Frequency Table Dynamics - Function ID of the Damping Table Dynamics - Function ID of the PSD Dynamics - Number of Modes to use in Response Calculations Dynamics - Minimum Response Frequency to Keep for further analysis Dynamics - Maximum Response Frequency to Keep for further analysis

Expand

API-1303

5.32.2 LoadSet Object Methods


5.32.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 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 The specified expansion did not work.

API-1304

Compress

5.32.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 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 The specified compression did not work.

ResetNextLoad

API-1305

5.32.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_GEOM_LOAD (default), FT_NTHERM_LOAD, or FT_ETHERM_LOAD Used to limit the type of loads to be retrieved. If True, all selected loads will be returned. If False, only loads that match the type specified in enLoadType will be returned. The type of loads to return. Only used if bAllLoadTypes is False. 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 retrieved. Otherwise all are available. If True, expanded geometric loads (if any) will be returned along with normal loads. Ignored if enDataType=FT_GEOM_LOAD.

INT4 enDataType

BOOL bAllLoadTypes

INT4 enLoadType

BOOL bOtherLoadsOnly BOOL bIncludeExpanded 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-1306
5.32.2.4 NextLoad

NextLoad

NextLoad
( pLoad ) Description: This method returns the next available load that matches the criteria established by ResetNextLoad Input: OBJECT pLoad Output: None Return Code: FE_BAD_DATA FE_FAIL 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 ls.ResetNextLoad( FT_SURF_LOAD, True, 0, False, False ) While ls.Next() While ls.NextLoad( l ) MsgBox(Str$(l.setID)+""+Str$(l.meshID) ) Wend Wend End Sub The data type that you are trying to retrieve is invalid. There are no more loads of the specified type to retrieve. Call ResetNextLoad to go back to the first load, if you want to retrieve the loads again. The next load object. Depending on the options specified, this could be a LoadGeom, LoadMesh, LoadNTemp or LoadGeom object

ResetNextLoadDef

API-1307

5.32.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 definitions 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_GEOM_LOAD (default), FT_NTHERM_LOAD, or FT_ETHERM_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 definitions that contain loads of the type specified in enLoadType will be returned. The type of loads to return. Only used if bAllLoadTypes is False. Refer to the Load Types table in Section 3.3.7, "FEMAP Constants" for more information.

BOOL bAllDataTypes

INT4 enDataType

BOOL bAllLoadTypes

INT4 enLoadType 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-1308

NextLoadDef

5.32.2.6 NextLoadDef

NextLoadDef
( pLoad ) Description: This method returns the next available load definition that matches the criteria established by ResetNextLoadDef Input: OBJECT pLoad Output: None Return Code: FE_FAIL 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 ls.ResetNextLoadDef( False, FT_SURF_LOAD, False, FLT_NFORCE ) While ls.Next() 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 There are no more load definitions of the specified type to retrieve. Call ResetNextLoadDef to go back to the first load definition, if you want to retrieve the loads again. The next load definition object. This is always a LoadDefinition object.

GetCombination

API-1309

5.32.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 INT4 nCombo REAL8 dScale[0..count-1] INT4 nSetID Return Code: FE_BAD_TYPE FE_NOT_AVAILABLE Remarks/Usage: This is not a LOAD Combination Set. No load sets are in the combination. Overall Scale Factor for Nastran LOAD Combination. Number of entries in the LOAD Combination. The Scale Factor for the load sets in the Combination. The IDs of the load sets in the Nastran LOAD Combination.

Example: None

API-1310

PutCombination

5.32.2.8 PutCombination

PutCombination
( dOverallScale, nCombo, dScale, nSetID ) Description: This method sets the data in a Load Combination Set. Input: REAL8 dOverallScale INT4 nCombo REAL8 dScale[0..count-1] INT4 nSetID Output: None Return Code: FE_NOT_EXIST FE_BAD_TYPE Remarks/Usage: One or more Combined Load Sets specfiied do not exist. One or more Combined Load Sets specfiied is a Load Combination. Overall Scalefactor for Nastran LOAD Combination. Number of entries in the LOAD Combination. The Scale Factor for the load sets in the Combination. The IDs of the load sets in the Nastran LOAD Combination.

Example: None

PutCombination

API-1311

API-1312
5.33 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.33.1 MapObject Properties


MapOutput are always stored with a SetID=1, and the ID equal to the entity ID.

Property INT4 MapOption

Description 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 X value used if target mapping falls outside of source mesh and MapOption is set to 1 (FMO_VALUE) Y value used if target mapping falls outside of source mesh and MapOption is set to 1 (FMO_VALUE) Z value used if target mapping falls outside of source mesh and MapOption is set to 1 (FMO_VALUE) The ID of the target models set of nodes or elements. 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 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 ELEMENT load, use FMP_ELEMENT.

REAL8 DefaultMapValue1 REAL8 DefaultMapValue2 REAL8 DefaultMapValue3 INT4 TargetSet INT4 LoadType

INT4 MapToType

MapFromModelToSet

API-1313

5.33.2 MapOutput Object Methods


5.33.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 INT4 GroupID INT4 OutputSetID INT4 OutputVector Output: None Return Code: FE_FAIL 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 Unable to get the map data. Possibly data is not stored or source group does not exist in source model or required properties are set incorrectly. ID of the source model containing output to be mapped. 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 output. ID of output vector in source model containing data from which to map output.

API-1314

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; Exit For End If Next " - "; modelName

MapFromModelToSet

API-1315

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, srcVector) End Sub srcGroup, srcSet,

API-1316

MapFromModelToLocation

5.33.2.2 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 INT4 GroupID INT4 OutputSetID INT4 OutputVector REAL8 XLoc[0...N-1] or VARIANT vXLoc REAL8 YLoc[0...N-1] or VARIANT vYLoc REAL8 ZLoc[0...N-1] or VARIANT vZLoc Output: VARIANT vMapVal VARIANT vUnitX VARIANT vUnitY VARIANT vUnitZ Return Code: FE_FAIL Remarks/Usage: Unable to get the map data. Possibly data is not stored or group does not exist in model or required MapObject properties are set incorrectly. Output value mapped to location. Values ordered 0..N-1 in VARIANT Unit x vector (global, rectangular) of corresponding mapped output value. Unit y vector (global, rectangular) of corresponding mapped output value. Unit z vector (global, rectangular) of corresponding mapped output value. ID of the source model containing output to be mapped. 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 output. ID of output vector in source model containing data from which to map output. Array of global rectangular x-coordinates for locations where data is to be mapped. N = number of locations for which mapped values are returned. Array of global rectangular y-coordinates for locations where data is to be mapped. N = number of locations for which mapped values are returned. Array of global rectangular z-coordinates for locations where data is to be mapped. N = number of locations for which mapped values are returned.

MapFromModelToLocation

API-1317

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-1318
5.34 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.34.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 INT4 color INT4 type INT4 subtype INT4 layer STRING title BOOL bval[0..9] or VARIANT vbval INT4 ival[0..24] or VARIANT vival REAL8 mval[0..199] or VARIANT vmval INT4 fval[0..49] or VARIANT vfval INT4 tval[0..69] or VARIANT vtval Additional Properties REAL8 mmat[0..199] INT4 imat[0..24] Same as mval, but returns/sets entire array as a VARIANT. Same as ival but returns/sets entire array as a VARIANT. The material color. Type of material (0=Iso, 1=2D Ortho, 2=3D Ortho, 3=2D Aniso, 4=3D Aniso, 5=Hyperelastic, 6=General, 7=Fluid). Subtype for general materials. The ID of the layer associated with the material. Material title (maximum 79 characters). Array of Boolean flags. Description

Array of integer values.

Array of real values.

Array of function IDs.

Additional function IDs.

API-1319
Property INT4 fmat[0..49] INT4 tmat[0..69] Description Same as fval, but returns/sets entire array as a VARIANT. 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 REAL8 Ez REAL8 Gx REAL8 Gy REAL8 Gz REAL8 Nuxy REAL8 Nuyz REAL8 Nuxz REAL8 Alphaxx REAL8 Alphayy REAL8 Alphazz REAL8 Alphaxy REAL8 Alphayz REAL8 Alphazx REAL8 Kxx REAL8 Kyy REAL8 Kzz REAL8 Kxy REAL8 Kyz REAL8 Kzx REAL8 Cp REAL8 Density REAL8 Damping REAL8 RefTemp Heat Capacity Density Damping Coefficient Reference Temperature Thermal Conductivity Coefficient of Thermal Expansion Poissons Ratio Shear Modulus Youngs Modulus

API-1320
Property REAL8 TensionLimit1 REAL8 TensionLimit2 REAL8 CompressionLimit1 REAL8 CompressionLimit2 REAL8 ShearLimit REAL8 TsaiWu Description Limit Stress/Strain in Tension

Limit Stress/Strain in Compression Limit Stress/Strain in Shear Tsai-Wu Interaction Factor

5.34.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 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 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.34.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.

Value

API-1321
Locations

Value
Integer Values HYPER_POLYORD(i) NONLINEAR_TYPE HARDENING_TYPE YIELD_TYPE CREEP_TYPE CREEP_EMPIRICAL_FORM(i) DP_HARDENING_DATA_TYPE Boolean Values HAS_STRAIN_LIMITS FLUID IS LIQUID OPT_FRONT_SIDE OPT_REV_SIDE DMATRIX_HYP_D1_ZERO Real Values E(i) G(i) NU(i) GMATRIX_3D(i) GMATRIX_2D(i) THERMAL_EXPANSION(i) THERMAL_CONDUCTIVITY(i) THERMAL_CAPACITY

Description

Strain Energy Polynomial Order for Hyperelastic Nonlinear Type (0=None/Linear, 1=Nonlinear Elastic, 2=Plastic, 3=Elasto-Plastic Hardening Data Type Yield Criterion (0=von Mises, 1=Tresca, 2=Mohr-Coloumb, 3=Drucker-Prager) Creep Type (0=None, 1=Empirical, 2=Tabular) Empirical Creep Law Format Flags Drucker-Prager Hardening data type

ival[0],ival[1] ival[2] ival[3] ival[4] ival[5] ival[6..9] ival[10]

Flag if material uses strain limits instead of stress limits Flag if a fluid type material is a liquid vs. a gas

bval[0] bval[1] bval[2] bval[3]

Flag to write D1 in Nastran Hyperelastic material as Zero

bval[4]

Young's modulus Shear modulus Poisson's ratio Upper triangle of 6x6 3D anisotropic elastic matrix. Upper triangle of 3x3 2D anisotropic elastic matrix. Thermal expansion coefficients. Thermal conductivity coefficients. Specific Heat

mval[0..2] mval[3..5] mval[6..8] mval[9..29] mval[30..35] mval[36..41] mval[42..47] mval[48]

API-1322
Value
DENSITY DAMPING TEMPERATURE

Locations

Description
Material density Damping coefficient Reference temperature Stress allowable in tension Stress allowable in compression Stress allowable in shear Tsai_wu interaction factor Hyperelastic Amatrix values Hyperelastic Dmatrix values Plasticity Hardening Slope Plasticity Yield Limits - Initial Yield Stress, Friction Angle, additional yield limits Creep Threshold Stress Creep Reference Temperature Temperature Dependent Creep Rate Empirical Creep Law Coefficients Heat Generation Value Enthalpy for Phase Change Temperature for Phase Change Onset Temperature Range for Phase Change Latent heat of Fusion Specific heat above Phase Change Temp Optical - Emissivity Optical - Emissivity, Reverse Side Optical - Absorptivity Optical - Absorptivity, Reverse Side Optical - Solar Transmissivity Optical - InfraRed Transmissivity Optical - Solar Reflectivity

Locations
mval[49] mval[50] mval[51] mval[52..53] mval[54..55] mval[56] mval[57] mval[58..78] mval[79..83] mval[84] mval[85..89] mval[90] mval[91] mval[92] mval[93..99] mval[100], or tval[57] mval[101] mval[102] mval[103] mval[104] mval[105] mval[106] mval[107] mval[108] mval[109] mval[110] mval[111] mval[112]

TENSION_LIMIT(i) COMPRESSION_LIMIT(i) SHEAR_LIMIT TSAI_WU_INTERACTION AMATRIX_HYP(i) DMATRIX_HYP(i) HARDENING_SLOPE YIELD_LIMITS(i) CREEP_THRESHOLD_STRESS CREEP_REF_TEMP CREEP_TEMP_DEP_RATE CREEP_EMPIRICAL_COEFF(i) HEAT GENERATION REFERENCE ENTHALPY PHASE CHANGE TEMP PHASE CHANGE TEMP RANGE LATENT HEAT OF FUSION SPECIFIC HEAT ABOVE PHASE OPT EMISSIVITY OPT EMISSIVITY REV OPT ABSORPTIVITY OPT ABSORPTIVITY REV OPT TRANSMISSIVITY SOLAR OPT TRANSMISSIVITY IR OPT REFLECTIVITY SOLAR

Locations

API-1323
Locations
mval[113] mval[114] mval[115] mval[116] or tval[58] mval[117] or tval[59] mval[118] or tval[60] mval[119]

Value
OPT REFLECTIVITY SOLAR REV OPT REFLECTIVITY IR OPT REFLECTIVITY IR REV GAS CONSTANT DYNAMIC VISCOSITY PRANDTL NUMBER ELECTRICAL RESISTIVITY Function Values EXPERIMENTAL_FUNCTIONS(i) NONLINEAR_FUNCTION CREEP_FUNCTIONS(i) DP_YIELD_FUNCTION OPT EMISSIVITY FUNCTION OPT_EMISSIVITY REV FUNCTION OPT ABSORPTIVITY FUNCTION OPT ABSORPTIVITY REV FUNC OPT TRANSMISSIVITY SOLAR FUNC OPT TRANSMISSIVITY IR FUNC OPT REFLECTIVITY SOLAR FUNC OPT REFLECTIVITY SOLAR REV FUNC OPT REFLECTIVITY IR FUNC OPT REFLECTIVITY IR REV FUNC ELECTRICAL RESISTIVITY FUNC

Description
Optical - Solar Reflectivity, Reverse Side Optical - InfraRed Reflectivity Optical - InfraRed Reflectivity, Reverse Fluid Gas Constant Fluid Dynamic Viscosity Prandtl Number Electrical Resistivity

IDs of Hyperelastic Experimental Data Functions ID of function for Plasticity Tabular Model Creep Function IDs ID of Drucker-Prager Yield Function ID of Optical Emissivity Function ID of Optical Emissivity Rev Side Function ID of Optical Absorptivity Function ID of Optical Absorptivity Rev Side Function ID of Solar Transmissivity Function ID of InfraRed Transmissivity Function ID of Solar Reflectivity Function ID of Solar Reflectivity, Rev Side Function ID of InfraRed Reflectivity Function ID of InfraRed Reflectivity Rev Side Function ID of Electrical Resistivity Function

fval[0..4] fval[5] fval[6..8] fval[9] fval[10] fval[11] fval[12] fval[13] fval[14] fval[15] fval[16] fval[17] fval[18] fval[19] fval[20]

API-1324

AutoComplete

5.34.2 Material Object Methods


5.34.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, THERMAL_EXPANSION, and THERMAL_CONDUCTIVITY, and the TENSION_LIMIT and COMPRESSION_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-1325
5.35 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.35.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 REAL8 x REAL8 y REAL8 z VARIANT xyz INT4 layer INT4 color BOOL permBC[0..5] or VARIANT vpermBC INT4 type INT4 defCSys INT4 outCSys INT4 superelementID Additional Properties REAL8 xyz[0..2] Accesses all three coordinates of a node as a Variant. Same as using x, y, and z independently The coordinates of the node as a Variant The ID of the layer associated with the node. The node color. An array of flags telling whether the corresponding degrees of freedom are constrained (True) or free (False) as permanent constraints. The node type (0=Node, 1=Scalar, 2=Extra). The ID of the definition coordinate system. The ID of the output coordinate system. The ID of the superelement that contains this node (0=None/ Residual) Description These are the coordinates of the node. They are always specified in global rectangular coordinates.

API-1326

GetAll

5.35.2 Node Object Methods


5.35.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 Output: REAL8 x REAL8 y REAL8 z INT4 layer INT4 color INT4 type INT4 defCSys INT4 outCSys INT4 permBC[0..5] Return Code: FE_FAIL 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 The specified entity does not exist. Refer to the property descriptions for each of these items. permBC is returned in an integer array, even though it contains only True/False values. ID of the entity to retrieve.

GetAllArray

API-1327

5.35.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: INT4 setID Output: INT4 numNode INT4 entID[0..numNode-1] REAL8 xyz[0..(3*numNode)-1] INT4 layer[0..numNode-1] INT4 color[0..numNode-1] INT4 type[0..numNode-1] INT4 defCSys[0..numNode-1] INT4 outCSys[0..numNode-1] INT4 permBC[0..(6*numNode)-1] Return Code: FE_FAIL Remarks/Usage: This method is the fastest way to retrieve information about a large number of nodes. Example: None Unable to retrieve data from the selected nodes. The number of nodes for which data is being returned. Each entry is the ID of the associated node. The coordinates of the node. There are 3 entries, x, y, z for each node. The ID of the layer for the node. The color of the node. The type of the node. The definition coordinate system of the node. The output coordinate system of the node. Flags indicating the permanent constraints on the node. 0=off, 1=on. There are 6 entries, corresponding to the degrees of freedom for each node. ID of the set that contains the node IDs to retrieve. If 0, retrieve all nodes in the model.

API-1328

GetCoordArray

5.35.2.3 GetCoordArray

GetCoordArray
( setID, numNode, entID, xyz ) Description: This method retrieves arrays of coordinates for a set of Nodes Input: INT4 setID Output: INT4 numNode INT4 entID[0..numNode-1] REAL8 xyz[0..(3*numNode)-1] Return Code: FE_FAIL Remarks/Usage: This is a simpler form of GetAllArray, if you simply need the nodal coordinates. Example: None Unable to retrieve data from the selected nodes. The number of nodes for which data is being returned. Each entry is the ID of the associated node The coordinates of the node. There are 3 entries, x, y, z for each node. ID of the set that contains the node IDs to retrieve. If 0, retrieve all nodes in the model

PutAll

API-1329

5.35.2.4 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 REAL8 x REAL8 y REAL8 z INT4 layer INT4 color INT4 type INT4 defCSys INT4 outCSys INT4 permBC[0..5] Output: None Return Code: FE_FAIL Remarks/Usage: Unlike the standard Put method, this function loads all of the properties as arguments. If you are updating all of the properties before storing an entity, this function will be faster than multiple calls to load each property individually. Example: None Unable to store the entity with the specified ID. Refer to the property descriptions for each of these items. permBC is loaded in an integer array, even though it contains only True/False values. The ID of the entity to store.

API-1330

PutAllArray

5.35.2.5 PutAllArray

PutAllArray
( numNode, entID, xyz, layer, color, type, defCSys, outCSys, permBC ) Description: This method stores multiple node entities with the specified data. Input: INT4 numNode INT4 entID[0..numNode-1] REAL8 xyz[0..(3*numNode)-1] INT4 layer[0..numNode-1] INT4 color[0..numNode-1] INT4 type[0..numNode-1] INT4 defCSys[0..numNode-1] INT4 outCSys[0..numNode-1] INT4 permBC[0..(6*numNode)-1] Output: None Return Code: FE_FAIL Remarks/Usage: This is the fastest Put method if you have a large number of nodes to create. All data can be accumulated in arrays and then transferred in one call. Example: None Unable to store the entity with the specified ID. Refer to the property descriptions for each of these items. xyz is an array of the nodal coordinates, there are 3 entries for each node (must be in global rectangular coordinates). permBC is loaded in an integer array, even though it contains only True/ False values. It contains six values per node. The number of nodes to create (i.e. the number of entries in the arrays) The IDs of the nodes to store.

GetClosest

API-1331

5.35.2.6 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] Output: None Return Code: FE_NOT_EXIST Remarks/Usage: None Example: None Unable to find closest Node. The coordinates of the location of interest.

API-1332
5.36 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 properties and methods defined for Entity objects are also available for Optim objects. For more information, see Section 5.1, "Common Entity Properties and Methods". Use the feOptim method of the FEMAP Application object to create Optim objects.

5.36.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 optimization definition.

Property INT4 type INT4 goal INT4 vary

Description The Optim object type: 1=Goal, 2=Vary, 3=Limit. Goal of optimization (only if type=1): 0=None,1=MinWeight Optimization variable: 0=None,1=RodArea,2=RodTorsion, 3=BarArea, 4=BarI1, 5=BarI2, 6=BarTorsion, 7=PlateThickness Optimization limit: 0=None, 1=NodXDisp, 2=NodYDisp,3=NodZDisp, 4=NodXRDisp, 5=NodYRDisp,6=NodZRDisp, 7=RodAxialStress,8=RodTorsionStress, 9=RodAxialStrain, 10=RodTorsionStrain, 11=BarAxialStress, 12=BarMaxStress, 13=BarMinStress, 14=BarAxialStrain, 15=BarMaxStrain, 16=BarMinStrain, 17=PltXNormalStress, 18=PltYNormalStress, 19=PltXYShearStress, 20=PltMaxPrinStress, 21=PltMinPrinStress, 22=PltVonMisesStress, 23=PltXNormalStrain, 24=PltYNormalStrain, 25=PltXYShearStrain, 26=PltMaxPrinStrain, 27=PltMinPrinStrain, 28=PltVonMisesStrain The number of design cycles. The type of data to vary. 11=Property Property ID to vary. Not used. If True, max/min specified as %, otherwise as values. Minimum allowable value for variable. Maximum allowable value for variable. Maximum change in variable before new analysis is required.

INT4 limit

INT4 cycles INT4 varyType INT4 varyID INT4 varyExtraID BOOL varyPct REAL8 varyMin REAL8 varyMax REAL8 varyDelta

API-1333
Property INT4 respType INT4 respID REAL8 respMin REAL8 respMax Description Response on: Node=7 or Property=11. ID of node or property for response. Minimum allowable response. Maximum allowable response.

5.36.2 Optim Object Methods


There are no Optim object-specific methods. Only the standard entity methods are available.

API-1334
5.37 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.

5.37.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 STRING title INT4 component[0..19] or VARIANT vcomponent INT4 category INT4 location BOOL nonlinear INT4 hascomponent BOOL centroidtotal REAL8 maxval REAL8 minval REAL8 absmaxval INT4 maxvalID INT4 minvalID

Description Output vector title (maximum 79 characters). Component vectors. Either zero, or the IDs of the X,Y,Z components, or the IDs of the corresponding elemental corner output. See below. General category of output: 0=Any, 1=Disp, 2=Accel, 3=Force, 4=Stress, 5=Strain, 6=Temp, others=User. The location where the output is computed and stored. Nodal = 7, Elemental Centroid or Element Corner = 8. If True, this result cannot be linearly combined. If 1, component[0..2] are the X,Y,Z component values. If 2, data at end of beams. If 3, reverse data at second end of beam. If True, this vector has centroidal or nodal output. The maximum value in the output vector. The minimum value in the output vector. The maximum absolute value of any value in the output vector. The ID of the node/element where the maxval occurs. The ID of the node/element where the minval occurs.

API-1335
Property REAL8 Value[1..N] Description The output values. The index must be the ID of the node/element 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 methods that manipulate entire output vectors.

API-1336
5.37.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 = current 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 element 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 components are defined, FEMAP will use the corner data (not the data in the current vector) when calculating 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 second 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-1337
5.37.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 1 to 2,999 3,000 to 5,999 6,000 to 59,999 60,000 to 79,999 1 to 9,999,999 (magnitude, or non-complex) 80,000 to 89,999 90,000 to 99,999 100,000 to 299,999 1,000,000 to 6,000,000 9,000,000 to 9,999,999 10,000,001 to 20,000,000 (complex, phase) 20,000,001 to 30,000,000 (complex, real) 30,000,001 to 40,000,000 (complex, imaginary) Nodal output Line element output Plate element output Solid element output Output on any element type PATRAN elemental output Plate corner output Laminate Ply output User Defined output Type

Same definition as magnitude data, just add 10,000,000 to IDs. Same definition as magnitude data, just add 20,000,000 to IDs. Same definition as magnitude data, just add 30,000,000 to IDs.

API-1338

Corner

5.37.2 Output Object Methods


There following methods are available in addition to the standard entity methods.
5.37.2.1 Corner

Corner
( cornerID ) Description: This method creates and returns an Output object that is loaded with the output data attached to the selected element corners. Input: The cornerID to retrieve. Valid corners are from 1 to 8, depending on the element shape where the results are stored. Normally plate output uses corners 1,2,3,4. Hexahedral elements use corners 1,2,3,4,5,6,7,8. Wedges use 1,2,3 and 5,6,7. Tets use 1,2,3 and 5.

INT4 cornerID

Output: None Return Code: None Remarks/Usage: This method will only work if the current Output object has been loaded with results that reference either elemental centroidal data that also has corner data available, or with nodal data that has vector components (in which the valid corners will be 1,2,3). Example: None

API-1339

5.37.2.2 X

X
( void ) Description: This method creates and returns an Output object that is loaded with the output data attached to X component of an output vector. Input: None Output: None Return Code: None Remarks/Usage: This method is only appropriate if the current object has been loaded with results from a nodal output vector that contains vector components (Like Total Displacement, which references X Displacement, Y Displacement, and Z Displacement). Example: None

API-1340
5.37.2.3 Y

Y
( void ) Description: This method creates and returns an Output object that is loaded with the output data attached to Y component of an output vector. Input: None Output: None Return Code: None Remarks/Usage: This method is only appropriate if the current object has been loaded with results from a nodal output vector that contains vector components (Like Total Displacement, which references X Displacement, Y Displacement, and Z Displacement). Example: None

API-1341

5.37.2.4 Z

Z
( void ) Description: This method creates and returns an Output object that is loaded with the output data attached to Z component of an output vector. Input: None Output: None Return Code: None Remarks/Usage: This method is only appropriate if the current object has been loaded with results from a nodal output vector that contains vector components (Like Total Displacement, which references X Displacement, Y Displacement, and Z Displacement). Example: None

API-1342

GetFromSet

5.37.2.5 GetFromSet

GetFromSet
( setID, entID ) Description: This method retrieves data from a specified output vector, in a specified set. Input: INT4 setID INT4 entID 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 The Output Set containing the output vector to retrieve The Output Vector to retrieve

GetOutputList

API-1343

5.37.2.6 GetOutputList

GetOutputList
( listcount, ID, value ) Description: This method retrieves an output vector. Input: None Output: INT4 listcount INT4 ID[0..N] REAL8 value[0..N] Return Code: FE_NOT_EXIST 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 There are no entries in the list. The number of entries in the ID and value arrays. The IDs of the nodes/elements where output is available.. The output values associated with the corresponding node/element in the ID array.

API-1344

GetOutputListAtID

5.37.2.7 GetOutputListAtID

GetOutputListAtID
( ID, defaultVal, value ) Description: This method retrieves data from an output vector at specified IDs. Input: INT4 ID[0..N] REAL8 defaultVal[0..N] Output: REAL8 value[0..N] Return Code: FE_FAIL 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 Unable to retrieve IDs from the list or allocate memory for processing. The output values associated with the corresponding node/element in the ID array. 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 ID. This can be specified as NULL, in which case all default values will be 0.0.

GetOutputListAtSet

API-1345

5.37.2.8 GetOutputListAtSet

GetOutputListAtSet
( idSET, defaultVal, value ) Description: This method retrieves data from an output vector at IDs selected in a Set. Input: INT4 idSET REAL8 defaultVal[0..N] Output: REAL8 value[0..N] Return Code: FE_FAIL 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 Unable to retrieve IDs from the list or allocate memory for processing. The output values associated with the corresponding node/element in the ID array. 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 ID. This can be specified as NULL, in which case all default values will be 0.0.

API-1346

PutOutputList

5.37.2.9 PutOutputList

PutOutputList
( listcount, ID, value ) Description: This method stores data to an output vector. Input: INT4 listcount INT4 ID[0..N] INT4 value[0..N] Output: None Return Code: FE_NOT_EXIST 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 There are no entries in the list - you specified listcount = 0. The number of entries in both the ID and value arrays. The IDs of the nodes/elements where output is being created. The output values associated with the corresponding node/element in the ID array.

InitScalarAtNode

API-1347

5.37.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 INT4 vec STRING title INT4 category BOOL nonlinear 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 The ID of the output set where this vector will be stored. The ID of the output vector which will be created. The Output vector title (maximum 79 characters). General category of output: 0=Any, 1=Disp, 2=Accel, 3=Force, 4=Stress, 5=Strain, 6=Temp, others=User. If True, this result cannot be linearly combined.

API-1348

GetScalarAtNode

5.37.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-1349

5.37.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-1350

PutScalarAtNode

5.37.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-1351

5.37.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 components. Input: INT4 outputSET INT4 vec INT4 vecX INT4 vecY INT4 vecZ STRING title INT4 category BOOL nonlinear 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 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 magnitude of the output vectors. The ID of the output vector which will be created to contain the X components of output. The ID of the output vector which will be created to contain the Y components of output. The ID of the output vector which will be created to contain the Z components of output. The output vector title (maximum 79 characters). General category of output: 0=Any, 1=Disp, 2=Accel, 3=Force, 4=Stress, 5=Strain, 6=Temp, others=User. If True, the components of this result cannot be linearly combined. The magnitude can never be linearly combined.

API-1352

GetVectorAtSingleNode

5.37.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 Output: REAL8 x REAL8 y REAL8 z 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 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 The X component of the results The Y component of the results The Z component of the results The ID of the node to retrieve output

GetVectorAtNode

API-1353

5.37.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 INT4 ID[0..N] REAL8 x[0..N] REAL8 y[0..N] REAL8 z[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 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 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 The number of entries in the ID and x,y,z arrays. The IDs of the nodes/elements where output is available. The X component of the values associated with the corresponding node/element in the ID array. The Y component of the values associated with the corresponding node/element in the ID array. The Z component of the values associated with the corresponding node/element in the ID array.

API-1354

GetVectorAtNodeSet

5.37.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 Output: REAL8 x[0..N] REAL8 y[0..N] REAL8 z[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 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 The X component of the values associated with the corresponding node/element in the Set. The Y component of the values associated with the corresponding node/element in the Set. The Z component of the values associated with the corresponding node/element in the Set. The ID of a Set object that contains the IDs of the entities to retrieve.

PutVectorAtNode

API-1355

5.37.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 InitVectorAtNode. Input: INT4 listcount INT4 ID[0..N] REAL8 x[0..N] REAL8 y[0..N] REAL8 z[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. 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 The number of entries in the ID and x,y,z arrays. The IDs of the nodes/elements where output is being created. The X component of the values associated with the corresponding node/element in the ID array. The Y component of the values associated with the corresponding node/element in the ID array. The Z component of the values associated with the corresponding node/element in the ID array.

API-1356

InitScalarAtElem

5.37.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 INT4 vec STRING title INT4 category BOOL nonlinear 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 The ID of the output set where this vector will be stored. The ID of the output vector which will be created. The output vector title (maximum 79 characters). General category of output: 0=Any, 1=Disp, 2=Accel, 3=Force, 4=Stress, 5=Strain, 6=Temp, others=User. If True, this result cannot be linearly combined.

GetScalarAtElem

API-1357

5.37.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-1358

GetScalarAtElemSet

5.37.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-1359

5.37.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-1360

InitElemWithCorner

5.37.2.23 InitElemWithCorner

InitElemWithCorner
( outputSET, vec, vec1, vec2, vec3, vec4, vec5, vec6, vec7, vec8, title, category, nonlinear ) 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 INT4 vec INT4 vec1 INT4 vec2 INT4 vec3 INT4 vec4 INT4 vec5 INT4 vec6 INT4 vec7 INT4 vec8 STRING title INT4 category BOOL nonlinear 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: The output vector title (maximum 79 characters). General category of output: 0=Any, 1=Disp, 2=Accel, 3=Force, 4=Stress, 5=Strain, 6=Temp, others=User. If True, the components of this result cannot be linearly combined. The ID of the output vector which will be created to contain the results at the corresponding element corners. 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 centroidal results.

InitElemWithCorner

API-1361

InitElemWithCorner
( outputSET, vec, vec1, vec2, vec3, vec4, vec5, vec6, vec7, vec8, title, category, nonlinear ) None

API-1362

GetElemWithCorner

5.37.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 example, if this object contains results on quadrilateral plates, maxcorner will typically equal 4, since results are only available for corners 1,2,3, and 4. The IDs of the nodes/elements where output is available. The results at the element centroid associated with the corresponding node/element in the ID array.

INT4 maxcorner

INT4 ID[0..N] INT4 centroid[0..N] INT4 c1[0..N] INT4 c2[0..N] INT4 c3[0..N] INT4 c4[0..N] INT4 c5[0..N] INT4 c6[0..N] INT4 c7[0..N] INT4 c8[0..N] Return Code: None Remarks/Usage:

The results at the element corners associated with the corresponding node/element in the ID array. Some elements have missing corners. 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.

GetElemWithCorner

API-1363

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 elemental 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-1364

GetElemWithCornerSet

5.37.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 Output: The ID of the maximum corner available for this object. For example, if this object contains results on quadrilateral plates, 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 node/element in the Set. The ID of a Set object that contains the IDs of the entities to retrieve.

INT4 maxcorner

INT4 centroid[0..N] INT4 c1[0..N] INT4 c2[0..N] INT4 c3[0..N] INT4 c4[0..N] INT4 c5[0..N] INT4 c6[0..N] INT4 c7[0..N] INT4 c8[0..N] Return Code: None Remarks/Usage:

The results at the element corners associated with the corresponding node/element in the Set. Some elements have missing corners. 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.

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 elemental 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-1365

GetElemWithCornerSet
( idSET, maxcorner, centroid, c1, c2, c3, c4, c5, c6, c7, c8 ) Example: None

API-1366

PutElemWithCorner

5.37.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 initialized 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 example, if this object contains results on quadrilateral plates, maxcorner will typically equal 4, since results are only available for corners 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. The IDs of the nodes/elements where output is available. The results at the element centroid associated with the corresponding node/element in the ID array.

INT4 maxcorner

INT4 ID[0..N] INT4 centroid[0..N] INT4 c1[0..N] INT4 c2[0..N] INT4 c3[0..N] INT4 c4[0..N] INT4 c5[0..N] INT4 c6[0..N] INT4 c7[0..N] INT4 c8[0..N] Output: None Return Code: None Remarks/Usage:

The results at the element corners associated with the corresponding node/element in the ID array. Some elements have missing corners. 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.

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-1367

PutElemWithCorner
( listcount, maxcorner, ID, centroid, c1, c2, c3, c4, c5, c6, c7, c8 ) Example: None

API-1368

InitScalarAtBeam

5.37.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 INT4 vec1 INT4 vec2 STRING title INT4 vecstyle INT4 category BOOL nonlinear BOOL bAddEndTitles Output: None Return Code: None Remarks/Usage: None Example: None The ID of the output set where this vector will be stored. The ID of the EndA output vector which will be created. The ID of the EndB output vector which will be created. The output vector title (maximum 79 characters). If 1, component[0..2] are the X,Y,Z component values. If 2, data at end of beams. If 3, reverse data at second end of beam General category of output: 0=Any, 1=Disp, 2=Accel, 3=Force, 4=Stress, 5=Strain, 6=Temp, others=User. If True, this result cannot be linearly combined. Flag to prepend End A, End B to the title.

PutScalarAtBeam

API-1369

5.37.2.28 PutScalarAtBeam

PutScalarAtBeam
( listcount, ID, v1, v2 ) Description: This method stores data to an output vectors for beam elements. Input: INT4 listcount INT4 ID[0..listcount-1] INT4 v1[0..listcount-1] INT4 v2[0..listcount-1] Output: None Return Code: None Remarks/Usage: None Example: None The number of the elements where output is being created. The IDs of the elements where output is being created. The EndA output values associated with the corresponding element in the ID array. The EndB output values associated with the corresponding element in the ID array.

API-1370

FindMaxMin

5.37.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 BOOL bUseCornersOrComponents Output: INT4 minID REAL8 minValue INT4 maxID REAL8 maxValue Return Code: None Remarks/Usage: None Example: None The ID of node/element where the minimum value occurs The minimum output value The ID of the node/element where the maximum value occurs The maximum output value 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 those corners will also be searched to find the max/min values. If False, then only the primary vector will be searched.

API-1371
5.38 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.38.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 STRING title INT4 program

Description Output set title (maximum 79 characters). 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=LSDYNA, 32=MARC, 33=SINDA, 38=NX Nastran. Type of analysis: 0=Unknown, 1=Static, 2=Modes, 3=Transient, 4=Frequency Response, 5=Response Spectrum, 6=Random, 7=Linear Buckling, 8=Design Opt, 9=Explicit, 10=Nonlinear Static, 11=Nonlinear Buckling, 12=Nonlinear Transient, 19=Comp Fluid Dynamics, 20=Steady State Heat Transfer, 21=Transient Heat. The output set value. For modal analyses, the modal frequency. For any transient or nonlinear analysis, the time value at this step. For Buckling, the eigenvalue. For static analysis = 0.0 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 analysis

REAL8 value

STRING notes

API-1372

Vector

5.38.2 OutputSet Object Methods


5.38.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 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 vector prior to calling this method. The OutputSet ID property is used to define the set where the vector is retrieved. Example: None The ID of the output vector to load.

OutputVectors

API-1373

5.38.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 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: None The ID of a Set Object that will receive the IDs of the Output vectors

API-1374
5.39 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.39.1 Point Object Properties


Points are always stored with a SetID=1, and the ID equal to the Point ID. Property REAL8 x REAL8 y REAL8 z INT4 layer INT4 color INT4 type INT4 defCSys INT4 attrPID INT4 engine INT4 address REAL8 meshsize INT4 InCombinedCurve Additional Properties REAL8 xyz[0..2] Accesses all three coordinates of a point as a Variant. Same as using x, y, and z independently. The ID of the layer associated with the point. The point color. The point type: 0=Default, 1=Solid. The ID of the definition coordinate system. The Property ID of the meshing attribute. The ID of the solid modeling engine used with this point: 0=None, 1=Parasolid, 2=ACIS. The solid modeling engine geometry address. MeshSize at the point. 0.0, unless a point-based mesh size has been defined. If the point is internal to a combined curve, this propety contains the ID of the combined curve, otherwise it is 0 Description These are the coordinates of the point. They are always specified in global rectangular coordinates.

5.39.2 Point Object Methods

Nodes

API-1375

5.39.2.1 Nodes

Nodes
( numNodes, nodeID ) Description: This method returns the nodes that are attached to this point Input: None Output: INT4 numNodes INT4 nodeID[0..numNodes-1] Return Code: FE_FAIL FE_NOT_EXIST FE_NO_MEMORY Remarks/Usage: None Example: Unable to return nodes, possibly none exist. No nodes were attached to the point in the manner you selected. Insufficient memory to allocate list of attached nodes. The number of nodes returned. The IDs of the selected nodes which are attached to the point.

API-1376
Nodes

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

NodesAsSet

API-1377

5.39.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 BOOL bClear Output: None Return Code: FE_FAIL Remarks/Usage: None Example: None Unable to return nodes, possibly none exist. The ID of the Set Object which receives the Node IDs. If True, the Set is cleared before loading the Node IDs.

API-1378
5.39.2.3 Curves

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 the ID of the Combined Curve, 2=List contains both the underlying and combined curves.

INT4 nCombinedMode

Output: INT4 numCurves INT4 curveID[0..numCurves-1] Return Code: FE_FAIL Remarks/Usage: Only points that are on Solids/Sheet Solids can be used with this method. Example: None Unable to return curves, possibly none exist. The number of curves in the returned array The IDs of the curves.

CurvesAsSet

API-1379

5.39.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 the ID of the Combined Curve, 2=List contains both the underlying and combined curves. ID of the Set Object to receive the Curve IDs If True, the Set is cleared before loading the curves

INT4 nCombinedMode

INT4 nSetID BOOL bClear Output: None Return Code: FE_FAIL Remarks/Usage:

Unable to return curves, possibly none exist.

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

API-1380

SurfacesAsSet

5.39.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 replaced by the ID of the Combined Surface, 2=List contains both the underlying and combined surfaces. ID of the Set Object to receive the Surface IDs If True, the Set is cleared before loading the surfaces

INT4 nCombinedMode

INT4 nSetID BOOL bClear Output: None Return Code: FE_FAIL Remarks/Usage:

Unable to return surfaces, possibly none exist.

Only points that are on Solids/Sheet Solids can be used with this method. Example: None

API-1381
5.40 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 Section 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.40.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 INT4 color INT4 layer The property color. 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, ShearPanel (Lin=11 Para=12), Membrane (Lin=13 Para=14), BendingOnly (Lin=15 Para=16), Plate (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, StiffnessMatrix=30, CurvedTube=31, PlotOnlyPlate=32, SlideLine=33, Contact=34, Axisymmetric Shell (Lin=35, Para=36), Para Beam=37, Weld/Fastener=38 ID of material referenced by property. This is not used for certain property types, like masses and laminates. These properties do not directly reference material data ID of the layup referenced by property. This is only used for laminates. Property title (maximum 79 characters). Reference coordinate system. Used to specify the coordinate system used on the Weld/Fastener property in the Fastener Property Values section. Array of property flags. Description

INT4 type

INT4 matlID

INT4 layupID STRING title INT4 refCS BOOL flag[0..3] or VARIANT vflag

API-1382
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 = 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 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 Options: 0 = As Specified, 1 = Symmetry, 2 = Membrane Only, 3 = Bending Only, 4 = Smear, 5 = Smear-core Array of property values. 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 Link property... ExtraMatlID[0] = Conduction Calculated Material ID 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

INT4 flagI[0..3] or VARIANT vflagI

REAL8 pval[0..188] or VARIANT vpval

INT4 ExtraMatlID[0..9] or VARIANT vExtraMatlID

Additional Properties INT4 extramat[0..9] INT4 pmat[0..74] Same as plyval, but returns/sets entire array as a VARIANT. Same as pval, but returns/sets entire array as a VARIANT.

API-1383
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 3 to get the number of real numbers that are available in outline. 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 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. Points on each loop in the outline must be specified in consecutive order.

INT4 numOutline

INT4 outline[0..3N]

5.40.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-sectional 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-1384
5.40.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.Property 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 Elements

Property Values for Rod, Bar, Tube, Link, Beam, and Spring Elements

Property Values ROD Type Flags 0 1 2 3 Values 0 1 2 3 4 5 6 J Ctors Area Cable Area I Area I1 I2 I12 J K1,eff K2,eff Dout Din Ku_A Kv_A Kw_A Kthu_A Kthv_A Kthw_A Ku_B Area_A I1_A I2_A I12_A J_A K1_A,eff K2_A,eff Stiffness Damping Bush Struc. Damping Bush Spring/ Damper Loc. Bush Trans. Stress Coeff Bush Rot. Stress Coeff Bush Trans. Strain Coeff cable compress. only gaps shape type section method pipe closed ends tapered shape type section method_A section method_B Bush orient. csys axial(1)/ torsion(0) Bush Spring/ Damper Loc. 1 2 BAR TUBE 3 4 LINK 5 BEAM 6 SPRING/ DAMPER

API-1385
Property Values ROD BAR TUBE LINK BEAM SPRING/ DAMPER Bush Rot. Strain Coeff

NSM Initial Tension Init. Slack Allow. Ten. Stress

NSM

NSM Pipe Pressure

Kv_B

NSM_A

8 9 10 11 12 13 14

Yf_A1 Zf_A1 Yf_A2 Zf_A2 Yf_A3 Zf_A3 Yf_A4

Kw_B Kthu_B Kthv_B Kthw_B

Yf_A1 Zf_A1 Yf_A2 Zf_A2 Yf_A3 Zf_A3 Yf_A4

15

Zf_A4

link type: 1 = Struct. 2 = Cond. 3 = Conv. 4 = Advect. 5 = Rad.

Zf_A4

16 17 18 19 20 21 22 23 24 25 26 Perimeter cond. type 0 = Bulk 1 = Calc. Bulk cond. Calc. Area Calc. Length Calc. Cond Cond. Direct.

Yoff_A Zoff_A Warp_A Perimeter_A Area_B I1_B I2_B I12_B J_B K1_B,eff K2_B,eff

API-1386
Property Values ROD 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 Std Shape H or Radius (DIM1) Std Shape W1 (DIM2) Std Shape W2 (DIM3) Std Shape T1 (DIM4) Std Shape T2 (DIM5) Std Shape T (DIM6) Std Shape SR1 Rad. View Factor Rad. View Fac. Func. Rad. Area Rad. Emiss. Adv. Mass Flow Adv. Spec. Heat Adv. Direct. Conv. Area Conv. Coeff. BAR TUBE LINK BEAM NSM_B Yf_B1 Zf_B1 Yf_B2 Zf_B2 Yf_B3 Zf_B3 Yf_B4 Zf_B4 Yoff_B Z_offB Warp_B Perimeter_B Std Shape H or Radius (DIM1) Std Shape W1 (DIM2) Std Shape W2 (DIM3) Std Shape T1 (DIM4) Std Shape T2 (DIM5) Std Shape T (DIM6) Std Shape SR1 Bush DOF1 Stiffness Bush DOF2 Stiffness Bush DOF3 Stiffness Bush DOF4 Stiffness Bush DOF5 Stiffness Bush DOF6 Stiffness Bush DOF1 Damping Bush DOF2 Damping Bush DOF3 Damping Bush DOF4 Damping Bush DOF5 Damping SPRING/ DAMPER

API-1387
Property Values ROD BAR TUBE LINK BEAM SPRING/ DAMPER Bush DOF6 Damping Bush DOF1 K vs. Frequency Function Bush DOF2 K vs. Frequency Function Bush DOF3 K vs. Frequency Function Bush DOF4 K vs. Frequency Function Bush DOF5 K vs. Frequency Function Bush DOF6 K vs. Frequency Function Bush DOF1 F/ V vs. Freq. Function End B_Std Shape H or Radius (DIM1) B_Std Shape W1 (DIM2) B_Std Shape W2 (DIM3) B_Std Shape T (DIM4) Bush DOF2 F/ V vs. Freq. Function Bush DOF3 F/ V vs. Freq. Function Bush DOF4 F/ V vs. Freq. Function Bush DOF5 F/ V vs. Freq. Function

47

Std Shape SR2

Std Shape SR2

48

Std Shape SR3

Std Shape SR3

49

Std Shape SR4

Std Shape SR4

50

Std Shape Orient Std Shape RefLoc

Std Shape Orient

51

Std Shape RefLoc

52

Shape RefY

Shape RefY

53

Shape RefZ

Shape RefZ

54

55

56

57

58

API-1388
Property Values ROD BAR TUBE LINK BEAM SPRING/ DAMPER Bush DOF6 F/ V vs. Freq. Function Bush DOF1 F vs. Disp. Function Bush DOF2 F vs. Disp. Function Bush DOF3 F vs. Disp. Function Bush DOF4 F vs. Disp. Function Bush DOF5 F vs. Disp. Function Bush DOF6 F vs. Disp. Function Bush Struc. Damping vs. Frequency

59

B_Std Shape T2 (DIM5) B_Std Shape T (DIM6)

60

61

B_Std Shape SR1

62

B_Std Shape SR2

63

B_Std Shape SR3

64

B_Std Shape SR4

65

B_Std Shape Orient B_Std Shape RefLoc B_Shape RefY B_Shape RefZ

66 67 68

API-1389
Property Values for DOF Spring, Curved Beam, Gap, Shear, Membrane, and Bending Elements

Property Values (continued) DOF SPRING Type Flags 0 1 2 3 Values 0 1 2 3 4 5 6 7 8 9 10 Stiffness Damping Area I1 I2 I12 J K1,eff K2,eff NSM Yf_A1 Zf_A1 Yf_A2 Gap,initial Stiff,comp. Stiff,tens. Stiff,trans. Mu,y Mu,z PreloadT Plane X Plane Y Plane Z Width/Area MaxPenRat (Set value to -1 to uncheck Adaptive box) MaxAdjRat MinPenRat NSM F1,eff.fact. F2,eff.fact.
(9.1+)

CURVED BEAM 8 9

GAP

SHEAR 11/12

MEMBRANE 13/14

BENDING 15/16

Has CSys shape type DOF_A DOF_B section method

NSM

NSM Top Fiber Bot Fiber 12I/T3

F3,eff.fact.
(9.1+)

11

Zf_A2

F4,eff.fact.

12 13 14 15

Yf_A3 Zf_A3 Yf_A4 Zf_A4

API-1390
Property Values (continued) DOF SPRING 16 17 20 = Force vs. Freq. function 21 = Damping vs. Frequency function 22 = Force vs. Disp. function Std Shape H or R (DIM1) Std Shape W1 (DIM2) Std Shape W2 (DIM3) Std Shape T1 (DIM4) Std Shape T2 (DIM5) Std Shape T (DIM6) Std Shape SR1 Std Shape SR2 Std Shape SR3 Std Shape SR4 Std Shape Orient Std Shape RefLoc Shape RefY Shape RefZ R, bend rad CURVED BEAM GAP SHEAR MEMBRANE BENDING

18..39

40 41 42 43 44 45 46 47 48 49 50 51 52 53

API-1391

Property Values for Plate, Plane Strain, Laminate, Mass, Mass Matrix, and Stiff Matrix Elements

Property Values (continued) PLATE Type Flags 0 1 Values 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 NSM Top Fiber Bot Fiber 12I/T3 Ts/T Comp. Direction
(NE)Copress (NE)

PLANE STRAIN 19/20

LAMINATE 21/22

MASS 27

MASS MATRIX 28

STIFF MATRIX 30

17/18

failure theory options

Tavg,T1 T2 T3 T4

Bottom Fiber NSM Bond Shear Ref Temp Damping Ixx Ixy Iyy Izx Iyz Izz

M11 M12 M13 M14 M15 M16

K11 K12 K13 K14 K15 K16

NSM Top Fiber Bot Fiber

M or Mx Xoff,refCS Yoff,refCS Zoff,refCS My Mz

M22 M23 M24 M25 M26

K22 K23 K24 K25 K26

Allowable
(NE) (NE) (NE) (NE)

X Fact. Y Fact. Type F1, eff.

M33 M34 M35 M36

K33 K34 K35 K36

API-1392
Property Values (continued) PLATE 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 M66
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.
(NE) (NE)

PLANE STRAIN

LAMINATE

MASS

MASS MATRIX

STIFF MATRIX

F2, eff. F3, eff. F4, eff. Effective Diameter


(1)

(NE)

Mass Functon M44 M45 M46 K44 K45 K46

M55 M56

K55 K56

K66

API-1393
Property Values for Curved Tube, Slide Line, Axisymmetric Shell, and Weld/Fastener Elements

Property Values (continued) CURVED TUBE Type Flags 0 Penetration (Unsym = 1, Sym = 0)
(9.1+)M-Set

SLIDE LINE 33

CONTACT 34 (Obsolete)

AXISYM SHELL 35/36

WELD/FASTENER 38

31

DOF

(CWELD)
(9.1+)Spot

1 2 3 Values 0 Dout Stiffness Scale Nonsliding Friction


(8.2+)

Weld (CWELD)

(10+)Absolute

(CFAST) Use Material CSys (CFAST)


(10+)

for both CWELD and CFAST


(10+)

(10+)Diameter

1 2 3 4 5 6 7 8 9 10

Din

Mass Damping

(10+)Struct (10+)KTX

Static Friction

(10+)KTY (10+) (10+)

KTZ KRX KRY

NSM

(10+)

(10+)KRZ (10+)CWELD/CFAST

toggle (0 = CWELD, 1 = CFAST) Master Width

API-1394
Property Values (continued) CURVED TUBE 11 12 13 14 15 16 17 R, bend rad The following types are also available: Plot Only (10), Plot Plate (32), Axisymmetric (23/24), Solid (25/26), and Rigid (29). When two types are listed, the first number corresponds to a linear type, the second to a parabolic type. For Solid Properties (25/26): flag(0): False = Align to CSys, True = Align to Element pval(0): Intergration Network (must be a value from 0 to 3) SLIDE LINE Slave Width CONTACT AXISYM SHELL WELD/FASTENER

5.40.3 Property Object Methods


There following methods are available in addition to the standard entity methods.

ComputeShape

API-1395

5.40.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 BOOL warping BOOL stress_recovery 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: If True, the shear center offset is computed. If True, the warping constants are computed. If True, the stress recovery locations and cross section orientation that are currently defined in the object are used for the computation. If False, default stress recovery locations and orientation are used.

API-1396

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-1397

5.40.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 = Circular Tube, 7 = Hex Bar, 8 = Hex Tube, 9 = I, 10 = Channel, 11 = 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 that they are shown in the shape dialog box. The orientation direction (0=Right, 1=Up, 2=Left, 3=Down). Ignored for the Nastran shapes - for these orientation is always Up The method used to evaluate the section properties (0=Auto, 1=Original, 2=Alternate, 3=Nastran PBEAML) If True, the shear center offset is computed. If True, the warping constants are computed. If True, the stress recovery locations and cross section orientation that are currently defined in the object are used for the computation. If False, default stress recovery locations and orientation are used.

INT4 shapeID

REAL8 dimensions[0..5] INT4 shape_orient INT4 eval_method BOOL shear_center_offset BOOL warping BOOL stress_recovery Output: None Return Code: FE_BAD_TYPE

Property type not set to a type that uses a shape

API-1398

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 Set Dim Set App As femap.model App = feFemap() p As femap.Prop p = App.feProp

Dim d(5) As Double d(0) d(1) d(2) d(3) = = = = 2.0 1.0 0.2 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-1399

5.40.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 REAL8 vecDIR[0..2] INT4 shape_orient INT4 eval_method BOOL shear_center_offset BOOL warping BOOL stress_recovery Output: None Return Code: FE_BAD_TYPE Remarks/Usage:

ID of a surface to be used to compute the general shape A vector that defines the original surface Y axis The orientation direction (0=Right, 1=Up, 2=Left, 3=Down). Ignored for the Nastran shapes - for these orientation is always Up The method used to evaluate the section properties (0=Auto, 1=Original, 2=Alternate) If True, the shear center offset is computed. If True, the warping constants are computed. If True, the stress recovery locations and cross section orientation that are currently defined in the object are used for the computation. If False, default stress recovery locations and orientation are used.

Property type not set to a type that uses a shape

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-1400
5.40.3.4 Matl

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-1401

5.40.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-1402

Thickness

5.40.3.6 Thickness

Thickness
( dAvgOrC1, dAtC2, dAtC3, dAtC4 ) Description: This method returns the thickness of the property. Input: None Output: REAL8 dAvgOrC1 REAL8 dAtC2 REAL8 dAtC3 REAL8 dAtC4 Return Code: FE_OK FE_BAD_TYPE FE_NOT_AVAILABLE Remarks/Usage: None Example: None Property type does not have thickness. Laminate property does not reference a Layup. The thickness or alternately the thickness at corner 1. The thickness at corner 2. The thickness at corner 3. The thickness at corner 4.

Area

API-1403

5.40.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 REAL8 dAreaB Return Code: FE_OK FE_BAD_TYPE Remarks/Usage: None Example: None Property is not correct type. The area at EndA. The area at EndB.

API-1404
5.40.3.8 Inertia

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 REAL8 dI2A REAL8 dI12A REAL8 dIJA REAL8 dI1B REAL8 dI2B REAL8 dI12B REAL8 dIJB Return Code: FE_OK FE_BAD_TYPE Remarks/Usage: None Example: None Property is not a line type. Area Moment of Inertia for plane 1 EndA Area Moment of Inertia for plane 2 EndA Cross product of inertia at EndA Torsional constant EndA Area Moment of Inertia for plane 1 EndB Area Moment of Inertia for plane 2 EndB Cross product of inertia at EndB Torsional constant EndB

API-1405
5.41 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 methods defined for Entity objects are also available for Report objects. For more information, see Section 5.1, "Common Entity Properties and Methods". Use the feReport method of the FEMAP Application object to create Report objects.

5.41.1 Report Object Properties


Reports are always stored with a SetID=1, and the ID equal to the report ID. Property STRING title INT4 DataType BOOL CenterHeader1 BOOL CenterHeader2 BOOL DbSpHeader1 BOOL DbSpHeader2 STRING Header1 STRING Header2 STRING ColumnHeader STRING Data1 STRING Data2 STRING Data3 STRING Data4 The formats associated with the various lines of the report. Refer to the List, Output, Use Format command for more information about how to define each of these formats. Maximum size is 130 characters. Description Material title (maximum 79 characters). The type of data included in this report: 7=Nodal Results, 8=Elemental Results. Set to True to center the associated header.

Set to True to double-space the associated header.

5.41.2 Report Object Methods


There are no Report object-specific methods. Only the standard entity methods are available.

API-1406
5.42 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 methods 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.42.1 Solid Object Properties


Surfaces are always stored with a SetID=1, and the ID equal to the Solid (or Volume) ID. Property INT4 Type INT4 attrPID For Volumes Only INT4 VolSurface[0..5] or VARIANT vVolSurface BOOL VolReverse[0..5][0..2] or VARIANT vVolReverse INT4 VolColor INT4 VolLayer INT4 VolType For Solids Only INT4 color INT4 layer INT4 Engine INT4 Address STRING title The color of the solid. The layer associated with the solid. The ID of the solid modeling engine used with this solid: 0=None, 1=Parasolid, 2=ACIS. The solid modeling engine geometry address. The title of the solid (maximum 79 characters). The IDs of the surfaces used to define the volume. Description The solid/volume type: 6=Volume, 39=Solid. The Property ID of the meshing attribute.

Flags used to indicate how the surface parametric directions are reversed when defining the volume. True=Reversed The color of the volume. The layer associated with the volume. The type/shape of the volume: 0=Brick,1=Wedge,2=Pyramid,3=Tetra.

Points

API-1407

5.42.2 Solid Object Methods


5.42.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 INT4 pointID[0..numPoints-1] Return Code: FE_FAIL 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 specified. Example: None Unable to get the point list. Possibly data is not stored or ID is not set correctly. The number of points in the pointID list. The IDs of the points on the solid.

API-1408

PointsAsSet

5.42.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 BOOL bClear Output: None Return Code: FE_FAIL 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 specified. Example: None Unable to get the point list. Possibly data is not stored or ID is not set correctly. The ID of the Set Object that will contain the IDs of the Points If True, the Set is cleared prior to loading the Point IDs

Curves

API-1409

5.42.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 ID of the Combined Curve, 2=List contains both the underlying and combined curves.

INT4 nCombinedMode

Output: INT4 numCurves INT4 curveID[0..numCurves-1] Return Code: FE_FAIL 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 specified. Example: None Unable to get the curve list. Possibly data is not stored or ID is not set correctly. The number of curves in the curveID list. The IDs of the curves on the solid.

API-1410

CurvesAsSet

5.42.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 ID of the Combined Curve, 2=List contains both the underlying and combined curves. The ID of the Set Object that will contain the IDs of the Curves If True, the Set is cleared prior to loading the Curve IDs

INT4 nCombinedMode

INT4 nSetID BOOL bClear Output: None Return Code: FE_FAIL Remarks/Usage:

Unable to get the curve list. Possibly data is not stored or ID is not set correctly.

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 specified. Example: None

FreeCurvesAsSet

API-1411

5.42.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 ID of the Combined Curve, 2=List contains both the underlying and combined curves. The ID of the Set Object that will contain the IDs of the Curves If True, the Set is cleared prior to loading the Curve IDs

INT4 nCombinedMode

INT4 nSetID BOOL bClear Output: None Return Code: FE_FAIL Remarks/Usage:

Unable to get the curve list. Possibly data is not stored or ID is not set correctly.

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 specified. Example: None

API-1412
5.42.2.6 Surfaces

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 surfaces that are on the solid that are in a Combined Surface are replaced by the ID of the Combined Surface, 2=List contains both the underlying and combined surfaces.

INT4 nCombinedMode

Output: INT4 numSurfs INT4 surfaceID[0..numSurfs-1] Return Code: FE_FAIL 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 specified. Example: None Unable to get the surface list. Possibly data is not stored or ID is not set correctly. The number of surfaces in the surfaceID list. The IDs of the surfaces on the solid.

SurfacesAsSet

API-1413

5.42.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 surfaces that are on the solid that are in a Combined Surface are replaced by the ID of the Combined Surface, 2=List contains both the underlying and combined surfaces. The ID of the Set Object that will contain the IDs of the Surfaces If True, the Set is cleared prior to loading the Surface IDs

INT4 nCombinedMode

INT4 nSetID BOOL bClear Output: None Return Code: FE_FAIL Remarks/Usage:

Unable to get the surface list. Possibly data is not stored or ID is not set correctly.

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 specified. Example: None

API-1414

MassProp

5.42.2.8 MassProp

MassProp
( area, volume, cg, inertia ) Description: This function computes the mass properties of a solid. Input: None Output: REAL8 area REAL8 volume REAL8 cg[0..2] REAL8 inertia[0..9] Return Code: FE_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 specified. Example: None The solid that you have selected does not exist. The total surface area of the solid. The volume of the solid (if closed). The location of the center of gravity of the solid. The 3x3 inertia matrix stored in row order [0][0], [0][1], [0][2], [1][0]...[2][2].

Export

API-1415

5.42.2.9 Export

Export
( fName ) Description: This function writes the current solid to an export (SAT or X_T) file. Input: STRING fName Output: None Return Code: FE_FAIL 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 specified. Example: None The current object does not contain a solid (must be a solid, not a volume). The name of the file to create.

API-1416
5.42.2.10 IsSolid

IsSolid

IsSolid
( void ) Description: This function indicates whether a solid is a true, valid solid. Input: None Output: None Return Code: FE_FAIL FE_INVALID Remarks/Usage: This method will only work with solids, not volumes. Returns FE_OK if current object is a solid. Example: None 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 supported.

IsSheet

API-1417

5.42.2.11 IsSheet

IsSheet
( void ) Description: This function indicates whether a solid is a sheet solid. Input: None Output: None Return Code: FE_FAIL FE_INVALID 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 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 supported

API-1418
5.42.2.12 IsWire

IsWire

IsWire
( void ) Description: This function indicates whether a solid is a wire solid. Input: None Output: None Return Code: FE_FAIL FE_INVALID 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 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 supported.

IsGeneral

API-1419

5.42.2.13 IsGeneral

IsGeneral
( void ) Description: This function indicates whether a solid is a general body. Input: None Output: None Return Code: FE_FAIL FE_INVALID Remarks/Usage: This method will only work with solids, not volumes. Returns FE_OK if current object is a general body. Example: None The solid is not a general body. The current object does not contain a valid solid - volumes are not supported.

API-1420
5.42.2.14 Facets

Facets

Facets
( numFacets, xyzFacet ) Description: This method returns the triangular facets used for display of solids. Input: None Output: INT4 numFacets REAL8 xyzFacet[0..9*numFacets-1] Return Code: FE_FAIL 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 Not a solid, or unable to retrieve facets. The number of facets returned. The coordinates of the corners of the facets. Each facet is a triangle, and therefore has 9 coordinates. They are arranged in xyzFacet as [X1,Y1,Z1,X2,Y2,Z2,X3,Y3,Z3....] for the first facet, followed by the second and so on.

Nodes

API-1421

5.42.2.15 Nodes

Nodes
( getBoundary, getInterior, numNodes, nodeID ) Description: This method returns the nodes that are attached to this solid Input: BOOL getBoundary BOOL getInterior Output: INT4 numNodes INT4 nodeID[0..numNodes-1] Return Code: FE_FAIL FE_NOT_EXIST FE_NO_MEMORY Remarks/Usage: None Example: Unable to return nodes, possibly none exist. No nodes were attached to the solid in the manner you selected. Insufficient memory to allocate list of attached nodes. The number of nodes returned. The IDs of the selected nodes which are attached to the solid. If True, the nodes attached to the solid boundary (the surfaces, curves and points) are selected If True, the nodes attached to the interior of the solid (not on the surfaces, curves or points) are selected

API-1422
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 Set Dim Set Dim Dim Dim Dim so As Object so = App.feSolid nd As Object nd = App.feNode rc As Long Count As Long Nodes As Variant 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-1423

5.42.2.16 NodesAsSet

NodesAsSet
( getBoundary, getInterior, nSetID, bClear ) Description: This method returns the nodes that are attached to this solid in a Set Input: BOOL getBoundary BOOL getInterior INT4 nSetID BOOL bClear Output: None Return Code: FE_FAIL FE_NOT_EXIST FE_NO_MEMORY Remarks/Usage: None Example: None Unable to return nodes, possibly none exist. No nodes were attached to the solid in the manner you selected. Insufficient memory to allocate list of attached nodes. If True, the nodes attached to the solid boundary (the surfaces, curves and points) are selected If True, the nodes attached to the interior of the solid (not on the surfaces, curves or points) are selected The ID of the Set Object that will contain the IDs of the Nodes If True, the Set is cleared prior to loading the Node IDs

API-1424

Elements

5.42.2.17 Elements

Elements
( numElems, elemID ) Description: This method returns the elements that are attached to this solid Input: None Output: INT4 numElems INT4 elemID[0..numElems-1] Return Code: FE_FAIL FE_NOT_EXIST FE_NO_MEMORY 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 Unable to return elements, possibly none exist. No elements were attached to the solid in the manner you selected. Insufficient memory to allocate list of attached elements. The number of elements returned. The IDs of the selected elements which are attached to the solid.

ElementsAsSet

API-1425

5.42.2.18 ElementsAsSet

ElementsAsSet
( nSetID, bClear ) Description: This method returns the elements that are attached to this solid in a Set Input: INT4 nSetID BOOL bClear Output: None Return Code: FE_FAIL FE_NOT_EXIST FE_NO_MEMORY 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 Unable to return elements, possibly none exist. No elements were attached to the solid in the manner you selected. Insufficient memory to allocate list of attached elements. The ID of the Set Object that will contain the IDs of the Elements If True, the Set is cleared prior to loading the Element IDs

API-1426

BoundingBox

5.42.2.19 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 coordinates. Box[0] - Minimum X, Box[3] - Maximum X Box[1] - Minimum Y, Box[4] - Maximum Y Box[2] - Minimum Z, Box[5] - Maximum Z

INT4 Box[0..5]

Return Code: FE_FAIL FE_INVALID Remarks/Usage: This method always retrieves a box that is aligned with Global Rectangular coordinates, not an aligned box of minimum volume. Example: None Unable to find a bounding box. Object does not contain valid geometry. This method only works for Parasolid-based geometry.

API-1427
5.43 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.43.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 INT4 layer INT4 color INT4 type INT4 StdCurve[0..5] or VARIANT vStdCurve BOOL StdCurveReverse[0..5] or VARIANT vStdCurveReverse INT4 Divisions[0..1] or VARIANT vDivisions INT4 Engine INT4 Address BOOL Suppressed INT4 InternalToBoundary Description The ID of the layer associated with the surface. The surface color. The surface type: 0=Bilinear, 1=Ruled, 2=Revolution, 3=Coons, 4=Bezier, 5=Solid, 6=Not Used, 7=Boundary. The IDs of the curves referenced by Bilinear, Ruled, Revolution, Coons and Bezier surfaces. If True, the surface uses the corresponding StdCurve in a reversed orientation. The number of divisions in the u and v parametric directions for display purposes. The ID of the solid modeling engine used with this surface: 0=None, 1=Parasolid. The solid modeling engine geometry address True if this surface is suppressed (will not be meshed). If this surface is used to define a Combined Surface, then this property contains the ID of the Combined Surface, otherwise it is 0.

Mesh Attributes INT4 attrPID INT4 attrTopology The Property ID of the meshing attribute. The shape of elements that will be meshed onto the surface (2=Tri3, 3=Tri6, 4=Quad4, 5=Quad8)

API-1428
Property INT4 attrMesher INT4 attrMappedLevel BOOL attrMapSubdivisions BOOL attrMapEqualOnly BOOL attrMapAltTri BOOL attrMapRightBias BOOL attrMapSplitQuads Description The mesher that will be used (0=Auto,1=Subdivision, 2=Fast Tri, 3=3D Tri Mapped Meshing Switch (0=Off,1=On) If True and using subdivision mesher, then additional mapped meshing may be done at the subdivision level If True, only surfaces with equal numbers of elements on opposite sides will be mapped mesh If True, and Mapped Tri meshing, the triangle cuts will alternate directions If True and Mapped Tri meshing, the first cut will be right oriented, otherwise left 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. If Mapped Meshing, this value is the max angle deviation from 90 deg to determine a corner of the mapped mesh If Mapped Meshing, prevents mapped meshing if a mapped corner angle is less than this value. If True, Midside nodes will be moved to (or toward) the geometry. If False, Midside nodes are at the midpoint of the element edge. This has no effect on planar surfaces. If Nonzero, then this limits the angle that an edge can be distorted as the midside node is moved toward the geometry. For the Subdivision mesher, ensures that there will be at least this number of elements along any cut between edges. Normally should be set to 1. For the Subdivision mesher, the divisions are adjusted to attempt to get a max element aspect ratio less than this value. For the Subdivision mesher, surfaces with more than this number of elements along its edges are subdivided without looking at every possibility. Not used with v10 Mesher. Quad elements with angles that are further from 90 deg than this angle are split into triangles. If True, use Laplacian smoothing. If False, Centroidal. Number of Smoothing Iterations

REAL8 attrMapAngleDeviation REAL8 attrMapMinCornerAngle BOOL attrMidsideGeom

REAL8 attrMidsideAngle INT4 attrMinBetween

REAL8 attrMaxAspect INT4 attrQuickCutNodes

REAL8 attrQuadCutAngle BOOL attrSmoothLaplacian INT4 attrSmoothIter

API-1429
Property REAL8 attrSmoothTolerance Description Tolerance value for smoothing. Smoothing will stop prior to the specified number of iterations if no nodes are moving further than this value. If True, automatically uses nodes on curves when meshing this surface (automatically connects to adjoining meshes) Tolerance between nodal locations and mesh locations on edge for finding existing edge nodes to connect. Location in element to offset from (0=Centerline, 1=Top Face, 2=Bottom Face) The meshing attribute defining the offset to be applied to elements. If True, the attributes have been initialized - probably because the surface has been meshed, or attributes have been defined. 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. The number of quad mesh layers to pave around holes

BOOL attrConnectEdgeNodes REAL8 attrConnectEdgeNodeTol INT4 attrOffsetFrom REAL8 attrOffset BOOL attrInitialized BOOL attrPostMeshCleanup

INT4 QuadMeshLayers 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, these are the point IDs defining the corners of the mapped mesh. For the Link to Surface approach, approachData[0] is the ID of the surface that this surface is linked to.

INT4 approachData[0..3] or VARIANT vapproachData Mesh Sizing REAL8 MeshSizeInterior REAL8 MeshSizeChord For Mesh Points on Surface INT4 MeshPoint[0..149] or VARIANT vMeshPoint For Boundary Surfaces only INT4 BoundaryCurve[0..749] or VARIANT vBoundaryCurve

Growth factor on interior of surface. Factor for curvature-based meshing.

The IDs of points used as mesh points on the surface.

The IDs of the curves used to define the boundary.

API-1430
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 0x20 - curve is used as the end of a loop 0x80 - curve is used in a loop that is part of a hole in the surface 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 additional loops which define the holes in the surface. There can only be one outer loop. The mapping of the boundary for meshing: 0=Planar/Interpolate Curves, 3=Map to Surface. The ID for the surface to use for mapping if BoundaryMode=3.

INT4 BoundaryFlag[0..749] or VARIANT vBoundaryFlag

INT4 BoundaryMode INT4 BoundaryOnSurface

Inside

API-1431

5.43.2 Surface Object Methods


5.43.2.1 Inside

Inside
( u, v ) Description: This method finds if a parametric location lies inside the specified surface. Input: REAL8 u REAL8 v Output: None Return Code: FE_FAIL Remarks/Usage: This method will work for any type of surface except combined boundary surfaces. Use InsideXYZ for those surfaces. Example: None The location lies outside of the surface (or inside a hole). The parametric coordinates of the location to be tested.

API-1432

InsideXYZ

5.43.2.2 InsideXYZ

InsideXYZ
( xyz ) Description: This method finds if a location lies inside the specified surface. Input: REAL8 xyz[0..2] Output: None Return Code: FE_FAIL Remarks/Usage: This method will work for any type of surface including combined boundary surfaces. Example: None The location lies outside of the surface (or inside a hole). The Global Rectangular coordinates of the location to be tested.

ParamToXYZ

API-1433

5.43.2.3 ParamToXYZ

ParamToXYZ
( u, v, xyz ) Description: This method converts a parametric location (u,v) to a coordinate location (xyz). Input: REAL8 u REAL8 v Output: REAL8 xyz[0..2] Return Code: FE_FAIL Remarks/Usage: This method will work for any type of surface. Example: None Unable to compute the location. The coordinates of the location in global rectangular. The parametric coordinates of the location being specified.

API-1434

XYZToParam

5.43.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] Output: REAL8 u REAL8 v Return Code: FE_FAIL Remarks/Usage: This method will work for any type of surface. Example: None Unable to compute the location. The parametric coordinates of the location. The coordinates of the location in global rectangular.

CG

API-1435

5.43.2.5 CG

CG
( xyz ) Description: This method finds the center of gravity of a surface. Input: None Output: REAL8 xyz[0..2] Return Code: FE_FAIL 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 Unable to compute the location. Possibly wrong surface type, ID is not set, or data is not stored in database. The coordinates of the center of gravity, in global rectangular.

API-1436
5.43.2.6 Area

Area

Area
( area ) Description: This method finds the area of a surface. Input: None Output: REAL8 area Return Code: FE_FAIL 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 Unable to compute the location. Possibly wrong surface type, ID is not set, or data is not stored in database. The area of the surface.

ApproximateArea

API-1437

5.43.2.7 ApproximateArea

ApproximateArea
( area ) Description: This method is similar to Area( ), however the area is not computed as precisely to improve performance Input: None Output: REAL8 area Return Code: FE_FAIL FE_BAD_TYPE FE_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 Unable to compute the location. Possibly wrong surface type, ID is not set, or data is not stored in database. Surface type is not supported. This method only works with Solid and Combined Surfaces The surface does not exist The area of the surface.

API-1438
5.43.2.8 Tangents

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 REAL8 v Output: REAL8 uTangent[0..2] REAL8 vTangent[0..2] Return Code: FE_FAIL Remarks/Usage: This method will work for any surface. Example: None Unable to compute the location. Possibly wrong surface type, ID is not set, or data is not stored in database. The tangent vector in the direction of the u parametric space of the surface. The tangent vector in the direction of the v parametric space of the surface. The parametric coordinates of the location being specified.

Normal

API-1439

5.43.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 REAL8 v Output: REAL8 normal[0..2] Return Code: FE_FAIL Remarks/Usage: This method will work for any surface. Example: None Unable to compute the normal. Possibly wrong surface type, ID is not set, or data is not stored in database. The vector in the direction of the surface normal. The parametric coordinates of the location being specified.

API-1440

NormalAtXYZ

5.43.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 REAL8 xyz[0..3*nLocations-1] Output: REAL8 normal[0..3*nLocations-1] Return Code: FE_FAIL Remarks/Usage: This method will work for any surface. Example: None Unable to compute the normals. Possibly wrong surface type, ID is not set, or data is not stored in database. The vectors in the direction of the surface normals. Each set of 3 entries in this array correspond to the matching entries in the xyz array, and are the x,y and z vector components of the normal. Number of locations specified in the xyz array The Global Rectangular coordinates of the locations where you want normals computed. This array is stored [x0,y0,z0,x1,y1,z1...], and must contain 3*nLocations entries.

ProjectOnto

API-1441

5.43.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 least this close. This tolerance is only used for certain standard surface types.

REAL8 tolerance

Output: REAL8 projection[0..2] Return Code: FE_FAIL 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 Unable to compute the location. Possibly wrong surface type, ID is not set, or data is not stored in database. The projected location, on the surface.

API-1442
5.43.2.12 Solid

Solid

Solid
( nSolidID ) Description: This method returns the ID of the Solid that contains the current Surface Input: None Output: INT4 nSolidID Return Code: FE_FAIL Remarks/Usage: This method will only work with Solid surfaces and Combined Surfaces that are defined on a Solid. Example: None Unable to get the solid The ID of the Solid that references the current Surface

BoundarySurfaces

API-1443

5.43.2.13 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 INT4 surfID[0..numSurf-1] Return Code: FE_FAIL FE_NOT_AVAILABLE Remarks/Usage: This method will only work with Combined Surfaces. Example: None Unable to get the surface list. Possibly data is not stored or this is not a Combined Surface No surfaces available for this surface. The number of surfaces in the surfID list. The IDs of the surfaces used to define the Combined Surface

API-1444

BoundarySurfacesAsSet

5.43.2.14 BoundarySurfacesAsSet

BoundarySurfacesAsSet
( numSurf, surfID ) 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 BOOL bClear Output: None Return Code: FE_FAIL FE_NOT_AVAILABLE Remarks/Usage: This method will only work with Combined Surfaces. Example: None Unable to get the surface list. Possibly data is not stored or this is not a Combined Surface No surfaces available for this surface. The ID of the Set Object that will contain the IDs of the Surfaces If True, the Set is cleared prior to loading the Surface IDs

AdjacentSurfaces

API-1445

5.43.2.15 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, 1=Any surfaces that are adjacent that are in a Combined Surface are replaced by the ID of the Combined Surface, 2=List contains both the underlying and combined surfaces.

INT4 nCombinedMode

Output: INT4 numSurf INT4 surfID[0..numSurf-1] Return Code: FE_FAIL 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 Unable to find adjacent surfaces The number of surfaces in the surfID list. The IDs of the adjacent surfaces

API-1446

AdjacentSurfacesAsSet

5.43.2.16 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, 1=Any surfaces that are adjacent that are in a Combined Surface are replaced by the ID of the Combined Surface, 2=List contains both the underlying and combined surfaces. The ID of the Set Object that will contain the IDs of the Surfaces If True, the Set is cleared prior to loading the Surface IDs

INT4 nCombinedMode

INT4 nSetID BOOL bClear Output: None Return Code: FE_FAIL Remarks/Usage:

Unable to find adjacent surfaces

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-1447

5.43.2.17 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, 1=Any curves that are on the surface that are in a Combined Curve are replaced by the ID of the Combined Curve, 2=List contains both the underlying and combined curves.

INT4 nCombinedMode

Output: INT4 numCurves INT4 curveID[0..numCurves-1] Return Code: FE_FAIL 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 Unable to get the curve list. Possibly data is not stored or ID is not set correctly. The number of curves in the curveID list. The IDs of the curves on the surface.

API-1448

CurveLoops

5.43.2.18 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, 1=Any curves that are on the surface that are in a Combined Curve are replaced by the ID of the Combined Curve, 2=List contains both the underlying and combined curves.

INT4 nCombinedMode

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 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 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 ID is negative, this indicates that the curve is used in the reverse direction.

INT4 numLoops

INT4 numCurves

INT4 curveID[0..numCurves-1] Return Code: FE_FAIL Remarks/Usage:

Unable to get the curve list. Possibly data is not stored or ID is not set correctly.

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-1449

5.43.2.19 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, 1=Any curves that are on the surface that are in a Combined Curve are replaced by the ID of the Combined Curve, 2=List contains both the underlying and combined curves. The ID of the Set Object that will contain the IDs of the Curves If True, the Set is cleared prior to loading the Curve IDs

INT4 nCombinedMode

INT4 nSetID BOOL bClear Output: None Return Code: FE_FAIL Remarks/Usage:

Unable to get the curve list. Possibly data is not stored or ID is not set correctly.

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-1450
5.43.2.20 Points

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, 1=Any curves that are on the surface that are in a Combined Curve are replaced by the ID of the Combined Curve, 2=Uses both the underlying and combined curves.

Output: INT4 numPoints INT4 pointID[0..numPoints-1] Return Code: FE_FAIL 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 Unable to get the point list. Possibly data is not stored or ID is not set correctly. The number of points in the pointID list. The IDs of the points on the surface.

PointsAsSet

API-1451

5.43.2.21 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, 1=Any curves that are on the surface that are in a Combined Curve are replaced by the ID of the Combined Curve, 2=Uses both the underlying and combined curves. The ID of the Set Object that will contain the IDs of the Points If True, the Set is cleared prior to loading the Point IDs

INT4 nSetID BOOL bClear Output: None Return Code: FE_FAIL Remarks/Usage:

Unable to get the point list. Possibly data is not stored or ID is not set correctly.

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-1452

EndPoints

5.43.2.22 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 INT4 pointID[0..numPoints-1] Return Code: FE_FAIL 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 center of an arc used to define the surface. This method will only return one pair of points (the endpoints) for each curve. Example: None Unable to get the point list. Possibly data is not stored or ID is not set correctly. The number of points in the pointID list. The IDs of the points on the surface.

EndPointsAsSet

API-1453

5.43.2.23 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 BOOL bClear Output: None Return Code: FE_FAIL 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 center of an arc used to define the surface. This method will only return one pair of points (the endpoints) for each curve. Example: None Unable to get the point list. Possibly data is not stored or ID is not set correctly. The ID of the Set Object that will contain the IDs of the Points If True, the Set is cleared prior to loading the Point IDs

API-1454
5.43.2.24 Planar

Planar

Planar
( base, normal ) Description: This method returns information about planar surfaces. Input: None Output: REAL8 base[0..2] REAL8 normal[0..2] Return Code: FE_FAIL Remarks/Usage: This method will only work with solid surfaces, not surfaces created with the FEMAP Standard geometry 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 Surface is not planar, or could not evaluate the surface. The coordinates of a point on the surface The vector that is normal to the plane

Cylindrical

API-1455

5.43.2.25 Cylindrical

Cylindrical
( radius, base, axis ) Description: This method returns information about cylindrical surfaces Input: None Output: REAL8 radius REAL8 base[0..2] REAL8 axis[0..2] Error Codes: FE_FAIL Remarks/Usage: This method will only work with solid surfaces, not surfaces created with the FEMAP Standard geometry 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 Surface is not cylindrical, or could not evaluate the surface. The radius of the cylinder. The coordinates of the center of the base of the cylinder. The components of the axis vector.

API-1456

Spherical

5.43.2.26 Spherical

Spherical
( radius, center ) Description: This method returns information about spherical surfaces Input: None Output: REAL8 radius REAL8 center[0..2] Error Codes: FE_FAIL Remarks/Usage: This method will only work with solid surfaces, not surfaces created with the FEMAP Standard geometry 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 Surface is not spherical, or could not evaluate the surface. The radius of the sphere. The coordinates of the center of the sphere.

Conical

API-1457

5.43.2.27 Conical

Conical
( radius, angle, base, axis ) Description: This method returns information about conical surfaces Input: None Output: REAL8 radius REAL8 angle REAL8 base[0..2] REAL8 axis[0..2] Error Codes: FE_FAIL Remarks/Usage: This method will only work with solid surfaces, not surfaces created with the FEMAP Standard geometry 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 Surface is not conical, or could not evaluate the surface. The radius of the cone in the plane of the base location. The half angle of the cone A location along the axis of the cone. The vector along the axis of the cone

API-1458
5.43.2.28 Toroidal

Toroidal

Toroidal
( radius1, radius2, base, axis ) Description: This method returns information about toroidal surfaces Input: None Output: REAL8 radius1 REAL8 radius2 REAL8 base[0..2] REAL8 axis[0..2] Error Codes: FE_FAIL Remarks/Usage: This method will only work with solid surfaces, not surfaces created with the FEMAP Standard geometry 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 Surface is not toroidal, or could not evaluate the surface. The major radius of the toroid. The minor radius of the toroid A location along the axis of the toroid. The vector along the axis of the toroid

IsPlane

API-1459

5.43.2.29 IsPlane

IsPlane
( void ) Description: This method indicates whether a surface is planar Input: None Output: None Error Codes: FE_FAIL FE_BAD_TYPE FE_NOT_AVAILABLE Remarks/Usage: This method will only work with solid surfaces, not surfaces created with the FEMAP Standard geometry 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 Surface is not planar, or could not evaluate the surface. Surface is not a solid surface Surface object has not been loaded with valid data from the database

API-1460

IsCylinder

5.43.2.30 IsCylinder

IsCylinder
( void ) Description: This method indicates whether a surface is cylindrical Input: None Output: None Error Codes: FE_FAIL FE_BAD_TYPE FE_NOT_AVAILABLE Remarks/Usage: This method will only work with solid surfaces, not surfaces created with the FEMAP Standard geometry 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 Surface is not cylindrical, or could not evaluate the surface. Surface is not a solid surface Surface object has not been loaded with valid data from the database

IsSphere

API-1461

5.43.2.31 IsSphere

IsSphere
( void ) Description: This method indicates whether a surface is spherical Input: None Output: None Error Codes: FE_FAIL FE_BAD_TYPE FE_NOT_AVAILABLE Remarks/Usage: This method will only work with solid surfaces, not surfaces created with the FEMAP Standard geometry 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 Surface is not shperical, or could not evaluate the surface. Surface is not a solid surface Surface object has not been loaded with valid data from the database

API-1462
5.43.2.32 IsCone

IsCone

IsCone
( void ) Description: This method indicates whether a surface is conical Input: None Output: None Error Codes: FE_FAIL FE_BAD_TYPE FE_NOT_AVAILABLE Remarks/Usage: This method will only work with solid surfaces, not surfaces created with the FEMAP Standard geometry 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 Surface is not conical, or could not evaluate the surface. Surface is not a solid surface Surface object has not been loaded with valid data from the database

IsTorus

API-1463

5.43.2.33 IsTorus

IsTorus
( void ) Description: This method indicates whether a surface is toroidal Input: None Output: None Error Codes: FE_FAIL FE_BAD_TYPE FE_NOT_AVAILABLE Remarks/Usage: This method will only work with solid surfaces, not surfaces created with the FEMAP Standard geometry 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 Surface is not toroidal, or could not evaluate the surface. Surface is not a solid surface Surface object has not been loaded with valid data from the database

API-1464

IsBoundingSolidRegion

5.43.2.34 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 FE_BAD_TYPE Remarks/Usage: This method will only work with solid surfaces, not surfaces created with the FEMAP Standard geometry 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 Could not evaluate the surface. Surface is not a solid surface

Facets

API-1465

5.43.2.35 Facets

Facets
( numFacets, xyzFacet ) Description: This method returns the triangular facets used for display of solid surfaces. Input: None Output: INT4 numFacets REAL8 xyzFacet[0..9*numFacets-1] Return Code: FE_FAIL 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 Wrong type of surface, or unable to retrieve facets. The number of facets returned. The coordinates of the corners of the facets. Each facet is a triangle, and therefore has 9 coordinates. They are arranged in xyzFacet as [X1,Y1,Z1,X2,Y2,Z2,X3,Y3,Z3....] for the first facet, followed by the second and so on.

API-1466
5.43.2.36 Nodes

Nodes

Nodes
( getBoundary, getInterior, numNodes, nodeID ) Description: This method returns the nodes that are attached to this surface Input: BOOL getBoundary BOOL getInterior Output: INT4 numNodes INT4 nodeID[0..numNodes-1] Return Code: FE_FAIL FE_NOT_EXIST FE_NO_MEMORY Remarks/Usage: None Example: Unable to return nodes, possibly none exist. No nodes were attached to the surface in the manner you selected. Insufficient memory to allocate list of attached nodes. The number of nodes returned. The IDs of the selected nodes which are attached to the surface. If True, the nodes attached to the surface boundary (the curves and points) are selected If True, the nodes attached to the interior of the surface (not on the curves or points) are selected

Nodes

API-1467

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 Set Dim Set Dim Dim Dim Dim su As Surface su = App.feSurface nd As Node nd = App.feNode rc As Long Count As Long Nodes As Variant 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

API-1468

NodesAsSet

5.43.2.37 NodesAsSet

NodesAsSet
( getBoundary, getInterior, nSetID, bClear ) Description: This method returns the nodes that are attached to this surface in a Set object Input: BOOL getBoundary BOOL getInterior INT4 nSetID BOOL bClear Output: None Return Code: FE_FAIL FE_NOT_EXIST FE_NO_MEMORY Remarks/Usage: None Example: None Unable to return nodes, possibly none exist. No nodes were attached to the surface in the manner you selected. Insufficient memory to allocate list of attached nodes. If True, the nodes attached to the surface boundary (the curves and points) are selected If True, the nodes attached to the interior of the surface (not on the curves or points) are selected The ID of the Set Object that will contain the IDs of the Nodes If True, the Set is cleared prior to loading the Node IDs

Elements

API-1469

5.43.2.38 Elements

Elements
( numElems, elemID ) Description: This method returns the elements that are attached to this surface Input: None Output: INT4 numElems INT4 elemID[0..numElems-1] Return Code: FE_FAIL FE_NOT_EXIST FE_NO_MEMORY 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 Unable to return elements, possibly none exist. No elements were attached to the surface in the manner you selected. Insufficient memory to allocate list of attached elements. The number of elements returned. The IDs of the selected elements which are attached to the surface.

API-1470

ElementsAsSet

5.43.2.39 ElementsAsSet

ElementsAsSet
( nSetID, bClear ) Description: This method returns the elements that are attached to this surface in a Set object Input: INT4 nSetID BOOL bClear Output: None Return Code: FE_FAIL FE_NOT_EXIST FE_NO_MEMORY 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 Unable to return elements, possibly none exist. No elements were attached to the surface in the manner you selected. Insufficient memory to allocate list of attached elements. The ID of the Set Object that will contain the IDs of the Elements If True, the Set is cleared prior to loading the Element IDs

ElementsWithFaces

API-1471

5.43.2.40 ElementsWithFaces

ElementsWithFaces
( numElems, elemID ) Description: This method returns the elements that have faces which are attached to this surface Input: None Output: INT4 numElems INT4 elemID[0..numElems-1] Return Code: FE_FAIL FE_NOT_EXIST FE_NO_MEMORY 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 Unable to return elements, possibly none exist. No elements were attached to the surface in the manner you selected. Insufficient memory to allocate list of attached elements. The number of elements returned. The IDs of the selected elements which have faces that are attached to the surface.

API-1472

ElementFaces

5.43.2.41 ElementFaces

ElementFaces
( getPlaneElem, getSolidElem, requireElemAttach, numFaces, elemID, faceID ) Description: This method returns the element faces that are attached to this surface Input: BOOL getPlaneElem BOOL getSolidElem BOOL requireElemAttach Output: INT4 numFaces INT4 elemID[0..numFaces-1] INT4 faceID[0..numFaces-1] Return Code: FE_FAIL FE_NOT_EXIST FE_NO_MEMORY 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 Unable to return element faces, possibly none exist. No faces were attached to the surface in the manner you selected. Insufficient memory to allocate lists of attached elements/faces. The number of elements and faces returned. The IDs of the selected elements which have faces that are attached to the surface. The IDs of the faces of the elements which are on the surface. If True, planar elements with faces on the surface will be returned. If True, solid elements with faces on the surface will be returned. If True, planar elements must actually have been meshed on the surface, not just have all of its nodes on the surface.

BoundingBox

API-1473

5.43.2.42 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 coordinates. Box[0] - Minimum X, Box[3] - Maximum X Box[1] - Minimum Y, Box[4] - Maximum Y Box[2] - Minimum Z, Box[5] - Maximum Z

INT4 Box[0..5]

Return Code: FE_FAIL FE_INVALID Remarks/Usage: This method always retrieves a box that is aligned with Global Rectangular coordinates, not an aligned box of minimum volume. Example: None Unable to find a bounding box. Object does not contain valid geometry. This method only works for Parasolid-based geometry.

API-1474

BoundingSize

5.43.2.43 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] VARIANT pvLongDir[0..2] VARIANT pvNormalDir[0..2] Return Code: FE_FAIL FE_INVALID 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 Unable to compute the size. Possibly wrong surface type, ID is not set, or data is not stored in database. Invalid surface type, this method only works with Solid and Combined surfaces. The dimensions of the bounding box The direction along the longest side The direction along the shortest side of the box (normal to a planar surface)

NormalBox

API-1475

5.43.2.44 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 coordinates. Box[0] - Minimum dX, Box[3] - Maximum dX Box[1] - Minimum dY, Box[4] - Maximum dY Box[2] - Minimum dZ, Box[5] - Maximum dZ

REAL8 box[0..5]

Return Code: FE_FAIL Remarks/Usage: This method will work for any surface. Example: None Unable to compute the normals. Possibly wrong surface type, ID is not set, or data is not stored in database.

API-1476

MaxNormalDeviation

5.43.2.45 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 positive number, then the method will fail if the angle is greater than the specified value.

REAL8 dLimit

Output: REAL8 dAngle Return Code: FE_FAIL FE_NOT_AVAILABLE FE_NO_MEMORY Remarks/Usage: This is an approximate method. It uses the normals at the corners of facets, therefore you are not guaranteed that the maximum deviation will not be slightly larger than the value computed. Example: None The maximum angle exceeded the limit you set. (dAngle is invalid) Surface facetting information is not available to compute the normals Not enough memory to load all of the surface facets. The maximum angle between normal vectors

AngleAtPoint

API-1477

5.43.2.46 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 Output: REAL8 dAngle REAL8 vBisector[0..2] REAL8 vNormal[0..2] Return Code: FE_FAIL FE_NOT_AVAILABLE FE_NO_MEMORY Remarks/Usage: None Example: None Unable to determne the requested information. The selected point was not found Not enough memory to load all of the surface facets. The angle, in the surface, formed by the edges meeting at the selected point The surface tangent vector that bisects the angle The surface normal at the point The ID of the point to check

API-1478
5.43.2.47 HasPole

HasPole

HasPole
( void ) Description: This method indicates whether a surface contains a pole. Input: None Output: None Return Code: FE_FAIL FE_BAD_TYPE FE_NOT_AVAILABLE Remarks/Usage: Surface does not contain a pole, or could not evaluate the surface. Surface is not a Parasolid surface Surface object has not been loaded with valid data from the database

Example: None

MinRadiiOfCurvature

API-1479

5.43.2.48 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 REAL8 pdConvexRadius BOOL pbIsPlanar Return Code: None Remarks/Usage: Use this method to reset all parameters, then adjust individual properties to suit your needs. Example: None The minimum radius of curvature on the concave side of the surface The maximum radius of curvature on the concave side of the surface True if the surface is plaanr

API-1480

RationalParamToXYZ

5.43.2.49 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 REAL8 v Output: REAL8 XYZ[0..2] Return Code: FE_FAIL Remarks/Usage: Unable to compute the location. The coordinates of the location in global rectangular. The rational parametric coordinates of the location being specified. Parametric coordinates are between 0 and 1

Example: None

ResetMeshAttr

API-1481

5.43.2.50 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

API-1482
5.43.2.51 Mesh

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 created. If you want to use predefined meshing attributes, set propID=0. 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, 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 not. This argument is ignored if elemShape=0

INT4 propID

INT4 elemShape

BOOL bAllowMapped Output: None Return Code: FE_FAIL FE_INVALID FE_NOT_EXIST FE_NOT_AVAILABLE Remarks/Usage:

Could not mesh surfaces. The value specified for elemShape is invalid The property specified does not exist. No surface has been loaded in the current object.

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 current surface object, you must call Put() prior to calling this method or those changes will not be used. Example:

Mesh

API-1483

Mesh
( propID, elemShape, bAllowMapped ) This example meshes Surface 2 with Parabolic Quad elements that are offset by 0.1 Sub Main Dim Set Dim Set App As femap.model App = feFemap() s As femap.Surface 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

API-1484
5.44 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.44.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 BOOL ModelPosition BOOL AllViews BOOL DrawPointer BOOL DrawBorder INT4 VisibleView INT4 layer INT4 color INT4 BorderColor INT4 BackColor Description Method for positioning text (True=Model, False=Screen) Indicates if the text is visible in all Views - if False, only visible in VisibleView If True, a pointer is drawn in addition to the text If True, a border is drawn around the text The ID of a view where the text is visible. Only used if AllViews=False The layer associated with the text. The color of the text The color of the border drawn around the text. Only used if DrawBorder=True The background color of the text. Only used if the DrawBorder=True The coordinates of the text. If ModelPosition=True, these are model coordinates in the Global Rectangular CSys. If ModelPosition=False, these are specified as a percent of the view location and TextPosition[2] is not used. The location of the tip of the pointer, specified in the same manner as TextPosition. Only used if DrawPointer=True. The horizontal justification method The vertical justification method The ID of the font for the text The actual text string (limited to 256 characters). Contains carriage return and line-feed characters between lines of text.

REAL8 TextPosition[0..2] or VARIANT vTextPosition REAL8 PointerPosition[0..2] or VARIANT vPointerPosition INT4 HorzJustify INT4 VertJustify INT4 FontNumber STRING text

API-1485

API-1486
5.44.2 Text Object Methods
There are no Text object-specific methods. Only the standard entity methods are available.

API-1487
5.45 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.45.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 INT4 i[0..119] or VARIANT vi REAL8 r[0..73] or VARIANT vr INT4 c[0..242] or VARIANT vc Integer array. Description

Real array.

Character array, each entry is returned and accessed via an INT4.

API-1488

GetAll

5.45.2 TMGBC Object Methods


5.45.2.1 GetAll

GetAll
( entID, i, r, c ) Description: This method retrieves an entity with the specified ID. Input: INT4 entID Output: INT4 i REAL8 r INT4 c Return Code: FE_FAIL Remarks/Usage: The specified entity does not exist. Refer to the property descriptions for each of these items. c is returned in an integer array, even though it contains only char values. ID of the entity to retrieve.

Example: None

PutAll

API-1489

5.45.2.2 PutAll

PutAll
( entID, i, r, c ) Description: This method stores an entity with the specified ID. Input: INT4 entID INT4 i REAL8 r INT4 c Output: None Return Code: FE_FAIL Remarks/Usage: Unable to store the entity with the specified ID. Refer to the property descriptions for each of these items. c is loaded in an integer array, even though it contains only char values. The ID of the entity to store.

Example: None

API-1490
5.46 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 properties and methods defined for Entity objects are also available for TMGCtrl objects. For more information, see Section 5.1, "Common Entity Properties and Methods". Use the feTMGCtrl method of the FEMAP Application object to create TMGCtrl objects.

5.46.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 INT4 i[0..53] or VARIANT vi REAL8 r[0..19] or VARIANT vr BOOL b[0..121] or VARIANT vb INT4 c[0..485] or VARIANT vc Integer array. Description

Real array.

Boolean array.

Character array, each entry is returned and accessed via an INT4.

GetAll

API-1491

5.46.2 TMGCtrl Object Methods


5.46.2.1 GetAll

GetAll
( entID, i, r, b, c ) Description: This method retrieves an entity with the specified ID. Input: INT4 entID Output: INT4 i REAL8 r BOOLEAN b INT4 c Return Code: FE_FAIL Remarks/Usage: The specified entity does not exist. Refer to the property descriptions for each of these items. c is returned in an integer array, even though it contains only char values. ID of the entity to retrieve.

Example: None

API-1492
5.46.2.2 PutAll

PutAll

PutAll
( entID, i, r, b, c ) Description: This method stores an entity with the specified ID. Input: INT4 entID INT4 i REAL8 r BOOLEAN b INT4 c Output: None Return Code: FE_FAIL Remarks/Usage: Unable to store the entity with the specified ID. Refer to the property descriptions for each of these items. c is loaded in an integer array, even though it contains only char values. The ID of the entity to store.

Example: None

API-1493
5.47 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 properties and methods defined for Entity objects are also available for TmbInt objects. For more information, see Section 5.1, "Common Entity Properties and Methods". Use the feTMGInt method of the FEMAP Application object to create TMGInt Objects.

5.47.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 INT4 i[0..49] or VARIANT vi Integer array. Description

API-1494

GetAll

5.47.2 TMGInt Object Methods


5.47.2.1 GetAll

GetAll
( entID, i ) Description: This method retrieves an entity with the specified ID. Input: INT4 entID Output: INT4 i Return Code: FE_FAIL Remarks/Usage: The specified entity does not exist. Refer to the property descriptions for each of these items. ID of the entity to retrieve.

Example: None

PutAll

API-1495

5.47.2.2 PutAll

PutAll
( entID, i ) Description: This method stores an entity with the specified ID. Input: INT4 entID INT4 i Output: None Return Code: FE_FAIL Remarks/Usage: Unable to store the entity with the specified ID. The ID of the entity to store. Refer to the property descriptions for each of these items. c is loaded in an integer array, even though it contains only char values.

Example: None

API-1496
5.48 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 properties and methods defined for Entity objects are also available for TMGOpt objects. For more information, see Section 5.1, "Common Entity Properties and Methods". Use the feTMGOpt method of the FEMAP Application object to create TMGOpt objects.

5.48.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 INT4 i[0..16] or VARIANT vi REAL8 r[0..1] or VARIANT vr INT4 c[0..84] or VARIANT vc Integer array. Description

Real array.

Character array, each entry is returned and accessed via an INT4.

GetAll

API-1497

5.48.2 TMGOpt Object Methods


5.48.2.1 GetAll

GetAll
( entID, i, r, c ) Description: This method retrieves an entity with the specified ID. Input: INT4 entID Output: INT4 i REAL8 r INT4 c Return Code: FE_FAIL Remarks/Usage: The specified entity does not exist. Refer to the property descriptions for each of these items. c is returned in an integer array, even though it contains only char values. ID of the entity to retrieve.

Example: None

API-1498
5.48.2.2 PutAll

PutAll

PutAll
( entID, i, r, c ) Description: This method stores an entity with the specified ID. Input: INT4 entID INT4 i REAL8 r INT4 c Output: None Return Code: FE_FAIL Remarks/Usage: Unable to store the entity with the specified ID. Refer to the property descriptions for each of these items. c is loaded in an integer array, even though it contains only char values. The ID of the entity to store.

Example: None

API-1499
5.49 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.49.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 INT4 i[0..11] or VARIANT vi REAL8 r[0..55] or VARIANT vr Integer array. Description

Real array.

API-1500

GetAll

5.49.2 TMGReal Object Methods


5.49.2.1 GetAll

GetAll
( entID, i, r ) Description: This method retrieves an entity with the specified ID. Input: INT4 entID Output: INT4 i REAL8 r Return Code: FE_FAIL Remarks/Usage: The specified entity does not exist. Refer to the property descriptions for each of these items. ID of the entity to retrieve.

Example: None

PutAll

API-1501

5.49.2.2 PutAll

PutAll
( entID, i, r ) Description: This method stores an entity with the specified ID. Input: INT4 entID INT4 i REAL8 r Output: None Return Code: FE_FAIL Remarks/Usage: Unable to store the entity with the specified ID. The ID of the entity to store. Refer to the property descriptions for each of these items.

Example: None

API-1502
5.50 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.50.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 REAL8 Value STRING VarName STRING Equation Description The stored value of the variable. The name of the variable. Maximum 20 characters. The defining equation of the variable. Maximum 160 characters.

GetVarID

API-1503

5.50.2 Variable Object Methods


5.50.2.1 GetVarID

GetVarID
( varname ) Description: This method retrieves the encoded ID that is associated with a specified variable name. Input: STRING varname Output: None Return Code: INT4 ID Remarks/Usage: You do not need to have a variable with the specified name to use this function. Example: None The ID associated with the name. The name of the variable to compute the associated ID.

API-1504
5.50.2.2 Evaluate

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 Remarks/Usage: None Example: None The value of the equation property. Also stored in Value.

Define

API-1505

5.50.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 STRING equation 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 The variable name to create or update. Maximum 20 characters. The equation used to define the variable. Maximum 160 characters.

API-1506

DefineReal

5.50.2.4 DefineReal

DefineReal
( varname, value ) Description: This method defines a variable and its associated real number. Input: STRING varname REAL8 value Output: None Return Code: None Remarks/Usage: None Example: None The variable name to create or update. Maximum 20 characters. The value to assigned to the variable.

API-1507
5.51 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.51.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 STRING title INT4 Mode

Description View title (maximum 79 characters). Drawing style: 0=Draw, 1=Feature, 2=Quick Hide, 3=Hide, 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=Animate MultiCase, 4=Arrow. Contour style: 0=Off, 1=Contour, 2=Criteria, 3=Beam Diagram, 4=IsoSurface, 5=Section Cut, 6=Contour Vector. True if in Render mode. True if undeformed animation. Constraint SetID, or -1 for active. Load SetID, or -1 for active. Group SetID, -1 for active group, -2 for mutliple groups. ID of Group containing Elements to be used for various contour style displays. -1 for active. Output Set ID for post. Final Output Set ID for multicase animation. Output Set increment for multicase animation. Output Vector ID for deformation. Output Vector ID for contour. Output Set IDs for each curve.

INT4 Deformed INT4 Contour BOOL Render BOOL UndefAnimation INT4 BC INT4 Load INT4 Group INT4 ContourGroup INT4 OutputSet INT4 FinalOutputSet INT4 OutputSetInc INT4 DeformData INT4 ContourData INT4 XYOutputSet[0..8] or VARIANT vXYOutputSet

API-1508
Property INT4 XYSetRange[0..1] or VARIANT vXYSetRange INT4 XYOutputData[0..8] or VARIANT vXYOutputData INT4 XYOutputEntity[0..8] or VARIANT vXYOutputEntity INT4 Function[0..8] or VARIANT vFunction REAL8 Rotation[0..2] or VARIANT vRotation REAL8 PrevRotation[0..2] or VARIANT vPrevRotation REAL8 Center[0..2] or VARIANT vCenter REAL8 Magnification REAL8 Aspect BOOL RotationCenterOn REAL8 RotationCenter[0..2] or VARIANT vRotationCenter REAL8 RotationVector[0..2] or VARIANT vRotationVector REAL8 PrevCenter[0..2] or VARIANT vPrevCenter REAL8 PrevMagnification BOOL ShowAllLayers BOOL WindowTitleBar INT4 WindowBorder Output Vector IDs for XY curves. Description

Entity ID node or element) for each XY curve.

Function IDs for XY plot curves.

Rotation angles

Previous rotation angles

Location of view center. Magnification factor (1=AutoScale). View aspect ratio. Flag to use rotation center for dynamic rotation. Center of rotation for dynamic rotation.

Axis of rotation for dynamic rotation.

Previous center location. Previous magnification factor. Flag to display all layers. Flag to indicate title bar is on. Border mode.

API-1509
Property BOOL WindowEraseBack INT4 WindowBackColor BOOL WindowShadeBack Description True if background should be erased. Background Color ID. True if background should be shaded using second background color. 0=Vertical, 1=Horizontal, 2=Diagonal Up, 3=Diagonal Down, 4=Square Spot, 5=Circular Spot, 6=Horizon, 7=Bitmap, 8=Stretched Bitmap Second Background Color ID - only used in render with WindowShadeBack=True. Third Background Color ID - only used in render with WindowShadeBack=True and WindowShadeBackOpt=6 The location of the background horizon in percent of screen height. If True, and a logo bitmap is defined, it will be shown in this view The location of the logo bitmap if it is shown in the view. In percent of screen.

INT4 WindowShadeBackOpt

INT4 WindowBackColor2 INT4 WindowBackColor3 INT4 WindowShadeHorizon BOOL WindowLogo REAL8 LogoLocation[0..2] or VARIANT vLogoLocation REAL8 PrevWindowLeft REAL8 PrevWindowTop REAL8 PrevWindowRight REAL8 PrevWindowBottom REAL8 PrevWindowXmin REAL8 PrevWindowXmax REAL8 PrevWindowYmin REAL8 PrevWindowYmax BOOL Draw[0..89] or VARIANT vDraw INT4 Label[0..89] or VARIANT vLabel INT4 ColorMode[0..89] or VARIANT vColorMode

Previous sizing of XY plot in window.

View Option Draw flags.

View Option Labelling.

View Option Color Modes.

API-1510
Property INT4 Color[0..89] or VARIANT vColor REAL8 PerspectiveDist REAL8 InterOccularDist REAL8 SpotlightDist REAL8 SpotlightDir[0..2] or VARIANT vSpotlightDir REAL8 ShrinkFactor REAL8 CurveError REAL8 AmbientLight REAL8 Light[0..2] or VARIANT vLight REAL8 AxisLocation[0..1] or VARIANT vAxisLocation REAL8 ArrowsToLabel INT4 SurfaceDivisions REAL8 LoadVecLength REAL8 OtherVecLength REAL8 LoadVectorMinScale REAL8 RenderPushForward REAL8 RenderPushUnit REAL8 RenderPushUndeformed INT4 RenderPushLabel REAL8 DeformedRelScale REAL8 DeformedAbsScale INT4 AnimationFrames Element shrink factor. Obsolete - use Global Info_FacetXXX properties Ambient light value. Location of light source. Description View Option View Color. Perspective distance. Perspective separation. Spotlight distance.

Location of screen axes. Percent of post arrows to label. Obsolete - use surface facetting Length of load vectors. Length of other vectors Load vector minimum scale factor. Controls edge offset of filled entities such as surfaces and elements at an angle to the screen (25 to 150) Controls edge offset of filled entities such as surfaces and elements perpendicular to normal (25 to 150) Controls the screen normal offset of the undeformed model with respect to the deformed model (-100 to 100) Controls the screen normal offset of labels. The value is a multiple of the font height (0-10) Deformed relative scale factor. Deformed absolute scale factor. Number of animation frames.

API-1511
Property INT4 AnimationDelay INT4 UserContourLevel[0..11] or VARIANT vUserContourLevel REAL8 UserContourValue[0..11] or VARIANT vUserContourValue INT4 UserContourCount INT4 ContourLabelFreq INT4 ContourLegendFreq INT4 ContourLabelDigits INT4 ContourLegendDigits INT4 ContourColor[0..5] or VARIANT vContourColor REAL8 CriteriaMax REAL8 CriteriaMin BOOL ContourElemUnaveraged BOOL ContourElemBreakProp BOOL ContourElemBreakMatl BOOL ContourElemBreakLayer BOOL ContourElemBreakColor BOOL ContourElemBreakGeom REAL8 ContourElemBreakAngle REAL8 XYXmin REAL8 XYXmax REAL8 XYymin REAL8 XYymax REAL8 XYScale[0..8] or VARIANT vXYScale Animation delay factor. Use User Defined contours. Description

Contour level value. Number of user defined levels. Contour labelling frequenc.y Contour legend labelling frequency. Number of digits on contour labels. Number of digits on contour legend. Contour Base Colors Upper criteria limit. Lower criteria limit. Show unaveraged element contours. Dont average across properties. Dont average across materials. Dont average across layers. Dont average across colors. Dont average across discontinuous geometry. Geometry break angle. XY X axis range.

XY Y aAxis range.

Scale factor for associated XY curve.

API-1512
Property STRING XYTitle STRING XYSubtitle INT4 XYCSys INT4 XYDirection INT4 XYXTics INT4 XYYTics BOOL SectionPlaneMode BOOL Section1On BOOL Section2On BOOL Section3On REAL8 SectionBase[0..2] or VARIANT vSectionBase REAL8 SectionNormal[0..2] or VARIANT vSectionNormal REAL8 Section2Base[0..2] or VARIANT vSection2Base REAL8 Section2Normal[0..2] or VARIANT vSection2Normal REAL8 Section3Base[0..2] or VARIANT vSection3Base REAL8 Section3Normal[0..2] or VARIANT vSection3Normal REAL8 SectionSpacing INT4 SectionCount BOOL SectionMode REAL8 IsosurfaceValue INT4 TraceOpt Description XY plot titles (maximum 79 characters). CSys for XY vs Position. Direction for XY vs Position. Number of tics along X axis. Number of tics along Y axis. The mode for section displays - True for Multiple Section mode, false otherwise. True if Section plane 1 is on in Multiple Section mode True if Section plane 2 is on in Multiple Section mode True if Section plane 3 is on in Multiple Section mode Origin for first cut plane.

Vector normal for first cut plane.

Origin for second cut plane.

Vector normal for second cut plane.

Origin for third cut plane.

Vector normal for third cut plane. Spacing between cut planes. Number of Cutting Planes. Section cut mode. Single iso-surface value. Trace option.

API-1513
Property INT4 TraceID BOOL ContourVecHide INT4 ContourVecMode INT4 ContourVecID1[0..2] or VARIANT vContourVecID1 INT4 ContourVecID2[0..2] or VARIANT vContourVecID2 INT4 ContourVecID3[0..2] or VARIANT vContourVecID3 INT4 ContourVecCSys REAL8 ContourVecDir[0..2] or VARIANT vContourVecDir INT4 ContourVecAddl INT4 ContourVecColor2 INT4 ContourVecColor3 INT4 ContourVecDigits INT4 ContourVecLength BOOL FreebodyOn BOOL FreebodyLoad[0..5] or VARIANT vFreebodyLoad INT4 FreebodyGroup BOOL FreebodyForceMom[0..1] or VARIANT vFreebodyForceMom BOOL FreebodyShowInternal BOOL FreebodyShowSum BOOL FreebodyMinVecFlag BOOL FreebodyComponents Description ID of output vector for trace plots. True if contour vectors should be included in hidden line calculation. Contour vector output relative to mode. IDs of output vectors for contour vector.

IDs of output vectors for second contour vector.

IDs of output vectors for third contour vector. Contour vector CSys. Components of contour vector direction. Additional contour vector output ID. Color for second contour vector. Color for third contour vector. Number of digits in contour vector labels Length of contour vectors Flag indicating freebody is on. Flags for load types for freebody. ID of group to be used in freebody. Show forces[0] and moments[1]. Show internal freebody data. Show summed data at each node. Show vectors with a minimum length. Show vector components.

API-1514
Property BOOL FreebodyXYZ[0..2] or VARIANT vFreebodyXYZ BOOL FreebodyScaleMag BOOL FreebodyShowResultant BOOL FreebodyEntityColor INT4 FreebodyShowCSys REAL8 FreebodyShowMag REAL8 FreebodyShowLength[0..1] or VARIANT vFreebodyShowLength REAL8 FreebodyResultantLoc[0..2] or VARIANT vFreebodyResultantLoc INT4 FreebodyResultantColor INT4 StreamLineOpt INT4 StreamLineID INT4 StreamLineRungeKuttaOrder REAL8 StreamLineTolerance Description Flags for X,Y,Z components. Scale vectors based on their magnitude. Show resultant of summed freebody info. Show freebody with entity colors. CSys ID for freebody display. Minimum magnitude vector to show. Min/Max display length.

Location for resultant vector. Color for resultant vector. Determines what location(s) are used to initiate streamlines (0 uses vStreamLineLocation, 1 uses StreamLineID as a point ID, 2 uses StreamLineID as a group ID) ID of a point or group of points used to initiate a streamline Controls accuracy of streamline solution the higher the value, the more accurate and slower the solution (1 to 4) Controls accuracy of streamline solution the lower the value, the more accurate and slower the solution (1e-15 to 1) This is a multiplier times the model diameter if the streamline is too long, calculation is terminated (1e-15 upwards) This is a percentage of the maximum speed if the speed gets too low, calculation is terminated (1e-15 to 100) Not Used XYZ location of start point of streamline if StreamLineOpt = 0 Contour legend is shrunk to this percentage to avoid overlap with view legend, post title and logo bitmap Transparency percentage applied to all entities (0=opaque,100=fully transparent)

REAL8 StreamLineMaxLenFactor

REAL8 StreamLineMinSpeedPct REAL8 StreamLineMaxTime REAL8 StreamLineLocation[0..2] or VARIANT vStreamLineLocation REAL8 ContourLegendShrinkPct INT4 TransparencyPercent

API-1515
Property BOOL RotateAroundModelAxes BOOL RotateSingleAxis BOOL RotateUseAxis INT4 RotateCSys INT4 UserContourPalette[0..63] or VARIANT vUserContourPalette INT4 MaxUserContourPalette Description If True, dynamic rotations are around the model axes. If False, screen axes. (used if RotateUseAxis is true) If True, dynamic rotations are around a single axis based on the predominant direction. (used if RotateUseAxis is true) If True, single and model axis dynamic rotation is available. The ID of the Coordinate System used for rotations by the View Rotate command. Colors for user contour palette. Number of colors stored in UserContour Palette. Controls destination of transformed deformation data 0 = None 1 = Coordinate System given in TransformDeformCSys 2 = Nodal Output Coordinate System Destination coordinate system when TransformDeformMode = 1 Control which components of the transformed deformation are displayed Controls contour/criteria destination coordinate system for transformed nodal output vectors 0 = None 1 = Coordinate System given in TransformNodalCSys 2 = Nodal Output Coordinate System Destination coordinate system when TransformNodalMode = 1 Controls contour/criteria destination for transformed plate element output vectors 0 = None 3 = Material Coordinate System 4 = Vector defined by axis TransformPlateDOF of Coordinate System TransformPlateCSys projected onto plate 5 = Vector defined by TransformPlateVector projected onto plate Destination coordinate system when TransformPlateMode = 4 Axis of destination coordinate system when TransformPlateMode = 4

INT4 TransformDeformMode

INT4 TransformDeformCSys BOOL TransformDeformX BOOL TransformDeformY BOOL TransformDeformZ

INT4 TransformNodalMode

INT4 TransformNodalCSys

INT4 TransformPlateMode

INT4 TransformPlateCSys INT4 TransformPlateDOF

API-1516
Property INT4 TransformPlateVector[0..2] or VARIANT vTransformPlateVector Description Vector used when TransformPlateMode = 5 Controls contour/criteria destination coordinate system for transformed solid element output vectors 0 = None 6 = Coordinate System given in TransformSolidCSys 7 = Material Coordinate System Destination coordinate system when TransformSolidMode = 4 For laminate results, the global ply location to display for contour/criteria displays: 0=Location of Selected Output Vector, -1=Top Ply, -2=Bottom Ply, any other positive number 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 the label value for this to be used. The scale factor for beam diagrams The coordinates of a point on the clipping plane

INT4 TransformSolidMode

INT4 TransformSolidCSys

INT4 GlobalPlyLocation

INT4 DeformRelativeToNode REAL8 BeamDiagramScale REAL8 ClipPlaneOrigin[0..2] or VARIANT vClipPlaneOrigin REAL8 ClipPlaneNormal[0..2] or VARIANT vClipPlaneNormal

The vector components of the normal to the clipping plane

API-1517
5.51.1.1 View Option Types

All of the the View Option properties (Draw, Label, Color, ColorMode) require an index to access the desired values. The following table maps the index to the names in the View Options command. Text in View Options Labels, Entities and Colors Label Parameters Coordinate System Point Curve Combined Curve Curve - Mesh Size Surface Volume Text Boundary Node Node - Perm Constraint Element Element - Directions Element - Offsets/Releases Element - Orientation/Shape Element - Beam Y-Axis Element - Coordinate System Element - Weld Element - Rigid Load Vectors Load Body Load Force Load Moment and Torque Load Temperature 0 1 2 3 95 24 4 5 6 27 7 8 9 10 11 12 13 96 90 94 78 100 14 15 16 FVI_LABEL FVI_CSYS Index Constant

FVI_POINT FVI_CURVE
FVI_COMPOSITE_CURVE

FVI_CURVE_MESHSIZE FVI_SURFACE FVI_VOLUME FVI_TEXT FVI_BOUNDARY FVI_NODE FVI_NODE_PERMCONSTRAINT FVI_ELEMENT FVI_ELEMENT_DIRECTION FVI_ELEMENT_OFFSET FVI_ELEMENT_ORIENT FVI_BEAM_YAXIS
FVI_ELEM_CSYS

FVI_ELEMENT_WELD
FVI_RIGID

FVI_LOAD_VECTORS
FVI_LOAD_BODY

FVI_LOAD_FORCE FVI_LOAD_MOMENT FVI_LOAD_THERMAL

API-1518
Text in View Options Load Distributed Load Pressure Load Acceleration Load Velocity Load Enforced Displacement Load Nonlinear Force Load Heat Generation Load Heat Flux Load Convection Load Radiation Load Bolt Preload Load Fluid Tracking Load Unknown Condition Load Slip Wall Condition Load Fan Curve Load Periodic Condition Constraint Constraint Equation Connector Connection Region Combined - Eliminated Points Combined - Eliminated Curves Combined - Eliminated Surfaces Tools and View Style Free Edge and Face Shrink Elements Fill, Backfaces and Hidden Filled Edges 22 23 25 26 Index 71 17 18 72 19 73 66 67 68 69 93 81 82 83 84 85 20 21 79 91 99 97 98 Constant

FVI_LOAD_DISTRIBUTEDLOAD FVI_LOAD_PRESSURE FVI_LOAD_ACCELERATION FVI_LOAD_VELOCITY FVI_LOAD_ENFORCEDDISP FVI_LOAD_NONLINEARFORCE FVI_LOAD_HEATGEN FVI_LOAD_HEATFLUX FVI_LOAD_CONVECTION FVI_LOAD_RADIATION FVI_BOLT_PRELOAD FVI_LOAD_FLUIDTRACKING FVI_LOAD_UNKNOWN FVI_LOAD_SLIPWALL FVI_LOAD_FANCURVE FVI_LOAD_PERIODIC FVI_CONSTRAINT FVI_CONSTRAINT_EQUATION FVI_CONNECTOR FVI_CONNECTION_REGION
FVI_INTERIOR_POINT FVI_INTERIOR_CURVE FVI_INTERIOR_SURFACE

FVI_FREE_EDGE FVI_SHRINK_ELEM FVI_FILL_ELEM FVI_FILLED_EDGES

API-1519
Text in View Options Render Options Transparency Shading Perspective Stereo Axisymmetric Axis View Legend View Axes Origin Workplane and Rulers Workplane Grid Clipping Planes Symbols View Aspect Ratio Curve and Surface Accuracy PostProcessing Post Titles Deformed Style Vector Style Animated Style Deformed Model Undeformed Model Trace Style Contour Type Contour/Criteria Style Contour/Criteria Levels Contour/Criteria Legend Criteria Limits 40 41 42 43 44 45 74 80 46 47 48 49 Index 77 92 28 29 30 87 31 32 33 34 35 36 37 38 39 Constant

FVI_RENDER_OPTIONS FVI_TRANSPARENCY FVI_SHADING FVI_PERSPECTIVE FVI_STEREO FVI_AXISYM_AXIS FVI_VIEW_LEGEND FVI_VIEW_AXES FVI_ORIGIN FVI_WORKPLANE FVI_WORKPLANE_GRID FVI_CLIPPING_PLANE FVI_SYMBOL FVI_ASPECT_RATIO FVI_CURVE_ACCURACY FVI_POST_TITLES FVI_DEFORMED_STYLE FVI_VECTOR_STYLE FVI_ANIMATED_STYLE FVI_DEFORMED FVI_UNDEFORMED FVI_TRACE_STYLE FVI_CONTOUR_TYPE FVI_CONTOUR_STYLE FVI_CONTOUR_LEVELS FVI_CONTOUR_LEGEND FVI_CRITERIA_LIMITS

API-1520
Text in View Options Criteria - Elements that Pass Criteria - Elements that Fail Beam Diagram IsoSurface IsoLine Streamline Contour Vector Style XY Titles XY Legend XY Axes Style XY X Range/Grid XY Y Range/Grid XY Curve 1 XY Curve 2 XY Curve 3 XY Curve 4 XY Curve 5 XY Curve 6 XY Curve 7 XY Curve 8 XY Curve 9 Index 50 51 86 76 88 89 75 52 53 54 55 56 57 58 59 60 61 62 63 64 65 Constant

FVI_CRITERIA_PASS FVI_CRITERIA_FAIL FVI_BEAM_DIAGRAM FVI_ISOSURFACE FVI_ISOLINE FVI_STREAMLINE FVI_CONTOUR_VECTOR FVI_XY_TITLES FVI_XY_LEGEND FVI_XY_AXES_STYLE FVI_XY_XAXIS FVI_XY_YAXIS FVI_XY_CURVE1 FVI_XY_CURVE2 FVI_XY_CURVE3 FVI_XY_CURVE4 FVI_XY_CURVE5 FVI_XY_CURVE6 FVI_XY_CURVE7 FVI_XY_CURVE8 FVI_XY_CURVE9

Initialize

API-1521

5.51.2 View Object Methods


5.51.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 individually. 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

API-1522

GetMultiGroupList

5.51.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 INT4 nGroupID[0..nGroups-1] Return Code: FE_NO_MEMORY FE_NOT_AVAILABLE Remarks/Usage: None Example: None Unable to allocate memory for group list. No groups have be referenced in the Multi Group Display. Number of groups in nGroupID The group ids that have been referenced in Multi Group display

SetMultiGroupList

API-1523

5.51.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: INT4 bClear INT4 nGroups INT4 nGroupID[0..nGroups-1] Output: None Return Code: None Remarks/Usage: If True then clear the list of groups in the multi group display before adding groups in nGroupID. Number of groups in nGroupID The group ids to used in the Multi Group display

Example: None

API-1524

ClearMultiGroupList

5.51.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

Visible

API-1525

5.51.2.5 Visible

Visible
( visible ) Description: This makes a view visible on the screen, or removes it from the screen. Input: BOOL visible Output: None Return Code: FE_FAIL Remarks/Usage: This method accomplishes the same task as the View, Activate command. Example: None The operation failed. Either you asked to make a view visible that was already visible, or to remove a view that was not visible. Set to True to make a view visible, False to remove it.

API-1526
5.51.2.6 Redraw

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

Regenerate

API-1527

5.51.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, Regenerate command. Example: None

API-1528

IsLayerVisible

5.51.2.8 IsLayerVisible

IsLayerVisible
( layerID ) Description: Indicates whether the selected layer is in the visible layer list. Input: INT4 layerID Output: None Return Code: FE_FAIL 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 Selected layer is not in the visible layer list (FE_OK means layer is in the visible layer list). ID of layer to check.

SetLayerVisible

API-1529

5.51.2.9 SetLayerVisible

SetLayerVisible
( layerID, visible ) Description: Adds or removes layers from the visible layer list. Input: INT4 layerID BOOL visible 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 ID of layer to modify. Set to True to make the layer visible, False to remove it from the visible list.

API-1530
5.51.2.10 Rotate

Rotate

Rotate
( oX, oY, oZ, dX, dY, dZ, angle ) Description: Rotates the current view around the specified axis. Input: REAL8 oX REAL8 oY REAL8 oZ REAL8 dX REAL8 dY REAL8 dZ REAL8 angle 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 The angle of rotation, in degrees. The components of the axis of rotation. The origin of the axis of rotation - in global rectangular coordinates.

AlignCSys

API-1531

5.51.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 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 The ID of the coordinate system used for alignment.

API-1532

AlignVector

5.51.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 REAL8 oZ REAL8 dX REAL8 dY 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 The components of the axis of alignment. The origin of the alignment axis - in global rectangular coordinates.

Align2Vector

API-1533

5.51.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 REAL8 vZz REAL8 vXYx REAL8 vXYy REAL8 vXYz BOOL bAutoXY 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 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 vector to determine the Y vector, which is then crossed again to determine X. If True, the X and Y vectors are swapped so that the model better fits into the window shape. The components of the axis of alignment (normal to the screen)

API-1534

AlignWorkplane

5.51.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

AutoscaleAll

API-1535

5.51.2.15 AutoscaleAll

AutoscaleAll
( redoBox ) Description: Changes the magnification so that the current model is scaled to fit in the view. Input: BOOL redoBox 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 If set to True, then the imaginary box around the model that is used for autoscaling is recomputed. If set to False, the existing box is used.

API-1536

AutoscaleVisible

5.51.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: BOOL redoBox 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 considered 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 If set to True, then the imaginary box around the model that is used for autoscaling is recomputed. If set to False, the existing box is used.

API-1537

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 feAppRegis-

terAddInPane 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 standalone 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 particular 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-1538
6.3 Format of Event Messages
All windows messages contain four parameters. Parameter hWnd message Description The handle to the window where the message is being sent. Not really very important in this case. The message type. This parameter will always be equal to the return value from RegisterWindowMessage( FE_EVENT_MESSAGE ) for event messages. This is how you will be able to distinguish a FEMAP event message from other windows messages coming to your window. For FEMAP event messages, this parameter indicates the type of event that has occurred. Refer to the various events for more information. For FEMAP event messages, this parameter contains additional data for that event. Refer to the various events for more information.

wParam lParam

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 1 2 3 4 5

Event FEVENT_INITIALIZE FEVENT_NEWMODEL FEVENT_ENDMODEL FEVENT_SHUTDOWN FEVENT_COMMAND

Description FEMAP is initializing for the first time. lParam is not used. Starting a new model, or opening an existing model. Any previous model that was in use has now been closed. lParam is not used. Closing the current model. lParam is not used. FEMAP is being shut down. The model that was in use has been closed. lParam is not used. A command has been executed - either from the menu, or thru some other mechanism. lParam is the command number that was executed. Indicates that a program file is starting execution. lParam is not used. Indicates that a program file is ending execution. lParam is not used.

6 7

FEVENT_PROGSTART FEVENT_PROGEND

API-1539
wParam 8 Event FEVENT_DRAWSTART Description 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. Indicates that a redraw or regenerate is ending. Indicates that an analysis that FEMAP was monitoring has been completed Indicates that the automatic loading of results after an analysis finishes has completed. Indicates that the active model has been switched to a different model. lParam contains an identifier of the new active model - the same value that is returned by feAppGetModel()

9 10 11 12

FEVENT_DRAWEND FEVENT_ANALYSISEND FEVENT_RESULTSEND FEVENT_SWITCHMODEL

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 View, Redraw View, Regenerate Tools, Undo Tools, Redo File, Save File, Open File, Exit

lParam 2001 2002 1101 1102 1003 1002 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-1540
Global Global Global Global Global Const Const Const Const Const FEVENT_ENDMODEL FEVENT_SHUTDOWN FEVENT_COMMAND FEVENT_PROGSTART FEVENT_PROGEND = = = = = 3 4 5 6 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 Const GWL_HWNDPARENT = (-4&) = (-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-1541
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

API-1542

Index

Symbols
.NET 32, 35, 43

Numerics
510405 992 510406 992 510407 994 510408 994 510409 994 510410 1000 510411 1000 510412 998

A
ABAQUS file 183, 189, 204 ACIS file 160, 162 ACIS SAT file 198 Add 802, 808, 874, 1035, 1246, 1292 add solid 356 AddAll 818, 877 AddAllColor 830 AddAllExcept 819 AddAllTitle 829 AddAroundPlane 827 AddAroundPoint 825 AddAroundVector 826 AddArray 823, 1036, 1271, 1279, 1293, 1297 AddColumn 722 AddCommon 820 AddContact 1063 AddCoordinate 824 AddElementChecks 730 AddEntitiesOnLayer 810 AddEntityData 727 AddGroup 734, 822 AddInt 876 AddMassProperties 729 AddMeshAssociativity 731 AddMeshLoc 1098 AddMeshLocXYZ 1099 AddMidsideNodes 831 AddNewRemoveCommonSet 821 AddNodesOnGeometry 828 AddOutput 728 AddRange 809 AddReal 875 AddRule 813 AddSelection 741 AddSet 803, 811 AddSetRule 812 AddSort 738

AdjcacentSurfaces 1445 AdjcacentSurfacesAsSet 1446 align entities 468 Align2Vector 1533 AlignCSys 1531 AlignVector 1532 AlignWorkplane 1534 AnalysisCase object 975 methods 980 properties 975 AnalysisSet object 983 methods 1007 properties 983 Analyze 1017 AnalyzeMultiple 1018 AngleAtPoint 1477 ANSYS file 184, 190, 205 application register 652, 653, 654 application object 31, 69 methods 31 properties 31 ApproximateArea 1437 arc create from point 291 create with angle 286, 287 create with center 284, 290 create with chord 288 create with points 289 create with radius 285 ArcCircleInfo 1088 Area 1190, 1403, 1436 array 33, 36 AtEOF 754, 919 attach to geometry 476, 477, 478 attributes meshing 344 AutoComplete 1324 AutoscaleAll 1535 AutoscaleVisible 1536

B
bar offsets modify 500, 501 BCDefinition object 1022 methods 1023 properties 1022 BCEqn object 1026 methods 1026 properties 1026 BCGeom object 1027 methods 1029 properties 1027 BCNode object 1034 methods 1034

properties 1034 BCSet object 1037 methods 1038 properties 1037 beam offsets modify 500, 501 BoolField 786 boundary conditions modify 482 boundary surface create 324, 325, 326, 327 update 328 BoundarySurfaces 1443 BoundarySurfacesAsSet 1444 BoundingBox 1106, 1426, 1473 BoundingSize 1474 BSpline curves knots 484 modify 483

C
C++ 35, 65 C,C++ 31 Case 1016 CATIA file 163 CATIAV5 file 164 CG 1435 chamfer solid 355 circle create concentric 296 create from center 294, 298 create from curve 299 create from diameter 293 create from points 295, 297 create from radius 292 create tangent 300 cleanup solid 366, 367 Clear 747, 790, 841, 884, 903, 1071, 1263 ClearAll 789 ClearGroup 735 ClearMultiGroupList 1524 ClearNodeList 1178 ClearSelection 742 ClearSort 739 close file 755 close model 155 ClosestPointToSurface 1125 coincident curves 260 elements 262 loads 272 nodes 255, 257 points 258 colinear

coordinates 561 color modify 470 Color Palette 608 CombineCurves 1116 CombinedCurvesAsSet 1115 Compress 1039, 1070, 1304 Compute 1264 Compute2 1265 ComputeGeneralShape 1399 ComputeShape 1256, 1395 ComputeStdShape 1397 Conical 1457 Connection 378 Connection object 1075 methods 1076 properties 1075 Connection Property object 1047 access properties 1047 array index values 1049 methods 1056 properties 1047 Connection Region object 1058 constant global 38 constraint combine 383 constraints check 271 modify 482 Contact object 1058 methods 1060 properties 1058 convert coordinates 545, 546, 562 units 229, 230 ConvertToAllCurves 863 ConvertToAllSurfaces 867 ConvertToBoundarySurfaces 868, 897 ConvertToBoundarySurfacesOnly 869 ConvertToCombinedCurves 864 ConvertToCombinedCurvesOnly 865 ConvertToInternalCurves 866 ConvertToInternalSurfaces 870 coordinate system modify 481 move 463, 464 rotate 568, 569, 570 update 480 coordinates along curve 550 at curve center curve coordinates 552 at intersection 555, 566, 567 at line intersection 548 at midpoint 551 colinear 561 convert 546, 562

curves 547 enter 543, 544 in surface 554 node 557 point 556 project 549, 553, 564, 565 rotate 563 transform 558, 559, 560 Copy 745, 805, 858 copy 370 radial 372 Corner 1338 Count 791, 860, 891, 974 CountLoads 1276 CSys object 1080 methods 1081 properties 1080 Current 888 CurvatureAcrossEdge 1124 curve break 320 chamfer 323 create by projection 310, 311 create by slicing solid 313 create from intersection 309 create on surface 312 extend 319 fillet 322 join 321 trim 318 types 1085 Curve object 1082 methods 1086 properties 1082 CurveLoops 1448 Curves 1378, 1409, 1447 curves BSpline 483, 484 coincident 260 reverse direction 485, 486 revolve 452 sweep 454 CurvesAsSet 1379, 1410, 1449 Cylindrical 1455

Delete 915, 956 delete constraints 510 entities 507 loads 509 mesh 508 model 506 output 511 DeleteAll 859, 861, 1202, 1208, 1214, 1221, 1227 DeleteLibrary 957 DeletePly 1262 DeleteRows 748 DeleteTitle 916 detach nodes and elements 479 direction curves 485, 486 directory current 698 distortion elements 264, 266, 268, 269 docking panes 620, 621 DXF file 166

E
element rigid 54 Element object 1167 access nodes 1169 methods 1170 properties 1167 ElementFaces 1472 Elements 1103, 1424, 1469 elements attach to geometry 476, 477 beam releases 495 coincident 262 detach from geometry 479 distortion 264, 266, 268, 269 fixup 263 formulation 498 line 502 modify type 503 move 465 normals 270 reverse normals 494 sweep 453 update 496 update property 491 ElementsAsSet 1104, 1425, 1470 ElementsWithFaces 1105, 1471 embed 655, 660 solid 359, 365 Enable 1078 end of file 754 EndPoints 1087, 1452 EndPointsAsSet 1453

D
data example storing 51 data type 32 DataTable object methods 703, 707, 717, 734, 738, 741, 744 properties 702 Debug 871 Define 1505 DefineReal 1506 definition coordinate system 480 Deletable 914, 955

enter coordinates 543, 544 entity align 468 rotate 466, 467 scale 469 Entity object 944 methods 945 properties 944 entity types 118, 119 equation 233 Evaluate 1162, 1504 event 661 messages 1538 receiving and processing 1537 example using API 43 Excel example using 43, 45, 56, 58 Exist 913, 954 exit FEMAP 156 Expand 1038, 1069, 1303 explode solid 339, 340, 351 Export 1415 export ABAQUS 204 ACIS 198 ANSYS 205 FEMAP Neutral 196 IGES 199 LS-DYNA 206 MARC 207 NASTRAN 208 Parasolid 200 STEP 201 STL 202 VRML 203 extrude curves 450 elements 448 solid 349

F
Facets 1117, 1420, 1465 feAddToolbar 631 feAddToolbarCommand 642 feAddToolbarSubmenu 632 feAddToolbarSubmenuCommand 643 feAddToolbarSubmenuSubmenu 633 feAddToolbarSubmenuUserCommand 645 feAddToolbarUserCommand 644 feAddUserCommand 628 feAlignTo 468 feAppBringToTop 656 feAppColorPalette 608

feAppCountModels 615 feAppEmbed 655 feAppEmbedMessages 660 feAppEventCallback 661 feAppGetAllModels 616 feAppGetModel 611 feAppGetModelName 612 feAppLock 662 feAppLockDraw 668 feAppLockExit 664 feAppLockModel 666 feAppManagePanes 620 feAppManageStatusBar 622, 623 feAppManageToolbars 619 feAppMessage 673 feAppMessageBox 607 feAppMessageEndListing 675 feAppMessageStartListing 674 feAppModelContents 617 feAppModelDefragment 618 feAppRegisterAddIn 652 feAppRegisterAddInPane 653 feAppRegisterAddInPaneWithFrame 654 feAppSetModel 613 feAppSetModelByName 614 feAppShowWindow 658 feAppStatusRedraw 670 feAppStatusShow 671 feAppStatusUpdate 672 feAppUnlock 663 feAppUnlockDraw 669 feAppUnlockExit 665 feAppUnlockModel 667 feAppUpdateModelBox 527 feAppUpdatePanes 621 feAppVersion 682 feAppVisiblel 659 feArcAngleCenterStart 287 feArcAngleStartEnd 286 feArcCenterPoints 290 feArcCenterStartEnd 284 feArcChordCenterStart 288 feArcPoints 289 feArcRadiusStartEnd 285 feArcTangentStartEnd 291 feAutoMeshAssociativity 476 feBCCombine 383 feBoundaryAddSurfaces 327 feBoundaryFromCurves 325 feBoundaryFromPoints 324 feBoundaryFromSurfaces 326 feBoundaryUpdateSurfaces 328 feCheckCoincidentCurve 260 feCheckCoincidentElem 262 feCheckCoincidentLoads 272 feCheckCoincidentNode 255 feCheckCoincidentNode2 257 feCheckCoincidentPoint 258 feCheckConstraints 271

feCheckElemDistortion 264 feCheckElemDistortion2 266 feCheckElemFixup 263 feCheckElemNormal 270 feCheckPlanarNodes 261 feCircle2Point 295 feCircle3Point 297 feCircleCenter 294 feCircleCenterPoints 298 feCircleCenterTangent 299 feCircleConcentric 296 feCircleDiameter 293 feCircleRadius 292 feCircleTangentTangent 300 feConnectAuto 378 feConnectAuto2 378 feCoordAlongCurve 550 feCoordArrayTransform 559 feCoordArrayTransform2 560 feCoordColinear 561 feCoordCurveCenter 552 feCoordCurveMidpoint 551 feCoordFromWorkplane 545 feCoordInSurface 554 feCoordIntersectCurves 547 feCoordIntersectLines 548 feCoordOnNode 557 feCoordOnPoint 556 feCoordOntoCurve 549 feCoordOntoLine 565 feCoordOntoPlane 564 feCoordOntoSurface 553 feCoordPick 543 feCoordPickByMethod 544 feCoordPlaneIntersect 566 feCoordRotate 563 feCoordSurfaceIntersect 555 feCoordToDirCos 562 feCoordToWorkplane 546 feCoordTransform 558 feCoordVectorPlaneIntersect 567 feCurveBreak 320 feCurveChamfer 323 feCurveExtend 319 feCurveFillet 322 feCurveIntersectSolids 309 feCurveJoin 321 feCurveOffsetCurveWasher 314 feCurveParametricOnSurface 312 feCurveProjectOntoSolid 310 feCurveProjectOntoSurfaces 311 feCurveSlice 313 feCurveSplitEdgeToEdge 317 feCurveSplitPointToEdge 316 feCurveSplitPointToPoint 315 feCurveTrim 318 feCurveUpdateSurfaces 308 feDelete 507 feDeleteAll 506

feDeleteConstraints 510 feDeleteLoads 509 feDeleteMesh 508 feDeleteOutput 511 feDeleteToolbar 634 feDeleteUserCommand 629 feElementFreeEdge 540 feElementFreeFace 541 feEntityVisibility 526 feFileClose 155 feFileCurrentDirectory 698 feFileExecute 695 feFileExit 156 feFileGetName 694 feFileMessageCopy 220 feFileMessageLineNumber 223 feFileMessageSave 221 feFileMessageSelect 222 feFileNew 153 feFileOpen 154 feFilePageSetupReset 212 feFilePageSetupSave 211 feFilePictureCopy 215 feFilePictureCopy2 216 feFilePictureReplay 219 feFilePictureSave 217 feFilePictureSave2 218 feFilePreferencesReset 226 feFilePreferencesSave 225 feFilePrint 213 feFilePrint2 214 feFileProgramRun 696 feFileProgramRuning 697 feFileReadAbaqus 183 feFileReadAbaqusResults 189 feFileReadAcis 162 feFileReadAcisOpt 160 feFileReadAnsys 184 feFileReadAnsysResults 190 feFileReadCatia 163 feFileReadCatiaV5 164 feFileReadDxf 166 feFileReadDyna 185 feFileReadDynaResults 191 feFileReadIdeas 168 feFileReadIges 171 feFileReadIgesAdv 169 feFileReadMarc 186 feFileReadMarcResults 192 feFileReadNastran 187 feFileReadNastranResults 193 feFileReadNeutral 194 feFileReadNeutral2 194 feFileReadNeutral3 194 feFileReadParasolid 174 feFileReadParasolidOpt 172 feFileReadPatran 188 feFileReadProe 175 feFileReadSolidEdge 176

feFileReadStep 180 feFileReadStepOpt 177 feFileReadStl 181 feFileReadUg 182 feFileRebuild 224 feFileSaveAs 158 feFileTimedSave 159 feFileWriteAbaqus 204 feFileWriteAcis 198 feFileWriteAnsys 205 feFileWriteDyna 206 feFileWriteIges 199 feFileWriteMarc 207 feFileWriteNastran 208 feFileWriteNeutral 196 feFileWriteNeutral2 196 feFileWriteParasolid 200 feFileWriteStep 201 feFileWriteStl 202 feFileWriteVrml 203 feFormatReal 676, 677 feGenerateCopy 370 feGenerateRadialCopy 372 feGenerateReflect 375 feGenerateRotate 374 feGenerateScale 373 feGetElemDistortion 268 feGetElemDistortion2 269 feGetElementEdges 604 feGetElementFaces 603 feGetInt 606 feGetMenuCommand 638 feGetMenuCommands 637 feGetReal 605 feGetToolbarCommand 641 feGetToolbarCommands 639 feGetToolbars 630 feGetToolbarSubCommands 640 feGetUserCommands 627 feGFXDelete 688 feGFXEnableView 690 feGFXLoad 686 feGFXReset 691 feGFXSelect 689 feGroupBoolean 530 feGroupCombine 531 feGroupEvaluate 529 feGroupGenElemType 536 feGroupGenerate 532 feGroupGenMatl 535 feGroupGenProp 534 feGroupGenSolid 533 feGroupMoveToLayer 538 feGroupPeel 537 feLayerGet 235 feLayerPut 234 feLicenseExpiration 678, 681 feLicenseIsAvailable 680 feLicenseMethod 679

feLine2Tangent 281 feLineAtAngl 277 feLineHorzVert 276 feLineMidline 279 feLineParallel 278 feLinePointDs 283 feLinePoints 275 feLinePointTangent 280 feLineRectangle 282 feLoadCombine 382 feLoadToolbarLayout 651 FEMAP events 1538, 1539 FEMAP Basic Scripting 31 FEMAP Neutral file 194, 196 feMeasureAngle 246 feMeasureAngleBetweenNodes 247 feMeasureCurve 248 feMeasureDistance 242 feMeasureDistanceBetweenLines 245 feMeasureDistanceBetweenNodes 244 feMeasureDistanceToPlane 243 feMeasureMeshMassProp 251 feMeasureMeshSectionProp 254 feMeasureSolidMassProp 250 feMeasureSurfaceArea 249 feMeasureSurfSectionProp 253 feMeshApproachSurface 413 feMeshAttach 477 feMeshAttachNodes 478 feMeshAttrCurve 409 feMeshAttrPoint 408 feMeshAttrSolid 412 feMeshAttrSurface 411 feMeshBetween 429 feMeshBuildRemeshRegions 442 feMeshCleanupSlivers 440 feMeshClosestLink 431 feMeshCoincidentLink 432 feMeshConvertFacets 439 feMeshCurve 416 feMeshDetach 479 feMeshEdgeMembers 446 feMeshEdgeRemoval 441 feMeshEditRemeshRegions 443 feMeshExtrudeCurve 450 feMeshExtrudeElem 448 feMeshHexSolid 425 feMeshHexSolidFromElements 427 feMeshPoint 414 feMeshRemesh 437 feMeshRemeshRegions 444 feMeshRevolveCurve 452 feMeshRevolveElem 451 feMeshSizeCurve 402 feMeshSizePoint 401 feMeshSizeSolid 406 feMeshSizeSurface 404 feMeshSmooth 447

feMeshSurface 420 feMeshSurface2 418 feMeshSurfaceByAttributes 422 feMeshSweepCurve 454 feMeshSweepElem 453 feMeshTetSolid 423 feMeshTransition 434 feMeshUnzip 433 feModifyColor 470 feModifyDefCSys 480 feModifyElemOrder 496 feModifyElemPropID 491 feModifyElemRelease 495 feModifyElemReverse 494 feModifyElemType 503 feModifyFormulation 498 feModifyLayer 472 feModifyLoadPhase 490 feModifyMaterialAngle 493 feModifyMidside 497 feModifyOffsets 500, 501 feModifyOrient 502 feModifyOutCSys 481 feModifyPermBC 482 feModifyPropMatlID 492 feModifyReverseCurve 485, 486 feModifySolidFacetting 488 feModifySplineKnots 484 feModifySplineOrder 483 feModifySplitQuads 499 feModifySuperelementID 489 feModifySurfaceDivisions 487 feModifyTransparency 471 feMoveBy 464 feMoveOffset 465 feMoveTo 463 feNotePut 210 feNotesGet 209 feOutputCalculate 397 feOutputConvertV92VectorID 398 feOutputForceBalance 399 feOutputFromLoad 394 feOutputProcess 384 feOutputProcessConvert 390 feOutputProcessCopy 386 feOutputProcessEnvelope 391 feOutputProcessErrorEstimate 393 feOutputProcessLinearCombination 388 feOutputProcessMerge 387 feOutputProcessRSSCombination 389 feOutputTransform 395 fePlaneBisect 594 fePlaneCSys 595 fePlaneCurveNormal 597 fePlaneLocation 591 fePlaneNodes 592 fePlanePick 589 fePlanePickByMethod 590 fePlanePoints 593

fePlaneSurfaceNormal 596 fePlaneViewAlign 598 feProjectAlongVector 460 feProjectOntoCurve 457 feProjectOntoPlane 461 feProjectOntoSolid 462 feProjectOntoSurface 458 feProjectOntoVector 459 feRenumber 473 feRenumberOpt 474 feResetToolbar 635 feRotateBy 467 feRotateTo 466 feRotationFromDirCos 570 feRotationToDirCos 569 feRotationTransform 568 feRunIOTest 227 feSaveToolbarLayout 650 feScale 469 feScreenPctPick 609 feSelectOutput 600 feSetToolbarCommandBitmap 649 feSetToolbarCommandTitle 648 feSetToolbarCommandVisible 646 feSetToolbarSeparator 647 feSetToolbarVisible 636 feSolidAdd 356 feSolidChamfer 355 feSolidCleanup 366 feSolidCleanupAdvanced 367 feSolidCommon 358 feSolidEmbed 359 feSolidEmbedFace 365 feSolidExplode 339, 340, 351 feSolidExtrude 349 feSolidFillet 354 feSolidIntersect 360 feSolidPrimitives 347 feSolidRemove 357 feSolidRemoveFace 369 feSolidRevolve 350 feSolidShell 361 feSolidSlice 362 feSolidSliceAlongFace 364 feSolidSliceMatch 363 feSolidStitch 352 feSolidStitchNoCleanup 353 feSplineBlend 307 feSplineEllipse 304 feSplineHyperbola 306 feSplineParabola 305 feSplinePoints 301 feSplineTangent 303 feSurfaceAlignedCurves 331 feSurfaceConvert 338 feSurfaceCorners 329 feSurfaceEdgeCurves 330 feSurfaceExtrude 334 feSurfaceMidAttrib 344

feSurfaceMidAuto 343 feSurfaceMidSingle 342 feSurfaceNonManifoldAdd 339 feSurfaceNormalDeviation 337 feSurfaceRecoverManifold 340 feSurfaceRemoveHole 341 feSurfaceRevolve 335 feSurfaceRuled 333 feSurfaceSweep 336 feSurfaceTrimToSolid 345 feSurfaceTrimWithCurves 346 feTextGet 240 feTextMultiPut 238 feTextPut 236 feToolUnitConvert 230 feToolUnitConvertFactors 229 feVarEval 233 feVarGet 232 feVarPut 231 feVectorAngle 578 feVectorAngleAxis 579 feVectorAxis 584 feVectorAxisOfSurface 588 feVectorCrossPoduct 575 feVectorDotProduct 576 feVectorFromBeam 572 feVectorLength 574 feVectorNormalToSurface 586 feVectorNormalToView 587 feVectorPerpendicular 577 feVectorPick 582 feVectorPickByMethod 583 feVectorPlaneIntersect 580 feVectorTangentToCurve vector unit 585 feVectorToBeam 573 feVectorTransform 571 feVectorUnit 581 feViewAllViews 516 feViewCascade 520 feViewRedraw 514 feViewRegenerate 515 feViewShow 517 feViewTile 518 feViewVisible 513 feWindowCascade 520 feWindowMaximize 522 feWindowMinimize 521 feWindowRedraw 514 feWindowRestore 523 feWindowSetRect 524 feWindowShow 517 feWindowTile 518 feWindowTileHorz 519 feWindowTitle 525 feWindowVisible 513 Field 783 file

close 755 end 754 jump to location in 757, 758 new 153, 611, 612, 613, 614, 615, 616, 617, 618, 686 open 154, 752 position in 756 print 213, 214 read line from 753 save as 158 size 759 time accessed 762 time created 760 time written 761 timed save 159 filename get 694 fillet solid 354 Find 880 FindColumn 707 FindMaxMin 1370 FindRow 703 First 855, 889, 907, 962 FirstInSet 963 FixedFormat 779 fixup elements 263 Free Edge 540 Free Face 541 FreeCurvesAsSet 1411 Function object 1193 methods 1193 properties 1193

G
Get 899, 945 Get Search 1284 GetAll 1326, 1488, 1491, 1494, 1497, 1500 GetAllArray 1170, 1327 GetAllPly 1261 GetArray 862 GetCellValue 1143 GetCentroid 1181 GetClosest 1331 GetColumnInfo 708 GetColumnText 719 GetColumnTitle 713, 1146 GetColumnValue 717, 1147 GetColumnVisible 709 GetColumnWidth 711 GetCombination 1044, 1309 GetCombinedCurves 1114 GetContactList 1060 GetContactTable 981, 1014 GetCoordArray 1328 GetCorrelate 1010, 1011 GetData 879, 1163

GetDataSurf 1128 GetDataSurfInfo 1159 GetDataSurfType 1166 GetEdgeNodes 1186 GetElemWithCorner 1362 GetElemWithCornerSet 1364 GetEntities 1062 GetFaceArea 1184 GetFaceCentroid 1182 GetFaceNodes 1185 GetFaceNormal 1183 GetFromSet 1342 GetFunctionList 1194 GetGroup 736 GetLibrary 946 GetMeshLoc 1107 GetMeshLocXYZ 1108 GetMinMaxEdgeLength 1192 GetMultiGroupList 1522 GetNodeList 1176 GetOffset 1066 GetOutputList 1343 GetOutputListAtID 1344 GetOutputListAtSet 1345 GetPageInfo 1160 GetPageTitle 1152 GetPageValue 1154 GetPly 1260 GetRowInfo 704 GetRowTitle 1148 GetRowValue 1150 GetRowValues 720 GetRowVisible 705 GetScalarAtElem 1357 GetScalarAtElemSet 1358 GetScalarAtNode 1348 GetScalarAtNodeSet 1349 GetSearch 1029, 1291 GetSelected 804 GetSelection 743 GetSort 740 GetText 1008 GetTitle 900 GetTitleIDList 950 GetTitleList 949 GetValue 1196 GetVarID 1503 GetVectorAtNode 1353 GetVectorAtNodeSet 1354 GetVectorAtSingleNode 1352 GFXArrow object 1198 properties 1198 GFXLine object 1204 methods 1199, 1205 properties 1204 GFXPoint object 1210 methods 1211 properties 1210 GFXQuad4 object 1216

methods 1217 properties 1216 GFXTria3 object 1222 methods 1223 properties 1222 global boolean properties 116 global constant 38 global integer properties 110 global real properties 114 global string properties 117 GlobalPly object 1228 methods 1228 properties 1228 group boolean 530 combine 531 create 532 create based on property 534 create based on solids 533 evaluate 529 generate based on element type 536 generate based on layers of solid elements 537 generate based on materials 535 move to layer 538 selection rules 814 Group object 1229 list types 1233 methods 1234 properties 1229 range types 1231 Grow 796

H
HasCommon 850 HasFullGlobalPly 1268 HasGlobalPly 1266 HasMaterial 1267 HasPole 1478

I
I-DEAS file 168 IDs renumber 473, 474 IGES file 169, 171, 199 import ABAQUS 183, 189 ACIS 160, 162 ANSYS 184, 190 CATIA 163 CATIAV5 164 DXF 166 FEMAP Neutral 194 I-DEAS 168 IGES 169, 171 LS-DYNA 185, 191 MARC 186, 192

NASTRAN 187, 193 Parasolid 172, 174 Patran 188 ProE 175 PRT 182 SolidEdge 176 STEP 177, 180 STL 181 Inertia 1191, 1404 InitAnalysisCase 980 InitAnalysisMgr 1007 InitElemWithCorner 1360 InitScalarAtElem 1356, 1368 InitScalarAtNode 1347 InitVectorAtNode 1351 InsertPly 1257 Inside 1431 InsideXYZ 1432 interface embedded 655, 660 unlock 663, 665, 667, 669 visible 659 intersect solids 360 intersection coordinates 555, 566, 567 IntField 784 IsAdded 832, 883 IsArrayAdded 833 IsBoundingSolidRegion 1464 IsCombinedCurve 1113 IsCone 1462 IsCylinder 1460 IsEnabled 1079 IsGeneral 1419 IsLayerVisible 1528 IsNonManifold 1121, 1122 IsParabolic 1187 IsPlane 1459 IsSetAdded 834 IsSheet 1417 IsSmoothEdge 1109 IsSolid 1416 IsSphere 1461 IsStraight 1120 IsTorus 1463 IsTotalLoad 1277 IsWire 1418

BSpline curves 484

L
Last 856, 890, 908, 964 layer get information 235 modify 472 update 234 Layer object 1252 methods 1252 properties 1252 Layup 1401 Layup object 1254 methods 1256 properties 1254 Length 1093, 1189 length vector 574 license 678, 679, 680, 681 line create at angle 277 create between other lines 279 create between points 275 create horizontal or vertical 276 create parallel 278 create rectangle 282, 283 create tangent to curve 280 create tangent to curves 281 line elements modify 502 LineInit 777 List 1234 listing 674, 675 load combine 382 LoadBolt object 1270 methods 1270 properties 1270 LoadDefinition object 1272 methods 1273 properties 1272 LoadETemp object 1278 methods 1278 properties 1278 LoadGeom object 1280 load types 1285 methods 1284 properties 1280 LoadGroup 800 LoadMesh object 1287 load types 1295 methods 1291 properties 1287 LoadNTemp object 1296 methods 1296 properties 1296 loads

J
Jump 918 jump to file location 757, 758

K
knots

coincident 272 LoadGeom types 1285 LoadMesh types 1295 update phase 490 LoadSet object 1298 methods 1303 properties 1298 Lock 744 lock interface interface lock 662, 664, 666, 668 LS-DYNA file 185, 191, 206

M
MapFromModelToSet 1313, 1316 MapOutput object 1312 properties 1312 MARC file 186, 192, 207 MassProp 1414 Match 857 Material 1400 material access properties 1320 array index values 1320 update 492 material angle update 493 Material object 1318 methods 1324 properties 1318 Matl 1180 maximize window 658 MaxNormalDeviation 1476 measure angle 246, 247 curve 248 distance between lines 245 distance between nodes 244 mesh mass properties 251 solid mass properties 250 surface area 249 measure distance 242 measure distance to plane 243 memory allocating 37 Mesh 1482 mesh approach on surfaces 413 attributes on curves 409 attributes on points 408 attributes on solids 412 attributes on surfaces 411 between locations 429 between nodes 431, 432 build remeshing regions 442

change remeshing regions 443, 444 cleanup slivers 440 convert facets 439 extrude curves 450 extrude elements 448 from elements 427 from points 414 generate on free edges or faces 446 on curves 416 on solids 423, 425 on surfaces 418, 420 project 462 remesh 437 remove edge 441 revolve curves 452 revolve elements 451 size 401 size on curves 402 size on solid 406 size on surfaces 404 sizes on points 401 smooth 447 surface 422 sweep curves 454 transition 434 unzip 433 meshing attributes 344 MeshParam 1096 message copy 220 save 221 select 222 write 673, 674, 675 MessageBox 607 midside nodes update 497 midsurface create 342, 343 minimize window 658 MinRadiiOfCurvature 1479 model 69 modify color 470 constraints 482 coordinate systems 481 element offsets 500, 501 element type 503 layers 472 line elements 502 node superelementID 489 quadrilateral element 499 solid facetting 488 surfaces 487 transparency 471 move elements 465 nodes, points, coordinate systems 463, 464 MsgBox 607

multi-dimensional 36

N
NASTRAN file 187, 193, 208 new file 153, 611, 612, 613, 614, 615, 616, 617, 618, 686 Next 853, 886, 905, 959 NextBC 1025, 1041 NextBCDef 1043 NextEmptyID 971 NextEmptySet 911, 967 NextID 854, 969 NextInSet 960 NextLoad 1275, 1306 NextLoadDef 1308 NextSet 909, 965 node coordinates 557 modify 489 Node object 1325 methods 1326 properties 1325 Nodes 1100, 1375, 1421, 1466 nodes access 1169 attach to geometry 476, 477, 478 coincident 255, 257 detach from geometry 479 move 463, 464 planar 261 project 457, 458, 459, 460, 461 to define plane 592 update midside 497 NodesAsSet 1102, 1377, 1423, 1468 Normal 1112, 1439 NormalAtXYZ 1440 NormalBox 1475 normals elements 270 reverse 494 notes get 209 put 210

O
object AnalysisCase 975 AnalysisSet 983 application 31, 69 BCDefinition 1022 BCEqn 1026 BCGeom 1027 BCNode 1034 BCSet 1037 Connection 1075 Connection Property 1047

Connection Region 1058 Contact 1058 creating 939 CSys 1080 curves 1082 destroying 942 Element 1167 Entity 944 Function 1193 GFXArrow 1198 GFXLine 1204 GFXPoint 1210 GFXQuad4 1216 GFXTria3 1222 GlobalPly 1228 Group 1229 Layer 1252 Layup 1254 LoadBolt 1270 LoadDefinition 1272 LoadETemp 1278 LoadGeom 1280 LoadMesh 1287 LoadNTemp 1296 LoadSet 1298 MapOutput 1312 Material 1318 Node 1325 Optim 1332 Output 1334 OutputSet 1371 Point 1374 properties 81 Property 1381 Readfile 50, 751 Report 1405 Selector 702, 788 Set 807 Solid 1406 Sort 873 Surface 1427 TMG 1493 TMGBC 1487 TMGCtrl 1490 TMGOpt 1496 TMGReal 1499 tools 699 UserData 898 Variable 1502 View 1507 objects FEMAP 31 offsets element 500, 501 open file 154, 752 Optim object 1332 methods 1313, 1333 properties 1312, 1332

order BSpline 483 elements 496 output calculate 397 components 1336 convert vector ID 398 example creating 48 force balance 399 from loads 394 process 384, 386, 387, 388, 389, 390, 391, 393 transforming 395 vector IDs 1337 output coordinate system 481 Output object 1334 methods 1338 properties 1334 OutputSet object 1371 methods 1372 properties 1371 OutputVectors 1373

P
page setup reset 212 save 211 panes 620, 621 ParamAtLength 1095 parametric coordinates 554 ParamToXYZ 1089, 1433 Parasolid file 172, 174, 200 ParseTitleID 952 PartialLength 1094 PartialLengthNode 1119 PartialLengthXYZ 1118 Paste 806 Patran file 188 Performance 81 phase loads 490 Pick Screen 609 pick coordinates 543, 544 picture copy 215, 216 replay 219 save 217, 218 Planar 1454 planar nodes 261 plane bisect 594 define 589, 590, 591 define with nodes 592 define with points 593 normal 596, 597, 598

principal 595 point coordinates 556 Point object 1374 methods 1374 properties 1374 Points 1407, 1450 points coincident 258 mesh size 401 move 463, 464 project 457, 458, 459, 460, 461 to define plane 593, 594 PointsAsSet 1408, 1451 Position 917 position in file 756 window 656 preferences reset 226 save 225 Prev 887, 906, 961 PrevEmptyID 972 PrevEmptySet 912, 968 PrevID 970 PrevSet 910, 966 primitive create 347 principal planes 595 Print 750 print file 213, 214 ProE file 175 program run 695, 696, 697 Project 1091 project coordinates 549, 553, 564, 565 mesh 462 nodes 458, 459, 460, 461 nodes/points 457 points 458, 459, 460, 461 ProjectOnto 1441 Prop 1077, 1179 properties elements 491 global boolean 116 global integer 110 global real 114 global string 117 update material 492 Property object 1381 access properties 1383 array index values 1384 methods 1394 properties 1381 Put 901, 947 PutAll 1023, 1199, 1205, 1211, 1217, 1223, 1273, 1329, 1489, 1492, 1495, 1498, 1501

PutAllArray 1174, 1200, 1206, 1212, 1218, 1224, 1330 PutCombination 1045, 1310 PutContactList 1061 PutContactTable 982, 1015 PutCoordArray 1201, 1207, 1213, 1220, 1226 PutCoordNormalArray 1219, 1225 PutCorrelate 1012, 1013 PutDataSurf 1129 PutElemWithCorner 1366 PutFunctionList 1195 PutLibrary 948 PutNodeList 1177 PutOutputList 1346 PutScalarAtElem 1359, 1369 PutScalarAtNode 1350 PutText 1007, 1008, 1009 PutTitle 902 PutVectorAtNode 1355

Q
quadrilateral elements modify 499

R
Range 1236 RangeAdd 1241 RangeDelete 1242 RangeDeleteAll 1243 RangeGetAll 1239 RangeNext 1240 RangeReset 1238 RationalParamToXYZ 1480 read 753 ReadBool 934 ReadBoolArray 937 ReadDouble 930 ReadDoubleArray 935 Readfile example using 50 Readfile object 751 methods 752 properties 751 ReadFloat 931 ReadLong 932 ReadLongArray 936 ReadShort 933 ReadString 938 RealField 785 rebuild 224 rectangle create 282, 283 Redraw 1526 redraw view 514 reflect 375 Regenerate 1527

regenerate view 515 register application 652, 653, 654 releases beam 495 Reload 851 remesh 437 Remove 842, 881 RemoveArray 844 RemoveGroup 848 RemoveInternalCurves 849 RemoveNotCommon 846, 847 RemoveRange 843 RemoveSet 845, 882 renumber IDs 473, 474 Reparse 778 Report object 1405 methods 1405 properties 1127, 1405 Reset 852, 885, 904, 958 ResetMeshAttr 1481 ResetNextBC 1024, 1040 ResetNextBCDef 1042 ResetNextLoad 1274, 1305 ResetNextLoadDef 1307 Resize 1161 Reverse 1072, 1086 revolve elements 451 solid 350 rigid element example creating 54 Rotate 1530 rotate 374 coordinate system 568, 569, 570 coordinates 563 entities 466, 467

S
Save 746 save as 158 SaveGroup 799 scale 373 entities 469 section properties mesh 254 surface 253 Select 835, 892 SelectAllOnLayer 1250 SelectBox 792 SelectCircle 793 SelectContact 1249 SelectFreehand 795 SelectID 836, 893, 973 SelectIDInSet 837

SelectList 840, 894 SelectMesh 1248 SelectModel 1247 SelectMultiID 838 Selector object 702, 788 methods 789 properties 788 SelectOutputVectorID 839 SelectPolygon 794 Set object 807, 873 Set object methods 808 properties 807 SetAdd 1244 SetAddOpt 1245 SetAllPly 1259 SetAutoFormat 782 SetBackgroundColor 733 SetCellBlank 1158 SetCellEquation 1145 SetCellValue 1144 SetColumnAlignment 716 SetColumnPosition 715 SetColumnTitle 714 SetColumnVisible 710 SetColumnWidth 712 SetColumTitle 1156 SetColumValue 1157 SetCylinder 1033 SetData 878 SetDefaults 1057 SetFixedFormat 780 SetFormFeed 775 SetFreeFormat 781 SetLayerVisible 1529 SetMultiGroupList 1523 SetNoBlankLines 765 SetNoShortLines 766 SetOffset 1065 SetOutputType 1064 SetPageTitle 1153 SetPageValue 1155 SetPly 1258 SetRigidType 1067, 1068 SetRowTitle 1149 SetRowValue 1151 SetRowVisible 706 SetSearch 772 SetSearchString 773 SetSkip 771 SetSkipAfterSearch 774 SetSurfDirection 1032 SetSurfNormal 1031 SetSurfSliding 1030 SetTabSize 776 SetTextColor 732 SetTrimEndSpace 768 SetTrimFront 769

SetTrimSpace 767 SetUppercase 770 shell solid 361 Show 749, 798 ShowGroup 737 ShowStatus 764 Shrink 797 size of file 759 skipped 763 slice solid 362, 363, 364 slivers cleanup 440 Solid 1442 solid add 356 chamfer 355 cleanup 366, 367 create 358 create primitive 347 embed 359 embed face 365 explode 339, 340, 351 extrude 349 fillet 354 intersect 360 modify 488 remove 357 remove face 369 revolve 350 shell 361 slice 362, 363, 364 stitch 352, 353 trim surface 345 Solid object 1406 methods 1407 properties 1406 SolidEdge file 176 Sort 895 Sort object methods 874 properties 873 SortRemoveDuplicates 896 Spherical 1456 spline create from curves 307 create from ellipse 304 create from hyperbola 306 create from parabola 305 create from points 301 create from tangent vectors 303 split elements 499 split surface 315, 316, 317 status bar 622, 623, 670, 671, 672, 764 STEP file 177, 180, 201 Stereolithography (STL) file 181, 202 stitch

solid 352, 353 surface axis vector 588 boundary 324, 325, 326, 327, 328 convert 338 coordinates on 553 create 329 create between curves 333 create by extrusion 334 create by revolution 335 create by sweeping 336 create from curves 330, 331 mesh 422 meshing attributes 344 modify 487 normal 337 remove hole 341 trim 346 update 308 Surface object 1427 methods 1431 properties 1427 Surfaces 1110, 1412 SurfacesAsSet 1111, 1380, 1413 sweep elements 453

Toroidal 1458 transform coordinates 558, 559, 560 vector 571, 573 transparency modify 471 trim surface 345, 346 Truncate 920

U
Unigraphics (.PRT) file 182 unit vector 584, 585, 586, 587 unlock interface 663, 665, 667, 669 update beam releases 495 coordinate systems 480 element formulations 498 elements 496 loads 490 material angle 493 material properties 492 midside nodes 497 surfaces 308 UpdateColumn 726 UpdateColumnByID 725 UpdateDataTable 801 UserData object 898 methods 899 properties 898

T
Tangent 1092 TangentAtEnds 1123 Tangents 1438 Text 1484 methods 1486 properties 1484 text create or update 236, 238 retrieve 240 Thickness 1188, 1402 timed save 159 TMG object properties 1487 TMGBC object 1487 methods 1488 TMGCtrl object 1490 methods 1491 properties 1490 TMGInt object 1493 methods 1494 properties 1493 TMGOpt object 1496 methods 1497 properties 1496 TMGReal object 1499 methods 1500 properties 1499 toolbars 619

V
VarAlongCoord 1130 VarArbitrary3DCoord 1141 VarBetween2Pts 1131 VarBetween4Pts 1133 VarBetween8Pts 1134 VarEquation 1142 variable add to model 231 retrieve 232 Variable object 1502 methods 1503 properties 1502 variant 33 VarMeshSurface 1138 VarOutputMap 1137 VarParametric2Pt 1135 VarParametric4Pt 1136 VarSpatialUVtable 1139 VarSpatialXYZTable 1140 VB6 32, 35, 43 VBA 31 Vector 1372 vector

at intersection 580 create unit 584 length 574 normalize 581 transform 573 transform vector 572 unit 586, 587 vectors angle between 578, 579 cross product 575 dot product 576 perpendicular 577 pick or enter 582, 583 transform 571 version 682 view all 516 cascade 520 make visible 513 redraw 514 regenerate 515 show 517 tile 518, 519 View object 1507 methods 1521 properties 1507 View Option types 1517 visibility 526 Visible 1525 visible 659 Visual Basic 31, 32, 35, 43 create FEMAP object 69 Visual C++ 31, 35 example using 65 VRML file 203

X
X 1339 XYPoints 1081 XYZToParam 1090, 1434

Y
Y 1340

Z
Z 1341

W
washer 314 window minimize or maximize 658 position 656 workplane coordinates convert 545 WriteBool 925 WriteBoolArray 928 WriteDouble 921 WriteDoubleArray 926 WriteFloat 922 WriteLong 923 WriteLongArray 927 WriteShort 924 WriteString 929

You might also like