diff --git a/README.md b/README.md index 436185a4..a06549c4 100644 --- a/README.md +++ b/README.md @@ -28,6 +28,7 @@ CAD program, and create G-Code for Isolation routing. - made sure that all TclCommands are not threaded - added new TclCommands: NewExcellon, NewGerber - fixed the TclCommand open_project +- added the outname parameter (and established an default name when outname not used) for the AlignDrillGrid and AlignDrill TclCommands 14.09.2019 diff --git a/tclCommands/TclCommandAlignDrill.py b/tclCommands/TclCommandAlignDrill.py index 3b895861..7ce59b2a 100644 --- a/tclCommands/TclCommandAlignDrill.py +++ b/tclCommands/TclCommandAlignDrill.py @@ -29,6 +29,7 @@ class TclCommandAlignDrill(TclCommandSignaled): ('axisoffset', float), ('dia', float), ('dist', float), + ('outname', str), ]) # array of mandatory options for current Tcl command: required = {'name','outname'} @@ -47,9 +48,11 @@ class TclCommandAlignDrill(TclCommandSignaled): ('minoffset', 'min and max distance between align hole and pcb.'), ('axisoffset', 'Offset on second axis before aligment holes'), ('axis', 'Mirror axis parallel to the X or Y axis.'), - ('dist', 'Distance of the mirror axis to the X or Y axis.') + ('dist', 'Distance of the mirror axis to the X or Y axis.'), + ('outname', 'Name of the resulting Excellon object.'), ]), - 'examples': [] + 'examples': ['aligndrill my_object -axis X -box my_object -dia 3.125 -grid 1 ' + '-gridoffset 0 -minoffset 2 -axisoffset 2'] } def execute(self, args, unnamed_args): @@ -64,6 +67,11 @@ class TclCommandAlignDrill(TclCommandSignaled): name = args['name'] + if 'outname' in args: + outname = args['outname'] + else: + outname = name + "_aligndrill" + # Get source object. try: obj = self.app.collection.get_by_name(str(name)) @@ -176,9 +184,7 @@ class TclCommandAlignDrill(TclCommandSignaled): px = 0.5 * (xmin + xmax) py = 0.5 * (ymin + ymax) - obj.app.new_object("excellon", - name + "_aligndrill", - alligndrill_init_me, plot=False) + obj.app.new_object("excellon", outname, alligndrill_init_me, plot=False) except Exception as e: return "Operation failed: %s" % str(e) @@ -194,8 +200,8 @@ class TclCommandAlignDrill(TclCommandSignaled): try: px = dist py = dist - obj.app.new_object("excellon", name + "_alligndrill", alligndrill_init_me, plot=False) + obj.app.new_object("excellon", outname, alligndrill_init_me, plot=False) except Exception as e: return "Operation failed: %s" % str(e) - return 'Ok. Align Drills Excelon object created' + return 'Ok. Align Drills Excellon object created' diff --git a/tclCommands/TclCommandAlignDrillGrid.py b/tclCommands/TclCommandAlignDrillGrid.py index 84e3cde7..bdfa014d 100644 --- a/tclCommands/TclCommandAlignDrillGrid.py +++ b/tclCommands/TclCommandAlignDrillGrid.py @@ -17,7 +17,7 @@ class TclCommandAlignDrillGrid(TclCommandSignaled): # Dictionary of types from Tcl command, needs to be ordered. # For positional arguments arg_names = collections.OrderedDict([ - ('outname', str) + ]) # Dictionary of types from Tcl command, needs to be ordered. @@ -29,11 +29,12 @@ class TclCommandAlignDrillGrid(TclCommandSignaled): ('gridy', float), ('gridoffsety', float), ('columns', int), - ('rows', int) + ('rows', int), + ('outname', str) ]) # array of mandatory options for current Tcl command: required = {'name','outname'} - required = ['outname', 'gridx', 'gridy', 'columns', 'rows'] + required = ['gridx', 'gridy', 'columns', 'rows'] # structured help for current command, args needs to be ordered help = { @@ -48,7 +49,7 @@ class TclCommandAlignDrillGrid(TclCommandSignaled): ('colums', 'Number of grid holes on X axis.'), ('rows', 'Number of grid holes on Y axis.'), ]), - 'examples': [] + 'examples': ['aligndrillgrid -rows 2 -columns 2 -gridoffsetx 10 -gridoffsety 10 -gridx 2.54 -gridy 5.08'] } def execute(self, args, unnamed_args): @@ -61,6 +62,11 @@ class TclCommandAlignDrillGrid(TclCommandSignaled): :return: None or exception """ + if 'outname' in args: + outname = args['outname'] + else: + outname = "new_aligndrill_grid" + if 'gridoffsetx' not in args: gridoffsetx = 0 else: @@ -102,4 +108,4 @@ class TclCommandAlignDrillGrid(TclCommandSignaled): init_obj.create_geometry() # Create the new object - self.app.new_object("excellon", args['outname'], aligndrillgrid_init_me, plot=False) + self.app.new_object("excellon", outname, aligndrillgrid_init_me, plot=False)