Skip to content

Commit 18f1e08

Browse files
committed
minor fixes, add resolver to attachment points
1 parent 1ea839b commit 18f1e08

File tree

8 files changed

+49
-32
lines changed

8 files changed

+49
-32
lines changed

openglider/glider/parametric/glider.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -478,7 +478,7 @@ def get_glider_3d(self, glider: Glider=None, num: int=50, num_profile: int | Non
478478
ballooning_modifiers=self.tables.ballooning_modifiers.get_modifiers(cell_no, resolvers=resolvers)
479479
)
480480

481-
attachment_points = self.tables.attachment_points_cell.get(cell_no, curves=curves, cell=cell)
481+
attachment_points = self.tables.attachment_points_cell.get(cell_no, resolvers=resolvers, cell=cell)
482482
cell.attachment_points = attachment_points
483483

484484
cell.rigidfoils = self.tables.rigidfoils_cell.get(cell_no)

openglider/glider/parametric/table/attachment_points.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ class CellAttachmentPointTable(CellTable):
157157
"ATPDIFF": Keyword([("name", str), ("cell_pos", float), ("rib_pos", float), ("force", Union[float, str]), ("offset", float)], target_cls=CellAttachmentPoint)
158158
}
159159

160-
def get_element(self, row: int, keyword: str, data: list[Any], curves: dict[str, GliderCurveType]={}, cell: Cell=None, **kwargs: Any) -> CellAttachmentPoint:
160+
def get_element(self, row: int, keyword: str, data: list[Any], resolvers: list[Parser], cell: Cell=None, **kwargs: Any) -> CellAttachmentPoint:
161161
force = data[3]
162162

163163
if isinstance(force, str):
@@ -169,9 +169,7 @@ def get_element(self, row: int, keyword: str, data: list[Any], curves: dict[str,
169169
node = CellAttachmentPoint(name=data[0], cell_pos=data[1], rib_pos=data[2], force=force)
170170

171171
if len(data) > 4:
172-
offset = data[4]
173-
if isinstance(offset, str):
174-
offset = curves[offset].get(row)
172+
offset = resolvers[row].parse(data[4])
175173

176174
node.offset = offset
177175

openglider/gui/state/glider_list.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ def scan(self) -> bool:
4444

4545
if project.mtime is not None:
4646
if mtime > project.mtime:
47+
logger.info(f"detected update: {project_name}")
4748
try:
4849
project.element = self.import_glider(project.element.filename)
4950
project.failed = False

openglider/gui/views/compare/table/lines_diff.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import logging
22
from openglider.glider.project import GliderProject
3-
from openglider.gui.qt import QtCore, QtWidgets
4-
from openglider.gui.qt import QClipboard
3+
from openglider.gui.qt import QtWidgets
54

65
from openglider.gui.app.app import GliderApp
76
from openglider.utils.table import Table
@@ -69,6 +68,7 @@ def __init__(self, app: GliderApp, parent: QtWidgets.QWidget=None):
6968

7069
super().__init__(parent)
7170

71+
self.app = app
7272
layout = QtWidgets.QVBoxLayout()
7373
self.setLayout(layout)
7474
self.table_widget = QTable()
@@ -99,6 +99,6 @@ def copy_to_clipboard(self) -> None:
9999
for col in range(0, self.table.num_columns):
100100
copied += self.table_widget.item(row, col).text() + '\t'
101101
copied = copied[:-1] + '\n'
102-
103-
clipboard = QClipboard()
102+
103+
clipboard = self.app.clipboard()
104104
clipboard.setText(copied)

openglider/gui/views/help.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import logging
22
from typing import Any
33

4-
from openglider.gui.qt import QtWidgets, QClipboard, QtCore
4+
from openglider.gui.qt import QtWidgets, QtCore
55

66
from openglider.gui.widgets.select import AutoComplete
77
from openglider.glider.parametric.table import GliderTables
@@ -89,8 +89,7 @@ def copy_header(self) -> None:
8989
]
9090

9191
text += "\t".join(annotations)
92-
93-
clipboard = QClipboard()
92+
clipboard = QtWidgets.QApplication.clipboard()
9493
clipboard.setText(text)
9594
logger.info(f"copied header for {dto_name}")
9695

openglider/lines/line_types/edelrid.py

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,14 @@ def A8001(strength: int, diameter: float, weight: float) -> None:
1717
}
1818
)
1919

20+
edelrid_colors = {
21+
"sky": Color.parse_hex("0095D8"),
22+
"yellow": Color.parse_hex("FFDD00"),
23+
"green": Color.parse_hex("009037"),
24+
"fluored": Color.parse_hex("EB6A27"),
25+
"red": Color.parse_hex("E2001A"),
26+
}
27+
2028
def A6843(strength: int, diameter: float, weight: float) -> None:
2129
LineType(
2230
f"edelrid.A-6843-{strength:03d}",
@@ -25,13 +33,7 @@ def A6843(strength: int, diameter: float, weight: float) -> None:
2533
10*strength,
2634
weight,
2735
sheated=True,
28-
colors={
29-
"sky": Color.parse_hex("0095D8"),
30-
"yellow": Color.parse_hex("FFDD00"),
31-
"green": Color.parse_hex("009037"),
32-
"fluored": Color.parse_hex("EB6A27"),
33-
"red": Color.parse_hex("E2001A"),
34-
}
36+
colors=edelrid_colors.copy()
3537
)
3638

