Пример #1
0
def chapaAgSCgen(vOrigenL,vDirXL,vDirYL,vDirZL,listaCoordChapaL,listaCoordAgujL,espesorChapa,diamAguj):
    # Devuelve un chapa con agujeros en un sistema de coordenadas general, definido por:
    # vOrigenL: vector que define el pto. origen del sistema de coordenadas local
    # vDirXL: vector en la dirección X del SC local
    # vDirYL: vector en la dirección Y del SC local
    # vDirZL: vector en la dirección Z del SC local
    # listaCoordChapaL: ptos. ordenados para definir la base de la chapa (que estará contenida en el plano XY local). Las coordenadas de estos ptos. se dan en el SC local en la forma: [[x1,y1],[x2,y2],[x3,y3],...].
    # listaCoordAgujL: ptos. para definir los centros de los agujeros. Las coordenadas de estos ptos. se dan en el SC local en la forma: [[x1,y1],[x2,y2],[x3,y3],...].
    # espesorChapa: espesor de la chapa (en dirección vDirZL)
    # diamAguj: diámetro de los agujeros
    placa=Geometria3D.prismaSCgen(vOrigenL,vDirXL,vDirYL,vDirZL,listaCoordChapaL,espesorChapa)
    vDirXL.normalize() #vector de dirección X local
    vDirYL.normalize() #vector de dirección Y local
    vDirZL.normalize() #vector de dirección Z local
    for i in range(0,len(listaCoordAgujL)):
        vuX=Base.Vector(vDirXL.x,vDirXL.y,vDirXL.z)
        vuY=Base.Vector(vDirYL.x,vDirYL.y,vDirYL.z)
        centro=vOrigenL.add(vuX.multiply(listaCoordAgujL[i][0])).add(vuY.multiply(listaCoordAgujL[i][1]))
        aguj=Part.makeCylinder(diamAguj/2.0,espesorChapa,centro,vDirZL)
        placa=placa.cut(aguj)
    return placa
#Rigidizadores en el plano del ala de la viga
Pto1=Base.Vector(eAlmaPerfilPilar/2.0,0,cantoPerfilVAtado1/2.0-eRigAla)
auxX=(cantoPerfilPilar-2*eAlaPerfilPilar)/2.0
auxY=(anchoPerfilPilar-eAlmaPerfilPilar)/2.0

vOrigenL=Pto1
vDirXL=Base.Vector(0,1,0)
vDirYL=Base.Vector(1,0,0)
vDirZL=Base.Vector(0,0,1)
listaCoordChapaL=[[-auxX+rPerfilPilar,0],[-auxX,rPerfilPilar],[-auxX,auxY],[auxX,auxY],[auxX,rPerfilPilar],[auxX-rPerfilPilar,0]]
listaCoordAgujL=[]
espesorChapa=eRigAla
diamAguj=0
rig1=Metalicas.chapaAgSCgen(vOrigenL,vDirXL,vDirYL,vDirZL,listaCoordChapaL,listaCoordAgujL,espesorChapa,diamAguj)

vOrigenL=Geometria3D.simYZPto(Pto1)
vDirXL=Base.Vector(0,1,0)
vDirYL=Base.Vector(-1,0,0)
vDirZL=Base.Vector(0,0,1)
listaCoordChapaL2=Geometria3D.simYZlistaCoord(listaCoordChapaL)
listaCoordAgujL=[]
espesorChapa=eRigAla
diamAguj=0
rig2=Metalicas.chapaAgSCgen(vOrigenL,vDirXL,vDirYL,vDirZL,listaCoordChapaL2,listaCoordAgujL,espesorChapa,diamAguj)

Pto1=Geometria3D.simXYPto(Pto1)

