Restraints

Each restraint applied to a node within a Multiframe structural model is represented by a Restraint object.  All of the restraints applied to the structural model are listed within a Restraints collection that is stored as part of the Frame object.

 

 

A summary of all the properties and methods of the Restraint object are listed in the table below.

 

Property

Type

Description

Code

Variant

Read Only.  Returns an array of values identifying the restrained degrees of freedom applied by the restraint.

DOF

Boolean

Get/Set whether a specific degree of freedom in restrained.

Global

Boolean

Get/Set whether the restraint is applied in the global or local nodal coordinate system.

Kind

String

Get/Set the kind of the element.

Node

Node/Variant

Get/Set the node to which the restraint is applied.

Type

mfRestraintType

Get/Set the type of restraint.

 

The Application, Frame, Number, Label and Index properties and the Delete method are common to many objects and are described in Chapter 2.

Restraining Nodes

A new spring can be attached to a node by calling the AddRestraint method of the Restraints collection.  This method has two parameters that specify the node to which the restraint is to be attached and the degrees of freedom to be restrained.  The node to which the restraint is applied is passed as a variant parameter and so the node can be identified using either its index or by using a Node object.  The degrees of freedom to be restrained at a node can be described in three ways.  The simplest method is by name, which allows standard restraints such as rollers, pinned, or rigid restraints to be applied very easily.  Standard restraints can also be identified by an enumerated value of type mfRestraintType.  The last technique allows each degree of freedom to be individually restrained.  The names and enumerated values describing the standard type of restraints are described later in this section.  The following code demonstrates the different parameters that can be used when adding a restraint to a node.

Dim myRest As Multiframe.Restraint
 
With = myFrame.Restraints
  ’Add pinned restraint to node 1
  Set myRest =.AddRestraint(1,Array(True,True,True,False,False,False))

  ’Add roller restraint to node 2
  Set myRest =.AddRestraint(2,mfRestraintPinnedxRoller)

  ’Add rigid restraint to node 3
  Set myRest = .AddRestraint(3, "Rigid")
End With

Properties

The Node property of the Restraint object identifies the node to which the restraint is attached.  This property, which provides a reference to a Node object, may also be used to change the node to which the restraint is applied.  This property may be set equal to any variant value that represents a node.

 

The degrees of freedom restrained by a restraint are specified via the Code property of the Restraint object.  This property is an array of six Boolean values, each value corresponding to a degree of freedom at the node to be restrained.  When an entry in the array is set true, the corresponding degree of freedom will be restrained.  A degree of freedom can also be restrained via the DOF property.  This property has a single parameter of type mfDOF that specifies a degree of freedom and has a Boolean value of true if that degree of freedom is restrained.

 

A number of standard restraints may be identified using an enumerated value of type mfRestraintType or by name.  These standard types of restraints are listed in the table below.  The Type property of the Restraint object is used to specify the type of restraint using the enumerated value.  This is complemented by the Kind property that specifies the type of the restraint by name. Both of these properties may be used to set the type of restraint.

 

Restraint Name

mfRestraintType

Value

Pinned

mfRestraintPinned

1

Rigid

mfRestraintFixed

2

x Roller

mfRestraintPinnedxRoller

3

y Roller

mfRestraintPinnedyRoller

4

z Roller

mfRestraintPinnedzRoller

5

x Guide

mfRestraintRigidxRoller

6

y Guide

mfRestraintRigidyRoller

7

z Guide

mfRestraintRigidzRoller

8

 

mfRestraintRotational

9

 

mfRestraintUnknown

0

 

The Global property of a restraint determines if the restraint is applied in the global coordinate system of the local coordinate system of the node to which the restraint is applied.  All nodes added within Multiframe are by default added in the local coordinate system and it is advisable not to change this property from the value set by Multiframe.

Finding all the Restraints at a Node

All the restraints at a node can easily be obtained using the Restraints property of the Node object.  This property returns a RestraintList object that contains a reference to every restraint applied to that node.  The Restraints property of a NodeList object extends this functionality and returns a RestraintList containing all the restraints attached to any of the nodes in the list.

This technique can be applied to determine the associate between many other objects within the model.