Exemple #1
0
    def __init__(self, D, B, T, t, s, l, t1, H):
        self.B = B
        self.T = T
        self.D = D
        self.t = t
        self.l = l
        self.s = s
        self.t1 = t1
        self.H = H

        self.Isection1 = ISection(B, T, D, t, 0, 0, 0, H, None)
        self.Isection2 = ISection(B, T, D, t, 0, 0, 0, H, None)
        self.Plate1 = Plate(t1, H, l)
        self.Plate2 = Plate(t1, H, l)
    def __init__(self, D, B, T, t, s, l, t1, H):
        self.B = B
        self.T = T
        self.D = D
        self.t = t
        self.l = l
        self.s = s
        self.t1 = t1
        self.H = H

        self.sec_origin = numpy.array([0, 0, 0])
        self.uDir = numpy.array([1.0, 0, 0])
        self.wDir = numpy.array([0.0, 0, 1.0])

        self.Plate1 = Plate(t1, H, l)
        self.Plate2 = Plate(t1, H, l)
        self.channel1 = Channel(B, T, D, t, 0, 0, H)
        self.channel2 = Channel(B, T, D, t, 0, 0, H)
Exemple #3
0
 def initialiseWelds(self):
     w = self.welds
     p = self.intermittentPlate
     for i in np.arange(self.no_intermitent_connections):
         self.weldsabw.append(FilletWeld(w.h, w.b, w.L))
         self.weldsblw.append(FilletWeld(w.h, w.b, w.L))
         self.weldsabw1.append(FilletWeld(w.h, w.b, w.L))
         self.weldsblw1.append(FilletWeld(w.h, w.b, w.L))
         self.plates.append(Plate(p.L, p.W, p.T))
Exemple #4
0
    def __init__(self, A, B, t, H, s, s1):
        self.A = A
        self.B = B
        self.H = H
        self.t = t
        self.s = s
        self.B = s + t
        self.s1 = s1
        self.A = s1 + t

        self.sec_origin = numpy.array([0, 0, 0])
        self.uDir = numpy.array([1.0, 0, 0])
        self.wDir = numpy.array([0.0, 0, 1.0])
        self.vDir = self.wDir * self.uDir

        self.plate1 = Plate(self.B, H, t)
        self.plate2 = Plate(t, H, self.A)
        self.plate3 = Plate(self.B, H, t)
        self.plate4 = Plate(t, H, self.A)
Exemple #5
0
 def initialiseNutBolts(self):
     b = self.bolt
     n = self.nut
     p = self.intermittentPlate
     for i in np.arange(self.row * self.no_intermitent_connections):
         bolt_len_required = float(self.gap)
         b.H = bolt_len_required + 10
         self.bolts.append(Bolt(b.R, b.T, b.H, b.r))
         self.nuts.append(Nut(n.R, n.T, n.H, n.r1))
         self.boltsabv.append(Bolt(b.R, b.T, b.H, b.r))
         self.nutsabv.append(Nut(n.R, n.T, n.H, n.r1))
     for i in np.arange(self.no_intermitent_connections):
         self.plates.append(Plate(p.L, p.W, p.T))
    def __init__(self, a, b, t, l, t1, H):
        self.l = l
        self.a = a
        self.b = b
        self.t = t
        self.t1 = t1
        self.H = H

        self.sec_origin = numpy.array([0, 0, 0])
        self.uDir = numpy.array([1.0, 0, 0])
        self.wDir = numpy.array([0.0, 0, 1.0])
        self.vDir = self.wDir * self.uDir
        self.angle1 = Angle(H, a, b, t, 0, 0)
        self.angle2 = Angle(H, b, a, t, 0, 0)
        self.plate1 = Plate(l, H, t1)
Exemple #7
0
    def __init__(self, a, b, t, l, t1, l1, H, s, s1):
        self.l = s + 2 * t1
        self.a = a
        self.b = b
        self.t = t
        self.s = s
        self.s1 = s1
        self.t1 = t1
        self.l1 = s1 + 2 * t1 + 2 * t
        self.H = H

        self.sec_origin = numpy.array([0, 0, 0])
        self.uDir = numpy.array([1.0, 0, 0])
        self.wDir = numpy.array([0.0, 0, 1.0])
        self.vDir = self.wDir * self.uDir

        self.angle1 = Angle(H, a, b, t, 0, 0)
        self.angle2 = Angle(H, b, a, t, 0, 0)
        self.angle3 = Angle(H, a, b, t, 0, 0)
        self.angle4 = Angle(H, b, a, t, 0, 0)
        self.plate1 = Plate(self.l, H, t1)
        self.plate2 = Plate(t1, H, self.l1)
        self.plate3 = Plate(self.l, H, t1)
        self.plate4 = Plate(t1, H, self.l1)
