# Can I block the area of a face (the surface) and then have one axis length automatically changed?

I want to explore different possibilities with the same M2 that I need, is for an architectural purpose, I want this process to be easier and not to calculate the distance every time I change one side. The image is an example of what I´m looking at

• I'm pretty sure that it's not possible in Blender. Maybe some heavy scripting would allow for it. – cgslav Aug 31 '17 at 18:14
• Try using Maintain Volume constraint if I get your question correctly. I'm not aware what does M2 in this context mean and does it change the meaning of the question so you might want to edit the question and provide more information. – Mr Zak Aug 31 '17 at 20:30

This would not be possible for single faces in vanilla Blender. There may be an add-on for this somewhere. One of the main problems is that faces aren't always rectangular quads aligned on an axis. Once you get out of that realm, the math can become pretty messy.

There is a way to do this in Object Mode, though, for whole objects using Drivers. The only problem with this method is you can't add a Driver to the Object Dimensions. So we must Drive the Scale of the object instead.

I won't go into all the ins and outs of creating a driver because that subject is well documented. A great intro video tutorial can be found here: https://www.youtube.com/watch?v=BJJJpWcxp0o

This will show how to scale proportionally in the X/Y direction:

1.) Create a Single Driver for the X-Scale of the cube.

2.) Create two custom properties: "Area" (for the desired L x W area) and "X @ Scale 1.0" (to describe the X dimension when the Scale is at 1.0). The reason we need the latter is because we cannot use the actual X dimension, since we are using the driver to change that dimension, which would create a circular dependency.

3.) Use the following for the Driver expression: (Area / Y_Dim ) / X_Dim -- where Area = the ["Area"] custom property, Y_Dim = the actual Y Dimension of the object, and X_Dim is the custom property ["X @ Scale 1.0"]

The relevant information is highlighted with red. After setting the Y-Dimension to what you want, it will be necessary to click the "Update Dependencies" button to get the most accurate X dimension. Click the image to enlarge:

If you Apply the Scale you must change the ["X @ Scale 1.0"] Property to reflect the new value.