Community notifications may experience intermittent interruptions between 10–12 November during scheduled maintenance. We appreciate your patience.
Yes, create new Polyline, add the two arc ends as vertices, calculate bulge and set it for the polyline segment.
double r = arc.Radius;
double u = arcStartPoint.GetDistanceTo(arcEndPoint);
double b = (2 * (r - Math.Sqrt(r.Pow(2) - u.Pow(2) / 4))) / u;
Hi,
Here's an example (refactored code):
var pline = new Polyline();
double angle = arc.EndAngle - arc.StartAngle;
if (angle < 0.0)
angle += 2.0 * Math.PI;
double bulge = Math.Tan(angle / 4.0);
var plane = new Plane(Point3d.Origin, arc.Normal);
pline.AddVertexAt(0, arc.StartPoint.Convert2d(plane), bulge, 0.0, 0.0);
pline.AddVertexAt(1, arc.EndPoint.Convert2d(plane), 0.0, 0.0, 0.0);
pline.Normal = arc.Normal;