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)

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 easy_install:

easy_install dxfwrite

with pip:

pip install dxfwrite

or from source:

python setup.py install

Documentation

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

Good Luck! Feedback is greatly appreciated.

Manfred

mozman@gmx.at

dxfwrite can be found on bitbucket.org at:

http://bitbucket.org/mozman/dxfwrite

News

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

Project details


Download files

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

Source Distributions

dxfwrite-1.0.2.zip (155.5 kB view details)

Uploaded Source

dxfwrite-1.0.2.tar.gz (109.4 kB view details)

Uploaded Source

File details

Details for the file dxfwrite-1.0.2.zip.

File metadata

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

File hashes

Hashes for dxfwrite-1.0.2.zip
Algorithm Hash digest
SHA256 bf6c8266fd4e08d8393de14de4038a31595aab1485e6ad85b131cca3fbdb7663
MD5 50b5b6d31308cce8d06e58072bc18be7
BLAKE2b-256 739604cf2b3a20050542da2c5fa411ac955e42425bd82813a0005fa255c43a09

See more details on using hashes here.

File details

Details for the file dxfwrite-1.0.2.tar.gz.

File metadata

  • Download URL: dxfwrite-1.0.2.tar.gz
  • Upload date:
  • Size: 109.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for dxfwrite-1.0.2.tar.gz
Algorithm Hash digest
SHA256 7da18054a722b26bd950d0f86b82449ff57a8c79683be631214cfc5ee60e995c
MD5 316ad5aedcb256341fa79b7c28a1af2a
BLAKE2b-256 44f60e12b184308b5a0baf0c3f485714ef69149a96abb0e8da0b4430195c4216

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