[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: gEDA-user: PCB: Pin shapes



[ Ales here, I'm reposting this since majordomo didn't recognize the
  e-mail as being subscribed to the geda-dev/geda-user mailinglist.  ]

-- Cut here --

Delivery-Date: Sat, 16 Oct 2004 08:57:22 -0400
From: Detlef Conradin <dconradin@xxxxxxx>


--ibTvN161/egqYuK8
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

Hi

> There's been an example of elongated pads in the newlib for 19 months. It's
> in newlib/tests/14DIP_oval_pad.
> It adds SMD pads to the top and bottom of the board coincident with the
> pins. Pcb is happy to handle that.
I found the newlib file while experimenting with Stephen Meiers example. 
It is actully mentioned in the Whats_New file. Thanks to anybody!
This was exactly what I was looking for.

However a problem occured when I tried printing my design:
If I create a board for manual manufacturing I normally set the drill size to
a very small value and print the holes too. So the pin doesn't appear filled
and the copper in the holes actually get etched away. This helps
aligning the drill bit.

The actual problem is that PCB prints the pins first and then the pads. So the
pinhole gets covered by the pad. I did a small hacked patch to  print.c.
I don't know whether this does breaks some other stuff or if this sould be
included into the main source.

Anyway, I attached a patch against the pcb-20040903 snapshot.

Detlef

--ibTvN161/egqYuK8
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="print_order.diff"

--- pcb-20040903/src/print.c.orig	2004-08-30 04:52:04.000000000 +0200
+++ pcb-20040903/src/print.c	2004-10-16 14:31:37.000000000 +0200
@@ -507,6 +507,30 @@
   /* now print the pins/pads and vias */
   if (manageFile)
     SetPrintColor (PCB->PinColor);
+
+  if (group == component)
+    {
+      if (GlobalOutlineFlag)
+	FPrintOutline ();
+      ALLPAD_LOOP (PCB->Data);
+      {
+	if (!TEST_FLAG (ONSOLDERFLAG, pad))
+	  Device->Pad (pad, 0);
+      }
+      ENDALL_LOOP;
+    }
+  else if (group == solder)
+    {
+      if (GlobalOutlineFlag)
+	FPrintOutline ();
+      ALLPAD_LOOP (PCB->Data);
+      {
+	if (TEST_FLAG (ONSOLDERFLAG, pad))
+	  Device->Pad (pad, 0);
+      }
+      ENDALL_LOOP;
+    }
+
   ALLPIN_LOOP (PCB->Data);
   {
     if (!TEST_FLAG (HOLEFLAG, pin))
@@ -549,28 +573,7 @@
       }
   }
   END_LOOP;
-  if (group == component)
-    {
-      if (GlobalOutlineFlag)
-	FPrintOutline ();
-      ALLPAD_LOOP (PCB->Data);
-      {
-	if (!TEST_FLAG (ONSOLDERFLAG, pad))
-	  Device->Pad (pad, 0);
-      }
-      ENDALL_LOOP;
-    }
-  else if (group == solder)
-    {
-      if (GlobalOutlineFlag)
-	FPrintOutline ();
-      ALLPAD_LOOP (PCB->Data);
-      {
-	if (TEST_FLAG (ONSOLDERFLAG, pad))
-	  Device->Pad (pad, 0);
-      }
-      ENDALL_LOOP;
-    }
+
 
   /* print drill-helper if requested */
   if (GlobalDrillHelperFlag && Device->DrillHelper)

--ibTvN161/egqYuK8--