cloner don't refresh



  • On 02/02/2017 at 10:13, xxxxxxxx wrote:

    Hi , 
    when I try to change the cloner type with python in the script manager , the mode changes , but the interface don't update until I set the type manually .
    I tried the .message , with some flags but couldn't find the right one , any advice on how to solve this problem ?
    thanks :)



  • On 02/02/2017 at 10:34, xxxxxxxx wrote:

    Did you tried c4d.EventAdd()



  • On 02/02/2017 at 19:48, xxxxxxxx wrote:

    sure , it is always in the end of my code



  • On 03/02/2017 at 01:04, xxxxxxxx wrote:

    Maybe you should post a code because maybe I missunderstand waht you mean by type but here doing the following working correctly

    import c4d
    import random
      
      
    def main() :
        op[c4d.ID_MG_MOTIONGENERATOR_MODE] = random.randint(0,3)
        c4d.EventAdd()
      
    if __name__=='__main__':
        main()
    

    You could also try to setDirty



  • On 03/02/2017 at 01:31, xxxxxxxx wrote:

    Originally posted by xxxxxxxx

    Maybe you should post a code because maybe I missunderstand waht you mean by type but here doing the following working correctly

    even in your code it is the same problem , check the pic :
    http://imgur.com/a/Ms0oi
    the cloner mode is set to grid array but the interface is for the object mode (the previous mode which I set manually )



  • On 03/02/2017 at 01:57, xxxxxxxx wrote:

    For me is working correctly when I press the button execute. Everything is updated correctly.

    Maybe you tried it in a thread context?
    And I guess dev will as kyou your c4d version (My last code working on the last R17/R18)



  • On 03/02/2017 at 02:08, xxxxxxxx wrote:

    Originally posted by xxxxxxxx

    For me is working correctly when I press the button execute. Everything is updated correctly.

    Maybe you tried it in a thread context?
    And I guess dev will as kyou your c4d version (My last code working on the last R17/R18)

    thanks for help , 
    the problem was weird , if my cloner don't have child then it doesn't update , but if I put an object under it it works fine .



  • On 03/02/2017 at 08:55, xxxxxxxx wrote:

    Hi guys,

    I'm sorry for chiming in so late. Are you really sure, it's solved on your end?
    I still can reproduce the initial problem even with children here. I'll investigate further on Monday.



  • On 03/02/2017 at 09:39, xxxxxxxx wrote:

    at the moment every thing is ok 
    check this code if it working in your end or not (it is running fine with me )

    import c4d
    from c4d import gui , utils 
      
    def main() :
        spline = doc.GetActiveObject() #you have to select and editable spline
        if spline == None or spline.GetType() !=5101:
            gui.MessageDialog("Select a spline to start !")
            return
        clo = c4d.BaseObject(1018544) # define cloner 
        cir = c4d.BaseObject(5179) # define n-side spline 
        cir.InsertUnder(clo)
        doc.InsertObject(clo) # create cloner
        clo[c4d.ID_MG_MOTIONGENERATOR_MODE]=0
        clo[c4d.MG_OBJECT_LINK] = spline
        clo[c4d.MG_SPLINE_MODE]=3
        c4d.EventAdd()
      
    if __name__=='__main__':
        main()
      
      
    
    


  • On 06/02/2017 at 06:53, xxxxxxxx wrote:

    Hi,

    you are lucky as you create the cloner and set the mode just once.
    If you were trying to implement a script, which for example toggles the mode between linear and radial, then you'd run into the same issue again (the AM interface not properly reflecting the mode change).
    The problem is, that after a change of this parameter a MSG_DESCRIPTION_CHECKUPDATE is needed. Unfortunately this message is currently not supported in our Python SDK, so it's currently not possible to reliably switch the mode parameter of a MoGraph cloner from Python.
    I have set this message type on the list of our Python todos.



  • On 06/02/2017 at 20:30, xxxxxxxx wrote:

    Thanks for your help :)


Log in to reply