diff options
Diffstat (limited to 'Connections/Shear/Finplate/colFlangeBeamWebConnectivity.py')
-rw-r--r-- | Connections/Shear/Finplate/colFlangeBeamWebConnectivity.py | 202 |
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 |