Exemple #1
0
 def pavement(self):
     bridge_w = self.bridge_inf['bridge'][1] - self.bridge_inf['bridge'][0]
     pave_w = bridge_w - sum(self.barrier[0])
     barrier_f = sum(self.barrier[1]) * 26
     pave_f = bridge_w * self.pave_thickness[
         0] * 26 + pave_w * self.pave_thickness[1] * 24
     fz = -barrier_f - pave_f
     midas1.start_stld('PAVEMENT', self.mct_l)
     midas1.start_beam_load(self.mct_l)
     i_elems = self.elem[self.elem['what'] == 'beam'].index
     midas1.beam_load(i_elems, fz, mct_list=self.mct_l, group='pavement')
Exemple #2
0
 def tem(self):
     i_elems = self.elem.index
     midas1.start_stld('TEM_U', self.mct_l)
     midas1.start_tem_load(self.mct_l)
     for i in i_elems:
         midas1.tem_load(i,
                         self.temp[0],
                         mct_list=self.mct_l,
                         group='tem_u')
     midas1.start_stld('TEM_D', self.mct_l)
     midas1.start_tem_load(self.mct_l)
     for i in i_elems:
         midas1.tem_load(i,
                         self.temp[1],
                         mct_list=self.mct_l,
                         group='tem_d')
Exemple #3
0
    def brake_force(self, side=2):
        midas1.start_stld('BRAKE_FORCE', self.mct_l)
        midas1.start_beam_load(self.mct_l)

        bridge_w = self.bridge_inf['bridge'][1] - self.bridge_inf['bridge'][0]
        lane_num = kny_tool.get_lanes_from_w(bridge_w, side=side)
        if side == 2:
            brake_f = lane_num / 2 * 165
        else:
            brake_f = lane_num * 165
        brake_f *= 1 / 30
        brake_elem = self.elem[self.elem['what'] == 'beam'].index
        midas1.beam_load(brake_elem,
                         brake_f,
                         side='X',
                         offset_side='Z',
                         offset_dis=1.2,
                         mct_list=self.mct_l,
                         group='brake_force')
Exemple #4
0
    def wind(self, h=5):
        bridge_w = self.bridge_inf['bridge'][1] - self.bridge_inf['bridge'][0]
        wind_beam = wind.BeamWind(0, [bridge_w, 1.6, 14], h, 30)
        beam_f = wind_beam.Fg / 1000
        elem_wind = self.elem[self.elem['what'] == 'beam'].index

        midas1.start_stld('WIND_1', self.mct_l)
        midas1.start_beam_load(self.mct_l)
        midas1.beam_load(elem_wind,
                         beam_f,
                         mct_list=self.mct_l,
                         group='wind_1',
                         side='Y')
        midas1.start_stld('WIND_2', self.mct_l)
        midas1.start_beam_load(self.mct_l)
        midas1.beam_load(elem_wind,
                         -beam_f,
                         mct_list=self.mct_l,
                         group='wind_2',
                         side='Y')
Exemple #5
0
    def add_tendon(self, cap_sec, secs):

        # 钢束线型
        midas1.tendon_prop(['T1'], [140 * self.tendon_per_n / 1e6], 2,
                           self.mct_l)
        # 钢束线型
        tendon_loc, tendon_type = kny_tool.tendon_loc_type(self.bridge_inf)
        midas1.start_tendon_type(self.mct_l)
        tendon_z = []
        tendon_r = []
        for i, j in enumerate(tendon_type):
            if j == 0:
                i_sec = cap_sec[0] if i == 0 else cap_sec[-1]
                i_cz = -secs.secs[self.sec_dic[i_sec] - 1].prop['c'][2]
                i_z = i_cz + self.tendon_inf['tendon_to_top'][0] - \
                      np.average(self.tendon_inf['tendon_to_top'][0], weights=self.tendon_inf['tendon_ni'])
                tendon_z.append(i_z)
                tendon_r.append(0)
            else:
                tendon_z.append(self.tendon_inf['tendon_to_top'][j - 1])
                tendon_r.append(self.tendon_curve_r)
        origin_pt = (0, 0, -self.beam_height - self.support_height)
        tendon_elem = self.elem[(self.elem['what'] == 'cap')
                                & (self.elem['x'] == 0)].index
        y_pt = [(min(tendon_loc), 0, 0), (max(tendon_loc), 0, 0)]
        for i, j in enumerate(self.tendon_inf['tendon_ni']):
            i_pt_z = [m[i] for m in tendon_z]
            z_pt = np.array([tendon_loc, i_pt_z, tendon_r]).T
            midas1.tendon_type(f't-{i+1}', 'T1', tendon_elem,
                               self.tendon_inf['tendon_ni'][i], origin_pt, 'Y',
                               y_pt, z_pt, self.mct_l)
        # 张拉预应力
        midas1.start_stld('TENDON', self.mct_l)
        midas1.start_tendon_f(self.mct_l)
        for i, j in enumerate(self.tendon_inf['tendon_ni']):
            midas1.tendon_f(f't-{i + 1}', mct_list=self.mct_l)
Exemple #6
0
 def self_weight(self):
     midas1.start_stld('DEAD', mct_list=self.mct_l)
     midas1.add_self_weight(1, mct_list=self.mct_l, group='dead')