Skip to main content

A Python library to create DXF R12 drawings.

Project description

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 GitHub.com:

https://github.com/mozman/dxfwrite.git

Feedback is greatly appreciated.

mozman <mozman@gmx.at>

News

Version 1.2.1 - 2017-01-22

Version 1.2.0 - 2012-08-01

  • License changed to MIT License

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

Version 1.1.0 - 2011-12-29

  • 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 - 2011-12-08

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

Version 1.0.1 - 2011-03-26

  • 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 - 2011-03-11

  • 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 - 2010-11-14

  • moved dxfwrite.drawing.ENCODING to class Drawing

  • Python 3.1 support

Version 0.3.5 - 2010-09-10

  • new: package and tests run with Python 2.7

Version 0.3.4 - 2010-08-29

  • status: 5 - Production/Stable

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

Version 0.3.3 - 2010-04-27

  • BUGFIX: makedxfexamples.py - attdef keyword error

Version 0.3.2 - 2010-04-27

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

Version 0.3.1 - 2010-04-24

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

  • changed interface for DXFEngine.attrib()

Version 0.3.0b1 - 2010-03-28

  • 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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dxfwrite-1.2.1.zip (156.8 kB view details)

Uploaded Source

Built Distribution

dxfwrite-1.2.1-py2.py3-none-any.whl (84.4 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file dxfwrite-1.2.1.zip.

File metadata

  • Download URL: dxfwrite-1.2.1.zip
  • Upload date:
  • Size: 156.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for dxfwrite-1.2.1.zip
Algorithm Hash digest
SHA256 e6df9f203ca9b6623ca7c35e7294af768ab84d78cf48b574c113cbacd53671c4
MD5 8a94c11415323b5369e0e75ac7cd7fd0
BLAKE2b-256 b5236f09201d1bc506b3bf36e381ac6d5886714e6e7b84ad54bb961d25411c1b

See more details on using hashes here.

File details

Details for the file dxfwrite-1.2.1-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for dxfwrite-1.2.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 5b90b3e7769baa0fd6326a7245469a1f0fc56a5f2e5b835c11ea664bbb993fe8
MD5 582a1a054432c6c255afbf84a7490991
BLAKE2b-256 f2400020e692cf02c6d7ade0e0c45a22013476c9771aceccb8c2232ccde0ad42

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page