Esempio n. 1
0
    def create_stirrup(self):

        stirrup_list = []

        #构模
        shape_stirrup = self.shape_stirrup(self.StirrupType)

        point_f_1 = AllplanGeo.Point3D(0, 0, 0)
        point_t_1 = AllplanGeo.Point3D(self.StirDenseRegionLength, 0, 0)
        stirrup_list.append(
            LinearBarBuilder.create_linear_bar_placement_from_to_by_dist(
                0, shape_stirrup, point_f_1, point_t_1, self.StirBothEndLength,
                0, self.StirDenseRegionDistance, 3))

        point_f_2 = AllplanGeo.Point3D(
            self.Length - self.StirDenseRegionLength, 0, 0)
        point_t_2 = AllplanGeo.Point3D(self.Length, 0, 0)
        stirrup_list.append(
            LinearBarBuilder.create_linear_bar_placement_from_to_by_dist(
                0, shape_stirrup, point_f_2, point_t_2, 0,
                self.StirBothEndLength, self.StirDenseRegionDistance, 2))

        point_f = AllplanGeo.Point3D(self.StirDenseRegionLength, 0, 0)
        point_t = AllplanGeo.Point3D(self.Length - self.StirDenseRegionLength,
                                     0, 0)
        stirrup_list.append(
            LinearBarBuilder.create_linear_bar_placement_from_to_by_dist(
                0, shape_stirrup, point_f, point_t,
                self.StirDenseRegionDistance / 2,
                self.StirDenseRegionDistance / 2,
                self.StirrupSparseRegionDistance, 3))

        if steel_modify(self.Length - 2 * self.StirDenseRegionLength,
                        self.StirDiameter, self.StirrupSparseRegionDistance,
                        self.StirDenseRegionDistance / 2,
                        self.StirDenseRegionDistance / 2):
            point_cnt_1 = AllplanGeo.Point3D(self.StirDenseRegionLength, 0, 0)
            point_cnt_2 = AllplanGeo.Point3D(self.Length, 0, 0)
            vec = AllplanGeo.Vector3D(
                AllplanGeo.Point3D(0, 0, 0),
                AllplanGeo.Point3D(self.StirrupSparseRegionDistance / 2, 0, 0))
            s_shape = AllplanReinf.BendingShape(shape_stirrup)
            s_shape.Move(
                AllplanGeo.Vector3D(
                    AllplanGeo.Point3D(
                        self.Length - self.StirDenseRegionLength, 0, 0)))
            stirrup_list.append(
                AllplanReinf.BarPlacement(0, 1, vec, point_cnt_1, point_cnt_2,
                                          s_shape))

        return stirrup_list
