kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #40916
Re: [RFC] Test for Copper zones using solid polygons without outline thickness.
-
To:
jp charras <jp.charras@xxxxxxxxxx>, Seth Hillbrand <seth@xxxxxxxxxxxxx>
-
From:
Wayne Stambaugh <stambaughw@xxxxxxxxx>
-
Date:
Wed, 5 Jun 2019 09:40:05 -0400
-
Autocrypt:
addr=stambaughw@xxxxxxxxx; keydata= mQGiBEM0hxQRBAC2fNh3YOVLu1d5GZ0SbrTNldGiGnCJPLqzEnqFX9v6jmf33TMt6EmSLkl6 Wtfkoj0nVwKxcYmJkA8DX0QAokBkwNIzhSsBzQvthBLIk/5LnPVVKrEXOcL4mUyH1doKlkaE slgJozNa6Av+oavcvD02o1zJOloBbaHlNlyRt7fKswCgtIFlVjWggVH/15KfWk+Qo5JVPbME AIUBAQyL2OAx0n60AWec2WHnO9buHuG0ibtICgUMkE+2MRmYyKwYRdyVwGoIUemFuOyHp0AJ InX4T+vy2E7vkwODqjtMLfIoRkokW74Fi4nrvjlhOAw/vdq/twLbAmR9MOfPTpR4y7kQy1O2 /n+RkkRvh26vTzfbQmrH7cBJhk6aA/9Uwvu3E4zNJgHVZeS0HyWtmR1eOPPRbnkPgJTToX5O KMKzTJI/FX6kT7cFoCamitHrW3BJP4Dx+cMMsa47EGxqVTdbVJ4LjogsXTXxb+0Fn1u4zBdx x3Cer6O7+hqWy7zvpzeC6nSREjqDKa5CgHtv/GLm5uFPOmsjAsnHj2tlBrQmV2F5bmUgU3Rh bWJhdWdoIDxzdGFtYmF1Z2h3QGdtYWlsLmNvbT6IeAQTEQIAOBYhBOffs6CbblRzBkv33BtR cWlZ+CReBQJbFBS2AhsDBQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAAAoJEBtRcWlZ+CReMI8A nRbrLkzp7+c2f0vX7sfg4ICX8LAKAJ9uClo4uJajmZa5zZrL2nKdZlUwIrkCDQRDNIcxEAgA gCru+3/aOC6RCjpvYC72wY+d5SmHphC6yeiV2/mOumyt5MLo/Ps2GznZr11JspqFk5K/Zpvp MMLqqjDZ39+50a2iKRQFJ6NlK+hJWMmj6eJygQrCwYo3Gjc6CqfrqUv+8VSnf/i5sIZmtOVA 4ZjML18MuBvMSsNdVLFJd5HNnYb1iOECpvqdPVh/21LLCEw7MUUGGnHBhCrmk2aJe5hFmcSN g4ldBcXrgMQBwf7aMVoobXBMFDb/IENByXn0llB7Gr2IFMRmNS9/p8s/II1Yl2bTqyX4FSz8 cfn7C9KEz7faZ7wzAcpwHFC/zs3JoAjJ0IEKdNUpIwAlKMzT3CzctwADBQf/cxpG28MKyrqk nNmq/8LQLy+x6FSYXBLjxQz9BiBNYeesDZQ6J5UbL1mjpJzMa5tLZypPYo4bbGyR22hrbyDF K7m6AcVaMIJKl98g4ukMutFfAJyRDaREH5Zl/X1P4u1Z/yaAIy9mKaNbaK1/5djNJ5wCTFen TUgAp9xdc30kGkFDdLJFp5uxDY4P0vaZiZdjUCvDM3Zjv5IzpNOfxVqTUBQNUP/BnnKhkk0p DTD6s3X8S+D0rOtEBQ8K0cwERI/E8EFa8nj0TNw4e2MYGR8wg+SxqJ7z5f0zPY0bO6G9DDFB wYCqzzPWGqdAh9vA5971TAbPERtdFybhkurozp2SfYhJBBgRAgAJBQJDNIcxAhsMAAoJEBtR cWlZ+CResHUAniULLCWiT26ieRTl7N2vS6vBo/DuAJ4m7Ss/gyiW6ybTn1ctDXAUgm2QVQ==
-
Cc:
Kicad Developers <kicad-developers@xxxxxxxxxxxxxxxxxxx>
-
In-reply-to:
<62e25eaa-439f-425b-c497-b81cee3f90e2@wanadoo.fr>
-
Openpgp:
preference=signencrypt
-
User-agent:
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.7.0
On 6/5/19 7:20 AM, jp charras wrote:
> Le 04/06/2019 à 22:51, Wayne Stambaugh a écrit :
>> On 6/4/19 4:25 PM, Seth Hillbrand wrote:
>>> On 2019-05-31 07:25, Wayne Stambaugh wrote:
>>>> On 5/30/19 4:53 PM, Seth Hillbrand wrote:
>>>>> On 2019-05-30 15:00, jp charras wrote:
>>>>>> Le 29/05/2019 à 21:31, Seth Hillbrand a écrit :
>>>>>>> On 2019-05-29 10:33, jp charras wrote:
>>>>>>>> Attached a patch that modify the way filled areas (solid polygons)
>>>>>>>> are
>>>>>>>> built in copper areas.
>>>>>>>>
>>>>>>>> Currently, solid polygons are slightly smaller than the exact
>>>>>>>> area, and
>>>>>>>> the polygon outlines have a thickness to fill the exact area.
>>>>>>>> With this patch, polygon outlines have no thickness and the polygons
>>>>>>>> have the exact area.
>>>>>>>>
>>>>>>>> To test it on a given zone, the zone setting must be edited with the
>>>>>>>> "Fill polys without thick outline" checked.
>>>>>>>
>>>>>>>
>>>>>>> Hi JP-
>>>>>>>
>>>>>>> Why did you decide to make this a user option? Is there some feature
>>>>>>> that it prevents that a user would want for some areas but not for
>>>>>>> others?
>>>>>>>
>>>>>>> I tested it with a large board and it reduces the polygon point
>>>>>>> count by
>>>>>>> almost 50% (!) for complex fills. If I zoom in on an edge, it appears
>>>>>>> that the approximation count is substantially coarsened by the patch.
>>>>>>> See attached image. The edge on the right is with the new option
>>>>>>> enabled. The edge of the left is without the new option.
>>>>>>>
>>>>>>> I didn't find any other issues. Large boards were much faster and
>>>>>>> DRC /
>>>>>>> plotting appear consistent between options (with the exception noted
>>>>>>> above)
>>>>>>>
>>>>>>> -Seth
>>>>>>
>>>>>>
>>>>>> Thanks Seth for your test.
>>>>>>
>>>>>> Currently, having a user option is useful to test and compare the 2
>>>>>> options (the current way, and the new way).
>>>>>
>>>>> OK. Makes sense. Instead of changing the board file, can we put the
>>>>> option in the advanced config file to enable our testing? It would be
>>>>> nice to avoid changing the file format here.
>>>>
>>>> I agree that the board file format should not change for rendering
>>>> configuration. Please make this a user option.
>>>
>>>
>>> Hi JP-
>>>
>>> Did you mean to push eb1faebf1?
>>>
>>> -Seth
>>
>> I thought this was not going to require any board file version changes.
>> Did I miss something here?
>>
>> Wayne
>>
>
> Some clarification:
>
> I pushed some changes because maintaining my local branch against all
> changes in master branch was not always easy.
I know keeping things rebased given the current development churn but
you should have held off committing the file format change before
committing the rest of the code that actually does anything with the
file format changes. How much longer before you merge the rest of the
changes? If it's going to be too long, we should probably revert your
initial commit.
>
> I do not yet committed the new zone fill algo living in zone_filler.
> It should happen very soon, after a few other tests.
> (note also, to be enabled, the advanced config file must be set)
If this is the case, why did we just get a message on the dev mailing
list complaining about file compatibility with 5.1? If commit eb1faebf
uses the advanced config (which I'm not seeing) and the default is
disabled, why would this happen? Did you forget to merge the advanced
config part of your changes?
>
> Now, about changes in file format, here are my thoughts:
>
> New zone filler algo is not "just" a rendering change.
> It modify many other things.
>
> These changes are not not due to a code change, but due to the fact the
> size/shape of solid polygons in zones are actually modified:
> Gerber files are modified.
> Connectivity is modified.
>
> Moreover, in order to remove thick outlines, the solid polygon shapes,
> once they are build, are inflated by zone min thickness/2>
> I am really confident with the Clipper Library reliability, and the
> Inflate function.
> But previous experiences with other polygon libraries lead me to be
> *very*careful.
> I know Inflate transform is one of most hard to manage transform.
>
> I remember when we used boost::polygon, the first issue encountered was
> reported one year after we started using it, and it was the reason we
> was forced to use clipper.
>
> Therefore I want to be able to use the old (reliable...) way to build
> the solid polygons, and to use the new way (without outline thickness).
>
> It imply the zones filled with the new way must have a flag to keep
> trace of that.
Fair enough. I misunderstood the original intent of this change.
>
> There is also an other (and important) problem:
> We always try to keep Pcbnew compatible with old board files.
> Without this flag, this is not possible:
> * A old board generates broken Gerber files, unless zones are refilled,
> but it imply a board change (and the fact the user knows that...).
> By broken Gerber files I mean zones without thick lines can have very
> thin areas, not compatible with the zone settings.
> * A new board generates also broken Gerber files, unless zones are
> refilled, because filled areas are too big.
> It can happens if for some reasons we need to go back to the "old"
> (current) filling algo.
> I hope it does not happens, but who know.
>
> Note also files saved by the current pcbnew version are not compatible
> with 5.1.2 stable versions, due to the fact the "max_error" parameter is
> now stored in file.
>
> So to avoid predictable issues, I prefer have a flag stored in file (the
> cost is low), and a user settings to select the way the solid areas are
> built, at least for now, just in case...
>
Follow ups
References