Sunteți pe pagina 1din 264

Altair

Engineering

Commands
Altair HyperMesh 3.1

For technical support, contact us by phone or e-mail:

Country United States Germany India Israel Italy Japan Korea Scandinavia United Kingdom

Phone 248.614.2400 49.7031.6208.22 91.80.665.8871 972.3.5473651 39.11.900.77.11 81.3.5396.1341 822.573.4152 46.46.286.2052 44.1327.810700

E-mail hmsupport@altair.com support@altair-gmbh.de support@india.altair.soft.net support@netvision.net.il support@altairtorino.it aj-support@altair.com support@yewon.co.kr support.sweden@altair.com support@uk.altair.com

Copyright (c) 2000 Altair Engineering, Inc. All rights reserved.

Trademark Acknowledgments: HyperMesh is a registered trademark of Altair Engineering, Inc. ACIS is a registered trademark of SPATIAL TECHNOLOGY, INC. ACIS Geometric Modeler is a registered trademark of SPATIAL TECHNOLOGY, INC. ACIS Kernel is the registered trademark of SPATIAL TECHNOLOGY, INC. ACIS Parametric Surfaces is the registered trademark of SPATIAL TECHNOLOGY, INC. MS-DOS is a registered trademark of Microsoft Corporation. UNIX is a registered trademark of AT&T. MSC/NASTRAN is a registered trademark of MSC. ABAQUS is a registered trademark of Hibbitt, Karlsson, & Sorensen, Inc. ANSYS is a registered trademark of Ansys, Inc. PATRAN is a registered trademark of MSC. LS-DYNA is a registered trademark of LSTC. MARC is a registered trademark of MARC Analysis Research Corporation. PAMCRASH is a registered trademark of Engineering Systems International. FLUENT is a registered trademark of Fluent, Incorporated. I-DEAS is a registered trademark of Structural Dynamics Corporation. Spaceball is a registered trademark of Spacetec IMC Corporation.

Command Files
HyperMesh command files are standard ASCII files that HyperMesh can read or write. Command files allow you to retrieve a work session in case of a system crash or program a series of procedures. You can use command files in applications containing repetitive steps. You can also use them to create demonstrations. During each modeling or post-processing session, HyperMesh generates a command file named command.cmf. This file is created at the start of a HyperMesh session if it does not exist. If the file already exists, HyperMesh adds the commands for the new session to the end of the original file. Command files follow this syntax: A command begins with an asterisk, * A command ends with the left parenthesis The parameters for a command are listed within parentheses and separated by commas

A command can start in any column and there is no restriction on line length. HyperMesh allows you to start a command at the beginning of the line or stack the commands so that the entire command file is on one line. You can also use several lines for one command. Enclose in quotes any string that is broken over more than one line. The following command illustrates the command syntax. The shrink command is: *shrink(.2) The command HyperMesh reads is between the asterisk and the left parenthesis. In this case, it is the word shrink. The command has one parameter, .2, which is the percentage that HyperMesh shrinks the elements. Command files do not translate between platforms consistently. A command file generated on a UNIX platform may work on a different UNIX platform. You must modify a command file generated on a UNIX platform before using it on a PC workstation.

Altair Engineering, Inc.

Command File

Parameters
HyperMesh command parameters are listed in parentheses following the command, and each parameter is separated by a comma. There are integer, real, and string parameters. The format for each parameter type is listed below:

Integer

Integer parameters can include the numbers 0 to 9 and + or -. When executing a command with an integer parameter, HyperMesh reads characters from the command file until it reaches a comma, space, or an invalid integer character. Real parameters can include the numbers 0 to 9 and ., +, -, E, or e. When executing a command with a real parameter, HyperMesh reads from the command file until it reaches a comma, space, or an invalid real character. String parameters can include any characters. If the string contains a blank, an asterisk, or spans more than one line, it is enclosed in double quotes. When executing a command with a string parameter, HyperMesh reads characters from the command file until it reaches a comma or space. If the string is enclosed in double quotes, HyperMesh reads from the opening quote to the closing quote.

Real

String

Comments
HyperMesh allows you to include comments in the command file: *shrink(0.2) - Shrink the elements by 20% You can also place the comment before the command: Shrink the elements by 20% - *shrink(0.20) A command can be turned into a comment by removing the asterisk, *, preceding the command

Command File

Altair Engineering, Inc.

Vectors and Planes


At times, it is necessary to define a vector or plane for a function. When processing a command file, HyperMesh allocates two vectors and two planes with the IDs 1 and 2. The vectors or planes can be defined at any time during the processing of a command file. For example, if you want to translate a node along the x axis, use the following command to define the vector: *createvector(1,1.0,0.0,0.0) In this case, vector 1 is loaded with the components (1.0,0.0,0.0) and is ready for use in subsequent commands. A normal and base point are also required to define a plane. To define a plane that has a normal along the x axis and a base point of (5.0,0.0,0.0), issue the following command: *createplane(1,1.0,0.0,0.0,5.0,0.0,0.0)

Marks
Marks specify groups of entities that are transferred to the command processor. You can create marks for most entities, and issue commands to perform operations on the mark. Command files are limited to two marks. Marks are referenced by the mark ID 1 or 2. The following example demonstrates how to delete elements using marks. Assume that you want to delete the elements 50, 51, and 52 from a database. To perform this operation, load a mark with elements 50, 51, and 52, and then instruct HyperMesh to delete the mark. The commands are shown below: *readfile("dbname") *createmark(elements,1) 50 51 52 *deletemark(elements,1) The *readfile() command loads the database dbname into HyperMesh. The *createmark () command loads mark 1 with elements 50, 51, and 52. The *deletemark() command deletes the elements contained on mark 1.

Altair Engineering, Inc.

Command File

Executing Command Files


Command files are run from the command panel. As HyperMesh executes each command in the file, it places the current command on the menu and indicates the current file line. If an error occurs while executing the command file, HyperMesh prompts you to continue, quit or step through the remainder of the file. If a non-recoverable error occurs in the command file, HyperMesh stops execution and indicates where the error occurred.

Creating a Command File


In this example, you create a command file and execute it. This example uses the demos/simple.hm file that is distributed with HyperMesh. If you are not sure where to find this file, consult your system administrator. Copy the file, simple.hm, to a local user directory where you have read and write permission. The command file used in this example shrinks the elements by 30 percent and then builds a mesh between two rows of nodes. Use any text editor to create the following command file.

*readfile(simple.hm)

Reads the file simple.hm into HyperMesh and assumes that the file is in the current directory. Sets shrink to 30 percent. Sets the mesh mode to mesh without surface. Creates lists of nodes.

*shrink(.3) *surfacemode(3)

*createlist(nodes,1) 17 18 19 20 *createlist(nodes,2) 1 2 3 4 *linearsurfacebetweennodes(1,2,1) *setedgemeshparams(0,3,0) *setedgemeshparams(1,3,0) *setedgemeshparams(2,3,0) *setedgemeshparams(3,3,0) *linearmesh(1) *storeAMelemstodatabase(0) *ameshclearsurface()

Enters the automesher. Sets edge parameters.

Creates mesh. Stores mesh into the database. Exits the automesher.

After the file is created, start HyperMesh and select the command sub-panel, found on the files panel of the main menu. Enter the name of the command file you created and select execute from the menu. HyperMesh processes the commands contained in the file. If an error occurs, check the syntax of the command file and ensure that the file named simple.hm is in the location specified in the command file. Command File 4 Altair Engineering, Inc.

To execute a command file:


1. Select the files panel on any main menu page. 2. Select the command subpanel. 3. Click file = and enter the name of the command file to execute. 4. Click execute.

Altair Engineering, Inc.

Command File

The Commands *alignnode()


Aligns a node to the imaginary line formed between two other nodes. Syntax Arguments *alignnode(end point 1, end point 2, node) end point 1 end point 2 node Example The first end of the line. The second end of the line. The node to be aligned.

To align node 6 so that it lies on the line formed from nodes 9 and 12: *alignnode(9,12,6)

*ameshclearsurface()
Frees memory temporarily allocated for the automesher. Call at the completion of a session using the automeshing module. Syntax *ameshclearsurface()

*analysiscurvecreate()
Creates a curve by extracting values from a binary results database. Syntax *analysiscurvecreate(entity type, mark, xdatatype, ydatatype, xcomponent, ycomponent) entity type mark xdatatype The type of entities on the mark. The ID of the mark that contains the entities. The name of the x data type from which to extract data. The name of the y data type from which to extract data.

Arguments

ydatatype

Command File

Altair Engineering, Inc.

xcomponent

The name of the component to be extracted from the file if the data type is a displacement (set to total, x comp, y comp, or z comp). The name of the component to be extracted from the file if the data type is a displacement (set to total, x comp, y comp, or z comp).

ycomponent

Example

To create a curve from the displacement results for node 12, starting with the simulation simulation1: *analysisfileset(test.res) *createmark(node,1)12 *analysiscurvecreate(node,1,"displacements","simulationid" ,total disp, )

Comments

A results file must be set before this command can be executed.

*analysiscurvecreatecomplex()
Creates a curve pair by extracting complex values from a binary results database. Syntax *analysiscurvecreatecomplex(entity type, mark, xdatatype, ydatatype, xcomponent, ycomponent) entity type mark xdatatype ydatatype xcomponent The type of entities on the mark. The ID of the mark that contains the entities. The name of the x data type from which to extract data. The name of the y data type from which to extract data. The name of the component to be extracted from the file if the data type is a displacement (set to xcomp/complex , y comp/complex , z comp/complex , or complex ). The name of the component to be extracted from the file if the data type is a displacement (set to xcomp/complex , y comp/complex , z comp/complex , or complex ).

Arguments

ycomponent

Example

To create a curve from the displacement results for node 12, starting with the simulation simulation1:

Altair Engineering, Inc.

Command File

*analysisfileset(test.res) *createmark(node,1)12 *analysiscurvecreate(node,1,"displacements","simulation id",total disp, ) Comments A results file must be set before executing this command. Curves must be part of an extended (dual) plot and the y-values are assumed to be complex, either real/imaginary or phase/magnitude.

*analysisfileset()
Sets the results file for subsequent results-based plots. Syntax Argument Comments *analysisfileset(name) name The name of the HyperMesh results file database.

This command must be executed before an analysis-based plot is generated.

*animatecycles()
Specifies the number of animation cycles to perform. Syntax Argument Example *animatecycles(cycles) cycles Number of animation cycles (-1 = infinite)

To display a transient animation through 10 complete cycles: *analysisfileset(test.res) *simulationset(1,1) *animationcycles(10) *animationtranscient(,1.0,0,1)

Comments

There is no provision directly in HyperMesh to control the number of cycles for an animation. This command would need to be inserted manually into a command file.

Command File

Altair Engineering, Inc.

*animatelinear()
Creates and displays a linear animation sequence. Syntax Arguments *animatelinear(title, maxdeflection, frames, hiddenline) title The title to be displayed during animation. The maximum deflection in model units to which the maximum analysis result should be scaled. Use a negative value for model units. Use a positive value for the scale factor. frames The number of frames used during the animation sequence. Determines if the animation generated should be a hidden line (1 for hidden line, 0 for wire frame).

maxdeflection

hiddenline

Example

To animate the current structure with the first simulation and the first data type within the simulation using the results from the file test.res and scaling the maximum deflection to 10 model units: *analysisfileset(test.res) *simulationset(1,1) *animatelinear("",10.0,4,0)

Comments

The maximum number of frames available for animation is hardware dependent.

Altair Engineering, Inc.

Command File

*animatemodal()
Creates and displays a modal animation sequence. Syntax Arguments *animatemodal(title, maxdeflection, frames, hiddenline) title The title displayed on the animation frames. The maximum deflection (in model units) to which the maximum analysis result should be scaled. The number of frames used during the animation sequence. Determines if the animation generated should be a hidden line (1 for hidden line, 0 for wire frame).

maxdeflection

frames

hiddenline

Example

To animate the current structure with the first simulation and the first data type within the simulation using the results from the file test.res and scaling the maximum deflection to 10 model units: *analysisfileset(test.res) *simulationset(1,1) *animatemodal("",10.0,4,0)

Comments

The maximum number of frames available for animation is hardware dependent.

*animatetransient()
Creates and displays a transient animation sequence. Syntax Arguments *animatetransient(title, maxdeflection, hiddenline, by) title The title displayed on the animation frames. The maximum deflection in model units to which the maximum analysis result should be scaled. Determines if the animation generated should be a hidden line (1 for hidden line, 0 for wire frame).

maxdeflection

hiddenline

Command File

10

Altair Engineering, Inc.

by

Simulation increment used. This allows you to skip simulations in the results file.

Example

To animate the current structure starting with the first simulation and the first data type within the simulation and using the results from the file test.res and scaling the maximum deflection to 1 model unit (actual size): *analysisfileset(test.res) *simulationset(1,1) *animatetransient("",1.0,0,1)

Comments

The maximum number of frames available for animation is hardware dependent. *lastsimulation() can be used to limit the animation to fewer simulations than available.

*answer()
Provides an answer to HyperMesh when a yes or no response is required before HyperMesh proceeds with a command. Syntax Argument *answer(answer) answer A string that contains the answer. Set to yes or no.

Example

To delete the file junk.dat without having HyperMesh prompt the user for confirmation: *deletefile("junk.dat") *answer(yes)

Altair Engineering, Inc.

11

Command File

*appendmark()
Add additional entities to a mark. Syntax Arguments *appendmark(entity type, mark id) entity type mark id Example The type of entities to be placed into the mark. The ID of the mark being created (1 or 2).

To place elements 1 and 35 on mark 1, and then add all elements of config type 106 to it: *createmark(elements, 1) 1, 35 *appendmark(elements, 1) by config 104

Comments

A list of the entity IDs and/or the collector names must follow the *appendmark() command. The list must include the IDs and/or the collector names of the entities separated by a space or comma. The *appendmark() command may also be followed by one of the options below: all displayed retrieve reverse by comps [ID or name] by id ID by assems [ID or name] by group [ID or name] by config [ID or name] by sets [ID or name] by surface ID by adjacent by attached by outputblock [ID or name]

Command File

12

Altair Engineering, Inc.

on plane x y x i j k tol plane touching plane: 0 = plane, 1 = normal of plane touching: 0 = entities touching, 1 = entities on

*applydisplayattributes()
Sets the components on the performance mode component list (select/ apply on the menu) to the specified style and color. Syntax Arguments *applydisplayattributes(style, colortype) style Determines the type of graphical entities used to display the component. The options are: 0 1 2 3 4 colortype wire frame hidden line hidden line with mesh hidden line with features hidden line transparent

Determines how the components are colored. The options are: 0 1 2 3 none component color assigned plots contours

Altair Engineering, Inc.

13

Command File

*applyresults()
Modifies the marked entities by adding the nodal displacements to their position in space. Syntax *applyresults(entities, mark, multiplier, displacementvalue) entities The type of entity that is offset by the values contained in the results file. The number of the mark to be modified. A scale factor used to magnify the result values contained in the results file. A string that identifies the component of displacement used to offset the model.

Arguments

mark multiplier

displacementvalue

Example

To apply the total displacement to the displayed nodes in a model with a scale factor of 150.0: *analysisfileset("model.res") *inputsimulation("subcase 1","displacements") *createmark(nodes,1) displayed *applyresults(nodes,1,150.0,"total disp")

*assemblymodify()
Creates or modifies an assembly. Syntax Arguments *assemblymodify(assemblyname, mark, color) assemblyname mark The name of the assembly. The ID of the mark containing the components that should be in the assembly. The index number of the color in the HyperMesh palette.

color

Example

To create the assembly frontend that contains the components fender, hood, and hoodinr, and is colored blue, indicated by the number 9. *createmark(components,1) fender hood hoodinr *assemblymodify(frontend,1,9)

Comments

The components in the mark will be the only components in the assembly after

Command File

14

Altair Engineering, Inc.

this command is executed.

*assignedplot()
Generates an assigned plot with analysis data. Syntax *assignedplot(title, mindef, minimum, maxdef, maximum, mesh color, scale factor, full size, not used, disp type, mult, show min max, show plot info) title mindef The title displayed on the plot. Indicates if the minimum value found in the file should be used as the minimum value on the legend, or if the following parameter minimum should be used as the minimum value on the legend (0 for file, 1 for minimum). The minimum value to display on the legend. This is only used if mindef is set to 1. Indicates if the maximum value found in the file should be used as the maximum value on the legend, or if the following parameter maximum should be used as the maximum value on the legend (0 for file, 1 for maximum). The maximum value displayed on the legend. This is only used if maxdef is set to 1. The color used to plot the mesh. The scale factor used for scaling a deformed plot. A flag that indicates if the plot being generated should occupy the full screen (1 - yes, 0 - no). Set to zero. Indicates the value of displacement to use ("x" for x displacement only, "y" for y displacement only, "z" for z displacement only, "total" for total displacement). This is only applicable to displacement data. A value used to multiply the results found in the results file.

Arguments

minimum

maxdef

maximum

mesh color scale factor

full size

not used disp type

mult

Altair Engineering, Inc.

15

Command File

show min max

Indicates if the minimum/maximum title should be displayed. (1-yes, 0-no). Indicates if the plot information title should be displayed. (1-yes, 0-no).

show plot info

Example

To generate an assigned plot using the maximum and minimum values defined in the analysis file, a mesh color of black, and normal plot size: *analysisfileset(example.res) *inputsimulation("example simulation","stress") *assignedplot("This is the title",0,0.0,0,0.0,0,0.0,0,0,x,1.0,0,0)

Comments

The disp type parameter is only used if the results specified are in displacement format.

*attributeupdatedouble()
Updates an attribute of type double. Syntax *attributeupdatedouble(entity type, id, identifier, solver, status, behavior, value) entity type id identifier solver status behavior value Example The type of entity that owns the attribute. The ID of the entity. The identifier of the attribute. The solver number for the attribute. The status for the attribute. The behavior for the attribute. The value for the attribute.

Arguments

Update an attribute of type double to a value of 200 on an element with ID, 100. *attributeupdatedouble(elements,100,1241,6,2,0,200.0)

Command File

16

Altair Engineering, Inc.

*attributeupdatedoublearray()
Updates an attribute of type double array. Syntax *attributeupdatedoublearray(entity type, id, identifier, solver, status, behavior, data, length) entity type id identifier solver status behavior data length Example The type of entity that owns the attribute. The ID of the entity. The identifier of the attribute. The solver number for the attribute. The status for the attribute. The behavior for the attribute. Double array Double array length

Arguments

Update an attribute of type double array to [1,2,3,4] on the material with ID, 7. *createdoublearray(4) 1 2 3 4 *attributeupdatedoublearray(materials,7,615,2,2,0,1,1)

*attributeupdatedoublearray2d()
Updates an attribute of type 2D double array. Syntax *attributeupdatedoublearray2d(entity type, id, identifier, solver, status, behavior, data, rows, cols) entity type id identifier solver status behavior The type of entity that owns the attribute. The ID of the entity. The identifier of the attribute. The solver number for the attribute. The status for the attribute. The behavior for the attribute.

Arguments

Altair Engineering, Inc.

17

Command File

data rows cols Example

2D array of doubles. The number of rows in the array. The number of columns in the array.

Update an attribute of type 2D double array to [1,2,3] on the material with ID 7. [4,5,6] *createdoublearray2d(2,3) 1 2 3 5 6 7 *attributeupdatedoublearray2d(materials,7,615,2,2,0,1,1)

*attributeupdatedoublearray2dmark()
Updates an attribute of type 2D double array on a set of entities. Syntax *attributeupdatedoublearray2dmark(entity type, mark, identifier, solver, status, behavior, data,rows, cols) entity type mark identifier solver status behavior data rows cols Example The type of entity that owns the attribute. The number of the mark. The identifier of the attribute. The solver number for the attribute. The status for the attribute. The behavior for the attribute. 2D array of doubles. The number of rows in the array. The number of columns in the array.

Arguments

Update an attribute of type 2D double array to [1,2,3] on materials with IDs 7 and 8. [4,5,6] *createmark(materials,1) 7 8 *createdoublearray2d(2,3) 1 2 3 5 6 7 *attributeupdatedoublearray2dmark(materials,1,615,2,2,0,1, 1)

Command File

18

Altair Engineering, Inc.

*attributeupdatedoublearraymark()
Updates an attribute of type double array on a set of entities. Syntax *attributeupdatedoublearraymark(entity type, mark, identifier, solver, status, behavior, data, length) entity type mark identifier solver status behavior data length Example The type of entity that owns the attribute. The number of the mark. The identifier of the attribute. The solver number for the attribute. The status for the attribute. The behavior for the attribute. Double array. Double array length.

Arguments

Update an attribute of type double array to [1,2,3,4] on the materials with IDs 7 and 8. *createmark(materials,1) 7 8 *createdoublearray(4) 1 2 3 4 *attributeupdatedoublearraymark(materials,1,615,2,2,0,1,4)

Altair Engineering, Inc.

19

Command File

*attributeupdatedoublemark()
Updates an attribute of type double on a set of entities. Syntax *attributeupdatedoublemark(entity type, mark, identifier, solver, status, behavior, value) entity type mark identifier solver status behavior value Example The type of entity that owns the attribute. The number of the mark. The identifier of the attribute. The solver number for the attribute. The status for the attribute. The behavior for the attribute. The value for the attribute.

Arguments

Update an attribute of type double to 100.0 on the materials with IDs of 7 and 8. *createmark(materials,1) 7 8 *attributeupdatedoublemark(materials,1,615,2,2,0,1,1)

*attributeupdateentity()
Updates an attribute of type entity. Syntax *attributeupdateentity(entity type, id, identifier, solver, status, behavior, targetentity, targetentityid) entity type id identifier solver status behavior targetentity targetentityid The type of entity that owns the attribute. The ID of the entity. The identifier of the attribute. The solver number for the attribute. The status for the attribute. The behavior for the attribute. The type of entity to which the attribute points. The ID of the entity to which the attribute points.

Arguments

Command File

20

Altair Engineering, Inc.

Example

Update an attribute of type entity (on element 17) to point to a node with ID 1. *attributeupdateentity(elements,17,1247,6,0,0,nodes,1)

*attributeupdateentitymark()
Updates an attribute of type entity on a set of entities. Syntax *attributeupdateentitymark(entity type, mark, identifier, solver, status, behavior, targetentity, targetentityid) entity type mark identifier solver status behavior targetentity targetentityid Example The type of entity that owns the attribute. The number of the mark. The identifier of the attribute. The solver number for the attribute. The status for the attribute. The behavior for the attribute. The type of entity to which the attribute points. The ID of the entity to which the attribute points.

Arguments

Update an attribute of type entity (on elements 17 and 18) to point to a node with ID 1. *createmark(elements,1) 17 18 *attributeupdateentitymark(elements,1,1247,6,0,0,nodes,1)

*attributeupdateint()
Updates an attribute of type int. Syntax *attributeupdateint(entity type, id, identifier, solver, status, behavior, value) entity type id identifier The type of entity that owns the attribute. The ID of the entity. The identifier of the attribute.

Arguments

Altair Engineering, Inc.

21

Command File

solver status behavior value Example

The solver number for the attribute. The status for the attribute. The behavior for the attribute. The value for the attribute.

Update an attribute of type int to a value of 200 on an element with ID 100. *attributeupdateint(elements,100,1241,6,2,0,200)

*attributeupdateintarray()
Updates an attribute of type int array. Syntax *attributeupdateintarray(entity type, id, dentifier, solver, status, behavior, data, length) entity type id identifier solver status behavior data length Example The type of entity that owns the attribute. The ID of the entity. The identifier of the attribute. The solver number for the attribute. The status for the attribute. The behavior for the attribute. The int array. The int array length.

Arguments

Update an attribute of type int array to [1,2,3,4] on the material with ID 7. *createintarray(4) 1 2 3 4 *attributeupdateintarray(materials,7,615,2,2,0,1,1)

Command File

22

Altair Engineering, Inc.

*attributeupdateintarray2d()
Updates an attribute of type 2D int array. Syntax *attributeupdateintarray2d(entity type, id, identifier, solver, status, behavior, data, rows, cols) entity type id identifier solver status behavior data rows cols Example The type of entity that owns the attribute. The ID of the entity. The identifier of the attribute. The solver number for the attribute. The status for the attribute. The behavior for the attribute. The 2-D array of ints. The number of rows in the array. The number of columns in the array.

Arguments

Update an attribute of type 2D int array to [1,2,3] on the material with ID 7. [4,5,6] *createintarray2d(2,3) 1,2,3,5,6,7 *attributeupdateintarray2d(materials,7,615,2,2,0,1,1)

*attributeupdateintarray2dmark()
Updates an attribute of type 2D int array on a set of entities. Syntax *attributeupdateintarray2dmark(entity type, mark, identifier, solver, status, behavior, data, rows, cols) entity type mark identifier solver status The type of entity that owns the attribute. The number of the mark. The identifier of the attribute. The solver number for the attribute. The status for the attribute.

Arguments

Altair Engineering, Inc.

23

Command File

behavior data rows cols Example

The behavior for the attribute. The 2-D array of ints. The number of rows in the array. The number of columns in the array.

Update an attribute of type 2D int array to [1,2,3] on materials with IDs 7 and 8. [4,5,6] *createmark(materials,1) 7 8 *createintarray2d(2,3) 1,2,3,5,6,7 *attributeupdateintarray2dmark(materials,1,615,2,2,0,1,1)

*attributeupdateintarrayelementmark()
Updates one element of an attribute of type int array. Syntax *attributeupdateintarrayelementmark(entity type, mark, identifier, solver, status, behavior, index, value) entity type mark identifier solver status behavior index value Example The type of entity that owns the attribute. The number of the mark. The identifier of the attribute. The solver number for the attribute. The status for the attribute. The behavior for the attribute. Index into the array (first index is zero). The value for the array element.

Arguments

Update the first element (index 0) of some int array attributes to 10. The attributes are found on materials with IDs 7 and 8. *createmark(materials,1) 7 8 *attributeupdateintarrayelementmark(materials,1,615,2,2,0, 0,10)

Command File

24

Altair Engineering, Inc.

*attributeupdatedoublearrayelementmark()
Updates one element of an attribute of type double array. Syntax *attributeupdatedoublearrayelementmark(entity type, mark, identifier, solver, status, behavior, index, value) entity type The type of entity that owns the attribute. The number of the mark. The identifier of the attribute. The solver number for the attribute. The status for the attribute. The behavior for the attribute. Index into the array (first index is zero). The value for the array element.

Arguments

mark identifier solver status behavior index

value Example

Update the first element (index 0) of some double array attributes to 10.5. The attributes are found on materials with IDs 7 and 8. *createmark(materials,1) 7 8 *attributeupdatedoublearrayelementmark(materials,1,615,2,2 ,0 ,0,10.5)

*attributeupdateintarraymark()
Updates an attribute of type int array on a set of entities Syntax *attributeupdateintarraymark(entity type, mark, identifier, solver, status, behavior, data, length) entity type mark identifier solver The type of entity that owns the attribute. The number of the mark. The identifier of the attribute. The solver number for the attribute.

Arguments

Altair Engineering, Inc.

25

Command File

status behavior data length Example

The status for the attribute. The behavior for the attribute. The int array. The int array length.

Update an attribute of type int array to [1,2,3,4] on the materials with IDs 7 and 8. *createmark(materials,1) 7 8 *createintarray(4) 1 2 3 4 *attributeupdateintarraymark(materials,1,615,2,2,0,1,4)

*attributeupdateintmark()
Updates an attribute of type int on a set of entities. Syntax *attributeupdateintmark(entity type,mark,identifier,solver,status,behavior,value) entity type mark identifier solver status behavior value Example The type of entity that owns the attribute. The number of the mark. The identifier of the attribute. The solver number for the attribute. The status for the attribute. The behavior for the attribute. The value for the attribute.

Arguments

Update an attribute of type int array to 123 on the materials with IDs 7 and 8. *createmark(materials,1) 7 8 *attributeupdateintmark(materials,1,615,2,2,0,1,123)

Command File

26

Altair Engineering, Inc.

*attributeupdatestring()
Updates an attribute of type string. Syntax *attributeupdatestring(entity type, id, identifier, solver, status, behavior, value) entity type id identifier solver status behavior value Example The type of entity that owns the attribute. The ID of the entity. The identifier of the attribute. The solver number for the attribute. The status for the attribute. The behavior for the attribute. The value for the attribute.

Arguments

Update an attribute of type string to a value of composite on an element with ID, 100. *attributeupdatestring(elements,100,1241,6,2,0,"composite" )

*attributeupdatestringarray()
Updates an attribute of type string array. Syntax *attributeupdatestringarray(entity type, id, identifier, solver, status, behavior, data, length) entity type id identifier solver status behavior data The type of entity that owns the attribute. The ID of the entity. The identifier of the attribute. The solver number for the attribute. The status for the attribute. The behavior for the attribute. The string array.

Arguments

Altair Engineering, Inc.

27

Command File

length Example

The string array length.

Update an attribute of type string array to [layer1, layer2] on the material with ID 7. *createstringarray(2) "layer1" "layer2" *attributeupdatestringarray(materials,7,615,2,2,0,1,2)

*attributeupdatestringarrayelementmark()
Updates one element of an attribute of type string array. Syntax *attributeupdatestringarrayelementmark(entity type, mark, identifier, solver, status, behavior, index, value) entity type The type of entity that owns the attribute. The number of the mark. The identifier of the attribute. The solver number for the attribute. The status for the attribute. The behavior for the attribute. Index into the array (first index is zero). The value for the array element.

Arguments

mark identifier solver status behavior index

value Example

Update the first element (index 0) of some string array attributes to steel. The attributes are found on materials with IDs 7 and 8. *createmark(materials,1) 7 8 *attributeupdatestringarrayelementmark(materials,1,615,2,2 ,0,0,"steel")

Command File

28

Altair Engineering, Inc.

*attributeupdatestringarraymark()
Updates an attribute of type string array on a set of entities. Syntax *attributeupdatestringarraymark(entity type, mark, dentifier, solver, status, behavior, data, length) entity type mark identifier solver status behavior data length Example The type of entity that owns the attribute. The number of the mark. The identifier of the attribute. The solver number for the attribute. The status for the attribute. The behavior for the attribute. The string array. The string array length.

Arguments

Update an attribute of type string array to [layer1, layer2] on the materials with IDs, 7 and 8. *createmark(materials,1) 7 8 *createstringarray(2) "layer1" "layer2" *attributeupdatestringarraymark(materials,1,615,2,2,0,1,2)

*attributeupdatestringmark()
Updates an attribute of type string on a set of entities. Syntax *attributeupdatestringmark(entity type, mark, identifier, solver, status, behavior, value) entity type mark identifier solver The type of entity that owns the attribute. The number of the mark. The identifier of the attribute. The solver number for the attribute.

Arguments

Altair Engineering, Inc.

29

Command File

status behavior value Example

The status for the attribute. The behavior for the attribute. The value for the attribute.

Update an attribute of type string to steel on the materials with ID 7 and 8. *createmark(materials,1) 7 8 *attributeupdatestringmark(materials,1,615,2,2,0,"steel")

*autocolor()
Automatically colors any collectors that are currently set to gray (color 7). Syntax Argument *autocolor(entity type) entity type The type of collector which should be colored. Valid entries are components, load collectors, or system collectors.

Example

To automatically color all of the components that are gray (color 7): *autocolor(components)

*automesh()
Employs a surface-based automeshing algorithm to generate a mesh of plate or shell elements for the given face. Syntax Arguments *automesh(faceindex, algorithm, quads) faceindex The index of the face into the particular surface under consideration. Which surface-based mesh generation algorithm to use to create elements for the given face. Possible values are: 1, autodecide 2, map as rectangle 3, map as triangle Command File 30 Altair Engineering, Inc.

algorithm

4, map as pentagon 5, advancing front quads Whether quad elements (1) or tria elements (0) should be generated.

