OBJ
- class compas.files.OBJ[source]
Bases:
object
Class for working with OBJ files.
Currently, reading is only supported for polygonal geometry. Writing is only supported for meshes.
- Parameters:
- filepathpath string | file-like object | URL string
A path, a file-like object or a URL pointing to a file.
- precisionstr, optional
A COMPAS precision specification.
- Attributes:
- reader
OBJReader
, read-only A OBJ file reader.
- parser
OBJParser
, read-only A OBJ data parser.
- verticeslist[list[float]], read-only
The vertices found in the parsed data.
- lineslist[tuple[int, int]], read-only
The lines found in the parsed data, as vertex pairs.
- faceslist[list[int]], read-only
The faces found in the parsed data, as lists of vertices.
- objectsdict[str, tuple[list[list[float, float, float]], list[list[int]]]], read-only
The objects found in the parsed data, as a mapping between object names and tuples of lists of vertices and faces.
- reader
References
Examples
Reading and writing of a single mesh.
>>> from compas.datastructures import Mesh >>> from compas.files import OBJ
Write mesh data to a file.
>>> mesh = Mesh.from_polyhedron(12) >>> obj = OBJ("mesh.obj") >>> obj.write(mesh)
Read mesh data from a file.
>>> obj = OBJ("mesh.obj") >>> obj.read() >>> mesh = Mesh.from_vertices_and_faces(obj.vertices, obj.faces)
Reading and writing of multiple meshes as separate objects in a single OBJ file.
>>> from compas.geometry import Pointcloud, Translation >>> from compas.datastructures import Mesh >>> from compas.files import OBJ
Write mesh data to a file.
>>> meshes = [] >>> for point in Pointcloud.from_bounds(10, 10, 10, 100): ... mesh = Mesh.from_polyhedron(12) ... mesh.transform(Translation.from_vector(point)) ... meshes.append(mesh) >>> obj = OBJ("meshes.obj") >>> obj.write(meshes)
Read mesh data from a file.
>>> obj = OBJ("meshes.obj") >>> obj.read() >>> meshes = [] >>> for name in obj.objects: ... mesh = Mesh.from_vertices_and_faces(*obj.objects[name]) ... mesh.name = name ... meshes.append(mesh)
Methods
Read and parse the contents of the file.
Write a mesh to the file.