Как создать слой Layer

Создадим новый слой:

layer = c4d.documents.LayerObject()

см. LayerObject

Назначим ему цвет и дадим имя:

layer[c4d.ID_LAYER_COLOR] = c4d.Vector(0.5, 0.3, 0.9)
layer.SetName("MyLayer")

Получим невидимый корневой слой и добавим в него созданный:

layerRoot = doc.GetLayerObjectRoot()
layer.InsertUnder(layerRoot)

см. GetLayerObjectRoot

Чтобы добавить объект к созданному слою нужно:

obj[c4d.ID_LAYER_LINK] = layer #привязать объект к слою

Чтобы изменить свойства слоя, нужно обратиться к соответствующим параметрам слоя. Пример ниже выведет все свойства всех слоев в документе:

root = doc.GetLayerObjectRoot()  # Gets the layer manager
LayersList = root.GetChildren()  # Get Layer list

for layers in LayersList:
    name = layers.GetName()
    print('=========== ',name, ' =============')
    print('ID_LAYER_SOLO', layers[c4d.ID_LAYER_SOLO])
    print('ID_LAYER_VIEW', layers[c4d.ID_LAYER_VIEW])
    print('ID_LAYER_RENDER', layers[c4d.ID_LAYER_RENDER])
    print('ID_LAYER_MANAGER', layers[c4d.ID_LAYER_MANAGER])
    print('ID_LAYER_LOCKED', layers[c4d.ID_LAYER_LOCKED])
    print('ID_LAYER_GENERATORS', layers[c4d.ID_LAYER_GENERATORS])
    print('ID_LAYER_DEFORMERS', layers[c4d.ID_LAYER_DEFORMERS])
    print('ID_LAYER_EXPRESSIONS', layers[c4d.ID_LAYER_EXPRESSIONS])
    print('ID_LAYER_ANIMATION', layers[c4d.ID_LAYER_ANIMATION])
    print('ID_LAYER_COLOR', layers[c4d.ID_LAYER_COLOR])
    print('ID_LAYER_XREF', layers[c4d.ID_LAYER_XREF])
    print('BIT_ACTIVE', layers.GetBit(c4d.BIT_ACTIVE))

Есть и другой синтаксис доступа к параметрам:

Last updated

Was this helpful?