Skip to content

2. Building a Model

dmorchard edited this page Jun 15, 2019 · 5 revisions

Creating a New Finite Element Model

The FEModel class is used to generate a finite element model. To create a new model simply use a statement like this:

Dim myFrame As New FEModel

That's all there is to it. You now have a new finite element model named "myFrame". The name is arbitrary. You can use any name you like.

Adding Nodes to the Finite Element Model

The AddNode function is built into the FEModel class to add nodes to the model. Access it using the dot operator "." as follows:

myFrame.AddNode("N1", 0, 0)
myFrame.AddNode("N2", 5, 10)

This example added two nodes named "N1" and "N2" to the model "myFrame". Again, the names "N1" and "N2" are arbitrary. You can use any name you like. The coordinates of "N1" are X = 0 and Y = 0. The coordinates of "N2" are X = 5, and Y = 10.

Adding Members to the Finite Element Model

Members can be added using the AddMember function of the FEModel class.

myFrame.AddMember("M1", "N1", "N2", 29000, 100, 15)

This example just created a member named "M1" spanning from node "N1" to node "N2", with a modulus of elasticity of 29000, a moment of inertia of 100, and an area of 15. Note that if "N1" and "N2" were not previously added to the model, this would produce an error.

xlFrame can use any unit system, as long as they are all consistent with each other (i.e. don't mix inches and feet in one model - use one or the other).

Adding Supports to the Finite Element Model

Supports can be added as follows:

myFrame.EditSupport("N1", True, True, False)
myFrame.EditSupport("N2", False, True, True)

This added a support to node "N1" in the X and Y directions, The rotation about the Z axis has been left free. For node "N2" a support has been added in the Y direction, and rotation about the Z axis has been restrained.

Editing Member End Releases

End releases can be used to model hinges at each end of a member:

myFrame.EditEndReleases("M1", True, False)

This code added an end release to the start of the member, and left the end of the member fixed.

Adding Nodal Loads to the Finite Element Model

Nodal loads can be added as follows:

myFrame.AddNodeLoad("N1", 5, 3 -30)

This added a nodal load to node "N1". The load is 5 in the X direction, 3 in the Y direction and a moment of -30 has been applied.

Adding Member Loads to the Finite Element Model

Concentrated moments, point loads and distributed loads can be added to members:

myFrame.AddMemberMoment("M1", -25, 4)
myFrame.AddMemberPointLoad("M1", 10, 3, Transverse)
myFrame.AddMemberDistLoad("M1", 50, 75, 2, 6, Axial)

Here a moment of -25 has been applied to member "M1" at a distance of 4 from the start of the member. Additionally a transverse point load of 10 has been added at a distance of 3 and a linear distributed axial load that varies from 50 to 75 has been applied over the member between a distance of 2 to 6 from the start of the member.

Alternatively, if we don't want to calculate the length of the member, we can substitute values of -1 for the start and ending points of the load, and the program will auto-calculate start and end points for the load based on the length of the member:

myFrame.AddMemberDistLoad("M1", 50, 75, -1, -1, Axial)

The important thing to remember here is that these loads are defined relative to the member's local axis, rather that the global structure axis. Typical beam sign convention has been used for each element, with positive loads acting downward on the element.