diff options
Diffstat (limited to 'kimesh/mesh_plugin.py')
-rw-r--r-- | kimesh/mesh_plugin.py | 38 |
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()) |