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

    Help parsing a Description resource

    Scheduled Pinned Locked Moved PYTHON Development
    8 Posts 0 Posters 881 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 21/07/2011 at 15:14, xxxxxxxx wrote:

      So I'm trying to get a simple Object Plugin to work and I've got it so it's almost there but I keep getting an error when I launch the plugin in C4D.  The plug does work but I can't figure out why it keeps throwing this error when it is launched:

      Thanks for taking a look.

      The directory structure is:

      Othreadconnect/
        ThreadConnect.pyp
        res/
          c4d_symbols.h
          description/
            Othreadconnect.h
            Othreadconnect.res
          strings_us/
            dialogs/
              Othreadconnect.str
          othreadconnect.tif
      

      This is the code:

      ThreadConnect_b02.pyp

      #!/usr/bin/env python
      # encoding: utf-8
        
      """
      ThreadConnect_b02.pyp
        
      """
        
      import  sys
      import  os
      import  math
      import  c4d
      from    c4d                     import plugins, utils, bitmaps
        
      Plugin_ID=1000005
        
        
      class ThreadConnect(plugins.ObjectData) :
          '''Thread Connect Generator'''
          
          def __init__(self) :
              self.SetOptimizeCache(True)
          
          def Init(self, op) :
              self.InitAttr(op, int, [10001])
        
              op[10001]= 8
              return True
          
        
      if __name__ == '__main__':
          dir, file = os.path.split(__file__)
          bmp = bitmaps.BaseBitmap()
          fn = os.path.join(dir, "res", "othreadconnect.tif")
          bmp.InitWith(fn)
          plugins.RegisterObjectPlugin(id = Plugin_ID, 
                                      str = "Thread Connect Beta .02", 
                                      g = ThreadConnect, 
                                      description = "Othreadconnect",
                                      info = c4d.OBJECT_GENERATOR, 
                                      icon = bmp)
      

      Othreadconnect.res

      CONTAINER Othreadconnect
      {
          NAME    Othreadconnect;
          INCLUDE Obase;
        
          GROUP       ID_OBJECTPROPERTIES
          {
              LONG    POINTS
              {
                  MIN 1;
              }
          }
      }
        
      

      Othreadconnect.h

      #ifndef _Othreadconnect_
      #define _Othreadconnect_
        
      enum
      {
          POINTS          = 10001
      };
        
      #endif
      

      c4d_symbols.h

      enum
      {
          // End of symbol definition
          _DUMMY_ELEMENT_
      };
      

      Othreadconnect.str

      DIALOGSTRINGS Othreadconnect
      {
        Othreadconnect   "Thread Connect";
        
        POINTS   "Number of Points";
      }
      
      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 22/07/2011 at 02:04, xxxxxxxx wrote:

        You may want to check out Description Editor.

        Originally posted by xxxxxxxx

            strings_us/  
              _dialogs_ /  
                Othreadconnect.str  
            othreadconnect.tif
        
        in strings_us, the folder must be called 'description' not **'** dialogs **'**.  
        
        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 22/07/2011 at 07:42, xxxxxxxx wrote:

          In addition to what Nux said.
          The first line in your .str file should also read like this:  STRINGTABLE Othreadconnect

          -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 22/07/2011 at 08:27, xxxxxxxx wrote:

            Actually that dir list was a typo, it was actually a 'description' folder in the dir structure not dialogs.  But I swapped out DIALOGSTRINGS for STRINGTABLE and still got the same error.  I'm going to try to use Nux's plugin.  Which looks pretty amazing, btw.  Thanks for your hard work, Nux and your help, Scott.

            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 22/07/2011 at 09:16, xxxxxxxx wrote:

              Very cool, Nux.  I just tried it out and it worked great.

              One thing though, when I put together this description I had to manually go into the Othreadconnect.h file and assign this parameter an ID value.  Which I then had to add into my .pyp code.  Is this normal or am I doing something wrong in my code implementation?

              Again, many thanks!

              Edit :  whoops, thought I got it working by enumerating at the top of the .pyp file but I was wrong.  Any idea on what I'm doing wrong wrt assigning parameters ID values?

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

                Originally posted by xxxxxxxx

                Actually that dir list was a typo, it was actually a 'description' folder in the dir structure not dialogs.  But I swapped out DIALOGSTRINGS for STRINGTABLE and still got the same error.

                -I copied your code.
                -Used "description" in the strings_us folder.
                -Replaced "DIALOGSTRINGS" with "STRINGTABLE"
                And it runs perfectly with no errors.

                It sounds like maybe you got caught by the old "coffeesymbolcache" problem.
                If you don't delete that cache file every time you edit the various resource files. Your changes won't take effect.

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

                  Cool good to know, any idea where that file might be?  Search doesn't seem to find it anywhere, neither does it work if I reveal all hidden files.  I'm on OS X, btw.  thanks

                  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 22/07/2011 at 12:59, xxxxxxxx wrote:

                    I'm not familiar with OSX. So I can't say for sure where it is on your system.
                    On Windows it's located inside the prefs folder.  And that "prefs" folder is found under the folder that C4D targets in the preferences settings.

                    Nux posted a python file a while back that will automatically delete that cache for you when C4D starts. But you'll have to edit the path to suit your specific system.
                    It's very handy.

                    IMHO. This coffeecache thing should be a sticky thread here. With big bold letters.
                    It's something everyone new gets caught on. And it's not obvious.

                    -ScottA

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