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

dxf? (was: Re: gEDA-user: Making an odd-shaped PCB)



Very interesting thread. Taking it a little off topic...

A question that has come up in the past is the idea of importing data from a mechanical package to get board outline, etc. As it turns out, I'm working on another project where I have been using dxflib, which is a C++ dxf reading library.

What would pcb like to see from a .dxf file? I'm thinking that exporting board outline and mounting holes and nothing else from a dxf file would be straightforward. How might that be injected into pcb?

One idea: with the code I already have, I could turn out a simple widget that:
1) looked for a particular layer name in a .dxf file, and ignored the rest.
2) extracted lines, arcs, and circles, and ignored all other drawing entities and all entity attributes. Presumably, lines and arcs would form a board outline, and circles would represent drills for mounting screws.
3) wrote out some cheesy well-formed XML that could be imported into pcb via something magical, or put through a style sheet to make something pcb wants, or some such. Alternatively, the program could write something in a native pcb format. Or somebody that understands the pcb format could volunteer to do a native back-end.


-dave

DJ Delorie wrote:
As my design enters the pre-layout stage, I have a number of stupid
newbie questions about PCB.

Hey! You're not a stupid newbie. It takes expirience to be stupid.

Here is my first stupid newbie question.  The board that I need to make
is not rectangular, but has an odd shape.  (See my previous post about
copying someone else's form factor.)  How does one capture the odd shape
(cutouts and shaved corners) in PCB?

Rename one of your drawing layers to be "outline". Draw the outline on that layer, in 10 mil copper lines.

1. How are odd-shaped boards generally made?  Does the PCB manufacturer
   make a rectangular board first and then cut/shave/file it down as
   necessary?

No, what usually happens is your board is made on a big panel with other customer's boards. Then, a CNC mill cuts out each board according to its outline.

You normally have to tell the fab which gerber is your outline, since
they normally have a human looking at it and programming the CNC
router from it.

2. In the .pcb file there is a PCB() or PCB[] record specifying the
   board size.  Should I set it to the size that the rectangular board
   would have had if the answer to Q1 was 'yes', or something different?
   (A little larger?)

That's the size of the layout area on the screen. By default, this is also the size of your board, but if you create an "outline" layer, PCB uses that instead.

3. In this mailing list traffic I have overheard something called the
   outline or fab layer.  What exactly is it and how does it work?  And
   first of all, are "outline layer" and "fab layer" two different terms
   for the same thing, or are they two different things?

If you name a layer "outline", PCB treats it different. For example, it uses it to draw the outline on the "fab" drawing (the fab page in postscript, or the fab gerber file).

4. What should the outline layer look like?  Is it a set of lines and
   arcs forming a closed path that encircles the complete shape of the
   finished PCB, however odd it is, or just the cutouts?  This question
   links back to question 2, and is best illustrated by an example.

It should be a series of 10 mil lines and arcs, the *centerline* of which describes the outline. By "outline" I mean any cut edge, internal or external. Each FAB has a way of having you tell them which drawing/file is the outline, often by tagging one of the gerbers or submitting a README file.

Suppose my finished board needs to look like this:

  |<---------------------- 7672 mils ----------------------->|
 A|                                                          |B
--+-----------------------------------+----------------------+--
^ |                                   |   AC mains           | ^
| |                                   |   connector          | | 2040 mils
| |         This line is imaginary <--|                      | |
  |                                   |                      | V
6 |                                   +----------------------+--
5 |                                   |E  ^                  |F
6 |                                   |<--|-- 2600 mils ---->|
0 |                                   |   |
  |                                   |
m |                                   |   4
i |                                   |   5
l |                                   |   2
s |                                   |   0 mils
| |                                   |
| |                                   |   |
V |                                   |   V
--+-----------------------------------+----
 C|                                   |D
  |<----------- 5072 mils ----------->|

(This is actually a simplification, the real thing is even more complex!)

Here's what my question boils down to: should I make the "total board
size" as reckoned by PCB 7672 x 6560 mils (7672 mils = AB distance, 6560
= AC distance), or something larger?

Either. If you make it larger, you'll be able to, for example, have elements whose silkscreen goes beyond the edge of the final board.

If I choose the exact ABxAC
dimensions as my PCB size, that'll be the hard boundary of the "world"
within which PCB will allow me to draw on any layer, right?  In that
case how would I draw the whole ACDEFB shape on the outline layer?

You can draw *on* the edge of the world boundary, just not *past* it.

Or can one have lines on a layer that run exactly along the edge of
the drawable universe?

Yes.

Or should my outline layer depict just the DEF
cutout (i.e., consist of just two lines: DE and EF), with all other
edges and corners specified implicitly by the "total board size"
setting?

No. An outline layer *replaces* the default outline, it does not *augment* it.

5. Is the fab/outline layer identified by a special magic layer name in
   PCB?  Is it "fab" or "outline" or what?

The outline layer is called "outline". The fab drawing is created by PCB as an output layer, as a combination of the outline layer, a drill reference, and some other info.


_______________________________________________ geda-user mailing list geda-user@xxxxxxxxxxxxxx http://www.seul.org/cgi-bin/mailman/listinfo/geda-user




_______________________________________________
geda-user mailing list
geda-user@xxxxxxxxxxxxxx
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user