- 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 FlatCAMCommon import LoudDict, BookmarkManager, ToolsDB
from FlatCAMPostProc import load_postprocessors
from FlatCAMPostProc import load_preprocessors
from flatcamEditors.FlatCAMGeoEditor import FlatCAMGeoEditor
from flatcamEditors.FlatCAMExcEditor import FlatCAMExcEditor
@ -318,13 +318,13 @@ class App(QtCore.QObject):
if not os.path.exists(self.data_path):
os.makedirs(self.data_path)
App.log.debug('Created data folder: ' + self.data_path)
os.makedirs(os.path.join(self.data_path, 'postprocessors'))
App.log.debug('Created data postprocessors folder: ' + os.path.join(self.data_path, 'postprocessors'))
os.makedirs(os.path.join(self.data_path, 'preprocessors'))
App.log.debug('Created data preprocessors folder: ' + os.path.join(self.data_path, 'preprocessors'))
self.postprocessorpaths = os.path.join(self.data_path, 'postprocessors')
if not os.path.exists(self.postprocessorpaths):
os.makedirs(self.postprocessorpaths)
App.log.debug('Created postprocessors folder: ' + self.postprocessorpaths)
self.preprocessorpaths = os.path.join(self.data_path, 'preprocessors')
if not os.path.exists(self.preprocessorpaths):
os.makedirs(self.preprocessorpaths)
App.log.debug('Created preprocessors folder: ' + self.preprocessorpaths)
# create tools_db.FlatConfig file if there is none
try:
@ -1501,33 +1501,33 @@ class App(QtCore.QObject):
# ########################## LOAD POSTPROCESSORS ##############################
# #############################################################################
# a dictionary that have as keys the name of the postprocessor files and the value is the class from
# the postprocessor file
self.postprocessors = load_postprocessors(self)
# a dictionary that have as keys the name of the preprocessor files and the value is the class from
# the preprocessor file
self.preprocessors = load_preprocessors(self)
# make sure that always the 'default' postprocessor is the first item in the dictionary
if 'default' in self.postprocessors.keys():
# make sure that always the 'default' preprocessor is the first item in the dictionary
if 'default' in self.preprocessors.keys():
new_ppp_dict = dict()
# add the 'default' name first in the dict after removing from the postprocessor's dictionary
default_pp = self.postprocessors.pop('default')
# add the 'default' name first in the dict after removing from the preprocessor's dictionary
default_pp = self.preprocessors.pop('default')
new_ppp_dict['default'] = default_pp
# 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
# 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()):
# 'Paste' postprocessors are to be used only in the Solder Paste Dispensing Tool
for name in list(self.preprocessors.keys()):
# 'Paste' preprocessors are to be used only in the Solder Paste Dispensing Tool
if name.partition('_')[0] == 'Paste':
self.ui.tools_defaults_form.tools_solderpaste_group.pp_combo.addItem(name)
continue
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':
continue

View File

