Tutorial for Simple DXF Entities¶
These are basic graphical entities located in an entity space like the modelspace or a block definition and only support the common graphical attributes.
The entities in the following examples are always placed in the xy-plane of the WCS aka the 2D drawing space. Some of these entities can only be placed outside the xy-plane in 3D space by utilizing the OCS, but this feature is beyond the scope of this tutorial, for more information about that go to: Tutorial for OCS/UCS Usage.
Prelude to all following examples:
import ezdxf
from ezdxf.gfxattribs import GfxAttribs
doc = ezdxf.new()
doc.layers.new("ENTITY", color=1)
msp = doc.modelspace()
attribs = GfxAttribs(layer="ENTITY")
See also
Point¶
The Point
entity marks a 3D point in the WCS:
point = msp.add_point((10, 10), dxfattribs=attribs)
All Point
entities have the same styling stored in the
header variable $PDMODE, for more information read the reference of class
Point
.
See also
Reference of class
Point
Line¶
The Line
entity is a 3D line with a start- and
an end point in the WCS:
line = msp.add_line((0, 0), (10, 10), dxfattribs=attribs)
See also
Reference of class
Line
Circle¶
The Circle
entity is an OCS entity defined by a
center point and a radius:
circle = msp.add_circle((10, 10), radius=3, dxfattribs=attribs)
See also
Reference of class
Circle
Arc¶
The Arc
entity is an OCS entity defined by a
center point, a radius a start- and an end angle in degrees:
arc = msp.add_arc((10, 10), radius=3, start_angle=30, end_angle=120, dxfattribs=attribs)
The arc goes always in counter-clockwise orientation around the z-axis more precisely the extrusion vector of OCS, but this is beyond the scope of this tutorial.
The helper class ezdxf.math.ConstructionArc
provides constructors to
create arcs from different scenarios:
from_2p_angle
: arc from 2 points and an anglefrom_2p_radius
: arc from 2 points and a radiusfrom_3p
: arc from 3 points
This example creates an arc from point (10, 0) to point (0, 0) passing the point (5, 3):
from ezdxf.math import ConstructionArc
# -x-x-x- snip -x-x-x-
arc = ConstructionArc.from_3p(
start_point=(10, 0), end_point=(0, 0), def_point=(5, 3)
)
arc.add_to_layout(msp, dxfattribs=attribs)
See also
Reference of class
Arc
Ellipse¶
The Ellipse
entity requires DXF R2000 or newer and is a
true WCS entity. The ellipse is defined by a center point, a vector for
the major axis, the ratio between major- and minor axis and the start- and end
parameter in radians:
ellipse = msp.add_ellipse(
(10, 10), major_axis=(5, 0), ratio=0.5, start_param=0, end_param=math.pi, dxfattribs=attribs
)
When placed in 3D space the extrusion vector defines the normal vector of the
ellipse plane and the minor axis is the extrusion vector cross
the major axis.
See also
Reference of class
Ellipse