Apply Non-uniform Scale To Geometry

Hi community,

Has anyone had any success on scaling solid or face non-uniformly?

Pick a face => scale from upper right corner => a point which is not on the diagonal. Well…way off.

My graph so far:

(sample model is too big, can’t upload. Just a generic wall, I picked a face from it.)
to_dyna_community.dyn (23.2 KB)

Try this: Dynamo Dictionary

Thx Jacob! @jacob.small
The node you suggest is actually the one I tried first, but the result was even weirder.

Sorry I misinterpreted your question before.

The scale node is going to scale evenly in all directions about the plane’s origin. Therefore you need to take the distance from the plane’s origin to the current control point, and the distance from your plane’s origin point to the new desired point into account, not just the ‘change in size’.

Using this as a base, you can check how the scale ratio applies to the shape. At any point if you use a new plane, you’ll get different results (sadly I deleted this or I’d have an animation for you):

With that understanding, you can start to build out a more meaningful graph that pulls a desired point to the new point, by calculating the scale values using % change of the vector from plane origin to the control point and desired point.

The graph which I used for that looks like this:

Posting the DYN as well: Scale Shape.dyn (43.2 KB)

I recommend trying it with other shapes beyond rectangles (ie: a hexagon) which are not aligned to any axis to get a better feel.

1 Like

@jacob.small
you are right, I oversimplified scaling… and I just realized even I was using (deltaSize / originalSize) + 1 as scale, I should’ve used half of originalSize. Not to mention the entire idea was wrong.

Thanks for the demo file, I’ll try to reproduce it in my graph.

1 Like