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