def test_rect_section(): #create materials conc = material.Concrete(30) steel = material.Steel(500, 200000) #define profile profile = shape.Rectangle(500, 700) bars = [ #section.Bar(steel,section.Bar.diam_20M, 65), #section.Bar(steel,section.Bar.diam_20M, 65), #section.Bar(steel,section.Bar.diam_20M, 65), #section.Bar(steel,section.Bar.diam_20M, 65), section.Bar(steel, section.Bar.diam_30M, 635), section.Bar(steel, section.Bar.diam_30M, 635), section.Bar(steel, section.Bar.diam_30M, 635), section.Bar(steel, section.Bar.diam_30M, 635) ] sec = section.Section(conc, profile, bars) #set material factors sec.concrete_factor = 0.65 sec.steel_factor = 0.85 #calc peak axial strength #print(sec.calc_peak_axial_strength()) #print MN Chart file = open('mn.csv', 'w') for M, N in sec.calc_M_N().entries: file.write(str(M) + "," + str(N) + "\n")
def test_circle_section(): #create materials conc = material.Concrete(40) steel = material.Steel(463, 194000) #define profile profile = shape.Circle(355.6) bars = [ section.Bar(steel, 12.5, 50.00), section.Bar(steel, 12.5, 115.25), section.Bar(steel, 12.5, 115.25), section.Bar(steel, 12.5, 244.75), section.Bar(steel, 12.5, 244.75), section.Bar(steel, 12.5, 309.50) ] sec = section.Section(conc, profile, bars) #set material factors sec.concrete_factor = 1 sec.steel_factor = 1 #calc peak axial strength #print(sec.calc_peak_axial_strength()) #print MN Chart file = open('mn.csv', 'w') for M, N in sec.calc_M_N().entries: file.write(str(M) + "," + str(N) + "\n")
def __init__(self, diameter, shaft_area=None, stress_area=None, effective_free_length=None, hole_diameter=None, steel=material.Steel(), prestress_force=None, washer=None): """ :param diameter: in m :param shaft_area: shaft area :param stress_area: stress area at the thread of the bolt :param effective_free_length: free length, i.e., between bottom of grout and top of embedded flange ring :param hole_diameter: if not specified, equal to diameter + 6 mm :param steel: :param prestress_force: :param washer: Washer object """ self.diameter = diameter self.shaft_area = shaft_area self.stress_area = stress_area self.effective_free_length = effective_free_length self.hole_diameter = diameter + 0.006 if hole_diameter is None else hole_diameter self.hole_area = math.pi * self.hole_diameter**2. / 4. self.steel = steel self.prestress_force = prestress_force self.ultimate_prestress_force = steel.fuk * 1e3 * stress_area / 1.1 self.washer = washer if washer is None: self.washer = Washer(diameter=diameter + 0.05, hole_diameter=diameter + 0.01, thickness=0.01, steel=steel)
def __init__(self, outer_diameter, inner_diameter, thickness, steel=material.Steel()): self.set_plate_parameters(outer_diameter, inner_diameter, thickness, steel)
def __init__(self, outer_diameter, inner_diameter, thickness, steel=material.Steel(), flange_type='T'): super(Flange, self).__init__(outer_diameter, inner_diameter, thickness, steel) self.type = flange_type
def set_plate_parameters(self, outer_diameter, inner_diameter, thickness, steel=material.Steel()): self.outer_diameter = outer_diameter self.inner_diameter = inner_diameter self.thickness = thickness self.steel = steel
def __init__(self, diameter, hole_diameter, thickness, steel=material.Steel()): self.diameter = diameter self.hole_diameter = hole_diameter self.thickness = thickness self.steel = steel
def test_slab(): #create materials conc = material.Concrete(45) steel = material.Steel(420, 200000) #define slab with materials and thickness s = slab.Slab(conc, steel, 1525) #set slab properties s.cover_top = 40 s.cover_bot = 75 s.aggregate_size = 19 s.inner_layer = "X" #add bars to slab #In X: 2X25 @150 TF2 TF4 BF2 BF4 #In Y: 2X25 @150 TF2 TF4 2X32 @150 BF2 BF4 s.layers_x_top = [slab.BarLayer([25], 150), slab.BarLayer([25], 150)] s.layers_x_bot = [slab.BarLayer([25], 150), slab.BarLayer([25], 150)] s.layers_y_top = [slab.BarLayer([25], 150), slab.BarLayer([25], 150)] s.layers_y_bot = [slab.BarLayer([32], 150), slab.BarLayer([32], 150)] #set concrete factors before updating sections s.concrete_factor = 0.65 s.steel_factor = 0.85 s.update_sections() #output MN Chart file = open('mn.csv', 'w') MNChart = s.section_x.calc_M_N() for M, N in MNChart.entries: file.write(str(M) + "," + str(N) + "\n")