Release v0.15.1

By mozman, Fr 15 Januar 2021, in category Release

cython, drawing, geo, hatch, mline, point, release, vec3

Drawing Add-on

Hatch

Island detection for the HATCH entity is now supported, the example shows the effect of the HATCH styles NESTED, OUTERMOST and IGNORE (from left to right), the example script can be found here:

hatch-islands

The HATCH entity also got support for hatch pattern, but this is just an approximation, because neither matplotlib nor PyQt5 have proper fill pattern support in the style of a CAD application.

Disabling the hatch pattern support is often the better solution: Set the backend param hatch_pattern to 0 to disable pattern usage, or set it to 2 to use a solid fill as replacement for the pattern, or set param show_hatch to 0 to disable hatch rendering at all.

Linetypes

Support for linetype rendering. The native linetype support by matplotlib and PyQt5 is fast but not implemented in the way as CAD applications do it. In CAD applications the linetypes are rendered in real drawing units, this means the length of lines and gaps is always the same independent of the zoom level. This is not the case for the matplotlib and the PyQt5 backends, therefore the drawing add-on provides a custom line renderer, but it's slower than the native one. The backend param linetype_renderer controls which line renderer is used, set the param to "internal" to use the native line rendering of the backend (default), or set it to "ezdxf" to use the custom line render provided by the add-on.

linetypes

Fonts

Font support for TrueType Fonts. SHX fonts have to be substituted by the according TrueType fonts, but the replacement fonts for the SHX fonts are not available for free. The best rendering results can be archived by installing an Autodesk product (TrueView), because this will install the replacement fonts automatically:

hatch-islands

The current supported SHX fonts, and their replacement TrueType fonts are listed here.

Point

POINT mode support, see the docs about the POINT entity and the various point modes. The DXF format supports only one point mode for ALL points in a DXF document, because the point mode is defined by the global header variable $PDMODE. Relative sizing to the viewport is not supported. Example for POINT mode 66:

point-mode-66

MLine

MLINE support, but without line break and fill break features (gaps).

mline-exampel

Proxy Graphic

Proxy graphic support. If no native rendering support for an entity exist, the proxy graphic will be shown if present (e.g. MLEADER).

Geo Add-on

The ezdxf.addons.geo module adds support for the __geo_interface__. See the docs and the tutorial for more information.

DXF Entities

Math Tools

Cython Optimized Math Objects

Cython implementations for some math tools and objects:

This speed up some rendering tasks, but not the loading or writing process.

Change Log

Version 0.15.1 - 2021-01-15

Version 0.15.0 - 2020-12-30