Get MODATA_FLAGS data [SOLVED]



  • On 04/11/2015 at 10:00, xxxxxxxx wrote:

    Hello,

    How can I call MODATA_FLAGS data? I'm trying to check with python effector is the clone visible or not.

      
    def main() :  
      
      md = mo.GeGetMoData(op)  
      if md==None: return False  
       
      cnt = md.GetCount()  
      marr = md.GetArray(c4d.MODATA_MATRIX)  
      farr = md.GetArray(c4d.MODATA_FLAGS)  
        
      for i in xrange(cnt) :  
          if (farr(c4d.MOGENFLAG_CLONE_ON)) :  
              marr[i].Scale(1)  
    

    I get "TypeError: 'list' object is not callable"



  • On 04/11/2015 at 10:19, xxxxxxxx wrote:

      
    if farr[i] == 1:  
    

    😐



  • On 05/11/2015 at 01:22, xxxxxxxx wrote:

    Hello,

    MODATA_FLAGS stores a bit mask. You find an example on how to edit the bits in the "Push Apart Effector" example. You also find symbols for the bits in the documentation.

    A simple effector that hides every second clone could look like this:

      
    md = mo.GeGetMoData(op)  
    if md is None: return False  
      
    farr = md.GetArray(c4d.MODATA_FLAGS)  
    cnt = md.GetCount()  
      
    for i in xrange(0, cnt) :  
         if i % 2 == 1:  
                 farr[i] &= ~(c4d.MOGENFLAG_CLONE_ON)  
                   
    md.SetArray(c4d.MODATA_FLAGS, farr, True)  
    

    You find more information on bit manipulation in the Python Wiki.

    best wishes,
    Sebastian



  • On 13/11/2015 at 09:37, xxxxxxxx wrote:

    Hello aturtur,

    was your question answered?

    Best wishes,
    Sebastian



  • On 18/11/2015 at 11:43, xxxxxxxx wrote:

    Yes, thank you!


Log in to reply