Kinky Cone: Any suggestions?

Hi everyone,
I make sculptures and there are a few forms that I use a lot, so I try to automate them into ‘tools’.
One of those tools that I’m working on, is a cone that follows a polyline. One would imagine it would be an easy task but it has proven to be quite a challenge.
So far I have gotten it to -sort of- work but I have a problem with creating section curves that when lofted they will create developable surfaces (they are parts of cones after all, they should be developable)

I don’t know if there is a plugin that can do that or if somebody is bored enough to help me with the code I’ve managed come up with. (I’m not expecting anybody to bother with this daedalian code, I’m mostly hoping somebody has a smarter and faster way of achieving the same result)

For the use I’m preparing it for it is very important to have the following features:

  • work with non-planar polylines as input.
  • produce a closed brep (it is going to be used with solid subtractions)
  • have developable surfaces (this is intended for cnc cutting)
  • (ideally) be “tree-compatible”. Currently it cannot handle more than one polyline as input.
    AND:
  • The UV’s of the conic sections must be continuous.

as it is, it needs anemone to work


kinky cone.gh (69.8 KB)

Hi,

The geometric construction seems good to me until you get to the Anemone part where I don’t get what you try to do.
Since your cones are well positionned, well intersecting and all developable, why not splitting cone i by sections (i-1) and (i+1) ? Some marginal cases on the ends but should be doable.

And it you want this to work with trees, you have to remove all those barbarian Flattens everywhere and use Trim Tree instead.

1 Like

We did this last October: (posting a slightly edited version of that file below)

KinkyCone_2022Oct15aa.gh (26.4 KB)

Not “tree-compatible” but probably could be… :thinking: This old code has one of your favorite (overly complex) clusters: Remove ends

P.S. That silly cluster of yours is not “tree-compatible”!. It has three flattened inputs/outputs. :laughing: But it’s only part of the problem.

2 Likes

Hooray

kinky cone.gh (86.0 KB)

Probably half the components here could be removed with my tree components and/or Graft Parallel, native GH tree tools are neally a nightmare !

1 Like

Check this as well

kinky cone _ .gh (25.5 KB)

2 Likes

@Joseph_Oster Thank you! I had forgotten I made that post. I should have continued from there. But there is a reason I’m digging deeper into it, see bellow:

@magicteddy I bow to you sir! very nice code!
Unfortunately, because I didn’t think people might follow a different approach than lofting, I didn’t stress the importance of meeting UV’s between the sections.
If you see in the photo, we have CK 1 (on the right) CK 2 and Your CK. The CK 2 is the only one that has continuous UV’s along the cone (the orange lines). If you notice, half the CK 2’s code is exactly for this purpose: aligning the section’s seam points so as to produce continuous UV’s

I believe that the ideal way would be if somebody had deep understanding of Conic geometry so as to produce the ellipses algebraically and do a simple loft. (did you notice that the intersecting ellipses are not coplanar with the polyline kinks as you would expect!)

Man, nice code but you make me feel guilty. As I also told @magicteddy, the whole purpose was to create continuous UV’s along the Conic sections.

Indeed this wasn’t part of the requirements. This may be a “simple” matter of rotating the cones though.

Edit : it’s not, it’s a recursive alignment. So Anemone required, or code.

No I didn’t :frowning: .
Don’t make me apologize again! (ok, I’m sorry)
I tried to be as descriptive as possible, but as i thought people would do it with lofting, I didn’t mention it because if they weren’t aligned, the loft wouldn’t work!
About rotating the cones: It might not be as simple as it looks. (like the whole project, the idea is very simple but the implementation is quite complex.)

Tadaaa

kinky cone_aligned.gh (98.6 KB)

4 Likes

I hate people that are smarter than me! :stuck_out_tongue:
Amazing man! exactly what I needed! Thank you very much!!!
now I will spend my afternoon understanding what you did.
Once again: sorry for wasting your -and everybody’s- time by not explaining well!

This is a different way to find the intersection plane between two cones

kinky cone_new idea.gh (26.0 KB)

New script works much faster: i use rotation code created by @magicteddy to fix the alignment.

kinky cone new.gh (26.7 KB)

2 Likes

I’m not sure what I’ll do with this, but it is interesting. Thanks (again) for sharing your solution.
cones

2 Likes

Unfortunately, I am now working on a work project night and day so I will get back to the kinky cone in a few days.
Your solution looks to work perfectly, but just for the kick of it, I want to solve it trigonometrically.
The thing that puzzled me from the beginning was the distance between the plane of intersection between the axes and the plane of intersection between the cones (purple).
If we were talking about a cylinder, the two planes would coincide but since it is a cone, we have to subtract the half of the angle’s cone (Φ/2).
with this in mind, it becomes very easy to calculate the lengths of OA and OB and by those, the plane of intersection between the cones.
It’s late now and I’m working tomorrow, I hope I will find time tomorrow…

Here the study before the creation of the last script

Create a triangle from every two segments (0,1), (1,2), (2,3), … then use the triangles to find planes, ellipses, angles, …etc

3 Likes

This is a different approach using ellipses and ruled surfaces at the end

kinky_cone_new_approach.gh (37.1 KB)

4 Likes

We think similarly,
I work on this intermittently, and so far I have only been able to define the ellipses’ planes and angles.
This definition (the ‘kinky cone’) would be very fast and reliable if you could do matrix operations easily in grasshopper.
I fought with it a couple of hours last night but from what I see, 3D matrix operations are becoming very complicated very fast if you don’t use programming.

1 Like