def draw_polylines(polylines): """Draw polylines. Parameters ---------- polylines : list of dict The polyline definitions. Returns ------- list of :class:`Rhino.Geometry.Polyline` Notes ----- .. code-block:: python Schema({ 'points': lambda x: all(len(y) == 3 for y in x) }) """ rg_polylines = [] for p in iter(polylines): points = p['points'] poly = Polyline([Point3d(*xyz) for xyz in points]) poly.DeleteShortSegments(TOL) rg_polylines.append(poly) return rg_polylines
def xdraw_polylines(polylines): """Draw polylines. """ rg_polylines = [] for p in iter(polylines): points = p['points'] poly = Polyline([Point3d(*xyz) for xyz in points]) poly.DeleteShortSegments(TOL) rg_polylines.append(poly) return rg_polylines
def xdraw_polylines(polylines, **kwargs): """Draw polylines, and optionally set individual name, color, arrow, and layer properties. """ guids = [] for p in iter(polylines): points = p['points'] name = p.get('name', '') color = p.get('color') arrow = p.get('arrow') layer = p.get('layer') poly = Polyline([Point3d(*xyz) for xyz in points]) poly.DeleteShortSegments(TOL) guid = add_polyline(poly) if not guid: continue obj = find_object(guid) if not obj: continue attr = obj.Attributes if color: attr.ObjectColor = FromArgb(*color) attr.ColorSource = ColorFromObject else: attr.ColorSource = ColorFromLayer if arrow == 'end': attr.ObjectDecoration = EndArrowhead if arrow == 'start': attr.ObjectDecoration = StartArrowhead if layer and find_layer_by_fullpath: index = find_layer_by_fullpath(layer, True) if index >= 0: attr.LayerIndex = index attr.Name = name obj.CommitChanges() guids.append(guid) return guids
def draw_polylines(polylines, **kwargs): """Draw polylines, and optionally set individual name, color, arrow, and layer properties. Parameters ---------- labels : list of dict A list of polyline dictionaries. Returns ------- list of GUID Notes ----- A polyline dict has the following schema: .. code-block:: python Schema({ 'points': And(list, lambda x: all(len(point) == 3 for point in x), Optional('name', default=''): str, Optional('color', default=None): (lambda x: len(x) == 3 and all(0 <= y <= 255 for y in x)), Optional('layer', default=None): str, Optional('arrow', default=None): str }) """ guids = [] for p in iter(polylines): points = p['points'] name = p.get('name', '') color = p.get('color') arrow = p.get('arrow') layer = p.get('layer') poly = Polyline([Point3d(*xyz) for xyz in points]) poly.DeleteShortSegments(TOL) guid = add_polyline(poly) if not guid: continue obj = find_object(guid) if not obj: continue attr = obj.Attributes if color: attr.ObjectColor = FromArgb(*color) attr.ColorSource = ColorFromObject else: attr.ColorSource = ColorFromLayer if arrow == 'end': attr.ObjectDecoration = EndArrowhead if arrow == 'start': attr.ObjectDecoration = StartArrowhead if layer and find_layer_by_fullpath: index = find_layer_by_fullpath(layer, True) if index >= 0: attr.LayerIndex = index attr.Name = name obj.CommitChanges() guids.append(guid) return guids