I have a driver script being called on an empty's position properties. When the user moves the empty, I'm regenerating a mesh based on the position of the empty. The driver script runs, but the mesh doesn't visibly change (until I go into edit mode afterward). Here's basically what the script is doing:
obj = bpy.data.objects.get(name)
mesh = obj.data
mesh.clear_geometry()
mesh.from_pydata(verts, [], faces)
I tried calling obj.update_tag()
but that did nothing (perhaps it's too late in dependency graph update?).
I also tried calling context.view_layer.update()
but that gave the error "Dependency graph update requested during evaluation".
I'm using a driver script because it makes it easy to bind to specific property changes of the empty (position, scale, etc.).
Is there a better way to be doing this or a way to force the mesh to update?