← Back to team overview

kicad-developers team mailing list archive

Re: [PATCH] Eeschema automatic manage junctions

 

Hello Seth

I am not entirely sure what these patches actually do, but I tired to test
them.

But I have major problems with dragging stuff around in kicad. On the
attached I dragged a capacitor to the T junction on the wire above it.

If I make the asserts continue I get a blank page eventually.

Nick



2017-10-28 2:09 GMT+02:00 Seth Hillbrand <seth.hillbrand@xxxxxxxxx>:

> Hi All-
>
> Quick ping on this.  Master has moved on, so I've re-based the patch set
> to the current master, in case anyone is up for looking at it.  I also
> split out the largest patch into a couple of logical blocks, in hopes of
> making it easier to review.
>
> Lastly, I found and fixed a corner case where removing two segments on the
> same junction broke the undo/redo stack.
>
> Thanks!
> Seth
>
> On Mon, Oct 16, 2017 at 5:27 PM, Seth Hillbrand <seth.hillbrand@xxxxxxxxx>
> wrote:
>
>> Attached is a proposed patchset for automatically managing junctions​,
>> adding and deleting them as they are needed by the schematic.
>>
>> The patches touch a number of sections, so any reports of issues would be
>> greatly appreciated.  Notably, this introduces an "append" feature to
>> eeschema's undo save, which allows us to stack changes from different calls
>> into the undo list.  This removes the issue where "Delete Connection" would
>> break the undo stack.
>>
>> Schematic cleanup is moved from the SCH_SCREEN class into the
>> SCH_EDIT_FRAME class to provide access to the undo stack.
>>
>> Cleanup now checks for overlapping segments as well as duplicate
>> junctions and merge-able lines.
>>
>> Bugs reports addressed by this patchset:
>> https://bugs.launchpad.net/kicad/+bug/1563153
>> https://bugs.launchpad.net/kicad/+bug/593888
>> https://bugs.launchpad.net/kicad/+bug/1482111
>>
>> Any feedback would be greatly appreciated.
>>
>> -S​
>>
>>
>
> _______________________________________________
> 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
>
>
(gdb) bt
#0  0x00007fa81f586c40 in raise () at /usr/lib/libpthread.so.0
#1  0x00007fa8229ed636 in wxGUIAppTraits::ShowAssertDialog(wxString const&) () at /usr/lib/libwx_gtk2u_core-3.0.so.0
#2  0x00007fa8221074f9 in  () at /usr/lib/libwx_baseu-3.0.so.0
#3  0x00007fa82210a660 in wxAppConsoleBase::OnAssertFailure(wchar_t const*, int, wchar_t const*, wchar_t const*, wchar_t const*) ()
    at /usr/lib/libwx_baseu-3.0.so.0
#4  0x00007fa8229b8d51 in wxApp::OnAssertFailure(wchar_t const*, int, wchar_t const*, wchar_t const*, wchar_t const*) () at /usr/lib/libwx_gtk2u_core-3.0.so.0
#5  0x00007fa82210a97c in  () at /usr/lib/libwx_baseu-3.0.so.0
#6  0x00007fa822104f44 in wxOnAssert(char const*, int, char const*, char const*, char const*) () at /usr/lib/libwx_baseu-3.0.so.0
#7  0x00007fa7fb004edd in DHEAD::remove(EDA_ITEM*) (this=0x556e48ef57d0, aElement=0x556e4f4f8390) at /home/nickoe/kicad-git/common/dlist.cpp:163
#8  0x00007fa7fad55fc9 in DLIST<SCH_ITEM>::Remove(SCH_ITEM*) (this=0x556e48ef57d0, aElement=0x556e4f4f8390) at /home/nickoe/kicad-git/include/dlist.h:213
#9  0x00007fa7faf429aa in SCH_SCREEN::Remove(SCH_ITEM*) (this=0x556e48ef5570, aItem=0x556e4f4f8390) at /home/nickoe/kicad-git/eeschema/sch_screen.cpp:160
#10 0x00007fa7fad53ea2 in SCH_EDIT_FRAME::SchematicCleanUp(bool) (this=0x556e4a639cb0, aAppend=true)
    at /home/nickoe/kicad-git/eeschema/bus-wire-junction.cpp:512
