Cancel
Showing results for 
Search instead for 
Did you mean: 

Geodesic? How can I create a curve on a surface that is the shortest distance between two points?

Genius
Genius

Hi all,

 

I want to create a curve that follows the shortest path between two points.  Mathematically, this is the geodesic ( https://en.wikipedia.org/wiki/Geodesic )

 

Just doing a "curve on surface" with two points with the default options doesn't look so good (see all the wiggles below).   Any ideas how to get what I want?  I've attached the part (NX10) if you want to try.

 

.Burhop_1599 Aug. 19 14.43.jpgNot so Geodesic curve

 

 

13 REPLIES

Re: Geodesic? How can I create a curve on a surface that is the shortest distance between two point

Genius
Genius

Sorry it is an igs.  For some reason, .igs and .par are ok but .prt is blocked Smiley Mad

Re: Geodesic? How can I create a curve on a surface that is the shortest distance between two point

Siemens Honored Contributor Siemens Honored Contributor
Siemens Honored Contributor

Did you try Project Curve? Create a line between the two points and then project it to the surfaces. You end up with a similar result, except without the wiggles.

 

You could also try loosening the tolerance on the Curve on Surface to eliminate the wiggles.

Regards, Ben

Re: Geodesic? How can I create a curve on a surface that is the shortest distance between two point

Genius
Genius

Thanks, but the wiggles aren't the problem.  The problem is that I need the shortest curve possible between two points.

 

There are a few ways to get something close but I'm hoping to find a way to get an exact solution.  For example, Rhino has a ShortPath function:  http://docs.mcneel.com/rhino/5/help/en-us/helpmedia/shortpath.mp4

 

Re: Geodesic? How can I create a curve on a surface that is the shortest distance between two point

Legend
Legend

Here is a way of getting it closer.  Certainly mathematically is is not exact.  What I did was to project to one face at a time.  After one face projection is done a new line is created for the next to face projection. 

 

Image1.jpg  

Re: Geodesic? How can I create a curve on a surface that is the shortest distance between two point

Siemens Phenom Siemens Phenom
Siemens Phenom

Just out of curiosity, what is the purpose of the geodesic?  Geodesics are lots of fun, mathematically, but their practical uses are few and far between, as far as I know. If you have some new application, I'd be interested to hear about it.

山田
yamada

Re: Geodesic? How can I create a curve on a surface that is the shortest distance between two point

Genius
Genius

Actually, you are probably using Geodesic curves all the time but just don't know it. They have some nice properties.

 

1. They represent the minimal distance between two points while staying on a surface.  So, if you are cutting or laying down tape, it results in the mimimal amount of material.  IF you are moving a robot arm from point A to point B but need to avoid some volume, the Geodesic helps with the minimum movement distance.

 

2. They are straight (within the surface).  Again, this is nice for anything you want to lay on a surface since it will avoid wrinkles. If you are at your desk, take some scotch tape and wrap it around something without forcing it to curve.  This is a geodesic.

 

Geodesics on a plane are straight lines.  On cylider they are either a straight line, a circle, or a helix which are all pretty useful.  

 

I just need a general solution Smiley Sad

 

Re: Geodesic? How can I create a curve on a surface that is the shortest distance between two point

Legend
Legend

A projected staight line is possible using intersection as can be seen in the image.

 

Image1.jpg

 

Frank Swinkels

Re: Geodesic? How can I create a curve on a surface that is the shortest distance between two point

Siemens Phenom Siemens Phenom
Siemens Phenom

Thanks. I was aware of the tape-laying application; it turns up often when designing with composites This works because points on the geodesic have zero geodesic curvature. This is related to the minimum distance criterion, but it takes a few pages of equations to see this, AFAIK.

 

When moving a robot, you usually need the fastest path, not the shortest, and following a surface will usually slow you down. And the geodesic is the shortest path only if the surface is convex, anyway -- you can make a straight-line jump across any concave regions.

 

Anyway, computing geodesics is hard. On all but the simplest surfaces (planes and cylinders), you have to solve some differential equations numerically. Algorithms for polygonal (facetted) objects are not too bad, so that might be an option, depending on your accuracy requirements.

 

 

山田
yamada

Re: Geodesic? How can I create a curve on a surface that is the shortest distance between two point

Siemens Phenom Siemens Phenom
Siemens Phenom

Hi,

 

There is one command that I know of that supports geodesic. It is offset curve in face, one of the offset methods supports it. I assumed that if had the correct curve on surface to start with, then offset curve in face would also offset its end point in a geodesic manner. I tried it and the curve it produced it indeed shorter than projecting the line. The projected the line was roughly 507mm. My curve was 498mm.

 

This is the only way I could think of constructing what you were after. (Liked the challenge). Recipe below.

 

Regards, **bleep**

 

Recipe:

1. red line between the points

2. on th eleft side, create intersection curve using a plane normal to curve

3. create a small curve on surface on the section

4. offset in face (geodesic) several times

5. curve on surface through the end points of the offset curve in face results

 

Dashed blue = your curve

Yellow = projection normal to face

Green = my constructed curve

 

 

Capture.JPG