Why does "Symbols Parser" not work?
-
Why does "Symbols Parser" not work?
The API document is below.
https://developers.maxon.net/docs/py/2023_2/manuals/foundation/symbols.html?highlight=c4d_symbolsI changed "py-fresnel_r13.pyp" in official plugin examples.
Finally, I got the issues.
-
Hi @LingZA,
There is actually 2 issues, one in your side and one in our side.
The one from your side was that you passed the wrong folder to
parse_and_export_in_caller
. This function expect the folder containing the symbols.
So you need to adapt the .pyp file to something like:c4d_symbol_dir = os.path.join(os.path.dirname(__file__), "res") symbol_parser.parse_and_export_in_caller(c4d_symbol_dir) c4d.plugins.RegisterShaderPlugin(PLUGIN_ID, c4d.plugins.GeLoadString(IDS_PY_FRESNEL), 0, PyFresnel, "", 0)
Then there is a bug in the symbol_parser, which don't recognize correctly values from enum without a space between the symbol name and it's value. So you need to edit the header file from
IDS_PY_FRESNEL=10000,
toIDS_PY_FRESNEL = 10000,
The fix to support symbol name without space will be in the upcoming build.
Cheers,
Maxime. -
Great!!! It runs.
You are right. Thank you so much!
I think your answer is worth being written in the API document to make the workflow more clear.