#11 0x00007fa7fad3cbd8 in SCH_EDIT_FRAME::HandleBlockPlace(wxDC*) (this=0x556e4a639cb0, DC=0x7fff355f7490) at /home/nickoe/kicad-git/eeschema/block.cpp:142
#12 0x00007fa7fb0834aa in EDA_DRAW_PANEL::OnMouseEvent(wxMouseEvent&) (this=0x556e48c5ce50, event=...) at /home/nickoe/kicad-git/common/draw_panel.cpp:1242
#13 0x00007fa82228dd7e in wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&) () at /usr/lib/libwx_baseu-3.0.so.0
#14 0x00007fa82228de84 in wxEventHashTable::HandleEvent(wxEvent&, wxEvtHandler*) () at /usr/lib/libwx_baseu-3.0.so.0
#15 0x00007fa82228e25d in wxEvtHandler::TryHereOnly(wxEvent&) () at /usr/lib/libwx_baseu-3.0.so.0
#16 0x00007fa82228e2e4 in wxEvtHandler::ProcessEventLocally(wxEvent&) () at /usr/lib/libwx_baseu-3.0.so.0
#17 0x00007fa82228e346 in wxEvtHandler::ProcessEvent(wxEvent&) () at /usr/lib/libwx_baseu-3.0.so.0
#18 0x00007fa822c2090d in wxScrollHelperEvtHandler::ProcessEvent(wxEvent&) () at /usr/lib/libwx_gtk2u_core-3.0.so.0
#19 0x00007fa82228e097 in wxEvtHandler::SafelyProcessEvent(wxEvent&) () at /usr/lib/libwx_baseu-3.0.so.0
#20 0x00007fa8229f615f in  () at /usr/lib/libwx_gtk2u_core-3.0.so.0
#21 0x00007fa81ecae7ac in  () at /usr/lib/libgtk-x11-2.0.so.0
#22 0x00007fa81e68f6f5 in g_closure_invoke () at /usr/lib/libgobject-2.0.so.0
#23 0x00007fa81e6a30b0 in  () at /usr/lib/libgobject-2.0.so.0
#24 0x00007fa81e6a6efe in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0
#25 0x00007fa81e6a8920 in g_signal_emit () at /usr/lib/libgobject-2.0.so.0
#26 0x00007fa81edc68cc in  () at /usr/lib/libgtk-x11-2.0.so.0
#27 0x00007fa81ecacf74 in gtk_propagate_event () at /usr/lib/libgtk-x11-2.0.so.0
#28 0x00007fa81ecad32b in gtk_main_do_event () at /usr/lib/libgtk-x11-2.0.so.0
#29 0x00007fa81e92446c in  () at /usr/lib/libgdk-x11-2.0.so.0
#30 0x00007fa81dc0d270 in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0
#31 0x00007fa81dc0ef69 in  () at /usr/lib/libglib-2.0.so.0
#32 0x00007fa81dc0ff42 in g_main_loop_run () at /usr/lib/libglib-2.0.so.0
#33 0x00007fa81ecac3a7 in gtk_main () at /usr/lib/libgtk-x11-2.0.so.0
#34 0x00007fa8229d4866 in wxGUIEventLoop::DoRun() () at /usr/lib/libwx_gtk2u_core-3.0.so.0
#35 0x00007fa822143784 in wxEventLoopBase::Run() () at /usr/lib/libwx_baseu-3.0.so.0
#36 0x00007fa82210a247 in wxAppConsoleBase::MainLoop() () at /usr/lib/libwx_baseu-3.0.so.0
#37 0x0000556e47ed4b7b in APP_KICAD::OnRun() (this=0x556e48d1d6f0) at /home/nickoe/kicad-git/kicad/kicad.cpp:233
#38 0x00007fa8221975c8 in wxEntry(int&, wchar_t**) () at /usr/lib/libwx_baseu-3.0.so.0
#39 0x0000556e47ed3663 in main(int, char**) (argc=1, argv=0x7fff355f81f8) at /home/nickoe/kicad-git/kicad/kicad.cpp:265

Attachment: drag_part_to_junction.png
Description: PNG image


Follow ups

References