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
    • Recent
    • Tags
    • Users
    • Login

    Acessing User data using Python

    Scheduled Pinned Locked Moved SDK Help
    11 Posts 0 Posters 754 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 01/01/2011 at 14:02, xxxxxxxx wrote:

      Hi,

      there is a much simpler way to access user datas:

      value1=op[c4d.ID_USERDATA, 1] #use 1 for the first user data
      value2=op[c4d.ID_USERDATA, 2] #use 2 for the second user data
      

      Btw, if your code returns:

      ((1, 133, 0), <c4d.BaseContainer object at 0x0000000016616308>)
      
      def main() :  
        UserData = op.GetUserDataContainer()  
        obj1 = UserData.__getitem__(0) #better use UserData[0]  
        obj1_pos = obj1.GetRelPos() #obj1 is (1,133,0) so its a tuple and GetRelPos is not a member of a tuple  
        print obj1_pos 
      

      Cheers, Sebastian

      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 01/01/2011 at 14:14, xxxxxxxx wrote:

        Sebastian, you rock. that worked like a charm!

        I had one more question if its not too much trouble. If my particular user data is a list of objects(a.k.a. InExcludeData list) how can i iterate through those object's position values safely, without crashing cinema. Thanks again!

        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 01/01/2011 at 14:28, xxxxxxxx wrote:

          here is the code that keeps crashing my rig.

          import c4d
          from c4d import documents, utils, internals
          #Welcome to the world of Python

          def LinkListObjs(i,L):                        #this function will eventually harvest the average position
            obj = L.ObjectFromIndex(doc, i) #matrix of the objects inside linkList
              return obj
            print str(obj)

          def main() :
              linkList = op[c4d.ID_USERDATA, 1]
            objNum = linkList.GetObjectCount()
            objCount = 0
            while(objCount != objNum+1) :    #check if object counter reached it's limit before proceeding
                if (objCount>objNum) :            
                      pass                                     # just in case object count has reached it's limit... again
                elif(objCount>=objNum) :         # otherwise, run the LinkListObjs() function describe above
                    obj= LinkListObjs(objCount, linkList)
                    objCount=objCount+1         # add one to object counter
            return c4d.BaseObject(c4d.Ocube)

          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 01/01/2011 at 17:34, xxxxxxxx wrote:

            Can you please upload a small test file where the crash is reproducable or can you send the bugreport to MAXON? Thanks!

            Cheers, Sebastian

            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 01/01/2011 at 18:42, xxxxxxxx wrote:

              Here is a link to download the scene file. It is pretty basic, built in c4d 12, but be careful if you turn on the python object. It crashes my system every time.

              http://www.4shared.com/file/S5IYt6nE/New_Python_Averager.html

              here is a link without a wait time. stupid wait times.

              http://www.sendspace.com/file/4l0aeb

              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 02/01/2011 at 07:10, xxxxxxxx wrote:

                Thanks for uploading. This line is responsible for

                while(linkList) :

                You run into an endless loop. You need to ensure that the loop
                will exit. Btw, you wrote your system crashed. C4D should
                freeze due to this line, but you should be able to quit it
                via the task manager.

                Cheers, Sebastian

                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 03/01/2011 at 09:48, xxxxxxxx wrote:

                  for sure. I'll try to figure it out. thanks again for the help!

                  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 03/01/2011 at 15:45, xxxxxxxx wrote:

                    got it working in case anyone cares!

                    import c4d
                    from c4d import documents, utils, internals
                    #Welcome to the world of Python

                    def main() :
                      pos_avg = c4d.Vector(0)
                      obj_pos = c4d.Vector(0)
                      doc = op.GetDocument()
                      linkList = op[c4d.ID_USERDATA, 1]
                      linkList_cnt = linkList.GetObjectCount()
                      for x in xrange(linkList_cnt) :
                          obj = linkList.ObjectFromIndex(doc, x)
                          obj_pos = obj.GetRelPos()
                          pos_avg = (obj_pos.__add__(pos_avg))
                      op.SetRelPos(pos_avg/linkList_cnt)

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

                      On 24/03/2015 at 01:22, xxxxxxxx wrote:

                      hello guys. i'm sorry if my english is bad.
                      i have some question.

                      i designed a roller coaster. i want to get position data of moving train. can u help me?
                      how to declare id object?

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

                        On 24/03/2015 at 07:28, xxxxxxxx wrote:

                        Hello and welcome,

                        if you have a new question that is not related to this thread's topic please open a new thread. Thanks.

                        Also, please share as much information as possible on your plugin and on what you want to achieve.

                        Best wishes,
                        Sebastian

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