| www.delorie.com/archives/browse.cgi | search |
| 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=date:from:to:subject:message-id:in-reply-to:references:mime-version | |
| :content-type; | |
| bh=rY8o51/2IiXpByYjUwclA7kxOQjXKg4LKJ/zABA17Mg=; | |
| b=Uha8PZAr/QfEUkGZ3HeMfBnOKBWvwPB+xe2XMt35oHlm66sT1+edhZepVqYaaJJ2ve | |
| 1QabMzXrgARJmmavPrJcIFUe+DlCi87oyIjUdW/uSZGeKHm4Mdpdt3S+tM76+KTC8Qet | |
| GyFZB3Q7ZbsIsbia1KzOHscnJjC9z70+p3DRsstSSVMSb1HWDPm8cOtMSORCKxDGtrAa | |
| w0gAS90DD22jiZtc4exd2W4UZHs38igx+Eo3d2ALeySCscmEg+z48//XVq6q3h6POl3l | |
| HVdDRVAAHkgeDKLLH/tw8R1/QbxF/lKFSc1GdCzos9uFsnP6rjfQpGnR2cdv82zH9ly7 | |
| ChHw== | |
| X-Received: | by 10.194.119.232 with SMTP id kx8mr61550651wjb.94.1451233907806; |
| Sun, 27 Dec 2015 08:31:47 -0800 (PST) | |
| Date: | Sun, 27 Dec 2015 17:31:45 +0100 |
| From: | "Nicklas Karlsson (nicklas DOT karlsson17 AT gmail DOT com) [via geda-user AT delorie DOT com]" <geda-user AT delorie DOT com> |
| To: | geda-user AT delorie DOT com |
| Subject: | Re: [geda-user] Re: DRC clearance work in progress |
| Message-Id: | <20151227173145.4f52bd9239ac5e14b8966e07@gmail.com> |
| In-Reply-To: | <s6n8u4frkhi.fsf@blaulicht.dmz.brux> |
| References: | <CAJXU7q-STU6GSxZSoes5DozwVVZunXCzWt8QVhU8iAXWwSt=dA AT mail DOT gmail DOT com> |
| <001a1134f920c49e910527d3a068 AT google DOT com> | |
| <CAJXU7q-N=dNaK=3pV8t14pxDNFROqW4u4MjAc8EEWODmOYVYbA AT mail DOT gmail DOT com> | |
| <s6n8u4frkhi DOT fsf AT blaulicht DOT dmz DOT brux> | |
| X-Mailer: | Sylpheed 3.5.0beta1 (GTK+ 2.24.25; x86_64-pc-linux-gnu) |
| Mime-Version: | 1.0 |
| 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 |
This is a multi-part message in MIME format.
--Multipart=_Sun__27_Dec_2015_17_31_45_+0100_Lpw+4+f7NdadDz_F
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
> "Peter Clifton (petercjclifton AT googlemail DOT com) [via
> geda-user AT delorie DOT com]" <geda-user AT delorie DOT com> writes:
>
> > Focus on within-layer clearances for now.
> >
> > Any more complex design rules (such as dielectric breakdown through
> > the layer stack) requires more data than we have in PCB's data-model,
> > and may actually belong in a separate calculation utility that would
> > calculate out a geometric design rule that can be applied in PCB.
>
> I am playing with the idea to build a DRC tool that works on the gerber
> output, using libgerbv and the clipper library (C++)
>
> http://angusj.com/delphi/clipper.php
>
> I have made Python bindings for importing gerbers into clipper polygon
> data structures, perform bloating/shrinking and clipping operations.
>
> Design rules would be specified as boolean operations on suitably bloated
> layer data, and anything left in the end is a violation.
>
> An example that I have working now:
>
> from pyclipper import Clipper, gerbv, OffsetPolygons
> proj = gerbv.project()
> proj.load("v01.front.gbr")
> proj.load("v01.plated-drill.cnc")
> scale=10000
> raw = proj[0].polygons(scale)
> drill = proj[1].polygons(scale)
> clip = Clipper()
> clip.clear()
> clip.addsubject(raw)
> # clean up, and remove keyholes
> routing = OffsetPolygons(clip.union(),1)
> # require 12 mil annuklar rings
> annular = OffsetPolygons(drill, 120)
> clip.clear()
> clip.addsubject(annular)
> clip.addclip(routing)
> annular = clip.difference()
>
> Any polygon left in annular is a violation.
>
> For net specific rules I'd need to add some input that gives for each
> net at least one coordinate (per relevant layer). And some code to find
> the polygon at the given coordinate. Some rules, like clearance checks,
> require iterations over the individual ploygons in a layer. At that
> point they could be tagged with a netname by the given coordinates. And
> then there could be overrides of bloat values for specifiv nets.
>
> I plot the ploygons with gnuplot right now. A gerber export may be
> usefull to visualize the violations in gerbv. Or some gui.
Great!
I think your work will would be useful within pcb to.
Simple scale will give a little bit to large distance value in outer corner, attached picture, there need to be a circle segment but it could be fixed later at any point and to large distance is usually less of a problem than to small distance.
Nicklas Karlsson
--Multipart=_Sun__27_Dec_2015_17_31_45_+0100_Lpw+4+f7NdadDz_F
Content-Type: application/x-xfig;
name="Clearance.fig"
Content-Disposition: attachment;
filename="Clearance.fig"
Content-Transfer-Encoding: base64
I0ZJRyAzLjIgIFByb2R1Y2VkIGJ5IHhmaWcgdmVyc2lvbiAzLjIuNWMKTGFuZHNjYXBlCkNlbnRl
cgpNZXRyaWMKQTQgICAgICAKMTAwLjAwClNpbmdsZQotMgoxMjAwIDIKMiA0IDAgMSAwIDUgNTEg
LTEgMjAgMC4wMDAgMCAwIDIwIDAgMCA1CgkgNjUyNSAxMTI1IDUxNzUgMTEyNSA1MTc1IC0yMjUg
NjUyNSAtMjI1IDY1MjUgMTEyNQoyIDIgMCAxIDAgNSA1MSAtMSAyMCAwLjAwMCAwIDAgLTEgMCAw
IDUKCSAyNDc1IC0yMjUgMzgyNSAtMjI1IDM4MjUgMTEyNSAyNDc1IDExMjUgMjQ3NSAtMjI1CjIg
MiAwIDEgMCAwIDUwIC0xIDIwIDAuMDAwIDAgMCAtMSAwIDAgNQoJIDI3MDAgMCAzNjAwIDAgMzYw
MCA5MDAgMjcwMCA5MDAgMjcwMCAwCjIgMiAwIDEgMCAwIDUwIC0xIDIwIDAuMDAwIDAgMCAtMSAw
IDAgNQoJIDU0MDAgMCA2MzAwIDAgNjMwMCA5MDAgNTQwMCA5MDAgNTQwMCAwCg==
--Multipart=_Sun__27_Dec_2015_17_31_45_+0100_Lpw+4+f7NdadDz_F
Content-Type: image/svg+xml;
name="Clearance.svg"
Content-Disposition: attachment;
filename="Clearance.svg"
Content-Transfer-Encoding: base64
PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pgo8IURPQ1RZUEUgc3ZnIFBVQkxJ
QyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iCiJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9T
VkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8IS0tIENyZWF0b3I6IGZpZzJkZXYgVmVyc2lvbiAzLjIg
UGF0Y2hsZXZlbCA1ZSAtLT4KPCEtLSBDcmVhdGlvbkRhdGU6IFN1biBEZWMgMjcgMTc6Mjk6MzIg
MjAxNSAtLT4KPCEtLSBNYWduaWZpY2F0aW9uOiAxLjA1MCAtLT4KPHN2Zwl4bWxucz0iaHR0cDov
L3d3dy53My5vcmcvMjAwMC9zdmciCgl4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5
OS94bGluayIKCXdpZHRoPSIzLjZpbiIgaGVpZ2h0PSIxLjJpbiIKCXZpZXdCb3g9IjI1ODUgLTI0
OCA0Mjc3IDE0NDIiPgo8ZyBzdHlsZT0ic3Ryb2tlLXdpZHRoOi4wMjVpbjsgZmlsbDpub25lIj4K
PCEtLSBMaW5lOiBib3ggLS0+CjxyZWN0IHg9IjU0MzMiIHk9Ii0yMzYiIHdpZHRoPSIxNDE3IiBo
ZWlnaHQ9IjE0MTciIHJ4PSIzMTQiIApzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRo
Ojg7CnN0cm9rZS1saW5lam9pbjptaXRlcjsgc3Ryb2tlLWxpbmVjYXA6YnV0dDsKZmlsbDojZmYw
MGZmOwoiLz4KPCEtLSBMaW5lOiBib3ggLS0+CjxyZWN0IHg9IjI1OTgiIHk9Ii0yMzYiIHdpZHRo
PSIxNDE3IiBoZWlnaHQ9IjE0MTciIHJ4PSIwIiAKc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9r
ZS13aWR0aDo4OwpzdHJva2UtbGluZWpvaW46bWl0ZXI7IHN0cm9rZS1saW5lY2FwOmJ1dHQ7CmZp
bGw6I2ZmMDBmZjsKIi8+CjwhLS0gTGluZTogYm94IC0tPgo8cmVjdCB4PSIyODM0IiB5PSIwIiB3
aWR0aD0iOTQ0IiBoZWlnaHQ9Ijk0NCIgcng9IjAiIApzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ry
b2tlLXdpZHRoOjg7CnN0cm9rZS1saW5lam9pbjptaXRlcjsgc3Ryb2tlLWxpbmVjYXA6YnV0dDsK
ZmlsbDojMDAwMDAwOwoiLz4KPCEtLSBMaW5lOiBib3ggLS0+CjxyZWN0IHg9IjU2NjkiIHk9IjAi
IHdpZHRoPSI5NDQiIGhlaWdodD0iOTQ0IiByeD0iMCIgCnN0eWxlPSJzdHJva2U6IzAwMDAwMDtz
dHJva2Utd2lkdGg6ODsKc3Ryb2tlLWxpbmVqb2luOm1pdGVyOyBzdHJva2UtbGluZWNhcDpidXR0
OwpmaWxsOiMwMDAwMDA7CiIvPgo8L2c+Cjwvc3ZnPgo=
--Multipart=_Sun__27_Dec_2015_17_31_45_+0100_Lpw+4+f7NdadDz_F
Content-Type: application/postscript;
name="Clearance.eps"
Content-Disposition: attachment;
filename="Clearance.eps"
Content-Transfer-Encoding: base64
JSFQUy1BZG9iZS0zLjAgRVBTRi0zLjAKJSVUaXRsZTogQ2xlYXJhbmNlLmZpZwolJUNyZWF0b3I6
IGZpZzJkZXYgVmVyc2lvbiAzLjIgUGF0Y2hsZXZlbCA1ZQolJUNyZWF0aW9uRGF0ZTogU3VuIERl
YyAyNyAxNzozMDo0MiAyMDE1CiUlQm91bmRpbmdCb3g6IDAgMCAyNTcgODcKJU1hZ25pZmljYXRp
b246IDEuMDAwMAolJUVuZENvbW1lbnRzCiUlQmVnaW5Qcm9sb2cKLyRGMnBzRGljdCAyMDAgZGlj
dCBkZWYKJEYycHNEaWN0IGJlZ2luCiRGMnBzRGljdCAvbXRyeCBtYXRyaXggcHV0Ci9jb2wtMSB7
MCBzZXRncmF5fSBiaW5kIGRlZgovY29sMCB7MC4wMDAgMC4wMDAgMC4wMDAgc3JnYn0gYmluZCBk
ZWYKL2NvbDEgezAuMDAwIDAuMDAwIDEuMDAwIHNyZ2J9IGJpbmQgZGVmCi9jb2wyIHswLjAwMCAx
LjAwMCAwLjAwMCBzcmdifSBiaW5kIGRlZgovY29sMyB7MC4wMDAgMS4wMDAgMS4wMDAgc3JnYn0g
YmluZCBkZWYKL2NvbDQgezEuMDAwIDAuMDAwIDAuMDAwIHNyZ2J9IGJpbmQgZGVmCi9jb2w1IHsx
LjAwMCAwLjAwMCAxLjAwMCBzcmdifSBiaW5kIGRlZgovY29sNiB7MS4wMDAgMS4wMDAgMC4wMDAg
c3JnYn0gYmluZCBkZWYKL2NvbDcgezEuMDAwIDEuMDAwIDEuMDAwIHNyZ2J9IGJpbmQgZGVmCi9j
b2w4IHswLjAwMCAwLjAwMCAwLjU2MCBzcmdifSBiaW5kIGRlZgovY29sOSB7MC4wMDAgMC4wMDAg
MC42OTAgc3JnYn0gYmluZCBkZWYKL2NvbDEwIHswLjAwMCAwLjAwMCAwLjgyMCBzcmdifSBiaW5k
IGRlZgovY29sMTEgezAuNTMwIDAuODEwIDEuMDAwIHNyZ2J9IGJpbmQgZGVmCi9jb2wxMiB7MC4w
MDAgMC41NjAgMC4wMDAgc3JnYn0gYmluZCBkZWYKL2NvbDEzIHswLjAwMCAwLjY5MCAwLjAwMCBz
cmdifSBiaW5kIGRlZgovY29sMTQgezAuMDAwIDAuODIwIDAuMDAwIHNyZ2J9IGJpbmQgZGVmCi9j
b2wxNSB7MC4wMDAgMC41NjAgMC41NjAgc3JnYn0gYmluZCBkZWYKL2NvbDE2IHswLjAwMCAwLjY5
MCAwLjY5MCBzcmdifSBiaW5kIGRlZgovY29sMTcgezAuMDAwIDAuODIwIDAuODIwIHNyZ2J9IGJp
bmQgZGVmCi9jb2wxOCB7MC41NjAgMC4wMDAgMC4wMDAgc3JnYn0gYmluZCBkZWYKL2NvbDE5IHsw
LjY5MCAwLjAwMCAwLjAwMCBzcmdifSBiaW5kIGRlZgovY29sMjAgezAuODIwIDAuMDAwIDAuMDAw
IHNyZ2J9IGJpbmQgZGVmCi9jb2wyMSB7MC41NjAgMC4wMDAgMC41NjAgc3JnYn0gYmluZCBkZWYK
L2NvbDIyIHswLjY5MCAwLjAwMCAwLjY5MCBzcmdifSBiaW5kIGRlZgovY29sMjMgezAuODIwIDAu
MDAwIDAuODIwIHNyZ2J9IGJpbmQgZGVmCi9jb2wyNCB7MC41MDAgMC4xOTAgMC4wMDAgc3JnYn0g
YmluZCBkZWYKL2NvbDI1IHswLjYzMCAwLjI1MCAwLjAwMCBzcmdifSBiaW5kIGRlZgovY29sMjYg
ezAuNzUwIDAuMzgwIDAuMDAwIHNyZ2J9IGJpbmQgZGVmCi9jb2wyNyB7MS4wMDAgMC41MDAgMC41
MDAgc3JnYn0gYmluZCBkZWYKL2NvbDI4IHsxLjAwMCAwLjYzMCAwLjYzMCBzcmdifSBiaW5kIGRl
ZgovY29sMjkgezEuMDAwIDAuNzUwIDAuNzUwIHNyZ2J9IGJpbmQgZGVmCi9jb2wzMCB7MS4wMDAg
MC44ODAgMC44ODAgc3JnYn0gYmluZCBkZWYKL2NvbDMxIHsxLjAwMCAwLjg0MCAwLjAwMCBzcmdi
fSBiaW5kIGRlZgoKZW5kCgovY3Age2Nsb3NlcGF0aH0gYmluZCBkZWYKL2VmIHtlb2ZpbGx9IGJp
bmQgZGVmCi9nciB7Z3Jlc3RvcmV9IGJpbmQgZGVmCi9ncyB7Z3NhdmV9IGJpbmQgZGVmCi9zYSB7
c2F2ZX0gYmluZCBkZWYKL3JzIHtyZXN0b3JlfSBiaW5kIGRlZgovbCB7bGluZXRvfSBiaW5kIGRl
ZgovbSB7bW92ZXRvfSBiaW5kIGRlZgovcm0ge3Jtb3ZldG99IGJpbmQgZGVmCi9uIHtuZXdwYXRo
fSBiaW5kIGRlZgovcyB7c3Ryb2tlfSBiaW5kIGRlZgovc2gge3Nob3d9IGJpbmQgZGVmCi9zbGMg
e3NldGxpbmVjYXB9IGJpbmQgZGVmCi9zbGoge3NldGxpbmVqb2lufSBiaW5kIGRlZgovc2x3IHtz
ZXRsaW5ld2lkdGh9IGJpbmQgZGVmCi9zcmdiIHtzZXRyZ2Jjb2xvcn0gYmluZCBkZWYKL3JvdCB7
cm90YXRlfSBiaW5kIGRlZgovc2Mge3NjYWxlfSBiaW5kIGRlZgovc2Qge3NldGRhc2h9IGJpbmQg
ZGVmCi9mZiB7ZmluZGZvbnR9IGJpbmQgZGVmCi9zZiB7c2V0Zm9udH0gYmluZCBkZWYKL3NjZiB7
c2NhbGVmb250fSBiaW5kIGRlZgovc3cge3N0cmluZ3dpZHRofSBiaW5kIGRlZgovdHIge3RyYW5z
bGF0ZX0gYmluZCBkZWYKL3RudCB7ZHVwIGR1cCBjdXJyZW50cmdiY29sb3IKICA0IC0yIHJvbGwg
ZHVwIDEgZXhjaCBzdWIgMyAtMSByb2xsIG11bCBhZGQKICA0IC0yIHJvbGwgZHVwIDEgZXhjaCBz
dWIgMyAtMSByb2xsIG11bCBhZGQKICA0IC0yIHJvbGwgZHVwIDEgZXhjaCBzdWIgMyAtMSByb2xs
IG11bCBhZGQgc3JnYn0KICBiaW5kIGRlZgovc2hkIHtkdXAgZHVwIGN1cnJlbnRyZ2Jjb2xvciA0
IC0yIHJvbGwgbXVsIDQgLTIgcm9sbCBtdWwKICA0IC0yIHJvbGwgbXVsIHNyZ2J9IGJpbmQgZGVm
Ci8kRjJwc0JlZ2luIHskRjJwc0RpY3QgYmVnaW4gLyRGMnBzRW50ZXJlZFN0YXRlIHNhdmUgZGVm
fSBkZWYKLyRGMnBzRW5kIHskRjJwc0VudGVyZWRTdGF0ZSByZXN0b3JlIGVuZH0gZGVmCgovcGFn
ZWhlYWRlciB7CnNhdmUKbmV3cGF0aCAwIDg3IG1vdmV0byAwIDAgbGluZXRvIDI1NyAwIGxpbmV0
byAyNTcgODcgbGluZXRvIGNsb3NlcGF0aCBjbGlwIG5ld3BhdGgKLTE1NS4xIDcxLjYgdHJhbnNs
YXRlCjEgLTEgc2NhbGUKJEYycHNCZWdpbgoxMCBzZXRtaXRlcmxpbWl0CjAgc2xqIDAgc2xjCiAw
LjA2Mjk5IDAuMDYyOTkgc2MKfSBiaW5kIGRlZgovcGFnZWZvb3RlciB7CiRGMnBzRW5kCnJlc3Rv
cmUKfSBiaW5kIGRlZgolJUVuZFByb2xvZwpwYWdlaGVhZGVyCiUKJSBGaWcgb2JqZWN0cyBmb2xs
b3cKJQolIAolIGhlcmUgc3RhcnRzIGZpZ3VyZSB3aXRoIGRlcHRoIDUxCiUgUG9seWxpbmUKMCBz
bGoKMCBzbGMKNy41MDAgc2x3Cm4gNTQ3NSAtMjI1IG0gNTE3NSAtMjI1IDUxNzUgODI1IDMwMCBh
cmN0byA0IHtwb3B9IHJlcGVhdAogIDUxNzUgMTEyNSA2MjI1IDExMjUgMzAwIGFyY3RvIDQge3Bv
cH0gcmVwZWF0CiAgNjUyNSAxMTI1IDY1MjUgNzUgMzAwIGFyY3RvIDQge3BvcH0gcmVwZWF0CiAg
NjUyNSAtMjI1IDU0NzUgLTIyNSAzMDAgYXJjdG8gNCB7cG9wfSByZXBlYXQKIGNwIGdzIGNvbDUg
MS4wMCBzaGQgZWYgZ3IgZ3MgY29sMCBzIGdyIAolIFBvbHlsaW5lCm4gMjQ3NSAtMjI1IG0gMzgy
NSAtMjI1IGwgMzgyNSAxMTI1IGwgMjQ3NSAxMTI1IGwKIGNwIGdzIGNvbDUgMS4wMCBzaGQgZWYg
Z3IgZ3MgY29sMCBzIGdyIAolIFBvbHlsaW5lCm4gMjcwMCAwIG0gMzYwMCAwIGwgMzYwMCA5MDAg
bCAyNzAwIDkwMCBsCiBjcCBncyAwLjAwIHNldGdyYXkgZWYgZ3IgZ3MgY29sMCBzIGdyIAolIFBv
bHlsaW5lCm4gNTQwMCAwIG0gNjMwMCAwIGwgNjMwMCA5MDAgbCA1NDAwIDkwMCBsCiBjcCBncyAw
LjAwIHNldGdyYXkgZWYgZ3IgZ3MgY29sMCBzIGdyIAolIGhlcmUgZW5kcyBmaWd1cmU7CnBhZ2Vm
b290ZXIKc2hvd3BhZ2UKJSVUcmFpbGVyCiVFT0YK
--Multipart=_Sun__27_Dec_2015_17_31_45_+0100_Lpw+4+f7NdadDz_F--
| webmaster | delorie software privacy |
| Copyright © 2019 by DJ Delorie | Updated Jul 2019 |