kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #31149
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