X-Authentication-Warning: delorie.com: mail set sender to geda-user-bounces using -f X-Recipient: geda-user AT delorie DOT com X-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to; bh=WXzx4lE9h+vLoZZq3zxr0InaEy1LtqloOZltJaaOC10=; b=GenGkIOc89yKfchBRFB3KzhRTPyfFYvGeDfJQyiw8CAkg73HkfLJJtPV9tDosLlOWj N9VJjTy3lGrkMzzGQKF+Hc03seQwPptiprVHQTqd4FEfftGkY9ZYCTOjcWADk1qNN6o5 V4wZHZHzafxIoWNFSrNZItqTjrg+kPm8BeEyfgVx/0SDLSAQYuaVu+LsntDcVntY1E+P QUTVNeOXxRZB7mbQ93xJm85MAlbiFyTrEY6LLaXum5dRuAS5X11914RpMDEVaI0LZXy6 jjm56d+SNct0e5M9O+vw6hkgpIl2JOkp/RHVjHexplG1UiczBiptDeSqf7vEn461oECi UGsQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to; bh=WXzx4lE9h+vLoZZq3zxr0InaEy1LtqloOZltJaaOC10=; b=NmAKpwB2Bhg3IjmE+aOBjYdiC0bX72TFxjYM/aaEzd5kE53KV12fmNn0xAsFWoFRPT +dtR0hw0StjPlAcyr8NcibKVIFav/4Q2EV4r2Ob/sp8bih6hjBFFGQP0o6vVOjvUHN+r +BCVBWXmfM944iEhFNWeoujaB/oh3lVQ1VaFKSW+QQpO3mnNrxs9R0+GIbDUCuZf+QN3 1hWHGCfxjc1rdxDnrIF3Q5S1B1vs+JXOEd3q/wGpzM2L0a047O4bpeUwtdxUoWVlB1Cd 5IIVYCC+u8r3bTn5zdEdz41vPWaUprK30rFkgbQg8AGMZIJxQcmUDaXCXG2Sz9ytSDfv pRtw== X-Gm-Message-State: AD7BkJLC2vvI3oVyMD49746X0GbLjjfUqx3GVFTYuj9Tm0Xxf+0s4VkphV7hUOlJquZYYLcaLt986Rx5mHRg6g== MIME-Version: 1.0 X-Received: by 10.202.181.11 with SMTP id e11mr17151175oif.77.1457447362191; Tue, 08 Mar 2016 06:29:22 -0800 (PST) In-Reply-To: <20160308132232.52A0E8153705@turkos.aspodata.se> References: <56DCAE39 DOT 7020204 AT m0n5t3r DOT info> <20160307015049 DOT 097EF8153704 AT turkos DOT aspodata DOT se> <20160307123849 DOT AF59B8153706 AT turkos DOT aspodata DOT se> <20160308132232 DOT 52A0E8153705 AT turkos DOT aspodata DOT se> Date: Wed, 9 Mar 2016 00:59:22 +1030 Message-ID: Subject: Re: [geda-user] footprint conversions (was: Valve / nixie symbols) From: "Erich Heinzle (a1039181 AT gmail DOT com) [via geda-user AT delorie DOT com]" To: geda-user Content-Type: multipart/alternative; boundary=001a113cfef84d65d7052d8a6860 Reply-To: geda-user AT delorie DOT com Errors-To: nobody AT delorie DOT com X-Mailing-List: geda-user AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk --001a113cfef84d65d7052d8a6860 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable > Do you have examples as png/jpg or something ? > > > I think I will have to build them with concentric chains of end to end > > pads. > > If you accept roundings at the corners that would work, if you want > sharp corners !=3D90=C2=B0 && < 180=C2=B0, then I'm at loss since pcb don= 't support > polygons in element files. > > I think it's sane to require: > . closed polygon (first point connects with last point) > . no self-intersections > . no holes > > One could have a chain of incr. thicker pads, starting with the > thinnest on the polygon perimeter and the thickest at the polygon > center - or > one could fill the interiour first, and then fill the corners to some > minimun radius. > > I guess it's more economical to fill the interiour first, but filling > the perimeter first gives you the same corner radius for all corners. > > Using perimeter first and filling a square (for ease of modelling) > using a corner radius r, first line is 2*r thick. Using an overlap > of o, the next line will have thickness of 2*R, where > sqrt(2)*2*r - o + R =3D sqrt(2)*R # think going from corner to next line > center > i.e. (sqrt(2)2r - o)/(sqrt(2) - 1) =3D R, or if o =3D f*r > next line with is 2R =3D (2sqrt(2) - f)/(sqrt(2) - 1) * 2*r or > R/r =3D k =3D (2sqrt(2) - f)/(sqrt(2) - 1), and if h =3D square height > then h/2 >=3D k^(n-1) * r, n =3D number of lines (pads) > > soo, if h =3D 10mm, r =3D 0.3mm, o =3D 0.1; then we need 3 lines (pads) > around to fill the square (I think...). > > Using center first, we put a circle in the center and then fill the > corners to some limit. > > I'd think I like perimeter first even tough there will be a lot > of overlapping pads along the edges. > > > Luckily, not many eagle and kicad footprints use them. Once > > implemented, it will work for kicad and eagle sourced footprints. > > If there only is a few of them, maybe it's feasable to manually make > new fp's for them. > > Regards, > /Karl Hammar > Your contemplations mirror mine. I do not have example pictures as I do not run eagle or kicad :-) I have only encountered a trapezoidal pad in kicad once, for an edge mount SMA footprint. The polygons found most often thus far with eagle have been five sided, i.e. a rectangle with a bit of one corner lopped off. The madparts ( http://madparts.org/ ) footprint editing tool appears to generate pads in much the same way, with a central pad, and a ring of smaller pads, even if the pad being rendered is rectangular, presumably to deal with pad geometry in a consistent, generic way. I may end up generating two footprints, one with a best effort rendered ring of pads and central pad much like you describe, and another version of the footprint with the polygon outline rendered in silk lines with text overlaid "polygonal pad missing" or somesuch to make it pretty obvious 1) where it needs to go, and 2) it's incomplete and need additional hand editing. It should be noted that even though Eagle allows a footprint to include "polygonal" copper features, in addition to/as opposed to "pads" on the copper layer, all of the features end up being drawn with a raster of fine lines in the gerber, rather than being flashed as apertures like they're supposed to be. Cheers, Erich --001a113cfef84d65d7052d8a6860 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable

