ID: | 3843 |
From: | ge...@igor2.repo.hu |
Date: | Mon, 16 Mar 2020 05:46:10 +0100 (CET) |
Subject: | Re: [pcb-rnd] connectivity bug -> fullpoly again |
in-reply-to: | 3838 from Britton Kerin <br...@gmail.com> |
replies: | 3900 from ge...@igor2.repo.hu , 3907 from Britton Kerin <br...@gmail.com> |
This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. --0-385430316-1584333970=:2358 Content-Type: TEXT/PLAIN; charset=US-ASCII Hi Britton, On Sun, 15 Mar 2020, Britton Kerin wrote: >Stitched polygons are probably the culprit as usual, but I have no >idea how. Somehow adding one trace in one place (the big fat one >above the 2x3 header near the middle of the board) causes connectivity >to be missed elsewhere. I've attached screenshots showing >connectivity ok and missed, and .pcb files (pcb format) also. > >pcb version 4.2.0 exhibits the same behavior. Thanks, managed to narrow it down. Attached is the minimal test case that causes the problem, which is clearly caused by the legacy "full poly" setting. Do a {c f} on the thick line segment on the top and/or the top side of the poly - there will be no connection. The reason is simple: a known limitation of the code which turns into a rendering bug that is called the "fullpoly setting". When doing a connectivity walk of the data, you can take it as a normal search algorithm on a graph. Nodes of the graph are board objects, e.g. lines or polygons, edges are whether they overlap geometrically in our 2.5d space or not. In this graph a node is either marked (as galvanically connected) or not. There are no split nodes that are marked partly, e.g. through all edges going out to a specific direction of the node but not through other edges. The same, speaking in the geometry domain: a board object is either connected or not, there's no object that can have multiple parts, some parts connected, others not. And that's where the full poly troll comes in: if you cut your polygon in half, like you did on your board with the thick line, you create two disconnected islands. Those should be handled as separate connectivity nodes in the graph, while they are really the very same object. This causes a lot of trouble. Now we have two independent bugs about this: bug#1: if you {c f} on either half of the cut polygon in my example file, you sill see the other half is marked too. This is clearly wrong, as there's no connection between the two parts. But we can't do that, because the whole polygon is a single object, a single node in the above graph. This is not something we want to fix, we rather want to get rid of the fullpoly flag, because in its current form it's just a bad idea (see below at section V). bug#2: there's always a 'first island', which is the only island for the non-fullpoly polygon (which is the largest area island in that case). In the fullpoly case, there may be further islands. Most of the code, like the connectivity code will unfortunately look only for the first islandd (which can be considered as a bug we want to fix). Ok, the bright side now: I. Quick workaround on the sepcific case 1. Go over the poly at 90mm;49mm 2. Right click, edit flags 3. untick the full polygon flag 4. draw a new polygon on the now removed upper section (Of course with this you will have the same problem again when you cut another polygon of yours in half - since all your polygons seem to have the full poly flag) II. Quick workaround, generic, CLI 1. execute this action to select all affected polygons: query(select, @.p.flag.fullpoly == 1) 2. remove the fullpoly flag from all selected objects at once using the following action: propset(selection, p/flags/fullpoly, 0) 3. draw new polygons to patch the gaps III. Quick workaround, generic, GUI 1. use the advanced search from the menu or pressing {s s} 2. click on the 'E' button of the first expression (labelled <edit me>) 3. in the tree, open the flag subtree on the bottom, select fullpoly, then '==' the middle and '1' on the right 4. click ok, the expr edit dialog closes and you get back the advanced search dialog with the expresison of II/1 filled in and action combo box set to 'select'. Click on 'apply' and it will execute the expression. 5. execute the propedit action; this will bring up an aggregated list of properties of all selected objects 6. navigate to p/flags/fullpoly in the tree on the left, this will show the current value on the right (checkbox ticked in) 7. untick the checkbox on the right and click 'apply' -> this will unify the fullpoly flag on all currently selected object to false. You should see the result immediately both in the propedit dialog and on your board. 8. just like II/3.: draw missing polys to patch the gaps. (8 steps... Sorry, the CLI is always more efficient than the GUI, hehe) IV. long term solution, user side Do not ever use the fullpoly flag. That simple. That feature is and always has been just broken b design. A typical feature that leaked in over the decades and looked like a good idea first but caused a lot of trouble later. The guy who implemented it probably didn't really think over all consequences in all parts of the code, but focused on how it was possible in the poly code. So the result is that the poly code and rendering handles it properly but pretty much everything else breaks on it. Plus if any user wants to write an user script dealing with board data, there's a 99% chance he will forget about multi-island full-polys. So it's hardwired in the system that we will just have more and more of bugs like these. Your top layer is already a patchwork of polygons. You have 40 polygons just on that onbe layer already. A few extra polygons after removing fullpoly won't really make a diff. V. long temr solution, developer side The fullpoly flag is a dangerous thing that should not be used by users and should be removed from the code. In fact I should just remove it imediately - except that I can't because it would break compatibility with the obsolete pcb format.... So the plan is this: 1. I will code an extended object, probably called pour, that will take over the role of the fullpoly flag. It will be somewhat similar to the full poly thing, except that it will really create and maintain separate polygon objects for the islands, removing a huge complication from the code (by allowing all parts of the code to assume one object is one object). With this, you will get about the same functionality as with full poly today, except it won't suffer from bug#1 or bug#2 2. I also have plans about a minor data model upgrade to support polygon-side clearance values; this would help us a lot in compatibility to EDA tools that really matter on the market (eagle and kicad) as it would help us reproduce their global or "zone" based clearance mechanism. I already know how to do this cheap and without breaking any compatibility with our current data model. 3. In the same time I will mark the fullpoly flag deprecated. This means whenever pcb-rnd meets it, a warning will be thrown and a link to 'how to switch to the pour extended object' will be included. 4. independently of the above effort, I will look at whether I canfix bug#2 for cheap. If yes, I will probably do that. But since I absolutely do not want to fix bug#1 because of the simpler plans on the pour extended object, the outcome of bug#2 decision will not affect the above 3. (I am going to add this plan to the feature deprecation page) Best regards, Igor2 --0-385430316-1584333970=:2358 Content-Type: TEXT/PLAIN; charset=US-ASCII; name=fullpoly.lht Content-Transfer-Encoding: BASE64 Content-ID: <alpine.DEB.2.00.2003160546100.2358@igor2priv> Content-Description: Content-Disposition: attachment; filename=fullpoly.lht aGE6cGNiLXJuZC1ib2FyZC12NiB7DQoNCiBsaTpzdHlsZXMgew0KICAgaGE6 U2lnbmFsIHsNCiAgICBkaWFtZXRlciA9IDIuMG1tDQogICAgdGV4dF9zY2Fs ZSA9IDANCiAgICB0ZXh0X3RoaWNrID0gMC4wDQogICAgdGhpY2tuZXNzID0g MTAuMG1pbA0KICAgIGhvbGUgPSAzMS41bWlsDQogICAgY2xlYXJhbmNlID0g MjAuMG1pbA0KICAgfQ0KICAgaGE6UG93ZXIgew0KICAgIGRpYW1ldGVyID0g Mi4ybW0NCiAgICB0ZXh0X3NjYWxlID0gMA0KICAgIHRleHRfdGhpY2sgPSAw LjANCiAgICB0aGlja25lc3MgPSAyMC4wbWlsDQogICAgaG9sZSA9IDEuMG1t DQogICAgY2xlYXJhbmNlID0gMjAuMG1pbA0KICAgfQ0KICAgaGE6RmF0IHsN CiAgICBkaWFtZXRlciA9IDEzNy44bWlsDQogICAgdGV4dF9zY2FsZSA9IDAN CiAgICB0ZXh0X3RoaWNrID0gMC4wDQogICAgdGhpY2tuZXNzID0gODAuMG1p bA0KICAgIGhvbGUgPSA0Ny4yNG1pbA0KICAgIGNsZWFyYW5jZSA9IDI1LjBt aWwNCiAgIH0NCiAgIGhhOlNpZy10aWdodCB7DQogICAgZGlhbWV0ZXIgPSA2 NC4wbWlsDQogICAgdGV4dF9zY2FsZSA9IDANCiAgICB0ZXh0X3RoaWNrID0g MC4wDQogICAgdGhpY2tuZXNzID0gMTAuMG1pbA0KICAgIGhvbGUgPSAzMS41 bWlsDQogICAgY2xlYXJhbmNlID0gMTIuMG1pbA0KICAgfQ0KIH0NCg0KIGhh Om1ldGEgew0KICAgaGE6c2l6ZSB7DQogICAgdGhlcm1hbF9zY2FsZSA9IDAu NTAwMDAwDQogICAgeCA9IDc3NS4wbWlsDQogICAgeSA9IDEuOWluDQogICB9 DQogICBoYTpncmlkIHsNCiAgICBzcGFjaW5nID0gMjUuMG1pbA0KICAgIG9m ZnNfeCA9IDAuMA0KICAgIG9mZnNfeSA9IDAuMA0KICAgfQ0KIH0NCg0KIGhh OmRhdGEgew0KICBsaTpwYWRzdGFja19wcm90b3R5cGVzIHsNCiAgfQ0KDQog ICBsaTpvYmplY3RzIHsNCiAgIH0NCiAgIGxpOmxheWVycyB7DQoNCiAgICBo YTp0b3Atc2lnIHsNCiAgICAgbGlkPTANCiAgICAgZ3JvdXA9Mw0KICAgICBo YTpjb21iaW5pbmcgeyAgICAgfQ0KDQogICAgICBoYTphdHRyaWJ1dGVzIHsN CiAgICAgICAge3BjYi1ybmQ6OmtleTo6dmlzfT17PEtleT5sOyBTaGlmdDxL ZXk+dH0NCiAgICAgICAge3BjYi1ybmQ6OmtleTo6c2VsZWN0fT17PEtleT5s OyA8S2V5PnR9DQogICAgICB9DQoNCiAgICAgIGxpOm9iamVjdHMgew0KICAg ICAgIGhhOmxpbmUuMTAgew0KICAgICAgICB4MT03NS4wbWlsOyB5MT0xMDAw LjBtaWw7IHgyPTcwMC4wbWlsOyB5Mj0xMDAwLjBtaWw7IHRoaWNrbmVzcz0x MC4wbWlsOyBjbGVhcmFuY2U9NDAuMG1pbDsNCiAgICAgICAgaGE6ZmxhZ3Mg ew0KICAgICAgICAgY2xlYXJsaW5lPTENCiAgICAgICAgfQ0KICAgICAgIH0N CiAgICAgICBoYTpsaW5lLjEzIHsNCiAgICAgICAgeDE9MzUwLjBtaWw7IHkx PTM3NS4wbWlsOyB4Mj0zNTAuMG1pbDsgeTI9MTAwLjBtaWw7IHRoaWNrbmVz cz04MC4wbWlsOyBjbGVhcmFuY2U9NTAuMG1pbDsNCiAgICAgICB9DQogICAg ICAgaGE6cG9seWdvbi41IHsgY2xlYXJhbmNlPTQwLjBtaWw7DQogICAgICAg IGxpOmdlb21ldHJ5IHsNCiAgICAgICAgICB0YTpjb250b3VyIHsNCiAgICAg ICAgICAgeyAxNTAuMG1pbDsgMzAwLjBtaWwgfQ0KICAgICAgICAgICB7IDUw MC4wbWlsOyAzMDAuMG1pbCB9DQogICAgICAgICAgIHsgNTAwLjBtaWw7IDQ2 Ljk5bW0gfQ0KICAgICAgICAgICB7IDE1MC4wbWlsOyA0Ni45OW1tIH0NCiAg ICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBoYTpmbGFncyB7DQog ICAgICAgICBmdWxscG9seT0xDQogICAgICAgICBjbGVhcnBvbHk9MQ0KICAg ICAgICB9DQogICAgICAgfQ0KICAgICAgfQ0KICAgICAgY29sb3IgPSB7Izhi MjMyM30NCiAgICB9DQoNCiAgICBoYTpib3R0b20tc2lnIHsNCiAgICAgbGlk PTENCiAgICAgZ3JvdXA9MTANCiAgICAgaGE6Y29tYmluaW5nIHsgICAgIH0N Cg0KICAgICAgaGE6YXR0cmlidXRlcyB7DQogICAgICAgIHtwY2Itcm5kOjpr ZXk6OnZpc309ezxLZXk+bDsgU2hpZnQ8S2V5PmJ9DQogICAgICAgIHtwY2It cm5kOjprZXk6OnNlbGVjdH09ezxLZXk+bDsgPEtleT5ifQ0KICAgICAgfQ0K DQogICAgICBsaTpvYmplY3RzIHsNCiAgICAgIH0NCiAgICAgIGNvbG9yID0g eyMzYTVmY2R9DQogICAgfQ0KDQogICAgaGE6dG9wLWduZCB7DQogICAgIGxp ZD0yDQogICAgIGdyb3VwPTMNCiAgICAgaGE6Y29tYmluaW5nIHsgICAgIH0N Cg0KICAgICAgbGk6b2JqZWN0cyB7DQogICAgICB9DQogICAgICBjb2xvciA9 IHsjMTA0ZThifQ0KICAgIH0NCg0KICAgIGhhOmJvdHRvbS1nbmQgew0KICAg ICBsaWQ9Mw0KICAgICBncm91cD0xMA0KICAgICBoYTpjb21iaW5pbmcgeyAg ICAgfQ0KDQogICAgICBsaTpvYmplY3RzIHsNCiAgICAgIH0NCiAgICAgIGNv bG9yID0geyNjZDM3MDB9DQogICAgfQ0KDQogICAgaGE6aW50LXNpZzIgew0K ICAgICBsaWQ9NA0KICAgICBncm91cD03DQogICAgIGhhOmNvbWJpbmluZyB7 ICAgICB9DQoNCiAgICAgIGhhOmF0dHJpYnV0ZXMgew0KICAgICAgICB7cGNi LXJuZDo6a2V5Ojp2aXN9PXs8S2V5Pmw7IFNoaWZ0PEtleT5pfQ0KICAgICAg ICB7cGNiLXJuZDo6a2V5OjpzZWxlY3R9PXs8S2V5Pmw7IDxLZXk+aX0NCiAg ICAgIH0NCg0KICAgICAgbGk6b2JqZWN0cyB7DQogICAgICB9DQogICAgICBj b2xvciA9IHsjNTQ4YjU0fQ0KICAgIH0NCg0KICAgIGhhOmludC1zaWcxIHsN CiAgICAgbGlkPTUNCiAgICAgZ3JvdXA9NQ0KICAgICBoYTpjb21iaW5pbmcg eyAgICAgfQ0KDQogICAgICBoYTphdHRyaWJ1dGVzIHsNCiAgICAgICAge3Bj Yi1ybmQ6OmtleTo6dmlzfT17PEtleT5sOyBTaGlmdDxLZXk+b30NCiAgICAg ICAge3BjYi1ybmQ6OmtleTo6c2VsZWN0fT17PEtleT5sOyA8S2V5Pm99DQog ICAgICB9DQoNCiAgICAgIGxpOm9iamVjdHMgew0KICAgICAgfQ0KICAgICAg Y29sb3IgPSB7IzhiNzM1NX0NCiAgICB9DQoNCiAgICBoYTpvdXRsaW5lIHsN CiAgICAgbGlkPTYNCiAgICAgZ3JvdXA9OQ0KICAgICBoYTpjb21iaW5pbmcg eyAgICAgfQ0KDQogICAgICBsaTpvYmplY3RzIHsNCiAgICAgIH0NCiAgICAg IGNvbG9yID0geyMwMDg2OGJ9DQogICAgfQ0KDQogICAgaGE6Ym90dG9tLXNp bGsgew0KICAgICBsaWQ9Nw0KICAgICBncm91cD0xMg0KICAgICBoYTpjb21i aW5pbmcgeyBhdXRvPTE7ICAgICB9DQoNCiAgICAgIGhhOmF0dHJpYnV0ZXMg ew0KICAgICAgICB7cGNiLXJuZDo6a2V5Ojp2aXN9PXs8S2V5Pmw7IFNoaWZ0 PEtleT54fQ0KICAgICAgICB7cGNiLXJuZDo6a2V5OjpzZWxlY3R9PXs8S2V5 Pmw7IDxLZXk+eH0NCiAgICAgIH0NCg0KICAgICAgbGk6b2JqZWN0cyB7DQog ICAgICB9DQogICAgICBjb2xvciA9IHsjMDAwMDAwfQ0KICAgIH0NCg0KICAg IGhhOnRvcC1zaWxrIHsNCiAgICAgbGlkPTgNCiAgICAgZ3JvdXA9MQ0KICAg ICBoYTpjb21iaW5pbmcgeyBhdXRvPTE7ICAgICB9DQoNCiAgICAgIGhhOmF0 dHJpYnV0ZXMgew0KICAgICAgICB7cGNiLXJuZDo6a2V5Ojp2aXN9PXs8S2V5 Pmw7IFNoaWZ0PEtleT5zfQ0KICAgICAgICB7cGNiLXJuZDo6a2V5OjpzZWxl Y3R9PXs8S2V5Pmw7IDxLZXk+c30NCiAgICAgIH0NCg0KICAgICAgbGk6b2Jq ZWN0cyB7DQogICAgICB9DQogICAgICBjb2xvciA9IHsjMDAwMDAwfQ0KICAg IH0NCg0KICAgIGhhOnRvcC1wYXN0ZSB7DQogICAgIGxpZD05DQogICAgIGdy b3VwPTANCiAgICAgaGE6Y29tYmluaW5nIHsgYXV0bz0xOyAgICAgfQ0KDQog ICAgICBsaTpvYmplY3RzIHsNCiAgICAgIH0NCiAgICAgIGNvbG9yID0geyNj ZDAwY2R9DQogICAgfQ0KDQogICAgaGE6dG9wLW1hc2sgew0KICAgICBsaWQ9 MTANCiAgICAgZ3JvdXA9Mg0KICAgICBoYTpjb21iaW5pbmcgeyBzdWI9MTsg YXV0bz0xOyAgICAgfQ0KDQogICAgICBsaTpvYmplY3RzIHsNCiAgICAgIH0N CiAgICAgIGNvbG9yID0geyNmZjAwMDB9DQogICAgfQ0KDQogICAgaGE6Ym90 dG9tLW1hc2sgew0KICAgICBsaWQ9MTENCiAgICAgZ3JvdXA9MTENCiAgICAg aGE6Y29tYmluaW5nIHsgc3ViPTE7IGF1dG89MTsgICAgIH0NCg0KICAgICAg bGk6b2JqZWN0cyB7DQogICAgICB9DQogICAgICBjb2xvciA9IHsjZmYwMDAw fQ0KICAgIH0NCg0KICAgIGhhOmJvdHRvbS1wYXN0ZSB7DQogICAgIGxpZD0x Mg0KICAgICBncm91cD0xMw0KICAgICBoYTpjb21iaW5pbmcgeyBhdXRvPTE7 ICAgICB9DQoNCiAgICAgIGxpOm9iamVjdHMgew0KICAgICAgfQ0KICAgICAg Y29sb3IgPSB7I2NkMDBjZH0NCiAgICB9DQoNCiAgICBoYTpzbG90LXBsYXRl ZCB7DQogICAgIGxpZD0xMw0KICAgICBncm91cD0xNA0KICAgICBoYTpjb21i aW5pbmcgeyBhdXRvPTE7ICAgICB9DQoNCiAgICAgIGxpOm9iamVjdHMgew0K ICAgICAgfQ0KICAgICAgY29sb3IgPSB7IzhiNzM1NX0NCiAgICB9DQoNCiAg ICBoYTpzbG90LXVucGxhdGVkIHsNCiAgICAgbGlkPTE0DQogICAgIGdyb3Vw PTE1DQogICAgIGhhOmNvbWJpbmluZyB7IGF1dG89MTsgICAgIH0NCg0KICAg ICAgbGk6b2JqZWN0cyB7DQogICAgICB9DQogICAgICBjb2xvciA9IHsjMDA4 NjhifQ0KICAgIH0NCg0KICAgIGhhOnRvcC1hc3N5IHsNCiAgICAgbGlkPTE1 DQogICAgIGdyb3VwPTE2DQogICAgIGhhOmNvbWJpbmluZyB7ICAgICB9DQoN CiAgICAgIGxpOm9iamVjdHMgew0KICAgICAgfQ0KICAgICAgY29sb3IgPSB7 IzQ0NDQ0NH0NCiAgICB9DQoNCiAgICBoYTpib3QtYXNzeSB7DQogICAgIGxp ZD0xNg0KICAgICBncm91cD0xNw0KICAgICBoYTpjb21iaW5pbmcgeyAgICAg fQ0KDQogICAgICBsaTpvYmplY3RzIHsNCiAgICAgIH0NCiAgICAgIGNvbG9y ID0geyM0NDQ0NDR9DQogICAgfQ0KDQogICAgaGE6ZmFiIHsNCiAgICAgbGlk PTE3DQogICAgIGdyb3VwPTE4DQogICAgIGhhOmNvbWJpbmluZyB7IGF1dG89 MTsgICAgIH0NCg0KICAgICAgbGk6b2JqZWN0cyB7DQogICAgICB9DQogICAg ICBjb2xvciA9IHsjMjIyMjIyfQ0KICAgIH0NCiAgIH0NCiB9DQogaGE6bGF5 ZXJfc3RhY2sgew0KICBsaTpncm91cHMgew0KICAgaGE6MCB7DQogICAgbmFt ZSA9IHRvcF9wYXN0ZQ0KICAgIGhhOnR5cGUgeyB0b3A9MTsgcGFzdGU9MTsg ICAgfQ0KICAgIGxpOmxheWVycyB7IDk7ICAgIH0NCiAgIH0NCiAgIGhhOjEg ew0KICAgIG5hbWUgPSB0b3Bfc2lsaw0KICAgIGhhOnR5cGUgeyBzaWxrPTE7 IHRvcD0xOyAgICB9DQogICAgbGk6bGF5ZXJzIHsgODsgICAgfQ0KICAgfQ0K ICAgaGE6MiB7DQogICAgbmFtZSA9IHRvcF9tYXNrDQogICAgaGE6dHlwZSB7 IHRvcD0xOyBtYXNrPTE7ICAgIH0NCiAgICBsaTpsYXllcnMgeyAxMDsgICAg fQ0KICAgfQ0KICAgaGE6MyB7DQogICAgbmFtZSA9IHRvcF9jb3BwZXINCiAg ICBoYTp0eXBlIHsgY29wcGVyPTE7IHRvcD0xOyAgICB9DQogICAgbGk6bGF5 ZXJzIHsgMDsgMjsgICAgfQ0KICAgfQ0KICAgaGE6NCB7DQogICAgbmFtZSA9 IGdycF80DQogICAgaGE6dHlwZSB7IHN1YnN0cmF0ZT0xOyBpbnRlcm49MTsg ICAgfQ0KICAgIGxpOmxheWVycyB7ICAgIH0NCiAgICBoYTphdHRyaWJ1dGVz IHsNCiAgICAgdGhpY2tuZXNzPXswLjczNzVtbSB9DQogICAgfQ0KICAgfQ0K ICAgaGE6NSB7DQogICAgbmFtZSA9IEludGVybg0KICAgIGhhOnR5cGUgeyBj b3BwZXI9MTsgaW50ZXJuPTE7ICAgIH0NCiAgICBsaTpsYXllcnMgeyA1OyAg ICB9DQogICB9DQogICBoYTo2IHsNCiAgICBuYW1lID0gZ3JwXzYNCiAgICBo YTp0eXBlIHsgc3Vic3RyYXRlPTE7IGludGVybj0xOyAgICB9DQogICAgbGk6 bGF5ZXJzIHsgICAgfQ0KICAgIGhhOmF0dHJpYnV0ZXMgew0KICAgICB0aGlj a25lc3M9ezAuMTI1bW0gfQ0KICAgIH0NCiAgIH0NCiAgIGhhOjcgew0KICAg IG5hbWUgPSBJbnRlcm4NCiAgICBoYTp0eXBlIHsgY29wcGVyPTE7IGludGVy bj0xOyAgICB9DQogICAgbGk6bGF5ZXJzIHsgNDsgICAgfQ0KICAgfQ0KICAg aGE6OCB7DQogICAgbmFtZSA9IGdycF84DQogICAgaGE6dHlwZSB7IHN1YnN0 cmF0ZT0xOyBpbnRlcm49MTsgICAgfQ0KICAgIGxpOmxheWVycyB7ICAgIH0N CiAgICBoYTphdHRyaWJ1dGVzIHsNCiAgICAgdGhpY2tuZXNzPXswLjczNzVt bSB9DQogICAgfQ0KICAgfQ0KICAgaGE6OSB7DQogICAgbmFtZSA9IGdsb2Jh bF9vdXRsaW5lDQogICAgaGE6dHlwZSB7IGJvdW5kYXJ5PTE7ICAgIH0NCiAg ICBsaTpsYXllcnMgeyA2OyAgICB9DQogICAgcHVycG9zZSA9IHVyb3V0ZQ0K ICAgfQ0KICAgaGE6MTAgew0KICAgIG5hbWUgPSBib3R0b21fY29wcGVyDQog ICAgaGE6dHlwZSB7IGJvdHRvbT0xOyBjb3BwZXI9MTsgICAgfQ0KICAgIGxp OmxheWVycyB7IDE7IDM7ICAgIH0NCiAgIH0NCiAgIGhhOjExIHsNCiAgICBu YW1lID0gYm90dG9tX21hc2sNCiAgICBoYTp0eXBlIHsgYm90dG9tPTE7IG1h c2s9MTsgICAgfQ0KICAgIGxpOmxheWVycyB7IDExOyAgICB9DQogICB9DQog ICBoYToxMiB7DQogICAgbmFtZSA9IGJvdHRvbV9zaWxrDQogICAgaGE6dHlw ZSB7IHNpbGs9MTsgYm90dG9tPTE7ICAgIH0NCiAgICBsaTpsYXllcnMgeyA3 OyAgICB9DQogICB9DQogICBoYToxMyB7DQogICAgbmFtZSA9IGJvdHRvbV9w YXN0ZQ0KICAgIGhhOnR5cGUgeyBib3R0b209MTsgcGFzdGU9MTsgICAgfQ0K ICAgIGxpOmxheWVycyB7IDEyOyAgICB9DQogICB9DQogICBoYToxNCB7DQog ICAgbmFtZSA9IHBtZWNoDQogICAgaGE6dHlwZSB7IG1lY2g9MTsgICAgfQ0K ICAgIGxpOmxheWVycyB7IDEzOyAgICB9DQogICAgcHVycG9zZSA9IHByb3V0 ZQ0KICAgfQ0KICAgaGE6MTUgew0KICAgIG5hbWUgPSB1bWVjaA0KICAgIGhh OnR5cGUgeyBtZWNoPTE7ICAgIH0NCiAgICBsaTpsYXllcnMgeyAxNDsgICAg fQ0KICAgIHB1cnBvc2UgPSB1cm91dGUNCiAgIH0NCiAgIGhhOjE2IHsNCiAg ICBuYW1lID0gdG9wX2Fzc3kNCiAgICBoYTp0eXBlIHsgdG9wPTE7IGRvYz0x OyAgICB9DQogICAgbGk6bGF5ZXJzIHsgMTU7ICAgIH0NCiAgICBoYTphdHRy aWJ1dGVzIHsNCiAgICAgaW5pdC1pbnZpcz0xDQogICAgfQ0KICAgIHB1cnBv c2UgPSBhc3N5DQogICB9DQogICBoYToxNyB7DQogICAgbmFtZSA9IGJvdF9h c3N5DQogICAgaGE6dHlwZSB7IGJvdHRvbT0xOyBkb2M9MTsgICAgfQ0KICAg IGxpOmxheWVycyB7IDE2OyAgICB9DQogICAgaGE6YXR0cmlidXRlcyB7DQog ICAgIGluaXQtaW52aXM9MQ0KICAgIH0NCiAgICBwdXJwb3NlID0gYXNzeQ0K ICAgfQ0KICAgaGE6MTggew0KICAgIG5hbWUgPSBmYWINCiAgICBoYTp0eXBl IHsgdG9wPTE7IGRvYz0xOyAgICB9DQogICAgbGk6bGF5ZXJzIHsgMTc7ICAg IH0NCiAgICBoYTphdHRyaWJ1dGVzIHsNCiAgICAgaW5pdC1pbnZpcz0xDQog ICAgfQ0KICAgIHB1cnBvc2UgPSBmYWINCiAgIH0NCiAgfQ0KIH0NCiBsaTpw Y2Itcm5kLWNvbmYtdjEgew0KICBoYTpvdmVyd3JpdGUgew0KICAgaGE6ZGVz aWduIHsNCiAgICB0ZXh0X2ZvbnRfaWQgPSAwDQogICAgdGV4dF9zY2FsZSA9 IDEwMA0KICAgIHZpYV90aGlja25lc3MgPSAxMzcuODAgbWlsDQogICAgdmlh X2RyaWxsaW5nX2hvbGUgPSA0Ny4yNCBtaWwNCiAgICB0ZXh0X3RoaWNrbmVz cyA9IDANCiAgICBsaW5lX3RoaWNrbmVzcyA9IDgwLjAwIG1pbA0KICAgIGNs ZWFyYW5jZSA9IDI1LjAwIG1pbA0KICAgfQ0KICAgaGE6ZWRpdG9yIHsNCiAg IH0NCiAgfQ0KIH0NCn0NCg== --0-385430316-1584333970=:2358--
Reply subtree:
3843 Re: [pcb-rnd] connectivity bug -> fullpoly again from ge...@igor2.repo.hu
3900 Re: [pcb-rnd] connectivity bug -> fullpoly again from ge...@igor2.repo.hu
3907 Re: [pcb-rnd] connectivity bug -> fullpoly again from Britton Kerin <br...@gmail.com>
3911 Re: [pcb-rnd] connectivity bug -> fullpoly again from ge...@igor2.repo.hu