- few bugs solved regarding the newly created empty objects

This commit is contained in:
Marius Stanciu 2019-12-06 23:00:43 +02:00 committed by Marius
parent d683402884
commit 2ca509ca04
35 changed files with 283 additions and 250 deletions

View File

@ -50,7 +50,7 @@ from flatcamGUI.PlotCanvasLegacy import *
from flatcamGUI.FlatCAMGUI import * from flatcamGUI.FlatCAMGUI import *
from FlatCAMCommon import LoudDict, BookmarkManager, ToolsDB from FlatCAMCommon import LoudDict, BookmarkManager, ToolsDB
from FlatCAMPostProc import load_postprocessors from FlatCAMPostProc import load_preprocessors
from flatcamEditors.FlatCAMGeoEditor import FlatCAMGeoEditor from flatcamEditors.FlatCAMGeoEditor import FlatCAMGeoEditor
from flatcamEditors.FlatCAMExcEditor import FlatCAMExcEditor from flatcamEditors.FlatCAMExcEditor import FlatCAMExcEditor
@ -318,13 +318,13 @@ class App(QtCore.QObject):
if not os.path.exists(self.data_path): if not os.path.exists(self.data_path):
os.makedirs(self.data_path) os.makedirs(self.data_path)
App.log.debug('Created data folder: ' + self.data_path) App.log.debug('Created data folder: ' + self.data_path)
os.makedirs(os.path.join(self.data_path, 'postprocessors')) os.makedirs(os.path.join(self.data_path, 'preprocessors'))
App.log.debug('Created data postprocessors folder: ' + os.path.join(self.data_path, 'postprocessors')) App.log.debug('Created data preprocessors folder: ' + os.path.join(self.data_path, 'preprocessors'))
self.postprocessorpaths = os.path.join(self.data_path, 'postprocessors') self.preprocessorpaths = os.path.join(self.data_path, 'preprocessors')
if not os.path.exists(self.postprocessorpaths): if not os.path.exists(self.preprocessorpaths):
os.makedirs(self.postprocessorpaths) os.makedirs(self.preprocessorpaths)
App.log.debug('Created postprocessors folder: ' + self.postprocessorpaths) App.log.debug('Created preprocessors folder: ' + self.preprocessorpaths)
# create tools_db.FlatConfig file if there is none # create tools_db.FlatConfig file if there is none
try: try:
@ -1501,33 +1501,33 @@ class App(QtCore.QObject):
# ########################## LOAD POSTPROCESSORS ############################## # ########################## LOAD POSTPROCESSORS ##############################
# ############################################################################# # #############################################################################
# a dictionary that have as keys the name of the postprocessor files and the value is the class from # a dictionary that have as keys the name of the preprocessor files and the value is the class from
# the postprocessor file # the preprocessor file
self.postprocessors = load_postprocessors(self) self.preprocessors = load_preprocessors(self)
# make sure that always the 'default' postprocessor is the first item in the dictionary # make sure that always the 'default' preprocessor is the first item in the dictionary
if 'default' in self.postprocessors.keys(): if 'default' in self.preprocessors.keys():
new_ppp_dict = dict() new_ppp_dict = dict()
# add the 'default' name first in the dict after removing from the postprocessor's dictionary # add the 'default' name first in the dict after removing from the preprocessor's dictionary
default_pp = self.postprocessors.pop('default') default_pp = self.preprocessors.pop('default')
new_ppp_dict['default'] = default_pp new_ppp_dict['default'] = default_pp
# then add the rest of the keys # then add the rest of the keys
for name, val_class in self.postprocessors.items(): for name, val_class in self.preprocessors.items():
new_ppp_dict[name] = val_class new_ppp_dict[name] = val_class
# and now put back the ordered dict with 'default' key first # and now put back the ordered dict with 'default' key first
self.postprocessors = new_ppp_dict self.preprocessors = new_ppp_dict
for name in list(self.postprocessors.keys()): for name in list(self.preprocessors.keys()):
# 'Paste' postprocessors are to be used only in the Solder Paste Dispensing Tool # 'Paste' preprocessors are to be used only in the Solder Paste Dispensing Tool
if name.partition('_')[0] == 'Paste': if name.partition('_')[0] == 'Paste':
self.ui.tools_defaults_form.tools_solderpaste_group.pp_combo.addItem(name) self.ui.tools_defaults_form.tools_solderpaste_group.pp_combo.addItem(name)
continue continue
self.ui.geometry_defaults_form.geometry_opt_group.pp_geometry_name_cb.addItem(name) self.ui.geometry_defaults_form.geometry_opt_group.pp_geometry_name_cb.addItem(name)
# HPGL postprocessor is only for Geometry objects therefore it should not be in the Excellon Preferences # HPGL preprocessor is only for Geometry objects therefore it should not be in the Excellon Preferences
if name == 'hpgl': if name == 'hpgl':
continue continue

View File

