> If Auto enforce DRC clearance is on, lines (traces) starting from a
> pad always snap to one of the pad endpoints.

This appears to be completely intentional, although I don't know the
reason behind it.



      if (TEST_FLAG (AUTODRCFLAG, PCB) && Settings.Mode == LINE_MODE)
        {
          printf("1 %d %d\n", Crosshair.X, Crosshair.Y);
          type = SearchScreen (Crosshair.X, Crosshair.Y,
                               PIN_TYPE | PAD_TYPE | VIA_TYPE, &ptr1, &ptr2,
                               &ptr3);
          printf("2 %d %d\n", Crosshair.X, Crosshair.Y);
          LookupConnection (Crosshair.X, Crosshair.Y, True, TO_PCB (1),
                            FOUNDFLAG);
          printf("3 %d %d\n", Crosshair.X, Crosshair.Y);
        }
      if (type == PIN_TYPE || type == VIA_TYPE)
        {
          Crosshair.AttachedLine.Point1.X =
            Crosshair.AttachedLine.Point2.X = ((PinTypePtr) ptr2)->X;
          Crosshair.AttachedLine.Point1.Y =
            Crosshair.AttachedLine.Point2.Y = ((PinTypePtr) ptr2)->Y;
        }
      else if (type == PAD_TYPE)
        {
          PadTypePtr pad = (PadTypePtr) ptr2;
          float d1, d2;
          d1 = SQUARE (Crosshair.X - pad->Point1.X) +
            SQUARE (Crosshair.Y - pad->Point1.Y);
          d2 = SQUARE (Crosshair.X - pad->Point2.X) +
            SQUARE (Crosshair.Y - pad->Point2.Y);
          if (d2 < d1)
            {
              Crosshair.AttachedLine.Point1 =
                Crosshair.AttachedLine.Point2 = pad->Point2;
            }
          else
            {
              Crosshair.AttachedLine.Point1 =
                Crosshair.AttachedLine.Point2 = pad->Point1;
            }
        }
      else
        {
          Crosshair.AttachedLine.Point1.X =
            Crosshair.AttachedLine.Point2.X = Crosshair.X;
          Crosshair.AttachedLine.Point1.Y =
            Crosshair.AttachedLine.Point2.Y = Crosshair.Y;
        }


_______________________________________________
geda-user mailing list
[email protected]
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user

Reply via email to