Esempio n. 2
0
    def create_tie_steel(self):
        steel_list = []

        cover = ConcreteCoverProperties(self.StirSideCover + self.StirDiameter,
                                        self.StirSideCover + self.StirDiameter,
                                        0, 0)

        rebar_prop = {
            'diameter': self.TieBarDia,
            'bending_roller': 0,
            'steel_grade': self.TieBarGrade,
            'concrete_grade': self.ConcreteGrade,
            'bending_shape_type': AllplanReinf.BendingShapeType.LongitudinalBar
        }

        tie = Stirrup(cover, rebar_prop)

        tie_shape = tie.shape_tie_steel(self.Width + 3 * self.StirDiameter +
                                        2 * self.TieBarDia,
                                        4 * self.TieBarDia,
                                        RotationAngles(225, 0, 90),
                                        hook=self.TieBendingLength,
                                        degrees=self.TieBarAngle)

        distance = 0
        for x in range(self.WaistRows):
            point_f_1 = AllplanGeo.Point3D(
                -self.StirDiameter, -1.5 * self.StirDiameter - self.TieBarDia,
                self.WaistPosition + self.WaistBarDiameter + distance)
            point_t_1 = AllplanGeo.Point3D(
                self.StirDenseRegionLength - self.StirDiameter,
                -1.5 * self.StirDiameter - self.TieBarDia,
                self.WaistPosition + self.WaistBarDiameter + distance)

            steel_list.append(
                LinearBarBuilder.create_linear_bar_placement_from_to_by_dist(
                    0, tie_shape, point_f_1, point_t_1, self.StirBothEndLength,
                    0, self.StirDenseRegionDistance, 3))

            point_f_2 = AllplanGeo.Point3D(
                self.Length - self.StirDenseRegionLength - self.StirDiameter,
                -1.5 * self.StirDiameter - self.TieBarDia,
                self.WaistPosition + self.WaistBarDiameter + distance)
            point_t_2 = AllplanGeo.Point3D(
                self.Length - self.StirDiameter,
                -1.5 * self.StirDiameter - self.TieBarDia,
                self.WaistPosition + self.WaistBarDiameter + distance)
            steel_list.append(
                LinearBarBuilder.create_linear_bar_placement_from_to_by_dist(
                    0, tie_shape, point_f_2, point_t_2, 0,
                    self.StirBothEndLength, self.StirDenseRegionDistance, 2))

            point_f = AllplanGeo.Point3D(
                self.StirDenseRegionLength - self.StirDiameter,
                -1.5 * self.StirDiameter - self.TieBarDia,
                self.WaistPosition + self.WaistBarDiameter + distance)
            point_t = AllplanGeo.Point3D(
                self.Length - self.StirDenseRegionLength - self.StirDiameter,
                -1.5 * self.StirDiameter - self.TieBarDia,
                self.WaistPosition + self.WaistBarDiameter + distance)
            steel_list.append(
                LinearBarBuilder.create_linear_bar_placement_from_to_by_dist(
                    0, tie_shape, point_f, point_t,
                    self.StirDenseRegionDistance / 2,
                    self.StirDenseRegionDistance / 2,
                    self.StirrupSparseRegionDistance, 3))

            if steel_modify(self.Length - 2 * self.StirDenseRegionLength,
                            self.StirDiameter,
                            self.StirrupSparseRegionDistance,
                            self.StirDenseRegionDistance / 2,
                            self.StirDenseRegionDistance / 2):
                point_cnt_1 = AllplanGeo.Point3D(self.StirDenseRegionLength, 0,
                                                 0)
                point_cnt_2 = AllplanGeo.Point3D(self.Length, 0, 0)
                vec = AllplanGeo.Vector3D(
                    AllplanGeo.Point3D(0, 0, 0),
                    AllplanGeo.Point3D(self.StirrupSparseRegionDistance / 2, 0,
                                       0))
                s_shape = AllplanReinf.BendingShape(tie_shape)
                s_shape.Move(
                    AllplanGeo.Vector3D(
                        AllplanGeo.Point3D(
                            self.Length - self.StirDenseRegionLength -
                            self.StirDiameter,
                            -1.5 * self.StirDiameter - self.TieBarDia,
                            self.WaistPosition + self.WaistBarDiameter +
                            distance)))
                steel_list.append(
                    AllplanReinf.BarPlacement(0, 1, vec, point_cnt_1,
                                              point_cnt_2, s_shape))

            distance += self.WaistDistance

        return steel_list
