예제 #1
0
파일: glider.py 프로젝트: luzpaz/OpenGlider
    def get_geomentry_table(self):
        table = Table()
        table.insert_row([
            "", "Ribs", "Chord", "X", "Y", "%", "Arc", "Arc_diff", "AOA",
            "Z-rotation", "Y-rotation", "profile-merge", "ballooning-merge"
        ])
        shape = self.shape.get_half_shape()
        for rib_no in range(self.shape.half_rib_num):
            table[1 + rib_no, 1] = rib_no + 1

        for rib_no, chord in enumerate(shape.chords):
            table[1 + rib_no, 2] = chord

        for rib_no, p in enumerate(self.shape.baseline):
            table[1 + rib_no, 3] = p[0]
            table[1 + rib_no, 4] = p[1]
            table[1 + rib_no, 5] = self.shape.baseline_pos

        last_angle = 0
        for cell_no, angle in enumerate(self.get_arc_angles()):
            angle = angle * 180 / math.pi
            table[1 + cell_no, 6] = angle
            table[1 + cell_no, 7] = angle - last_angle
            last_angle = angle

        for rib_no, aoa in enumerate(self.get_aoa()):
            table[1 + rib_no, 8] = aoa * 180 / math.pi
            table[1 + rib_no, 9] = 0
            table[1 + rib_no, 10] = 0

        return table
예제 #2
0
    def add_column(cell_no):
        cuts_this = cuts_per_cell[cell_no]
        if not cuts_this:
            return False

        cut = cuts_this[0]
        column = Table()
        column[0, 0] = cut[2]
        column.insert_row(cut[:2], cell_no + 1)
        cuts_this.remove(cut)

        for cell_no_temp in range(cell_no + 1, cell_num):
            cut_next = find_next(cut, cell_no_temp)
            if not cut_next:
                break
            column.insert_row(cut_next[:2], cell_no_temp)
            cut = cut_next

        cuts_table.append_right(column)

        return column