Mirror of FlowSrf Children is Bugged

@pascal I’m in the latest SRC for Rhino (7.24.22297.11001, 2022-10-24) and History updates on this _FlowSrf Rigid=Yes with subsequent mirroring is bugged. The initial flow and mirror are correct, but I am unsure how history is recalculating.

FlowSrfWithMirrorHistoryUpdateBug.3dm (289.0 KB)

Initial mirroring:

History replay update:

I tried to recreate this with only the mirror, but it’s only bugged when FlowSrf is involved. I move a lot of complicated history stuff to a corner with _FlowSrf Rigid=Yes, so I don’t clutter my workspace.

Here, I was looking for a history-enabled plane positioned at the internal angle bisector for a set of curves that I could flow back:

I did it by flowing a point onto the crvs, then using CrvThroughPt.

That crv’s midpoint gives me the bisector which I position a plane onto using Flow Rigid=Yes Stretch=No.

Everything works fine until the History replay:

Oh, and moving the _Flow’s base crv reflows the planes and recalculates everything correctly.

Hi Eric - this is how things look here -
image
that is what you expect, right, or?

What should I touch to make things go south?

-Pascal

There are two curves on Default::EditCrvs that will make it start acting up. The one crv on Default::EditFlowToReset will bring it all back correctly.

Yep, I see, thanks.

-Pascal

I’m sorry it’s so complicated. I spent an hour trying to simplify the setup, but it only happens with all of this in place. If you edit those Default::EditCrvs’ children on Default::DoNotEditHistoryStuff the bug dissapears.

@pascal, I have some new info. I remade this from scratch, and it worked fine. Then I realized I missed one step. I went back and remade it from scratch again, and the problem returned. These curves made via a gumball transform (gumball copy down 5 mm aka _Copy -100,100,30 -100,100,25) seem to be involved.

curve  
  
  ID: 7e23a5c8-f135-4c2d-ad2f-764c29d50094 (258)
  Object name: (not named)
  Layer name: Default::DoNotEditHistoryStuff
  Render Material: 
    source = from layer
    index = -1
  Groups: 
    Group17
  Attribute UserData:
    UserData ID: 563238F9-C201-411d-A7B1-13895A0317AD
    Plug-in: Rhino
      description: AutoPointsOn
      saved in file: no
      copy count: 1
    UserData ID: 0D007E84-79CC-4b4a-850B-C23EF2CEC640
    Plug-in: Rhino
      description: Hide user data
      saved in file: yes
      copy count: 137
  
  Geometry:
    Valid curve.
    Line
      start = (-97.053 millimeters,100.000 millimeters,24.182 millimeters)
      end = (-97.053 millimeters,104.105 millimeters,24.182 millimeters)
      domain = 0.000 to 1.000
      line length = 4.105 millimeters
  History:
    Record index: 6
    Record id: 17C31E7B-1DCE-4554-95A6-5741C20649BC
    Command: Transform

curve  
  
  ID: f7083980-a29e-4395-a50c-d18740f32ddd (269)
  Object name: (not named)
  Layer name: Default::DoNotEditHistoryStuff
  Render Material: 
    source = from layer
    index = -1
  Groups: 
    Group17
  Attribute UserData:
    UserData ID: 563238F9-C201-411d-A7B1-13895A0317AD
    Plug-in: Rhino
      description: AutoPointsOn
      saved in file: no
      copy count: 1
    UserData ID: 0D007E84-79CC-4b4a-850B-C23EF2CEC640
    Plug-in: Rhino
      description: Hide user data
      saved in file: yes
      copy count: 6
  
  Geometry:
    Valid curve.
    Line
      start = (-97.728 millimeters,105.023 millimeters,24.182 millimeters)
      end = (-100.000 millimeters,105.023 millimeters,24.182 millimeters)
      domain = 0.000 to 1.000
      line length = 2.272 millimeters
  History:
    Record index: 7
    Record id: 333AAB8A-4F3D-479a-A87C-6D5272C93BFC
    Command: Transform

I do that little copy-down trick for visibility purposes. I like for my editable crvs to hover over the shape I’m trying to trace/match.

Rebuilt from scratch, each time trying a different way to achieve that copy-down trick. None of these worked:

<Gumball Move + Copy>
-SetPt Pause ZSet=Yes XSet=No YSet=No Copy=Yes
_Copy -100,100,30 -100,100,25 Enter
_Project _Loose=_Yes DeleteInput=No

It’s 100% reproducible. It didn’t matter what I mirrored (planes, lines, etc), the mirror children would go askew each time.

I finally went another route. I built everything above the target (which always seems to work):

And then adjusted the height on my base _Flow crv to get the offset I needed:

I made four different versions of this angle bisector today. It worked 100% of the time when I swapped my normal copy-down transform with the _Flow base crv adjustment.