For placing 2D entities like CIRCLE, ARC or TEXT in 3D space, you have to use the Object Coordinate System (OCS). This release adds support for OCS and UCS and a tutorial how to use it. For deeper insights into OCS go here
Because of the nature of ezdxf as interface to the DXF format, the conversion from OCS and to OCS will not applied automatically, you always get the data that is written in the DXF file. You have to do this conversion manually (tutorial), but most of the time this conversion is not necessary, because the default extrusion is (0, 0, 1) and for extrusion = (0, 0, 1) OCS and WCS are identical.
Support for the GEODATA entity in the objects section. I don't know how it works, but if you do, you can use it now, and maybe you write me an email to explain how it works.
The GEODATA entity is linked to an entity by an extension dictionary, so it is possible to link GEODATA to any DXF
entity you want, but I think just a link to the model space is useful. The method
new_geodata() are members of the
Layout() class. So model space and paper space layouts are supported,
but as I said, I don't think paper space layout really use GEODATA. For usage see example: examples/using_geodata.py
For the implementation of GEODATA was also support for extension dictionary usage required.
The SURFACE entity has some sub types as individual DXF types, which are supported now:
All layouts support the following spline factory functions:
add_spline_control_frame(), create and add B-spline control frame from fit points.
add_spline_approx(), approximate B-spline by a reduced count of control points, given are the fit points and the degree of the B-spline.
Setup some standard linetypes and text styles: standards.py
ezdxf.setup_linetypes(dwg), setup standard line types
ezdxf.setup_styles(dwg), setup standard text styles
LWPolyline.vertices() yields all points as (x, y) tuples in OCS,
LWPolyline.dxf.elevation is the
z-axis value for all the vertices.
LWPolyline.vertices_in_wcs() yields all points as (x, y, z) tuples in WCS as
The bulge value is used to create arc shaped line segments. The bulge defines the ratio of the arc sagitta (versine) to half line segment length, a bulge value of 1 defines a semicircle. Bulge values are used in LWPolyline and 2D Polyline entities.
Added some bulge related functions, source of algorithms:
__repr__()support for DXF entities, returns just DXF type and its handle like LINE(#FFFF)
DXFEntity.set_xdata()accept also list of tuples as tags, import of
DXFTag()is not required.