alright, I got to playing with the plugin for a bit. first of all, let me say that it worked brilliantly, never making a wrong decision (admittedly on rather simple test components with no more than a few dozen edges). I was also impressed with it's speed. even the comparisson of a selection of almost 4.000 copies of 6 equal but unique components took less than a third of a second.
I found out some odd behaviors though...
Once there are nested components in a model, there are two bugs I repeatedly encounter:
When nothing is selected (therefore the plugin is supposed to inspect all entities) the plugin only changes the components within other components (nested ones). Single components are being ignored.
If you do select them however, components will be replaced, no matter if they are single entities or nested within other components (even in 2nd or 3rd level). Note however, that it is always only the innermost components that are being inspected.
The report message, stating how many definitions have been replaced and how long that took, isnβt showing up.
As soon as I delete the nested components, single components are being changed again, as expected, even while not being selected. Also does the report message show up again.
I also observed, that components, containing other grouped objects (whether groups or components), will not be changed, even if the objects they contain are equal. This might be a goal for future versions of this plugin, don't you think?
all in all, Thomthom, this is a great start for a plugin that many people (especially those who import objects, e.g. trees) have been waiting for - one that will enable us to save huge ammounts of time and produce far cleaner models. well done, mate!