Slide Edge Bug

I found a bug where an extreme application of slide edge can break a number of things.

It seems to happen in multiple situations, but here’s a simplified version:

  1. Created a SubD Truncated Cone, with these options:

Command: _SubDTruncatedCone
Base of truncated cone ( DirectionConstraint=Vertical Solid=Yes BoundingBox 2Point 3Point Tangent FitPoints VerticalFaces=4 AroundFaces=5 ): 0
Diameter at base <24.000> ( Radius Circumference Area ProjectOsnap=Yes )
End of truncated cone <24.000>

  1. Call _SlideEdge, use EdgeLoop to select the second highest horizontal loop:

  2. Slide the loop up as high as possible:

The resulting object…
Breaks subobject selection display:

Breaks SubD viewmode toggle:
(subD object will not toggle at all. Oddly, selected subobjects, which I have been unable to get to toggle, do toggle in this error)

And also breaks Undo, Redo. If I undo it, it undoes the previous command to create the truncated cone, so the cone disappears all together. And if I redo it after that, the cone reappears without the slid edge, and a further redo won’t redo the slid edge, it just says “nothing to redo”.

This bug also happens with the same object when selecting vertical edge loops and sliding to their extreme points.

There are other issues with Slide Edge in SubD beyond this. I have more screenshots and tests to upload, and will add to this post later.

Also, I want the devs to know that I’m playing with this on the weekend and trying to break it because I already love it, I’m impressed with how fast they’ve been updating builds based on feedback, and I want to do all I can to help make it perfect enough to release as fast as possible.

I also managed to make the following model which I’m going to CNC soon and make a coffee table base out of, using Skeleton Fattener and Mesh+ in Grasshopper, along with the WIP SubD that’s still very pre-release. What you’ve built is already very useful:

1 Like

Update:

Played with Slide Edge a little more. The issues described above happen only when I slide an edge to the most extreme point the interface will allow me to slide it. If I back off from that point, even by a single pixel, everything works as it should.

Also, when I do slide all the way to the extreme point:

  1. I can no longer select any of the edges I slid.
  2. If, after sliding to an extreme point, I select other edges and attempt to slide them, they will slide, but when I exit the command, the results of the previous slide edge command disappear as if they’d never happened.
1 Like

Thanks for your effort on testing and reporting @Max3!
I think we just simply need to prevent sliding too much. Or do you expect something special to happen when you slide to the very extreme?

The question then is “how much is too much, and why?”

Is what’s happening here that I’ve slid so far that I’ve effectively created a crease, but since it isn’t a crease, it’s breaking Rhino’s brain? I’m not a programmer so I don’t fully understand how this works.

Is there a tolerance that I’ve passed? Have I slid one edge loop until it’s on top of the adjacent one?

You’ve most likely slid the edge on top of another and so created invalid geometry. So from technical point of view that is the problem and sure that should not happen. I’ve tagged this post in RH-51819.

The closer sliding edge gets to the other edge the more it starts looking like a crease. Therefore it would kind of be logical that sliding all the way to the other edge would create a single hard crease. But I think it could be quite confusing when that’s not what user is trying to do. It would also destroy the edge loop if all vertices were not slid all the way.

1 Like

I agree that it would be confusing for a slide to the extreme to create a crease.

If it was me I would limit how far an edge can slide to an absolute distance from the adjacent edge. I don’t know how that ultimately works in SubD, but maybe the limit should be document tolerance or 2x document tolerance away. The limit should not be relative to the width of the face.

I will upload an example of why it’s good to be able to get that close later today. In words, rather than pictures: it’s possible to use a very thin intermediate strip or loop of SubD faces to get a clean splice with pretty good good curvature between two adjacent open SubD objects with adjacent vertices that don’t line up well with each other. I’ve done this with an intermediate face loop that was only .005 units wide (10x document tolerance) and gotten good results.

@Max3 This issue is partially fixed: SlideEdge does not allow sliding edges on top of other edges anymore.

Yup! Works great. Thank you!