Maxon Developers Maxon Developers
    • Documentation
      • Cinema 4D Python API
      • Cinema 4D C++ API
      • Cineware API
      • ZBrush GoZ API
      • Code Examples on Github
    • Forum
    • Downloads
    • Support
      • Support Procedures
      • Registered Developer Program
      • Plugin IDs
      • Contact Us
    • Categories
      • Overview
      • News & Information
      • Cinema 4D SDK Support
      • Cineware SDK Support
      • ZBrush 4D SDK Support
      • Bugs
      • General Talk
    • Unread
    • Recent
    • Tags
    • Users
    • Login

    GvNode.OperatorSetData() INVALID IN R21 WHEN WORK ON POSEMORPH TAG' POSE STRENGTH

    Cinema 4D SDK
    r21
    2
    3
    558
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • J
      Jmelon
      last edited by Jmelon

      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()
      
      1 Reply Last reply Reply Quote 0
      • ManuelM
        Manuel
        last edited by

        hello,

        I can confirm the bug and I've opened a Bug entry.

        for now there's no workaround.

        Cheers,
        Manuel

        MAXON SDK Specialist

        MAXON Registered Developer

        J 1 Reply Last reply Reply Quote 0
        • J
          Jmelon @Manuel
          last edited by Jmelon

          @m_magalhaes thanks, looking forward to the next update 🙂

          1 Reply Last reply Reply Quote 0
          • First post
            Last post