Question

Creating 3d Polyline offsets from a rail


Badge
Hello everybody,

 

I hope everybody is doing well!

But for the question, I'm currently looking at creating 3d polylines from a rail.

I have used the offsetcurvegenerator for getting an offset and then use the neigbourhoodfinder to rebuild my polyline. Now the problem is I need to get the the exact same vertices on the offset polyline as these from the original, as these are the points where the rail was measured. And I don't get this with the offsetcurvegenerator.

I have seen the use of the buffer transformator but also this isn't giving me the correct results.

Can somebody guide me into solving this problem.

Many thanks and keep safe,

Andreas


10 replies

Userlevel 1
Badge +21

A line only made up of the same number of vertices as the original line, or the original vertices added to the offset line?

Badge

A line only made up of the same number of vertices as the original line, or the original vertices added to the offset line?

Isn't that the same amount of vertices? But a line made up with the same amount of vertices would be sufficient I guess. Can you elaborate why this is so different?

Userlevel 1
Badge +21

Isn't that the same amount of vertices? But a line made up with the same amount of vertices would be sufficient I guess. Can you elaborate why this is so different?

Because if you have a line that curves outwards and you offset in that direction you need more vertices to accurately represent an offset of that curve. The curve offsetter doesn't just move the line in a certain direction, the geometry is changed and the line is a different length (which may have implications for your workflow if you are concerned with particular measurements)

Badge

Because if you have a line that curves outwards and you offset in that direction you need more vertices to accurately represent an offset of that curve. The curve offsetter doesn't just move the line in a certain direction, the geometry is changed and the line is a different length (which may have implications for your workflow if you are concerned with particular measurements)

Oke yes, stupid I didn't think of that. The offset is (0.036 m) so there is a minimal change when offsetting the polylines as the measured points are each 5m apart from eachother . I guess no extra vertices are needed to describe the curve. The curve offsetter mainly skips vertices when it's more of a straight trajectory.

Userlevel 1
Badge +21

How are you using the neighbourfinder to rebuild your polyline?

To get a line with the same number of points, I'd chop the original line into vertices, then use a neighbourfinder to find the closest point on the offset line to each vertex, replace the point with the closest point and then rebuild the line.

Badge

How are you using the neighbourfinder to rebuild your polyline?

To get a line with the same number of points, I'd chop the original line into vertices, then use a neighbourfinder to find the closest point on the offset line to each vertex, replace the point with the closest point and then rebuild the line.

Hey,

 

above an image of my current workspace. I'm already this far, but how can I find the closest point on the offset line when this offset line is a simplified version of the original line?

Thanks already for the input

Userlevel 1
Badge +21

Hey,

 

above an image of my current workspace. I'm already this far, but how can I find the closest point on the offset line when this offset line is a simplified version of the original line?

Thanks already for the input

Take the original line and split that into points, these are then the base in the neighbour finder with the offset line as the candidate. After the match use the closest_candidate_x and closest_candidate_y in a vertex creator to replace the original vertices with a vertex that falls on the offset line
Badge
Take the original line and split that into points, these are then the base in the neighbour finder with the offset line as the candidate. After the match use the closest_candidate_x and closest_candidate_y in a vertex creator to replace the original vertices with a vertex that falls on the offset line

That indeed seemed to make it work!

Thanks for the help and stay safe!

Badge +5
Take the original line and split that into points, these are then the base in the neighbour finder with the offset line as the candidate. After the match use the closest_candidate_x and closest_candidate_y in a vertex creator to replace the original vertices with a vertex that falls on the offset line

Hi @ebygomm. I'm doing a similar operation and struggling with the same issue. Would you happen to have a diagram of the above mentioned workflow? It's crucial the points are indeed in the right location when accuracy is a concern.

Badge +5
Take the original line and split that into points, these are then the base in the neighbour finder with the offset line as the candidate. After the match use the closest_candidate_x and closest_candidate_y in a vertex creator to replace the original vertices with a vertex that falls on the offset line

FYI this didn't work for me. The image below indicates where the offset should be. It appears to work okay on straight lines however when the geometry has more complex changes in direction it has not worked. This has given the correct number on points but not correct parallel offset locations.

Blue = source centre line

Green = Offsetcurvegenerator offset location

Red = Method using neighbourfinder to correct the number of vertices

What we need is a correct 3D parallel figure transformer. I put up an idea on the forum if enough people are interested to upvote it?

 

Reply