*bar3element()
Creates a bar3 element. Syntax *bar3element(node1,node2,node3,vector id,orientation node,ydir,pin flags a,pin flags b,property name) node1 node2 node3 vector id The first node of the bar (end a). The second node of the bar. The third node of the bar (end b). The ID of the vector used to define the local y axis. This argument is only used if orientation node is zero. The ID of the orientation node for the bar. If set to zero, then vector id is used. If not zero then ydir is used to determine if the node defines the local y or local z. If ydir is 1, then the orientation node defines the local y. If set to 1, then the orientation node defines the local y axis of the bar (otherwise it is the local z axis). The pin flags at end a. The pin flags at end b. The name of the property collector to which the bar should point.

Arguments

orientation node

ydir

pin flags a pin flags b property name

Example

To create a bar3 element betweens nodes 101,102 and 103 with its local y axis defined by the vector (1,0,0) and a property pointer which points to the property collector crossmem: *createvector(1,1.0000,0.0000,0.0000) *bar3element(101,102,103,1,0,0,0,0,"crossmem")

Comments

A pin flag of 0 determines that the bar passes force in all degrees of freedom.

Altair Engineering, Inc.

31

Command File

*bardirectionupdate()
Updates the direction node of a group of bar elements. Syntax Arguments *bardirectionupdate(mark, orientation node, ydir) mark The ID of the mark containing elements to be updated. The ID of the orientation node. If ydir is 1, then the orientation node defines the local y axis of the bar. Otherwise, it defines the local z axis.

orientation node ydir

Example

To update bar element 17 with orientation node 5: *createmark(elements,1) 17 *bardirectionupdate(1,5,1)

*barelement()
Creates a bar element. Syntax *barelement(node1, node2, vector id, orientation node, ydir, pin flags a, pin flags b, property name) node1 node2 The first node of the bar element (end a). The second node of the bar element (end b). The ID of the vector used to define the local bar y axis (if orientation node is 0). An optional node defining the orientation of the local bar axis. If ydir is 1, this is the local y axis. If ydir is 0, this is the local z axis. If orientation node is 0, use vector id to define the local y axis. A direction flag for orientation node. The pin flags at end a. The pin flags at end b.

Arguments

vector id

orientation node

ydir pin flags a pin flags b

Command File

32

Altair Engineering, Inc.

property name

The name of the property collector to which the bar should point.

Example

To create a bar element between nodes 100 and 101 with its y axis defined by the vector (1.0, 0.0, 0.0) and a property pointer which points to the property collector crossmem: *createvector(1,1.0,0.0,0.0) *barelement(100,101,1,0,0,crossmem)

Comments

A pin flag of 0 determines that the bar passes force in all degrees of freedom.

*barelementupdate()
Updates a group of bar elements. Syntax *barelementupdate(mark, local, vector id, pins, pin flags a, pin flags b, property, property name) mark The ID of the mark containing the bar elements. A logical indicating if the local y axis of the bars should be updated. The ID of the vector used to define the local bar y axis. A logical indicating if the pin flags of the bars should be updated. The pin flags at end a. The pin flags at end b. A logical indicating if the property of the bars should be updated. The name of the property collector to which the bars should point.

Arguments

local

vector id

pins

pin flags a pin flags b property

property name

Example

To update bar element 10 and 12 so that their y axis is defined by the vector (1.0, 0.0, 0.0), and their property pointers point to crossmem: *createvector(1,1.0,0.0,0.0) *createmark(element,1) 10 12 *barelementupdate(1,1,1,0,0,1,crossmem)

Comments

A pin flag of 0 determines that the bar passes force in all degrees of freedom. 33 Command File

Altair Engineering, Inc.

*baroffset()
Updates the offsets of a bar element. Syntax *baroffset(element id, x offset at a, y offset at a, z offset at a, x offset at b, y offset at b, z offset at b) element id x offset at a y offset at a z offset at a x offset at b y offset at b z offset at b Example The ID of the element. The x offset at end a of the bar element. The y offset at end a of the bar element. The z offset at end a of the bar element. The x offset at end b of the bar element. The y offset at end b of the bar element. The z offset at end b of the bar element.

Arguments

To update the bar element 23 with the offset vector at end a defined as (1.0, 2.0, 3.0) and end b as (4.0, 5.0, 6.0): *baroffset(23,1.0,2.0,3.0,4.0,5.0,6.0)

*baroffsetupdate()
Updates the offsets of a group of bar elements. Syntax *baroffsetupdate(mark, updatea, x offset at a, y offset at a, z offset at a, updateb, x offset at b, y offset at b, z offset at b) mark The ID of the mark containing elements to be updated. A logical indicating if the offset at end a of the bars is to be updated. The x offset at end a of the bar element. The y offset at end a of the bar element. The z offset at end a of the bar element. A logical indicating if the offset at end b of the bars is to be updated.

Arguments

updatea

x offset at a y offset at a z offset at a updateb

Command File

34

Altair Engineering, Inc.

x offset at b y offset at b z offset at b Example

The x offset at end b of the bar element. The y offset at end b of the bar element. The z offset at end b of the bar element.

To update the bar element 23 with the offset vector at end a defined as (1.0, 2.0, 3.0) and at end b as (4.0, 5.0, 6.0): *createmark(elements,1) 23 *baroffsetupdate(1,1,1.0,2.0,3.0,1,4.0,5.0,6.0)

*begin()
Indicates the beginning of a session in a command file. Syntax Argument *begin(string) string A string which although ignored by HyperMesh can be used as a user comment.

Example

To add a string to an output file: *begin("This is a comment")

Comments

When a command file is written by HyperMesh, the parameter string will be set to the version of HyperMesh being run, the date, and the time all enclosed in double quotes.

*blockcontrollines()
Controls the lines on a block. Syntax Arguments *blockcontrollines(index, on) index on The index to be modified. Set to 1, if the block lines should be displayed.

Altair Engineering, Inc.

35

Command File

*blockcontrolplanes()
Controls the planes on a block. Syntax Arguments *blockcontrolplanes(index, on) index on The index to be modified. Set to 1 to display the block lines.

*blockcreate()
Creates a finite difference block. Syntax Arguments *blockcreate(name, color) name color Comments The name of the block. The color of the block.

The size of the newly created block is determined by the existing finite element model.

*blocknodeupdate()
Updates the finite difference nodes in a finite difference block. Syntax *blocknodeupdate(name, function, type, start, end, number, factor) name function The name of the block. Set to 0 to add nodes, 1 to remove nodes, and 2 to remove all nodes from an index. The index. Set to 0 for i, 1 for j, and 2 for k. Not used if function is 2. The starting position of the nodes to be added or removed. Not used if function is 2. The ending position of the nodes to be

Arguments

type

start

end

Command File

36

Altair Engineering, Inc.

added or removed. Not used if function is 2. number The number of nodes to add. Not used if function is 1 or 2. The expansion factor. Not used if function is 1 or 2.

factor

Example

To add 50 nodes uniformly in the k direction to an existing block named block1: *blocknodeupdate(block1,0,2,-10.0,110.0,50,1.0)

*blocksetcurrent()
Sets the current block. Syntax Argument *blocksetcurrent(name) name The name of the block.

*blockupdate()
Updates the size and/or color of a finite difference block. Syntax *blockupdate(name, color, imin, imax, jmin, jmax, kmin, kmax) name color imin imax jmin jmax kmin kmax The name of the block. The new color of the block. The new minimum value in the i direction. The new maximum value in the i direction. The new minimum value in the j direction. The new maximum value in the j direction. The new minimum value in the k direction. The new maximum value in the k direction.

Arguments

Altair Engineering, Inc.

37

Command File

*blockvisualize()
Creates a fill hide plot of a finite difference block. Syntax *blockvisualize(name, iplane, jplane, kplane, icolor, jcolor, kcolor, usewallcolor) name iplane jplane kplane icolor The name of the block. The i plane to display. The j plane to display. The k plane to display. The color in which to display the i plane. Not used if iplane is 0. The color in which to display the j plane. Not used if jplane is 0. The color in which to display the k plane. Not used if kplane is 0. Set to 1 if the colors of the walls are to be used; 0, if the colors specified by icolor, jcolor, and kcolor are to be used.

Arguments

jcolor

kcolor

usewallcolor

Example

To display the entire finite difference block named block1: *blockvisualize(block1,0,0,0,0,0,0)

Comments

The color values are not used and the block is visualized using the wall colors unless the planes are nonzero, in which case the plane is visualized using the color provided.

*blockwalladdcell()
Adds one cell to a finite difference wall. Syntax Arguments *blockwalladdcell(wallname, cellid) wallname The name of the wall into which the cell is to be added. The ID of the cell to be added.

cellid Comments

The ID of any cell, knowing the (i,j,k) location, may be found by the formula (i*divj*divk)+(j*divk)+k, where divj and divk are the number of divisions in the j and k directions, respectively. All cells do not have to be members of a wall.

Command File

38

Altair Engineering, Inc.

*blockwallcreate()
Creates a wall in a finite difference block. Syntax Arguments *blockwallcreate(blockname, wallname, color) blockname wallname color The name of the block. The name of the wall to be created. The color of the new wall.

*blockwalldelete()
Deletes a wall from a finite difference block. Syntax Arguments *blockwalldelete(blockname, wallname) blockname wallname The name of the block. The name of the wall to be deleted.

*blockwalleditrange()
Adds or deletes a range of cells in a finite difference wall. Syntax *blockwalleditrange(blockname, wallname, imin, imax, jmin, jmax, kmin, kmax, del) blockname wallname imin imax jmin jmax kmin kmax del The name of the block. The name of the wall to be edited. The minimum value in the i direction, inclusive. The maximum value in the i direction, inclusive. The minimum value in the j direction, inclusive. The maximum value in the j direction, inclusive. The minimum value in the k direction, inclusive. The maximum value in the k direction, inclusive. Set to 0 to add cells, 1 to delete cells.

Arguments

Altair Engineering, Inc.

39

Command File

*blockwallfill()
Fills an enclosed plane of cells in a finite difference wall. Syntax Arguments *blockwallfill(wallname, cellid) wallname cellid The name of the wall to be edited. The ID of the cell from which to start the filling.

Comments

The ID of any cell, knowing the (i,j,k) location, may be found by the formula (i*divj*divk)+(j*divk)+k, where divj and divk are the number of divisions in the j and k directions, respectively. Display must be in planar mode for this function to work, and only one plane can be displayed. The displayed plane is the plane that is filled.

*blockwallfindintersect()
Intersects one- and two-dimensional finite elements with cells in a finite difference block. Syntax *blockwallfindintersect(blockname, wallname, entity type, mark) blockname wallname The name of the block. The name of the wall into which cells are to be inserted. The type of entity in the mark (either elements or components). The ID of the mark.

Arguments

entity type

mark

*blockwallremove()
Removes all cells from the given finite difference wall. Syntax Arguments *blockwallremove(blockname, wallname) blockname wallname The name of the block. The name of the wall from which all cells are to be removed.

Command File

40

Altair Engineering, Inc.

*blockwallremovecell()
Removes one cell from a finite difference wall. Syntax Arguments *blockwallremovecell(wallname, cellid) wallname The name of the wall from which the cell is to be removed. The ID of the cell to be removed.

cellid Comments

The ID of any cell, knowing the (i,j,k) location, may be found by the formula (i*divj*divk)+(j*divk)+k, where divj and divk are the number of divisions in the j and k directions, respectively.

*blockwallreset()
Deletes all walls from a finite difference block. Syntax Argument *blockwallreset(name) name The name of the block from which all walls are to be removed.

*blockwallupdate()
Updates the color of a wall in a finite difference block. Syntax Arguments *blockwallupdate(blockname, wallname, color) blockname wallname color The name of the block. The name of the wall. The new color of the new wall.

Altair Engineering, Inc.

41

Command File

*bullet()
Places a bullet on a slide. Syntax Example *bullet( ) To place a bullet on a slide: *bullet() *bullet() Comments First important point. Second important point.

This command is only available while the system is in *slide() mode.

*calculatecuttingplane()
Calculates the intersection of the cutting plane with the current model. Syntax *calculatecuttingplane()

*call()
Used to call a user-defined function. Syntax Argument *call(function name) function name The name of the user-defined function to be called.

Example

To call the function makeplot: *call(makeplot) *function(makeplot) <user commands> *return()

Comments

Requires a *function() and *return() command.

Command File

42

Altair Engineering, Inc.

*cardcreate()
Creates a control card. Syntax Argument *cardcreate(name) name The name of the control card to create.

*carddelete()
Deletes a control card. Syntax Argument *carddelete(name) name The name of the control card to delete.

*carddisable()
Disables an existing control card's from being output through the template system. Syntax Argument *carddisable(name) name The name of an existing card to disable.

*cardenable()
Enables an existing control card to be output through the template system. Syntax Argument *cardenable(name) name The name of an existing card to enable.

Altair Engineering, Inc.

43

Command File

*cleanuptoleranceset()
Sets the default tolerance to use during topological operations. Syntax Argument Comments *cleanuptoleranceset(tolerance) tolerance The new tolerance.

Describes when to consider two separate geometric entities the same. The value should not be less than 10 times the geometric tolerance.

*clearcuttingplane()
Clears the cutting plane. Syntax *clearcuttingplane()

*collectorcreate()
Creates a collector. Syntax Arguments *collectorcreate(type, name, material, color) type The type of collector being created. This value should be set to component, property, material, loadcols, or systcols. The name of the collector. The name of the material collector to which the new collector should point. This parameter is ignored unless a component or property collector is being created. The color of the new collector. This parameter is ignored unless a component, load collector, or system collector is being created.

name material

color

Example

To create a component fender, with materials contained in the material collector mat1, and a color of 9: *collectorcreate(component,fender,mat1,9)

Command File

44

Altair Engineering, Inc.

*collectorcreatesameas()
Creates a collector using an existing collectors dictionary/attribute data. Syntax *collectorcreatesameas(type, newname, existingname, material, color) type The type of collector being created. This value should be set to component, property, material, loadcols, or systcols. The name of the collector to be created. The name of the collector to copy dictionary attribute information from The name of the material collector to which the new collector should point. This parameter is ignored unless a component or property collector is being created. The color of the new collector. This parameter is ignored unless a component, load collector, or system collector is being created.

Arguments

newname existingname

material

color

Example

To create a new property left using the attributes in the component right, the material matl3 and color 12: *collectorcreatesameas(property,"left","right","matl3",12)

Comments

Elements and geometry contained in componets are not copied to the new collector using this command. Only the attributes/dictionary information is copied.

Altair Engineering, Inc.

45

Command File

*collectormarkmove()
Moves and/or sorts the entities on a mark. This affects their order within the display menu and the advanced entity selection menus. Syntax Arguments *collectormarkmove(entity type, mark, front, sort) entity type The type of entities contained on the mark. Valid entity types are components, load collectors, system collectors, properties, groups, plots, blocks, materials, assemblies, and titles. The ID of the mark. 1, the marked entities are moved to the front of the list; 0, the marked entities are moved to the back of the list. 0, the marked entities are not be sorted; 1, the marked entities are sorted by name; 2, the marked entities are sorted by ID.

mark front

sort

*color()
Changes the color used to display text in slide mode. Syntax Argument *color(color) color The number of the color to be used to display text.

Example

To place the following colored text on a slide: *slide(1,1,1) *color(12) This is the text which will be red. *color(14) This is the text which will be yellow. *color(10) This is the text which will be green.

Comments

This command is only available while the system is in slide mode.

Command File

46

Altair Engineering, Inc.

*colormapedit()
Modifies a color in the color map. Syntax Arguments *colormapedit(color, red, green, blue) color red green blue The index of the color in the color map. The red component of color. The green component of color. The blue component of color.

*colormark()
Colors the entities on a mark a specified color. Syntax Arguments *colormark(entity type, mark, color) entity type The type of entities contained on the mark. Valid entity types are components, system collectors, and load collectors. The ID of the mark. The color which the selected entities should be colored. Valid colors are 0 through 15.

mark color

Example

To color the component frame red: *createmark(components,1) frame *colormark(components,1,12)

*combineelements()
Combines the selected elements into one. Syntax Arguments *combineelements(mark, tolerance, angle) mark The ID of the mark containing the elements to be combined. The maximum tolerance allowed before a node within the group of selected elements 47 Command File

tolerance

Altair Engineering, Inc.

is considered to be not on the plane formed by any three nodes attached to the group of selected elements. angle The maximum angle between three nodes which is considered to be a flat side.

Example

To combine elements 10, 13, and 15 with an off plane tolerance of 0.1 and a flat angle of 150.0 degrees: *createmark(elements,1) 10 13 15 *combineelements(1,0.1,150.0)

Comments

This command is obsolete and is provided only for backward compatibility. *combineelements() only works with two-dimensional elements.

*combineplotels()
Creates a line from a group of plot elements. Syntax Argument *combineplotels(mark) mark The mark containing the plot elements.

*complexanimatemodal()
Creates and displays a complex modal animation sequence. Syntax *complexanimatemodal(title, maxdeflection, frames, hiddenline) title The title which should appear on the animation frames. The maximum deflection in model units to which the maximum analysis result should be scaled. The number of frames which should be used during the animation sequence. Determines if the animation generated should be hidden line (1 for hidden line, 0

Arguments

maxdeflection

frames

hiddenline

Command File

48

Altair Engineering, Inc.

for wire frame). Example To animate the current structure with the first simulation and the first data type within the simulation using the results from the file test.res and scaling the maximum deflection to 10 model units: *analysisfileset(test.res) *simulationset(1,1) *complexanimatemodal("",10.0,4,0) Comments The maximum number of frames available for animation is hardware dependent.

*configedit()
Edits the configuration of a group of elements. Syntax Arguments *configedit(mark, newconfig) mark The mark containing the elements to be modified. The new configuration for the elements.

newconfig

*contourplot()
Creates a contour plot of analysis results. Syntax *contourplot(title, mindef, minimum, maxdef, maximum, mesh color, scale factor, not used, full color, disp type, mult, show min max, show plot info) title mindef The title which should appear on the plot. Indicates if the minimum value found in the file should be used as the minimum value on the legend or if the following parameter minimum should be used as the minimum value on the legend (0 for file, 1 for minimum). The minimum value which should appear on the legend. This is only used if mindef is

Arguments

minimum

Altair Engineering, Inc.

49

Command File

set to 1. maxdef Indicates if the maximum value found in the file should be used as the maximum value on the legend or if the following parameter maximum should be used as the maximum value on the legend (0 for file, 1 for maximum). The maximum value which should appear on the legend. This is only used if maxdef is set to 1. The color which should be used to plot the mesh. The scale factor used for scaling a deformed plot. A flag that indicates if the plot being generated should occupy the full screen (1yes, 0-no). Indicates if full color or smoothing between the colors in the legend should be performed (1 for smoothing, 0 otherwise). Indicates which value of displacement should be used ("x" for x displacement only, "y" for y displacement only, "z" for z displacement only, "total" for total displacement). This is only applicable to displacement data. A value used to multiply the results found in the results file. Indicates if the minimum/maximum title should be displayed. (1-yes, 0-no). Indicates if the plot information title should be displayed. (1-yes, 0-no).

maximum

mesh color

scale factor

full size

full color

disp type

mult

show min max

show plot info

Comments

Either *inputsimulation() or *simulationset() is required.

Command File

50

Altair Engineering, Inc.

*copymark()
Copies entities from one component to another. Syntax Arguments *copymark(entity type, mark, collector name) entity type mark The type of entities on the mark. The ID of the mark containing the entities. The name of the collector into which the elements are copied.

collector name

Example

To copy element 20, 21, and 22 into component junk: *createmark(elements,1) 20 21 22 *copymark(elements,1,junk)

Comments

This command can be used with lines, elements, systems, or loads.

*createarray()
Creates an array of integers. Syntax Argument Example *createarray(len) len *createarray(2) 1 2 The length of the array.

*createcenternode()
Creates a node at the center of a circle formed by node1, node2, and node3. Syntax Arguments *createcenternode(node1, node2, node3) node1 node2 node3 The first node on the circle. The second node on the circle. The third node on the circle.

Altair Engineering, Inc.

51

Command File

*createcirclefromcenterradius()
Creates circles when supplied with the center and radius. Syntax *createcirclefromcenterradius(list id, vector id, radius, angle, offset) list id The ID of the list which contains the nodes to be used as the center points. The ID of the vector which is normal to the plane in which the circles should be created. The radius of the circles. The angle through which the arc being generated should pass. To create circles, the angle should be set to 360.0. May be used to offset the starting point of the circles.

Arguments

vector id

radius angle

offset

Example

To create a circle centered at node 18, with radius 3.0, and in the plane whose normal is defined by (0.0, 0.0, 1.0): *createvector(1,0.0,0.0,1.0) *createmark(nodes,1) 18 *createcirclefromcenterradius(1,1,3.0,360.0,0.0)

Comments

*createvector() and *createmark() are required.

*createcirclefrompointplane()
Creates a circle by spinning a node about a plane normal. Syntax *createcirclefrompointplane(list id, plane id, angle, offset) list id The ID of the mark which contains the nodes to be spun. The ID of the plane whose normal should be used to spin the nodes about. The center of the circle is located at the base of the plane.

Arguments

plane id

Command File

52

Altair Engineering, Inc.

angle

The angle through which the nodes should be spun. The offset angle from the original position of the nodes.

offset

Example

To create a circle by spinning nodes 4 and 12 about the plane normal defined by (0.0, 0.0, 1.0), and based at (0.0, 0.0, 0.0): *createplane(1,0.0,0.0,1.0,0.0,0.0,0.0) *createmark(nodes,1) 4 12 *createcirclefrompointplane(1,1,360,0)

Comments

*createplane() and *createmark() are required.

*createcirclefrompoints()
Creates a circle from three points. Syntax Arguments *createcirclefrompoints(list id, circle) list id The list containing the three nodes which should be used to create the circle. Determines if a circle or an arc is to be created (1 for circle, 0 for arc).

circle

Example

To create a circle which runs though nodes 11, 22, and 33: *createlist(nodes,1) 11 22 33 *createcirclefrompoints(1,1)

*createdoublearray()
Creates an array of doubles. Syntax Argument Example *createdoublearray(len) len The length of the array.

*createdoublearray(2) 1.5 2.5

Altair Engineering, Inc.

53

Command File

*createdoublearray2d()
Creates a 2-D array of doubles. Syntax Arguments *createdoublearray(rows,cols) rows cols Example The number of rows in the array. The number of columns in the array.

*createdoublearray2d(2,3) 1.5 2.5 3.5 5.5 6.5 7.5

*createintarray2d()
Creates a 2-D array of ints. Syntax Arguments *createintarray(rows,cols) rows cols Example The number of rows in the array. The number of columns in the array.

*createintarray2d(2,3) 1,2,3,5,6,7

*createelement()
Creates an element. Syntax Arguments *createelement(config, type, nodelist, auto order) config type nodelist The configuration of the element. The type of the element. The ID of a list containing the nodes of the element. 1, to auto order; 0, to use user-defined node order.

auto order

Example

