Hi list,
I just stumbled over this very strange behaviour yesterday and can repro it from 6.01 even back to version 5.1.
Whenever I have multiple instances of a custom compiled operator of mine on the same object the names of the operator instances are not unique anymore.
This is not dependent on my code, I was able to repro using the standard cppSplatter op from the SDK examples.
Normally XSI takes care of holding the names unique within the whole software (e.g. the second push op gets renamed to push[1] ).
This is also true for scripted ops, but compiled operators applied via XSIFactory.CreateObject
() do not behave in this way.
This is quite a problem because you cannot access any operator instance but the first one via script/_expression_/....
Imagine, you select the second operator in the explorer, the script editor log the appropriate Command, you re-execute this logged command and the FIRST operator get selected because their names are identical!
Any ideas, can anybody confirm this or has a workaround up their sleeve?
Thanks in advance,
Martin
---REPRO STEPS -----------------------------------------------
1) From...
%XSI_ROOT%/XSISDK/examples/workgroup/addons/DeformOperators/Application/Plugins
... copy SplatterCpp.dll into your user Application/Plugins directory
2) Start XSI and get a Polygon sphere
3) Apply a push operator twice. Notice the unique names within the construction History
4) Now apply the SplatterOp twice via Deform->Splatter(C++)
You will see that the names within the Construction History are not unique.
-------------------------------------------------------------------------------------
--
Martin Chatterjee
[ Freelance Technical Director ]
[
http://www.chatterjee.de ]