Как создать список цветовых наборов, получить к ним доступ и удалить их в Maya?

Как будто вы пытаетесь получить доступ к объекту, который является null. Рассмотрим ниже пример:

TypeA objA;

. В это время вы только что объявили этот объект, но не инициализировали или не инициализировали. И всякий раз, когда вы пытаетесь получить доступ к каким-либо свойствам или методам в нем, он будет генерировать NullPointerException, что имеет смысл.

См. Также этот пример:

String a = null;
System.out.println(a.toString()); // NullPointerException will be thrown
0
задан boomstick 8 April 2019 в 14:15
поделиться

2 ответа

Вы также сможете получать наборы цветов с помощью

cmds.polyColorSet( your_object_here, q=True, acs=True ) 

. Чтобы избежать дополнительных проверок None, я бы попробовал

def num_color_sets(obj):
    return len(cmds.polyColorSet( obj, q=True, acs=True ) or [])

. узлы colorSet были удалены с помощью операции удаления истории

0
ответ дан theodox 8 April 2019 в 14:15
поделиться

Вы можете использовать cmds.listHistory, чтобы получить все входные данные от объекта, затем cmds.ls, чтобы отфильтровать результат, чтобы найти любые наборы цветов:

import maya.cmds as cmds

for obj in cmds.ls(sl=True):  # Loop through the selection.
    history = cmds.listHistory(obj)  # Get a list of the object's history nodes, which may include a color set.
    existing_color_sets = cmds.ls(history, type="createColorSet")  # Filter history nodes to only color sets.
    if existing_color_sets:  # If a color set exists, delete it.
        cmds.delete(existing_color_sets)

    cmds.polyColorSet(obj, cr=True, colorSet="colorSet")  # Create a new color set.
0
ответ дан Green Cell 8 April 2019 в 14:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: