Exemple #1
0
    def createWedgeGeometry(self):
        wedgeL_1 = FilletWeld(b=self.T, h=self.T, L=self.L)
        wedgeL_2 = copy.deepcopy(wedgeL_1)
        wedgeW_1 = FilletWeld(b=self.T, h=self.T, L=self.W)
        wedgeW_2 = copy.deepcopy(wedgeW_1)

        wedgeL_1uDir = numpy.array([-1.0, 0.0, 0.0])
        wedgeL_1wDir = numpy.array([0.0, -1.0, 0.0])
        wedgeL_1.place(self.p3, wedgeL_1uDir, wedgeL_1wDir)

        wedgeL_1Model = wedgeL_1.create_model()

        wedgeL_2uDir = numpy.array([1.0, 0.0, 0.0])
        wedgeL_2wDir = numpy.array([0.0, 1.0, 0.0])
        wedgeL_2.place(self.p1, wedgeL_2uDir, wedgeL_2wDir)

        wedgeL_2Model = wedgeL_2.create_model()

        wedgeW_1uDir = numpy.array([0.0, 1.0, 0.0])
        wedgeW_1wDir = numpy.array([-1.0, 0.0, 0.0])
        wedgeW_1.place(self.p4, wedgeW_1uDir, wedgeW_1wDir)
        wedgeW_1Model = wedgeW_1.create_model()
        #

        wedgeW_2uDir = numpy.array([0.0, -1.0, 0.0])
        wedgeW_2wDir = numpy.array([1.0, 0.0, 0.0])
        wedgeW_2.place(self.p2, wedgeW_2uDir, wedgeW_2wDir)

        wedgeW_2Model = wedgeW_2.create_model()

        wedge = BRepAlgoAPI_Fuse(wedgeL_1Model, wedgeL_2Model).Shape()
        wedge = BRepAlgoAPI_Fuse(wedge, wedgeW_1Model).Shape()
        wedge = BRepAlgoAPI_Fuse(wedge, wedgeW_2Model).Shape()

        return wedge
Exemple #2
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 #3
0
    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,
        flangePlateWeldW, innerflangePlateWeldL, innerflangePlateWeldW,
        webPlateWeldL, webPlateWeldW)

    CCSpliceCoverPlateCAD.create_3DModel()
    column = CCSpliceCoverPlateCAD.get_column_models()
Exemple #4
0
    # 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)

    gusset = StiffenerPlate(L=baseplate.W, W=200, T=14, L11=(baseplate.W - (column.B + 100)) / 2, L12=200 - 100,
                            R11=(baseplate.W - (column.B + 100)) / 2, R12=200 - 100)
    stiffener = StiffenerPlate(L=(baseplate.L - column.D - 2 * gusset.T) / 2, W=gusset.W, T=gusset.T,
                               L11=(baseplate.L - column.D - 2 * gusset.T) / 2 - 50, L12=gusset.W - 100)
Exemple #5
0
    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)
        plate = GassetPlate(L=540 + 50, H=255, T=16, degree=30)
Exemple #6
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()

    # array = nut_bolt_array.get_models()
    # nbarray = nut_bolt_array.get_nut_bolt_models()
    # parray = nut_bolt_array.get_plate_models()
    # array = nut_bolts[0]
    # for comp in nut_bolts:
    #     array = BRepAlgoAPI_Fuse(comp, array).Shape()
Exemple #7
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()

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

    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=5000)
        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)

    else:
        member = Angle(L=2000.0, A=70.0, B=20.0, T=5.0, R1=0.0, R2=0.0)
        plate = GassetPlate(L=540 + 50, H=255, T=5, degree=30)
        plate_intercept = plate.L - s - 50
        inline_weld = FilletWeld(b=weld_size, h=weld_size, L=plate_intercept)
        if loc == 'Long Leg':
            opline_weld = FilletWeld(b=weld_size, h=weld_size, L=member.A)
        else:
            opline_weld = FilletWeld(b=weld_size, h=weld_size, L=member.B)