Esempio n. 3
0
    def create_vertical_steel(self):
        steel_list = []

        cover = [
            self.Length_BA, self.Length_BA, self.Length_BA, self.Length_BA
        ]
        rebar_prop = {
            'diameter': self.HoriSteelDia,
            'bending_roller': 0,
            'steel_grade': self.HoriSteelGrade,
            'concrete_grade': self.ConcreteGrade,
            'bending_shape_type': AllplanReinf.BendingShapeType.LongitudinalBar
        }

        longit = LongitudinalSteel(cover, rebar_prop)
        if self.BendingAnchor:
            steel_vert_1 = longit.shape_anchor_steel(
                self.Height, self.Length_TA, self.BendPosition,
                self.BendLength, self.BendWidth, 2, False, True)
            steel_vert_2 = longit.shape_anchor_steel(
                self.Height, self.Length_TA, self.BendPosition,
                self.BendLength, self.BendWidth, 2, True, True)

        else:
            steel_vert_1 = steel_vert_2 = longit.shape_extend_steel(
                length=self.Height,
                extend=self.Length_TA,
                extend_side=2,
                vertical=True)

        point_f_1 = AllplanGeo.Point3D(0,
                                       self.HoriFrontCover + self.HoriSteelDia,
                                       0)
        point_t_1 = AllplanGeo.Point3D(self.Length,
                                       self.HoriFrontCover + self.HoriSteelDia,
                                       0)

        steel_list.append(
            LinearBarBuilder.create_linear_bar_placement_from_to_by_dist(
                0, steel_vert_1, point_f_1, point_t_1, self.VertSideCover,
                self.VertSideCover, self.VertDistance, 3))

        point_f_2 = AllplanGeo.Point3D(
            0, self.Width - self.HoriFrontCover - self.HoriSteelDia, 0)
        point_t_2 = AllplanGeo.Point3D(
            self.Length, self.Width - self.HoriFrontCover - self.HoriSteelDia,
            0)

        steel_list.append(
            LinearBarBuilder.create_linear_bar_placement_from_to_by_dist(
                0, steel_vert_2, point_f_2, point_t_2, self.VertSideCover,
                self.VertSideCover, self.VertDistance, 3))

        if steel_modify(self.Length, self.VertSteelDia, self.VertDistance,
                        self.VertSideCover, self.VertSideCover):
            point_f_3 = AllplanGeo.Point3D(0, 0, 0)
            point_t_3 = AllplanGeo.Point3D(self.Length, 0, 0)
            vec = AllplanGeo.Vector3D(
                AllplanGeo.Point3D(0, 0, 0),
                AllplanGeo.Point3D(self.VertDistance / 2, 0, 0))
            s_shape_1 = AllplanReinf.BendingShape(steel_vert_1)
            s_shape_1.Move(
                AllplanGeo.Vector3D(
                    AllplanGeo.Point3D(self.Length - self.VertSideCover,
                                       self.HoriFrontCover + self.HoriSteelDia,
                                       0)))
            s_shape_2 = AllplanReinf.BendingShape(steel_vert_2)
            s_shape_2.Move(
                AllplanGeo.Vector3D(
                    AllplanGeo.Point3D(
                        self.Length - self.VertSideCover,
                        self.Width - self.HoriFrontCover - self.HoriSteelDia,
                        0)))
            steel_list.append(
                AllplanReinf.BarPlacement(0, 1, vec, point_f_3, point_t_3,
                                          s_shape_1))
            steel_list.append(
                AllplanReinf.BarPlacement(0, 1, vec, point_f_3, point_t_3,
                                          s_shape_2))

        return steel_list
