Skip to content

Commit fc572f7

Browse files
committed
Added case where blade's geometry is made by faces, like for BladeX generated blades
1 parent dc9e600 commit fc572f7

File tree

1 file changed

+11
-3
lines changed

1 file changed

+11
-3
lines changed

bladex/reversepropeller.py

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,6 @@ def optimized_path(coords, start=None):
5959
pass_by.remove(nearest)
6060
return path
6161

62-
6362
def point_inside_polygon(x, y, poly, include_edges=True):
6463
"""
6564
Test if point (x,y) is inside polygon poly.
@@ -220,9 +219,18 @@ def _extract_solid_from_file(self):
220219
iges_reader = IGESControl_Reader()
221220
iges_reader.ReadFile(self.iges_file)
222221
iges_reader.TransferRoots()
223-
self.blade_compound = iges_reader.Shape()
224222
sewer = BRepBuilderAPI_Sewing(self.tolerance_solid)
225-
sewer.Add(self.blade_compound)
223+
# Case where we have Faces and not closed surface.
224+
# This is the case for BladeX generated blade
225+
if iges_reader.Shape().ShapeType() == 4:
226+
self.blade_compound = iges_reader.OneShape()
227+
exp = TopExp_Explorer(self.blade_compound, TopAbs_FACE)
228+
while exp.More():
229+
sewer.Add(exp.Current())
230+
exp.Next()
231+
else:
232+
self.blade_compound = iges_reader.Shape()
233+
sewer.Add(self.blade_compound)
226234
sewer.Perform()
227235
result_sewed_blade = sewer.SewedShape()
228236
blade_solid_maker = BRepBuilderAPI_MakeSolid()

0 commit comments

Comments
 (0)