@ -528,7 +528,7 @@ class ToolsDB(QtWidgets.QWidget):
_("Spindle Speed"), _("Spindle Speed"),
_("Dwell"), _("Dwell"),
_("Dwelltime"), _("Dwelltime"),
_("Postprocessor"), _("Preprocessor"),
_("ExtraCut"), _("ExtraCut"),
_("Toolchange"), _("Toolchange"),
_("Toolchange XY"), _("Toolchange XY"),
@ -610,7 +610,7 @@ class ToolsDB(QtWidgets.QWidget):
_("Dwell Time.\n" _("Dwell Time.\n"
"A delay used to allow the motor spindle reach it's set speed.")) "A delay used to allow the motor spindle reach it's set speed."))
self.table_widget.horizontalHeaderItem(19).setToolTip( self.table_widget.horizontalHeaderItem(19).setToolTip(
_("Postprocessor.\n" _("Preprocessor.\n"
"A selection of files that will alter the generated G-code\n" "A selection of files that will alter the generated G-code\n"
"to fit for a number of use cases.")) "to fit for a number of use cases."))
self.table_widget.horizontalHeaderItem(20).setToolTip( self.table_widget.horizontalHeaderItem(20).setToolTip(
@ -623,7 +623,7 @@ class ToolsDB(QtWidgets.QWidget):
_("Toolchange.\n" _("Toolchange.\n"
"It will create a toolchange event.\n" "It will create a toolchange event.\n"
"The kind of toolchange is determined by\n" "The kind of toolchange is determined by\n"
"the postprocessor file.")) "the preprocessor file."))
self.table_widget.horizontalHeaderItem(22).setToolTip( self.table_widget.horizontalHeaderItem(22).setToolTip(
_("Toolchange XY.\n" _("Toolchange XY.\n"
"A set of coordinates in the format (x, y).\n" "A set of coordinates in the format (x, y).\n"
@ -904,7 +904,7 @@ class ToolsDB(QtWidgets.QWidget):
widget.setCellWidget(row, 18, dwelltime_item) widget.setCellWidget(row, 18, dwelltime_item)
pp_item = FCComboBox() pp_item = FCComboBox()
for item in self.app.postprocessors: for item in self.app.preprocessors:
pp_item.addItem(item) pp_item.addItem(item)
pp_item.set_value(data['ppname_g']) pp_item.set_value(data['ppname_g'])
widget.setCellWidget(row, 19, pp_item) widget.setCellWidget(row, 19, pp_item)
@ -1263,7 +1263,7 @@ class ToolsDB(QtWidgets.QWidget):
default_data['dwell'] = self.table_widget.cellWidget(row, col).get_value() default_data['dwell'] = self.table_widget.cellWidget(row, col).get_value()
elif column_header_text == 'Dwelltime': elif column_header_text == 'Dwelltime':
default_data['dwelltime'] = self.table_widget.cellWidget(row, col).get_value() default_data['dwelltime'] = self.table_widget.cellWidget(row, col).get_value()
elif column_header_text == 'Postprocessor': elif column_header_text == 'Preprocessor':
default_data['ppname_g'] = self.table_widget.cellWidget(row, col).get_value() default_data['ppname_g'] = self.table_widget.cellWidget(row, col).get_value()
elif column_header_text == 'ExtraCut': elif column_header_text == 'ExtraCut':
default_data['extracut'] = self.table_widget.cellWidget(row, col).get_value() default_data['extracut'] = self.table_widget.cellWidget(row, col).get_value()

View File

@ -2583,8 +2583,8 @@ class FlatCAMExcellon(FlatCAMObj, Excellon):
"gcode_type": self.ui.excellon_gcode_type_radio "gcode_type": self.ui.excellon_gcode_type_radio
}) })
for name in list(self.app.postprocessors.keys()): for name in list(self.app.preprocessors.keys()):
# the HPGL postprocessor is only for Geometry not for Excellon job therefore don't add it # the HPGL preprocessor is only for Geometry not for Excellon job therefore don't add it
if name == 'hpgl': if name == 'hpgl':
continue continue
self.ui.pp_excellon_name_cb.addItem(name) self.ui.pp_excellon_name_cb.addItem(name)
@ -2592,7 +2592,7 @@ class FlatCAMExcellon(FlatCAMObj, Excellon):
# Fill form fields # Fill form fields
self.to_form() self.to_form()
# update the changes in UI depending on the selected postprocessor in Preferences # update the changes in UI depending on the selected preprocessor in Preferences
# after this moment all the changes in the Posprocessor combo will be handled by the activated signal of the # after this moment all the changes in the Posprocessor combo will be handled by the activated signal of the
# self.ui.pp_excellon_name_cb combobox # self.ui.pp_excellon_name_cb combobox
self.on_pp_changed() self.on_pp_changed()
@ -3659,8 +3659,8 @@ class FlatCAMGeometry(FlatCAMObj, Geometry):
self.units = self.app.defaults['units'].upper() self.units = self.app.defaults['units'].upper()
self.units_found = self.app.defaults['units'] self.units_found = self.app.defaults['units']
# populate postprocessor names in the combobox # populate preprocessor names in the combobox
for name in list(self.app.postprocessors.keys()): for name in list(self.app.preprocessors.keys()):
self.ui.pp_geometry_name_cb.addItem(name) self.ui.pp_geometry_name_cb.addItem(name)
self.form_fields.update({ self.form_fields.update({
@ -3690,7 +3690,7 @@ class FlatCAMGeometry(FlatCAMObj, Geometry):
# Fill form fields only on object create # Fill form fields only on object create
self.to_form() self.to_form()
# update the changes in UI depending on the selected postprocessor in Preferences # update the changes in UI depending on the selected preprocessor in Preferences
# after this moment all the changes in the Posprocessor combo will be handled by the activated signal of the # after this moment all the changes in the Posprocessor combo will be handled by the activated signal of the
# self.ui.pp_geometry_name_cb combobox # self.ui.pp_geometry_name_cb combobox
self.on_pp_changed() self.on_pp_changed()
@ -4808,7 +4808,7 @@ class FlatCAMGeometry(FlatCAMObj, Geometry):
:param tools_dict: a dictionary that holds the whole data needed to create the Gcode :param tools_dict: a dictionary that holds the whole data needed to create the Gcode
(including the solid_geometry) (including the solid_geometry)
:param tools_in_use: the tools that are used, needed by some postprocessors :param tools_in_use: the tools that are used, needed by some preprocessors
:type list of lists, each list in the list is made out of row elements of tools table from GUI :type list of lists, each list in the list is made out of row elements of tools table from GUI
:param segx: number of segments on the X axis, for auto-levelling :param segx: number of segments on the X axis, for auto-levelling
@ -5184,7 +5184,7 @@ class FlatCAMGeometry(FlatCAMObj, Geometry):
:param dia: Tool diameter :param dia: Tool diameter
:param outname: Name of the new object :param outname: Name of the new object
:param spindlespeed: Spindle speed (RPM) :param spindlespeed: Spindle speed (RPM)
:param pp Name of the postprocessor :param pp Name of the preprocessor
:return: None :return: None
""" """
@ -6382,7 +6382,7 @@ class FlatCAMCNCjob(FlatCAMObj, CNCjob):
except AttributeError: except AttributeError:
pass pass
# detect if using Roland postprocessor # detect if using Roland preprocessor
try: try:
for key in self.cnc_tools: for key in self.cnc_tools:
if self.cnc_tools[key]['data']['ppname_g'] == 'Roland_MDX_20': if self.cnc_tools[key]['data']['ppname_g'] == 'Roland_MDX_20':
@ -6400,7 +6400,7 @@ class FlatCAMCNCjob(FlatCAMObj, CNCjob):
except Exception as e: except Exception as e:
pass pass
# do not add gcode_header when using the Roland postprocessor, add it for every other postprocessor # do not add gcode_header when using the Roland preprocessor, add it for every other preprocessor
if roland is False and hpgl is False: if roland is False and hpgl is False:
gcode = self.gcode_header() gcode = self.gcode_header()
@ -6488,7 +6488,7 @@ class FlatCAMCNCjob(FlatCAMObj, CNCjob):
if self.ui.toolchange_cb.get_value(): if self.ui.toolchange_cb.get_value():
self.ui.toolchange_cb.set_value(False) self.ui.toolchange_cb.set_value(False)
self.app.inform.emit('[WARNING_NOTCL] %s' % self.app.inform.emit('[WARNING_NOTCL] %s' %
_("The used postprocessor file has to have in it's name: 'toolchange_custom'")) _("The used preprocessor file has to have in it's name: 'toolchange_custom'"))
except KeyError: except KeyError:
try: try:
for key in self.cnc_tools: for key in self.cnc_tools:
@ -6498,11 +6498,11 @@ class FlatCAMCNCjob(FlatCAMObj, CNCjob):
if self.ui.toolchange_cb.get_value(): if self.ui.toolchange_cb.get_value():
self.ui.toolchange_cb.set_value(False) self.ui.toolchange_cb.set_value(False)
self.app.inform.emit('[WARNING_NOTCL] %s' % self.app.inform.emit('[WARNING_NOTCL] %s' %
_("The used postprocessor file has to have in it's name: " _("The used preprocessor file has to have in it's name: "
"'toolchange_custom'")) "'toolchange_custom'"))
except KeyError: except KeyError:
self.app.inform.emit('[ERROR] %s' % self.app.inform.emit('[ERROR] %s' %
_("There is no postprocessor file.")) _("There is no preprocessor file."))
def get_gcode(self, preamble='', postamble=''): def get_gcode(self, preamble='', postamble=''):
# we need this to be able get_gcode separatelly for shell command export_gcode # we need this to be able get_gcode separatelly for shell command export_gcode

View File

@ -11,20 +11,20 @@ import os
from abc import ABCMeta, abstractmethod from abc import ABCMeta, abstractmethod
import math import math
# module-root dictionary of postprocessors # module-root dictionary of preprocessors
import FlatCAMApp import FlatCAMApp
postprocessors = {} preprocessors = {}
class ABCPostProcRegister(ABCMeta): class ABCPostProcRegister(ABCMeta):
# handles postprocessors registration on instantiation # handles preprocessors registration on instantiation
def __new__(cls, clsname, bases, attrs): def __new__(cls, clsname, bases, attrs):
newclass = super(ABCPostProcRegister, cls).__new__(cls, clsname, bases, attrs) newclass = super(ABCPostProcRegister, cls).__new__(cls, clsname, bases, attrs)
if object not in bases: if object not in bases:
if newclass.__name__ in postprocessors: if newclass.__name__ in preprocessors:
FlatCAMApp.App.log.warning('Postprocessor %s has been overriden' % newclass.__name__) FlatCAMApp.App.log.warning('Preprocessor %s has been overriden' % newclass.__name__)
postprocessors[newclass.__name__] = newclass() # here is your register function preprocessors[newclass.__name__] = newclass() # here is your register function
return newclass return newclass
@ -144,14 +144,14 @@ class FlatCAMPostProc_Tools(object, metaclass=ABCPostProcRegister):
pass pass
def load_postprocessors(app): def load_preprocessors(app):
postprocessors_path_search = [os.path.join(app.data_path, 'postprocessors', '*.py'), preprocessors_path_search = [os.path.join(app.data_path, 'preprocessors', '*.py'),
os.path.join('postprocessors', '*.py')] os.path.join('preprocessors', '*.py')]
import glob import glob
for path_search in postprocessors_path_search: for path_search in preprocessors_path_search:
for file in glob.glob(path_search): for file in glob.glob(path_search):
try: try:
SourceFileLoader('FlatCAMPostProcessor', file).load_module() SourceFileLoader('FlatCAMPostProcessor', file).load_module()
except Exception as e: except Exception as e:
app.log.error(str(e)) app.log.error(str(e))
return postprocessors return preprocessors

View File

@ -16,6 +16,8 @@ CAD program, and create G-Code for Isolation routing.
- in Excellon UI fixed bug that did not allow editing of the Offset Z parameter from the Tool table - in Excellon UI fixed bug that did not allow editing of the Offset Z parameter from the Tool table
- in Properties Tool added new information's for the tools in the CNCjob objects - in Properties Tool added new information's for the tools in the CNCjob objects
- few bugs solved regarding the newly created empty objects - few bugs solved regarding the newly created empty objects
- changed everywhere the name "postprocessor" with "preprocessor"
- updated the preprocessor files in the toolchange section in order to avoid a graphical representation of travel lines glitch
5.12.2019 5.12.2019

View File

@ -2187,10 +2187,10 @@ class CNCjob(Geometry):
self.gcode_parsed = None self.gcode_parsed = None
self.pp_geometry_name = pp_geometry_name self.pp_geometry_name = pp_geometry_name
self.pp_geometry = self.app.postprocessors[self.pp_geometry_name] self.pp_geometry = self.app.preprocessors[self.pp_geometry_name]
self.pp_excellon_name = pp_excellon_name self.pp_excellon_name = pp_excellon_name
self.pp_excellon = self.app.postprocessors[self.pp_excellon_name] self.pp_excellon = self.app.preprocessors[self.pp_excellon_name]
self.pp_solderpaste_name = None self.pp_solderpaste_name = None
@ -2275,7 +2275,7 @@ class CNCjob(Geometry):
returnvalue = fun(attributes) returnvalue = fun(attributes)
return returnvalue return returnvalue
except Exception: except Exception:
self.app.log.error('Exception occurred within a postprocessor: ' + traceback.format_exc()) self.app.log.error('Exception occurred within a preprocessor: ' + traceback.format_exc())
return '' return ''
def parse_custom_toolchange_code(self, data): def parse_custom_toolchange_code(self, data):
@ -2394,7 +2394,7 @@ class CNCjob(Geometry):
self.startz = startz self.startz = startz
self.z_end = endz self.z_end = endz
self.pp_excellon = self.app.postprocessors[self.pp_excellon_name] self.pp_excellon = self.app.preprocessors[self.pp_excellon_name]
p = self.pp_excellon p = self.pp_excellon
log.debug("Creating CNC Job from Excellon...") log.debug("Creating CNC Job from Excellon...")
@ -2449,7 +2449,7 @@ class CNCjob(Geometry):
self.app.inform.emit(_("Creating a list of points to drill...")) self.app.inform.emit(_("Creating a list of points to drill..."))
# Points (Group by tool) # Points (Group by tool)
points = {} points = dict()
for drill in exobj.drills: for drill in exobj.drills:
if self.app.abort_flag: if self.app.abort_flag:
# graceful abort requested by the user # graceful abort requested by the user
@ -2463,7 +2463,7 @@ class CNCjob(Geometry):
# log.debug("Found %d drills." % len(points)) # log.debug("Found %d drills." % len(points))
self.gcode = [] self.gcode = list()
self.f_plunge = self.app.defaults["excellon_f_plunge"] self.f_plunge = self.app.defaults["excellon_f_plunge"]
self.f_retract = self.app.defaults["excellon_f_retract"] self.f_retract = self.app.defaults["excellon_f_retract"]
@ -2946,7 +2946,7 @@ class CNCjob(Geometry):
# I use the value of self.feedrate_rapid for the feadrate in case of the measure_lift_distance and for # I use the value of self.feedrate_rapid for the feadrate in case of the measure_lift_distance and for
# traveled_time because it is not always possible to determine the feedrate that the CNC machine uses # traveled_time because it is not always possible to determine the feedrate that the CNC machine uses
# for G0 move (the fastest speed available to the CNC router). Although self.feedrate_rapids is used only with # for G0 move (the fastest speed available to the CNC router). Although self.feedrate_rapids is used only with
# Marlin postprocessor and derivatives. # Marlin preprocessor and derivatives.
self.routing_time = (measured_down_distance + measured_up_to_zero_distance) / self.feedrate self.routing_time = (measured_down_distance + measured_up_to_zero_distance) / self.feedrate
lift_time = measured_lift_distance / self.feedrate_rapid lift_time = measured_lift_distance / self.feedrate_rapid
traveled_time = measured_distance / self.feedrate_rapid traveled_time = measured_distance / self.feedrate_rapid
@ -3038,7 +3038,7 @@ class CNCjob(Geometry):
self.z_toolchange = float(toolchangez) if toolchangez is not None else None self.z_toolchange = float(toolchangez) if toolchangez is not None else None
# it servers in the postprocessor file # it servers in the preprocessor file
self.tool = tool_no self.tool = tool_no
try: try:
@ -3127,15 +3127,15 @@ class CNCjob(Geometry):
if not append: if not append:
self.gcode = "" self.gcode = ""
# tell postprocessor the number of tool (for toolchange) # tell preprocessor the number of tool (for toolchange)
self.tool = tool_no self.tool = tool_no
# this is the tool diameter, it is used as such to accommodate the postprocessor who need the tool diameter # this is the tool diameter, it is used as such to accommodate the preprocessor who need the tool diameter
# given under the name 'toolC' # given under the name 'toolC'
self.postdata['toolC'] = self.tooldia self.postdata['toolC'] = self.tooldia
# Initial G-Code # Initial G-Code
self.pp_geometry = self.app.postprocessors[self.pp_geometry_name] self.pp_geometry = self.app.preprocessors[self.pp_geometry_name]
p = self.pp_geometry p = self.pp_geometry
self.gcode = self.doformat(p.start_code) self.gcode = self.doformat(p.start_code)
@ -3471,15 +3471,15 @@ class CNCjob(Geometry):
if not append: if not append:
self.gcode = "" self.gcode = ""
# tell postprocessor the number of tool (for toolchange) # tell preprocessor the number of tool (for toolchange)
self.tool = tool_no self.tool = tool_no
# this is the tool diameter, it is used as such to accommodate the postprocessor who need the tool diameter # this is the tool diameter, it is used as such to accommodate the preprocessor who need the tool diameter
# given under the name 'toolC' # given under the name 'toolC'
self.postdata['toolC'] = self.tooldia self.postdata['toolC'] = self.tooldia
# Initial G-Code # Initial G-Code
self.pp_geometry = self.app.postprocessors[self.pp_geometry_name] self.pp_geometry = self.app.preprocessors[self.pp_geometry_name]
p = self.pp_geometry p = self.pp_geometry
self.oldx = 0.0 self.oldx = 0.0
@ -3632,7 +3632,7 @@ class CNCjob(Geometry):
_("There is no tool data in the SolderPaste geometry.")) _("There is no tool data in the SolderPaste geometry."))
# this is the tool diameter, it is used as such to accommodate the postprocessor who need the tool diameter # this is the tool diameter, it is used as such to accommodate the preprocessor who need the tool diameter
# given under the name 'toolC' # given under the name 'toolC'
self.postdata['z_start'] = kwargs['data']['tools_solderpaste_z_start'] self.postdata['z_start'] = kwargs['data']['tools_solderpaste_z_start']
@ -3654,7 +3654,7 @@ class CNCjob(Geometry):
self.pp_solderpaste_name = kwargs['data']['tools_solderpaste_pp'] if kwargs['data']['tools_solderpaste_pp'] \ self.pp_solderpaste_name = kwargs['data']['tools_solderpaste_pp'] if kwargs['data']['tools_solderpaste_pp'] \
else self.app.defaults['tools_solderpaste_pp'] else self.app.defaults['tools_solderpaste_pp']
p = self.app.postprocessors[self.pp_solderpaste_name] p = self.app.preprocessors[self.pp_solderpaste_name]
# ## Flatten the geometry. Only linear elements (no polygons) remain. # ## Flatten the geometry. Only linear elements (no polygons) remain.
flat_geometry = self.flatten(kwargs['solid_geometry'], pathonly=True) flat_geometry = self.flatten(kwargs['solid_geometry'], pathonly=True)
@ -3960,12 +3960,12 @@ class CNCjob(Geometry):
# lifted or lowered. # lifted or lowered.
if self.toolchange_xy_type == "excellon": if self.toolchange_xy_type == "excellon":
if self.app.defaults["excellon_toolchangexy"] == '': if self.app.defaults["excellon_toolchangexy"] == '':
pos_xy = [0, 0] pos_xy = (0, 0)
else: else:
pos_xy = [float(eval(a)) for a in self.app.defaults["excellon_toolchangexy"].split(",")] pos_xy = [float(eval(a)) for a in self.app.defaults["excellon_toolchangexy"].split(",")]
else: else:
if self.app.defaults["geometry_toolchangexy"] == '': if self.app.defaults["geometry_toolchangexy"] == '':
pos_xy = [0, 0] pos_xy = (0, 0)
else: else:
pos_xy = [float(eval(a)) for a in self.app.defaults["geometry_toolchangexy"].split(",")] pos_xy = [float(eval(a)) for a in self.app.defaults["geometry_toolchangexy"].split(",")]

View File

@ -935,10 +935,10 @@ class ExcellonObjectUI(ObjectUI):
self.ois_dwell = OptionalInputSection(self.dwell_cb, [self.dwelltime_entry]) self.ois_dwell = OptionalInputSection(self.dwell_cb, [self.dwelltime_entry])
# postprocessor selection # preprocessor selection
pp_excellon_label = QtWidgets.QLabel('%s:' % _("Postprocessor")) pp_excellon_label = QtWidgets.QLabel('%s:' % _("Preprocessor"))
pp_excellon_label.setToolTip( pp_excellon_label.setToolTip(
_("The postprocessor JSON file that dictates\n" _("The preprocessor JSON file that dictates\n"
"Gcode output.") "Gcode output.")
) )
self.pp_excellon_name_cb = FCComboBox() self.pp_excellon_name_cb = FCComboBox()
@ -1508,7 +1508,7 @@ class GeometryObjectUI(ObjectUI):
spdlabel.setToolTip( spdlabel.setToolTip(
_( _(
"Speed of the spindle in RPM (optional).\n" "Speed of the spindle in RPM (optional).\n"
"If LASER postprocessor is used,\n" "If LASER preprocessor is used,\n"
"this value is the power of laser." "this value is the power of laser."
) )
) )
@ -1538,10 +1538,10 @@ class GeometryObjectUI(ObjectUI):
self.grid3.addWidget(self.dwell_cb, 15, 0) self.grid3.addWidget(self.dwell_cb, 15, 0)
self.grid3.addWidget(self.dwelltime_entry, 15, 1) self.grid3.addWidget(self.dwelltime_entry, 15, 1)
# postprocessor selection # preprocessor selection
pp_label = QtWidgets.QLabel('%s:' % _("PostProcessor")) pp_label = QtWidgets.QLabel('%s:' % _("PostProcessor"))
pp_label.setToolTip( pp_label.setToolTip(
_("The Postprocessor file that dictates\n" _("The Preprocessor file that dictates\n"
"the Machine Code (like GCode, RML, HPGL) output.") "the Machine Code (like GCode, RML, HPGL) output.")
) )
self.pp_geometry_name_cb = FCComboBox() self.pp_geometry_name_cb = FCComboBox()
@ -1837,7 +1837,7 @@ class CNCObjectUI(ObjectUI):
"This will constitute a Custom Toolchange GCode,\n" "This will constitute a Custom Toolchange GCode,\n"
"or a Toolchange Macro.\n" "or a Toolchange Macro.\n"
"The FlatCAM variables are surrounded by '%' symbol.\n\n" "The FlatCAM variables are surrounded by '%' symbol.\n\n"
"WARNING: it can be used only with a postprocessor file\n" "WARNING: it can be used only with a preprocessor file\n"
"that has 'toolchange_custom' in it's name and this is built\n" "that has 'toolchange_custom' in it's name and this is built\n"
"having as template the 'Toolchange Custom' posprocessor file." "having as template the 'Toolchange Custom' posprocessor file."
) )
@ -1852,7 +1852,7 @@ class CNCObjectUI(ObjectUI):
"This will constitute a Custom Toolchange GCode, " "This will constitute a Custom Toolchange GCode, "
"or a Toolchange Macro. " "or a Toolchange Macro. "
"The FlatCAM variables are surrounded by '%' symbol. \n" "The FlatCAM variables are surrounded by '%' symbol. \n"
"WARNING: it can be used only with a postprocessor file " "WARNING: it can be used only with a preprocessor file "
"that has 'toolchange_custom' in it's name." "that has 'toolchange_custom' in it's name."
) )
) )

View File

