Hi,
GvNode.OperatorSetData(type, data, mode) invalid in R21 when attempt to add pose strength port on posemorph tag object node. The following script shows this problem. it's the same in C++, and mouse drag also can't add port too( I guess it also uses this API ).
import c4d
from c4d import gui
#project setting:
#1: create a baseobject, add posemorph tag, xpresso tag
#2: choose Points Mode in posemorph tag and switch to Animation Mode, select xpresso tag
#3: run script
def main():
doc = c4d.documents.GetActiveDocument()
tag = doc.GetActiveTag()
if not tag.IsInstanceOf(c4d.Texpresso):
return
master = tag.GetNodeMaster()
objectNode = master.CreateNode(master.GetRoot(), c4d.ID_OPERATOR_OBJECT)
if objectNode is None:
return
posemorphTag = tag.GetNext()
if posemorphTag is None or not posemorphTag.IsInstanceOf(c4d.Tposemorph):
return
if not objectNode.OperatorSetData(c4d.GV_ATOM, posemorphTag, c4d.GV_OP_DROP_IN_BODY):
return
descID = c4d.DescID(c4d.DescLevel(4000),c4d.DescLevel(1101)) # frist pose port DescID
data = {"did":descID, "arr":[posemorphTag]}
if not objectNode.OperatorSetData(c4d.GV_DESCID, data, c4d.GV_OP_DROP_IN_INDOCK):
print("Error")
return
c4d.EventAdd()
if __name__=='__main__':
main()