Skip to content

Mesh cannot be removed from main database #35

@BTOdell

Description

@BTOdell
Python: Traceback (most recent call last):
  File "C:\Users\xxx\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\io_scene_cod\__init__.py", line 610, in execute
    result = export_xmodel.save(self, context,
  File "C:\Users\xxx\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\io_scene_cod\export_xmodel.py", line 394, in save
    result = save_model(self, context, filepath,
  File "C:\Users\xxx\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\io_scene_cod\export_xmodel.py", line 602, in save_model
    mesh.clear()
  File "C:\Users\xxx\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\io_scene_cod\export_xmodel.py", line 205, in clear
    bpy.data.meshes.remove(self.mesh)
RuntimeError: Error: Mesh 'MyMesh' is outside of main database and can not be removed from it

I believe this is due to the new way that a mesh is generated from objects:

depsgraph = context.evaluated_depsgraph_get()
mesh = ob.evaluated_get(depsgraph).to_mesh()

According to the documentation of to_mesh():

Create a Mesh data-block from the current state of the object.
The object owns the data-block. To force free it use to_mesh_clear().
The result is temporary and can not be used by objects from the main database.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions