kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #21978
Re: PATCH: To facilitate easier Via Curtain/Filling
-
To:
jp charras <jp.charras@xxxxxxxxxx>, <kicad-developers@xxxxxxxxxxxxxxxxxxx>
-
From:
Tomasz Wlostowski <tomasz.wlostowski@xxxxxxx>
-
Date:
Tue, 15 Dec 2015 21:35:09 +0100
-
Authentication-results:
spf=pass (sender IP is 188.184.36.50) smtp.mailfrom=cern.ch; lists.launchpad.net; dkim=none (message not signed) header.d=none;lists.launchpad.net; dmarc=bestguesspass action=none header.from=cern.ch;
-
In-reply-to:
<5670575D.3090501@wanadoo.fr>
-
Spamdiagnosticmetadata:
NSPM
-
Spamdiagnosticoutput:
1:23
-
User-agent:
Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.4.0
On 15.12.2015 19:09, jp charras wrote:
> Le 15/12/2015 18:44, Tomasz Wlostowski a écrit :
>> On 15.12.2015 16:52, Wayne Stambaugh wrote:
>>> Sorry I didn't respond to this sooner but I've been busy. I'm not
>>> thrilled with this idea. I know it solves the immediate problem but it
>>> is an incomplete solution.
>>
>> Hi Wayne,
>>
>> I surely agree that changing just the net propagation algorithm is not
>> enough, but I'm not sure adding support for free vias needs to go as far
>> as changing the file format. Neither Eagle nor Altium (as far as I know)
>> have a special notion of a free via. In the latter, any via or trace (or
>> a free track) will retain its net unless:
>> - the net is removed from the netlist,
>> - new netcode is propagated from a pad through traces or vias and there
>> is no conflict (= more than 1 netcode hitting the item after propagation).
>> If the via is placed by the 'via' tool, it can also inherit its net from
>> the underlying zone, but only if there's no net conflict. I believe this
>> is more or less the behaviour of Steven's patch.
>>
>> So IMHO, the minimum changes are:
>> - keep the file format unmodified.
>> - update the net propagation algorithm.
>> - update the DRC to always report tracks/vias not connected to any pad
>> (must take zone connections into account). Same for the 'cleanup' algorithm.
>> - update orphan filled area removal code to take stitching vias into
>> account.
>> - add a via placement tool (quite trivial, like MODULE_TOOLS::PlacePad
>> in the module editor)
>> - update the existing GAL track/via properties dialog to allow assigning
>> nets.
>> - add Ben's RF patches & update array tool ;)
>>
>> None of these changes has impact on the file format/data model, so
>> hopefully they should not break anything and can be done incrementally.
>>
>> Cheers,
>> Tom
>
> Stitching vias must be added, but also removed and edited (size, drill,
> net name..) all in once.
> Therefore they need a "link" (for instance a time stamp) to be removed
>
> A good via placement tool in not "quite trivial", but feasible, obvioulsy.
>
> The first work is not write code, but define how vias stitching are
> managed (are they a group, and/or items inside a parent polygon like a
> zone ...)
Hi Jean-Pierre,
I didn't mean any special vias for stitching purposes, but simply
allowing the user to draw lone vias and make them retain their nets.
This is a feature many people have been asking for and currently use
workarounds like [1] to achieve it.
Cheers,
Tom
[1]. https://forum.kicad.info/t/protip-nicer-via-stitching/1103
>
>>
>> I would rather we do a complete free via
>>> implementation and not introduce a stop gap measure into Pcbnew. We've
>>> discussed the idea of incorporating free vias many times in the past.
>>> Since we are in a new development cycle, now is the time to revisit
>>> this. At a minimum this should include the following:
>>>
>>> 1) Board file format support for free vias. Do we need to add any new
>>> tokens to the board file format and where do we want to put the free
>>> vias in the board file? We need to define what capabilities our free
>>> vias require and plan accordingly. This will be a file format change so
>>> we need to consider this carefully.
>>>
>>> 2) Editing tools (menu entries, toolbars, hot keys, dialogs, etc.) for
>>> adding and editing free vias. Our array tool could come in handy here.
>>>
>>> 3) Update DRC to handle free vias.
>>>
>>> 4) Verify support code still works. I'm guessing we wont need to change
>>> our plotting, printing, and/or export code since we already support
>>> through hole, micro, and blind/buried vias (are there any other types of
>>> vias?).
>>>
>>> Please consider this instead of quick fixes. This is one of the reasons
>>> the KiCad code base is so crufty. We need to start doing a better job
>>> of looking at the big picture.
>>>
>>> Cheers,
>>>
>>> Wayne
>>>
>>> On 12/14/2015 9:26 AM, Tomasz Wlostowski wrote:
>>>> On 14.12.2015 14:40, Strontium wrote:
>>>>> Hi Thomas,
>>>>>
>>>>> I considered this, but tracking zones is non trivial.
>>>>>
>>>>> For example, imagine the stackup:
>>>>>
>>>>> GND
>>>>> VCC
>>>>> GND
>>>>> VCC
>>>>>
>>>>> A Through Via, from top to bottom could be connected validly connected
>>>>> to either GND or VCC.
>>>>>
>>>>> Once the net is removed from the via by the reassignment pass, there is
>>>>> no longer any information left to tell kicad which pair of zones was
>>>>> connected by the via.
>>>>
>>>> Indeed, in case of such a conflict retaining the via's net is IMHO the
>>>> only good solution.
>>>>
>>>>>
>>>>> The approach I suggest will fix this problem, because it just wont
>>>>> change the net for those vias. It wont consider if there is a zone or
>>>>> not, it just says "hey, you gave it the GND net, so i will leave it as
>>>>> GND."
>>>>
>>>> It also seems Altium is managing via's nets this way. I would vote for
>>>> merging the patch.
>>>>
>>>> Cheers,
>>>> Tom
>>>>
>>>>>
>>>>>
>>>>> On 14/12/15 21:21, Tomasz Wlostowski wrote:
>>>>>> On 12.12.2015 02:41, Strontium wrote:
>>>>>>> This change should not break or modify any current behaviour, EXCEPT to
>>>>>>> retain the nets of tracks/vias which Kicad is otherwise incapable of
>>>>>>> determining automatically.
>>>>>> Hi Steven,
>>>>>>
>>>>>> Thanks for the patch, it also (partially) fixes the via stitching issue
>>>>>> many people have been complaining about. The origin of the problem is
>>>>>> that the net propagation code does not take zones into account - so a
>>>>>> via that is not connected to any pad with a chain of tracks is treated
>>>>>> as disconnected.
>>>>>>
>>>>>> Adding zone support in the net calculation code should AFAIK fix this
>>>>>> for good, but it may also require enhancing the DRC (so that it will
>>>>>> report every object with no pad connection) and the 'clean tracks&vias'
>>>>>> tool code.
>>>>>>
>>>>>> Regards,
>>>>>> Tom
>
>
Follow ups
References