Hide objects in Object Manager
-
On 21/01/2013 at 14:08, xxxxxxxx wrote:
Hi guys.
Why does this code don't work from Python plugin?
self.obj.ChangeNBit(c4d.NBIT_OHIDE, c4d.NBITCONTROL_CLEAR) - I know I am missing something simple, but cannot figure it out.
Under a python tag I used something similar, and it worked just fine: #obj.ChangeNBit(c4d.NBIT_OHIDE, c4d.NBITCONTROL_CLEAR) - what am I doing wrong?
Please help:)
Thank you. -
On 21/01/2013 at 15:48, xxxxxxxx wrote:
Hi, try this one:
You clear the bit with NBITCONTROL_CLEAR, use c4d.NBITCONTROL_SET instead.
Cheers, Sebastian
-
On 21/01/2013 at 15:58, xxxxxxxx wrote:
Oh yeah, that did the trick.
Thanks Sebastian. -
On 22/01/2013 at 01:34, xxxxxxxx wrote:
May I ask another question?
Hiding objects in Object Manager works like a charm. However, I still get that "+" sign on parent null object, that holds all those hidden objects. But if I press on that "+" - nothing unfolds - the "+" just disappears. Maybe I need to send some command to refresh a viewport or something? Or is there another way to get rid of that unnecessary "+" sign that holds nothing?my code looks like this right now:
doc = c4d.documents.GetActiveDocument()
MASTER_NULL = c4d.BaseObject(c4d.Onull)
doc.InsertObject(MASTER_NULL, node)
MASTER_NULL.ChangeNBit(c4d.NBIT_OHIDE, c4d.NBITCONTROL_SET)Thanks in advance.
-
On 22/01/2013 at 02:43, xxxxxxxx wrote:
try c4d.EventAdd()as your last script line.
-
On 22/01/2013 at 03:08, xxxxxxxx wrote:
Seems that c4d.EventAdd() didn't do a trick. Unnecessary "+" is still there:)
-
On 22/01/2013 at 03:49, xxxxxxxx wrote:
So I ended up by adding some more code:
node.ChangeNBit(c4d.NBIT_OM1_FOLD, c4d.NBITCONTROL_SET)
...that basically unfolds that object (though there's nothing to unfold) - and I get rid of that "+" sign.
-
On 22/01/2013 at 03:55, xxxxxxxx wrote:
a bit diffrent approach, which could be considered as more natural i guess .
i have never used this bit unil now. you just want to add an invisible child ?import c4d from c4d import gui #Welcome to the world of Python def main() : # this line is not necessary in a script, doc is one of # the predefined variables like doc or tp ~~ doc = c4d.documents.GetActiveDocument()~~ # get the selected object parent = doc.GetActiveObject() # create a child node child = c4d.BaseObject(c4d.Onull) # insert the child under the parent child.InsertUnderLast(parent) # hide the child child.ChangeNBit(c4d.NBIT_OHIDE, c4d.NBITCONTROL_SET) c4d.EventAdd() if __name__=='__main__': main()
-
On 22/01/2013 at 04:59, xxxxxxxx wrote:
Your method seems to work the same way I did it:)
But at the end I still get that problem with"+"So will stick with adding additional line of code to unfold that object.
Cheers, and thanks for input.
-
On 22/01/2013 at 06:39, xxxxxxxx wrote:
Originally posted by xxxxxxxx
Your method seems to work the same way I did it:)
But at the end I still get that problem with"+"So will stick with adding additional line of code to unfold that object.
Cheers, and thanks for input.
i am using a GeListNode Method to insert the object rather than the more general
BaseDocument.InsertObject method. the snippet works fine for me (nothing happens
visually).