@ -528,7 +528,7 @@ class ToolsDB(QtWidgets.QWidget):
_("Spindle Speed"),
_("Dwell"),
_("Dwelltime"),
_("Postprocessor"),
_("Preprocessor"),
_("ExtraCut"),
_("Toolchange"),
_("Toolchange XY"),
@ -610,7 +610,7 @@ class ToolsDB(QtWidgets.QWidget):
_("Dwell Time.\n"
"A delay used to allow the motor spindle reach it's set speed."))
self.table_widget.horizontalHeaderItem(19).setToolTip(
_("Postprocessor.\n"
_("Preprocessor.\n"
"A selection of files that will alter the generated G-code\n"
"to fit for a number of use cases."))
self.table_widget.horizontalHeaderItem(20).setToolTip(
@ -623,7 +623,7 @@ class ToolsDB(QtWidgets.QWidget):
_("Toolchange.\n"
"It will create a toolchange event.\n"
"The kind of toolchange is determined by\n"
"the postprocessor file."))
"the preprocessor file."))
self.table_widget.horizontalHeaderItem(22).setToolTip(
_("Toolchange XY.\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)
pp_item = FCComboBox()
for item in self.app.postprocessors:
for item in self.app.preprocessors:
pp_item.addItem(item)
pp_item.set_value(data['ppname_g'])
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()
elif column_header_text == 'Dwelltime':
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()
elif column_header_text == 'ExtraCut':
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
})
for name in list(self.app.postprocessors.keys()):
# the HPGL postprocessor is only for Geometry not for Excellon job therefore don't add it
for name in list(self.app.preprocessors.keys()):
# the HPGL preprocessor is only for Geometry not for Excellon job therefore don't add it
if name == 'hpgl':
continue
self.ui.pp_excellon_name_cb.addItem(name)
@ -2592,7 +2592,7 @@ class FlatCAMExcellon(FlatCAMObj, Excellon):
# Fill form fields
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
# self.ui.pp_excellon_name_cb combobox
self.on_pp_changed()
@ -3659,8 +3659,8 @@ class FlatCAMGeometry(FlatCAMObj, Geometry):
self.units = self.app.defaults['units'].upper()
self.units_found = self.app.defaults['units']
# populate postprocessor names in the combobox
for name in list(self.app.postprocessors.keys()):
# populate preprocessor names in the combobox
for name in list(self.app.preprocessors.keys()):
self.ui.pp_geometry_name_cb.addItem(name)
self.form_fields.update({
@ -3690,7 +3690,7 @@ class FlatCAMGeometry(FlatCAMObj, Geometry):
# Fill form fields only on object create
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
# self.ui.pp_geometry_name_cb combobox
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
(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
: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 outname: Name of the new object
:param spindlespeed: Spindle speed (RPM)
:param pp Name of the postprocessor
:param pp Name of the preprocessor
:return: None
"""
@ -6382,7 +6382,7 @@ class FlatCAMCNCjob(FlatCAMObj, CNCjob):
except AttributeError:
pass
# detect if using Roland postprocessor
# detect if using Roland preprocessor
try:
for key in self.cnc_tools:
if self.cnc_tools[key]['data']['ppname_g'] == 'Roland_MDX_20':
@ -6400,7 +6400,7 @@ class FlatCAMCNCjob(FlatCAMObj, CNCjob):
except Exception as e:
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:
gcode = self.gcode_header()
@ -6488,7 +6488,7 @@ class FlatCAMCNCjob(FlatCAMObj, CNCjob):
if self.ui.toolchange_cb.get_value():
self.ui.toolchange_cb.set_value(False)
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:
try:
for key in self.cnc_tools:
@ -6498,11 +6498,11 @@ class FlatCAMCNCjob(FlatCAMObj, CNCjob):
if self.ui.toolchange_cb.get_value():
self.ui.toolchange_cb.set_value(False)
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'"))
except KeyError:
self.app.inform.emit('[ERROR] %s' %
_("There is no postprocessor file."))
_("There is no preprocessor file."))
def get_gcode(self, preamble='', postamble=''):
# 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
import math
# module-root dictionary of postprocessors
# module-root dictionary of preprocessors
import FlatCAMApp
postprocessors = {}
preprocessors = {}
class ABCPostProcRegister(ABCMeta):
# handles postprocessors registration on instantiation
# handles preprocessors registration on instantiation
def __new__(cls, clsname, bases, attrs):
newclass = super(ABCPostProcRegister, cls).__new__(cls, clsname, bases, attrs)
if object not in bases:
if newclass.__name__ in postprocessors:
FlatCAMApp.App.log.warning('Postprocessor %s has been overriden' % newclass.__name__)
postprocessors[newclass.__name__] = newclass() # here is your register function
if newclass.__name__ in preprocessors:
FlatCAMApp.App.log.warning('Preprocessor %s has been overriden' % newclass.__name__)
preprocessors[newclass.__name__] = newclass() # here is your register function
return newclass
@ -144,14 +144,14 @@ class FlatCAMPostProc_Tools(object, metaclass=ABCPostProcRegister):
pass
def load_postprocessors(app):
postprocessors_path_search = [os.path.join(app.data_path, 'postprocessors', '*.py'),
os.path.join('postprocessors', '*.py')]
def load_preprocessors(app):
preprocessors_path_search = [os.path.join(app.data_path, 'preprocessors', '*.py'),
os.path.join('preprocessors', '*.py')]
import glob
for path_search in postprocessors_path_search:
for path_search in preprocessors_path_search:
for file in glob.glob(path_search):
try:
SourceFileLoader('FlatCAMPostProcessor', file).load_module()
except Exception as 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 Properties Tool added new information's for the tools in the CNCjob 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

View File

@ -2187,10 +2187,10 @@ class CNCjob(Geometry):
self.gcode_parsed = None
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 = self.app.postprocessors[self.pp_excellon_name]
self.pp_excellon = self.app.preprocessors[self.pp_excellon_name]
self.pp_solderpaste_name = None
@ -2275,7 +2275,7 @@ class CNCjob(Geometry):
returnvalue = fun(attributes)
return returnvalue
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 ''
def parse_custom_toolchange_code(self, data):
@ -2394,7 +2394,7 @@ class CNCjob(Geometry):
self.startz = startz
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
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..."))
# Points (Group by tool)
points = {}
points = dict()
for drill in exobj.drills:
if self.app.abort_flag:
# graceful abort requested by the user
@ -2463,7 +2463,7 @@ class CNCjob(Geometry):
# log.debug("Found %d drills." % len(points))
self.gcode = []
self.gcode = list()
self.f_plunge = self.app.defaults["excellon_f_plunge"]
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
# 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
# Marlin postprocessor and derivatives.
# Marlin preprocessor and derivatives.
self.routing_time = (measured_down_distance + measured_up_to_zero_distance) / self.feedrate
lift_time = measured_lift_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
# it servers in the postprocessor file
# it servers in the preprocessor file
self.tool = tool_no
try:
@ -3127,15 +3127,15 @@ class CNCjob(Geometry):
if not append:
self.gcode = ""
# tell postprocessor the number of tool (for toolchange)
# tell preprocessor the number of tool (for toolchange)
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'
self.postdata['toolC'] = self.tooldia
# 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
self.gcode = self.doformat(p.start_code)
@ -3471,15 +3471,15 @@ class CNCjob(Geometry):
if not append:
self.gcode = ""
# tell postprocessor the number of tool (for toolchange)
# tell preprocessor the number of tool (for toolchange)
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'
self.postdata['toolC'] = self.tooldia
# 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
self.oldx = 0.0
@ -3632,7 +3632,7 @@ class CNCjob(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'
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'] \
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.
flat_geometry = self.flatten(kwargs['solid_geometry'], pathonly=True)
@ -3960,12 +3960,12 @@ class CNCjob(Geometry):
# lifted or lowered.
if self.toolchange_xy_type == "excellon":
if self.app.defaults["excellon_toolchangexy"] == '':
pos_xy = [0, 0]
pos_xy = (0, 0)
else:
pos_xy = [float(eval(a)) for a in self.app.defaults["excellon_toolchangexy"].split(",")]
else:
if self.app.defaults["geometry_toolchangexy"] == '':
pos_xy = [0, 0]
pos_xy = (0, 0)
else:
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])
# postprocessor selection
pp_excellon_label = QtWidgets.QLabel('%s:' % _("Postprocessor"))
# preprocessor selection
pp_excellon_label = QtWidgets.QLabel('%s:' % _("Preprocessor"))
pp_excellon_label.setToolTip(
_("The postprocessor JSON file that dictates\n"
_("The preprocessor JSON file that dictates\n"
"Gcode output.")
)
self.pp_excellon_name_cb = FCComboBox()
@ -1508,7 +1508,7 @@ class GeometryObjectUI(ObjectUI):
spdlabel.setToolTip(
_(
"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."
)
)
@ -1538,10 +1538,10 @@ class GeometryObjectUI(ObjectUI):
self.grid3.addWidget(self.dwell_cb, 15, 0)
self.grid3.addWidget(self.dwelltime_entry, 15, 1)
# postprocessor selection
# preprocessor selection
pp_label = QtWidgets.QLabel('%s:' % _("PostProcessor"))
pp_label.setToolTip(
_("The Postprocessor file that dictates\n"
_("The Preprocessor file that dictates\n"
"the Machine Code (like GCode, RML, HPGL) output.")
)
self.pp_geometry_name_cb = FCComboBox()
@ -1837,7 +1837,7 @@ class CNCObjectUI(ObjectUI):
"This will constitute a Custom Toolchange GCode,\n"
"or a Toolchange Macro.\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"
"having as template the 'Toolchange Custom' posprocessor file."
)
@ -1852,7 +1852,7 @@ class CNCObjectUI(ObjectUI):
"This will constitute a Custom Toolchange GCode, "
"or a Toolchange Macro. "
"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."
)
)

View File

@ -2451,10 +2451,10 @@ class ExcellonOptPrefGroupUI(OptionsGroupUI):
self.ois_dwell_exc = OptionalInputSection(self.dwell_cb, [self.dwelltime_entry])
# postprocessor selection
pp_excellon_label = QtWidgets.QLabel('%s:' % _("Postprocessor"))
# preprocessor selection
pp_excellon_label = QtWidgets.QLabel('%s:' % _("Preprocessor"))
pp_excellon_label.setToolTip(
_("The postprocessor JSON file that dictates\n"
_("The preprocessor JSON file that dictates\n"
"Gcode output.")
)
grid2.addWidget(pp_excellon_label, 9, 0)
@ -3332,7 +3332,7 @@ class GeometryOptPrefGroupUI(OptionsGroupUI):
spdlabel.setToolTip(
_(
"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."
)
)
@ -3362,10 +3362,10 @@ class GeometryOptPrefGroupUI(OptionsGroupUI):
self.ois_dwell = OptionalInputSection(self.dwell_cb, [self.dwelltime_entry])
# postprocessor selection
pp_label = QtWidgets.QLabel('%s:' % _("Postprocessor"))
# preprocessor selection
pp_label = QtWidgets.QLabel('%s:' % _("Preprocessor"))
pp_label.setToolTip(
_("The Postprocessor file that dictates\n"
_("The Preprocessor file that dictates\n"
"the Machine Code (like GCode, RML, HPGL) output.")
)
grid1.addWidget(pp_label, 12, 0)
@ -3810,7 +3810,7 @@ class CNCJobAdvOptPrefGroupUI(OptionsGroupUI):
"This will constitute a Custom Toolchange GCode,\n"
"or a Toolchange Macro.\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"
"having as template the 'Toolchange Custom' posprocessor file."
)
@ -3833,7 +3833,7 @@ class CNCJobAdvOptPrefGroupUI(OptionsGroupUI):
"This will constitute a Custom Toolchange GCode, "
"or a Toolchange Macro. "
"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."
)
)
@ -5547,7 +5547,7 @@ class ToolsSolderpastePrefGroupUI(OptionsGroupUI):
grid0.addWidget(self.dwellrev_label, 14, 0)
grid0.addWidget(self.dwellrev_entry, 14, 1)
# Postprocessors
# Preprocessors
pp_label = QtWidgets.QLabel('%s:' % _('PostProcessor'))
pp_label.setToolTip(
_("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)
# Postprocessors
# Preprocessors
pp_label = QtWidgets.QLabel('%s:' % _('PostProcessor'))
pp_label.setToolTip(
_("Files that control the GCode generation.")
@ -623,8 +623,8 @@ class SolderPaste(FlatCAMTool):
else:
self.decimals = 2
for name in list(self.app.postprocessors.keys()):
# populate only with postprocessor files that start with 'Paste_'
for name in list(self.app.preprocessors.keys()):
# populate only with preprocessor files that start with 'Paste_'
if name.partition('_')[0] != 'Paste':
continue
self.pp_combo.addItem(name)

View File

@ -1759,11 +1759,11 @@ msgid "Saved to"
msgstr "Gespeichert in"
#: 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'"
#: FlatCAMObj.py:6346
msgid "There is no postprocessor file."
msgid "There is no preprocessor file."
msgstr "Es gibt keine Postprozessor-Datei."
#: 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/PreferencesUI.py:3140
msgid "Postprocessor"
msgid "Preprocessor"
msgstr "Postprozessor"
#: 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."
msgstr "Die Postprozessor-JSON-Datei, die diktiert\n"
"Gcode-Ausgabe."
@ -6880,7 +6880,7 @@ msgstr "Um zu entfernen möglich\n"
#: flatcamGUI/ObjectUI.py:1457 flatcamGUI/PreferencesUI.py:3108
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."
msgstr "Drehzahl der Spindel in U / min (optional).\n"
"Wenn LASER-Postprozessor verwendet wird,\n"
@ -6892,7 +6892,7 @@ msgid "PostProcessor"
msgstr "Postprozessor"
#: 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."
msgstr "Die Postprozessor-Datei, die diktiert\n"
"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"
"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"
"having as template the 'Toolchange Custom' posprocessor file."
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."
#~ msgid ""
#~ "The postprocessor file that dictates\n"
#~ "The preprocessor file that dictates\n"
#~ "Machine Code output."
#~ msgstr ""
#~ "Die Postprozessor-Datei, die diktiert\n"

View File

@ -1854,8 +1854,8 @@ msgstr "Dwelltime"
#: FlatCAMCommon.py:531 flatcamGUI/ObjectUI.py:939
#: flatcamGUI/PreferencesUI.py:2411 flatcamGUI/PreferencesUI.py:3318
msgid "Postprocessor"
msgstr "Postprocessor"
msgid "Preprocessor"
msgstr "Preprocessor"
#: FlatCAMCommon.py:532
msgid "ExtraCut"
@ -2071,11 +2071,11 @@ msgstr ""
#: FlatCAMCommon.py:613
msgid ""
"Postprocessor.\n"
"Preprocessor.\n"
"A selection of files that will alter the generated G-code\n"
"to fit for a number of use cases."
msgstr ""
"Postprocessor.\n"
"Preprocessor.\n"
"A selection of files that will alter the generated G-code\n"
"to fit for a number of use cases."
@ -2098,12 +2098,12 @@ msgid ""
"Toolchange.\n"
"It will create a toolchange event.\n"
"The kind of toolchange is determined by\n"
"the postprocessor file."
"the preprocessor file."
msgstr ""
"Toolchange.\n"
"It will create a toolchange event.\n"
"The kind of toolchange is determined by\n"
"the postprocessor file."
"the preprocessor file."
#: FlatCAMCommon.py:628
msgid ""
@ -2691,13 +2691,13 @@ msgstr "Saved to"
#: FlatCAMObj.py:6506 FlatCAMObj.py:6516
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 ""
"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
msgid "There is no postprocessor file."
msgstr "There is no postprocessor file."
msgid "There is no preprocessor file."
msgstr "There is no preprocessor file."
#: FlatCAMObj.py:6764
msgid "Script Editor"
@ -7732,10 +7732,10 @@ msgstr "Number of time units for spindle to dwell."
#: flatcamGUI/ObjectUI.py:941 flatcamGUI/PreferencesUI.py:2413
msgid ""
"The postprocessor JSON file that dictates\n"
"The preprocessor JSON file that dictates\n"
"Gcode output."
msgstr ""
"The postprocessor JSON file that dictates\n"
"The preprocessor JSON file that dictates\n"
"Gcode output."
#: flatcamGUI/ObjectUI.py:950 flatcamGUI/ObjectUI.py:1554
@ -8155,11 +8155,11 @@ msgstr ""
#: flatcamGUI/ObjectUI.py:1510 flatcamGUI/PreferencesUI.py:3286
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."
msgstr ""
"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."
#: flatcamGUI/ObjectUI.py:1542 flatcamGUI/PreferencesUI.py:5455
@ -8169,10 +8169,10 @@ msgstr "PostProcessor"
#: flatcamGUI/ObjectUI.py:1544 flatcamGUI/PreferencesUI.py:3320
msgid ""
"The Postprocessor file that dictates\n"
"The Preprocessor file that dictates\n"
"the Machine Code (like GCode, RML, HPGL) output."
msgstr ""
"The Postprocessor file that dictates\n"
"The Preprocessor file that dictates\n"
"the Machine Code (like GCode, RML, HPGL) output."
#: flatcamGUI/ObjectUI.py:1588
@ -8387,7 +8387,7 @@ msgid ""
"or a Toolchange Macro.\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"
"having as template the 'Toolchange Custom' posprocessor file."
msgstr ""
@ -8397,7 +8397,7 @@ msgstr ""
"or a Toolchange Macro.\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"
"having as template the 'Toolchange Custom' posprocessor file."
@ -8409,20 +8409,20 @@ msgstr ""
#| "or a Toolchange Macro.\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"
#| "having as template the 'Toolchange Custom' posprocessor file."
msgid ""
"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 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."
msgstr ""
"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 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."
#: 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."
#~ msgid ""
#~ "The postprocessor file that dictates\n"
#~ "The preprocessor file that dictates\n"
#~ "Machine Code output."
#~ msgstr ""
#~ "The postprocessor file that dictates\n"
#~ "The preprocessor file that dictates\n"
#~ "Machine Code output."
#~ msgid "Display Annotation:"

View File

@ -1917,7 +1917,7 @@ msgstr "Habitar"
#: FlatCAMCommon.py:531 flatcamGUI/ObjectUI.py:939
#: flatcamGUI/PreferencesUI.py:2411 flatcamGUI/PreferencesUI.py:3318
msgid "Postprocessor"
msgid "Preprocessor"
msgstr "Postprocesador"
#: FlatCAMCommon.py:532
@ -2096,7 +2096,7 @@ msgstr ""
#: FlatCAMCommon.py:613
msgid ""
"Postprocessor.\n"
"Preprocessor.\n"
"A selection of files that will alter the generated G-code\n"
"to fit for a number of use cases."
msgstr ""
@ -2115,7 +2115,7 @@ msgid ""
"Toolchange.\n"
"It will create a toolchange event.\n"
"The kind of toolchange is determined by\n"
"the postprocessor file."
"the preprocessor file."
msgstr ""
#: FlatCAMCommon.py:628
@ -2737,12 +2737,12 @@ msgstr "Guardado en"
#: FlatCAMObj.py:6506 FlatCAMObj.py:6516
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 ""
"El archivo de postprocesador usado debe tener su nombre: 'toolchange_custom'"
#: FlatCAMObj.py:6520
msgid "There is no postprocessor file."
msgid "There is no preprocessor file."
msgstr "No hay archivo de postprocesador."
#: 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
msgid ""
"The postprocessor JSON file that dictates\n"
"The preprocessor JSON file that dictates\n"
"Gcode output."
msgstr ""
"El archivo JSON del postprocesador que dicta\n"
@ -8282,7 +8282,7 @@ msgstr ""
#: flatcamGUI/ObjectUI.py:1510 flatcamGUI/PreferencesUI.py:3286
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."
msgstr ""
"Velocidad del husillo en RPM (opcional).\n"
@ -8296,7 +8296,7 @@ msgstr "Postprocesador"
#: flatcamGUI/ObjectUI.py:1544 flatcamGUI/PreferencesUI.py:3320
msgid ""
"The Postprocessor file that dictates\n"
"The Preprocessor file that dictates\n"
"the Machine Code (like GCode, RML, HPGL) output."
msgstr ""
"El archivo de postprocesador que dicta\n"
@ -8518,7 +8518,7 @@ msgid ""
"or a Toolchange Macro.\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"
"having as template the 'Toolchange Custom' posprocessor file."
msgstr ""
@ -8541,14 +8541,14 @@ msgstr ""
#| "or a Toolchange Macro.\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"
#| "having as template the 'Toolchange Custom' posprocessor file."
msgid ""
"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 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."
msgstr ""
"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."
#~ msgid ""
#~ "The postprocessor file that dictates\n"
#~ "The preprocessor file that dictates\n"
#~ "Machine Code output."
#~ msgstr ""
#~ "El archivo de postprocesador que dicta.\n"

View File

@ -1966,13 +1966,13 @@ msgstr "Enregistré dans"
#: FlatCAMObj.py:6332 FlatCAMObj.py:6342
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 ""
"Le fichier de post-traitement utilisé doit avoir pour nom: "
"'toolchange_custom'"
#: 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."
#: 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/PreferencesUI.py:3140
msgid "Postprocessor"
msgid "Preprocessor"
msgstr "Post-processeur"
#: flatcamGUI/ObjectUI.py:891 flatcamGUI/PreferencesUI.py:2255
msgid ""
"The postprocessor JSON file that dictates\n"
"The preprocessor JSON file that dictates\n"
"Gcode output."
msgstr ""
"Le fichier JSON post-processeur qui dicte\n"
@ -7532,7 +7532,7 @@ msgstr ""
#: flatcamGUI/ObjectUI.py:1457 flatcamGUI/PreferencesUI.py:3108
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."
msgstr ""
"Vitesse de la broche en tours / minute (facultatif).\n"
@ -7546,7 +7546,7 @@ msgstr "Post-processeur"
#: flatcamGUI/ObjectUI.py:1491 flatcamGUI/PreferencesUI.py:3142
msgid ""
"The Postprocessor file that dictates\n"
"The Preprocessor file that dictates\n"
"the Machine Code (like GCode, RML, HPGL) output."
msgstr ""
"Le fichier post-processeur qui dicte\n"
@ -7742,7 +7742,7 @@ msgid ""
"or a Toolchange Macro.\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"
"having as template the 'Toolchange Custom' posprocessor file."
msgstr ""

View File

@ -1960,12 +1960,12 @@ msgstr "Salvo em"
#: FlatCAMObj.py:6332 FlatCAMObj.py:6342
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 ""
"O arquivo de pós-processamento deve ter em seu nome: 'toolchange_custom'"
#: FlatCAMObj.py:6346
msgid "There is no postprocessor file."
msgid "There is no preprocessor file."
msgstr "Não há arquivo de pós-processamento."
#: 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/PreferencesUI.py:3140
msgid "Postprocessor"
msgid "Preprocessor"
msgstr "Pós-processador"
#: flatcamGUI/ObjectUI.py:891 flatcamGUI/PreferencesUI.py:2255
msgid ""
"The postprocessor JSON file that dictates\n"
"The preprocessor JSON file that dictates\n"
"Gcode output."
msgstr ""
"O arquivo de pós-processamento (JSON) que define\n"
@ -7461,7 +7461,7 @@ msgstr ""
#: flatcamGUI/ObjectUI.py:1457 flatcamGUI/PreferencesUI.py:3108
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."
msgstr ""
"Velocidade do spindle em RPM (opcional).\n"
@ -7475,7 +7475,7 @@ msgstr "Pós-processador"
#: flatcamGUI/ObjectUI.py:1491 flatcamGUI/PreferencesUI.py:3142
msgid ""
"The Postprocessor file that dictates\n"
"The Preprocessor file that dictates\n"
"the Machine Code (like GCode, RML, HPGL) output."
msgstr ""
"Arquivo de Pós-processamento que determina o código\n"
@ -7669,7 +7669,7 @@ msgid ""
"or a Toolchange Macro.\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"
"having as template the 'Toolchange Custom' posprocessor file."
msgstr ""

View File

@ -1817,7 +1817,7 @@ msgstr "Pauza"
#: FlatCAMCommon.py:531 flatcamGUI/ObjectUI.py:915
#: flatcamGUI/PreferencesUI.py:2294 flatcamGUI/PreferencesUI.py:3201
msgid "Postprocessor"
msgid "Preprocessor"
msgstr "Postprocesor"
#: FlatCAMCommon.py:532
@ -1992,7 +1992,7 @@ msgstr "dwelltime = durata de asteptare ca motorul să ajunga la turatia setată
#: FlatCAMCommon.py:613
msgid ""
"Postprocessor.\n"
"Preprocessor.\n"
"A selection of files that will alter the generated G-code\n"
"to fit for a number of use cases."
msgstr ""
@ -2011,7 +2011,7 @@ msgid ""
"Toolchange.\n"
"It will create a toolchange event.\n"
"The kind of toolchange is determined by\n"
"the postprocessor file."
"the preprocessor file."
msgstr ""
#: FlatCAMCommon.py:628
@ -2544,12 +2544,12 @@ msgstr "Salvat in"
#: FlatCAMObj.py:6388 FlatCAMObj.py:6398
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 ""
"Postprocesorul folosit trebuie să aibă in numele sau: 'toolchange_custom'"
#: FlatCAMObj.py:6402
msgid "There is no postprocessor file."
msgid "There is no preprocessor file."
msgstr "Nu exista nici-un fişier postprocesor."
#: 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
msgid ""
"The postprocessor JSON file that dictates\n"
"The preprocessor JSON file that dictates\n"
"Gcode output."
msgstr ""
"Fișierul JSON postprocesor care dictează\n"
@ -8076,7 +8076,7 @@ msgstr ""
#: flatcamGUI/ObjectUI.py:1486 flatcamGUI/PreferencesUI.py:3169
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."
msgstr ""
"Viteza motorului in RPM (optional).\n"
@ -8090,7 +8090,7 @@ msgstr "Postprocesor"
#: flatcamGUI/ObjectUI.py:1520 flatcamGUI/PreferencesUI.py:3203
msgid ""
"The Postprocessor file that dictates\n"
"The Preprocessor file that dictates\n"
"the Machine Code (like GCode, RML, HPGL) output."
msgstr ""
"Fişierul postprocesor care controlează generarea\n"
@ -8312,7 +8312,7 @@ msgid ""
"or a Toolchange Macro.\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"
"having as template the 'Toolchange Custom' posprocessor file."
msgstr ""
@ -8335,14 +8335,14 @@ msgstr ""
#| "or a Toolchange Macro.\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"
#| "having as template the 'Toolchange Custom' posprocessor file."
msgid ""
"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 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."
msgstr ""
"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."
#~ msgid ""
#~ "The postprocessor file that dictates\n"
#~ "The preprocessor file that dictates\n"
#~ "Machine Code output."
#~ msgstr ""
#~ "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
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'"
#: FlatCAMObj.py:6334
msgid "There is no postprocessor file."
msgid "There is no preprocessor file."
msgstr "Это не файл постпроцессора."
#: FlatCAMObj.py:6611
@ -7026,12 +7026,12 @@ msgstr "Количество единиц времени для остановк
#: flatcamGUI/ObjectUI.py:891 flatcamGUI/PreferencesUI.py:2256
#: flatcamGUI/PreferencesUI.py:3143
msgid "Postprocessor"
msgid "Preprocessor"
msgstr "Постпроцессор"
#: flatcamGUI/ObjectUI.py:893 flatcamGUI/PreferencesUI.py:2258
msgid ""
"The postprocessor JSON file that dictates\n"
"The preprocessor JSON file that dictates\n"
"Gcode output."
msgstr ""
"JSON-файл постпроцессора, который влияет\n"
@ -7455,7 +7455,7 @@ msgstr ""
#: flatcamGUI/ObjectUI.py:1459 flatcamGUI/PreferencesUI.py:3111
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."
msgstr ""
"Скорость шпинделя в об/мин (опционально).\n"
@ -7469,7 +7469,7 @@ msgstr "Постпроцессор"
#: flatcamGUI/ObjectUI.py:1493 flatcamGUI/PreferencesUI.py:3145
msgid ""
"The Postprocessor file that dictates\n"
"The Preprocessor file that dictates\n"
"the Machine Code (like GCode, RML, HPGL) output."
msgstr ""
"Файл постпроцессора, который диктует\n"
@ -7665,7 +7665,7 @@ msgid ""
"or a Toolchange Macro.\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"
"having as template the 'Toolchange Custom' posprocessor file."
msgstr ""
@ -16467,7 +16467,7 @@ msgstr "Нет имени геометрии в аргументах. Укажи
#~ msgstr "Многократное использование: Истина или Ложь."
#~ msgid ""
#~ "The postprocessor file that dictates\n"
#~ "The preprocessor file that dictates\n"
#~ "Machine Code output."
#~ msgstr ""
#~ "Файл постпроцессора, который диктует\n"

View File

@ -1646,7 +1646,7 @@ msgstr ""
#: FlatCAMCommon.py:531 flatcamGUI/ObjectUI.py:939 flatcamGUI/PreferencesUI.py:2411
#: flatcamGUI/PreferencesUI.py:3318
msgid "Postprocessor"
msgid "Preprocessor"
msgstr ""
#: FlatCAMCommon.py:532
@ -1803,7 +1803,7 @@ msgstr ""
#: FlatCAMCommon.py:613
msgid ""
"Postprocessor.\n"
"Preprocessor.\n"
"A selection of files that will alter the generated G-code\n"
"to fit for a number of use cases."
msgstr ""
@ -1822,7 +1822,7 @@ msgid ""
"Toolchange.\n"
"It will create a toolchange event.\n"
"The kind of toolchange is determined by\n"
"the postprocessor file."
"the preprocessor file."
msgstr ""
#: FlatCAMCommon.py:628
@ -2325,11 +2325,11 @@ msgid "Saved to"
msgstr ""
#: 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 ""
#: FlatCAMObj.py:6520
msgid "There is no postprocessor file."
msgid "There is no preprocessor file."
msgstr ""
#: FlatCAMObj.py:6764
@ -6764,7 +6764,7 @@ msgstr ""
#: flatcamGUI/ObjectUI.py:941 flatcamGUI/PreferencesUI.py:2413
msgid ""
"The postprocessor JSON file that dictates\n"
"The preprocessor JSON file that dictates\n"
"Gcode output."
msgstr ""
@ -7069,7 +7069,7 @@ msgstr ""
#: flatcamGUI/ObjectUI.py:1510 flatcamGUI/PreferencesUI.py:3286
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."
msgstr ""
@ -7080,7 +7080,7 @@ msgstr ""
#: flatcamGUI/ObjectUI.py:1544 flatcamGUI/PreferencesUI.py:3320
msgid ""
"The Postprocessor file that dictates\n"
"The Preprocessor file that dictates\n"
"the Machine Code (like GCode, RML, HPGL) output."
msgstr ""
@ -7250,7 +7250,7 @@ msgid ""
"or a Toolchange Macro.\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"
"having as template the 'Toolchange Custom' posprocessor file."
msgstr ""
@ -7260,7 +7260,7 @@ msgid ""
"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 "
"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."
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(("locale", "lib/locale"))
include_files.append(("postprocessors", "lib/postprocessors"))
include_files.append(("preprocessors", "lib/preprocessors"))
include_files.append(("share", "lib/share"))
include_files.append(("flatcamGUI/VisPyData", "lib/vispy"))
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'
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:
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 += '(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'
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:
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 += '(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'
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 += '(Y range: ' + '{: >9s}'.format(ymin) + ' ... ' + '{: >9s}'.format(ymax) + ' ' + units + ')\n\n'
@ -89,6 +89,7 @@ T{tool}
M6
(MSG, Change to Tool with Nozzle Dia = {toolC})
M0
G00 Z{z_toolchange}
""".format(x_toolchange=self.coordinate_format % (p.coords_decimals, x_toolchange),
y_toolchange=self.coordinate_format % (p.coords_decimals, y_toolchange),
z_toolchange=self.coordinate_format % (p.coords_decimals, z_toolchange),
@ -102,6 +103,7 @@ T{tool}
M6
(MSG, Change to Tool with Nozzle Dia = {toolC})
M0
G00 Z{z_toolchange}
""".format(z_toolchange=self.coordinate_format % (p.coords_decimals, z_toolchange),
tool=int(int(p.tool)),
toolC=toolC_formatted)

View File

@ -55,9 +55,9 @@ class Repetier(FlatCAMPostProc):
gcode += ';Steps per circle: ' + str(p['steps_per_circle']) + '\n'
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:
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 += ';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}
M84
@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),
y_toolchange=self.coordinate_format % (p.coords_decimals, y_toolchange),
z_toolchange=self.coordinate_format % (p.coords_decimals, z_toolchange),
@ -120,6 +121,7 @@ M84
G0 Z{z_toolchange}
M84
@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),
tool=int(p.tool),
t_drills=no_drills,
@ -137,6 +139,7 @@ G0 Z{z_toolchange}
G0 X{x_toolchange} Y{y_toolchange}
M84
@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),
y_toolchange=self.coordinate_format % (p.coords_decimals, y_toolchange),
z_toolchange=self.coordinate_format % (p.coords_decimals, z_toolchange),
@ -147,6 +150,7 @@ M84
G0 Z{z_toolchange}
M84
@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),
tool=int(p.tool),
toolC=toolC_formatted)

View File

@ -9,7 +9,7 @@
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.
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'
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:
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 += '(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'
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:
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 += '(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'
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:
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 += '(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'
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:
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 += '(Y range: ' + '{: >9s}'.format(ymin) + ' ... ' + '{: >9s}'.format(ymax) + ' ' + units + ')\n\n'
@ -112,6 +112,7 @@ G00 X{x_toolchange} Y{y_toolchange}
M6
(MSG, Change to Tool Dia = {toolC} ||| Total drills for tool T{tool} = {t_drills})
M0
G00 Z{z_toolchange}
""".format(x_toolchange=self.coordinate_format % (p.coords_decimals, x_toolchange),
y_toolchange=self.coordinate_format % (p.coords_decimals, y_toolchange),
z_toolchange=self.coordinate_format % (p.coords_decimals, z_toolchange),
@ -125,10 +126,13 @@ G00 Z{z_toolchange}
T{tool}
M6
(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),
tool=int(p.tool),
t_drills=no_drills,
toolC=toolC_formatted)
M0
G00 Z{z_toolchange}
""".format(z_toolchange=self.coordinate_format % (p.coords_decimals, z_toolchange),
tool=int(p.tool),
t_drills=no_drills,
toolC=toolC_formatted)
if f_plunge is True:
gcode += '\nG00 Z%.*f' % (p.coords_decimals, p.z_move)
return gcode
@ -142,11 +146,14 @@ G00 X{x_toolchange} Y{y_toolchange}
T{tool}
M6
(MSG, Change to Tool Dia = {toolC})
M0""".format(x_toolchange=self.coordinate_format % (p.coords_decimals, x_toolchange),
y_toolchange=self.coordinate_format % (p.coords_decimals, y_toolchange),
z_toolchange=self.coordinate_format % (p.coords_decimals, z_toolchange),
tool=int(p.tool),
toolC=toolC_formatted)
M0
G00 Z{z_toolchange}
""".format(x_toolchange=self.coordinate_format % (p.coords_decimals, x_toolchange),
y_toolchange=self.coordinate_format % (p.coords_decimals, y_toolchange),
z_toolchange=self.coordinate_format % (p.coords_decimals, z_toolchange),
tool=int(p.tool),
toolC=toolC_formatted)
else:
gcode = """
M5
@ -154,9 +161,11 @@ G00 Z{z_toolchange}
T{tool}
M6
(MSG, Change to Tool Dia = {toolC})
M0""".format(z_toolchange=self.coordinate_format%(p.coords_decimals, z_toolchange),
tool=int(p.tool),
toolC=toolC_formatted)
M0
G00 Z{z_toolchange}
""".format(z_toolchange=self.coordinate_format%(p.coords_decimals, z_toolchange),
tool=int(p.tool),
toolC=toolC_formatted)
if f_plunge is True:
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'
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:
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 += '(Y range: ' + '{: >9s}'.format(ymin) + ' ... ' + '{: >9s}'.format(ymax) + ' ' + units + ')\n\n'
@ -110,12 +110,14 @@ G00 X{x_toolchange} Y{y_toolchange}
T{tool}
M6
(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),
y_toolchange=self.coordinate_format % (p.coords_decimals, y_toolchange),
z_toolchange=self.coordinate_format % (p.coords_decimals, z_toolchange),
tool=int(p.tool),
t_drills=no_drills,
toolC=toolC_formatted)
M0
G00 Z{z_toolchange}
""".format(x_toolchange=self.coordinate_format % (p.coords_decimals, x_toolchange),
y_toolchange=self.coordinate_format % (p.coords_decimals, y_toolchange),
z_toolchange=self.coordinate_format % (p.coords_decimals, z_toolchange),
tool=int(p.tool),
t_drills=no_drills,
toolC=toolC_formatted)
else:
gcode = """
M5
@ -123,10 +125,12 @@ G00 Z{z_toolchange}
T{tool}
M6
(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),
tool=int(p.tool),
t_drills=no_drills,
toolC=toolC_formatted)
M0
G00 Z{z_toolchange}
""".format(z_toolchange=self.coordinate_format % (p.coords_decimals, z_toolchange),
tool=int(p.tool),
t_drills=no_drills,
toolC=toolC_formatted)
if f_plunge is True:
gcode += '\nG00 Z%.*f' % (p.coords_decimals, p.z_move)
@ -141,11 +145,13 @@ G00 X{x_toolchange} Y{y_toolchange}
T{tool}
M6
(MSG, Change to Tool Dia = {toolC})
M0""".format(x_toolchange=self.coordinate_format % (p.coords_decimals, x_toolchange),
y_toolchange=self.coordinate_format % (p.coords_decimals, y_toolchange),
z_toolchange=self.coordinate_format % (p.coords_decimals, z_toolchange),
tool=int(p.tool),
toolC=toolC_formatted)
M0
G00 Z{z_toolchange}
""".format(x_toolchange=self.coordinate_format % (p.coords_decimals, x_toolchange),
y_toolchange=self.coordinate_format % (p.coords_decimals, y_toolchange),
z_toolchange=self.coordinate_format % (p.coords_decimals, z_toolchange),
tool=int(p.tool),
toolC=toolC_formatted)
else:
gcode = """
M5
@ -153,9 +159,11 @@ G00 Z{z_toolchange}
T{tool}
M6
(MSG, Change to Tool Dia = {toolC})
M0""".format(z_toolchange=self.coordinate_format%(p.coords_decimals, z_toolchange),
tool=int(p.tool),
toolC=toolC_formatted)
M0
G00 Z{z_toolchange}
""".format(z_toolchange=self.coordinate_format%(p.coords_decimals, z_toolchange),
tool=int(p.tool),
toolC=toolC_formatted)
if f_plunge is True:
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'
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:
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 += '(X range: ' + '{: >9s}'.format(xmin) + ' ... ' + '{: >9s}'.format(xmax) + ' ' + units + ')\n'

View File

@ -9,7 +9,7 @@
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.
class hpgl(FlatCAMPostProc):

View File

@ -52,9 +52,9 @@ class line_xyz(FlatCAMPostProc):
gcode += '(Steps per circle: ' + str(p['steps_per_circle']) + ')\n'
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:
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 += '(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'
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:
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 += ';Y range: ' + '{: >9s}'.format(ymin) + ' ... ' + '{: >9s}'.format(ymax) + ' ' + units + '\n\n'
@ -111,12 +111,14 @@ G0 X{x_toolchange} Y{y_toolchange}
T{tool}
M6
;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),
y_toolchange=self.coordinate_format % (p.coords_decimals, y_toolchange),
z_toolchange=self.coordinate_format % (p.coords_decimals, z_toolchange),
tool=int(p.tool),
t_drills=no_drills,
toolC=toolC_formatted)
M0
G0 Z{z_toolchange}
""".format(x_toolchange=self.coordinate_format % (p.coords_decimals, x_toolchange),
y_toolchange=self.coordinate_format % (p.coords_decimals, y_toolchange),
z_toolchange=self.coordinate_format % (p.coords_decimals, z_toolchange),
tool=int(p.tool),
t_drills=no_drills,
toolC=toolC_formatted)
else:
gcode = """
M5
@ -124,10 +126,12 @@ G0 Z{z_toolchange}
T{tool}
M6
;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),
tool=int(p.tool),
t_drills=no_drills,
toolC=toolC_formatted)
M0
G0 Z{z_toolchange}
""".format(z_toolchange=self.coordinate_format % (p.coords_decimals, z_toolchange),
tool=int(p.tool),
t_drills=no_drills,
toolC=toolC_formatted)
if f_plunge is True:
gcode += '\nG0 Z%.*f' % (p.coords_decimals, p.z_move)
@ -142,11 +146,13 @@ G0 X{x_toolchange} Y{y_toolchange}
T{tool}
M6
;MSG, Change to Tool Dia = {toolC}
M0""".format(x_toolchange=self.coordinate_format % (p.coords_decimals, x_toolchange),
y_toolchange=self.coordinate_format % (p.coords_decimals, y_toolchange),
z_toolchange=self.coordinate_format % (p.coords_decimals, z_toolchange),
tool=int(p.tool),
toolC=toolC_formatted)
M0
G0 Z{z_toolchange}
""".format(x_toolchange=self.coordinate_format % (p.coords_decimals, x_toolchange),
y_toolchange=self.coordinate_format % (p.coords_decimals, y_toolchange),
z_toolchange=self.coordinate_format % (p.coords_decimals, z_toolchange),
tool=int(p.tool),
toolC=toolC_formatted)
else:
gcode = """
M5
@ -154,9 +160,11 @@ G0 Z{z_toolchange}
T{tool}
M6
;MSG, Change to Tool Dia = {toolC}
M0""".format(z_toolchange=self.coordinate_format%(p.coords_decimals, z_toolchange),
tool=int(p.tool),
toolC=toolC_formatted)
M0
G0 Z{z_toolchange}
""".format(z_toolchange=self.coordinate_format%(p.coords_decimals, z_toolchange),
tool=int(p.tool),
toolC=toolC_formatted)
if f_plunge is True:
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'),
('dwelltime', 'Time to pause to allow the spindle to reach the full speed'),
('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.')
]),
'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).'),
('dwell', 'True or False; use (or not) the dwell'),
('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.'),
('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 '