Longitudinal Scaling?

I’ve 3d scanned one side of an ornate lamp base. I’m unable to scan it 360, but It has a pattern that repeats 3 times, so I’d like to clean up 1 third and “tile” it. Unfortunately the scan doesn’t line up cleanly at 120°, so I need to stretch the mesh longitudinally. I.E.: I need half a nose on each side:

Another way to think of the problem: I have a 1/4th slice of a mesh apple pie, and I want to deform it into a 1/3rd slice. (Mmm apple pie…) I think I might be able to write a script to rebuild the mesh… but maybe there’s an easier way with grasshopper? Any ideas? Thanks!

Why don’t you include your file, it might help?

@akilli Thanks for the suggestion! Here’s the file: surface2.3dm (15.3 MB)

Have you tried ScaleNU and only scaling in X and Y

I should have expected your scan would be pretty large, so here’s an example using a simple surface converted to a mesh. Since your scan looks symmetric, and ultimately I assume you want to join the three portions, I split the 90 degree slice in half and operated on just one of those.That way, when you start arraying or rotating, or whatever, the naked edges have a better chance of lining up for joining and welding…

The polar angle for each point is multiplied by 4/3 and the mesh is reconstructed. Angle 0 goes to 0 and 45 degrees goes to 60. Reflecting gives what you are looking for, something that will fill 3 120 degree rotations.

longitudinal expansion.gh (39.0 KB)

At the end, after all the joins, arrays and welds, I included a mesh edge compnent to show that the only naked edges are on the rim.


Hi @caseprince
with FlowAlongSrf you can achieve longitudinal scaling. In the attached file I made a planar revolved surface from nose tip to nose tip. Split the mesh there and let it flow to a 120° segment. Then I split that mesh again at the bisector to get perfect vertices matching, mirrored that 60° segment and arrayed it polar. The upper part seems to have a different symmetry, so I split it off.
surface2_jm.3dm (10.0 MB)


Thanks for the helpful suggestions!

@akilli - I’m going to keep that .gh in my back pocket. It’s amazing what a skilled user can do with GH! I really need to spend some time learning more components and to stop leaning on Python scripting so much.

@Jess - FlowAlongSrf was exactly what I needed! Your description & the modified file made the documentation for that command “click”. (I couldn’t open your file because I only have Rhino 5, but windows explorer could still preview it, so I could see the 2 revolved surfaces and the result of your technique.) I’ve now got a 60° segment that tiles almost perfectly, and a powerful new tool in my toolbox!

Thanks again!