To create a quad with nodes 14, 15, 16, and 17: *createlist(node,1) 14 15 16 17 *createelement(104,104,1

Command File

54

Altair Engineering, Inc.

*createfillet()
Creates a fillet between two lines. Syntax *createfillet(line1 id, line2 id, radius, trim, quadselected) line1 id The ID of the first line to which the fillet line is to be created. The ID of the second line to which the fillet line is to be created. The radius of the fillet. 1, to trim line1 and line2 at the fillet boundary; 0, to leave the lines intact. The quadrant to select, if more than one possible fillet location exists.

Arguments

line2 id

radius trim

quadselected

Example

To create a fillet between line 1 and line 2 with radius 5.4: *createfillet(1,2,5.4,0,0)

Comments

If more than one possible fillet line exists, you must select the fillet quadrant. The number of this quadrant is then used in the quadselected argument.

*createlist()
Creates a list of entities. Syntax Arguments *createlist(entity type, list id) entity type list id Example The type of entities to be in the list. The ID of the list (1 or 2).

To make list 1 a list of nodes with IDs 1, 4, 6, and 8: *createlist(nodes,1) 1 4 6 8

Comments

A list of the entity IDs must follow the *createlist() command; the list must include the IDs of the entities separated by a space or comma. Nodes are the only entity which are currently supported on the *createlist() command.

Altair Engineering, Inc.

55

Command File

*createmark()
Creates a mark. Syntax Arguments *createmark(entity type, mark id) entity type The type of entities to be placed into the mark. The ID of the mark being created (1 or 2).

mark id Example

To place elements 1 and 35 on mark 1: *createmark(elements,1) 1 35

Comments

A list of the entity IDs and/or the collector names must follow the *createmark() command. The list must include the IDs or the collector names of the entities separated by a space or comma. The *createmark() command can also be followed by one of the following options: all displayed retrieve reverse by comps [ID or name] by id ID by assems [ID or name} by group [ID or name] by config [ID or name] by sets [ID or name] by surface ID by adjacent by attached by outputblock [ID or name] on plane x y x i j k tol plane touching plane: 0 = plane, 1 = normal of plane touching: 0 = entities touching, 1 = entities on

Command File

56

Altair Engineering, Inc.

*createnode()
Creates a node in space. Syntax *createnode(x, y, z, system id, surface id, geometry index) x y z system id The x coordinate of the node. The y coordinate of the node. The z coordinate of the node. The ID of the system which the node should reference. The ID of the surface to which the node is associated. The index into the HyperMesh geometry structure which identifies the face, edge, or vertex to which the node is associated.

Arguments

surface id

geometry index

Example

To create a node at (12.0, 13.5, 16.3): *createnode(12.0,13.5,16.3,0,0,0)

*createnodesbetweennodelist()
Creates nodes between each pair of nodes along a list. Syntax Arguments *createnodesbetweennodelist(list, numberofnodes) list numberofnodes The ID of the list of nodes. The number of new nodes to create evenly spaced between each pair.

Example

To create 3 nodes between nodes 166 and 170, and 3 more between nodes 170 and 174, and so on: *createlist(nodes,1) 166 170 174 178 183 187 191 *createnodesbetweennodelist(1,3)

Altair Engineering, Inc.

57

Command File

*createnodesbetweennodes()
Creates a user-specified number of nodes between two nodes. Syntax Arguments *createnodesbetweennodes(node1, node2, number) node1 The first node between which nodes should be created. The second node between which nodes should be created. The number of nodes which should be created between node1 and node2.

node2

number

Example

To create 5 nodes between nodes 100 and 101: *createnodesbetweennodes(100,101,5)

*createplane()
Creates a plane for use in future commands. Syntax *createplane(plane id, normal x, normal y, normal z, base x, base y, base z) plane id normal x The ID of the plane being defined (1 or 2). The x component of the normal of the plane. The y component of the normal of the plane. The z component of the normal of the plane. The x component of the base point of the plane. The y component of the base point of the plane. The z component of the base point of the plane.

Arguments

normal y

normal z

base x

base y

base z

Example

To create plane 1 with a normal along the x axis and a base point of (2.0,3.0,4.0): *createplane(1,1.0,0.0,0.0,2.0,3.0,4.0)

Command File

58

Altair Engineering, Inc.

*createstringarray()
Creates an array of strings. Syntax Argument Example *createstringarray(len) len Length of the array

*createstringarray(2) "one","two"

*createvector()
Defines a vector for use in other commands. Syntax *createvector(vector id, x component, y component, z component) vector id x component The ID of the vector being defined (1 or 2). The x component of the normal of the vector. The y component of the normal of the vector. The z component of the normal of the vector.

Arguments

y component

z component

Example

To define a vector along the y axis: *createvector(1,0.0,1.0,0.0)

Comments

Use this command to define a vector for use in other commands. Use the *vectorcreate() command to create a vector entity.

Altair Engineering, Inc.

59

Command File

*currentcollector()
Sets the current collector. Syntax Arguments *currentcollector(entity type, name) entity type The type of collector which the current collector should be set to. Valid types are component, systcol, or loadcol. The name of the collector which should be made current.

name

Example

To set the current component to be the component named stuff: *currentcollector(component,stuff)

*curvemathexternalfilter()
Runs an external filter on a curve. Syntax *curvemathexternalfilter(outputcurve, xbased, filter, parameter) outputcurve xbased The name of the curve to be generated. 1, if the function should operate on the x coordinate; 0, if the function should operate on the y coordinate. The name of the filter. The user-defined parameters for the filter.

Arguments

filter parameter

Command File

60

Altair Engineering, Inc.

*defaultmesh()
Generates meshes using saved or default parameters for all the surfaces on the given mark. Syntax *defaultmesh(markmask, elementsize, trias, forcing, elemstosurfcomp, triatransitions, size_control, skew_control, elem_type_change, edge_mesh_type, min_size, max_size, chordal_div, max_angle) markmask elementsize The surfaces to be meshed. The default element edge size to use for calculating element densities along the edges where necessary. Determines if the generated elements should be quads (0) or trias (1). If forcing is set to a nonzero value, any saved parameters from a previous use of the automesher for this surface are ignored. If nonzero, new elements are created in the component of the surface to which they belong. Otherwise, they are created in the current component. Determines if triangles should be used for element transitions in mapping algorithms. 1 - yes, 0 - no. size_control Determines if uniform size elements in mapping algorithms should be created. 1 - yes, 0 - no. skew_control Determines if optimal shape elements in mapping algorithms should be created. 1 - yes, 0 - no. elem_type_change Determines if the same or different element types for mapping and advancing front algorithms should be used. 0 - same, 1 - different.

Arguments

trias

forcing

elemstosurfcomp

triatransitions

Altair Engineering, Inc.

61

Command File

If 1, argument trias defines the element type for mapping algorithms. For advancing front algorithm, the type would be opposite to the value of trias. edge_mesh_type Determines if you should use chordal deviation edge meshing (2) or standard edge meshing (1). Minimum edge size for chordal deviation edge meshing. Maximum edge size for chordal deviation edge meshing. Chordal deviation for chordal deviation edge meshing. Maximum angle value (in degrees) between edges for chordal deviation edge meshing.

min_size

max_size

chordal_div

max_angle

Example

To create quads of default edge size 1.0 for the surface with ID 3: *createmark(surfaces,1) 3 *defaultmesh(1,1,0,1,0,0,0,0,0,1,0,0,0,0) To create quads for size controlled mapping algorithm with triatransitions and trias for advancing front with chordal deviation edge meshing for surfaces with ID s 3, 5, 6: *createmark(surfaces,1) 3 5 6 *defaultmesh(1,1,0,1,0,1,1,0,1,2,0.5,30,0.1,15)

Comments

The *createmark() command is required for this command. The function *defaultmesh() writes a comment to the command file indicating what surface it has started processing so that, if there is a problem, you can rerun the command file and stop it before it reaches that surface.

Command File

62

Altair Engineering, Inc.

*deformedshape()
Plots the deformed shape of the structure based on analysis results. Syntax *deformedshape(title, undef color, deformed color, maxdef, hidden line, full size) title undef color The title to be displayed on the plot. The color to be used for the undeformed structure (0 through 15 or -1 to use the color of the elements). The color to be used for the deformed structure (0 through 15 or -1 to use the color of the elements). The maximum deflection in model units to which the results should be scaled. A flag which determines if the deformed plot should be hidden line. Determines if the plot being generated is plotted without the menu system showing (1 for full size, otherwise 0).

Arguments

deformed color

maxdef

hidden line

full size

Example

To plot the deformed structure in red, and the undeformed structure in blue, with a scale factor of 50 model units, and using the first simulation and first data type from the file test.res: *analysisfileset(test.res) *simulationset(1,1) *deformedshape("",9,12,50,0,0)

Comments

*analysisfileset() must be used to specify a results file and *inputsimulation() or *simulationset() must be used to specify the appropriate simulation and data type.

Altair Engineering, Inc.

63

Command File

*deleteedges()
Deletes the edges if any in the current database. Syntax Example *deleteedges() To delete the edges in a model: *deleteedges() Comments This operation deletes the component named ^edges.

*deletefeatures()
Deletes the features in a model. Syntax Comments *deletefeatures() This function can also be performed by using the function *deletemark() .

*deletefile()
Deletes a file. Syntax Argument Example *deletefile(name) name To delete the file named junk: *deletefile(junk) The name of the file to be deleted.

*deletefillet()
Deletes a fillet from a line. Syntax Argument *deletefillet(line id) line id The ID of the line from which the fillet line is to be deleted.

Command File

64

Altair Engineering, Inc.

*deletemark()
Deletes entities from the database. Syntax Arguments *deletemark(entity type, mark) entity type mark Example To delete lines 12, 13, and 14: *createmark(lines,1) 12 13 14 *deletemark(lines,1) The type of entity contained on the mark. The ID of the mark to be deleted.

*deletemodel()
Deletes all of the entities in a database. Syntax *deletemodel()

*dependencycheck()
Checks nodes for multiple dependence. Syntax Arguments *dependencycheck(entities, mark) entities mark The entities contained on the mark. The ID of the mark which contains the entities.

Altair Engineering, Inc.

65

Command File

*descriptormove()
Moves the plot descriptor. Syntax Arguments *descriptormove(xmin, ymin, xmax, ymax) xmin The x value of the upper left corner of the plot descriptor (0.0 - 1.0). The y value of the upper left corner of the plot descriptor (0.0 - 1.0). The x value of the lower right corner of the plot descriptor (0.0 - 1.0). The y value of the lower right corner of the plot descriptor (0.0 - 1.0).

ymin

xmax

ymax

*descriptorsetcolor()
Sets the color of the plot descriptor. Syntax Argument *descriptorsetcolor(color) color The color of the descriptor.

*descriptorsetfont()
Sets the font for the plot descriptor. Syntax Argument *descriptorsetfont(font) font The font number for the descriptor (1-4).

Command File

66

Altair Engineering, Inc.

*descriptorsettext()
Sets the text which should be displayed in the plot descriptor. Syntax Argument *descriptorsettext(text) text The text which should be displayed in the plot descriptor.

*detachelements()
Detaches the elements contained on the mark as a unit from the rest of the structure by the specified offset value. Syntax Arguments *detachelements(mark,offset value) mark The ID of the mark containing the elements to be detached. The distance by which the elements should be offset.

offset value

Example

To detach elements 10, 20, 30, and 40: *createmark(elements,1) 10 20 30 40 *detachelements(1,0)

*dictionaryload()
Loads a dictionary from the template file into a collector dictionary. Syntax Arguments *dictionaryload(entity type, mark, template, dictionary) entity type The type of the collector contained on the mark. The ID of the mark which contains the collectors to be updated. The name of the template which contains the dictionary. The name of the dictionary to be 67 Command File

mark

template

dictionary

Altair Engineering, Inc.

loaded into the components. Example To load the dictionary named NAST_PSHELL from the NASTRAN template general into component plate: *createmark(component,1) plate *dictionaryload(component,1,nastran/general,NAST_PSHELL)

*dictionaryreset()
Resets a collectors dictionary. Syntax Arguments *dictionaryreset(entity type, name) entity type The type of the collector contained on the mark. The collector name.

name Example

To reset the dictionary named steel. *dictionaryreset(materials, steel)

*dictionaryupdatebymark()
Updates a dictionary item in a group of collectors. Syntax *dictionaryupdatebymark(entity type, mark, name, type, string, value, active) entity type mark name type The type of entity in the mark. The ID of the mark. The name of the dictionary item to be modified. The type of the dictionary item: 0 1 2 none string integer

Arguments

Command File

68

Altair Engineering, Inc.

3 string

real

The string value of the dictionary item. This is only used when the type is set to real. The value of the dictionary item. This is only used when the type is set to integer or real. Determines if the dictionary item is active: -1 0 Always active. Not active. This may be changed by the user. Active. This may be changed by the user.

value

active

*dictionaryupdateentry()
Updates a dictionary item. Syntax *dictionaryupdateentry(entity type, collector, name, type, string, value, active) entity type collector name type The type of entity in the mark. The name of the collector. The name of the dictionary item to be modified. The type of the dictionary item: 0 1 2 3 string none string integer real

Arguments

The string value of the dictionary item. This is only used when the type is set to real. The value of the dictionary item. This is only used when the type is set to integer or real. Determines if the dictionary item is active:

value

active

Altair Engineering, Inc.

69

Command File

-1 0

Always active. Not active. This may be changed by the user. Active. This may be changed by the user.

*displaycollector()
Changes the active state of a collector. Syntax *displaycollector(entity type, function, name, elements, lines) entity type The type of collector. Valid types for this function are components, loadcols, and systcols. The function being performed defined by the following: If function is set to on, then the collector specified by name is turned on. If function is set to off, then the collector specified by name is turned off. If function is set to toggle, then the collector specified by name is toggled. If function is set to all, then all of the collectors of type entity type is turned on. If function is set to none, then all of the collectors of type entity type is turned off. If function is set to reverse, then all of the collectors of type entity type will be toggled. name The name of the collector to be used in the above functions. This parameter may be left blank if function is set to all, none, or toggle. Indicates if elements within components are to be turned on or off (1 for yes, 0 for no).

Arguments

function

elements

Command File

70

Altair Engineering, Inc.

lines

Indicates if lines within components are to be turned on or off (1 for yes, 0 for no).

Example

To turn the elements and lines on in component fender: *displaycollector(component,on,fender,1,1)

*displaylistdisplaycollector()
Toggles the display status of components while a display list is active. Syntax *displaylistdisplaycollector(entity type, function, name, transparency) entity type The type of collector. Valid types for this function are components. The function being performed defined by the following: If function is set to on, then the collector specified by name will be turned on. If function is set to off, then the collector specified by name will be turned off. If function is set to toggle, then the collector specified by name will be toggled. If function is set to all, then all of the collectors of type entity type will be turned on. If function is set to none, then all of the collectors of type entity type will be turned off. If function is set to reverse, then all of the collectors of type entity type is toggled. name The name of the collector to be used in the above functions. This parameter may be left blank if function is set to all, none, or toggle. Indicates if the components should be made transparent or turned off or on (1 for transparent, 0 for off/on).

Arguments

function

transparency

Comments

This function works only if a display list is active.

Altair Engineering, Inc.

71

Command File

*displaylistoff()
Turns off and frees the display list. Syntax *displaylistoff()

*draglinetoformsurface()
Drags a trimmed line to create a surface, and optionally, prepares it for immediate use within the automesher. It can also identify a region in the shape of a dragged surface for the automesher to use under the mesh without surface option. Syntax *draglinetoformsurface(linelist, list, direction_vector, distance) linelist The ID of the list of lines to be dragged. The list ID of the list of zero or two nodes which lie on the lines in the line list which will be used to trim the line during surface creation. The direction to drag the lines. The distance to drag the lines.

Arguments

list

direction_vector distance Example

To drag two lines, trimmed by two points, -100 units in the direction of the y-axis, creating a surface but no elements: *surfacemode(4) *createlist(lines,1) 1 2 *createlist(nodes,1) 29 30 *createvector(1,0.0000,1.0000,0.0000) *draglinetoformsurface(1,1,1,-100.0000)

Comments

The *surfacemode(4) directive tells HyperMesh not to pass the information on to the automesher for element creation. *createlist() and *createvector() are required for this command.

Command File

72

Altair Engineering, Inc.

*dragnodestoformsurface()
Drags a list of nodes to create a surface, and optionally, prepares it for immediate use within the automesher. It can also identify a region in the shape of a dragged surface for the automesher to use under the mesh without surface option. Syntax Arguments *dragnodestoformsurface(list, direction_vector, distance) list direction_vector distance Example The nodes to be dragged. The direction to drag the nodes. The distance to drag the nodes.

To drag six nodes -100 units in the direction of the y-axis, creating a surface but no elements: *surfacemode(4) *createlist(nodes,1) 5 10 6 11 12 7 *createvector(1,0.0000,1.0000,0.0000) *dragnodestoformsurface(1,1,-100.0000)

Comments

The *surfacemode(4) directive tells HyperMesh not to pass the information on to the automesher for element creation. *createlist() and *createvector() are required for this command. If one of the surface creation modes has been set, a smooth is put through the nodes to create the surface.

*drawlistreset()
Resets the post-processing values used in performance graphics mode. Syntax *drawlistreset()

*drawlistresetstyle()
Resets the display mode on the draw list to the default when you are using performance graphics mode. Syntax *drawlistresetstyle()

Altair Engineering, Inc.

73

Command File

*duplicatemark()
Duplicates a mark. Syntax Arguments *duplicatemark(entity type, mark, current) entity type Indicates the type of entity in the mark (elements or lines). The ID of the mark to be duplicated. Indicates if the new entities should be placed in the current component or in the component in which it currently exists (1 - current, 0 - original).

mark current

Example

To duplicate the elemenarkts on mark 1 and place the new elements in the original components: *duplicatemark(elements,1,0)

*dynamicviewbegin()
Begins a block of *rotate(), *window(), or *quatrotate() commands. Syntax *dynamicviewbegin()

*dynamicviewend()
Ends a block of *rotate(), *window(), or *quatrotate() commands. Syntax *dynamicviewend()

*edgerestore()
Unsuppress the selected edge. Syntax Argument *edgerestore(edge) edge The edge to unsuppress.

Command File

74

Altair Engineering, Inc.

Example

To unsuppress edge 5: *edgerestroe(5)

Comments

Only face edges that are interior to a surface or shared between two surfaces may be suppressed and unsuppressed. Unsuppressing an edge can split a surface into two new surfaces, and causes it to affect the mesh.

*edgesmarkrestore()
Unsuppresses a group of edges. Syntax Argument *edgesmarkrestore(mark) mark The ID of the mark which contains the edges to unsuppressed.

Example

To unsuppress edges 5, 14, 21, and 30: *createmark(lines,1) 5 14 21 30 *edgesmarkrestore(1)

Comments

Only face edges which are interior to a surface or shared between two surfaces may be suppressed and unsuppressed. Unsuppressing an edge can split a surface into two new surfaces, and causes it to affect the mesh. The *createmark() command is required.

*edgesmarksuppress()
Suppresses a group of edges. Syntax Argument *edgesmarksuppress(mark) mark The ID of the mark which contains the edges to suppressed.

Example

To suppress edges 5, 14, 21, and 30: *createmark(lines, 1) 5 14 21 30 *edgesmarksuppress(1)

Comments

Only face edges which are interior to a surface or shared between two surfaces may be suppressed and unsuppressed. Suppressing an edge can combine two separate surfaces, and removes its affect on the mesh. The createmark() command is required.

Altair Engineering, Inc.

75

Command File

*edgesmarkuntrim()
Removes the specified trimming lines from their surface. Syntax Argument *edgesmarkuntrim(mark) mark The ID of the mark containing trimming edges to remove.

*edgesuppress()
Suppresses the selected edge. Syntax Argument Example *edgesuppress(edge) edge To suppress edge 5: *edgesuppress(5) Comments Only face edges which are interior to a surface or shared between two surfaces may be suppressed and unsuppressed. Suppressing an edge can combine two separate surfaces, and removes its affect on the mesh. The edge to suppress.

*element1dswitch()
Switches the order of one-dimensional elements. Syntax Argument *element1dswitch(mark) mark The ID of the mark that contains the onedimensional elements to be switched.

Example

To switch the order of the one-dimensional elements 5, 6, and 7: *createmark(elements,1) 5 6 7 *element1dswitch(1)

Comments

*createmark() is required.

Command File

76

Altair Engineering, Inc.

*elementhandle()
Turns element handles on and off. Syntax Argument *elementhandle(on) on Indicates whether element handles should be on or off (1 for on, 0 for off).

Comments

Element handles display the location on the screen where elements may be picked.

*elementmarksplit()
Splits a group of elements. Syntax Arguments *elementmarksplit(mark, crosscode, crosscodesize) mark crosscode The mark containing the elements to be split. The ID of the array containing the crossing codes. The size of the crosscode array.

crosscodesize

*elementorder()
Sets the element order when new elements are created. Syntax Argument *elementorder(order) order The order of the elements to be built. 1 2 New elements will be first order. New elements will be second order.

Altair Engineering, Inc.

77

Command File

*elementsettypes()
Sets the element types to the current global value. Syntax Argument *elementsettypes(mark) mark The ID of the mark that contains the elements to be set.

Example

To set the displayed elements to the current global types: *createmark(element,1) displayed *elementsettypes(1)

Comments

Each of the HyperMesh element configurations has a global type associated with it which is stored in a variable. When a new element is created, the type will be set to the current value of the global type. Types are how different analysis elements are assigned to the same HyperMesh element configuration.

*elementsizeset()
Sets the default element size to be used when calculating element densities in the automeshing module. Syntax Argument *elementsizeset(elementsize) elementsize The default element edge size (must be greater than zero).

Example

To set the default element size to 7.5 model units: *elementsizeset(7.50)

*elementtype()
Sets the global element type variable. Syntax Arguments *elementtype(config, type) config The configuration whose global type is set with this command. The type whose global type is set with this command.

type

Example

To set the global element type of configuration 103 to 3: *elementtype(103,3)

Command File

78

Altair Engineering, Inc.

*elemoffset()
Offsets plate elements to create solids. Syntax *elemoffset(mark, density, biasstyle, biasing, thickness, offset, elementbasedT, shellsonly) mark The ID of the mark which contains the plate elements to be offset. The number of solid elements to be created through the thickness. The type of biasing to use. The biasing intensity value. The total thickness of the new solids. The starting offset. Set to 0 if the elements should be offset the value of thickness. Set to 1 if the elements should be offset by the thickness of the selected elements. Set to 0 to create hexas and pentas from quads and trias, and to create quads from plot elements. Set to 1 to create offset quads, trias, and plot elements.

Arguments

density

biasstyle biasing thickness offset elementbasedT

shellsonly

*entitysetcreate()
Creates an entity set. Syntax Arguments *entitysetcreate(name, entities, mark) name entities The name of the entity set. The type of entity set being created (nodes or elements). The mark which contains the entities to be placed into the set.

mark

Altair Engineering, Inc.

79

Command File

*entitysetupdate()
Updates an entity set. Syntax Arguments *entitysetupdate(name, entities, mark) name entities mark The name of the entity set. The type of the entity set (nodes or elements). The mark which contains the entities to be placed into the set.

Comments

This command replaces the entities in the set with the entities on the mark.

*equationcreate()
Creates an equation between a dependent node and mulitple independent nodes. Syntax *equationcreate(mark, independentdofs, dofsize, independentweights, weightsize, dependent, dof, weight, constant). mark The ID of the mark containing the independent nodes. The ID of the array containing the degrees of freedom for which each respective independent node of the equation is active (any one of the digits 1-6). The size of the independentdofs array. The ID of the array containing the weight for each respective independent node. The size of the independentweights array. The dependent node of the equation. The degree of freedom code for which the dependent node of the equation is active (any one of the digits 1-6).

Arguments

independentdofs

dofsize

independentweights

weightsize

dependent dof

Command File

80

Altair Engineering, Inc.

weight

The weight assiged to the dependent node. A constant value assigned to the dependent and independent nodes.

constant

Example

To create an equation with dependent node 100 and independent nodes 101, 102, and 103 with all of the nodes having one of the six degrees of freedom, a weight of 1.23, and a constant of 5.0: *createmark(nodes,1) 101 102 103 *createarray(3) 1 3 4 *createdoublearray(3) 1.230000 1.230000 1.230000 *equationcreate(1,1,3,1,3,100,5,1.23,5.00)

Comments

A *createmark() command is required to define the mark. A *createarray() and *createdoublearray() are required to define the degree of freedom codes and weights for the independent nodes.

*equationupdate()
Updates the connectivity and properties of an equation. Syntax *equationupdate(equation, mark, independentdofs, dofsize, independentweights, weightsize, dependent, dof, weight, constant). equation mark The ID of the equation to update. The ID of the mark containing the (possibly new) independent nodes. The ID of the array containing the degree of freedom code for which each respective independent node of the equation is active (any one of the digits 1-6). The size of the independentdofs array. The ID of the array containing the weight for each respective independent node. The size of the independentweights array. 81 Command File

Arguments

independentdofs

dofsize

independentweights

weightsize

Altair Engineering, Inc.

dependent

The (possibly new) dependent node of the equation. The degree of freedom code for which the dependent node of the equation is active (any one of the digits 1-6). The weight for the dependent node. A constant for the dependent and independent nodes.

dof

weight constant

Example

To update equation 18 with dependent node 104 and independent nodes 100, 101, 102, and 103 with all of the nodes having a degree of freedom code of 2 and a weight of 2.31 and a constant of 5.0: *createmark(nodes,2) 100 101 102 103 *createarray(4) 2 2 2 2 *createdoublearray(4) 2.310000 2.310000 2.310000 2.310000 *equationupdate(18,2,1,4,1,4,104,2,2.31,5.0)

Comments

A *createmark() command is required to define the mark. A *createarray()and *createdoublearray() are required to define the degree of freedom codes and weights for the independent nodes.

*equationupdateallconstant()
Updates the constant values for the independent nodes and the dependent node. Syntax Arguments *equationupdateallconstant(equation, constant) equation constant The ID of the equation to update. The constant value assigned to all the independent nodes and the dependent node.

Example

To update equation 18 with the independent nodes and the dependent node having a constant value of 20: *equationupdateallconstant (18, 20).

Command File

82

Altair Engineering, Inc.

*equationupdatealldofs()
Updates all of the independent nodes degree of freedom code to one value and the dependent nodes degrees of freedom code to another value for an equation. Syntax Arguments *equationupdatealldofs(equation, idofs, ddof) equation idofs The ID of the equation to update. The degree of freedom code for which all independent nodes of the equation is active (any one of the digits 1-6). The degree of freedom code for which the dependent node of the equation is active (any one of the digits 1-6).

ddof

Example

To update equation 18 with all of the independent nodes having a degree of freedom code of 6 and the dependent node having a degree of freedom code of 2: *equationupdatealldofs(18,6,2)

*equationupdateallwts()
Updates the weight of all independent nodes to one value and the weight of the dependent node to another value for an equation. Syntax Arguments *equationupdateallwts(equation, iweights, dweight) equation iweights The ID of the equation to update. The weight assigned for all independent nodes of the equation. The weight assigned for the dependent node of the equation.

dweight

Example

To update equation 18 with all of the independent nodes having a weight of 1.432 and the dependent node having a weight of 0.000: *equationupdateallwts(18,1.432,0.0)

Altair Engineering, Inc.

83

Command File

*equationupdatedofs()
Updates the degree of freedom codes for the specified independent nodes and the dependent node for an equation. Syntax *equationupdatedofs(equation, changed_dofs, nrows, ncols, ddof) equation changed_dofs The ID of the equation to update. The ID of a 2 dimensional array. Each row contains the ID of an independent node of the equation and the degree of freedom code for which that node is active (any one of the digits 1-6). The number of rows in the changed_dofs array. The number of columns in the changed_dofs array (must always be 2). The degree of freedom code for which the dependent node of the equation is active (any one of the digits 1-6).

Arguments

nrows

ncols

ddof

Example

To update equation 18 with the independent nodes 100, and 101 having a degree of freedom code of 2 and independent node 102 having a degree of freedom code of 4 and the dependent node having a degree of freedom code of 1: *createintarray2d(3,2) 100 2 101 2 102 4 *equationupdatedofs(18,1,3,2,1)

Comments

A *createintarray2d() command is required to define the pairing of independent node and new degree of freedom code for that node.

Command File

84

Altair Engineering, Inc.

*equationupdatewts()
Updates the weights for the specified independent nodes and the dependent node for an equation. Syntax *equationupdatewts(equation, changed_nodes, nodesize, changed_weights, weightsize, dweight) equation changed_nodes The ID of the equation to update. The ID of an array containing the independent nodes of an equation whose weights are to be updated. The size of the changed_nodes array. The ID of an array containing the weights for the respective independent nodes specified in the changed_nodes array. The size of the changed_weights array. The weight assigned for the dependent node of the equation.

Arguments

nodesize

changed_weights

weightsize

dweight

Example

To update equation 18 with the independent nodes 100, and 101 having a weight of 1.0 and independent node 102 having a weight of 1.5 and the dependent node having a weight of 1.0: *createarray(3) 100 101 102 *createdoublearray(3) 1.0 1.0 1.5 *equationupdatewts(18,1,3,1,3,1.0)

Comments

A *createarray() and *createdoublearray() command are required to define the pairing of independent node and new weight for that node.

Altair Engineering, Inc.

85

Command File

*equivalence()
Equivalences the nodes in a selected group of elements. Syntax *equivalence(entity type, mark, tolerance, equivalence, location, retain) entity type The type of entities on the mark. Valid types for this operation are components or elements. The ID of the mark. The tolerance to be used before a node is considered for equivalencing. Determines whether the command will flag the duplicate nodes or equivalence them (1 for equivalence, 0 for find duplicates). Decides where to locate the retained node. If the duplicate nodes are coincident, all of these options achieve the same result. Use: 0 to locate it at the node with the lowest ID. to locate it at the node with the highest ID. to locate it midway between the duplicate nodes.

Arguments

mark tolerance

equivalence

location

retain

Decides which node to keep. Use: 0 to keep the node with the lowest ID. to keep the node with the highest ID.

Example

To equivalence the nodes contained in component cover with a tolerance of 0.1: *createmark(components,1) cover *equivalence(components,1,0.1,1,0,0)

Command File

86

Altair Engineering, Inc.

*exponentialdisplay()
Changes the way floating-point numbers are displayed in the menu. Syntax Argument *exponentialdisplay(on) on 1, if floating-point numbers should be displayed in exponential format; otherwise, 0.

*facesdelete()
Deletes the component ^faces. Syntax *facesdelete()

*facedeleteduplicates()
Deletes duplicate faces. Syntax Arguments *facesdeleteduplicates(mark, tol) mark The ID of the mark which contains the faces to compare for and delete duplicates. The tolerance used to find duplicate faces.

tol Example

To find and delete duplicates within a tolerance of 0.1, among the faces 2, 4, 7, 14, and 23: *createmark(faces,1) 2 4 7 14 23 *facedeleteduplicates(1,0.1)

Comments

The *createmark() command is required.

Altair Engineering, Inc.

87

Command File

*facepreviewduplicates()
Finds duplicate faces. Syntax Arguments *facepreviewduplicates(mark, tol) mark The ID of the mark which contains the faces to compare for and delete duplicates. The tolerance used to find duplicate faces.

tol Example

To find duplicates within a tolerance of .1, among the faces 2, 4, 7, 14, and 23: *createmark(faces,1) 2, 4, 7, 14, 23 *facepreviewduplicates(1, 0.1)

Comments

This command removes any non-duplicate faces from the mark. The *createmark() command is required.

*facesmarktosurface()
Assigns a group of faces to a different surface. Syntax Arguments *facesmarktosurface(mark, surface) mark The ID of the mark containing the faces to assign to a different surface. The surface to which the selected faces are to be assigned. 0 Example A new surface is created.

surface

To create a new surface which contains the faces 13, 18, 20, and 21: *createmark(faces,1) 13 18 20 21 *facesmarktosurface(1,0)

Comments

The faces are removed from the surfaces that previously contained them. If this empties a surface of faces, the surface is automatically deleted. On the geom cleanup panel, this command corresponds to the moving faces tool.

Command File

88

Altair Engineering, Inc.

*fatiguewrite()
Creates a fatigue analysis input file in the format specified. Syntax *fatiguewrite(entities, markmask, filename, datagroup, filetype, analysistype, simulationtype, sim1, sim2, sim3) entities The type of entities on the mark (elements or nodes). The ID of the mark containing the entities. The specified file name into which the fatigue analysis results are written. The type of data group chosen (depending upon the solver). The file type (binary or ASCII). The analysis type (linear or transient). The three simulation types: 0, 1, and 2. If simulation = 0, writes all simulations for the specified entities. If simulation = 1, writes only the simulation values for a specific simulation. If simulation = 2, writes only the simulations in the specified range, given start and end simulation values.

Arguments

markmask filename

datagroup

filetype analysistype simulationtype sim1

sim2

sim3

Example

*fatiguewrite( entities markmask filename datagroup filetype analysistype simulationtype sim1 sim2 sim3 element (entity selected) 200 (element number(s)) c:\temp\fatg, (file name) Stress TOP SURFACE ascii linear 0 all NULL NULL

Altair Engineering, Inc.

89

Command File

Comments

Load the HyperMesh model or solver input data and results files prior to using this command.

*features()
Generates plot elements between two-dimensional elements whose normals exceed the userspecified angle. Syntax Arguments *features(entity type, mark, angle, ignorenormals) entity type The entity type on the mark. Valid entries are components or elements. The ID of the mark which contains the above entities. The angle specifying the maximum angle allowed between any two plate elements, before a plot element is generated between the shared sides of the two elements. 1, if normals which are more than 90 degrees should have features generated on them; otherwise, 0.

mark

angle

ignorenormals

Example

To create features on the component hood based on 30.0 degrees: *createmark(components,1) hood *features(component,1,30.0)

Comments

*features() can be used to reduce the time it takes to generate an animation sequence, by reducing the number of active elements. All features generated are placed into a component named ^feature which HyperMesh will create if necessary.

Command File

90

Altair Engineering, Inc.

*feinput()
Inputs an ASCII analysis input deck. Syntax *feinput(programname, filename, overwrite, min_edge_length, blanked_component, offsetflag) programname filename The name of the translator program. The name of the file containing an input deck. 1, if HyperMesh should overwrite any existing IDs; 0, if HyperMesh should offset. Not used Create an empty component for data. Apply a user-defined offset.

Arguments

overwrite

min_edge_length blanked_component offsetflag Example

To read the ABAQUS input file called model: *feinput(feinput/abaqus,model,0, 10.0, 0)

*feinputoffsetid()
Sets the value to offset the IDs of the entity type during feinput. Syntax Arguments *feinputoffsetid(entity_type, offsetvalue) entity_type offsetvalue The type of the entity to be offset The number added to each entity of the type passed to HyperMesh during feinput.

Altair Engineering, Inc.

91

Command File

*feoutput()
Creates an ASCII analysis deck using an output template. Syntax *feoutput(template file, output file, lines, autoprops, all) template file output file lines The name of the template file to be used. The name of the output file. Determines if lines will be written to the analysis deck. Determines if the properties and materials will be written. Automatically generated if they do not exist. Determines which entities are used to create the output deck. Use: 1 0 to specify that all entities are used. to specify that only the visable entities are used.

Arguments

autoprops

all

Example

To create a NASTRAN analysis deck using the template file mynast and create the outfile run1: *feoutput(mynast,run1,1,1,1)

*fillplot()
Generates a fill plot of the displayed structure. Syntax *fillplot(title, mesh color, fill color, full size, blocks) title mesh color The title to be displayed on the plot. The color of the mesh (0 through 15, or -1 to color the mesh the color of the element). The color of the center of the elements (0 through 15, or -1 to color the center of the elements the color of the element).

Arguments

fill color

Command File

92

Altair Engineering, Inc.

full size

Determines whether the plot will fill the entire screen. Determines if FD blocks should also appear on the plot.

blocks

Example

To generate a normal size fill plot of the structure with the title This is the title, a mesh color of black, and a fill color equal to that of each element: *fillplot("This is the title",0,-1,0,0)

Comments

If full size is set to 1, then the plot will be displayed on the screen until a mouse button is pressed.

*findedges()
Finds free or T-connected edges in a group of elements. Syntax Arguments *findedges(entity type, mark, edgetype) entity type The type of entity contained on the mark. The valid types for this operation are components and elements. The ID of the mark. The type of edge you want to find. Use: 0 1 Example to find free edges. to find T-connected edges.

mark edgetype

To check the free edges on all of the elements contained in the component fender: *createmark(components,1) fender *findedges(components,1,0)

Altair Engineering, Inc.

93

Command File

*findfaces()
Finds the free faces in a group of elements. Syntax Arguments *findfaces(entity type, mark) entity type The type of entity contained on the mark. The valid types for this operation are components and elements. The ID of the mark.

mark Example

To check the free faces on all of the elements contained in the component fender: *createmark(components,1) fender *findfaces(components,1)

*findmark()
Finds entities. Syntax *findmark(entity type, mark, function, reserved, display, numbers, outputmark) entity type The type of the entities contained on the mark. The ID of the mark containing the entities. Set to 0 to find the entities, 1 to find the attached entities. Reserved for future use. The type of entity to be displayed. This is ignored when function is set to 0. Set to 1 if the number of the entities should be turned on, otherwise 0. If outputmark is zero, temporary nodes are created at found nodes. Otherwise, found nodes are placed on the mark (highlighted).

Arguments

mark function

reserved display

numbers

outputmark

Example

To find the elements attached to element 12:

Command File

94

Altair Engineering, Inc.

*createmark(element,1) 12 *findmark(element,1,1,0,element,0,0)

*findnodesbetweencomponents()
Displays nodes common to a set of components. This command is useful for finding the welds or other connections between two components. Syntax Arguments *findnodesbetweencomponents(mark, numbers, outputmark) mark The mark number which contains components. A flag which determines if the numbers of the common nodes will be turned on after they are found. The mark number which the common nodes will be put for use later.

numbers

outputmark

*function()
Defines the beginning of a function. Syntax Argument Example *function(function name) function name The name of the function.

All functions must be located at the end of the command file after the main function's *quit() statement as shown below: *call(function1) *call(function2) *quit()

*function(function1) <user commands> *return()

Altair Engineering, Inc.

95

Command File

*function(function2) <user commands> *return() Comments This command must be followed by a minimum of the *return() command.

*gapelement()
Creates a gap element. Syntax Arguments *gapelement(node1, node2, property name, vectorid) node1 The ID of the first node of the gap element. The ID of the second node of the gap element. The name of the property which should be assigned to the gap element. The ID of the orientation vector associated with the gap element.

node2

property name

vectorid

Example

To create a gap element between node 5 and node 245 with property gapprop, without an orientation vector: *gapelement(5,245,gapprop,0)

*gapelementupdate()
Updates the property pointer of gap elements. Syntax Arguments *gapelementupdate(mark, property name, vectorid) mark property name The ID of the mark. The name of the property to which the gap elements should point. The ID of the orientation vector associated with the gap element.

vectorid

Command File

96

Altair Engineering, Inc.

*geometrytoleranceset()
Sets the default tolerance to use during geometric operations. Syntax Arugment Comments *geometrytoleranceset(tolerance) tolerance The new tolerance.

Changing the geometric tolerance for a model can sometimes compromise the integrity of the CAD data stored in your model. Typically, this value should be between 1e-2 and 1e-6 of the size of the typical element you are using. By default, the topological cleanup tolerance is set to approximately 10 times the geometry tolerance.

*graphicfont()
Sets the size of the graphics font. Syntax Argument *graphicfont(size) size The size of the graphics font (1 - smallest, 4 largest).

*groupchangetype()
Changes the config and type of an existing group. Syntax Arguments *groupchangetype(name, config, type) name config type The name of the group to change. The new config value for the group. The new type value for the group.

Altair Engineering, Inc.

97

Command File

*groupcreatesameas()
Creates a group using an existing groups dictionary/attribute data and type information. Syntax Arguments *groupcreatesameas(newname, existingname, color) newname existingname The name of the group to be created. The name of the group to copy dictionary attributeinformation from The color of the group.

color Example

To create a new group back using the information in the group front, and color 12: *groupcreatesameas("back","front",12)

Comments

Slave and Master elements and/or other definition methods/information are not copied to the new group when you use this command. Only the attributes/dictionary information and the type information is copied.

*groupdeleteunused()
Deletes the unused groups. Syntax Comments *groupdeleteunused() Delete the highlighted elements by *grouppreviewunused().

*grouppreviewunused()
Identifies the unused elements within a group. Syntax Argument Example *grouppreviewunused(mark) mark The ID of the mark containing the groups.

*interfacecreate("one",1,2,1) *createmark(groups,2) "one" *createmark(elements,2) *interfaceadd("one",0,elements,2,0)

Command File

98

Altair Engineering, Inc.

*createmark(elements,1) 124 158 246 366 *interfaceadd("one",1,elements,1,0) *createmark(elements,2) 130 136 364 *interfaceadd("one",0,elements,2,0) *createmark(elements,1) 124 130 136 158 246 364 366 *deletemark(elements,1) *grouppreviewunused(1) Comments *interfacecreate() creates group one. Add master elements 124, 158, 246 and 366 and slave elements 130 136 and 364. *grouppreviewunused() highlights the seven elements.

*hiddenlinemethod()
Selects the algorithm used to perform hidden line removal. Syntax Argument *hiddenlinemethod(method) method Key indicating the method of hidden line algorithm to use (0 being centroidal, 1 being zbuffer).

*hmmeshdrag()
Within the automeshing module, generates quad or tria elements using a surfaceless algorithm. Can only be used with *surfacemode(3) and one of the *drag...toformsurface() commands. Syntax Argument *hmmeshdrag(quads) quads If nonzero, specifies that the created elements should be quads.

Example

To drag six nodes -100 units in the direction of the y-axis and create 50 elements without creating a surface: *surfacemode(3) *createlist(nodes,1) 5 10 6 11 12 7 *createvector(1,0.0000,1.0000,0.0000)

Altair Engineering, Inc.

99

Command File

*dragnodestoformsurface(1,1,-100.0000) *setedgemeshparams(0,5,0) *setedgemeshparams(1,10,0) *setedgemeshparams(2,5,0) *setedgemeshparams(3,10,0) *hmmeshdrag(1) *storeAMelemstodatabase(0) *ameshclearsurface() Comments *surfacemode(3) tells the automesher not to expect an actual surface. *createlist() and *createvector() are required for *dragnodestoformsurface() , which analyzes the data and prepares everything for the automeshing module. *setedgemeshparams() , *storeAMelemstodatabase() , and *ameshclearsurface() are required by the automeshing module. The densities specified by the *setedgemeshparams() commands must be equal for opposite edges.

*hmmeshlinedrag()
Within the automeshing module, generates quad or tria elements using a surfaceless algorithm. Can only be used with *surfacemode(3) and one of the *linedrag...toformsurface() commands. Syntax Argument *hmmeshlinedrag(quads) quads If nonzero, specifies that the created elements should be quads.

Example

To drag the given nodes along lines 2 & 1, trimmed by nodes 29 & 30, and using the given plane, create 45 elements: *surfacemode(3) *createlist(nodes,1) 5 9 1 15 18 39 *createlist(lines,2) 2 1 *createlist(nodes,2) 29 30 *createplane(1,0.0000,0.0000,1.0000,0.0000,0.0000,100.0000 )

Command File

100

Altair Engineering, Inc.

*linedragnodestoformsurface(1,2,2,1) *setedgemeshparams(0,5,0) *setedgemeshparams(1,9,0) *setedgemeshparams(2,5,0) *setedgemeshparams(3,9,0) *hmmeshlinedrag(1) *storeAMelemstodatabase(0) *ameshclearsurface() Comments *surfacemode(3) tells the automesher not to expect an actual surface. The *createlist() and *createplane() directives are required for *linedragnodestoformsurface(), which analyzes the data and prepares everything for the automeshing module. *setedgemeshparams(), *storeAMelemstodatabase(), and *ameshclearsurface() are required by the automeshing module. The densities specified by the *setedgemeshparams() commands must be equal for opposite edges.

*hmmeshskin()
Within the automeshing module, generates quad or tria elements using a surfaceless algorithm that approximates a skin surface. Can only be used together with *surfacemode(3) and *skinsurface(). Syntax Argument *hmmeshskin(quads) quads If nonzero, specifies that the created elements should be quads.

Example

This example identifies a region in the shape of a skin surface across lines 1, 2, 3, and 4 and then creates 50 quad elements: *surfacemode(3) *createlist(lines,1) 1 2 3 4 *skinsurface(1,1) *setedgemeshparams(0,10,0) *setedgemeshparams(1,5,0) *setedgemeshparams(2,10,0)

Altair Engineering, Inc.

101

Command File

*setedgemeshparams(3,5,0) *hmmeshskin(1) *storeAMelemstodatabase(0) *ameshclearsurface() Comments The densities specified by the *setedgemeshparams() commands must be equal for opposite edges. *surfacemode(3) tells the automesher not to expect an actual surface. The *createlist() directive is required by *skinsurface(), which analyzes the data and prepares everything for the automeshing module. The *setedgemeshparams(), *storeAMelemstodatabase() , and *ameshclearsurface() directives are required by the automeshing module.

*hmmeshspin()
Within the automeshing module, generates quad or tria elements using a surfaceless algorithm. Can only be used with *surfacemode(3) and one of the *spin...toformsurface() commands. Syntax Argument *hmmeshspin(quads) quads If nonzero, specifies that the created elements should be quads.

Example

This example spins line 4 forty-five degrees about the given axis to identify a region approximating a surface of revolution, and without actually making a surface, creates 150 elements (15 on the line and 10 on the spin). *surfacemode(3) *createlist(lines,1) 4 *createlist(nodes,1) *createplane(1,0.6757,0.0,0.0,860.0,0.0, 332.0) *spinlinetoformsurface(1,1,1,45.0) *setedgemeshparams(0,15,0) *setedgemeshparams(1,10,0) *setedgemeshparams(2,15,0) *setedgemeshparams(3,10,0) *hmmeshspin(1)

Command File

102

Altair Engineering, Inc.

*storeAMelemstodatabase(0) *ameshclearsurface() Comments *surfacemode(3) tells the automesher not to expect an actual surface. Both *createlist() and the *createplane() directives are required for *spinlinetoformsurface() , which analyzes the data and prepares everything for the automeshing module. *setedgemeshparams() , *storeAMelemstodatabase() , and *ameshclearsurface() are required by the automeshing module. The densities specified by the *setedgemeshparams() commands must be equal for opposite edges.

*hmmeshspline()
Within the automeshing module, generates quad or tria elements using a flexible surfaceless algorithm. Can only be used together with *surfacemode(3) and *splinesurface(). Syntax Argument *hmmeshspline(quads) quads If nonzero, specifies that the created elements should be quads.

Example

To generate elements with densities of 10, 11, 10, and 10 along the given edges: *surfacemode(3) *createmark(lines,1) 1 2 7 8 *createplane(1,1.0000,0.0000,0.0000,0.0000, 0.0000,0.0000) *splinesurface(lines,1,0,1) *setedgemeshparams(0,10,0) *setedgemeshparams(1,11,0) *setedgemeshparams(2,10,0) *setedgemeshparams(3,10,0) *hmmeshspline(1) *storeAMelemstodatabase(0) *ameshclearsurface()

Comments

*surfacemode(3) tells the automesher not to expect an actual surface.

Altair Engineering, Inc.

103

Command File

*createmark() and *createplane() are required for *splinesurface(), which analyzes the data and prepares everything for the automeshing module. *setedgemeshparams() , *storeAMelemstodatabase() , and *ameshclearsurface() are required by the automeshing module.

*hmmeshsurfacecone()
Within the automeshing module, generates quad or tria elements using a surfaceless algorithm. Can only be used with *surfacemode(3) and one of the *surfacecone...() commands. Syntax Argument *hmmeshsurfacecone(quads) quads If nonzero, specifies that the created elements should be quads.

Example

This example identifies a cylindrical region of radius 100 and height 200, and then has the automesher create 300 elements on it, with a density of 10 up the side and 30 around the circumference: *surfacemode(3) *surfaceconefull(180,86,100.0000,100.0000,1.0000,200.0000) *setedgemeshparams(0,10,0) *setedgemeshparams(1,30,0) *setedgemeshparams(2,10,0) *setedgemeshparams(3,30,0) *hmmeshsurfacecone(1) *storeAMelemstodatabase(0) *ameshclearsurface()

Comments

*surfacemode(3) tells the automesher not to expect an actual surface. *setedgemeshparams() , *storeAMelemstodatabase() , and *ameshclearsurface() are required by the automeshing module. The densities specified by the *setedgemeshparams() commands must be equal for opposite edges.

Command File

104

Altair Engineering, Inc.

*hmmeshsurfaceplane()
Within the automeshing module, generates quad or tria elements using a surfaceless algorithm. Can only be used with *surfacemode(3) and *surfaceplane(). Syntax Argument *hmmeshsurfaceplane(quads) quads If nonzero, specifies that the created elements should be quads.

Example

To create a square, planar surface normal to the x axis with the center at the origin, of size 10.0, and create 45 elements: *surfacemode(3) *createplane(1,1.0,0.0,0.0,0.0,0.0,0.0) *surfaceplane(1,10.0) *setedgemeshparams(0,5,0) *setedgemeshparams(1,9,0) *setedgemeshparams(2,5,0) *setedgemeshparams(3,9,0) *hmmeshdrag(1) *storeAMelemstodatabase(0) *ameshclearsurface()

Comments

*surfacemode(3) tells the automesher not to expect an actual surface. *createplane() is required for *surfaceplane() , which analyzes the data and prepares everything for the automeshing module. *setedgemeshparams(), *storeAMelemstodatabase() , and *ameshclearsurface() are required by the automeshing module. The densities specified by the *setedgemeshparams() commands must be equal for opposite edges.

Altair Engineering, Inc.

105

Command File

*hmmeshsurfacesphere()
Within the automeshing module, generates quad or tria elements using a surfaceless algorithm. Can only be used with *surfacemode(3) and one of the *surfacesphere...() commands. Syntax Argument *hmmeshsurfacesphere(quads) quads If nonzero, specifies that the created elements should be quads.

Example

This example identifies a spherical region passing through the given four nodes, and, without actually building a surface, creates 150 elements with a density of 15 along a longitude and 10 around the equator: *surfacemode(3) *createlist(nodes,1) 159 141 178 228 *surfacespherefromfournodes(1) *setedgemeshparams(0,15,0) *setedgemeshparams(1,10,0) *setedgemeshparams(2,15,0) *setedgemeshparams(3,10,0) *hmmeshsurfacesphere(1) *storeAMelemstodatabase(0) *ameshclearsurface()

Comments

The densities specified by the *setedgemeshparams() commands must be equal for opposite edges. *surfacemode(3) tells the automesher not to expect an actual surface. *createlist() is required by *surfacespherefromfournodes(). *setedgemeshparams(), *storeAMelemstodatabase() , and *ameshclearsurface() are required by the automeshing module.

Command File

106

Altair Engineering, Inc.

*hmmeshsurfacetorus()
Within the automeshing module, generates quad or tria elements using a surfaceless algorithm. Can only be used with *surfacemode(3) and one of the *surfacetorus...() commands. Syntax Argument *hmmeshsurfacetorus(quads) quads If nonzero, specifies that the created elements should be quads.

Example

This example identifies a region that corresponds to the upper half of a torus, and without making a surface, creates 400 elements with a density of 40 around the major circumference of the torus and 10 across the upper half. *surfacemode(3) *surfacetorus(17,19,18,20.0,115.0,0.0,360.0,0.0,180.0) *setedgemeshparams(0,10,0) *setedgemeshparams(1,40,0) *setedgemeshparams(2,10,0) *setedgemeshparams(3,40,0) *hmmeshsurfacetorus(1) *storeAMelemstodatabase(0) *ameshclearsurface()

Comments

The densities specified by the *setedgemeshparams() commands must be equal for opposite edges. *surfacemode(3) tells the automesher not to expect an actual surface. *setedgemeshparams(), *storeAMelemstodatabase() , and *ameshclearsurface() are required by the automeshing module.

Altair Engineering, Inc.

107

Command File

*iges_write()
Writes the geometry of the current model out to an IGES format file. Syntax Arguments *iges_write(filename, planemode, outerloopmode, compsmode) filename planemode The file name for the IGES file. Use: 0 1 2 outerloopmode Use: 0 1 compsmode Use: 0 1 2 Example Layers Groups Layers and Groups Outer Loop Optional Outer Loop Mandatory IGES planes JAMA planes No planes

To write an IGES file with JAMA planes, outer loop mandatory, and layers: *iges_write("frip.igs",1,1,0)

*importacis()
Reads an ACIS.SAT file. Syntax Argument Example *importacis(file) file The name of the file that contains the .SAT data.

To read the ACIS file trim.sat: *importacis("trim.sat")

Comments

The .SAT must contain an ACIS BODY or WIRE. Anything else results in an error. Input data are checked for errors and corrected if possible.

Command File

108

Altair Engineering, Inc.

*importdes()
Reads lines from a file which is in DES format. Syntax *importdes(filename, break angle, aspect ratio, linear angle) filename break angle The name of the DES file. The minimum allowed angle between any three points on a line before an additional spline is added to represent the line. The maximum allowed aspect ratio between any three points on a line before an additional spline is added to represent the line. The maximum angle allowed between any three points on a line before the middle point is removed.

Arguments

aspect ratio

linear angle

*importdxf()
Reads lines from a file which is in DXF format. Syntax Argument *importdxf(filename) filename The name of the DXF file.

*importinca()
Reads lines from a file which is in INCA format. Syntax *importinca(inca file, break angle, aspect ratio, linear angle) inca file break angle The name of the INCA file. The minimum allowed angle between any three points on a line before an additional spline is added to represent the line. 109 Command File

Arguments

Altair Engineering, Inc.

aspect ratio

The maximum allowed aspect ratio between any three points on a line before an additional spline is added to represent the line. The maximum angle allowed between any three points on a line before the middle point is removed.

linear angle

Example

To read the INCA file lines: *importinca(lines,150.0,5.0,179.0)

*importpdgs()
Reads the lines contained in a Ford Standard Tape file. Syntax Argument Example *importpdgs(name) name The name of the PDGS file to be read.

To read the PDGS file called lines: *importpdgs(lines)

*include()
Includes a file. Syntax Argument Comments *include(file) file The name of the file to include.

*include file commands can be nested and can appear anywhere in the file.

Command File

110

Altair Engineering, Inc.

*indent()
Indents text on a slide to the column indicated for the current paragraph. Syntax Argument Example *indent(column) column The column number to which text should be indented.

To indent a paragraph to column 25 of a slide: *indent(25)This is the paragraph to indent to column 25. *indent(30)This will indent the paragraph to This paragraph will begin in column 0. column 30.

Comments

This command is only available while the system is in slide mode. A new paragraph resets the indentation to column 0.

*inputsimulation()
Reads a results file. Syntax Arguments *inputsimulation(simulation, data type) simulation The name of the simulation contained in the results file which should be used for the next results-based plot. The data type contained in the above simulation which should be used for the next results-based plot.

data type

Altair Engineering, Inc.

111

Command File

*interactivemesh()
Generates meshes using saved or default parameters for all the surfaces on the given mark. Syntax *interactivemesh(surface, elementsize, trias, forcing, triatransitions, size_control, skew_control, elem_type_change) surface elementsize The surface to process. The default element edge size to use for calculating element densities along the edges where necessary. Determines if generated elements should be quads (0) or trias (1). If forcing is set to a nonzero value, any saved parameters from a previous use of the automesher for this surface are ignored. Determines if triangles should be used for element transitions in mapping algorithms. 1 - yes, 0 - no. size_control Determines if uniform size elements in mapping algorithms should be created. 1 - yes, 0 - no. skew_control Determines if optimal shape elements in mapping elements should be created. 1 - yes, 0 - no. elem_type_change Determines if the same or different element types for mapping and advancing front algorithms should be used. 0 - same, 1 - different. If 1, argument trias defines the element type for mapping algorithms. For advancing front algorithm, the type would be opposite to the value of trias. Example The following extended example demonstrates most of the commands that are used by the automeshing module. Here, it processes a surface with four faces and ten edges. To generate a mesh for each face, it first sets up values for element densities and biasing with the Command File 112 Altair Engineering, Inc.

Arguments

trias

forcing

triatransitions

*setedgemeshparams() commands and specifies automeshing parameters for each face with the *setfacemeshparams() commands. Each face in turn is given to the *automesh() command with the instruction that it must determine the appropriate meshing algorithm and create an all-quads mesh. The user then directs HyperMesh to smooth the meshes for ten iterations each. Then, the mesh for face number two is rejected and a new one created with slightly different element densities. The four meshes are then saved to the HyperMesh database, and the module is told to clear out its memory pertaining to the current surface so that it may now process a new one. *surfacemode(1) *createmark(surfaces,1)1 *interactivemesh(1,1,0,0) *setedgemeshparams(2,5,0,0) *setedgemeshparams(2,5,0,0) *setedgemeshparams(0,2,0,0) *setedgemeshparams(1,6,0,0) *setedgemeshparams(5,3,0,0) *setfacemeshparams(0,0.5,0.5,0.5,1,0.5) *automesh(0,1,1)

*setedgemeshparams(2,5,0,0) *setedgemeshparams(11,3,0,0) *setedgemeshparams(3,4,0,0) *setedgemeshparams(4,4,0,0) *setfacemeshparams(1,0.5,0.5,0.5,1,0.5) *automesh(1,1,1)

*setedgemeshparams(8,6,-20,) *setedgemeshparams(5,3,0,0) *setedgemeshparams(6,5,2,0) *setedgemeshparams(7,8,0,0) *setfacemeshparams(2,0.5,0.5,0.5,1,0.5) *automesh(2,1,1)

*setedgemeshparams(8,6,-2) Altair Engineering, Inc. 113 Command File

*setedgemeshparams(9,2,0) *setedgemeshparams(10,7,2) *setedgemeshparams(11,3,0) *setfacemeshparams(3,0.5,0.5,0.5,1,0.5) *automesh(3,1,1)

*smoothelements(0,1,10) *smoothelements(1,1,10) *smoothelements(2,1,10) *smoothelements(3,1,10)

*rejectmesh(2) *setedgemeshparams(8,6,-2) *setedgemeshparams(5,3,0) *setedgemeshparams(6,5,0) *setedgemeshparams(7,8,1) *setfacemeshparams(2,0.5,0.5,0.5,1,0.5) *automesh(2,1,1) *storeAMelemstodatabase(0) *storeAMelemstodatabase(1) *storeAMelemstodatabase(2) *storeAMelemstodatabase(3) *ameshclearsurface() Comments The *interactivemesh() command must be paired with a corresponding *ameshclearsurface() command before the next use of a bodymesh()or *defaultmesh() command. Until the appropriate *storeAMelemstodatabase() command, generated elements are not available to any HyperMesh commands outside of the automeshing module. The commands whose use is restricted to the automeshing module are those used above and the *unsmoothelements() command. The *surfacemode(1) command is required and must preceed the *interactivemesh() command.

Command File

114

Altair Engineering, Inc.

*interfaceadd()
Creates interface elements. Syntax Arguments *interfaceadd(name, master, type, mark, reverse) name The name of the group into which the interface elements should be placed. Use 1 for master; 0 for slave. The entity type of the slave entities (none, elements, nodes). The ID of the mark containing the nodes or elements which should have slave or master elements placed on them. A logical which determines if the slave elements should be reversed when created.

master type

mark

reverse

*interfaceall()
Defines the group to contain all elems/nodes. Syntax Arguments *interfaceall(name, master) name The name of the group to which to add all elems/nodes. Use 1 for master, 0 for slave.

master

Altair Engineering, Inc.

115

Command File

*interfacebox()
Creates a box for the interface. Syntax *interfacebox(name, master, xmin, ymin, zmin, xmax, ymax, zmax) name The name of the group to which to add the box. Use 1 for master, 0 for slave. The minimum x, y, z values for the box. The maximum x, y, z values for the box.

Arguments

master xmin, ymin, zmin xmax, ymax, zmax

*interfacecomponent()
Adds a list of components to the current interface. Syntax Arguments *interfacecomponent(name, master, mark) name The name of the group to which to add the components. Use 1 for master, 0 for slave. The ID of the mark containing the components to add to the group.

master mark

*interfacecreate()
Creates a group with configuration interface. Syntax Arguments *interfacecreate(name, config, type, color) name config type color The name of the interface group. The config of the interface group. The type of the interface group. The color of the new interface.

Command File

116

Altair Engineering, Inc.

*interfacedefinition()
Changes the definition of the interface. Syntax Arguments *interfacedefinition(name, master, definitionname) name The name of the group whose definition you want to change. Use 1 for master, 0 for slave. The new interface definition name; all, box, components, entities, or sets.

master definitionname

*interfacesets()
Adds a list of sets to the current interface. Syntax Arguments *interfacesets(name, master, mark) name The name of the group to which the sets are to be added. Use 1 for master, 0 for slave. The ID of the mark containing the sets to add to the group.

master mark

*intersectmark()
Intersects an element mark with a plane. Syntax Arguments *intersectmark(entities, markmask, plane) entities markmask The type of entity on the mark. The mark containing the entities to be intersected. The ID of the plane to use for the intersection calculations. 117 Command File

plane

Altair Engineering, Inc.

*jointelement_fournoded()
Creates a four-noded joint element. Syntax *jointelement_fournoded(type, n1, n2, n3, n4, orientation, system1, system2, property) type n1,n2,n3,n4 orientation The type of the element (2,3,4,5 ONLY) The four nodes of the element. Orientation option for the element. Use: 0 1 system1,2 property Example None Systems

Arguments

The orientation systems IDs for the element The property to which the element points.

To create a four-noded joint element: *jointelement_fournoded(5,467,466,459,291,1,1595,0, "stiffness")

*jointelement_sixnoded()
Creates a six-noded joint element. Syntax *jointelement_sixnoded(type, n1, n2, n3, n4, n5, n6, orientation, system1, system2, property) type n1, n2, n3, n4, n5, n6 orientation The type of the element (6 or 7 ONLY) The six nodes of the element. Orientation option for the element. Use: 0 1 system1 None Systems

Arguments

The orientation systems IDs for the element.

Command File

118

Altair Engineering, Inc.

property

The property to which the element points.

Example

To create a six-noded joint element: *jointelement_sixnoded(7,464,457,456,455,463,462,1,1596,15 92,"")

*jointelement_twonoded()
Creates a spherical or two-noded joint element. Syntax *jointelement_twonoded(n1, n2, orientation, o_node1, o_node2, system1, system2, property) n1,n2 orientation The two nodes of the element. Orientation option for the element. Use: 0 1 2 o_node1,2 system1,2 property Example None Systems Nodes

Arguments

The orientation node IDs for the element. The orientation systems IDs for the element. The property to which the element points.

To create a two-noded joint element: *jointelement_twonoded(320,303,2,322,324,0,0,"shells")

Altair Engineering, Inc.

119

Command File

*jointelement_update()
Updates the nodes, property, type, and orientation of joint elements Syntax *jointelement_update(mark, n1, n2, n3, n4, n5, n6, system1, system2, na, nb, property, orientation, type, nodeflag, propflag, orientflag, typeflag ) mark The ID of the mark that contains the elements to be updated. The six nodes of the element. Use 0 (zero) for unused nodes. The orientation systems IDs for the element The orientation nodes for the element The property to which the element points. Orientation option for the element. Use: 0 1 2 None Systems Nodes (nodes may only be used for spherical type joints and should be passed as n3 and n4)

Arguments

n1,n2,n3,n4,n5,n6

system1,2 na, nb property orientation

type nodeflag propflag orientflag

The type of the element. Set to 1 to update the nodes; otherwise 0. Set to 1 to update the property; otherwise 0. Set to 1 to update the orientation; otherwise 0. Set to 1 to update the type; otherwise 0.

typeflag Example To update a joint element:

*createmark(elements,1) 754 757 *jointelement_update(1,185,0,210,186,0,0,0,0,"",2,1,0,0,1, 0)

Command File

120

Altair Engineering, Inc.

*labelload()
Turns the label for loads on or off. Syntax Arguments *labelload(type, on) type Defines the type of load that has its label turned on or off (1 for forces, 2 for moments, 3 for constraints, and 4 for pressures). 1 for on, 0 for off.

on Comments

Labels for forces, moments, and pressures are either on or off as a group. Labels for constraints may be controlled independently.

*lastsimulation()
Sets the last simulation to be used in a transient animation sequence. Syntax Arguments *lastsimulation(simulation, data type) simulation data type The name of the simulation. The name of the data type.

*legendcoloredit()
Edits a color in the legend. Syntax Arguments *legendcoloredit(color, red, green, blue) color red green blue Example The color in the legend to be edited. The amount of red in the color (0 to 255). The amount of green in the color (0 to 255). The amount of blue in the color (0 to 255).

To change the top color on the legend in an eight-color legend to blue: *legendcoloredit(7,0,0,255)

Altair Engineering, Inc.

121

Command File

*legendcolorsmooth()
Performs linear interpolation between two colors. Syntax Arguments *legendcolorsmooth(color1, color2) color1 color2 Example The first color. The second color.

To smooth the colors between color 1 and color 7: *legendcolorsmooth(1,7)

*legendlocate()
Locates the legend to the default position (upper left). Syntax *legendlocate()

*legendmove()
Moves the legend. Syntax Arguments *legendmove(x, y) x y The new x location for the legend. The new y location for the legend.

*legendon()
Controls the display of the legend. Syntax Argument Example Comments *legendon(on) on *legendon(0) HyperMesh displays the legend by default. If you display the legend, the simulation title is also displayed. 1 for on, 0 for off..

Command File

122

Altair Engineering, Inc.

*legendsavecolors()
Saves the colors of a legend to a file. Syntax Argument *legendsavecolors(filename) filename Save the color information to this file name.

*legendsetcolor()
Sets the color used to display the legend. Syntax Argument *legendsetcolor(color) color The color used to display the legend.

*legendsetcolors()
Sets the number of colors which will be used in the legend. Syntax Argument *legendsetcolors(number) number The number of colors.

*legendsetfont()
Sets the font used to display the legend. Syntax Argument *legendsetfont(font) font The font ID to be used to display the legend (1 - 4).

Altair Engineering, Inc.

123

Command File

*lightswitch()
Turns the lights on or off. Syntax Arguments *lightswitch(on, plot) on A flag that indicates if the lights should be turned off or on. A flag that indicates if the screen should be replotted after this command is executed.

plot

*linear1delements()
Creates 1-D elements between two sets of plate elements. Syntax *linear1delements(mark1, mark2, node11, node12, node13, node21, node22, node23, density) mark1 mark2 node11 The ID of the first group of plate elements. The ID of the second group of plate elements. The ID of the first alignment node for the first group of elements. The ID of the second alignment node for the first group of elements. The ID of the third alignment node for the first group of elements. The ID of the first alignment node for the second group of elements. The ID of the second alignment node for the second group of elements. The ID of the third alignment node for the second group of elements. The number of elements being created between the two sets of plate elements.

Arguments

node12

node13

node21

node22

node23

density

Command File

124

Altair Engineering, Inc.

*linearmesh()
Within the automeshing module, generates quad or tria elements using a flexible surfaceless algorithm that approximates a ruled surface. Can only be used together with *surfacemode(3) and one of the *linearsurface...() commands. Syntax Argument *linearmesh(quads) quads If nonzero, specifies that the created elements should be quads.

Example

This example identifies a region in the shape of a ruled surface and brings it into the automesher, creates 32 quad elements, and stores the elements to the HyperMesh database: *surfacemode(3) *createlist(nodes,1) 1581 77 83 88 95 *createlist(nodes,2) 225 228 232 235 262 *linearsurfacebetweennodes(1,2,1) *setedgemeshparams(0,8,0) *setedgemeshparams(1,4,0) *setedgemeshparams(2,8,0) *setedgemeshparams(3,4,0) *linearmesh(1) *storeAMelemstodatabase(0) *ameshclearsurface()

Comments

The densities specified by the *setedgemeshparams() commands must be equal for opposite edges. *surfacemode(3) tells the automesher not to expect an actual surface. The two *createlist() directives are required by *linearsurfacebetweennodes() , which analyzes the data and prepares everything for the automeshing module. The *setedgemeshparams(), *storeAMelemstodatabase() , and *ameshclearsurface() directives are required by the automeshing module.

Altair Engineering, Inc.

125

Command File

*linearsolids()
Creates solid elements between two groups of plate elements. Syntax *linearsolids(mark1, mark2, align1, align2, align3, align4, align5, align6, number, biasstyle, biasing) mark1 The ID of the mark containing the first group of plate elements. The ID of the mark containing the second group of plate elements. The ID of the node to be used as an alignment node for the first group of elements. The ID of the node to be used as an alignment node for the first group of elements. The ID of the node to be used as an alignment node for the first group of elements. The ID of the node to be used as an alignment node for the second group of elements. The ID of the node to be used as an alignment node for the second group of elements. The ID of the node to be used as an alignment node for the second group of elements. The number of solid elements to be created between the two groups of plate elements. The type of biasing to use. The biasing factor for the mesh.

Arguments

mark2

align1

align2

align3

align4

align5

align6

number

biasstyle biasing Example

To create 8 solids between plates 10, 11, 12, 13 and 20, 21, 22, 23, with alignment node 1 being node 5 and alignment node 2 being node 6: *createmark(element,1) 10 11 12 13 *createmark(element,2) 20 21 22 23 *linearsolids(1,2,5,0,0,6,0,0,8)

Comments

*createmark() is required and the marks used must contain plate elements.

Command File

126

Altair Engineering, Inc.

*linearsolidsbynodelist()
Creates solid elements between two groups of plane elements, with the layers identified by nodes in a node list. Syntax *linearsolidsbynodelist(mark1, mark2, align1, align2, align3, align4, align5, align6, nodelist) mark1 The ID of the mark containing the first group of plate elements The ID of the mark containing the second group of plate elements The ID of the node to be used as an alignment node for the first group of elements. The ID of the node to be used as an alignment node for the first group of elements. The ID of the node to be used as an alignment node for the first group of elements. The ID of the node to be used as an alignment node for the second group of elements. The ID of the node to be used as an alignment node for the second group of elements. The ID of the node to be used as an alignment node for the second group of elements. The node list to be used to specify the locations of the layers.

Arguments

mark2

align1

align2

align3

align4

align5

align6

nodelist

Example

To create 8 layers of solids between plates 10, 11, 12, 13 and 20, 21, 22, 23 using, as alignment nodes, nodes 5 and 13, and as layer-specifying nodes, 5, 6, 7, 8, 9, 10, 11, 12, 13: *createmark(element,1) 10 11 12 13 *createmark(element,2) 20 21 22 23 *createlist(nodes,1) 5 6 7 8 9 10 11 12 13 *linearsolidsbynodelist(1,2,5,0,0,13,0,0,1)

Comments

The nodelist nodes should begin with one belonging to an element on the first element mark and end with a corresponding one belonging to an element on the second element mark.

Altair Engineering, Inc.

127

Command File

*linearsurfacebetweenlines()
Creates a ruled surface between two trimmed line lists, and optionally, prepares it for immediate use within the automesher. It can also identify a region in the shape of a ruled surface for the automesher to use under the mesh without surface option. Syntax *linearsurfacebetweenlines(linelist1, endpoints1, linelist2, endpoints2, reverse) linelist1 The ID of the first list of lines forming one side of the surface. The list ID of the list of zero or two nodes which lie on the lines in the first line list which will be used to trim the line during surface creation. The ID of the second list of lines forming the other side of the surface. The list ID of the list of zero or two nodes which lie on the lines in the second line list which will be used to trim the line during surface creation. Indicates whether the lines should be tested for a "bow tie" condition and reversed if necessary (1 for yes, 0 for no).

Arguments

endpoints1

linelist2

endpoints2

reverse

Example

To create a surface where lines 7 and 11 form one side, and line 5 trimmed by nodes 37 and 38 forms the other, and not immediately bring the surface into the automesher: *surfacemode(4) *createlist(lines,1) 7 11 *createlist(nodes,1) *createlist(lines,2) 5 *createlist(nodes,2) 37 38 *linearsurfacebetweenlines(1,1,2,2,1)

Comments

All four *createlist() directives are required for this command. A case in which the surface is brought into the automesher is slightly more complicated. A case in which a region in the shape of a ruled surface is brought into the automesher to generate a mesh without using a surface is slightly more complicated.

Command File

128

Altair Engineering, Inc.

*linearsurfacebetweennodes()
Creates a ruled surface between two node lists, and optionally, prepares it for immediate use within the automesher. It can also identify a region in the shape of a ruled surface for the automesher to use under the mesh without surface option. Syntax Arguments *linearsurfacebetweennodes(list1, list2, reverse) list1 The ID of the first list of nodes forming one side of the surface. The ID of the second list of nodes forming one side of the surface. Indicates whether the nodes should be tested for a "bow tie" condition and reversed if necessary (1 for yes, 0 for no).

list2

reverse

Example

This example identifies a region in the shape of a ruled surface and brings it into the automesher, creates 32 quad elements, and stores the elements to the HyperMesh database: *surfacemode(3) *createlist(nodes,1) 1581 77 83 88 95 *createlist(nodes,2) 225 228 232 235 262 *linearsurfacebetweennodes(1,2,1) *setedgemeshparams(0,8,0) *setedgemeshparams(1,4,0) *setedgemeshparams(2,8,0) *setedgemeshparams(3,4,0) *linearmesh(1) *storeAMelemstodatabase(0) *ameshclearsurface()

Comments

Both *createlist() directives are required for this command. A case in which an actual surface is created and brought into the automesher is slightly more complicated. A case in which a surface is created and the automesher is not involved is slightly less complicated.

Altair Engineering, Inc.

129

Command File

*linearsurfacebetweennodesandline()
Creates a ruled surface between a node list and a trimmed line list, and optionally, prepares it for immediate use within the automesher. It can also identify a region in the shape of a ruled surface for the automesher to use under the mesh without surface option. Syntax *linearsurfacebetweennodesandline(list1, linelist1, endpoints, reverse) list1 The ID of the list of nodes forming one side of the surface. The ID of the list of lines forming one side of the surface. The list ID of the list of zero or two nodes which lie on the lines in the line list which will be used to trim the line during surface creation. Indicates whether the lines should be tested for a "bow tie" condition and reversed if necessary (1 for yes, 0 for no).

Arguments

linelist1

endpoints

reverse

Example

This example creates a ruled surface and brings it into the automesher, creates 16 quad elements, and stores the elements to the HyperMesh database: *surfacemode(1) *createlist(nodes,2) 160 161 164 168 172 *createlist(lines,1) 1 *createlist(nodes,1) 2160 2161 *linearsurfacebetweennodesandline(2,1,1,1) *setedgemeshparams(0,4,0) *setedgemeshparams(1,4,0) *setedgemeshparams(2,4,0) *setedgemeshparams(3,4,0) *setfacemeshparams(0,0.5000,0.5000,0.5000,1,0.5000) *automesh(0,1,1) *storeAMelemstodatabase(0) *ameshclearsurface()

Comments

All three *createlist() directives are required for this command. A case in which a region in the shape of a ruled surface is brought into the automesher to generate a mesh without using a surface is slightly more complicated.

Command File

130

Altair Engineering, Inc.

A case in which a surface is created and the automesher is not involved is slightly less complicated.

*linecombine()
Combines two lines into one. Syntax Arguments *linecombine(line1, line2, smooth) line1 line2 smooth The first line of the two to be combined. The second line of the two to be combined. Indicates whether the lines should be combined with a straight line segment or a smooth line segment if the endpoints of the line do not reside at the same point.

Example

To combine line 47 and 34 with a straight segment (if an extra segment is necessary): *linecombine(47,34,0)

*linecreatefromnodes()
Creates a line which passes through a list of nodes. Syntax *linecreatefromnodes(list id, type, break angle, aspect, linear angle) list id type break angle The ID of the list containing the nodes. The type of line being generated. Specifies the minimum angle allowed between three points in a line. If the angle between a point and the two adjacent points is less than the angle specified, HyperMesh considers this point to be a point of discontinuity in the line and places a joint (will start a new NURBS) at this location. Specifies the maximum ratio allowed for the distance between a point and the 131 Command File

Arguments

aspect

Altair Engineering, Inc.

previous point in the line and the distance between the same point and the next point in the line. If the ratio of the distance between the two adjacent segments exceeds the aspect ratio defined, HyperMesh places a joint between the segments. linear angle Defines the angle at which HyperMesh should consider a line straight. For example, if the line angle between three consecutive points along the line is greater than the linear angle specified, HyperMesh removes the center point from the line.

Example

To create a smooth line which passes through the nodes 1, 2, 3, and 4: *createlist(nodes,1) 1 2 3 4 *linecreatefromnodes(1,3,0.0,0.0,0.0)

*linedragelements()
Creates a mesh by dragging elements along a line. Syntax *linedragelements(mark, guide, guideendpoints, plane id, online, ondrag, biasstyle, biasing) mark guide guideendpoints The ID of the mark containing elements. The guide line. The ID of the list containing the nodes which will be used to segment the guide line. The orientation plane used to orient the line to the guide line. The number of elements to be created along line. The number of elements to be created along the drag. The type of biasing to use. The biasing intensity value.

Arguments

plane id

online

ondrag

biasstyle biasing

Command File

132

Altair Engineering, Inc.

*linedraglinetoformsurface()
Drags a trimmed line along a trimmed line to create a surface, and optionally, prepares it for immediate use within the automesher. It can also identify a region in the shape of a line-dragged surface for the automesher to use under the mesh without surface option. Syntax *linedraglinetoformsurface(sectionlinelist, sectionnodelist, draglinelist, dragnodelist, refplane) sectionlinelist The ID of the list of lines to be dragged. The list ID of the list of zero or two nodes which lie on the lines in the sectionlinelist which will be used to trim the line during surface creation. The ID of the list of lines to drag along. The list ID of the list of zero or two nodes which lie on the lines in the draglinelist which will be used to trim the line during surface creation. The orientation plane used to orient the section lines to the drag lines.

Arguments

sectionnodelist

draglinelist

dragnodelist

refplane

Example

To drag lines 3 & 4 along lines 2 & 1 using the given plane, creating a surface but no elements: *surfacemode(4) *createlist(lines,1) 3 4 *createlist(nodes,1) *createlist(lines,2) 2 1 *createlist(nodes,2) *createplane(1,0.0000,1.0000,0.0000,0.0000,0.0000,100.0000 ) *linedraglinetoformsurface(1,1,2,2,1)

Comments

The *surfacemode(4) directive tells HyperMesh not to pass the information on to the automesher for element creation. *createlist() and *createplane() are required for this command.

Altair Engineering, Inc.

133

Command File

*linedragnodestoformsurface()
Drags a list of nodes along a trimmed line to create a surface, and optionally, prepares it for immediate use within the automesher. It can also identify a region in the shape of a line-dragged surface for the automesher to use under the mesh without surface option. Syntax *linedragnodestoformsurface(sectionnodelist, draglinelist, dragnodelist, refplane) sectionnodelist The ID of the list of nodes to be dragged. The ID of the list of lines to drag along. The list ID of the list of zero or two nodes which lie on the lines in the draglinelist which will be used to trim the line during surface creation. The orientation plane used to orient the section lines to the drag lines.

Arguments

draglinelist

dragnodelist

refplane

Example

To drag nodes 5, 9, and 10 along lines 2 and 1, trimmed by nodes 29 and 30, and using the given plane, creating a surface but no elements: *surfacemode(4) *createlist(nodes,1) 5 9 10 *createlist(lines,2) 2 1 *createlist(nodes,2) 29 30 *createplane(1,0.0000,0.0000,1.0000,0.0000,0.0000,100.0000 ) *linedragnodestoformsurface(1,2,2,1)

Comments

The *surfacemode(4) directive tells HyperMesh not to pass the information on to the automesher for element creation. *createlist() and *createplane() are required for this command. If one of the surface creation modes has been set, a smooth is put through the nodes to create the surface.

Command File

134

Altair Engineering, Inc.

*linefromsurfedge()
Creates lines by copying one or more surface edges. Syntax Arguments *linefromsurfedge(entity type, mark) entity type mark Comments The type of the entity. The ID of the mark.

If the entity type is surfs, then the face edges of the surfaces on the mark are copied as free lines. If the entity type is lines, then the lines are copied as free lines.

*linehandle()
Turns the line handles on or off. Syntax Argument *linehandle(on) on Indicates whether the line handles should be on or off (1 for on, 0 for off).

Comments

Line handles display the location on the line where it may be picked.

*linemesh_preparedata()
Imports the selected entities into the line meshing package and prepares them for processing. Syntax Arguments *linemesh_preparedata(entities, mark, breakangle) entities mark Either lines or nodes . The ID of the mark which contains the entities to mesh. If the angle between the lines tangents at a joint is greater than this threshold, the line is split to force a node that is displayed at that corner. If this threshhold is 0.0, the line is not split.

breakangle

Example

See *linemesh_savedata()

Altair Engineering, Inc.

135

Command File

Comments

If the entities are nodes, you can only supply two nodes. If the entities are lines, you can use the breakangle feature to split them at their joints where the angle between the lines tangents surpasses the breakangle threshold. Each call to *linemesh_preparedata() must be paired with a call to *linemesh_savedata() to clean up memory.

*linemesh_savedata()
Closes the linemesh package and cleans up memory. If specified, the displayed elements are created in the HyperMesh database. Syntax Arguments *linemesh_savedata(makeelements, config) makeelements 0 1 config Example The elements are not created. The elements are created.

The element to create.

To process lines 15 and 18 with a 30 degree breakangle (splitting the lines into three segments) and create rigid elements: *createmark(lines,1) 15 18 *linemesh_preparedata(lines,1,30) *linemesh_saveparameters(0,3,0,0) *linemesh_saveparameters(1,2,0,0) *linemesh_saveparameters(2,7,0,0) *linemesh_savedata(1,5)

To mesh between nodes 4 and 5, creating 15 biased plot elements: *createmark(nodes,1) 4 5 *linemesh_preparedata(nodes,1,0) *linemesh_saveparameters(0,15,2.5,1) *linemesh_savedata(1,2)

To mesh between nodes 4 and 5, without creating elements: *createmark(nodes,1) 4 5 *linemesh_preparedata(nodes,1,0) *linemesh_savedata(0,2)

Command File

136

Altair Engineering, Inc.

*linemesh_saveparameters()
Assigns the meshing parameters to a specific line segment. Syntax *linemesh_saveparameters(segment, elementdensity, biasingintensity, biasstyle) segment The line segments to which the parameters apply. The number of elements to generate. The biasing factor. The biasing style.

Arguments

elementdensity biasingintensity biasstyle Example Comments See *linemesh_savedata()

You can adjust the meshing parameters in the interactive panel. The information is written to the command file after pressing return.

*linescombine()
Combines two free surface edges to create one unsuppressed common edge. Syntax Arguments *linescombine(edge1, edge2, edge_tolerance) edge1, edge2 Two free surface edges (face edges which are attached to a surface only once). The edges must be within this tolerance.

edge_tolerance Example

To combine edges 101 and 39, using a tolerance of 0.1: *linescombine(101,39,0.1)

Altair Engineering, Inc.

137

Command File

*lineplot()
Generates a line plot of the currently displayed structure. Syntax Arguments *lineplot(title, full size) title full size The title which should appear on the plot. Determines whether the plot generated is as large as the screen (1 for full size, 0 for regular size).

Example

To generate a line plot with the title This is the plot with the menu system off the screen: *lineplot("This is the plot",1)

*linesplitatjoint()
Splits a line at a joint. Syntax Arguments *linesplitatjoint(line, node) line node The line which should be split. The node which represents a position close to the joint where the line should be split.

Example

To split line 10 at node 3: *linesplitatjoint(10,3)

*linesplitatline()
Splits a group of lines at a line. Syntax Arguments *linesplitatline(mark, cut line) mark The ID of the mark which contains the lines to be cut. The line to which the selected lines should be cut.

cut line

Example Command File

To cut lines 14, 15, and 16 to line 12: 138 Altair Engineering, Inc.

*createmark(lines,1) 14 15 16 *linesplitatline(1,12) Comments *createmark() is required.

*linesplitatplane()
Splits a group of lines at a plane. Syntax Arguments *linesplitatplane(mark, plane id) mark The ID of the mark containing the lines to be split. The ID of the plane to be used in the split operation.

plane id

Example

To split lines 10, 11, 12, and 13 to the plane defined by the normal (1.0, 0.0, 0.0) and base at (25.0, 0.0, 0.0): *createplane(1,1.0,0.0,0.0,25.0,0.0,0.0) *createmark(lines,1) 10 11 12 13 *linesplitatplane(1,1)

*linesplitatpoint()
Splits a line at an arbitrary point. Syntax Arguments *linesplitatpoint(line, node) line node The line to be split. A node which represents the location on the line where it should be split.

Example

To split line 10 at node 3: *linesplitatpoint(10,3)

Altair Engineering, Inc.

139

Command File

*linessmoothtoangle()
Smooths a line based on a give angle. Syntax Arguments *linessmoothtoangle(mark, cosangle) mark The ID of the mark containing the lines to smooth. The cosine of the angle used to determine if two joints on a line should be combined (smoothed). If the angle between two joints on a line is greater than the angle the two joints are combined and smoothed.

cosangle

Example

To smooth all joints on line 1 that have an angle greater than 90 degrees: *createmark(lines,1) 1 *linessmoothtoangle(1,0)

*linessmoothtotol()
Smooths a line based on a give tolerance. Syntax Arguments *linessmoothtotol(mark, tol) mark The ID of the mark containing the lines to smooth. Tolerance used to smooth the lines.

tol Example

To smooth line 1 to within a tolerance of .1 *createmark(lines,1) 1 *linessmoothtotol(1,.1)

Command File

140

Altair Engineering, Inc.

*loadcreate()
Creates a load (force, moment, pressure or constraint) at a node or element. Syntax Arguments *loadcreate(mark, config, type, component 1-6) mark config type The ID of the mark. The load configuration. The type of load to apply to the entity, 1 for force, 2 for moment, 3 for constraints, 4 for pressure. Components of the load being applied. When applying a force, the active components are 1, 2, and 3, which represent a force x, y, and z axis respectively. When applying a moment, the active components are also 1, 2, and 3, and represent the moment about the x, y, and z axis respectively. For constraints, all of the components are active unless they are set equal to -999999.0. All of the other components of the constraints are active in the respective directions. Finally, for pressures the active components are 1, 2, and 3 which represent the x, y, and z axis respectively. To create a pressure which is normal to the element, set all components to zero.

component 1-6

Example

To apply a force of magnitude 10.0 along the x axis to node 5 and 25: *createmark(nodes,1) 5 25 *loadcreate(nodes,1,1,10.0,0.0,0.0,0.0, 0.0,0.0)

To apply a constraint of zero in the 1, 3, 5, directions to nodes 12, 13, and 14: *createmark(nodes,1) 12 13 14 *createload(1,1,3,0.0,-999999.0,0.0,-999999.0,0.0, -999999.0);

Altair Engineering, Inc.

141

Command File

*loadsettypes()
Sets the global load type variable. Syntax Argument Example *loadsettypes(loads) loads The mark which contains the loads to be updated.

To set all of the displayed forces to type 5, and all of the displayed moments to type 6: *loadtypeset(1,5) *loadtypeset(2,6) *createmark(loads,1) displayed *loadsettypes(1)

*loadsize()
Sets the size a load will be when plotted. Syntax Arguments *loadsize(type, size) type The type of the load being sized (1 for forces, 2 for moments, 3 for constraints, and 4 for pressures). The size in model units in which the loads should be plotted.

size

Comments

The size of forces, moments, and pressures is controlled together. The size of constraints may be controlled independently.

*loadstepcreate()
Creates a load step Syntax Arguments *loadstepcreate(name, mark) name mark The name of the load step. The mark containing the load collectors to be added to the loadstep.

Command File

142

Altair Engineering, Inc.

*loadstepupdate()
Updates a load step Syntax Arguments *loadstepupdate(name, mark) name mark Name of the load step to be updated. The mark containing the load collectors to be contained in the loadstep.

*loadsupdate()
Updates loads. Syntax *loadsupdate(mark, config, type, updatevector, comp1, comp2, comp3, comp4, comp5, comp6, updatemag, magnitude) mark config type updatevector comp1 comp2 comp3 comp4 comp5 comp6 updatemag magnitude The mark containing the loads to be updated. The configuration of the load being updated. The type to which the load will be set. 1, if the vector of the load is to be updated. The first component of the load. The second component of the load. The third component of the load. The fourth component of the load. The fifth component of the load. The sixth component of the load. 1, if the magnitude of the load is to be updated. The magnitude of the load.

Arguments

Altair Engineering, Inc.

143

Command File

*loadtype()
Sets the load types to the current global value. Syntax Arguments *loadtype(config, type) config The load configuration which is to have its type changed. The type which the configuration should become.

type Example To set the type of forces to 2: *loadtype(1,2) Comments

After the type has been set, all loads of the corresponding configuration are set to the value of type.

*markcombineelements()
Combines selected plate and shell elements into one quad or tria element. Syntax Arguments *markcombineelements(mark, tolerance, quad or tria) mark The ID of the mark containing the elements to be combined. The maximum tolerance allowed before a node within the group of selected elements is considered to be not on the plane formed by any three nodes attached to the group of selected elements. A flag designating the type of element you want to create. 0 1 Example tria quad

tolerance

quad or tria

To combine elements 10, 13, and 15 into a tria, using an off-plane tolerance of 0.1: *createmark(elements, 1) 10 13 15 *markcombineelements(1, 0.1, 0)

Comments

This command works with two-dimensional elements only.

Command File

144

Altair Engineering, Inc.

*marknodenudge()
Moves nodes along a surface. The nodes must first be associated to a surface. Syntax Arguments *marknodenudge(mark, distance, vector) mark distance The mark containing the nodes to be moved. The distance to move the nodes (in the direction of the vector). The direction to move the node (in 3-D space). This vector is mapped to the surface before the nodes are moved.

vector

Example

To move the node with ID 110 a distance of 10 in the x direction (along the surface it is associated to): *createmark(nodes,2) 110 *createvector(1,1.0,0.0,0.0) *marknodenudge(2,10.0,1)

Comments

*createmark() and *createvector() are required for this command.

*markprojecttosurface()
Project entities to a surface. Syntax Arguments *markprojecttosurface(entities, mark, vector, surface) entities mark vector surface Example The type of entity contained on the mark. The ID of the mark. The direction to project the entities. The ID of the surface to project to.

To project elements 109 and 131 to surface 1 along the Z-axis: *createmark(elements,1) 109 131 *createvector(1,0.0000,0.0000,1.0000) *markprojecttosurface(elements,1,1,1)

Comments

*createmark() and *createvector() are required for this command.

Altair Engineering, Inc.

145

Command File

*marksmoothelements()
Applies a smoothing algorithm to a mark of elements for a given number of iterations. Optionally, one or more nodes may be specified as being anchored in place and not movable. Syntax *marksmoothelements(tosmoothmark, toanchormark, smoothmethod, iterations) tosmoothmark The mark of elements to be smoothed. Need not be a contiguous block. The mark of nodes on those elements that are not adjustable. The smoothing method to use. Possible values are 1, 2, 3 or 4 which correspond to autodecide, size corrected, shape corrected, and angle corrected. The number of times to apply the smoothing operator.

Arguments

toanchormark

smoothmethod

iterations

Example

To smooth elements 100 through 110 twelve times with no nodes fixed: *createmark(elements,1)100 101 102 103 104 105 106 107 108 109 110 *createmark(nodes,2) *marksmoothelements(1,2,1,12)

Comments

Both of the *createmark() directives are required for this command.

*marksmoothsolids()
Applies a simple smoothing algorithm to reposition the interior floating nodes in a mesh of solid elements, attempting to moderate variations in element size and quality. Syntax Arguments *marksmoothsolids(mark, iterations) mark iterations The mark of the solid elements. The number of times to apply the algorithm.

Example

To smooth some elements for 10 iterations: *createmark(elements,1) 7 8 9 11 12 13 17 54

Command File

146

Altair Engineering, Inc.

*marksmoothsolids(1,10) Comments The *createmark() commmand is required.

*marktousermark()
Puts entities on the user mark. Syntax Arguments *marktousermark(entities,mark) entities mark Example The type of entity contained on the mark. The ID of the mark.

To put elements 10,11 and 12 on the user mark: *createmark(elements,1) 10 11 12 *marktousermark(elements,1)

*maskmark()
Masks entities from the display list. Syntax Arguments *maskmark(entities, mark) entities mark Example To mask elements 10, 11, 12: *createmark(element,1) 10 11 12 *maskmark(element,1) Comments *createmark() is required. The type of entity contained on the mark. The ID of the mark.

Altair Engineering, Inc.

147

Command File

*masknotshown()
Masks all entities which are not marked current on the screen. Syntax *masknotshown()

*masselement()
Creates a mass element. Syntax Arguments *masselement(mark, mass, property name, system id) mark The mark ID which contains nodes which should have mass elements created on them. The mass of the mass elements. The name of the property to which the elements should point. The ID of the system in which the mass elements are built.

mass property name

system id

*masselementupdate()
Updates mass elements. Syntax *masselementupdate(mark, update mass, mass, update prop, property, update system, system id) mark The mark ID containing mass elements to be updated. To update the mass of the elements set to 1, otherwise 0. The mass of the mass element. To update the property of the elements set to 1, otherwise 0. The name of the property to which 148 Altair Engineering, Inc.

Arguments

update mass

mass update prop

property

Command File

the elements should point. update system To update the system in which the elements are built set to 1, otherwise 0. The ID of the system in which the elements are built.

system id

*materialupdate()
Updates the material pointer on components and property collectors. Syntax Arguments *materialupdate(entity type, mark, material) entity type mark The type of the entities in the mark. The ID of the mark containing the entities which will have their material pointers updated. The name of the material.

material Example

To update the components part1, part2, and part3, so that they point to material mat1: *createmark(components,1) part1 part2 part3 *materialupdate(component,1,mat1)

*menufont()
Sets the size of the menu font. Syntax Argument *menufont(size) size The size of the font to be used for the menu (1 - smallest, 4 - largest).

Altair Engineering, Inc.

149

Command File

*meshdragelements()
Creates elements by dragging elements along a vector. Syntax *meshdragelements(mark id, vector id, distance, ondrag, biasstyle, biasing) mark id The ID of the mark containing the elements to be dragged. The ID of the vector along which the elements should be dragged. The distance which the elements should be dragged. The number of elements to create along the drag. The kind of biasing to use. The biasing intensity value.

Arguments

vector id

distance

ondrag

biasstyle biasing Example

To create 5 elements by dragging elements 10 and 11 along a vector defined by (1.0, 0.0, 0.0) a length of 50 units: *createvector(1,1.0,0.0,0.0) *createmark(elements,1) 10 11 *meshdragelements(1,1,50.0,5)

Comments

*createmark() and *createvector() are required. If plate elements are selected, solid elements are generated. If line elements are selected, plate elements are generated.

*meshmode()
Sets the mesh line display mode. Syntax Arguments *meshmode(displaylist, mode, plot) displaylist The display list in which the mesh mode is being set. The mesh line mode. 1, if the display should be drawn after the mesh mode is set.

mode plot

Command File

150

Altair Engineering, Inc.

*meshspinelements()
Creates a mesh by spinning elements about a plane normal. Syntax *meshspinelements(mark, plane id, angle, onspin, biasstyle, biasing) mark The ID of the mark containing the elements to spin. The ID of the plane about whose normal the selected elements are spun. The angle through which the elements should be spun. The number of elements which should be created as the selected elements are spun. The type of biasing to use. The biasing intensity value.

Arguments

plane id

angle

onspin

biasstyle biasing Example

To create 5 elements by spinning elements 10, 11, 12, and 13 about the plane normal defined by (0.0, 0.0, 1.0) and based at (20.0, 20.0, 0.0) through an angle of 90.0 degrees: *createplane(0.0,0.0,1.0,20.0,20.0,0.0) *createmark(element,1) 10 11 12 13 *meshspinelements(1,1,90.0,5)

Comments

*createplane() and *createmark() are required.

*minmaxtitlemove()
Moves a minimum or maximum title. Syntax Arguments *minmaxtitlemove(xmin, ymin, xmax, ymax, type, minmax) xmin The x value of the upper left corner of the title (0.0 - 1.0). The y value of the upper left corner of the title 151 Command File

xmin Altair Engineering, Inc.

(0.0 - 1.0). xmax The x value of the lower right corner of the title (0.0 - 1.0). The y value of the lower right corner of the title (0.0 - 1.0). 0, node title (contour plot) 1, element title (assigned plot) 0, minimum title 1, maximum title

ymax

type

minmax

*minmaxtitlesetcolor()
Sets the color of a minimum or maximum title. Syntax Arguments *minmaxtitlesetcolor(color, type, minmax) color The color to which the title should be set. 0, node title (contour plot) 1, element title (assigned plot) 0, minimum title 1, maximum title

type

minmax

*minmaxtitlesetfont()
Sets the font of a minimum or maximum title. Syntax Arguments *minmaxtitlesetfont(font, type, minmax) font type The font number for the descriptor (1-4). 0, node title (contour plot) 1, element title (assigned plot) 0, minimum title 1, maximum title

minmax

Command File

152

Altair Engineering, Inc.

*mode()
Sets the operations performed when a full-size plot is generated in a command file. Syntax Argument *mode(type) type Defines the mode or operations performed when a full-size plot is generated from a command file. 0 This is the default action; HyperMesh will wait for a key on the mouse to be struck before continuing. Generates a screen copy or a paper plot of the picture generated on the screen. Generates a file containing the contents of the screen buffer. Generates a PostScript paper copy of the currently displayed screen. Generates a PostScript file of the currently displayed screen. A value of five or greater causes HyperMesh to pause for that number of seconds before continuing.

Example

To pause for 10 seconds after a full-size plot is performed, place the following command before the full-size plot request: *mode(10)

*movemark()
Moves entities from one collector to another. Syntax Arguments *movemark(entity type, mark, collector name) entity type The type of entities contained on the mark. The ID of the mark containing the entities to be moved. The name of the collector into which the entities will be moved. 153 Command File

mark

collector name

Altair Engineering, Inc.

Example

To move systems 4, 8, and 12 into collector oldsyst: *createmark(systems,1) 4 8 12 *movemark(systems,1,oldsyst)

Comments

This command can be used with elements, lines, systems, and loads.

*nameview()
Gives a name to a view. Syntax Arguments *nameview(number, name) number name Example View number (1 - 5) Name of view (max 16 characters).

To assign the name primary to view 1: *nameview(1,"primary")

*nodeaddtempmark()
Adds nodes to the temporary node mark. Syntax Argument *nodeaddtempmark(node) node The node to be added to the temporary node mark.

*nodecleartempmark()
Clears all of the nodes from the temporary node mark. Syntax *nodecleartempmark()

Command File

154

Altair Engineering, Inc.

*nodecreateonlines()
Creates a user-defined number of nodes on a line. Syntax *nodecreateonlines(entities, mark, number, biasstyle, biasingintensity) entities The entities contained on the mark. For this operator this value must be lines. The mark containing the lines which will have nodes created on them. The number of nodes which should be created on each line. The type of biasing to use. The biasing intensity value.

Arguments

mark

number

biasstyle biasingintensity Example

To create 5 nodes on lines 10, 11, 12, and 13: *createmark(lines,1) 10 11 12 13 *nodecreateonlines(lines,1,5)

Comments

*createmark() is required for this command.

*nodelistcreatebetween()
Creates a user-specified number of nodes between selected nodes. Syntax *nodelistcreatebetween(nodelist, numberofnodes, biasstyle, biasingintensity) nodelist The mark containing the list of nodes that are to have nodes created between them. The number of nodes to be created between the selected nodes. The type of biasing to use. The biasing intensity value.

Arguments

numberofnodes

biasstyle biasingintensity

Altair Engineering, Inc.

155

Command File

*nodemarkaddtempmark()
Places a node on the temporary node mark. Syntax Argument *nodemarkaddtempmark(mark) mark The ID of the mark that contains the nodes to be placed on the temporary node mark.

Example

To place nodes 100, 101, 102, and 103 on the temporary node mark: *createmark(nodes,1) 100 101 102 103 *nodemarkaddtempmark(1)

Comments

Placing nodes on the temporary mark prevents nodes from being deleted and identifies temporary nodes with a yellow circle.

*nodemarkcleartempmark()
Clears a group of nodes from the temporary node mark. Syntax Argument *nodemarkcleartempmark(mark) mark The ID of the mark containing the nodes to be removed from the temporary node mark.

Example

To remove nodes 6, 7, and 8 from the temporary node mark: *createmark(nodes,1) 6 7 8 *nodemarkcleartempmark(1)

Comments

*createmark() is required.

Command File

156

Altair Engineering, Inc.

*nodemodify()
Modifies the location of a node in space. Syntax Arguments *nodemodify(nodeid, x, y, z) nodeid x y z Example The ID of the node to be modified. The new x coordinate of the node. The new y coordinate of the node. The new z coordinate of the node.

To modify the location of node 1 to be x = 10.0, y = 20.0, z = 30.0: *nodemodify(1,10.0,20.0,30.0)

*nodeplaceatxyz()
Moves a node to a location on a surface and associates the node to the surface. Syntax Arguments *nodeplaceatxyz(node, surface, location) node surface The ID of the node. The ID of the surface to which the node should be associated. The location of the point on the surface where the node is to be moved.

location

Example

To move node 115 to surface 1 at location (75,30,86): *nodeplaceatxyz(115,1,75,30,86)

Altair Engineering, Inc.

157

Command File

*nodesassociatetosurface()
Moves and associates nodes to a surface. The closest point on the surface will be found for each node. Syntax Arguments *nodesassociatetosurface(mark, surface, tolerance) mark The mark containing the nodes to be associated. The ID of the surface the nodes are to be associated to. The tolerance the nodes must be within before they will be moved and associated to the surface.

surface

tolerance

Example

To move and associate nodes 77 and 201 to surface 1: *createmark(nodes,1) 77 201 *nodesassociatetosurface(1,1,.1)

Comments

*createmark() is required for this command.

*normalsadjust()
Adjusts the normals of the selected two-dimensional elements according to the normal of an orientation element. Syntax *normalsadjust(entity type, mark, element, size, displayadjustedonly) entity type The type of entity contained on the mark. Valid types for this operation are components or elements. The ID of the mark containing the elements whose normals should be adjusted. The ID of the orientation element. The size in model units of the normal. Set to 0 to show add elements normals at the end of the command. Set to 1 to limit the display to only those elements that have changed.

Arguments

mark

element size displayadjustedonly

Command File

158

Altair Engineering, Inc.

Example

To adjust the normals of all of the elements in component plate based on the normal of element 54 with a displayed size of 10.0 units: *createmark(components,1) plate *normalsadjust(components,1,54,10.0,1)

Comments

All of the elements selected must be connected.

*normalsdisplay()
Displays the normals of the selected entities. Syntax Arguments *normalsdisplay(entity type, mark, size) entity type The type of entity contained on the mark. Valid types are elements or components. The ID of the mark. The size in model units of the normal.

mark size Example

To display the normals of all of the elements in component washer with a displayed size of 10.0 units: *createmark(components,1) washer *normalsdisplay(components,1,10.0)

*normalsreverse()
Reverses the normals of a two-dimensional element. Syntax Arguments *normalsreverse(entity type, mark, size) entity type The type of entity contained on the mark. Valid types are elements or components. The ID of the mark. The size in model units of the normal.

mark size Example

To reverse the normal of element 15 using a display size of 10.0: *createmark(element,1) 15 *normalsreverse(elements,1,10.0)

Altair Engineering, Inc.

159

Command File

*numbers()
Turns the numbers mark on or off. Syntax Argument *numbers(on) on Determines whether the numbers mark is turned on or off (1 for on, 0 for off).

*numbersclear()
Clears all of the entities out of the numbers mark. Syntax *numbersclear()

*numbersmark()
Places the entities in the mark on the numbers mark. This will display the ID of the entity. Syntax Arguments *numbersmark(entity type, mark, on) entity type The type of entity contained on the mark. The ID of the mark. Determines whether the entities will be placed on the numbers mark or removed from the numbers mark (1 to put on, 0 to remove).

mark on

Example

To place nodes 5, 6, and 7 on the numbers mark: *createmark(nodes,1) 5 6 7 *numbersmark(nodes,1,1)

Command File

160

Altair Engineering, Inc.

*orderchangetofirst()
Converts second order elements to first order. Syntax Argument *orderchangetofirst(mark) mark The ID of the mark which contains the elements to be converted.

*orderchangetosecond()
Converts first order elements to second order. Syntax Argument *orderchangetosecond(mark) mark The ID of the mark that contains the elements to be converted.

*outputblockcreate()
Creates an output block. Syntax Arguments *outputblockcreate(name, type mark) name type Name of the output block. The type of the entity contained in the output block. The mark containing the entities to be added to the output block.

mark

Altair Engineering, Inc.

161

Command File

*outputblockupdate()
Updates a output block Syntax Arguments *loadstepupdate(name, type, mark) name type Name of the output block to be updated. The type of the entity contained in the output block. The mark containing the entities to be contained in the output block.

mark

*permutemark()
Permutes the entities on a mark. Syntax Arguments *permutemark(entity type, mark, type) entity type The type of entities contained on the mark. The ID of the mark which holds the entities to be permuted. The type of action which should be taken (0 - swap x with y, 1 - swap x with z, 2 - swap y with z).

mark

type

Example

To permute elements 10, 11, and 12 switching the x and y values: *createmark(elements,1) 10 11 12 *permutemark(elements,1,0)

Comments

*createmark() is required.

*picktoleranceset()
Sets the picking tolerance in pixels which the cursor must be within before an entity is selected. Syntax Argument *picktoleranceset(tolerance) tolerance The tolerance in pixels.

Command File

162

Altair Engineering, Inc.

*plot()
Plots the current model. Syntax *plot()

*plotaxisnodes()
Plots a curve based on the values of marked nodes ordered along an axis. Syntax Arguments *plotaxisnodes(mark, axis) mark axis Example The active mark. The axis index (0 = X, 1 = Y, 2 = Z)

*createmark(nodes,1) 167 171 175 *plotaxisnodes(1,0)

Comments

In order to work, there must be an existing contour and at least one node on the mark. Values on the curve are ordered according to their distance along the selected axis.

*plotcuttingplane()
Creates a curve containing the contour value at each node along the temporary elements that make up the edge of the cut. Syntax Argument *plotcuttingplane (basex, basey, basez) basex, basey, basez Coordinates of the base node defining the cutting plane.

Example

*contourplot ( , 0, 0, 0, 0, 1, 0, 0, 0,total disp, 1, 0, 0) *setcuttingplane(0.203283796, 0.717773806, -0.665940284, 888.07, 562, 431.728) *plotcuttingplane(888.070007, 562, 431.727997)

Comments

In the results curve panel, in standard graphics, it is possible to cut the contoured model with an arbitrary plane. The X value of the curve represents the distance along the cut from the node on the nearest free edge to the base node that defined the cut. This starting node is indicated by a white circle drawn around it on the model. Unless the cutting plane is angled to intersect nodes only , interpolated values are used where necessary. If the cutting plane creates multiple isolated segments, multiple curves are generated. *plotcuttingplane() does not process solid (3-D) elements.

Altair Engineering, Inc.

163

Command File

*plotinfotitlemove()
Moves the plot information title. Syntax Arguments *plotinfotitlemove(xmin, ymin, xmax, ymax) xmin ymin xmax ymax The x value of the upper left corner of the title (0.0 - 1.0). The y value of the upper left corner of the title (0.0 - 1.0). The x value of the lower right corner of the title (0.0 - 1.0). The y value of the lower right corner of the title (0.0 - 1.0).

*plotinfotitlesetcolor()
Sets the color of the plot information title. Syntax Argument *plotinfotitlesetcolor(color) color Set the title to this color

*plotinfotitlesetfont()
Sets the font of the plot information title. Syntax Argument *plotinfotitlesetfont(font) font The font number for the descriptor (1-4)

*plotinfotitlesettext()
Sets the text to be displayed in the plot information title. Syntax Argument *plotinfotitlesettext(text) text The text that is displayed in the plot information title.

Command File

164

Altair Engineering, Inc.

*plotnodelist()
Plots a curve based on the values of a contour along a list of nodes. Syntax Argument Example *plotnodelist(listid) listid The id of the active node list.

*contourplot("",0,0,0,0,0,1,0,0,"total disp",1,0,0) *xyplotsetcurrent("untitled1") *createlist(nodes, 1) 1601 1600 1599 1598 *plotnodelist(1)

Comments

In order to work, there must be an existing contour and a list of nodes (not nodes on a mark).

*plottitlemove()
Moves the plot title. Syntax Arguments *plottitlemove(xmin, ymin, xmax, ymax) xmin ymin xmax ymax The x value of the upper left corner of the plot title (0.0 - 1.0). The y value of the upper left corner of the plot title (0.0 - 1.0). The x value of the lower right corner of the plot title (0.0 - 1.0). The y value of the lower right corner of the plot title (0.0 - 1.0).

*plottitlesetcolor()
Sets the color of the plot title. Syntax Argument *plottitlesetcolor(color) color The color to which the title should be set.

Altair Engineering, Inc.

165

Command File

*plottitlesetfont()
Sets the font for the plot title. Syntax Argument *plottitlesetfont(font) font The font ID for the plot title (1-4).

*plottitlesettext()
Sets the text for the plot title. Syntax Argument *plottitlesettext(text) text The text which should be displayed in the plot title.

*positionmark()
Positions a group of entities in space. Syntax Arguments *positionmark(entity type, mark, node1-6) entity type The type of entities contained on the mark. The ID of the mark which contains the entities to be positioned. The nodes 1-6 are used to position the entities in space. Positioning attempts to align the first set of three nodes to the second set of three nodes (1-3 to 4-6).

mark

node1-6

Command File

166

Altair Engineering, Inc.

*postscriptcopy()
Allows you to create a PostScript representation of the screen and send it to the printer. Syntax Comments *postscriptcopy() When the *postscriptcopy() command is written to the command file by HyperMesh, the asterisk is not written with the command. In order for the *postscriptcopy() command to be executed when the command file is rerun, you must place an asterisk, *, in front of the command.

*postscriptcopyblackandwhite()
Allows you to create a black and white PostScript representation of the screen and send it to the printer. Syntax Comments *postscriptcopyblackandwhite() When the *postscriptcopyblackandwhite () command is written to the command file by HyperMesh, the asterisk is not written with the command. In order for the *postscriptcopy() command to be executed when the command file is rerun, you must place a an asterisk, *, in front of the command.

*postscriptfile()
Allows you to create a PostScript representation of the screen and save it in a file. Syntax Comments *postscriptfile() When the *postscriptfile() command is written to the command file by HyperMesh, the asterisk is not written with the command. In order for the *postscriptfile() command to be executed when the command file is rerun, you must place an asterisk, *, in front of the command.

Altair Engineering, Inc.

167

Command File

*postscriptreset()
Resets internal HyperMesh postscript variables. Syntax Comments *postscriptreset() When a postscript plot is created in one of the post-processing panels, HyperMesh places a postscriptreset into the command file when you exit the panel.

*pressures()
Creates pressure loads on elements. Syntax *pressures(mark, face nodes, x comp, y comp, z comp, magnitude, break angle, on face) mark The ID of the mark containing elements which should have pressures applied to them. The ID of the mark containing nodes which lie on the face of one or more elements (solids only). The x component of the pressure. The y component of the pressure. The z component of the pressure. The magnitude of the pressure. The break angle of a solid face. A logical which determines whether pressures are being applied to faces.

Arguments

face nodes

x comp y comp z comp magnitude break angle on face

Comments

If you set x comp, y comp, or z comp to zero, a pressure is applied. If you assign a value to x comp, y comp, or z comp, a traction is applied.

Command File

168

Altair Engineering, Inc.

*projectmarktoplane()
Projects a group of entities to a plane. Syntax *projectmarktoplane(entity type, mark, plane, vector, toplane) entity type The type of entities contained on the mark. The ID of the mark containing the entities to be projected. The ID of the plane to which the entities will be projected. The vector along which the entities will be projected. A flag indicating if the entities should be projected to the plane or to the normal of the plane (1 for plane, 0 for normal).

Arguments

mark

plane

vector

toplane

Example

To project elements 10, 11, 12, 13 to the plane with a normal of (1.0, 0.0, 0.0) based at the origin along the vector (1.0, 1.0, 1.0): *createmark(element,1) 10 11 12 13 *createplane(1,1.0,0.0,0.0,0.0,0.0,0.0) *createvector(1.0,1.0,1.0) *projectmarktoplane(element,1,1,1,1)

Comments

*createmark() , *createplane() , and *createvector() are required.

Altair Engineering, Inc.

169

Command File

*propagatesplithexas()
Given a hexa element and two nodes diagonally across a face of that element, splits the hexa according to a set pattern and propagates that split to any hexa adjoining the opposite face of the hexa and so on through the displayed elements of the database. Syntax Arguments *propagatesplithexas(splittype, startelement, n1, n2) splittype A number between 1 and 6 identifying the splitting pattern to use. 1 Two pentas (split along the diagonal formed by n1 and n2). Penta & hexa (with the penta to the left of the diagonal). Hexa & penta (with the penta to the right of the diagonal). Two hexas (split from the right of n1 to the left of n2). Three hexas (split from n1 to both sides adjacent to n2). Four hexas (split in a plus pattern).

6 startelement n1

The starting hexa element. One of the nodes defining the starting face of the hexa. The other node defining the starting face of the hexa.

n2

Example

To split a column of hexas into paired pentas starting with element 205, where nodes 1015 and 1017 are diagonally opposite from each other across one face of the hexa: *propagatesplithexas(1,205,1015,1017)

Comments

The hexa elements can be first or second order and need not all be the same order.

Command File

170

Altair Engineering, Inc.

*quatrotate()
Defines a rotation Syntax Example about the vector [x, y, z]. *quatrotate() *quatrotate(-0.000125576946, 0.0107329493, 0.000656577404, 0.999942177) The model is rotated about the matrix created from the given quaternion.

Comments

*quit()
Stops the execution of a command file. Syntax Argument *quit(exit) exit Set to 1 if HyperMesh should exit when this command is executed.

Comments

This command can be used to terminate the execution of a command file. Although HyperMesh writes this command to the command file when a session is quit, it will not terminate execution of HyperMesh when it is executed from a command file unless the parameter is set to 1.

*rbe3()
Creates an RBE3 element between a dependent node and multiple independent nodes. Syntax *rbe3(mark, independentdofs, dofsize, independentweights, weightsize, dependent, dof, weight) mark The ID of the mark containing the independent nodes. The ID of the array containing the degrees of freedom for which each respective independent node of the element is active (any of the digits 16). The size of the independentdofs

Arguments

independentdofs

dofsize

Altair Engineering, Inc.

171

Command File

array. independentweights The ID of the array containing the weight for each respective independent node. The size of the independentweights array. The dependent node of the element. The degree of freedom code for which thedependent node of the element is active (any of the digits 16). The weight assiged to the dependent node.

weightsize

dependent dof

weight

Example

To create an RBE3 element with dependent node 100 andindependent nodes 101, 102, and 103 with all of the nodeshaving all six degrees of freedom and a weight of 1.23: *createmark(nodes,1) 101 102 103 *createarray(3) 123456 123456 123456 *createdoublearray(3) 1.230000 1.230000 1.230000 *rbe3(1,1,3,1,3,100,123456,1.23)

Comments

A *createmark() command is required to define the mark. A *createarray() and *createdoublearray() are required to define the degree of freedom codes and weights for the independent nodes.

*rbe3update()
Updates the connectivity and properties of an RBE3 element. Syntax *rbe3update(element, mark, independentdofs, dofsize, independentweights, weightsize, dependent, dof, weight) element The ID of the RBE3 element to update. The ID of the mark containing the (possibly new) independent nodes. The ID of the array containing the degree of freedom code for which each respective independent node of 172 Altair Engineering, Inc.

Arguments

mark

independentdofs

Command File

the element is active (any of the digits 1-6). dofsize The size of the independentdofs array. The ID of the array containing the weight for each respective independent node. The size of the independentweights array. The (possibly new) dependent node of the element. The degree of freedom code for which the dependent node of the element is active (any of the digits 16). The weight for the dependent node.

independentweights

weightsize

dependent

dof

weight Example

To update RBE3 element 18 with dependent node 104 and independent nodes 100, 101, 102, and 103 with all of the nodes having a degree of freedom code of 123 and a weight of 2.31: *createmark(nodes,2) 100 101 102 103 *createarray(4) 123 123 123 123 *createdoublearray(4) 2.310000 2.310000 2.310000 2.310000 *rbe3update(18,2,1,4,1,4,104,123,2.31)

Comments

A *createmark() command is required to define the mark. A *createarray() and *createdoublearray() are required to define the degree of freedom codes and weights for the independent nodes.

*rbe3updatealldofs()
Updates all of the independent nodes degree of freedom code to one value and the dependent nodes degrees of freedom code to another value for an RBE3 element. Syntax Arguments *rbe3updatealldofs(element, idofs, ddof) element The ID of the RBE3 element to update. The degree of freedom code for which all independent nodes of the RBE3 element is active (any of the

idofs

Altair Engineering, Inc.

173

Command File

digits 1-6). ddof The degree of freedom code for which the dependent node of the element is active (any of the digits 16).

Example

To update RBE3 element 18 with all of the independent nodes having a degree of freedom code of 123456 and the dependent node having a degree of freedom code of 123: *rbe3updatealldofs(18,123456,123)

*rbe3updateallwts()
Updates the weight of all independent nodes to one value and the weight of the dependent node to another value for an RBE3 element. Syntax Arguments *rbe3updateallwts(element, iweights, dweight) element The ID of the RBE3 element to update. The weight assigned for all independent nodes of theRBE3 element. The weight assigned for the dependent node of the RBE3 element.

iweights

dweight

Example

To update RBE3 element 18 with all of the independent nodes having a weight of 1.432 and the dependent node having a weight of 0.000: *rbe3updateallwts(18,1.432,0.0)

*rbe3updatedofs()
Updates the degree of freedom codes for the specified independent nodes and the dependent node for an RBE3 element. Syntax Arguments *rbe3updatedofs(element, changed_dofs, nrows, ncols, ddof) element The ID of the RBE3 element to update. The ID of a 2 dimensional array. 174 Altair Engineering, Inc.

changed_dofs

Command File

Each row contains the ID of an independent node of the RBE3 element and the degree of freedomcode for which that node is active (any of the digits 1-6). nrows The number of rows in the changed_dofs array. The number of columns in the changed_dofsarray (must always be 2). The degree of freedom code for which the dependent node of the element is active (any of the digits 16).

ncols

ddof

Example

To update RBE3 element 18 with the independent nodes 100, and 101 having a degree of freedom code of 12345 and independent node 102 having a degree of freedom code of 1234 and the dependent node having a degree of freedom code of 123: *createintarray2d(3,2) 100 12345 101 12345 102 1234 *rbe3updatedofs(18,1,3,2,123)

Comments

A *createintarray2d() command is required to define the pairing of independent node and new degree of freedom code for that node.

*rbe3updatewts()
Updates the weights for the specified independent nodes and the dependent node for an RBE3 element. Syntax *rbe3updatewts(element,changed_nodes,nodesize,changed_weig hts,weightsize,dweight) element The ID of the RBE3 element to update. The ID of an array containing the independent nodes of an RBE3 element whose weights are to be updated. The size of the changed_nodes array. The ID of an array containing the weights for the respective 175 Command File

Arguments

changed_nodes

nodesize changed_weights

Altair Engineering, Inc.

independent nodes specified in the changed_nodes array. weightsize The size of the changed_weights array. The weight assigned for the dependent node of the RBE3 element.

dweight

Example

To update RBE3 element 18 with the independent nodes 100, and 101 having a weight of 1.0 and independent node 102 having a weight of 1.5 and the dependent node having a weight of 1.0: *createarray(3) 100 101 102 *createdoublearray(3) 1.0 1.0 1.5 *rbe3updatewts(18,1,3,1,3,1.0)

Comments

A *createarray() and *createdoublearray() command are required to define the pairing of independent node and new weight for that node.

*readfile()
Reads a binary HyperMesh database. Syntax Argument Example *readfile(filename) filename To read the file named mymodel.hm: *readfile(mymodel.hm) Comments If a model is already loaded and if a change has been made to the model, HyperMesh asks for confirmation because the loaded model will be deleted. The name of the file to be read.

*reflectmark()
Reflects a mark about a plane. Syntax Arguments *reflectmark(entity type, mark, plane id) entity type The type of entity contained on the mark.

Command File

176

Altair Engineering, Inc.

mark

The ID of the mark which holds the entities to be reflected. The ID of the plane which will be used to reflect the entities about.

plane id

Example

To reflect element 15 about a plane normal to the x axis with base at the origin: *createplane(1,1.0,0.0,0.0,0.0,0.0,0.0) *createmark(element,1) 15 *reflectmark(elements,1,1)

Comments

*createplane() is required for this command.

*rejectmark()
Rejects the entities held on the reject mark. Syntax *rejectmark()

*rejectmesh()
Discards a generated mesh (if any) for the specified face while still within the automeshing module. Syntax Argument *rejectmesh(faceindex) faceindex The index of the face into the particular surface under consideration.

Comments

Must precede any call to *storeAMelemstodatabase() for the given faceindex.

Altair Engineering, Inc.

177

Command File

*remap()
Remaps a list of nodes to a line. Syntax Arguments *remap(nodelist, linelist, endpoints) nodelist linelist The list of nodes to be remapped. The list of lines to which the nodes will be remapped. The end points of the line list.

endpoints

*renamecollector()
Renames a collector. Syntax Arguments *renamecollector(entity type, collector name, new name) entity type collector name The type of collector being renamed. The name of the collector to be renamed. The new name which should be assigned to the collector.

new name

Example

To rename component oldname to newname: *renamecollector(component,oldname,newname)

*renamecollectorbyid()
Renames a collector to its ID. Syntax Arguments *renamecollectorbyid(entity type, prefix) entity type prefix The type of collector being renamed. A prefix which will be inserted before the ID of the collector.

Command File

178

Altair Engineering, Inc.

*renamefile()
Renames a file. Syntax Arguments *renamefile(oldname, newname) oldname The current name of the file being renamed. The new name for the file.

newname Example To rename the file junk to stuff: *renamefile(junk,stuff)

*renumber()
Renumbers entities. Syntax *renumber(entity type, mark, start id, increment by, offset value, offset) entity type mark The type of entity being renumbered. The ID of the mark where the entities to be renumbered have been placed. The starting ID of renumber. The increment by which the IDs should be spaced. The value by which the entity IDs should be offset. Set to 1 if the IDs should only be offset. If set to 0, the IDs are renumbered.

Arguments

start id increment by

offset value

offset

Example

To renumber the nodes in a data base from 100 with an increment of 1: *createmark(nodes,2) displayed *renumber(nodes,2,100,1,0,0)

Altair Engineering, Inc.

179

Command File

*renumberall()
Renumbers all entities. Syntax *renumberall(start id, increment by, offset value, offset). start id increment by The starting ID of renumber. The increment by which the IDs should be spaced. The value by which the entity IDs should be offset. Set to 1 if the IDs should only be offset. If set to 0, the IDs are renumbered.

Arguments

offset value

offset

Example

To renumber all entities in a data base from 100 with an increment of 1: *renumberall (100, 1, 0, 0).

*reparammark()
Reparameterizes the lines on a mark. Syntax Argument *reparammark(mark) mark The ID of the mark containing the lines to be reparameterized.

*replacenodes()
Replaces a node with another node. Syntax Arguments *replacenodes(node1, node2, replace, midsides) node1 node2 replace The ID of the node to be replaced. The ID of the node to replace node1. Determines if the node is replaced or moved (1 replaces, 0 moves). Determines if the node is replaced at

midsides

Command File

180

Altair Engineering, Inc.

the midpoint (if 1, node2 replaces node1 at the midpoint; if 0, node2 replaces node1 at node1). Example To replace node 20 with node 21: *replacenodes(20,21,1,0)

*replay()
Reloads and displays a replay file. Syntax Arguments *replay(file1, file2) file1 The name of the file containing a HyperMesh replay. The name of the file containing a HyperMesh replay.

file2

Example

To replay a replay file named replay.1: *replay(replay.1,)

Comments

On a 3-D platform, if both file names are specified, HyperMesh animates both replay files side by side. On a 2-D platform, HyperMesh ignores the second file name. Once a replay session has begun, the user must select exit from the animation subpanel.

*resize()
Sets the resize flag in HyperMesh. Syntax Argument *resize(on) on Set to 0 if the full-size plots should not be resized to the size of the window; otherwise, set to 1.

Altair Engineering, Inc.

181

Command File

*restoreview()
Restores the previously saved view. Syntax Argument Comments *restoreview(view number) view number The number of the view (1-3).

The view specified must have been previously saved with *saveview() .

*return()
Defines the end of a user-defined function. Syntax Example *return() The user-defined function makeplot requires a return statement: *function(makeplot) <user commands> *return() Comments Requires a *function() command.

*reversecuttingplane()
Reverses the normal of the cutting plane. Syntax *reversecuttingplane()

*rigid()
Creates a rigid element between two nodes. Syntax Arguments *rigid(independent, dependent, dofs) independent The independent node of the element.

Command File

182

Altair Engineering, Inc.

dependent dofs

The dependent node of the element. The degrees of freedom for which the element is active (any of the digits 16).

Example

To create a rigid element between nodes 100 and 101 in all six degrees of freedom: *rigid(100,101,123456)

*rigidlink()
Creates a rigid link element between an independent node and multiple dependent nodes. Syntax Arguments *rigidlink(independent, mark, dofs) independent mark The independent node of the element. The ID of the mark containing the dependent nodes. The degree of freedom code for which all of nodes of the element are active (any of the digits 1-6).

dof

Example

To create a rigid link element with independent node 100 and dependent nodes 101, 102, and 103 with nodes having all six degrees of freedom: *createmark(nodes,2) 101 102 103 *rigidlink(100,2,123456)

Comments

A *createmark() command is required to define the mark.

*rigidlinkupdate()
Updates the connectivity and properties of a rigid link element. Syntax Arguments *rigidlinkupdate(element, independent, mark) element The ID of the rigid link element to update. The (possibly new) independent node of the element.

independent

Altair Engineering, Inc.

183

Command File

mark

The ID of the mark containing the (possibly new) dependent nodes.

Example

To update rigid link element 18 with independent node 104 and dependent nodes 100, 101, 102, and 103: *createmark(nodes,1) 100 101 102 103 *rigidlinkupdate(18,104,1)

Comments

A *createmark() command is required to define the mark.

*rigidscombine()
Combines rigids and rigidlinks. Syntax Arguments *rigidscombine(mark, combine_common_inode) mark The ID of the mark containing the elements to combine. If combine_common_inode =1, then rigids and rigidlinks that share a common independent node will be combined. If combine_combine_inode =0, then rigids and rigidlinks will be combined if they share any nodes (dependent or independent). Example To combine elements 100 and 101 into one rigidlink: *createmark(elements, 1) 100 101 *rigidscombine(1,1)

combine_common_inode

Command File

184

Altair Engineering, Inc.

*rigidsupdate()
Updates the properties of rigid and rigid link elements. Syntax Arguments *rigidsupdate(mark, dofs) mark The ID of the mark which contains the rigid or rigid link elements to be updated. The degrees of freedom code which the selected rigid or rigid link elements should be updated to (any of the digits 1-6).

dofs

Example

To update rigid elements 10, 11, and 12 to have a degree of freedom code of 123: *createmark(elements,1) 10 11 12 *rigidsupdate(1,123)

Comments

*createmark() is required.

*rigidwall_geometry()
Adds geometric definition to a rigid wall. Syntax *rigidwall_geometry(name, geometrytype, basenode, vectors, n1,n2, geomvar1, geomvar2, geomvar3) name geometrytype The name of the rigid wall. Use: 1 2 3 4 5 6 infinite plane finite plane infinite prism finite prism cylinder sphere

Arguments

Altair Engineering, Inc.

185

Command File

7 8 basenode vectors n1, n2 geomvar1

MADYMO plane MADYMO ellipse

The ID of the base node for the rigid wall. The normal vector. The ID of the nodes used to define the rigid wall. The length in the x directon or radius. This is also used for the MADYMO plane/ellipse ID value. The length in the y direction. The length in the z dir ec tion.

geomvar2 geomvar3

*rigidwall_motion_update()
Change the motion type and components for a rigid wall. Syntax Arguments *rigidwall_motion_update(name, motiontype, x, y, z) name motiontype The name of the rigid wall. Use: 0, for none; 1, for velocity; 2, for displacement. x component of motion. y component of motion. z component of motion.

x y z

*rigidwallsize()
Sets the size for axis and motion arrow plotting. Syntax Argument *rigidwallsize(size) size The size in model units in which the arrows should be plotted.

Command File

186

Altair Engineering, Inc.

*rod()
Creates a rod element. Syntax Arguments *rod(node1, node2, property) node1 node2 property The first node of the element. The second node of the element. The property to which the element points.

*rodupdate()
Updates rod elements. Syntax Arguments *rodupdate(mark, property) mark The ID of the mark which contains the rod elements to be updated. The name of the property to which the elements should point.

property

*rotate()
Rotates the model based on a user-defined rotation axis. Syntax Arguments *rotate(axis angle, rotation angle) axis angle The angle in degrees which defines how far from horizontal the rotation axis is. The angle in degrees which the model rotates.

rotation angle

Example

To rotate a model about the horizontal screen axis 15 degrees: *rotate(0.0,15.0)

Altair Engineering, Inc.

187

Command File

To rotate a model about the vertical screen axis 15 degrees: *rotate(90.0,15.0) Comments The rotation axis is defined by a line which runs horizontally through the center of the screen if the axis angle is zero. As the axis angle increases in magnitude, the axis of rotation rotates about the vector normal to the screen axis angle degrees.

*rotateabout()
Defines a new center of rotation for *rotate() and *quatrotate() commands. Syntax Argument *rotateabout(overridedefault, x, y, z) overridedefault If 1, defines the center as x, y, z. If 0, uses default center.

*rotatemark()
Rotates entities about a plane normal. Syntax Arguments *rotatemark(entity type, mark, plane id, angle) entity type mark plane id The type of entity defined in the mark. The ID of the mark. The ID of the plane to be used in the transformation. The angle of rotation in degrees.

angle Example

To rotate element 56 and 57 about the z axis (30 degrees) with an origin of (3.0,4.0,0.0): *createplane(1,0.0,0.0,1.0,3.0,4.0,0.0) *createmark(elements,1) 56 57 *rotatemark(elements,1,1,30.0)

Command File

188

Altair Engineering, Inc.

*rotationangleset()
Defines the rotation angle used by the *view() command. Syntax Argument *rotationangleset(angle) angle The angle of rotation to be used by the *view() command.

*saveview()
Saves the current view and window. Syntax Argument Comments *saveview(view number) view number The number of the view (1-3).

Once the view has been saved, it may be restored with *restoreview().

*scalemark()
Scales entities by multiplying the coordinates by a user-defined value. Syntax *scalemark(entity type, mark, scale x, scale y, scale z, origin) entity type The type of entities contained on the mark. The mark ID. The multiplication factor for the x coordinate. The multiplication factor for the y coordinate. The multiplication factor for the z coordinate. The origin of scaling.

Arguments

mark scale x

scale y

scale z

origin Example

To scale the component top uniformly 10 times about node 3: *createmark(components,1) top *scalemark(components,1,10.0,10.0,10.0,3)

Altair Engineering, Inc.

189

Command File

*scalemarkwithsystem()
Scales entities by a vector relative to a specified system. The vector direction and magnitude for each axis is defined by xscale, yscale, and zscale. Syntax *scalemarkwithsystem(entity type, mark, xscale, yscale, zscale, system id, origin) entity type mark xscale The type of entity which to be scaled. The number of the mark to be scaled. The magnitude of the scale in the xaxis of the system. The magnitude of the scale in the yaxis of the system. Only used in rectangular coordinate systems. The magnitude of the scale in the zaxis of the system. Not used in spherical coordinate systems. The ID of the system which the scaling is in relation to. Note that the type of system affects the scaling. For example, specifying an xscale in a cylindrical or spherical coordinate system scales the mark radially out from the origin. If zero, the scaling is based at the origin of the system. Otherwise, it specifies a node ID whose coordinates define the base point of the scaling.

Arguments

yscale

zscale

system

origin

Example

To scale nodes 1 2 3 4 5 6 7 and 8, 5 units in the x-direction of system 13 with node 20 being the origin: *createmark(nodes,1) 1 2 3 4 5 6 7 8 *scalemarkwithsystem(nodes,1,5,1,1,13,20)

Comments

A *createmark() command is required to define the mark. Tangential scaling in cylindrical and spherical coordinate systems is not allowed. This command scales only entity types of element, node, and component. If an entity type of line or surface is part of a component, then they are not scaled.

Command File

190

Altair Engineering, Inc.

*screencopy()
Allows users to create a bitmap of the screen and send it to the printer. Syntax Comments *screencopy() When the *screencopy() command is written to the command file by HyperMesh, the star is not written with the command. In order for the *screencopy() command to be executed when the command file is rerun, users must place an asterisk, *, in front of the command.

*screenfile()
Allows users to create a bitmap of the screen and save it in a file. Syntax Comments *screenfile() When the *screenfile() command is written to the command file by HyperMesh, the star is not written with the command. In order for the *screenfile() command to be executed when the command file is rerun, users must place an asterisk, *, in front of the command.

*setbackgroundcolor()
Sets the background color. Syntax Arguments *setbackgroundcolor(red, green, blue) red green blue The red component of color. The green component of color. The blue component of color.

Altair Engineering, Inc.

191

Command File

*setcomponentdisplayattributes()
Sets a component to the specified style and color in performance mode. Syntax Arguments *setcomponentdisplayattributes(name, style, colortype) name style The name of the component. Set to: 0 1 2 3 4 colortype wire frame hidden line hidden line with mesh hidden line with features hidden line transparent

Determines how the component is colored. The options are: 0 1 2 3 none component color assigned plots contours

*setcuttingplane()
Sets the location of the cutting plane. Syntax Arguments *setcuttingplane(x, y, z, basex, basey, basez) x The x component of the vector which is normal to the plane. The y component of the vector which is normal to the plane. The z component of the vector which is normal to the plane. The x coordinate of the base of the

basex

Command File

192

Altair Engineering, Inc.

plane. basey The y coordinate of the base of the plane. The z coordinate of the base of the plane.

basez

*setcuttingplanebase()
When you are in performance graphics mode, this command sets default values for the base of the cutting plane after you specify post-processing in the vis panel. Syntax *setcuttingplanebase()

*setcuttingplanecolor()
Sets the color of the base of the cutting plane when you are using performance graphics mode. Syntax Arguments *setcuttingplanecolor(id, contour, color) id contour The ID of the cutting plane. Sets the display mode for the cutting plane. Set to: 0 1 color for solid color for contours

The color to be used to display the plane (solid only).

Altair Engineering, Inc.

193

Command File

*setdisplayattributes()
Sets all components in the model to the specified style and color type. Syntax Arguments *setdisplayattributes(style, colortype) style Set to: 0 1 2 3 4 colortype wire frame hidden line hidden line with mesh hidden line with features hidden line transparent

Determines how the components are colored. The options are: 0 1 2 3 none component color assigned plots contours

*setdisplaycolor()
Sets the display color for the global coordinate axis and geometry cleanup entities. Syntax Arguments *setdisplaycolor(type, color) type 0 = global coordinate axis 1 = free edge 2 = shared edge 3 = suppressed edge 4 = non-manifold edge 5 = global coordinate axis label

Command File

194

Altair Engineering, Inc.

color Example

entity color

To set the global axis color to red (15): *setdisplaycolor (0,15)

Comments

Setting the global coordinate axis color to 0 disables the display and printed output.

*setedgemeshparams()
Sets some of the edge-specific arguments for the automeshing module. Syntax *setedgemeshparams(edgeindex, elemdensity, biasstyle, bias) edgeindex The index of the edge into the particular surface under consideration. The density of elements to use along the given edge. The type of biasing to use. The biasing of the element length to use along the given edge.

Arguments

elemdensity

biasstyle bias

*setfacemeshparams()
Sets some of the face-specific parameters for the automeshing module. Syntax *setfacemeshparams(faceindex, paramq, paramt1, paramt2, smoothmethod, smoothtol) faceindex The index of the face into the particular surface under consideration. The smoothing frequency used by the all-quads version of the advancing front mesh algorithm. This must be between 0 and 1.

Arguments

paramq

Altair Engineering, Inc.

195

Command File

paramt1

The first element creation threshold for the all-trias version of the advancing front mesh algorithm. This must be between 0 and 1. The second element creation threshold for the all-trias version of the advancing front mesh algorithm. This must be between 0 and 1. The smoothing method to use during the meshing process as well as with each click of the smooth button in the automesh panel. Possible values are 0, 1, or 2 which correspond to autodecide, size corrected, and shape corrected. The automesher will apply the smoothing algorithm until the largest adjustment made to a nodal position is less than the specified smoothing tolerance.

paramt2

smoothmethod

smoothtol

*setgraphicsengine()
Sets the graphics mode to performance graphics mode. Syntax Argument *setgraphicsengine(mode) mode Set to: 0 1 for standard graphics for performance graphics.

Command File

196

Altair Engineering, Inc.

*setisosurfaceparameters()
Sets the display parameters of the isosurface. Syntax *setisosurfaceparameters(on, legendbased, value, addfacesabove, transparent, constantcolor, color) on A boolean value to turn the isosurface on or off. A boolean value to determine if the isosurface is legend based or value based. The value of the value-based isosurface. A boolean value to add the faces above to the isosurface. A boolean value to turn on transparency on the faces below the iso value. A boolean value to display the isosurface in a user-specified The color of the isosurface.

Arguments

legendbased

value

addfacesabove

transparent

constantcolor

color

*setviewangles()
Sets the view based on angles. Syntax Arguments *setviewangles(thetax, thetay, thetaz) thetax thetay thetaz The angle of rotation about the x axis. The angle of rotation about the y axis. The angle of rotation about the z axis.

Altair Engineering, Inc.

197

Command File

*setvisualizecontrol()
Sets the location where components will get their display attributes in performance mode. Syntax Arguments *setvisualizecontrol(on, plot) on A flag that determines which set of display attributes are used to display the model. If set to 0, the model will be displayed as directed by the visual options sub panel. If set to 1, the model will be displayed as directed by the visual panel located off the permanent menu. A flag that determines if the model will be replotted when this command is executed. If set to 0 the model will not be plotted, otherwise it will.

plot

*shapevarcreate()
Creates a shape variable using three components and a local coordinate system. Syntax Arguments *shapevarcreate(markid, xcomp, ycomp, zcomp, systemid) markid The ID of the mark that contains the nodes where you want to create a shape variable. The global x component of the shape variable. The global y component of the shape variable. The global z component of the shape variable. The ID of the local coordinate system in which to create the shape variable. Use zero (0) to specify the global coordinate system.

xcomp

ycomp

zcomp

systemid

Command File

198

Altair Engineering, Inc.

*shapevarcreate_twonode()
Creates a shape variable described by two nodes. Syntax Arguments *shapevarcreate_twonode(n1, n2) n1 The ID of the base node of the shape variable. The ID of the far node of the shape variable.

n2

Comments

This shape variable has both nodes associated with it. The magnitude and direction of the shape variable changes if the positions of the nodes are moved.

*shapevarcreate_xproduct()
Creates a shape variable by using the cross product of two other shape variables. Syntax *shapevarcreate_xproduct(basenode, shape variable A, shape variable B, magnitude) basenode The ID of the node where the base of the result is located after it is created. The ID of the first shape variable in the cross product. The ID of the second shape variable in the cross product. Magnitude of resulting vector.

Arguments

shape variable A

shape variable B

magnitude

Altair Engineering, Inc.

199

Command File

*shapevarupdate()
Updates shape variables using three components and a local coordinate system. Syntax *shapevarupdate(markid, xcomp, ycomp, zcomp, magnitude, systemid, magnitudeflag, directionflag, systemflag) markid The ID of the mark that contains the shape variables to update. The global x component of the shape variables. The global y component of the shape variables. The global z component of the shape variables. The magnitude of the shape variables. The ID of the local coordinate system in which to update the shape variables. A flag (0,1) to update the magnitude of the shape variables. A flag (0,1) to update the direction of the shape variables. A flag (0,1) to update the system of the shape variables.

Arguments

xcomp

ycomp

zcomp

magnitude

systemid

magnitudeflag

directionflag

systemflag

Command File

200

Altair Engineering, Inc.

*shapevarupdate_twonode()
Updates a shape variable described by two nodes. Syntax *shapevarupdate_twonode(markid, n1, n2, updatetail, updatehead) markid The ID of the mark that contains the shape variable to be updated. The ID of the base node of the shape variable. The ID of the 2nd node of the shape variable. A flag (0,1) to update the tail(base) node. A flag (0,1) to update the head node.

Arguments

n1

n2

updatetail

updatehead Comments

This shape variable has both nodes associated with it. The magnitude and direction of the shape variable changes if the nodal positions are moved.

*shapevarupdate_xproduct()
Updates a shape variable created from the cross product of two other shape variables. Syntax *shapevarupdate_xproduct(markid, basenode, shape variable A, shape variable B, baseflag, directionflag, magnitude) markid The ID of the mark that contains the shape variable to update. The ID of the node where the base of the result is located after it is updated. The ID of the first shape variable in the cross product. The ID of the 2nd shape variable in the cross product. A flag (0,1) to update the base node of the shape variable. A flag (0,1) to update the direction

Arguments

basenode

shape variable A

shape variable B

baseflag

directionflag

Altair Engineering, Inc.

201

Command File

and magnitude of the shape variable. magnitude Magnitude of vectors.

*shrink()
Turns element shrink on and off. Syntax Argument Comments *shrink(shrink) shrink The percentage of shrink.

Setting shrink to 0.20 sets the element shrink to 20%.

*simulationsetangle()
Sets the angle used to evaluate complex results. The evaluated results are used in contour and assigned plots. Syntax Argument *simulationsetangle(angle) angle The angle used to evaluate complex results.

*simulationtitleon()
Controls the display of the simulation title. Syntax Argument Example Comments *simulationtitleon(on) on 1 for on, 0 for off.

*simulationtitleon(0) By default, the simulation title is displayed.

Command File

202

Altair Engineering, Inc.

*slide()
Begins slide mode. Syntax Arguments *slide(number, color, pattern) number The number of the slide (user reference number only). The background color of the slide. The background pattern of the slide (ignored).

color pattern

Example

To enter into slide mode: *slide(1,1,1)

Comments

If a *slide() command is encountered when the system is currently in slide mode, HyperMesh assumes that this is the end of the previous slide and pauses for a mouse selection before continuing. While the command system is in slide mode, the command set is reduced to the following commands: *bullet() *color() *indent() *slideend() *wait() *slideend() must be used to exit from slide mode.

*slideend()
Ends slide mode. Syntax Example *slideend() To exit slide mode: *slideend() Comments The system must already be in slide mode or HyperMesh issues an error message and stops processing the command file.

Altair Engineering, Inc.

203

Command File

*smoothelements()
In the automeshing module, applies the specified smoothing operator to the mesh (if any) found on the face for the given number of times. Syntax Arguments *smoothelements(faceindex, smoothmethod, iterations) faceindex The index of the face into the particular surface under consideration. The smoothing method to use. Possible values are 0, 1, or 2 which correspond to autodecide, size corrected, and shape corrected. The number of times to apply the element smoothing operator.

smoothmethod

iterations

Example

To smooth the elements of the mesh of the first face of the surface twenty-five times, using whichever algorithm the automeshing module determines is proper: *smoothelements(0,0,25)

Comments

The undo function for this command is *unsmoothelements() .

*solidmesh12lines()
Creates a solid mesh in a volume formed by twelve lines. Syntax Arguments *solidmesh12lines(lines, density1, density2, density3) lines The line list ID which contains lines that define a solid. The density of the elements in the first direction. The density of the elements in the second direction. The density of the elements in the third direction.

density1

density2

density3

Command File

204

Altair Engineering, Inc.

*solidmesh9lines()
Creates a solid mesh on a volume formed by nine lines. Syntax Arguments *solidmesh9lines(lines, density1, density2, density3) lines The line list ID which contains lines that define a solid. The density of the elements in the first direction. The density of the elements in the second direction. The density of the elements in the third direction.

density1

density2

density3

Example

To create a solid mesh in the volume formed by connected lines 10, 11, 12, connected lines 1, 2, and 3, and connecting lines 20, 21, and 22, with densities 3, 8 and 12: *createlist(lines,1) 10 11 12 1 2 3 20 21 22 *solidmesh9lines(1, 3, 8, 12)

*solidmeshwithsurfaces()
Creates a mesh of solid elements by first extruding an existing 2-D finite element mesh, and then mapping the the extruded mesh into a volume. Syntax *solidmeshwithsurfaces(type, sourcetype, source, desttype, dest, alongtype, along, genelems, elements, density, biasing style, biasing) type Identifies which type of geometry is being supplied (0 - source and destination, 1 - source and along, 2 source, destination, and along). Set to nodes, lines, or surfaces, this parameter identifies the geometry used to define the source face. The mark ID which contains the data of the source face. Set to nodes, lines, or surfaces, this parameter identifies the geometry 205 Command File

Arguments

sourcetype

source

desttype

Altair Engineering, Inc.

used to define the destination face. dest The mark ID which contains the data of the destination face. Set to lines or surfaces, this parameter identifies the geometry used to define the along faces. The mark ID which contains the data of the along faces. Currently not used. The mark which contains the elements which are to be mapped into the volume. The number of elements to be created between the source and destination faces. The type of biasing to use. The biasing intensity value.

alongtype

along

genelems elements

density

biasstyle biasing

*spinlinetoformsurface()
Spins a trimmed line to create a surface, and optionally, prepares it for immediate use within the automesher. It can also identify a region in the shape of a surface of revolution for the automesher to use under the mesh without surface option. Syntax Arguments *spinlinetoformsurface(linelist, list, rotplane, angle) linelist list The ID of the list of lines to be spun. The list ID of the list of zero or two nodes which lie on the lines in the line list and will be used to trim the line during surface creation. The axis about which to spin the lines. The angle through which to spin the lines.

rotplane

angle

Example

To spin line 2 ninety degrees about the given axis, creating a surface of revolution but not putting any elements on it: 206 Altair Engineering, Inc.

Command File

*surfacemode(4) *createlist(lines,1) 2 *createlist(nodes,1) *createplane(1,0.6,0.0,0.0,849.0,225.0, 349.0) *spinlinetoformsurface(1,1,1,90.0) Comments The *surfacemode(4) directive tells HyperMesh not to pass the information on to the automesher for element creation. The two *createlist() and the *createplane() directives are required for this command.

*spinnodestoformsurface()
Spins a list of nodes to create a surface, and optionally, prepares it for immediate use within the automesher. It can also identify a region in the shape of a surface of revolution for the automesher to use under the mesh without surface option. Syntax Arguments *spinnodestoformsurface(list, rotplane, angle) list rotplane The ID of the list of nodes to be spun. The axis about which to spin the lines. The angle through which to spin the lines.

angle

Example

To form a smooth line through nodes 8, 9, 10, and 11, and spin it ninety degrees about the given axis, creating a surface of revolution but not putting any elements on it: *surfacemode(4) *createlist(nodes,1) 8 9 10 11 *createplane(1,0.6,0.0,0.0,849.0,225.0, 349.0) *spinnodestoformsurface(1,1,90.0)

Comments

The *surfacemode(4) directive tells HyperMesh not to pass the information on to the automesher for element creation. The *createlist() and *createplane() directives are required for this command.

Altair Engineering, Inc.

207

Command File

*splinesurface()
Creates a 3-D or planar surface defined by a set of lines, and optionally, prepares it for immediate use within the automesher. It can also identify a region in the shape of a Coons patch surface for the automesher to use under the mesh without surface option. Syntax *splinesurface(entities, mark, plane_flag, plane, smooth_flag) entities The type of entities (lines or nodes) on the mark. The mark ID of the lines that define the surface. A flag indicating if the lines are planar. 1 a plane is calculated from the lines. lines are projected onto the plane defined by plane. lines are not on a plane, and a 3-D surface is created.

Arguments

mark

plane_flag

plane

The plane used to project lines if plane_flag is set to 2. A flag indicating if internal joints of the given lines should be smoothed away before the surface is created. Usually this should be turned on.

smooth_flag

Example

To create a surface from lines 65, 66, 67 and 69, with no elements: *surfacemode(4) *createmark(lines,1) 65 66 67 68 *createplane(1,1.0000,0.0000,0.0000,0.0000,0.0000,0.0000) *splinesurface(lines,1,0,1,1)

Comments

The *surfacemode(4) directive tells HyperMesh not to generate any elements. This command is used for creating both 3-D spline surfaces and trimmed planar surfaces. The plane_flag arguments controls this option. *createmark() and *createplane() are required for this command.

Command File

208

Altair Engineering, Inc.

*splitelements()
Splits elements. Syntax Arguments *splitelements(method, mark) method Defines the method used to split the elements. Valid types are 1 to split the elements at all sides, 2 to divide into two trias, 3 to split at the midpoint of the element to make quads, or 4 to split at the midpoint to make trias. The ID of the mark which contains the elements to be split.

mark

Example

To split elements 11, 12, 13, and 14 at all sides: *createmark(elements,1) 11 12 13 14 *splitelements(1,1)

*splitsolidelements()
Divides the given solid elements into hexa or tetra elements. Syntax Argument *splitsolidelements(markmask, splittype) markmask The mark of solid elements to be split. A code that indicates the type of split to perform. 1 2 3 Example splits a hexa into 8 hexas splits a hexa into 5 or 6 tetras splits a hexa into 24 tetras

splittype

To split solid elements 100 through 110 into hexas: *createmark(elements,1) 100 101 102 103 104 105 106 107 108 109 110 *splitsolidelements(1, 1)

Comments

The *createmark() directive is required for this command.

Altair Engineering, Inc.

209

Command File

*spring()
Creates a spring element between two nodes. Syntax Arguments *spring(node1, node2, dof, property, vectorid) node1 node2 dof The first node of the element. The second node of the element. The degree of freedom for which the spring should be active (one digit of 1-6). The property to which the element should point. The ID of the orientation vector associated with the spring element.

property

vectorid

Example

To create a spring element between node 100 and node 101 with a property collector reference to sprate in the second degree of freedom, without an orientation vector: *spring(100,101,2,sprate,0)

*springsupdate()
Updates the properties of spring elements. Syntax *springsupdate(mark, dofflag, dof, propertyflag, property, vectorid) mark The ID of the mark which contains the spring elements to be updated. Set to 1 if the dofs should be updated, otherwise 0. The degree of freedom which the spring elements should be updated to (one digit of 1-6). Set to 1 if the property should be updated, otherwise 0.

Arguments

dofflag

dof

propertyflag

Command File

210

Altair Engineering, Inc.

property

The property to which the element should point. The ID of the orientation vector associated with the spring element.

vectorid

Example

To update spring element 16, 17, and 18 to have a degree of freedom of 3 and a property reference to sprate, without an orientation vector: *createmark(elements,1) 16 17 18 *springsupdate(1,1,3,1,sprate,0)

Comments

*createmark() is required.

*storeAMelemstodatabase()
From within the automesher, converts a generated mesh (if any) for the specified face into elements in the general HyperMesh database, creating new quads and trias in the current component. Syntax Argument *storeAMelemstodatabase(faceindex) faceindex The index of the face into the particular surface under consideration.

*superelementset()
Sets the super element flag on a group of nodes. Syntax Arguments *superelementset(mark, super id) mark The ID of the mark containing the nodes which should have their super element ID updated to super id. The super element ID in which the above nodes should be placed.

super id

Example

To set nodes 155, 125, and 159 to super element 0: *createmark(nodes,1) 155 125 159 *superelementset(1,0)

Altair Engineering, Inc.

211

Command File

*surfaceaddnodesfixed()
Adds meshing fixed points to a mark of surfaces, either by breaking edges or adding interior fixed points. The coordinates of the fixed points are supplied by a list of nodes. Syntax Arguments *surfaceaddnodesfixed(surfacemark, nodelist, tolerance) surfacemark The ID of the mark containing the surface to modify. The ID of the list containing the nodes to use. The closeness tolerance used to decide which points belong to a surface. A point can be added to more than one surface out of the mark.

nodelist

tolerance

Example

To add a point to surface 190 whose coordinates correspond to those of node 9: *createmark(surfaces,1) 190 *createlist(nodes,2) 9 *surfaceaddnodesfixed(1,2,0.05)

*surfaceaddpointsfixed()
Adds meshing fixed points to a mark of surfaces, either by breaking edges or adding interior fixed points. The coordinates for the fixed points are supplied by a pointmark. Syntax Arguments *surfaceaddpointsfixed(surfacemark, pointmark, tolerance) surfacemark The ID of the mark containing the surface to modify The ID of the mark containing the points to add. The closeness tolerance used to decide which points belong to a surface. A point can be added to more than one surface out of the mark.

pointmark

tolerance

Example

To add point 9 to surface 190: *createmark(surfaces,1) 190 *createmark(points,2) 9 *surfaceaddpointsfixed(1,2,0.05)

Command File

212

Altair Engineering, Inc.

*surfacecone()
Creates a full or partial cone, and optionally, prepares it for immediate use in the automesher. It also can identify a conical region for the automesher to use under the mesh without surface option. Syntax *surfacecone(bottom center, major vector, normal vector, base radius, top radius, aspect ratio, start angle, end angle, height) bottom center A node specifying the center of the cone. A node specifying the major axis. A node specifying the axis which the cone spins around. The height is applied from the bottom center along the normal axis. The radius of the bottom of the cone. The radius of the top of the cone. A value less than 1.0 creates an elliptical cone or cylinder. Angle at which the cone starts (0.0 to < end angle). 0.0 starts at the major vector. Angle at which the cone ends (> start angle to 360.0). Height of the cone.

Arguments

major vector normal vector

base radius top radius aspect ratio

start angle

end angle

height Example

To create an elliptical cone using nodes 1, 2, and 3, with base radius of 10, top radius of 5, and height of 10, but not create any elements: *surfacemode(4) *surfacecone(1,2,3,10.0,5.0,0.5,0.0, 360.0,10.0)

Comments

If the top radius and base radius are equal, a cylinder is created. The *surfacemode(4) directive tells HyperMesh not to pass the information on to the automesher for element creation.

Altair Engineering, Inc.

213

Command File

*surfaceconefull()
Creates a cone with a specified center and radius, and optionally, prepares it for immediate use in the automesher. It also can identify a conical region for the automesher to use under the mesh without surface option. Syntax *surfaceconefull(top center, bottom center, base radius, top radius, aspect ratio, height) top center A node specifying the top center of the cone. A node specifying the bottom center of the cone. The radius of the bottom of the cone. The radius of the top of the cone. A value less than 1.0 creates an elliptical cone or cylinder. Height of the cone.

Arguments

bottom center

base radius top radius aspect ratio

height Example

To create a circular cone with the top center at node 1, the bottom center at node 2, a base radius of 100, top radius of 0, and a radius of 50, but not create any elements: *surfacemode (4) *surfaceconefull(1,2,100.0,0.0,1.0,50.0)

Comments

If the top radius and base radius are equal, a cylinder is created. The *surfacemode(4) directive tells HyperMesh not to pass the information on to the automesher for element creation.

*surfacecopyedges()
Create lines from the edges of a surface. Syntax Arguments *surfacecopyedges(surface, list, all_edges) surface A surface that contains edges (a full sphere or torus does not contain edges). The mark ID of the nodes used to select the surface edges (if all_edges

list

Command File

214

Altair Engineering, Inc.

is 0). all_edges If all_edges is 1, then copy all edges of the surface to new lines. If set to 0, then only copy edges that have a node created on them (from list).

Example

To copy all edges of surface 1 to new lines: *createlist(nodes,2) *surfacecopyedges(1,2,1)

Comments

*createmark() is required for this command.

*surfacedisplaynormals()
Displays a normal vector on all faces of a surface. Syntax Arguments *surfacedisplaynormals(entities, mark, size) entities mark The entities contained on the mark. The mark ID of the surfaces or component that contains surfaces. Specifies the size of the normal to be drawn. If size is zero, the vector is drawn at 10% of the screen size.

size

Example

Display the normals of surfaces 5 and 10: *createmark(surfaces,1) 5 10 *surfacedisplaynormals(surfaces,1,0.0000)

Comments

*createmark() is required for this command.

Altair Engineering, Inc.

215

Command File

*surfaceintersectmark()
Intersects surfaces with other surfaces (or an infinite plane) to create lines. Syntax Arguments *surfaceintersectmark(mark, use_plane, plane, mark) mark The mark ID of the first set of surfaces. When set to 1, the first set of surfaces is intersected with an infinite plane defined by plane. The infinite plane used to intersect the first set of surfaces if use_plane is set to 1. The mark ID of the second set of surfaces. If use_plane is 0, then the first set of surfaces is intersected with the second set of surfaces.

use_plane

plane

mark

Example

Intersect surfaces 15 and 16 with 17 and 18: *createmark(surfaces,1) 15 16 *createplane(1,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000) *createmark(surfaces,2) 17 18 *surfaceintersectmark(1,0,1,2)

Comments

*createmark() and *createplane() are required for this command.

*surfacemarkchangesurfacelines()
Changes the number of lines used to display an existing surface. Syntax Arguments *surfacemarkchangesurfacelines(mark, lines) mark lines The mark ID of the surfaces. The number of lines used to display the surfaces.

Example

To display surfaces 15 and 16 with 4 display lines: *createmark (surfaces,1) 15 16 *surfacemarkchangesurfacelines(1,4)

Command File

216

Altair Engineering, Inc.

Comments

The number of lines is actually the number of lines in each direction in parameter space of the surface. Since there are two directions in parameter space, setting surface lines to two results in four lines on the surface (two in each direction).

*surfacemarkclipwithline()
Splits a group of surfaces with a line by projecting that line perpendicularly onto the surfaces. Syntax Arguments *surfacemarkclipwithline(mark, line, tolerance) mark line tolerance The ID of the mark containing the surfaces. The ID of the line used to split the surfaces. The maximum distance the line may deviate from the surfaces and still be projected.

Example

To split two surfaces using line number 26 and a projection tolerance of 0.1: *createmark(surfaces,1)171 172 *surfacemarkclipwithline(1,26,0.1)

*surfacemarkclipwithlines()
Splits a group of surfaces with lines by projecting those lines perpendicularly onto the surfaces. Syntax Arguments *surfacemarkclipwithlines(surf_mark, line_mark, tolerance) surf_mark line_mark The ID of the mark containing the surfaces. The ID of the mark containing the lines. The lines are temporarily combined into a single line, and therefore must be contiguous. The maximum distance the line may deviate from the surfaces and still be projected.

tolerance

Altair Engineering, Inc.

217

Command File

*surfacemarkcombine()
Given a mark of surfaces, finds the free edges within a given tolerance and combines them into shared edges. Syntax Arguments *surfacemarkcombine(mark, tolerance) mark tolerance The ID of the mark containing the surfaces. The cleanup tolerance used to tell if two candidate edges are close enough to combine.

Example

To take a set of five surfaces and combine them using a tolerance of 0.05: *createmark(surfaces,1)5 93 119 171 201 *surfacemarkcombine(1,0.05)

Comments

On the geom cleanup panel, this command corresponds to the equivalencing edges tool.

*surfacemarkmerge()
Combines the selected surfaces into one surface, and divides the surface along the internal edges that correspond to fillets and feature lines. Syntax Arguments *surfacemarkmerge(mark, breakangle, minradius, maxradius) mark The ID of the mark containing the surfaces. The threashold used to recognize feature lines. The lower limit of the radius of curvature used to recognize fillets. The upper limit of the radius of curvature used to recognize fillets.

breakangle

minradius

maxradius

Example

To combine a surface with a feature breakangle of 30.0 and fillet radii of 1.0 and 15.0: *createmark(surfaces,1) 1 31 57 91 93 145 189 190 *surfacemarkmerge(1,30.0,1.0,15.0)

Comment

The *createmark() command is required. On the geom cleanup panel, this command corresponds to the organize by feature tool.

Command File

218

Altair Engineering, Inc.

*surfacemarkremovepinholes()
Removes pinholes. Syntax *surfacemarkremovepinholes(mark, diameter, coords, arraylength) mark The ID of the mark containing the surfaces. The upper-limit of the pinholes diameter. The ID of a double-array listing the center coordinates of the pinholes to remove, in the order x1, y1, z1, x2, y2, z2, x3, y3, z3. The array length.

Arguments

diameter

coords

arraylength Example

To remove 3 pinholes from surface 471, using a radius of 5.0 as a guide: *createmark(surfaces,1) 471 *createdoublearray(9) 1577.74 500.9 690.69 1580.8 502.6 683.4 1583.8 504.2 676.207 *surfacemarkremovepinholes(1,5,1,12)

Comment

The *createmark() and *createdoublearray() commands are required.

*surfacemarksplitwithline()
Splits a group of surfaces with a line by sweeping a line along a vector. Syntax *surfacemarksplitwithline(mark, line, vector, entire_surf_flag, distance) mark The ID of the mark containing the surfaces. The ID of the line used to split the surfaces. The vector used to sweep the

Arguments

line

vector

Altair Engineering, Inc.

219

Command File

line. entire_surf_flags If this flag is 1, then the line is swept through the entire surface. 0therwise, the line is swept for a distance of distance. The distance to sweep line if entire_surf_flags is 0.

distance

Example

To split surfaces 10 and 20 by sweeping line 11 along the z-axis: *createmark(surfaces,1) 10 20 *createvector(1,0.0000,0.0000,1.0000) *surfacemarksplitwithline(1,11,1,1,0)

*surfacemarksplitwithlines()
Splits a group of surfaces with lines by sweeping the lines along a vector. Syntax *surfacemarksplitwithlines(surf_mark, line_mark, vector, entire_surf_flag, distance) surf_mark line_mark The ID of the mark containing the surfaces. The ID of the mark containing the lines. The lines are temporarily combined into a single line, and therefore must be contiguous. The vector used to sweep the combined line. If 1, then the combined line is swept through the entire surface. If 0, the line is swept for the distance of distance. The distance to sweep the line if entire_surf_flag is 0.

Arguments

vector entire_surf_flag

distance

Command File

220

Altair Engineering, Inc.

*surfacemarksplitwithnodes()
Splits a group of surfaces with a smooth line defined by the nodes. Syntax Arguments *surfacemarksplitwithnodes(mark, node_list) mark node_list The ID of the mark containing the surfaces. The list ID of the node to be used.

*surfacemarksplitwithplane()
Splits a group of surfaces with an infinite plane. Syntax Arguments *surfacemarksplitwithplane(mark, plane) mark The ID of the mark containing the surfaces. The plane used to split the surfaces.

plane Example

To split surfaces 10 and 20 with the xy plane (normal equals the z-axis): *createmark(surfaces,1) 10 20 *createplane(1,0.0000,0.0000,1.0000,0.0000,0.0000,0.0000) *surfacemarksplitwithplane(1,1)

*surfacemarksplitwithsurface()
Splits a group of surfaces with another surface Syntax Arguments *surfacemarksplitwithsurface(mark, surface) mark The ID of the mark containing the surfaces to be split. The surface used to split the other surfaces.

surface

Example

To split surfaces 10 and 20 with surface 5: *createmark(surfaces,1) 10 20 *surfacemarksplitwithsurface(1,5)

Altair Engineering, Inc.

221

Command File

*surfacemarkuntrim()
Removes any trim lines from the selected surfaces and lets the surface expand to its natural limits. The trim lines are separated from the surface and placed in the current component. Syntax Argument *surfacemarkuntrim(surfacemark) surfacemark The mark of surfaces to be expanded.

Example

To untrim the surface with ID 645: *createmark(surfaces,1) 645 *surfacemarkuntrim(1)

Comments

Some surfaces cannot be untrimmed, such as splines created from more than 4 lines. This command is used primarily in the cleanup of imported CAD data.

*surfacemode()
Sets which surface mode the automeshing module should use. Syntax Argument *surfacemode(mode) mode The surfacemode. It should be 1, 2, 3, or 4, which correspond to mesh, keep surf, mesh, dele surf, mesh w/o surf, and surface only.

Example

To set the automeshing module so that subsequent calls to surface and plate element mesh generators use the surfaceless mode: *surfacemode(3)

*surfaceplane()
Creates a square, planar surface, and optionally, prepares it for immediate use within the automesher. It can also identify a region in the shape of a square planar surface for the automesher to use under the mesh without surface option. Syntax Arguments *surfaceplane(plane id, size) plane id The ID of the plane (vector and base)

Command File

222

Altair Engineering, Inc.

on which the surface will be created. size The length of the edges of the surface.

Example

To create a square, planar surface normal to the x axis, with the center at the origin, of size 10.0, but not create any elements: *surfacemode(4) *createplane(1,1.0,0.0,0.0,0.0,0.0,0.0) *surfaceplane(1,10.0)

Comments

*createplane() is required for this command. The *surfacemode(4) directive tells HyperMesh not to pass the information on to the automesher for element creation.

*surfaceskin()
Creates a skin surface across a line list, and optionally, prepares it for immediate use in the automesher. It can also identify a region in the shape of a skin surface for the automesher to use under the mesh without surface option. Syntax Arguments *surfaceskin(skin_linelist, auto_reverse) skin_linelist The ID of the list of lines forming the ribs of the skin surface. Indicates whether the lines should be tested for a "bow tie" condition and reversed if necessary (1 for yes, 0 for no).

auto_reverse

Example

To create a skin surface across lines 1, 2, 3, and 4 with no elements: *surfacemode(4) *createlist(lines,1) 1 2 3 4 *surfaceskin(1,1)

Comments

The *surfacemode(4) tells HyperMesh not to proceed with element creation, but to create a surface for later use. The *createlist() directive is required for this command.

Altair Engineering, Inc.

223

Command File

*surfacespherefromfournodes()
Creates a sphere which passes through the four specified nodes, and optionally, prepares it for immediate use within the automesher. It can also identify a region in the shape of such a sphere for the automesher to use under the mesh without surface option. Syntax Argument *surfacespherefromfournodes(list) list The list of the four nodes through which the surface will pass.

Example

To create a sphere which passes through nodes 1, 2, 3, and 4, but not create any elements on the sphere: *surfacemode(4) *createlist(nodes,1) 1 2 3 4 *surfacespherefromfournodes(1)

Comments

*createlist() is required for this command. The *surfacemode(4) directive tells HyperMesh not to pass the information on to the automesher for element creation.

*surfacespherefromthreepoints()
Creates a full or partial sphere, and optionally, prepares it for immediate use within the automesher. It can also identify a region in the shape of such a sphere for the automesher to use under the mesh without surface option. Syntax *surfacespherefromthreepoints(center, radius, r, theta start, theta end, angle, phi start, phi end, angle type) center radius r theta start A node specifying the center. The radius of the sphere. A node specifying the r vector. Angle at which theta starts (0.0 to < theta end). Angle at which theta ends (> theta start to 360.0). A node specifying the angle vector. Angle at which phi starts (-90.0 to <

Arguments

theta end

angle phi start

Command File

224

Altair Engineering, Inc.

phi end). phi end Angle at which phi ends (> phi start to 90.0). Defines whether the angle vector is to be theta or phi. When angle type is set to 0, the angle vector will be theta. When angle type is set to 1, the angle vector will be phi. Example To create one quarter of a sphere with a radius of 10 through using nodes 1, 2 and 3, but not create any elements: *surfacemode(4) *surfacespherefromthreepoints(1,10.0,2,0.0,180.0,3,0.0,90. 00 00,0) Comments The *surfacemode(4) directive tells HyperMesh not to pass the information on to the automesher for element creation.

angle type

*surfacespherefull()
Creates a sphere with a specified center and radius, and optionally, prepares it for immediate use within the automesher. It can also identify a region in the shape of such a sphere for the automesher to use under the mesh without surface option. Syntax Arguments *surfacespherefull(center, radius) center A node specifying the center of the sphere. The radius of the sphere.

radius Example

To create a sphere with center at node 1 and a radius of 45, but not create any elements on the sphere: *surfacemode(4) *surfacespherefull(1,45.0)

Comments

The *surfacemode(4) directive tells HyperMesh not to pass the information on to the automesher for element creation.

Altair Engineering, Inc.

225

Command File

*surfacesplitedge()
Splits a surface edge by adding nodes to the edge. This forces the automesher to create a node at the split point. Syntax Arguments *surfacesplitedge(surface, list) surface list The surface to be split. The ID of the list of nodes used to split the surface edges.

Example

To split surface 1 with nodes 10 and 11: *createlist(nodes,2) 10 11 *surfacesplitedge(1,2)

*surfacesplitwithline()
Splits a surface with a line by sweeping the line along a vector. Syntax *surfacesplitwithline(surface, line, vector, entire_surf_flag, distance) surface line The ID of surface to be split. The ID of the line used to split the surface. The vector used to sweep the line. If the entire_surf_flag is 1, then the line is swept throughout the entire surface. If the entire_surf_flag is 0, then the line is swept for a distance of distance. The distance to sweep line if entire_surf_flag is set to 0.

Arguments

vector entire_surf_flag

distance

Example

To split surface 1 by sweeping line 2 along the x-axis for a distance of 100: *createvector(3,1.0,0.0,0.0) *surfacesplitwithline(1,2,3,0,100.0)

Comments

*createmark() and *createplane() are required for this command.

Command File

226

Altair Engineering, Inc.

*surfacesplitwithplane()
Splits a surface with an infinite plane. Syntax Arguments *surfacesplitwithplane(surface, plane) surface plane Example The surface to be split. The plane used to split the surface.

To split surface 1 with the xy plane (normal equals the z-axis): *createplane(2,0.0,0.0,1.0,0.0,0.0,0.0) *surfacesplitwithplane(1,2)

*surfacesplitwithsurface()
Splits one surface with another. Syntax Arguments *surfacesplitwithsurface(surface1, surface2) surface1 surface2 Example To split surface 1 with surface 2: *surfacesplitwithsurface(1,2) The surface to be split. The surface used to split surface1.

*surfacetorus()
Creates a full or partial torus, and optionally, prepares it for immediate use in the automesher. It also can identify a toroidal region for the automesher to use with the mesh without surface option. Syntax *surfacetorus(center, major vector, normal vector, minor radius, major radius, major start angle, major end angle, minor start angle, minor end angle) center A node specifying the major center of the torus. A node specifying the major axis of the torus.

Arguments

major vector

Altair Engineering, Inc.

227

Command File

normal vector

A node specifying the normal axis of the torus. The minor radius of the torus. The major radius of the torus. Angle at which the major radius of the torus starts (0.0 to < major end angle). Angle at which the major radius of the torus ends (> major start angle to 360.0). Angle at which the minor radius of the torus starts (0.0 to < minor end angle). Angle at which the minor radius of the torus ends (> minor start angle to 360.0).

minor radius major radius major start angle

major end angle

minor start angle

minor end angle

Example

This example creates the bottom half of a torus with center at node 1, normal vector at node 12, major vector at node 4, and a major radius of 10 and a minor radius of 2.5, but does not continue to the automesher for element creation: *surfacemode(4) *surfacetorus(1,12,4,2.5,10.0,0.0000,360.0000,180.0000, 360.0000)

Comments

The *surfacemode(4) directive tells HyperMesh not to pass the information on to the automesher for element creation.

*surfacetorusfromthreepoints()
Creates a torus which passes through the three specified nodes, and optionally, prepares it for immediate use in the automesher. It also can identify a toroidal region for the automesher to use with the mesh without surface option. Syntax *surfacetorusfromthreepoints(major center, minor center, minor radius) major center A node specifying the major center of the torus. A node specifying the minor center of

Arguments

minor center

Command File

228

Altair Engineering, Inc.

the torus. minor radius A node through which the minor revolution will pass.

Example

To create a torus which has the major center at node 1, the minor center at node 5, and the minor radius at node 13, and not create any elements: *surfacemode(4) *surfacetorusfromthreepoints(1,5,13)

Comments

The *surfacemode(4) directive tells HyperMesh not to pass the information on to the automesher for element creation.

*surfacetorusfull()
Creates a torus with specified radii, and optionally, prepares it for immediate use in the automesher. It also can identify a toroidal region for the automesher to use with the mesh without surface option. Syntax *surfacetorusfull(center, normal vector, minor radius, major radius) center A node specifying the center of the torus. A node specifying the normal axis of the torus. The minor radius of the torus. The major radius of the torus.

Arguments

normal vector

minor radius major radius Example

To create a torus with center at node 1, normal at node 2, a minor radius of 5, and a major radius of 10, but not create any elements: *surfacemode(4) *surfacetorusfull(1,2,5.0,10.0)

Comments

The *surfacemode(4) directive tells HyperMesh not to pass the information on to the automesher for element creation.

Altair Engineering, Inc.

229

Command File

*surfaceuvlines()
Sets the number of surface display lines in the options panel. Syntax Argument *surfaceuvlines(number_of_lines) number_of_lines The number of surface display lines. The value must be between zero and twenty.

Example

To set the number of surface lines at 2: *surfaceuvlines(2)

*systemcommand()
If a UNIX or DOS system command is contained in a command file, and the command file is read in HyperMesh, the UNIX or DOS system command is executed. Syntax Example *systemcommand() To execute the command ABC and redirect it to the file DEF, which storess all files in the directory: *systemcommand(ABC>DEF)

*systemcreate()
Creates a rectangular coordinate system. Syntax *systemcreate(mark, type, origin, axisname, axispt, planename, planept) mark The mark ID containing the nodes at which a system should be built. The type of system being created (0 rectangular, 1 - cylindrical, 2 spherical). The ID of a node which defines the origin. A string which identifies the axis being defined with the next parameter (x, y, or z).

Arguments

type

origin

axisname

Command File

230

Altair Engineering, Inc.

axispt

The ID of a node which defines a point on the axis defined by axisname. A string which identifies the plane being defined with the next parameter (xy, xz, or yz). The ID of a node which defines a point on the plane defined by planename.

planename

planept

Example

To build a cylindrical system at node 12 with node 1 defining the origin, node 2 defining the x axis, and node3 defining the xy-plane: *createmark(nodes,1) 12 *systemcreate(1,1,1,x,2,xy,3)

*systemdeleteunused()
Removes the unused systems from a model. Syntax *systemdeleteunused()

*systempreviewunused()
Finds the unused systems in a model and puts them on a mark. Syntax Argument *systempreviewunused(mark) mark The mark number where the systems will be placed. This is used for prehighlighting the entities.

Altair Engineering, Inc.

231

Command File

*systemsetanalysis()
Sets the analysis system of an entity. Syntax Arguments *systemsetanalysis(entity type, mark, system id) entity type The type of the entity which should be set to nodes. The ID of the mark containing nodes to be updated. The ID of the system to which the nodes should have their analysis system set.

mark

system id

Comments

This command is valid only for entity type nodes.

*systemsetreference()
Sets the reference system for an entity. Syntax Arguments *systemsetreference(entity type, mark, system id) entity type The type of entities contained on the mark (systems, nodes, loads). The ID of the mark which contains the entities to be updated. The ID of the system to which the entities should have their reference system set.

mark

system id

*systemsize()
Sets the size a system will be when plotted. Syntax Argument *systemsize(size) size The size in model units in which the systems should be plotted.

Command File

232

Altair Engineering, Inc.

*tangentbetweenlines()
Creates a tangent line between a node and a line. Syntax *tangentbetweenlines(line1 id, line2 id, checkpoints, lineselected) line1 id The ID of the first line to which the tangent line is to be created. The ID of the second line to which the tangent line is to be created. The number of points to check in each line segment for tangency. The tangent line selected, if more than one exists.

Arguments

line2 id

checkpoints

lineselected

Example

To create a tangent between lines 1 and 2: *tangentbetweenlines(1,2,10,0)

Comments

If more than one tangent line is found, you must select the necessary tangent line. The number of this line (based on the order in which the tangents were found) is then used in the command string.

*tangentbetweennodeandline()
Creates a tangent line between a node and a line. Syntax *tangentbetweennodeandline(node id, line id, checkpoints, lineselected) node id The ID of the node to which the tangent line is to be created. The ID of the line to which the tangent line is to be created. The number of points to check in each line segment for tangency. The tangent line selected, if more than one exists.

Arguments

line id

checkpoints

lineselected

Altair Engineering, Inc.

233

Command File

Example

To create a tangent between node 1 and line 10: *tangentbetweennodeandline(1,10,10,0)

Comments

If more than one tangent line is found, you must select the necessary tangent line. The number of this line (based on the order in which the tangents were found) is then used in the command string as lineselected.

*templatefileset()
Sets the global template file name. Syntax Argument *templatefileset(filename) filename The file name of the template file that becomes the global template.

*tetra_cfdmesh()
Adds tetra elements to a volume that is enclosed by a complete mesh of tria elements. The elements near the surface of the volume form prism-shaped columns. Syntax *tetra_cfdmesh(prism entities, prism mark, normal entities, normal mark, growth rate, initial layers, initial prism thickness, initial prism growth rate, prism growth acceleration, opt_level) prism entities The type of entities for the prism trias mark. The mark ID for the prism trias. The type of entities for the normal trias mark. The mark ID for the normal trias. The tetramesher growth rate. The thickness of the boundary layer uniform size zone expressed factor to multiply by the local tria element size. If this number is negative, HyperMesh uses the interpolate growth option. The thickness of the first layer of three

Arguments

prism mark normal entities

prism mark growth rate initial layers

initial prism thickness

Command File

234

Altair Engineering, Inc.

tetras forming a prism adjacent to a prism tria. initial prism growth rate The growth factor to use for successive layers of prism tetras. The increase in the growth rate each successive layer. 1 2 Use the standard algorithm. Include the modifications to the algorithm to optimize mesh generation speed. Include the modifications to the algorithm to improve element quality characteristics.

prism growth acceleration

opt_level

Example

To tetramesh the volume bounded by comp1, where there is an enclosed object in component comp_airfoil that should have prism tetras next to it, and to resolve boundary layer behavior: *createmark(components, 1) comp1 *createmark(components, 2) comp_airfoil *tetra_cfdmesh(components, 1, components, 2, 1.2, 0.75, 1, 1.2, 1.05, 1)

Comments

The example uses the default values, and an inital prism thickness of 1.0.

*tetra_remesh()
Generates a new tetramesh for the volume defined by the selected tetras. Syntax *tetra_remesh(mark, growth rate, initial layers, opt_level) mark growth rate initial layers The mark of the tetras. The tetramesher growth rate. The thickness of the boundary layer uniform size zone expressed factor to multiply by the local tria element size, If this number is negative, HyperMesh uses the interpolate growth option.

Arguments

Altair Engineering, Inc.

235

Command File

opt_level

1 2

Use the standard algorithm. Include the modifications to the algorithm to optimize mesh generation speed. Include the modifications to the algorithm to improve element quality characteristics.

Example

To remesh a collection of tetras with the default growth options: *createmark(elements,1)1102 1104 1114 1115 1116 1117 1120 1121 1122 1123 1124 1126 1140 1142 1143 1145 *tetra_remesh(1,1.2,0.75)

*tetramesh()
Fills with tetra elements a volume that is enclosed by a complete mesh of tria elements. Syntax *tetramesh(float entities, float mark, fixed entities, fixed mark, growth rate, initial layers, opt_level) float entities The type of entities for the floatable trias mark. The mark ID for the floatable trias. The type of entities for the fixed trias mark. The mark ID for the fixed trias. The tetramesher growth rate. The thickness of the boundary layer uniform size zone expressed factor to multiply by the local tria element size. If this number is negative, HyperMesh uses the interpolate growth option. 1 2 Use the standard algorithm. Include the modifications to the algorithm to optimize mesh generation speed. Include the modifications to the algorithm to improve element quality characteristics. Altair Engineering, Inc.

Arguments

float mark fixed entities fixed mark growth rate initial layers

opt_level

Command File

236

Example

To tetramesh the component tmesh, using the default growth options: *createmark(components,1) tmesh *createmark(components,2) *tetramesh(components,1,components,2,1.2,0.75)

Comments

The two createmark() commands are required.

*thickmeshlines()
Used to display thick cylinders on the edges of display elements. Syntax Argument *edgemode(on) on Determines if thick display elements will be used to show the edges of an element. If set to 1, thick edges are used. If set to 0, lines are used to display the edges of elements.

*time()
Prints the current time to the command file. Syntax *time()

*titlecreate()
Creates a title. Syntax *titlecreate(name, entities, id, pointindex, color, font, anchorpoint, x, y) name entities The name of the title. The type of entity to which the title should be attached. The ID of the entity. The point index. The color of the title.

Arguments

id pointindex color

Altair Engineering, Inc.

237

Command File

font

The font to be used to display the title. The anchor point of the title. The x location of the anchor point (0.0 - 1.0). The y location of the anchor point (0.0 - 1.0).

anchorpoint x

*titledraw()
Draws a title. Syntax Argument *titledraw(titlename) titlename The name of the title which should be drawn.

*titlemodify()
Modifies a title. Syntax Arguments *titlemodify(titlename, itemname, string, value, plot) titlename itemname string The name of the title. The name of the item to be modified. The string value to which the modified item should be set. The value to which the modified item should be set. 1, if the title should be plotted after modification.

value

plot

Command File

238

Altair Engineering, Inc.

*titlepop()
Pops a title to the front. Syntax Argument *titlepop(titlename) titlename The name of the title.

*titlepush()
Pushes a title to the background. Syntax Argument *titlepush(titlename) titlename The name of the title to be pushed to the background.

*titlesetcurrent()
Sets a title to be the current title. Syntax Argument *titlesetcurrent(titlename) titlename The name of the title which should be made current.

*toleranceset()
Sets the tolerance to be used when calculating the intersections of lines, etc. Syntax Argument *toleranceset(tolerance) tolerance The tolerance.

Altair Engineering, Inc.

239

Command File

*translatecuttingplane()
Translates the base of the cutting plane. Syntax Argument *translatecuttingplane(distance) distance The distance that the cutting plane should be translated.

*translatemark()
Translates entities along a vector a specified distance. Syntax Arguments *translatemark(entity type, mark, vector, distance) entity type The type of entity which to be translated. The number of the mark to be translated. The vector to translate along. The distance to translate the mark.

mark

vector distance Example

To translate node 1 along the x axis 5 units: *createvector(1,1.0,0.0,0.0) *createmark(nodes,1) 1 *translatemark(nodes,1,1,5)

Comments

A *createvector() and *createmark() command are required to define the vector and mark.

Command File

240

Altair Engineering, Inc.

*translatemarkwithsystem()
Translates entities along a vector of a specified system aspecified distance. Syntax *translatemarkwithsystem(entity type, mark, vector, distance, system id,origin) entity type mark The type of entity to be translated. The number of the mark to be translated. The vector to translate along. This vector is relative to the specified system. The distance to translate the mark. The ID of the system which the vector is relative to. Note that the type of system affects the meaning of vector. For example, the vector (1, 0, 0), xaxis, in a cylindrical coordinate system translates the mark radially out from the origin. If zero, the vector is based at the origin of the system. Otherwise, it specifies a node ID whose coordinates define the base point of the vector.

Arguments

vector

distance system

origin

Example

To translate node 1, 5 units along the y-axis of system 13 with node 2 being the origin: *createmark(nodes,1) 1 *createvector(1,0.0000,1.0000,0.0000) *translatemarkwithsystem(nodes,1,1,5,13,2)

Comments

A *createmark() and *createvector() command are required to define the mark and vector. Translations in cylindrical and spherical coordinate systems may be tangential. A side effect of this is that the habit of reject-ing the translation by simply translating again using a negative distance will not work. This command only translates entity types of element, node, component, and system. If an entity type of line or surface is part of a component, then they are not translated.

Altair Engineering, Inc.

241

Command File

*trueview()
Modifies the view so that a model-defined vector is normal to the screen. Syntax Argument *trueview(plane id) plane id The ID of the plane about whose normal the vector is made perpendicular to the screen, and whose base will be placed in the center of the screen.

Example

To make the vector (1.0, 0.0, 0.0) normal to the screen and to place the point (0.0, 0.0, 0.0) at the center of the screen: *createplane(1,1.0,0.0,0.0,0.0,0.0,0.0) *trueview(1)

*unmaskall()
Unmasks all masked entities. Syntax *unmaskall()

*unmaskmark()
Unmasks a group of entities. Syntax Arguments *unmaskmark(entities, mark) entities mark The type of entities to be unmasked. The mark which contains the entities to be unmasked.

Command File

242

Altair Engineering, Inc.

*unmaskshown()
Unmasks all entities which would appear on the screen if they were not masked. Syntax *unmaskshown()

*unsmoothelements()
From within the automeshing module, undoes the last operation of the *smoothelements() command for the specified face. Syntax Argument *unsmoothelements(faceindex) faceindex The index of the face into the particular surface under consideration.

*unstitchsurfaces()
Splits a surface into multiple surfaces (one new surface per face). Syntax Argument *unstitchsurfaces(mark) mark The mark ID of the surfaces to be unstitched.

Example

To unstitch surfaces 109 and 131: *createmark(surfaces,1) 109 131 *unstitchsurfaces(1,0)

Comments

*createmark() is required for this command.

Altair Engineering, Inc.

243

Command File

*updatecolor()
Changes HyperMesh 3.0 entity colors to their equivalent in HyperMesh 3.1. Syntax Arguments *updatecolor(entity type, mark) entity type The type of entities contained on the mark. Valid entity types are components, load collectors, system collectors, groups, curves, and assemblies. The ID of the mark.

mark

*usercheck()
Runs a template that can be used to check element quality Syntax Arguments *usercheck(template file, output file, all) template file output file all The name of the template file. The name of the output file. Determines the entities the template scans. 1 0 Comments Specifies all entities. Specifies only visible entities.

The template file can use the *markfailed() template command to mark elements that do not pass any user-specified test. *markfailed() highlights the element on the screen and also puts the element on the user mark.

Command File

244

Altair Engineering, Inc.

*vectorcreate()
Creates a vector entity using three components and a local coordinate system. Syntax Arguments *vectorcreate(markid, xcomp, ycomp, zcomp, systemid) markid The ID of the mark that contains the nodes where you want to create a vector. The global x component of the vector entity. The global y component of the vector entity. The global z component of the vector entity. The ID of the local coordinate system in which to create the vector. Use zero (0) to specify the global coordinate system.

xcomp ycomp zcomp systemid

*vectorcreate_twonode()
Creates a vector entity described by two nodes. Syntax Arguments *vectorcreate_twonode(n1, n2) n1 n2 Comments The ID of the base node of the vector. The ID of the far node of the vector.

This vector entity has both nodes associated with it. The magnitude and direction of the vector changes if the positions of the nodes are moved.

*vectorcreate_xproduct()
Creates a vector entity by using the cross product of two other vectors. Syntax *vectorcreate_xproduct(basenode, vector A, vector B, magnitude) basenode The ID of the node where the base of the result is located after it is created. The ID of the first vector entity in the cross product.

Arguments

vector A

Altair Engineering, Inc.

245

Command File

vector B

The ID of the second vector entity in the cross product. Magnitude of resulting vector.

magnitude

*vectorlabel()
Turns the label(s) for vectors on or off. Syntax Argument *vectorlabel(on) on Use: 1 for on. 0 for off.

*vectorplot()
Generates a vector plot. Syntax *vectorplot(title, vector size, mesh color, full size, constant size) title The title which to be placed on the plot. The size of the vectors plotted on the model in model units. The color of the mesh (-1 for the element color). A logical which determines if the plot is full size. Set to 1 to plot all vectors with a constant length; otherwise, set to 0.

Arguments

vector size

mesh color

full size

constant size

Command File

246

Altair Engineering, Inc.

*vectorsize()
Sets the size of a vector when it is plotted. Syntax Argument *vectorsize(size) size The size in model units in which the vectors should be plotted.

*vectorupdate()
Updates vector entities using three components and a local coordinate system. Syntax *vectorupdate(markid, xcomp, ycomp, zcomp, magnitude, systemid, magnitudeflag, directionflag, systemflag) markid The ID of the mark that contains the vectors to update. The global x component of the vectors. The global y component of the vectors. The global z component of the vectors. The magnitude of the vector. The ID of the local coordinate system in which to update the vectors. A flag (0,1) to update the magnitude of the vector. A flag (0,1) to update the direction of the vector. A flag (0,1) to update the system of the vector.

Arguments

xcomp

ycomp

zcomp

magnitude systemid

magnitudeflag

directionflag

systemflag

Altair Engineering, Inc.

247

Command File

*vectorupdate_twonode()
Updates a vector entity described by two nodes. Syntax *vectorupdate_twonode(markid, n1, n2, updatetail, updatehead) markid The ID of the mark that contains the vectors to be updated. The ID of the base node of the vector. The ID of the 2nd node of the vector. A flag (0,1) to update the tail(base) node. A flag (0,1) to update the head node.

Arguments

n1 n2 updatetail

updatehead Comments

This vector entity has both nodes associated with it. The magnitude and direction of the vector changes if the nodal positions are moved.

*vectorupdate_xproduct()
Updates a vector entity created from the cross product of two other vectors. Syntax *vectorupdate_xproduct(markid, basenode, vector A, vector B, magnitude, baseflag, directionflag) markid The ID of the mark that contains the vectors to update. The ID of the node where the base of the result is located after it is updated. The ID of the first vector entity in the cross product. The ID of the 2nd vector entity in the cross product. Magnitude of vectors. A flag (0,1) to update the base node of the vector. A flag (0,1) to update the direction and magnitude of the vector.

Arguments

basenode

vector A

vector B

magnitude baseflag

directionflag

Command File

248

Altair Engineering, Inc.

*verticescombine()
Given one surface fixed point to retain, and one or more additional fixed points, combines all of the points into the first point. Some surface edges or entire surfaces may be deleted in the process. Syntax Arguments *verticescombine(retained_point, mark) retained_point mark The ID of the point to keep. The ID of the mark containing the points that are to be adjusted.

Example

To combine points 7, 8, and 9 into point 21: *createmark(points,2) 7 8 9 *verticescombine(21,2)

Comments

Typically, the points to be combined must be very close to each other.

*verticesmarksuppress()
Removes the selected fixed points from their surfaces, and gives you the option to create free points at those locations. Syntax Arguments *verticesmarksuppress(mark, breakangle, saveaspoints) mark breakangle The ID of the mark containing the points. The test threshold used to prevent the accidental removal of points that correspond to corners, which are necessary for proper mesh generation. 1 To create free points at the locations of the removed fixed points.

saveaspoints

Example

To suppress points 25 and 26, using a 30 degree breakangle: *createmark(points,1) 25 26 *verticesmarksuppress(1,30.0,0)

Comments

The *createmark() command is required.

Altair Engineering, Inc.

249

Command File

*view()
Modifies the current view. Syntax Argument *view(view name) view name The view name can be one of the following strings: bottom down Bottom view. Rotates rotation angle degrees down. Front view. Rotates rotation angle degrees to the left. Other side view. Plan view. Rear view. Rotates rotation angle degrees to the right. Side view. Rotates rotation angle degrees up. Left side view. Right side view. Top view. Isometric view 1. Isometric view 2. Reverse the present view. Rotate view counterclockwise. Rotate view clockwise.

front left

oside plan rear right

side up

leftside rightside top iso 1 iso 2 reverse

ccw

cw Comments

The rotation angle is defined by *rotationangleset().

Command File

250

Altair Engineering, Inc.

*view_restoreprevious()
Return to previous view state. Syntax *view_restoreprevious()

*visualizemode()
Sets the parameters for visualization mode. Syntax Arguments *visualizemode(hiddenline, fillmode, meshmode, plot) hiddenline Set to 1 for hidden line, 0 for wire frame. Set to -2 for contours, -1 for element color, or 0-15 for constant color. Set to -2 for contours, -1 for element color, or 0-15 for constant color. Set to 1 to replot the screen after this command has executed, otherwise 0.

fillmode

meshmode

plot

Comments

This command is valid only after the system has entered into visualization mode.

*wait()
Pauses execution of a command file. Syntax Argument *wait(type) type Specifies the type of wait state. If no parameter is specified or type is set to zero, HyperMesh waits for a mouse button to be selected before continuing execution. If a value is specified, HyperMesh waits that many seconds before continuing execution.

Example

To make a command file pause for 3 seconds: *wait(3)

Altair Engineering, Inc.

251

Command File

*walldisplay()
Displays a wall. Syntax Arguments *walldisplay(blockname, function, wallname) blockname The name of the block which contains the wall. The function to be performed. The name of the wall.

function wallname

*weld()
Creates a weld element between two nodes. Syntax Arguments *weld(independent, dependent, length, systems, movenode) independent dependent length systems The independent node. The dependent node. The length of the weld. Determines if systems should be built at the end of the node (1 for yes, 0 for no). Set to 1 to move the node perpendicular to the surface of the elements, otherwise 0.

movenode

Example

To build a weld element between nodes 100 and 101 with length 1.0 and without systems being built at the ends of the weld element: *weld(100,101,1.0,0,0)

Command File

252

Altair Engineering, Inc.

*window()
Modifies the current window: Syntax Arguments *window(function, xmin, ymin, xmax, ymax) function One of the following which defines the function being performed: When function is set to 0, the window is redefined so that all of the current model is inside the window. All of the other parameters are ignored. When function is set to 1, the window is recalculated. All of the other parameters are ignored. This function is only used internally. When function is set to 2, zooming is performed on the current window based on the value passed in xmin. If xmin is positive, the current window is multiplied by xmin, and the result is zooming in. If xmin is negative, the current window is divided by xmin, and the result is zooming out. This is defined each time the + and zooming options are used. When function is set to 3, the window is set to the values passed in xmin, ymin, xmax, and ymax. The parameters are specified in model units. This is defined each time the z zooming option is used. When function is set to 4, the window is centered at the point specified by xmin and ymin. The parameters are specified in model units. This is defined each time the c paning option is used. xmin ymin xmax ymax The minimum x value of the window. The minimum y value of the window. The maximum x value of the window. The maximum y value of the window.

Altair Engineering, Inc.

253

Command File

*writefile()
Saves a binary HyperMesh database. Syntax Argument *writefile(filename) filename The name of the file where the current database is to be saved.

Example

To save the current model in a file called mymodel.hm: *writefile(mymodel.hm)

Comments

If the file already exists, HyperMesh asks for confirmation before overwriting.

*xyplotchangemode()
Changes the mode of an extended plot. Syntax Arguments *xyplotchangemode(plotname, mode) plotname mode Example Comments Name of the extended (dual) plot to change New mode value (2 or 5)

*xyplotchangemode(results, 5) Extended (or dual) plots can display data in two modes. In complex mode, (mode==2), the Y-axis of the bottom plot is the real component, while the Y-axis of the top plot is the imaginary component. In phase/magnitude mode (mode==5), the Y-axis of the bottom plot is magnitude (in logorythmic form), while the Y-axis of the top plot is phase. Other mode indices (besides 2 and 5) are reserved for future use.

Command File

254

Altair Engineering, Inc.

*xyplotcoloroverride()
Sets the override color for xy plots. Syntax Argument *xyplotcoloroverride(color) color Set to the color which should be used to plot all of the xy plot information on the screen (1-15).

Comments

If the color is set with this command, all of the entities on an xy plot are plotted in that color. If color is set to zero, then the color of each of the entities on the xy plot is used.

*xyplotcreate()
Creates an xy plot. Syntax Arguments *xyplotcreate(plot name, like plot) plot name like plot The name of the plot to be created. The name of the plot from which the new plot should get its default values.

*xyplotcreatecomplex()
Creates an extended or dual plot that contains two sub-plots. Syntax Argument *xyplotcreatecomplex(plot name) plot name The name of the plot to be created.

*xyplotcurvecreate()
Creates a curve. Syntax Argument *xyplotcurvecreate(curve name) curve name The name of the curve being created.

Altair Engineering, Inc.

255

Command File

*xyplotcurvemodify()
Modifies a curve. Syntax *xyplotcurvemodify(curve name, item name, string, value, plot) curve name The name of the curve being modified. The name of the item of data being modified. The string value of the item. The value of the item. A logical which determines if the current xy plot should be replotted when the change is made to the curve.

Arguments

item name

string value plot

*xyplotcurvepermute()
Permutes a curve. Syntax Argument *xyplotcurvepermute(curve name) curve name The name of the curve to be permuted.

*xyplotdraw()
Plots an xy plot. Syntax Argument *xyplotdraw(plot name) plot name The name of the xy plot to be replotted.

Command File

256

Altair Engineering, Inc.

*xyplotexpand()
Expands a plot to cover the entire graphics region of the screen. Syntax Argument *xyplotexpand(plot name) plot name The name of the xy plot to be expanded.

*xyplotfindcurves()
Resizes the xy plot window so that the curves on the xy plot are fully visible. Syntax Argument *xyplotfindcurves(plot name) plot name The name of the plot to be modified.

*xyplotmodify()
Modifies an xy plot. Syntax Arguments *xyplotmodify(plot name, item name, string, value, plot) plot name item name The name of the plot to be modified. The name of the data item associated with the xy plot which should be modified. The string value of the data item. The value of the data item. A logical which determines if the xy plot should be redrawn after modification.

string value plot

Altair Engineering, Inc.

257

Command File

*xyplotonecurvemath()
Performs a math function on a curve. Syntax Arguments *xyplotonecurvemath(function, outputname, xbased, factor) function outputname xbased The function being performed. The name of the output curve. 1, if the function should work on the x coordinate; 0, if the function should work on the y coordinate. The factor to be used in the calculation.

factor

*xyplotorganize()
Organizes the active plots so that they are fully visible on the screen. Syntax *xyplotorganize()

*xyplotpage()
Pages through the active xy plots making each plot the entire size of the screen, and then pausing until a mouse click. Syntax *xyplotpage()

*xyplotpop()
Pops an xy plot to the top level. Syntax Argument *xyplotpop(plot name) plot name The name of the plot to be popped.

Command File

258

Altair Engineering, Inc.

*xyplotpush()
Pushes an xy plot to the bottom level. Syntax Argument *xyplotpush(plot name) plot name The name of the plot to be pushed.

*xyplotreadcurve()
Reads a curve(s) from an ASCII file. Syntax Argument *xyplotreadcurve(filename) filename The name of the file which contains the curve data.

*xyplotregisterexternalreader()
Registers a translator for use in the edit curves panel. Syntax Argument Example Comments *xyplotregisterexternalreader(path) path path of the executable for the reader.

*xyplotregisterexternalreader(daisy.exe). External readers allow you to expand the file reading capabilities of the edit curves panel through the addition of custom readers. Custom readers can be written in C or Fortran.

*xyplotregisterimporttemplate()
Registers an import template. Syntax Argument *xyplotregisterimporttemplate(filename) filename The name of your template file.

Altair Engineering, Inc.

259

Command File

*xyplotsetcurrent()
Sets the current xy plot. Syntax Argument *xyplotsetcurrent(plot name) plot name The name of the plot to be made current.

*xyplotsetcurve()
Sets the current curve. Syntax Argument *xyplotsetcurve(curve name) curve name The name of the current curve.

*xyplotsetcurves()
Sets the curve pointers on a plot. Syntax Arguments *xyplotsetcurves(plotname, mark) plotname The name of the plot whose curve pointers should be set. The ID of the mark which contains the curves to be drawn on the plot.

mark

*xyplotsetsecondcurve()
Sets the second curve to be used when performing mathematical functions on a curve. Syntax Argument *xyplotsetsecondcurve(curvename) curvename The name of the curve.

Command File

260

Altair Engineering, Inc.

*xyplotstack()
Stacks the active xy plots. Syntax *xyplotstack()

*xyplottwocurvemath()
Performs a math function on two curves. Syntax Arguments *xyplottwocurvemath(function, outputcurve, xbased) function outputcurve xbased The function to be performed. The name of the output curve. 1, if the function should operate on the x coordinate; 0, if the function should operate on the y coordinate.

*xyplotwindow()
Sets the minimum and maximum values for the plot window. Syntax Arguments *xyplotwindow(plotname, xmin, xmax, ymin, ymax) plotname xmin The name of the plot. The minimum value which the window should be set to along the x axis. The maximum value which the window should be set to along the x axis. The minimum value which the window should be set to along the y axis. The maximum value which the window should be set to along the y axis.

xmax

ymin

ymax

Altair Engineering, Inc.

261

Command File

*xyplotzoomout()
Modifies the window of an xy plot by zooming out (reducing the size of the curves). Syntax Argument *xyplotzoomout(plot name) plot name The name of the plot to be modified.

*zoomfactorset()
Sets the zoom factor used when a + or - is selected in the permanent menu. Syntax Argument *zoomfactorset(factor) factor The new zoom factor.

Command File

262

Altair Engineering, Inc.

S-ar putea să vă placă și