Python: Kopiertes Objekt wird nicht im Outliner angezeigt
Wenn ich ein Objekt mit bpy.context.active_object.copy()dem neuen Objekt kopiere, wird es nicht im Outliner angezeigt, obwohl es angezeigt wird, wenn ich list()Objekte in der Python-Shell verwende.
Fragen:
- Gibt es einen zweiten Schritt, um das Objekt im Outliner anzuzeigen ?
- Oder kopiert es vielleicht nur die Daten des Objekts? (Wenn ja, zu welchem Zweck?)
- Gibt es keine Begleitfunktionen, dh: paste() und/oder cut()? (Die Vervollständigung der Befehlszeile ergibt nichts.)
Hinweis: bpy.ops.object.duplicate()Erstellt eine Kopie, die im Outliner angezeigt wird. Bei diesen Fragen geht es also nicht darum, wie eine Arbeitskopie / ein Duplikat erstellt wird. Ich möchte den Zweck von verstehen .copy()
Antworten
Verknüpfen Sie es mit einer Sammlung
Vor Version 2.8 musste ein kopiertes Objekt mit der Objektsammlung der Szene verknüpft werden. Für 2.8+ verknüpfen Sie es mit einer Sammlung.
Sie wird in der Gliederung angezeigt, wenn die Sammlung mit einer Szene verknüpft ist oder die Sammlung der Basisszene ist.
Der Duplikatoperator verknüpft das Duplikat mit der Kontextsammlung.
import bpy
from bpy import context
ob = context.object.copy()
context.collection.objects.link(ob)
Verknüpfen Sie ein neues Objekt mit einer Szene mit Python in 2.8