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
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))
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()
# 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)
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)
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()
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)