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!