Импорт нескольких файлов в плагин импорта блендера - PullRequest
0 голосов
/ 07 августа 2020

Я пишу плагин импорта для blender 2.8x, и я хотел бы использовать функцию выбора нескольких файлов. К сожалению, я не могу найти никаких условий для этого в ImportHelper (класс, от которого я унаследован), и поиск в Интернете не дал ничего, что работало бы, и я тоже не могу найти ничего в документации.

1 Ответ

0 голосов
/ 07 августа 2020

Оказывается, вам нужно сделать несколько вещей, чтобы заставить эту работу работать, это еще не описано в документации.

Прежде всего, это помогает узнать, что делает базовый класс ImportHelper, когда используя его в сценарии импорта. При инициализации сценарий вызывает context.window_manager.fileselect_add (self), который добавляет несколько объектов в ваш класс. Эта строка в исходном коде выдавала это:

"Свойства строки 'filepath', 'filename', 'directory' и 'files'" "коллекции присваиваются, когда они присутствуют в операторе"

Объект 'files' - это то, что нам нужно, но он присутствует только в том случае, если у вас также есть правильное свойство, присутствующее в вашем классе, например:

files: CollectionProperty(
            type=bpy.types.OperatorFileListElement,
            options={'HIDDEN', 'SKIP_SAVE'},
        )

тогда, если который присутствует, вы можете получить доступ к нему в методе своего класса 'execute', чтобы перебрать все файлы в вашем выборе:

for meshfile in self.files:
            filepath = meshfile.name
            print(filepath)

Кроме того, не забудьте включить правильные свойства, я включаю их в свой импортер:

from bpy.props import (
    BoolProperty,
    CollectionProperty,
    StringProperty,
)
...