Hmm, something odd with History is happening (V9 Beta)

In the file below on the left are just three rectangles. Record History was on when I made them.

  • An A3 sized outer rectangle centered on 0
  • A 235mm x 235mm centered square
  • A 235mm x 10mm rectangle that was made with Rectangle3Pt, clicking on the lower two corners of the square and going down 10mm

On the right is a copy made from them but the history purged.

Now, on the right side set, window select the center square and smaller rectangle at the same time and with the Gumball arrow, move them up 5mm. As expected, both move obediently up the requested 5mm and their dimensions are unchanged.

Now, do the same with the left set… I expected the same thing to happen, but nope… The square moves up, but the 10mm high rectangle becomes 15mm high and its lower segment stays where it was…

If this is a knock-on effect of having drawn the 3Point rectangle with history on snapping to two reference points on the square and it is remembering that somehow, I’m not in favor.

Even weirder, copy the oddly-behaving figure on the left and paste to V8. Do the same window select and move up 5mm maneuver with the Gumball. Only the square moves. The smaller rectangle stays put - now there is a 5mm space between them - and I get a message “History failed to update 1 object”.

Redraw the two rectangles the same way natively in V8 and it behaves “normally”… Bizarre.

A3MoveImgTest.3dm (321.1 KB)

Hi @Helvetosaur,

Rectangle records history in Rhino 9 (RH-80611). When you drew the 10mm rectangle with Rectangle3Pt and snapped the first two points to the square’s corners, Rhino recorded the square as the rectangle’s parent. Your third pick, going down 10mm, didn’t snap to anything, so it was stored as a fixed point in space.

When you move the square, history rebuilds the small rectangle. The two snapped corners follow the square up 5mm, but the third point stays where you originally clicked. So the bottom edge stays put and the rectangle grows to 15mm. The copy on the right has no history, so nothing gets rebuilt.

To keep the 10mm height:

  • When you get to the third point, type 10 instead of clicking. The depth is then saved as a distance instead of a location.
  • Or, for rectangles you’ve already drawn, select them and run HistoryPurge.

About pasting into V8: Rectangle history only exists in Rhino 9, so V8 can’t rebuild the rectangle. It leaves the rectangle where it is and reports “History failed to update 1 object.” A rectangle drawn in V8 records no history, which is why it moves normally there.

– Dale

Hi Dale,

Yes, I assumed something like that was happening - I have not been following closely enough, so I was not aware that history had been added to rectagle objects.

That being said, I still think that it is wrong in this situation, as a Euclidean transformation of the “parent” object is creating a non-euclidean transform of the “child object” - the smaller child rectangle is no longer just moved or rotated when the parent moves, it actually changes shape. This is for me at least “unexpected behavior” for a Euclidean transformation command like Move on full (not sub-) objects. Especially so because the child was selected to move in addition to the parent.

Perhaps this behavior is the reason the Rectangle command in previous vesions did not create.

My recollection is the rectangle command creates a closed polyline, not a special type of object (such as Circle which creates a circle object). So there is no way for Rhino to it’s shaped sould be preserved when moving, rotating, etc other than moving or rotating all four vertices