Я использую pymxs, чтобы получить узлы из любого конкретного слоя.Я не хочу использовать MaxPlus
В настоящее время использую refs.dependents с pymxs и фильтрую список по геометрии, но просто хочу использовать возможность узлов и узлов, которую использует Maxscript.
import pymxs
rt = pymxs.runtime
def get_all_layers():
"""Retrieve all layers except layer 0 (zero)"""
for i in range(1 , rt.LayerManager.count):
the_layer = rt.LayerManager.GetLayer(i)
the_layers.append(the_layer)
return the_layers
def get_all_layer_nodes():
"""Collect all the nodes on a given layer"""
all_layers = get_all_layers()
for i in range(0, len(all_layers)):
layer_nodes = rt.refs.dependents(all_layers[i].layerAsRefTarg)
return layer_nodes
for each in layer_nodes:
if rt.superClassOf(each) == rt.GeometryClass:
"""Need to collect in array/list/tuple"""
print each.name
get_all_layer_nodes()
Вышеработает, но не лучшим образом, я видел на форуме Autodesk (https://forums.autodesk.com/t5/3ds-max-programming/pymxs-documentation/m-p/8690351#M23242), что можно использовать следующее, но в нем не говорится, в каком контексте или должно ли оно быть частью другой строки кода:
rt.layer.nodes (pymxs.mxsreference (theNodes)) *
Документация pymxs меньше страницы и находится в постоянном развитии, поэтому нет никакой помощи, чтобы перейти к этому или практическилюбая другая функциональность pymxs