vOrigenL=Pto1
vDirXL=Base.Vector(0,1,0)
vDirYL=Base.Vector(1,0,0)
vDirZL=Base.Vector(0,0,-1)
Пример #3
0
ptoFin=Base.Vector(0,Lpieza/2,0)
perfil=tipoPerfil
tamPerfil=idPerfil
incrIni=-holguraJunta/2
incrFin=0
giroSec=0
corr2=Metalicas.barra2Ptos(ptoIni,ptoFin,perfil,tamPerfil,incrIni,incrFin,giroSec)
pieza=pieza.fuse(corr2)
#Cubrejuntas ala superior
vOrigenL=Base.Vector(0,0,cantoPerfil/2)
vDirXL=Base.Vector(1,0,0)
vDirYL=Base.Vector(0,1,0)
vDirZL=Base.Vector(0,0,1)
listaCoordL=[[-dimXCubrejAlas/2,-dimYCubrejAlas/2],[dimXCubrejAlas/2,-dimYCubrejAlas/2],[dimXCubrejAlas/2,dimYCubrejAlas/2],[-dimXCubrejAlas/2,dimYCubrejAlas/2]]
altura=espCubrejAlas
cubrjAlaSup=Geometria3D.prismaSCgen(vOrigenL,vDirXL,vDirYL,vDirZL,listaCoordL,altura)
pieza=pieza.fuse(cubrjAlaSup)
#Cubrejuntas ala inferior
vOrigenL=Base.Vector(0,0,-cantoPerfil/2-espCubrejAlas)
vDirXL=Base.Vector(1,0,0)
vDirYL=Base.Vector(0,1,0)
vDirZL=Base.Vector(0,0,1)
listaCoordL=[[-dimXCubrejAlas/2,-dimYCubrejAlas/2],[dimXCubrejAlas/2,-dimYCubrejAlas/2],[dimXCubrejAlas/2,dimYCubrejAlas/2],[-dimXCubrejAlas/2,dimYCubrejAlas/2]]
altura=espCubrejAlas
cubrjAlaInf=Geometria3D.prismaSCgen(vOrigenL,vDirXL,vDirYL,vDirZL,listaCoordL,altura)
pieza=pieza.fuse(cubrjAlaInf)
#Cubrejuntas alma dorsal 
vOrigenL=Base.Vector(-eAlmaPerfil/2,0,0)
vDirXL=Base.Vector(0,1,0)
vDirYL=Base.Vector(0,0,1)
vDirZL=Base.Vector(-1,0,0)
Пример #4
0
perfil=tipoPerfil
tamPerfil=idPerfil
incrIni=0
incrFin=0
giroSec=0
pilar=Metalicas.barra2Ptos(ptoIni,ptoFin,perfil,tamPerfil,incrIni,incrFin,giroSec)
pieza=pilar

#Placa base
vOrigenL=Base.Vector(xminPlaca,yminPlaca,0)
vDirXL=Base.Vector(1,0,0)
vDirYL=Base.Vector(0,1,0)
vDirZL=Base.Vector(0,0,1)
listaCoordL=[[0,0],[dimXPlaca,0],[dimXPlaca,dimYPlaca],[0,dimYPlaca]]
altura=ePlaca
placa=Geometria3D.prismaSCgen(vOrigenL,vDirXL,vDirYL,vDirZL,listaCoordL,altura)
pieza=pieza.fuse(placa)

#Soldaduras
##de alas
pieza1=pieza
pieza2=pieza
eGarganta=eGargantaAlas
longitud=bAlaPerfil
centroArista=Base.Vector(0,-cantoPerfil/2,ePlaca)
vDireccion=Base.Vector(1,0,0)
sold=Metalicas.soldadura(pieza1,pieza2,eGarganta,longitud,centroArista,vDireccion)
pieza=pieza.fuse(sold)

centroArista=Base.Vector(0,cantoPerfil/2,ePlaca)
sold=Metalicas.soldadura(pieza1,pieza2,eGarganta,longitud,centroArista,vDireccion)
incrFin=0
giroSec=0
pilar=Metalicas.barra2Ptos(ptoIni,ptoFin,perfil,tamPerfil,incrIni,incrFin,giroSec)
pieza=pilar

#Viga de atado
ptoIni=Base.Vector(anchoPerfilPilar/2.0+holgAlaPilarVAtado,0,0)
ptoFin=Base.Vector(LVAtado,0,0)
perfil=tipoPerfilVAtado
tamPerfil=idPerfilVAtado
incrIni=0
incrFin=0
giroSec=0
vatado=Metalicas.barra2Ptos(ptoIni,ptoFin,perfil,tamPerfil,incrIni,incrFin,giroSec)
pieza=pieza.fuse(vatado)
ptoIni=Geometria3D.simYZPto(ptoIni)
ptoFin=Geometria3D.simYZPto(ptoFin)
perfil=tipoPerfilVAtado
tamPerfil=idPerfilVAtado
incrIni=0
incrFin=0
giroSec=0
vatado=Metalicas.barra2Ptos(ptoIni,ptoFin,perfil,tamPerfil,incrIni,incrFin,giroSec)
pieza=pieza.fuse(vatado)

#Rigidizadores en el plano del ala de la viga
Pto1=Base.Vector(eAlmaPerfilPilar/2.0,0,cantoPerfilVAtado/2.0-eRigAla)
auxX=(cantoPerfilPilar-2*eAlaPerfilPilar)/2.0
auxY=(anchoPerfilPilar-eAlmaPerfilPilar)/2.0

vOrigenL=Pto1
pieza=diag1
#Diagonal 2
ptoIni=Base.Vector(eCartelasExtremas/2+cdgDiag2,-LDiag2/2*math.sin(math.radians(angVertDiag2)),-LDiag2/2*math.cos(math.radians(angVertDiag2)))
ptoFin=Base.Vector(eCartelasExtremas/2+cdgDiag2,LDiag2/2*math.sin(math.radians(angVertDiag2)),LDiag2/2*math.cos(math.radians(angVertDiag2)))
perfil=tipoPerfilDiag2
tamPerfil=idPerfilDiag2
incrIni=0
incrFin=0
giroSec=0
diag2=Metalicas.barra2Ptos(ptoIni,ptoFin,perfil,tamPerfil,incrIni,incrFin,giroSec)
pieza=pieza.fuse(diag2)

