# Create a simple twisting surface?

I want to create a single surface as shown in the picture using two points and two parallel lines. The surface should have six edges and cannot be achieved without trimming. If there isn’t a suitable surface method, can this shape be achieved using a mesh with Kangaroo?

crvs&pts.3dm (212.1 KB)
Any help would be really appreciated, even if you could just talk me through how to approach the problem!

Say that you have 3 Crvs: bottom, mid (or a LineCurve from your 2 pts) and top. Check directions.

Mestermind an option where you rotate (global Z) the crvs.

1. Loft bottom/mid and get a Mesh out of the Surf.
2. Loft mid/top and get a Mesh out if the Surf (where U is same with above).
3. Append Mesh2 to Mesh1. Combine Vertices.
4. Define as Anchors the mid Crv end pts (in fact the 2 Mesh vertices that are closest to these 2) + all naked vertices in bottom + all naked vertices in top.
5. Relax via K2 (use 2 spring force values: one for the clothed edges and another for the naked ones [the “vertical” so to speak]. Exactly as we do in tensile membranes).
2 Likes

Curves (lines) in expected sequence? Flip curves (directions) if necessary.

crvs&pts_2023Oct5a.gh (14.8 KB)

3 Likes

If your shape is to look like your drawing (membrane) then you definitely have to relax it as suggested by Peter. I don’t think simply ‘twisting’ the surface will do - but maybe that’s what you want? Who knows - the title of your post does not necessarily match the desired outcome drawn.

Best

1 Like

The method you explained is very clear, and I believe I now know how to attempt to implement it. Thank you very much for your help!

Thank you for responding and providing the file, but this isn’t the shape I’m looking for (as sketched in the drawing). I believe this surface can’t be achieved with a single lofting operation because it has six continuous edges. It’s more like a tensioned membrane fixed by two points and two edges. If Rhino could quickly generate tensioned membranes with points and edge lines, it would be very easy, but it’s not that simple yet.

You’re saying exactly what I was thinking. Perhaps the title should be changed to ‘Tensioned Membrane.’

Sounds like a Kangaroo problem then?

with K2.gh (26.6 KB)

4 Likes

Approaching a near-perfect solution, I only retained the anchor points at the beginning and end. This way, there are no transverse sharp lines in the middle, giving the entire surface a smooth appearance. Your method of mesh-to-surface conversion is also excellent. The end points are not sharp, which aligns better with the actual situation. Thank you very much, Li Quan!

Indeed that’s the way to do it. You can define any “side” anchors you want (control them by a count val and a delta [idx to idx “distance”]). You can also move the side anchors from mesh vertices (approximating a tensile membrane) but that requires code in order to contol the required variable cables (from rest to relaxed state). You can also mastermind various ways for the bottom/top anchors (all, random, skip every N etc etc).

Finally … you can define a proper normal and/or chaotic truss (i.e. rnd pts and proximity etc etc) and a tensile membrane (or many) from some nodes. That can yield stunning or ugly aesthetics.

1 Like

Amazing, the all-powerful C# in GH! I only know a bit of Python. It takes a lot of time and practice to become proficient. But after learning that AI can facilitate direct communication between human language and computers, I don’t want to write mind-boggling code against my instincts. I’m quite lazy, and I guess I prefer taking the easy way out most of the time. Haha!

You can simply click to download and install the NGon plugin.In fact, there’s a more straightforward way to select the rivet points, without the need for a plugin.
without ngon.gh (30.0 KB)

If you rely on AI (present of worst: future) … lobotomy is not far away. Anyway if you want to be on high demand (meaning a decent and more or less assured salary etc etc) learn how to code.

BTW: lazy (and the easy way) means in most of cases shortage of dollars into your pocket.

Just chatting casually, the code is cool. Honestly, coders like you are the kind I look up to, as idols. But our love for Grasshopper isn’t because it can write code, but for the time it saves in creation and modification through its visual processor. Code can be faster at times, but I wouldn’t spend years trying to code a Kangaroo solution for a specific problem (that’s something only the legendary Daniel Piker can do). Plus, it’s hard to switch from a keyboard to a controller. The adjustment period is too long, and the gaming experience is different. Besides, money can’t be earned endlessly, and knowledge is boundless, yet our lives are finite. Let’s leave the problems to the silicon-based, to the existing tools (which are already plentiful). If needed, spend a bit of money to hire someone. Maybe that’s putting things in the right perspective. Don’t let work brainwash you. Come, let’s play a game together and enjoy ourselves!