Mail Archives: geda-user/2015/05/29/13:35:42
--089e0158ada244aad005173be6d2
Content-Type: text/plain; charset=UTF-8
I am currently playing with porting kicad modules to geda pcb footprints.
Legacy format works well, and I am implementing s-file format conversion
now.
my utility currently converts a kicad slot into two pins of the right size,
the right distance apart, joined by pads, in a geda footprint, but an
actual slot would require G85 post processing of the gerber if used at this
point in time.
it is worth looking at how they do slots, namely, a variation on a through
hole pin definition, with a slot of height x width
It might be worth keeping the implementation similar enough to allow easy
conversion from kicad to geda footprints.
I too had thought about "slot" being the obvious flag in a pin or similar
definition.
Don't forget, the "slot" keyword may be needed on the "onsolder" layer pin
or pad definition too, if it is to be through hole plated and not a
circular geometry.
conventional hole in kicad legacy format:
Dr Size X Y
"Round hole of Size. The X,Y position is relative to the position of the pad
(see Po)."
slot definition, legacy format, in which drill size is ignored, and slot
size is W, H:
Dr Size X Y O W H
"Slotted hole (obround shape). The Size field can be ignored, as it is
overruled by the W and H fields."
The new kicad s-file format:
(drill oval w h (offset x y))
"Slotted hole of the given width and height (this section is only present
for
through-hole pads). Note that if the pad is rotated, the hole shape rotates
too."
Cheers,
Erich.
On Sat, May 30, 2015 at 2:44 AM, <gedau AT igor2 DOT repo DOT hu> wrote:
>
>
> On Fri, 29 May 2015, Mike Crowe (mcrowe AT gcdataconcepts DOT com) wrote:
>
> Hello All
>>
>> I've been using gEDA pcb for several years now have found it to be an
>> excellent, stable, "meat and potatoes" tool for board layout.
>>
>> While there are several features I'd like to have implemented (keep out
>> regions, blind and buried vias, footprints that allow generic traces,
>> add pad flags 'start-round', 'stop-round'...) there is one feature that
>> I'd really like to see. The ability to put slot on a board as part of a
>> footprint. I'm interested in enough to volunteer time to help implement
>> this.
>>
>> On the output NC-drill side, implementing it seems simple enough. It
>> would be a start point, a "G85" keyword and an end point. There is some
>> preliminary code support for viewing slots in gerbv (git version).
>>
>
> Does this mean a slot is a straight line?
>
> What if the user wants a triangle milled out or an L shaped slot?
>
> Of course combining multiple slots could solve this. The question is
> what's better: a simple, one-geometry-only slot with the hack that the user
> needs to build more compelx shapes using more of them, or a complex slot (a
> list of lines and arcs, for example).
>
> At the footprint side, it seems to me that a new keyword identifier is
>> in order, maybe "slot" It would have to properties of a "pin" except
>> that it would have a start and stop point.
>>
>
> We have an outline layer with special properties. If the user wants to do
> custom shaped cutouts, he can draw them there. Does the above paragraph
> mean that a slot differs from such cutouts in only one sense, that it's
> also a pin?
>
> If so, I'd probably go for a different combination, and decouple "ring"
> shape from "hole" shape:
>
> - the hole is either a circular hole or an arbitrary poly (== slot, the
> edges of the poly can be converted to a list of line segments for milling)
>
> - the ring is either a filled circle or a filled poly above the hole
>
> The original PCB code has support for square and octagonal rings, and
> afaik they are implemented as polys, so the second point is almost there.
> In my fork I have funny shaped rings, some of them assymetrical. While
> working on that feature, I realized that some random parts of the code
> (thermals for example) hardwire assumptions on the shape of the ring, and
> do not play nice with arbitrary shaped rings. The code probably also
> assumes holes to be circular, but that would need to be revised/changed
> with any other slot mechanism as well.
>
> Regards,
>
> Igor2
>
--089e0158ada244aad005173be6d2
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr"><div>I am currently playing with porting kicad modules to =
geda pcb footprints. Legacy format works well, and I am implementing s-file=
format conversion now.<br><br></div><div>my utility currently converts a k=
icad slot into two pins of the right size, the right distance apart, joined=
by pads, in a geda footprint, but an actual slot would require G85 post pr=
ocessing of the gerber if used at this point in time.<br></div><div><br></d=
iv><div>it is worth looking at how they do slots, namely, a variation on a =
through hole pin definition, with a slot of height x width<br><br></div><di=
v>It might be worth keeping the implementation similar enough to allow easy=
conversion from kicad to geda footprints.<br><br></div><div>I too had thou=
ght about "slot" being the obvious flag in a pin or similar defin=
ition.<br><br></div><div>Don't forget, the "slot" keyword may=
be needed on the "onsolder" layer pin or pad definition too, if =
it is to be through hole plated and not a circular geometry.<br></div><div>=
<br></div>conventional hole in kicad legacy format:<br><div><br>Dr Size X Y=
<br>"Round hole of Size. The X,Y position is relative to the position =
of the pad<br>(see Po)."<br><br></div><div>slot definition, legacy for=
mat, in which drill size is ignored, and slot size is W, H:<br></div><div><=
br>Dr Size X Y O W H<br>"Slotted hole (obround shape). The Size field =
can be ignored, as it is<br>overruled by the W and H fields."<br><br><=
/div><div>The new kicad s-file format:<br><br>(drill oval w h (offset x y))=
<br>"Slotted hole of the given width and height (this section is only =
present for<br>through-hole pads). Note that if the pad is rotated, the hol=
e shape rotates<br>too."<br></div><div class=3D"gmail_extra"><br></div=
><div class=3D"gmail_extra">Cheers,<br><br></div><div class=3D"gmail_extra"=
>Erich.<br></div><div class=3D"gmail_extra"><br><br><div class=3D"gmail_quo=
te">On Sat, May 30, 2015 at 2:44 AM, <span dir=3D"ltr"><<a href=3D"mail=
to:gedau AT igor2 DOT repo DOT hu" target=3D"_blank">gedau AT igor2 DOT repo DOT hu</a>></span=
> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0=
.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span class=
=3D""><br>
<br>
On Fri, 29 May 2015, Mike Crowe (<a href=3D"mailto:mcrowe AT gcdataconcepts DOT co=
m" target=3D"_blank">mcrowe AT gcdataconcepts DOT com</a>) wrote:<br>
<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-=
left:1px solid rgb(204,204,204);padding-left:1ex">
Hello All<br>
<br>
I've been using gEDA pcb for several years now have found it to be an<b=
r>
excellent, stable, "meat and potatoes" tool for board layout.<br>
<br>
While there are several features I'd like to have implemented (keep out=
<br>
regions, blind and buried vias, footprints that allow generic traces,<br>
add pad flags 'start-round', 'stop-round'...) there is one =
feature that<br>
I'd really like to see.=C2=A0 The ability to put slot on a board as par=
t of a<br>
footprint.=C2=A0 I'm interested in enough to volunteer time to help imp=
lement<br>
this.<br>
<br>
On the output NC-drill side, implementing it seems simple enough.=C2=A0 It<=
br>
would be a start point, a "G85" keyword and an end point.=C2=A0 T=
here is some<br>
preliminary code support for viewing slots in gerbv (git version).<br>
</blockquote>
<br></span>
Does this mean a slot is a straight line?<br>
<br>
What if the user wants a triangle milled out or an L shaped slot?<br>
<br>
Of course combining multiple slots could solve this. The question is what&#=
39;s better: a simple, one-geometry-only slot with the hack that the user n=
eeds to build more compelx shapes using more of them, or a complex slot (a =
list of lines and arcs, for example).<span class=3D""><br>
<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-=
left:1px solid rgb(204,204,204);padding-left:1ex">
At the footprint side, it seems to me that a new keyword identifier is<br>
in order, maybe "slot"=C2=A0 It would have to properties of a &qu=
ot;pin" except<br>
that it would have a start and stop point.<br>
</blockquote>
<br></span>
We have an outline layer with special properties. If the user wants to do c=
ustom shaped cutouts, he can draw them there. Does the above paragraph mean=
that a slot differs from such cutouts in only one sense, that it's als=
o a pin?<br>
<br>
If so, I'd probably go for a different combination, and decouple "=
ring" shape from "hole" shape:<br>
<br>
=C2=A0- the hole is either a circular hole or an arbitrary poly (=3D=3D slo=
t, the edges of the poly can be converted to a list of line segments for mi=
lling)<br>
<br>
=C2=A0- the ring is either a filled circle or a filled poly above the hole<=
br>
<br>
The original PCB code has support for square and octagonal rings, and afaik=
they are implemented as polys, so the second point is almost there. In my =
fork I have funny shaped rings, some of them assymetrical. While working on=
that feature, I realized that some random parts of the code (thermals for =
example) hardwire assumptions on the shape of the ring, and do not play nic=
e with arbitrary shaped rings. The code probably also assumes holes to be c=
ircular, but that would need to be revised/changed with any other slot mech=
anism as well.<br>
<br>
Regards,<br>
<br>
Igor2<br>
</blockquote></div><br></div></div>
--089e0158ada244aad005173be6d2--
- Raw text -