Skip to content

Commit

Permalink
fix tests + plots
Browse files Browse the repository at this point in the history
  • Loading branch information
hiaselhans committed Mar 8, 2016
1 parent c615a82 commit 6a38d2a
Show file tree
Hide file tree
Showing 7 changed files with 94 additions and 70 deletions.
2 changes: 1 addition & 1 deletion openglider/glider/in_out/import_geometry.py
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ def import_ods(filename, glider):
ballooning = merge(line[9], balloonings)

lastrib = thisrib
thisrib = Rib(profile, numpy.array([x, y, z]), chord, alpha, aoa, zrot, data["GLEITZAHL"],
thisrib = Rib(profile, numpy.array([x, y, z]), chord, alpha, aoa, zrot, data["GLIDE"],
name="Rib ({})".format(i))
if i == 1 and y != 0: # Middle-cell
#print("midrib!", y)
Expand Down
10 changes: 9 additions & 1 deletion openglider/glider/parametric/export_ods.py
Original file line number Diff line number Diff line change
Expand Up @@ -281,7 +281,7 @@ def insert_block(line, upper, row, column):
return ods_sheet

def get_data_sheet(glider):
ods_sheet = ezodf.Sheet(name="Data", size=(1,10))
ods_sheet = ezodf.Sheet(name="Data", size=(3, 10))
ods_sheet[0,0].set_value("Data")
current_row = 1
# lower attachment_points
Expand All @@ -292,6 +292,14 @@ def get_data_sheet(glider):
ods_sheet[current_row + i, 1].set_value(att_pt.pos_3D[i])
current_row += 3

ods_sheet[current_row, 0].set_value("SPEED")
ods_sheet[current_row, 1].set_value(glider.speed)

ods_sheet[current_row+1, 0].set_value("GLIDE")
ods_sheet[current_row+1, 1].set_value(glider.glide)



return ods_sheet

# for i, value in enumerate(("Ribs", "Chord", "x: (m)", "y LE (m)", "kruemmung", "aoa", "Z-rotation",
Expand Down
5 changes: 2 additions & 3 deletions openglider/plots/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@
from openglider.plots.cuts import cuts
from openglider.plots.part import PlotPart, DrawingArea
from openglider.plots.glider import PlotMaker
from openglider.plots.glider.dribs import get_dribs


def flatten_glider(glider):
Expand All @@ -34,11 +33,11 @@ def flatten_glider(glider):

panels = plotter.panels
ribs = plotter.ribs
dribs = get_dribs(glider)
dribs = plotter.dribs

plots['panels'] = DrawingArea.create_raster(panels.values())
plots['ribs'] = DrawingArea.create_raster([ribs])
plots["dribs"] = DrawingArea.create_raster(dribs)
plots["dribs"] = DrawingArea.create_raster(dribs.values())

return plots

Expand Down
28 changes: 17 additions & 11 deletions openglider/plots/glider/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

from openglider.plots import DrawingArea
from openglider.plots.glider.cell import PanelPlotMaker
from openglider.plots.glider.dribs import get_dribs
from openglider.plots.glider.ribs import RibPlot


Expand All @@ -18,30 +17,37 @@ class PlotMaker(object):
allowance_trailing_edge = 0.024
allowance_entry_open = 0.015

def __init__(self, glider):
self.glider = glider
def __init__(self, glider_3d):
self.glider_3d = glider_3d

self.panels = None

def get_panels(self):
self.panels = collections.OrderedDict()
self.dribs = collections.OrderedDict()
self.ribs = []
for cell in self.glider.cells:
panels = PanelPlotMaker(cell).get_panels(self.glider.attachment_points)

def get_panels(self):
self.panels.clear()
for cell in self.glider_3d.cells:
panels = PanelPlotMaker(cell).get_panels(self.glider_3d.attachment_points)
self.panels[cell] = panels

return self.panels

def get_ribs(self):
for rib in self.glider.ribs:
self.ribs.clear()
for rib in self.glider_3d.ribs:
rib_plot = RibPlot(rib)
rib_plot.allowance_general = self.allowance_general
rib_plot.allowance_trailing_edge = self.allowance_trailing_edge
rib_plot.flatten(self.glider)
rib_plot.flatten(self.glider_3d)
self.ribs.append(rib_plot.plotpart)

def get_dribs(self):
pass
self.dribs.clear()
for cell in self.glider_3d.cells:
dribs = PanelPlotMaker(cell).get_dribs()
self.dribs[cell] = dribs

return self.dribs

def unwrap(self):
self.get_panels()
Expand Down
76 changes: 65 additions & 11 deletions openglider/plots/glider/cell.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,9 @@ class PanelPlotMaker:
allowance_trailing_edge = 0.012 # design
allowance_design = 0.012 # trailing_edge

allowance_drib_folds = 0.012
allowance_drib_num_folds = 1

insert_attachment_point_text = True

def __init__(self, cell):
Expand All @@ -23,7 +26,7 @@ def __init__(self, cell):
self.outer = None
self.outer_orig = None

def flatten_cell(self):
def _flatten_cell(self):
# assert isinstance(cell, Cell)
left, right = openglider.plots.projection.flatten_list(self.cell.prof1,
self.cell.prof2)
Expand All @@ -48,11 +51,11 @@ def get_panels(self, attachment_points=None):
attachment_points = attachment_points or []
cell_parts = []
self.x_values = self.cell.rib1.profile_2d.x_values
self.flatten_cell()
self._flatten_cell()

for part_no, panel in enumerate(self.cell.panels):
plotpart = self.get_panel(panel)
self.insert_attachment_points(panel, plotpart, attachment_points)
plotpart = self._get_panel(panel)
self._insert_attachment_points(panel, plotpart, attachment_points)
cell_parts.append(plotpart)

# add marks for
Expand All @@ -61,7 +64,7 @@ def get_panels(self, attachment_points=None):

return cell_parts

def get_panel(self, panel):
def _get_panel(self, panel):
plotpart = PlotPart(material_code=panel.material_code, name=panel.name)

cut_allowances = {
Expand All @@ -70,7 +73,6 @@ def get_panel(self, panel):
"orthogonal": self.allowance_design
}


front_left = get_x_value(self.x_values, panel.cut_front["left"])
back_left = get_x_value(self.x_values, panel.cut_back["left"])
front_right = get_x_value(self.x_values, panel.cut_front["right"])
Expand Down Expand Up @@ -153,8 +155,7 @@ def get_panel(self, panel):
else:
plotpart.layers["cuts"].append(envelope)


self.insert_text(panel, plotpart)
self._insert_text(panel, plotpart)

return plotpart

Expand All @@ -168,7 +169,7 @@ def get_p1_p2(self, x, which):

return self.ballooned[which][ik], self.outer_orig[which][ik]

def insert_text(self, panel, plotpart):
def _insert_text(self, panel, plotpart):
left = get_x_value(self.x_values, panel.cut_front["left"])
right = get_x_value(self.x_values, panel.cut_front["right"])
text = panel.name
Expand All @@ -181,7 +182,7 @@ def insert_text(self, panel, plotpart):
height=0.8).get_vectors()
plotpart.layers["text"] += part_text

