Skip to content

Commit ca3b6bd

Browse files
committed
add first version of internal ods and PPSLS160
1 parent 88cbf1f commit ca3b6bd

File tree

4 files changed

+57
-3
lines changed

4 files changed

+57
-3
lines changed

openglider/lines/line_types/liros.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,7 @@ def ppsls(name: int, thickness: float, stretch: float, max_load: float, weight:
183183

184184
ppsls(65, 0.76, 3.0, 650, 0.4)
185185
ppsls(125, 1.05, 2.7, 1250, 0.89)
186+
ppsls(160, 1.15, 3.0, 1600, 0.91)
186187
ppsls(180, 1.2, 3.2, 1800, 0.92)
187188
ppsls(200, 1.3, 3.0, 2000, 1.65)
188189
ppsls(260, 1.58, 2.8, 2600, 1.98)

openglider/lines/lineset.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -796,7 +796,7 @@ def get_line_force(line: Line) -> list[str]:
796796
return self._get_lines_table(get_line_force)
797797

798798

799-
def get_table_2(self) -> Table:
799+
def get_table_2(self, line_load: bool=False) -> Table:
800800
table = Table(name="lines_table")
801801

802802
table[0, 0] = "Name"
@@ -810,6 +810,12 @@ def get_table_2(self) -> Table:
810810
table[0, 8] = "Manual Correction"
811811
table[0, 9] = "Cutting Length"
812812

813+
if line_load:
814+
table[0, 10] = "Force"
815+
table[0, 11] = "Min Break Load"
816+
table[0, 12] = "Percentage"
817+
818+
813819
lines = self.sort_lines(by_names=True)
814820
for i, line in enumerate(lines):
815821
line_length = self.get_line_length(line)
@@ -824,6 +830,11 @@ def get_table_2(self) -> Table:
824830
table[i+2, 7] = round(line_length.knot_correction * 1000)
825831
table[i+2, 8] = round(line_length.manual_correction * 1000)
826832
table[i+2, 9] = round(line_length.get_cutting_length() * 1000)
833+
if line_load:
834+
table[i+2, 10] = round(line.force)
835+
table[i+2, 11] = round(line.line_type.min_break_load)
836+
table[i+2, 12] = f"{100*line.force/line.line_type.min_break_load:.1f}%"
837+
827838

828839
return table
829840

openglider/plots/patterns.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
from openglider.glider.project import GliderProject
1919
from openglider.plots.config import PatternConfigOld
2020
from openglider.plots.glider import PlotMaker
21-
from openglider.plots.spreadsheets import get_glider_data
21+
from openglider.plots.spreadsheets import get_glider_data, get_glider_data_internal
2222
from openglider.plots.usage_stats import MaterialUsage
2323
from openglider.utils.config import Config
2424
from openglider.vector.drawing import Layout
@@ -139,7 +139,10 @@ def unwrap(self, outdir: Path | str) -> None:
139139
self.logger.info("create spreadsheets")
140140
self.project.get_glider_3d().lineset.rename_lines()
141141
excel = get_glider_data(self.project, consumption=self.weight)
142-
excel.saveas(outdir / f"{self.project.name}.ods")
142+
excel_internal = get_glider_data_internal(self.project)
143+
excel.saveas(outdir / f"{self.project.name}_production.ods")
144+
excel_internal.saveas(outdir / f"{self.project.name}_internal.ods")
145+
143146

144147
openglider.save(self.project, outdir / "project.json")
145148

openglider/plots/spreadsheets/__init__.py

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,3 +82,42 @@ def append_sheet(table: Table) -> None:
8282
append_sheet(sheet)
8383

8484
return out_ods
85+
86+
def get_glider_data_internal(project: GliderProject) -> ezodf.document.PackagedDocument:
87+
specsheet = project.get_data_table()
88+
glider = project.get_glider_3d()
89+
glider.lineset.recalc(glider=glider, iterations=30)
90+
91+
linesheet2 = glider.lineset.get_table_2(line_load=True)
92+
93+
94+
95+
96+
97+
out_ods = ezodf.newdoc(doctype="ods")
98+
def append_sheet(table: Table) -> None:
99+
now = datetime.now()
100+
header = Table(name=table.name)
101+
header["A1"] = table.name or "-"
102+
header["B1"] = "Plotfiles date"
103+
header["C1"] = now.strftime("%d.%m.%Y")
104+
header["D1"] = now.strftime("%H:%M")
105+
header["A2"] = project.name or "-"
106+
header["B2"] = "Modification date"
107+
header["C2"] = project.modified.strftime("%d.%m.%Y")
108+
header["D2"] = project.modified.strftime("%H:%M")
109+
110+
header.append_bottom(table, space=1)
111+
out_ods.sheets.append(header.get_ods_sheet())
112+
113+
sheets = (
114+
specsheet,
115+
linesheet2,
116+
#linesheet_force
117+
)
118+
119+
for sheet in sheets:
120+
append_sheet(sheet)
121+
122+
return out_ods
123+

0 commit comments

Comments
 (0)