Changing Math node input value Xpresso

On 23/11/2017 at 06:54, xxxxxxxx wrote:

Hi everyone,

I'm trying to change a math node value and unfortunately can't do it with:

math[0][2000, 1001] = 1.0

it gives the TypeError: __setitem__ got unexpected type 'float'.
The error appears with any assigned value type.

Interestingly enough if I change the value manually first and than run the line it works fine.
Don't understand what I'm missing.

Thank you very much in advance! 🙂

Andre

On 23/11/2017 at 07:14, xxxxxxxx wrote:

import c4d
  
def main() :
    nodeMaster = doc.GetActiveTag().GetNodeMaster()
    node = nodeMaster.GetRoot().GetDown()
    
    # GET
    lv1 = c4d.DescLevel(2000, c4d.DTYPE_SUBCONTAINER, 0)
    lv2 = c4d.DescLevel(1000, c4d.DTYPE_REAL, 0) # or DTYPE_DYNAMIC that will automaticly adapt
  
    print node.GetParameter(c4d.DescID(lv1, lv2), c4d.DESCFLAGS_GET_0)
    
    # SET
    lv1 = c4d.DescLevel(2000, c4d.DTYPE_SUBCONTAINER, 0)
    lv2 = c4d.DescLevel(1000, c4d.DTYPE_DYNAMIC, 0)
  
    node.SetParameter(c4d.DescID(lv1, lv2), 50.0, c4d.DESCFLAGS_SET_0)
    c4d.EventAdd()
  
if __name__=='__main__':
    main()
  

As you may know or not, [] operators are just a python wrapper around Get/SetParameter, and sometime it fails. So you need to build it yourself

On 23/11/2017 at 07:34, xxxxxxxx wrote:

Hi Graphos,

It works great and understand better the containers.

Thank you very much once again! You are a live saver and a technical wizard 😄