Accessing resource in ObjectData

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

On 18/10/2010 at 04:29, xxxxxxxx wrote:

User Information:
Cinema 4D Version:   R12 
Platform:   Windows  ; Mac  ;  Mac OSX  ; 
Language(s) :       PYTHON  ;

---------
Hello,

I'm trying to write an Object Plugin in Python and I have a problem. Here a sample code :

Test.py :

  
import os   
import c4d   
from c4d import plugins, documents, utils   
# be sure to use a unique ID obtained from www.plugincafe.com   
PLUGIN_ID = 1000006   
          
class Test(c4d.plugins.ObjectData) :   
          
    def GetVirtualObjects(self, op, hh) :   
        print c4d.BAR   
        print op.GetDataInstance().GetBool(1000)   
        return c4d.BaseObject(c4d.Ocube)   
  
if __name__ == "__main__":   
    bmp = c4d.bitmaps.BaseBitmap()   
    dir, file = os.path.split(__file__)   
    fn = os.path.join(dir, "res", "icon.tif")   
    bmp.InitWith(fn)   
    c4d.plugins.RegisterObjectPlugin(id = PLUGIN_ID, str = "Test", g = Test,   
                                    description = "foo", info = c4d.OBJECT_GENERATOR | c4d.OBJECT_INPUT, icon = bmp)   

foo.h

  
#ifndef _FOO_H_   
#define _FOO_H_   
  
enum   
{   
     BAR                                   = 1000, //     BOOL   
        
     DUMMY_   
};   
  
#endif   

foo.res

  
CONTAINER foo   
{   
     NAME foo;   
     INCLUDE Obase;   
  
     GROUP ID_OBJECTPROPERTIES   
     {   
        BOOL BAR {};   
     }   
}   

I'm trying to get the BAR boolean value.
With the GetDataInstance().GetBool that works, but the line "print c4d.BAR" generate this error :
AttributeError: 'module' object has no attribute 'BAR'

I don't understand why, in a plugin tag i access resource with the same way and it worked.

Here the project : http://www.xsyann.com/plugincafe/Test.zip

Some help is welcome... :-)

Thank you,
Greetings,

Yann.

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

On 18/10/2010 at 07:05, xxxxxxxx wrote:

Hi Yann,

C4D adds the resources of a registered plugin to the c4d main module and writes them to "userfolder/prefs/coffeesymbolcache". If you change your resource files, just remove this file and restart C4D. I hope this helps.

Cheers, Sebastian

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

On 18/10/2010 at 07:19, xxxxxxxx wrote:

Originally posted by xxxxxxxx

I hope this helps.

This solves the problem.
Thank you very much Sebastian.
Greetings,
Yann