Get clone of group and keep links



  • Hello,

    for example I have a null object with 2 children, one child is a rectangleSpline and the other is a sphere. The sphere has an align-to-spline-tag with the rectangle as spline-path source. If I clone the null with null.GetClone() the new spline-path links to the old rectangle, but I want it to link to the new rectangle. So, how can I get the behavior alike copy paste groups in OM?

    Thx for any hints
    rownn



  • Hello and welcome to the PluginCafe,

    Please post your questions regarding the Cinema 4D API in the "Cinema 4D Development" forum.

    Also, please use tags and the Q&A system to mark questions. Please read "Read Before Posting".

    To handle links when coping objects one can use a AliasTrans object. This object allows to fix links after objects are copied.

    trans = c4d.AliasTrans()
    if trans is None or trans.Init(doc) is False:
        return False
    
    objects = doc.GetActiveObjects(c4d.GETACTIVEOBJECTFLAGS_0)
     
    for obj in objects:
         
        clone = obj.GetClone(c4d.COPYFLAGS_0, trans)
            
        if clone is not None:
            clone.SetName(obj.GetName() + " clone")
            doc.InsertObject(clone, None, None)
             
    c4d.EventAdd()
    

    You find more information in the C4DAtom Manual or the AliasTrans Python documentation.

    Best wishes,
    Sebastian



  • Very cool, thx alot Sebastian
    rownn


Log in to reply