summaryrefslogtreecommitdiff
path: root/kimesh/mesh_plugin.py
diff options
context:
space:
mode:
Diffstat (limited to 'kimesh/mesh_plugin.py')
-rw-r--r--kimesh/mesh_plugin.py38
1 files changed, 38 insertions, 0 deletions
diff --git a/kimesh/mesh_plugin.py b/kimesh/mesh_plugin.py
new file mode 100644
index 0000000..1951875
--- /dev/null
+++ b/kimesh/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())