3739

@@ -53,7 +55,7 @@ def A6843(strength: int, diameter: float, weight: float) -> None:
5355
A6843(280, 2.1, 3.2)
5456
A6843(370, 2.4, 4.6)
5557

56-
LineType("edelrid.7850-240", 1.58, 2.8, 2120, 1, True)
58+
LineType("edelrid.7850-240", 1.58, 2.8, 2120, 1, True, colors=edelrid_colors.copy())
5759

5860
def A7343(strength: int, diameter: float, weight: float) -> None:
5961
LineType(

openglider/lines/line_types/liros.py

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ def dfl(name: str, diameter: float, elongation: float, strength: float, weight:
8888
"yellow": Color.parse_hex("FFDD00"),
8989
"orange": Color.parse_hex("EB6A27"),
9090
"red": Color.parse_hex("E2001A"),
91+
"pink": Color.parse_hex("E30066")
9192
}
9293
)
9394

@@ -99,20 +100,35 @@ def dfl(name: str, diameter: float, elongation: float, strength: float, weight:
99100

100101
dfl("350", 2.7, 3.5, 3500, 4.98)
101102

103+
def dsl(name: str, diameter: float, elongation: list[list[float]], strength: float, weight: float) -> None:
104+
LineType(
105+
f"liros.dsl{name}",
106+
diameter,
107+
elongation,
108+
strength,
109+
weight,
110+
sheated=True,
111+
colors={
112+
"yellow": Color.parse_hex("FFDD00"),
113+
"orange": Color.parse_hex("EB6A27"),
114+
"red": Color.parse_hex("E2001A"),
115+
"pink": Color.parse_hex("E30066")
116+
}
117+
)
102118

103-
LineType("liros.dsl25", 0.8, [[340, 3.7]], 250, 0.53, True)
119+
dsl("25", 0.8, [[340, 3.7]], 250, 0.53)
104120

105-
LineType("liros.dsl35", 0.9, [[380, 3.6]], 350, 0.64, True)
121+
dsl("35", 0.9, [[380, 3.6]], 350, 0.64)
106122

107-
LineType("liros.dsl70", 0.95, [[100, 0.19], [300, 0.41]], 700, 0.67, True)
123+
dsl("70", 0.95, [[100, 0.19], [300, 0.41]], 700, 0.67)
108124

109-
LineType("liros.dsl110", 1.2, [[100, 0.23], [300, 0.73]], 1100, 1.02, True)
125+
dsl("110", 1.2, [[100, 0.23], [300, 0.73]], 1100, 1.02)
110126

111-
LineType("liros.dsl140", 1.25, [[100, 0.54], [300, 0.42]], 1400, 1.14, True)
127+
dsl("140", 1.25, [[100, 0.54], [300, 0.42]], 1400, 1.14)
112128

113-
LineType("liros.dsl350", 2., [[100, 0.15], [300, 0.33]], 3500, 3.25, True)
129+
dsl("350", 2., [[100, 0.15], [300, 0.33]], 3500, 3.25)
114130

115-
LineType("liros.dsl600", 2.4, [[100, 0.08], [300, 0.24]], 6000, 4.3, True)
131+
dsl("600", 2.4, [[100, 0.08], [300, 0.24]], 6000, 4.3)
116132

117133
def lirosdc(name: int, thickness: float, elongation: float, break_load: float, weight: float) -> None:
118134
LineType(

openglider/plots/sketches/shapeplot.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -227,15 +227,15 @@ def draw_grid(self, num: int=11, left: bool=False) -> ShapePlot:
227227
self.draw_cells(left=left)
228228
return self
229229

230-
def draw_en_marks(self):
230+
def draw_en_marks(self) -> None:
231231
part = PlotPart()
232232
shapes = self._get_shapes()
233233

234234
front, back = shapes[1].ribs[0]
235235

236236
dist = abs(front[1]-back[1])
237237

238-
def baseline(pct):
238+
def baseline(pct: float) -> euklid.vector.PolyLine2D:
239239
return euklid.vector.PolyLine2D(
240240
[shapes[0].get_point(rib, pct) for rib in self._get_rib_range(True)][::-1] +
241241
[shapes[1].get_point(rib, pct) for rib in self._get_rib_range(False)]
@@ -250,17 +250,18 @@ def baseline(pct):
250250
euklid.vector.Vector2D((dist, front[1]))
251251
])
252252

253+
diff = euklid.vector.Vector2D([self.glider_2d.shape.span*0.025, 0])
254+
253255
part.layers["marks"] += [
254256
collapse_side_50,
255-
collapse_side_75,
257+
collapse_side_75.move(diff*-1),
258+
collapse_side_75.move(diff),
256259
baseline(0.25),
257260
baseline(0.5)
258261
]
259262

260263
self.drawing.parts.append(part)
261264

262-
263-
264265
def _get_attachment_point_positions(self, left: bool=False) -> dict[str, euklid.vector.Vector2D]:
265266

266267
points = {}

0 commit comments

Comments
 (0)