2016-08-31 3 views
0

Ich verwende ein Python-Skript zum Importieren und Exportieren von Wavefront-Obj-Dateien in Blender. Das Problem ist, dass Blender dem Namen eines Objekts einen Index hinzufügt, wenn bereits ein Objekt mit demselben Namen hinzugefügt wurde. Zum Beispiel wird myObject zu myObject.001, wenn bereits ein Objekt namens myObject in der Vergangenheit hinzugefügt wurde (auch wenn das Objekt entfernt wurde). Wenn ich das Objekt als .obj exportiere, sind die Namen nicht mehr dieselben wie zuvor.Verhindern der Indizierung des Blendernamens

Wie setze ich diesen "name-counter" zurück?

Antwort

1

Jedes Element in Blender muss einen eindeutigen Namen innerhalb der Liste der Elemente haben, zu denen es gehört (jeder Name ist ein Wörterbuchschlüssel). Ein Name wird durch Anhängen eines numerischen Suffixes basierend auf den anderen Elementen in der Datei notiert dass es auf der Datei basiert - nicht auf der Szene, da eine Mischdatei mehrere Szenen enthalten kann. Objekte, die gelöscht wurden, werden in diesem Prozess nicht berücksichtigt, während andere Objekte wie Materialien und Netzdaten in den Listen verbleiben, bis die Datei geschlossen wird.

Der Obj-Importeur erstellt zunächst den Gitter-Datenblock und erstellt dann ein Objekt, das denselben Namen wie die Gitterdaten verwendet. Dies führt dazu, dass die neuen Objekte immer ein numerisches Suffix haben, das größer ist als vorherige Objekte.

Wenn Sie mehrere Objekte mit einem Python-Skript importieren, können Sie das Objekt nach dem Import umbenennen.

In diesem Szenario wird jedes vorhandene Objekt mit dem Namen "Objekt" umbenannt, um ein Suffix zu haben.

+0

Eine OBJ-Datei kann mehrere Objekte enthalten. Wie finde ich nach dem Import der Datei ihre "echten" Namen heraus? – MyNameIsHans

+1

Nach dem Import der Obj-Datei wird 'bpy.context.selected_objects' eine Liste der gerade importierten Objekte sein, alle vorherigen Objekte werden abgewählt. Wiederholen Sie diese Liste und benennen Sie sie um, indem Sie das Suffix entfernen. – sambler

+0

Ok. Was aber, wenn das Modell bereits Suffixe enthielt? Zum Beispiel, weil es mit Mixer gemacht wurde? – MyNameIsHans