public RecProfile(double h, double b, IMaterial material, IBeam beam, ILoad load) { _height = h; _widht = b; if (h * b > _max_area) { _area = 0; throw new TooLargeArea(_max_area); } else { _area = h * b; if (_area == 0) { throw new WrongDimensions(); } } _momentOFInertia = (b * Math.Pow(h, 3)) / 12; _weight = _area * material.Density; _fle_tension = (beam.maxMoment(load) + ((_weight * (Math.Pow(beam.Lenght, 2))) / 8)) / (_momentOFInertia / (h / 2)); _she_tension = (beam.maxForce(load) + beam.Lenght * _weight) * (1.5 * _height); _fle_effort = _fle_tension / material.FlexuralStrenght; _strenght = material.FlexuralStrenght; _she_effort = _she_tension / material.ShearStrenght; }
public I_Profile(double H, double B, double h, double t, IMaterial material, IBeam beam, ILoad load) { _height = H; _widht = B; _height2 = h; _width2 = t; hw = H - (2 * h); bw = (B - t) / 2; if (bw < 0 || hw < 0) { throw new WrongDimensions(); } _area = (2 * B * h) + (t * (H - (2 * h))); if (_area == 0) { throw new WrongDimensions(); } if (_area > _max_area) { _area = 0; throw new TooLargeArea(_max_area); } _momentOFInertia = ((B * Math.Pow(H, 3)) / 12) - (2 * ((bw * Math.Pow(hw, 3)) / 12)); _weight = _area * material.Density; _fle_tension = (beam.maxMoment(load) + ((_weight * (Math.Pow(beam.Lenght, 2))) / 8)) / (_momentOFInertia / (h / 2)); _she_tension = (beam.maxForce(load) + beam.Lenght * _weight) * (1.5 * hw); _fle_effort = _fle_tension / material.FlexuralStrenght; _strenght = material.FlexuralStrenght; _she_effort = _she_tension / material.ShearStrenght; }