Your browser does not seem to support JavaScript. As a result, your viewing experience will be diminished, and you have been placed in read-only mode.
Please download a browser that supports JavaScript, or enable it if it's disabled (i.e. NoScript).
Hello! After dragging to console there is no way to get single value from vector UserData parameter.
>>> Cube[c4d.ID_USERDATA,2,c4d.VECTOR_Z] Vector(0, 0, 0) >>> Cube[c4d.ID_BASEOBJECT_REL_POSITION,c4d.VECTOR_X] 52.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!
Hello @mikeudin,
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:
c4d.Vector
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)
Cheers, Ferdinand