- added 3 new tcl commands: export dxf, export excellon and export gerber
This commit is contained in:
@@ -2097,7 +2097,8 @@ class App(QtCore.QObject):
|
|||||||
# #####################################################################################
|
# #####################################################################################
|
||||||
self.tcl_commands_list = ['add_circle', 'add_poly', 'add_polygon', 'add_polyline', 'add_rectangle',
|
self.tcl_commands_list = ['add_circle', 'add_poly', 'add_polygon', 'add_polyline', 'add_rectangle',
|
||||||
'aligndrill', 'aligndrillgrid', 'bbox', 'bounding_box', 'clear', 'cncjob', 'cutout',
|
'aligndrill', 'aligndrillgrid', 'bbox', 'bounding_box', 'clear', 'cncjob', 'cutout',
|
||||||
'delete', 'drillcncjob', 'export_gcode', 'export_svg', 'ext', 'exteriors', 'follow',
|
'delete', 'drillcncjob', 'export_dxf', 'edxf', 'export_excellon', 'ee', 'export_exc',
|
||||||
|
'export_gcode', 'export_gerber', 'egr', 'export_svg', 'ext', 'exteriors', 'follow',
|
||||||
'geo_union', 'geocutout', 'get_names', 'get_sys', 'getsys', 'help', 'import_svg',
|
'geo_union', 'geocutout', 'get_names', 'get_sys', 'getsys', 'help', 'import_svg',
|
||||||
'interiors', 'isolate', 'join_excellon', 'join_excellons', 'join_geometries',
|
'interiors', 'isolate', 'join_excellon', 'join_excellons', 'join_geometries',
|
||||||
'join_geometry', 'list_sys', 'listsys', 'milld', 'mills', 'milldrills', 'millslots',
|
'join_geometry', 'list_sys', 'listsys', 'milld', 'mills', 'milldrills', 'millslots',
|
||||||
@@ -10131,7 +10132,7 @@ class App(QtCore.QObject):
|
|||||||
self.report_usage("export_excellon()")
|
self.report_usage("export_excellon()")
|
||||||
|
|
||||||
if filename is None:
|
if filename is None:
|
||||||
filename = self.defaults["global_last_save_folder"]
|
filename = self.defaults["global_last_save_folder"] + '/' + 'exported_excellon'
|
||||||
|
|
||||||
self.log.debug("export_excellon()")
|
self.log.debug("export_excellon()")
|
||||||
|
|
||||||
@@ -10148,6 +10149,11 @@ class App(QtCore.QObject):
|
|||||||
else:
|
else:
|
||||||
obj = local_use
|
obj = local_use
|
||||||
|
|
||||||
|
if not isinstance(obj, FlatCAMExcellon):
|
||||||
|
self.inform.emit('[ERROR_NOTCL] %s' %
|
||||||
|
_("Failed. Only Excellon objects can be saved as Excellon files..."))
|
||||||
|
return
|
||||||
|
|
||||||
# updated units
|
# updated units
|
||||||
eunits = self.defaults["excellon_exp_units"]
|
eunits = self.defaults["excellon_exp_units"]
|
||||||
ewhole = self.defaults["excellon_exp_integer"]
|
ewhole = self.defaults["excellon_exp_integer"]
|
||||||
|
|||||||
@@ -2334,7 +2334,7 @@ class FlatCAMExcellon(FlatCAMObj, Excellon):
|
|||||||
def build_ui(self):
|
def build_ui(self):
|
||||||
FlatCAMObj.build_ui(self)
|
FlatCAMObj.build_ui(self)
|
||||||
|
|
||||||
self.units = self.app.udefaults['units'].upper()
|
self.units = self.app.defaults['units'].upper()
|
||||||
|
|
||||||
try:
|
try:
|
||||||
# if connected, disconnect the signal from the slot on item_changed as it creates issues
|
# if connected, disconnect the signal from the slot on item_changed as it creates issues
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ CAD program, and create G-Code for Isolation routing.
|
|||||||
- fixed issue #343; updated the Image Tool
|
- fixed issue #343; updated the Image Tool
|
||||||
- improvements in Importing SVG as Gerber - added an automatic source generation (it is not infallible)
|
- improvements in Importing SVG as Gerber - added an automatic source generation (it is not infallible)
|
||||||
- a hack to import correctly the QRCode exported as SVG from FlatCAM
|
- a hack to import correctly the QRCode exported as SVG from FlatCAM
|
||||||
|
- added 3 new tcl commands: export dxf, export excellon and export gerber
|
||||||
|
|
||||||
28.11.2019
|
28.11.2019
|
||||||
|
|
||||||
|
|||||||
49
tclCommands/TclCommandExportDXF.py
Normal file
49
tclCommands/TclCommandExportDXF.py
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
from tclCommands.TclCommand import TclCommand
|
||||||
|
|
||||||
|
import collections
|
||||||
|
|
||||||
|
|
||||||
|
class TclCommandExportDXF(TclCommand):
|
||||||
|
"""
|
||||||
|
Tcl shell command to export a Geometry Object as an DXF File.
|
||||||
|
|
||||||
|
example:
|
||||||
|
export_dxf path/my_geometry filename
|
||||||
|
"""
|
||||||
|
|
||||||
|
# List of all command aliases, to be able use old names for backward compatibility (add_poly, add_polygon)
|
||||||
|
aliases = ['export_dxf', 'edxf']
|
||||||
|
|
||||||
|
# Dictionary of types from Tcl command, needs to be ordered
|
||||||
|
arg_names = collections.OrderedDict([
|
||||||
|
('obj_name', str),
|
||||||
|
('filename', str)
|
||||||
|
])
|
||||||
|
|
||||||
|
# Dictionary of types from Tcl command, needs to be ordered , this is for options like -optionname value
|
||||||
|
option_types = collections.OrderedDict([
|
||||||
|
])
|
||||||
|
|
||||||
|
# array of mandatory options for current Tcl command: required = ['name','outname']
|
||||||
|
required = ['obj_name']
|
||||||
|
|
||||||
|
# structured help for current command, args needs to be ordered
|
||||||
|
help = {
|
||||||
|
'main': "Export a Geometry Object as a DXF File.",
|
||||||
|
'args': collections.OrderedDict([
|
||||||
|
('obj_name', 'Name of the object to export.'),
|
||||||
|
('filename', 'Path to the file to export.')
|
||||||
|
]),
|
||||||
|
'examples': ['export_dxf my_geo path/my_file.dxf']
|
||||||
|
}
|
||||||
|
|
||||||
|
def execute(self, args, unnamed_args):
|
||||||
|
"""
|
||||||
|
|
||||||
|
:param args:
|
||||||
|
:param unnamed_args:
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
|
if 'filename' not in args:
|
||||||
|
args['filename'] = self.app.defaults["global_last_save_folder"] + '/' + args['obj_name']
|
||||||
|
self.app.export_dxf(use_thread=False,**args)
|
||||||
49
tclCommands/TclCommandExportExcellon.py
Normal file
49
tclCommands/TclCommandExportExcellon.py
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
from tclCommands.TclCommand import TclCommand
|
||||||
|
|
||||||
|
import collections
|
||||||
|
|
||||||
|
|
||||||
|
class TclCommandExportExcellon(TclCommand):
|
||||||
|
"""
|
||||||
|
Tcl shell command to export a Excellon Object as an Excellon File.
|
||||||
|
|
||||||
|
example:
|
||||||
|
export_exc path/my_excellon filename
|
||||||
|
"""
|
||||||
|
|
||||||
|
# List of all command aliases, to be able use old names for backward compatibility (add_poly, add_polygon)
|
||||||
|
aliases = ['export_exc', 'ee', 'export_excellon']
|
||||||
|
|
||||||
|
# Dictionary of types from Tcl command, needs to be ordered
|
||||||
|
arg_names = collections.OrderedDict([
|
||||||
|
('obj_name', str),
|
||||||
|
('filename', str)
|
||||||
|
])
|
||||||
|
|
||||||
|
# Dictionary of types from Tcl command, needs to be ordered , this is for options like -optionname value
|
||||||
|
option_types = collections.OrderedDict([
|
||||||
|
])
|
||||||
|
|
||||||
|
# array of mandatory options for current Tcl command: required = ['name','outname']
|
||||||
|
required = ['obj_name']
|
||||||
|
|
||||||
|
# structured help for current command, args needs to be ordered
|
||||||
|
help = {
|
||||||
|
'main': "Export a Excellon Object as a Excellon File.",
|
||||||
|
'args': collections.OrderedDict([
|
||||||
|
('obj_name', 'Name of the object to export.'),
|
||||||
|
('filename', 'Path to the file to export.')
|
||||||
|
]),
|
||||||
|
'examples': ['export_excellon my_excellon path/my_file.drl']
|
||||||
|
}
|
||||||
|
|
||||||
|
def execute(self, args, unnamed_args):
|
||||||
|
"""
|
||||||
|
|
||||||
|
:param args:
|
||||||
|
:param unnamed_args:
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
|
if 'filename' not in args:
|
||||||
|
args['filename'] = self.app.defaults["global_last_save_folder"] + '/' + args['obj_name']
|
||||||
|
self.app.export_excellon(use_thread=False,**args)
|
||||||
49
tclCommands/TclCommandExportGerber.py
Normal file
49
tclCommands/TclCommandExportGerber.py
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
from tclCommands.TclCommand import TclCommand
|
||||||
|
|
||||||
|
import collections
|
||||||
|
|
||||||
|
|
||||||
|
class TclCommandExportGerber(TclCommand):
|
||||||
|
"""
|
||||||
|
Tcl shell command to export a Gerber Object as an Gerber File.
|
||||||
|
|
||||||
|
example:
|
||||||
|
export_exc path/my_excellon filename
|
||||||
|
"""
|
||||||
|
|
||||||
|
# List of all command aliases, to be able use old names for backward compatibility (add_poly, add_polygon)
|
||||||
|
aliases = ['export_grb', 'egr', 'export_gerber']
|
||||||
|
|
||||||
|
# Dictionary of types from Tcl command, needs to be ordered
|
||||||
|
arg_names = collections.OrderedDict([
|
||||||
|
('obj_name', str),
|
||||||
|
('filename', str)
|
||||||
|
])
|
||||||
|
|
||||||
|
# Dictionary of types from Tcl command, needs to be ordered , this is for options like -optionname value
|
||||||
|
option_types = collections.OrderedDict([
|
||||||
|
])
|
||||||
|
|
||||||
|
# array of mandatory options for current Tcl command: required = ['name','outname']
|
||||||
|
required = ['obj_name']
|
||||||
|
|
||||||
|
# structured help for current command, args needs to be ordered
|
||||||
|
help = {
|
||||||
|
'main': "Export a Gerber Object as a Gerber File.",
|
||||||
|
'args': collections.OrderedDict([
|
||||||
|
('obj_name', 'Name of the object to export.'),
|
||||||
|
('filename', 'Path to the file to export.')
|
||||||
|
]),
|
||||||
|
'examples': ['export_gerber my_gerber path/my_file.gbr']
|
||||||
|
}
|
||||||
|
|
||||||
|
def execute(self, args, unnamed_args):
|
||||||
|
"""
|
||||||
|
|
||||||
|
:param args:
|
||||||
|
:param unnamed_args:
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
|
if 'filename' not in args:
|
||||||
|
args['filename'] = self.app.defaults["global_last_save_folder"] + '/' + args['obj_name']
|
||||||
|
self.app.export_gerber(use_thread=False,**args)
|
||||||
@@ -17,6 +17,9 @@ import tclCommands.TclCommandCopperClear
|
|||||||
import tclCommands.TclCommandCutout
|
import tclCommands.TclCommandCutout
|
||||||
import tclCommands.TclCommandDelete
|
import tclCommands.TclCommandDelete
|
||||||
import tclCommands.TclCommandDrillcncjob
|
import tclCommands.TclCommandDrillcncjob
|
||||||
|
import tclCommands.TclCommandExportDXF
|
||||||
|
import tclCommands.TclCommandExportExcellon
|
||||||
|
import tclCommands.TclCommandExportGerber
|
||||||
import tclCommands.TclCommandExportGcode
|
import tclCommands.TclCommandExportGcode
|
||||||
import tclCommands.TclCommandExportSVG
|
import tclCommands.TclCommandExportSVG
|
||||||
import tclCommands.TclCommandExteriors
|
import tclCommands.TclCommandExteriors
|
||||||
|
|||||||
Reference in New Issue
Block a user