Curve Manipulation with Graph mapper

Both solutions work equally well. I like the idea of getting to the same result with different approaches. Your help is very much appreciated!

1 Like

Yes it is. My pleasure, this was fun.

3 Likes

I was away from the computer (where creative ideas often happen) when it occurred to me that a NURBS curve can be drawn between end points through a midpoint and a pair of points on either side of it. The curves used earlier are not needed. Height of the three “middle points” is one of two parameters that determine shape. The other is distance from midpoint to the points on either side.

First draft is more complex than I would like so I’ll sleep on it before posting. Here is a comparison:

Version ‘Sep7d’: (as posted five hours ago)

Version ‘Sep7e’: (using NURBS curves)

2 Likes

Deep in the weeds on this NURBS curve approach, I noticed a detail that also affects the currently accepted solution, version ‘Sep7d ’. These “gears” (ridges?) are not square due to different lengths of adjacent curves. And their centerlines are dipped slightly due to lofting. That’s actually two separate details.

I can more easily fix the centerline dip in the NURBS version but then noticed that only the peaks are better. The high point at the center of the valleys is worse. :sweat_smile: I could probably fix that too but this is getting more than a little complicated!

In theory, I can see these advantages to the NURBS curve approach:

  • Offsets based on NURBS curves can have “flat spots” at their peaks.

  • They are not based on a curved surface, all curvature is parameterized.

  • Offset can easily be “inward” (as shown) or “outward”.

  • Instead of moving the three middle points, I could move the end points in the opposite direction. This would allow two basis curves (rails in version ‘Sep7d ’) to define the inside of the offsets instead of the outside, which would be very nice if this were jewelry, for example, and the inner ridges are supposed to form a circle of fixed radius.

But wow - yesterday’s work only scratched the surface of possibilities.

2 Likes

Hi Joseph,
I notices that as well and ended up using a combination of your and Rene’s solution. Once you scratch the surface of some of these even simple looking concepts you realize you opened a can of worms. As far as I am concerned, the results are good and as you have seen in the screen shoot from yesterday I already put the solution to good use.
Thank you!

For sure! Here is what I’ve got. I tried to match yesterday’s results to some extent by manipulating the Graph Mapper and target domain sliders in the ‘magnify distance’ group (purple) and the ‘Offset_V’ (Valleys) and ‘Offset_P’ (Peaks) sliders in the blue group. It’s tricky…

I had planned to simplify this code to reduce the redundancy in the ‘cull threes’ group (gray) but didn’t get that far. I might get back to it as I’d still like to try moving the endpoints and blue points outward instead of moving the blue points (valleys) and yellow points (peaks) inward.




Curve_GM_2023Sep8a.gh (41.6 KB)

3 Likes

Moving the endpoints like this is a creative way to build the surface. I would not have approached it like that at all. - I LIKE IT A LOT

The loft is very clean, much more than the other way which has many “stress lines” visible. Another benefit of NURBS curves, I guess.

By the way, I am familiar with how to use NURBS curves like this from double-ended boat design, where you want tangents between bow and stern.

P.S. I was referring to tangents visible in top view but here is an old video that demonstrates a way to get a “fair” NURBS curve and resulting hull cross-section by moving control points along intersecting tangents. The code generates a curve for half the shape using 4 control points, then is mirrored by a different cluster (X-section) to make the other half.

It’s too easy to forget all the details that make a clean loft…

GH code is here: Deadrise Hull Shape Cross-section in Rhino Grasshopper
Oops, sorry, that cluster is password-protected… Here is a version that you can inspect and edit without a password: deadrise_2021Oct04a.gh (33.0 KB)

I don’t remember how this version changed from 2015 when I wrote it. Code might be embarrassing now but who cares? :wink:

2 Likes

That is great… Thank you for your help and sharing of knowledge!

I took a closer look at the curves you posted two days ago, derived from the curved surface. Now I know why the ‘magnify distance ’ group had a hard time matching the results from using them :exclamation:


Curve_RE_2023Sep9a.gh (43.7 KB)

The six curves used as sections for Swp2 are not evenly spaced, not quite perfect arcs and of differing radii. Curious about how you created those six curves?

Using their endpoints and midpoints, I created 3 point arcs for comparison. The radius for each one is listed in the text panel titled “Arc Radii” - four different values (two used twice). In end view, you can see the effects on the V isocurves:

When I replace your six section curves with my arcs on the Swp2 ‘S’ input, they look like this:

Front view is also interesting. The blue circles are created by projecting a circle in the XZ plane to both tilted planes. To me, this confirms my guess that this is a ring (jewelry, millimeter units) and the idea that it would be better to start with these blue curves as rails, defining the peaks, and move the endpoints and “valley points” outward. That would ensure the peaks form a perfect circle with a defined radius.

These “rails” aren’t used for Swp2 in the NURBS version because that surface is gone.

1 Like

This version is fully parametric, no guide curves. The white group (“rotate XZ planes and move apart”) has two sliders: ‘plane_sep’ (4 mm) to set the distance between their centers and ‘plane_angle’ (5.5 degrees) to rotate both planes. The cyan group (“project circle to planes”) has one ‘riing diameter’ slider (19 mm) to create a circle in the XZ plane that is projected onto the two angled planes.


Curve_GM_2023Sep10a.gh (34.7 KB)

Front View:

Right View:

The peaks (yellow curves) and valleys (blue curves) of the corrugated surface never infringe on the projected circles. Unlike before, the valleys and endpoints are moved away from the circle centers.

There are many parameters for tweaking details. The disabled components below the red group (which isn’t slow at all anymore!) are a quickie way to mirror the curves, loft another surface and join them together for a “Closed Brep”. It would be better to avoid a seam by adding a pair of points on each side, above and below, like I did to match tangents on the “gears”.

5 Likes

Hi Joseph,

Sorry for the delayed response… If I knew what I am doing - this is the way I would have put the definition together. Works really well.
I started this design idea without grasshopper in mind and played around with different curves. I guess I must have copied some curves from the early beginnings, which resulted in the uneven surface when used as reference curves.

You really went out of your way to give me the best possible solution and that is AMAZING!

Thank you,
Oliver

Well, if you look very closely (at Right view), you will see it has flaws. :frowning:

Valley points and end points for the NURBS curves are not on the tilted planes. I took a big gulp and modified the code extensively to fix those problems (successfully!) but mirroring the curves to create an outer matching surface still needs work, as the “Closed Brep” has been lost.

I keep looking at it but have avoided the necessary changes, hoping for some insight to simplify it.

OK, I just added the black group at the bottom to do some magic to get the well-formed “Closed Brep”.
(Had to hold my nose and use copy/paste more than I would have liked… :roll_eyes:)



Curve_GM_2023Sep13a.gh (49.8 KB)

There is a “Goal” switch in the black group that optionally gives you the “Inner” surface only.
As usual, there is no single best way to do this… :sunglasses:


2 Likes