Exemple #8
0
    def createPlateGeometry(self):
        body = Plate(L=self.L, W=self.W, T=self.T)
        body.place(self.sec_origin, self.uDir, self.wDir)

        part1 = body.create_model()
        return part1
Exemple #9
0
    from OCC.gp import gp_Pnt
    from OCC.Display.SimpleGui import init_display

    display, start_display, add_menu, add_function_to_menu = init_display()

    column = ISection(B=250,
                      T=13.5,
                      D=450,
                      t=9.8,
                      R1=15,
                      R2=75,
                      alpha=94,
                      length=1000,
                      notchObj=None)
    flangePlate = Plate(L=550, W=210, T=14)
    innerFlangePlate = Plate(L=550, W=80, T=14)
    webPlate = Plate(L=365, W=170, T=8)
    gap = 10

    flangePlateWeldL = FilletWeld(h=5, b=5, L=flangePlate.L)
    flangePlateWeldW = FilletWeld(h=5, b=5, L=flangePlate.W)

    innerflangePlateWeldL = FilletWeld(h=5, b=5, L=innerFlangePlate.L)
    innerflangePlateWeldW = FilletWeld(h=5, b=5, L=innerFlangePlate.W)

    webPlateWeldL = FilletWeld(h=5, b=5, L=webPlate.L)
    webPlateWeldW = FilletWeld(h=5, b=5, L=webPlate.W)

    CCSpliceCoverPlateCAD = CCSpliceCoverPlateWeldedCAD(
        column, flangePlate, innerFlangePlate, webPlate, gap, flangePlateWeldL,
Exemple #10
0
    def __init__(self, C, column, flangePlate, innerFlangePlate, webPlate,
                 flangePlateWeldL, flangePlateWeldW, innerflangePlateWeldL,
                 innerflangePlateWeldW, webPlateWeldL, webPlateWeldW):

        self.C = C
        self.column = column
        self.flangePlate = flangePlate
        self.innerFlangePlate = innerFlangePlate
        self.webPlate = webPlate
        self.flangePlateWeldL = flangePlateWeldL
        self.flangePlateWeldW = flangePlateWeldW
        self.webPlateWeldL = webPlateWeldL
        self.webPlateWeldW = webPlateWeldW
        self.innerflangePlateWeldL = innerflangePlateWeldL
        self.innerflangePlateWeldW = innerflangePlateWeldW

        self.gap = float(self.C.flange_plate.gap)
        self.flangespace = float(self.C.flangespace)
        self.webspace = float(self.C.webspace)

        self.column1 = copy.deepcopy(self.column)
        self.column2 = copy.deepcopy(self.column)

        self.flangePlate1 = copy.deepcopy(self.flangePlate)
        self.flangePlate2 = copy.deepcopy(self.flangePlate)

        self.innerFlangePlate1 = copy.deepcopy(self.innerFlangePlate)
        self.innerFlangePlate2 = copy.deepcopy(self.innerFlangePlate)
        self.innerFlangePlate3 = copy.deepcopy(self.innerFlangePlate)
        self.innerFlangePlate4 = copy.deepcopy(self.innerFlangePlate)

        self.webPlate1 = copy.deepcopy(self.webPlate)
        self.webPlate2 = copy.deepcopy(self.webPlate)

        # nuber top to bottom
        self.flangePlateWeldL11 = copy.deepcopy(self.flangePlateWeldL)
        self.flangePlateWeldL12 = copy.deepcopy(self.flangePlateWeldL)
        self.flangePlateWeldL21 = copy.deepcopy(self.flangePlateWeldL)
        self.flangePlateWeldL22 = copy.deepcopy(self.flangePlateWeldL)

        self.flangePlateWeldW11 = copy.deepcopy(self.flangePlateWeldW)
        self.flangePlateWeldW12 = copy.deepcopy(self.flangePlateWeldW)
        self.flangePlateWeldW21 = copy.deepcopy(self.flangePlateWeldW)
        self.flangePlateWeldW22 = copy.deepcopy(self.flangePlateWeldW)

        # Todo: update numbering
        self.webPlateWeldL11 = copy.deepcopy(self.webPlateWeldL)
        self.webPlateWeldL12 = copy.deepcopy(self.webPlateWeldL)
        self.webPlateWeldL21 = copy.deepcopy(self.webPlateWeldL)
        self.webPlateWeldL22 = copy.deepcopy(self.webPlateWeldL)

        self.webPlateWeldW11 = copy.deepcopy(self.webPlateWeldW)
        self.webPlateWeldW12 = copy.deepcopy(self.webPlateWeldW)
        self.webPlateWeldW21 = copy.deepcopy(self.webPlateWeldW)
        self.webPlateWeldW22 = copy.deepcopy(self.webPlateWeldW)

        # numbering is clock wise starting from right side top plate
        self.innerflangePlateWeldL11 = copy.deepcopy(
            self.innerflangePlateWeldL)
        self.innerflangePlateWeldL12 = copy.deepcopy(
            self.innerflangePlateWeldL)
        self.innerflangePlateWeldL21 = copy.deepcopy(
            self.innerflangePlateWeldL)
        self.innerflangePlateWeldL22 = copy.deepcopy(
            self.innerflangePlateWeldL)
        self.innerflangePlateWeldL31 = copy.deepcopy(
            self.innerflangePlateWeldL)
        self.innerflangePlateWeldL32 = copy.deepcopy(
            self.innerflangePlateWeldL)
        self.innerflangePlateWeldL41 = copy.deepcopy(
            self.innerflangePlateWeldL)
        self.innerflangePlateWeldL42 = copy.deepcopy(
            self.innerflangePlateWeldL)

        self.innerflangePlateWeldW11 = copy.deepcopy(
            self.innerflangePlateWeldW)
        self.innerflangePlateWeldW12 = copy.deepcopy(
            self.innerflangePlateWeldW)
        self.innerflangePlateWeldW21 = copy.deepcopy(
            self.innerflangePlateWeldW)
        self.innerflangePlateWeldW22 = copy.deepcopy(
            self.innerflangePlateWeldW)
        self.innerflangePlateWeldW31 = copy.deepcopy(
            self.innerflangePlateWeldW)
        self.innerflangePlateWeldW32 = copy.deepcopy(
            self.innerflangePlateWeldW)
        self.innerflangePlateWeldW41 = copy.deepcopy(
            self.innerflangePlateWeldW)
        self.innerflangePlateWeldW42 = copy.deepcopy(
            self.innerflangePlateWeldW)

        self.weldCutPlate = Plate(L=self.column.D + 4 * self.flangePlate.T,
                                  W=self.column.B + 2 * self.flangePlate.T,
                                  T=self.gap)
Exemple #11
0
    nutboltArrayOrigin = numpy.array([0., 0., 0.])
    gaugeDir = numpy.array([1.0, 0, 0])
    pitchDir = numpy.array([0, 1.0, 0])
    boltDir = numpy.array([0, 0, 1.0])

    numberOfBolts = 12
    column = ISection(B=250,
                      T=13.7,
                      D=450,
                      t=9.8,
                      R1=14.0,
                      R2=7.0,
                      alpha=94,
                      length=1500,
                      notchObj=None)
    baseplate = Plate(L=700, W=500, T=30)

    l = 550
    c = 225
    a = 175
    r = 24
    ex_length = (50 + 24 + baseplate.T)  # nut.T = 24
    bolt = AnchorBolt_A(l=250, c=125, a=75, r=12, ex=ex_length)
    # bolt = AnchorBolt_B(l= 250, c= 125, a= 75, r= 12)
    # bolt = AnchorBolt_Endplate(l= 250, c= 125, a= 75, r= 12)

    nut = Nut(R=bolt.r * 3, T=24, H=30, innerR1=bolt.r)
    washer = Washer(a=8 * bolt.r, d=2 * bolt.r, t=2)

    nutSpace = bolt.c + baseplate.T
Exemple #12
0
    import OCC.Core.V3d
    from OCC.Core.Quantity import Quantity_NOC_SADDLEBROWN, Quantity_NOC_BLUE1
    from OCC.Core.Graphic3d import Graphic3d_NOT_2D_ALUMINUM
    from utilities import osdag_display_shape
    # from cad.common_logic import CommonDesignLogic

    # from OCC.Core.Graphic3d import Quantity_NOC_GRAY as GRAY
    from OCC.Core.Quantity import Quantity_NOC_GRAY25 as GRAY
    from OCC.gp import gp_Pnt
    from OCC.Display.SimpleGui import init_display

    display, start_display, add_menu, add_function_to_menu = init_display()

    column = ISection(B=250, T=13.7, D=450, t=9.8, R1=15.0, R2=7.5, alpha=94, length=1500, notchObj=None)
    baseplate = Plate(L=650, W=415, T=45)

    weldType = 'Groove'  # 'Fillet'

    if weldType == 'Fillet':
        weldAbvFlang = FilletWeld(b=10, h=10, L=250)
        weldBelwFlang = FilletWeld(b=10, h=10, L=100)
        weldSideWeb = FilletWeld(b=10, h=10, L=420)

    else:
        weldAbvFlang = GrooveWeld(b=column.T, h=10, L=column.B)
        weldBelwFlang = GrooveWeld(b=column.T, h=10, L=column.B)
        weldSideWeb = GrooveWeld(b=column.t, h=10, L=column.D)
    # concrete = Concrete(L= baseplate.W*1.5, W= baseplate.L*1.5, T= baseplate.T*10)
    concrete = Plate(L=baseplate.L * 1.5, W=baseplate.W * 1.5, T=baseplate.T * 10)
    grout = Grout(L=concrete.L, W=concrete.W, T=50)
Exemple #13
0
    # from cad.common_logic import CommonDesignLogic

    from OCC.gp import gp_Pnt
    from OCC.Display.SimpleGui import init_display

    display, start_display, add_menu, add_function_to_menu = init_display()

    Obj = 'Star Angles'  #'Back to Back Channels'  # 'Channels'  #'  #'Angles'  #      or 'Back to Back Angles' 'Channels' or

    # weld_size = 6
    # s = max(15, weld_size)

    plate = GassetPlate(L=360 + 50, H=205.0, T=10, degree=30)
    bolt = Bolt(R=8, T=5, H=6, r=3)
    nut = Nut(R=bolt.R, T=bolt.T, H=bolt.T + 1, innerR1=bolt.r)
    intermittentPlate = Plate(L= 2*125 , W=70, T=plate.T)

    if Obj == 'Channels' or Obj == 'Back to Back Channels':
        member = Channel(B=50, T=6.6, D=125, t=3, R1=6.0, R2=2.4, L=4000)
        # plate_intercept = plate.L - s - 50
        if Obj == 'Channels':
            nut_space = member.t + plate.T + nut.T  # member.T + plate.T + nut.T
        else:
            nut_space = 2 * member.t + plate.T + nut.T  # 2*member.T + plate.T + nut.T
        # plateObj = 0.0

        nut_bolt_array = NutBoltArray(Obj, nut, bolt, nut_space)
        intermittentConnection = IntermittentNutBoltPlateArray(Obj, nut, bolt, intermittentPlate, nut_space)

        tensionCAD = TensionChannelBoltCAD(Obj, member, plate, nut_bolt_array, intermittentConnection)
Exemple #14
0
    from OCC.Core.Quantity import Quantity_NOC_SADDLEBROWN, Quantity_NOC_BLUE1
    from OCC.Core.Graphic3d import Graphic3d_NOT_2D_ALUMINUM
    from utilities import osdag_display_shape
    # from cad.common_logic import CommonDesignLogic

    from OCC.gp import gp_Pnt
    from OCC.Display.SimpleGui import init_display

    display, start_display, add_menu, add_function_to_menu = init_display()

    member_data = 'Star Angles' #'Back to Back Channels'#  #'Channels'  # 'Back to Back Angles' #'Angles' #'
    loc = 'Long Leg'  # 'Short Leg'#
    weld_size = 6
    s = max(15, weld_size)

    intermittentPlate = Plate(L=195, W=80, T=16)
    welds = FilletWeld(h=5, b=5, L=intermittentPlate.W)
    weld_plate_array = IntermittentWelds(member_data, welds, intermittentPlate)

    if member_data == 'Channels' or member_data == 'Back to Back Channels':
        member = Channel(B=75, T=10.2, D=175, t=6, R1=0, R2=0, L=2000)
        plate = GassetPlate(L=560 + 50, H=210, T=16, degree=30)
        plate_intercept = plate.L - s - 50
        inline_weld = FilletWeld(b=weld_size, h=weld_size, L=plate_intercept)
        opline_weld = FilletWeld(b=weld_size, h=weld_size, L=member.D)

        tensionCAD = TensionChannelWeldCAD(member_data, member, plate, inline_weld, opline_weld, weld_plate_array)


    else:
        member = Angle(L=2000.0, A=70.0, B=20.0, T=5.0, R1=0.0, R2=0.0)
Exemple #15
0
    from cad.items.plate import Plate
    from cad.items.bolt import Bolt
    from cad.items.nut import Nut
    from cad.items.filletweld import FilletWeld
    from cad.items.groove_weld import GrooveWeld
    from cad.MomentConnections.CCEndPlateCAD.nutBoltPlacement import NutBoltArray

    import OCC.Core.V3d

    from OCC.gp import gp_Pnt
    from OCC.Display.SimpleGui import init_display

    display, start_display, add_menu, add_function_to_menu = init_display()

    column = ISection(B=250, T=12.7, D=400, t=9.1, R1=11, R2=5.5, alpha=94, length=1000, notchObj=None)
    endPlate = Plate(L=column.D, W=column.B, T=45)
    flangeWeld = GrooveWeld(b=column.T, h=20, L=column.B)
    webWeld = GrooveWeld(b=column.t, h=20, L=column.D - 2 * column.T)

    bolt = Bolt(R=14, T=10, H=13, r=8)
    nut = Nut(R=bolt.R, T=bolt.T, H=bolt.T + 1, innerR1=bolt.r)
    nut_space = 2 * endPlate.T + nut.T  # member.T + plate.T + nut.T
    Obj = '6'

    nut_bolt_array = NutBoltArray(Obj, nut, bolt, nut_space)

    CCEndPlate = CCEndPlateCAD(column, endPlate, flangeWeld, webWeld, nut_bolt_array)

    CCEndPlate.create_3DModel()
    column = CCEndPlate.get_column_models()
    plates = CCEndPlate.get_plate_models()
Exemple #16
0
    display, start_display, add_menu, add_function_to_menu = init_display()

    nutboltArrayOrigin = numpy.array([0., 0., 0.])
    gaugeDir = numpy.array([0.0, 1.0, 0])
    pitchDir = numpy.array([1.0, 0.0, 0])
    boltDir = numpy.array([0, 0, 1.0])

    bolt = Bolt(R=6, T=5, H=6, r=3)
    nut = Nut(R=bolt.R, T=bolt.T, H=bolt.T + 1, innerR1=bolt.r)
    nut_space = 10 + 5 + nut.T  # member.T + plate.T + nut.T
    Obj = 'Star Angles'  # 'Back to Back Channels'  #'Channels'  #'  #'Angles'  #      or 'Back to Back Angles' 'Channels' or

    # nut_bolt_array = NutBoltArray(Obj, nut, bolt, nut_space)

    intermittentPlate = Plate(L=35 + 35 + 35, W=35 + 35, T=10)
    # nut_bolt_array = IntermittentNutBoltPlateArray(Obj, nut, bolt, intermittentPlate, nut_space)
    #
    # place = nut_bolt_array.place(nutboltArrayOrigin, gaugeDir, pitchDir, boltDir)
    # nut_bolt_array_Model = nut_bolt_array.create_model()

    welds = FilletWeld(h=5, b=5, L=intermittentPlate.W)
    weld_plate_array = IntermittentWelds(Obj, welds, intermittentPlate)
    place = weld_plate_array.place(nutboltArrayOrigin, pitchDir, gaugeDir,
                                   boltDir)

    weld_plate_array.create_model()

    welds = weld_plate_array.get_welded_models()
    plates = weld_plate_array.get_plate_models()
Exemple #17
0
    import OCC.Core.V3d

    from OCC.gp import gp_Pnt
    from OCC.Display.SimpleGui import init_display
    display, start_display, add_menu, add_function_to_menu = init_display()

    column = ISection(B=206.4,
                      T=17.3,
                      D=215.8,
                      t=10,
                      R1=15,
                      R2=75,
                      alpha=94,
                      length=1000,
                      notchObj=None)
    flangePlate = Plate(L=240, W=203.6, T=10)
    innerFlangePlate = Plate(L=240, W=85, T=10)
    webPlate = Plate(L=600, W=120, T=8)
    gap = 10

    bolt = Bolt(R=12, T=5, H=6, r=6)
    nut = Nut(R=bolt.R, T=bolt.T, H=bolt.T + 1, innerR1=bolt.r)
    nut_space = 2 * flangePlate.T + column.T
    Obj = '6'
    numOfboltsF = 24
    plateAbvFlangeL = 100

    nut_bolt_array_AF = NutBoltArray_AF(Obj, nut, bolt, numOfboltsF, nut_space)
    nut_bolt_array_BF = NutBoltArray_BF(Obj, nut, bolt, numOfboltsF, nut_space)
    numOfboltsF = 24
    nut_space = 2 * webPlate.T + column.t