[Plugin] Component Comparison
-
@krisidious said:
any ideas on what I'm doing wrong?
Maybe nothing, this is very early experimental code.
@krisidious said:
if I understand this plugin correctly it should replace each of the components with one instance? and how does it know which instance I want it to use?
It doesn't, it just picks one and compares it.
Note that it takes all the components/groups you select and compares it against the whole of the model.Also beware that it's not working well with sub-components. Your model appear to be a complex one with many sub-components.
If you want you can send me the model and I can have a look at it. I'd be very useful to have more sample models to test against.
-
ok I sent you the model.
what's more I cut the groups and raised them to the top level of the model and ran the script again and it replaced 9 units... although it made 2 distinct groups of components and not the 1 it should have. they were the same so I'm not sure why.
-
Hi Thom:
First let me thank you for this and all awesome plugins you make.
I got today this huge and monstrous autocad 3d file that I need to convert to sketchup in order to do my job. I was kind of depressed after i imported it because it has about 500.000 faces, most of them autocad components imported as groups. So I went into sketchucation and voila! you just did a plugin for that.I wanted to share my experience so it may help in the development of the plugin.
Since the script just went on forever with the complete model, I thought to give it a hand and use a wall made of a exactly same block repeated in multiple positions.
The plugin was quite successful as it recognized 112 of the 122 component instances. But it did it as two separate entities.
(applause!!!)
But now I have a question: In the entity info it now says that there are X nunmbers of copies of the same group. I want to turn that into X copies of the same component for easy editing and memory optimization. Is that posible? Do you think that this file might be relevant to you?
Again thank you for this plugin. It will eventually save millions of lives.
Diego
PD: Wouldnt it be nice if a plug in had a way of saying: "-Hey im not dead, I have done X numbers of operations of a total of X"?
PD2: I succeeded. I just needed to use your old plugin groups to components. It reduced the 122 to 3 o 4 copies of the same component. I will keep experimenting.
PD3: I funny thing is that when i try to edit any of those components (or groups) they dissapear until i click elsewhere and return to the model. Does anyone know why this happen?
-
@diegog321 said:
PD: Wouldnt it be nice if a plug in had a way of saying: "-Hey im not dead, I have done X numbers of operations of a total of X"?
Yes, that can be done. But you still have the problem where SU tend to freeze up the UI - so you end up not getting any feedback. That's in particular with long processing.
@diegog321 said:
PD2: I succeeded. I just needed to use your old plugin groups to components. It reduced the 122 to 3 o 4 copies of the same component. I will keep experimenting.
Yea, I should probably have an option where it converted groups into components automatically. (There is my Selection Toys that let you convert Groups that have mulitple instances into components.)
You got different results if the walls where groups or components?@diegog321 said:
PD3: I funny thing is that when i try to edit any of those components (or groups) they dissapear until i click elsewhere and return to the model. Does anyone know why this happen?
Sounds like you have Hide Rest of Model turned on. You find that under View > Component Edit.
(Oh wait - does the group/component you open up also disappear??)Would you mind sending me a sample model with the wall segments? (Before you ran the operation?) I'd help me to have more test data to run.
-
Hi thom:
Here is the file. But beware because it comes from the terrible realm of autocad 3D.
I also found a funny bug. If I dont select anything then it does a relative good job ( it replaces 79/125 with two or three copied groups).
If I select all the "walls" and run the script then it is much more effective ( replacing 113/125 again with tow or three copies). But if you look closely at the second image, a few blocks have moved far away to the other side of the model.
I have successfully converted those group into components before or after running the script with the help of your others plug ins.
And finally I dont have activated "hide the rest of the model". It is like you said, everything dissapears. I heard somewhere that it was because the origin of the block is extremely far away. What do you think?
Hope the info is useful
Diego
![And here is after while selecting every "wall" before running the script. It is like a kids game where you find the differences](/uploads/imported_attachments/1RG2_similarobject2.2.gif "And here is after while selecting every "wall" before running the script. It is like a kids game where you find the differences")
-
@diegog321 said:
I also found a funny bug. If I dont select anything then it does a relative good job ( it replaces 79/125 with two or three copied groups).
what is the bug?
By design, if you haven't got anything selected the plugin analyse the whole model.
If you have some groups/components selectes it compare it's definitions against the rest of the model. -
Hi thom what I tried to say is that the script had a different level of success in finding and replacing similar blocks while manually selecting all the objects or just running the script with nothing selected.
Also it if you look carefully to the second image I posted before you will see that a few walls have moved far away from the model. I didnt touch anything I just runned the script.
If you ever more examples like this that come from autocad you just let me know. I got millions! with increasing levels of difficulty.
Or if you need help from an non ruby programer.
Diego
PD: Also do you or anyone knows why the model dissapear completely (including the component) when I try to edit a block or component? I have deactivated the "hide rest of the model" option. Thanks
-
Thom,
This is a very useful script. I'm trying to understand what the tolerance setting does. I have a 3D tree with leaves (a simple square faces with png texture) that are all components. With a tolerance of 0.01 I was able to reduce the number of instances from over 3500 to 905. I'd like to be run the script again to further simplify the model, but I continue to get 0 changes. The tolerance settings don't seem to have any impact, even though the faces of the leaves vary from 36 sq. in. to 80 sq. in. Any ideas? Or is this something that will have to fixed in the next update? (I hope there is an update coming)
Wyatt -
The tolerance is more of a debug thing at the moment. During my testing I had some cases where SU's own tolerance of 1/1000" was too strict.
These leaves: are you sure they really are all geometrical identical? The plugin does not take into account scaling, for instance, a square of 20x30 and one of 20x40 will not be made into one component where one is scaled.
-
Then no, they are not identical. The length and width of each component varies. The ratio of l to w is the same (hence the square). I guess I thought the tolerance setting could be used to adjust how the similar components were replaced. I can use the component browser and replace components manually to simplify the model, but it would be great if there were a way to automate that process.
[Edit] Do your Selection Toys select by component area? That would definitely help if the tolerance method isn't possible.
-
I tihnk what you are looking for is a good idea Wyatt, but its definitely different than what the original scope of this plugin was. This one is supposed to find virtually identical components and make them all use the same definition.
But a replacer that just looked for fairly similar components could be interesting too. Maybe it fits within the scope of this plugin even. I can see where it does have some usefulness in the scenario you outlined.
-
I don't know if it fits Thom's original idea for this plugin or not; I'll leave that for him to decide. But what I would like to have is a tool that would, based on a selection set, calculate the range of area values, ask me how many intervals I'd like to set, and then replace all the components in a given range with the resized component. So if I had leaves that ranged from 30 to 80 square inches, I could set 5 intervals and it would resize the components based on that 10 square inch interval, so a component with an area of 42, would get "rounded down" to 40. There might be other ways to do the same thing; this is just what I was hoping I could get CC to do for me. Even if I could select components by those area intervals, it would be a huge help.
-
Making tree leaves into components appear to be a often requested feature, so maybe a plugin designed specifically for this. One that finds all rectangle faces in the selection and converts them into one component with scaled instances.
That could work. For Component Comparison it'd not be so easy as it's already doing some heavy work comparing complex objects, but if one limits the scope to simple primitive... -
Thom, that sounds like it would work great, and cut several steps from my current workflow.
-
excuse me,
this plugin can´t compare similar objects with DIFERENT scale ¿is there a plugin that make that?
thanks -
Hi Thomthom,
This plugin is great!
Very helpful when importing lame models from Autocad and 3DSMax.Just a little note.
As I was searching for this thread to see if any changes have been made, specifically wondering if detecting scaled objects will be possible (like the post above this one) - I was having a hard time finding this thread in the forums. Partly because the search engine here isn't great, but also because the name of the thread and the name of the plugin files and commands are different. In sketchup it's "replace similar objects" and here it's called Component Comparison... -
I've had no time at all to work on this. There's much more that needs doing before even attempting to detect scaled components.
-
Thanks thomthom really cool time saver.
How did you get on with rendering in 3ds max?
Matt
-
Why plugin does not work. The example in the link:
Thank you for the clarification.
Regards. -
hm... hard to tell without the model. But this plugin is just an experiment, not a final product.
One thing I did notice in your video was that when you exploded one of the faces turned white. That seemed to indicate some geometry merging happening. If that is the case and the objects doesn't have the same number of faces and vertices it won't be able to find a match.
Advertisement