How to reset all nested component scaling to 1 without shape changing?


#1

Is there a plugin to reset nested components scales to 1, whilst maintaining the shapes and positions of all polygons in the model? My models are complex and old so I don’t know what scaling was used for each component and, even if I did, it would take forever to correct manually.

This plays havoc with textures overlaid on the default texture buried within nested components. Deleting and reapplying all textures does not fix the problem so long as the scaling factors are other than 1.

Many thanks

Jeff


#2

I started writing some Ruby code for this maybe a year or so ago, not because I had a need for it but more as an experiment to see how it could be done. Never finished it though :confused:

If anyone is interested in writing the Ruby code for this, here are a few links that may be useful:

  • ThomThom’s Scale Group Definition extension
  • My “place axes” method
  • My reset scaling methods (the returned transformation, the original one and some matrix math can be used to get a transformation containing scaling alone)

The tricky part is how to handle components of the same definition that are scaled differently. The simplest code would rescale the same definition each time its found it in the model hierarchy, only to have the last occurrence sized as desired.

This can be overcome by traversing the model with a reference to the local coordinates, cache the scaling needed for each instance, group instances by what scaling they need, make them unique and then apply the scaling.


#3

Sounds challenging. Pity!. I’ll call it “scale relaxation”.

If SketchUp matures like the car industry, computer programming etc, and goes from model creation to model composition (eg Ikea kitchen design software) then scale relaxation it might be handy