Node Linking

Joint linking or master/slave grouping in a model is represented using the NodeLinkGroup object.  This object encapsulates all the properties of the linked group of nodes such as which degrees of freedom are linked, the linked nodes and the name of the group.  All the joint linking groups in a structural model are contained within the NodeLinkGroups collection which can be referenced directly from the Frame object using the property of the same name.

 

 

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

 

Property

Type

Description

DOF

Boolean

Get/Set whether a specific degree of  freedom is slaved.

Label

String

Get/Set name of the group.

MasterNode

Boolean

Get/Set the master node.

Nodes

NodeList/Variant

Get/Set the list of the linked nodes.

LinkedDOF

Variant

Get/Set the slaved degrees of freedom.

 

 

Method

Returns

Description

AddNodes

 

Adds nodes to the group.

RemoveNodes

 

Removes nodes from the group

 

In addition, the Application, Frame, Number and Index properties as well as the Delete method are common to many objects and are described in Chapter 2.

Creating a linked group of Nodes

A new master/slave grouping is added to a frame using the AddGroup method of the NodeLinkGroups collection.  This method requires four parameters that specify the name of the group, the nodes to be linked in the group, the master node and which degrees of freedom are linked together by the group.  The nodes in the group are specified using a variant parameter and so any value representing a group of nodes can be used to specify this list. Typically this will be either an array of indices or a NodeList object.  Similarly, the master node is also specified as a variant and as such can be identified by any value representing a single node.  The final parameter identifying the slaved degrees of freedom is also a variant parameter but it must contain an array of six Boolean values that correspond to each of the degrees of freedom.  The entries in this array should be set as true if the corresponding degree of freedom is to be restrained.  The AddGroup method returns the NodeLinkGroup object referencing the new group added to the frame.

 

The following code demonstrates how to add a group of linked nodes to the frame.  In this example, all the nodes at y=4.5 are linked together to form a floor with rigid in-plane behaviour.

Dim myGroup As Multiframe.NodeLinkGroup
Dim myNodeList As New Multiframe.NodeList
Dim dof(1 To 6) As Boolean

dof(1) = True
dof(2) = False
dof(3) = True
dof(4) = False
dof(5) = True
dof(6) = False

' Select all nodes in first floor which is at y=4.5
' by finding all nodes lying between y=4 and y=5
Set myNodeList = myFrame.Nodes.Find("y", 4, 5)

’ Create the linked group
’ The first node in the list is used as the master node
With myFrame.NodeLinkGroups
  Set myGroup = .AddGroup("Floor 1", myNodeList, myNodeList(1), dof)
End With

In this example to Find method of the Nodes collection is used to select the list of nodes to be linked.  The Find method is common to most collections and lists in the Multiframe Object Model.  It is used to find all the items in the collection or list with a property that meets a specified criterion.  In this instance, this method has been used to find all the nodes with a y-coordinate lying between 4 and 5.  The Find method is described in detail in Chapter 10.

Properties

The Nodes property of the NodeLinkGroup object returns a NodeList object containing each of the nodes in the linked group.  This property can also be used to set the nodes in the group and can be set equal to any value that represents one or more nodes such as a NodeList object.  The master node for the linked group is identified via the MasterNode property.  This property returns the Node object representing the master node.  This property can be used to set the master node and can be set equal to any value used to represent a single node such as it’s index or a Node object.

Dim myGroup As Multiframe.NodeLinkGroup
Dim myNodeList As New Multiframe.NodeList
 
' Find all nodes in second floor which is at y=6.5
Set myNodeList = myFrame.Nodes.Find("y", 6.4, 6.6)

’ Reset nodes in the group
myFrame.NodeLinkGroups(“Floor 2”).Nodes = myNodeList
myFrame.NodeLinkGroups(“Floor 2”).MasterNode = myNodeList(1)

The degrees of freedom linked by the group can be identified via two properties of the NodeLinkGroup object.  The DOF property accepts a single parameter identifying a nodal degree of freedom and returns true if that degree of freedom is linked.  The SlavedDOF property returns an array of six (6) Boolean values corresponding to each of the nodal degrees of freedom.  The entires in this array are set true if the corresponding degree of freedom is linked by the group.

Dim myGroup As Multiframe.NodeLinkGroup
Dim myNodeList As New Multiframe.NodeList

’ Reset nodes in group 2 to form rigid wall in XY plane
myFrame.NodeLinkGroups(2).DOF(1) = true
myFrame.NodeLinkGroups(2).DOF(2) = true
myFrame.NodeLinkGroups(2).DOF(3) = false
myFrame.NodeLinkGroups(2).DOF(4) = false
myFrame.NodeLinkGroups(2).DOF(5) = false
myFrame.NodeLinkGroups(2).DOF(6) = true

’ Set linked DOF in group named “Floor 2”
myFrame.NodeLinkGroups(“Floor 2”).LinkedDOF = Array(1,0,1,0,1,0)

The name of the group is referenced via the Label property of the NodeLinkGroup object.

Methods

Nodes may be added or removed from the linked group using the AddNodes and RemoveNodes methods of the NodeLinkGroup object.  These methods take a single variant parameter that specifies the nodes to be added or removed from the group.  A simple example demonstrating the various parameters that can be passed to these methods is shown below.

Dim mylist As New Multiframe.NodeList

mylist.Add "20-30"

 

With mfApp.Frame.nodeLinkGroups(1)
  ’Add nodes to linked group
  Call .AddNodes(1)                 'Add node by index
  Call .AddNodes("2-9,12")          'Add nodes listed by index
  Call .AddNodes(mfApp.Frame.Nodes(10))  'Add node using node object
  Call .AddNodes(mylist)                ‘Add nodes using list

  ‘Remove nodes from linked group
  Call .RemoveNodes(1)                  'By index
  Call .RemoveNodes("2-9,12")
  Call .RemoveNodes(mylist)             'Using a list of nodes

End With