Idea / wish -> rectangle / box with constant area / volume

Hi,

when I do architectural layouts for floors, I often start with areas which are required for certain functions e.g. office space 1000 qm, storage 3000 qm, assembly 5000 qm etc.
So at the start I sometimes draw some rectangles representing the area of the necessary rooms and I start arranging them , modify them to help me find a working layout.

What I would find really helpful would be a possibility to define the area of a rectangle, rhino would then draw a square which can be edited by the user but would maintain its area. So if I would eg. have a square 10mX10m and I would scale one side to 4m, rhino would automatically change the other side to 25m, so that I would end up with a 4mX25m square wich would still equal 100qm.

This could also work for existing rectangles ā€œmake area constantā€ or for volumes.

to avoid super narrow shapes when the one side is coming close to 0 we should be able to define a custom threshold e.g. 1m .

Is this possible ?

best

Andreas

1 Like

Hi Andreas - I think this should be possible - do you envision a tool for adjusting an existing rectangle or for creating one with a constrained area?

@walther - here is a start, maybe - this will let you set a rectangle to a given area by selecting a side to constrain. It is crude - there is no check yet for valid input of numbers for example, but it may be approximately on the right track.

ConstrainRectangletoArea.py (3.0 KB)

To use the Python script use RunPythonScript, or a macro:

_-RunPythonScript "Full path to py file inside double-quotes"

@walther - I added a couple of checks for valid input.

-Pascal

1 Like

Hi Pascal, in an ideal world there would be 2 commands:

  1. ā€œcreate fix area rectangle Area/Dimensions, Min.lengthā€
    -> this would let the user generate an fixed are object from scratch. Area option : the user would define an area, Rhino would draw a square rectangle. Dimension option : the user draws a rectangle (3Point!) Rhino calculates the area and displays it, and it is fixed. Min. lenght lets the user define the minimal possible lenght for one side when editing it.

  2. ā€œDefine rectangle as fixed area / Min. lengthā€
    -> the user can select a rectangle Rhino calculates the area and displays it, and it is fixed. Min. length lets the user define the minimal possible length for one side when editing it.

another nice addition would be the option to redefine the area and to display the area as a object connected text in the middle of the rectangle.

Hello - this you can do now with DimArea.

-Pascal

1 Like

Nice, did not know that ā†’ thanks!.. could there be an option to auto-glue this to the object with group?

Hello - Here is a thing you can try - the feedback is a little nerve wracking, to my eye, because of the constrained size, but I cannot, at the moment, think of a better way - Iā€™ll ponder some more tomorrow, after a coffee. it should be possible to make a 3 point rectangle as well.

AreaConstrainedRectangle.py (6.0 KB)

To use the Python script use RunPythonScript, or a macro:

_-RunPythonScript "Full path to py file inside double-quotes"

@walther - updated to have a first try at a 3Point option.

Use the previous script, above a few posts, to modify an existing rectangle.

-Pascal

1 Like

Thank you Pascal for your effort, this is nice and already pretty useful, so again thank you.

That said I would still wish for something that would create a special rhino object class meaning an object wich has a fixed area / volume and is editable while maintaining this definition. What I mean is that this object would ā€œknowā€ that it has a certain area and if you would scale it in one axis it would react in realtime by modifying its other side accordingly like it already does in your 2. py script.

Do you think this could be implemented in R7 or is it more work than it appears to be for a non coding individual like me :wink: ?

Hello - well, consider that it would be pointless to make one ā€˜smartā€™ constrained tool - it would need to be part of a much more extensive program - but keep in mind Grasshopper probably can do this quite easily, if is a somewhat less direct way than you envision.

That said it is certainly possible, with user data, to make some thing fairly smart in a python script.

-Pascal

How about defining the shape and scale by area, be it square triangle hexagon or whatever else? So you draw it first and give it a specific area. and make it part of scale options. And of course if the same could be applied for volumeā€¦!!!
Any way a bit of math doesnā€™t hurt!
While Iā€™m here I want to thank you all for unflinching dedication.

1 Like

thanks Pascal for your explanationā€¦ maybe So Unrelated `s idea is interesting because it would widen the possible scenarios in which such a tool would be used. I see that of course the benefits have to justify the cost (time) integrating this into Rhinoā€¦ So IMHO there are two points which would probably be relevant:

  1. would such a command be useful for a significant amount of users, or is it too specific and would just add mure clutter to rhinoā€¦
  2. If it is considered useful, how much effort would it take to do it as opposed to the benefits it would addā€¦

So for me being an architect it would be useful and I guess it would be for other architects as well, but I would imagine that for engineers e.g. when dimensioning parts this could become handy as wellā€¦ maybe some other users could voice their opinionā€¦

1 Like

Yeahā€¦ it gets complicated - I think making the calculation and even keeping track is pretty straightfoward compared to the UI - a rectangle is one thing, a triangleā€¦ what do you constrain? Edge length? Angle? Various possibilities and no way to predict really what will be useful.
I do think in the short term the prototype for rectangle by area, just that, no smarts, is probably a useful tool, and worth fussing with a little more to make a 3-point one work - set base line end points and the rectangle is basically done, you just pick which side of the base line to use. Would that be a useful thing?

-Pascal

if it is not too time consuming for you I surely would like to try itā€¦ can I buy you a beer or something?

Andy

This could be partly solved with geometric formulas and macros in excel. Albeit rudimentary.

Hey pascal I found this script very helpful so far. I like adition of the 3pt mode for non ortho rectangle creation but the script doesnt allow me to toggle between the normal mode and 3point. Once I click 3pt it is stuck there. Its not a huge deal but I was wondering if perhaps there was a fix for this?

Thanks,

Miles

Disregard! I dont know why but now it is working fine every time I start the command it is in the normal mode.

Thanks for making it!

Miles