Scale with constraints


I am trying to figure out a way to scale surfaces with a certain constraint. I would like to scale surfaces and when surfaces interesect each other, the scale stops for those edges of the surface but continue for the others. I would like to do something like that:

I can’t find any component that can do scale with constraints or anything related. Do you have any idea or work arround to do such things?

You can find in attached file the Grasshopper definition that I just started.

Surface (5.2 KB)

Thanks in advance for your support. Highly appreciate :slight_smile:


This could be one way.

Surface (17.4 KB)


Clipper plugin: (offset, not scaled)

Surface_constraints_2020Feb24a (6.3 KB)

You can scale one surface based on the scale of the second surface

Surface (10.1 KB)

1 Like

Check this as well

Surface (14.6 KB)


Thanks for your answers. i very appreciate that you spend time on this issue.

That’s interesting component @Joseph_Oster , I’ll give it a try :slight_smile:
However, when offset, surfaces are merge together. I want to keep them as two different surfaces.

Thanks @HS_Kim, that’s also interesting but in this example, if I have more than 2 surfaces that intersect i can’t really use this system.

Thanks @seghierkhaled but I want to have both surfaces to have the same scale ratio. So if one surface is 2x bigger then the other surface should also be 2x bigger.

Thanks again for your answer. Hopefully we can fix that.