from Sketch import load, SketchLoadError def insert_file(context, filename): # most of this is copied from Sketch/UI/mainwindow.py app = context.application try: doc = load.load_drawing(filename) group = doc.as_group() except SketchLoadError, value: app.MessageBox(title = "Insert Document", message = "An error occurred:\n" + str(value)) else: messages = doc.meta.load_messages if messages: app.MessageBox(title = "Insert Document", message = "Warnings from the import filter:\n" + messages) # if group is not None: if group.NumObjects() == 1: # The document contained exactly one normal layer group = group.Ungroup()[0] # Ungroup return a list of children if group.is_Group and group.NumObjects() == 1: # The layer had exactly one child # is_Group should always be true... group = group.Ungroup()[0] context.main_window.canvas.PlaceObject(group) else: app.MessageBox(title = "Insert Document", message = "The document is empty") # register scripts import Sketch.Scripting Sketch.Scripting.AddFunction('insert_gnd', 'GND', insert_file, args = ("/some/where/gnd.sk",), menu = 'Insert', script_type = Sketch.Scripting.AdvancedScript)