Help parsing a Description resource
-
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"; }
-
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 **'**.
-
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
-
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.
-
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?
-
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
-
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
-
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