In this example, I will be rescaling a window pane to fit into a larger window frame.
Note: this method will end with creating a new object via ‘Current State to Object’, so bare that in mind if the object you want to rescale relies on the use of deformers, as they will be baked in.
#1- Assuming the object you intend to scale has a well-oriented axis*, create a Plane primitive and make it a child of the object.
#2- Enable the appropriate snap settings, and snap the position the plane to one side of the object; this will be where you will be scaling from.
#3- Rotate the plane until either the ‘Height’ or ‘Width’ handle is facing the opposite side of the object (or the direction you intend to scale the object in), and snap the handle to the other end of the object.
If the object doesn’t have anything for the plane to snap to, you can place an empty null on each end of the object and use ‘Axis Snapping’ to snap to those. If you’re struggling to orient the plane to match the object, you can use the ‘Aim’ constraint to face the plane towards either of the empty nulls.
Once this is done, drag the plane out of the hierarchy, and place a ‘Mesh’ deformer in the object you wish to scale. At this point, I usually reduce the amount of height/width segments of the plane to ‘1’, in case it reduces the chance of any unexpected deformations.
In the ‘Mesh’ deformer settings: place the plane object in the ‘Cages’ field, open the ‘Advanced’ tab and crank up the ‘Accuracy’ to 100% and change the ‘External’ setting to ‘Surface (Area)’.
#5- Now, hit ‘Initialize’.
This should place a ‘Compositing’ tag and ‘Display’ tag on the plane; these can be deleted.
Now when you adjust either the Height or Width handles of the plane, it should stretch the object with the mesh deformer.
#6- Snap the appropriate handle of the plane to where you wish to scale to. If the object you’re scaling is causing issues with the snapping, feel free to toggle off it’s visibility until you’re finished with snapping the plane handle into position.
Once the object has been re-scaled as desired, right-click the object in the Objects Manager, and select ‘Current State to Object’.
#7- Now you should have a re-scaled copy of your original model; you can also disable the ‘Mesh’ deformer on your original model to revert it back to it’s initial state.