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
BUGFIX: same layer for polyline and vertex entities (Ken Healy)
PEP8 refactorings
Moved to GitHub.com: https://github.com/mozman/dxfwrite.git
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
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | e6df9f203ca9b6623ca7c35e7294af768ab84d78cf48b574c113cbacd53671c4 |
|
MD5 | 8a94c11415323b5369e0e75ac7cd7fd0 |
|
BLAKE2b-256 | b5236f09201d1bc506b3bf36e381ac6d5886714e6e7b84ad54bb961d25411c1b |
File details
Details for the file dxfwrite-1.2.1-py2.py3-none-any.whl
.
File metadata
- Download URL: dxfwrite-1.2.1-py2.py3-none-any.whl
- Upload date:
- Size: 84.4 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5b90b3e7769baa0fd6326a7245469a1f0fc56a5f2e5b835c11ea664bbb993fe8 |
|
MD5 | 582a1a054432c6c255afbf84a7490991 |
|
BLAKE2b-256 | f2400020e692cf02c6d7ade0e0c45a22013476c9771aceccb8c2232ccde0ad42 |