← Back to team overview

kicad-developers team mailing list archive

Re: [FEATURE] Add keepout areas in footprints

 

By 'segfault' I obviously meant assertion error. The Type() calls are
returning:

a) PCB_MODULE_T
b) PCB_ZONE_AREA_T

Oliver

On Tue, Oct 17, 2017 at 12:06 AM, Oliver Walters <
oliver.henry.walters@xxxxxxxxx> wrote:

> JP,
>
> Thanks for pointing out those errors. I have fixed the zone rotation bug
> (patch attached to this email).
>
> The undo/redo behaviour is odd, I have now noticed something related
> within the module editor window.
>
> If I make a change to a zone (add / remove / rotate / move / flip) then I
> get a segfault.
>
> /pcbnew/undo_redo.cpp(581): assert "Type() == aImage->Type()" failed in
>> SwapData().
>
>
> Orson has previously given me some (very much appreciated) pointers to get
> me started on this feature. Perhaps either you or he have some further
> insights?
>
> Thanks,
>
> Oliver
>
> On Mon, Oct 16, 2017 at 7:16 PM, jp charras <jp.charras@xxxxxxxxxx> wrote:
>
>> Le 14/10/2017 à 23:20, Oliver Walters a écrit :
>> > Friendly bump - has anyone had a chance to look at this? :)
>> >
>> > Oliver
>> >
>> > On 12 Oct 2017 00:30, "Oliver Walters" <oliver.henry.walters@xxxxxxxxx
>> > <mailto:oliver.henry.walters@xxxxxxxxx>> wrote:
>> >
>> >     Attached is a patch set that allows addition of keepout zones to
>> footprints (modules).
>> >
>> >     When embedded inside a module, a keepout can be specified on a
>> combination of:
>> >
>> >     a) F.Cu
>> >     b) All internal copper layers
>> >     c) B.Cu
>> >
>> >     The patch set is working pretty well, save / load is working and
>> you can add / edit / delete
>> >     keepout areas within the module editor.
>> >
>> >     I have also added a new layer shortcut string *.In.Cu to specify
>> all internal layers within a
>> >     saved file.
>> >
>> >     There are a few issues that I need some help sorting out.
>> >
>> >     1. Displaying zones only on internal layers.
>> >
>> >     If you create a keepout zone but edit the layers such that is only
>> on the internal copper
>> >     layers, then it will disappear in the module editor. This is
>> because only F.Cu and B.Cu layers
>> >     are available in the module editor. I'm not sure how to display the
>> zone in this case, and allow
>> >     the user to edit it once it has disappeared.
>> >
>> >     2. Editing zone in pcbnew
>> >
>> >     Once a module is loaded into pcbnew, I want to be able to modify
>> the zone properties. e.g.
>> >     disable for a certain internal layer, or adjust the outline of the
>> zone. In the same way that
>> >     you can individually edit a pad once a module is added to a PCB.
>> >
>> >     Strangely I had this working at one point but I can't work out what
>> I changed to break it...
>> >
>> >
>> >     As far as I can tell, the DRC and zone cutouts are working well for
>> keepout areas that are added
>> >     to a board via a footprint.
>> >
>> >     Let me know if you see any crashes or mistakes, and if you can
>> provide pointers for the two
>> >     outstanding items above.
>> >
>> >     Thanks,
>> >
>> >     Oliver
>>
>> Hi Oliver,
>>
>> I tested your patch, but I have found a few serious issues when editing a
>> footprint with keepout
>> zone on a board:
>>
>> - the rotation does not work (incorrect position of the keepout after
>> rotation)
>> - Undoing/redoing a move, rotation... is fully broken and creates
>> multiple copies of the keepout,
>> and I had a crash after playing with undo/redo.
>>
>> Thanks.
>>
>> --
>> Jean-Pierre CHARRAS
>>
>> _______________________________________________
>> Mailing list: https://launchpad.net/~kicad-developers
>> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
>> Unsubscribe : https://launchpad.net/~kicad-developers
>> More help   : https://help.launchpad.net/ListHelp
>>
>
>

Follow ups

References