@ -2451,10 +2451,10 @@ class ExcellonOptPrefGroupUI(OptionsGroupUI):
self.ois_dwell_exc = OptionalInputSection(self.dwell_cb, [self.dwelltime_entry]) self.ois_dwell_exc = OptionalInputSection(self.dwell_cb, [self.dwelltime_entry])
# postprocessor selection # preprocessor selection
pp_excellon_label = QtWidgets.QLabel('%s:' % _("Postprocessor")) pp_excellon_label = QtWidgets.QLabel('%s:' % _("Preprocessor"))
pp_excellon_label.setToolTip( pp_excellon_label.setToolTip(
_("The postprocessor JSON file that dictates\n" _("The preprocessor JSON file that dictates\n"
"Gcode output.") "Gcode output.")
) )
grid2.addWidget(pp_excellon_label, 9, 0) grid2.addWidget(pp_excellon_label, 9, 0)
@ -3332,7 +3332,7 @@ class GeometryOptPrefGroupUI(OptionsGroupUI):
spdlabel.setToolTip( spdlabel.setToolTip(
_( _(
"Speed of the spindle in RPM (optional).\n" "Speed of the spindle in RPM (optional).\n"
"If LASER postprocessor is used,\n" "If LASER preprocessor is used,\n"
"this value is the power of laser." "this value is the power of laser."
) )
) )
@ -3362,10 +3362,10 @@ class GeometryOptPrefGroupUI(OptionsGroupUI):
self.ois_dwell = OptionalInputSection(self.dwell_cb, [self.dwelltime_entry]) self.ois_dwell = OptionalInputSection(self.dwell_cb, [self.dwelltime_entry])
# postprocessor selection # preprocessor selection
pp_label = QtWidgets.QLabel('%s:' % _("Postprocessor")) pp_label = QtWidgets.QLabel('%s:' % _("Preprocessor"))
pp_label.setToolTip( pp_label.setToolTip(
_("The Postprocessor file that dictates\n" _("The Preprocessor file that dictates\n"
"the Machine Code (like GCode, RML, HPGL) output.") "the Machine Code (like GCode, RML, HPGL) output.")
) )
grid1.addWidget(pp_label, 12, 0) grid1.addWidget(pp_label, 12, 0)
@ -3810,7 +3810,7 @@ class CNCJobAdvOptPrefGroupUI(OptionsGroupUI):
"This will constitute a Custom Toolchange GCode,\n" "This will constitute a Custom Toolchange GCode,\n"
"or a Toolchange Macro.\n" "or a Toolchange Macro.\n"
"The FlatCAM variables are surrounded by '%' symbol.\n\n" "The FlatCAM variables are surrounded by '%' symbol.\n\n"
"WARNING: it can be used only with a postprocessor file\n" "WARNING: it can be used only with a preprocessor file\n"
"that has 'toolchange_custom' in it's name and this is built\n" "that has 'toolchange_custom' in it's name and this is built\n"
"having as template the 'Toolchange Custom' posprocessor file." "having as template the 'Toolchange Custom' posprocessor file."
) )
@ -3833,7 +3833,7 @@ class CNCJobAdvOptPrefGroupUI(OptionsGroupUI):
"This will constitute a Custom Toolchange GCode, " "This will constitute a Custom Toolchange GCode, "
"or a Toolchange Macro. " "or a Toolchange Macro. "
"The FlatCAM variables are surrounded by '%' symbol. \n" "The FlatCAM variables are surrounded by '%' symbol. \n"
"WARNING: it can be used only with a postprocessor file " "WARNING: it can be used only with a preprocessor file "
"that has 'toolchange_custom' in it's name." "that has 'toolchange_custom' in it's name."
) )
) )
@ -5547,7 +5547,7 @@ class ToolsSolderpastePrefGroupUI(OptionsGroupUI):
grid0.addWidget(self.dwellrev_label, 14, 0) grid0.addWidget(self.dwellrev_label, 14, 0)
grid0.addWidget(self.dwellrev_entry, 14, 1) grid0.addWidget(self.dwellrev_entry, 14, 1)
# Postprocessors # Preprocessors
pp_label = QtWidgets.QLabel('%s:' % _('PostProcessor')) pp_label = QtWidgets.QLabel('%s:' % _('PostProcessor'))
pp_label.setToolTip( pp_label.setToolTip(
_("Files that control the GCode generation.") _("Files that control the GCode generation.")

View File

@ -330,7 +330,7 @@ class SolderPaste(FlatCAMTool):
) )
self.gcode_form_layout.addRow(self.dwellrev_label, self.dwellrev_entry) self.gcode_form_layout.addRow(self.dwellrev_label, self.dwellrev_entry)
# Postprocessors # Preprocessors
pp_label = QtWidgets.QLabel('%s:' % _('PostProcessor')) pp_label = QtWidgets.QLabel('%s:' % _('PostProcessor'))
pp_label.setToolTip( pp_label.setToolTip(
_("Files that control the GCode generation.") _("Files that control the GCode generation.")
@ -623,8 +623,8 @@ class SolderPaste(FlatCAMTool):
else: else:
self.decimals = 2 self.decimals = 2
for name in list(self.app.postprocessors.keys()): for name in list(self.app.preprocessors.keys()):
# populate only with postprocessor files that start with 'Paste_' # populate only with preprocessor files that start with 'Paste_'
if name.partition('_')[0] != 'Paste': if name.partition('_')[0] != 'Paste':
continue continue
self.pp_combo.addItem(name) self.pp_combo.addItem(name)

View File

@ -1759,11 +1759,11 @@ msgid "Saved to"
msgstr "Gespeichert in" msgstr "Gespeichert in"
#: FlatCAMObj.py:6332 FlatCAMObj.py:6342 #: FlatCAMObj.py:6332 FlatCAMObj.py:6342
msgid "The used postprocessor file has to have in it's name: 'toolchange_custom'" msgid "The used preprocessor file has to have in it's name: 'toolchange_custom'"
msgstr "Die verwendete Postprozessor-Datei muss im Namen enthalten sein: 'toolchange_custom'" msgstr "Die verwendete Postprozessor-Datei muss im Namen enthalten sein: 'toolchange_custom'"
#: FlatCAMObj.py:6346 #: FlatCAMObj.py:6346
msgid "There is no postprocessor file." msgid "There is no preprocessor file."
msgstr "Es gibt keine Postprozessor-Datei." msgstr "Es gibt keine Postprozessor-Datei."
#: FlatCAMObj.py:6623 #: FlatCAMObj.py:6623
@ -6533,11 +6533,11 @@ msgstr "Anzahl der Zeiteinheiten, in denen die Spindel verweilen soll."
#: flatcamGUI/ObjectUI.py:889 flatcamGUI/PreferencesUI.py:2253 #: flatcamGUI/ObjectUI.py:889 flatcamGUI/PreferencesUI.py:2253
#: flatcamGUI/PreferencesUI.py:3140 #: flatcamGUI/PreferencesUI.py:3140
msgid "Postprocessor" msgid "Preprocessor"
msgstr "Postprozessor" msgstr "Postprozessor"
#: flatcamGUI/ObjectUI.py:891 flatcamGUI/PreferencesUI.py:2255 #: flatcamGUI/ObjectUI.py:891 flatcamGUI/PreferencesUI.py:2255
msgid "The postprocessor JSON file that dictates\n" msgid "The preprocessor JSON file that dictates\n"
"Gcode output." "Gcode output."
msgstr "Die Postprozessor-JSON-Datei, die diktiert\n" msgstr "Die Postprozessor-JSON-Datei, die diktiert\n"
"Gcode-Ausgabe." "Gcode-Ausgabe."
@ -6880,7 +6880,7 @@ msgstr "Um zu entfernen möglich\n"
#: flatcamGUI/ObjectUI.py:1457 flatcamGUI/PreferencesUI.py:3108 #: flatcamGUI/ObjectUI.py:1457 flatcamGUI/PreferencesUI.py:3108
msgid "Speed of the spindle in RPM (optional).\n" msgid "Speed of the spindle in RPM (optional).\n"
"If LASER postprocessor is used,\n" "If LASER preprocessor is used,\n"
"this value is the power of laser." "this value is the power of laser."
msgstr "Drehzahl der Spindel in U / min (optional).\n" msgstr "Drehzahl der Spindel in U / min (optional).\n"
"Wenn LASER-Postprozessor verwendet wird,\n" "Wenn LASER-Postprozessor verwendet wird,\n"
@ -6892,7 +6892,7 @@ msgid "PostProcessor"
msgstr "Postprozessor" msgstr "Postprozessor"
#: flatcamGUI/ObjectUI.py:1491 flatcamGUI/PreferencesUI.py:3142 #: flatcamGUI/ObjectUI.py:1491 flatcamGUI/PreferencesUI.py:3142
msgid "The Postprocessor file that dictates\n" msgid "The Preprocessor file that dictates\n"
"the Machine Code (like GCode, RML, HPGL) output." "the Machine Code (like GCode, RML, HPGL) output."
msgstr "Die Postprozessor-Datei, die diktiert\n" msgstr "Die Postprozessor-Datei, die diktiert\n"
"den Maschinencode (wie GCode, RML, HPGL)." "den Maschinencode (wie GCode, RML, HPGL)."
@ -7067,7 +7067,7 @@ msgid "Type here any G-Code commands you would\n"
"or a Toolchange Macro.\n" "or a Toolchange Macro.\n"
"The FlatCAM variables are surrounded by '%' symbol.\n" "The FlatCAM variables are surrounded by '%' symbol.\n"
"\n" "\n"
"WARNING: it can be used only with a postprocessor file\n" "WARNING: it can be used only with a preprocessor file\n"
"that has 'toolchange_custom' in it's name and this is built\n" "that has 'toolchange_custom' in it's name and this is built\n"
"having as template the 'Toolchange Custom' posprocessor file." "having as template the 'Toolchange Custom' posprocessor file."
msgstr "Geben Sie hier alle G-Code-Befehle ein\n" msgstr "Geben Sie hier alle G-Code-Befehle ein\n"
@ -15261,7 +15261,7 @@ msgstr "Kein Geometriename in args. Geben Sie einen Namen ein und versuchen Sie
#~ msgstr "Mehrere Tiefe-Nutzung: Richtig oder Falsch." #~ msgstr "Mehrere Tiefe-Nutzung: Richtig oder Falsch."
#~ msgid "" #~ msgid ""
#~ "The postprocessor file that dictates\n" #~ "The preprocessor file that dictates\n"
#~ "Machine Code output." #~ "Machine Code output."
#~ msgstr "" #~ msgstr ""
#~ "Die Postprozessor-Datei, die diktiert\n" #~ "Die Postprozessor-Datei, die diktiert\n"

View File

@ -1854,8 +1854,8 @@ msgstr "Dwelltime"
#: FlatCAMCommon.py:531 flatcamGUI/ObjectUI.py:939 #: FlatCAMCommon.py:531 flatcamGUI/ObjectUI.py:939
#: flatcamGUI/PreferencesUI.py:2411 flatcamGUI/PreferencesUI.py:3318 #: flatcamGUI/PreferencesUI.py:2411 flatcamGUI/PreferencesUI.py:3318
msgid "Postprocessor" msgid "Preprocessor"
msgstr "Postprocessor" msgstr "Preprocessor"
#: FlatCAMCommon.py:532 #: FlatCAMCommon.py:532
msgid "ExtraCut" msgid "ExtraCut"
@ -2071,11 +2071,11 @@ msgstr ""
#: FlatCAMCommon.py:613 #: FlatCAMCommon.py:613
msgid "" msgid ""
"Postprocessor.\n" "Preprocessor.\n"
"A selection of files that will alter the generated G-code\n" "A selection of files that will alter the generated G-code\n"
"to fit for a number of use cases." "to fit for a number of use cases."
msgstr "" msgstr ""
"Postprocessor.\n" "Preprocessor.\n"
"A selection of files that will alter the generated G-code\n" "A selection of files that will alter the generated G-code\n"
"to fit for a number of use cases." "to fit for a number of use cases."
@ -2098,12 +2098,12 @@ msgid ""
"Toolchange.\n" "Toolchange.\n"
"It will create a toolchange event.\n" "It will create a toolchange event.\n"
"The kind of toolchange is determined by\n" "The kind of toolchange is determined by\n"
"the postprocessor file." "the preprocessor file."
msgstr "" msgstr ""
"Toolchange.\n" "Toolchange.\n"
"It will create a toolchange event.\n" "It will create a toolchange event.\n"
"The kind of toolchange is determined by\n" "The kind of toolchange is determined by\n"
"the postprocessor file." "the preprocessor file."
#: FlatCAMCommon.py:628 #: FlatCAMCommon.py:628
msgid "" msgid ""
@ -2691,13 +2691,13 @@ msgstr "Saved to"
#: FlatCAMObj.py:6506 FlatCAMObj.py:6516 #: FlatCAMObj.py:6506 FlatCAMObj.py:6516
msgid "" msgid ""
"The used postprocessor file has to have in it's name: 'toolchange_custom'" "The used preprocessor file has to have in it's name: 'toolchange_custom'"
msgstr "" msgstr ""
"The used postprocessor file has to have in it's name: 'toolchange_custom'" "The used preprocessor file has to have in it's name: 'toolchange_custom'"
#: FlatCAMObj.py:6520 #: FlatCAMObj.py:6520
msgid "There is no postprocessor file." msgid "There is no preprocessor file."
msgstr "There is no postprocessor file." msgstr "There is no preprocessor file."
#: FlatCAMObj.py:6764 #: FlatCAMObj.py:6764
msgid "Script Editor" msgid "Script Editor"
@ -7732,10 +7732,10 @@ msgstr "Number of time units for spindle to dwell."
#: flatcamGUI/ObjectUI.py:941 flatcamGUI/PreferencesUI.py:2413 #: flatcamGUI/ObjectUI.py:941 flatcamGUI/PreferencesUI.py:2413
msgid "" msgid ""
"The postprocessor JSON file that dictates\n" "The preprocessor JSON file that dictates\n"
"Gcode output." "Gcode output."
msgstr "" msgstr ""
"The postprocessor JSON file that dictates\n" "The preprocessor JSON file that dictates\n"
"Gcode output." "Gcode output."
#: flatcamGUI/ObjectUI.py:950 flatcamGUI/ObjectUI.py:1554 #: flatcamGUI/ObjectUI.py:950 flatcamGUI/ObjectUI.py:1554
@ -8155,11 +8155,11 @@ msgstr ""
#: flatcamGUI/ObjectUI.py:1510 flatcamGUI/PreferencesUI.py:3286 #: flatcamGUI/ObjectUI.py:1510 flatcamGUI/PreferencesUI.py:3286
msgid "" msgid ""
"Speed of the spindle in RPM (optional).\n" "Speed of the spindle in RPM (optional).\n"
"If LASER postprocessor is used,\n" "If LASER preprocessor is used,\n"
"this value is the power of laser." "this value is the power of laser."
msgstr "" msgstr ""
"Speed of the spindle in RPM (optional).\n" "Speed of the spindle in RPM (optional).\n"
"If LASER postprocessor is used,\n" "If LASER preprocessor is used,\n"
"this value is the power of laser." "this value is the power of laser."
#: flatcamGUI/ObjectUI.py:1542 flatcamGUI/PreferencesUI.py:5455 #: flatcamGUI/ObjectUI.py:1542 flatcamGUI/PreferencesUI.py:5455
@ -8169,10 +8169,10 @@ msgstr "PostProcessor"
#: flatcamGUI/ObjectUI.py:1544 flatcamGUI/PreferencesUI.py:3320 #: flatcamGUI/ObjectUI.py:1544 flatcamGUI/PreferencesUI.py:3320
msgid "" msgid ""
"The Postprocessor file that dictates\n" "The Preprocessor file that dictates\n"
"the Machine Code (like GCode, RML, HPGL) output." "the Machine Code (like GCode, RML, HPGL) output."
msgstr "" msgstr ""
"The Postprocessor file that dictates\n" "The Preprocessor file that dictates\n"
"the Machine Code (like GCode, RML, HPGL) output." "the Machine Code (like GCode, RML, HPGL) output."
#: flatcamGUI/ObjectUI.py:1588 #: flatcamGUI/ObjectUI.py:1588
@ -8387,7 +8387,7 @@ msgid ""
"or a Toolchange Macro.\n" "or a Toolchange Macro.\n"
"The FlatCAM variables are surrounded by '%' symbol.\n" "The FlatCAM variables are surrounded by '%' symbol.\n"
"\n" "\n"
"WARNING: it can be used only with a postprocessor file\n" "WARNING: it can be used only with a preprocessor file\n"
"that has 'toolchange_custom' in it's name and this is built\n" "that has 'toolchange_custom' in it's name and this is built\n"
"having as template the 'Toolchange Custom' posprocessor file." "having as template the 'Toolchange Custom' posprocessor file."
msgstr "" msgstr ""
@ -8397,7 +8397,7 @@ msgstr ""
"or a Toolchange Macro.\n" "or a Toolchange Macro.\n"
"The FlatCAM variables are surrounded by '%' symbol.\n" "The FlatCAM variables are surrounded by '%' symbol.\n"
"\n" "\n"
"WARNING: it can be used only with a postprocessor file\n" "WARNING: it can be used only with a preprocessor file\n"
"that has 'toolchange_custom' in it's name and this is built\n" "that has 'toolchange_custom' in it's name and this is built\n"
"having as template the 'Toolchange Custom' posprocessor file." "having as template the 'Toolchange Custom' posprocessor file."
@ -8409,20 +8409,20 @@ msgstr ""
#| "or a Toolchange Macro.\n" #| "or a Toolchange Macro.\n"
#| "The FlatCAM variables are surrounded by '%' symbol.\n" #| "The FlatCAM variables are surrounded by '%' symbol.\n"
#| "\n" #| "\n"
#| "WARNING: it can be used only with a postprocessor file\n" #| "WARNING: it can be used only with a preprocessor file\n"
#| "that has 'toolchange_custom' in it's name and this is built\n" #| "that has 'toolchange_custom' in it's name and this is built\n"
#| "having as template the 'Toolchange Custom' posprocessor file." #| "having as template the 'Toolchange Custom' posprocessor file."
msgid "" msgid ""
"Type here any G-Code commands you would like to be executed when Toolchange " "Type here any G-Code commands you would like to be executed when Toolchange "
"event is encountered. This will constitute a Custom Toolchange GCode, or a " "event is encountered. This will constitute a Custom Toolchange GCode, or a "
"Toolchange Macro. The FlatCAM variables are surrounded by '%' symbol. \n" "Toolchange Macro. The FlatCAM variables are surrounded by '%' symbol. \n"
"WARNING: it can be used only with a postprocessor file that has " "WARNING: it can be used only with a preprocessor file that has "
"'toolchange_custom' in it's name." "'toolchange_custom' in it's name."
msgstr "" msgstr ""
"Type here any G-Code commands you would like to be executed when Toolchange " "Type here any G-Code commands you would like to be executed when Toolchange "
"event is encountered. This will constitute a Custom Toolchange GCode, or a " "event is encountered. This will constitute a Custom Toolchange GCode, or a "
"Toolchange Macro. The FlatCAM variables are surrounded by '%' symbol. \n" "Toolchange Macro. The FlatCAM variables are surrounded by '%' symbol. \n"
"WARNING: it can be used only with a postprocessor file that has " "WARNING: it can be used only with a preprocessor file that has "
"'toolchange_custom' in it's name." "'toolchange_custom' in it's name."
#: flatcamGUI/ObjectUI.py:1864 flatcamGUI/PreferencesUI.py:3794 #: flatcamGUI/ObjectUI.py:1864 flatcamGUI/PreferencesUI.py:3794
@ -18945,10 +18945,10 @@ msgstr "No Geometry name in args. Provide a name and try again."
#~ msgstr "Multidepth usage: True or False." #~ msgstr "Multidepth usage: True or False."
#~ msgid "" #~ msgid ""
#~ "The postprocessor file that dictates\n" #~ "The preprocessor file that dictates\n"
#~ "Machine Code output." #~ "Machine Code output."
#~ msgstr "" #~ msgstr ""
#~ "The postprocessor file that dictates\n" #~ "The preprocessor file that dictates\n"
#~ "Machine Code output." #~ "Machine Code output."
#~ msgid "Display Annotation:" #~ msgid "Display Annotation:"

View File

@ -1917,7 +1917,7 @@ msgstr "Habitar"
#: FlatCAMCommon.py:531 flatcamGUI/ObjectUI.py:939 #: FlatCAMCommon.py:531 flatcamGUI/ObjectUI.py:939
#: flatcamGUI/PreferencesUI.py:2411 flatcamGUI/PreferencesUI.py:3318 #: flatcamGUI/PreferencesUI.py:2411 flatcamGUI/PreferencesUI.py:3318
msgid "Postprocessor" msgid "Preprocessor"
msgstr "Postprocesador" msgstr "Postprocesador"
#: FlatCAMCommon.py:532 #: FlatCAMCommon.py:532
@ -2096,7 +2096,7 @@ msgstr ""
#: FlatCAMCommon.py:613 #: FlatCAMCommon.py:613
msgid "" msgid ""
"Postprocessor.\n" "Preprocessor.\n"
"A selection of files that will alter the generated G-code\n" "A selection of files that will alter the generated G-code\n"
"to fit for a number of use cases." "to fit for a number of use cases."
msgstr "" msgstr ""
@ -2115,7 +2115,7 @@ msgid ""
"Toolchange.\n" "Toolchange.\n"
"It will create a toolchange event.\n" "It will create a toolchange event.\n"
"The kind of toolchange is determined by\n" "The kind of toolchange is determined by\n"
"the postprocessor file." "the preprocessor file."
msgstr "" msgstr ""
#: FlatCAMCommon.py:628 #: FlatCAMCommon.py:628
@ -2737,12 +2737,12 @@ msgstr "Guardado en"
#: FlatCAMObj.py:6506 FlatCAMObj.py:6516 #: FlatCAMObj.py:6506 FlatCAMObj.py:6516
msgid "" msgid ""
"The used postprocessor file has to have in it's name: 'toolchange_custom'" "The used preprocessor file has to have in it's name: 'toolchange_custom'"
msgstr "" msgstr ""
"El archivo de postprocesador usado debe tener su nombre: 'toolchange_custom'" "El archivo de postprocesador usado debe tener su nombre: 'toolchange_custom'"
#: FlatCAMObj.py:6520 #: FlatCAMObj.py:6520
msgid "There is no postprocessor file." msgid "There is no preprocessor file."
msgstr "No hay archivo de postprocesador." msgstr "No hay archivo de postprocesador."
#: FlatCAMObj.py:6764 #: FlatCAMObj.py:6764
@ -7849,7 +7849,7 @@ msgstr "Número de unidades de tiempo para que el husillo permanezca."
#: flatcamGUI/ObjectUI.py:941 flatcamGUI/PreferencesUI.py:2413 #: flatcamGUI/ObjectUI.py:941 flatcamGUI/PreferencesUI.py:2413
msgid "" msgid ""
"The postprocessor JSON file that dictates\n" "The preprocessor JSON file that dictates\n"
"Gcode output." "Gcode output."
msgstr "" msgstr ""
"El archivo JSON del postprocesador que dicta\n" "El archivo JSON del postprocesador que dicta\n"
@ -8282,7 +8282,7 @@ msgstr ""
#: flatcamGUI/ObjectUI.py:1510 flatcamGUI/PreferencesUI.py:3286 #: flatcamGUI/ObjectUI.py:1510 flatcamGUI/PreferencesUI.py:3286
msgid "" msgid ""
"Speed of the spindle in RPM (optional).\n" "Speed of the spindle in RPM (optional).\n"
"If LASER postprocessor is used,\n" "If LASER preprocessor is used,\n"
"this value is the power of laser." "this value is the power of laser."
msgstr "" msgstr ""
"Velocidad del husillo en RPM (opcional).\n" "Velocidad del husillo en RPM (opcional).\n"
@ -8296,7 +8296,7 @@ msgstr "Postprocesador"
#: flatcamGUI/ObjectUI.py:1544 flatcamGUI/PreferencesUI.py:3320 #: flatcamGUI/ObjectUI.py:1544 flatcamGUI/PreferencesUI.py:3320
msgid "" msgid ""
"The Postprocessor file that dictates\n" "The Preprocessor file that dictates\n"
"the Machine Code (like GCode, RML, HPGL) output." "the Machine Code (like GCode, RML, HPGL) output."
msgstr "" msgstr ""
"El archivo de postprocesador que dicta\n" "El archivo de postprocesador que dicta\n"
@ -8518,7 +8518,7 @@ msgid ""
"or a Toolchange Macro.\n" "or a Toolchange Macro.\n"
"The FlatCAM variables are surrounded by '%' symbol.\n" "The FlatCAM variables are surrounded by '%' symbol.\n"
"\n" "\n"
"WARNING: it can be used only with a postprocessor file\n" "WARNING: it can be used only with a preprocessor file\n"
"that has 'toolchange_custom' in it's name and this is built\n" "that has 'toolchange_custom' in it's name and this is built\n"
"having as template the 'Toolchange Custom' posprocessor file." "having as template the 'Toolchange Custom' posprocessor file."
msgstr "" msgstr ""
@ -8541,14 +8541,14 @@ msgstr ""
#| "or a Toolchange Macro.\n" #| "or a Toolchange Macro.\n"
#| "The FlatCAM variables are surrounded by '%' symbol.\n" #| "The FlatCAM variables are surrounded by '%' symbol.\n"
#| "\n" #| "\n"
#| "WARNING: it can be used only with a postprocessor file\n" #| "WARNING: it can be used only with a preprocessor file\n"
#| "that has 'toolchange_custom' in it's name and this is built\n" #| "that has 'toolchange_custom' in it's name and this is built\n"
#| "having as template the 'Toolchange Custom' posprocessor file." #| "having as template the 'Toolchange Custom' posprocessor file."
msgid "" msgid ""
"Type here any G-Code commands you would like to be executed when Toolchange " "Type here any G-Code commands you would like to be executed when Toolchange "
"event is encountered. This will constitute a Custom Toolchange GCode, or a " "event is encountered. This will constitute a Custom Toolchange GCode, or a "
"Toolchange Macro. The FlatCAM variables are surrounded by '%' symbol. \n" "Toolchange Macro. The FlatCAM variables are surrounded by '%' symbol. \n"
"WARNING: it can be used only with a postprocessor file that has " "WARNING: it can be used only with a preprocessor file that has "
"'toolchange_custom' in it's name." "'toolchange_custom' in it's name."
msgstr "" msgstr ""
"Escriba aquí cualquier comando de código G que desee\n" "Escriba aquí cualquier comando de código G que desee\n"
@ -17652,7 +17652,7 @@ msgstr ""
#~ msgstr "Uso de profundidad múltiple: Verdadero o Falso." #~ msgstr "Uso de profundidad múltiple: Verdadero o Falso."
#~ msgid "" #~ msgid ""
#~ "The postprocessor file that dictates\n" #~ "The preprocessor file that dictates\n"
#~ "Machine Code output." #~ "Machine Code output."
#~ msgstr "" #~ msgstr ""
#~ "El archivo de postprocesador que dicta.\n" #~ "El archivo de postprocesador que dicta.\n"

View File

@ -1966,13 +1966,13 @@ msgstr "Enregistré dans"
#: FlatCAMObj.py:6332 FlatCAMObj.py:6342 #: FlatCAMObj.py:6332 FlatCAMObj.py:6342
msgid "" msgid ""
"The used postprocessor file has to have in it's name: 'toolchange_custom'" "The used preprocessor file has to have in it's name: 'toolchange_custom'"
msgstr "" msgstr ""
"Le fichier de post-traitement utilisé doit avoir pour nom: " "Le fichier de post-traitement utilisé doit avoir pour nom: "
"'toolchange_custom'" "'toolchange_custom'"
#: FlatCAMObj.py:6346 #: FlatCAMObj.py:6346
msgid "There is no postprocessor file." msgid "There is no preprocessor file."
msgstr "Il n'y a pas de fichier de post-processeur." msgstr "Il n'y a pas de fichier de post-processeur."
#: FlatCAMObj.py:6623 #: FlatCAMObj.py:6623
@ -7102,12 +7102,12 @@ msgstr "Nombre d'unités de temps pendant lesquelles la broche s'arrête."
#: flatcamGUI/ObjectUI.py:889 flatcamGUI/PreferencesUI.py:2253 #: flatcamGUI/ObjectUI.py:889 flatcamGUI/PreferencesUI.py:2253
#: flatcamGUI/PreferencesUI.py:3140 #: flatcamGUI/PreferencesUI.py:3140
msgid "Postprocessor" msgid "Preprocessor"
msgstr "Post-processeur" msgstr "Post-processeur"
#: flatcamGUI/ObjectUI.py:891 flatcamGUI/PreferencesUI.py:2255 #: flatcamGUI/ObjectUI.py:891 flatcamGUI/PreferencesUI.py:2255
msgid "" msgid ""
"The postprocessor JSON file that dictates\n" "The preprocessor JSON file that dictates\n"
"Gcode output." "Gcode output."
msgstr "" msgstr ""
"Le fichier JSON post-processeur qui dicte\n" "Le fichier JSON post-processeur qui dicte\n"
@ -7532,7 +7532,7 @@ msgstr ""
#: flatcamGUI/ObjectUI.py:1457 flatcamGUI/PreferencesUI.py:3108 #: flatcamGUI/ObjectUI.py:1457 flatcamGUI/PreferencesUI.py:3108
msgid "" msgid ""
"Speed of the spindle in RPM (optional).\n" "Speed of the spindle in RPM (optional).\n"
"If LASER postprocessor is used,\n" "If LASER preprocessor is used,\n"
"this value is the power of laser." "this value is the power of laser."
msgstr "" msgstr ""
"Vitesse de la broche en tours / minute (facultatif).\n" "Vitesse de la broche en tours / minute (facultatif).\n"
@ -7546,7 +7546,7 @@ msgstr "Post-processeur"
#: flatcamGUI/ObjectUI.py:1491 flatcamGUI/PreferencesUI.py:3142 #: flatcamGUI/ObjectUI.py:1491 flatcamGUI/PreferencesUI.py:3142
msgid "" msgid ""
"The Postprocessor file that dictates\n" "The Preprocessor file that dictates\n"
"the Machine Code (like GCode, RML, HPGL) output." "the Machine Code (like GCode, RML, HPGL) output."
msgstr "" msgstr ""
"Le fichier post-processeur qui dicte\n" "Le fichier post-processeur qui dicte\n"
@ -7742,7 +7742,7 @@ msgid ""
"or a Toolchange Macro.\n" "or a Toolchange Macro.\n"
"The FlatCAM variables are surrounded by '%' symbol.\n" "The FlatCAM variables are surrounded by '%' symbol.\n"
"\n" "\n"
"WARNING: it can be used only with a postprocessor file\n" "WARNING: it can be used only with a preprocessor file\n"
"that has 'toolchange_custom' in it's name and this is built\n" "that has 'toolchange_custom' in it's name and this is built\n"
"having as template the 'Toolchange Custom' posprocessor file." "having as template the 'Toolchange Custom' posprocessor file."
msgstr "" msgstr ""

View File

@ -1960,12 +1960,12 @@ msgstr "Salvo em"
#: FlatCAMObj.py:6332 FlatCAMObj.py:6342 #: FlatCAMObj.py:6332 FlatCAMObj.py:6342
msgid "" msgid ""
"The used postprocessor file has to have in it's name: 'toolchange_custom'" "The used preprocessor file has to have in it's name: 'toolchange_custom'"
msgstr "" msgstr ""
"O arquivo de pós-processamento deve ter em seu nome: 'toolchange_custom'" "O arquivo de pós-processamento deve ter em seu nome: 'toolchange_custom'"
#: FlatCAMObj.py:6346 #: FlatCAMObj.py:6346
msgid "There is no postprocessor file." msgid "There is no preprocessor file."
msgstr "Não há arquivo de pós-processamento." msgstr "Não há arquivo de pós-processamento."
#: FlatCAMObj.py:6623 #: FlatCAMObj.py:6623
@ -7038,12 +7038,12 @@ msgstr "Número de unidades de tempo para o fuso residir."
#: flatcamGUI/ObjectUI.py:889 flatcamGUI/PreferencesUI.py:2253 #: flatcamGUI/ObjectUI.py:889 flatcamGUI/PreferencesUI.py:2253
#: flatcamGUI/PreferencesUI.py:3140 #: flatcamGUI/PreferencesUI.py:3140
msgid "Postprocessor" msgid "Preprocessor"
msgstr "Pós-processador" msgstr "Pós-processador"
#: flatcamGUI/ObjectUI.py:891 flatcamGUI/PreferencesUI.py:2255 #: flatcamGUI/ObjectUI.py:891 flatcamGUI/PreferencesUI.py:2255
msgid "" msgid ""
"The postprocessor JSON file that dictates\n" "The preprocessor JSON file that dictates\n"
"Gcode output." "Gcode output."
msgstr "" msgstr ""
"O arquivo de pós-processamento (JSON) que define\n" "O arquivo de pós-processamento (JSON) que define\n"
@ -7461,7 +7461,7 @@ msgstr ""
#: flatcamGUI/ObjectUI.py:1457 flatcamGUI/PreferencesUI.py:3108 #: flatcamGUI/ObjectUI.py:1457 flatcamGUI/PreferencesUI.py:3108
msgid "" msgid ""
"Speed of the spindle in RPM (optional).\n" "Speed of the spindle in RPM (optional).\n"
"If LASER postprocessor is used,\n" "If LASER preprocessor is used,\n"
"this value is the power of laser." "this value is the power of laser."
msgstr "" msgstr ""
"Velocidade do spindle em RPM (opcional).\n" "Velocidade do spindle em RPM (opcional).\n"
@ -7475,7 +7475,7 @@ msgstr "Pós-processador"
#: flatcamGUI/ObjectUI.py:1491 flatcamGUI/PreferencesUI.py:3142 #: flatcamGUI/ObjectUI.py:1491 flatcamGUI/PreferencesUI.py:3142
msgid "" msgid ""
"The Postprocessor file that dictates\n" "The Preprocessor file that dictates\n"
"the Machine Code (like GCode, RML, HPGL) output." "the Machine Code (like GCode, RML, HPGL) output."
msgstr "" msgstr ""
"Arquivo de Pós-processamento que determina o código\n" "Arquivo de Pós-processamento que determina o código\n"
@ -7669,7 +7669,7 @@ msgid ""
"or a Toolchange Macro.\n" "or a Toolchange Macro.\n"
"The FlatCAM variables are surrounded by '%' symbol.\n" "The FlatCAM variables are surrounded by '%' symbol.\n"
"\n" "\n"
"WARNING: it can be used only with a postprocessor file\n" "WARNING: it can be used only with a preprocessor file\n"
"that has 'toolchange_custom' in it's name and this is built\n" "that has 'toolchange_custom' in it's name and this is built\n"
"having as template the 'Toolchange Custom' posprocessor file." "having as template the 'Toolchange Custom' posprocessor file."
msgstr "" msgstr ""

View File

@ -1817,7 +1817,7 @@ msgstr "Pauza"
#: FlatCAMCommon.py:531 flatcamGUI/ObjectUI.py:915 #: FlatCAMCommon.py:531 flatcamGUI/ObjectUI.py:915
#: flatcamGUI/PreferencesUI.py:2294 flatcamGUI/PreferencesUI.py:3201 #: flatcamGUI/PreferencesUI.py:2294 flatcamGUI/PreferencesUI.py:3201
msgid "Postprocessor" msgid "Preprocessor"
msgstr "Postprocesor" msgstr "Postprocesor"
#: FlatCAMCommon.py:532 #: FlatCAMCommon.py:532
@ -1992,7 +1992,7 @@ msgstr "dwelltime = durata de asteptare ca motorul să ajunga la turatia setată
#: FlatCAMCommon.py:613 #: FlatCAMCommon.py:613
msgid "" msgid ""
"Postprocessor.\n" "Preprocessor.\n"
"A selection of files that will alter the generated G-code\n" "A selection of files that will alter the generated G-code\n"
"to fit for a number of use cases." "to fit for a number of use cases."
msgstr "" msgstr ""
@ -2011,7 +2011,7 @@ msgid ""
"Toolchange.\n" "Toolchange.\n"
"It will create a toolchange event.\n" "It will create a toolchange event.\n"
"The kind of toolchange is determined by\n" "The kind of toolchange is determined by\n"
"the postprocessor file." "the preprocessor file."
msgstr "" msgstr ""
#: FlatCAMCommon.py:628 #: FlatCAMCommon.py:628
@ -2544,12 +2544,12 @@ msgstr "Salvat in"
#: FlatCAMObj.py:6388 FlatCAMObj.py:6398 #: FlatCAMObj.py:6388 FlatCAMObj.py:6398
msgid "" msgid ""
"The used postprocessor file has to have in it's name: 'toolchange_custom'" "The used preprocessor file has to have in it's name: 'toolchange_custom'"
msgstr "" msgstr ""
"Postprocesorul folosit trebuie să aibă in numele sau: 'toolchange_custom'" "Postprocesorul folosit trebuie să aibă in numele sau: 'toolchange_custom'"
#: FlatCAMObj.py:6402 #: FlatCAMObj.py:6402
msgid "There is no postprocessor file." msgid "There is no preprocessor file."
msgstr "Nu exista nici-un fişier postprocesor." msgstr "Nu exista nici-un fişier postprocesor."
#: FlatCAMObj.py:6679 #: FlatCAMObj.py:6679
@ -7642,7 +7642,7 @@ msgstr "Timpul (ori secunde ori milisec) cat se stă in pauză."
#: flatcamGUI/ObjectUI.py:917 flatcamGUI/PreferencesUI.py:2296 #: flatcamGUI/ObjectUI.py:917 flatcamGUI/PreferencesUI.py:2296
msgid "" msgid ""
"The postprocessor JSON file that dictates\n" "The preprocessor JSON file that dictates\n"
"Gcode output." "Gcode output."
msgstr "" msgstr ""
"Fișierul JSON postprocesor care dictează\n" "Fișierul JSON postprocesor care dictează\n"
@ -8076,7 +8076,7 @@ msgstr ""
#: flatcamGUI/ObjectUI.py:1486 flatcamGUI/PreferencesUI.py:3169 #: flatcamGUI/ObjectUI.py:1486 flatcamGUI/PreferencesUI.py:3169
msgid "" msgid ""
"Speed of the spindle in RPM (optional).\n" "Speed of the spindle in RPM (optional).\n"
"If LASER postprocessor is used,\n" "If LASER preprocessor is used,\n"
"this value is the power of laser." "this value is the power of laser."
msgstr "" msgstr ""
"Viteza motorului in RPM (optional).\n" "Viteza motorului in RPM (optional).\n"
@ -8090,7 +8090,7 @@ msgstr "Postprocesor"
#: flatcamGUI/ObjectUI.py:1520 flatcamGUI/PreferencesUI.py:3203 #: flatcamGUI/ObjectUI.py:1520 flatcamGUI/PreferencesUI.py:3203
msgid "" msgid ""
"The Postprocessor file that dictates\n" "The Preprocessor file that dictates\n"
"the Machine Code (like GCode, RML, HPGL) output." "the Machine Code (like GCode, RML, HPGL) output."
msgstr "" msgstr ""
"Fişierul postprocesor care controlează generarea\n" "Fişierul postprocesor care controlează generarea\n"
@ -8312,7 +8312,7 @@ msgid ""
"or a Toolchange Macro.\n" "or a Toolchange Macro.\n"
"The FlatCAM variables are surrounded by '%' symbol.\n" "The FlatCAM variables are surrounded by '%' symbol.\n"
"\n" "\n"
"WARNING: it can be used only with a postprocessor file\n" "WARNING: it can be used only with a preprocessor file\n"
"that has 'toolchange_custom' in it's name and this is built\n" "that has 'toolchange_custom' in it's name and this is built\n"
"having as template the 'Toolchange Custom' posprocessor file." "having as template the 'Toolchange Custom' posprocessor file."
msgstr "" msgstr ""
@ -8335,14 +8335,14 @@ msgstr ""
#| "or a Toolchange Macro.\n" #| "or a Toolchange Macro.\n"
#| "The FlatCAM variables are surrounded by '%' symbol.\n" #| "The FlatCAM variables are surrounded by '%' symbol.\n"
#| "\n" #| "\n"
#| "WARNING: it can be used only with a postprocessor file\n" #| "WARNING: it can be used only with a preprocessor file\n"
#| "that has 'toolchange_custom' in it's name and this is built\n" #| "that has 'toolchange_custom' in it's name and this is built\n"
#| "having as template the 'Toolchange Custom' posprocessor file." #| "having as template the 'Toolchange Custom' posprocessor file."
msgid "" msgid ""
"Type here any G-Code commands you would like to be executed when Toolchange " "Type here any G-Code commands you would like to be executed when Toolchange "
"event is encountered. This will constitute a Custom Toolchange GCode, or a " "event is encountered. This will constitute a Custom Toolchange GCode, or a "
"Toolchange Macro. The FlatCAM variables are surrounded by '%' symbol. \n" "Toolchange Macro. The FlatCAM variables are surrounded by '%' symbol. \n"
"WARNING: it can be used only with a postprocessor file that has " "WARNING: it can be used only with a preprocessor file that has "
"'toolchange_custom' in it's name." "'toolchange_custom' in it's name."
msgstr "" msgstr ""
"Plasează aici acele comenzi G-Code care se dorește să fie executate\n" "Plasează aici acele comenzi G-Code care se dorește să fie executate\n"
@ -18034,7 +18034,7 @@ msgstr ""
#~ "pentru a ajunge la adâncimea de tăiere." #~ "pentru a ajunge la adâncimea de tăiere."
#~ msgid "" #~ msgid ""
#~ "The postprocessor file that dictates\n" #~ "The preprocessor file that dictates\n"
#~ "Machine Code output." #~ "Machine Code output."
#~ msgstr "" #~ msgstr ""
#~ "Un fişier care prelucrează codul G-Code astfel încât să\n" #~ "Un fişier care prelucrează codul G-Code astfel încât să\n"

View File

@ -1914,11 +1914,11 @@ msgstr "Сохранено в"
#: FlatCAMObj.py:6320 FlatCAMObj.py:6330 #: FlatCAMObj.py:6320 FlatCAMObj.py:6330
msgid "" msgid ""
"The used postprocessor file has to have in it's name: 'toolchange_custom'" "The used preprocessor file has to have in it's name: 'toolchange_custom'"
msgstr "Используемый файл постпроцессора должен иметь имя: 'toolchange_custom'" msgstr "Используемый файл постпроцессора должен иметь имя: 'toolchange_custom'"
#: FlatCAMObj.py:6334 #: FlatCAMObj.py:6334
msgid "There is no postprocessor file." msgid "There is no preprocessor file."
msgstr "Это не файл постпроцессора." msgstr "Это не файл постпроцессора."
#: FlatCAMObj.py:6611 #: FlatCAMObj.py:6611
@ -7026,12 +7026,12 @@ msgstr "Количество единиц времени для остановк
#: flatcamGUI/ObjectUI.py:891 flatcamGUI/PreferencesUI.py:2256 #: flatcamGUI/ObjectUI.py:891 flatcamGUI/PreferencesUI.py:2256
#: flatcamGUI/PreferencesUI.py:3143 #: flatcamGUI/PreferencesUI.py:3143
msgid "Postprocessor" msgid "Preprocessor"
msgstr "Постпроцессор" msgstr "Постпроцессор"
#: flatcamGUI/ObjectUI.py:893 flatcamGUI/PreferencesUI.py:2258 #: flatcamGUI/ObjectUI.py:893 flatcamGUI/PreferencesUI.py:2258
msgid "" msgid ""
"The postprocessor JSON file that dictates\n" "The preprocessor JSON file that dictates\n"
"Gcode output." "Gcode output."
msgstr "" msgstr ""
"JSON-файл постпроцессора, который влияет\n" "JSON-файл постпроцессора, который влияет\n"
@ -7455,7 +7455,7 @@ msgstr ""
#: flatcamGUI/ObjectUI.py:1459 flatcamGUI/PreferencesUI.py:3111 #: flatcamGUI/ObjectUI.py:1459 flatcamGUI/PreferencesUI.py:3111
msgid "" msgid ""
"Speed of the spindle in RPM (optional).\n" "Speed of the spindle in RPM (optional).\n"
"If LASER postprocessor is used,\n" "If LASER preprocessor is used,\n"
"this value is the power of laser." "this value is the power of laser."
msgstr "" msgstr ""
"Скорость шпинделя в об/мин (опционально).\n" "Скорость шпинделя в об/мин (опционально).\n"
@ -7469,7 +7469,7 @@ msgstr "Постпроцессор"
#: flatcamGUI/ObjectUI.py:1493 flatcamGUI/PreferencesUI.py:3145 #: flatcamGUI/ObjectUI.py:1493 flatcamGUI/PreferencesUI.py:3145
msgid "" msgid ""
"The Postprocessor file that dictates\n" "The Preprocessor file that dictates\n"
"the Machine Code (like GCode, RML, HPGL) output." "the Machine Code (like GCode, RML, HPGL) output."
msgstr "" msgstr ""
"Файл постпроцессора, который диктует\n" "Файл постпроцессора, который диктует\n"
@ -7665,7 +7665,7 @@ msgid ""
"or a Toolchange Macro.\n" "or a Toolchange Macro.\n"
"The FlatCAM variables are surrounded by '%' symbol.\n" "The FlatCAM variables are surrounded by '%' symbol.\n"
"\n" "\n"
"WARNING: it can be used only with a postprocessor file\n" "WARNING: it can be used only with a preprocessor file\n"
"that has 'toolchange_custom' in it's name and this is built\n" "that has 'toolchange_custom' in it's name and this is built\n"
"having as template the 'Toolchange Custom' posprocessor file." "having as template the 'Toolchange Custom' posprocessor file."
msgstr "" msgstr ""
@ -16467,7 +16467,7 @@ msgstr "Нет имени геометрии в аргументах. Укажи
#~ msgstr "Многократное использование: Истина или Ложь." #~ msgstr "Многократное использование: Истина или Ложь."
#~ msgid "" #~ msgid ""
#~ "The postprocessor file that dictates\n" #~ "The preprocessor file that dictates\n"
#~ "Machine Code output." #~ "Machine Code output."
#~ msgstr "" #~ msgstr ""
#~ "Файл постпроцессора, который диктует\n" #~ "Файл постпроцессора, который диктует\n"

View File

@ -1646,7 +1646,7 @@ msgstr ""
#: FlatCAMCommon.py:531 flatcamGUI/ObjectUI.py:939 flatcamGUI/PreferencesUI.py:2411 #: FlatCAMCommon.py:531 flatcamGUI/ObjectUI.py:939 flatcamGUI/PreferencesUI.py:2411
#: flatcamGUI/PreferencesUI.py:3318 #: flatcamGUI/PreferencesUI.py:3318
msgid "Postprocessor" msgid "Preprocessor"
msgstr "" msgstr ""
#: FlatCAMCommon.py:532 #: FlatCAMCommon.py:532
@ -1803,7 +1803,7 @@ msgstr ""
#: FlatCAMCommon.py:613 #: FlatCAMCommon.py:613
msgid "" msgid ""
"Postprocessor.\n" "Preprocessor.\n"
"A selection of files that will alter the generated G-code\n" "A selection of files that will alter the generated G-code\n"
"to fit for a number of use cases." "to fit for a number of use cases."
msgstr "" msgstr ""
@ -1822,7 +1822,7 @@ msgid ""
"Toolchange.\n" "Toolchange.\n"
"It will create a toolchange event.\n" "It will create a toolchange event.\n"
"The kind of toolchange is determined by\n" "The kind of toolchange is determined by\n"
"the postprocessor file." "the preprocessor file."
msgstr "" msgstr ""
#: FlatCAMCommon.py:628 #: FlatCAMCommon.py:628
@ -2325,11 +2325,11 @@ msgid "Saved to"
msgstr "" msgstr ""
#: FlatCAMObj.py:6506 FlatCAMObj.py:6516 #: FlatCAMObj.py:6506 FlatCAMObj.py:6516
msgid "The used postprocessor file has to have in it's name: 'toolchange_custom'" msgid "The used preprocessor file has to have in it's name: 'toolchange_custom'"
msgstr "" msgstr ""
#: FlatCAMObj.py:6520 #: FlatCAMObj.py:6520
msgid "There is no postprocessor file." msgid "There is no preprocessor file."
msgstr "" msgstr ""
#: FlatCAMObj.py:6764 #: FlatCAMObj.py:6764
@ -6764,7 +6764,7 @@ msgstr ""
#: flatcamGUI/ObjectUI.py:941 flatcamGUI/PreferencesUI.py:2413 #: flatcamGUI/ObjectUI.py:941 flatcamGUI/PreferencesUI.py:2413
msgid "" msgid ""
"The postprocessor JSON file that dictates\n" "The preprocessor JSON file that dictates\n"
"Gcode output." "Gcode output."
msgstr "" msgstr ""
@ -7069,7 +7069,7 @@ msgstr ""
#: flatcamGUI/ObjectUI.py:1510 flatcamGUI/PreferencesUI.py:3286 #: flatcamGUI/ObjectUI.py:1510 flatcamGUI/PreferencesUI.py:3286
msgid "" msgid ""
"Speed of the spindle in RPM (optional).\n" "Speed of the spindle in RPM (optional).\n"
"If LASER postprocessor is used,\n" "If LASER preprocessor is used,\n"
"this value is the power of laser." "this value is the power of laser."
msgstr "" msgstr ""
@ -7080,7 +7080,7 @@ msgstr ""
#: flatcamGUI/ObjectUI.py:1544 flatcamGUI/PreferencesUI.py:3320 #: flatcamGUI/ObjectUI.py:1544 flatcamGUI/PreferencesUI.py:3320
msgid "" msgid ""
"The Postprocessor file that dictates\n" "The Preprocessor file that dictates\n"
"the Machine Code (like GCode, RML, HPGL) output." "the Machine Code (like GCode, RML, HPGL) output."
msgstr "" msgstr ""
@ -7250,7 +7250,7 @@ msgid ""
"or a Toolchange Macro.\n" "or a Toolchange Macro.\n"
"The FlatCAM variables are surrounded by '%' symbol.\n" "The FlatCAM variables are surrounded by '%' symbol.\n"
"\n" "\n"
"WARNING: it can be used only with a postprocessor file\n" "WARNING: it can be used only with a preprocessor file\n"
"that has 'toolchange_custom' in it's name and this is built\n" "that has 'toolchange_custom' in it's name and this is built\n"
"having as template the 'Toolchange Custom' posprocessor file." "having as template the 'Toolchange Custom' posprocessor file."
msgstr "" msgstr ""
@ -7260,7 +7260,7 @@ msgid ""
"Type here any G-Code commands you would like to be executed when Toolchange event is " "Type here any G-Code commands you would like to be executed when Toolchange event is "
"encountered. This will constitute a Custom Toolchange GCode, or a Toolchange Macro. The " "encountered. This will constitute a Custom Toolchange GCode, or a Toolchange Macro. The "
"FlatCAM variables are surrounded by '%' symbol. \n" "FlatCAM variables are surrounded by '%' symbol. \n"
"WARNING: it can be used only with a postprocessor file that has 'toolchange_custom' in " "WARNING: it can be used only with a preprocessor file that has 'toolchange_custom' in "
"it's name." "it's name."
msgstr "" msgstr ""

View File

@ -57,7 +57,7 @@ if platform.architecture()[0] == '64bit':
include_files.append((os.path.join(site_dir, "ortools"), "ortools")) include_files.append((os.path.join(site_dir, "ortools"), "ortools"))
include_files.append(("locale", "lib/locale")) include_files.append(("locale", "lib/locale"))
include_files.append(("postprocessors", "lib/postprocessors")) include_files.append(("preprocessors", "lib/preprocessors"))
include_files.append(("share", "lib/share")) include_files.append(("share", "lib/share"))
include_files.append(("flatcamGUI/VisPyData", "lib/vispy")) include_files.append(("flatcamGUI/VisPyData", "lib/vispy"))
include_files.append(("config", "lib/config")) include_files.append(("config", "lib/config"))

View File

@ -57,9 +57,9 @@ class Berta_CNC(FlatCAMPostProc):
gcode += '(Steps per circle: ' + str(p['steps_per_circle']) + ')\n' gcode += '(Steps per circle: ' + str(p['steps_per_circle']) + ')\n'
if str(p['options']['type']) == 'Excellon' or str(p['options']['type']) == 'Excellon Geometry': if str(p['options']['type']) == 'Excellon' or str(p['options']['type']) == 'Excellon Geometry':
gcode += '(Postprocessor Excellon: ' + str(p['pp_excellon_name']) + ')\n' + '\n' gcode += '(Preprocessor Excellon: ' + str(p['pp_excellon_name']) + ')\n' + '\n'
else: else:
gcode += '(Postprocessor Geometry: ' + str(p['pp_geometry_name']) + ')\n' + '\n' gcode += '(Preprocessor Geometry: ' + str(p['pp_geometry_name']) + ')\n' + '\n'
gcode += '(X range: ' + '{: >9s}'.format(xmin) + ' ... ' + '{: >9s}'.format(xmax) + ' ' + units + ')\n' gcode += '(X range: ' + '{: >9s}'.format(xmin) + ' ... ' + '{: >9s}'.format(xmax) + ' ' + units + ')\n'
gcode += '(Y range: ' + '{: >9s}'.format(ymin) + ' ... ' + '{: >9s}'.format(ymax) + ' ' + units + ')\n\n' gcode += '(Y range: ' + '{: >9s}'.format(ymin) + ' ... ' + '{: >9s}'.format(ymax) + ' ' + units + ')\n\n'

View File

@ -54,9 +54,9 @@ class ISEL_CNC(FlatCAMPostProc):
gcode += '(Steps per circle: ' + str(p['steps_per_circle']) + ')\n' gcode += '(Steps per circle: ' + str(p['steps_per_circle']) + ')\n'
if str(p['options']['type']) == 'Excellon' or str(p['options']['type']) == 'Excellon Geometry': if str(p['options']['type']) == 'Excellon' or str(p['options']['type']) == 'Excellon Geometry':
gcode += '(Postprocessor Excellon: ' + str(p['pp_excellon_name']) + ')\n' + '\n' gcode += '(Preprocessor Excellon: ' + str(p['pp_excellon_name']) + ')\n' + '\n'
else: else:
gcode += '(Postprocessor Geometry: ' + str(p['pp_geometry_name']) + ')\n' + '\n' gcode += '(Preprocessor Geometry: ' + str(p['pp_geometry_name']) + ')\n' + '\n'
gcode += '(X range: ' + '{: >9s}'.format(xmin) + ' ... ' + '{: >9s}'.format(xmax) + ' ' + units + ')\n' gcode += '(X range: ' + '{: >9s}'.format(xmin) + ' ... ' + '{: >9s}'.format(xmax) + ' ' + units + ')\n'
gcode += '(Y range: ' + '{: >9s}'.format(ymin) + ' ... ' + '{: >9s}'.format(ymax) + ' ' + units + ')\n\n' gcode += '(Y range: ' + '{: >9s}'.format(ymin) + ' ... ' + '{: >9s}'.format(ymax) + ' ' + units + ')\n\n'

View File

@ -40,7 +40,7 @@ class Paste_1(FlatCAMPostProc_Tools):
p.decimals, coords_xy[1]) + units + ')\n' p.decimals, coords_xy[1]) + units + ')\n'
if 'Paste' in p.pp_solderpaste_name: if 'Paste' in p.pp_solderpaste_name:
gcode += '(Postprocessor SolderPaste Dispensing Geometry: ' + str(p.pp_solderpaste_name) + ')\n' + '\n' gcode += '(Preprocessor SolderPaste Dispensing Geometry: ' + str(p.pp_solderpaste_name) + ')\n' + '\n'
gcode += '(X range: ' + '{: >9s}'.format(xmin) + ' ... ' + '{: >9s}'.format(xmax) + ' ' + units + ')\n' gcode += '(X range: ' + '{: >9s}'.format(xmin) + ' ... ' + '{: >9s}'.format(xmax) + ' ' + units + ')\n'
gcode += '(Y range: ' + '{: >9s}'.format(ymin) + ' ... ' + '{: >9s}'.format(ymax) + ' ' + units + ')\n\n' gcode += '(Y range: ' + '{: >9s}'.format(ymin) + ' ... ' + '{: >9s}'.format(ymax) + ' ' + units + ')\n\n'
@ -89,6 +89,7 @@ T{tool}
M6 M6
(MSG, Change to Tool with Nozzle Dia = {toolC}) (MSG, Change to Tool with Nozzle Dia = {toolC})
M0 M0
G00 Z{z_toolchange}
""".format(x_toolchange=self.coordinate_format % (p.coords_decimals, x_toolchange), """.format(x_toolchange=self.coordinate_format % (p.coords_decimals, x_toolchange),
y_toolchange=self.coordinate_format % (p.coords_decimals, y_toolchange), y_toolchange=self.coordinate_format % (p.coords_decimals, y_toolchange),
z_toolchange=self.coordinate_format % (p.coords_decimals, z_toolchange), z_toolchange=self.coordinate_format % (p.coords_decimals, z_toolchange),
@ -102,6 +103,7 @@ T{tool}
M6 M6
(MSG, Change to Tool with Nozzle Dia = {toolC}) (MSG, Change to Tool with Nozzle Dia = {toolC})
M0 M0
G00 Z{z_toolchange}
""".format(z_toolchange=self.coordinate_format % (p.coords_decimals, z_toolchange), """.format(z_toolchange=self.coordinate_format % (p.coords_decimals, z_toolchange),
tool=int(int(p.tool)), tool=int(int(p.tool)),
toolC=toolC_formatted) toolC=toolC_formatted)

