Grasshopper

algorithmic modeling for Rhino

Need help understanding periodic curves and seam component

hello,

i'm relatively new to GH and there are some basic things i'm having trouble understanding.

I am trying to build a curve out of Rhino points that represent the rough contours of the curve i want to generate. I create the points in RH, create a PT component in GH, do select multiple points, select them one by one starting with the one at the origin. and then pipe this into a NurbsCrv component.

I can now drag around the points in RH and the curve follows in GH ... cool .. so far so good ...

Now i want to use this outline curve to create an object by duplicating, rotating, transforming, etc and ultimately loft it ending up with something i can create a solid out of.

What i really don't get is why GH seems to create a curve with a different seam. If you look at the two screenshots, i was expecting the resulting curve to have it's startpoint at the origin and this seems to be the case until i close the curve with the periodic option. As you can see i tried also to set the seam to the middle of the curve which also doesn't work as i thought it would. For example if i rebuild the curve i need control of the seam to keep the object symmetric.

In both cases i was expecting the rebuilt curve to have the same starting point/seam and thus be symmetrical ... What's going on here ? :-) what exactly is the T parameter for the seam component ? For example if i want to divide the curve by number or length, the start/seam point seems to be randomly generated. in this case i want the resulting curves and lofts to be symmetrical to the y-axis, how can i achieve this so that origin/seam stays the same throughout transformations, divisions and rebuilds ?

thx for any help with this, this problem is coming up all the time and i have failed to find an explanation so far for this

Views: 5016

Replies to This Discussion

The mathematics of periodic nurbs geometry are quite complicated. It involves unclamped knot-vectors and repeated control-points. If you want the seam of a periodic curve to be 'at' a specific point, and the degree of your periodic curve is 3, then start picking one point to the left. If the degree is 5, start pickin 2 points to the left, etc.

Every curve has a domain. A domain is a numeric range defined by two numbers (a lower and an upper bound). Within the domain, the curve exists and the equations which govern the geometry of the curve yield decent answers. The lower limit represents the start of the curve, the upper limit the end of the curve. Everywhere in between you can evaluate curve properties (position, tangency, curvature and any other derivatives, tension, torsion etc. etc.).

There is no significance attached to the actual numbers in a domain. All that is required is that the lower limit is smaller than the upper limit. When we create curves in Rhino we tend to pick domains that represent the length of a curve, but if you scale a curve afterwards you change the length, but not the domain.

Curve parameters are numbers inside this domain. Basically, think of all curves as finite line segments which can be bend, kinked and stretched in 3D space. Curve parameters are locations on the 1-dimensional space that is defined by the line. The curve equations are all about converting those one-dimensional parameters into three-dimensional points and vectors.

Like I said, the mathematics are pretty involved and periodic curves are more difficult still.

--

David Rutten

david@mcneel.com

Tirol, Austria

thank you for your explanation and quick reply ! i have to admit i only partly understand hwat you said due to my limited understanding of maths. but what i understand is that it's not as simple and automatic as i thought.

maybe i should explain more what i am trying to do:

i am trying to understand this at a very simple level to get/keep control of symetry and divisions throughout the parametric modeling process.

so if i take a simple polygon i can divide that into equal sections and as long as i divide by an even number the point distribution stays symmetrical along the y-axis.

if i filet the polygon the symmetry is lost and it seems difficult for me to figure out how to control this and chose the start/seam point of the divisions and keep this stable throughout the modelling process.

in Rhino i would use the curve seam command to reset the seam to a point on the Y-axis and as long as i rebuild with an even number points the resulting point distribution would be symmetrical along Y as expected .. in GH i'm always fighting with this

The trick is to adjust the seam to a point on the symmetry axis.

--

David Rutten

david@mcneel.com

Tirol, Austria

Attachments:

thank you so much, i now understood the concept. however this seems to be resulting in a lot of patching, so i have to basically have one CrvCP and one Seam component before and after each transform like for example a rebuild ? or using a point charge to distort a curve ?

RSS

About

Translate

Search

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service