#Agujero para manguito

#no está programado

#****Representación en planos
Pieza=FreeCAD.ActiveDocument.addObject("Part::Feature","Pieza")
Pieza.Shape=pieza
FreeCADGui.Selection.addSelection(Pieza)

Geometria3D.vistasIsom(App,escala,Pieza)
ocultas='s'
SupInf='Sup'
Geometria3D.vistaPlanta(App,escala,Pieza,ocultas,SupInf)
AntPost='Ant'
Geometria3D.vistaFront(App,escala,Pieza,ocultas,AntPost)
IzqDer='Der'
Geometria3D.vistaLat(App,escala,Pieza,ocultas,IzqDer)

Пример #7
0
muro2 = Part.makeBox(eMuro2, galiboYmuros, hMuros, esq1.add(Base.Vector(-eMuro2, eMuro1, 0)))
muro3 = Part.makeBox(eMuro1, galiboYmuros, hMuros, esq2.add(Base.Vector(0, eMuro1, 0)))
muro4 = Part.makeBox(galiboXmuros + eMuro1 + eMuro2, eMuro1, hMuros, esq2.add(Base.Vector(0, eMuro1 + galiboYmuros, 0)))
muros = muro1.fuse(muro2.fuse(muro3.fuse(muro4)))
# Part.show(muros)

# Dibujo pilar
esquina = Base.Vector(-dimXPilar / 2, -dEjesPilares / 2 - dimYPilar / 2, 0)
pilar1 = Part.makeBox(dimXPilar, dimYPilar, dimZPilar, esquina)
vOrigenL = esquina.add(Base.Vector(0, dimYPilar, dimZPilar))
vDirXL = Base.Vector(0, 1, 0)
vDirYL = Base.Vector(0, 0, 1)
vDirZL = Base.Vector(1, 0, 0)
listaCoordL = [[0, 0], [dimYMensula, 0], [dimYMensula, -dimZ1Mensula], [0, -dimZ1Mensula - dimZ2Mensula]]
altura = dimXPilar
mensula = Geometria3D.prismaSCgen(vOrigenL, vDirXL, vDirYL, vDirZL, listaCoordL, altura)
pilar = pilar1.fuse(mensula)

# Dibujo de la placa base de la bayoneta
centroPlaca = Base.Vector(0, -dEjesPilares / 2 - dimYPilar / 2 + dimYPAB / 2, dimZPilar - dimZPAB)
vDirXL = Base.Vector(1, 0, 0)
vDirYL = Base.Vector(0, 1, 0)
vDirZL = Base.Vector(0, 0, 1)
listaCoordChapaL = [
    [-dimXPAB / 2, -dimYPAB / 2],
    [dimXPAB / 2, -dimYPAB / 2],
    [dimXPAB / 2, dimYPAB / 2],
    [-dimXPAB / 2, dimYPAB / 2],
]
placaCabPilar = Geometria3D.prismaSCgen(centroPlaca, vDirXL, vDirYL, vDirZL, listaCoordChapaL, dimZPAB)
# Part.show(placaCabPilar)
anchoChap=dEjesVcarrVac-anchoPerfilVcarr/2.0-anchoPerfilViga/2.0+slpChapaVcarr+slpChapaViga
largoChap=2*LViga
vOrigenL=Base.Vector(-anchoPerfilViga/2.0+slpChapaViga,-LViga,cantoPerfilViga/2.0)
vDirXL=Base.Vector(-1,0,0)
vDirYL=Base.Vector(0,1,0)
vDirZL=Base.Vector(0,0,1)
listaCoordChapaL=[[0,0],[anchoChap,0],[anchoChap,largoChap],[0,largoChap]]
listaCoordAgujL=[]
espesorChapa=eChapaCab
diamAguj=0
chapa=Metalicas.chapaAgSCgen(vOrigenL,vDirXL,vDirYL,vDirZL,listaCoordChapaL,listaCoordAgujL,espesorChapa,diamAguj)
pieza=pieza.fuse(chapa)


arriostr.add(pieza)
Part.show(arriostr)




#****Representación en planos
Pieza=FreeCAD.ActiveDocument.addObject("Part::Feature","Pieza")
Pieza.Shape=arriostr
FreeCADGui.Selection.addSelection(Pieza)

Geometria3D.vistasIsom(App,escala,Pieza)
ocultas='n'
Geometria3D.vistaPlanta(App,escala,Pieza,ocultas,'Sup')
Geometria3D.vistaFront(App,escala,Pieza,ocultas,'Ant')
Geometria3D.vistaLat(App,escala,Pieza,ocultas,'Izq')