← Back to team overview

kicad-developers team mailing list archive

Re: [RFC] On net ties, microwave tools & custom pad shapes, altogether.

 

Le 03/05/2016 à 14:40, Tomasz Wlostowski a écrit :
> Hi all,
> 
> Recently there has been a lot of discussion on these features. Here's a
> short proposal how we could hit all three birds with one stone:
> 
> Changes to SCH:
> - none
> 
> Changes to netlist import:
> - auto_generate flag for SCH components - when set, invokes a Python
> script/C++ plugin which updates the PCB footprint of the component
> depending on its SCH parameters (e.g. produces a microstrip footprint
> based on Width/Length parameters defined on SCH).
> - write some microwave component generator plugins (or port the existing
> tools). Perhaps a good job for Python.
> 
> Changes to PCB:
> 1) Add two flags to each graphical primitive within a footprint:
> - net_tie: DRC treats the primitive as non-conducting and doesn't throw
> a short circuit error (see drawing A)
> - net_inherit = pad_number: the primitive will take the net of the pad
> with given pad_number (see drawing B)
> 2) Add new 'anchor' virtual pad type.
> - indicates the point to attach a trace/via when routing the component.
> - exists on a single copper layer.
> - has no physical copper.
> - has an optional direction vector which denotes how it can be connected
> with a trace/other anchor pad (see drawing C)
> - has a circular perimeter (maybe other shapes in the future if needed).
> Objects intersecting the graphical primitive outside the anchor
> perimeter are considered colliding by the DRC (see drawing D) even if
> they have the same net.
> 3) modify .kicad_pcb/footprint formats to support the above:
> - extend fp_* entities: net_tie & net_inherit flags
> - extend pad entity: add anchor pad type, perimeter radius and direction
> vector.
> 4) modify DRC to support the above (we can benefit from the work already
> done by JP)
> 
> 
> Advantages:
> - microwave footprints generated straight from the schematics.
> - net ties for free (since based on the same idea as microwave components)
> - custom footprint copper shapes almost for free (costs one extra flag &
> some changes in netlist importer)
> - minimum changes to file formats & data structures.
> 
> The attached drawing shows use cases for all of the above and explains
> the concept of anchors.
> 
> Looking forward to your feedback,
> Tom

Hi, Tom

I am now willing to rework on the custom pads, and commit my (old) work.

I carefully read you very interesting proposal.
I agree with some of ideas, but not of all.

OK for anchor pad idea (like in the custaom pad), but just why is the interest of "has no physical
copper" and "exists on a single copper layer"
It could be interesting, especially in net ties and microwave graphic items, to be able to connect
any item on any copper layer.

An other remark: net ties and microwave graphic items can connect more than one or 2 pads.

But after spent a lot of time to think about you proposal, I am thinking custom pads differ from Net
ties and microwave graphic items.
* a pad used in a net tie or microwave footprint can be moved, rotated, and layers changed ...
without the need to propagate these changes to associated graphic items
* associated graphic items are just graphic items, on a copper layer, and are not necessary flashed
in Gerber files (they have just a "etched component" attribute, if they belong to more than one net)

But a custom pad is closely linked to the graphic shape:
* They are part of the anchor pad, so they must be moved, rotated, and layer(s) changed ...
according to the pad anchor changes.
* Ideally, the entire pad shape should be flashed in Gerber files, for technical reasons.
* also clearance for solder mask, solder paste and zones is handled in a different manner for custom
pads than net tees.

So using separate entities for graphic shape and the anchor pad simplify the edition of the shape,
but create numerous issues for anything else than shape edition.

Therefore, your proposal is very interesting for graphic shapes linked to a pad in net ties and
microwave applications, but is not perfect for custom pads.

In may current work, the main issue is the custom pad shape edition.
for many shapes, the pad shape dialog is a reasonable way to enter ashape.
for complex shapes (a spiral, a microwave filter, an inductor) I am thinking the footprint editor is
not the right way to build the shape.
As you said a python script, or a svg import, is a better way.

I am waiting for comments, especially for custom pads.

Thanks.

-- 
Jean-Pierre CHARRAS


Follow ups

References