Internal Edge.Cuts (slots) not showing up on 3D view

Bug #1837659 reported by Bruno Inuggi
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
KiCad
Invalid
Undecided
Unassigned

Bug Description

Version: 5.1.2-2, release build
Platform: Windows 8 (build 9200), 64-bit edition, 64 bit
OS: Windows 10

Description:
When making an internal slot defined in the Edge.Cuts layer, the Pcbnew view behaves properly (copper pours go around them) but the 3D view doesn't show the hole. It happens for an outline defined in the footprint or on Pcbnew.
Attached picture shows a footprint with a slot and a slot drawn on Pcbnew, both have the same issue.

More information:
Polygon is properly closed. No errors show up when opening 3D view.

Revision history for this message
Bruno Inuggi (binux14) wrote :
Revision history for this message
Nick Østergaard (nickoe) wrote :

Please attach the kicad pcb file.

Revision history for this message
Michael Kavanagh (michaelkavanagh) wrote :

Please copy the full version information from About KiCad -> Copy Version Info.

Changed in kicad:
status: New → Incomplete
Revision history for this message
Wayne Stambaugh (stambaughw) wrote :

If possible, please attach the board file used to create the screen capture posted with this bug report. I suspect the cutout shown is actually part of the footprint rather than the board itself. If this is the case, this is a known issue that will be fixed during version 6 development.

Revision history for this message
Bruno Inuggi (binux14) wrote :
Download full text (3.9 KiB)

Hey guys,

Sorry for not attaching the PCB file, but due to IP restrictions I wasn't able to.
Anyway, I was able to reproduce the problem on a new project (Pcbnew attached) and found some new stuff:

- It only happens if there is another footprint with a cutout or layout cutout outside the board and outside the sheet.
- If everything is contained in the sheet, it works fine.

Now I'm not sure if it's actually a bug or this is somehow intended.

---

Copied version info:

Application: kicad
Version: (5.1.2)-2, release build
Libraries:
    wxWidgets 3.0.4
    libcurl/7.61.1 OpenSSL/1.1.1 (WinSSL) zlib/1.2.11 brotli/1.0.6 libidn2/2.0.5 libpsl/0.20.2 (+libidn2/2.0.5) nghttp2/1.34.0
Platform: Windows 8 (build 9200), 64-bit edition, 64 bit, Little endian, wxMSW
Build Info:
    wxWidgets: 3.0.4 (wchar_t,wx containers,compatible with 2.8)
    Boost: 1.68.0
    OpenCASCADE Community Edition: 6.9.1
    Curl: 7.61.1
    Compiler: GCC 8.2.0 with C++ ABI 1013

Build settings:
    USE_WX_GRAPHICS_CONTEXT=OFF
    USE_WX_OVERLAY=OFF
    KICAD_SCRIPTING=ON
    KICAD_SCRIPTING_MODULES=ON
    KICAD_SCRIPTING_PYTHON3=OFF
    KICAD_SCRIPTING_WXPYTHON=ON
    KICAD_SCRIPTING_WXPYTHON_PHOENIX=OFF
    KICAD_SCRIPTING_ACTION_MENU=ON
    BUILD_GITHUB_PLUGIN=ON
    KICAD_USE_OCE=ON
    KICAD_USE_OCC=OFF
    KICAD_SPICE=ON
?field.comment=Hey guys,

Sorry for not attaching the PCB file, but due to IP restrictions I wasn't able to.
Anyway, I was able to reproduce the problem on a new project (Pcbnew attached) and found some new stuff:

- It only happens if there is another footprint with a cutout or layout cutout outside the board and outside the sheet.
- If everything is contained in the sheet, it works fine.

Now I'm not sure if it's actually a bug or this is somehow intended.

---

Copied version info:

Application: kicad
Version: (5.1.2)-2, release build
Libraries:
    wxWidgets 3.0.4
    libcurl/7.61.1 OpenSSL/1.1.1 (WinSSL) zlib/1.2.11 brotli/1.0.6 libidn2/2.0.5 libpsl/0.20.2 (+libidn2/2.0.5) nghttp2/1.34.0
Platform: Windows 8 (build 9200), 64-bit edition, 64 bit, Little endian, wxMSW
Build Info:
    wxWidgets: 3.0.4 (wchar_t,wx containers,compatible with 2.8)
    Boost: 1.68.0
    OpenCASCADE Community Edition: 6.9.1
    Curl: 7.61.1
    Compiler: GCC 8.2.0 with C++ ABI 1013

