Mesh

The MESH entity (DXF Reference) is a 3D surface in WCS build up from vertices and faces similar to the Polyface entity.

All vertices in WCS as (x, y, z) tuples

Subclass of

ezdxf.entities.DXFGraphic

DXF type

'MESH'

Factory function

ezdxf.layouts.BaseLayout.add_mesh()

Inherited DXF attributes

Common graphical DXF attributes

Required DXF version

DXF R2000 ('AC1015')

See also

Tutorial for Mesh and helper classes: MeshBuilder, MeshVertexMerger

class ezdxf.entities.Mesh
dxf.version
dxf.blend_crease

0 = off, 1 = on

dxf.subdivision_levels

0 for no smoothing else integer greater than 0.

vertices

Vertices as list like VertexArray. (read/write)

edges

Edges as list like TagArray. (read/write)

faces

Faces as list like TagList. (read/write)

creases

Creases as array.array. (read/write)

edit_data() Iterator[MeshData]

Context manager for various mesh data, returns a MeshData instance.

Despite that vertices, edge and faces are accessible as packed data types, the usage of MeshData by context manager edit_data() is still recommended.

transform(m: Matrix44) Mesh

Transform the MESH entity by transformation matrix m inplace.

MeshData

class ezdxf.entities.MeshData
vertices

A standard Python list with (x, y, z) tuples (read/write)

faces

A standard Python list with (v1, v2, v3,…) tuples (read/write)

Each face consist of a list of vertex indices (= index in vertices).

edges

A Python list with (v1, v2) tuples (read/write). This list represents the edges to which the edge_crease_values values will be applied. Each edge consist of exact two vertex indices (= index in vertices).

edge_crease_values

A Python list of float values, one value for each edge. (read/write)

add_face(vertices: Iterable[UVec]) Sequence[int]

Add a face by a list of vertices.

add_edge_crease(v1: int, v2: int, crease: float)

Add an edge crease value, the edge is defined by the vertex indices v1 and v2.

The crease value defines the amount of subdivision that will be applied to this edge. A crease value of the subdivision level prevents the edge from deformation and a value of 0.0 means no protection from subdividing.

optimize()

Reduce vertex count by merging coincident vertices.