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); } |