Example #1
0
def secAngular(tipo,tam):
    # Genera la sección de un perfil metálico en L
    # La nomenclatura empleada para las dimensiones es la del prontuario de
    # estructuras metálicas del CEDEX
    # tipo: L, LD u otro perfil angular definido en PerfilesMetalicos.py
    # tam: tamaño que define el perfil ('120?2', '100?5?',  ...)
    a=eval(tipo)[tam]['a']
    b=eval(tipo)[tam]['b']
    e=eval(tipo)[tam]['e']
    r=eval(tipo)[tam]['r']
    r1=eval(tipo)[tam]['r1']
    cx=eval(tipo)[tam]['cx']
    cy=eval(tipo)[tam]['cy']
    p1=Base.Vector(-(b-cy),-cx)
    p2=Base.Vector(cy,-cx)
    p3=Base.Vector(cy,a-cx)
    l1=Part.makePolygon([p1,p2,p3])
    p4=p3.add(Base.Vector(-e,0))
    p5=p4.add(Base.Vector(0,-(a-e)/2.0))
    l2=Geometria2D.fillet2D(p3,p4,p4,p5,r1)
    p6=p5.add(Base.Vector(0,-(a-e)/2.0))
    p7=p6.add(Base.Vector(-(b-e)/2.0,0))
    l3=Geometria2D.fillet2D(p5,p6,p6,p7,-r)
    p8=p7.add(Base.Vector(-(b-e)/2.0,0))
    l4=Geometria2D.fillet2D(p7,p8,p8,p1,r1)
    secPerfil=Part.Face(Part.Wire([l1,l2,l3,l4]))
    secPerfil.rotate(Base.Vector(0,0,0),Base.Vector(1,0,0),90)
    return secPerfil
Example #2
0
def secU(tipo,tam):
    # Genera la sección de un perfil metálico U
    # La nomenclatura empleada para las dimensiones es la del prontuario de
    # estructuras metálicas del CEDEX
    # tipo: UPN o cualquier otro U definido en el fichero PerfilesMetalicos.py
    # tam: tamaño que define el perfil (80, 100, 120 , ...)
    h=eval(tipo)[tam]['h']
    b=eval(tipo)[tam]['b']
    e=eval(tipo)[tam]['e']
    e1=eval(tipo)[tam]['e1']
    r1=eval(tipo)[tam]['r1']
    e2=eval(tipo)[tam]['e2']
    h1=eval(tipo)[tam]['h1']
    p1=Base.Vector(b-e2,h/2.0)
    p2=Base.Vector(-e2,h/2.0)
    p3=Base.Vector(-e2,-h/2.0)
    p4=Base.Vector(b-e2,-h/2.0)
    l1=Part.makePolygon([p1,p2,p3,p4])
    p5=Base.Vector(b-e2,-h/2.0+e1)
    p6=p5.add(Base.Vector(-(b-e-e1)/2.0,(h/2.0-h1/2.0-2*e1)/2.0))
    l2=Geometria2D.fillet2D(p4,p5,p5,p6,r1)
    p7=p6.add(Base.Vector(-(b-e-e1)/2.0,(h/2.0-h1/2.0-2*e1)/2.0))
    p8=Base.Vector(-e2+e,-h1/2.0)
    pmed=Base.Vector(-e2+e,0)
    l3=Geometria2D.fillet2D(p6,p7,p8,pmed,-e1)
    p12=Base.Vector(b-e2,h/2.0-e1)
    p11=p12.add(Base.Vector(-(b-e-e1)/2.0,-(h/2.0-h1/2.0-2*e1)/2.0))
    l4=Geometria2D.fillet2D(p1,p12,p12,p11,-r1)
    p10=p11.add(Base.Vector(-(b-e-e1)/2.0,-(h/2.0-h1/2.0-2*e1)/2.0))
    p9=Base.Vector(-e2+e,h1/2.0)
    l5=Geometria2D.fillet2D(p11,p10,p9,pmed,e1)
    secPerfil=Part.Face(Part.Wire([l1,l2,l3,l4,l5]))
    secPerfil.rotate(Base.Vector(0,0,0),Base.Vector(1,0,0),90)
    return secPerfil