deformer don't work when called via code



  • On 04/09/2016 at 23:15, xxxxxxxx wrote:

    hello , 
    when I call the correction deformer via this code

     corr = c4d.BaseObject(1024542) #define the correction deformer
     doc.InsertObject(corr)
     c4d.EventAdd() 
    

    the new object don't work , when I use the CallCommand every thing work as expected .
    I have tried the code above with the ben deformer and it worked as expected

    any idea why this is happening ?



  • On 05/09/2016 at 05:45, xxxxxxxx wrote:

    Hi,

    some objects need some work done on initialization. Therefor MSG_MENUPREPARE is used. In the new C++ SDK Docs, there are a few more words on it in the manual about General Plugin Functionality.

    For example, the Correction Deformer needs to create a Tpolygon and a Tpoint tag in there in order to be fully functional.

    So to make it work your code looks like this:

    corr = c4d.BaseObject(1024542) #define the correction deformer
    corr.Message(c4d.MSG_MENUPREPARE)
    doc.InsertObject(corr)
    c4d.EventAdd() 
    

    If you have the possibility to compile the C++ SDK examples, there's a nice little tool in there. The "Active Object Dialog". With this you can take  a look into the scene. Great for understanding object caches. And in your case, you would see the two hidden tags on the Correction Deformer, which is a good hint, that the object probably needs MSG_MENUPREPARE.



  • On 05/09/2016 at 08:09, xxxxxxxx wrote:

    thanks for reply , 
    didn't know there is a relationship between python and c++ , I will check the tool that you have mentioned :)
    thanks again for the help


Log in to reply