print "GetMainShape : ", GroupOp.GetErrorCode()
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
#
def addPath(Path):
print "GetMainShape : ", GroupOp.GetErrorCode()
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):
"""
* Add Path to load python scripts from