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

    [Py] GetAllBits returns 0, for video posts

    Scheduled Pinned Locked Moved Bugs
    5 Posts 0 Posters 993 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 09/03/2012 at 09:57, xxxxxxxx wrote:

      User Information:
      Cinema 4D Version:    
      Platform:      
      Language(s) :

      ---------

      _<__<_t_<__<_t_<__<_t_>__px" width="100%"> Method Problem Replication
      c4d.BaseList2D.GetAllBits Always returns zero, Returns zero for Video-post objects. , but should return all bits (in a list? documentation isn't correct, either)

      |

      import c4d
      def main() :  
          ~~# print op.GetAllBits()~~  
          rdata = doc.GetFirstRenderData()  
          vpost = rdata.GetFirstVideoPost()  
          while vpost:  
              print vpost.GetAllBits()  
              vpost = vpost.GetNext()  
       ma\_<\_t\_>\_  
      
      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 09/03/2012 at 13:49, xxxxxxxx wrote:

        Can you double check my findings on this Nux?

        When selecting an object or tag from the manager using op.SetBit(c4d.BIT_ACTIVE) the Bit result is always zero.
        But if you physically select the object or tag first. The code returns the correct bits value.

        I tried it out in C++ & Python command data plugins. And this problem doesn't seem to happen.
        It seems to be a selection issue with the script manager.

        Can you confirm this?

        -ScottA

        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 09/03/2012 at 14:37, xxxxxxxx wrote:

          Ohhhhh.. oh.. I should've tested a bit more.. I actually tried it with Video-post objects and then mapped that onto everything else. Using SetBit() and calling GetAllBits() afterwards works fine for me (on objects and tags), and it doesn't for you?

          I'll correct the topics name.

          -Niklas

          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 09/03/2012 at 14:39, xxxxxxxx wrote:

            Get/SetBit() return ok here.
            GetAllBits() returns the int bits
            (I guess the sum of all bits in obj)

              
            import c4d   
              
            def main() :   
                objs = doc.GetObjects()   
                for o in objs:   
                    if o.GetBit(c4d.BIT_ACTIVE) is False:   
                        o.SetBit(c4d.BIT_ACTIVE)   
                    else:   
                        o.DelBit(c4d.BIT_ACTIVE)   
                    print o.GetBit(c4d.BIT_ACTIVE)   
                    print o.GetAllBits()   
              
                c4d.EventAdd()   
              
            if __name__=='__main__':   
                main()   
            

            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 09/03/2012 at 15:18, xxxxxxxx wrote:

              Originally posted by xxxxxxxx

              Using SetBit() and calling GetAllBits() afterwards works fine for me (on objects and tags), and it doesn't for you?

              Well...No.... It didn't.
              Here's the very simple code I was using:

              import c4d  
                
              def main() :  
                obj = doc.GetFirstObject() #The first object in the OM(a cube)  
                ft = obj.GetFirstTag()     #The first tag on the object  
                print obj.GetAllBits()     #Printed 0   
                print ft.GetAllBits()      #Printed 0  
                
                ft.SetBit(c4d.BIT_ACTIVE)  
                print ft.GetAllBits()      #Still printed 0  <---I don't know why  
                
                c4d.EventAdd()  
                
              if __name__=='__main__':  
                main()
              

              However.
              Now all of a sudden it does work for me.Confused
              I must have been in one of those annoying corrupted sessions that occasionally happens to me.

              SetBit(c4d.BIT_ACTIVE) has always been a bit flaky in my script manager code.
              But I sometimes get corrupted results from the script manager if I make too many errors while creating scripts with it.  And when that happens I have to close C4D and re open it to make it work properly again.

              It's a talent that I can't teach. I'm just born with it. 😂

              -ScottA

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