Turning a 2D curve into 3D curve

I have a 2D curve with certain points and I want to create a 3D curve in green colour.

I do know the start and end point Z-value so I have move them into the right place but how can I align the rest points to their places on the green curve? Suppose the green curve with a constant slope.

Hi @bernard.tsang

I am afraid I think I am missing something here…
Is the intention to pull some transition points of the 2D red curve onto an existing 3D green curve?

Rodolfo Santos

No, the green curve is what I want to create. What I have now is the 2D red curve and the Z value of start and end point of the green curve which I have move them already

you can use the _Crv2View command, for example:

it will make an extrusion of each curve you select on each view and then return the intersection between them.

It is not working, or it is supposed to cost a large amount of time?

Right and then, where are supposed to be moved the other points

  • To known Z coordinates ?
  • Through vertically constraint distances ?
  • Eyeball moved in Z ?

Rodolfo Santos

I just know the start and end point Z value

I want the interval points automatically rise to certain value.

For example, my start is +100 and end is +1000, and the interval point Z value should be equal to

[(Length from start) / (Length of Curve) * 900 ] +100

Is this the idea ?

It seems that you are after a parametric behaviour here ( may be laborious, manually… )

Have you considered using Grasshopper to implement such a behaviour and automate things ?
A scripted solution would be another way…

Rodolfo Santos

This is my idea, I wonder if rhino can do the job so that I can save a lot of time… but still thank you.

I would recommend to solve this using GH, then.

Rodolfo Santos

Try the Shear command.

Entire curves, control points or edit points can be moved to specific x, y and/or z coordinates using SetPt.

that’s true but it would cost a lot of time for me to calculate the corresponding z value of each points to make the curve coz there are thousands of them

It is not clear what you want to do. Can you provide a .3dm file with a simple example of input data and what the result needs to be.

If you have a curve with the desired z as a function of x or y then ExtrudeCrv that curve and Project the starting curve onto the extruded surface.

Example: CurveProjectDC01.3dm (1.6 MB)

If you have a single curve with thousands of points then you need to Rebuild or FitCrv that surface with many fewer points, and/or Split it into several curves.

If you want to a curve with constant grade from the flat, 2D curve then:
ExtrudeCrv a vertical surface from the 2D curve
Put a point at the desired end of the new curve.
ShortPath on the extruded surface from the start of the 2D curve to the point.
ConstantGradeDC01.3dm (1.6 MB)

I agree with David.

From what I understood, you are attempting to elevate a set of points in Z using Ratio’s that are mainly calculated using distances along the original path (from start to t ) and the total length of that path

Is that the intent ?

Rodolfo Santos