Esempio n. 4
0
    def create_tie_steel(self):
        steel_list = []
        tie_shape = self.shape_tie_steel(self.Width, 4 * self.TieSteelDia)

        distance = self.HoriBottomCover + self.HoriSteelDia

        lines = int((self.Height - self.HoriTopCover - self.HoriBottomCover -
                     self.HoriSteelDia) / self.HoriDistance)
        rows = int((self.Length - 2 * self.VertSideCover - self.VertSteelDia) /
                   self.VertDistance)
        if self.TieMode == 1:
            for x in range(lines + 1):

                point_f = AllplanGeo.Point3D(2 * self.VertSteelDia, 0,
                                             distance)
                point_t = AllplanGeo.Point3D(
                    self.Length + 2 * self.VertSteelDia, 0, distance)
                if x % 3 == 0:
                    steel_list.append(
                        LinearBarBuilder.
                        create_linear_bar_placement_from_to_by_dist(
                            0, tie_shape, point_f, point_t, self.VertSideCover,
                            self.VertSideCover, 3 * self.VertDistance, 3))

                distance += self.HoriDistance
            #last row
            if steel_modify(self.Height, self.HoriSteelDia, self.HoriDistance,
                            self.HoriBottomCover,
                            self.HoriTopCover) and (lines + 1) % 3 == 0:
                point_f = AllplanGeo.Point3D(
                    2 * self.VertSteelDia, 0,
                    self.Height - self.HoriTopCover + self.HoriSteelDia)
                point_t = AllplanGeo.Point3D(
                    self.Length + 2 * self.VertSteelDia, 0,
                    self.Height - self.HoriTopCover + self.HoriSteelDia)
                steel_list.append(
                    LinearBarBuilder.
                    create_linear_bar_placement_from_to_by_dist(
                        0, tie_shape, point_f, point_t, self.VertSideCover,
                        self.VertSideCover, 3 * self.VertDistance, 3))

            #last line
            if steel_modify(self.Length, self.VertSteelDia, self.VertDistance,
                            self.VertSideCover,
                            self.VertSideCover) and (rows + 1) % 3 == 0:
                l_distance = self.HoriBottomCover + self.HoriSteelDia
                for y in range(lines + 1):
                    if y % 3 == 0:
                        point_f_e = AllplanGeo.Point3D(0, 0, 0)
                        point_t_e = AllplanGeo.Point3D(self.Length, 0, 0)
                        vec = AllplanGeo.Vector3D(
                            AllplanGeo.Point3D(0, 0, 0),
                            AllplanGeo.Point3D(self.VertDistance / 2, 0, 0))
                        s_shape = AllplanReinf.BendingShape(tie_shape)
                        s_shape.Move(
                            AllplanGeo.Vector3D(
                                AllplanGeo.Point3D(
                                    self.Length - self.VertSideCover -
                                    self.VertSteelDia + 2 * self.VertSteelDia,
                                    0, l_distance)))
                        steel_list.append(
                            AllplanReinf.BarPlacement(0, 1, vec, point_f_e,
                                                      point_t_e, s_shape))
                    l_distance += self.HoriDistance
                #last line & row
                if steel_modify(self.Height, self.HoriSteelDia,
                                self.HoriDistance, self.HoriBottomCover,
                                self.HoriTopCover) and (lines + 1) % 3 == 0:
                    point_f_e = AllplanGeo.Point3D(0, 0, 0)
                    point_t_e = AllplanGeo.Point3D(self.Length, 0, 0)
                    vec = AllplanGeo.Vector3D(
                        AllplanGeo.Point3D(0, 0, 0),
                        AllplanGeo.Point3D(self.VertDistance / 2, 0, 0))
                    s_shape = AllplanReinf.BendingShape(tie_shape)
                    s_shape.Move(
                        AllplanGeo.Vector3D(
                            AllplanGeo.Point3D(
                                self.Length - self.VertSideCover -
                                self.VertSteelDia + 2 * self.VertSteelDia, 0,
                                self.Height - self.HoriTopCover +
                                self.HoriSteelDia)))
                    steel_list.append(
                        AllplanReinf.BarPlacement(0, 1, vec, point_f_e,
                                                  point_t_e, s_shape))

        elif self.TieMode == 2:
            distance = self.VertSideCover + 2 * self.VertSteelDia
            for x in range(rows + 1):

                if x % 4 == 0:
                    point_f = AllplanGeo.Point3D(distance, 0,
                                                 self.HoriSteelDia)
                    point_t = AllplanGeo.Point3D(
                        distance, 0, self.Height + self.HoriSteelDia)
                    steel_list.append(
                        LinearBarBuilder.
                        create_linear_bar_placement_from_to_by_dist(
                            0, tie_shape, point_f, point_t,
                            self.HoriBottomCover, self.HoriTopCover,
                            4 * self.HoriDistance, 3))
                if (x + 2) % 4 == 0 and x != 0:
                    point_f = AllplanGeo.Point3D(
                        distance, 0, self.HoriSteelDia + 2 * self.HoriDistance)
                    point_t = AllplanGeo.Point3D(
                        distance, 0, self.Height + self.HoriSteelDia)
                    steel_list.append(
                        LinearBarBuilder.
                        create_linear_bar_placement_from_to_by_dist(
                            0, tie_shape, point_f, point_t,
                            self.HoriBottomCover, self.HoriTopCover,
                            4 * self.HoriDistance, 3))

                distance += self.VertDistance

            if steel_modify(self.Length, self.VertSteelDia, self.VertDistance,
                            self.VertSideCover, self.VertSideCover):
                if (rows + 1) % 4 == 0:
                    point_f = AllplanGeo.Point3D(
                        self.Length - self.VertSideCover, 0, self.HoriSteelDia)
                    point_t = AllplanGeo.Point3D(
                        self.Length - self.VertSideCover, 0,
                        self.Height + self.HoriSteelDia)
                    steel_list.append(
                        LinearBarBuilder.
                        create_linear_bar_placement_from_to_by_dist(
                            0, tie_shape, point_f, point_t,
                            self.HoriBottomCover, self.HoriTopCover,
                            4 * self.HoriDistance, 3))
                if (rows + 3) % 4 == 0:
                    point_f = AllplanGeo.Point3D(
                        self.Length - self.VertSideCover, 0,
                        self.HoriSteelDia + 2 * self.HoriDistance)
                    point_t = AllplanGeo.Point3D(
                        self.Length - self.VertSideCover, 0,
                        self.Height + self.HoriSteelDia)
                    steel_list.append(
                        LinearBarBuilder.
                        create_linear_bar_placement_from_to_by_dist(
                            0, tie_shape, point_f, point_t,
                            self.HoriBottomCover, self.HoriTopCover,
                            4 * self.HoriDistance, 3))
            #last row
            if steel_modify(self.Height, self.HoriSteelDia, self.HoriDistance,
                            self.HoriBottomCover, self.HoriTopCover):
                if (lines + 1) % 4 == 0:
                    r_distance = self.VertSideCover + 2 * self.VertSteelDia

                    for z1 in range(rows + 1):
                        if z1 % 4 == 0:
                            point_f_e = AllplanGeo.Point3D(0, 0, 0)
                            point_t_e = AllplanGeo.Point3D(self.Length, 0, 0)
                            vec = AllplanGeo.Vector3D(
                                AllplanGeo.Point3D(0, 0, 0),
                                AllplanGeo.Point3D(self.HoriDistance / 2, 0,
                                                   0))
                            s_shape = AllplanReinf.BendingShape(tie_shape)
                            s_shape.Move(
                                AllplanGeo.Vector3D(
                                    AllplanGeo.Point3D(
                                        r_distance, 0,
                                        self.Height - self.HoriTopCover +
                                        self.HoriSteelDia)))
                            steel_list.append(
                                AllplanReinf.BarPlacement(
                                    0, 1, vec, point_f_e, point_t_e, s_shape))
                        r_distance += self.VertDistance
                        #last row & line
                        if steel_modify(
                                self.Length, self.VertSteelDia,
                                self.VertDistance, self.VertSideCover,
                                self.VertSideCover) and (rows + 1) % 4 == 0:
                            point_f_e = AllplanGeo.Point3D(0, 0, 0)
                            point_t_e = AllplanGeo.Point3D(self.Length, 0, 0)
                            vec = AllplanGeo.Vector3D(
                                AllplanGeo.Point3D(0, 0, 0),
                                AllplanGeo.Point3D(self.HoriDistance / 2, 0,
                                                   0))
                            s_shape = AllplanReinf.BendingShape(tie_shape)
                            s_shape.Move(
                                AllplanGeo.Vector3D(
                                    AllplanGeo.Point3D(
                                        self.Length - self.VertSideCover -
                                        self.VertSteelDia +
                                        2 * self.VertSteelDia, 0,
                                        self.Height - self.HoriTopCover +
                                        self.HoriSteelDia)))
                            steel_list.append(
                                AllplanReinf.BarPlacement(
                                    0, 1, vec, point_f_e, point_t_e, s_shape))

                #last row
                if (lines + 3) % 4 == 0:
                    r_distance = self.VertSideCover + 2 * self.VertSteelDia

                    for z2 in range(rows + 1):
                        if (z2 + 2) % 4 == 0:
                            point_f_e = AllplanGeo.Point3D(0, 0, 0)
                            point_t_e = AllplanGeo.Point3D(self.Length, 0, 0)
                            vec = AllplanGeo.Vector3D(
                                AllplanGeo.Point3D(0, 0, 0),
                                AllplanGeo.Point3D(self.HoriDistance / 2, 0,
                                                   0))
                            s_shape = AllplanReinf.BendingShape(tie_shape)
                            s_shape.Move(
                                AllplanGeo.Vector3D(
                                    AllplanGeo.Point3D(
                                        r_distance, 0,
                                        self.Height - self.HoriTopCover +
                                        self.HoriSteelDia)))
                            steel_list.append(
                                AllplanReinf.BarPlacement(
                                    0, 1, vec, point_f_e, point_t_e, s_shape))
                        r_distance += self.VertDistance
                        #last row & line
                        if steel_modify(
                                self.Length, self.VertSteelDia,
                                self.VertDistance, self.VertSideCover,
                                self.VertSideCover) and (rows + 3) % 4 == 0:
                            point_f_e = AllplanGeo.Point3D(0, 0, 0)
                            point_t_e = AllplanGeo.Point3D(self.Length, 0, 0)
                            vec = AllplanGeo.Vector3D(
                                AllplanGeo.Point3D(0, 0, 0),
                                AllplanGeo.Point3D(self.HoriDistance / 2, 0,
                                                   0))
                            s_shape = AllplanReinf.BendingShape(tie_shape)
                            s_shape.Move(
                                AllplanGeo.Vector3D(
                                    AllplanGeo.Point3D(
                                        self.Length - self.VertSideCover -
                                        self.VertSteelDia +
                                        2 * self.VertSteelDia, 0,
                                        self.Height - self.HoriTopCover +
                                        self.HoriSteelDia)))
                            steel_list.append(
                                AllplanReinf.BarPlacement(
                                    0, 1, vec, point_f_e, point_t_e, s_shape))

        return steel_list
