FIND & PLACE Point on middle of surface that is rotated in space?

Hi All!

I have zero understanding of grasshopper, but hope to get into it this year… Please keep this in mind while answering.

Looking to place a point on every surface exactly in the middle — all of my surfaces are rotated in space and it is too time consuming to make bounding boxes etc of each one…

Here’s an image of all the random surfaces, please ignore the intersections… Please help!! I’m on a time crunch…


@theoutside @Helvetosaur @DavidRutten @pascal

Not that anyone is listening, but I just did this, somehow, I really do not know how

  1. I can’t seem to find curve through pts in grasshopper?
  2. can’t seem to find a good way to search for commands?
  3. how can I get the curve to follow a certain direction or at least not skip over the middle like it’s doing here?

Thanks this actually really impressed me – even though like no clue about anything


I think you should use Interpolate curve. it is a native component in grasshoppers.
or try to search how to make curve in grasshopper, maybe that will give you some direction to move forward

1 Like

You probaly want Interpolate or Polyline. They can be found on the Spline panel under the Curve tab.

Components are arranged in the tabs and panels by function. Until you get used to the layout, you’ll have to do some digging to find what you’re looking for. You can also double-click the canvas and start typing the name of a component and it will give you a list to pick from (not extremely useful if you don’t know the name of the component you’re looking for).

This site will show you what is on each tab with a brief description of what the components do:

You make a curve by inputting a list of points. The curve created will follow the order of the points in this list. To be effective with grasshopper, you will have to learn to manipulate lists of data.

If you’re just beginning to learn grasshopper, you’ll want to read some basic references like this one (there are lots more):


1 Like

:sweat_smile: :rofl: Thanks for the help @kev.r @Jay_vayeda

I actually ended up using my manually created surface I made yesterday because it came out better :sweat_smile: :sweat_smile: :sweat_smile:

But I was curious what it would look like if I was able to auto generate the curves instead of my basic tedious extraction… now I know… but this definitely gave me a little push into grasshopper… so yay

1 Like

Can someone help me do this grasshopper to do this:

  • select a bunch of cylinders that intersect a bunch of rotated, multisided panels, extract those intersections (ovals basically)

  • then take those intersections (ovals) and move them from their point of intersection, down on the cylinder roughly 1" away from the intersection

I have like 500 cylinders sooooo any help much appreciated!!! @kev.r @Jay_vayeda

not able to understand in words send the file if possible and an image for better understanding.

I have all these random cylinders with no centerline pipe - just cylinders

see screenshot of my step process - let me know if this is possible to make in grasshopper, I would die. (technically I do not need the centerline, I can use the seamline, but I would prefer the centerline because I’m OCD)

  1. place point on ends of circles of cylinders
  2. extract centerline point to point
  3. extract intersection curve with random surface (each cylinder has a different surface in a different location on the cylinder)
  4. once you have that intersect-curve, move that curve down the cylinder towards the other end (opposite the end that the surface is close to) exactly 1"

Hope this makes sense…

@zale_orcid Have a look at this: (30.2 KB)

Your questions individually are pretty simple, but when you put them all together and create the starting cylinders the definition starts getting large.

I recommend using either Sunglasses or Bifocals to display component names (especially while learning). I prefer Sunglasses because it seems slightly less obtrusive but both are very helpful.

You will get more help here if you try to make your own files and upload them with specific questions about where you’re stuck.

Learning grasshopper seems a bit overwhelming at first but it gets easier once you’re past the initial learning curve. Read the references, follow tutorials, and experiment by putting together your own definitions. Most questions have been answered somewhere in these forums. You can learn a lot by examining the files others have posted while answering questions.


Hell yea, thanks Kevin. I’m going to plug this in, I’m pretty far with my manual process but good news is- this project has forced me to finally investigate grasshopper enough to see where it can potentially fit into my workflow. I have the bifocals and will get the sunglasses. Thanks so much for this, I can’t wait to try it out… OK I just tried it out and no clue how to apply it to my cylinders, however I can come back to this and try to work through a step by step process, I believe working through this and having this will truly help me, and thank you so much for the Help Us Help You. Now that I work from home, I have so much more flexibility with my process and can really expand my skillset. 100% agreed with what you said. Happy to be here.

Simple question, how do I just simply remove a wire from a thing? There’s this guy I watched some tutorials on and he keeps calling things “things” and I love it…

This is me trying to pretend like I know what I am doing…

I did manage to get the centerline though :sweat_smile:

More pretending. :sweat_smile:

How could I fix this so it’s not random. I have the planes that intersect. I would need to take that intersection and then move down “opposite end” as you have… which is rad by the way

The curve at input C (Curve) of the Evaluate Curve component is being reparamaterized (note the small graphic to the left of the C. This means its domain is set to 0 to 1. The values at the t (Parameter) determine where the point will be placed (0 = at start, 0.5 = middle, 1 = at end).

This will place a point at the one quarter point along each line:

While doing this, I noticed some of the lines start points are at the bottom and some are at the top. This can be fixed by sorting the points on their z-values before constructing the center lines (added components circled in red):


Hey Kevin …

Where Can I put in my surfaces that the cylinders intersect with?

I don’t understand exactly what you’re trying to do.

If you’re wanting to create an intersection, you will want to use the Brep | Brep intersection component. In the file I posted, I used the Brep | Plane intersection component since I was using planes that I created as intersection objects.

If you’re wanting to create cylinders that start at your surfaces, you can use the Evaluate Surface component to get a plane (frame) as a starting point for your cylinders.

Can you give a better description of what you’re trying to do? And could you post the file that you’re working on?


I think I would like to use the Brep plane but I cannot locate where you have that. I have surfaces that are intersecting with my cylinders and I want to extract that intersection and then move it down

It’s in the group labeled Question #3: Intersection