def insert_attachment_points(self, panel, plotpart, attachment_points):
def _insert_attachment_points(self, panel, plotpart, attachment_points):
for attachment_point in attachment_points:
if attachment_point.rib == self.cell.rib1:
align = "left"
Expand All @@ -200,4 +201,57 @@ def insert_attachment_points(self, panel, plotpart, attachment_points):
size=0.01, # 1cm
align=align, valign=-0.5).get_vectors()

plotpart.layers["marks"] += [PolyLine2D(self.get_p1_p2(attachment_point.rib_pos, which))]
plotpart.layers["marks"] += [PolyLine2D(self.get_p1_p2(attachment_point.rib_pos, which))]

def get_dribs(self):
dribs = []
for drib in self.cell.diagonals:
dribs.append(self._get_drib(drib))

return dribs

def _get_drib(self, d_rib):
plotpart = PlotPart(material_code=d_rib.material_code, name=d_rib.name)
left, right = d_rib.get_flattened(self.cell)
left_out = left.copy()
right_out = right.copy()

alw2 = self.allowance_drib_folds

left_out.add_stuff(-self.allowance_general)
right_out.add_stuff(self.allowance_general)

if self.allowance_drib_num_folds > 0:
cut_front = cuts["folded"]([[left, 0], [right, 0]],
left_out,
right_out,
-alw2,
num_folds=1)
cut_back = cuts["folded"]([[left, len(left) - 1],
[right, len(right) - 1]],
left_out,
right_out,
alw2,
num_folds=1)

else:
raise NotImplementedError

# print("left", left_out[cut_front[1]:cut_back[1]].get_length())
plotpart.layers["cuts"] += [left_out[cut_front[1]:cut_back[1]] +
PolyLine2D(cut_back[0]) +
right_out[cut_front[2]:cut_back[2]:-1] +
PolyLine2D(cut_front[0])[::-1]]

plotpart.layers["marks"].append(PolyLine2D([left[0], right[0]]))
plotpart.layers["marks"].append(PolyLine2D([left[len(left)-1], right[len(right)-1]]))

#print(left, right)

plotpart.layers["stitches"] += [left, right]
#print(left[0], right[0])
#plotpart.stitches.append(left)

plotpart.layers["text"] += Text(" {} ".format(d_rib.name), left[0], right[0], valign=0.6).get_vectors()

return plotpart
43 changes: 0 additions & 43 deletions openglider/plots/glider/dribs.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,46 +4,3 @@
from openglider.vector.text import Text


def get_dribs(glider):
dribs = []
for cell_no, cell in enumerate(glider.cells):
cell_dribs = []
for d_no, d_rib in enumerate(cell.diagonals):
plotpart = PlotPart(material_code=d_rib.material_code, name=d_rib.name)
left, right = d_rib.get_flattened(cell)
left_out = left.copy()
right_out = right.copy()
alw = sewing_config["allowance"]["general"]
alw2 = sewing_config["allowance"]["diagonals"]
left_out.add_stuff(-alw)
right_out.add_stuff(alw)

cut_front = cuts["folded"]([[left, 0],
[right, 0]],
left_out, right_out, -alw2, num_folds=1)
cut_back = cuts["folded"]([[left, len(left) - 1],
[right, len(right) - 1]],
left_out, right_out, alw2, num_folds=1)

# print("left", left_out[cut_front[1]:cut_back[1]].get_length())
plotpart.layers["cuts"] += [left_out[cut_front[1]:cut_back[1]] +
PolyLine2D(cut_back[0]) +
right_out[cut_front[2]:cut_back[2]:-1] +
PolyLine2D(cut_front[0])[::-1]]

plotpart.layers["marks"].append(PolyLine2D([left[0], right[0]]))
plotpart.layers["marks"].append(PolyLine2D([left[len(left)-1], right[len(right)-1]]))

#print(left, right)

plotpart.layers["stitches"] += [left, right]
#print(left[0], right[0])
#plotpart.stitches.append(left)

plotpart.layers["text"] += Text(" {} ".format(d_rib.name), left[0], right[0], valign=0.6).get_vectors()

cell_dribs.append(plotpart)

dribs.append(cell_dribs)

return dribs
Binary file modified tests/common/demokite.ods
Binary file not shown.

0 comments on commit 6a38d2a

Please sign in to comment.