You are on page 1of 5

// Program for Designing a Gantry Girder of Type

(1) Hand Operated Crane Type


(2) Electrically Operated Crane Type
#include<iostream.h>
#include<conio.h>
#include<math.h>
#define E 200000
class gantry
{
private:
double
wk,wc,wr,w1,w2,w3,w,fl,fg,fa,b,g,l,a,ra,m,m1,m2,m3,e,x,de,wg,zreq,fy,depth,v,tv,t,c,mx
,my,bf,channel,ry,lemda,fbx,fby,fbcx,fbcy,x1;
double i,zx,zy,z,def;
int choice,s;
public:
void loadcalc();
void bm_des();
void bm_check();
void lat_des();
};
void gantry::loadcalc()
{
cout<<"\nEnter Capacity of Crane (Wk) in kN:";
cin>>wk;
cout<<"\nEnter Longitudinal spacing of Columns (L) in m:";
cin>>l;
cout<<"\nEnter Gantry girder spacing (B) in m:";
cin>>b;
cout<<"\nEnter Wheel spacing of Crane (a) in m:";
cin>>a;
cout<<"\nEnter Edge distance (g) in m:";
cin>>g;
cout<<"\nEnter Weight of trolley(crab) car (Wr) in kN:";
cin>>wr;
cout<<"\nEnter Weight of Crane girder (Wc) in kN:";
cin>>wc;
w1=wc/4;
w2=((wk+wr)*(b-g))/(2*b);
cout<<"\n\nFOR HAND OPERATED CRANE TYPE 1\n";
cout<<"FOR ELECTRICALLY OPERATED CRANE TYPE 2\n";
cin>>choice;

switch(choice)
{
case 1:
w3=(0.1*wk*(b-g))/(2*b);
fl=(0.025*(wk+wr)/2);
s=1;
break;
case 2:
w3=(0.25*wk*(b-g))/(2*b);
fl=(0.05*(wk+wr))/2;
s=2;
break;
}
w=(w1+w2+w3);
cout<<"\n(A) Load Analysis:";
cout<<"\nWheel loads due to each effect are:";
cout<<"\n(1)From Crane:"<<w1<<"kN";
cout<<"\n(2)From Crab and lifting weight:"<<w2<<"kN";
cout<<"\n(3)Impact load at 25% of the lifting load:"<<w3<<"kN";
cout<<"\n(4)Total lateral load transmitted to two wheels:"<<fl<<"kN";
cout<<"\n(5)Total wheel load:"<<w<<"kN";
fg=0.05*2*w;
cout<<"\n(6)Drag force on the Girder is 5% of Wheel load:"<<fg<<"kN";
}
void gantry::bm_des()
{
cout<<"\n(B) Design For Bending:";
x1=(0.5*l-0.25*a);
cout<<"\nThe Critical Section is at x="<<x1<<"m";
m1=((2*w)/l)*(pow(0.5*l-0.25*a,2));
cout<<"\nMaximum Bending moment on beam due to two wheel
load"<<m1<<"kNm";
cout<<"\nASSUMING DEPTH OF RAIL AS 150 MM";
cout<<"\nEnter assumed value of depth of gantry girder in m\t";
cin>>de;
ra=(fg*(0.5*de+0.15))/l;
cout<<"\nReaction due to drag force alone is"<<ra<<"kN";
x=0.5*l-0.25*a;
m2=ra*x;
cout<<"\nBending Moment due to drag force alone is"<<m2<<"kNm";
cout<<"\nEnter assumed weight of gantry girder in kN/m ";
cin>>wg;
m3=(0.5*wg*l*x)-(0.5*wg*pow(x,2));
cout<<"\nBending Moment at Critical Section is"<<m3<<"kNm";

m=m1+m2+m3;
cout<<"\nNet Design bending moment is"<<m<<"kNm";
cout<<"\nAs the top flange is laterally supported,";
cout<<"the allowable stresses including the effect of fatigue.";
cout<<"\nEnter the value of fy in N/mm2:";
cin>>fy;
zreq=m*pow(10,6)/(0.6*fy);
cout<<"\nValue of Z required is:"<<zreq<<"mm3";
cout<<"\nTry ISMB Section from steel table with value of z more than that of
zreq";
cout<<"\nEnter the depth of section in mm:";
cin>>depth;
cout<<"\nTrial Section is ISMB "<<depth;
cout<<"\nEnter Zx of section from steel table in cm3:";
cin>>z;
cout<<"\nEnter Value of Ix section from steel table in cm4:";
cin>>i;
cout<<"\nEnter Thickness of Web in mm:";
cin>>t;
}
void gantry::bm_check()
{
cout<<"\n\n(C) Check for Shear:";
double ca,cb,bc;
v=(2*w*(l-(depth)/1000-(0.5*a)))/l;
cout<<"\nMaximum Shear force when one of load is at distance D from
support.";
cout<<"\Maximum Shear Force is:"<<v<<"kN";
tv=(v*1000)/(depth*t);
cout<<"\nShear Stress is:"<<tv<<"N/mm2";
{
if(tv>(0.36*fy))
{
cout<<"\nGIRDER FAILS IN SHEAR SO SECTION NEEDS TO BE
REVISED";
}
else
{
cout<<"\nIt is less than (.36xfy).Hence OK...";
}
}
cout<<"\n\n(D) Check for Deflection:";
def=((w*(l-a)*(2.0*l*l+2.0*a*l-a*a)*1000)/(48.0*2*i));
cout<<"\nActual value of deflection is\t"<<def<<"mm";

if(s==1)
{
if(def>(l*(1000/500)))
cout<<"\nSection fails in deflection so it need to be Revised.";
}
if(s==2)
{
if(def>(l*(1000/750)))
cout<<"\nSection fails in deflection so it need to be Revised.";
}
}
void gantry::lat_des()
{
cout<<"\n\n(E) Design of Lateral load:";
cout<<"\nEnter value of bf from steel table for selected gantry beam section in
mm:";
cin>>bf;
c=100+0.5*bf;//assuming width of channel as 200 mm;
fa=(fl*150)/c;
mx=((2*fl*pow(x,2)))/l;
my=((2*fa*pow(x,2)))/l;
cout<<"\nBending Moment about x-axis is"<<mx<<"kNm";
cout<<"\nBending Moment about y-axis is"<<my<<"kNm";
cout<<"\nEnter suitable depth of ISMC section from steel table:\t";
cin>>channel;
cout<<"\nTrial channel section is ISMC "<<channel;
cout<<"\nEnter value of Zx in cm3\t";
cin>>zx;
cout<<"\nEnter value of Zy in cm3\t";
cin>>zy;
cout<<"\nEnter value of ry in mm\t";
cin>>ry;
cout<<"\nEnter value of T in mm\t";
cin>>t;
fbx=(mx*pow(10,6))/zx;
fby=(my*pow(10,6))/zy;
lemda=(0.85*l)/ry;
cout<<"\nlemda= ";
cout<<"\nFor value of lamda and other sectional parameters (T/t and D/T)find
fbcx from IS 800-1984.\t";
cin>>fbcx;
fbcy=0.66*fy;

{
if(((fbx/fbcx)+(fby/fbcy))>1)
{
cout<<"\nChannel section needs revision so go for higher section";
}
else
{
cout<<"\nValue is less than 1,Hence It is OK...";
}
}
}
void main()
{
clrscr();
gantry g;
g.loadcalc();
g.bm_des();
g.bm_check();
g.lat_des();
getch();
}

Prepared By:
Tanna Harnish R. (Roll No.1823)
Tank Saumil J. (Roll No.1822)

Reference Book:
Design of Steel Structures by P.DAYARATNAM
Example 8.3, Page No.407.

You might also like