summaryrefslogtreecommitdiff
path: root/Connections/Shear/Finplate/colFlangeBeamWebConnectivity.py
diff options
context:
space:
mode:
Diffstat (limited to 'Connections/Shear/Finplate/colFlangeBeamWebConnectivity.py')
-rw-r--r--Connections/Shear/Finplate/colFlangeBeamWebConnectivity.py202
1 files changed, 97 insertions, 105 deletions
diff --git a/Connections/Shear/Finplate/colFlangeBeamWebConnectivity.py b/Connections/Shear/Finplate/colFlangeBeamWebConnectivity.py
index d592e45..23b1d68 100644
--- a/Connections/Shear/Finplate/colFlangeBeamWebConnectivity.py
+++ b/Connections/Shear/Finplate/colFlangeBeamWebConnectivity.py
@@ -3,129 +3,121 @@ Created on 11-May-2015
@author: deepa
'''
+from OCC.BRepPrimAPI import BRepPrimAPI_MakeSphere
'''
Created on 11-May-2015
@author: deepa
'''
-from ISection import ISection
+
import numpy
-from OCC.Graphic3d import Graphic3d_NOT_2D_ALUMINUM
-from weld import Weld
-from plate import Plate
+
+
from bolt import Bolt
from nut import Nut
-
+import copy
class ColFlangeBeamWeb(object):
- def __init__(self,column,beam,weld,plate,boltRadius,nutRadius):
+ def __init__(self,column,beam,Fweld,plate,nutBoltArray):
self.column = column
self.beam = beam
- self.weld = weld
+ self.weldLeft = Fweld
+ self.weldRight = copy.deepcopy(Fweld)
self.plate = plate
- self.boltRadius = boltRadius
- self.nutRadius = nutRadius
+ self.nutBoltArray = nutBoltArray
+ self.columnModel = None
+ self.beamModel = None
+ self.weldModelLeft = None
+ self.weldModelRight = None
+ self.plateModel = None
+ self.sphereModel = None
+ self.clearDist = 20.0 # This distance between edge of the column web/flange and beam cross section
def create_3dmodel(self):
-
- # ISection COLUMN
- origin1 = numpy.array([0, 0, 0])
- uDir1 = numpy.array([1.0, 0, 0])
- wDir1 = numpy.array([0.0, 0, 1.0])
- t = 8.9
- weldThick = 8
-
- self.column.place(origin1, uDir1, wDir1)
-
- # ISection BEAM
- uDir2 = numpy.array([0, 1.0, 0])
- wDir2 = numpy.array([1.0, 0, 0.0])
- d = t/2.0 + weldThick
- origin2 = numpy.array([0, 0, 500]) + (d+7.55) * wDir2
- #self.beam = ISection(B = 140, T = 16,D = 400,t = 8.9, R1 = 14, R2 = 7, alpha = 98,length = 500)
- self.beam.place(origin2, uDir2, wDir2)
-
- # WELD
-
- plateThickness = 10
- uDir3 = numpy.array([0, 1.0, 0])
- wDir3 = numpy.array([1.0, 0, 0.0])
- origin3 = (self.column.secOrigin +
- self.column.t/2.0 * self.column.uDir +
- self.column.length/2.0 * self.column.wDir +
- self.beam.t/2.0 * (-self.beam.uDir)+
- self.weld.W/2.0 * (-self.beam.uDir))
- #origin3 = numpy.array([0, 0, 500]) + t/2.0 *wDir3 + plateThickness/2.0 * (-self.beam.uDir)
- self.weld.place(origin3, uDir3, wDir3)
-
- # PLATE
-
- uDir4 = numpy.array([0, 1.0, 0])
- wDir4 = numpy.array([1.0, 0, 0.0])
- origin4 = self.weld.secOrigin + self.weld.T * self.weld.wDir
- self.plate.place(origin4, uDir4, wDir4)
-
- # BOLT BODY
- bolt_T = 6.0
- origin51 = (self.plate.secOrigin + (-
- self.plate.T/2.0 - bolt_T) * self.plate.uDir +
- self.plate.W/2.0 * self.plate.wDir)
-
- uDir5 = self.plate.wDir
- wDir5 = self.plate.uDir
-
- ## Bolt1
- bolt1 = Bolt(R = self.boltRadius,T = bolt_T, H = 30.0, r = 4.0 )
- bolt1.place(origin51, uDir5, wDir5)
-
- ## Bolt2
- bolt2 = Bolt(R = self.boltRadius, T = bolt_T, H = 30.0, r = 4.0 )
- origin52 = origin51 + 50 *self.plate.vDir
- bolt2.place(origin52, uDir5, wDir5)
-
- ## Bolt3
- bolt3 = Bolt(R = self.boltRadius,T = bolt_T, H = 30.0, r = 4.0 )
- origin53 = origin51 - 50*self.plate.vDir
- bolt3.place(origin53, uDir5, wDir5)
- bolt_list =[bolt1,bolt2,bolt3]
-
- #nutbody = Nut(R = 10.0,T = 10.0, H = 6.1, innerR1 = 6.0, outerR2 = 8.3)
- # NUTBODY
- ## Nut1
- nut1 = Nut(R = self.nutRadius,T = 10.0, H = 6.1, innerR1 = 6.0, outerR2 = 8.3)
- uDir = uDir5
- wDir = wDir5
- nut_Origin1 = origin51 + (bolt1.T/2 * self.plate.uDir)+(self.plate.T *self.plate.uDir)+ (self.beam.T/2 * self.plate.uDir)
- nut1.place(nut_Origin1, uDir, wDir)
-
- ## Nut2
- nut2 = Nut(R = self.nutRadius,T = 10.0, H = 6.1, innerR1 = 6.0, outerR2 = 8.3)
- nut_Origin2 = origin52 + (bolt1.T/2 * self.plate.uDir)+(self.plate.T *self.plate.uDir)+ (self.beam.T/2 * self.plate.uDir)
- nut2.place(nut_Origin2, uDir, wDir)
-
- ## Nut3
- nut3 =Nut(R = self.nutRadius, T = 10.0, H = 6.1, innerR1 = 6.0, outerR2 = 8.3)
- nut_Origin3 = origin53 + (bolt1.T/2 * self.plate.uDir)+(self.plate.T *self.plate.uDir)+ (self.beam.T/2 * self.plate.uDir)
- nut3.place(nut_Origin3, uDir5, wDir5)
- nut_list = [nut1,nut2,nut3]
+ self.creatColumGeometry()
+ self.createBeamGeometry()
+ self.createPlateGeometry()
+ self.createFilletWeldGeometry()
+ self.createNutBoltArray()
# Call for createModel
- iSectionModel1 = self.column.createModel()
- iSectionModel2 = self.beam.createModel()
- weldModel = self.weld.createModel()
- plateModel = self.plate.createModel()
-
- boltModels = []
- for bolt in bolt_list:
- boltModels.append(bolt.createModel())
+ self.columnModel = self.column.createModel()
+ self.beamModel = self.beam.createModel()
+ self.plateModel = self.plate.createModel()
+ self.weldModelLeft = self.weldLeft.createModel()
+ self.weldModelRight = self.weldRight.createModel()
+ self.nutboltArrayModels = self.nutBoltArray.createModel()
- #color = Quantity_NOC_SADDLEBROWN,
- nutModels = []
- for nut in nut_list:
- nutModels.append(nut.createModel())
+ def creatColumGeometry(self):
- memberList = [iSectionModel1,iSectionModel2,weldModel,plateModel,boltModels,nutModels]
-
- return memberList \ No newline at end of file
+ columnOrigin = numpy.array([0, 0, 0])
+ column_uDir = numpy.array([1.0, 0, 0])
+ wDir1 = numpy.array([0.0, 0, 1.0])
+ self.column.place(columnOrigin, column_uDir, wDir1)
+
+ def createBeamGeometry(self):
+ beamOrigin =((self.column.secOrigin + self.column.D/2) * (-self.column.vDir)) + (self.column.length/2 * self.column.wDir) + (self.clearDist * (-self.column.vDir))
+ uDir = numpy.array([1.0, 0.0, 0])
+ wDir = numpy.array([0.0, -1.0, 0.0])
+ self.beam.place(beamOrigin, uDir, wDir)
+
+ def createButtWeld(self):
+ pass
+ # plateThickness = 10
+ # uDir3 = numpy.array([0, 1.0, 0])
+ # wDir3 = numpy.array([1.0, 0, 0.0])
+ # origin3 = (self.column.secOrigin +
+ # self.column.t/2.0 * self.column.uDir +
+ # self.column.length/2.0 * self.column.wDir +
+ # self.beam.t/2.0 * (-self.beam.uDir)+
+ # self.weld.W/2.0 * (-self.beam.uDir))
+ # #origin3 = numpy.array([0, 0, 500]) + t/2.0 *wDir3 + plateThickness/2.0 * (-self.beam.uDir)
+ # self.weld.place(origin3, uDir3, wDir3)
+
+ def createPlateGeometry(self):
+
+ plateOrigin = (((self.column.secOrigin + self.column.D/2 ) * (- self.column.vDir)) +
+ (self.column.length/2 * self.column.wDir) + ((self.beam.t/2.0 )* (-self.beam.uDir))) + ((self.plate.T/2.0) * (-self.beam.uDir))
+ uDir = numpy.array([1.0, 0.0, 0])
+ wDir = numpy.array([0.0, -1.0, 0.0])
+ self.plate.place(plateOrigin, uDir, wDir)
+
+ def createFilletWeldGeometry(self):
+ uDir = numpy.array([1.0, 0.0, 0])
+ wDir = numpy.array([0.0, 0.0, -1.0])
+ filletWeld1Origin = (self.plate.secOrigin + self.plate.T/2.0 *(self.plate.uDir) + self.weldLeft.L/2.0 * (self.plate.vDir) )
+ self.weldLeft.place(filletWeld1Origin, uDir, wDir)
+
+ uDir1 = numpy.array([0.0, -1.0, 0])
+ wDir1 = numpy.array([0.0, 0.0, -1.0])
+ filletWeld2Origin = (filletWeld1Origin + self.plate.T * (-self.weldLeft.uDir))
+ self.weldRight.place(filletWeld2Origin,uDir1,wDir1)
+
+ def createNutBoltArray(self):
+ # nutboltArrayOrigin = self.plate.secOrigin
+ # nutboltArrayOrigin -= self.plate.T/2.0 * self.plate.uDir
+ # nutboltArrayOrigin += self.plate.L/2.0 * self.plate.vDir
+
+ nutboltArrayOrigin = self.plate.secOrigin
+ nutboltArrayOrigin = nutboltArrayOrigin -self.plate.T/2.0 * self.plate.uDir
+ nutboltArrayOrigin = nutboltArrayOrigin + self.plate.L/2.0 * self.plate.vDir
+
+ gaugeDir = self.plate.wDir
+ pitchDir = -self.plate.vDir
+ boltDir = self.plate.uDir
+ self.nutBoltArray.place(nutboltArrayOrigin, gaugeDir, pitchDir, boltDir)
+
+ def get_models(self):
+ '''Returning 3D models
+ '''
+ #+ self.nutBoltArray.getnutboltModels()
+ # return [self.columnModel,self.plateModel, self.weldModelLeft,self.weldModelRight,
+ # self.beamModel] + self.nutBoltArray.getModels()
+ return [self.columnModel,self.beamModel,self.plateModel,self.weldModelLeft,self.weldModelRight]
+
+ def get_nutboltmodels(self):
+
+ return self.nutBoltArray.getModels()
+ #return self.nutBoltArray.getboltModels() \ No newline at end of file