1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198
|
DXF Graphic Entity Base Class
=============================
.. module:: ezdxf.entities
:noindex:
Common base class for all graphical DXF entities.
All graphical entities reside in an entity space like :class:`~ezdxf.layouts.Modelspace`,
any :class:`~ezdxf.layouts.Paperspace` or :class:`~ezdxf.layouts.BlockLayout`.
.. seealso::
- :mod:`ezdxf.gfxattribs` module, helper tools to set graphical attributes
of DXF entities
- :mod:`ezdxf.colors` module
- :ref:`tut_common_graphical_attributes`
============ =================================
Subclass of :class:`ezdxf.entities.DXFEntity`
============ =================================
.. warning::
Do not instantiate entity classes by yourself - always use the provided
factory functions!
.. class:: DXFGraphic
.. attribute:: rgb
Get/set/delete DXF attribute :attr:`dxf.true_color` as (r, g, b) tuple, returns
``None`` if attribute :attr:`dxf.true_color` is not set.
.. code-block:: python
entity.rgb = (30, 40, 50) # set as tuple[int, int, int] or color.RGB
r, g, b = entity.rgb # returns tuple[int, int, int] or None
del entity.rgb # discard true color value, no exception if not exist
This is the recommend method to get/set/delete RGB values, when ever possible
do not use the DXF low level attribute :attr:`dxf.true_color`.
.. attribute:: transparency
Get/set the transparency value as float. The transparency value is in the
range from 0 to 1, where 0 means the entity is opaque and 1 means the
entity is 100% transparent (invisible). This is the recommend method to
get/set the transparency value, when ever possible do not use the DXF
low level attribute :attr:`DXFGraphic.dxf.transparency`.
This attribute requires DXF R2004 or later, returns 0 for older DXF
versions and raises :class:`DXFAttributeError` for setting transparency
in older DXF versions.
.. autoproperty:: is_transparency_by_layer
.. autoproperty:: is_transparency_by_block
.. automethod:: ocs
.. automethod:: get_layout
.. automethod:: unlink_from_layout
.. automethod:: copy_to_layout
.. automethod:: move_to_layout
.. automethod:: graphic_properties
.. automethod:: has_hyperlink
.. automethod:: get_hyperlink
.. automethod:: set_hyperlink
.. automethod:: transform
.. automethod:: translate
.. automethod:: scale
.. automethod:: scale_uniform
.. automethod:: rotate_x
.. automethod:: rotate_y
.. automethod:: rotate_z
.. automethod:: rotate_axis
.. _Common graphical DXF attributes:
Common graphical DXF attributes
-------------------------------
.. attribute:: DXFGraphic.dxf.layer
Layer name as string; default = "0"
.. attribute:: DXFGraphic.dxf.linetype
Linetype as string, special names "BYLAYER", "BYBLOCK"; default value
is "BYLAYER"
.. attribute:: DXFGraphic.dxf.color
:ref:`aci`, default value is 256
Constants defined in :mod:`ezdxf.lldxf.const` or use the :mod:`ezdxf.colors`
module
=== =========
0 BYBLOCK
256 BYLAYER
257 BYOBJECT
=== =========
.. attribute:: DXFGraphic.dxf.lineweight
Line weight in mm times 100 (e.g. 0.13mm = 13). There are fixed valid
lineweights which are accepted by AutoCAD, other values prevents AutoCAD
from loading the DXF document, BricsCAD isn't that picky.
(requires DXF R2000)
Constants defined in :mod:`ezdxf.lldxf.const`
=== ==================
-1 LINEWEIGHT_BYLAYER
-2 LINEWEIGHT_BYBLOCK
-3 LINEWEIGHT_DEFAULT
=== ==================
Valid DXF lineweights stored in ``VALID_DXF_LINEWEIGHTS``:
0, 5, 9, 13, 15, 18, 20, 25, 30, 35, 40, 50, 53, 60, 70, 80, 90, 100, 106, 120, 140, 158, 200, 211
.. attribute:: DXFGraphic.dxf.ltscale
Line type scale as float; default value is 1.0; (requires DXF R2000)
.. attribute:: DXFGraphic.dxf.invisible
1 for invisible, 0 for visible; default value is 0; (requires DXF R2000)
.. attribute:: DXFGraphic.dxf.paperspace
0 for entity resides in modelspace or a block, 1 for paperspace,
this attribute is set automatically by adding an entity to a layout
(feature for experts); default value is 0
.. attribute:: DXFGraphic.dxf.extrusion
Extrusion direction as 3D vector; default value is (0, 0, 1)
.. attribute:: DXFGraphic.dxf.thickness
Entity thickness as float; default value is 0.0; (requires DXF R2000)
.. attribute:: DXFGraphic.dxf.true_color
True color value as int 0x00RRGGBB, use :attr:`DXFGraphic.rgb` to
get/set true color values as (r, g, b) tuples. (requires DXF R2004)
.. attribute:: DXFGraphic.dxf.color_name
Color name as string. (requires DXF R2004)
.. attribute:: DXFGraphic.dxf.transparency
Transparency value as int, 0x020000TT, 0x00 = 100% transparent /
0xFF = opaque, special value 0x01000000 means transparency by
block. An unset transparency value means transparency by layer.
Use :attr:`DXFGraphic.transparency` to get/set transparency as float
value, and the properties :attr:`DXFGraphic.is_transparency_by_block`
and :attr:`DXFGraphic.is_transparency_by_layer` to check special cases.
(requires DXF R2004)
.. attribute:: DXFGraphic.dxf.shadow_mode
=== ==========================
0 casts and receives shadows
1 casts shadows
2 receives shadows
3 ignores shadows
=== ==========================
(requires DXF R2007)
.. seealso::
- :mod:`ezdxf.gfxattribs` module, helper tools to set graphical attributes
of DXF entities
- :mod:`ezdxf.colors` module
- :ref:`tut_common_graphical_attributes`
|