I find it strange that the base point output by “Deconstruct Rectangle” is always at the origin when the input is a Rectangle by 2 Points.
I find it strange that the base point
Because it is not a base point output. It is a base plane output. You got a point because you plugged the output to a point param. Its purpose is to give you the plane orientation the rectangle lies on.
I don’t completely agree : with other types of rectangles, I get the bases located at the corner of the rectangles, which is far more useful than at the origin :
Because rectangle 3pt doesn’t ask for a plane, it asks 3 points and its plane is made behind the scenes (most likely at point a, oriented to point b and c). The rec 2pt asks for a plane and is by default worldXY. Whatever you set in that plane input is what will be deconstructed as that is the plane used for that rectangle (even though you decided to make the rectangle really far away). See screenshot where I set the plane to a different location other than the origin and now that plane is what outputs in the deconstruct.
You can see here in Rhinocommon, plane is a property of rectangle. deconstruct literally outputs that property. But rec2pt asks you to set that data, where as rec3pt makes that data from other point info you provide. So that plane data is stored by the actual rectangle, it is not created by the deconstruct, the deconstruct just retrieves the info for you.
It’s easy in RhinoCommon to reposition the plane origin to either the min-min corner or the centre of the rectangle, but no such component exists in Grasshopper. So yeah, when you make a rectangle the origin of the base plane depends on which component you use, and it’s hard to change after the fact.
The same is true of boxes btw. they are also defined using a base plane and axes intervals. I guess GH2 could use some components for modifying these.
Since I’m not versed in that Rhinocommon business, I guess I have a naive interpretation of how GH components should behave
Michael, thanks for your explanation.