Você está na página 1de 8

//Generalized Program to design Built up Column

#include<iostream.h>
#include<conio.h>
#include<iomanip.h>
#include<math.h>
#include<string.h>
class blt_clmn
{
protected:
int P,degree,y_stress;
float factor,l;
public:
void getdata();
void analysedata();
};
class cpsn_mbr:public blt_clmn
{
public:
char sect_n[4];
float sp_channel,p_stress2;
int b,t;
float area,r1,a_reqd,Ixx,Cxx,p,sl_ratio,dim1,dim2,dim;
int p_stress,section,depth;
float sp_section,sp_channel3,s_load,factor2,g_area,e_l,a_prov;
float s_ratio,r_min,Ix,Iy,Cy,sp_channel1;
void designdata();
};
class dsgn_lacing:public cpsn_mbr
{
public:
int sp_lc,t_lacing,w_lacing,p_stress3,n_rivets2;
float t_shear,t_stress,c_stress,f_lacing,ry,el_lacing,sratio_lacing2;
float sratio_lacing,mw_lacing,mt_lacing,s_shear,s_bearing,r_value,n_rivets;
void analysedata2();
void e_cnts();
void showdata();
void printline();
};
void blt_clmn::getdata()
{
cout<<"Enter the axial load that the column has to carry in kN: ";
cin>>P;
cout<<"\nEnter the unsupported length of the member in meters(i.e.column): ";
cin>>l;
cout<<"\nEnter the yield stress of steel in MPa: ";

cin>>y_stress;
cout<<"\nEnter the degree of end restraint of the compression member \n\nFor
effectively held in position \n\n1.and restrained against rotation at both
ends\n\n2.at both ends and restrained agains rotaion at one end\n\n 3.at
both ends restrained against rotation at one end\n\n 4.and restrained
against rotation at one end, and at the other hand restrained against
rotation but not held in position\n\n5.and restrained against rotation at one
end, and at the other hand partially restrained against rotation but not held
in position\n\n6.at one end but not restrained against rotation, and at the
other hand restrained against rotation at held in position\n\n 7.and
restrained against rotation at one end but not held in position or restrained
against rotation at the other hand: ";
cin>>degree;
}
void blt_clmn::analysedata()
{
switch(degree)
{
case 1:{
factor=0.65; break; }
//Effective Length of column
case 2:{
factor=0.80; break; }
//as per degree of restraint
case 3:{
factor=1.00; break; }
//of the compression member
case 4:{
factor=1.20; break; }
//as per IS:800 1984 Clause 5.2.2
case 5:{
factor=1.50; break; }
case 6:{
factor=2.00; break; }
case 7:{
factor=2.00; break; }
default:
{
cout<<"Enter the correct code"; break; }
}
}
void cpsn_mbr::designdata()
{
e_l=(factor*l*1000.00);
start:
cout<<"\nEnter the permissible compressive stress of the steel in MPa: ";
cin>>p_stress;
a_reqd=(P*1e3)/(p_stress);
cout<<"\nThe area required for given loading is "<<a_reqd<<"mm2";
cout<<"\n\aEnter which type of section to be provided\n1.Two Channel
Section\n2.Two I Section\n3.Four Angle Section: ";
cin>>section;
read:
switch(section)
{
case 1:
{

cout<<"\nEnter which channel (IS) section is to be provided (ISJC, ISLC,


ISMC, ISMCP)";
cin>>sect_n;
break;
}
case 2:
{
cout<<"\nEnter which rolled I section is to be provided
(ISJB,ISLB,ISMB,ISWB)";
cin>>sect_n;
break;
}
default:
{
cout<<"\nEnter the correct case";
break;
}
}
if(section==1||section==2)
{
cout<<"\nEnter th depth of the "<<sect_n<<" section so as to meet the
requirements: ";
cin>>depth;
cout<<"\nEnter the area of single "<<sect_n<<" "<<depth<<"
section in mm2: ";
cin>>area;
a_prov=2.00*area;
cout<<"\nEnter the radius of gyration about X-X axis for
the given "<<sect_n<<" "<<depth<<" in mm: ";
cin>>r_min;
s_ratio=(e_l/r_min);
if(s_ratio>=180.00)
{
cout<<"\nRevise the section";
goto read;
}
else
{
cout<<"\nEnter the permissible stress for steel for
slenderness ratio "<<s_ratio<<" from IS 800:1984 Clause
5.5.1 in MPa";
cin>>p_stress2;
s_load=(p_stress2*a_reqd/1e3);

if (s_load<P)
{
cout<<"\nRevise the section as it is not capable
to withstand the load";
goto start;
}
else
{
factor2=s_load/P;
if(factor2<=1.12)
cout<<"\nThe given section is safe and hence
economical";
else
{
cout<<"\nThe given section is extrasafe and hence
uneconomical";
goto read;
}
}
cout<<"\nEnter the moment of inertia of given "<<sect_n<<" "<<depth<<"
about X-X axis and Y-Y axis respectively in cm^4 from steel tables: ";
cin>>Ix>>Iy;
cout<<"\nEnter the centre of gravity Cy for the "<<sect_n<<"
"<<depth<<" in
cm from steel tables: ";
cin>>Cy;
sp_channel=2*(pow(((2.00*Ix)-(2.00*Iy)/(a_prov*1e-2)),0.5)-Cy);
sp_channel3=sp_channel/10;
cout<<"\nThe spacing of "<<sect_n<<" "<<depth<<"
come to be "<<sp_channel3<<" cm";
cout<<"\nEnter roundoff value of spacing in cm to be act as
column section: ";
cin>>sp_section;
}
}
else
goto function;
function:
}
void dsgn_lacing::analysedata2()
{
sp_lc=2.00*(6.00+sp_section+6.00);
//From Geometry
if(section==1||section==2)
{
cout<<"\nEnter the least radius of gyration for the
given "<<sect_n<<" "<<depth<<" in mm: ";
cin>>ry;

}
sratio_lacing=(sp_lc*10)/ry;
el_lacing=(1.414*sp_lc*10/2);
mt_lacing=(el_lacing)/40.00;
mw_lacing=60.00;

//As per IS 800:1984


//Using 20mm pds rivets

start1:
cout<<"\nThe maximum width and thickness of lacing in mm as
per IS 800:1984
come out to be "<<mw_lacing<<"mm and
"<<mt_lacing<<"mm: ";
cout<<"\nEnter the width and thickness of lacing in mm as from above data: ";
cin>>w_lacing>>t_lacing;
sratio_lacing2=(el_lacing*pow(12.00,0.5))/t_lacing;
if(sratio_lacing2>=145.00)
{
cout<<"\nIncrease the thickness of the lacing";
goto start1;
}
else
{
cout<<"\nEnter the permissible compressible stress for
slenderness ratio equals to "<<sratio_lacing2<<" from IS 800:1984: ";
cin>>p_stress3;
t_shear=(2.5*P/100.00);
f_lacing=(t_shear/2.00*0.707);
t_stress=(f_lacing/(t_lacing-21.5)*w_lacing);
//Using 20mmpds rivets
if(t_stress>=(0.6*y_stress))
{
cout<<"\nRevise the dimensions of lacing system: ";
goto start1;
}
else
cout<<"\nThe lacing bar is safe in carrying tensile stress";
c_stress=(f_lacing*1000.00)/(w_lacing*t_lacing);
if(c_stress>p_stress3)
{
cout<<"\nRevise the dimensions of lacing system: ";
goto start1;
}
else
{
cout<<"\nThe lacing bar is safe in carrying compressive stress";
}
}
}
void dsgn_lacing::e_cnts()
{

s_shear=(100.00*3.14*21.5*21.5)/(1000.00*4.00);
//Using 20mm pds rivets
s_bearing=(300.00*21.5*t_lacing)/1000.00;
if(s_shear<s_bearing)
r_value=s_shear;
else
r_value=s_bearing;
n_rivets=(2.00*f_lacing*0.707)/r_value;
cout<<"\nThe number of rivets come out to be: "<<n_rivets;
cout<<"\nEnter how many rivets to be provided: ";
cin>>n_rivets2;
}
void dsgn_lacing::showdata()
{
cout<<"\n\t\tDESIGN OF BUILT UP COLUMN USING LACING";
cout<<"\n\n**********************************************************************\n";
cout<<"\n\t\t\tGiven data\n\n";
cout<<"\tAxial Load (kN)\tUnsupported Length(m)\tDegree of Restraint\n";
cout<<"-------------------------------------------------------------------\n";
cout<<"\t "<<P<<"\t\t\t"<<l<<"\t\t\t"<<degree<<"\n";
cout<<"-------------------------------------------------------------------\n";
cout<<"\n\t\t\tDESIGN DETAILS";
if(section==1||section==2)
{
cout<<"\n\tProvided Section\tArea of column section\t
Max slenderness ratio\n";
cout<<"\t "<<sect_n<<""<<depth<<"\t\t"<<a_prov<<"\t\t\t"<<s_ratio<<"\n";
printline();
cout<<"\n\t\t\tDESIGN OF LACING";
cout<<"\nInclination of lacing with vertical :\t\t45";
cout<<"\n\nSpacing of lacing bars in mm
:\t\t"<<sp_lc<<"";
cout<<"\n\nEffective Length of lacing bars in mm:\t\t"<<el_lacing<<"";
cout<<"\n\nProvided Lacig bars for
given loading:\t\t"<<w_lacing<<"X"<<t_lacing<<"mm";
cout<<"\n\nNumber of 22 mm diameter required to\n connect
the lacing bars\n with given "<<sect_n<<" "<<depth<<" is:\t\t\t1";
}
else
{
cout<<"\n\tProvided Section\tArea of column section\t
Max slenderness ratio\n";
cout<<"\tISA"<<l<<"x"<<b<<"x"<<t<<"\t\t"<<a_reqd<<"\t\t\t "<<sl_ratio<<"\n";
printline();
cout<<"\n\t\t\tDESIGN OF LACING";
cout<<"\nInclination of lacing with vertical :\t\t45";
cout<<"\n\nSpacing of lacing bars in mm
:\t\t"<<sp_lc<<"";
cout<<"\n\nEffective Length of lacing bars in mm:\t\t"<<el_lacing<<"";

cout<<"\n\nProvided Lacig bars for given loading:


:\t\t"<<w_lacing<<"X"<<t_lacing<<"mm";
cout<<"\n\nNumber of 22 mm diameter required to\nconnect
the lacing bars\nwith given "<<sect_n<<"is:\t\t1";
}
}
void main()
{
clrscr();
cout.precision(3);
dsgn_lacing d;
d.getdata();
d.analysedata();
d.designdata();
d.analysedata2();
d.e_cnts();
d.showdata();
d.printline();
getch();
}
OUTPUT:
Enter the unsupported length of the member in meters(i.e.column): 8
Enter the yield stress of steel in MPa: 250
Enter the degree of end restraint of the compression member
For effectively held in position
1.and restrained against rotation at both ends
2.at both ends and restrained agains rotaion at one end
3.at both ends restrained against rotation at one end
4.and restrained against rotation at one end, and at the other hand restrained a
gainst rotation but not held in position
5.and restrained against rotation at one end, and at the other hand partially re
strained against rotation but not held in position
6.at one end but not restrained against rotation, and at the other hand restrain
ed against rotation at held in position

The area required for given loading is 10000mm2


Enter which type of section to be provided
1.Two Channel Section
2.Two I Section
3.Four Angle Section: 1
Enter which channel (IS) section is to be provided (ISJC, ISLC, ISMC, ISMCP)ISLC
Enter th depth of the ISLC section so as to meet the requirements: 350
Enter the area of single ISLC 350 section in mm2: 4954
Enter the radius of gyration about X-X axis for the given ISLC 350 in mm: 137.2
Enter the permissible stress for steel for slenderness ratio 64.14 from IS 800:1
984 Clause 5.5.1 in MPa130.69
The given section is safe and hence economical
Enter the moment of inertia of given ISLC 350 about X-X axis and Y-Y axis respec
tively in cm^4 from steel tables: 9330.95 395.5
Enter the centre of gravity Cy for the ISLC 350 in cm from steel tables: 2.42Ent
er the unsupported length of the member in meters(i.e.column): 8
7.and restrained against rotation at one end but not held in position or restrai
ned against rotation at the other hand: 3

Você também pode gostar