Ejemplo n.º 1
0
class TorsionParameters(object):
    '''Torsion parameters'''
    h0 = 0.0  # Real wall thickess.
    c = 0.0  # Longitudinal reinforcement concrete cover.

    seccionHuecaEficaz = 0.0  # Cross section contour.
    crossSectionContour = geom.Poligono2d()  # Cross section contour.
    lineaMedia = geom.Poligono2d(
    )  # Polygon defined by the midline of the effective hollow section.
    lineaInt = geom.Poligono2d(
    )  # Polygon defined by the interior contour of the effective hollow section.
    seccionHuecaEficaz = geom.PoligonoConAgujeros2d(
    )  # Effective hollow section contour

    def A(self):
        return self.crossSectionContour.getArea()

    def u(self):
        return self.crossSectionContour.getPerimetro()

    def he(self):
        return max(2 * self.c, min(self.A() / self.u(), self.h0))

    def Ae(self):
        return self.lineaMedia.getArea()

    def ue(self):
        return self.lineaMedia.getPerimetro()
Ejemplo n.º 2
0
 def getVehicleBoundary(self):
     '''Return the boundary of the vehicle.'''
     retval = geom.Poligono2d()
     tmp = self.getVehicleBoundaryPositions()
     for p in tmp:
         retval.agregaVertice(geom.Pos2d(p.x, p.y))
     return retval
Ejemplo n.º 3
0
 def getCenteredVehicleBoundary(self):
     '''Return the boundary of the vehicle with respect to
    the load centroid.'''
     retval = geom.Poligono2d()
     tmp = self.getVehicleBoundaryRelativePositions()
     for p in tmp:
         retval.agregaVertice(p)
     return retval
Ejemplo n.º 4
0
def getA0spN(posPerno, CcrSp):
    '''
    Polígono que representa el área de influencia de un anclaje individual
    según el artículo 5.2.2.6 b) de EOTA TR029.

    :param posPerno: Posición del del perno.
    :param CcrSp: Distancia al borde crítica por splitting (m).
    '''
    retval = geom.Poligono2d()
    retval.agregaVertice(geom.Pos2d(posPerno.x - CcrSp, posPerno.y - CcrSp))
    retval.agregaVertice(geom.Pos2d(posPerno.x + CcrSp, posPerno.y - CcrSp))
    retval.agregaVertice(geom.Pos2d(posPerno.x + CcrSp, posPerno.y + CcrSp))
    retval.agregaVertice(geom.Pos2d(posPerno.x - CcrSp, posPerno.y + CcrSp))
    return retval
Ejemplo n.º 5
0
def getA0cN(posPerno, hEf):
    '''
    Polígono que representa el área de influencia de un anclaje individual según el artículo 5.2.2.4 b) (figura 5.4a) de EOTA TR029.

    :param posPerno: Posición del del perno.
    :param hEf: Profundidad efectiva del anclaje (m).
    '''
    semiLadoA0cN = getScrN(hEf) / 2
    retval = geom.Poligono2d()
    retval.agregaVertice(
        geom.Pos2d(posPerno.x - semiLadoA0cN, posPerno.y - semiLadoA0cN))
    retval.agregaVertice(
        geom.Pos2d(posPerno.x + semiLadoA0cN, posPerno.y - semiLadoA0cN))
    retval.agregaVertice(
        geom.Pos2d(posPerno.x + semiLadoA0cN, posPerno.y + semiLadoA0cN))
    retval.agregaVertice(
        geom.Pos2d(posPerno.x - semiLadoA0cN, posPerno.y + semiLadoA0cN))
    return retval
Ejemplo n.º 6
0
def getA0pN(d, posPerno, hEf, tauRkUcr):
    '''
     Polígono que representa el área de influencia de un anclaje individual según el artículo 5.2.2.3 b) (figura 5.1) de EOTA TR029.

     :param d: Diámetro del perno (m).
     :param posPerno: Posición del del perno.
     :param hEf: Profundidad efectiva del anclaje (m).
     :param tauRkUcr: Valor característico de la tensión de adherencia con hormigón no fisurado (debe tomarse del documento ETA que resulte aplicable) (Pa).
    '''
    semiLadoA0pN = getCcrNp(d, hEf, tauRkUcr)
    retval = geom.Poligono2d()
    retval.agregaVertice(
        geom.Pos2d(posPerno.x - semiLadoA0pN, posPerno.y - semiLadoA0pN))
    retval.agregaVertice(
        geom.Pos2d(posPerno.x + semiLadoA0pN, posPerno.y - semiLadoA0pN))
    retval.agregaVertice(
        geom.Pos2d(posPerno.x + semiLadoA0pN, posPerno.y + semiLadoA0pN))
    retval.agregaVertice(
        geom.Pos2d(posPerno.x - semiLadoA0pN, posPerno.y + semiLadoA0pN))
    return retval
