try/throw/catch non existent operators



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

    On 28/09/2007 at 09:28, xxxxxxxx wrote:

    some code? You could define the operator yourself to overcome the syntax error.

    Did you try #define OPERATOR or using an enum? (not sure though if COFFEE supports the define preprocessor derivative).



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

    On 28/09/2007 at 12:37, xxxxxxxx wrote:

    Hi, thanks.
    The core of the code that works (if the 3rd party plugin is installed is as follows:

    > _
    > GetFirstTag(obj,type)
    > {
    > var tag = obj- >GetFirstTag();
    > while (tag){
    > if (tag->GetType() == type) return tag;
    > tag = tag->GetNext();
    > }
    > return NULL;
    > }
    >
    > main(doc,op)
    > {
    > var thing;
    > try
    > {
    > var PluginTag = GetFirstTag(op,1020898);
    > thing = PluginTag#VRAYPHYSICALCAMERATAG_ZOOM;
    > //if I mispell the operator or the plugin is not installed
    > /// I get a syntax error
    > }
    >
    > catch(ExLastException)
    > {
    > thing = 1;
    > }
    > }
    > _

    Looking in the SDK for COFFEE (R9.5 still) enum is there but:
    "Since C.O.F.F.E.E. has no preprocessor, only simple values like numbers or strings can be directly assigned to global variables."

    I've started to try using strings ("op#THAT_PARAMETER") and variations of tostring to "fool" the "try" function.

    I'm basically pretty lost atm. As soon as I enter the operator "#" anywhere I get the syntax error.

    Cheers
    Lennart



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

    On 29/09/2007 at 02:09, xxxxxxxx wrote:

    yep, that´s fine. Go to the vray camera tag resource folder and check out the ID of VRAYPHYSICALCAMERATAG_ZOOM (or just take the complete list of IDs) and put them into your code!

    so like:

    enum
    {
        [...]
        VRAYPHYSICALCAMERATAG_ZOOM,
        [...]
    };

    main(doc,op)
    {
    [...]

    So you have the ID always defined. This SHOULD work, however that object#PARAMETER operations I never tried so I am not sure. If this won´t work I don´t know.



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

    On 29/09/2007 at 02:15, xxxxxxxx wrote:

    ok, other way. I just tried it, and it doesn´t work here in a COFFEE expression.

    Anyway, why don´t you simply get the basecontainer of the tag and directly get the values out of the container? Then you don´t have the # hassle.

    var t = op->GetContainer();
    var f = t->GetFloat(VRAYPHYSICALCAMERATAG_ZOOM);

    Then you also can use the enum workaround when the tag is not available. :)



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

    On 29/09/2007 at 11:39, xxxxxxxx wrote:

    Katachi, thanks for your time.
    I've sat today trying to get my head around using enum as well as using constant var (global before MyPluGin:: Execute(doc,op) ).

    It is a little bit of mysterious... as I wrote earlier , as soon as I type:
    VRAYPHYSICALCAMERA_ZOOM, -anywhere-, I get a Syntax error.
    (So it is not the "#" sign that is the culprit as I wrote earlier, now when I use the BaseContaner method in stead of #ID method)

    And even more strange, if I uninstall the Vray Plugin by taking it out of the Plugin Folder as well as moving out its dylib files in the Cinema Package Contents (RightClick the Cinema app) the VRAYPHYSICALCAMERA_ZOOM id is still "valid". (It gets orange if I type it in a regular COFFEE Tag).

    There seems to be some differenses in R9 and R10 as well, so I'll have to concentrate on R10 first.

    I use the BaseContainer method now but the same problem is there since I can't use the phrase VRAYPHYSICALCAMERA_ZOOM.
    "Fooling" the system by using:

    var vzoom = "VRAYPHYSICALCAMERA_ZOOM" ;

    as a global var and then use it by bc->GetFloat(tostring(vzoom));
    is not that successfull either.

    I realize I haven't the chops using enum yet and maybe it can help.
    I put:

    enum{VRAYPHYSICALCAMERA_ZOOM}

    as a global but then got a value of "0", which must be natural I'd think since it is the first and only value there.

    I'm pretty confused right now, but if anyone can shed some light or more pointers I'd be greatfull.

    Cheers
    Lennart



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

    On 29/09/2007 at 11:46, xxxxxxxx wrote:

    You are using COFFEE? Try what happens if you delete the "coffeesymbolcache" file in Cinema's prefs folder.

    cheers,
    Matthias



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

    On 29/09/2007 at 12:05, xxxxxxxx wrote:

    Yup, COFFEE, I tried that and yes now it is undefined!
    Great, that's one down:)
    Now I can at least make tryouts with the plugin "truly" un-installed.

    Any other ideas are more than welcome (well, needed actually :) )

    Thanks.
    Lennart



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

    On 29/09/2007 at 15:27, xxxxxxxx wrote:

    My knowledge and brain capacity have reached their limits :)
    I'm getting into a Catch22 trying with and without the plugin installed.
    I'll have to cool down and use SetDriver->SetDriven Xpresso meanwhile to connect the functions between mine and the 3rd partyplugin.

    Cheers
    Lennart



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

    On 30/09/2007 at 03:22, xxxxxxxx wrote:

    I can only repeat to go into the vray camera tag resource file and get the ids! The IDs are numbers not Strings!

    so it´s NOT
    var vzoom = "VRAYPHYSICALCAMERA_ZOOM" ;

    But rather defined as:

    enum
    {
    VRAYPHYSICALCAMERA_ZOOM = 1000,
    [...]
    }

    1000 is NOT the Id of it! You must look up the real ID in the tag .h resource file!

    Hope it´s clear now.



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

    On 30/09/2007 at 06:48, xxxxxxxx wrote:

    Thank you very much, yes it clear and is working fine.
    I've also learned that its better to sleep now and then to clear the mind..

    Thing is , I did try that way yesterday, only to type the wrong ID and thus thought I was on the wrong track...
    Thanks again.

    Cheers
    Lennart


Log in to reply