summaryrefslogtreecommitdiff
path: root/mesh_plugin.py
diff options
context:
space:
mode:
authorjaseg <git@jaseg.de>2023-06-30 18:59:44 +0200
committerjaseg <git@jaseg.de>2023-06-30 18:59:44 +0200
commitdf73bd73c94a3c3166171291f784ff19bfffc505 (patch)
tree887781effa9e0ba9e7c69f7a7b76293acee745af /mesh_plugin.py
parent093b2c2df43c5242fb43b2e9bde565fac01f5a5c (diff)
downloadkimesh-df73bd73c94a3c3166171291f784ff19bfffc505.tar.gz
kimesh-df73bd73c94a3c3166171291f784ff19bfffc505.tar.bz2
kimesh-df73bd73c94a3c3166171291f784ff19bfffc505.zip
Version 2
Diffstat (limited to 'mesh_plugin.py')
-rw-r--r--mesh_plugin.py38
1 files changed, 38 insertions, 0 deletions
diff --git a/mesh_plugin.py b/mesh_plugin.py
new file mode 100644
index 0000000..1951875
--- /dev/null
+++ b/mesh_plugin.py
@@ -0,0 +1,38 @@
+from os import path
+import subprocess
+import sys
+
+import wx
+
+import pcbnew
+
+def check_requirements(*packages):
+ missing = []
+ for pkg in packages:
+ try:
+ __import__(pkg)
+ except ImportError:
+ missing.append(pkg)
+
+ if missing:
+ wx.MessageDialog(None, "Error: Missing python dependencies:\n\n{}".format('\n'.join(missing)),
+ "Missing Dependencies").ShowModal()
+ return False
+
+ else:
+ return True
+
+class MeshPlugin(pcbnew.ActionPlugin):
+ def defaults(self):
+ self.name = 'Mesh generator'
+ self.category = 'Modify PCB'
+ self.description = 'Creates security mesh traces on a PCB'
+ self.icon_file_name = path.join(path.dirname(__file__), 'mesh_plugin_icon.png')
+ self.show_toolbar_button = True
+
+ def Run(self):
+ if not check_requirements('shapely'):
+ return
+
+ from .mesh_dialog import show_dialog
+ show_dialog(pcbnew.GetBoard())