View File

@ -55,9 +55,9 @@ class Repetier(FlatCAMPostProc):
gcode += ';Steps per circle: ' + str(p['steps_per_circle']) + '\n' gcode += ';Steps per circle: ' + str(p['steps_per_circle']) + '\n'
if str(p['options']['type']) == 'Excellon' or str(p['options']['type']) == 'Excellon Geometry': if str(p['options']['type']) == 'Excellon' or str(p['options']['type']) == 'Excellon Geometry':
gcode += ';Postprocessor Excellon: ' + str(p['pp_excellon_name']) + '\n' gcode += ';Preprocessor Excellon: ' + str(p['pp_excellon_name']) + '\n'
else: else:
gcode += ';Postprocessor Geometry: ' + str(p['pp_geometry_name']) + '\n' + '\n' gcode += ';Preprocessor Geometry: ' + str(p['pp_geometry_name']) + '\n' + '\n'
gcode += ';X range: ' + '{: >9s}'.format(xmin) + ' ... ' + '{: >9s}'.format(xmax) + ' ' + units + '\n' gcode += ';X range: ' + '{: >9s}'.format(xmin) + ' ... ' + '{: >9s}'.format(xmax) + ' ' + units + '\n'
gcode += ';Y range: ' + '{: >9s}'.format(ymin) + ' ... ' + '{: >9s}'.format(ymax) + ' ' + units + '\n\n' gcode += ';Y range: ' + '{: >9s}'.format(ymin) + ' ... ' + '{: >9s}'.format(ymax) + ' ' + units + '\n\n'
@ -109,6 +109,7 @@ G0 Z{z_toolchange}
G0 X{x_toolchange} Y{y_toolchange} G0 X{x_toolchange} Y{y_toolchange}
M84 M84
@pause Change to Tool Dia = {toolC}, Total drills for tool T{tool} = {t_drills} @pause Change to Tool Dia = {toolC}, Total drills for tool T{tool} = {t_drills}
G0 Z{z_toolchange}
""".format(x_toolchange=self.coordinate_format % (p.coords_decimals, x_toolchange), """.format(x_toolchange=self.coordinate_format % (p.coords_decimals, x_toolchange),
y_toolchange=self.coordinate_format % (p.coords_decimals, y_toolchange), y_toolchange=self.coordinate_format % (p.coords_decimals, y_toolchange),
z_toolchange=self.coordinate_format % (p.coords_decimals, z_toolchange), z_toolchange=self.coordinate_format % (p.coords_decimals, z_toolchange),
@ -120,6 +121,7 @@ M84
G0 Z{z_toolchange} G0 Z{z_toolchange}
M84 M84
@pause Change to Tool Dia = {toolC}, Total drills for tool T{tool} = {t_drills} @pause Change to Tool Dia = {toolC}, Total drills for tool T{tool} = {t_drills}
G0 Z{z_toolchange}
""".format(z_toolchange=self.coordinate_format % (p.coords_decimals, z_toolchange), """.format(z_toolchange=self.coordinate_format % (p.coords_decimals, z_toolchange),
tool=int(p.tool), tool=int(p.tool),
t_drills=no_drills, t_drills=no_drills,
@ -137,6 +139,7 @@ G0 Z{z_toolchange}
G0 X{x_toolchange} Y{y_toolchange} G0 X{x_toolchange} Y{y_toolchange}
M84 M84
@pause Change to tool T{tool} with Tool Dia = {toolC} @pause Change to tool T{tool} with Tool Dia = {toolC}
G0 Z{z_toolchange}
""".format(x_toolchange=self.coordinate_format % (p.coords_decimals, x_toolchange), """.format(x_toolchange=self.coordinate_format % (p.coords_decimals, x_toolchange),
y_toolchange=self.coordinate_format % (p.coords_decimals, y_toolchange), y_toolchange=self.coordinate_format % (p.coords_decimals, y_toolchange),
z_toolchange=self.coordinate_format % (p.coords_decimals, z_toolchange), z_toolchange=self.coordinate_format % (p.coords_decimals, z_toolchange),
@ -147,6 +150,7 @@ M84
G0 Z{z_toolchange} G0 Z{z_toolchange}
M84 M84
@pause Change to tool T{tool} with Tool Dia = {toolC} @pause Change to tool T{tool} with Tool Dia = {toolC}
G0 Z{z_toolchange}
""".format(z_toolchange=self.coordinate_format%(p.coords_decimals, z_toolchange), """.format(z_toolchange=self.coordinate_format%(p.coords_decimals, z_toolchange),
tool=int(p.tool), tool=int(p.tool),
toolC=toolC_formatted) toolC=toolC_formatted)

View File

@ -9,7 +9,7 @@
from FlatCAMPostProc import * from FlatCAMPostProc import *
# for Roland Postprocessors it is mandatory for the postprocessor name (python file and class name, both of them must be # for Roland Preprocessors it is mandatory for the preprocessor name (python file and class name, both of them must be
# the same) to contain the following keyword, case-sensitive: 'Roland' without the quotes. # the same) to contain the following keyword, case-sensitive: 'Roland' without the quotes.
class Roland_MDX_20(FlatCAMPostProc): class Roland_MDX_20(FlatCAMPostProc):

View File

@ -54,9 +54,9 @@ class Toolchange_Custom(FlatCAMPostProc):
gcode += '(Steps per circle: ' + str(p['steps_per_circle']) + ')\n' gcode += '(Steps per circle: ' + str(p['steps_per_circle']) + ')\n'
if str(p['options']['type']) == 'Excellon' or str(p['options']['type']) == 'Excellon Geometry': if str(p['options']['type']) == 'Excellon' or str(p['options']['type']) == 'Excellon Geometry':
gcode += '(Postprocessor Excellon: ' + str(p['pp_excellon_name']) + ')\n' gcode += '(Preprocessor Excellon: ' + str(p['pp_excellon_name']) + ')\n'
else: else:
gcode += '(Postprocessor Geometry: ' + str(p['pp_geometry_name']) + ')\n' + '\n' gcode += '(Preprocessor Geometry: ' + str(p['pp_geometry_name']) + ')\n' + '\n'
gcode += '(X range: ' + '{: >9s}'.format(xmin) + ' ... ' + '{: >9s}'.format(xmax) + ' ' + units + ')\n' gcode += '(X range: ' + '{: >9s}'.format(xmin) + ' ... ' + '{: >9s}'.format(xmax) + ' ' + units + ')\n'
gcode += '(Y range: ' + '{: >9s}'.format(ymin) + ' ... ' + '{: >9s}'.format(ymax) + ' ' + units + ')\n\n' gcode += '(Y range: ' + '{: >9s}'.format(ymin) + ' ... ' + '{: >9s}'.format(ymax) + ' ' + units + ')\n\n'

View File

@ -56,9 +56,9 @@ class Toolchange_Probe_MACH3(FlatCAMPostProc):
gcode += '(Steps per circle: ' + str(p['steps_per_circle']) + ')\n' gcode += '(Steps per circle: ' + str(p['steps_per_circle']) + ')\n'
if str(p['options']['type']) == 'Excellon' or str(p['options']['type']) == 'Excellon Geometry': if str(p['options']['type']) == 'Excellon' or str(p['options']['type']) == 'Excellon Geometry':
gcode += '(Postprocessor Excellon: ' + str(p['pp_excellon_name']) + ')\n' gcode += '(Preprocessor Excellon: ' + str(p['pp_excellon_name']) + ')\n'
else: else:
gcode += '(Postprocessor Geometry: ' + str(p['pp_geometry_name']) + ')\n' + '\n' gcode += '(Preprocessor Geometry: ' + str(p['pp_geometry_name']) + ')\n' + '\n'
gcode += '(X range: ' + '{: >9s}'.format(xmin) + ' ... ' + '{: >9s}'.format(xmax) + ' ' + units + ')\n' gcode += '(X range: ' + '{: >9s}'.format(xmin) + ' ... ' + '{: >9s}'.format(xmax) + ' ' + units + ')\n'
gcode += '(Y range: ' + '{: >9s}'.format(ymin) + ' ... ' + '{: >9s}'.format(ymax) + ' ' + units + ')\n\n' gcode += '(Y range: ' + '{: >9s}'.format(ymin) + ' ... ' + '{: >9s}'.format(ymax) + ' ' + units + ')\n\n'

View File

@ -52,9 +52,9 @@ class Toolchange_manual(FlatCAMPostProc):
gcode += '(Steps per circle: ' + str(p['steps_per_circle']) + ')\n' gcode += '(Steps per circle: ' + str(p['steps_per_circle']) + ')\n'
if str(p['options']['type']) == 'Excellon' or str(p['options']['type']) == 'Excellon Geometry': if str(p['options']['type']) == 'Excellon' or str(p['options']['type']) == 'Excellon Geometry':
gcode += '(Postprocessor Excellon: ' + str(p['pp_excellon_name']) + ')\n' + '\n' gcode += '(Preprocessor Excellon: ' + str(p['pp_excellon_name']) + ')\n' + '\n'
else: else:
gcode += '(Postprocessor Geometry: ' + str(p['pp_geometry_name']) + ')\n' + '\n' gcode += '(Preprocessor Geometry: ' + str(p['pp_geometry_name']) + ')\n' + '\n'
gcode += '(X range: ' + '{: >9s}'.format(xmin) + ' ... ' + '{: >9s}'.format(xmax) + ' ' + units + ')\n' gcode += '(X range: ' + '{: >9s}'.format(xmin) + ' ... ' + '{: >9s}'.format(xmax) + ' ' + units + ')\n'
gcode += '(Y range: ' + '{: >9s}'.format(ymin) + ' ... ' + '{: >9s}'.format(ymax) + ' ' + units + ')\n\n' gcode += '(Y range: ' + '{: >9s}'.format(ymin) + ' ... ' + '{: >9s}'.format(ymax) + ' ' + units + ')\n\n'

View File

@ -54,9 +54,9 @@ class default(FlatCAMPostProc):
gcode += '(Steps per circle: ' + str(p['steps_per_circle']) + ')\n' gcode += '(Steps per circle: ' + str(p['steps_per_circle']) + ')\n'
if str(p['options']['type']) == 'Excellon' or str(p['options']['type']) == 'Excellon Geometry': if str(p['options']['type']) == 'Excellon' or str(p['options']['type']) == 'Excellon Geometry':
gcode += '(Postprocessor Excellon: ' + str(p['pp_excellon_name']) + ')\n' + '\n' gcode += '(Preprocessor Excellon: ' + str(p['pp_excellon_name']) + ')\n' + '\n'
else: else:
gcode += '(Postprocessor Geometry: ' + str(p['pp_geometry_name']) + ')\n' + '\n' gcode += '(Preprocessor Geometry: ' + str(p['pp_geometry_name']) + ')\n' + '\n'
gcode += '(X range: ' + '{: >9s}'.format(xmin) + ' ... ' + '{: >9s}'.format(xmax) + ' ' + units + ')\n' gcode += '(X range: ' + '{: >9s}'.format(xmin) + ' ... ' + '{: >9s}'.format(xmax) + ' ' + units + ')\n'
gcode += '(Y range: ' + '{: >9s}'.format(ymin) + ' ... ' + '{: >9s}'.format(ymax) + ' ' + units + ')\n\n' gcode += '(Y range: ' + '{: >9s}'.format(ymin) + ' ... ' + '{: >9s}'.format(ymax) + ' ' + units + ')\n\n'
@ -112,6 +112,7 @@ G00 X{x_toolchange} Y{y_toolchange}
M6 M6
(MSG, Change to Tool Dia = {toolC} ||| Total drills for tool T{tool} = {t_drills}) (MSG, Change to Tool Dia = {toolC} ||| Total drills for tool T{tool} = {t_drills})
M0 M0
G00 Z{z_toolchange}
""".format(x_toolchange=self.coordinate_format % (p.coords_decimals, x_toolchange), """.format(x_toolchange=self.coordinate_format % (p.coords_decimals, x_toolchange),
y_toolchange=self.coordinate_format % (p.coords_decimals, y_toolchange), y_toolchange=self.coordinate_format % (p.coords_decimals, y_toolchange),
z_toolchange=self.coordinate_format % (p.coords_decimals, z_toolchange), z_toolchange=self.coordinate_format % (p.coords_decimals, z_toolchange),
@ -125,10 +126,13 @@ G00 Z{z_toolchange}
T{tool} T{tool}
M6 M6
(MSG, Change to Tool Dia = {toolC} ||| Total drills for tool T{tool} = {t_drills}) (MSG, Change to Tool Dia = {toolC} ||| Total drills for tool T{tool} = {t_drills})
M0""".format(z_toolchange=self.coordinate_format % (p.coords_decimals, z_toolchange), M0
tool=int(p.tool), G00 Z{z_toolchange}
t_drills=no_drills, """.format(z_toolchange=self.coordinate_format % (p.coords_decimals, z_toolchange),
toolC=toolC_formatted) tool=int(p.tool),
t_drills=no_drills,
toolC=toolC_formatted)
if f_plunge is True: if f_plunge is True:
gcode += '\nG00 Z%.*f' % (p.coords_decimals, p.z_move) gcode += '\nG00 Z%.*f' % (p.coords_decimals, p.z_move)
return gcode return gcode
@ -142,11 +146,14 @@ G00 X{x_toolchange} Y{y_toolchange}
T{tool} T{tool}
M6 M6
(MSG, Change to Tool Dia = {toolC}) (MSG, Change to Tool Dia = {toolC})
M0""".format(x_toolchange=self.coordinate_format % (p.coords_decimals, x_toolchange), M0
y_toolchange=self.coordinate_format % (p.coords_decimals, y_toolchange), G00 Z{z_toolchange}
z_toolchange=self.coordinate_format % (p.coords_decimals, z_toolchange), """.format(x_toolchange=self.coordinate_format % (p.coords_decimals, x_toolchange),
tool=int(p.tool), y_toolchange=self.coordinate_format % (p.coords_decimals, y_toolchange),
toolC=toolC_formatted) z_toolchange=self.coordinate_format % (p.coords_decimals, z_toolchange),
tool=int(p.tool),
toolC=toolC_formatted)
else: else:
gcode = """ gcode = """
M5 M5
@ -154,9 +161,11 @@ G00 Z{z_toolchange}
T{tool} T{tool}
M6 M6
(MSG, Change to Tool Dia = {toolC}) (MSG, Change to Tool Dia = {toolC})
M0""".format(z_toolchange=self.coordinate_format%(p.coords_decimals, z_toolchange), M0
tool=int(p.tool), G00 Z{z_toolchange}
toolC=toolC_formatted) """.format(z_toolchange=self.coordinate_format%(p.coords_decimals, z_toolchange),
tool=int(p.tool),
toolC=toolC_formatted)
if f_plunge is True: if f_plunge is True:
gcode += '\nG00 Z%.*f' % (p.coords_decimals, p.z_move) gcode += '\nG00 Z%.*f' % (p.coords_decimals, p.z_move)

View File

@ -52,9 +52,9 @@ class grbl_11(FlatCAMPostProc):
gcode += '(Steps per circle: ' + str(p['steps_per_circle']) + ')\n' gcode += '(Steps per circle: ' + str(p['steps_per_circle']) + ')\n'
if str(p['options']['type']) == 'Excellon' or str(p['options']['type']) == 'Excellon Geometry': if str(p['options']['type']) == 'Excellon' or str(p['options']['type']) == 'Excellon Geometry':
gcode += '(Postprocessor Excellon: ' + str(p['pp_excellon_name']) + ')\n' gcode += '(Preprocessor Excellon: ' + str(p['pp_excellon_name']) + ')\n'
else: else:
gcode += '(Postprocessor Geometry: ' + str(p['pp_geometry_name']) + ')\n' + '\n' gcode += '(Preprocessor Geometry: ' + str(p['pp_geometry_name']) + ')\n' + '\n'
gcode += '(X range: ' + '{: >9s}'.format(xmin) + ' ... ' + '{: >9s}'.format(xmax) + ' ' + units + ')\n' gcode += '(X range: ' + '{: >9s}'.format(xmin) + ' ... ' + '{: >9s}'.format(xmax) + ' ' + units + ')\n'
gcode += '(Y range: ' + '{: >9s}'.format(ymin) + ' ... ' + '{: >9s}'.format(ymax) + ' ' + units + ')\n\n' gcode += '(Y range: ' + '{: >9s}'.format(ymin) + ' ... ' + '{: >9s}'.format(ymax) + ' ' + units + ')\n\n'
@ -110,12 +110,14 @@ G00 X{x_toolchange} Y{y_toolchange}
T{tool} T{tool}
M6 M6
(MSG, Change to Tool Dia = {toolC} ||| Total drills for tool T{tool} = {t_drills}) (MSG, Change to Tool Dia = {toolC} ||| Total drills for tool T{tool} = {t_drills})
M0""".format(x_toolchange=self.coordinate_format % (p.coords_decimals, x_toolchange), M0
y_toolchange=self.coordinate_format % (p.coords_decimals, y_toolchange), G00 Z{z_toolchange}
z_toolchange=self.coordinate_format % (p.coords_decimals, z_toolchange), """.format(x_toolchange=self.coordinate_format % (p.coords_decimals, x_toolchange),
tool=int(p.tool), y_toolchange=self.coordinate_format % (p.coords_decimals, y_toolchange),
t_drills=no_drills, z_toolchange=self.coordinate_format % (p.coords_decimals, z_toolchange),
toolC=toolC_formatted) tool=int(p.tool),
t_drills=no_drills,
toolC=toolC_formatted)
else: else:
gcode = """ gcode = """
M5 M5
@ -123,10 +125,12 @@ G00 Z{z_toolchange}
T{tool} T{tool}
M6 M6
(MSG, Change to Tool Dia = {toolC} ||| Total drills for tool T{tool} = {t_drills}) (MSG, Change to Tool Dia = {toolC} ||| Total drills for tool T{tool} = {t_drills})
M0""".format(z_toolchange=self.coordinate_format % (p.coords_decimals, z_toolchange), M0
tool=int(p.tool), G00 Z{z_toolchange}
t_drills=no_drills, """.format(z_toolchange=self.coordinate_format % (p.coords_decimals, z_toolchange),
toolC=toolC_formatted) tool=int(p.tool),
t_drills=no_drills,
toolC=toolC_formatted)
if f_plunge is True: if f_plunge is True:
gcode += '\nG00 Z%.*f' % (p.coords_decimals, p.z_move) gcode += '\nG00 Z%.*f' % (p.coords_decimals, p.z_move)
@ -141,11 +145,13 @@ G00 X{x_toolchange} Y{y_toolchange}
T{tool} T{tool}
M6 M6
(MSG, Change to Tool Dia = {toolC}) (MSG, Change to Tool Dia = {toolC})
M0""".format(x_toolchange=self.coordinate_format % (p.coords_decimals, x_toolchange), M0
y_toolchange=self.coordinate_format % (p.coords_decimals, y_toolchange), G00 Z{z_toolchange}
z_toolchange=self.coordinate_format % (p.coords_decimals, z_toolchange), """.format(x_toolchange=self.coordinate_format % (p.coords_decimals, x_toolchange),
tool=int(p.tool), y_toolchange=self.coordinate_format % (p.coords_decimals, y_toolchange),
toolC=toolC_formatted) z_toolchange=self.coordinate_format % (p.coords_decimals, z_toolchange),
tool=int(p.tool),
toolC=toolC_formatted)
else: else:
gcode = """ gcode = """
M5 M5
@ -153,9 +159,11 @@ G00 Z{z_toolchange}
T{tool} T{tool}
M6 M6
(MSG, Change to Tool Dia = {toolC}) (MSG, Change to Tool Dia = {toolC})
M0""".format(z_toolchange=self.coordinate_format%(p.coords_decimals, z_toolchange), M0
tool=int(p.tool), G00 Z{z_toolchange}
toolC=toolC_formatted) """.format(z_toolchange=self.coordinate_format%(p.coords_decimals, z_toolchange),
tool=int(p.tool),
toolC=toolC_formatted)
if f_plunge is True: if f_plunge is True:
gcode += '\nG00 Z%.*f' % (p.coords_decimals, p.z_move) gcode += '\nG00 Z%.*f' % (p.coords_decimals, p.z_move)

