Railrev consistently creates surface with seam in unexpected location

Railrev consistently creates surface with seam in unexpected location. I would expect it to create a seam where the profile curve is located.

Version 6 SR13
(6.13.19035.17431, 2/4/2019)

rail rev seam is not near curve.3dm (88.6 KB)

It would be a lot less work for the developers if you simply changed your expectation to expect the seam in an unexpected location.

The surface seam is located at the seam in your rail curve. Very logical, consistent and should be expected.

Use CrvStart or CrvEnd to see the location of the seam in your rail curve.

Use CrvSeam to move the seam in a curve. Use SrfSeam to move the seam in a surface.

Also note from the RailRevolve help:
If the rail curve is closed, the seam must be where the profile touches the rail for good results.
https://docs.mcneel.com/rhino/6/help/en-us/commands/railrevolve.htm

So…it isn’t random, so that’s good. My preference and what makes sense to me would be for the seam to be where the profile curve is located. Wasn’t this the case in Rhino 1, 2, and 3? Perhaps I’ve forgotten.

I think of RailRevolve as being similar to Revolve, and Revolve always creates the srfseam at the profile curve. (Of course revolve is different b/c it doesn’t have a path, but they are similar tools.)

I don’t know anything about the algorithm used by RailRevolve but it makes sense to me that the resulting surface inherits its structure in one direction from the profile curve and in the other direction from the rail curve. That puts the seam at the seam in the rail. To move the seam to the profile curve would require additional coding.

If you follow the best practice of having the profile curve located at the seam in the rail, then the seam in the surface will be at the profile curve. :wink:

The help file does mention putting the profile on the seam, but only in reference to the scaleheight option. Otherwise, I don’t think it makes a qualitative difference when using railrev, so I’m not sure it rises to the level of best practices. Regardless, I suppose it will end up staying the way it is, so I should just move the seam to the end of the profile & suck it up.