Python: objeto copiado não exibido no Outliner
Quando eu copio um objeto usando bpy.context.active_object.copy()o novo objeto não aparece no Outliner , embora apareça quando eu list()objetos no shell do Python.
Perguntas:
- Existe uma segunda etapa para obter o objeto para mostrar no Outliner ?
- Ou talvez esteja apenas copiando os dados do objeto? (Se sim, com que propósito?)
- Não há funções complementares, ou seja: colar () e/ou cortar ()? (A conclusão da linha de comando não produz nada.)
Observação: bpy.ops.object.duplicate()faça uma cópia que apareça no Outliner , portanto, essas perguntas não são sobre como fazer uma cópia/duplicata de trabalho. Eu quero entender o propósito do copy().
Respostas
Vinculá-lo a uma coleção
Antes da versão 2.8, um objeto copiado precisava ser vinculado à coleção de objetos da cena. Para 2.8+, vincule-o a uma coleção.
Ele será exibido no delineador quando a coleção estiver vinculada a uma cena ou for a coleção de cena base.
O operador duplicado vincula o duplicado à coleção de contexto.
import bpy
from bpy import context
ob = context.object.copy()
context.collection.objects.link(ob)
vincular novo objeto à cena com python em 2.8