IES VisualAnalysis User's Guide
Example: Moving Load

Requires: Advanced Level

Moving Load
Copy Code
//Build a custom moving load on an elevated concrete
//slab.  Assume the moving load is from equipment
//that is driven half way across the slab and then turns
//90 degrees and drives off the slab

SetUnits("Kips & Inches");

//input
var xspan = 20.0*12;
var zspan = 22.0*12;
var holeLeft = 12.0*12;
var holeTop = 14.0*12;
var holeSize = 60.0;
var slabT = 6.0;
var mat = "Concrete (F'c = 4 ksi)";
var elementSize = 50.0;
var loadMag = -2.0;
var loadSteps = 12;

//define the vertices (X,Z plane);
var v1 = AddVertex(0, 0, 0);
var v2 = AddVertex(0, 0, zspan);
var v3 = AddVertex(xspan, 0, zspan);
var v4 = AddVertex(xspan, 0, 0);

//define the slab
var a = AddArea(v1, v2, v3, v4);

//pin the edges of the slab
foreach(var side in AreaSides())
{
    SupportSide(side, true, true, true, false, false, false);
}

//add a hole
var vh1 = AddVertex(holeLeft, 0, holeTop);
var vh2 = AddVertex(holeLeft, 0, holeTop + holeSize);
var vh3 = AddVertex(holeLeft + holeSize, 0, holeTop + holeSize);
var vh4 = AddVertex(holeLeft + holeSize, 0, holeTop);
AddHole(vh1, vh2, vh3, vh4);

//define the mesh
Mesh(a, slabT, mat, elementSize);

//finally, add the moving load
int pattern = 1;
//first the section of the load parallel to the X axis
var dx = xspan / 2.0 / (loadSteps-1);
for(var i = 0; i < loadSteps; i++)
{
    var scName = $"L{pattern}";
    AddServiceCase(scName, "L", true, true, pattern++);
    var n = AddNode(dx * i, 0, zspan / 2.0);
    NodeForce(scName, n, 0, loadMag, 0);
}
//now the equipment turns and drives off the slab parallel to the Z axis
var dz = zspan / 2.0 / (loadSteps - 1);
for(var i = 1; i < loadSteps; i++)
{
    var scName = $"L{pattern}";
    AddServiceCase(scName, "L", true, true, pattern++);
    var n = AddNode(xspan / 2.0, 0, dz * i + zspan / 2.0);
    NodeForce(scName, n, 0, loadMag, 0);
}