Basic support for importing SVG. Via shell only at this time. See issue #179.
This commit is contained in:
@@ -1604,6 +1604,34 @@ class App(QtCore.QObject):
|
||||
else:
|
||||
self.inform.emit("Project copy saved to: " + self.project_filename)
|
||||
|
||||
def import_svg(self, filename, outname=None):
|
||||
"""
|
||||
Adds a new Geometry Object to the projects and populates
|
||||
it with shapes extracted from the SVG file.
|
||||
|
||||
:param filename: Path to the SVG file.
|
||||
:param outname:
|
||||
:return:
|
||||
"""
|
||||
|
||||
def obj_init(geo_obj, app_obj):
|
||||
|
||||
geo_obj.import_svg(filename)
|
||||
|
||||
with self.proc_container.new("Importing SVG") as proc:
|
||||
|
||||
# Object name
|
||||
name = outname or filename.split('/')[-1].split('\\')[-1]
|
||||
|
||||
self.new_object("geometry", name, obj_init)
|
||||
|
||||
# TODO: No support for this yet.
|
||||
# Register recent file
|
||||
# self.file_opened.emit("gerber", filename)
|
||||
|
||||
# GUI feedback
|
||||
self.inform.emit("Opened: " + filename)
|
||||
|
||||
def open_gerber(self, filename, follow=False, outname=None):
|
||||
"""
|
||||
Opens a Gerber file, parses it and creates a new object for
|
||||
@@ -1959,6 +1987,17 @@ class App(QtCore.QObject):
|
||||
|
||||
return a, kwa
|
||||
|
||||
def import_svg(filename, *args):
|
||||
a, kwa = h(*args)
|
||||
types = {'outname': str}
|
||||
|
||||
for key in kwa:
|
||||
if key not in types:
|
||||
return 'Unknown parameter: %s' % key
|
||||
kwa[key] = types[key](kwa[key])
|
||||
|
||||
self.import_svg(str(filename), **kwa)
|
||||
|
||||
def open_gerber(filename, *args):
|
||||
a, kwa = h(*args)
|
||||
types = {'follow': bool,
|
||||
@@ -2556,6 +2595,12 @@ class App(QtCore.QObject):
|
||||
'fcn': shelp,
|
||||
'help': "Shows list of commands."
|
||||
},
|
||||
'import_svg': {
|
||||
'fcn': import_svg,
|
||||
'help': "Import an SVG file as a Geometry Object.\n" +
|
||||
"> import_svg <filename>" +
|
||||
" filename: Path to the file to import."
|
||||
},
|
||||
'open_gerber': {
|
||||
'fcn': open_gerber,
|
||||
'help': "Opens a Gerber file.\n' +"
|
||||
|
||||
Reference in New Issue
Block a user