PCB editor crashes while importing Altium PcbDoc
Description
PCB editor version 8.0.0 crashes while importing PcbDoc from Altium.
With the pcb editor version 7.0.0 the crash does not happen but for the same file a warning is displayed: "Altium layer (70) has no KiCad equivalent. It has been moved to KiCad layer Eco1_User."
Steps to reproduce
- open pcb editor
- goto file/import and select Non-KiCad Board File
- select the Altium .PcbDoc file and open it (unfortunately i can not share the file)
- After loading polygons the pcb editor crashes
KiCad Version
Application: KiCad PCB Editor x64 on x64
Version: 8.0.0, release build
Libraries:
wxWidgets 3.2.4
FreeType 2.12.1
HarfBuzz 8.3.0
FontConfig 2.14.2
libcurl/8.5.0-DEV Schannel zlib/1.3
Platform: Windows 10 (Erzeugungsversion 19045), 64-bit Edition, 64 bit, Little endian, wxMSW
Build Info:
Date: Feb 23 2024 02:24:15
wxWidgets: 3.2.4 (wchar_t,wx containers)
Boost: 1.83.0
OCC: 7.7.1
Curl: 8.5.0-DEV
ngspice: 42
Compiler: Visual C++ 1936 without C++ ABI
Build settings:
Designs
- Show closed items
Relates to
Activity
-
Newest first Oldest first
-
Show all activity Show comments only Show history only
- KiCad Bot added 8.0 priorityundecided statusnew labels
added 8.0 priorityundecided statusnew labels
- Owner
Sentry Issue: KICAD-8V5
Collapse replies - Author
What do you mean by Data Collection id? Where and how do i find this id?
- Author
88f4cc2a-8bdf-412e-9916-314ba8f1c50a
- Jon Evans added altium priorityhigh regression labels and removed priorityundecided label
added altium priorityhigh regression labels and removed priorityundecided label
- Owner
Sentry Issue: KICAD-85F
if( !layers[ layer ] ) continue; for( int outline = 0; outline < poly->OutlineCount(); outline++ ) { const SHAPE_POLY_SET::TRIANGULATED_POLYGON* tri = poly->TriangulatedPolygon( outline ); // <--------- for( size_t i = 0; i < tri->GetTriangleCount(); i++) { VECTOR2I a, b, c; tri->GetTriangle( i, a, b, c );
Fatal Error: EXCEPTION_ACCESS_VIOLATION_READ / 0x0 Thread 4152 Crashed: 0 _pcbnew.dll 0x7ffd4d140a84 PNS_KICAD_IFACE_BASE::syncZone (pns_kicad_iface.cpp:1279) 1 _pcbnew.dll 0x7ffd4d13e660 PNS_KICAD_IFACE_BASE::SyncWorld (pns_kicad_iface.cpp:1548) 2 _pcbnew.dll 0x7ffd4d11d564 PNS::ROUTER::SyncWorld (pns_router.cpp:99) 3 _pcbnew.dll 0x7ffd4cb5ab3a GENERATOR_TOOL_PNS_PROXY::Reset (generator_tool_pns_proxy.cpp:139) 4 _pcbnew.dll 0x7ffd4d1d8221 TOOL_MANAGER::ResetTools (tool_manager.cpp:623) 5 _pcbnew.dll 0x7ffd4ca3e1fb PCB_BASE_EDIT_FRAME::SetBoard (pcb_base_edit_frame.cpp:223) 6 _pcbnew.dll 0x7ffd4ca44e9f PCB_EDIT_FRAME::SetBoard (pcb_edit_frame.cpp:532) 7 _pcbnew.dll 0x7ffd4c9fae40 PCB_EDIT_FRAME::OpenProjectFiles (files.cpp:734) 8 _pcbnew.dll 0x7ffd4c9f77f2 PCB_EDIT_FRAME::Files_io_from_id (files.cpp:285) 9 wxbase32u_vc_custom.dll 0x7ffd574960f3 wxAppConsoleBase::CallEventHandler (appbase.cpp:673) 10 wxbase32u_vc_custom.dll 0x7ffd5758dfde wxEvtHandler::ProcessEventIfMatchesId (event.cpp:1431) 11 wxbase32u_vc_custom.dll 0x7ffd5758dbbb wxEventHashTable::HandleEvent (event.cpp:1039) 12 wxbase32u_vc_custom.dll 0x7ffd5758ee5c wxEvtHandler::TryHereOnly (event.cpp:1628) 13 wxbase32u_vc_custom.dll 0x7ffd5758ded1 [inlined] wxEvtHandler::TryBeforeAndHere (event.h:4007) 14 wxbase32u_vc_custom.dll 0x7ffd5758ded1 wxEvtHandler::ProcessEvent (event.cpp:1530) 15 _pcbnew.dll 0x7ffd4d1ccd9e EDA_BASE_FRAME::ProcessEvent (eda_base_frame.cpp:294) 16 wxbase32u_vc_custom.dll 0x7ffd5758d638 wxEvtHandler::DoTryChain (event.cpp:1593) 17 wxbase32u_vc_custom.dll 0x7ffd5758df51 [inlined] wxEvtHandler::ProcessEventLocally (event.cpp:1561) 18 wxbase32u_vc_custom.dll 0x7ffd5758df51 wxEvtHandler::ProcessEvent (event.cpp:1534) 19 wxmsw32u_core_vc_custom.dll 0x7ffd4f810164 wxWindowBase::TryAfter (wincmn.cpp:3536) 20 wxbase32u_vc_custom.dll 0x7ffd5758df61 wxEvtHandler::ProcessEvent (event.cpp:1547) 21 wxbase32u_vc_custom.dll 0x7ffd5758ea59 wxEvtHandler::SafelyProcessEvent (event.cpp:1650) 22 wxmsw32u_core_vc_custom.dll 0x7ffd4f7d0547 [inlined] wxMenuBase::DoProcessEvent (menucmn.cpp:720) 23 wxmsw32u_core_vc_custom.dll 0x7ffd4f7d0547 wxMenuBase::SendEvent (menucmn.cpp:683) 24 wxmsw32u_core_vc_custom.dll 0x7ffd4f9d765a wxFrame::HandleCommand (frame.cpp:814) 25 wxmsw32u_core_vc_custom.dll 0x7ffd4f9d7ead wxFrame::MSWWindowProc (frame.cpp:864) 26 wxmsw32u_core_vc_custom.dll 0x7ffd4f998f15 wxWndProc (window.cpp:2948) 27 USER32.dll 0x7ffdb71cef74 UserCallWinProcCheckWow 28 USER32.dll 0x7ffdb71ce69c DispatchMessageWorker 29 wxmsw32u_core_vc_custom.dll 0x7ffd4f9a433c wxGUIEventLoop::Dispatch (evtloop.cpp:224) 30 wxbase32u_vc_custom.dll 0x7ffd574c7bb2 [inlined] wxEventLoopManual::ProcessEvents (evtloopcmn.cpp:234) 31 wxbase32u_vc_custom.dll 0x7ffd574c7bb2 wxEventLoopManual::DoRun (evtloopcmn.cpp:288) 32 wxbase32u_vc_custom.dll 0x7ffd574c7e39 wxEventLoopBase::Run (evtloopcmn.cpp:87) 33 wxbase32u_vc_custom.dll 0x7ffd57498606 wxAppConsoleBase::MainLoop (appbase.cpp:381) 34 pcbnew.exe 0x7ff66c58a101 APP_SINGLE_TOP::OnRun (single_top.cpp:221) 35 wxbase32u_vc_custom.dll 0x7ffd57514e9b wxEntryReal (init.cpp:497) 36 wxbase32u_vc_custom.dll 0x7ffd575ec827 wxEntry (main.cpp:175) 37 pcbnew.exe 0x7ff66c660695 [inlined] invoke_main (exe_common.inl:102) 38 pcbnew.exe 0x7ff66c660695 __scrt_common_main_seh (exe_common.inl:288) 39 KERNEL32.DLL 0x7ffdb63e7343 BaseThreadInitThunk 40 ntdll.dll 0x7ffdb83e26b0 RtlUserThreadStart
Can the outline count differ from the triangulated polygon count?
if( !layers[ layer ] ) continue; - for( int outline = 0; outline < poly->OutlineCount(); outline++ ) + for( int outline = 0; outline < poly->TriangulatedPolyCount(); outline++ ) { const SHAPE_POLY_SET::TRIANGULATED_POLYGON* tri = poly->TriangulatedPolygon( outline ); for( size_t i = 0; i < tri->GetTriangleCount(); i++) { VECTOR2I a, b, c; tri->GetTriangle( i, a, b, c );
Collapse replies - Author
Is that a question for me? If so, how can I find / calculate the Outline count and the polygon count?
- Owner
Yes it can. If the triangulation fails for an outline (if it has fewer than 3 vertices) then the count will be different
- Maintainer
Is that a question for me? If so, how can I find / calculate the Outline count and the polygon count?
No, it was a question for the developers.
- Owner
@dsa-t are you going to push that change? It makes sense to me.
- dsa-t added needs-cherry-pick statusfix-committed labels and removed statusnew label
added needs-cherry-pick statusfix-committed labels and removed statusnew label
- dsa-t added statusawaiting-testing label and removed statusfix-committed label
added statusawaiting-testing label and removed statusfix-committed label
- dsa-t removed needs-cherry-pick label
removed needs-cherry-pick label
Collapse replies - Author
tested it with kicad-nightly-8.99.0.409.g72d83cd5-x86_64 and it did not crash. Thank you for fixing it.
- dsa-t added statusfix-committed label and removed statusawaiting-testing label
added statusfix-committed label and removed statusawaiting-testing label
- Seth Hillbrand marked #17609 (closed) as a duplicate of this issue
marked #17609 (closed) as a duplicate of this issue
- Seth Hillbrand marked this issue as related to #17609 (closed)
marked this issue as related to #17609 (closed)