Esempio n. 5
0
    def create_horizontal_steel(self):
        steel_list = []

        cover = ConcreteCoverProperties.left_right(self.HoriSideCover,
                                                   self.HoriSideCover)
        rebar_prop = {
            'diameter': self.HoriSteelDia,
            'bending_roller': 0,
            'steel_grade': self.HoriSteelGrade,
            'concrete_grade': self.ConcreteGrade,
            'bending_shape_type': AllplanReinf.BendingShapeType.LongitudinalBar
        }

        longit = LongitudinalSteel(cover, rebar_prop)

        steel_hs1 = longit.shape_steel(self.Length)

        if not self.Degrees_HS2:
            steel_hs2_1 = steel_hs2_2 = longit.shape_extend_steel(
                self.Length, self.HoriExtend)
        else:
            steel_hs2_1 = longit.shape_hook_steel(self.Length,
                                                  self.DegreesHook_HS2,
                                                  hook_side=3,
                                                  left=self.LeftAnchor_HS2,
                                                  right=self.RightAnchor_HS2,
                                                  mirror=False)
            steel_hs2_2 = longit.shape_hook_steel(self.Length,
                                                  self.DegreesHook_HS2,
                                                  hook_side=3,
                                                  left=self.LeftAnchor_HS2,
                                                  right=self.RightAnchor_HS2,
                                                  mirror=True)

        point_f_1 = AllplanGeo.Point3D(0, 0, 0)
        point_t_1 = AllplanGeo.Point3D(0, 0, self.Height)

        lines = int((self.Height - self.HoriTopCover - self.HoriBottomCover -
                     self.HoriSteelDia) / self.HoriDistance)
        point_f = AllplanGeo.Point3D(0, 0, 0)
        point_t = AllplanGeo.Point3D(self.Length, self.Width, self.Height)
        vec = AllplanGeo.Vector3D(AllplanGeo.Point3D(0, 0, 0),
                                  AllplanGeo.Point3D(self.HoriDistance, 0, 0))
        distance = self.HoriBottomCover
        for x in range(lines + 1):

            if x % 3 != 0:
                s_shape_hs1_1 = AllplanReinf.BendingShape(steel_hs1)
                s_shape_hs1_1.Move(
                    AllplanGeo.Vector3D(
                        AllplanGeo.Point3D(0, self.HoriFrontCover, distance)))
                steel_list.append(
                    AllplanReinf.BarPlacement(0, 1, vec, point_f, point_t,
                                              s_shape_hs1_1))
                s_shape_hs1_2 = AllplanReinf.BendingShape(steel_hs1)
                s_shape_hs1_2.Move(
                    AllplanGeo.Vector3D(
                        AllplanGeo.Point3D(0, self.Width - self.HoriFrontCover,
                                           distance)))
                steel_list.append(
                    AllplanReinf.BarPlacement(0, 1, vec, point_f, point_t,
                                              s_shape_hs1_2))
            else:
                s_shape_hs2_1 = AllplanReinf.BendingShape(steel_hs2_1)
                s_shape_hs2_1.Move(
                    AllplanGeo.Vector3D(
                        AllplanGeo.Point3D(0, self.HoriFrontCover, distance)))
                steel_list.append(
                    AllplanReinf.BarPlacement(0, 1, vec, point_f, point_t,
                                              s_shape_hs2_1))
                s_shape_hs2_2 = AllplanReinf.BendingShape(steel_hs2_2)
                s_shape_hs2_2.Move(
                    AllplanGeo.Vector3D(
                        AllplanGeo.Point3D(0, self.Width - self.HoriFrontCover,
                                           distance)))
                steel_list.append(
                    AllplanReinf.BarPlacement(0, 1, vec, point_f, point_t,
                                              s_shape_hs2_2))
            distance += self.HoriDistance

        if steel_modify(self.Height, self.HoriSteelDia, self.HoriDistance,
                        self.HoriBottomCover, self.HoriTopCover):
            if (lines + 1) % 3 != 0:
                s_shape_hs1_1 = AllplanReinf.BendingShape(steel_hs1)
                s_shape_hs1_1.Move(
                    AllplanGeo.Vector3D(
                        AllplanGeo.Point3D(0, self.HoriFrontCover,
                                           self.Height - self.HoriTopCover)))
                steel_list.append(
                    AllplanReinf.BarPlacement(0, 1, vec, point_f, point_t,
                                              s_shape_hs1_1))
                s_shape_hs1_2 = AllplanReinf.BendingShape(steel_hs1)
                s_shape_hs1_2.Move(
                    AllplanGeo.Vector3D(
                        AllplanGeo.Point3D(0, self.Width - self.HoriFrontCover,
                                           self.Height - self.HoriTopCover)))
                steel_list.append(
                    AllplanReinf.BarPlacement(0, 1, vec, point_f, point_t,
                                              s_shape_hs1_2))
            else:
                s_shape_hs2_1 = AllplanReinf.BendingShape(steel_hs2_1)
                s_shape_hs2_1.Move(
                    AllplanGeo.Vector3D(
                        AllplanGeo.Point3D(0, self.HoriFrontCover,
                                           self.Height - self.HoriTopCover)))
                steel_list.append(
                    AllplanReinf.BarPlacement(0, 1, vec, point_f, point_t,
                                              s_shape_hs2_1))
                s_shape_hs2_2 = AllplanReinf.BendingShape(steel_hs2_2)
                s_shape_hs2_2.Move(
                    AllplanGeo.Vector3D(
                        AllplanGeo.Point3D(0, self.Width - self.HoriFrontCover,
                                           self.Height - self.HoriTopCover)))
                steel_list.append(
                    AllplanReinf.BarPlacement(0, 1, vec, point_f, point_t,
                                              s_shape_hs2_2))

        return steel_list