View File

@ -32,9 +32,9 @@ class grbl_laser(FlatCAMPostProc):
gcode += '(Steps per circle: ' + str(p['steps_per_circle']) + ')\n' gcode += '(Steps per circle: ' + str(p['steps_per_circle']) + ')\n'
if str(p['options']['type']) == 'Excellon' or str(p['options']['type']) == 'Excellon Geometry': if str(p['options']['type']) == 'Excellon' or str(p['options']['type']) == 'Excellon Geometry':
gcode += '(Postprocessor Excellon: ' + str(p['pp_excellon_name']) + ')\n' gcode += '(Preprocessor Excellon: ' + str(p['pp_excellon_name']) + ')\n'
else: else:
gcode += '(Postprocessor Geometry: ' + str(p['pp_geometry_name']) + ')\n' gcode += '(Preprocessor Geometry: ' + str(p['pp_geometry_name']) + ')\n'
gcode += ('G20' if p.units.upper() == 'IN' else 'G21') + "\n" + '\n' gcode += ('G20' if p.units.upper() == 'IN' else 'G21') + "\n" + '\n'
gcode += '(X range: ' + '{: >9s}'.format(xmin) + ' ... ' + '{: >9s}'.format(xmax) + ' ' + units + ')\n' gcode += '(X range: ' + '{: >9s}'.format(xmin) + ' ... ' + '{: >9s}'.format(xmax) + ' ' + units + ')\n'

