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

Re: gEDA-user: PCB paste layer, revisited.



On Sat, 2007-10-13 at 20:37 -0400, DJ Delorie wrote:
> > > My current workflow is ps -> dxf via converter.
> 

> But I'm thinking a whole new syntax for the new item:
> 
>     MultiPin ( ... )
> 
> It will have to be structured, like a resource file (or perhaps we
> switch to that, which would make things easier) because each layer is
> built, like Elements are built from lines, arcs, pads, and pins.
> There are a lot of things you *can* put in, but you won't always put
> them *all* in, and each layer (copper, paste, etc) can be described in
> terms of many shapes, like circles, arcs, polygons, lines, anti-lines,
> etc.
> 

And pads for inner layers (and anti-pad clearances) with different
annulus dimensions in the padstack.

> Example syntax:
> 
> Element [] (
> 
>     MultiPin (
>       Name("foo");
>       Number(45);
> #      Layer("topcopper") (
        Layer (0) (     <-- use layer numbers to by-pass the trouble of
determining the layer names.
>         ElementLine [];
>         ElementLine [];
>         ElementLine [];
>         ElementLine [];
>         ElementArc [];
> 	Polygon [ ... ]
>       )
>       Layer("plateddrill") (
>         Drill [];
>       )
>       Layer("paste") (
>         Polygon [ ... ];
        Layer("frontsilk") (  <-- to allow for stuff to be printed.
        )
        Layer("backsilk") (  <-- see above.
>       )
>     )
> 
> )
> 
> But that's just scribbles off the top of my head.
> 
> I'm also thinking we'd need to support a "common" pin definition
> somehow, so we can instantiate N pins without describing all N of
> them:
> 
> 	MultiPinDup ("foo" 4500 1500);
> 
> Then, I'm thinking we use the same syntax at the element level to add
> copper, mask, anti-mask, silk, keepouts, etc - to the element itself.
> 
> 

FWIW, I think we could use the attribute mechanism (as in gschem) to
apply/override stuff to a pin/pad on a specified layer.

An example for pin to show the principle:

<example>
Element[0x0 "LED_T1T75" "" "" 0 0 12000 -7000 0 100 0x0]
(
   Pin[5000 0 7500 2000 9500 4600 "" "1" 0x01]
   (
	Attribute("Pad" "2 2000 7500")  <-- "layernumber clearance annulus"
   )
   Pin[-5000 0 7500 2000 9500 4600 "" "2" 0x01]
   (
	Attribute("Pad" "2 2000 7500") 
   )
   ElementLine[10000 5700 10000 -5700 1000]
   ElementArc[0 0 11500 11500 210 300 1000]
   
)
</example>

I don't know how terrible this would break the file format, the
Attribute is there already.

And I don't know if the parse expects attributes attached to a pin.

Another example for pad:

<example>
Element["" "0603 1.6mm x 0.8mm, 0.3mm terminal" "" "" 0 0 0 0 0 100 ""]
(
         Pad[-2953 984 -2953 -984 1968 1600 3168 "1" "1" "square"]
         (
	     Attribute("Paste" "-2953 984 -2953 -984 1768 1800 3168")
         )
         Pad[2953 984 2953 -984 1968 1600 3168 "2" "2" "square"]
         (
	     Attribute("Paste" "2953 984 2953 -984 1768 1800 3168")
         )
         ElementLine[-3937 -3268 5237 -3268 1000]
         ElementLine[-3937 3268 5237 3268 1000]
         ElementLine[5237 -3268 5237 3268 1000]
         ElementLine[-5237 -1968 -5237 1968 1000]
         ElementArc[-3937 -1968 1300 1300 0 -90 1000]
         ElementArc[-3937 1968 1300 1300 0 90 1000]
)
</example>

Or just add a "Paste" tag to the file format:

<example>
Element["" "0603 1.6mm x 0.8mm, 0.3mm terminal" "" "" 0 0 0 0 0 100 ""]
(
         Pad[-2953 984 -2953 -984 1968 1600 3168 "1" "1" "square"]
         (
	     Paste[-2953 984 -2953 -984 1768 1800 3168]
         )
         Pad[2953 984 2953 -984 1968 1600 3168 "2" "2" "square"]
         (
	     Paste[2953 984 2953 -984 1768 1800 3168]
         )
         ElementLine[-3937 -3268 5237 -3268 1000]
         ElementLine[-3937 3268 5237 3268 1000]
         ElementLine[5237 -3268 5237 3268 1000]
         ElementLine[-5237 -1968 -5237 1968 1000]
         ElementArc[-3937 -1968 1300 1300 0 -90 1000]
         ElementArc[-3937 1968 1300 1300 0 90 1000]
)
</example>

Kind regards,

Bert Timmerman.

> _______________________________________________
> 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