Layers Options
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 12/07/2011 at 13:20, xxxxxxxx wrote:
I'm having a hard time figuring out the proper Baselist2D object needed to access the options of a specific layer in the layer browser.
I can create a layer, search for a layer, and select a layer.
But once I have a Layer. I can't do anything with it :import c4d from c4d import gui def main() : obj = doc.GetFirstObject() root = doc.GetLayerObjectRoot()#Gets the layer manager first = root.GetDown() #Gets the first layer first.SetBit(c4d.BIT_ACTIVE) #Makes the first layer active layers = obj[c4d.ID_LAYER_LINK] #How do I get the right Baselist2D object #So I can get at the various options(solo, view, render, manager, etc..)? obj.GetLayerData(doc, True) #nope root.GetLayerData(doc, True) #nope first.GetLayerData(doc, True) #nope layers.GetLayerData(doc, True) #nope if __name__=='__main__': main()
Can anyone tell what the correct Baselist2D object is?
-ScottA
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 12/07/2011 at 23:38, xxxxxxxx wrote:
"""
I can't test it right now, but I could imagine you can de-/activate the options using the layerobject's container.
Try:import c4d def **searchModule** (mod, what) : d = mod.__dict__ for k in d: if d[k] == what: yield k def **main** () : lay = doc.GetLayerObjectRoot().GetDown() bc = lay.GetDataInstance() for i, e in bc: d = searchModule(c4d, i) d = tuple(d) if d: print "Matches for %s:" %i for e in d: print " " * 3, str(i).ljust(20), "c4d." + str(e) print "- " * 20 main()
I hope it works as expected, As already said, can't test it now.
cheers,// Edit: I expected some entries in the contianer of this BaseList2D Object, but there are None..
I'm sorry, can't help you here, don't know what to do here, too. -
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 13/07/2011 at 07:22, xxxxxxxx wrote:
Thanks. That does sort of help. In a round about way.
I found an old thread where Sebastian said that the GetLayerData() function wasn't supported yet. Even though it was listed in the docs.So I have a hunch that this function is still missing from python.
Your method resulting in nothing supports my theory that it's still not supported.
I guess layers are still not supported yet.In the mean time. I'll have to do my layer stuff in C++.
-ScottA
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 31/07/2011 at 18:19, xxxxxxxx wrote:
um what do you actually want to do because from your first post it seems you just want to access the various settings of an individual layer like (solo, view, render, manager, etc..)
well this works for me:
doc = c4d.documents.GetActiveDocument()
root = doc.GetLayerObjectRoot()#Gets the layer manager
first = root.GetDown() #Gets the first layer
print first.GetName() #layer Name
print first[c4d.ID_LAYER_SOLO] #print layer solo setting
print first[c4d.ID_LAYER_VIEW] #print layer view setting
#ect........................
first[c4d.ID_LAYER_SOLO] = False #set layer solo setting
first[c4d.ID_LAYER_VIEW] = False #set layer view setting
#ect........................
c4d.EventAdd()Just thought i would post a reply incase it helps anyone else.
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 01/08/2011 at 02:17, xxxxxxxx wrote:
This is confusing !
It works, yes. But why are the values not stored in the Container ?
There must be a bug anywhere. Either GetDataInstance() does not return the right container or the values are not stored in the container.Thanks tundras
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 01/08/2011 at 08:07, xxxxxxxx wrote:
Thanks tundras.
-ScottA