Drawing¶
-
class
Drawing
¶ The Drawing object manages all the necessary sections, like header, tables and blocks. The tables-attribute contains the layers, styles, linetypes and other tables.
-
Drawing.
__init__
(name='noname.dxf')¶ Parameters: name (str) – filename of drawing
Methods¶
-
Drawing.
add
(entity)¶ Add an entity to drawing.
shortcut for: Drawing.entities.add()
-
Drawing.
save
()¶ Write DXF data to file-system.
-
Drawing.
saveas
(name)¶ Set new filename and write DXF data to file-system.
-
Drawing.
add_viewport
(name, **kwargs)¶ Define a new viewport. For valid keyword args see: VIEWPORT (Table Entry)
-
Drawing.
add_xref
(filepath, insert=(0., 0., 0.), layer='0')¶ Create a simple XREF reference, filepath is the referenced drawing and insert is the insertion point.
Attributes¶
-
header
¶ the header section, see HEADER Section
-
modelspace
¶ Provides only a add method for adding entities to the modelspace, does the same as the
add()
method of the drawing object, except it garantees the paper_space attribute of the added entity is'0'
.
-
paperspace
¶ Provides only a add method for adding entities to the paperspace, does the same as the
add()
method of the drawing object, except it garantees the paper_space attribute of the added entity is'1'
.
Warning
DXF R12 supports only one paperspace.
usage:
from dxfwrite import DXFEngine as dxf
drawing = dxf.drawing(name='test.dxf')
drawing.paperspace.add(dxf.text('Text in paperspace'))
drawing.modelspace.add(dxf.text('Text in modelspace'))
drawing.add(dxf.text('Text also in paperspace', insert=(0, 1), paper_space=1))
drawing.add(dxf.text('Text also in modelspace', insert=(0, 1)))
usage:
from dxfwrite import DXFEngine as dxf
drawing = dxf.drawing(name='test.dxf')
drawing.add_layer('LINES')
drawing.add(dxf.line((0, 0), (10, 0), layer='LINES')))
# set header vars, see dxf documentation for header var explanation.
# set string
drawing.header['$CLAYER'] = 'CurrentLayer'
# set int/float
drawing.header['$ANGBASE'] = 30
# set 3D Point
drawing.header['$EXTMIN'] = (0, 0, -10)
drawing.header['$EXTMAX'] = (100, 100, 50)
# add a block definition to the drawing
drawing.blocks.add(blockdef)