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")
point = msp.add_point((10, 10), dxfattribs=attribs)
line = msp.add_line((0, 0), (10, 10), dxfattribs=attribs)
circle = msp.add_circle((10, 10), radius=3, dxfattribs=attribs)
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 angle
from_2p_radius: arc from 2 points and a radius
from_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)
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.