Method ToGeoPolylineArc3
- Namespace
- GeometryHelper.TeklaConvert
- Assembly
- GeometryHelper.TeklaConvert.dll
ToGeoPolylineArc3(IEnumerable<Point>, IList<double>)
Converts a run of Tekla points into a chain that may curve, bending it at each turn.
public static GeoPolylineArc3 ToGeoPolylineArc3(this IEnumerable<Point> points, IList<double> bendingRadii)
Parameters
pointsIEnumerable<Point>bendingRadiiIList<double>
Returns
ToGeoPolylineArc3(IEnumerable<Point>, IList<double>, Tolerance)
Converts a run of Tekla points into a chain that may curve, bending it at each turn, within a tolerance.
public static GeoPolylineArc3 ToGeoPolylineArc3(this IEnumerable<Point> points, IList<double> bendingRadii, Tolerance tolerance)
Parameters
pointsIEnumerable<Point>The points the thing is set out by, in order; at least two.
bendingRadiiIList<double>A radius for each bend, in order, the first belonging to the first point that turns. A list as long as the points is read the same way, with the entries for the two ends ignored, because nothing turns at either end. A radius of nought, a short list, or no list at all leaves that bend square.
toleranceToleranceThe tolerance; Tekla coordinates run large, so this is worth giving.
Returns
- GeoPolylineArc3
The chain: straight runs with a tangent arc at every bend that had room for one.
Remarks
This is what a set-out becomes: a reinforcing bar is not the polyline it is typed as, it is that
polyline with a tangent arc at every bend, so it is shorter than its set-out and does not pass
through its own corners. A bend with too little straight run either side to fit its radius is left
square rather than forced, and where two bends want more of the run between them than it is long,
the one taking more of it gives way. Both are reported through GeometryHelperLog at debug
level.
Exceptions
- ArgumentNullException
Thrown when the points are null.
- ArgumentException
Thrown when fewer than two distinct points are given, or one of them is null.