convert Arc to polyline

convert Arc to polyline

youssefGC
Advocate Advocate
544 Views
5 Replies
Message 1 of 6

convert Arc to polyline

youssefGC
Advocate
Advocate

Hi everyone,

There is a way to convert arc segment to polyline object ?

 

0 Likes
545 Views
5 Replies
Replies (5)
Message 2 of 6

MGO-Norsyn
Advocate
Advocate

Yes, create new Polyline, add the two arc ends as vertices, calculate bulge and set it for the polyline segment.

0 Likes
Message 3 of 6

MGO-Norsyn
Advocate
Advocate
double r = arc.Radius;
double u = arcStartPoint.GetDistanceTo(arcEndPoint);
double b = (2 * (r - Math.Sqrt(r.Pow(2) - u.Pow(2) / 4))) / u;
0 Likes
Message 4 of 6

_gile
Consultant
Consultant

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;

 



Gilles Chanteau
Programmation AutoCAD LISP/.NET
GileCAD
GitHub

0 Likes
Message 5 of 6

youssefGC
Advocate
Advocate

Thank you _gile, I'm still learning from your tricks.

0 Likes
Message 6 of 6

youssefGC
Advocate
Advocate

Thank you, but it doesn't march when I put an arc with an angle greater than 180 degrees

0 Likes