Я использую скрипты для удаления пространств имен (вложенных или не вложенных) без использования/открытия редактора пространства имен, при условии, что критерии выполняются там, где в них нет содержимого.Вложенное удаление пространства имен
Делая это, я попал в эту проблему, где я не смог удалить вложенное пространство имен с помощью cmds.namespace(rm="<string of the namespace>")
я вроде нашел длинный обходной путь, но я застрял, как выход был юникода в списке, и я не могу похоже, преобразуют его в строку.
nsLs = cmds.namespaceInfo(lon=True)
# nsLs Result: [u'UI', u'camera01', u'shared', u'v02', u'v03']
defaultNs = ["UI", "shared", "camera01"]
diffLs = [item for item in nsLs if item not in defaultNs]
# diffLs Result: [u'v02', u'v03']
for ns in diffLs:
nsNest = cmds.namespaceInfo(ns, lon=True)
# nsNest Result: [u'v02:new_run01']
# [u'v03:new_run01']
cmds.namespace(rm=str(nsNest))
Таким образом, флаг «удалить» я использовал не работает, как следующее сообщение об ошибке встречается:
# Error: No namespace matches name: '[u'v02:new_run01']'.
# Traceback (most recent call last):
# File "<maya console>", line 13, in <module>
# RuntimeError: No namespace matches name: '[u'v02:new_run01']'. #
Приведенный выше код я вводится исключительно для вложенных пространств имен, хотя это по-прежнему не «там» для достижения результатов и не очень гибкий (при условии, что внутри сцены есть только один вложенный уровень), есть ли способы исправить это?
Кроме того, оценить, если кто-нибудь есть какие-либо решения/методы для удаления пространств имен без использования, если пространство имен редактора, конечно ...
Он работает. Интересно, знаете ли вы какие-либо способы определения вложенных уровней пространств имен? – yan
Отправьте его здесь. И подумайте, пожалуйста, если вы нашли ответ полезным. – kartikg3