import bpy import pathlib root = pathlib.Path(__file__).resolve().parents[3] bpy.ops.wm.open_mainfile(filepath=str(root / "tests/files/web/basic_scene.blend")) mesh = bpy.data.objects["BasicCube"].data # Reverse one face of the closed cube so normal repair has observable work. vertices = [tuple(vertex.co) for vertex in mesh.vertices] faces = [tuple(polygon.vertices) for polygon in mesh.polygons] faces[0] = tuple(reversed(faces[0])) mesh.clear_geometry() mesh.from_pydata(vertices, [], faces) mesh.update() uv = mesh.uv_layers.active or mesh.uv_layers.new(name="UVMap") for corner in uv.data: corner.uv = (0.125, 0.875) bridge = bpy.data.meshes.new("WebBridgeMesh") bridge.from_pydata([(-1, -1, 0), (1, -1, 0), (1, 1, 0), (-1, 1, 0), (-1, -1, 2), (1, -1, 2), (1, 1, 2), (-1, 1, 2)], [], [(3, 2, 1, 0), (4, 5, 6, 7)]) bridge.update() obj = bpy.data.objects.new("WebBridgeObject", bridge) bpy.context.scene.collection.objects.link(obj) obj.location.x = 4 bpy.ops.wm.save_as_mainfile(filepath=str(root / "tests/files/web/mesh_editor_scene.blend"), check_existing=False)