0

I am trying to construct the arcs applying Eyeshot 12. I use the constructor: Arc(Plane, 2D center point, 2D start point, 2D end point). I have two arcs. The end point of one of them is exactly the same as the start point of the another one. In spite of that, Eyeshot constructs the arcs with significant gap between these points. Is this a bug , or I am doing somethying wrong?

The parameters of my arcs are as follows: Arc1: 2D center point = (-0.655572, 0.160451), 2D start point = (-0.008477, 0.049511), 2D end point = (0.000385, 0.1271105). Arc2: 2D center point = (-1.789206, 0.218072), 2D start point = (0.000385, 0.1271105), 2D end point = (0.002240, 0.177704).

Jnadieri
  • 1
  • 1

1 Answers1

1

The radius of each arc is defined as the distance between the center and the startpoint. So if you pass an endpoint that has a different distance from the center, the arc will not pass through the endpoint. In both of your arcs, these distances are different, and that's why you get the gap:

  • C1-Sta1 = 0.65653607869255759
  • C1-End1 = 0.65680375668022029
  • C2-Sta2 = 1.7919012087063424
  • C2-End2 = 1.7919007635301683

So if you want the first arc to end at the point in common with the second arc, you need to treat that point as a start, and then revert the arc's orientation:

            Plane pl = Plane.XY;

            Point2D c1 = new Point2D(-0.655572, 0.160451);
            Point2D c2 = new Point2D(-1.789206, 0.218072);

            Point2D s1 = new Point2D(-0.008477, 0.049511);
            Point2D s2 = new Point2D(0.000385, 0.1271105);

            Point2D e1 = new Point2D(0.000385, 0.1271105);
            Point2D e2 = new Point2D(0.002240, 0.177704);

            Plane plInv = new Plane(pl.Origin, pl.AxisY, pl.AxisX);
            Arc a1 = new Arc(plInv,plInv.Project(pl.PointAt(c1)), plInv.Project(pl.PointAt(e1)), plInv.Project(pl.PointAt(s1)));
            a1.Reverse();

            Arc a2 = new Arc(pl,c2,s2,e2);
sgiulia
  • 31
  • 4