Maxon Developers Maxon Developers
    • Documentation
      • Cinema 4D Python API
      • Cinema 4D C++ API
      • Cineware API
      • ZBrush Python 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

    Why use InitAttr ?

    Scheduled Pinned Locked Moved PYTHON Development
    5 Posts 0 Posters 549 Views
    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.
    • H Offline
      Helper
      last edited by

      THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

      On 31/07/2012 at 18:35, xxxxxxxx wrote:

      To initialize the elements of the description of my tag, should I use something like:

      def Init(self,node) :
           data = node.GetDataInstance()
           data.SetData(SD_ON,True)

      or something like:
      [COLOR=blue]
      def Init(self, node) :
          self.InitAttr(host=node, type=bool, desc=[SD_ON])
          node[SD_ON] = True

      What is the difference?

      1 Reply Last reply Reply Quote 0
      • H Offline
        Helper
        last edited by

        THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

        On 31/07/2012 at 19:50, xxxxxxxx wrote:

        You only need self.InitAttr() for initializing GUI elements,
        then setting the values to the GUI's.
        Regular values you set directly using your IDs.

        Such as:

          
             def Init(self, pconnector) :   
                  pconnector[DIRTYSUM]               = c4d.BaseContainer()   
                  # Source Settings   
                  pconnector[c4d.PC_SHIDE]          = True   
                  pconnector[c4d.PC_MODE_ALL]          = 0   
                  pconnector[c4d.PC_AMOUNT]          = 1.0   
                  pconnector[c4d.PC_CONNECT]          = 0   
                  # Point Settings   
                  pconnector[c4d.PC_STARTPOINT]            = 1.0   
                  pconnector[c4d.PC_ENDPOINT]             = 100.0   
                  pconnector[c4d.PC_OFFSETPOINT]           = 0.0   
                  pconnector[c4d.PC_DIRECTION]             = 0   
                  pconnector[c4d.PC_POINTSTEP]             = 1.0   
                  pconnector[c4d.PC_CONNECTSTEP]           = 1.0   
                  pconnector[c4d.PC_MAXPOINTDIF]           = 1000.0   
                  pconnector[c4d.PC_RANDOM]          = 0.0   
                  # Spline Settings   
                  pconnector[c4d.PC_MAKESPLINE]          = True   
                  pconnector[c4d.PC_SPLINE_MIN]          = 0.0   
                  pconnector[c4d.PC_SPLINE_MAX]          = 1000.0   
                  pconnector[c4d.PC_SEGMENT_START]     = 0.0   
                  pconnector[c4d.PC_SEGMENT_END]          = 1.0   
                  pconnector[c4d.PC_DISTANCE_GROW]     = 0   
                  pconnector[c4d.PC_DISTANCE_SENSE]     = 0.8   
                  pconnector[c4d.PC_SPLINE_SUB]          = 0   
                  #TP life   
                  self.InitAttr(pconnector, c4d.SplineData, [c4d.PC_TPCURVE])   
                  icurve = pconnector[c4d.PC_TPCURVE]   
                  icurve.SetRange(0.0, 1.0, 0.01, 0.0, 1.0, 0.01)   
                  icurve.InsertKnot(1,1,0)   
                  icurve.InsertKnot(0,1,0)   
                  pconnector[c4d.PC_TPCURVE] = icurve   
                  # General   
                  pconnector[c4d.PC_SPACE]          = 0   
                  pconnector[c4d.PC_CACHE]          = False   
                  pconnector[c4d.PC_INFO]               = 'Ready'   
                  #etc   
                  return True   
        

        Cheers
        Lennart

        1 Reply Last reply Reply Quote 0
        • H Offline
          Helper
          last edited by

          THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

          On 31/07/2012 at 20:00, xxxxxxxx wrote:

          I have been initializing the values of the GUI elements of the description in the Init method, using:

          def Init(self,node) :
               data = node.GetDataInstance()
               data.SetData(SD_ON,True)
               data.SetData(SD_USE_CHILDREN,False)
               data.SetData(SD_NO_INTERPOLATE,False)
               data.SetData(SD_INSTANCES,False)
               data.SetData(SD_DRAW_SPHERES,True)
               return True

          Is this incorrect?

          1 Reply Last reply Reply Quote 0
          • H Offline
            Helper
            last edited by

            THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

            On 31/07/2012 at 20:17, xxxxxxxx wrote:

            It's incorrect as we are not recommended to use the basecontainer (.GetDataInstance()).
            What I mean by GUI elements is things like the Spline GUI, it is just the
            "background" that holds no values. It needs to get the values set as you can see
            in my example before.

            Your init should/could look:

              
            def Init(self,node) :   
                 node[c4d.SD_ON] = True   
                 node[c4d.SD_USE_CHILDREN] = False   
                 node[c4d.SD_NO_INTERPOLATE] = False   
                 node[c4d.SD_INSTANCES] = False   
                 node[c4d.SD_DRAW_SPHERES] = True   
                 return True   
            

            ..given the ID's are in your res/str/.h files

            Cheers
            Lennart

            1 Reply Last reply Reply Quote 0
            • H Offline
              Helper
              last edited by

              THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

              On 31/07/2012 at 20:18, xxxxxxxx wrote:

              Much simpler 🙂
              Thank you, Lennart.

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