Release v0.8.8

By mozman, Mo 02 April 2018, in category Releases

bulge, geodata, lwpolyline, ocs, release, spline, surface, ucs


OCS and UCS Support

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

2D text placed in 3D space

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 get_geodata() and 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/

Extension Dictionary

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:

Additional Spline Factory Functions

All layouts support the following spline factory functions:

Drawing Setup

Setup some standard linetypes and 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 3D points.

Bulge Calculation

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: