(New user) Curves that are both point- and non-point adherant

So I’ve just downloaded Rhino and am playing with it for the first time. Coming from the world of ACAD LT. Would like to produce CAD drawings with some 3D elements to them.

We do a lot of surveys of roadways (edges of pavement, sidewalks, center lines, etc). We shoot edges of pavement and will identify which shots represent points of tangency. However, most CAD programs don’t automatically draw these curves to our satisfaction, so we hand-draw them the way we feel is representative of the real-world road.

So… Surveyed section of roadway has Points A to B which are on a straightaway, B is a PT and leads into a curve of points B, C, and D. In LT, while drawing this curve, I will place a control (non-surveyed) point about 95% of the way towards Point B. Call it A2. This keeps the A-A2-B portion straight while allowing B-C-D to curve properly. This only works because this curve is being drawn with all points set to elevation 0.00.

In Rhino, a curve drawn goes through points at their true elevation (what I want). But creating my A2 to aid in keeping the A-B portion straight doesn’t work because A2 is created at an elevation of 0.00 while Points A and B might be at 100.00. From the top view, it looks incorrect (loopy), even though it really isn’t.

Is there a way to create a new point some distance between two existing points on a curve and have it inherit an interpolated elevation? Or is there some way to give the points a sort of “bezier corner” property? In 3DS Max, using the Refine tool can modify a spline in such a way.

Thanks much. Looking forward to learning Rhino.

John

Does holding the Ctrl key when you click to draw a point in a curve help here? This will allow you to Osnap to a point or along a curve in one view and then set it’s height in another potentially also using an Osnap. If I’m way off here, do you have a picture that illustrates what you’re doing or a simple 3dm file you can post?

Thanks for the feedback. The first image is from ACAD LT. Note the extra control point near point 1040. The second image is a default curve through points. In the third image, I tried holding down CTRL while clicking near point 1040, then clicking a second time ON point 1040, then continuing the curve through points 1040-1042. So that was better, but isn’t very forgiving when you are placing that point blindly. From that third technique, can I adjust that (now) invisible point I created to tighten up the line?

John

Uploading…
Uploading…
Uploading…

Thanks for the images. If the curve is planar and parallel to the active Cplane, the Ctrl key tip may not be much value here but you can use Osnaps and SmartTrack guides to align to the points as you draw. Check out the help file on SmartTracks if you’re not using them already…
http://docs.mcneel.com/rhino/5/help/en-us/commands/smarttrack.htm

Another thing that I bet could help here is the idea of drawing more than one curve and using BlendCrv if there is a space between them or Match if they touch but you want to change the continuity between them. Lastly, to edit a curves control points you can either use PointsOn (F10) or EditPtOn to display edit points directly on the curve. Make sure to use Osnaps to snap to or get SmartTracks on existing objects.

Still playing around with this. The line is not planar as it goes through multiple points at different elevations.

It seems like Match works a little closer to what I’m looking for, but not quite exact. I tried creating two curves: 1039-1040 and 1040-1042 (yellow lines) and joining them using Match. The black line is the result, which is what I’m looking for visually, but it is pulling off point 1041. It needs to stay (exactly) locked on its XYZ.

So still playing, but realize there may NOT be a solution.

Thanks,
John


For this particular case, try the following.

  1. line from 1028 to 1040
  2. interpolated curve with 1042, 1041 & 1040 (this should fit those point exactly)
  3. trim away curve segment between 1041 & 1040 (use the point 1041 for the trim)
  4. blendcrv with tangency or curvature continuity between the two segments

This should leave you with a fair curve that hits all the points exactly.

Rebuild & match may also come in handy to fine tune the result.

Upload an example file if you want.

regards,
Nick.

1 Like

Nick,

That worked perfectly. As with other CAD programs, top-view added control points appear to be placed at a Z of 0.00. Combined with elevated survey points, the control points look okay only from the top but create curved sections from any other angle. Your solution doesn’t add any manually placed control points and I think that’s why it works.

Again, this is all new to me. Thanks to both of you for your assistance.

I think the Refine tool in 3DS Max is very handy. Might be something for the Rhino dev team to look at.

Not a problem John,

What I always tell newbies is that Rhino can do anything, just need enough practice to know how to use it.

Hello from Germany (an therefore, please, apologise my bad english :wink: )

There is a simple way to solve your problem: Draw the first (straight)
curve between pt. 1039 and 1040 (or any other curve).

In the next step you have to use “_InterpCrv” with the option
"_StartTangent". Now you have to follow the prompted commands: Pick
near the end of the first line and select the direction of the tangent.
Continue by picking the next points of your curve (1041, 1042 and so on). If
you have to connect to a second curve, use the option “EndTangent” as
well. Thats it.

Best regards

Christian

2 Likes

Christian,

Thanks a ton. This is pretty much a perfect solution to my particular situation.

I created the yellow line using the technique you described, setting both the start and ending tangents. From the side view, there is a slight elevation rise coming out of the curve, but it’s really nothing I can’t tweak.

And your English is much better than my German. No apologies.

Thanks again,
John

1 Like

Hi John,

sorry for my delay, I’m totally buissy at the moment.
It’s a great pleasure to me, that my solution works :wink:

Best regards
Christian