Your browser does not seem to support JavaScript. As a result, your viewing experience will be diminished, and you have been placed in read-only mode.
Please download a browser that supports JavaScript, or enable it if it's disabled (i.e. NoScript).
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 26/11/2012 at 01:34, xxxxxxxx wrote:
Selecting all children in a Root Null-Object.
I was trying to make it happen but I guess this is a logic problem I need your help.
at the moment i use the callcomand but i guess this is not the fasted solution to select all children in a Null-Object.
op.SetBit(c4d.BIT_ACTIVE) c4d.CallCommand(100004768) # Unterobjekte selektieren - select children c4d.CallCommand(16768) # Objekte verbinden + Löschen Connect and delete
kind regards mogh
On 26/11/2012 at 10:50, xxxxxxxx wrote:
If you need to select all children you need to use a recursive function such as below. To keep the selection to the hierarchy of the selected object, you add a obj.GetNext() so it knows where to stop (or it would select everything from selected object to the end of the OM.
Cheers Lennart
import c4d from c4d import gui def selchildren(obj,next) : # Scan obj hierarchy and select children while obj and obj != next: doc.AddUndo(c4d.UNDOTYPE_CHANGE_SMALL,obj) obj.SetBit(c4d.BIT_ACTIVE) selchildren(obj.GetDown(),next) obj = obj.GetNext() c4d.EventAdd() return True def main() : try: obj = doc.GetActiveObjects(False)[0] except: return True # Nothing Selected doc.StartUndo() if selchildren(obj,obj.GetNext()) : c4d.CallCommand(16768) #Connect And Delete doc.EndUndo() if __name__=='__main__': main()
On 26/11/2012 at 23:53, xxxxxxxx wrote:
Thanks tcastudios, this is about 60% faster then the callcomand exactly what i needed.
works perfect.
just to understand your code: you are calling the function from itself? with different parameters? thats crazy stuff
also this line buffles me : try: obj = doc.GetActiveObjects(False)[0] does this read like "Try to set OBJ, and if 0 set to False"
much more to learn young jedi kind regards mogh