Python: el objeto copiado no se muestra en el esquema

Aug 22 2020

Cuando copio un objeto usando bpy.context.active_object.copy()el nuevo objeto no aparece en el Esquema aunque aparece cuando list()objeto en el shell de Python.

Preguntas:

  1. ¿Hay un segundo paso para que el objeto se muestre en el Esquema ?
  2. ¿O tal vez solo está copiando los datos del objeto? (Si es así, ¿con qué propósito?)
  3. ¿No hay funciones complementarias, es decir, pegar () y/o cortar ()? (La finalización de la línea de comando no arroja nada).

Nota: bpy.ops.object.duplicate()hace una copia que aparece en el Esquema , por lo que estas preguntas no son sobre cómo hacer una copia/duplicado de trabajo. Quiero entender el propósito de copy().

Respuestas

5 batFINGER Aug 22 2020 at 20:57

Vincularlo a una colección.

Antes de 2.8, un objeto copiado requería vincularse a la colección de objetos de la escena. Para 2.8+ vincularlo a una colección.

Se mostrará en el delineador cuando la colección esté vinculada a una escena o sea la colección de escenas base.

El operador duplicado vincula el duplicado con la colección de contexto.

import bpy
from bpy import context


ob = context.object.copy()
context.collection.objects.link(ob)

vincular nuevo objeto a escena con python en 2.8