Build settings:
    USE_WX_GRAPHICS_CONTEXT=OFF
    USE_WX_OVERLAY=OFF
    KICAD_SCRIPTING=ON
    KICAD_SCRIPTING_MODULES=ON
    KICAD_SCRIPTING_PYTHON3=OFF
    KICAD_SCRIPTING_WXPYTHON=ON
    KICAD_SCRIPTING_WXPYTHON_PHOENIX=OFF
    KICAD_SCRIPTING_ACTION_MENU=ON
    BUILD_GITHUB_PLUGIN=ON
    KICAD_USE_OCE=ON
    KICAD_USE_OCC=OFF
    KICAD_SPICE=ON
?field.comment=Hey guys,

Sorry for not attaching the PCB file, but due to IP restrictions I wasn't able to.
Anyway, I was able to reproduce the problem on a new project (Pcbnew attached) and found some new stuff:

- It only happens if there is another footprint with a cutout or layout cutout outside the board and outside the sheet.
- If everything is contained in the sheet, it works fine.

Now I'm not sure if it's actually a bug or this is somehow intended.

---

Copied version info:

Application: kicad
Version: (5.1.2)-2, release build
Libraries...

Read more...

Changed in kicad:
importance: Undecided → Low
milestone: none → 5.1.4
status: Incomplete → Triaged
Changed in kicad:
milestone: 5.1.4 → 5.1.5
Revision history for this message
Wayne Stambaugh (stambaughw) wrote :

I do not think there is a bug here. The attached board doesn't work because there is a footprint with a cutout outside the bounding edges of the board. There is even a warning that the 3D viewer cannot determine the board outline. I removed the footprint outsid the confines of the board and I do not see any issues with the 3D model cutouts. You cannot expect the 3D viewer to make a valid board outline with the provided board. I included the revised board to show the difference.

Changed in kicad:
status: Triaged → Invalid
importance: Low → Undecided
milestone: 5.1.5 → none
Revision history for this message
Bruno Inuggi (binux14) wrote :

The problem is when the footprint outside of the board is inside the "sheet" or outside the sheet. It's not related to the outline completeness.

Please see these 2 files attached that might explain my point better, one shows everything correct in the 3D view and the other (when I move the footprint to the outside of the sheet) fails to show the cutouts in the board. There is nothing different on the outlines, just the position of a footprint.

The reason I reported this is because while laying out the board I have a lot of components outside of the main outline of the board and outside the sheet, so it took me a while to figure out why I was having this problem in the 3D view. I thought I was doing something wrong with the outlines.

Revision history for this message
Seth Hillbrand (sethh) wrote :

@Bruno- We don't yet fully support edge cuts in footprints. So when you place a footprint outside of the board outline with an edge cut, we are in an undefined region. You can follow[1] to find fixes for this.

@Wayne- This happens because the cutout is being assigned to the wrong outline. We can fix it by better detecting which outline gets the cutout rather than assuming a single outline. Or we make the largest outline the board and _everything_ else a cutout. The second option is probably easiest but it prevents a solution to [2]

[1] https://bugs.launchpad.net/kicad/+bug/1251393
[2] https://bugs.launchpad.net/kicad/+bug/1764039

Revision history for this message
Wayne Stambaugh (stambaughw) wrote :

@Seth, what outline? There is one footprint outside of the main board outline in the provided sample. How would you reliably determine the board shape from board edge cuts provided? Even if the 3D viewer supported multiple board outlines, the provided board would still be wrong because the cutout of the footprint that is off the main board outline would be interpreted as a separate board which in this case is surely not what the user intended. The 3D viewer rightly complains that it cannot determine the board outline so the expectation that the 3D viewer should somehow know user's intentions is misplaced at best.

Revision history for this message
Seth Hillbrand (sethh) wrote :

@Wayne-

There are two, separate, closed outlines in the example file. One is the board and one is the closed outline in the footprint.

The cutouts are always assigned to the left-most outline. If you move the external footprint to the right side of the board, you should see that the cutouts are correctly assigned.

I think we should assign the cutout based on a hit test instead of using the first outline logic.

I agree that the board is invalid. But we could still assign the cutouts to their respective outlines.

Revision history for this message
Wayne Stambaugh (stambaughw) wrote :

@Seth, I'm fine with this. Maybe for v7 we can add some priority level to edge cuts to allow for things like multiple board outlines with multiple cutouts and potentially merged cut outs similar to our zone prioritization. It seems that this bug report is a duplicate of the two bug reports you linked above.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.