I am simply trying to scale many individual objects using different factors. After I finish scaling each object (on each layer), and turn on all objects again, I found that there is a space between them.I was thinking that if I scale all of them , they would look as a group of objects not scattering objects. I think the problem I am facing is when I scale objects (down scaling), more space is creating (very obvious). I am trying to check if there is a way to scale the distance between objects as well as using the scaling factor for each object.
You can scale a group of objects globally or locally.
To scale globally, you would use the normal Scale command and choose an origin for the scale, all of the objects will be scaled by the desired factor but the distances of the objects from the scale center will be scaled as well. So scaling down for example will result in smaller objects as well as smaller between object distances.
To scale locally you can use BoxEdit and scale objects individually about their centers; the center to center distance between objects is not changed. If you scale objects down, you will actually increase the space between the outer bounds of the objects themselves, which is what you are seeing.
To scale the center to center distance between objects without changing the objects themselves, I think you will need a script like the one below. It does not check for possible interferences between objects.
CompressExpandSpace.py (1.7 KB)
HTH, --Mitch
Hi Rasha - TestScalePosition
in V5 will scale the spacing but not the objects (ScalePostions
, in V6/WIP) which might help, though it is not quite the same- another thought is to use Distribute after your scaling operation to reset the spacing - assuming it is even. V6/WIP has Distribute
and there is a script here for V5: https://wiki.mcneel.com/people/pascalgolay
-Pascal
Neat question… just to add another thought, this sounds like a job for Grasshopper. Here’s an example moving and scaling a cylinder…