Skip to main content

dxfwrite

Abstract

A Python library to create DXF R12 drawings.

a simple example:

from dxfwrite import DXFEngine as dxf
drawing = dxf.drawing('test.dxf')
drawing.add(dxf.line((0, 0), (10, 0), color=7))
drawing.add_layer('TEXTLAYER', color=2)
drawing.add(dxf.text('Test', insert=(0, 0.2), layer='TEXTLAYER'))
drawing.save()

supported DXF R12 entities

  • ARC

  • ATTDEF

  • ATTRIB

  • BLOCK

  • CIRCLE

  • 3DFACE

  • INSERT

  • LINE

  • POINT

  • POLYLINE (special Polyface and Polymesh objects are available)

  • SHAPE (not tested)

  • SOLID

  • TRACE

  • TEXT

  • VERTEX (only for internal use, see Polyline, Polyface and Polymesh objects)

  • VIEWPORT

not supported DXF R12 entities

  • DIMENSION

emulated entities from DXF R13 and later

  • MTEXT (R13) … emulated as composite entity MText

  • ELLIPSE (R13) … approximated by Ellipse

  • SPLINE (R13) … approximated by Spline

  • LWPOLYLINE (R13) … use POLYLINE

  • TABLE (R2005) … emulated as composite entity Table

composite entities

  • MText – multi-line text

  • LinearDimension

  • AngularDimension

  • ArcDimension

  • RadialDimension

  • Table – text and blockrefs containing table like a HTML-table

  • Ellipse – approximated as POLYLINE

  • Spline – cubic spline curve through breakpoints without additional control points, approximated as POLYLINE

  • Bezier – cubic bezier curve through breakpoints with additional control points, approximated as POLYLINE

  • Clothoid – Euler spiral, approximated as POLYLINE

read/write AutoCAD ctb-files

The module acadctb provides the ability to read and write AutoCAD ctb-files. With ctb-files you can assign a new color or lineweight to a dxf-color-index for plotting or printing, but this has to be supported by the used application.

a simple example:

from dxfwrite import acadctb
ctb = acadctb.load('test.ctb')
style1 = ctb.get_style(1) # dxf color index (1 .. 255)
style1.set_color(23, 177, 68) # set rgb values (0..255)
style1.set_lineweight(0.7)
ctb.save('new.ctb')

Installation

with pip:

pip install dxfwrite

or from source:

python setup.py install

Documentation

http://dxfwrite.readthedocs.org http://packages.python.org/dxfwrite/

The source code repository of dxfwrite can be found at bitbucket.org:

http://bitbucket.org/mozman/dxfwrite

Feedback is greatly appreciated.

mozman <mozman@gmx.at>

News

Version 1.2.0 - August 2012

  • License changed to MIT License

  • tested on Win7 with: CPython2.7, CPython3.2, CPython 3.3 beta, pypy-1.9

Version 1.1.0 - 29 December 2011

  • rewrite of DXF-String building process

  • refactored MText class

  • changed Viewport table entry to VPort and DXFEngine.viewport to DXFEngine.vport. This was necessary to implement the VIEWPORT (Entity)

  • added VIEWPORT (Entity) to create viewports in paper space

  • view docs also on http://dxfwrite.readthedocs.org

  • added some docs

  • changed clothoid mirror parameters

  • added methods to class Layer: on(), off(), freeze(), thaw(), lock(), unlock()

  • tested on Win7 32 Bit with CPython-2.7, CPython-3.2 and pypy-1.7, IronPython 2.7 failed tests - unicode issues

  • tested on Ubuntu 11.10 64 Bit with CPython-2.7, CPython-3.2 and pypy-1.7

Version 1.0.2 - 08 December 2011

  • raw unicode encoding by Toni Ruža - use any unicode character for text and table-entries.

Version 1.0.1 - 26 March 2011

  • added easy usage of modelspace/paperspace, see examples/paperspace.py

  • BUGFIX: removed dict-comprehension in module htmlcolors.py for backward-compatibility to Python 2.5 and 2.6, works with pypy 1.4.1

Version 1.0.0 - 11 March 2011

  • changed: set DXF Header variables now looks like dwg.header[‘$VAR’] = value, see http://packages.python.org/dxfwrite/headervars.html

  • splitted makedxfexamples.py into several files and moved them into the subdir ‘examples’

  • curves.Ellpise: radiusx -> rx; radiusy -> ry

  • moved documentation to: http://packages.python.org/dxfwrite, and using Sphinx (http://sphinx.pocoo.org)

  • tested with Python 3.2 - OK

  • further compatibility-tests only for CPython 2.7 & CPython 3.2+

  • added Drawing.add_xref(filename), for usage see examples/xref.py

  • adding relative attributes by Insert.add() consider the xy-scaling

  • added Howtos section to documentation

Version 0.3.6 - 14 November 2010

  • moved dxfwrite.drawing.ENCODING to class Drawing

  • Python 3.1 support

Version 0.3.5 - 10 September 2010

  • new: package and tests run with Python 2.7

Version 0.3.4 - 29 August 2010

  • status: 5 - Production/Stable

  • new: package and tests run with Python 2.5 (tests need unittest2)

Version 0.3.3 - 27 April 2010

  • BUGFIX: makedxfexamples.py - attdef keyword error

Version 0.3.2 - 27 April 2010

  • BUGFIX: Drawing.__dxf__() - StringIO() does not support ‘with’ statement

Version 0.3.1 - 24 April 2010

  • new: insert2, insert block reference with automatic attrib filling

  • changed interface for DXFEngine.attrib()

Version 0.3.0b1 - 28 March 2010

  • new: subpackage algebra: circle, ray, clothoid, cspline, bezier (27.03.2010)

  • new: Spline, Bezier, Clothoid and Ellipse - curves (27.03.2010)

  • new: acadctb.py to read, write and create AutoCAD ctb-files (25.03.2010)

  • splitted buildups.py into mtext.py and rect.py

Version 0.2.0 - 21 March 2010

  • Alpha status - api may change

Version 0.1.0 - 14 March 2010

  • Pre-Alpha status

  • Initial release

Release files for dxfwrite 1.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distributions (sdists)

Source distribution for dxfwrite 1.2.0
File Size Uploaded
dxfwrite-1.2.0.zip 151.2 kB Details
dxfwrite-1.2.0.tar.gz 101.5 kB Details

Release files / dxfwrite-1.2.0.zip

Download URL dxfwrite-1.2.0.zip
Size 151.2 kB
Tags Source
SHA-256 checksum
How to use checksums
fb07c330673068cd784ba928b3b7e868dfa3ec2d72e2b6dd79693c94e52b6f84
BLAKE2b-256 checksum
How to use checksums
e8aa087a76bcd4c1c4b2d413150accf2f35178a5e37ef89d57b5f8ab77e7c072
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / dxfwrite-1.2.0.tar.gz

Download URL dxfwrite-1.2.0.tar.gz
Size 101.5 kB
Tags Source
SHA-256 checksum
How to use checksums
647788d3d384d8ebf665a646a0d2e0f32fb4b4d51fdc8f458c44681785d6cd6a
BLAKE2b-256 checksum
How to use checksums
75722226dbddea6e556857efbc59f51a8b0882b71bc830bdfdd37b536a89cab6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

1.2.2

2 release files

1.2.1

2 release files

This release

1.2.0 This release

2 release files

1.1.0

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page