Python: Objek yang Disalin Tidak Muncul di Outliner

Aug 22 2020

Ketika saya menyalin sebuah objek menggunakan objek bpy.context.active_object.copy()baru tidak muncul di Outliner meskipun itu muncul ketika saya list()objek di shell Python.

Pertanyaan:

  1. Apakah ada langkah kedua untuk menampilkan objek di Outliner ?
  2. Atau mungkin hanya menyalin data objek? (Jika ya, untuk tujuan apa?)
  3. Apakah tidak ada fungsi pendamping, yaitu: paste () dan / atau cut ()? (Penyelesaian baris perintah tidak menghasilkan apa-apa.)

Catatan: bpy.ops.object.duplicate()membuat salinan yang tidak muncul di Outliner , sehingga pertanyaan-pertanyaan ini bukan tentang bagaimana membuat copy pekerjaan / duplikat. Saya ingin memahami tujuan dari copy().

Jawaban

5 batFINGER Aug 22 2020 at 20:57

Tautkan ke koleksi

Sebelum 2.8, objek yang disalin diperlukan untuk ditautkan ke koleksi objek adegan. Untuk 2.8+ tautkan ke koleksi.

Ini akan ditampilkan di garis luar saat koleksi ditautkan ke sebuah adegan, atau merupakan koleksi adegan dasar.

Operator duplikat menautkan dupe ke kumpulan konteks.

import bpy
from bpy import context


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

tautkan objek baru ke adegan dengan python di 2.8