View File

@ -9,7 +9,7 @@
from FlatCAMPostProc import * from FlatCAMPostProc import *
# for Roland Postprocessors it is mandatory for the postprocessor name (python file and class name, both of them must be # for Roland Preprocessors it is mandatory for the preprocessor name (python file and class name, both of them must be
# the same) to contain the following keyword, case-sensitive: 'Roland' without the quotes. # the same) to contain the following keyword, case-sensitive: 'Roland' without the quotes.
class hpgl(FlatCAMPostProc): class hpgl(FlatCAMPostProc):

View File

@ -52,9 +52,9 @@ class line_xyz(FlatCAMPostProc):
gcode += '(Steps per circle: ' + str(p['steps_per_circle']) + ')\n' gcode += '(Steps per circle: ' + str(p['steps_per_circle']) + ')\n'
if str(p['options']['type']) == 'Excellon' or str(p['options']['type']) == 'Excellon Geometry': if str(p['options']['type']) == 'Excellon' or str(p['options']['type']) == 'Excellon Geometry':
gcode += '(Postprocessor Excellon: ' + str(p['pp_excellon_name']) + ')\n' gcode += '(Preprocessor Excellon: ' + str(p['pp_excellon_name']) + ')\n'
else: else:
gcode += '(Postprocessor Geometry: ' + str(p['pp_geometry_name']) + ')\n' + '\n' gcode += '(Preprocessor Geometry: ' + str(p['pp_geometry_name']) + ')\n' + '\n'
gcode += '(X range: ' + '{: >9s}'.format(xmin) + ' ... ' + '{: >9s}'.format(xmax) + ' ' + units + ')\n' gcode += '(X range: ' + '{: >9s}'.format(xmin) + ' ... ' + '{: >9s}'.format(xmax) + ' ' + units + ')\n'
gcode += '(Y range: ' + '{: >9s}'.format(ymin) + ' ... ' + '{: >9s}'.format(ymax) + ' ' + units + ')\n\n' gcode += '(Y range: ' + '{: >9s}'.format(ymin) + ' ... ' + '{: >9s}'.format(ymax) + ' ' + units + ')\n\n'

