PCM Plugin Errors in 6.0.9

Hello,

I’m currently using KiCad 6.0.9 installed through flatpak on CentOS. In version 6.0.7, I was able to use plugins available through the content manager (such as the action plugins and board2pdf). However, after the 6.0.9 update, these now give errors such as "AttributeError: module ‘pcbnew’ has no attribute ‘BOARD_GetStandardLayerName’ ".

I reverted back to 6.0.7 and verified that the plugins work properly on that version. Do these plugins have an API incompatibility at this time or is there a simpler fix for this problem that I am missing? Please let me know if I can provide further information.

Thanks

I am on 6.0.9 on Kubuntu 22.04 and in my case, I can access pcbnew.BOARD.GetStandardLayerName

You should be able to check this in PCB editor python console.

import pcbnew
brd = pcbnew.GetBoard()
brd.GetStandardLayerName(pcbnew.F_Cu)

last statement returns 'F.Cu'

You should report issues like this on the plugin’s github page. Link is in the package description in plugin manager.

That also works for me in the PCBNEW console, but for some reason the plugins can’t seem to correctly access this information

I don’t think it’s necessarily an issue with a particular plugin, as it doesn’t seem like the API changed and my particular update to 6.0.9 caused issues with multiple plugins. However, I might be incorrect. 6.0.8 may also be problematic, I just know 6.0.7 works.

I figured it might have more to do with my particular flatpak installation or settings, as I have not seen any others voice these same problems moving from versions in KiCAD 6. But as I mentioned above, through the terminal I can access the API just fine, but I cannot determine why multiple plugins cannot. If you have any advice on any other tests I might run, please let me know.

Thanks

Post specific plugin and screenshot or full text of the error message, I can look at the code.
Also try reinstalling the plugin from manager after upgrade to 6.0.9.

I did more searching into the error with the Board2Pdf plugin, since that is the one I am interested in at the moment. The error I was getting said pcbnew didn’t have the attribute “BOARD_GetStandardLayerName()”, just as the action plugins did. I tested this in my terminal and found I also don’t access to it, even though it appears in my pcbnew.py file and the documentation online. Maybe this is being obsoleted now.

To get around it, I just changed the script to get the board object and call its function as MitjaN described.

Hi,
I’m the main author of Board2Pdf.
I just downloaded 6.0.9 and the plugin works fine for me under Windows. Strange that it doesn’t work with the flatpack under CentOS!
I’m not sure if I should fix this in Board2Pdf, or if it should be fixed in the flatpack…
It also works fine in the terminal:

Py 0.9.8
Python 3.9.14 (main, Sep 19 2022, 05:11:57) [MSC v.1932 64 bit (AMD64)] on win32
Type “help”, “copyright”, “credits” or “license” for more information.
Startup script executed: C:\Users\denne\AppData\Roaming\kicad\6.0\PyShell_pcbnew_startup.py

import pcbnew
pcbnew.BOARD_GetStandardLayerName(0)
‘F.Cu’
pcbnew.BOARD_GetStandardLayerName(1)
‘In1.Cu’

My version:

Application: KiCad PCB Editor (64-bit)

Version: (6.0.9), release build

Libraries:
wxWidgets 3.2.1
libcurl/7.83.1-DEV Schannel zlib/1.2.12

Platform: Windows 11 (build 22621), 64-bit edition, 64 bit, Little endian, wxMSW

Build Info:
Date: Oct 29 2022 23:44:28
wxWidgets: 3.2.1 (wchar_t,wx containers)
Boost: 1.79.0
OCC: 7.6.0
Curl: 7.83.1-DEV
ngspice: 37
Compiler: Visual C++ 1929 without C++ ABI

Build settings:
KICAD_USE_OCC=ON
KICAD_SPICE=ON