def getA0spN(anchorPosition, CcrSp):
    '''
    Polígono que representa el área de influencia de un anclaje individual
    according to clause 5.2.2.6 b) of EOTA TR029.

    :param anchorPosition: anchor position.
    :param CcrSp: edge distance for ensuring the transmission of the
                  characteristic tensile resistance of a single
                  anchor without spacing and edge effects in case of 
                  splitting failure (m).
    '''
    retval = geom.Poligono2d()
    retval.agregaVertice(
        geom.Pos2d(anchorPosition.x - CcrSp, anchorPosition.y - CcrSp))
    retval.agregaVertice(
        geom.Pos2d(anchorPosition.x + CcrSp, anchorPosition.y - CcrSp))
    retval.agregaVertice(
        geom.Pos2d(anchorPosition.x + CcrSp, anchorPosition.y + CcrSp))
    retval.agregaVertice(
        geom.Pos2d(anchorPosition.x - CcrSp, anchorPosition.y + CcrSp))
    return retval
def getA0cN(anchorPosition, hEf):
    '''
    Polígono que representa el área de influencia de un anclaje individual according to clause 5.2.2.4 b) (figura 5.4a) of EOTA TR029.

    :param anchorPosition: anchor position.
    :param hEf: effective anchorage depth (m).
    '''
    semiLadoA0cN = getScrN(hEf) / 2
    retval = geom.Poligono2d()
    retval.agregaVertice(
        geom.Pos2d(anchorPosition.x - semiLadoA0cN,
                   anchorPosition.y - semiLadoA0cN))
    retval.agregaVertice(
        geom.Pos2d(anchorPosition.x + semiLadoA0cN,
                   anchorPosition.y - semiLadoA0cN))
    retval.agregaVertice(
        geom.Pos2d(anchorPosition.x + semiLadoA0cN,
                   anchorPosition.y + semiLadoA0cN))
    retval.agregaVertice(
        geom.Pos2d(anchorPosition.x - semiLadoA0cN,
                   anchorPosition.y + semiLadoA0cN))
    return retval
def getA0pN(d, anchorPosition, hEf, tauRkUcr):
    '''
     Polígono que representa el área de influencia de un anclaje individual according to clause 5.2.2.3 b) (figura 5.1) of EOTA TR029.

     :param d: anchor diameter (m).
     :param anchorPosition: Posición del del perno.
     :param hEf: effective anchorage depth (m).
     :param tauRkUcr: Characteristic bond resistance for non-cracked concrete (must be taken from relevant ETA) (Pa).
    '''
    semiLadoA0pN = getCcrNp(d, hEf, tauRkUcr)
    retval = geom.Poligono2d()
    retval.agregaVertice(
        geom.Pos2d(anchorPosition.x - semiLadoA0pN,
                   anchorPosition.y - semiLadoA0pN))
    retval.agregaVertice(
        geom.Pos2d(anchorPosition.x + semiLadoA0pN,
                   anchorPosition.y - semiLadoA0pN))
    retval.agregaVertice(
        geom.Pos2d(anchorPosition.x + semiLadoA0pN,
                   anchorPosition.y + semiLadoA0pN))
    retval.agregaVertice(
        geom.Pos2d(anchorPosition.x - semiLadoA0pN,
                   anchorPosition.y + semiLadoA0pN))
    return retval
Ejemplo n.º 10
0
__license__= "GPL"
__version__= "3.0"
__email__= "*****@*****.**"

def sqr(a):
  return a*a

# Datos
gammaMs= 1.4 # Partial safety factor for steel.
gammaMc= 2.1 # Partial safety factor for concrete.
diamBarra= 25e-3 # Bar diameter in meters.
areaBarra= math.pi*sqr(diamBarra/2.0) # Bar area in square meters.
h= 274e-3 # Concrete element thickness.
hef= 210e-3 # Effective anchor depth.
posAnc=  geom.Pos2d(.135,0) # Anchor position
contornoPiezaSoporte=  geom.Poligono2d() # Contour of concrete element.
contornoPiezaSoporte.agregaVertice(geom.Pos2d(0,-1))
contornoPiezaSoporte.agregaVertice(geom.Pos2d(1,-1))
contornoPiezaSoporte.agregaVertice(geom.Pos2d(1,1))
contornoPiezaSoporte.agregaVertice(geom.Pos2d(0,1))    


fuk= 550e6 # Characteristic steel ultimate tensile strength (Pa).
tauRk= 7.5e6 # Characteristic bond strength (taken from ETA-05/0051 table 11).
tauRkUcr= 7.5e6 # Characteristic bond strength for non-cracked concrete.
k1= 10.1 # 7.2 for cracked concrete and 10.1 for non-cracked concrete.
fckCube= 25e6 # Caracteristic concrete compression strength measured on cubes with a side length of 150 mm.
# Strength of the anchor itself.
NRds= EOTA_TR029_traccion.axialResistanceSteelFailure(areaBarra,fuk)/gammaMs