View File

@ -55,9 +55,9 @@ class marlin(FlatCAMPostProc):
gcode += ';Steps per circle: ' + str(p['steps_per_circle']) + '\n' gcode += ';Steps per circle: ' + str(p['steps_per_circle']) + '\n'
if str(p['options']['type']) == 'Excellon' or str(p['options']['type']) == 'Excellon Geometry': if str(p['options']['type']) == 'Excellon' or str(p['options']['type']) == 'Excellon Geometry':
gcode += ';Postprocessor Excellon: ' + str(p['pp_excellon_name']) + '\n' gcode += ';Preprocessor Excellon: ' + str(p['pp_excellon_name']) + '\n'
else: else:
gcode += ';Postprocessor Geometry: ' + str(p['pp_geometry_name']) + '\n' + '\n' gcode += ';Preprocessor Geometry: ' + str(p['pp_geometry_name']) + '\n' + '\n'
gcode += ';X range: ' + '{: >9s}'.format(xmin) + ' ... ' + '{: >9s}'.format(xmax) + ' ' + units + '\n' gcode += ';X range: ' + '{: >9s}'.format(xmin) + ' ... ' + '{: >9s}'.format(xmax) + ' ' + units + '\n'
gcode += ';Y range: ' + '{: >9s}'.format(ymin) + ' ... ' + '{: >9s}'.format(ymax) + ' ' + units + '\n\n' gcode += ';Y range: ' + '{: >9s}'.format(ymin) + ' ... ' + '{: >9s}'.format(ymax) + ' ' + units + '\n\n'
@ -111,12 +111,14 @@ G0 X{x_toolchange} Y{y_toolchange}
T{tool} T{tool}
M6 M6
;MSG, Change to Tool Dia = {toolC}, Total drills for tool T{tool} = {t_drills} ;MSG, Change to Tool Dia = {toolC}, Total drills for tool T{tool} = {t_drills}
M0""".format(x_toolchange=self.coordinate_format % (p.coords_decimals, x_toolchange), M0
y_toolchange=self.coordinate_format % (p.coords_decimals, y_toolchange), G0 Z{z_toolchange}
z_toolchange=self.coordinate_format % (p.coords_decimals, z_toolchange), """.format(x_toolchange=self.coordinate_format % (p.coords_decimals, x_toolchange),
tool=int(p.tool), y_toolchange=self.coordinate_format % (p.coords_decimals, y_toolchange),
t_drills=no_drills, z_toolchange=self.coordinate_format % (p.coords_decimals, z_toolchange),
toolC=toolC_formatted) tool=int(p.tool),
t_drills=no_drills,
toolC=toolC_formatted)
else: else:
gcode = """ gcode = """
M5 M5
@ -124,10 +126,12 @@ G0 Z{z_toolchange}
T{tool} T{tool}
M6 M6
;MSG, Change to Tool Dia = {toolC}, Total drills for tool T{tool} = {t_drills} ;MSG, Change to Tool Dia = {toolC}, Total drills for tool T{tool} = {t_drills}
M0""".format(z_toolchange=self.coordinate_format % (p.coords_decimals, z_toolchange), M0
tool=int(p.tool), G0 Z{z_toolchange}
t_drills=no_drills, """.format(z_toolchange=self.coordinate_format % (p.coords_decimals, z_toolchange),
toolC=toolC_formatted) tool=int(p.tool),
t_drills=no_drills,
toolC=toolC_formatted)
if f_plunge is True: if f_plunge is True:
gcode += '\nG0 Z%.*f' % (p.coords_decimals, p.z_move) gcode += '\nG0 Z%.*f' % (p.coords_decimals, p.z_move)
@ -142,11 +146,13 @@ G0 X{x_toolchange} Y{y_toolchange}
T{tool} T{tool}
M6 M6
;MSG, Change to Tool Dia = {toolC} ;MSG, Change to Tool Dia = {toolC}
M0""".format(x_toolchange=self.coordinate_format % (p.coords_decimals, x_toolchange), M0
y_toolchange=self.coordinate_format % (p.coords_decimals, y_toolchange), G0 Z{z_toolchange}
z_toolchange=self.coordinate_format % (p.coords_decimals, z_toolchange), """.format(x_toolchange=self.coordinate_format % (p.coords_decimals, x_toolchange),
tool=int(p.tool), y_toolchange=self.coordinate_format % (p.coords_decimals, y_toolchange),
toolC=toolC_formatted) z_toolchange=self.coordinate_format % (p.coords_decimals, z_toolchange),
tool=int(p.tool),
toolC=toolC_formatted)
else: else:
gcode = """ gcode = """
M5 M5
@ -154,9 +160,11 @@ G0 Z{z_toolchange}
T{tool} T{tool}
M6 M6
;MSG, Change to Tool Dia = {toolC} ;MSG, Change to Tool Dia = {toolC}
M0""".format(z_toolchange=self.coordinate_format%(p.coords_decimals, z_toolchange), M0
tool=int(p.tool), G0 Z{z_toolchange}
toolC=toolC_formatted) """.format(z_toolchange=self.coordinate_format%(p.coords_decimals, z_toolchange),
tool=int(p.tool),
toolC=toolC_formatted)
if f_plunge is True: if f_plunge is True:
gcode += '\nG0 Z%.*f' % (p.coords_decimals, p.z_move) gcode += '\nG0 Z%.*f' % (p.coords_decimals, p.z_move)

