mirror of
https://git.salome-platform.org/gitpub/modules/geom.git
synced 2024-11-15 10:08:35 +05:00
PAL8379: add in geompy.py a function for filtering edges by length.
This commit is contained in:
parent
a2e49f7316
commit
681340563a
@ -1061,6 +1061,34 @@ def GetMainShape(theGroup):
|
|||||||
print "GetMainShape : ", GroupOp.GetErrorCode()
|
print "GetMainShape : ", GroupOp.GetErrorCode()
|
||||||
return anObj
|
return anObj
|
||||||
|
|
||||||
|
def GetEdgesByLength (theShape, min_length, max_length, include_min = 1, include_max = 1):
|
||||||
|
"""
|
||||||
|
Create group of edges of theShape, whose length is in range [min_length, max_length].
|
||||||
|
If include_min/max == 0, edges with length == min/max_length will not be included in result.
|
||||||
|
"""
|
||||||
|
|
||||||
|
edges = SubShapeAll(theShape, ShapeType["EDGE"])
|
||||||
|
edges_in_range = []
|
||||||
|
for edge in edges:
|
||||||
|
Props = BasicProperties(edge)
|
||||||
|
if min_length <= Props[0] and Props[0] <= max_length:
|
||||||
|
if (not include_min) and (min_length == Props[0]):
|
||||||
|
skip = 1
|
||||||
|
else:
|
||||||
|
if (not include_max) and (Props[0] == max_length):
|
||||||
|
skip = 1
|
||||||
|
else:
|
||||||
|
edges_in_range.append(edge)
|
||||||
|
|
||||||
|
if len(edges_in_range) <= 0:
|
||||||
|
print "No edges found by given criteria"
|
||||||
|
return 0
|
||||||
|
|
||||||
|
group_edges = CreateGroup(theShape, ShapeType["EDGE"])
|
||||||
|
UnionList(group_edges, edges_in_range)
|
||||||
|
|
||||||
|
return group_edges
|
||||||
|
|
||||||
# Add Path to the system path
|
# Add Path to the system path
|
||||||
#
|
#
|
||||||
def addPath(Path):
|
def addPath(Path):
|
||||||
|
@ -2392,6 +2392,65 @@ def GetMainShape(theGroup):
|
|||||||
print "GetMainShape : ", GroupOp.GetErrorCode()
|
print "GetMainShape : ", GroupOp.GetErrorCode()
|
||||||
return anObj
|
return anObj
|
||||||
|
|
||||||
|
def GetEdgesByLength (theShape, min_length, max_length, include_min = 1, include_max = 1):
|
||||||
|
"""
|
||||||
|
Create group of edges of theShape, whose length is in range [min_length, max_length].
|
||||||
|
If include_min/max == 0, edges with length == min/max_length will not be included in result.
|
||||||
|
"""
|
||||||
|
|
||||||
|
edges = SubShapeAll(theShape, ShapeType["EDGE"])
|
||||||
|
edges_in_range = []
|
||||||
|
for edge in edges:
|
||||||
|
Props = BasicProperties(edge)
|
||||||
|
if min_length <= Props[0] and Props[0] <= max_length:
|
||||||
|
if (not include_min) and (min_length == Props[0]):
|
||||||
|
skip = 1
|
||||||
|
else:
|
||||||
|
if (not include_max) and (Props[0] == max_length):
|
||||||
|
skip = 1
|
||||||
|
else:
|
||||||
|
edges_in_range.append(edge)
|
||||||
|
|
||||||
|
if len(edges_in_range) <= 0:
|
||||||
|
print "No edges found by given criteria"
|
||||||
|
return 0
|
||||||
|
|
||||||
|
group_edges = CreateGroup(theShape, ShapeType["EDGE"])
|
||||||
|
UnionList(group_edges, edges_in_range)
|
||||||
|
|
||||||
|
return group_edges
|
||||||
|
|
||||||
|
def SelectEdges (min_length, max_length, include_min = 1, include_max = 1):
|
||||||
|
"""
|
||||||
|
Create group of edges of selected shape, whose length is in range [min_length, max_length].
|
||||||
|
If include_min/max == 0, edges with length == min/max_length will not be included in result.
|
||||||
|
"""
|
||||||
|
|
||||||
|
nb_selected = sg.SelectedCount()
|
||||||
|
if nb_selected < 1:
|
||||||
|
print "Select a shape before calling this function, please."
|
||||||
|
return 0
|
||||||
|
if nb_selected > 1:
|
||||||
|
print "Only one shape must be selected"
|
||||||
|
return 0
|
||||||
|
|
||||||
|
id_shape = sg.getSelected(0)
|
||||||
|
shape = IDToObject( id_shape )
|
||||||
|
|
||||||
|
group_edges = GetEdgesByLength(shape, min_length, max_length, include_min, include_max)
|
||||||
|
|
||||||
|
left_str = " < "
|
||||||
|
right_str = " < "
|
||||||
|
if include_min: left_str = " <= "
|
||||||
|
if include_max: right_str = " <= "
|
||||||
|
|
||||||
|
addToStudyInFather(shape, group_edges, "Group of edges with " + `min_length`
|
||||||
|
+ left_str + "length" + right_str + `max_length`)
|
||||||
|
|
||||||
|
sg.updateObjBrowser(1)
|
||||||
|
|
||||||
|
return group_edges
|
||||||
|
|
||||||
def addPath(Path):
|
def addPath(Path):
|
||||||
"""
|
"""
|
||||||
* Add Path to load python scripts from
|
* Add Path to load python scripts from
|
||||||
|
Loading…
Reference in New Issue
Block a user