OBJ
- class compas.files.OBJ(filepath, precision=None)[source]
- Bases: - object- Class for working with OBJ files. - Currently, reading is only supported for polygonal geometry. Writing is only supported for meshes. - Parameters
- filepath (path string | file-like object | URL string) – A path, a file-like object or a URL pointing to a file. 
- precision (str, optional) – A COMPAS precision specification. 
 
- Attributes
- reader ( - OBJReader, read-only) – A OBJ file reader.
- parser ( - OBJParser, read-only) – A OBJ data parser.
- vertices (list[list[float]], read-only) – The vertices found in the parsed data. 
- lines (list[tuple[int, int]], read-only) – The lines found in the parsed data, as vertex pairs. 
- faces (list[list[int]], read-only) – The faces found in the parsed data, as lists of vertices. 
- objects (dict[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. 
 
 - 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.