generalized Program To Design Built Up Column: Void BLT - Clmn::getdata
generalized Program To Design Built Up Column: Void BLT - Clmn::getdata
generalized Program To Design Built Up Column: Void BLT - Clmn::getdata
#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:
{
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;
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<<"";