SubD 1D-Scale accuracy issue?

In SubD, I am trying to make a fender lip. I don’t know how far I can do with this vehicle body design in SubD, but it’s allowing me to fit the body–to a frame–to the interior–to the driver and passenger.

[At some point, it will likely have to be converted to NURBS and cut to pieces, but for now, this is a fast way to work with three different systems. Anyway…]

In SubD mesh view/mode, the fender lip has been sized using 1D Scale measuring along it length. ( Using a passive voice, so the word “I” wouldn’t have to be type too many times, anyway : )

What I ask for, is not what I get. I ask for 20mm, and I usually don’t get what I want. I often get from 20.17 to 20.85. Oddly, 20.17 shows up a lot. The units tolerances are set pretty tight.

Within the understanding that once it’s in SubD view/mode, some kind of 3D quadratic voodoo-sorcery has to be done over the the whole thing, but until then, I/we? need the ability to have datum points for things like shutlines and whatnot.

Could we please have a little more accuracy in the 1D mesh-view resizing?

In this SubD video, which is not mine, I’ve seen seam rotation, as well. That’s where I got the idea to scale the edges.

If you create a 20mm line in the correct place, can you snap the subd verts to the ends? (I had similar frustrations with trying to set the mesh “precisely” some months back and I think I recall that snapping verts to points was my workaround. Apologies if I mis-remember.)

1 Like

Please fix this. It’s very handy to be able to scale SubD edges for real-world designs.

[The myrid of transformation and editing tools gives doing SubD in Rhino a technical advantage over, say Modo. I should help that the wind won’t be let out of their sails.]

Thank for for your input, Jeremy.

Hello - please post a file with the object and the input points for the scaling.

-Pascal

1 Like

Hi Pascal,

Thank you for looking into this. I extracted a section of what I am working on, and checked to see that it behaves as it did.

Either in SubD Mesh-Mode or SubD-Mode, if you use 1D scale on on edge, and then read its length. It will not be quite right–stealing the thunder of some useful aspects of Rhino’s interpretation of SubD.

[BTW, my friend is works in advertising, using Modo. He was impressed Rhino’s snaps and scaling for SubD. He noticed that the fender lip stayed in shape alone, without the adjoining faces, which gives me hope that I might be able to make doors. He is disheartened by Modo’s having moved to subscription, which I hope Rhino 3D never ever does.]

Vehicle Edge Length.3dm (208.8 KB)

So you’re trying to scale the edge of the wheel opening…using what input points? Less pointless backstory and Modo more what-you’re-actually-trying-to-do please! It’s not at this point clear there’s even a bug. I see some of the edges aren’t quite 20mm, but I wouldn’t expect them all to be unless they were each individually adjusted, they’re all going off at different angles. Doing Scale1D on them seems to work fine.

Yes, they were all set to 20mm, but that’s (not) what we get.

Did you check the length of the edges you scaled?

The bug is: if you scale an edge using Scale-1D, it will not be scaled to the correct length. The edge length accuracy looks looser than 10%, sometimes. Sometimes it works, though.

Did you set them all one by one?

Every one I’ve tried scaling here goes to the length set, unless I snapped to the wrong thing.

@Brenda Am I correct that you are using Scale1D to set the distance between control points to 20mm? Using Scale1D I can set the pairs of points be exactly 20mm apart. The resulting edges are not exactly 20mm apart.

But just like with NURBS exactly offsetting control points in SubD, except for special cases, does not result in an exact offset surface or edge due to the range of influence of the control points. That is how the basic math works and is not due to tolerances, coding errors or similar. So it does not surprise me that surface edges are not exactly 20mm apart when the control points are exactly 20mm apart.

It would be useful if we could scale and align SubD edges so that parts can be fitted and the thing more accurately made.

Okay but there’s still no sign of an actual bug here. Scale1D works as expected on SubD points.

Hello- since you did not provide the reference points, it’s hard to know exactly what you are trying to do. Note that SubD vertices are in different locations depending on whether they are displayed smooth or faceted. If you are scaling vertices, only faceted counts for precision I would say.

-Pascal

I agree, it would seem that the faceted version would need to be the measurable thing, of the two.

Though, currently, edges cannot be reliably scaled better than 10%, in either precision or accuracy.

Scaled how? Precision in what? There’s basically no relationship between using Scale1D to adjust the distance between 2 points and setting the with of a 3D-curving lip, they are not related tasks. Scale1D on subD points works fine. We don’t understand what you’re talking about.

Sorry Jim, but I don’t understand why you don’t understand. I do - and I can repeat the behaviour.

Brenda is talking about scaling edges, you are talking about scaling [the distance between] points. And you are both right! Scaling edges can be inaccurate, scaling points can be accurate.

Here is an example of Brenda’s edge problem:

Now, here’s an example of your point scaling:

And the kicker:
That’s the same edge, so Rhino reports a distance between its verts that is different from the length of what is ostensibly a straight line between them.

@pascal, it would be nice if the edge measurement and scaling gave the same result as the points - and after all, its easier to click once to select an edge than twice to select the verts, so its more likely people will want to work this way. Unless there’s something about SubD that means I’m expecting behaviour that isn’t meant to happen, in which case, let’s get it documented!

Hope that clarifies things,
Jeremy

What exactly and precisely is meant by “scaling edges”? I don’t see any way to select an edge as the object to be scaled in Scale1D. I can scale a vertex/control point at one end of the edge using the point at the other end of the edge as the base point. Is that what is meant by “scaling edges”?

From what I can see, the Length command reports the length of the smooth display edge and never the faceted one, regardless of the display. Distance between vertices correctly pays attention to the currently displayed vertices.

-Pascal

1 Like

Thanks for the explanation @pascal , that explains why you cannot accurately scale the flat mode edges. Could we get that into the Length and Scale documentation, please?

In flat mode you can select a subd edge and scale it in the same way as any other object (e.g. a line). Effectively, you may choose to use the two verts for base point and direction.

But, following @pascal’s explanation, this is moot as you cannot reliably calculate the scale factor. Scaling the distance between the verts is currently the only way to go.

At a deeper level, I’m not sure it is worth attempting this degree of precision in SubD - after being frustrated by similar problems, I’m tending toward the idea of using SubD to create a general form and converting to nurbs before final precision adjustment (for example to mate a part to an existing interface).

Thanks for the explanation. I seem to be missing something as I am so far unable to select an edge in isolation. I’m probably missing something simple. But not important currently.

My impression based on a few experiments and a very small amount of reading about SubD math is that SubD is inherently not as well suited as NURBS to precision modeling.

1 Like