After dragging to console there is no way to get single value from vector UserData parameter.
Vector(0, 0, 0)
And no way to set this single value:
>>> Cube[c4d.ID_USERDATA,2,c4d.VECTOR_Z] = 12
Traceback (most recent call last):
File "console", line 1, in <module>
TypeError: __setitem__ expected c4d.Vector, not int
There is a soution without creating a new c4d.Vector() variable? I need to get dragged to plugin dialog c4d.DRAGTYPE_DESCID from one single vector UserData parameter.
Thank you for reaching out to us. Vectors represented by the type c4d.Vector are immutable in Cinema 4D, so one intentionally cannot change one of the components of a vector after it has been instantiated (matrices are not immutable over their vector components on the other hand). To achieve what you want to do, you must write:
old = Cube[c4d.ID_USERDATA, 2]
Cube[c4d.ID_USERDATA, 2] = c4d.Vector(old.x, old.y, 12)
The following would also be possible, but it is not an improvement IMHO:
Cube[c4d.ID_USERDATA, 2] = c4d.Vector(Cube[c4d.ID_USERDATA, 2].x, Cube[c4d.ID_USERDATA, 2].y, 12)