Trace¶
This module provides tools to create banded lines like LWPOLYLINE with width information.
Path rendering as quadrilaterals: Trace
,
Solid
or Face3d
.
-
class
ezdxf.render.trace.
TraceBuilder
¶ Sequence of 2D banded lines like polylines with start- and end width or curves with start- and end width.
Accepts 3D input, but z-axis is ignored.
-
abs_tol
¶ Absolute tolerance for floating point comparisons
-
append
(trace: ezdxf.render.trace.AbstractTrace) → None¶ Append a new trace.
-
close
()¶ Close multi traces by merging first and last trace, if linear traces.
-
virtual_entities
(dxftype='TRACE', dxfattribs: Dict = None, doc: Drawing = None) → Union[Solid, Trace, Face3d]¶ Yields faces as SOLID, TRACE or 3DFACE entities with DXF attributes given in dxfattribs.
If a document is given, the doc attribute of the new entities will be set and the new entities will be automatically added to the entity database of that document.
- Parameters
dxftype – DXF type as string, “SOLID”, “TRACE” or “3DFACE”
dxfattribs – DXF attributes for SOLID, TRACE or 3DFACE entities
doc – associated document
-
classmethod
from_polyline
(polyline: DXFGraphic, segments: int = 64) → TraceBuilder¶ Create a complete trace from a LWPOLYLINE or a 2D POLYLINE entity, the trace consist of multiple sub-traces if bulge values are present.
- Parameters
polyline –
LWPolyline
or 2DPolyline
segments – count of segments for bulge approximation, given count is for a full circle, partial arcs have proportional less segments, but at least 3
-
__len__
()¶
-
__getitem__
(item)¶
-
-
class
ezdxf.render.trace.
LinearTrace
¶ Linear 2D banded lines like polylines with start- and end width.
Accepts 3D input, but z-axis is ignored.
-
abs_tol
¶ Absolute tolerance for floating point comparisons
-
is_started
¶ True if at least one station exist.
-
add_station
(point: Vertex, start_width: float, end_width: float = None) → None¶ Add a trace station (like a vertex) at location point, start_width is the width of the next segment starting at this station, end_width is the end width of the next segment.
Adding the last location again, replaces the actual last location e.g. adding lines (a, b), (b, c), creates only 3 stations (a, b, c), this is very important to connect to/from splines.
- Parameters
point – 2D location (vertex), z-axis of 3D vertices is ignored.
start_width – start width of next segment
end_width – end width of next segment
-
faces
() → Iterable[Tuple[Vec2, Vec2, Vec2, Vec2]¶ Yields all faces as 4-tuples of
Vec2
objects.First and last miter is 90 degrees if the path is not closed, otherwise the intersection of first and last segment is taken into account, a closed path has to have explicit the same last and first vertex.
-
virtual_entities
(dxftype='TRACE', dxfattribs: Dict = None, doc: Drawing = None) → Union[Solid, Trace, Face3d]¶ Yields faces as SOLID, TRACE or 3DFACE entities with DXF attributes given in dxfattribs.
If a document is given, the doc attribute of the new entities will be set and the new entities will be automatically added to the entity database of that document.
- Parameters
dxftype – DXF type as string, “SOLID”, “TRACE” or “3DFACE”
dxfattribs – DXF attributes for SOLID, TRACE or 3DFACE entities
doc – associated document
-
-
class
ezdxf.render.trace.
CurvedTrace
¶ 2D banded curves like arcs or splines with start- and end width.
Represents always only one curved entity and all miter of curve segments are perpendicular to curve tangents.
Accepts 3D input, but z-axis is ignored.
-
virtual_entities
(dxftype='TRACE', dxfattribs: Dict = None, doc: Drawing = None) → Union[Solid, Trace, Face3d]¶ Yields faces as SOLID, TRACE or 3DFACE entities with DXF attributes given in dxfattribs.
If a document is given, the doc attribute of the new entities will be set and the new entities will be automatically added to the entity database of that document.
- Parameters
dxftype – DXF type as string, “SOLID”, “TRACE” or “3DFACE”
dxfattribs – DXF attributes for SOLID, TRACE or 3DFACE entities
doc – associated document
-
classmethod
from_arc
(arc: ezdxf.math.arc.ConstructionArc, start_width: float, end_width: float, segments: int = 64) → ezdxf.render.trace.CurvedTrace¶ Create curved trace from an arc.
- Parameters
arc –
ConstructionArc
objectstart_width – start width
end_width – end width
segments – count of segments for full circle (360 degree) approximation, partial arcs have proportional less segments, but at least 3
- Raises
ValueError – if arc.radius <= 0
-
classmethod
from_spline
(spline: ezdxf.math.bspline.BSpline, start_width: float, end_width: float, segments: int) → ezdxf.render.trace.CurvedTrace¶ Create curved trace from a B-spline.
- Parameters
spline –
BSpline
objectstart_width – start width
end_width – end width
segments – count of segments for approximation
-