Creating UV coordinates for CURVE ON SURFACE

How do you package two UV POINTS derived from two curves using SURFACE CLOSEST POINT as input for CURVE ON SURFACE?


Please click on the small red message bubble… what does it says?

Also, better, can you attach your file with internalized data? It would be simpler.

1 Like

This thread was no help (


…i just quote myself.

If the two points are in separate branches, flatten will solve the problem. But without posting your code, it’s only a wild guess. A waste of time.

1 Like

Im working on it… theres 40ft of spaghetti before this step : /
I aslo dont know how to capture a UV point or a UV array of points …

Lame excuses. You can internalize any data/geometry in a parameter component. Get used to it!

I don’t like begging and this isn’t the first time.

OK thx for that, but no luck. I dont know how to capture UV point !


NO!! :man_facepalming:

1 Like

You can just right click over the “uv” parameter and set “flatten” flag on…
I have no idea what block/components/you just used (“ptFlatten”), but i’m starting to think you don’t even have fancy wires on…

This is what you should just do:


Aaaaaaaah ok. Thank you!

This example IS working, but I would still ike to know how to properly combine UV points while I try to reduce the example that is NOT working for you

20-05-06 CurveOnSurface (5.1 KB)


this worky )

So what is the proper way to combine UV points without just stuffing two wires into one hole?

For my own sanity, I’m putting you on ignore for a month.

And… what are we doing, then?

Use Merge.
Linking multiple streams into a single input will lead to incorrect order of data (for example swapping start and end result in a flipped curve direction).
Also, by using merge you can see (if you have “fancy wires” on) that your single items merged into a list and not a tree (as joseph said).
2020-05-06 17_03_07-Window


Thank you thank you ))
Joseph, please lighten up. You are applying senior developer rules to a newb. I spent an hour searching for an example using a variety of search words. There is no user guide for Grashopper that properly discusses input types with some rudimentary examples.

I have decades of programming experience but this is still challenging. Even a newb should not struggle to figure out how to package in input. My rule of thumb is an hour of trial and error, followed by and hour searching online before I ask a question. That seems reasonable.

I suspected that I needed to create a DOMAIN or an ARRAY to comnime the two UV points. There is no information on what shift clicking a second wire into a single input actually does.

I understand you are busy, and I do appreciate your help, but please try to remember when you were learning a powerfull scripting language for the first time )

I learned 4 things in this thread:

  1. its possible to capture input for every module. I assumed this was only possible for the primitives
    2 flattenting
    3 Merge
    4 How to create a curve on the surface

And… what are we doing, then?

stay tuned… probably another 40ft of spghetti with challenges : /

Thank you both again )

No, I’m applying noob rules to a noob. If you had posted the relevant fragment of your code/geometry in your original post we would have solved it with only one reply. Asking someone again and again to post code gets old very quickly. You ignored the request again, as you did in an earlier thread. That’s ignoring the etiquette of this forum. I won’t play this game that way.

I think you misinterpreted the flow.
My initial question was generic.

How do you package two UV POINTS derived from two curves using SURFACE CLOSEST POINT as input for CURVE ON SURFACE?

It did not need an example.
When you guys asked for an example I made one. It took a few minutes.
Unfortunately it did not deminstrate the problem.

Next I tried to figure out how to chop of the first 40ft of spaghetti until Riccardo explained that the ALL THE INPUTS OF ALL THE COMPNENTS can be captured like a primitve - NEWSFLASH!!
Then I went to work on doing that… which took a few minutes
Then Riccardo explained how to FLATTEN the input… which solved the problem, so I stopped working on prepping the second example.
That is a reasonable flow for a newb. Please relax )

Good insight! I wonder if @Proterio knows what you mean?