Files
dxftogcode/dxf.py

94 lines
2.8 KiB
Python
Raw Normal View History

#!/usr/bin/env python
version = '1.0.0'
# Copyright John Thornton 2015
import gtk
import os
import subprocess
class Buglump:
def __init__(self):
self.builder = gtk.Builder()
self.builder.add_from_file('dxf.glade')
self.builder.connect_signals(self)
self.window = self.builder.get_object('main_window')
self.aboutdialog = self.builder.get_object("aboutdialog")
self.aboutdialog.set_version(version)
self.tolerance = self.builder.get_object('tolerance_entry')
self.status = self.builder.get_object("status_label")
self.status.set_text('No File Open')
self.current_folder = os.path.expanduser('~')
self.label2 = self.builder.get_object('label2')
self.file_name = ''
self.window.show()
self.ini_check()
def on_window_destroy(self, object, data=None):
gtk.main_quit()
def on_file_quit(self, menuitem, data=None):
gtk.main_quit()
def on_file_open(self, menuitem, data=None):
self.fcd = gtk.FileChooserDialog("Open...", None,
gtk.FILE_CHOOSER_ACTION_OPEN,
(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_OPEN, gtk.RESPONSE_OK))
if len(self.current_folder) > 0:
self.fcd.set_current_folder(self.current_folder)
self.response = self.fcd.run()
if self.response == gtk.RESPONSE_OK:
self.status.set_text('File Selected %s' % self.fcd.get_filename())
self.file_name = "-f=" + self.fcd.get_filename()
self.current_folder = os.path.dirname(self.fcd.get_uri()[7:])
else:
self.status.set_text('No File Open')
self.fcd.destroy()
def on_file_convert(self, file_name, data=None):
if len(self.file_name) > 0:
self.args = self.file_name
self.result = subprocess.call("dxf2gcode %s" %self.args, shell=True)
if self.result == 0:
self.status.set_text('Processing Complete')
else:
self.status.set_text('Error %d Processing %s' % (self.result, self.file_name))
else:
self.status.set_text('No File Open')
def on_view_test(self, item, data=None):
pass
def ini_check(self, data=None):
ini_path = os.path.expanduser('~') + '/.config/dxf2emc'
ini_file = ini_path + '/dxf2emc.ini'
if not os.path.exists(ini_path):
os.makedirs(ini_path, 0755)
if not os.path.exists(ini_file):
fo = open(ini_file,'w')
fo.write('TOLERANCE=0.000001')
fo.close
message = 'Preferences File Created\nthis can be edited from Edit > Preferences'
md = gtk.MessageDialog(self.window,
gtk.DIALOG_DESTROY_WITH_PARENT, gtk.MESSAGE_INFO,
gtk.BUTTONS_OK, message)
md.run()
md.destroy()
self.tolerance.set_text('0.0000001')
def on_help_about(self, menuitem, data=None):
self.response = self.aboutdialog.run()
self.aboutdialog.hide()
def on_revert_prefrences(self, data=None):
self.status.set_text('Prefrences Reverted not operational.')
def on_save_preferences(self, data=None):
self.status.set_text('Prefrences Saved not operational.')
if __name__ == '__main__':
main = Buglump()
gtk.main()