Skip to content

Commit 1ee95eb

Browse files
committed
update rigidfoils
1 parent 2e13621 commit 1ee95eb

File tree

5 files changed

+53
-25
lines changed

5 files changed

+53
-25
lines changed

openglider/glider/parametric/table/rigidfoil.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,15 +31,19 @@ class RigidFoil5(RigidFoil3):
3131
class RigidFoil6(RigidFoil5):
3232
inner_allowance: Length
3333

34+
class RigidFoil8(RigidFoil6):
35+
material: str
36+
diameter: Length
37+
3438
class RibRigidTable(RibTable):
3539
dtos = {
3640
"RIGIDFOIL": RigidFoilDTO,
3741
"RIGIDFOIL3": RigidFoil3,
3842
"RIGIDFOIL5": RigidFoil5,
39-
"RIGIDFOIL6": RigidFoil6
43+
"RIGIDFOIL6": RigidFoil6,
44+
"RIGIDFOIL8": RigidFoil8
4045
}
4146

42-
4347
class CellRigidTable(CellTable):
4448
keywords = {
4549
"RIGIDFOIL": Keyword(["x_start", "x_end", "y"], target_cls=PanelRigidFoil)

openglider/glider/rib/sharknose.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,8 @@ def update_rigidfoil(self, rib: Rib, rigidfoil: RigidFoilBase) -> tuple[RigidFoi
9898
start=rigidfoil.start,
9999
end=position,
100100
distance=rigidfoil.distance,
101+
material=rigidfoil.material,
102+
diameter=rigidfoil.diameter,
101103
cap_length=rigidfoil.cap_length,
102104
tension=rigidfoil.tension,
103105
inner_allowance=rigidfoil.inner_allowance
@@ -115,6 +117,8 @@ def update_rigidfoil(self, rib: Rib, rigidfoil: RigidFoilBase) -> tuple[RigidFoi
115117
start=position,
116118
end=rigidfoil.end,
117119
distance=rigidfoil.distance,
120+
material=rigidfoil.material,
121+
diameter=rigidfoil.diameter,
118122
cap_length=rigidfoil.cap_length,
119123
tension=rigidfoil.tension,
120124
inner_allowance=rigidfoil.inner_allowance

openglider/plots/glider/ribs.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ def setup(self, glider: Glider) -> tuple[euklid.vector.PolyLine2D, euklid.vector
100100
d_inner = self.get_inner_distance()
101101

102102

103-
self.center_curve = curve
103+
self.center_curve = curve.fix_errors()
104104
self.inner_curve = curve.offset(-d_inner.si)
105105
self.outer_curve = curve.offset(d_outer.si)
106106

@@ -146,6 +146,7 @@ def flatten(self, glider: Glider) -> PlotPart:
146146

147147
plotpart.layers[self.ribplot.layer_name_outline].append(outline.fix_errors().close())
148148

149+
self.insert_mark()
149150
self.add_text()
150151

151152
return plotpart

openglider/plots/patterns.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ def unwrap(self, outdir: Path | str) -> None:
140140
self.project.get_glider_3d().lineset.rename_lines()
141141
excel = get_glider_data(self.project, consumption=self.weight)
142142
excel_internal = get_glider_data_internal(self.project)
143-
excel.saveas(outdir / f"{self.project.name}_production.ods")
143+
excel.saveas(str(outdir / f"{self.project.name}_production.ods"))
144144
excel_internal.saveas(outdir / f"{self.project.name}_internal.ods")
145145

146146

openglider/plots/spreadsheets/rigidfoils.py

Lines changed: 40 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -13,35 +13,54 @@ def get_length_table(glider: Glider) -> Table:
1313
return rib_table
1414

1515
def get_rib_length_table(glider: Glider) -> Table:
16-
table = Table(name="Rigidfoils")
17-
num = 0
16+
table = Table(name="Rigidfoils (rib)")
17+
18+
current_row = 1
19+
20+
table[0, 0] = "Name"
21+
table[0, 1] = "Rib no."
22+
table[0, 2] = "Start"
23+
table[0, 3] = "Stop"
24+
table[0, 4] = "Length"
25+
table[0, 5] = "Material"
26+
table[0, 6] = "Diameter"
27+
table[0, 7] = "Offset"
1828

1929
for rib_no, rib in enumerate(glider.ribs):
20-
num = max(num, len(rib.get_rigidfoils()))
21-
table[rib_no+1, 0] = f"Rib_{rib_no}"
22-
for rigid_no, rigidfoil in enumerate(rib.get_rigidfoils()):
23-
table[rib_no+1, 2*rigid_no+1] = f"{rigidfoil.start:02f}/{rigidfoil.end:02f}"
24-
table[rib_no+1, 2*rigid_no+2] = round(1000*rigidfoil.get_length(rib), 1)
30+
for rigidfoil in rib.get_rigidfoils():
31+
table[current_row, 0] = rigidfoil.name
32+
table[current_row, 1] = rib_no
33+
table[current_row, 2] = rigidfoil.start
34+
table[current_row, 3] = rigidfoil.end
35+
table[current_row, 4] = round(1000*rigidfoil.get_length(rib), 1)
36+
table[current_row, 5] = rigidfoil.material
37+
table[current_row, 6] = rigidfoil.diameter
38+
table[current_row, 7] = rigidfoil.distance
2539

26-
for i in range(num):
27-
table[0, 2*i+1] = "start/stop"
28-
table[0, 2*i+2] = "length"
40+
current_row += 1
2941

3042
return table
3143

3244
def get_cell_length_table(glider: Glider) -> Table:
33-
table = Table(name="Rigidfoils")
34-
num = 0
45+
table = Table(name="Rigidfoils (cell)")
46+
current_row = 1
47+
48+
table[0, 0] = "Name"
49+
table[0, 1] = "Cell no."
50+
table[0, 2] = "Cell position"
51+
table[0, 3] = "Start"
52+
table[0, 4] = "Stop"
53+
table[0, 5] = "Length"
3554

3655
for cell_no, cell in enumerate(glider.cells):
37-
num = max(num, len(cell.rigidfoils))
38-
table[cell_no+1, 0] = f"Cell_{cell_no}"
39-
for rigid_no, rigidfoil in enumerate(cell.rigidfoils):
40-
table[cell_no+1, 2*rigid_no+1] = f"{rigidfoil.x_start}/{rigidfoil.x_end} ({rigidfoil.y})"
41-
table[cell_no+1, 2*rigid_no+2] = round(1000*rigidfoil.get_length(cell), 1)
42-
43-
for i in range(num):
44-
table[0, 2*i+1] = "start/stop"
45-
table[0, 2*i+2] = "length"
56+
for rigidfoil in cell.rigidfoils:
57+
table[current_row, 0] = f"{cell.name} {rigidfoil.y}"
58+
table[current_row, 1] = cell_no
59+
table[current_row, 2] = rigidfoil.y
60+
table[current_row, 3] = rigidfoil.x_start
61+
table[current_row, 4] = rigidfoil.x_end
62+
table[current_row, 5] = round(1000*rigidfoil.get_length(cell), 1)
63+
64+
current_row += 1
4665

4766
return table

0 commit comments

Comments
 (0)