=
Do you have examples as png/jpg or something ?

> I think I will have to build them with concentric chains of end to end=
> pads.

If you accept roundings at the corners that would work, if you want
sharp corners !=3D90=C2=B0 && < 180=C2=B0, then I'm at loss = since pcb don't support
polygons in element files.

I think it's sane to require:
. closed polygon (first point connects with last point)
. no self-intersections
. no holes

One could have a chain of incr. thicker pads, starting with the
thinnest on the polygon perimeter and the thickest at the polygon
center - or
=C2=A0one could fill the interiour first, and then fill the corners to some=
minimun radius.

I guess it's more economical to fill the interiour first, but filling the perimeter first gives you the same corner radius for all corners.

Using perimeter first and filling a square (for ease of modelling)
using a corner radius r, first line is 2*r thick. Using an overlap
of o, the next line will have thickness of 2*R, where
sqrt(2)*2*r - o + R =3D sqrt(2)*R # think going from corner to next line ce= nter
i.e. (sqrt(2)2r - o)/(sqrt(2) - 1) =3D R, or if o =3D f*r
next line with is 2R =3D (2sqrt(2) - f)/(sqrt(2) - 1) * 2*r or
R/r =3D k =3D (2sqrt(2) - f)/(sqrt(2) - 1), and if h =3D square height
then h/2 >=3D k^(n-1) * r, n =3D number of lines (pads)

soo, if h =3D 10mm, r =3D 0.3mm, o =3D 0.1; then we need 3 lines (pads)
around to fill the square (I think...).

Using center first, we put a circle in the center and then fill the
corners to some limit.

I'd think I like perimeter first even tough there will be a lot
of overlapping pads along the edges.

> Luckily, not many eagle and kicad footprints use them. Once
> implemented, it will work for kicad and eagle sourced footprints.

If there only is a few of them, maybe it's feasable to manually make new fp's for them.

Regards,
/Karl Hammar

Your contemplations mirror= mine.
I do not have example pictures as I do not run eagle o= r kicad :-)
I have only encountered a trapezoidal pad in kica= d once, for an edge mount SMA footprint.
The polygons found m= ost often thus far with eagle have been five sided, i.e. a rectangle with a= bit of one corner lopped off.

The madparts ( http://madparts.org/ ) footprint editing tool app= ears to=20 generate pads in much the same way, with a central pad, and a ring of=20 smaller pads, even if the pad being rendered is rectangular, presumably=20 to deal with pad geometry in a consistent, generic way.

I= may end up generating two footprints, one with a best effort rendered ring= of pads and central pad much like you describe, and another version of the= footprint with the polygon outline rendered in silk lines with text overla= id "polygonal pad missing" or somesuch to make it pretty obvious = 1) where it needs to go, and 2) it's incomplete and need additional han= d editing.

It should be noted that even though Eagle allo= ws a footprint to include "polygonal" copper features, in additio= n to/as opposed to "pads" on the copper layer, all of the feature= s end up being drawn with a raster of fine lines in the gerber, rather than= being flashed as apertures like they're supposed to be.

<= div>Cheers,

Erich
--001a113cfef84d65d7052d8a6860--