Grasshopper

algorithmic modeling for Rhino

How to morph between 2 surfaces using Surface Morph?

Hello Grasshopper community,

I've seen many Youtube tutorials of Surface Morph used for "Paneling", and near as many examples of Surface Morph used to morph between 2 single surfaces but can find NO tutorials of this surf to surf morphing. So i hoped someone familiar with this could please,..

1) ..confirm that Surface Morph CAN be used for single surface to surface morphing? (not just panelling), AND,..
2) please show how, send .gh definition file and\or screenshot to morph between 2 surfaces using Surface Morph?,

I've attached a .gh definition of my failing attempt to surf.morph tween 2 surf's, which creates a morphed surface from only the TARGET surface and does not move toward or change shape to the SOURCE surface.

Appreciate it all, and any help soon as time allows,
big fan, Jeff

Views: 2166

Attachments:

Replies to This Discussion

Jeff, not exactly sure what you're looking for, but this will interpolate between two surfaces like Rhino's Tween Surface.

Ethan

Attachments:

Thanks much Ethan, since writing i've learned just enough to realize your definition is near exactly what i'm looking for, and that SrfMorph is not required since its actually a surface's Blend via SDivide(subdivided) vertices connected by correspondence Ln(lines).

3) but can SrfMorph be used for surface blending, any benefit to doing so?

There's differences tween few other def's i've found which i'll deciphering to understand their purpose and differing controls and results.

 Was also glad to find Grasshopper's Brep reading capabilities, and the Srf > Set Multiple Surfaces both of which i assume for use with models (IGES, STEP) composed of multiple (un-mergable) surfaces?

 Hope it ok to write again with a few more anticipated questions\results.

Really! appreciate your quick reply and instructive definition,

Jeff

You're welcome Jeff. If you describe what it is you'd like to accomplish, I may be able to help further.

Hi Ethan, almost at my goal: vid. standard geometry tweening, and at the moment i'm looking up Data Matching since my surfaces will likely Not have the same number of vertices, but will be 96%+ the same otherwise.
3) is data matching the solution to source and target surfaces without identical vertex numbers?, or please suggestion more suited,

Merry C, E..

J

 

Jeff, if the number of points is not the same, then the 'nice' definition I gave you collapses. Please see David Rutten's recent discussion on surface grid:

http://www.grasshopper3d.com/forum/topics/u-count-in-surface-from-p...

Lets say the target surface has fewer points. The interpolated grid will still retain the initial source number. It gets messy. Try 10,10 for u,v on one surface in my definition and 11,11 on the other to see what I mean.

That makes sense, can see its no simple problem.

Also, my tween-source surfaces with differing numbers of vertices, each imports to Rhino as multiple sub-surfaces which are opened in Grasshopper using Srf > Set Multiple Surfaces. But in this case when i then use SDivide and PointOnCurve the points are created at the intersections of each sub-surface and then across them instead of being Evenly distributed as on a Single surface.

I hoped you could let me know,..

2) is there a way to import or join my sub-surfaces into a Single surface that SDivide will then distribute points evenly over?, perhaps Brep > Join?

3)
is it possible to manually draw a few "key" Lines connecting corresponding points, that would then cause(influence) SDivide & Ln to create lines between remaining points to their correct correspondence between surfaces?


Lastly, at: http://www.grasshopper3d.com/forum/topics/guidance-morphing-between...

Lyndon wrote:
"..got it working smoothly. This method 'appears' to use the faces from the first mesh and apply those to the vertices of the second mesh..."

..and i replied:
"..2) this sounds great, is it like retopologizing the 2nd mesh based on the 1st?, perhaps equalizing vertex numbers, positions and properties prior to SDivide and morphing?.."

4) do you know of any way to retopologize and/or equalize vertex numbers(positions\properties etc) of one surface based on another?

Please excuse my enthusiasm if asking too many questions.

Thanks again for any help soon as you've moments,
Jeff

..sorry Ethan,
             forgot to ask about what has replaced or where to find a Domain component called "Dom" containing variables: C,Out and D. In Grasshopper i've only found Dom's with variables: U,V,W or A,B and I
5) please let me know where this C,D,Out variabled DOM is or what's replaced it,

Sorry again if these 5 seem a lot of questions, but their all i'll have at once rather than piecemeal.
thx again,
Jeff

Jeff, I could really stand to learn a lot more on meshes myself, so I'm not able to answer your questions on that topic.

As to your surface divide question, it only operates on surfaces, not polysurfaces. I know there are some threads about approximating surfaces from a collection of polysurfaces.

The Dom component looks like a Python or VB addition (because of the 'out'). Since it seems to be getting the length of the lines and feeding them to the Eval Curve component via 't', you could probably just reparameterize the lines and use the slider directly on the 't' input.

Hi Ethan, its all good, i obviously appreciate all you do know and we're always learning.

- i've just seen training vid saying Brep surfaces are only "similar" to polysurfaces, so i'll try\confirm wether Breps are seen by SDivide as single surfaces?


- That Python\VB based, Domain component has output parameters significant to its definition i've uploaded. The member stated his Surface Blending def."..failed because the number of vertices were different between the two surfaces.

and then he, ".. adapted another members work..and got it working smoothly. This method 'appears' to use the faces from the first mesh and apply those to the vertices of the second mesh.."

I've substituted new for "old" components in this Def., then it worked once deconstruct domain (DeDomain) was substituted for the Python\VB Dom. However the "Blend %"(position) slider had no effect because the missing VB Dom had a (D) DomainAsList output needed buy the Multiplier (A) parameter.

So, i tried adding a Construct Domain between the DeDomain and Multiplier operator, but the Constr.Dom (I) output forced the Multipliers(R) results (& Evals' (t) to NULLS.

I'll try to find this P\VB Dom component but if you've any suggestions for its whereabouts or substitute components please let me know,
Thanks again,
Jeff

Attachments:

RSS

About

Translate

Search

Photos

  • Add Photos
  • View All

Videos

  • Add Videos
  • View All

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service