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
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