View File

@ -75,7 +75,7 @@ class TclCommandCncjob(TclCommandSignaled):
('dwell', 'True or False; use (or not) the dwell'), ('dwell', 'True or False; use (or not) the dwell'),
('dwelltime', 'Time to pause to allow the spindle to reach the full speed'), ('dwelltime', 'Time to pause to allow the spindle to reach the full speed'),
('outname', 'Name of the resulting Geometry object.'), ('outname', 'Name of the resulting Geometry object.'),
('pp', 'Name of the Geometry postprocessor. No quotes, case sensitive'), ('pp', 'Name of the Geometry preprocessor. No quotes, case sensitive'),
('muted', 'It will not put errors in the Shell.') ('muted', 'It will not put errors in the Shell.')
]), ]),
'examples': ['cncjob geo_name -dia 0.5 -z_cut -1.7 -z_move 2 -feedrate 120 -pp default'] 'examples': ['cncjob geo_name -dia 0.5 -z_cut -1.7 -z_move 2 -feedrate 120 -pp default']

View File

@ -60,7 +60,7 @@ class TclCommandDrillcncjob(TclCommandSignaled):
('endz', 'Z distance at job end (example: 30.0).'), ('endz', 'Z distance at job end (example: 30.0).'),
('dwell', 'True or False; use (or not) the dwell'), ('dwell', 'True or False; use (or not) the dwell'),
('dwelltime', 'Time to pause to allow the spindle to reach the full speed'), ('dwelltime', 'Time to pause to allow the spindle to reach the full speed'),
('pp', 'This is the Excellon postprocessor name: case_sensitive, no_quotes'), ('pp', 'This is the Excellon preprocessor name: case_sensitive, no_quotes'),
('outname', 'Name of the resulting Geometry object.'), ('outname', 'Name of the resulting Geometry object.'),
('opt_type', 'Name of move optimization type. B by default for Basic OR-Tools, M for Metaheuristic OR-Tools' ('opt_type', 'Name of move optimization type. B by default for Basic OR-Tools, M for Metaheuristic OR-Tools'
'T from Travelling Salesman Algorithm. B and M works only for 64bit version of FlatCAM and ' 'T from Travelling Salesman Algorithm. B and M works only for 64bit version of FlatCAM and '