algorithmic modeling for Rhino
Hello!
I wanted to achieve something which would resemble hanging surfaces which are being held back by ropes at certain points. Like a hanging membrane, supported by ropes to strengthen it (holding it back), where between the ropes the membrane hangs deeper.
Visually, just think of micheline-man effect or nearly any pneu-construction. I go on with what I tried, my shortend question is underlined at the bottom below.
-----
I know this could be done by if I build up the original meshes exactly to have their verticles aligned along lines in a way as if ropes are crossing them, and setting these verts along the "crossing lines" as anchor points, and setting them up in an arch somewhat less bend as the hanging membrane is.
But this ends up too complicated and too much hand work, since I'd want to have a few dozen; all a bit different, and I'd like it to be more flexible.
Now, what I did to achieve something similar (more or less) is I generate a hanging Kangaroo-mesh, which gets sliced up, and these sliced parts are now the "starting meshes" for another simultaneously running Kangaroo simulation, having their open verts fixed (at where they have been sliced).
So, the first relaxed and sliced mesh defines basically just the fixed ends for the other meshes, and I get this described micheline-like object, which still reacts to how strongly the first mesh is bent by gravity.
It's only rather a glitchy test; pretty slow and oddly done since I couldn't get the results without different parts of codes snapped from here and there, which required me to jump from a Kangaroo mesh to a brep and back - ugh!!! There are some errors in it, but the basic function is what I want.
This way it already kind of does what I want to get to, but the setup is quite complicated and processing slow. (If there's not better attempt, maybe I'll clean it up and post it for some comments/help.)
But short: Is there generally a way to set an object as an obstacle in Kangaroo to achive my result more easily? Fixed?
Mark a line and set it in a way that makes it block other objects in Kangaroo in its expansion/relaxation, as if it was a physical object that blocks other objects (like the floor element does (I assume))?
Thanks!
Tags:
A couple of notes...first of all, the next release of Kangaroo will have line/line intersection which should allow for you to more or less achieve what you're looking to do without having to do any extra mesh topology management...it's really exciting!
But it's not out yet...so you could wait for it...or you try some other things...
1) you could do a series of mesh/plane (or mesh/mesh intersections) that define your "rope" locations prior to the simulation, identify the vertices on the mesh that lie within a certain distance of the resulting intersection curves, and create a "curve pull" force for those selected vertices
2) you could intersect similar to above, retriangulate your mesh, isolate the lines along your intersections and give them higher stiffness to simulate the performance of the rope
3) you could create meshes shaped like water gutters under your starting fabric mesh that could catch with a collide mesh force any vertices that would go through them and collect them along something resembling a curve...
just some quick ideas...but really this sort of thing should be super easy once the line-line intersection is put out there
Thanks a lot for the diverse input, David! Quite a few new attempts possible that way :)
------
Nr 2 sounds quite good since the stiffness value keeps the "ropes" still (re-)adjustable. But how do you isolate specific mesh lines then along the intersections, without having to bake the whole thing first?
wbEdges, and then sort them out of the list.. how? By trial & error? I wouldn't know how to identify the ones I'd need to feed to the Kangaroo Engine with a different stiffness...
That's a picture of my original attempt. The relaxed KGRO Mesh (red) being turned into brep, sliced with multiple planes at once to gain a new series of breps (someones neat python script), and as a patch-surface via Mesh UV fed back to KGRO again, resulting in further relaxed meshes (green).
Doesn't look proper since the last meshes via Mesh UV ether overlap from the patch surface or are to short (as above), but the basic principle worked.
Maybe the last resulting mesh would fit if I get it to work via surface from 4 curves instead of the patching solution? I have the breps borders duped to generate a surface from them , but when exploded I get more than 20 little line-like curves and not 4 curves for the 4 surface edges ( I just made a patch surface instead,... I think I should solve this sooner or later though).
Best would be to slice a mesh with multiple planes and get a series of meshes(thereby avoiding going from mesh to brep to mesh), but I couldn't figure out how or if that is possible.
In any case, thanks a lot..... .. and I remain curious about the new release of KGRO! :)
Welcome to
Grasshopper
Added by Parametric House 0 Comments 0 Likes
Added by Parametric House 0 Comments 0 Likes
Added by Parametric House 0 Comments 0 Likes
Added by Parametric House 0 Comments 0 Likes
Added by Parametric House 0 Comments 0 Likes
© 2024 Created by Scott Davidson. Powered by