diff --git a/FlatCAMApp.py b/FlatCAMApp.py index dd5773fe..fe43e101 100644 --- a/FlatCAMApp.py +++ b/FlatCAMApp.py @@ -94,8 +94,8 @@ class App(QtCore.QObject): log.addHandler(handler) # Version - version = 8.918 - version_date = "2019/06/11" + version = 8.919 + version_date = "2019/06/23" beta = True # current date now @@ -780,7 +780,7 @@ class App(QtCore.QObject): # Geometry General "geometry_plot": True, "geometry_circle_steps": 128, - "geometry_cnctooldia": 0.016, + "geometry_cnctooldia": "0.016", # Geometry Options "geometry_cutz": -0.002, @@ -2059,9 +2059,9 @@ class App(QtCore.QObject): except Exception as e: log.debug("App.defaults_read_form() --> %s" % str(e)) - def defaults_write_form(self, factor=None): + def defaults_write_form(self, factor=None, fl_units=None): for option in self.defaults: - self.defaults_write_form_field(option, factor=factor) + self.defaults_write_form_field(option, factor=factor, units=fl_units) # try: # self.defaults_form_fields[option].set_value(self.defaults[option]) # except KeyError: @@ -2069,12 +2069,22 @@ class App(QtCore.QObject): # # TODO: Rethink this? # pass - def defaults_write_form_field(self, field, factor=None): + def defaults_write_form_field(self, field, factor=None, units=None): try: if factor is None: - self.defaults_form_fields[field].set_value(self.defaults[field]) + if units is None: + self.defaults_form_fields[field].set_value(self.defaults[field]) + elif units == 'IN' and (field == 'global_gridx' or field == 'global_gridy'): + self.defaults_form_fields[field].set_value(self.defaults[field], decimals=6) + elif units == 'MM' and (field == 'global_gridx' or field == 'global_gridy'): + self.defaults_form_fields[field].set_value(self.defaults[field], decimals=4) else: - self.defaults_form_fields[field].set_value(self.defaults[field] * factor) + if units is None: + self.defaults_form_fields[field].set_value(self.defaults[field] * factor) + elif units == 'IN' and (field == 'global_gridx' or field == 'global_gridy'): + self.defaults_form_fields[field].set_value((self.defaults[field] * factor), decimals=6) + elif units == 'MM' and (field == 'global_gridx' or field == 'global_gridy'): + self.defaults_form_fields[field].set_value((self.defaults[field] * factor), decimals=4) except KeyError: # self.log.debug("defaults_write_form(): No field for: %s" % option) # TODO: Rethink this? @@ -2108,11 +2118,10 @@ class App(QtCore.QObject): self.paste_tool.install(icon=QtGui.QIcon('share/solderpastebis32.png')) self.calculator_tool = ToolCalculator(self) - self.calculator_tool.install(icon=QtGui.QIcon('share/calculator24.png')) + self.calculator_tool.install(icon=QtGui.QIcon('share/calculator24.png'), separator=True) self.sub_tool = ToolSub(self) - self.sub_tool.install(icon=QtGui.QIcon('share/sub32.png'), pos=self.ui.menuedit_convert, - before=self.ui.menuedit_convert_sg2mg) + self.sub_tool.install(icon=QtGui.QIcon('share/sub32.png'), pos=self.ui.menutool, separator=True) self.move_tool = ToolMove(self) self.move_tool.install(icon=QtGui.QIcon('share/move16.png'), pos=self.ui.menuedit, @@ -2245,7 +2254,18 @@ class App(QtCore.QObject): self.inform.emit(_("[WARNING_NOTCL] Simultanoeus editing of tools geometry in a MultiGeo Geometry " "is not possible.\n" "Edit only one geometry at a time.")) - self.geo_editor.edit_fcgeometry(edited_object, multigeo_tool=edited_tools[0]) + + # determine the tool dia of the selected tool + selected_tooldia = float(edited_object.ui.geo_tools_table.item((edited_tools[0] - 1), 1).text()) + + # now find the key in the edited_object.tools that has this tooldia + multi_tool = 1 + for tool in edited_object.tools: + if edited_object.tools[tool]['tooldia'] == selected_tooldia: + multi_tool = tool + break + + self.geo_editor.edit_fcgeometry(edited_object, multigeo_tool=multi_tool) else: self.geo_editor.edit_fcgeometry(edited_object) @@ -3618,9 +3638,10 @@ class App(QtCore.QObject): if self.toggle_units_ignore: return + new_units = self.ui.general_defaults_form.general_app_group.units_radio.get_value().upper() + # If option is the same, then ignore - if self.ui.general_defaults_form.general_app_group.units_radio.get_value().upper() == \ - self.defaults["units"].upper(): + if new_units == self.defaults["units"].upper(): self.log.debug("on_toggle_units(): Same as defaults, so ignoring.") return @@ -3667,21 +3688,60 @@ class App(QtCore.QObject): coords_xy[0] *= sfactor coords_xy[1] *= sfactor self.options['geometry_toolchangexy'] = "%f, %f" % (coords_xy[0], coords_xy[1]) + elif dim == 'geometry_cnctooldia': + tools_diameters = [] + try: + tools_string = self.defaults["geometry_cnctooldia"].split(",") + tools_diameters = [eval(a) for a in tools_string if a != ''] + except Exception as e: + log.debug("App.on_toggle_units().scale_options() --> %s" % str(e)) + + self.options['geometry_cnctooldia'] = '' + for t in range(len(tools_diameters)): + tools_diameters[t] *= sfactor + self.options['geometry_cnctooldia'] += "%f," % tools_diameters[t] elif dim == 'tools_ncctools': - ncctols = [float(eval(a)) for a in self.defaults["tools_ncctools"].split(",")] - ncctols[0] *= sfactor - ncctols[1] *= sfactor - self.options['tools_ncctools'] = "%f, %f" % (ncctols[0], ncctols[1]) + ncctools = [] + try: + tools_string = self.defaults["tools_ncctools"].split(",") + ncctools = [eval(a) for a in tools_string if a != ''] + except Exception as e: + log.debug("App.on_toggle_units().scale_options() --> %s" % str(e)) + + self.options['tools_ncctools'] = '' + for t in range(len(ncctools)): + ncctools[t] *= sfactor + self.options['tools_ncctools'] += "%f," % ncctools[t] elif dim == 'tools_solderpaste_tools': - sp_tools = [float(eval(a)) for a in self.defaults["tools_solderpaste_tools"].split(",")] - sp_tools[0] *= sfactor - sp_tools[1] *= sfactor - self.options['tools_solderpaste_tools'] = "%f, %f" % (sp_tools[0], sp_tools[1]) + sptools = [] + try: + tools_string = self.defaults["tools_solderpaste_tools"].split(",") + sptools = [eval(a) for a in tools_string if a != ''] + except Exception as e: + log.debug("App.on_toggle_units().scale_options() --> %s" % str(e)) + + self.options['tools_solderpaste_tools'] = "" + for t in range(len(sptools)): + sptools[t] *= sfactor + self.options['tools_solderpaste_tools'] += "%f," % sptools[t] elif dim == 'tools_solderpaste_xy_toolchange': sp_coords = [float(eval(a)) for a in self.defaults["tools_solderpaste_xy_toolchange"].split(",")] sp_coords[0] *= sfactor sp_coords[1] *= sfactor self.options['tools_solderpaste_xy_toolchange'] = "%f, %f" % (sp_coords[0], sp_coords[1]) + elif dim == 'global_gridx' or dim == 'global_gridy': + if new_units == 'IN': + try: + val = float(self.defaults[dim]) * sfactor + self.options[dim] = float('%.6f' % val) + except Exception as e: + log.debug('App.on_toggle_units().scale_defaults() --> %s' % str(e)) + else: + try: + val = float(self.defaults[dim]) * sfactor + self.options[dim] = float('%.4f' % val) + except Exception as e: + log.debug('App.on_toggle_units().scale_defaults() --> %s' % str(e)) else: try: self.options[dim] = float(self.options[dim]) * sfactor @@ -3700,21 +3760,60 @@ class App(QtCore.QObject): coords_xy[0] *= sfactor coords_xy[1] *= sfactor self.defaults['geometry_toolchangexy'] = "%.4f, %.4f" % (coords_xy[0], coords_xy[1]) + elif dim == 'geometry_cnctooldia': + tools_diameters = [] + try: + tools_string = self.defaults["geometry_cnctooldia"].split(",") + tools_diameters = [eval(a) for a in tools_string if a != ''] + except Exception as e: + log.debug("App.on_toggle_units().scale_options() --> %s" % str(e)) + + self.defaults['geometry_cnctooldia'] = '' + for t in range(len(tools_diameters)): + tools_diameters[t] *= sfactor + self.defaults['geometry_cnctooldia'] += "%.4f," % tools_diameters[t] elif dim == 'tools_ncctools': - ncctols = [float(eval(a)) for a in self.defaults["tools_ncctools"].split(",")] - ncctols[0] *= sfactor - ncctols[1] *= sfactor - self.defaults['tools_ncctools'] = "%.4f, %.4f" % (ncctols[0], ncctols[1]) + ncctools = [] + try: + tools_string = self.defaults["tools_ncctools"].split(",") + ncctools = [eval(a) for a in tools_string if a != ''] + except Exception as e: + log.debug("App.on_toggle_units().scale_options() --> %s" % str(e)) + + self.defaults['tools_ncctools'] = '' + for t in range(len(ncctools)): + ncctools[t] *= sfactor + self.defaults['tools_ncctools'] += "%.4f," % ncctools[t] elif dim == 'tools_solderpaste_tools': - sp_tools = [float(eval(a)) for a in self.defaults["tools_solderpaste_tools"].split(",")] - sp_tools[0] *= sfactor - sp_tools[1] *= sfactor - self.defaults['tools_solderpaste_tools'] = "%.4f, %.4f" % (sp_tools[0], sp_tools[1]) + sptools = [] + try: + tools_string = self.defaults["tools_solderpaste_tools"].split(",") + sptools = [eval(a) for a in tools_string if a != ''] + except Exception as e: + log.debug("App.on_toggle_units().scale_options() --> %s" % str(e)) + + self.defaults['tools_solderpaste_tools'] = "" + for t in range(len(sptools)): + sptools[t] *= sfactor + self.defaults['tools_solderpaste_tools'] += "%.4f," % sptools[t] elif dim == 'tools_solderpaste_xy_toolchange': sp_coords = [float(eval(a)) for a in self.defaults["tools_solderpaste_xy_toolchange"].split(",")] sp_coords[0] *= sfactor sp_coords[1] *= sfactor self.defaults['tools_solderpaste_xy_toolchange'] = "%.4f, %.4f" % (sp_coords[0], sp_coords[1]) + elif dim == 'global_gridx' or dim == 'global_gridy': + if new_units == 'IN': + try: + val = float(self.defaults[dim]) * sfactor + self.defaults[dim] = float('%.6f' % val) + except Exception as e: + log.debug('App.on_toggle_units().scale_defaults() --> %s' % str(e)) + else: + try: + val = float(self.defaults[dim]) * sfactor + self.defaults[dim] = float('%.4f' % val) + except Exception as e: + log.debug('App.on_toggle_units().scale_defaults() --> %s' % str(e)) else: try: self.defaults[dim] = float(self.defaults[dim]) * sfactor @@ -3723,7 +3822,7 @@ class App(QtCore.QObject): # The scaling factor depending on choice of units. factor = 1/25.4 - if self.ui.general_defaults_form.general_app_group.units_radio.get_value().upper() == 'MM': + if new_units == 'MM': factor = 25.4 # Changing project units. Warn user. @@ -3748,7 +3847,7 @@ class App(QtCore.QObject): self.defaults_read_form() scale_defaults(factor) - self.defaults_write_form() + self.defaults_write_form(fl_units=new_units) self.should_we_save = True @@ -3757,12 +3856,15 @@ class App(QtCore.QObject): self.plotcanvas.draw_workspace() # adjust the grid values on the main toolbar - self.ui.grid_gap_x_entry.set_value(float(self.ui.grid_gap_x_entry.get_value()) * factor) - self.ui.grid_gap_y_entry.set_value(float(self.ui.grid_gap_y_entry.get_value()) * factor) + dec = 6 if new_units == 'IN'else 4 + val_x = float(self.ui.grid_gap_x_entry.get_value()) * factor + self.ui.grid_gap_x_entry.set_value(val_x, decimals=dec) + if not self.ui.grid_gap_link_cb.isChecked(): + val_y = float(self.ui.grid_gap_y_entry.get_value()) * factor + self.ui.grid_gap_y_entry.set_value(val_y, decimals=dec) - units = self.ui.general_defaults_form.general_app_group.units_radio.get_value().upper() for obj in self.collection.get_list(): - obj.convert_units(units) + obj.convert_units(new_units) # make that the properties stored in the object are also updated self.object_changed.emit(obj) @@ -3775,9 +3877,9 @@ class App(QtCore.QObject): current.to_form() self.plot_all() - self.inform.emit(_("[success] Converted units to %s") % units) + self.inform.emit(_("[success] Converted units to %s") % new_units) # self.ui.units_label.setText("[" + self.options["units"] + "]") - self.set_screen_units(units) + self.set_screen_units(new_units) else: # Undo toggling self.toggle_units_ignore = True @@ -5249,6 +5351,7 @@ class App(QtCore.QObject): if index.isValid(): if index.internalPointer().parent_item != self.collection.root_item: self.ui.notebook.setCurrentWidget(self.ui.selected_tab) + self.collection.on_item_activated(index) def grid_status(self): if self.ui.grid_snap_btn.isChecked(): @@ -5423,6 +5526,7 @@ class App(QtCore.QObject): self.click_noproject = True self.clipboard.setText(self.defaults["global_point_clipboard_format"] % (self.pos[0], self.pos[1])) + self.inform.emit(_("[success] Coordinates copied to clipboard.")) return self.on_mouse_move_over_plot(event, origin_click=True) @@ -5579,6 +5683,10 @@ class App(QtCore.QObject): if self.command_active is None: self.select_objects(key='CTRL') self.delete_hover_shape() + elif modifiers == QtCore.Qt.ShiftModifier: + # if SHIFT was pressed and LMB is clicked then we have a coordinates copy to clipboard + # therefore things should stay as they are + pass else: # If there is no active command (self.command_active is None) then we check if we clicked # on a object by checking the bounding limits against mouse click position @@ -8044,7 +8152,7 @@ class App(QtCore.QObject): This behavior works only within main thread, errors with promissed tasks can be catched and detected only with log. - TODO: this problem have to be addressed somehow, maybe rewrite promissing to be blocking somehow for + TODO: this problem have to be addressed somehow, maybe rewrite promissing to be blocking somehow for TCL shell. Kamil's comment: I will rewrite existing TCL commands from time to time to follow this rules. @@ -8252,7 +8360,10 @@ The normal flow when working in FlatCAM is the following:

""" FlatCAMObj.app = self ObjectCollection.app = self - + Gerber.app = self + Excellon.app = self + Geometry.app = self + CNCjob.app = self FCProcess.app = self FCProcessContainer.app = self diff --git a/FlatCAMObj.py b/FlatCAMObj.py index 4b3a278e..ba8e7600 100644 --- a/FlatCAMObj.py +++ b/FlatCAMObj.py @@ -68,6 +68,9 @@ class FlatCAMObj(QtCore.QObject): self.form_fields = {} + # store here the default data for Geometry Data + self.default_data = {} + self.kind = None # Override with proper name # self.shapes = ShapeCollection(parent=self.app.plotcanvas.vispy_canvas.view.scene) @@ -137,7 +140,7 @@ class FlatCAMObj(QtCore.QObject): if key == 'plot': self.visible = self.options['plot'] - # self.optionChanged.emit(key) + self.optionChanged.emit(key) def set_ui(self, ui): self.ui = ui @@ -199,6 +202,8 @@ class FlatCAMObj(QtCore.QObject): log.debug("on_name_activate() --> Could not remove the old object name from auto-completer model list") self.options["name"] = self.ui.name_entry.get_value() + self.default_data["name"] = self.ui.name_entry.get_value() + self.app.collection.update_view() self.app.inform.emit(_("[success] Name changed from {old} to {new}").format(old=old_name, new=new_name)) def on_offset_button_click(self): @@ -338,7 +343,7 @@ class FlatCAMObj(QtCore.QObject): return self.shapes.visible @visible.setter - def visible(self, value): + def visible(self, value, threaded=False): log.debug("FlatCAMObj.visible()") def worker_task(app_obj): @@ -350,7 +355,10 @@ class FlatCAMObj(QtCore.QObject): except Exception as e: pass - self.app.worker_task.emit({'fcn': worker_task, 'params': [self]}) + if threaded is False: + worker_task(self) + else: + self.app.worker_task.emit({'fcn': worker_task, 'params': [self]}) @property def drawing_tolerance(self): @@ -810,7 +818,7 @@ class FlatCAMGerber(FlatCAMObj, Gerber): def follow_init(follow_obj, app): # Propagate options - follow_obj.options["cnctooldia"] = float(self.options["isotooldia"]) + follow_obj.options["cnctooldia"] = str(self.options["isotooldia"]) follow_obj.solid_geometry = self.follow_geometry # TODO: Do something if this is None. Offer changing name? @@ -832,7 +840,6 @@ class FlatCAMGerber(FlatCAMObj, Gerber): :return: None """ - if dia is None: dia = float(self.options["isotooldia"]) if passes is None: @@ -893,7 +900,7 @@ class FlatCAMGerber(FlatCAMObj, Gerber): # TODO: This is ugly. Create way to pass data into init function. def iso_init(geo_obj, app_obj): # Propagate options - geo_obj.options["cnctooldia"] = float(self.options["isotooldia"]) + geo_obj.options["cnctooldia"] = str(self.options["isotooldia"]) geo_obj.solid_geometry = [] for i in range(passes): iso_offset = (((2 * i + 1) / 2.0) * dia) - (i * overlap * dia) @@ -950,7 +957,7 @@ class FlatCAMGerber(FlatCAMObj, Gerber): # TODO: This is ugly. Create way to pass data into init function. def iso_init(geo_obj, app_obj): # Propagate options - geo_obj.options["cnctooldia"] = float(self.options["isotooldia"]) + geo_obj.options["cnctooldia"] = str(self.options["isotooldia"]) # if milling type is climb then the move is counter-clockwise around features if milling_type == 'cl': @@ -1638,7 +1645,7 @@ class FlatCAMExcellon(FlatCAMObj, Excellon): exc.app.log.warning("Failed to copy option.", option) for drill in exc.drills: - exc_tool_dia = float('%.3f' % exc.tools[drill['tool']]['C']) + exc_tool_dia = float('%.4f' % exc.tools[drill['tool']]['C']) if exc_tool_dia not in custom_dict_drills: custom_dict_drills[exc_tool_dia] = [drill['point']] @@ -1646,7 +1653,7 @@ class FlatCAMExcellon(FlatCAMObj, Excellon): custom_dict_drills[exc_tool_dia].append(drill['point']) for slot in exc.slots: - exc_tool_dia = float('%.3f' % exc.tools[slot['tool']]['C']) + exc_tool_dia = float('%.4f' % exc.tools[slot['tool']]['C']) if exc_tool_dia not in custom_dict_slots: custom_dict_slots[exc_tool_dia] = [[slot['start'], slot['stop']]] @@ -1739,7 +1746,7 @@ class FlatCAMExcellon(FlatCAMObj, Excellon): temp_tools[tool_name_temp] = spec_temp for drill in exc_final.drills: - exc_tool_dia = float('%.3f' % exc_final.tools[drill['tool']]['C']) + exc_tool_dia = float('%.4f' % exc_final.tools[drill['tool']]['C']) if exc_tool_dia == ordered_dia: temp_drills.append( { @@ -1749,7 +1756,7 @@ class FlatCAMExcellon(FlatCAMObj, Excellon): ) for slot in exc_final.slots: - slot_tool_dia = float('%.3f' % exc_final.tools[slot['tool']]['C']) + slot_tool_dia = float('%.4f' % exc_final.tools[slot['tool']]['C']) if slot_tool_dia == ordered_dia: temp_slots.append( { @@ -1825,7 +1832,7 @@ class FlatCAMExcellon(FlatCAMObj, Excellon): if self.units == 'MM': dia = QtWidgets.QTableWidgetItem('%.2f' % (self.tools[tool_no]['C'])) else: - dia = QtWidgets.QTableWidgetItem('%.3f' % (self.tools[tool_no]['C'])) + dia = QtWidgets.QTableWidgetItem('%.4f' % (self.tools[tool_no]['C'])) dia.setFlags(QtCore.Qt.ItemIsEnabled) @@ -1843,7 +1850,7 @@ class FlatCAMExcellon(FlatCAMObj, Excellon): if self.units == 'MM': t_offset = self.tool_offset[float('%.2f' % float(self.tools[tool_no]['C']))] else: - t_offset = self.tool_offset[float('%.3f' % float(self.tools[tool_no]['C']))] + t_offset = self.tool_offset[float('%.4f' % float(self.tools[tool_no]['C']))] except KeyError: t_offset = self.app.defaults['excellon_offset'] tool_offset_item = QtWidgets.QTableWidgetItem('%s' % str(t_offset)) @@ -1934,10 +1941,6 @@ class FlatCAMExcellon(FlatCAMObj, Excellon): self.ui.tools_table.setColumnWidth(5, 17) # horizontal_header.setStretchLastSection(True) - - - - # horizontal_header.setColumnWidth(2, QtWidgets.QHeaderView.ResizeToContents) # horizontal_header.setStretchLastSection(True) @@ -2022,7 +2025,7 @@ class FlatCAMExcellon(FlatCAMObj, Excellon): if self.units == 'MM': dia = float('%.2f' % float(value['C'])) else: - dia = float('%.3f' % float(value['C'])) + dia = float('%.4f' % float(value['C'])) self.tool_offset[dia] = t_default_offset # Show/Hide Advanced Options @@ -2086,7 +2089,7 @@ class FlatCAMExcellon(FlatCAMObj, Excellon): if self.units == 'MM': dia = float('%.2f' % float(self.ui.tools_table.item(row_of_item_changed, 1).text())) else: - dia = float('%.3f' % float(self.ui.tools_table.item(row_of_item_changed, 1).text())) + dia = float('%.4f' % float(self.ui.tools_table.item(row_of_item_changed, 1).text())) current_table_offset_edited = None if self.ui.tools_table.currentItem() is not None: @@ -2349,6 +2352,7 @@ class FlatCAMExcellon(FlatCAMObj, Excellon): geo_obj.options['Tools_in_use'] = tool_table_items geo_obj.options['type'] = 'Excellon Geometry' + geo_obj.options["cnctooldia"] = str(tooldia) geo_obj.solid_geometry = [] @@ -2443,6 +2447,7 @@ class FlatCAMExcellon(FlatCAMObj, Excellon): geo_obj.options['Tools_in_use'] = tool_table_items geo_obj.options['type'] = 'Excellon Geometry' + geo_obj.options["cnctooldia"] = str(tooldia) geo_obj.solid_geometry = [] @@ -2953,6 +2958,14 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): if "cnctooldia" not in self.options: self.options["cnctooldia"] = self.app.defaults["geometry_cnctooldia"] + # try: + # self.options["cnctooldia"] = [ + # float(eval(dia)) for dia in str(self.app.defaults["geometry_cnctooldia"]).split(",") + # ] + # except Exception as e: + # log.error("At least one tool diameter needed. Verify in Edit -> Preferences -> Geometry General -> " + # "Tool dia. %s" % str(e)) + # return self.options["startz"] = self.app.defaults["geometry_startz"] @@ -2998,9 +3011,6 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): self.old_pp_state = '' self.old_toolchangeg_state = '' - # store here the default data for Geometry Data - self.default_data = {} - # Attributes to be included in serialization # Always append to it because it carries contents # from predecessors. @@ -3009,7 +3019,6 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): def build_ui(self): self.ui_disconnect() - FlatCAMObj.build_ui(self) offset = 0 @@ -3147,6 +3156,10 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): self.set_tool_offset_visibility(selected_row) self.ui_connect() + # HACK: for whatever reasons the name in Selected tab is reverted to the original one after a successful rename + # done in the collection view but only for Geometry objects. Perhaps some references remains. Should be fixed. + self.ui.name_entry.set_value(self.options['name']) + def set_ui(self, ui): FlatCAMObj.set_ui(self, ui) @@ -3221,21 +3234,33 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): for def_key in self.default_data: for opt_key, opt_val in self.options.items(): if def_key == opt_key: - self.default_data[def_key] = opt_val + self.default_data[def_key] = deepcopy(opt_val) + + try: + tools_list = [ + float(eval(dia)) for dia in self.options["cnctooldia"].split(",") + ] + except Exception as e: + log.error("At least one tool diameter needed. Verify in Edit -> Preferences -> Geometry General -> " + "Tool dia. %s" % str(e)) + return self.tooluid += 1 + if not self.tools: - self.tools.update({ - self.tooluid: { - 'tooldia': float(self.options["cnctooldia"]), - 'offset': ('Path'), - 'offset_value': 0.0, - 'type': _('Rough'), - 'tool_type': 'C1', - 'data': self.default_data, - 'solid_geometry': self.solid_geometry - } - }) + for toold in tools_list: + self.tools.update({ + self.tooluid: { + 'tooldia': float(toold), + 'offset': ('Path'), + 'offset_value': 0.0, + 'type': _('Rough'), + 'tool_type': 'C1', + 'data': self.default_data, + 'solid_geometry': self.solid_geometry + } + }) + self.tooluid += 1 else: # if self.tools is not empty then it can safely be assumed that it comes from an opened project. # Because of the serialization the self.tools list on project save, the dict keys (members of self.tools @@ -3321,10 +3346,11 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): return def on_offset_value_edited(self): - ''' - This will save the offset_value into self.tools storage whenever the oofset value is edited + """ + This will save the offset_value into self.tools storage whenever the offset value is edited :return: - ''' + """ + for current_row in self.ui.geo_tools_table.selectedItems(): # sometime the header get selected and it has row number -1 # we don't want to do anything with the header :) @@ -3367,7 +3393,7 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): # works for Entry try: self.ui.grid3.itemAt(i).widget().editingFinished.connect(self.gui_form_to_storage) - except: + except Exception as e3: pass for row in range(self.ui.geo_tools_table.rowCount()): @@ -3405,56 +3431,56 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): isinstance(self.ui.grid3.itemAt(i).widget(), IntEntry) or \ isinstance(self.ui.grid3.itemAt(i).widget(), FCEntry): self.ui.grid3.itemAt(i).widget().editingFinished.disconnect() - except: + except Exception as e: pass try: for row in range(self.ui.geo_tools_table.rowCount()): for col in [2, 3, 4]: self.ui.geo_tools_table.cellWidget(row, col).currentIndexChanged.disconnect() - except: + except Exception as e: pass # I use lambda's because the connected functions have parameters that could be used in certain scenarios try: self.ui.addtool_btn.clicked.disconnect() - except: + except Exception as e: pass try: self.ui.copytool_btn.clicked.disconnect() - except: + except Exception as e: pass try: self.ui.deltool_btn.clicked.disconnect() - except: + except Exception as e: pass try: self.ui.geo_tools_table.currentItemChanged.disconnect() - except: + except Exception as e: pass try: self.ui.geo_tools_table.itemChanged.disconnect() - except: + except Exception as e: pass try: self.ui.tool_offset_entry.editingFinished.disconnect() - except: + except Exception as e: pass for row in range(self.ui.geo_tools_table.rowCount()): try: self.ui.geo_tools_table.cellWidget(row, 6).clicked.disconnect() - except: + except Exception as e: pass try: self.ui.plot_cb.stateChanged.disconnect() - except: + except Exception as e: pass def on_tool_add(self, dia=None): @@ -3475,7 +3501,7 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): tooldia = float(self.ui.addtool_entry.get_value().replace(',', '.')) except ValueError: change_message = True - tooldia = float(self.app.defaults["geometry_cnctooldia"]) + tooldia = self.options["cnctooldia"][0] if tooldia is None: self.build_ui() @@ -3541,6 +3567,8 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): } }) + self.tools[self.tooluid]['data']['name'] = self.options['name'] + self.ui.tool_offset_entry.hide() self.ui.tool_offset_lbl.hide() @@ -3772,7 +3800,11 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): # populate the form with the data from the tool associated with the row parameter try: - tooluid = int(self.ui.geo_tools_table.item(current_row, 5).text()) + item = self.ui.geo_tools_table.item(current_row, 5) + if item is not None: + tooluid = int(item.text()) + else: + return except Exception as e: log.debug("Tool missing. Add a tool in Geo Tool Table. %s" % str(e)) return @@ -3780,8 +3812,12 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): # update the form with the V-Shape fields if V-Shape selected in the geo_tool_table # also modify the Cut Z form entry to reflect the calculated Cut Z from values got from V-Shape Fields try: - tool_type_txt = self.ui.geo_tools_table.cellWidget(current_row, 4).currentText() - self.ui_update_v_shape(tool_type_txt=tool_type_txt) + item = self.ui.geo_tools_table.cellWidget(current_row, 4) + if item is not None: + tool_type_txt = item.currentText() + self.ui_update_v_shape(tool_type_txt=tool_type_txt) + else: + return except Exception as e: log.debug("Tool missing. Add a tool in Geo Tool Table. %s" % str(e)) return @@ -4137,7 +4173,7 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): self.ui.cncfeedrate_rapid_entry.hide() def on_generatecnc_button_click(self, *args): - + log.debug("Generating CNCJob from Geometry ...") self.app.report_usage("geometry_on_generatecnc_button") self.read_form() @@ -5291,6 +5327,7 @@ class FlatCAMCNCjob(FlatCAMObj, CNCjob): else: self.ui.cnc_tools_table.hide() + self.units = self.app.ui.general_defaults_form.general_app_group.units_radio.get_value().upper() offset = 0 tool_idx = 0 @@ -5891,13 +5928,19 @@ class FlatCAMCNCjob(FlatCAMObj, CNCjob): self.shapes.clear(update=True) self.annotation.clear(update=True) + if self.ui.annotation_cb.get_value() and self.ui.plot_cb.get_value(): + self.app.plotcanvas.text_collection.enabled = True + else: + self.app.plotcanvas.text_collection.enabled = False + def on_annotation_change(self): if self.ui.annotation_cb.get_value(): self.app.plotcanvas.text_collection.enabled = True else: self.app.plotcanvas.text_collection.enabled = False - kind = self.ui.cncplot_method_combo.get_value() - self.plot(kind=kind) + # kind = self.ui.cncplot_method_combo.get_value() + # self.plot(kind=kind) + self.annotation.redraw() def convert_units(self, units): factor = CNCjob.convert_units(self, units) diff --git a/ObjectCollection.py b/ObjectCollection.py index 9e23279d..fddc19a4 100644 --- a/ObjectCollection.py +++ b/ObjectCollection.py @@ -263,10 +263,9 @@ class ObjectCollection(QtCore.QAbstractItemModel): # ## GUI Events self.view.selectionModel().selectionChanged.connect(self.on_list_selection_change) - self.view.activated.connect(self.on_item_activated) - # self.view.keyPressed.connect(self.on_key) + # self.view.activated.connect(self.on_item_activated) self.view.keyPressed.connect(self.app.ui.keyPressEvent) - self.view.clicked.connect(self.on_mouse_down) + # self.view.clicked.connect(self.on_mouse_down) self.view.customContextMenuRequested.connect(self.on_menu_request) self.click_modifier = None @@ -398,8 +397,9 @@ class ObjectCollection(QtCore.QAbstractItemModel): def setData(self, index, data, role=None): if index.isValid(): obj = index.internalPointer().obj + if obj: - old_name = obj.options['name'] + old_name = deepcopy(obj.options['name']) new_name = str(data) if old_name != new_name and new_name != '': # rename the object diff --git a/README.md b/README.md index 2d4940f3..f5e299c7 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,54 @@ CAD program, and create G-Code for Isolation routing. ================================================= +23.06.2019 + +- fixes issues with units conversion when the tool diameters are a list of comma separated values (NCC Tool, SolderPaste Tool and Geometry Object) +- fixed a "typo" kind of bug in SolderPaste Tool +- RELEASE 8.919 + +22.06.2019 + +- some GUI layout optimizations in Edit -> Preferences +- added the possibility for multiple tool diameters in the Edit -> Preferences -> Geometry -> Geometry General -> Tool dia separated by comma +- fixed scaling for the multiple tool diameters in Edit -> Preferences -> Geometry -> Geometry General -> Tool dia, for NCC tools more than 2 and for Solderpaste nozzles more than 2 +- fixed bug in CNCJob where the CNC Tools table will show always only 2 decimals for Tool diameters regardless of the current measuring units +- made the tools diameters decimals in case of INCH FlatCAM units to be 4 instead of 3 +- fixed bug in updating Grid values whenever toggling the FlatCAM units and the X, Y Grid values are linked, bugs which caused the Y value to be scaled incorrectly +- set the decimals for Grid values to be set to 6 if the units of FlatCAM is INCH and to set to 4 if FlatCAM units are METRIC +- updated translations +- updated the Russian translation from 51% complete to 69% complete using the Yandex translation engine +- fixed recently introduced bug in milling drills/slots functions +- moved Substract Tool from Menu -> Edit -> Conversions to Menu -> Tool +- fixed bug in Gerber isolation (Geometry expects now a value in string format and not float) +- fixed bug in Paint tool: now it is possible to paint geometry generated by External Isolation (or Internal isolation) +- fixed bug in editing a multigeo Geometry object if previously a tool was deleted +- optimized the toggle of annotations; now there is no need to replot the entire CNCJob object too on toggling of the annotations +- on toggling off the plot visibility the annotations are turned off too +- updated translations; Russian translation at 76% (using Yandex translator engine - needs verification by a native speaker of Russian) + +20.06.2019 + +- fixed Scale and Buffer Tool in Gerber Editor +- fixed Editor Transform Tool in Gerber Editor +- added a message in the status bar when copying coordinates to clipboard with SHIFT + LMB click combo +- languages update + +19.06.2019 + +- milling an Excellon file (holes and/or slots) will now transfer the chosen milling bit diameter to the resulting Geometry object + +17.06.2019 + +- fixed bug where for Geometry objects after a successful object rename done in the Object collection view (Project tab), deselect the object and reselect it and then in the Selected tab the name is not the new one but the old one +- for Geometry objects, adding a new tool to the Tools table after a successful rename will now store the new name in the tool data + +15.06.2019 + +- fixed bug in Gerber parser that made the Gerber files generated by Altium Designer 18 not to be loaded +- fixed bug in Gerber editor - on multiple edits on the same object, the aperture size and dims were continuously multiplied due of the file units not being updated +- restored the FlatCAMObj.visible() to a non-threaded default + 11.06.2019 - fixed the Edit -> Conversion -> Join ... functions (merge() functions) diff --git a/camlib.py b/camlib.py index 33c80b7d..47d787e7 100644 --- a/camlib.py +++ b/camlib.py @@ -112,9 +112,9 @@ class Geometry(object): self.geo_steps_per_circle = geo_steps_per_circle - if geo_steps_per_circle is None: - geo_steps_per_circle = int(Geometry.defaults["geo_steps_per_circle"]) - self.geo_steps_per_circle = geo_steps_per_circle + # if geo_steps_per_circle is None: + # geo_steps_per_circle = int(Geometry.defaults["geo_steps_per_circle"]) + # self.geo_steps_per_circle = geo_steps_per_circle def make_index(self): self.flatten() @@ -1849,6 +1849,8 @@ class ApertureMacro: class Gerber (Geometry): """ + Here it is done all the Gerber parsing. + **ATTRIBUTES** * ``apertures`` (dict): The keys are names/identifiers of each aperture. @@ -2452,7 +2454,6 @@ class Gerber (Geometry): # --- Buffered --- try: log.debug("Bare op-code %d." % current_operation_code) - geo_dict = dict() flash = self.create_flash_geometry( Point(current_x, current_y), self.apertures[current_aperture], @@ -2467,7 +2468,7 @@ class Gerber (Geometry): else: geo_dict['solid'] = flash - if last_path_aperture not in self.apertures: + if current_aperture not in self.apertures: self.apertures[current_aperture] = dict() if 'geometry' not in self.apertures[current_aperture]: self.apertures[current_aperture]['geometry'] = [] @@ -3598,6 +3599,8 @@ class Gerber (Geometry): class Excellon(Geometry): """ + Here it is done all the Excellon parsing. + *ATTRIBUTES* * ``tools`` (dict): The key is the tool name and the value is @@ -5350,7 +5353,7 @@ class CNCjob(Geometry): if self.units == 'MM': current_tooldia = float('%.2f' % float(exobj.tools[tool]["C"])) else: - current_tooldia = float('%.3f' % float(exobj.tools[tool]["C"])) + current_tooldia = float('%.4f' % float(exobj.tools[tool]["C"])) # TODO apply offset only when using the GUI, for TclCommand this will create an error # because the values for Z offset are created in build_ui() @@ -5448,7 +5451,7 @@ class CNCjob(Geometry): if self.units == 'MM': current_tooldia = float('%.2f' % float(exobj.tools[tool]["C"])) else: - current_tooldia = float('%.3f' % float(exobj.tools[tool]["C"])) + current_tooldia = float('%.4f' % float(exobj.tools[tool]["C"])) # TODO apply offset only when using the GUI, for TclCommand this will create an error # because the values for Z offset are created in build_ui() @@ -5504,7 +5507,7 @@ class CNCjob(Geometry): if self.units == 'MM': current_tooldia = float('%.2f' % float(exobj.tools[tool]["C"])) else: - current_tooldia = float('%.3f' % float(exobj.tools[tool]["C"])) + current_tooldia = float('%.4f' % float(exobj.tools[tool]["C"])) # TODO apply offset only when using the GUI, for TclCommand this will create an error # because the values for Z offset are created in build_ui() @@ -6139,7 +6142,7 @@ class CNCjob(Geometry): gcode += self.doformat(p.down_z_start_code) gcode += self.doformat(p.spindle_fwd_code) # Start dispensing gcode += self.doformat(p.dwell_fwd_code) - gcode += self.doformat(p.z_feedrate_dispense_code) + gcode += self.doformat(p.feedrate_z_dispense_code) gcode += self.doformat(p.lift_z_dispense_code) gcode += self.doformat(p.feedrate_xy_code) @@ -6158,7 +6161,7 @@ class CNCjob(Geometry): elif type(geometry) == Point: gcode += self.doformat(p.linear_code, x=path[0][0], y=path[0][1]) # Move to first point - gcode += self.doformat(p.z_feedrate_dispense_code) + gcode += self.doformat(p.feedrate_z_dispense_code) gcode += self.doformat(p.down_z_start_code) gcode += self.doformat(p.spindle_fwd_code) # Start dispensing gcode += self.doformat(p.dwell_fwd_code) diff --git a/flatcamEditors/FlatCAMExcEditor.py b/flatcamEditors/FlatCAMExcEditor.py index d7e56db0..f2cfdab7 100644 --- a/flatcamEditors/FlatCAMExcEditor.py +++ b/flatcamEditors/FlatCAMExcEditor.py @@ -1209,7 +1209,7 @@ class FlatCAMExcEditor(QtCore.QObject): for drill in self.exc_obj.drills: if drill['tool'] in self.exc_obj.tools: if self.units == 'IN': - tool_dia = float('%.3f' % self.exc_obj.tools[drill['tool']]['C']) + tool_dia = float('%.4f' % self.exc_obj.tools[drill['tool']]['C']) else: tool_dia = float('%.2f' % self.exc_obj.tools[drill['tool']]['C']) @@ -1238,7 +1238,7 @@ class FlatCAMExcEditor(QtCore.QObject): # but use the real order found in the exc_obj.tools for k, v in self.exc_obj.tools.items(): if self.units == 'IN': - tool_dia = float('%.3f' % v['C']) + tool_dia = float('%.4f' % v['C']) else: tool_dia = float('%.2f' % v['C']) self.tool2tooldia[int(k)] = tool_dia @@ -1324,7 +1324,7 @@ class FlatCAMExcEditor(QtCore.QObject): if self.units == 'MM': dia = QtWidgets.QTableWidgetItem('%.2f' % self.olddia_newdia[tool_no]) else: - dia = QtWidgets.QTableWidgetItem('%.3f' % self.olddia_newdia[tool_no]) + dia = QtWidgets.QTableWidgetItem('%.4f' % self.olddia_newdia[tool_no]) dia.setFlags(QtCore.Qt.ItemIsEnabled) diff --git a/flatcamEditors/FlatCAMGeoEditor.py b/flatcamEditors/FlatCAMGeoEditor.py index bec802a1..dcbf35c3 100644 --- a/flatcamEditors/FlatCAMGeoEditor.py +++ b/flatcamEditors/FlatCAMGeoEditor.py @@ -3059,8 +3059,11 @@ class FlatCAMGeoEditor(QtCore.QObject): val = float(self.app.ui.grid_gap_x_entry.get_value()) except ValueError: return + + units = self.app.ui.general_defaults_form.general_app_group.units_radio.get_value().upper() + dec = 6 if units == 'IN' else 4 if self.app.ui.grid_gap_link_cb.isChecked(): - self.app.ui.grid_gap_y_entry.set_value(val) + self.app.ui.grid_gap_y_entry.set_value(val, decimals=dec) self.app.ui.grid_gap_x_entry.setValidator(QtGui.QDoubleValidator()) self.app.ui.grid_gap_x_entry.textChanged.connect( @@ -3999,7 +4002,7 @@ class FlatCAMGeoEditor(QtCore.QObject): def update_options(self, obj): if self.paint_tooldia: - obj.options['cnctooldia'] = self.paint_tooldia + obj.options['cnctooldia'] = deepcopy(str(self.paint_tooldia)) self.paint_tooldia = None return True else: diff --git a/flatcamEditors/FlatCAMGrbEditor.py b/flatcamEditors/FlatCAMGrbEditor.py index 53f454e8..43c84084 100644 --- a/flatcamEditors/FlatCAMGrbEditor.py +++ b/flatcamEditors/FlatCAMGrbEditor.py @@ -3445,7 +3445,6 @@ class FlatCAMGrbEditor(QtCore.QObject): file_units = self.gerber_obj.gerber_units if self.gerber_obj.gerber_units else 'IN' app_units = self.app.defaults['units'] - self.conversion_factor = 25.4 if file_units == 'IN' else (1 / 25.4) if file_units != app_units else 1 # Hide original geometry @@ -3478,6 +3477,7 @@ class FlatCAMGrbEditor(QtCore.QObject): conv_apertures[apid][key] = self.gerber_obj.apertures[apid][key] self.gerber_obj.apertures = conv_apertures + self.gerber_obj.gerber_units = app_units # ############################################################# ## # APPLY CLEAR_GEOMETRY on the SOLID_GEOMETRY @@ -3575,7 +3575,6 @@ class FlatCAMGrbEditor(QtCore.QObject): :return: None """ - new_grb_name = self.edited_obj_name # if the 'delayed plot' malfunctioned stop the QTimer @@ -3710,6 +3709,7 @@ class FlatCAMGrbEditor(QtCore.QObject): grb_obj.source_file = [] grb_obj.multigeo = False grb_obj.follow = False + grb_obj.gerber_units = app_obj.defaults['units'] try: grb_obj.create_geometry() @@ -3890,7 +3890,17 @@ class FlatCAMGrbEditor(QtCore.QObject): "%.4f    " % (0, 0)) # Selection with left mouse button - if self.active_tool is not None and event.button is 1: + if self.active_tool is not None: + modifiers = QtWidgets.QApplication.keyboardModifiers() + + # If the SHIFT key is pressed when LMB is clicked then the coordinates are copied to clipboard + if modifiers == QtCore.Qt.ShiftModifier: + self.app.clipboard.setText( + self.app.defaults["global_point_clipboard_format"] % (self.pos[0], self.pos[1]) + ) + self.app.inform.emit(_("[success] Coordinates copied to clipboard.")) + return + # Dispatch event to active_tool self.active_tool.click(self.app.geo_editor.snap(self.pos[0], self.pos[1])) @@ -4406,19 +4416,13 @@ class FlatCAMGrbEditor(QtCore.QObject): if geom_el in selection: geometric_data = geom_el.geo buffered_geom_el = dict() - if 'solid' in geom_el: - buffered_geom_el['solid'] = DrawToolShape( - geometric_data['solid'].buffer(buff_value, join_style=join_style) - ) - if 'follow' in geom_el: - buffered_geom_el['follow'] = DrawToolShape( - geometric_data['follow'].buffer(buff_value, join_style=join_style) - ) - if 'clear' in geom_el: - buffered_geom_el['clear'] = DrawToolShape( - geometric_data['clear'].buffer(buff_value, join_style=join_style) - ) - return buffered_geom_el + if 'solid' in geometric_data: + buffered_geom_el['solid'] = geometric_data['solid'].buffer(buff_value, join_style=join_style) + if 'follow' in geometric_data: + buffered_geom_el['follow'] = geometric_data['follow'].buffer(buff_value, join_style=join_style) + if 'clear' in geometric_data: + buffered_geom_el['clear'] = geometric_data['clear'].buffer(buff_value, join_style=join_style) + return DrawToolShape(buffered_geom_el) else: return geom_el @@ -4435,9 +4439,10 @@ class FlatCAMGrbEditor(QtCore.QObject): temp_storage = deepcopy(buffer_recursion(self.storage_dict[apid]['geometry'], self.selected)) self.storage_dict[apid]['geometry'] = [] self.storage_dict[apid]['geometry'] = temp_storage - except Exception as e: - log.debug("FlatCAMGrbEditor.buffer() --> %s" % str(e)) + log.debug("FlatCAMGrbEditor.buffer() --> %s\n%s" % str(e)) + self.app.inform.emit(_("[ERROR_NOTCL] Failed.\n%s") % str(traceback.print_exc())) + return self.plot_all() self.app.inform.emit(_("[success] Done. Buffer Tool completed.")) @@ -4467,17 +4472,20 @@ class FlatCAMGrbEditor(QtCore.QObject): if geom_el in selection: geometric_data = geom_el.geo scaled_geom_el = dict() - if 'solid' in geom_el: - scaled_geom_el['solid'] = DrawToolShape( - affinity.scale(geometric_data['solid'], scale_factor, scale_factor, origin='center')) - if 'follow' in geom_el: - scaled_geom_el['follow'] = DrawToolShape( - affinity.scale(geometric_data['follow'], scale_factor, scale_factor, origin='center')) - if 'clear' in geom_el: - scaled_geom_el['clear'] = DrawToolShape( - affinity.scale(geometric_data['clear'], scale_factor, scale_factor, origin='center')) + if 'solid' in geometric_data: + scaled_geom_el['solid'] = affinity.scale( + geometric_data['solid'], scale_factor, scale_factor, origin='center' + ) + if 'follow' in geometric_data: + scaled_geom_el['follow'] = affinity.scale( + geometric_data['follow'], scale_factor, scale_factor, origin='center' + ) + if 'clear' in geometric_data: + scaled_geom_el['clear'] = affinity.scale( + geometric_data['clear'], scale_factor, scale_factor, origin='center' + ) - return scaled_geom_el + return DrawToolShape(scaled_geom_el) else: return geom_el @@ -5229,9 +5237,10 @@ class TransformEditorTool(FlatCAMTool): try: # first get a bounding box to fit all; we use only the 'solids' as those should provide the biggest # bounding box - for el in elem_list: + for el_shape in elem_list: + el = el_shape.geo if 'solid' in el: - xmin, ymin, xmax, ymax = el['solid'].bounds() + xmin, ymin, xmax, ymax = el['solid'].bounds xminlist.append(xmin) yminlist.append(ymin) xmaxlist.append(xmax) @@ -5247,13 +5256,14 @@ class TransformEditorTool(FlatCAMTool): px = 0.5 * (xminimal + xmaximal) py = 0.5 * (yminimal + ymaximal) - for sel_el in elem_list: + for sel_el_shape in elem_list: + sel_el = sel_el_shape.geo if 'solid' in sel_el: - sel_el['solid'].rotate(-num, point=(px, py)) + sel_el['solid'] = affinity.rotate(sel_el['solid'], angle=-num, origin=(px, py)) if 'follow' in sel_el: - sel_el['follow'].rotate(-num, point=(px, py)) + sel_el['follow'] = affinity.rotate(sel_el['follow'], angle=-num, origin=(px, py)) if 'clear' in sel_el: - sel_el['clear'].rotate(-num, point=(px, py)) + sel_el['clear'] = affinity.rotate(sel_el['clear'], angle=-num, origin=(px, py)) self.draw_app.plot_all() self.app.inform.emit(_("[success] Done. Rotate completed.")) @@ -5287,9 +5297,10 @@ class TransformEditorTool(FlatCAMTool): else: # first get a bounding box to fit all; we use only the 'solids' as those should provide the biggest # bounding box - for el in elem_list: + for el_shape in elem_list: + el = el_shape.geo if 'solid' in el: - xmin, ymin, xmax, ymax = el['solid'].bounds() + xmin, ymin, xmax, ymax = el['solid'].bounds xminlist.append(xmin) yminlist.append(ymin) xmaxlist.append(xmax) @@ -5307,22 +5318,23 @@ class TransformEditorTool(FlatCAMTool): self.app.progress.emit(20) # execute mirroring - for sel_el in elem_list: + for sel_el_shape in elem_list: + sel_el = sel_el_shape.geo if axis is 'X': if 'solid' in sel_el: - sel_el['solid'].mirror('X', (px, py)) + sel_el['solid'] = affinity.scale(sel_el['solid'], xfact=1, yfact=-1, origin=(px, py)) if 'follow' in sel_el: - sel_el['follow'].mirror('X', (px, py)) + sel_el['follow'] = affinity.scale(sel_el['follow'], xfact=1, yfact=-1, origin=(px, py)) if 'clear' in sel_el: - sel_el['clear'].mirror('X', (px, py)) + sel_el['clear'] = affinity.scale(sel_el['clear'], xfact=1, yfact=-1, origin=(px, py)) self.app.inform.emit(_('[success] Flip on the Y axis done ...')) elif axis is 'Y': if 'solid' in sel_el: - sel_el['solid'].mirror('Y', (px, py)) + sel_el['solid'] = affinity.scale(sel_el['solid'], xfact=-1, yfact=1, origin=(px, py)) if 'follow' in sel_el: - sel_el['follow'].mirror('Y', (px, py)) + sel_el['follow'] = affinity.scale(sel_el['follow'], xfact=-1, yfact=1, origin=(px, py)) if 'clear' in sel_el: - sel_el['clear'].mirror('Y', (px, py)) + sel_el['clear'] = affinity.scale(sel_el['clear'], xfact=-1, yfact=1, origin=(px, py)) self.app.inform.emit(_('[success] Flip on the X axis done ...')) self.draw_app.plot_all() self.app.progress.emit(100) @@ -5350,9 +5362,10 @@ class TransformEditorTool(FlatCAMTool): try: # first get a bounding box to fit all; we use only the 'solids' as those should provide the biggest # bounding box - for el in elem_list: + for el_shape in elem_list: + el = el_shape.geo if 'solid' in el: - xmin, ymin, xmax, ymax = el['solid'].bounds() + xmin, ymin, xmax, ymax = el['solid'].bounds xminlist.append(xmin) yminlist.append(ymin) @@ -5362,21 +5375,22 @@ class TransformEditorTool(FlatCAMTool): self.app.progress.emit(20) - for sel_el in elem_list: + for sel_el_shape in elem_list: + sel_el = sel_el_shape.geo if axis is 'X': if 'solid' in sel_el: - sel_el['solid'].skew(num, 0, point=(xminimal, yminimal)) + sel_el['solid'] = affinity.skew(sel_el['solid'], num, 0, origin=(xminimal, yminimal)) if 'follow' in sel_el: - sel_el['follow'].skew(num, 0, point=(xminimal, yminimal)) + sel_el['follow'] = affinity.skew(sel_el['follow'], num, 0, origin=(xminimal, yminimal)) if 'clear' in sel_el: - sel_el['clear'].skew(num, 0, point=(xminimal, yminimal)) + sel_el['clear'] = affinity.skew(sel_el['clear'], num, 0, origin=(xminimal, yminimal)) elif axis is 'Y': if 'solid' in sel_el: - sel_el['solid'].skew(0, num, point=(xminimal, yminimal)) + sel_el['solid'] = affinity.skew(sel_el['solid'], 0, num, origin=(xminimal, yminimal)) if 'follow' in sel_el: - sel_el['follow'].skew(0, num, point=(xminimal, yminimal)) + sel_el['follow'] = affinity.skew(sel_el['follow'], 0, num, origin=(xminimal, yminimal)) if 'clear' in sel_el: - sel_el['clear'].skew(0, num, point=(xminimal, yminimal)) + sel_el['clear'] = affinity.skew(sel_el['clear'], 0, num, origin=(xminimal, yminimal)) self.draw_app.plot_all() self.app.inform.emit(_('[success] Skew on the %s axis done ...') % str(axis)) @@ -5409,9 +5423,10 @@ class TransformEditorTool(FlatCAMTool): try: # first get a bounding box to fit all; we use only the 'solids' as those should provide the biggest # bounding box - for el in elem_list: + for el_shape in elem_list: + el = el_shape.geo if 'solid' in el: - xmin, ymin, xmax, ymax = el['solid'].bounds() + xmin, ymin, xmax, ymax = el['solid'].bounds xminlist.append(xmin) yminlist.append(ymin) xmaxlist.append(xmax) @@ -5432,13 +5447,14 @@ class TransformEditorTool(FlatCAMTool): px = 0 py = 0 - for sel_el in elem_list: + for sel_el_shape in elem_list: + sel_el = sel_el_shape.geo if 'solid' in sel_el: - sel_el['solid'].scale(xfactor, yfactor, point=(px, py)) + sel_el['solid'] = affinity.scale(sel_el['solid'], xfactor, yfactor, origin=(px, py)) if 'follow' in sel_el: - sel_el['follow'].scale(xfactor, yfactor, point=(px, py)) + sel_el['follow'] = affinity.scale(sel_el['follow'], xfactor, yfactor, origin=(px, py)) if 'clear' in sel_el: - sel_el['clear'].scale(xfactor, yfactor, point=(px, py)) + sel_el['clear'] = affinity.scale(sel_el['clear'], xfactor, yfactor, origin=(px, py)) self.draw_app.plot_all() self.app.inform.emit(_('[success] Scale on the %s axis done ...') % str(axis)) @@ -5464,21 +5480,22 @@ class TransformEditorTool(FlatCAMTool): try: self.app.progress.emit(20) - for sel_el in elem_list: + for sel_el_shape in elem_list: + sel_el = sel_el_shape.geo if axis is 'X': if 'solid' in sel_el: - sel_el['solid'].offset((num, 0)) + sel_el['solid'] = affinity.translate(sel_el['solid'], num, 0) if 'follow' in sel_el: - sel_el['follow'].offset((num, 0)) + sel_el['follow'] = affinity.translate(sel_el['follow'], num, 0) if 'clear' in sel_el: - sel_el['clear'].offset((num, 0)) + sel_el['clear'] = affinity.translate(sel_el['clear'], num, 0) elif axis is 'Y': if 'solid' in sel_el: - sel_el['solid'].offset((0, num)) + sel_el['solid'] = affinity.translate(sel_el['solid'], 0, num) if 'follow' in sel_el: - sel_el['follow'].offset((0, num)) + sel_el['follow'] = affinity.translate(sel_el['follow'], 0, num) if 'clear' in sel_el: - sel_el['clear'].offset((0, num)) + sel_el['clear'] = affinity.translate(sel_el['clear'], 0, num) self.draw_app.plot_all() self.app.inform.emit(_('[success] Offset on the %s axis done ...') % str(axis)) diff --git a/flatcamGUI/FlatCAMGUI.py b/flatcamGUI/FlatCAMGUI.py index 580b2d72..51feb37f 100644 --- a/flatcamGUI/FlatCAMGUI.py +++ b/flatcamGUI/FlatCAMGUI.py @@ -3330,14 +3330,14 @@ class GeneralGUIPrefGroupUI(OptionsGroupUI): self.gridx_label.setToolTip( _("This is the Grid snap value on X axis.") ) - self.gridx_entry = LengthEntry() + self.gridx_entry = FCEntry3() # Grid Y Entry self.gridy_label = QtWidgets.QLabel(_('Grid Y value:')) self.gridy_label.setToolTip( _("This is the Grid snap value on Y axis.") ) - self.gridy_entry = LengthEntry() + self.gridy_entry = FCEntry3() # Snap Max Entry self.snap_max_label = QtWidgets.QLabel(_('Snap Max:')) @@ -4096,7 +4096,7 @@ class GerberOptPrefGroupUI(OptionsGroupUI): self.combine_passes_cb.setToolTip( _("Combine all passes into one object") ) - grid0.addWidget(self.combine_passes_cb, 4, 0) + grid0.addWidget(self.combine_passes_cb, 4, 0, 1, 2) # ## Clear non-copper regions self.clearcopper_label = QtWidgets.QLabel(_("Clear non-copper:")) @@ -4468,8 +4468,8 @@ class ExcellonGenPrefGroupUI(OptionsGroupUI): hlay2.addWidget(self.excellon_format_lower_mm_entry, QtCore.Qt.AlignLeft) hlay2.addStretch() - hlay3 = QtWidgets.QHBoxLayout() - self.layout.addLayout(hlay3) + grid2 = QtWidgets.QGridLayout() + self.layout.addLayout(grid2) self.excellon_zeros_label = QtWidgets.QLabel(_('Default Zeros:')) self.excellon_zeros_label.setAlignment(QtCore.Qt.AlignLeft) @@ -4480,7 +4480,7 @@ class ExcellonGenPrefGroupUI(OptionsGroupUI): "If TZ is checked then Trailing Zeros are kept\n" "and Leading Zeros are removed.") ) - hlay3.addWidget(self.excellon_zeros_label) + grid2.addWidget(self.excellon_zeros_label, 0, 0) self.excellon_zeros_radio = RadioSet([{'label': 'LZ', 'value': 'L'}, {'label': 'TZ', 'value': 'T'}]) @@ -4493,11 +4493,7 @@ class ExcellonGenPrefGroupUI(OptionsGroupUI): "If TZ is checked then Trailing Zeros are kept\n" "and Leading Zeros are removed.") ) - hlay3.addStretch() - hlay3.addWidget(self.excellon_zeros_radio, QtCore.Qt.AlignRight) - - hlay4 = QtWidgets.QHBoxLayout() - self.layout.addLayout(hlay4) + grid2.addWidget(self.excellon_zeros_radio, 0, 1) self.excellon_units_label = QtWidgets.QLabel(_('Default Units:')) self.excellon_units_label.setAlignment(QtCore.Qt.AlignLeft) @@ -4508,7 +4504,7 @@ class ExcellonGenPrefGroupUI(OptionsGroupUI): "Some Excellon files don't have an header\n" "therefore this parameter will be used.") ) - hlay4.addWidget(self.excellon_units_label) + grid2.addWidget(self.excellon_units_label, 1, 0) self.excellon_units_radio = RadioSet([{'label': 'INCH', 'value': 'INCH'}, {'label': 'MM', 'value': 'METRIC'}]) @@ -4517,27 +4513,14 @@ class ExcellonGenPrefGroupUI(OptionsGroupUI): "Some Excellon files don't have an header\n" "therefore this parameter will be used.") ) - hlay4.addStretch() - hlay4.addWidget(self.excellon_units_radio, QtCore.Qt.AlignRight) + grid2.addWidget(self.excellon_units_radio, 1, 1) - hlay5 = QtWidgets.QVBoxLayout() - self.layout.addLayout(hlay5) - - self.empty_label = QtWidgets.QLabel("") - hlay5.addWidget(self.empty_label) - - hlay6 = QtWidgets.QVBoxLayout() - self.layout.addLayout(hlay6) + grid2.addWidget(QtWidgets.QLabel(""), 2, 0) self.excellon_general_label = QtWidgets.QLabel(_("Excellon Optimization:")) - hlay6.addWidget(self.excellon_general_label) - - # Create a form layout for the Excellon general settings - form_box_excellon = QtWidgets.QFormLayout() - hlay6.addLayout(form_box_excellon) + grid2.addWidget(self.excellon_general_label, 3, 0, 1, 2) self.excellon_optimization_label = QtWidgets.QLabel(_('Algorithm: ')) - self.excellon_optimization_label.setAlignment(QtCore.Qt.AlignLeft) self.excellon_optimization_label.setToolTip( _("This sets the optimization type for the Excellon drill path.\n" "If MH is checked then Google OR-Tools algorithm with MetaHeuristic\n" @@ -4548,6 +4531,7 @@ class ExcellonGenPrefGroupUI(OptionsGroupUI): "If DISABLED, then FlatCAM works in 32bit mode and it uses \n" "Travelling Salesman algorithm for path optimization.") ) + grid2.addWidget(self.excellon_optimization_label, 4, 0) self.excellon_optimization_radio = RadioSet([{'label': 'MH', 'value': 'M'}, {'label': 'Basic', 'value': 'B'}]) @@ -4561,8 +4545,7 @@ class ExcellonGenPrefGroupUI(OptionsGroupUI): "If DISABLED, then FlatCAM works in 32bit mode and it uses \n" "Travelling Salesman algorithm for path optimization.") ) - - form_box_excellon.addRow(self.excellon_optimization_label, self.excellon_optimization_radio) + grid2.addWidget(self.excellon_optimization_radio, 4, 1) self.optimization_time_label = QtWidgets.QLabel(_('Optimization Time: ')) self.optimization_time_label.setAlignment(QtCore.Qt.AlignLeft) @@ -4573,10 +4556,11 @@ class ExcellonGenPrefGroupUI(OptionsGroupUI): "In seconds.") ) + grid2.addWidget(self.optimization_time_label, 5, 0) self.optimization_time_entry = IntEntry() self.optimization_time_entry.setValidator(QtGui.QIntValidator(0, 999)) - form_box_excellon.addRow(self.optimization_time_label, self.optimization_time_entry) + grid2.addWidget(self.optimization_time_entry, 5, 1) current_platform = platform.architecture()[0] if current_platform == '64bit': @@ -4744,25 +4728,23 @@ class ExcellonOptPrefGroupUI(OptionsGroupUI): self.mill_hole_label.setToolTip( _("Create Geometry for milling holes.") ) - self.layout.addWidget(self.mill_hole_label) + grid2.addWidget(excellon_gcode_type_label, 11, 0, 1, 2) - grid3 = QtWidgets.QGridLayout() - self.layout.addLayout(grid3) tdlabel = QtWidgets.QLabel(_('Drill Tool dia:')) tdlabel.setToolTip( _("Diameter of the cutting tool.") ) - grid3.addWidget(tdlabel, 0, 0) + grid2.addWidget(tdlabel, 12, 0) self.tooldia_entry = LengthEntry() - grid3.addWidget(self.tooldia_entry, 0, 1) + grid2.addWidget(self.tooldia_entry, 12, 1) stdlabel = QtWidgets.QLabel(_('Slot Tool dia:')) stdlabel.setToolTip( _("Diameter of the cutting tool\n" "when milling slots.") ) - grid3.addWidget(stdlabel, 1, 0) + grid2.addWidget(stdlabel, 13, 0) self.slot_tooldia_entry = LengthEntry() - grid3.addWidget(self.slot_tooldia_entry, 1, 1) + grid2.addWidget(self.slot_tooldia_entry, 13, 1) grid4 = QtWidgets.QGridLayout() self.layout.addLayout(grid4) @@ -5162,6 +5144,7 @@ class GeometryGenPrefGroupUI(OptionsGroupUI): grid0 = QtWidgets.QGridLayout() self.layout.addLayout(grid0) + # Number of circle steps for circular aperture linear approximation self.circle_steps_label = QtWidgets.QLabel(_("Circle Steps:")) self.circle_steps_label.setToolTip( @@ -5173,21 +5156,17 @@ class GeometryGenPrefGroupUI(OptionsGroupUI): grid0.addWidget(self.circle_steps_entry, 1, 1) # Tools - self.tools_label = QtWidgets.QLabel(_("Tools")) - self.layout.addWidget(self.tools_label) - - grid0_b = QtWidgets.QGridLayout() - self.layout.addLayout(grid0_b) + self.tools_label = QtWidgets.QLabel(_("Tools:")) + grid0.addWidget(self.tools_label, 2, 0, 1, 2) # Tooldia - tdlabel = QtWidgets.QLabel(_('Tool dia: ')) + tdlabel = QtWidgets.QLabel(_('Tool dia:')) tdlabel.setToolTip( - _("The diameter of the cutting\n" - "tool..") + _("Diameters of the cutting tools, separated by ','") ) - grid0_b.addWidget(tdlabel, 0, 0) - self.cnctooldia_entry = LengthEntry() - grid0_b.addWidget(self.cnctooldia_entry, 0, 1) + grid0.addWidget(tdlabel, 3, 0) + self.cnctooldia_entry = FCEntry() + grid0.addWidget(self.cnctooldia_entry, 3, 1) self.layout.addStretch() diff --git a/flatcamGUI/GUIElements.py b/flatcamGUI/GUIElements.py index be90969a..ea306902 100644 --- a/flatcamGUI/GUIElements.py +++ b/flatcamGUI/GUIElements.py @@ -190,7 +190,7 @@ class LengthEntry(QtWidgets.QLineEdit): units = raw[-2:] units = self.scales[self.output_units][units.upper()] value = raw[:-2] - return float(eval(value))*units + return float(eval(value))* units except IndexError: value = raw return float(eval(value)) @@ -390,12 +390,40 @@ class FCEntry2(FCEntry): def on_edit_finished(self): self.clearFocus() - def set_value(self, val): + def set_value(self, val, decimals=4): try: fval = float(val) except ValueError: return - self.setText('%.4f' % fval) + + self.setText('%.*f' % (decimals, fval)) + + +class FCEntry3(FCEntry): + def __init__(self, parent=None): + super(FCEntry3, self).__init__(parent) + self.readyToEdit = True + self.editingFinished.connect(self.on_edit_finished) + + def on_edit_finished(self): + self.clearFocus() + + def set_value(self, val, decimals=4): + try: + fval = float(val) + except ValueError: + return + + self.setText('%.*f' % (decimals, fval)) + + def get_value(self): + value = str(self.text()).strip(' ') + + try: + return float(eval(value)) + except Exception as e: + log.warning("Could not parse value in entry: %s" % str(e)) + return None class EvalEntry(QtWidgets.QLineEdit): @@ -680,7 +708,7 @@ class FCTextAreaExtended(QtWidgets.QTextEdit): if character == "#": # delete # self.textCursor().deletePreviousChar() - # delete white space + # delete white space self.moveCursor(QtGui.QTextCursor.NextWord,QtGui.QTextCursor.KeepAnchor) self.textCursor().removeSelectedText() else: @@ -1059,7 +1087,6 @@ class FCDetachableTab(QtWidgets.QTabWidget): # Re-attach the tab at the given index self.attachTab(contentWidget, name, icon, index) - # If the drop did not occur on an existing tab, determine if the drop # occurred in the tab bar area (the area to the side of the QTabBar) else: @@ -1227,14 +1254,17 @@ class FCDetachableTab(QtWidgets.QTabWidget): :return: """ # Determine if the current movement is detected as a drag - if not self.dragStartPos.isNull() and ((event.pos() - self.dragStartPos).manhattanLength() < QtWidgets.QApplication.startDragDistance()): + if not self.dragStartPos.isNull() and \ + ((event.pos() - self.dragStartPos).manhattanLength() < QtWidgets.QApplication.startDragDistance()): self.dragInitiated = True # If the current movement is a drag initiated by the left button if (((event.buttons() & QtCore.Qt.LeftButton)) and self.dragInitiated): # Stop the move event - finishMoveEvent = QtGui.QMouseEvent(QtCore.QEvent.MouseMove, event.pos(), QtCore.Qt.NoButton, QtCore.Qt.NoButton, QtCore.Qt.NoModifier) + finishMoveEvent = QtGui.QMouseEvent( + QtCore.QEvent.MouseMove, event.pos(), QtCore.Qt.NoButton, QtCore.Qt.NoButton, QtCore.Qt.NoModifier + ) QtWidgets.QTabBar.mouseMoveEvent(self, finishMoveEvent) # Convert the move event into a drag @@ -1261,13 +1291,11 @@ class FCDetachableTab(QtWidgets.QTabWidget): # Initiate the drag dropAction = drag.exec_(QtCore.Qt.MoveAction | QtCore.Qt.CopyAction) - # For Linux: Here, drag.exec_() will not return MoveAction on Linux. So it # must be set manually if self.dragDropedPos.x() != 0 and self.dragDropedPos.y() != 0: dropAction = QtCore.Qt.MoveAction - # If the drag completed outside of the tab bar, detach the tab and move # the content to the current cursor position if dropAction == QtCore.Qt.IgnoreAction: diff --git a/flatcamParsers/ParseDXF.py b/flatcamParsers/ParseDXF.py index 88326afe..b6be8b98 100644 --- a/flatcamParsers/ParseDXF.py +++ b/flatcamParsers/ParseDXF.py @@ -91,7 +91,7 @@ def dxfarc2shapely(arc, n_points=100): # angle += step_angle # # - # log.debug("X = %.3f, Y = %.3f, Radius = %.3f, start_angle = %.1f, stop_angle = %.1f, step_angle = %.3f, dir=%s" % + # log.debug("X = %.4f, Y = %.4f, Radius = %.4f, start_angle = %.1f, stop_angle = %.1f, step_angle = %.4f, dir=%s" % # (center_x, center_y, radius, start_angle, end_angle, step_angle, dir)) # # geo = LineString(point_list) @@ -142,7 +142,7 @@ def dxfarc2shapely(arc, n_points=100): y = center_y + radius * math.sin(math.radians(- end_angle)) point_list.append((x, y)) - # log.debug("X = %.3f, Y = %.3f, Radius = %.3f, start_angle = %.1f, stop_angle = %.1f, step_angle = %.3f" % + # log.debug("X = %.4f, Y = %.4f, Radius = %.4f, start_angle = %.1f, stop_angle = %.1f, step_angle = %.4f" % # (center_x, center_y, radius, start_angle, end_angle, step_angle)) geo = LineString(point_list) @@ -450,4 +450,4 @@ def getdxftext(exf_object, object_type, units=None): # geo = rotate(geo, phi, origin=tr) # # geo_block_transformed.append(geo) -# return geo_block_transformed \ No newline at end of file +# return geo_block_transformed diff --git a/flatcamTools/ToolNonCopperClear.py b/flatcamTools/ToolNonCopperClear.py index 52c847ab..24734e4a 100644 --- a/flatcamTools/ToolNonCopperClear.py +++ b/flatcamTools/ToolNonCopperClear.py @@ -343,7 +343,7 @@ class NonCopperClear(FlatCAMTool, Gerber): }) try: - dias = [float(eval(dia)) for dia in self.app.defaults["tools_ncctools"].split(",")] + dias = [float(eval(dia)) for dia in self.app.defaults["tools_ncctools"].split(",") if dia != ''] except: log.error("At least one tool diameter needed. Verify in Edit -> Preferences -> TOOLS -> NCC Tools.") return @@ -404,7 +404,7 @@ class NonCopperClear(FlatCAMTool, Gerber): if self.units == 'MM': dia = QtWidgets.QTableWidgetItem('%.2f' % tooluid_value['tooldia']) else: - dia = QtWidgets.QTableWidgetItem('%.3f' % tooluid_value['tooldia']) + dia = QtWidgets.QTableWidgetItem('%.4f' % tooluid_value['tooldia']) dia.setFlags(QtCore.Qt.ItemIsEnabled) @@ -787,7 +787,7 @@ class NonCopperClear(FlatCAMTool, Gerber): else: log.debug("There are no geometries in the cleared polygon.") - geo_obj.options["cnctooldia"] = tool + geo_obj.options["cnctooldia"] = str(tool) geo_obj.multigeo = True def job_thread(app_obj): @@ -929,7 +929,7 @@ class NonCopperClear(FlatCAMTool, Gerber): log.debug("There are no geometries in the cleared polygon.") geo_obj.multigeo = True - geo_obj.options["cnctooldia"] = tool + geo_obj.options["cnctooldia"] = str(tool) # check to see if geo_obj.tools is empty # it will be updated only if there is a solid_geometry for tools diff --git a/flatcamTools/ToolPaint.py b/flatcamTools/ToolPaint.py index 00ec1dd5..f2009c88 100644 --- a/flatcamTools/ToolPaint.py +++ b/flatcamTools/ToolPaint.py @@ -468,7 +468,7 @@ class ToolPaint(FlatCAMTool, Gerber): if self.units == 'MM': dia = QtWidgets.QTableWidgetItem('%.2f' % tooluid_value['tooldia']) else: - dia = QtWidgets.QTableWidgetItem('%.3f' % tooluid_value['tooldia']) + dia = QtWidgets.QTableWidgetItem('%.4f' % tooluid_value['tooldia']) dia.setFlags(QtCore.Qt.ItemIsEnabled) @@ -920,7 +920,7 @@ class ToolPaint(FlatCAMTool, Gerber): log.debug("Could not Paint the polygons. %s" % str(e)) self.app.inform.emit( _("[ERROR] Could not do Paint. Try a different combination of parameters. " - "Or a different strategy of paint\n%s") % str(e)) + "Or a different strategy of paint\n%s") % str(e)) return if cp is not None: @@ -930,7 +930,7 @@ class ToolPaint(FlatCAMTool, Gerber): else: geo_obj.solid_geometry = list(cp.get_objects()) - geo_obj.options["cnctooldia"] = tooldia + geo_obj.options["cnctooldia"] = str(tooldia) # this turn on the FlatCAMCNCJob plot for multiple tools geo_obj.multigeo = False geo_obj.multitool = True @@ -1043,7 +1043,11 @@ class ToolPaint(FlatCAMTool, Gerber): # ## Not iterable, do the actual indexing and add. except TypeError: - self.flat_geometry.append(geometry) + if isinstance(geometry, LinearRing): + g = Polygon(geometry) + self.flat_geometry.append(g) + else: + self.flat_geometry.append(geometry) return self.flat_geometry @@ -1127,7 +1131,7 @@ class ToolPaint(FlatCAMTool, Gerber): self.paint_tools[current_uid]['data']['name'] = name total_geometry[:] = [] - geo_obj.options["cnctooldia"] = tool_dia + geo_obj.options["cnctooldia"] = str(tool_dia) # this turn on the FlatCAMCNCJob plot for multiple tools geo_obj.multigeo = True geo_obj.multitool = True @@ -1141,8 +1145,8 @@ class ToolPaint(FlatCAMTool, Gerber): has_solid_geo += 1 if has_solid_geo == 0: self.app.inform.emit(_("[ERROR] There is no Painting Geometry in the file.\n" - "Usually it means that the tool diameter is too big for the painted geometry.\n" - "Change the painting parameters and try again.")) + "Usually it means that the tool diameter is too big for the painted geometry.\n" + "Change the painting parameters and try again.")) return # Experimental... @@ -1222,7 +1226,7 @@ class ToolPaint(FlatCAMTool, Gerber): self.paint_tools[current_uid]['data']['name'] = name cleared_geo[:] = [] - geo_obj.options["cnctooldia"] = tool_dia + geo_obj.options["cnctooldia"] = str(tool_dia) # this turn on the FlatCAMCNCJob plot for multiple tools geo_obj.multigeo = True geo_obj.multitool = True diff --git a/flatcamTools/ToolSolderPaste.py b/flatcamTools/ToolSolderPaste.py index 47b728f6..7f4b5e3e 100644 --- a/flatcamTools/ToolSolderPaste.py +++ b/flatcamTools/ToolSolderPaste.py @@ -482,7 +482,7 @@ class SolderPaste(FlatCAMTool): self.on_tool_delete(rows_to_delete=None, all=None), icon=QtGui.QIcon("share/delete32.png")) try: - dias = [float(eval(dia)) for dia in self.app.defaults["tools_solderpaste_tools"].split(",")] + dias = [float(eval(dia)) for dia in self.app.defaults["tools_solderpaste_tools"].split(",") if dia != ''] except: log.error("At least one Nozzle tool diameter needed. " "Verify in Edit -> Preferences -> TOOLS -> Solder Paste Tools.") @@ -548,7 +548,7 @@ class SolderPaste(FlatCAMTool): if self.units == 'MM': dia = QtWidgets.QTableWidgetItem('%.2f' % tooluid_value['tooldia']) else: - dia = QtWidgets.QTableWidgetItem('%.3f' % tooluid_value['tooldia']) + dia = QtWidgets.QTableWidgetItem('%.4f' % tooluid_value['tooldia']) dia.setFlags(QtCore.Qt.ItemIsEnabled) diff --git a/locale/ru/LC_MESSAGES/strings.po b/locale/ru/LC_MESSAGES/strings.po index 97c05b2f..f96bf852 100644 --- a/locale/ru/LC_MESSAGES/strings.po +++ b/locale/ru/LC_MESSAGES/strings.po @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: \n" -"POT-Creation-Date: 2019-06-11 23:00+0300\n" -"PO-Revision-Date: 2019-06-15 19:59+0400\n" +"POT-Creation-Date: 2019-06-22 23:56+0300\n" +"PO-Revision-Date: 2019-06-23 21:04+0400\n" "Last-Translator: Andrey Kultyapov \n" "Language-Team: \n" "Language: ru\n" @@ -14,10 +14,10 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" -"X-Generator: Poedit 2.0.6\n" +"X-Generator: Poedit 2.2.3\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -"X-Poedit-Basepath: ..\n" +"X-Poedit-Basepath: ../../..\n" "X-Poedit-SearchPath-0: .\n" "X-Poedit-SearchPathExcluded-0: build\n" "X-Poedit-SearchPathExcluded-1: doc\n" @@ -49,13 +49,13 @@ msgstr "Не удалось открыть файл конфигурации." msgid "Open Script file failed." msgstr "Ошибка открытия файла сценария." -#: FlatCAMApp.py:2235 +#: FlatCAMApp.py:2244 msgid "[WARNING_NOTCL] Select a Geometry, Gerber or Excellon Object to edit." msgstr "" "[WARNING_NOTCL] Выберите объект Geometry, Gerber или Excellon для " "редактирования." -#: FlatCAMApp.py:2245 +#: FlatCAMApp.py:2254 msgid "" "[WARNING_NOTCL] Simultanoeus editing of tools geometry in a MultiGeo " "Geometry is not possible.\n" @@ -65,97 +65,97 @@ msgstr "" "невозможно.\n" "Редактируйте только одну геометрию за раз." -#: FlatCAMApp.py:2289 +#: FlatCAMApp.py:2309 msgid "[WARNING_NOTCL] Editor is activated ..." msgstr "[WARNING_NOTCL] Редактор активирован ..." -#: FlatCAMApp.py:2307 +#: FlatCAMApp.py:2327 msgid "Do you want to save the edited object?" msgstr "Вы хотите сохранить редактируемый объект?" -#: FlatCAMApp.py:2308 flatcamGUI/FlatCAMGUI.py:1618 +#: FlatCAMApp.py:2328 flatcamGUI/FlatCAMGUI.py:1618 msgid "Close Editor" msgstr "Закрыть редактор" -#: FlatCAMApp.py:2311 FlatCAMApp.py:3403 FlatCAMApp.py:5881 +#: FlatCAMApp.py:2331 FlatCAMApp.py:3423 FlatCAMApp.py:5989 #: FlatCAMTranslation.py:89 flatcamGUI/FlatCAMGUI.py:3730 msgid "Yes" msgstr "Да" -#: FlatCAMApp.py:2312 FlatCAMApp.py:3404 FlatCAMApp.py:5882 +#: FlatCAMApp.py:2332 FlatCAMApp.py:3424 FlatCAMApp.py:5990 #: FlatCAMTranslation.py:90 flatcamGUI/FlatCAMGUI.py:3731 msgid "No" msgstr "Нет" -#: FlatCAMApp.py:2313 FlatCAMApp.py:3405 FlatCAMApp.py:3737 FlatCAMApp.py:5883 +#: FlatCAMApp.py:2333 FlatCAMApp.py:3425 FlatCAMApp.py:3836 FlatCAMApp.py:5991 msgid "Cancel" msgstr "Отмена" -#: FlatCAMApp.py:2340 +#: FlatCAMApp.py:2360 msgid "[WARNING] Object empty after edit." msgstr "[WARNING] Объект пуст после редактирования." -#: FlatCAMApp.py:2362 FlatCAMApp.py:2381 FlatCAMApp.py:2393 +#: FlatCAMApp.py:2382 FlatCAMApp.py:2401 FlatCAMApp.py:2413 msgid "[WARNING_NOTCL] Select a Gerber, Geometry or Excellon Object to update." msgstr "" "[WARNING_NOTCL] Выберите объект Gerber, Geometry или Excellon для обновления." -#: FlatCAMApp.py:2365 +#: FlatCAMApp.py:2385 #, python-format msgid "[selected] %s is updated, returning to App..." msgstr "[selected] %s обновлён, возврат в приложение ..." -#: FlatCAMApp.py:2730 +#: FlatCAMApp.py:2750 msgid "[ERROR] Could not load defaults file." msgstr "[ERROR] Не удаётся загрузить файл настроек." -#: FlatCAMApp.py:2742 +#: FlatCAMApp.py:2762 msgid "[ERROR] Failed to parse defaults file." msgstr "[ERRORr] Не удаётся прочитать файл настроек." -#: FlatCAMApp.py:2763 FlatCAMApp.py:2767 +#: FlatCAMApp.py:2783 FlatCAMApp.py:2787 msgid "Import FlatCAM Preferences" msgstr "Импорт настроек FlatCAM" -#: FlatCAMApp.py:2773 +#: FlatCAMApp.py:2793 msgid "[WARNING_NOTCL] FlatCAM preferences import cancelled." msgstr "[WARNING_NOTCL] Импорт настроек FlatCAM отменен." -#: FlatCAMApp.py:2781 FlatCAMApp.py:2835 FlatCAMApp.py:3282 +#: FlatCAMApp.py:2801 FlatCAMApp.py:2855 FlatCAMApp.py:3302 msgid "[ERROR_NOTCL] Could not load defaults file." msgstr "[ERROR_NOTCL] Не удалось загрузить файл значений по умолчанию." -#: FlatCAMApp.py:2789 FlatCAMApp.py:3291 +#: FlatCAMApp.py:2809 FlatCAMApp.py:3311 msgid "[ERROR_NOTCL] Failed to parse defaults file." msgstr "[ERROR_NOTCL] Не удалось прочитать файл значений по умолчанию." -#: FlatCAMApp.py:2792 +#: FlatCAMApp.py:2812 #, python-format msgid "[success] Imported Defaults from %s" msgstr "[success] Значения по умолчанию импортированы из %s" -#: FlatCAMApp.py:2807 FlatCAMApp.py:2812 +#: FlatCAMApp.py:2827 FlatCAMApp.py:2832 msgid "Export FlatCAM Preferences" msgstr "Экспорт настроек FlatCAM" -#: FlatCAMApp.py:2819 +#: FlatCAMApp.py:2839 msgid "[WARNING_NOTCL] FlatCAM preferences export cancelled." msgstr "[WARNING_NOTCL] Экспорт настроек FlatCAM отменён." -#: FlatCAMApp.py:2854 FlatCAMApp.py:3336 +#: FlatCAMApp.py:2874 FlatCAMApp.py:3356 msgid "[ERROR_NOTCL] Failed to write defaults to file." msgstr "[ERROR_NOTCL] Не удалось записать значения по умолчанию в файл." -#: FlatCAMApp.py:2907 +#: FlatCAMApp.py:2927 msgid "[ERROR_NOTCL] Failed to open recent files file for writing." msgstr "[ERROR_NOTCL] Не удалось открыть файл истории файлов для записи." -#: FlatCAMApp.py:2984 camlib.py:4454 +#: FlatCAMApp.py:3004 camlib.py:4457 msgid "[ERROR_NOTCL] An internal error has ocurred. See shell.\n" msgstr "" "[ERROR_NOTCL] Произошла внутренняя ошибка. Посмотрите в командную строку.\n" -#: FlatCAMApp.py:2985 +#: FlatCAMApp.py:3005 #, python-brace-format msgid "" "Object ({kind}) failed because: {error} \n" @@ -164,11 +164,11 @@ msgstr "" "Объект ({kind}) не выполнен, потому что: {error} \n" "\n" -#: FlatCAMApp.py:3005 +#: FlatCAMApp.py:3025 msgid "Converting units to " msgstr "Конвертирование единиц в " -#: FlatCAMApp.py:3084 FlatCAMApp.py:3087 FlatCAMApp.py:3090 FlatCAMApp.py:3093 +#: FlatCAMApp.py:3104 FlatCAMApp.py:3107 FlatCAMApp.py:3110 FlatCAMApp.py:3113 #, python-brace-format msgid "" "[selected] {kind} created/selected: {name}{name}" -#: FlatCAMApp.py:3187 +#: FlatCAMApp.py:3207 #, python-brace-format msgid "" "FlatCAM
Version {version} {beta} ({date}) - " @@ -199,31 +199,31 @@ msgstr "" "a>
ЗАГРУЗИТЬ можно отсюда.
" -#: FlatCAMApp.py:3340 +#: FlatCAMApp.py:3360 msgid "[success] Defaults saved." msgstr "[success] Значения по умолчанию сохранены." -#: FlatCAMApp.py:3361 +#: FlatCAMApp.py:3381 msgid "[ERROR_NOTCL] Could not load factory defaults file." msgstr "[ERROR_NOTCL] Не удалось загрузить файл с исходными значениями." -#: FlatCAMApp.py:3370 +#: FlatCAMApp.py:3390 msgid "[ERROR_NOTCL] Failed to parse factory defaults file." msgstr "[ERROR_NOTCL] Не удалось прочитать файл с исходными значениями." -#: FlatCAMApp.py:3384 +#: FlatCAMApp.py:3404 msgid "[ERROR_NOTCL] Failed to write factory defaults to file." msgstr "[ERROR_NOTCL] Не удалось записать исходные значения в файл." -#: FlatCAMApp.py:3388 +#: FlatCAMApp.py:3408 msgid "Factory defaults saved." msgstr "Исходные значения сохранены." -#: FlatCAMApp.py:3393 flatcamGUI/FlatCAMGUI.py:3106 +#: FlatCAMApp.py:3413 flatcamGUI/FlatCAMGUI.py:3106 msgid "[WARNING_NOTCL] Application is saving the project. Please wait ..." msgstr "[WARNING_NOTCL] Приложение сохраняет проект. Пожалуйста, подождите ..." -#: FlatCAMApp.py:3398 +#: FlatCAMApp.py:3418 msgid "" "There are files/objects modified in FlatCAM. \n" "Do you want to Save the project?" @@ -231,11 +231,11 @@ msgstr "" "Есть файлы/объекты, измененные в FlatCAM.\n" "Вы хотите сохранить проект?" -#: FlatCAMApp.py:3401 FlatCAMApp.py:5879 +#: FlatCAMApp.py:3421 FlatCAMApp.py:5987 msgid "Save changes" msgstr "Сохранить изменения" -#: FlatCAMApp.py:3468 +#: FlatCAMApp.py:3488 msgid "" "[ERROR] Failed join. The Geometry objects are of different types.\n" "At least one is MultiGeo type and the other is SingleGeo type. A possibility " @@ -251,70 +251,70 @@ msgstr "" "потеряна, и результат может не соответствовать ожидаемому. \n" "Проверьте сгенерированный GCODE." -#: FlatCAMApp.py:3509 +#: FlatCAMApp.py:3529 msgid "[ERROR_NOTCL] Failed. Excellon joining works only on Excellon objects." msgstr "" "[ERROR_NOTCL] Неудача. Присоединение Excellon работает только на объектах " "Excellon." -#: FlatCAMApp.py:3531 +#: FlatCAMApp.py:3551 msgid "[ERROR_NOTCL] Failed. Gerber joining works only on Gerber objects." msgstr "" "[ERROR_NOTCL] Неудача. Объединение Gerber работает только на объектах Gerber." -#: FlatCAMApp.py:3546 FlatCAMApp.py:3571 +#: FlatCAMApp.py:3566 FlatCAMApp.py:3591 msgid "[ERROR_NOTCL] Failed. Select a Geometry Object and try again." msgstr "[ERROR_NOTCL] Неудалось. Выберите объект Geometry и попробуйте снова." -#: FlatCAMApp.py:3550 FlatCAMApp.py:3575 +#: FlatCAMApp.py:3570 FlatCAMApp.py:3595 #, python-format msgid "[ERROR_NOTCL] Expected a FlatCAMGeometry, got %s" msgstr "[ERROR_NOTCL] Ожидается FlatCAMGeometry, получено %s" -#: FlatCAMApp.py:3563 +#: FlatCAMApp.py:3583 msgid "[success] A Geometry object was converted to MultiGeo type." msgstr "[success] Объект Geometry был преобразован в тип MultiGeo." -#: FlatCAMApp.py:3589 +#: FlatCAMApp.py:3609 msgid "[success] A Geometry object was converted to SingleGeo type." msgstr "[success] Объект Geometry был преобразован в тип SingleGeo." -#: FlatCAMApp.py:3736 FlatCAMApp.py:4572 FlatCAMApp.py:6154 FlatCAMApp.py:6165 -#: FlatCAMApp.py:6405 FlatCAMApp.py:6415 +#: FlatCAMApp.py:3835 FlatCAMApp.py:4674 FlatCAMApp.py:6262 FlatCAMApp.py:6273 +#: FlatCAMApp.py:6513 FlatCAMApp.py:6523 msgid "Ok" msgstr "Да" -#: FlatCAMApp.py:3778 +#: FlatCAMApp.py:3880 #, python-format msgid "[success] Converted units to %s" msgstr "[success] Конвертирование единиц в %s" -#: FlatCAMApp.py:3789 +#: FlatCAMApp.py:3891 msgid "[WARNING_NOTCL] Units conversion cancelled." msgstr "[WARNING_NOTCL] Преобразование единиц отменено." -#: FlatCAMApp.py:4441 +#: FlatCAMApp.py:4543 msgid "Open file" msgstr "Открыть файл" -#: FlatCAMApp.py:4472 FlatCAMApp.py:4477 +#: FlatCAMApp.py:4574 FlatCAMApp.py:4579 msgid "Export G-Code ..." msgstr "Экспорт G-Code …" -#: FlatCAMApp.py:4480 +#: FlatCAMApp.py:4582 msgid "[WARNING_NOTCL] Export Code cancelled." msgstr "[WARNING_NOTCL] Экспорт Code отменён." -#: FlatCAMApp.py:4490 +#: FlatCAMApp.py:4592 msgid "[WARNING] No such file or directory" msgstr "[WARNING] Нет такого файла или каталога" -#: FlatCAMApp.py:4497 +#: FlatCAMApp.py:4599 #, python-format msgid "Saved to: %s" msgstr "Сохранёно в: %s" -#: FlatCAMApp.py:4560 FlatCAMApp.py:4593 FlatCAMApp.py:4604 FlatCAMApp.py:4615 +#: FlatCAMApp.py:4662 FlatCAMApp.py:4695 FlatCAMApp.py:4706 FlatCAMApp.py:4717 #: flatcamTools/ToolNonCopperClear.py:489 flatcamTools/ToolSolderPaste.py:765 msgid "" "[WARNING_NOTCL] Please enter a tool diameter with non-zero value, in Float " @@ -323,12 +323,12 @@ msgstr "" "[WARNING_NOTCL] Пожалуйста, введите диаметр инструмента с ненулевым " "значением в float формате." -#: FlatCAMApp.py:4565 FlatCAMApp.py:4598 FlatCAMApp.py:4609 FlatCAMApp.py:4620 +#: FlatCAMApp.py:4667 FlatCAMApp.py:4700 FlatCAMApp.py:4711 FlatCAMApp.py:4722 #: flatcamGUI/FlatCAMGUI.py:3001 msgid "[WARNING_NOTCL] Adding Tool cancelled ..." msgstr "[WARNING_NOTCL] Добавление инструмента отменено ..." -#: FlatCAMApp.py:4568 +#: FlatCAMApp.py:4670 msgid "" "Adding Tool works only when Advanced is checked.\n" "Go to Preferences -> General - Show Advanced Options." @@ -337,128 +337,128 @@ msgstr "" "«Дополнительно».\n" "Перейдите в Настройки -> Основные парам. - Показать дополнительные параметры." -#: FlatCAMApp.py:4681 +#: FlatCAMApp.py:4783 msgid "Object(s) deleted ..." msgstr "Объект(ы) удален ..." -#: FlatCAMApp.py:4685 +#: FlatCAMApp.py:4787 msgid "Failed. No object(s) selected..." msgstr "Нудача. Объекты не выбраны ..." -#: FlatCAMApp.py:4687 +#: FlatCAMApp.py:4789 msgid "Save the work in Editor and try again ..." msgstr "Сохраните работу в редакторе и попробуйте снова ..." -#: FlatCAMApp.py:4700 +#: FlatCAMApp.py:4802 msgid "Click to set the origin ..." msgstr "Кликните, чтобы указать начало координат ..." -#: FlatCAMApp.py:4712 +#: FlatCAMApp.py:4814 msgid "Jump to ..." msgstr "Перейти к ..." -#: FlatCAMApp.py:4713 +#: FlatCAMApp.py:4815 msgid "Enter the coordinates in format X,Y:" msgstr "Введите координаты в формате X, Y:" -#: FlatCAMApp.py:4720 +#: FlatCAMApp.py:4822 msgid "Wrong coordinates. Enter coordinates in format: X,Y" msgstr "Неверные координаты. Введите координаты в формате: X, Y" -#: FlatCAMApp.py:4738 flatcamEditors/FlatCAMExcEditor.py:2320 +#: FlatCAMApp.py:4840 flatcamEditors/FlatCAMExcEditor.py:2320 #: flatcamEditors/FlatCAMExcEditor.py:2327 -#: flatcamEditors/FlatCAMGeoEditor.py:3645 -#: flatcamEditors/FlatCAMGeoEditor.py:3659 +#: flatcamEditors/FlatCAMGeoEditor.py:3648 +#: flatcamEditors/FlatCAMGeoEditor.py:3662 #: flatcamEditors/FlatCAMGrbEditor.py:1040 #: flatcamEditors/FlatCAMGrbEditor.py:1141 #: flatcamEditors/FlatCAMGrbEditor.py:1409 #: flatcamEditors/FlatCAMGrbEditor.py:1666 -#: flatcamEditors/FlatCAMGrbEditor.py:3950 -#: flatcamEditors/FlatCAMGrbEditor.py:3964 flatcamGUI/FlatCAMGUI.py:2414 +#: flatcamEditors/FlatCAMGrbEditor.py:3960 +#: flatcamEditors/FlatCAMGrbEditor.py:3974 flatcamGUI/FlatCAMGUI.py:2414 #: flatcamGUI/FlatCAMGUI.py:2426 msgid "[success] Done." msgstr "[success] Готово." -#: FlatCAMApp.py:4870 FlatCAMApp.py:4937 +#: FlatCAMApp.py:4972 FlatCAMApp.py:5039 msgid "[WARNING_NOTCL] No object is selected. Select an object and try again." msgstr "[WARNING_NOTCL] Объект не выбран. Выберите объект и попробуйте снова." -#: FlatCAMApp.py:4978 +#: FlatCAMApp.py:5080 msgid "[success] Origin set ..." msgstr "[success] Начало координат установлено ..." -#: FlatCAMApp.py:4998 +#: FlatCAMApp.py:5100 msgid "Preferences" msgstr "Настройки" -#: FlatCAMApp.py:5018 +#: FlatCAMApp.py:5120 msgid "[WARNING_NOTCL] No object selected to Flip on Y axis." msgstr "[WARNING_NOTCL] Не выбран объект для отражения по оси Y." -#: FlatCAMApp.py:5043 +#: FlatCAMApp.py:5145 msgid "[success] Flip on Y axis done." msgstr "[success] Отражение по оси Y завершено." -#: FlatCAMApp.py:5045 FlatCAMApp.py:5085 +#: FlatCAMApp.py:5147 FlatCAMApp.py:5187 #: flatcamEditors/FlatCAMGeoEditor.py:1355 -#: flatcamEditors/FlatCAMGrbEditor.py:5331 flatcamTools/ToolTransform.py:748 +#: flatcamEditors/FlatCAMGrbEditor.py:5343 flatcamTools/ToolTransform.py:748 #, python-format msgid "[ERROR_NOTCL] Due of %s, Flip action was not executed." msgstr "[ERROR_NOTCL] Из-за %s, операция переворота не была выполнена." -#: FlatCAMApp.py:5058 +#: FlatCAMApp.py:5160 msgid "[WARNING_NOTCL] No object selected to Flip on X axis." msgstr "[WARNING_NOTCL] Не выбран объект для отражения по оси Х." -#: FlatCAMApp.py:5083 +#: FlatCAMApp.py:5185 msgid "[success] Flip on X axis done." msgstr "[success] Отражение по оси Х завершено." -#: FlatCAMApp.py:5098 +#: FlatCAMApp.py:5200 msgid "[WARNING_NOTCL] No object selected to Rotate." msgstr "[WARNING_NOTCL] Не выбран ни один объект для вращения." -#: FlatCAMApp.py:5101 FlatCAMApp.py:5146 FlatCAMApp.py:5177 +#: FlatCAMApp.py:5203 FlatCAMApp.py:5248 FlatCAMApp.py:5279 msgid "Transform" msgstr "Трансформация" -#: FlatCAMApp.py:5101 FlatCAMApp.py:5146 FlatCAMApp.py:5177 +#: FlatCAMApp.py:5203 FlatCAMApp.py:5248 FlatCAMApp.py:5279 msgid "Enter the Angle value:" msgstr "Введите значение угла:" -#: FlatCAMApp.py:5131 +#: FlatCAMApp.py:5233 msgid "[success] Rotation done." msgstr "[success] Вращение завершено." -#: FlatCAMApp.py:5133 flatcamEditors/FlatCAMGeoEditor.py:1298 -#: flatcamEditors/FlatCAMGrbEditor.py:5262 flatcamTools/ToolTransform.py:677 +#: FlatCAMApp.py:5235 flatcamEditors/FlatCAMGeoEditor.py:1298 +#: flatcamEditors/FlatCAMGrbEditor.py:5272 flatcamTools/ToolTransform.py:677 #, python-format msgid "[ERROR_NOTCL] Due of %s, rotation movement was not executed." msgstr "[ERROR_NOTCL] Из-за %s вращение не было выполнено." -#: FlatCAMApp.py:5144 +#: FlatCAMApp.py:5246 msgid "[WARNING_NOTCL] No object selected to Skew/Shear on X axis." msgstr "[WARNING_NOTCL] Не выбран ни один объект для наклона/сдвига по оси X." -#: FlatCAMApp.py:5165 +#: FlatCAMApp.py:5267 msgid "[success] Skew on X axis done." msgstr "[success] Наклон по оси X выполнен." -#: FlatCAMApp.py:5175 +#: FlatCAMApp.py:5277 msgid "[WARNING_NOTCL] No object selected to Skew/Shear on Y axis." msgstr "[WARNING_NOTCL] Нет объекта, выбранного для наклона/сдвига по оси Y." -#: FlatCAMApp.py:5196 +#: FlatCAMApp.py:5298 msgid "[success] Skew on Y axis done." msgstr "[success] Наклон по оси Y выполнен." -#: FlatCAMApp.py:5265 +#: FlatCAMApp.py:5368 msgid "Grid On/Off" msgstr "Сетка вкл/откл" -#: FlatCAMApp.py:5278 flatcamEditors/FlatCAMGeoEditor.py:937 +#: FlatCAMApp.py:5381 flatcamEditors/FlatCAMGeoEditor.py:937 #: flatcamEditors/FlatCAMGrbEditor.py:2381 -#: flatcamEditors/FlatCAMGrbEditor.py:4853 flatcamGUI/ObjectUI.py:991 +#: flatcamEditors/FlatCAMGrbEditor.py:4861 flatcamGUI/ObjectUI.py:991 #: flatcamTools/ToolDblSided.py:160 flatcamTools/ToolDblSided.py:208 #: flatcamTools/ToolNonCopperClear.py:134 flatcamTools/ToolPaint.py:131 #: flatcamTools/ToolSolderPaste.py:115 flatcamTools/ToolSolderPaste.py:479 @@ -466,7 +466,7 @@ msgstr "Сетка вкл/откл" msgid "Add" msgstr "Добавить" -#: FlatCAMApp.py:5279 FlatCAMObj.py:3270 +#: FlatCAMApp.py:5382 FlatCAMObj.py:3295 #: flatcamEditors/FlatCAMGrbEditor.py:2386 flatcamGUI/FlatCAMGUI.py:527 #: flatcamGUI/FlatCAMGUI.py:724 flatcamGUI/FlatCAMGUI.py:1616 #: flatcamGUI/FlatCAMGUI.py:1953 flatcamGUI/ObjectUI.py:1007 @@ -475,15 +475,15 @@ msgstr "Добавить" msgid "Delete" msgstr "Удалить" -#: FlatCAMApp.py:5292 +#: FlatCAMApp.py:5395 msgid "New Grid ..." msgstr "Новая сетка ..." -#: FlatCAMApp.py:5293 +#: FlatCAMApp.py:5396 msgid "Enter a Grid Value:" msgstr "Введите размер сетки:" -#: FlatCAMApp.py:5301 FlatCAMApp.py:5328 +#: FlatCAMApp.py:5404 FlatCAMApp.py:5431 msgid "" "[WARNING_NOTCL] Please enter a grid value with non-zero value, in Float " "format." @@ -491,48 +491,52 @@ msgstr "" "[WARNING_NOTCL] Пожалуйста, введите значение сетки с ненулевым значением в " "float формате." -#: FlatCAMApp.py:5307 +#: FlatCAMApp.py:5410 msgid "[success] New Grid added ..." msgstr "[success] Новая сетка добавлена ..." -#: FlatCAMApp.py:5310 +#: FlatCAMApp.py:5413 msgid "[WARNING_NOTCL] Grid already exists ..." msgstr "[WARNING_NOTCL] Сетка уже существует ..." -#: FlatCAMApp.py:5313 +#: FlatCAMApp.py:5416 msgid "[WARNING_NOTCL] Adding New Grid cancelled ..." msgstr "[WARNING_NOTCL] Добавление новой сетки отменено ..." -#: FlatCAMApp.py:5335 +#: FlatCAMApp.py:5438 msgid "[ERROR_NOTCL] Grid Value does not exist ..." msgstr "[ERROR_NOTCL] Значение сетки не существует ..." -#: FlatCAMApp.py:5338 +#: FlatCAMApp.py:5441 msgid "[success] Grid Value deleted ..." msgstr "[success] Значение сетки удалено ..." -#: FlatCAMApp.py:5341 +#: FlatCAMApp.py:5444 msgid "[WARNING_NOTCL] Delete Grid value cancelled ..." msgstr "[WARNING_NOTCL] Удаление значения сетки отменено ..." -#: FlatCAMApp.py:5380 +#: FlatCAMApp.py:5483 msgid "[WARNING_NOTCL] No object selected to copy it's name" msgstr "[WARNING_NOTCL] Нет объекта, выбранного для копирования его имени" -#: FlatCAMApp.py:5384 +#: FlatCAMApp.py:5487 msgid "Name copied on clipboard ..." msgstr "Имя скопировано в буфер обмена ..." -#: FlatCAMApp.py:5677 FlatCAMApp.py:5680 FlatCAMApp.py:5683 FlatCAMApp.py:5686 -#: FlatCAMApp.py:5701 FlatCAMApp.py:5704 FlatCAMApp.py:5707 FlatCAMApp.py:5710 -#: FlatCAMApp.py:5750 FlatCAMApp.py:5753 FlatCAMApp.py:5756 FlatCAMApp.py:5759 +#: FlatCAMApp.py:5529 flatcamEditors/FlatCAMGrbEditor.py:3901 +msgid "[success] Coordinates copied to clipboard." +msgstr "[success] Координаты скопированы в буфер обмена." + +#: FlatCAMApp.py:5785 FlatCAMApp.py:5788 FlatCAMApp.py:5791 FlatCAMApp.py:5794 +#: FlatCAMApp.py:5809 FlatCAMApp.py:5812 FlatCAMApp.py:5815 FlatCAMApp.py:5818 +#: FlatCAMApp.py:5858 FlatCAMApp.py:5861 FlatCAMApp.py:5864 FlatCAMApp.py:5867 #: ObjectCollection.py:719 ObjectCollection.py:722 ObjectCollection.py:725 #: ObjectCollection.py:728 #, python-brace-format msgid "[selected]{name} selected" msgstr "[selected]{name} выбран" -#: FlatCAMApp.py:5876 +#: FlatCAMApp.py:5984 msgid "" "There are files/objects opened in FlatCAM.\n" "Creating a New project will delete them.\n" @@ -542,110 +546,110 @@ msgstr "" "Создание нового проекта удалит их.\n" "Вы хотите сохранить проект?" -#: FlatCAMApp.py:5897 +#: FlatCAMApp.py:6005 msgid "[success] New Project created..." msgstr "[success] Новый проект создан ..." -#: FlatCAMApp.py:6013 FlatCAMApp.py:6016 flatcamGUI/FlatCAMGUI.py:608 +#: FlatCAMApp.py:6121 FlatCAMApp.py:6124 flatcamGUI/FlatCAMGUI.py:608 #: flatcamGUI/FlatCAMGUI.py:1832 msgid "Open Gerber" msgstr "Открыть Gerber" -#: FlatCAMApp.py:6021 +#: FlatCAMApp.py:6129 msgid "[WARNING_NOTCL] Open Gerber cancelled." msgstr "[WARNING_NOTCL] Открытие Gerber отменено." -#: FlatCAMApp.py:6042 FlatCAMApp.py:6045 flatcamGUI/FlatCAMGUI.py:609 +#: FlatCAMApp.py:6150 FlatCAMApp.py:6153 flatcamGUI/FlatCAMGUI.py:609 #: flatcamGUI/FlatCAMGUI.py:1833 msgid "Open Excellon" msgstr "Открыть Excellon" -#: FlatCAMApp.py:6050 +#: FlatCAMApp.py:6158 msgid "[WARNING_NOTCL] Open Excellon cancelled." msgstr "[WARNING_NOTCL] Открытие Excellon отменено." -#: FlatCAMApp.py:6072 FlatCAMApp.py:6075 +#: FlatCAMApp.py:6180 FlatCAMApp.py:6183 msgid "Open G-Code" msgstr "Открыть G-Code" -#: FlatCAMApp.py:6080 +#: FlatCAMApp.py:6188 msgid "[WARNING_NOTCL] Open G-Code cancelled." msgstr "[WARNING_NOTCL] Открытие G-Code отменено." -#: FlatCAMApp.py:6098 FlatCAMApp.py:6101 +#: FlatCAMApp.py:6206 FlatCAMApp.py:6209 msgid "Open Project" msgstr "Открыть проект" -#: FlatCAMApp.py:6109 +#: FlatCAMApp.py:6217 msgid "[WARNING_NOTCL] Open Project cancelled." msgstr "[WARNING_NOTCL] Открытие проекта отменено." -#: FlatCAMApp.py:6128 FlatCAMApp.py:6131 +#: FlatCAMApp.py:6236 FlatCAMApp.py:6239 msgid "Open Configuration File" msgstr "Открыть файл конфигурации" -#: FlatCAMApp.py:6135 +#: FlatCAMApp.py:6243 msgid "[WARNING_NOTCL] Open Config cancelled." msgstr "[WARNING_NOTCL] Открытие конфигурации отменено." -#: FlatCAMApp.py:6150 FlatCAMApp.py:6401 FlatCAMApp.py:8551 FlatCAMApp.py:8571 -#: FlatCAMApp.py:8592 FlatCAMApp.py:8614 +#: FlatCAMApp.py:6258 FlatCAMApp.py:6509 FlatCAMApp.py:8662 FlatCAMApp.py:8682 +#: FlatCAMApp.py:8703 FlatCAMApp.py:8725 msgid "[WARNING_NOTCL] No object selected." msgstr "[WARNING_NOTCL] Нет выбранных объектов." -#: FlatCAMApp.py:6151 FlatCAMApp.py:6402 +#: FlatCAMApp.py:6259 FlatCAMApp.py:6510 msgid "Please Select a Geometry object to export" msgstr "Выберите объект Geometry для экспорта" -#: FlatCAMApp.py:6162 +#: FlatCAMApp.py:6270 msgid "[ERROR_NOTCL] Only Geometry, Gerber and CNCJob objects can be used." msgstr "" "[ERROR_NOTCL] Можно использовать только объекты Geometry, Gerber и CNCJob." -#: FlatCAMApp.py:6175 FlatCAMApp.py:6179 +#: FlatCAMApp.py:6283 FlatCAMApp.py:6287 msgid "Export SVG" msgstr "Экспорт SVG" -#: FlatCAMApp.py:6184 +#: FlatCAMApp.py:6292 msgid "[WARNING_NOTCL] Export SVG cancelled." msgstr "[WARNING_NOTCL] Экспорт SVG отменён." -#: FlatCAMApp.py:6203 +#: FlatCAMApp.py:6311 msgid "[[WARNING_NOTCL]] Data must be a 3D array with last dimension 3 or 4" msgstr "" "[WARNING_NOTCL] Данные должны быть 3D массивом с последним размером 3 или 4" -#: FlatCAMApp.py:6209 FlatCAMApp.py:6213 +#: FlatCAMApp.py:6317 FlatCAMApp.py:6321 msgid "Export PNG Image" msgstr "Экспорт PNG изображения" -#: FlatCAMApp.py:6218 +#: FlatCAMApp.py:6326 msgid "Export PNG cancelled." msgstr "Экспорт PNG отменён." -#: FlatCAMApp.py:6237 +#: FlatCAMApp.py:6345 msgid "" "[WARNING_NOTCL] No object selected. Please select an Gerber object to export." msgstr "" "[WARNING_NOTCL] Нет выбранных объектов. Пожалуйста, выберите Gerber объект " "для экспорта." -#: FlatCAMApp.py:6242 FlatCAMApp.py:6365 +#: FlatCAMApp.py:6350 FlatCAMApp.py:6473 msgid "" "[ERROR_NOTCL] Failed. Only Gerber objects can be saved as Gerber files..." msgstr "" "[ERROR_NOTCL] Ошибка. Только объекты Gerber могут быть сохранены как файлы " "Gerber..." -#: FlatCAMApp.py:6254 +#: FlatCAMApp.py:6362 msgid "Save Gerber source file" msgstr "Сохранить исходный файл Gerber" -#: FlatCAMApp.py:6259 +#: FlatCAMApp.py:6367 msgid "[WARNING_NOTCL] Save Gerber source file cancelled." msgstr "[WARNING_NOTCL] Сохранение исходного кода файла Gerber отменено." -#: FlatCAMApp.py:6278 +#: FlatCAMApp.py:6386 msgid "" "[WARNING_NOTCL] No object selected. Please select an Excellon object to " "export." @@ -653,22 +657,22 @@ msgstr "" "[WARNING_NOTCL] Объект не выбран. Пожалуйста, выберите Excellon объект для " "экспорта." -#: FlatCAMApp.py:6283 FlatCAMApp.py:6324 +#: FlatCAMApp.py:6391 FlatCAMApp.py:6432 msgid "" "[ERROR_NOTCL] Failed. Only Excellon objects can be saved as Excellon files..." msgstr "" "[ERROR_NOTCL] Ошибка. Только объекты Excellon могут быть сохранены как файлы " "Excellon..." -#: FlatCAMApp.py:6291 FlatCAMApp.py:6295 +#: FlatCAMApp.py:6399 FlatCAMApp.py:6403 msgid "Save Excellon source file" msgstr "Сохранить исходный файл Excellon" -#: FlatCAMApp.py:6300 +#: FlatCAMApp.py:6408 msgid "[WARNING_NOTCL] Saving Excellon source file cancelled." msgstr "[WARNING_NOTCL] Сохранение исходного кода файла Excellon отменено." -#: FlatCAMApp.py:6319 +#: FlatCAMApp.py:6427 msgid "" "[WARNING_NOTCL] No object selected. Please Select an Excellon object to " "export." @@ -676,95 +680,95 @@ msgstr "" "[WARNING_NOTCL] Объект не выбран. Пожалуйста, выберите Excellon объект для " "экспорта." -#: FlatCAMApp.py:6332 FlatCAMApp.py:6336 +#: FlatCAMApp.py:6440 FlatCAMApp.py:6444 msgid "Export Excellon" msgstr "Экспорт Excellon" -#: FlatCAMApp.py:6341 +#: FlatCAMApp.py:6449 msgid "[WARNING_NOTCL] Export Excellon cancelled." msgstr "[WARNING_NOTCL] Экспорт Excellon отменен." -#: FlatCAMApp.py:6360 +#: FlatCAMApp.py:6468 msgid "" "[WARNING_NOTCL] No object selected. Please Select an Gerber object to export." msgstr "" "[WARNING_NOTCL] Нет выбранных объектов. Пожалуйста, выберите Gerber объект " "для экспорта." -#: FlatCAMApp.py:6373 FlatCAMApp.py:6377 +#: FlatCAMApp.py:6481 FlatCAMApp.py:6485 msgid "Export Gerber" msgstr "Экспорт Gerber" -#: FlatCAMApp.py:6382 +#: FlatCAMApp.py:6490 msgid "[WARNING_NOTCL] Export Gerber cancelled." msgstr "[WARNING_NOTCL] Экспорт Gerber отменен." -#: FlatCAMApp.py:6412 +#: FlatCAMApp.py:6520 msgid "[ERROR_NOTCL] Only Geometry objects can be used." msgstr "[ERROR_NOTCL] Можно использовать только объекты Geometry." -#: FlatCAMApp.py:6426 FlatCAMApp.py:6430 +#: FlatCAMApp.py:6534 FlatCAMApp.py:6538 msgid "Export DXF" msgstr "Экспорт DXF" -#: FlatCAMApp.py:6436 +#: FlatCAMApp.py:6544 msgid "[WARNING_NOTCL] Export DXF cancelled." msgstr "[WARNING_NOTCL] Экспорт DXF отменен." -#: FlatCAMApp.py:6456 FlatCAMApp.py:6459 +#: FlatCAMApp.py:6564 FlatCAMApp.py:6567 msgid "Import SVG" msgstr "Импорт SVG" -#: FlatCAMApp.py:6468 +#: FlatCAMApp.py:6576 msgid "[WARNING_NOTCL] Open SVG cancelled." msgstr "[WARNING_NOTCL] Открытие SVG отменено." -#: FlatCAMApp.py:6487 FlatCAMApp.py:6491 +#: FlatCAMApp.py:6595 FlatCAMApp.py:6599 msgid "Import DXF" msgstr "Импорт DXF" -#: FlatCAMApp.py:6500 +#: FlatCAMApp.py:6608 msgid "[WARNING_NOTCL] Open DXF cancelled." msgstr "[WARNING_NOTCL] Открытие DXF отменено." -#: FlatCAMApp.py:6518 +#: FlatCAMApp.py:6626 #, python-format msgid "%s" msgstr "%s" -#: FlatCAMApp.py:6538 +#: FlatCAMApp.py:6646 msgid "" "[WARNING_NOTCL] Select an Gerber or Excellon file to view it's source file." msgstr "" "[WARNING_NOTCL] Выберите файл Gerber или Excellon для просмотра исходного " "кода файла." -#: FlatCAMApp.py:6545 +#: FlatCAMApp.py:6653 msgid "" "[WARNING_NOTCL] There is no selected object for which to see it's source " "file code." msgstr "" "[WARNING_NOTCL] Нет выбранного объекта, для просмотра исходного кода файла." -#: FlatCAMApp.py:6553 +#: FlatCAMApp.py:6661 msgid "Source Editor" msgstr "Редактор исходного кода" -#: FlatCAMApp.py:6563 +#: FlatCAMApp.py:6671 #, python-format msgid "[ERROR]App.on_view_source() -->%s" msgstr "[ERROR]App.on_view_source() -->%s" -#: FlatCAMApp.py:6575 FlatCAMApp.py:7717 FlatCAMObj.py:5551 +#: FlatCAMApp.py:6683 FlatCAMApp.py:7825 FlatCAMObj.py:5588 #: flatcamTools/ToolSolderPaste.py:1278 msgid "Code Editor" msgstr "Редактор кода" -#: FlatCAMApp.py:6587 +#: FlatCAMApp.py:6695 msgid "Script Editor" msgstr "Редактор сценариев" -#: FlatCAMApp.py:6590 +#: FlatCAMApp.py:6698 msgid "" "#\n" "# CREATE A NEW FLATCAM TCL SCRIPT\n" @@ -808,98 +812,98 @@ msgstr "" "#\n" "\n" -#: FlatCAMApp.py:6613 FlatCAMApp.py:6616 +#: FlatCAMApp.py:6721 FlatCAMApp.py:6724 msgid "Open TCL script" msgstr "Открыть сценарий TCL" -#: FlatCAMApp.py:6624 +#: FlatCAMApp.py:6732 msgid "[WARNING_NOTCL] Open TCL script cancelled." msgstr "[WARNING_NOTCL] Открытие сценария отменено." -#: FlatCAMApp.py:6636 +#: FlatCAMApp.py:6744 #, python-format msgid "[ERROR]App.on_fileopenscript() -->%s" msgstr "[ERROR]App.on_fileopenscript() -->%s" -#: FlatCAMApp.py:6662 FlatCAMApp.py:6665 +#: FlatCAMApp.py:6770 FlatCAMApp.py:6773 msgid "Run TCL script" msgstr "Запустить сценарий TCL" -#: FlatCAMApp.py:6673 +#: FlatCAMApp.py:6781 msgid "[WARNING_NOTCL] Run TCL script cancelled." msgstr "[WARNING_NOTCL] Запуск сценария отменен." -#: FlatCAMApp.py:6723 FlatCAMApp.py:6727 +#: FlatCAMApp.py:6831 FlatCAMApp.py:6835 msgid "Save Project As ..." msgstr "Сохранить проект как..." -#: FlatCAMApp.py:6724 +#: FlatCAMApp.py:6832 #, python-brace-format msgid "{l_save}/Project_{date}" msgstr "{l_save}/Project_{date}" -#: FlatCAMApp.py:6732 +#: FlatCAMApp.py:6840 msgid "[WARNING_NOTCL] Save Project cancelled." msgstr "[WARNING_NOTCL] Сохранение проекта отменено." -#: FlatCAMApp.py:6776 +#: FlatCAMApp.py:6884 msgid "Exporting SVG" msgstr "Экспортирование SVG" -#: FlatCAMApp.py:6810 FlatCAMApp.py:6916 FlatCAMApp.py:7031 +#: FlatCAMApp.py:6918 FlatCAMApp.py:7024 FlatCAMApp.py:7139 #, python-format msgid "[success] SVG file exported to %s" msgstr "[success] Файл SVG экспортируется в %s" -#: FlatCAMApp.py:6841 FlatCAMApp.py:6962 +#: FlatCAMApp.py:6949 FlatCAMApp.py:7070 #, python-format msgid "[WARNING_NOTCL] No object Box. Using instead %s" msgstr "[WARNING_NOTCL] Нет объекта Box. Используйте взамен %s" -#: FlatCAMApp.py:6919 FlatCAMApp.py:7034 +#: FlatCAMApp.py:7027 FlatCAMApp.py:7142 msgid "Generating Film ... Please wait." msgstr "Создание фильма ... Пожалуйста, подождите." -#: FlatCAMApp.py:7182 +#: FlatCAMApp.py:7290 #, python-format msgid "[success] Excellon file exported to %s" msgstr "[success] Файл Excellon экспортируется в %s" -#: FlatCAMApp.py:7189 +#: FlatCAMApp.py:7297 msgid "Exporting Excellon" msgstr "Экспорт Excellon" -#: FlatCAMApp.py:7194 FlatCAMApp.py:7201 +#: FlatCAMApp.py:7302 FlatCAMApp.py:7309 msgid "[ERROR_NOTCL] Could not export Excellon file." msgstr "[ERROR_NOTCL] Не удалось экспортировать файл Excellon." -#: FlatCAMApp.py:7299 +#: FlatCAMApp.py:7407 #, python-format msgid "[success] Gerber file exported to %s" msgstr "[success] Файл Gerber экспортируется в %s" -#: FlatCAMApp.py:7306 +#: FlatCAMApp.py:7414 msgid "Exporting Gerber" msgstr "Экспортирование Gerber" -#: FlatCAMApp.py:7311 FlatCAMApp.py:7318 +#: FlatCAMApp.py:7419 FlatCAMApp.py:7426 msgid "[ERROR_NOTCL] Could not export Gerber file." msgstr "[ERROR_NOTCL] Не удалось экспортировать файл Gerber." -#: FlatCAMApp.py:7358 +#: FlatCAMApp.py:7466 #, python-format msgid "[success] DXF file exported to %s" msgstr "[success] Файл DXF экспортируется в %s" -#: FlatCAMApp.py:7364 +#: FlatCAMApp.py:7472 msgid "Exporting DXF" msgstr "Экспорт DXF" -#: FlatCAMApp.py:7369 FlatCAMApp.py:7376 +#: FlatCAMApp.py:7477 FlatCAMApp.py:7484 msgid "[[WARNING_NOTCL]] Could not export DXF file." msgstr "[WARNING_NOTCL] Не удалось экспортировать файл DXF." -#: FlatCAMApp.py:7396 FlatCAMApp.py:7438 FlatCAMApp.py:7482 +#: FlatCAMApp.py:7504 FlatCAMApp.py:7546 FlatCAMApp.py:7590 msgid "" "[ERROR_NOTCL] Not supported type is picked as parameter. Only Geometry and " "Gerber are supported" @@ -907,98 +911,98 @@ msgstr "" "[ERROR_NOTCL] В качестве параметра выбран не поддерживаемый тип. " "Поддерживаются только Geometry и Gerber" -#: FlatCAMApp.py:7406 +#: FlatCAMApp.py:7514 msgid "Importing SVG" msgstr "Импортирование SVG" -#: FlatCAMApp.py:7417 FlatCAMApp.py:7459 FlatCAMApp.py:7502 FlatCAMApp.py:7579 -#: FlatCAMApp.py:7640 FlatCAMApp.py:7703 flatcamTools/ToolPDF.py:212 +#: FlatCAMApp.py:7525 FlatCAMApp.py:7567 FlatCAMApp.py:7610 FlatCAMApp.py:7687 +#: FlatCAMApp.py:7748 FlatCAMApp.py:7811 flatcamTools/ToolPDF.py:212 #, python-format msgid "[success] Opened: %s" msgstr "[success] Открыт: %s" -#: FlatCAMApp.py:7448 +#: FlatCAMApp.py:7556 msgid "Importing DXF" msgstr "Импорт DXF" -#: FlatCAMApp.py:7490 +#: FlatCAMApp.py:7598 msgid "Importing Image" msgstr "Импорт изображения" -#: FlatCAMApp.py:7531 FlatCAMApp.py:7533 +#: FlatCAMApp.py:7639 FlatCAMApp.py:7641 #, python-format msgid "[ERROR_NOTCL] Failed to open file: %s" msgstr "[ERROR_NOTCL] Не удалось открыть файл: %s" -#: FlatCAMApp.py:7536 +#: FlatCAMApp.py:7644 #, python-brace-format msgid "[ERROR_NOTCL] Failed to parse file: {name}. {error}" msgstr "[ERROR_NOTCL] Не удалось проанализировать файл: {name}. {error}" -#: FlatCAMApp.py:7543 FlatCAMObj.py:4230 +#: FlatCAMApp.py:7651 FlatCAMObj.py:4266 #: flatcamEditors/FlatCAMExcEditor.py:2077 msgid "[ERROR] An internal error has ocurred. See shell.\n" msgstr "[ERROR] Произошла внутренняя ошибка. Посмотрите в командную строку.\n" -#: FlatCAMApp.py:7552 +#: FlatCAMApp.py:7660 msgid "" "[ERROR_NOTCL] Object is not Gerber file or empty. Aborting object creation." msgstr "" "[ERROR_NOTCL] Объект не является файлом Gerber или пустым. Прерывание " "создания объекта." -#: FlatCAMApp.py:7560 +#: FlatCAMApp.py:7668 msgid "Opening Gerber" msgstr "Открытие Gerber" -#: FlatCAMApp.py:7570 +#: FlatCAMApp.py:7678 msgid "[ERROR_NOTCL] Open Gerber failed. Probable not a Gerber file." msgstr "[ERROR_NOTCL] Открыть Gerber не удалось. Вероятно это не Gerber файл." -#: FlatCAMApp.py:7603 flatcamTools/ToolPcbWizard.py:421 +#: FlatCAMApp.py:7711 flatcamTools/ToolPcbWizard.py:421 msgid "[ERROR_NOTCL] This is not Excellon file." msgstr "[ERROR_NOTCL] Это не Excellon файл." -#: FlatCAMApp.py:7606 +#: FlatCAMApp.py:7714 #, python-format msgid "[ERROR_NOTCL] Cannot open file: %s" msgstr "[ERROR_NOTCL] Не удается открыть файл: %s" -#: FlatCAMApp.py:7611 flatcamTools/ToolPcbWizard.py:429 +#: FlatCAMApp.py:7719 flatcamTools/ToolPcbWizard.py:429 msgid "[ERROR_NOTCL] An internal error has occurred. See shell.\n" msgstr "" "[ERROR_NOTCL] Произошла внутренняя ошибка. Смотрите коммандную строку.\n" -#: FlatCAMApp.py:7624 flatcamTools/ToolPDF.py:262 +#: FlatCAMApp.py:7732 flatcamTools/ToolPDF.py:262 #: flatcamTools/ToolPcbWizard.py:442 #, python-format msgid "[ERROR_NOTCL] No geometry found in file: %s" msgstr "[ERROR_NOTCL] Геометрия не найдена в файле: %s" -#: FlatCAMApp.py:7627 +#: FlatCAMApp.py:7735 msgid "Opening Excellon." msgstr "Открытие Excellon." -#: FlatCAMApp.py:7633 +#: FlatCAMApp.py:7741 msgid "[ERROR_NOTCL] Open Excellon file failed. Probable not an Excellon file." msgstr "" "[ERROR_NOTCL] Не удалось открыть файл Excellon. Вероятно это не файл " "Excellon." -#: FlatCAMApp.py:7670 +#: FlatCAMApp.py:7778 #, python-format msgid "[ERROR_NOTCL] Failed to open %s" msgstr "[ERROR_NOTCL] Не удалось открыть %s" -#: FlatCAMApp.py:7680 +#: FlatCAMApp.py:7788 msgid "[ERROR_NOTCL] This is not GCODE" msgstr "[ERROR_NOTCL] Это не GCODE" -#: FlatCAMApp.py:7686 +#: FlatCAMApp.py:7794 msgid "Opening G-Code." msgstr "Открытие G-Code." -#: FlatCAMApp.py:7694 +#: FlatCAMApp.py:7802 msgid "" "[ERROR_NOTCL] Failed to create CNCJob Object. Probable not a GCode file.\n" " Attempting to create a FlatCAM CNCJob Object from G-Code file failed during " @@ -1008,26 +1012,26 @@ msgstr "" " Попытка создать объект Flatcam CNCJob из файла G-кода не удалась во время " "обработки" -#: FlatCAMApp.py:7734 +#: FlatCAMApp.py:7842 #, python-format msgid "[ERROR_NOTCL] Failed to open config file: %s" msgstr "[ERROR_NOTCL] Не удалось открыть файл конфигурации: %s" -#: FlatCAMApp.py:7760 FlatCAMApp.py:7777 +#: FlatCAMApp.py:7868 FlatCAMApp.py:7885 #, python-format msgid "[ERROR_NOTCL] Failed to open project file: %s" msgstr "[ERROR_NOTCL] Не удалось открыть файл проекта: %s" -#: FlatCAMApp.py:7800 +#: FlatCAMApp.py:7908 #, python-format msgid "[success] Project loaded from: %s" msgstr "[success] Проект загружен из: %s" -#: FlatCAMApp.py:7905 +#: FlatCAMApp.py:8013 msgid "Available commands:\n" msgstr "Доступные команды:\n" -#: FlatCAMApp.py:7907 +#: FlatCAMApp.py:8015 msgid "" "\n" "\n" @@ -1039,27 +1043,27 @@ msgstr "" "Для дополнительной информации ведите help <имя_команды> .\n" "Пример: help open_gerber" -#: FlatCAMApp.py:8057 +#: FlatCAMApp.py:8165 msgid "Shows list of commands." msgstr "Показывает список команд." -#: FlatCAMApp.py:8114 +#: FlatCAMApp.py:8222 msgid "[ERROR_NOTCL] Failed to load recent item list." msgstr "[ERROR_NOTCL] Не удалось загрузить список недавних файлов." -#: FlatCAMApp.py:8121 +#: FlatCAMApp.py:8229 msgid "[ERROR_NOTCL] Failed to parse recent item list." msgstr "[ERROR_NOTCL] Не удалось прочитать список недавних файлов." -#: FlatCAMApp.py:8165 +#: FlatCAMApp.py:8273 msgid "Clear Recent files" msgstr "Очистить список" -#: FlatCAMApp.py:8182 flatcamGUI/FlatCAMGUI.py:968 +#: FlatCAMApp.py:8290 flatcamGUI/FlatCAMGUI.py:968 msgid "Shortcut Key List" msgstr "Список сочетаний клавиш" -#: FlatCAMApp.py:8189 +#: FlatCAMApp.py:8297 msgid "" "\n" "

Selected Tab - Choose an Item from " @@ -1154,25 +1158,25 @@ msgstr "" "\n" " " -#: FlatCAMApp.py:8293 +#: FlatCAMApp.py:8404 msgid "[WARNING_NOTCL] Failed checking for latest version. Could not connect." msgstr "" "[WARNING_NOTCL] Не удалось проверить обновление программы. Отсутствует " "интернет подключение ." -#: FlatCAMApp.py:8300 +#: FlatCAMApp.py:8411 msgid "[ERROR_NOTCL] Could not parse information about latest version." msgstr "[ERROR_NOTCL] Не удается обработать информацию о последней версии." -#: FlatCAMApp.py:8310 +#: FlatCAMApp.py:8421 msgid "[success] FlatCAM is up to date!" msgstr "[success] FlatCAM в актуальном состоянии!" -#: FlatCAMApp.py:8315 +#: FlatCAMApp.py:8426 msgid "Newer Version Available" msgstr "Доступна новая версия" -#: FlatCAMApp.py:8316 +#: FlatCAMApp.py:8427 msgid "" "There is a newer version of FlatCAM available for download:\n" "\n" @@ -1180,97 +1184,97 @@ msgstr "" "Новая версия FlatCAM доступна для загрузки:\n" "\n" -#: FlatCAMApp.py:8318 +#: FlatCAMApp.py:8429 msgid "info" msgstr "инфо" -#: FlatCAMApp.py:8337 +#: FlatCAMApp.py:8448 msgid "[success] All plots disabled." msgstr "[success] Все участки отключены." -#: FlatCAMApp.py:8343 +#: FlatCAMApp.py:8454 msgid "[success] All non selected plots disabled." msgstr "[success] Все невыбранные участки отключены.." -#: FlatCAMApp.py:8349 +#: FlatCAMApp.py:8460 msgid "[success] All plots enabled." msgstr "[success] Все участки включены." -#: FlatCAMApp.py:8355 +#: FlatCAMApp.py:8466 msgid "[success] Selected plots enabled..." msgstr "[success] Выбранные участки включены..." -#: FlatCAMApp.py:8363 +#: FlatCAMApp.py:8474 msgid "[success] Selected plots disabled..." msgstr "[success] Выбранные участки отключены..." -#: FlatCAMApp.py:8373 FlatCAMApp.py:8386 +#: FlatCAMApp.py:8484 FlatCAMApp.py:8497 msgid "Working ..." msgstr "Обработка…" -#: FlatCAMApp.py:8420 +#: FlatCAMApp.py:8531 msgid "Saving FlatCAM Project" msgstr "Сохранение проекта FlatCAM" -#: FlatCAMApp.py:8441 FlatCAMApp.py:8472 +#: FlatCAMApp.py:8552 FlatCAMApp.py:8583 #, python-format msgid "[success] Project saved to: %s" msgstr "[success] Проект сохранён в: %s" -#: FlatCAMApp.py:8459 +#: FlatCAMApp.py:8570 #, python-format msgid "[ERROR_NOTCL] Failed to verify project file: %s. Retry to save it." msgstr "" "[ERROR_NOTCL] Не удалось проверить файл проекта: %s. Повторите попытку " "сохранения." -#: FlatCAMApp.py:8466 +#: FlatCAMApp.py:8577 #, python-format msgid "[ERROR_NOTCL] Failed to parse saved project file: %s. Retry to save it." msgstr "" "[ERROR_NOTCL] Не удалось проанализировать сохраняемый файл проекта: %s. " "Повторите попытку сохранения." -#: FlatCAMApp.py:8474 +#: FlatCAMApp.py:8585 #, python-format msgid "[ERROR_NOTCL] Failed to save project file: %s. Retry to save it." msgstr "" "[ERROR_NOTCL] Не удалось сохранить файл проекта: %s. Повторите попытку " "сохранения." -#: FlatCAMObj.py:202 +#: FlatCAMObj.py:207 #, python-brace-format msgid "[success] Name changed from {old} to {new}" msgstr "[success] Имя изменено с {old} на {new}" -#: FlatCAMObj.py:545 FlatCAMObj.py:2031 FlatCAMObj.py:3275 FlatCAMObj.py:5448 +#: FlatCAMObj.py:553 FlatCAMObj.py:2034 FlatCAMObj.py:3300 FlatCAMObj.py:5485 msgid "Basic" msgstr "Базовый" -#: FlatCAMObj.py:557 FlatCAMObj.py:2047 FlatCAMObj.py:3297 FlatCAMObj.py:5454 +#: FlatCAMObj.py:565 FlatCAMObj.py:2050 FlatCAMObj.py:3322 FlatCAMObj.py:5491 msgid "Advanced" msgstr "Расширенный" -#: FlatCAMObj.py:920 FlatCAMObj.py:975 +#: FlatCAMObj.py:927 FlatCAMObj.py:982 #, python-format msgid "[success] Isolation geometry created: %s" msgstr "[success] Создана геометрия изоляции: %s" -#: FlatCAMObj.py:1154 +#: FlatCAMObj.py:1161 msgid "Plotting Apertures" msgstr "Создание отверстия" -#: FlatCAMObj.py:1870 flatcamEditors/FlatCAMExcEditor.py:1368 +#: FlatCAMObj.py:1877 flatcamEditors/FlatCAMExcEditor.py:1368 msgid "Total Drills" msgstr "Всего отверстий" -#: FlatCAMObj.py:1896 flatcamEditors/FlatCAMExcEditor.py:1400 +#: FlatCAMObj.py:1903 flatcamEditors/FlatCAMExcEditor.py:1400 msgid "Total Slots" msgstr "Всего пазов" -#: FlatCAMObj.py:2103 FlatCAMObj.py:3348 FlatCAMObj.py:3646 FlatCAMObj.py:3833 -#: FlatCAMObj.py:3846 FlatCAMObj.py:3963 FlatCAMObj.py:4380 FlatCAMObj.py:4618 -#: FlatCAMObj.py:5031 flatcamEditors/FlatCAMExcEditor.py:1474 +#: FlatCAMObj.py:2106 FlatCAMObj.py:3374 FlatCAMObj.py:3674 FlatCAMObj.py:3869 +#: FlatCAMObj.py:3882 FlatCAMObj.py:3999 FlatCAMObj.py:4416 FlatCAMObj.py:4654 +#: FlatCAMObj.py:5067 flatcamEditors/FlatCAMExcEditor.py:1474 #: flatcamTools/ToolCalculators.py:307 flatcamTools/ToolCalculators.py:318 #: flatcamTools/ToolCalculators.py:330 flatcamTools/ToolCalculators.py:345 #: flatcamTools/ToolCalculators.py:358 flatcamTools/ToolCalculators.py:372 @@ -1289,23 +1293,23 @@ msgstr "Всего пазов" msgid "[ERROR_NOTCL] Wrong value format entered, use a number." msgstr "[ERROR_NOTCL] Неправильно введен формат значения, используйте числа." -#: FlatCAMObj.py:2327 FlatCAMObj.py:2418 FlatCAMObj.py:2540 +#: FlatCAMObj.py:2330 FlatCAMObj.py:2422 FlatCAMObj.py:2545 msgid "" "[ERROR_NOTCL] Please select one or more tools from the list and try again." msgstr "" "[ERROR_NOTCL] Пожалуйста, выберите один или несколько инструментов из списка " "и попробуйте еще раз." -#: FlatCAMObj.py:2334 +#: FlatCAMObj.py:2337 msgid "" "[ERROR_NOTCL] Milling tool for DRILLS is larger than hole size. Cancelled." msgstr "[ERROR_NOTCL] Сверло больше, чем размер отверстия. Отмена." -#: FlatCAMObj.py:2348 FlatCAMObj.py:2442 FlatCAMObj.py:2560 +#: FlatCAMObj.py:2351 FlatCAMObj.py:2446 FlatCAMObj.py:2565 msgid "Tool_nr" msgstr "№ инструмента" -#: FlatCAMObj.py:2348 FlatCAMObj.py:2442 FlatCAMObj.py:2560 +#: FlatCAMObj.py:2351 FlatCAMObj.py:2446 FlatCAMObj.py:2565 #: flatcamEditors/FlatCAMExcEditor.py:819 #: flatcamEditors/FlatCAMExcEditor.py:2020 flatcamGUI/ObjectUI.py:556 #: flatcamTools/ToolNonCopperClear.py:83 flatcamTools/ToolPaint.py:80 @@ -1313,22 +1317,22 @@ msgstr "№ инструмента" msgid "Diameter" msgstr "Диаметр" -#: FlatCAMObj.py:2348 FlatCAMObj.py:2442 FlatCAMObj.py:2560 +#: FlatCAMObj.py:2351 FlatCAMObj.py:2446 FlatCAMObj.py:2565 msgid "Drills_Nr" msgstr "№ отверстия" -#: FlatCAMObj.py:2348 FlatCAMObj.py:2442 FlatCAMObj.py:2560 +#: FlatCAMObj.py:2351 FlatCAMObj.py:2446 FlatCAMObj.py:2565 msgid "Slots_Nr" msgstr "№ паза" -#: FlatCAMObj.py:2428 +#: FlatCAMObj.py:2432 msgid "" "[ERROR_NOTCL] Milling tool for SLOTS is larger than hole size. Cancelled." msgstr "" "[ERROR_NOTCL] Инструмент для прорезания пазов больше, чем размер отверстия. " "Отмена." -#: FlatCAMObj.py:2602 FlatCAMObj.py:4268 FlatCAMObj.py:4484 FlatCAMObj.py:4801 +#: FlatCAMObj.py:2607 FlatCAMObj.py:4304 FlatCAMObj.py:4520 FlatCAMObj.py:4837 msgid "" "[ERROR_NOTCL] Wrong value format for self.defaults[\"z_pdepth\"] or self." "options[\"z_pdepth\"]" @@ -1336,7 +1340,7 @@ msgstr "" "[ERROR_NOTCL] Неправильный формат значения для self.defaults[\"z_pdepth\"] " "или self.options[\"z_pdepth\"]" -#: FlatCAMObj.py:2614 FlatCAMObj.py:4280 FlatCAMObj.py:4496 FlatCAMObj.py:4813 +#: FlatCAMObj.py:2619 FlatCAMObj.py:4316 FlatCAMObj.py:4532 FlatCAMObj.py:4849 msgid "" "[ERROR_NOTCL] Wrong value format for self.defaults[\"feedrate_probe\"] or " "self.options[\"feedrate_probe\"]" @@ -1344,12 +1348,12 @@ msgstr "" "[ERROR_NOTCL] Неправильный формат значения для self.defaults[\"feedrate_probe" "\"] или self.options[\"feedrate_probe\"]" -#: FlatCAMObj.py:2646 FlatCAMObj.py:4689 FlatCAMObj.py:4694 FlatCAMObj.py:4844 +#: FlatCAMObj.py:2651 FlatCAMObj.py:4725 FlatCAMObj.py:4730 FlatCAMObj.py:4880 msgid "Generating CNC Code" msgstr "Генерация кода ЧПУ" -#: FlatCAMObj.py:2672 FlatCAMObj.py:4990 camlib.py:5164 camlib.py:5623 -#: camlib.py:5886 +#: FlatCAMObj.py:2677 FlatCAMObj.py:5026 camlib.py:5167 camlib.py:5626 +#: camlib.py:5889 msgid "" "[ERROR]The Toolchange X,Y field in Edit -> Preferences has to be in the " "format (x, y) \n" @@ -1359,61 +1363,61 @@ msgstr "" "формате (x, y)\n" "но теперь есть только одно значение, а не два. " -#: FlatCAMObj.py:2984 FlatCAMObj.py:3889 FlatCAMObj.py:3890 FlatCAMObj.py:3899 +#: FlatCAMObj.py:2997 FlatCAMObj.py:3925 FlatCAMObj.py:3926 FlatCAMObj.py:3935 msgid "Iso" msgstr "Iso" -#: FlatCAMObj.py:2984 FlatCAMObj.py:3233 FlatCAMObj.py:3513 +#: FlatCAMObj.py:2997 FlatCAMObj.py:3257 FlatCAMObj.py:3539 msgid "Rough" msgstr "Грубый" -#: FlatCAMObj.py:2984 +#: FlatCAMObj.py:2997 msgid "Finish" msgstr "Конец" -#: FlatCAMObj.py:3268 flatcamGUI/FlatCAMGUI.py:526 flatcamGUI/FlatCAMGUI.py:722 +#: FlatCAMObj.py:3293 flatcamGUI/FlatCAMGUI.py:526 flatcamGUI/FlatCAMGUI.py:722 #: flatcamGUI/FlatCAMGUI.py:1615 flatcamGUI/FlatCAMGUI.py:1951 #: flatcamGUI/ObjectUI.py:999 msgid "Copy" msgstr "Копировать" -#: FlatCAMObj.py:3483 +#: FlatCAMObj.py:3509 msgid "[ERROR_NOTCL] Please enter the desired tool diameter in Float format." msgstr "" "[ERROR_NOTCL] Пожалуйста, введите нужный диаметр инструмента в формате числа " "с плавающей точкой." -#: FlatCAMObj.py:3556 +#: FlatCAMObj.py:3584 msgid "[success] Tool added in Tool Table." msgstr "[success] Инструмент добавлен в таблицу инструментов." -#: FlatCAMObj.py:3561 +#: FlatCAMObj.py:3589 msgid "[ERROR_NOTCL] Default Tool added. Wrong value format entered." msgstr "" "[ERROR_NOTCL] Добавлен инструмент по умолчанию. Введен неправильный формат " "значения." -#: FlatCAMObj.py:3591 FlatCAMObj.py:3601 +#: FlatCAMObj.py:3619 FlatCAMObj.py:3629 msgid "[WARNING_NOTCL] Failed. Select a tool to copy." msgstr "[WARNING_NOTCL] Ошибка. Выберите инструмент для копирования." -#: FlatCAMObj.py:3630 +#: FlatCAMObj.py:3658 msgid "[success] Tool was copied in Tool Table." msgstr "[success] Инструмент скопирован в таблицу инструментов." -#: FlatCAMObj.py:3663 +#: FlatCAMObj.py:3691 msgid "[success] Tool was edited in Tool Table." msgstr "[success] Инструмент был изменён в таблице инструментов." -#: FlatCAMObj.py:3694 FlatCAMObj.py:3704 +#: FlatCAMObj.py:3722 FlatCAMObj.py:3732 msgid "[WARNING_NOTCL] Failed. Select a tool to delete." msgstr "[WARNING_NOTCL] Ошибка. Выберите инструмент для удаления." -#: FlatCAMObj.py:3728 +#: FlatCAMObj.py:3756 msgid "[success] Tool was deleted in Tool Table." msgstr "[success] Инструмент был удален из таблицы инструментов." -#: FlatCAMObj.py:4149 +#: FlatCAMObj.py:4185 #, python-format msgid "" "[WARNING_NOTCL] This Geometry can't be processed because it is %s geometry." @@ -1421,21 +1425,21 @@ msgstr "" "[WARNING_NOTCL] Эта Geometry не может быть обработана, так как это %s " "геометрия." -#: FlatCAMObj.py:4166 +#: FlatCAMObj.py:4202 msgid "[ERROR_NOTCL] Wrong Tool Dia value format entered, use a number." msgstr "" "[ERROR_NOTCL] Неверный формат ввода диаметра инструмента, используйте цифры." -#: FlatCAMObj.py:4193 +#: FlatCAMObj.py:4229 msgid "[ERROR_NOTCL] Failed. No tool selected in the tool table ..." msgstr "[ERROR_NOTCL] Ошибка. Инструмент не выбран в таблице инструментов ..." -#: FlatCAMObj.py:4231 +#: FlatCAMObj.py:4267 #, python-format msgid "FlatCAMObj.FlatCAMGeometry.mtool_gen_cncjob() --> %s" msgstr "FlatCAMObj.FlatCAMGeometry.mtool_gen_cncjob() --> %s" -#: FlatCAMObj.py:4389 FlatCAMObj.py:4627 +#: FlatCAMObj.py:4425 FlatCAMObj.py:4663 msgid "" "[WARNING] Tool Offset is selected in Tool Table but no value is provided.\n" "Add a Tool Offset or change the Offset Type." @@ -1444,22 +1448,22 @@ msgstr "" "указано.\n" "Добавьте смещение инструмента или измените тип смещения." -#: FlatCAMObj.py:4508 flatcamTools/ToolSolderPaste.py:1107 +#: FlatCAMObj.py:4544 flatcamTools/ToolSolderPaste.py:1107 #: flatcamTools/ToolSolderPaste.py:1162 msgid "[ERROR_NOTCL] Cancelled. Empty file, it has no geometry..." msgstr "[ERROR_NOTCL] Отмена. Пустой файл, он не имеет геометрии..." -#: FlatCAMObj.py:4877 FlatCAMObj.py:4887 camlib.py:3347 camlib.py:3356 +#: FlatCAMObj.py:4913 FlatCAMObj.py:4923 camlib.py:3348 camlib.py:3357 msgid "[ERROR_NOTCL] Scale factor has to be a number: integer or float." msgstr "" "[ERROR_NOTCL] Коэффициент масштабирования должен быть числом: целочисленным " "или с плавающей запятой." -#: FlatCAMObj.py:4925 +#: FlatCAMObj.py:4961 msgid "[success] Geometry Scale done." msgstr "[success] Масштабирование Geometry выполнено." -#: FlatCAMObj.py:4942 camlib.py:3425 +#: FlatCAMObj.py:4978 camlib.py:3426 msgid "" "[ERROR_NOTCL] An (x,y) pair of values are needed. Probable you entered only " "one value in the Offset field." @@ -1467,29 +1471,29 @@ msgstr "" "[ERROR_NOTCL] Необходима пара значений (x,y). Возможно, вы ввели только одно " "значение в поле \"Смещение\"." -#: FlatCAMObj.py:4962 +#: FlatCAMObj.py:4998 msgid "[success] Geometry Offset done." msgstr "[success] Смещение Geometry выполнено." -#: FlatCAMObj.py:5516 FlatCAMObj.py:5521 flatcamTools/ToolSolderPaste.py:1361 +#: FlatCAMObj.py:5553 FlatCAMObj.py:5558 flatcamTools/ToolSolderPaste.py:1361 msgid "Export Machine Code ..." msgstr "Экспорт GCode ..." -#: FlatCAMObj.py:5527 flatcamTools/ToolSolderPaste.py:1364 +#: FlatCAMObj.py:5564 flatcamTools/ToolSolderPaste.py:1364 msgid "[WARNING_NOTCL] Export Machine Code cancelled ..." msgstr "[WARNING_NOTCL] Экспорт GCode отменен ..." -#: FlatCAMObj.py:5540 +#: FlatCAMObj.py:5577 #, python-format msgid "[success] Machine Code file saved to: %s" msgstr "[success] Файл GCode сохранён в: %s" -#: FlatCAMObj.py:5562 +#: FlatCAMObj.py:5599 #, python-format msgid "[ERROR]FlatCAMCNNJob.on_edit_code_click() -->%s" msgstr "[ERROR]FlatCAMCNNJob.on_edit_code_click() -->%s" -#: FlatCAMObj.py:5679 +#: FlatCAMObj.py:5716 #, python-format msgid "" "[WARNING_NOTCL] This CNCJob object can't be processed because it is a %s " @@ -1498,11 +1502,11 @@ msgstr "" "[WARNING_NOTCL] CNCJob объект %s не может быть обработан, так как он " "является объектом CNCJob." -#: FlatCAMObj.py:5732 +#: FlatCAMObj.py:5769 msgid "[ERROR_NOTCL] G-code does not have a units code: either G20 or G21" msgstr "[ERROR_NOTCL] G-code не имеет кода единиц измерения: G20 или G21" -#: FlatCAMObj.py:5745 +#: FlatCAMObj.py:5782 msgid "" "[ERROR_NOTCL] Cancelled. The Toolchange Custom code is enabled but it's " "empty." @@ -1510,16 +1514,16 @@ msgstr "" "[ERROR_NOTCL] Отмена. Пользовательский код смены инструмента включен, но он " "пуст." -#: FlatCAMObj.py:5752 +#: FlatCAMObj.py:5789 msgid "[success] Toolchange G-code was replaced by a custom code." msgstr "" "[success] G-code смены инструмента был заменен на пользовательский код." -#: FlatCAMObj.py:5767 flatcamTools/ToolSolderPaste.py:1390 +#: FlatCAMObj.py:5804 flatcamTools/ToolSolderPaste.py:1390 msgid "[WARNING_NOTCL] No such file or directory" msgstr "[WARNING_NOTCL] Нет такого файла или каталога" -#: FlatCAMObj.py:5787 FlatCAMObj.py:5799 +#: FlatCAMObj.py:5824 FlatCAMObj.py:5836 msgid "" "[WARNING_NOTCL] The used postprocessor file has to have in it's name: " "'toolchange_custom'" @@ -1527,7 +1531,7 @@ msgstr "" "[WARNING_NOTCL] Используемый файл постпроцессора должен иметь имя: " "'toolchange_custom'" -#: FlatCAMObj.py:5805 +#: FlatCAMObj.py:5842 msgid "[ERROR] There is no postprocessor file." msgstr "[ERROR] Это не файл постпроцессора." @@ -1570,16 +1574,16 @@ msgstr "[success] Объект был наклонён ..." msgid "[ERROR_NOTCL] Failed to skew. No object selected" msgstr "[ERROR_NOTCL] Не удалось наклонить. Объект не выбран" -#: camlib.py:2727 camlib.py:2812 +#: camlib.py:2728 camlib.py:2813 #, python-format msgid "[WARNING] Coordinates missing, line ignored: %s" msgstr "[WARNING] Координаты отсутствуют, строка игнорируется: %s" -#: camlib.py:2728 camlib.py:2813 +#: camlib.py:2729 camlib.py:2814 msgid "[WARNING_NOTCL] GERBER file might be CORRUPT. Check the file !!!" msgstr "[WARNING_NOTCL] Файл GERBER может быть поврежден. Проверьте файл !!!" -#: camlib.py:2777 +#: camlib.py:2778 #, python-format msgid "" "[ERROR] Region does not have enough points. File will be processed but there " @@ -1588,7 +1592,7 @@ msgstr "" "[ERROR] Региону не хватает точек. Файл будет обработан, но есть ошибки " "разбора. Номер строки: %s" -#: camlib.py:3169 +#: camlib.py:3170 #, python-format msgid "" "[ERROR]Gerber Parser ERROR.\n" @@ -1597,32 +1601,32 @@ msgstr "" "[ERROR]Ошибка разбора Gerber.\n" "%s:" -#: camlib.py:3393 +#: camlib.py:3394 msgid "[success] Gerber Scale done." msgstr "[success] Масштабирование Gerber выполнено." -#: camlib.py:3458 +#: camlib.py:3459 msgid "[success] Gerber Offset done." msgstr "[success] Смещение Gerber выполнено." -#: camlib.py:3512 +#: camlib.py:3513 msgid "[success] Gerber Mirror done." msgstr "[success] Зеркалирование Gerber выполнено." -#: camlib.py:3558 +#: camlib.py:3559 msgid "[success] Gerber Skew done." msgstr "[success] Наклон Gerber выполнен." -#: camlib.py:3596 +#: camlib.py:3597 msgid "[success] Gerber Rotate done." msgstr "[success] Вращение Gerber выполнено." -#: camlib.py:3875 +#: camlib.py:3878 #, python-format msgid "[ERROR_NOTCL] This is GCODE mark: %s" msgstr "[ERROR_NOTCL] Это метка GCODE: %s" -#: camlib.py:3990 +#: camlib.py:3993 #, python-format msgid "" "[WARNING] No tool diameter info's. See shell.\n" @@ -1639,7 +1643,7 @@ msgstr "" "Пользователю необходимо отредактировать полученный объект Excellon и " "изменить диаметры, чтобы отразить реальные диаметры." -#: camlib.py:4455 +#: camlib.py:4458 #, python-brace-format msgid "" "[ERROR] Excellon Parser error.\n" @@ -1648,7 +1652,7 @@ msgstr "" "[ERROR] Ошибка разбора Excellon.\n" "Ошибка разбора. Строка {l_nr}: {line}\n" -#: camlib.py:4534 +#: camlib.py:4537 msgid "" "[WARNING] Excellon.create_geometry() -> a drill location was skipped due of " "not having a tool associated.\n" @@ -1658,12 +1662,12 @@ msgstr "" "из-за отсутствия связанного инструмента.\n" "Проверьте полученный GCode." -#: camlib.py:5073 +#: camlib.py:5076 #, python-format msgid "[ERROR] There is no such parameter: %s" msgstr "[ERROR] Такого параметра нет: %s" -#: camlib.py:5143 +#: camlib.py:5146 msgid "" "[WARNING] The Cut Z parameter has positive value. It is the depth value to " "drill into material.\n" @@ -1677,23 +1681,23 @@ msgstr "" "предполагая, что это опечатка, приложение преобразует значение в " "отрицательное. Проверьте полученный CNC code (Gcode и т. д.)." -#: camlib.py:5150 camlib.py:5646 camlib.py:5909 -#, python-format +#: camlib.py:5153 camlib.py:5649 camlib.py:5912 +#, fuzzy, python-format msgid "" "[WARNING] The Cut Z parameter is zero. There will be no cut, skipping %s file" msgstr "" "[WARNING] Параметр \"Глубина резания\" равен нулю. Обрезки не будет , " -"пропускается файл %s " +"пропускается файл %s" -#: camlib.py:5379 camlib.py:5476 camlib.py:5534 +#: camlib.py:5382 camlib.py:5479 camlib.py:5537 msgid "[ERROR_NOTCL] The loaded Excellon file has no drills ..." msgstr "[ERROR_NOTCL] загруженный файл Excellon не имеет отверстий ..." -#: camlib.py:5481 +#: camlib.py:5484 msgid "[ERROR_NOTCL] Wrong optimization type selected." msgstr "[ERROR_NOTCL] Выбран неправильный тип оптимизации." -#: camlib.py:5634 camlib.py:5897 +#: camlib.py:5637 camlib.py:5900 msgid "" "[ERROR_NOTCL] Cut_Z parameter is None or zero. Most likely a bad " "combinations of other parameters." @@ -1701,7 +1705,7 @@ msgstr "" "[ERROR_NOTCL] Параметр \"Глубина резания\" равен None или пуст. Скорее всего " "неудачное сочетание других параметров." -#: camlib.py:5639 camlib.py:5902 +#: camlib.py:5642 camlib.py:5905 msgid "" "[WARNING] The Cut Z parameter has positive value. It is the depth value to " "cut into material.\n" @@ -1715,11 +1719,11 @@ msgstr "" "предполагая, что это опечатка, приложение преобразует значение в " "отрицательное. Проверьте полученный CNC code (Gcode и т. д.)." -#: camlib.py:5651 camlib.py:5914 +#: camlib.py:5654 camlib.py:5917 msgid "[ERROR_NOTCL] Travel Z parameter is None or zero." msgstr "[ERROR_NOTCL] Параметр \"Отвод по Z\" равен None или пуст." -#: camlib.py:5655 camlib.py:5918 +#: camlib.py:5658 camlib.py:5921 msgid "" "[WARNING] The Travel Z parameter has negative value. It is the height value " "to travel between cuts.\n" @@ -1733,7 +1737,7 @@ msgstr "" "что это опечатка, приложение преобразует значение в положительное. Проверьте " "полученный CNC code (Gcode и т. д.)." -#: camlib.py:5662 camlib.py:5925 +#: camlib.py:5665 camlib.py:5928 #, python-format msgid "" "[WARNING] The Z Travel parameter is zero. This is dangerous, skipping %s file" @@ -1741,19 +1745,19 @@ msgstr "" "[WARNING] Параметр \"Отвод по Z\" равен нулю. Это опасно, пропускается файл " "%s" -#: camlib.py:5792 +#: camlib.py:5795 #, python-format msgid "[ERROR]Expected a Geometry, got %s" msgstr "[ERROR]Ожидалась Geometry, получили %s" -#: camlib.py:5798 +#: camlib.py:5801 msgid "" "[ERROR_NOTCL] Trying to generate a CNC Job from a Geometry object without " "solid_geometry." msgstr "" "[ERROR_NOTCL] Попытка создать CNC Job из объекта Geometry без solid_geometry." -#: camlib.py:5837 +#: camlib.py:5840 msgid "" "[ERROR_NOTCL] The Tool Offset value is too negative to use for the " "current_geometry.\n" @@ -1763,7 +1767,7 @@ msgstr "" "current_geometry.\n" "Увеличте значение (в модуле) и повторите попытку." -#: camlib.py:6049 +#: camlib.py:6052 msgid "[ERROR_NOTCL] There is no tool data in the SolderPaste geometry." msgstr "[ERROR_NOTCL] В геометрии SolderPaste нет данных инструмента." @@ -1855,7 +1859,7 @@ msgstr "[success] Готово. Перемещение отверстий зав msgid "[success] Done. Drill(s) copied." msgstr "[success] Готово. Отверстия скопированы." -#: flatcamEditors/FlatCAMExcEditor.py:792 flatcamGUI/FlatCAMGUI.py:5026 +#: flatcamEditors/FlatCAMExcEditor.py:792 flatcamGUI/FlatCAMGUI.py:5008 msgid "Excellon Editor" msgstr "Редактор Excellon" @@ -1893,7 +1897,7 @@ msgstr "" msgid "Tool Dia:" msgstr "Диаметр инструмента:" -#: flatcamEditors/FlatCAMExcEditor.py:839 flatcamGUI/FlatCAMGUI.py:5055 +#: flatcamEditors/FlatCAMExcEditor.py:839 flatcamGUI/FlatCAMGUI.py:5037 #: flatcamGUI/ObjectUI.py:978 msgid "Diameter for the new tool" msgstr "Диаметр нового инструмента" @@ -1972,11 +1976,11 @@ msgstr "Линейный" msgid "Circular" msgstr "Круговой" -#: flatcamEditors/FlatCAMExcEditor.py:944 flatcamGUI/FlatCAMGUI.py:5065 +#: flatcamEditors/FlatCAMExcEditor.py:944 flatcamGUI/FlatCAMGUI.py:5047 msgid "Nr of drills:" msgstr "Кол-во отверстий:" -#: flatcamEditors/FlatCAMExcEditor.py:946 flatcamGUI/FlatCAMGUI.py:5067 +#: flatcamEditors/FlatCAMExcEditor.py:946 flatcamGUI/FlatCAMGUI.py:5049 msgid "Specify how many drills to be in the array." msgstr "Укажите, сколько свёрел должно быть в массиве." @@ -1988,7 +1992,7 @@ msgid "Direction:" msgstr "Направление:" #: flatcamEditors/FlatCAMExcEditor.py:966 -#: flatcamEditors/FlatCAMGrbEditor.py:2528 flatcamGUI/FlatCAMGUI.py:5082 +#: flatcamEditors/FlatCAMGrbEditor.py:2528 flatcamGUI/FlatCAMGUI.py:5064 msgid "" "Direction on which the linear array is oriented:\n" "- 'X' - horizontal axis \n" @@ -2001,12 +2005,12 @@ msgstr "" "- 'Угол' - произвольный угол наклона массива" #: flatcamEditors/FlatCAMExcEditor.py:979 -#: flatcamEditors/FlatCAMGrbEditor.py:2541 flatcamGUI/FlatCAMGUI.py:5096 +#: flatcamEditors/FlatCAMGrbEditor.py:2541 flatcamGUI/FlatCAMGUI.py:5078 msgid "Pitch:" msgstr "Шаг:" #: flatcamEditors/FlatCAMExcEditor.py:981 -#: flatcamEditors/FlatCAMGrbEditor.py:2543 flatcamGUI/FlatCAMGUI.py:5098 +#: flatcamEditors/FlatCAMGrbEditor.py:2543 flatcamGUI/FlatCAMGUI.py:5080 msgid "Pitch = Distance between elements of the array." msgstr "Подача = Расстояние между элементами массива." @@ -2015,7 +2019,7 @@ msgstr "Подача = Расстояние между элементами ма #: flatcamEditors/FlatCAMGeoEditor.py:665 #: flatcamEditors/FlatCAMGrbEditor.py:2550 #: flatcamEditors/FlatCAMGrbEditor.py:2586 -#: flatcamEditors/FlatCAMGrbEditor.py:4580 flatcamGUI/FlatCAMGUI.py:5107 +#: flatcamEditors/FlatCAMGrbEditor.py:4588 flatcamGUI/FlatCAMGUI.py:5089 #: flatcamTools/ToolTransform.py:68 msgid "Angle:" msgstr "Угол:" @@ -2043,8 +2047,8 @@ msgstr "" "CCW = против часовой стрелки." #: flatcamEditors/FlatCAMExcEditor.py:1026 -#: flatcamEditors/FlatCAMGrbEditor.py:2588 flatcamGUI/FlatCAMGUI.py:5109 -#: flatcamGUI/FlatCAMGUI.py:5135 +#: flatcamEditors/FlatCAMGrbEditor.py:2588 flatcamGUI/FlatCAMGUI.py:5091 +#: flatcamGUI/FlatCAMGUI.py:5117 msgid "Angle at which each element in circular array is placed." msgstr "Угол, под которым расположен каждый элемент в круговом массиве." @@ -2056,7 +2060,7 @@ msgstr "" "[WARNING_NOTCL] Инструмент уже есть в исходном или фактическом списке " "инструментов.\n" "Сохраните и повторно отредактируйте Excellon, если вам нужно добавить этот " -"инструмент." +"инструмент. " #: flatcamEditors/FlatCAMExcEditor.py:1496 flatcamGUI/FlatCAMGUI.py:2997 #, python-brace-format @@ -2095,7 +2099,7 @@ msgid "[success] Done. Drill(s) deleted." msgstr "[success] Готово. Отверстия удалены." #: flatcamEditors/FlatCAMExcEditor.py:2705 -#: flatcamEditors/FlatCAMGrbEditor.py:4340 +#: flatcamEditors/FlatCAMGrbEditor.py:4350 msgid "Click on the circular array Center position" msgstr "Нажмите на центральную позицию кругового массива" @@ -2160,7 +2164,7 @@ msgstr "Буфер" #: flatcamEditors/FlatCAMGeoEditor.py:2700 #: flatcamEditors/FlatCAMGeoEditor.py:2726 #: flatcamEditors/FlatCAMGeoEditor.py:2752 -#: flatcamEditors/FlatCAMGrbEditor.py:4392 +#: flatcamEditors/FlatCAMGrbEditor.py:4402 msgid "" "[WARNING_NOTCL] Buffer distance value is missing or wrong format. Add it and " "retry." @@ -2177,12 +2181,13 @@ msgid "Tool" msgstr "Инструменты" #: flatcamEditors/FlatCAMGeoEditor.py:432 flatcamGUI/FlatCAMGUI.py:4054 -#: flatcamGUI/FlatCAMGUI.py:5618 flatcamGUI/FlatCAMGUI.py:5895 -#: flatcamGUI/FlatCAMGUI.py:6035 flatcamGUI/ObjectUI.py:260 +#: flatcamGUI/FlatCAMGUI.py:5163 flatcamGUI/FlatCAMGUI.py:5597 +#: flatcamGUI/FlatCAMGUI.py:5874 flatcamGUI/FlatCAMGUI.py:6014 +#: flatcamGUI/ObjectUI.py:260 msgid "Tool dia:" msgstr "Диам. инструм.:" -#: flatcamEditors/FlatCAMGeoEditor.py:434 flatcamGUI/FlatCAMGUI.py:6037 +#: flatcamEditors/FlatCAMGeoEditor.py:434 flatcamGUI/FlatCAMGUI.py:6016 msgid "" "Diameter of the tool to\n" "be used in the operation." @@ -2190,14 +2195,14 @@ msgstr "" "Диаметр инструмента\n" "используемого в этой операции." -#: flatcamEditors/FlatCAMGeoEditor.py:443 flatcamGUI/FlatCAMGUI.py:5801 -#: flatcamGUI/FlatCAMGUI.py:6046 flatcamTools/ToolNonCopperClear.py:165 +#: flatcamEditors/FlatCAMGeoEditor.py:443 flatcamGUI/FlatCAMGUI.py:5780 +#: flatcamGUI/FlatCAMGUI.py:6025 flatcamTools/ToolNonCopperClear.py:165 #: flatcamTools/ToolPaint.py:160 msgid "Overlap Rate:" msgstr "Частота перекрытия:" #: flatcamEditors/FlatCAMGeoEditor.py:445 flatcamTools/ToolPaint.py:162 -#, python-format +#, fuzzy, python-format msgid "" "How much (fraction) of the tool width to overlap each tool pass.\n" "Example:\n" @@ -2223,14 +2228,14 @@ msgstr "" "Более высокие значения = медленная обработка и медленное выполнение на ЧПУ\n" "из-за большого количества путей." -#: flatcamEditors/FlatCAMGeoEditor.py:461 flatcamGUI/FlatCAMGUI.py:5817 -#: flatcamGUI/FlatCAMGUI.py:5903 flatcamGUI/FlatCAMGUI.py:6056 +#: flatcamEditors/FlatCAMGeoEditor.py:461 flatcamGUI/FlatCAMGUI.py:5796 +#: flatcamGUI/FlatCAMGUI.py:5882 flatcamGUI/FlatCAMGUI.py:6035 #: flatcamTools/ToolCutOut.py:86 flatcamTools/ToolNonCopperClear.py:181 #: flatcamTools/ToolPaint.py:177 msgid "Margin:" msgstr "Отступ:" -#: flatcamEditors/FlatCAMGeoEditor.py:463 flatcamGUI/FlatCAMGUI.py:6058 +#: flatcamEditors/FlatCAMGeoEditor.py:463 flatcamGUI/FlatCAMGUI.py:6037 #: flatcamTools/ToolPaint.py:179 msgid "" "Distance by which to avoid\n" @@ -2238,13 +2243,13 @@ msgid "" "be painted." msgstr "Расстояние, которое не закрашивать до края полигона." -#: flatcamEditors/FlatCAMGeoEditor.py:472 flatcamGUI/FlatCAMGUI.py:5826 -#: flatcamGUI/FlatCAMGUI.py:6067 flatcamTools/ToolNonCopperClear.py:190 +#: flatcamEditors/FlatCAMGeoEditor.py:472 flatcamGUI/FlatCAMGUI.py:5805 +#: flatcamGUI/FlatCAMGUI.py:6046 flatcamTools/ToolNonCopperClear.py:190 #: flatcamTools/ToolPaint.py:188 msgid "Method:" msgstr "Метод:" -#: flatcamEditors/FlatCAMGeoEditor.py:474 flatcamGUI/FlatCAMGUI.py:6069 +#: flatcamEditors/FlatCAMGeoEditor.py:474 flatcamGUI/FlatCAMGUI.py:6048 msgid "" "Algorithm to paint the polygon:
Standard: Fixed step inwards." "
Seed-based: Outwards from seed." @@ -2252,14 +2257,14 @@ msgstr "" "Алгоритм отрисовки полигона:
Стандартный: Фиксированный шаг внутрь." "
По кругу: От центра наружу." -#: flatcamEditors/FlatCAMGeoEditor.py:487 flatcamGUI/FlatCAMGUI.py:5842 -#: flatcamGUI/FlatCAMGUI.py:6082 flatcamTools/ToolNonCopperClear.py:206 +#: flatcamEditors/FlatCAMGeoEditor.py:487 flatcamGUI/FlatCAMGUI.py:5821 +#: flatcamGUI/FlatCAMGUI.py:6061 flatcamTools/ToolNonCopperClear.py:206 #: flatcamTools/ToolPaint.py:204 msgid "Connect:" msgstr "Подключение:" -#: flatcamEditors/FlatCAMGeoEditor.py:489 flatcamGUI/FlatCAMGUI.py:5844 -#: flatcamGUI/FlatCAMGUI.py:6084 flatcamTools/ToolNonCopperClear.py:208 +#: flatcamEditors/FlatCAMGeoEditor.py:489 flatcamGUI/FlatCAMGUI.py:5823 +#: flatcamGUI/FlatCAMGUI.py:6063 flatcamTools/ToolNonCopperClear.py:208 #: flatcamTools/ToolPaint.py:206 msgid "" "Draw lines between resulting\n" @@ -2268,14 +2273,14 @@ msgstr "" "Рисовать линии между результирующей сегментами\n" " для минимизации подъёма инструмента." -#: flatcamEditors/FlatCAMGeoEditor.py:496 flatcamGUI/FlatCAMGUI.py:5851 -#: flatcamGUI/FlatCAMGUI.py:6092 flatcamTools/ToolNonCopperClear.py:215 +#: flatcamEditors/FlatCAMGeoEditor.py:496 flatcamGUI/FlatCAMGUI.py:5830 +#: flatcamGUI/FlatCAMGUI.py:6071 flatcamTools/ToolNonCopperClear.py:215 #: flatcamTools/ToolPaint.py:213 msgid "Contour:" msgstr "Контур:" -#: flatcamEditors/FlatCAMGeoEditor.py:498 flatcamGUI/FlatCAMGUI.py:5853 -#: flatcamGUI/FlatCAMGUI.py:6094 flatcamTools/ToolNonCopperClear.py:217 +#: flatcamEditors/FlatCAMGeoEditor.py:498 flatcamGUI/FlatCAMGUI.py:5832 +#: flatcamGUI/FlatCAMGUI.py:6073 flatcamTools/ToolNonCopperClear.py:217 #: flatcamTools/ToolPaint.py:215 msgid "" "Cut around the perimeter of the polygon\n" @@ -2333,53 +2338,53 @@ msgstr "Инструменты" #: flatcamEditors/FlatCAMGeoEditor.py:617 #: flatcamEditors/FlatCAMGeoEditor.py:990 -#: flatcamEditors/FlatCAMGrbEditor.py:4531 -#: flatcamEditors/FlatCAMGrbEditor.py:4916 flatcamGUI/FlatCAMGUI.py:654 +#: flatcamEditors/FlatCAMGrbEditor.py:4539 +#: flatcamEditors/FlatCAMGrbEditor.py:4924 flatcamGUI/FlatCAMGUI.py:654 #: flatcamGUI/FlatCAMGUI.py:1879 flatcamTools/ToolTransform.py:398 msgid "Transform Tool" msgstr "Трансформация" #: flatcamEditors/FlatCAMGeoEditor.py:618 #: flatcamEditors/FlatCAMGeoEditor.py:679 -#: flatcamEditors/FlatCAMGrbEditor.py:4532 -#: flatcamEditors/FlatCAMGrbEditor.py:4594 flatcamTools/ToolTransform.py:24 +#: flatcamEditors/FlatCAMGrbEditor.py:4540 +#: flatcamEditors/FlatCAMGrbEditor.py:4602 flatcamTools/ToolTransform.py:24 #: flatcamTools/ToolTransform.py:82 msgid "Rotate" msgstr "Вращение" #: flatcamEditors/FlatCAMGeoEditor.py:619 -#: flatcamEditors/FlatCAMGrbEditor.py:4533 flatcamTools/ToolTransform.py:25 +#: flatcamEditors/FlatCAMGrbEditor.py:4541 flatcamTools/ToolTransform.py:25 msgid "Skew/Shear" msgstr "Наклон/Сдвиг" #: flatcamEditors/FlatCAMGeoEditor.py:620 #: flatcamEditors/FlatCAMGrbEditor.py:2471 -#: flatcamEditors/FlatCAMGrbEditor.py:4534 flatcamGUI/FlatCAMGUI.py:718 +#: flatcamEditors/FlatCAMGrbEditor.py:4542 flatcamGUI/FlatCAMGUI.py:718 #: flatcamGUI/FlatCAMGUI.py:1947 flatcamGUI/ObjectUI.py:100 #: flatcamTools/ToolTransform.py:26 msgid "Scale" msgstr "Масштаб" #: flatcamEditors/FlatCAMGeoEditor.py:621 -#: flatcamEditors/FlatCAMGrbEditor.py:4535 flatcamTools/ToolTransform.py:27 +#: flatcamEditors/FlatCAMGrbEditor.py:4543 flatcamTools/ToolTransform.py:27 msgid "Mirror (Flip)" msgstr "Зеркалирование (отражение)" #: flatcamEditors/FlatCAMGeoEditor.py:622 -#: flatcamEditors/FlatCAMGrbEditor.py:4536 flatcamGUI/ObjectUI.py:127 +#: flatcamEditors/FlatCAMGrbEditor.py:4544 flatcamGUI/ObjectUI.py:127 #: flatcamGUI/ObjectUI.py:891 flatcamGUI/ObjectUI.py:1465 #: flatcamTools/ToolTransform.py:28 msgid "Offset" msgstr "Смещение" #: flatcamEditors/FlatCAMGeoEditor.py:633 -#: flatcamEditors/FlatCAMGrbEditor.py:4548 +#: flatcamEditors/FlatCAMGrbEditor.py:4556 #, python-format msgid "Editor %s" msgstr "Редактор %s" #: flatcamEditors/FlatCAMGeoEditor.py:667 -#: flatcamEditors/FlatCAMGrbEditor.py:4582 flatcamTools/ToolTransform.py:70 +#: flatcamEditors/FlatCAMGrbEditor.py:4590 flatcamTools/ToolTransform.py:70 msgid "" "Angle for Rotation action, in degrees.\n" "Float number between -360 and 359.\n" @@ -2392,7 +2397,7 @@ msgstr "" "Отрицательные числа для движения против часовой стрелки." #: flatcamEditors/FlatCAMGeoEditor.py:681 -#: flatcamEditors/FlatCAMGrbEditor.py:4596 +#: flatcamEditors/FlatCAMGrbEditor.py:4604 msgid "" "Rotate the selected shape(s).\n" "The point of reference is the middle of\n" @@ -2403,14 +2408,14 @@ msgstr "" "ограничительной рамки для всех выбранных фигур." #: flatcamEditors/FlatCAMGeoEditor.py:704 -#: flatcamEditors/FlatCAMGrbEditor.py:4619 flatcamTools/ToolTransform.py:107 +#: flatcamEditors/FlatCAMGrbEditor.py:4627 flatcamTools/ToolTransform.py:107 msgid "Angle X:" msgstr "Угол X:" #: flatcamEditors/FlatCAMGeoEditor.py:706 #: flatcamEditors/FlatCAMGeoEditor.py:724 -#: flatcamEditors/FlatCAMGrbEditor.py:4621 -#: flatcamEditors/FlatCAMGrbEditor.py:4639 flatcamTools/ToolTransform.py:109 +#: flatcamEditors/FlatCAMGrbEditor.py:4629 +#: flatcamEditors/FlatCAMGrbEditor.py:4647 flatcamTools/ToolTransform.py:109 #: flatcamTools/ToolTransform.py:127 msgid "" "Angle for Skew action, in degrees.\n" @@ -2420,14 +2425,14 @@ msgstr "" "Число с плавающей запятой между -360 и 359." #: flatcamEditors/FlatCAMGeoEditor.py:715 -#: flatcamEditors/FlatCAMGrbEditor.py:4630 flatcamTools/ToolTransform.py:118 +#: flatcamEditors/FlatCAMGrbEditor.py:4638 flatcamTools/ToolTransform.py:118 msgid "Skew X" msgstr "Наклон X" #: flatcamEditors/FlatCAMGeoEditor.py:717 #: flatcamEditors/FlatCAMGeoEditor.py:735 -#: flatcamEditors/FlatCAMGrbEditor.py:4632 -#: flatcamEditors/FlatCAMGrbEditor.py:4650 +#: flatcamEditors/FlatCAMGrbEditor.py:4640 +#: flatcamEditors/FlatCAMGrbEditor.py:4658 msgid "" "Skew/shear the selected shape(s).\n" "The point of reference is the middle of\n" @@ -2438,34 +2443,34 @@ msgstr "" "ограничительной рамки для всех выбранных фигур." #: flatcamEditors/FlatCAMGeoEditor.py:722 -#: flatcamEditors/FlatCAMGrbEditor.py:4637 flatcamTools/ToolTransform.py:125 +#: flatcamEditors/FlatCAMGrbEditor.py:4645 flatcamTools/ToolTransform.py:125 msgid "Angle Y:" msgstr "Угол Y:" #: flatcamEditors/FlatCAMGeoEditor.py:733 -#: flatcamEditors/FlatCAMGrbEditor.py:4648 flatcamTools/ToolTransform.py:136 +#: flatcamEditors/FlatCAMGrbEditor.py:4656 flatcamTools/ToolTransform.py:136 msgid "Skew Y" msgstr "Наклон Y" #: flatcamEditors/FlatCAMGeoEditor.py:761 -#: flatcamEditors/FlatCAMGrbEditor.py:4676 flatcamTools/ToolTransform.py:164 +#: flatcamEditors/FlatCAMGrbEditor.py:4684 flatcamTools/ToolTransform.py:164 msgid "Factor X:" msgstr "Коэф. X:" #: flatcamEditors/FlatCAMGeoEditor.py:763 -#: flatcamEditors/FlatCAMGrbEditor.py:4678 flatcamTools/ToolTransform.py:166 +#: flatcamEditors/FlatCAMGrbEditor.py:4686 flatcamTools/ToolTransform.py:166 msgid "Factor for Scale action over X axis." msgstr "Коэффициент масштабирования по оси X." #: flatcamEditors/FlatCAMGeoEditor.py:771 -#: flatcamEditors/FlatCAMGrbEditor.py:4686 flatcamTools/ToolTransform.py:174 +#: flatcamEditors/FlatCAMGrbEditor.py:4694 flatcamTools/ToolTransform.py:174 msgid "Scale X" msgstr "Масштаб Х" #: flatcamEditors/FlatCAMGeoEditor.py:773 #: flatcamEditors/FlatCAMGeoEditor.py:790 -#: flatcamEditors/FlatCAMGrbEditor.py:4688 -#: flatcamEditors/FlatCAMGrbEditor.py:4705 +#: flatcamEditors/FlatCAMGrbEditor.py:4696 +#: flatcamEditors/FlatCAMGrbEditor.py:4713 msgid "" "Scale the selected shape(s).\n" "The point of reference depends on \n" @@ -2476,28 +2481,28 @@ msgstr "" "состояние флажка Scale Reference." #: flatcamEditors/FlatCAMGeoEditor.py:778 -#: flatcamEditors/FlatCAMGrbEditor.py:4693 flatcamTools/ToolTransform.py:181 +#: flatcamEditors/FlatCAMGrbEditor.py:4701 flatcamTools/ToolTransform.py:181 msgid "Factor Y:" msgstr "Коэф Y:" #: flatcamEditors/FlatCAMGeoEditor.py:780 -#: flatcamEditors/FlatCAMGrbEditor.py:4695 flatcamTools/ToolTransform.py:183 +#: flatcamEditors/FlatCAMGrbEditor.py:4703 flatcamTools/ToolTransform.py:183 msgid "Factor for Scale action over Y axis." msgstr "Коэффициент масштабирования по оси Y." #: flatcamEditors/FlatCAMGeoEditor.py:788 -#: flatcamEditors/FlatCAMGrbEditor.py:4703 flatcamTools/ToolTransform.py:191 +#: flatcamEditors/FlatCAMGrbEditor.py:4711 flatcamTools/ToolTransform.py:191 msgid "Scale Y" msgstr "Масштаб Y" #: flatcamEditors/FlatCAMGeoEditor.py:797 -#: flatcamEditors/FlatCAMGrbEditor.py:4712 flatcamGUI/FlatCAMGUI.py:6441 +#: flatcamEditors/FlatCAMGrbEditor.py:4720 flatcamGUI/FlatCAMGUI.py:6420 #: flatcamTools/ToolTransform.py:200 msgid "Link" msgstr "Ссылка" #: flatcamEditors/FlatCAMGeoEditor.py:799 -#: flatcamEditors/FlatCAMGrbEditor.py:4714 +#: flatcamEditors/FlatCAMGrbEditor.py:4722 msgid "" "Scale the selected shape(s)\n" "using the Scale Factor X for both axis." @@ -2506,13 +2511,13 @@ msgstr "" "используя коэффициент X для обеих осей." #: flatcamEditors/FlatCAMGeoEditor.py:805 -#: flatcamEditors/FlatCAMGrbEditor.py:4720 flatcamGUI/FlatCAMGUI.py:6449 +#: flatcamEditors/FlatCAMGrbEditor.py:4728 flatcamGUI/FlatCAMGUI.py:6428 #: flatcamTools/ToolTransform.py:208 msgid "Scale Reference" msgstr "Scale Reference" #: flatcamEditors/FlatCAMGeoEditor.py:807 -#: flatcamEditors/FlatCAMGrbEditor.py:4722 +#: flatcamEditors/FlatCAMGrbEditor.py:4730 msgid "" "Scale the selected shape(s)\n" "using the origin reference when checked,\n" @@ -2525,24 +2530,24 @@ msgstr "" "выбранных фигур, если флажок снят." #: flatcamEditors/FlatCAMGeoEditor.py:835 -#: flatcamEditors/FlatCAMGrbEditor.py:4751 flatcamTools/ToolTransform.py:238 +#: flatcamEditors/FlatCAMGrbEditor.py:4759 flatcamTools/ToolTransform.py:238 msgid "Value X:" msgstr "Значение X:" #: flatcamEditors/FlatCAMGeoEditor.py:837 -#: flatcamEditors/FlatCAMGrbEditor.py:4753 flatcamTools/ToolTransform.py:240 +#: flatcamEditors/FlatCAMGrbEditor.py:4761 flatcamTools/ToolTransform.py:240 msgid "Value for Offset action on X axis." msgstr "Значение для смещения по оси X." #: flatcamEditors/FlatCAMGeoEditor.py:845 -#: flatcamEditors/FlatCAMGrbEditor.py:4761 flatcamTools/ToolTransform.py:248 +#: flatcamEditors/FlatCAMGrbEditor.py:4769 flatcamTools/ToolTransform.py:248 msgid "Offset X" msgstr "Смещение Х" #: flatcamEditors/FlatCAMGeoEditor.py:847 #: flatcamEditors/FlatCAMGeoEditor.py:865 -#: flatcamEditors/FlatCAMGrbEditor.py:4763 -#: flatcamEditors/FlatCAMGrbEditor.py:4781 +#: flatcamEditors/FlatCAMGrbEditor.py:4771 +#: flatcamEditors/FlatCAMGrbEditor.py:4789 msgid "" "Offset the selected shape(s).\n" "The point of reference is the middle of\n" @@ -2553,29 +2558,29 @@ msgstr "" "ограничительной рамки для всех выбранных фигур.\n" #: flatcamEditors/FlatCAMGeoEditor.py:853 -#: flatcamEditors/FlatCAMGrbEditor.py:4769 flatcamTools/ToolTransform.py:255 +#: flatcamEditors/FlatCAMGrbEditor.py:4777 flatcamTools/ToolTransform.py:255 msgid "Value Y:" msgstr "Значение Y:" #: flatcamEditors/FlatCAMGeoEditor.py:855 -#: flatcamEditors/FlatCAMGrbEditor.py:4771 flatcamTools/ToolTransform.py:257 +#: flatcamEditors/FlatCAMGrbEditor.py:4779 flatcamTools/ToolTransform.py:257 msgid "Value for Offset action on Y axis." msgstr "Значение для смещения по оси Y." #: flatcamEditors/FlatCAMGeoEditor.py:863 -#: flatcamEditors/FlatCAMGrbEditor.py:4779 flatcamTools/ToolTransform.py:265 +#: flatcamEditors/FlatCAMGrbEditor.py:4787 flatcamTools/ToolTransform.py:265 msgid "Offset Y" msgstr "Смещение Y" #: flatcamEditors/FlatCAMGeoEditor.py:894 -#: flatcamEditors/FlatCAMGrbEditor.py:4810 flatcamTools/ToolTransform.py:295 +#: flatcamEditors/FlatCAMGrbEditor.py:4818 flatcamTools/ToolTransform.py:295 msgid "Flip on X" msgstr "Отразить по X" #: flatcamEditors/FlatCAMGeoEditor.py:896 #: flatcamEditors/FlatCAMGeoEditor.py:904 -#: flatcamEditors/FlatCAMGrbEditor.py:4812 #: flatcamEditors/FlatCAMGrbEditor.py:4820 +#: flatcamEditors/FlatCAMGrbEditor.py:4828 msgid "" "Flip the selected shape(s) over the X axis.\n" "Does not create a new shape." @@ -2584,17 +2589,17 @@ msgstr "" "Не создает новую фугуру." #: flatcamEditors/FlatCAMGeoEditor.py:902 -#: flatcamEditors/FlatCAMGrbEditor.py:4818 flatcamTools/ToolTransform.py:303 +#: flatcamEditors/FlatCAMGrbEditor.py:4826 flatcamTools/ToolTransform.py:303 msgid "Flip on Y" msgstr "Отразить по Y" #: flatcamEditors/FlatCAMGeoEditor.py:911 -#: flatcamEditors/FlatCAMGrbEditor.py:4827 flatcamTools/ToolTransform.py:312 +#: flatcamEditors/FlatCAMGrbEditor.py:4835 flatcamTools/ToolTransform.py:312 msgid "Ref Pt" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:913 -#: flatcamEditors/FlatCAMGrbEditor.py:4829 +#: flatcamEditors/FlatCAMGrbEditor.py:4837 msgid "" "Flip the selected shape(s)\n" "around the point in Point Entry Field.\n" @@ -2617,12 +2622,12 @@ msgstr "" "поле ввода и нажмите «Отразить по X (Y)»" #: flatcamEditors/FlatCAMGeoEditor.py:925 -#: flatcamEditors/FlatCAMGrbEditor.py:4841 flatcamTools/ToolTransform.py:325 +#: flatcamEditors/FlatCAMGrbEditor.py:4849 flatcamTools/ToolTransform.py:325 msgid "Point:" msgstr "Точка:" #: flatcamEditors/FlatCAMGeoEditor.py:927 -#: flatcamEditors/FlatCAMGrbEditor.py:4843 +#: flatcamEditors/FlatCAMGrbEditor.py:4851 msgid "" "Coordinates in format (x, y) used as reference for mirroring.\n" "The 'x' in (x, y) will be used when using Flip on X and\n" @@ -2634,7 +2639,7 @@ msgstr "" "'y' в (x, y) будет использоваться при отражении по Y." #: flatcamEditors/FlatCAMGeoEditor.py:939 -#: flatcamEditors/FlatCAMGrbEditor.py:4855 flatcamTools/ToolTransform.py:339 +#: flatcamEditors/FlatCAMGrbEditor.py:4863 flatcamTools/ToolTransform.py:339 msgid "" "The point coordinates can be captured by\n" "left click on canvas together with pressing\n" @@ -2645,257 +2650,257 @@ msgstr "" "клавиши SHIFT. Затем нажмите кнопку 'Добавить', чтобы вставить координаты." #: flatcamEditors/FlatCAMGeoEditor.py:1054 -#: flatcamEditors/FlatCAMGrbEditor.py:4980 +#: flatcamEditors/FlatCAMGrbEditor.py:4988 msgid "[WARNING_NOTCL] Transformation cancelled. No shape selected." msgstr "[WARNING_NOTCL] Трансформация отменена. Фигура не выбрана." #: flatcamEditors/FlatCAMGeoEditor.py:1075 -#: flatcamEditors/FlatCAMGrbEditor.py:5000 flatcamTools/ToolTransform.py:468 +#: flatcamEditors/FlatCAMGrbEditor.py:5008 flatcamTools/ToolTransform.py:468 msgid "[ERROR_NOTCL] Wrong value format entered for Rotate, use a number." msgstr "" "[ERROR_NOTCL] Неверный формат значения, введенный для поворота, используйте " "числа." #: flatcamEditors/FlatCAMGeoEditor.py:1112 -#: flatcamEditors/FlatCAMGrbEditor.py:5043 flatcamTools/ToolTransform.py:502 +#: flatcamEditors/FlatCAMGrbEditor.py:5051 flatcamTools/ToolTransform.py:502 msgid "[ERROR_NOTCL] Wrong value format entered for Skew X, use a number." msgstr "" "[ERROR_NOTCL] Неверный формат значения, введенный для наклона по X, " "используйте числа." #: flatcamEditors/FlatCAMGeoEditor.py:1133 -#: flatcamEditors/FlatCAMGrbEditor.py:5070 flatcamTools/ToolTransform.py:520 +#: flatcamEditors/FlatCAMGrbEditor.py:5078 flatcamTools/ToolTransform.py:520 msgid "[ERROR_NOTCL] Wrong value format entered for Skew Y, use a number." msgstr "" "[ERROR_NOTCL] Неверный формат значения, введенный для наклона поY, " "используйте числа." #: flatcamEditors/FlatCAMGeoEditor.py:1154 -#: flatcamEditors/FlatCAMGrbEditor.py:5097 flatcamTools/ToolTransform.py:538 +#: flatcamEditors/FlatCAMGrbEditor.py:5105 flatcamTools/ToolTransform.py:538 msgid "[ERROR_NOTCL] Wrong value format entered for Scale X, use a number." msgstr "" "[ERROR_NOTCL] Неверный формат значения, введенный для масштабирования по X, " "используйте числа." #: flatcamEditors/FlatCAMGeoEditor.py:1191 -#: flatcamEditors/FlatCAMGrbEditor.py:5138 flatcamTools/ToolTransform.py:572 +#: flatcamEditors/FlatCAMGrbEditor.py:5146 flatcamTools/ToolTransform.py:572 msgid "[ERROR_NOTCL] Wrong value format entered for Scale Y, use a number." msgstr "" "[ERROR_NOTCL] Неверный формат значения, введенный для масштабирования по Y, " "используйте числа." #: flatcamEditors/FlatCAMGeoEditor.py:1223 -#: flatcamEditors/FlatCAMGrbEditor.py:5176 flatcamTools/ToolTransform.py:601 +#: flatcamEditors/FlatCAMGrbEditor.py:5184 flatcamTools/ToolTransform.py:601 msgid "[ERROR_NOTCL] Wrong value format entered for Offset X, use a number." msgstr "" "[ERROR_NOTCL] Неверный формат значения, введенный для смещения по X, " "используйте числа." #: flatcamEditors/FlatCAMGeoEditor.py:1244 -#: flatcamEditors/FlatCAMGrbEditor.py:5202 flatcamTools/ToolTransform.py:619 +#: flatcamEditors/FlatCAMGrbEditor.py:5210 flatcamTools/ToolTransform.py:619 msgid "[ERROR_NOTCL] Wrong value format entered for Offset Y, use a number." msgstr "" "[ERROR_NOTCL] Неверный формат значения, введенный для смещения по Y, " "используйте числа." #: flatcamEditors/FlatCAMGeoEditor.py:1262 -#: flatcamEditors/FlatCAMGrbEditor.py:5225 +#: flatcamEditors/FlatCAMGrbEditor.py:5233 msgid "[WARNING_NOTCL] No shape selected. Please Select a shape to rotate!" msgstr "" "[WARNING_NOTCL] Фигура не выбрана. Пожалуйста, выберите фигуру для поворота!" #: flatcamEditors/FlatCAMGeoEditor.py:1265 -#: flatcamEditors/FlatCAMGrbEditor.py:5228 flatcamTools/ToolTransform.py:640 +#: flatcamEditors/FlatCAMGrbEditor.py:5236 flatcamTools/ToolTransform.py:640 msgid "Appying Rotate" msgstr "Применение поворота" #: flatcamEditors/FlatCAMGeoEditor.py:1293 -#: flatcamEditors/FlatCAMGrbEditor.py:5259 +#: flatcamEditors/FlatCAMGrbEditor.py:5269 msgid "[success] Done. Rotate completed." msgstr "[success] Готово. Поворот выполнен." #: flatcamEditors/FlatCAMGeoEditor.py:1309 -#: flatcamEditors/FlatCAMGrbEditor.py:5278 +#: flatcamEditors/FlatCAMGrbEditor.py:5288 msgid "[WARNING_NOTCL] No shape selected. Please Select a shape to flip!" msgstr "" "[WARNING_NOTCL] Фигура не выбрана. Пожалуйста, выберите фигуру для " "переворота!" #: flatcamEditors/FlatCAMGeoEditor.py:1312 -#: flatcamEditors/FlatCAMGrbEditor.py:5281 flatcamTools/ToolTransform.py:691 +#: flatcamEditors/FlatCAMGrbEditor.py:5291 flatcamTools/ToolTransform.py:691 msgid "Applying Flip" msgstr "Применение отражения" #: flatcamEditors/FlatCAMGeoEditor.py:1342 -#: flatcamEditors/FlatCAMGrbEditor.py:5318 flatcamTools/ToolTransform.py:733 +#: flatcamEditors/FlatCAMGrbEditor.py:5330 flatcamTools/ToolTransform.py:733 msgid "[success] Flip on the Y axis done ..." msgstr "[success] Отражение по оси Y завершено ..." #: flatcamEditors/FlatCAMGeoEditor.py:1345 -#: flatcamEditors/FlatCAMGrbEditor.py:5326 flatcamTools/ToolTransform.py:742 +#: flatcamEditors/FlatCAMGrbEditor.py:5338 flatcamTools/ToolTransform.py:742 msgid "[success] Flip on the X axis done ..." msgstr "[success] Отражение по оси Х завершёно ..." #: flatcamEditors/FlatCAMGeoEditor.py:1364 -#: flatcamEditors/FlatCAMGrbEditor.py:5346 +#: flatcamEditors/FlatCAMGrbEditor.py:5358 msgid "[WARNING_NOTCL] No shape selected. Please Select a shape to shear/skew!" msgstr "" "[WARNING_NOTCL] Фигура не выбрана. Пожалуйста, выберите фигуру для сдвига/" "наклона!" #: flatcamEditors/FlatCAMGeoEditor.py:1367 -#: flatcamEditors/FlatCAMGrbEditor.py:5349 flatcamTools/ToolTransform.py:760 +#: flatcamEditors/FlatCAMGrbEditor.py:5361 flatcamTools/ToolTransform.py:760 msgid "Applying Skew" msgstr "Применение наклона" #: flatcamEditors/FlatCAMGeoEditor.py:1392 -#: flatcamEditors/FlatCAMGrbEditor.py:5382 flatcamTools/ToolTransform.py:791 +#: flatcamEditors/FlatCAMGrbEditor.py:5396 flatcamTools/ToolTransform.py:791 #, python-format msgid "[success] Skew on the %s axis done ..." msgstr "[success] Наклон по оси %s выполнен ..." #: flatcamEditors/FlatCAMGeoEditor.py:1396 -#: flatcamEditors/FlatCAMGrbEditor.py:5386 flatcamTools/ToolTransform.py:795 +#: flatcamEditors/FlatCAMGrbEditor.py:5400 flatcamTools/ToolTransform.py:795 #, python-format msgid "[ERROR_NOTCL] Due of %s, Skew action was not executed." msgstr "[ERROR_NOTCL] Из-за %s наклон не был выполнен." #: flatcamEditors/FlatCAMGeoEditor.py:1407 -#: flatcamEditors/FlatCAMGrbEditor.py:5405 +#: flatcamEditors/FlatCAMGrbEditor.py:5419 msgid "[WARNING_NOTCL] No shape selected. Please Select a shape to scale!" msgstr "" "[WARNING_NOTCL] Фигура не выбрана. Пожалуйста, выберите фигуру для " "масштабирования!" #: flatcamEditors/FlatCAMGeoEditor.py:1410 -#: flatcamEditors/FlatCAMGrbEditor.py:5408 flatcamTools/ToolTransform.py:809 +#: flatcamEditors/FlatCAMGrbEditor.py:5422 flatcamTools/ToolTransform.py:809 msgid "Applying Scale" msgstr "Применение масштабирования" #: flatcamEditors/FlatCAMGeoEditor.py:1443 -#: flatcamEditors/FlatCAMGrbEditor.py:5444 flatcamTools/ToolTransform.py:848 +#: flatcamEditors/FlatCAMGrbEditor.py:5460 flatcamTools/ToolTransform.py:848 #, python-format msgid "[success] Scale on the %s axis done ..." msgstr "[success] Масштабирование по оси %s выполнено ..." #: flatcamEditors/FlatCAMGeoEditor.py:1446 -#: flatcamEditors/FlatCAMGrbEditor.py:5447 flatcamTools/ToolTransform.py:851 +#: flatcamEditors/FlatCAMGrbEditor.py:5463 flatcamTools/ToolTransform.py:851 #, python-format msgid "[ERROR_NOTCL] Due of %s, Scale action was not executed." msgstr "[ERROR_NOTCL] Из-за %s, операция масштабирования не была выполнена." #: flatcamEditors/FlatCAMGeoEditor.py:1455 -#: flatcamEditors/FlatCAMGrbEditor.py:5460 +#: flatcamEditors/FlatCAMGrbEditor.py:5476 msgid "[WARNING_NOTCL] No shape selected. Please Select a shape to offset!" msgstr "" "[WARNING_NOTCL] Фигура не выбрана. Пожалуйста, выберите фигуру для смещения!" #: flatcamEditors/FlatCAMGeoEditor.py:1458 -#: flatcamEditors/FlatCAMGrbEditor.py:5463 flatcamTools/ToolTransform.py:861 +#: flatcamEditors/FlatCAMGrbEditor.py:5479 flatcamTools/ToolTransform.py:861 msgid "Applying Offset" msgstr "Применение смещения" #: flatcamEditors/FlatCAMGeoEditor.py:1469 -#: flatcamEditors/FlatCAMGrbEditor.py:5484 flatcamTools/ToolTransform.py:880 +#: flatcamEditors/FlatCAMGrbEditor.py:5501 flatcamTools/ToolTransform.py:880 #, python-format msgid "[success] Offset on the %s axis done ..." msgstr "[success] Смещение по оси %s выполнено ..." #: flatcamEditors/FlatCAMGeoEditor.py:1473 -#: flatcamEditors/FlatCAMGrbEditor.py:5488 flatcamTools/ToolTransform.py:884 +#: flatcamEditors/FlatCAMGrbEditor.py:5505 flatcamTools/ToolTransform.py:884 #, python-format msgid "[ERROR_NOTCL] Due of %s, Offset action was not executed." msgstr "[ERROR_NOTCL] Из-за %s операция смещения не была выполнена." #: flatcamEditors/FlatCAMGeoEditor.py:1477 -#: flatcamEditors/FlatCAMGrbEditor.py:5492 +#: flatcamEditors/FlatCAMGrbEditor.py:5509 msgid "Rotate ..." msgstr "Поворот ..." #: flatcamEditors/FlatCAMGeoEditor.py:1478 #: flatcamEditors/FlatCAMGeoEditor.py:1535 #: flatcamEditors/FlatCAMGeoEditor.py:1552 -#: flatcamEditors/FlatCAMGrbEditor.py:5493 -#: flatcamEditors/FlatCAMGrbEditor.py:5550 +#: flatcamEditors/FlatCAMGrbEditor.py:5510 #: flatcamEditors/FlatCAMGrbEditor.py:5567 +#: flatcamEditors/FlatCAMGrbEditor.py:5584 msgid "Enter an Angle Value (degrees):" msgstr "Введите значение угла (градусы):" #: flatcamEditors/FlatCAMGeoEditor.py:1487 -#: flatcamEditors/FlatCAMGrbEditor.py:5502 +#: flatcamEditors/FlatCAMGrbEditor.py:5519 msgid "[success] Geometry shape rotate done..." msgstr "[success] Вращение фигуры выполнено..." #: flatcamEditors/FlatCAMGeoEditor.py:1492 -#: flatcamEditors/FlatCAMGrbEditor.py:5507 +#: flatcamEditors/FlatCAMGrbEditor.py:5524 msgid "[WARNING_NOTCL] Geometry shape rotate cancelled..." msgstr "[WARNING_NOTCL] Вращение фигуры отменено..." #: flatcamEditors/FlatCAMGeoEditor.py:1498 -#: flatcamEditors/FlatCAMGrbEditor.py:5513 +#: flatcamEditors/FlatCAMGrbEditor.py:5530 msgid "Offset on X axis ..." msgstr "Смещение по оси X ..." #: flatcamEditors/FlatCAMGeoEditor.py:1499 #: flatcamEditors/FlatCAMGeoEditor.py:1518 -#: flatcamEditors/FlatCAMGrbEditor.py:5514 -#: flatcamEditors/FlatCAMGrbEditor.py:5533 +#: flatcamEditors/FlatCAMGrbEditor.py:5531 +#: flatcamEditors/FlatCAMGrbEditor.py:5550 #, python-format msgid "Enter a distance Value (%s):" msgstr "Введите значение расстояния (%s):" #: flatcamEditors/FlatCAMGeoEditor.py:1508 -#: flatcamEditors/FlatCAMGrbEditor.py:5523 +#: flatcamEditors/FlatCAMGrbEditor.py:5540 msgid "[success] Geometry shape offset on X axis done..." msgstr "[success] Смещение формы по оси X выполнено..." #: flatcamEditors/FlatCAMGeoEditor.py:1512 -#: flatcamEditors/FlatCAMGrbEditor.py:5527 +#: flatcamEditors/FlatCAMGrbEditor.py:5544 msgid "[WARNING_NOTCL] Geometry shape offset X cancelled..." msgstr "[WARNING_NOTCL] Смещение формы по оси X отменено..." #: flatcamEditors/FlatCAMGeoEditor.py:1517 -#: flatcamEditors/FlatCAMGrbEditor.py:5532 +#: flatcamEditors/FlatCAMGrbEditor.py:5549 msgid "Offset on Y axis ..." msgstr "Смещение по оси Y ..." #: flatcamEditors/FlatCAMGeoEditor.py:1527 -#: flatcamEditors/FlatCAMGrbEditor.py:5542 +#: flatcamEditors/FlatCAMGrbEditor.py:5559 msgid "[success] Geometry shape offset on Y axis done..." msgstr "[success] Смещение формы по оси Y выполнено..." #: flatcamEditors/FlatCAMGeoEditor.py:1531 -#: flatcamEditors/FlatCAMGrbEditor.py:5546 +#: flatcamEditors/FlatCAMGrbEditor.py:5563 msgid "[WARNING_NOTCL] Geometry shape offset Y cancelled..." msgstr "[WARNING_NOTCL] Смещение формы по оси Y отменено..." #: flatcamEditors/FlatCAMGeoEditor.py:1534 -#: flatcamEditors/FlatCAMGrbEditor.py:5549 +#: flatcamEditors/FlatCAMGrbEditor.py:5566 msgid "Skew on X axis ..." msgstr "Наклон по оси X ..." #: flatcamEditors/FlatCAMGeoEditor.py:1544 -#: flatcamEditors/FlatCAMGrbEditor.py:5559 +#: flatcamEditors/FlatCAMGrbEditor.py:5576 msgid "[success] Geometry shape skew on X axis done..." msgstr "[success] Наклон формы по оси X выполнен..." #: flatcamEditors/FlatCAMGeoEditor.py:1548 -#: flatcamEditors/FlatCAMGrbEditor.py:5563 +#: flatcamEditors/FlatCAMGrbEditor.py:5580 msgid "[WARNING_NOTCL] Geometry shape skew X cancelled..." msgstr "[WARNING_NOTCL] Наклон формы по оси X отменён..." #: flatcamEditors/FlatCAMGeoEditor.py:1551 -#: flatcamEditors/FlatCAMGrbEditor.py:5566 +#: flatcamEditors/FlatCAMGrbEditor.py:5583 msgid "Skew on Y axis ..." msgstr "Наклон по оси Y ..." #: flatcamEditors/FlatCAMGeoEditor.py:1561 -#: flatcamEditors/FlatCAMGrbEditor.py:5576 +#: flatcamEditors/FlatCAMGrbEditor.py:5593 msgid "[success] Geometry shape skew on Y axis done..." msgstr "[success] Наклон формы по оси Y выполнен..." #: flatcamEditors/FlatCAMGeoEditor.py:1565 -#: flatcamEditors/FlatCAMGrbEditor.py:5580 +#: flatcamEditors/FlatCAMGrbEditor.py:5597 msgid "[WARNING_NOTCL] Geometry shape skew Y cancelled..." msgstr "[WARNING_NOTCL] Наклон формы по оси Y отменён..." @@ -3052,7 +3057,7 @@ msgid "[WARNING_NOTCL] Buffer cancelled. No shape selected." msgstr "[WARNING_NOTCL] Создание буфера отменено. Фигура не выбрана." #: flatcamEditors/FlatCAMGeoEditor.py:2711 -#: flatcamEditors/FlatCAMGrbEditor.py:4442 +#: flatcamEditors/FlatCAMGrbEditor.py:4447 msgid "[success] Done. Buffer Tool completed." msgstr "[success] Готово. Создание буфера завершено." @@ -3095,7 +3100,7 @@ msgstr "Создать геометрию окрашивания ..." msgid "Shape transformations ..." msgstr "Преобразования фигуры ..." -#: flatcamEditors/FlatCAMGeoEditor.py:3416 +#: flatcamEditors/FlatCAMGeoEditor.py:3419 #, python-brace-format msgid "" "[WARNING_NOTCL] Editing MultiGeo Geometry, tool: {tool} with diameter: {dia}" @@ -3103,19 +3108,19 @@ msgstr "" "[WARNING_NOTCL] Редактирование MultiGeo Geometry, инструментом: {tool} с " "диаметром: {dia}" -#: flatcamEditors/FlatCAMGeoEditor.py:3793 +#: flatcamEditors/FlatCAMGeoEditor.py:3796 msgid "[WARNING_NOTCL] Copy cancelled. No shape selected." msgstr "[WARNING_NOTCL] Копирование отменено. Форма не выбрана." -#: flatcamEditors/FlatCAMGeoEditor.py:3800 flatcamGUI/FlatCAMGUI.py:2727 +#: flatcamEditors/FlatCAMGeoEditor.py:3803 flatcamGUI/FlatCAMGUI.py:2727 #: flatcamGUI/FlatCAMGUI.py:2773 flatcamGUI/FlatCAMGUI.py:2791 #: flatcamGUI/FlatCAMGUI.py:2922 flatcamGUI/FlatCAMGUI.py:2934 #: flatcamGUI/FlatCAMGUI.py:2968 msgid "Click on target point." msgstr "Нажмите на целевой точке." -#: flatcamEditors/FlatCAMGeoEditor.py:4044 -#: flatcamEditors/FlatCAMGeoEditor.py:4079 +#: flatcamEditors/FlatCAMGeoEditor.py:4047 +#: flatcamEditors/FlatCAMGeoEditor.py:4082 msgid "" "[WARNING_NOTCL] A selection of at least 2 geo items is required to do " "Intersection." @@ -3123,9 +3128,9 @@ msgstr "" "[WARNING_NOTCL] Выберите по крайней мере 2 geo элемента, что-бы сделать " "пересечение." -#: flatcamEditors/FlatCAMGeoEditor.py:4163 -#: flatcamEditors/FlatCAMGeoEditor.py:4201 -#: flatcamEditors/FlatCAMGeoEditor.py:4277 +#: flatcamEditors/FlatCAMGeoEditor.py:4166 +#: flatcamEditors/FlatCAMGeoEditor.py:4204 +#: flatcamEditors/FlatCAMGeoEditor.py:4280 msgid "" "[ERROR_NOTCL] Negative buffer value is not accepted. Use Buffer interior to " "generate an 'inside' shape" @@ -3133,52 +3138,52 @@ msgstr "" "[ERROR_NOTCL] Отрицательное значение буфера не принимается. Используйте " "внутренний буфер для создания \"внутри\" формы" -#: flatcamEditors/FlatCAMGeoEditor.py:4172 -#: flatcamEditors/FlatCAMGeoEditor.py:4210 -#: flatcamEditors/FlatCAMGeoEditor.py:4285 +#: flatcamEditors/FlatCAMGeoEditor.py:4175 +#: flatcamEditors/FlatCAMGeoEditor.py:4213 +#: flatcamEditors/FlatCAMGeoEditor.py:4288 msgid "[WARNING_NOTCL] Nothing selected for buffering." msgstr "[WARNING_NOTCL] Ничего не выбрано для создания буфера." -#: flatcamEditors/FlatCAMGeoEditor.py:4176 -#: flatcamEditors/FlatCAMGeoEditor.py:4214 -#: flatcamEditors/FlatCAMGeoEditor.py:4289 +#: flatcamEditors/FlatCAMGeoEditor.py:4179 +#: flatcamEditors/FlatCAMGeoEditor.py:4217 +#: flatcamEditors/FlatCAMGeoEditor.py:4292 msgid "[WARNING_NOTCL] Invalid distance for buffering." msgstr "[WARNING_NOTCL] Недопустимое расстояние для создания буфера." -#: flatcamEditors/FlatCAMGeoEditor.py:4186 -#: flatcamEditors/FlatCAMGeoEditor.py:4298 +#: flatcamEditors/FlatCAMGeoEditor.py:4189 +#: flatcamEditors/FlatCAMGeoEditor.py:4301 msgid "" "[ERROR_NOTCL] Failed, the result is empty. Choose a different buffer value." msgstr "" "[ERROR_NOTCL] Ошибка, результат нулевой. Выберите другое значение буфера." -#: flatcamEditors/FlatCAMGeoEditor.py:4194 +#: flatcamEditors/FlatCAMGeoEditor.py:4197 msgid "[success] Full buffer geometry created." -msgstr "[success] Создана геометрия полного буфера" +msgstr "[success] Создана геометрия полного буфера." -#: flatcamEditors/FlatCAMGeoEditor.py:4224 +#: flatcamEditors/FlatCAMGeoEditor.py:4227 msgid "" "[ERROR_NOTCL] Failed, the result is empty. Choose a smaller buffer value." msgstr "" "[ERROR_NOTCL] Ошибка, результат нулевой. Выберите меньшее значение буфера." -#: flatcamEditors/FlatCAMGeoEditor.py:4239 +#: flatcamEditors/FlatCAMGeoEditor.py:4242 msgid "[success] Interior buffer geometry created." msgstr "[success] Создана геометрия внутреннего буфера." -#: flatcamEditors/FlatCAMGeoEditor.py:4310 +#: flatcamEditors/FlatCAMGeoEditor.py:4313 msgid "[success] Exterior buffer geometry created." msgstr "[success] Создана геометрия внешнего буфера." -#: flatcamEditors/FlatCAMGeoEditor.py:4374 +#: flatcamEditors/FlatCAMGeoEditor.py:4377 msgid "[WARNING_NOTCL] Nothing selected for painting." msgstr "[WARNING_NOTCL] Ничего не выбрано для рисования." -#: flatcamEditors/FlatCAMGeoEditor.py:4380 +#: flatcamEditors/FlatCAMGeoEditor.py:4383 msgid "[WARNING] Invalid value for {}" msgstr "[WARNING] Неверное значение для {}" -#: flatcamEditors/FlatCAMGeoEditor.py:4386 +#: flatcamEditors/FlatCAMGeoEditor.py:4389 msgid "" "[ERROR_NOTCL] Could not do Paint. Overlap value has to be less than 1.00 " "(100%)." @@ -3186,7 +3191,7 @@ msgstr "" "[ERROR_NOTCL] Окраска не выполнена. Значение перекрытия должно быть меньше " "1,00 (100%)." -#: flatcamEditors/FlatCAMGeoEditor.py:4445 +#: flatcamEditors/FlatCAMGeoEditor.py:4448 #, python-format msgid "" "[ERROR] Could not do Paint. Try a different combination of parameters. Or a " @@ -3197,7 +3202,7 @@ msgstr "" "другой способ рисования\n" "%s" -#: flatcamEditors/FlatCAMGeoEditor.py:4456 +#: flatcamEditors/FlatCAMGeoEditor.py:4459 msgid "[success] Paint done." msgstr "[success] Окраска выполнена." @@ -3365,23 +3370,23 @@ msgid "Apertures Table for the Gerber Object." msgstr "Таблица отверстий для объекта Gerber." #: flatcamEditors/FlatCAMGrbEditor.py:2291 -#: flatcamEditors/FlatCAMGrbEditor.py:3602 flatcamGUI/ObjectUI.py:228 +#: flatcamEditors/FlatCAMGrbEditor.py:3601 flatcamGUI/ObjectUI.py:228 msgid "Code" msgstr "Код" #: flatcamEditors/FlatCAMGrbEditor.py:2291 -#: flatcamEditors/FlatCAMGrbEditor.py:3602 flatcamGUI/ObjectUI.py:228 +#: flatcamEditors/FlatCAMGrbEditor.py:3601 flatcamGUI/ObjectUI.py:228 #: flatcamGUI/ObjectUI.py:891 flatcamGUI/ObjectUI.py:1465 msgid "Type" msgstr "Тип" #: flatcamEditors/FlatCAMGrbEditor.py:2291 -#: flatcamEditors/FlatCAMGrbEditor.py:3602 flatcamGUI/ObjectUI.py:228 +#: flatcamEditors/FlatCAMGrbEditor.py:3601 flatcamGUI/ObjectUI.py:228 msgid "Size" msgstr "Размер" #: flatcamEditors/FlatCAMGrbEditor.py:2291 -#: flatcamEditors/FlatCAMGrbEditor.py:3602 flatcamGUI/ObjectUI.py:228 +#: flatcamEditors/FlatCAMGrbEditor.py:3601 flatcamGUI/ObjectUI.py:228 msgid "Dim" msgstr "Размер" @@ -3395,7 +3400,7 @@ msgstr "Код отверстия" #: flatcamEditors/FlatCAMGrbEditor.py:2299 flatcamGUI/ObjectUI.py:236 msgid "Type of aperture: circular, rectangle, macros etc" -msgstr "Тип отверстия: круг, прямоугольник, макросы и т.д." +msgstr "Тип отверстия: круг, прямоугольник, макросы и так далее" #: flatcamEditors/FlatCAMGrbEditor.py:2301 #: flatcamEditors/FlatCAMGrbEditor.py:2334 flatcamGUI/ObjectUI.py:238 @@ -3628,15 +3633,15 @@ msgstr "[success] Редактирование Gerber завершено." msgid "[WARNING_NOTCL] Cancelled. No aperture is selected" msgstr "[WARNING_NOTCL] Отмена. Нет выбранных отверстий" -#: flatcamEditors/FlatCAMGrbEditor.py:4270 +#: flatcamEditors/FlatCAMGrbEditor.py:4280 msgid "[ERROR_NOTCL] Failed. No aperture geometry is selected." msgstr "[ERROR_NOTCL] Ошибка. Не выбрана геометрия отверстий." -#: flatcamEditors/FlatCAMGrbEditor.py:4278 +#: flatcamEditors/FlatCAMGrbEditor.py:4288 msgid "[success] Done. Apertures geometry deleted." msgstr "[success] Готово. Геометрия отверстий удалена." -#: flatcamEditors/FlatCAMGrbEditor.py:4427 +#: flatcamEditors/FlatCAMGrbEditor.py:4431 msgid "" "[WARNING_NOTCL] No aperture to buffer. Select at least one aperture and try " "again." @@ -3644,7 +3649,15 @@ msgstr "" "[WARNING_NOTCL] Нет отверстий для создания буфера. Выберите хотя бы одно " "отверстие и повторите попытку." -#: flatcamEditors/FlatCAMGrbEditor.py:4456 +#: flatcamEditors/FlatCAMGrbEditor.py:4444 +#, fuzzy, python-format +#| msgid "[ERROR_NOTCL] Failed to open %s" +msgid "" +"[ERROR_NOTCL] Failed.\n" +"%s" +msgstr "[ERROR_NOTCL] Не удалось открыть %s" + +#: flatcamEditors/FlatCAMGrbEditor.py:4461 msgid "" "[WARNING_NOTCL] Scale factor value is missing or wrong format. Add it and " "retry." @@ -3652,7 +3665,7 @@ msgstr "" "[WARNING_NOTCL] Отсутствует значение коэффициента масштабирования или оно " "имеет неправильный формат. Добавьте его и повторите попытку." -#: flatcamEditors/FlatCAMGrbEditor.py:4486 +#: flatcamEditors/FlatCAMGrbEditor.py:4494 msgid "" "[WARNING_NOTCL] No aperture to scale. Select at least one aperture and try " "again." @@ -3660,7 +3673,7 @@ msgstr "" "[WARNING_NOTCL] Нет отверстий для масштабирования. Выберите хотя бы одно " "отверстие и повторите попытку." -#: flatcamEditors/FlatCAMGrbEditor.py:4502 +#: flatcamEditors/FlatCAMGrbEditor.py:4510 msgid "[success] Done. Scale Tool completed." msgstr "[success] Готово. Масштабирование выполнено." @@ -5856,7 +5869,7 @@ msgid "Gerber General" msgstr "Gerber основные" #: flatcamGUI/FlatCAMGUI.py:3995 flatcamGUI/FlatCAMGUI.py:4361 -#: flatcamGUI/FlatCAMGUI.py:5153 flatcamGUI/FlatCAMGUI.py:5525 +#: flatcamGUI/FlatCAMGUI.py:5135 flatcamGUI/FlatCAMGUI.py:5504 #: flatcamGUI/ObjectUI.py:150 flatcamGUI/ObjectUI.py:505 #: flatcamGUI/ObjectUI.py:833 flatcamGUI/ObjectUI.py:1350 msgid "Plot Options:" @@ -5880,18 +5893,18 @@ msgid "Draw polygons in different colors." msgstr "Окрашивать полигоны разными цветами." #: flatcamGUI/FlatCAMGUI.py:4016 flatcamGUI/FlatCAMGUI.py:4367 -#: flatcamGUI/FlatCAMGUI.py:5157 flatcamGUI/ObjectUI.py:172 +#: flatcamGUI/FlatCAMGUI.py:5139 flatcamGUI/ObjectUI.py:172 msgid "Plot" msgstr "Участок" -#: flatcamGUI/FlatCAMGUI.py:4018 flatcamGUI/FlatCAMGUI.py:5159 +#: flatcamGUI/FlatCAMGUI.py:4018 flatcamGUI/FlatCAMGUI.py:5141 #: flatcamGUI/ObjectUI.py:174 flatcamGUI/ObjectUI.py:546 #: flatcamGUI/ObjectUI.py:879 flatcamGUI/ObjectUI.py:1450 msgid "Plot (show) this object." msgstr "Начертить (отобразить) этот объект." -#: flatcamGUI/FlatCAMGUI.py:4023 flatcamGUI/FlatCAMGUI.py:5166 -#: flatcamGUI/FlatCAMGUI.py:5608 +#: flatcamGUI/FlatCAMGUI.py:4023 flatcamGUI/FlatCAMGUI.py:5149 +#: flatcamGUI/FlatCAMGUI.py:5587 msgid "Circle Steps:" msgstr "Круговые шаги:" @@ -5918,8 +5931,8 @@ msgstr "" "с траекториям обрезки за\n" "пределами полигонов." -#: flatcamGUI/FlatCAMGUI.py:4056 flatcamGUI/FlatCAMGUI.py:4753 -#: flatcamGUI/FlatCAMGUI.py:5897 flatcamGUI/ObjectUI.py:788 +#: flatcamGUI/FlatCAMGUI.py:4056 flatcamGUI/FlatCAMGUI.py:4735 +#: flatcamGUI/FlatCAMGUI.py:5876 flatcamGUI/ObjectUI.py:788 #: flatcamGUI/ObjectUI.py:804 msgid "Diameter of the cutting tool." msgstr "Диаметр режущего инструмента." @@ -5976,7 +5989,7 @@ msgstr "Объединить все проходы в один объект" msgid "Clear non-copper:" msgstr "Очистка меди:" -#: flatcamGUI/FlatCAMGUI.py:4104 flatcamGUI/FlatCAMGUI.py:5785 +#: flatcamGUI/FlatCAMGUI.py:4104 flatcamGUI/FlatCAMGUI.py:5764 #: flatcamGUI/ObjectUI.py:386 msgid "" "Create a Geometry object with\n" @@ -6083,7 +6096,7 @@ msgstr "" msgid "Gerber Export" msgstr "Экспорт Gerber" -#: flatcamGUI/FlatCAMGUI.py:4232 flatcamGUI/FlatCAMGUI.py:4902 +#: flatcamGUI/FlatCAMGUI.py:4232 flatcamGUI/FlatCAMGUI.py:4884 msgid "Export Options:" msgstr "Параметры экспорта:" @@ -6093,7 +6106,7 @@ msgid "" "when using the File -> Export -> Export Gerber menu entry." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4243 flatcamGUI/FlatCAMGUI.py:4913 +#: flatcamGUI/FlatCAMGUI.py:4243 flatcamGUI/FlatCAMGUI.py:4895 msgid "Units:" msgstr "Единицы:" @@ -6101,7 +6114,7 @@ msgstr "Единицы:" msgid "The units used in the Gerber file." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4257 flatcamGUI/FlatCAMGUI.py:4927 +#: flatcamGUI/FlatCAMGUI.py:4257 flatcamGUI/FlatCAMGUI.py:4909 msgid "Int/Decimals:" msgstr "Int/Decimals:" @@ -6123,7 +6136,7 @@ msgid "" "the decimal part of Gerber coordinates." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4293 flatcamGUI/FlatCAMGUI.py:4988 +#: flatcamGUI/FlatCAMGUI.py:4293 flatcamGUI/FlatCAMGUI.py:4970 msgid "Zeros:" msgstr "Нули:" @@ -6136,12 +6149,12 @@ msgid "" "and Leading Zeros are kept." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4326 flatcamGUI/FlatCAMGUI.py:5029 -#: flatcamGUI/FlatCAMGUI.py:5491 flatcamGUI/FlatCAMGUI.py:5783 -#: flatcamGUI/FlatCAMGUI.py:5884 flatcamGUI/FlatCAMGUI.py:5963 -#: flatcamGUI/FlatCAMGUI.py:6022 flatcamGUI/FlatCAMGUI.py:6125 -#: flatcamGUI/FlatCAMGUI.py:6186 flatcamGUI/FlatCAMGUI.py:6385 -#: flatcamGUI/FlatCAMGUI.py:6512 +#: flatcamGUI/FlatCAMGUI.py:4326 flatcamGUI/FlatCAMGUI.py:5011 +#: flatcamGUI/FlatCAMGUI.py:5470 flatcamGUI/FlatCAMGUI.py:5762 +#: flatcamGUI/FlatCAMGUI.py:5863 flatcamGUI/FlatCAMGUI.py:5942 +#: flatcamGUI/FlatCAMGUI.py:6001 flatcamGUI/FlatCAMGUI.py:6104 +#: flatcamGUI/FlatCAMGUI.py:6165 flatcamGUI/FlatCAMGUI.py:6364 +#: flatcamGUI/FlatCAMGUI.py:6491 msgid "Parameters:" msgstr "Параметры:" @@ -6149,8 +6162,8 @@ msgstr "Параметры:" msgid "A list of Gerber Editor parameters." msgstr "Список параметров редактора Gerber." -#: flatcamGUI/FlatCAMGUI.py:4336 flatcamGUI/FlatCAMGUI.py:5039 -#: flatcamGUI/FlatCAMGUI.py:5501 +#: flatcamGUI/FlatCAMGUI.py:4336 flatcamGUI/FlatCAMGUI.py:5021 +#: flatcamGUI/FlatCAMGUI.py:5480 msgid "Selection limit:" msgstr "" @@ -6203,14 +6216,14 @@ msgid "Default values for INCH are 2:4" msgstr "Значения по умолчанию для ДЮЙМОВОЙ 2:4" #: flatcamGUI/FlatCAMGUI.py:4418 flatcamGUI/FlatCAMGUI.py:4451 -#: flatcamGUI/FlatCAMGUI.py:4942 +#: flatcamGUI/FlatCAMGUI.py:4924 msgid "" "This numbers signify the number of digits in\n" "the whole part of Excellon coordinates." msgstr "" #: flatcamGUI/FlatCAMGUI.py:4432 flatcamGUI/FlatCAMGUI.py:4465 -#: flatcamGUI/FlatCAMGUI.py:4956 +#: flatcamGUI/FlatCAMGUI.py:4938 msgid "" "This numbers signify the number of digits in\n" "the decimal part of Excellon coordinates." @@ -6228,7 +6241,7 @@ msgstr "Значения по умолчанию для МЕТРИЧЕСКОЙ 3 msgid "Default Zeros:" msgstr "Умолчания Нули:" -#: flatcamGUI/FlatCAMGUI.py:4477 flatcamGUI/FlatCAMGUI.py:4991 +#: flatcamGUI/FlatCAMGUI.py:4477 flatcamGUI/FlatCAMGUI.py:4973 msgid "" "This sets the type of Excellon zeros.\n" "If LZ then Leading Zeros are kept and\n" @@ -6247,11 +6260,11 @@ msgid "" "and Leading Zeros are removed." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4502 +#: flatcamGUI/FlatCAMGUI.py:4498 msgid "Default Units:" msgstr "Умолчания Единицы:" -#: flatcamGUI/FlatCAMGUI.py:4505 +#: flatcamGUI/FlatCAMGUI.py:4501 msgid "" "This sets the default units of Excellon files.\n" "If it is not detected in the parsed file the value here\n" @@ -6259,22 +6272,22 @@ msgid "" "therefore this parameter will be used." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4516 +#: flatcamGUI/FlatCAMGUI.py:4512 msgid "" "This sets the units of Excellon files.\n" "Some Excellon files don't have an header\n" "therefore this parameter will be used." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4532 +#: flatcamGUI/FlatCAMGUI.py:4520 msgid "Excellon Optimization:" msgstr "Оптимизация Excellon:" -#: flatcamGUI/FlatCAMGUI.py:4539 +#: flatcamGUI/FlatCAMGUI.py:4523 msgid "Algorithm: " msgstr "Алгоритм: " -#: flatcamGUI/FlatCAMGUI.py:4542 flatcamGUI/FlatCAMGUI.py:4555 +#: flatcamGUI/FlatCAMGUI.py:4525 flatcamGUI/FlatCAMGUI.py:4539 msgid "" "This sets the optimization type for the Excellon drill path.\n" "If MH is checked then Google OR-Tools algorithm with MetaHeuristic\n" @@ -6286,11 +6299,11 @@ msgid "" "Travelling Salesman algorithm for path optimization." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4567 +#: flatcamGUI/FlatCAMGUI.py:4550 msgid "Optimization Time: " msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4570 +#: flatcamGUI/FlatCAMGUI.py:4553 msgid "" "When OR-Tools Metaheuristic (MH) is enabled there is a\n" "maximum threshold for how much time is spent doing the\n" @@ -6298,27 +6311,27 @@ msgid "" "In seconds." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4612 +#: flatcamGUI/FlatCAMGUI.py:4596 msgid "Excellon Options" msgstr "Параметры Excellon" -#: flatcamGUI/FlatCAMGUI.py:4615 flatcamGUI/ObjectUI.py:584 +#: flatcamGUI/FlatCAMGUI.py:4599 flatcamGUI/ObjectUI.py:584 msgid "Create CNC Job" msgstr "Создание программы для ЧПУ" -#: flatcamGUI/FlatCAMGUI.py:4617 +#: flatcamGUI/FlatCAMGUI.py:4601 msgid "" "Parameters used to create a CNC Job object\n" "for this drill object." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4625 flatcamGUI/FlatCAMGUI.py:5217 -#: flatcamGUI/FlatCAMGUI.py:6321 flatcamGUI/ObjectUI.py:595 +#: flatcamGUI/FlatCAMGUI.py:4609 flatcamGUI/FlatCAMGUI.py:5196 +#: flatcamGUI/FlatCAMGUI.py:6300 flatcamGUI/ObjectUI.py:595 #: flatcamGUI/ObjectUI.py:1062 flatcamTools/ToolCalculators.py:108 msgid "Cut Z:" msgstr "Глубина резания:" -#: flatcamGUI/FlatCAMGUI.py:4627 flatcamGUI/ObjectUI.py:597 +#: flatcamGUI/FlatCAMGUI.py:4611 flatcamGUI/ObjectUI.py:597 msgid "" "Drill depth (negative)\n" "below the copper surface." @@ -6326,12 +6339,12 @@ msgstr "" "Глубина сверления (отрицательная) \n" "ниже слоя меди." -#: flatcamGUI/FlatCAMGUI.py:4634 flatcamGUI/FlatCAMGUI.py:5250 +#: flatcamGUI/FlatCAMGUI.py:4618 flatcamGUI/FlatCAMGUI.py:5229 #: flatcamGUI/ObjectUI.py:605 flatcamGUI/ObjectUI.py:1098 msgid "Travel Z:" msgstr "Отвод по Z:" -#: flatcamGUI/FlatCAMGUI.py:4636 flatcamGUI/ObjectUI.py:607 +#: flatcamGUI/FlatCAMGUI.py:4620 flatcamGUI/ObjectUI.py:607 msgid "" "Tool height when travelling\n" "across the XY plane." @@ -6339,11 +6352,11 @@ msgstr "" "Отвод инструмента при холостом ходе\n" "по плоскости XY." -#: flatcamGUI/FlatCAMGUI.py:4644 flatcamGUI/FlatCAMGUI.py:5260 +#: flatcamGUI/FlatCAMGUI.py:4628 flatcamGUI/FlatCAMGUI.py:5239 msgid "Tool change:" msgstr "Смена инструмента:" -#: flatcamGUI/FlatCAMGUI.py:4646 flatcamGUI/FlatCAMGUI.py:5262 +#: flatcamGUI/FlatCAMGUI.py:4630 flatcamGUI/FlatCAMGUI.py:5241 #: flatcamGUI/ObjectUI.py:617 msgid "" "Include tool-change sequence\n" @@ -6352,19 +6365,19 @@ msgstr "" "Включает последовательность смены инструмента\n" "в G-Code (Пауза для смены инструмента)." -#: flatcamGUI/FlatCAMGUI.py:4653 flatcamGUI/FlatCAMGUI.py:5270 +#: flatcamGUI/FlatCAMGUI.py:4637 flatcamGUI/FlatCAMGUI.py:5249 msgid "Toolchange Z:" msgstr "Смена инструмента Z :" -#: flatcamGUI/FlatCAMGUI.py:4655 flatcamGUI/FlatCAMGUI.py:5272 +#: flatcamGUI/FlatCAMGUI.py:4639 flatcamGUI/FlatCAMGUI.py:5251 msgid "Toolchange Z position." msgstr "Позиция Z смены инструмента." -#: flatcamGUI/FlatCAMGUI.py:4661 +#: flatcamGUI/FlatCAMGUI.py:4645 msgid "Feedrate:" msgstr "Скорость подачи:" -#: flatcamGUI/FlatCAMGUI.py:4663 +#: flatcamGUI/FlatCAMGUI.py:4647 msgid "" "Tool speed while drilling\n" "(in units per minute)." @@ -6372,11 +6385,11 @@ msgstr "" "Настройка скорости подачи при сверлении \n" "(в единицах в минуту)." -#: flatcamGUI/FlatCAMGUI.py:4671 +#: flatcamGUI/FlatCAMGUI.py:4655 msgid "Spindle Speed:" msgstr "Скорость вр. шпинделя:" -#: flatcamGUI/FlatCAMGUI.py:4673 flatcamGUI/FlatCAMGUI.py:5302 +#: flatcamGUI/FlatCAMGUI.py:4657 flatcamGUI/FlatCAMGUI.py:5281 #: flatcamGUI/ObjectUI.py:684 msgid "" "Speed of the spindle\n" @@ -6385,11 +6398,11 @@ msgstr "" "Скорость шпинделя\n" "в оборотах в минуту(опционально) ." -#: flatcamGUI/FlatCAMGUI.py:4681 flatcamGUI/FlatCAMGUI.py:5310 +#: flatcamGUI/FlatCAMGUI.py:4665 flatcamGUI/FlatCAMGUI.py:5289 msgid "Spindle dir.:" msgstr "Напр. вращения:" -#: flatcamGUI/FlatCAMGUI.py:4683 flatcamGUI/FlatCAMGUI.py:5312 +#: flatcamGUI/FlatCAMGUI.py:4667 flatcamGUI/FlatCAMGUI.py:5291 msgid "" "This sets the direction that the spindle is rotating.\n" "It can be either:\n" @@ -6401,12 +6414,12 @@ msgstr "" "- CW = по часовой стрелке или\n" "- CCW = против часовой стрелки" -#: flatcamGUI/FlatCAMGUI.py:4695 flatcamGUI/FlatCAMGUI.py:5324 +#: flatcamGUI/FlatCAMGUI.py:4679 flatcamGUI/FlatCAMGUI.py:5303 #: flatcamGUI/ObjectUI.py:692 flatcamGUI/ObjectUI.py:1224 msgid "Dwell:" msgstr "Задержка:" -#: flatcamGUI/FlatCAMGUI.py:4697 flatcamGUI/FlatCAMGUI.py:5326 +#: flatcamGUI/FlatCAMGUI.py:4681 flatcamGUI/FlatCAMGUI.py:5305 #: flatcamGUI/ObjectUI.py:694 flatcamGUI/ObjectUI.py:1227 msgid "" "Pause to allow the spindle to reach its\n" @@ -6415,31 +6428,31 @@ msgstr "" "Задержка для набора оборотов шпинделя\n" "перед началом обработки." -#: flatcamGUI/FlatCAMGUI.py:4700 flatcamGUI/FlatCAMGUI.py:5329 +#: flatcamGUI/FlatCAMGUI.py:4684 flatcamGUI/FlatCAMGUI.py:5308 msgid "Duration:" msgstr "Продолжительность:" -#: flatcamGUI/FlatCAMGUI.py:4702 flatcamGUI/FlatCAMGUI.py:5331 +#: flatcamGUI/FlatCAMGUI.py:4686 flatcamGUI/FlatCAMGUI.py:5310 #: flatcamGUI/ObjectUI.py:699 flatcamGUI/ObjectUI.py:1234 msgid "Number of milliseconds for spindle to dwell." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4714 flatcamGUI/FlatCAMGUI.py:5341 +#: flatcamGUI/FlatCAMGUI.py:4698 flatcamGUI/FlatCAMGUI.py:5320 #: flatcamGUI/ObjectUI.py:707 msgid "Postprocessor:" msgstr "Постпроцессор:" -#: flatcamGUI/FlatCAMGUI.py:4716 +#: flatcamGUI/FlatCAMGUI.py:4700 msgid "" "The postprocessor file that dictates\n" "gcode output." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4725 +#: flatcamGUI/FlatCAMGUI.py:4709 msgid "Gcode: " msgstr "Gcode: " -#: flatcamGUI/FlatCAMGUI.py:4727 +#: flatcamGUI/FlatCAMGUI.py:4711 msgid "" "Choose what to use for GCode generation:\n" "'Drills', 'Slots' or 'Both'.\n" @@ -6447,82 +6460,82 @@ msgid "" "converted to drills." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4743 flatcamGUI/ObjectUI.py:772 +#: flatcamGUI/FlatCAMGUI.py:4727 flatcamGUI/ObjectUI.py:772 msgid "Mill Holes" msgstr "Фрезеровка отверстий" -#: flatcamGUI/FlatCAMGUI.py:4745 flatcamGUI/ObjectUI.py:774 +#: flatcamGUI/FlatCAMGUI.py:4729 flatcamGUI/ObjectUI.py:774 msgid "Create Geometry for milling holes." msgstr "Создание объекта геометрии для фрезерования отверстий." -#: flatcamGUI/FlatCAMGUI.py:4751 +#: flatcamGUI/FlatCAMGUI.py:4733 msgid "Drill Tool dia:" msgstr "Диам. сверла:" -#: flatcamGUI/FlatCAMGUI.py:4758 +#: flatcamGUI/FlatCAMGUI.py:4740 msgid "Slot Tool dia:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4760 +#: flatcamGUI/FlatCAMGUI.py:4742 msgid "" "Diameter of the cutting tool\n" "when milling slots." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4772 +#: flatcamGUI/FlatCAMGUI.py:4754 msgid "Defaults" msgstr "Значения по умолчанию" -#: flatcamGUI/FlatCAMGUI.py:4785 +#: flatcamGUI/FlatCAMGUI.py:4767 msgid "Excellon Adv. Options" msgstr "Excellon дополн." -#: flatcamGUI/FlatCAMGUI.py:4791 flatcamGUI/FlatCAMGUI.py:5364 +#: flatcamGUI/FlatCAMGUI.py:4773 flatcamGUI/FlatCAMGUI.py:5343 msgid "Advanced Options:" msgstr "Дополнительные настройки:" -#: flatcamGUI/FlatCAMGUI.py:4793 +#: flatcamGUI/FlatCAMGUI.py:4775 msgid "" "Parameters used to create a CNC Job object\n" "for this drill object that are shown when App Level is Advanced." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4801 +#: flatcamGUI/FlatCAMGUI.py:4783 msgid "Offset Z:" msgstr "Смещение Z:" -#: flatcamGUI/FlatCAMGUI.py:4803 flatcamGUI/ObjectUI.py:574 +#: flatcamGUI/FlatCAMGUI.py:4785 flatcamGUI/ObjectUI.py:574 msgid "" "Some drill bits (the larger ones) need to drill deeper\n" "to create the desired exit hole diameter due of the tip shape.\n" "The value here can compensate the Cut Z parameter." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4810 flatcamGUI/FlatCAMGUI.py:5375 +#: flatcamGUI/FlatCAMGUI.py:4792 flatcamGUI/FlatCAMGUI.py:5354 msgid "Toolchange X,Y:" msgstr "Смена инструмента X,Y:" -#: flatcamGUI/FlatCAMGUI.py:4812 flatcamGUI/FlatCAMGUI.py:5377 +#: flatcamGUI/FlatCAMGUI.py:4794 flatcamGUI/FlatCAMGUI.py:5356 msgid "Toolchange X,Y position." msgstr "Позиция X,Y смены инструмента." -#: flatcamGUI/FlatCAMGUI.py:4818 flatcamGUI/FlatCAMGUI.py:5384 +#: flatcamGUI/FlatCAMGUI.py:4800 flatcamGUI/FlatCAMGUI.py:5363 #: flatcamGUI/ObjectUI.py:634 msgid "Start move Z:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4820 +#: flatcamGUI/FlatCAMGUI.py:4802 msgid "" "Height of the tool just after start.\n" "Delete the value if you don't need this feature." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4827 flatcamGUI/FlatCAMGUI.py:5394 +#: flatcamGUI/FlatCAMGUI.py:4809 flatcamGUI/FlatCAMGUI.py:5373 #: flatcamGUI/ObjectUI.py:644 flatcamGUI/ObjectUI.py:1144 msgid "End move Z:" msgstr "Высота отвода Z:" -#: flatcamGUI/FlatCAMGUI.py:4829 flatcamGUI/FlatCAMGUI.py:5396 +#: flatcamGUI/FlatCAMGUI.py:4811 flatcamGUI/FlatCAMGUI.py:5375 msgid "" "Height of the tool after\n" "the last move at the end of the job." @@ -6530,12 +6543,12 @@ msgstr "" "Высота инструмента после\n" "последнего прохода в конце задания." -#: flatcamGUI/FlatCAMGUI.py:4836 flatcamGUI/FlatCAMGUI.py:5404 +#: flatcamGUI/FlatCAMGUI.py:4818 flatcamGUI/FlatCAMGUI.py:5383 #: flatcamGUI/ObjectUI.py:665 msgid "Feedrate Rapids:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4838 flatcamGUI/ObjectUI.py:667 +#: flatcamGUI/FlatCAMGUI.py:4820 flatcamGUI/ObjectUI.py:667 msgid "" "Tool speed while drilling\n" "(in units per minute).\n" @@ -6544,33 +6557,33 @@ msgid "" "ignore for any other cases." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4849 flatcamGUI/FlatCAMGUI.py:5428 +#: flatcamGUI/FlatCAMGUI.py:4831 flatcamGUI/FlatCAMGUI.py:5407 #: flatcamGUI/ObjectUI.py:718 flatcamGUI/ObjectUI.py:1256 msgid "Probe Z depth:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4851 flatcamGUI/FlatCAMGUI.py:5430 +#: flatcamGUI/FlatCAMGUI.py:4833 flatcamGUI/FlatCAMGUI.py:5409 #: flatcamGUI/ObjectUI.py:720 flatcamGUI/ObjectUI.py:1259 msgid "" "The maximum depth that the probe is allowed\n" "to probe. Negative value, in current units." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4859 flatcamGUI/FlatCAMGUI.py:5438 +#: flatcamGUI/FlatCAMGUI.py:4841 flatcamGUI/FlatCAMGUI.py:5417 #: flatcamGUI/ObjectUI.py:730 flatcamGUI/ObjectUI.py:1270 msgid "Feedrate Probe:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4861 flatcamGUI/FlatCAMGUI.py:5440 +#: flatcamGUI/FlatCAMGUI.py:4843 flatcamGUI/FlatCAMGUI.py:5419 #: flatcamGUI/ObjectUI.py:732 flatcamGUI/ObjectUI.py:1273 msgid "The feedrate used while the probe is probing." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4867 flatcamGUI/FlatCAMGUI.py:5447 +#: flatcamGUI/FlatCAMGUI.py:4849 flatcamGUI/FlatCAMGUI.py:5426 msgid "Fast Plunge:" msgstr "Быстрый подвод:" -#: flatcamGUI/FlatCAMGUI.py:4869 flatcamGUI/FlatCAMGUI.py:5449 +#: flatcamGUI/FlatCAMGUI.py:4851 flatcamGUI/FlatCAMGUI.py:5428 msgid "" "By checking this, the vertical move from\n" "Z_Toolchange to Z_move is done with G0,\n" @@ -6578,11 +6591,11 @@ msgid "" "WARNING: the move is done at Toolchange X,Y coords." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4878 +#: flatcamGUI/FlatCAMGUI.py:4860 msgid "Fast Retract:" msgstr "Быстрый отвод:" -#: flatcamGUI/FlatCAMGUI.py:4880 +#: flatcamGUI/FlatCAMGUI.py:4862 msgid "" "Exit hole strategy.\n" " - When uncheked, while exiting the drilled hole the drill bit\n" @@ -6592,21 +6605,21 @@ msgid "" "(travel height) is done as fast as possible (G0) in one move." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4899 +#: flatcamGUI/FlatCAMGUI.py:4881 msgid "Excellon Export" msgstr "Экспорт Excellon" -#: flatcamGUI/FlatCAMGUI.py:4904 +#: flatcamGUI/FlatCAMGUI.py:4886 msgid "" "The parameters set here are used in the file exported\n" "when using the File -> Export -> Export Excellon menu entry." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4915 flatcamGUI/FlatCAMGUI.py:4921 +#: flatcamGUI/FlatCAMGUI.py:4897 flatcamGUI/FlatCAMGUI.py:4903 msgid "The units used in the Excellon file." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4929 +#: flatcamGUI/FlatCAMGUI.py:4911 msgid "" "The NC drill files, usually named Excellon files\n" "are files that can be found in different formats.\n" @@ -6614,11 +6627,11 @@ msgid "" "coordinates are not using period." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4965 +#: flatcamGUI/FlatCAMGUI.py:4947 msgid "Format:" msgstr "Формат:" -#: flatcamGUI/FlatCAMGUI.py:4967 flatcamGUI/FlatCAMGUI.py:4977 +#: flatcamGUI/FlatCAMGUI.py:4949 flatcamGUI/FlatCAMGUI.py:4959 msgid "" "Select the kind of coordinates format used.\n" "Coordinates can be saved with decimal point or without.\n" @@ -6628,7 +6641,7 @@ msgid "" "or TZ = trailing zeros are kept." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5001 +#: flatcamGUI/FlatCAMGUI.py:4983 msgid "" "This sets the default type of Excellon zeros.\n" "If LZ then Leading Zeros are kept and\n" @@ -6637,11 +6650,11 @@ msgid "" "and Leading Zeros are removed." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5031 +#: flatcamGUI/FlatCAMGUI.py:5013 msgid "A list of Excellon Editor parameters." msgstr "Список параметров редактора Excellon." -#: flatcamGUI/FlatCAMGUI.py:5041 +#: flatcamGUI/FlatCAMGUI.py:5023 msgid "" "Set the number of selected Excellon geometry\n" "items above which the utility geometry\n" @@ -6650,27 +6663,27 @@ msgid "" "large number of geometric elements." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5053 +#: flatcamGUI/FlatCAMGUI.py:5035 msgid "New Tool Dia:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5076 +#: flatcamGUI/FlatCAMGUI.py:5058 msgid "Linear Drill Array:" msgstr "Линейный массив:" -#: flatcamGUI/FlatCAMGUI.py:5080 +#: flatcamGUI/FlatCAMGUI.py:5062 msgid "Linear Dir.:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5116 +#: flatcamGUI/FlatCAMGUI.py:5098 msgid "Circular Drill Array:" msgstr "Круговой массив:" -#: flatcamGUI/FlatCAMGUI.py:5120 +#: flatcamGUI/FlatCAMGUI.py:5102 msgid "Circular Dir.:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5122 +#: flatcamGUI/FlatCAMGUI.py:5104 msgid "" "Direction for circular array.\n" "Can be CW = clockwise or CCW = counter clockwise." @@ -6678,45 +6691,39 @@ msgstr "" "Направление для кругового массива.\n" "Может быть CW = по часовой стрелке или CCW = против часовой стрелки." -#: flatcamGUI/FlatCAMGUI.py:5133 +#: flatcamGUI/FlatCAMGUI.py:5115 msgid "Circ. Angle:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5150 +#: flatcamGUI/FlatCAMGUI.py:5132 msgid "Geometry General" msgstr "Geometry основные" -#: flatcamGUI/FlatCAMGUI.py:5168 +#: flatcamGUI/FlatCAMGUI.py:5151 msgid "" "The number of circle steps for Geometry \n" "circle and arc shapes linear approximation." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5176 -msgid "Tools" +#: flatcamGUI/FlatCAMGUI.py:5159 +#, fuzzy +#| msgid "Tools" +msgid "Tools:" msgstr "Инструменты" -#: flatcamGUI/FlatCAMGUI.py:5183 -msgid "Tool dia: " -msgstr "Диам. инстр.: " - -#: flatcamGUI/FlatCAMGUI.py:5185 -msgid "" -"The diameter of the cutting\n" -"tool.." +#: flatcamGUI/FlatCAMGUI.py:5165 flatcamGUI/FlatCAMGUI.py:5774 +msgid "Diameters of the cutting tools, separated by ','" msgstr "" -"Диаметр режущего\n" -"инструмента.." -#: flatcamGUI/FlatCAMGUI.py:5200 +#: flatcamGUI/FlatCAMGUI.py:5179 msgid "Geometry Options" msgstr "Параметры Geometry" -#: flatcamGUI/FlatCAMGUI.py:5205 +#: flatcamGUI/FlatCAMGUI.py:5184 msgid "Create CNC Job:" msgstr "Создание программы для ЧПУ:" -#: flatcamGUI/FlatCAMGUI.py:5207 +#: flatcamGUI/FlatCAMGUI.py:5186 msgid "" "Create a CNC Job object\n" "tracing the contours of this\n" @@ -6726,7 +6733,7 @@ msgstr "" "контуров данного объекта геометрии\n" "для программы ЧПУ." -#: flatcamGUI/FlatCAMGUI.py:5219 flatcamGUI/ObjectUI.py:1065 +#: flatcamGUI/FlatCAMGUI.py:5198 flatcamGUI/ObjectUI.py:1065 msgid "" "Cutting depth (negative)\n" "below the copper surface." @@ -6734,19 +6741,19 @@ msgstr "" "Глубина резания (отрицательная)\n" "ниже слоя меди." -#: flatcamGUI/FlatCAMGUI.py:5227 +#: flatcamGUI/FlatCAMGUI.py:5206 msgid "Multidepth" msgstr "Мультипроход" -#: flatcamGUI/FlatCAMGUI.py:5229 +#: flatcamGUI/FlatCAMGUI.py:5208 msgid "Multidepth usage: True or False." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5234 +#: flatcamGUI/FlatCAMGUI.py:5213 msgid "Depth/Pass:" msgstr "Шаг за проход:" -#: flatcamGUI/FlatCAMGUI.py:5236 +#: flatcamGUI/FlatCAMGUI.py:5215 msgid "" "The depth to cut on each pass,\n" "when multidepth is enabled.\n" @@ -6755,17 +6762,17 @@ msgid "" "which has negative value." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5252 flatcamGUI/ObjectUI.py:1101 +#: flatcamGUI/FlatCAMGUI.py:5231 flatcamGUI/ObjectUI.py:1101 msgid "" "Height of the tool when\n" "moving without cutting." msgstr "Высота отвода инструмента при холостом ходе." -#: flatcamGUI/FlatCAMGUI.py:5279 flatcamGUI/ObjectUI.py:1156 +#: flatcamGUI/FlatCAMGUI.py:5258 flatcamGUI/ObjectUI.py:1156 msgid "Feed Rate X-Y:" msgstr "Скорость подачи X-Y:" -#: flatcamGUI/FlatCAMGUI.py:5281 flatcamGUI/ObjectUI.py:1159 +#: flatcamGUI/FlatCAMGUI.py:5260 flatcamGUI/ObjectUI.py:1159 msgid "" "Cutting speed in the XY\n" "plane in units per minute" @@ -6773,45 +6780,45 @@ msgstr "" "Скорость резания в плоскости XY\n" "в единицах в минуту" -#: flatcamGUI/FlatCAMGUI.py:5289 +#: flatcamGUI/FlatCAMGUI.py:5268 msgid "Feed Rate Z:" msgstr "Скорость подачи Z:" -#: flatcamGUI/FlatCAMGUI.py:5291 +#: flatcamGUI/FlatCAMGUI.py:5270 msgid "" "Cutting speed in the XY\n" "plane in units per minute.\n" "It is called also Plunge." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5300 flatcamGUI/ObjectUI.py:682 +#: flatcamGUI/FlatCAMGUI.py:5279 flatcamGUI/ObjectUI.py:682 #: flatcamGUI/ObjectUI.py:1211 msgid "Spindle speed:" msgstr "Скорость вр. шпинделя:" -#: flatcamGUI/FlatCAMGUI.py:5343 +#: flatcamGUI/FlatCAMGUI.py:5322 msgid "" "The postprocessor file that dictates\n" "Machine Code output." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5359 +#: flatcamGUI/FlatCAMGUI.py:5338 msgid "Geometry Adv. Options" msgstr "Geometry дополн." -#: flatcamGUI/FlatCAMGUI.py:5366 +#: flatcamGUI/FlatCAMGUI.py:5345 msgid "" "Parameters to create a CNC Job object\n" "tracing the contours of a Geometry object." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5386 +#: flatcamGUI/FlatCAMGUI.py:5365 msgid "" "Height of the tool just after starting the work.\n" "Delete the value if you don't need this feature." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5406 +#: flatcamGUI/FlatCAMGUI.py:5385 msgid "" "Cutting speed in the XY plane\n" "(in units per minute).\n" @@ -6820,11 +6827,11 @@ msgid "" "ignore for any other cases." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5418 +#: flatcamGUI/FlatCAMGUI.py:5397 msgid "Re-cut 1st pt." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5420 flatcamGUI/ObjectUI.py:1202 +#: flatcamGUI/FlatCAMGUI.py:5399 flatcamGUI/ObjectUI.py:1202 msgid "" "In order to remove possible\n" "copper leftovers where first cut\n" @@ -6832,37 +6839,37 @@ msgid "" "extended cut over the first cut section." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5459 +#: flatcamGUI/FlatCAMGUI.py:5438 msgid "Seg. X size:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5461 +#: flatcamGUI/FlatCAMGUI.py:5440 msgid "" "The size of the trace segment on the X axis.\n" "Useful for auto-leveling.\n" "A value of 0 means no segmentation on the X axis." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5470 +#: flatcamGUI/FlatCAMGUI.py:5449 msgid "Seg. Y size:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5472 +#: flatcamGUI/FlatCAMGUI.py:5451 msgid "" "The size of the trace segment on the Y axis.\n" "Useful for auto-leveling.\n" "A value of 0 means no segmentation on the Y axis." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5488 +#: flatcamGUI/FlatCAMGUI.py:5467 msgid "Geometry Editor" msgstr "Редактор Geometry" -#: flatcamGUI/FlatCAMGUI.py:5493 +#: flatcamGUI/FlatCAMGUI.py:5472 msgid "A list of Geometry Editor parameters." msgstr "Список параметров редактора Geometry." -#: flatcamGUI/FlatCAMGUI.py:5503 +#: flatcamGUI/FlatCAMGUI.py:5482 msgid "" "Set the number of selected geometry\n" "items above which the utility geometry\n" @@ -6871,20 +6878,20 @@ msgid "" "large number of geometric elements." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5522 +#: flatcamGUI/FlatCAMGUI.py:5501 msgid "CNC Job General" msgstr "CNC Job основные" -#: flatcamGUI/FlatCAMGUI.py:5535 flatcamGUI/ObjectUI.py:544 +#: flatcamGUI/FlatCAMGUI.py:5514 flatcamGUI/ObjectUI.py:544 #: flatcamGUI/ObjectUI.py:877 flatcamGUI/ObjectUI.py:1447 msgid "Plot Object" msgstr "Рисовать объекты" -#: flatcamGUI/FlatCAMGUI.py:5542 +#: flatcamGUI/FlatCAMGUI.py:5521 msgid "Plot kind:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5544 flatcamGUI/ObjectUI.py:1356 +#: flatcamGUI/FlatCAMGUI.py:5523 flatcamGUI/ObjectUI.py:1356 msgid "" "This selects the kind of geometries on the canvas to plot.\n" "Those can be either of type 'Travel' which means the moves\n" @@ -6892,40 +6899,40 @@ msgid "" "which means the moves that cut into the material." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5561 +#: flatcamGUI/FlatCAMGUI.py:5540 msgid "Display Annotation:" msgstr "Показывать подписи:" -#: flatcamGUI/FlatCAMGUI.py:5563 flatcamGUI/ObjectUI.py:1372 +#: flatcamGUI/FlatCAMGUI.py:5542 flatcamGUI/ObjectUI.py:1372 msgid "" "This selects if to display text annotation on the plot.\n" "When checked it will display numbers in order for each end\n" "of a travel line." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5575 +#: flatcamGUI/FlatCAMGUI.py:5554 msgid "Annotation Size:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5577 +#: flatcamGUI/FlatCAMGUI.py:5556 msgid "The font size of the annotation text. In pixels." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5585 +#: flatcamGUI/FlatCAMGUI.py:5564 msgid "Annotation Color:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5587 +#: flatcamGUI/FlatCAMGUI.py:5566 msgid "Set the font color for the annotation texts." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5610 +#: flatcamGUI/FlatCAMGUI.py:5589 msgid "" "The number of circle steps for GCode \n" "circle and arc shapes linear approximation." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5620 +#: flatcamGUI/FlatCAMGUI.py:5599 msgid "" "Diameter of the tool to be\n" "rendered in the plot." @@ -6933,35 +6940,35 @@ msgstr "" "Диаметр инструмента\n" " для черчения контуров." -#: flatcamGUI/FlatCAMGUI.py:5628 +#: flatcamGUI/FlatCAMGUI.py:5607 msgid "Coords dec.:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5630 +#: flatcamGUI/FlatCAMGUI.py:5609 msgid "" "The number of decimals to be used for \n" "the X, Y, Z coordinates in CNC code (GCODE, etc.)" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5638 +#: flatcamGUI/FlatCAMGUI.py:5617 msgid "Feedrate dec.:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5640 +#: flatcamGUI/FlatCAMGUI.py:5619 msgid "" "The number of decimals to be used for \n" "the Feedrate parameter in CNC code (GCODE, etc.)" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5655 +#: flatcamGUI/FlatCAMGUI.py:5634 msgid "CNC Job Options" msgstr "Параметры CNC Job" -#: flatcamGUI/FlatCAMGUI.py:5658 flatcamGUI/FlatCAMGUI.py:5699 +#: flatcamGUI/FlatCAMGUI.py:5637 flatcamGUI/FlatCAMGUI.py:5678 msgid "Export G-Code:" msgstr "Экспорт G-Code:" -#: flatcamGUI/FlatCAMGUI.py:5660 flatcamGUI/FlatCAMGUI.py:5701 +#: flatcamGUI/FlatCAMGUI.py:5639 flatcamGUI/FlatCAMGUI.py:5680 #: flatcamGUI/ObjectUI.py:1483 msgid "" "Export and save G-Code to\n" @@ -6971,11 +6978,11 @@ msgstr "" "для сохранения\n" "этого объекта в файл." -#: flatcamGUI/FlatCAMGUI.py:5666 +#: flatcamGUI/FlatCAMGUI.py:5645 msgid "Prepend to G-Code:" msgstr "Коды предобработки для G-Code:" -#: flatcamGUI/FlatCAMGUI.py:5668 +#: flatcamGUI/FlatCAMGUI.py:5647 msgid "" "Type here any G-Code commands you would\n" "like to add at the beginning of the G-Code file." @@ -6983,11 +6990,11 @@ msgstr "" "Введите здесь любые команды G-Code, которые вам\n" "хотелось бы добавить в начале файла G-Code." -#: flatcamGUI/FlatCAMGUI.py:5677 +#: flatcamGUI/FlatCAMGUI.py:5656 msgid "Append to G-Code:" msgstr "Коды постобработки для G-Code:" -#: flatcamGUI/FlatCAMGUI.py:5679 flatcamGUI/ObjectUI.py:1505 +#: flatcamGUI/FlatCAMGUI.py:5658 flatcamGUI/ObjectUI.py:1505 msgid "" "Type here any G-Code commands you would\n" "like to append to the generated file.\n" @@ -6997,15 +7004,15 @@ msgstr "" "хотелось бы добавить к созданному файлу.\n" "например: M2 (конец программы)" -#: flatcamGUI/FlatCAMGUI.py:5696 +#: flatcamGUI/FlatCAMGUI.py:5675 msgid "CNC Job Adv. Options" msgstr "CNC Job дополн." -#: flatcamGUI/FlatCAMGUI.py:5707 flatcamGUI/ObjectUI.py:1523 +#: flatcamGUI/FlatCAMGUI.py:5686 flatcamGUI/ObjectUI.py:1523 msgid "Toolchange G-Code:" msgstr "G-Code смены инструмента:" -#: flatcamGUI/FlatCAMGUI.py:5709 +#: flatcamGUI/FlatCAMGUI.py:5688 msgid "" "Type here any G-Code commands you would\n" "like to be executed when Toolchange event is encountered.\n" @@ -7013,17 +7020,17 @@ msgid "" "or a Toolchange Macro." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5723 flatcamGUI/ObjectUI.py:1545 +#: flatcamGUI/FlatCAMGUI.py:5702 flatcamGUI/ObjectUI.py:1545 msgid "Use Toolchange Macro" msgstr "Использовать макросы смены инструмента" -#: flatcamGUI/FlatCAMGUI.py:5725 flatcamGUI/ObjectUI.py:1548 +#: flatcamGUI/FlatCAMGUI.py:5704 flatcamGUI/ObjectUI.py:1548 msgid "" "Check this box if you want to use\n" "a Custom Toolchange GCode (macro)." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5737 flatcamGUI/ObjectUI.py:1557 +#: flatcamGUI/FlatCAMGUI.py:5716 flatcamGUI/ObjectUI.py:1557 msgid "" "A list of the FlatCAM variables that can be used\n" "in the Toolchange event.\n" @@ -7033,71 +7040,67 @@ msgstr "" "при смене инструмента.\n" "Они должны быть окружены '%' символом" -#: flatcamGUI/FlatCAMGUI.py:5744 flatcamGUI/ObjectUI.py:1564 +#: flatcamGUI/FlatCAMGUI.py:5723 flatcamGUI/ObjectUI.py:1564 msgid "Parameters" msgstr "Параметры" -#: flatcamGUI/FlatCAMGUI.py:5747 flatcamGUI/ObjectUI.py:1567 +#: flatcamGUI/FlatCAMGUI.py:5726 flatcamGUI/ObjectUI.py:1567 msgid "FlatCAM CNC parameters" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5748 flatcamGUI/ObjectUI.py:1568 +#: flatcamGUI/FlatCAMGUI.py:5727 flatcamGUI/ObjectUI.py:1568 msgid "tool = tool number" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5749 flatcamGUI/ObjectUI.py:1569 +#: flatcamGUI/FlatCAMGUI.py:5728 flatcamGUI/ObjectUI.py:1569 msgid "tooldia = tool diameter" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5750 flatcamGUI/ObjectUI.py:1570 +#: flatcamGUI/FlatCAMGUI.py:5729 flatcamGUI/ObjectUI.py:1570 msgid "t_drills = for Excellon, total number of drills" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5751 flatcamGUI/ObjectUI.py:1571 +#: flatcamGUI/FlatCAMGUI.py:5730 flatcamGUI/ObjectUI.py:1571 msgid "x_toolchange = X coord for Toolchange" msgstr "x_toolchange = координата X для смены инструмента" -#: flatcamGUI/FlatCAMGUI.py:5752 flatcamGUI/ObjectUI.py:1572 +#: flatcamGUI/FlatCAMGUI.py:5731 flatcamGUI/ObjectUI.py:1572 msgid "y_toolchange = Y coord for Toolchange" msgstr "y_toolchange = координата Y для смены инструмента" -#: flatcamGUI/FlatCAMGUI.py:5753 flatcamGUI/ObjectUI.py:1573 +#: flatcamGUI/FlatCAMGUI.py:5732 flatcamGUI/ObjectUI.py:1573 msgid "z_toolchange = Z coord for Toolchange" msgstr "z_toolchange = координата Z для смены инструмента" -#: flatcamGUI/FlatCAMGUI.py:5754 +#: flatcamGUI/FlatCAMGUI.py:5733 msgid "z_cut = Z depth for the cut" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5755 +#: flatcamGUI/FlatCAMGUI.py:5734 msgid "z_move = Z height for travel" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5756 flatcamGUI/ObjectUI.py:1576 +#: flatcamGUI/FlatCAMGUI.py:5735 flatcamGUI/ObjectUI.py:1576 msgid "z_depthpercut = the step value for multidepth cut" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5757 flatcamGUI/ObjectUI.py:1577 +#: flatcamGUI/FlatCAMGUI.py:5736 flatcamGUI/ObjectUI.py:1577 msgid "spindlesspeed = the value for the spindle speed" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5759 flatcamGUI/ObjectUI.py:1578 +#: flatcamGUI/FlatCAMGUI.py:5738 flatcamGUI/ObjectUI.py:1578 msgid "dwelltime = time to dwell to allow the spindle to reach it's set RPM" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5780 +#: flatcamGUI/FlatCAMGUI.py:5759 msgid "NCC Tool Options" msgstr "Очистка меди" -#: flatcamGUI/FlatCAMGUI.py:5793 flatcamGUI/FlatCAMGUI.py:6523 +#: flatcamGUI/FlatCAMGUI.py:5772 flatcamGUI/FlatCAMGUI.py:6502 msgid "Tools dia:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5795 -msgid "Diameters of the cutting tools, separated by ','" -msgstr "" - -#: flatcamGUI/FlatCAMGUI.py:5803 flatcamTools/ToolNonCopperClear.py:167 +#: flatcamGUI/FlatCAMGUI.py:5782 flatcamTools/ToolNonCopperClear.py:167 #, python-format msgid "" "How much (fraction) of the tool width to overlap each tool pass.\n" @@ -7112,11 +7115,11 @@ msgid "" "due of too many paths." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5819 flatcamTools/ToolNonCopperClear.py:183 +#: flatcamGUI/FlatCAMGUI.py:5798 flatcamTools/ToolNonCopperClear.py:183 msgid "Bounding box margin." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5828 flatcamTools/ToolNonCopperClear.py:192 +#: flatcamGUI/FlatCAMGUI.py:5807 flatcamTools/ToolNonCopperClear.py:192 #: flatcamTools/ToolPaint.py:190 msgid "" "Algorithm for non-copper clearing:
Standard: Fixed step inwards." @@ -7127,12 +7130,12 @@ msgstr "" "контурами, повторяющими контур полигона.
По кругу: Обработка " "правильными окружностями.
Линейный: Паралельными линиями." -#: flatcamGUI/FlatCAMGUI.py:5860 flatcamTools/ToolNonCopperClear.py:224 +#: flatcamGUI/FlatCAMGUI.py:5839 flatcamTools/ToolNonCopperClear.py:224 #: flatcamTools/ToolPaint.py:222 msgid "Rest M.:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5862 +#: flatcamGUI/FlatCAMGUI.py:5841 msgid "" "If checked, use 'rest machining'.\n" "Basically it will clear copper outside PCB features,\n" @@ -7142,11 +7145,11 @@ msgid "" "If not checked, use the standard algorithm." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5881 +#: flatcamGUI/FlatCAMGUI.py:5860 msgid "Cutout Tool Options" msgstr "Обрезка платы" -#: flatcamGUI/FlatCAMGUI.py:5886 flatcamGUI/ObjectUI.py:402 +#: flatcamGUI/FlatCAMGUI.py:5865 flatcamGUI/ObjectUI.py:402 msgid "" "Create toolpaths to cut around\n" "the PCB and separate it from\n" @@ -7155,7 +7158,7 @@ msgstr "" "Создание траектории обрезки печатной платы и отделения её от\n" "заготовки." -#: flatcamGUI/FlatCAMGUI.py:5905 +#: flatcamGUI/FlatCAMGUI.py:5884 msgid "" "Distance from objects at which\n" "to draw the cutout." @@ -7163,11 +7166,11 @@ msgstr "" "Расстояние от объектов вокруг которых\n" "будет нарисовано очертание." -#: flatcamGUI/FlatCAMGUI.py:5912 flatcamTools/ToolCutOut.py:96 +#: flatcamGUI/FlatCAMGUI.py:5891 flatcamTools/ToolCutOut.py:96 msgid "Gap size:" msgstr "Размер перемычки:" -#: flatcamGUI/FlatCAMGUI.py:5914 +#: flatcamGUI/FlatCAMGUI.py:5893 msgid "" "Size of the gaps in the toolpath\n" "that will remain to hold the\n" @@ -7176,11 +7179,11 @@ msgstr "" "Размер перемычек для удержания\n" "печатной платы в заготовке." -#: flatcamGUI/FlatCAMGUI.py:5922 flatcamTools/ToolCutOut.py:134 +#: flatcamGUI/FlatCAMGUI.py:5901 flatcamTools/ToolCutOut.py:134 msgid "Gaps:" msgstr "Вариант:" -#: flatcamGUI/FlatCAMGUI.py:5924 +#: flatcamGUI/FlatCAMGUI.py:5903 msgid "" "Number of bridge gaps used for the cutout.\n" "There can be maximum 8 bridges/gaps.\n" @@ -7202,19 +7205,19 @@ msgstr "" "- 2tb - 2*сверху + 2*снизу \n" "- 8 - 2*слева + 2*справа + 2*сверху + 2*снизу" -#: flatcamGUI/FlatCAMGUI.py:5945 flatcamTools/ToolCutOut.py:115 +#: flatcamGUI/FlatCAMGUI.py:5924 flatcamTools/ToolCutOut.py:115 msgid "Convex Sh.:" msgstr "Закруглять углы:" -#: flatcamGUI/FlatCAMGUI.py:5947 +#: flatcamGUI/FlatCAMGUI.py:5926 msgid "Create a convex shape surrounding the entire PCB." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5960 +#: flatcamGUI/FlatCAMGUI.py:5939 msgid "2Sided Tool Options" -msgstr " 2-х сторонняя плата" +msgstr "2-х сторонняя плата" -#: flatcamGUI/FlatCAMGUI.py:5965 +#: flatcamGUI/FlatCAMGUI.py:5944 msgid "" "A tool to help in creating a double sided\n" "PCB using alignment holes." @@ -7222,28 +7225,28 @@ msgstr "" "Инструмент, помогающий создать двухстороннюю\n" "печатную плату с использованием центрирующих отверстий." -#: flatcamGUI/FlatCAMGUI.py:5975 flatcamTools/ToolDblSided.py:235 +#: flatcamGUI/FlatCAMGUI.py:5954 flatcamTools/ToolDblSided.py:235 msgid "Drill diam.:" msgstr "Диам. сверла.:" -#: flatcamGUI/FlatCAMGUI.py:5977 flatcamTools/ToolDblSided.py:226 +#: flatcamGUI/FlatCAMGUI.py:5956 flatcamTools/ToolDblSided.py:226 #: flatcamTools/ToolDblSided.py:237 msgid "Diameter of the drill for the alignment holes." msgstr "Диаметр сверла для контрольных отверстий." -#: flatcamGUI/FlatCAMGUI.py:5986 flatcamTools/ToolDblSided.py:120 +#: flatcamGUI/FlatCAMGUI.py:5965 flatcamTools/ToolDblSided.py:120 msgid "Mirror Axis:" msgstr "Зеркальное отражение:" -#: flatcamGUI/FlatCAMGUI.py:5988 flatcamTools/ToolDblSided.py:122 +#: flatcamGUI/FlatCAMGUI.py:5967 flatcamTools/ToolDblSided.py:122 msgid "Mirror vertically (X) or horizontally (Y)." msgstr "Отразить по вертикали (X) или горизонтали (Y)." -#: flatcamGUI/FlatCAMGUI.py:5999 flatcamTools/ToolDblSided.py:133 +#: flatcamGUI/FlatCAMGUI.py:5978 flatcamTools/ToolDblSided.py:133 msgid "Axis Ref:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6001 +#: flatcamGUI/FlatCAMGUI.py:5980 msgid "" "The axis should pass through a point or cut\n" " a specified box (in a Geometry object) in \n" @@ -7253,11 +7256,11 @@ msgstr "" " указанное поле (в Geometry объект) в\n" "середине." -#: flatcamGUI/FlatCAMGUI.py:6017 +#: flatcamGUI/FlatCAMGUI.py:5996 msgid "Paint Tool Options" msgstr "Рисование" -#: flatcamGUI/FlatCAMGUI.py:6024 flatcamGUI/ObjectUI.py:1305 +#: flatcamGUI/FlatCAMGUI.py:6003 flatcamGUI/ObjectUI.py:1305 msgid "" "Creates tool paths to cover the\n" "whole area of a polygon (remove\n" @@ -7268,7 +7271,7 @@ msgstr "" "всей площади полигона(удаляется вся медь).\n" "Будет предложено нажать на нужный полигон." -#: flatcamGUI/FlatCAMGUI.py:6048 +#: flatcamGUI/FlatCAMGUI.py:6027 msgid "" "How much (fraction) of the tool\n" "width to overlap each tool pass." @@ -7276,30 +7279,30 @@ msgstr "" "Размер части ширины инструмента \n" "который будет перекрываться за каждый проход." -#: flatcamGUI/FlatCAMGUI.py:6102 flatcamTools/ToolPaint.py:237 +#: flatcamGUI/FlatCAMGUI.py:6081 flatcamTools/ToolPaint.py:237 msgid "Selection:" msgstr "Выбор:" -#: flatcamGUI/FlatCAMGUI.py:6104 +#: flatcamGUI/FlatCAMGUI.py:6083 msgid "How to select the polygons to paint." msgstr "Как выбирать полигоны для рисования." -#: flatcamGUI/FlatCAMGUI.py:6122 +#: flatcamGUI/FlatCAMGUI.py:6101 msgid "Film Tool Options" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6127 +#: flatcamGUI/FlatCAMGUI.py:6106 msgid "" "Create a PCB film from a Gerber or Geometry\n" "FlatCAM object.\n" "The file is saved in SVG format." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6138 flatcamTools/ToolFilm.py:116 +#: flatcamGUI/FlatCAMGUI.py:6117 flatcamTools/ToolFilm.py:116 msgid "Film Type:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6140 flatcamTools/ToolFilm.py:118 +#: flatcamGUI/FlatCAMGUI.py:6119 flatcamTools/ToolFilm.py:118 msgid "" "Generate a Positive black film or a Negative film.\n" "Positive means that it will print the features\n" @@ -7309,11 +7312,11 @@ msgid "" "The Film format is SVG." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6151 flatcamTools/ToolFilm.py:130 +#: flatcamGUI/FlatCAMGUI.py:6130 flatcamTools/ToolFilm.py:130 msgid "Border:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6153 flatcamTools/ToolFilm.py:132 +#: flatcamGUI/FlatCAMGUI.py:6132 flatcamTools/ToolFilm.py:132 msgid "" "Specify a border around the object.\n" "Only for negative film.\n" @@ -7325,11 +7328,11 @@ msgid "" "surroundings if not for this border." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6166 flatcamTools/ToolFilm.py:144 +#: flatcamGUI/FlatCAMGUI.py:6145 flatcamTools/ToolFilm.py:144 msgid "Scale Stroke:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6168 flatcamTools/ToolFilm.py:146 +#: flatcamGUI/FlatCAMGUI.py:6147 flatcamTools/ToolFilm.py:146 msgid "" "Scale the line stroke thickness of each feature in the SVG file.\n" "It means that the line that envelope each SVG feature will be thicker or " @@ -7337,69 +7340,69 @@ msgid "" "therefore the fine features may be more affected by this parameter." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6183 +#: flatcamGUI/FlatCAMGUI.py:6162 msgid "Panelize Tool Options" msgstr "Панелизация" -#: flatcamGUI/FlatCAMGUI.py:6188 +#: flatcamGUI/FlatCAMGUI.py:6167 msgid "" "Create an object that contains an array of (x, y) elements,\n" "each element is a copy of the source object spaced\n" "at a X distance, Y distance of each other." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6199 flatcamTools/ToolPanelize.py:147 +#: flatcamGUI/FlatCAMGUI.py:6178 flatcamTools/ToolPanelize.py:147 msgid "Spacing cols:" msgstr "Интервал столбцов:" -#: flatcamGUI/FlatCAMGUI.py:6201 flatcamTools/ToolPanelize.py:149 +#: flatcamGUI/FlatCAMGUI.py:6180 flatcamTools/ToolPanelize.py:149 msgid "" "Spacing between columns of the desired panel.\n" "In current units." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6209 flatcamTools/ToolPanelize.py:156 +#: flatcamGUI/FlatCAMGUI.py:6188 flatcamTools/ToolPanelize.py:156 msgid "Spacing rows:" msgstr "Интервал строк:" -#: flatcamGUI/FlatCAMGUI.py:6211 flatcamTools/ToolPanelize.py:158 +#: flatcamGUI/FlatCAMGUI.py:6190 flatcamTools/ToolPanelize.py:158 msgid "" "Spacing between rows of the desired panel.\n" "In current units." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6219 flatcamTools/ToolPanelize.py:165 +#: flatcamGUI/FlatCAMGUI.py:6198 flatcamTools/ToolPanelize.py:165 msgid "Columns:" msgstr "Столбцы:" -#: flatcamGUI/FlatCAMGUI.py:6221 flatcamTools/ToolPanelize.py:167 +#: flatcamGUI/FlatCAMGUI.py:6200 flatcamTools/ToolPanelize.py:167 msgid "Number of columns of the desired panel" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6228 flatcamTools/ToolPanelize.py:173 +#: flatcamGUI/FlatCAMGUI.py:6207 flatcamTools/ToolPanelize.py:173 msgid "Rows:" msgstr "Строки:" -#: flatcamGUI/FlatCAMGUI.py:6230 flatcamTools/ToolPanelize.py:175 +#: flatcamGUI/FlatCAMGUI.py:6209 flatcamTools/ToolPanelize.py:175 msgid "Number of rows of the desired panel" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6238 +#: flatcamGUI/FlatCAMGUI.py:6217 msgid "Panel Type:" msgstr "Тип панели:" -#: flatcamGUI/FlatCAMGUI.py:6240 +#: flatcamGUI/FlatCAMGUI.py:6219 msgid "" "Choose the type of object for the panel object:\n" "- Gerber\n" "- Geometry" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6249 +#: flatcamGUI/FlatCAMGUI.py:6228 msgid "Constrain within:" msgstr "Ограничить в пределах:" -#: flatcamGUI/FlatCAMGUI.py:6251 flatcamTools/ToolPanelize.py:195 +#: flatcamGUI/FlatCAMGUI.py:6230 flatcamTools/ToolPanelize.py:195 msgid "" "Area define by DX and DY within to constrain the panel.\n" "DX and DY values are in current units.\n" @@ -7408,171 +7411,171 @@ msgid "" "they fit completely within selected area." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6260 flatcamTools/ToolPanelize.py:204 +#: flatcamGUI/FlatCAMGUI.py:6239 flatcamTools/ToolPanelize.py:204 msgid "Width (DX):" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6262 flatcamTools/ToolPanelize.py:206 +#: flatcamGUI/FlatCAMGUI.py:6241 flatcamTools/ToolPanelize.py:206 msgid "" "The width (DX) within which the panel must fit.\n" "In current units." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6269 flatcamTools/ToolPanelize.py:212 +#: flatcamGUI/FlatCAMGUI.py:6248 flatcamTools/ToolPanelize.py:212 msgid "Height (DY):" msgstr "Высота (DY):" -#: flatcamGUI/FlatCAMGUI.py:6271 flatcamTools/ToolPanelize.py:214 +#: flatcamGUI/FlatCAMGUI.py:6250 flatcamTools/ToolPanelize.py:214 msgid "" "The height (DY)within which the panel must fit.\n" "In current units." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6285 +#: flatcamGUI/FlatCAMGUI.py:6264 msgid "Calculators Tool Options" msgstr "Калькулятор" -#: flatcamGUI/FlatCAMGUI.py:6288 +#: flatcamGUI/FlatCAMGUI.py:6267 msgid "V-Shape Tool Calculator:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6290 +#: flatcamGUI/FlatCAMGUI.py:6269 msgid "" "Calculate the tool diameter for a given V-shape tool,\n" "having the tip diameter, tip angle and\n" "depth-of-cut as parameters." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6301 flatcamTools/ToolCalculators.py:94 +#: flatcamGUI/FlatCAMGUI.py:6280 flatcamTools/ToolCalculators.py:94 msgid "Tip Diameter:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6303 +#: flatcamGUI/FlatCAMGUI.py:6282 msgid "" "This is the tool tip diameter.\n" "It is specified by manufacturer." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6311 +#: flatcamGUI/FlatCAMGUI.py:6290 msgid "Tip angle:" msgstr "Угол наклона:" -#: flatcamGUI/FlatCAMGUI.py:6313 +#: flatcamGUI/FlatCAMGUI.py:6292 msgid "" "This is the angle on the tip of the tool.\n" "It is specified by manufacturer." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6323 +#: flatcamGUI/FlatCAMGUI.py:6302 msgid "" "This is depth to cut into material.\n" "In the CNCJob object it is the CutZ parameter." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6330 +#: flatcamGUI/FlatCAMGUI.py:6309 msgid "ElectroPlating Calculator:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6332 flatcamTools/ToolCalculators.py:152 +#: flatcamGUI/FlatCAMGUI.py:6311 flatcamTools/ToolCalculators.py:152 msgid "" "This calculator is useful for those who plate the via/pad/drill holes,\n" "using a method like grahite ink or calcium hypophosphite ink or palladium " "chloride." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6342 flatcamTools/ToolCalculators.py:161 +#: flatcamGUI/FlatCAMGUI.py:6321 flatcamTools/ToolCalculators.py:161 msgid "Board Length:" msgstr "Длина платы:" -#: flatcamGUI/FlatCAMGUI.py:6344 flatcamTools/ToolCalculators.py:165 +#: flatcamGUI/FlatCAMGUI.py:6323 flatcamTools/ToolCalculators.py:165 msgid "This is the board length. In centimeters." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6350 flatcamTools/ToolCalculators.py:167 +#: flatcamGUI/FlatCAMGUI.py:6329 flatcamTools/ToolCalculators.py:167 msgid "Board Width:" msgstr "Ширина платы:" -#: flatcamGUI/FlatCAMGUI.py:6352 flatcamTools/ToolCalculators.py:171 +#: flatcamGUI/FlatCAMGUI.py:6331 flatcamTools/ToolCalculators.py:171 msgid "This is the board width.In centimeters." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6357 flatcamTools/ToolCalculators.py:173 +#: flatcamGUI/FlatCAMGUI.py:6336 flatcamTools/ToolCalculators.py:173 msgid "Current Density:" msgstr "Текущая плотность:" -#: flatcamGUI/FlatCAMGUI.py:6360 flatcamTools/ToolCalculators.py:177 +#: flatcamGUI/FlatCAMGUI.py:6339 flatcamTools/ToolCalculators.py:177 msgid "" "Current density to pass through the board. \n" "In Amps per Square Feet ASF." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6366 flatcamTools/ToolCalculators.py:181 +#: flatcamGUI/FlatCAMGUI.py:6345 flatcamTools/ToolCalculators.py:181 msgid "Copper Growth:" msgstr "Медный слой:" -#: flatcamGUI/FlatCAMGUI.py:6369 flatcamTools/ToolCalculators.py:185 +#: flatcamGUI/FlatCAMGUI.py:6348 flatcamTools/ToolCalculators.py:185 msgid "" "How thick the copper growth is intended to be.\n" "In microns." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6382 +#: flatcamGUI/FlatCAMGUI.py:6361 msgid "Transform Tool Options" msgstr "Трансформация" -#: flatcamGUI/FlatCAMGUI.py:6387 +#: flatcamGUI/FlatCAMGUI.py:6366 msgid "" "Various transformations that can be applied\n" "on a FlatCAM object." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6397 +#: flatcamGUI/FlatCAMGUI.py:6376 msgid "Rotate Angle:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6399 +#: flatcamGUI/FlatCAMGUI.py:6378 msgid "Angle for rotation. In degrees." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6406 +#: flatcamGUI/FlatCAMGUI.py:6385 msgid "Skew_X angle:" msgstr "Угол наклона_X:" -#: flatcamGUI/FlatCAMGUI.py:6408 +#: flatcamGUI/FlatCAMGUI.py:6387 msgid "Angle for Skew/Shear on X axis. In degrees." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6415 +#: flatcamGUI/FlatCAMGUI.py:6394 msgid "Skew_Y angle:" msgstr "Угол наклона_Y:" -#: flatcamGUI/FlatCAMGUI.py:6417 +#: flatcamGUI/FlatCAMGUI.py:6396 msgid "Angle for Skew/Shear on Y axis. In degrees." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6424 +#: flatcamGUI/FlatCAMGUI.py:6403 msgid "Scale_X factor:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6426 +#: flatcamGUI/FlatCAMGUI.py:6405 msgid "Factor for scaling on X axis." msgstr "Коэффициент масштабирования по оси X." -#: flatcamGUI/FlatCAMGUI.py:6433 +#: flatcamGUI/FlatCAMGUI.py:6412 msgid "Scale_Y factor:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6435 +#: flatcamGUI/FlatCAMGUI.py:6414 msgid "Factor for scaling on Y axis." msgstr "Коэффициент масштабирования по оси Y." -#: flatcamGUI/FlatCAMGUI.py:6443 +#: flatcamGUI/FlatCAMGUI.py:6422 msgid "" "Scale the selected object(s)\n" "using the Scale_X factor for both axis." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6451 flatcamTools/ToolTransform.py:210 +#: flatcamGUI/FlatCAMGUI.py:6430 flatcamTools/ToolTransform.py:210 msgid "" "Scale the selected object(s)\n" "using the origin reference when checked,\n" @@ -7580,27 +7583,27 @@ msgid "" "of the selected objects when unchecked." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6460 +#: flatcamGUI/FlatCAMGUI.py:6439 msgid "Offset_X val:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6462 +#: flatcamGUI/FlatCAMGUI.py:6441 msgid "Distance to offset on X axis. In current units." msgstr "Расстояние смещения по оси X. В текущих единицах." -#: flatcamGUI/FlatCAMGUI.py:6469 +#: flatcamGUI/FlatCAMGUI.py:6448 msgid "Offset_Y val:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6471 +#: flatcamGUI/FlatCAMGUI.py:6450 msgid "Distance to offset on Y axis. In current units." msgstr "Расстояние смещения по оси Y. В текущих единицах." -#: flatcamGUI/FlatCAMGUI.py:6477 +#: flatcamGUI/FlatCAMGUI.py:6456 msgid "Mirror Reference" msgstr "Точка зеркалтрования" -#: flatcamGUI/FlatCAMGUI.py:6479 flatcamTools/ToolTransform.py:314 +#: flatcamGUI/FlatCAMGUI.py:6458 flatcamTools/ToolTransform.py:314 msgid "" "Flip the selected object(s)\n" "around the point in Point Entry Field.\n" @@ -7613,11 +7616,11 @@ msgid "" "Point Entry field and click Flip on X(Y)" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6490 +#: flatcamGUI/FlatCAMGUI.py:6469 msgid " Mirror Ref. Point:" msgstr " Точка зеркалирования:" -#: flatcamGUI/FlatCAMGUI.py:6492 flatcamTools/ToolTransform.py:327 +#: flatcamGUI/FlatCAMGUI.py:6471 flatcamTools/ToolTransform.py:327 msgid "" "Coordinates in format (x, y) used as reference for mirroring.\n" "The 'x' in (x, y) will be used when using Flip on X and\n" @@ -7628,11 +7631,11 @@ msgstr "" "'x' в (x, y) будет использоваться при отражении по X и\n" "'y' в (x, y) будет использоваться при отражении по Y" -#: flatcamGUI/FlatCAMGUI.py:6509 +#: flatcamGUI/FlatCAMGUI.py:6488 msgid "SolderPaste Tool Options" msgstr "Паяльная паста" -#: flatcamGUI/FlatCAMGUI.py:6514 +#: flatcamGUI/FlatCAMGUI.py:6493 msgid "" "A tool to create GCode for dispensing\n" "solder paste onto a PCB." @@ -7640,153 +7643,153 @@ msgstr "" "Инструмент для создания GCode для дозирования\n" "нанесения паяльной пасты на печатную плату." -#: flatcamGUI/FlatCAMGUI.py:6525 +#: flatcamGUI/FlatCAMGUI.py:6504 msgid "Diameters of nozzle tools, separated by ','" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6532 +#: flatcamGUI/FlatCAMGUI.py:6511 msgid "New Nozzle Dia:" msgstr "Новый диам. насадки:" -#: flatcamGUI/FlatCAMGUI.py:6534 flatcamTools/ToolSolderPaste.py:103 +#: flatcamGUI/FlatCAMGUI.py:6513 flatcamTools/ToolSolderPaste.py:103 msgid "Diameter for the new Nozzle tool to add in the Tool Table" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6542 flatcamTools/ToolSolderPaste.py:166 +#: flatcamGUI/FlatCAMGUI.py:6521 flatcamTools/ToolSolderPaste.py:166 msgid "Z Dispense Start:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6544 flatcamTools/ToolSolderPaste.py:168 +#: flatcamGUI/FlatCAMGUI.py:6523 flatcamTools/ToolSolderPaste.py:168 msgid "The height (Z) when solder paste dispensing starts." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6551 flatcamTools/ToolSolderPaste.py:174 +#: flatcamGUI/FlatCAMGUI.py:6530 flatcamTools/ToolSolderPaste.py:174 msgid "Z Dispense:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6553 flatcamTools/ToolSolderPaste.py:176 +#: flatcamGUI/FlatCAMGUI.py:6532 flatcamTools/ToolSolderPaste.py:176 msgid "The height (Z) when doing solder paste dispensing." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6560 flatcamTools/ToolSolderPaste.py:183 +#: flatcamGUI/FlatCAMGUI.py:6539 flatcamTools/ToolSolderPaste.py:183 msgid "Z Dispense Stop:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6562 flatcamTools/ToolSolderPaste.py:185 +#: flatcamGUI/FlatCAMGUI.py:6541 flatcamTools/ToolSolderPaste.py:185 msgid "The height (Z) when solder paste dispensing stops." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6569 flatcamTools/ToolSolderPaste.py:191 +#: flatcamGUI/FlatCAMGUI.py:6548 flatcamTools/ToolSolderPaste.py:191 msgid "Z Travel:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6571 flatcamTools/ToolSolderPaste.py:193 +#: flatcamGUI/FlatCAMGUI.py:6550 flatcamTools/ToolSolderPaste.py:193 msgid "" "The height (Z) for travel between pads\n" "(without dispensing solder paste)." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6579 flatcamTools/ToolSolderPaste.py:200 +#: flatcamGUI/FlatCAMGUI.py:6558 flatcamTools/ToolSolderPaste.py:200 msgid "Z Toolchange:" msgstr "Z смены инструмента:" -#: flatcamGUI/FlatCAMGUI.py:6581 flatcamTools/ToolSolderPaste.py:202 +#: flatcamGUI/FlatCAMGUI.py:6560 flatcamTools/ToolSolderPaste.py:202 msgid "The height (Z) for tool (nozzle) change." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6588 flatcamTools/ToolSolderPaste.py:208 +#: flatcamGUI/FlatCAMGUI.py:6567 flatcamTools/ToolSolderPaste.py:208 msgid "XY Toolchange:" msgstr "XY смены инструмента:" -#: flatcamGUI/FlatCAMGUI.py:6590 flatcamTools/ToolSolderPaste.py:210 +#: flatcamGUI/FlatCAMGUI.py:6569 flatcamTools/ToolSolderPaste.py:210 msgid "" "The X,Y location for tool (nozzle) change.\n" "The format is (x, y) where x and y are real numbers." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6598 flatcamTools/ToolSolderPaste.py:217 +#: flatcamGUI/FlatCAMGUI.py:6577 flatcamTools/ToolSolderPaste.py:217 msgid "Feedrate X-Y:" msgstr "Скорость подачи X-Y:" -#: flatcamGUI/FlatCAMGUI.py:6600 flatcamTools/ToolSolderPaste.py:219 +#: flatcamGUI/FlatCAMGUI.py:6579 flatcamTools/ToolSolderPaste.py:219 msgid "Feedrate (speed) while moving on the X-Y plane." msgstr "Скорость подачи при движении по плоскости X-Y." -#: flatcamGUI/FlatCAMGUI.py:6607 flatcamTools/ToolSolderPaste.py:225 +#: flatcamGUI/FlatCAMGUI.py:6586 flatcamTools/ToolSolderPaste.py:225 msgid "Feedrate Z:" msgstr "Скорость подачи Z:" -#: flatcamGUI/FlatCAMGUI.py:6609 flatcamTools/ToolSolderPaste.py:227 +#: flatcamGUI/FlatCAMGUI.py:6588 flatcamTools/ToolSolderPaste.py:227 msgid "" "Feedrate (speed) while moving vertically\n" "(on Z plane)." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6617 flatcamTools/ToolSolderPaste.py:234 +#: flatcamGUI/FlatCAMGUI.py:6596 flatcamTools/ToolSolderPaste.py:234 msgid "Feedrate Z Dispense:" msgstr "Скорость подачи Z Диспенсер:" -#: flatcamGUI/FlatCAMGUI.py:6619 +#: flatcamGUI/FlatCAMGUI.py:6598 msgid "" "Feedrate (speed) while moving up vertically\n" "to Dispense position (on Z plane)." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6627 flatcamTools/ToolSolderPaste.py:243 +#: flatcamGUI/FlatCAMGUI.py:6606 flatcamTools/ToolSolderPaste.py:243 msgid "Spindle Speed FWD:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6629 flatcamTools/ToolSolderPaste.py:245 +#: flatcamGUI/FlatCAMGUI.py:6608 flatcamTools/ToolSolderPaste.py:245 msgid "" "The dispenser speed while pushing solder paste\n" "through the dispenser nozzle." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6637 flatcamTools/ToolSolderPaste.py:252 +#: flatcamGUI/FlatCAMGUI.py:6616 flatcamTools/ToolSolderPaste.py:252 msgid "Dwell FWD:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6639 flatcamTools/ToolSolderPaste.py:254 +#: flatcamGUI/FlatCAMGUI.py:6618 flatcamTools/ToolSolderPaste.py:254 msgid "Pause after solder dispensing." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6646 flatcamTools/ToolSolderPaste.py:260 +#: flatcamGUI/FlatCAMGUI.py:6625 flatcamTools/ToolSolderPaste.py:260 msgid "Spindle Speed REV:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6648 flatcamTools/ToolSolderPaste.py:262 +#: flatcamGUI/FlatCAMGUI.py:6627 flatcamTools/ToolSolderPaste.py:262 msgid "" "The dispenser speed while retracting solder paste\n" "through the dispenser nozzle." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6656 flatcamTools/ToolSolderPaste.py:269 +#: flatcamGUI/FlatCAMGUI.py:6635 flatcamTools/ToolSolderPaste.py:269 msgid "Dwell REV:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6658 flatcamTools/ToolSolderPaste.py:271 +#: flatcamGUI/FlatCAMGUI.py:6637 flatcamTools/ToolSolderPaste.py:271 msgid "" "Pause after solder paste dispenser retracted,\n" "to allow pressure equilibrium." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6665 flatcamTools/ToolSolderPaste.py:277 +#: flatcamGUI/FlatCAMGUI.py:6644 flatcamTools/ToolSolderPaste.py:277 msgid "PostProcessors:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6667 flatcamTools/ToolSolderPaste.py:279 +#: flatcamGUI/FlatCAMGUI.py:6646 flatcamTools/ToolSolderPaste.py:279 msgid "Files that control the GCode generation." msgstr "Файлы контролирующие генерацию GCode." -#: flatcamGUI/FlatCAMGUI.py:6697 flatcamGUI/FlatCAMGUI.py:6703 +#: flatcamGUI/FlatCAMGUI.py:6676 flatcamGUI/FlatCAMGUI.py:6682 msgid "Idle." msgstr "Нет заданий." -#: flatcamGUI/FlatCAMGUI.py:6727 +#: flatcamGUI/FlatCAMGUI.py:6706 msgid "Application started ..." msgstr "Приложение запущено ..." -#: flatcamGUI/FlatCAMGUI.py:6728 +#: flatcamGUI/FlatCAMGUI.py:6707 msgid "Hello!" msgstr "Привет!" @@ -8435,8 +8438,9 @@ msgid "CNC Job Object" msgstr "Объект программы для ЧПУ" #: flatcamGUI/ObjectUI.py:1353 +#, fuzzy msgid "Plot kind:" -msgstr "" +msgstr "Plot kind:" #: flatcamGUI/ObjectUI.py:1369 msgid "Display Annotation:" @@ -8823,9 +8827,12 @@ msgstr "" #: flatcamTools/ToolCutOut.py:370 flatcamTools/ToolCutOut.py:533 #: flatcamTools/ToolCutOut.py:777 +#, fuzzy msgid "" "[WARNING_NOTCL] Margin value is missing or wrong format. Add it and retry." msgstr "" +"[WARNING_NOTCL] Значение отступа отсутствует или оно имеет неправильный " +"формат. Добавьте его и повторите попытку." #: flatcamTools/ToolCutOut.py:381 flatcamTools/ToolCutOut.py:544 #: flatcamTools/ToolCutOut.py:672 @@ -8982,6 +8989,7 @@ msgid "Alignment Drill Coordinates:" msgstr "Координаты выравнивающего отверстия:" #: flatcamTools/ToolDblSided.py:195 +#, fuzzy msgid "" "Alignment holes (x1, y1), (x2, y2), ... on one side of the mirror axis. For " "each set of (x, y) coordinates\n" @@ -8991,6 +8999,13 @@ msgid "" "- one drill in mirror position over the axis selected above in the 'Mirror " "Axis'." msgstr "" +"Выравнивающие отверстия (x1, y1), (x2, y2), ... на одной стороне оси " +"зеркала. Для каждого набора (x, y) координат \n" +"здесь, пара упражнений будет создана:\n" +"\\ п\n" +"- одно упражнение по координатам с поля \\ n\n" +"- одно сверление в положении зеркала над осью, выбранной выше в «Оси " +"зеркала»." #: flatcamTools/ToolDblSided.py:210 msgid "" @@ -9314,7 +9329,7 @@ msgstr "Начальн." #: flatcamTools/ToolMeasurement.py:49 flatcamTools/ToolMeasurement.py:52 msgid "Coords" -msgstr "координаты" +msgstr "Координаты" #: flatcamTools/ToolMeasurement.py:50 flatcamTools/ToolMeasurement.py:66 msgid "This is measuring Start point coordinates." @@ -9663,7 +9678,7 @@ msgstr "" #: flatcamTools/ToolPaint.py:254 msgid "Create Paint Geometry" -msgstr "" +msgstr "Создать Paint Geometry" #: flatcamTools/ToolPaint.py:256 msgid "" @@ -9714,11 +9729,11 @@ msgstr "" msgid "[ERROR_NOTCL] PaintTool.paint_poly() --> %s" msgstr "" -#: flatcamTools/ToolPaint.py:970 flatcamTools/ToolPaint.py:1263 +#: flatcamTools/ToolPaint.py:970 flatcamTools/ToolPaint.py:1267 msgid "Polygon Paint started ..." msgstr "Запущена отрисовка полигона ..." -#: flatcamTools/ToolPaint.py:1119 flatcamTools/ToolPaint.py:1208 +#: flatcamTools/ToolPaint.py:1123 flatcamTools/ToolPaint.py:1212 #, python-format msgid "" "[ERROR] Could not do Paint All. Try a different combination of parameters. " @@ -9726,7 +9741,7 @@ msgid "" "%s" msgstr "" -#: flatcamTools/ToolPaint.py:1143 +#: flatcamTools/ToolPaint.py:1147 msgid "" "[ERROR] There is no Painting Geometry in the file.\n" "Usually it means that the tool diameter is too big for the painted " @@ -9734,11 +9749,11 @@ msgid "" "Change the painting parameters and try again." msgstr "" -#: flatcamTools/ToolPaint.py:1152 +#: flatcamTools/ToolPaint.py:1156 msgid "[success] Paint All Done." msgstr "" -#: flatcamTools/ToolPaint.py:1238 +#: flatcamTools/ToolPaint.py:1242 msgid "" "[ERROR_NOTCL] There is no Painting Geometry in the file.\n" "Usually it means that the tool diameter is too big for the painted " @@ -9746,7 +9761,7 @@ msgid "" "Change the painting parameters and try again." msgstr "" -#: flatcamTools/ToolPaint.py:1247 +#: flatcamTools/ToolPaint.py:1251 msgid "[success] Paint All with Rest-Machining done." msgstr "" @@ -10556,5 +10571,15 @@ msgstr "Объекты CNCJob не могут быть смещены." #~ msgid "tool_tab" #~ msgstr "tool_tab" +#~ msgid "Tool dia: " +#~ msgstr "Диам. инстр.: " + +#~ msgid "" +#~ "The diameter of the cutting\n" +#~ "tool.." +#~ msgstr "" +#~ "Диаметр режущего\n" +#~ "инструмента.." + #~ msgid "Disable" #~ msgstr "Отключить" diff --git a/locale_template/strings.pot b/locale_template/strings.pot index a0af088c..c053e7b8 100644 --- a/locale_template/strings.pot +++ b/locale_template/strings.pot @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" -"POT-Creation-Date: 2019-06-11 23:00+0300\n" +"POT-Creation-Date: 2019-06-22 23:56+0300\n" "PO-Revision-Date: 2019-03-25 15:08+0200\n" "Last-Translator: \n" "Language-Team: \n" @@ -44,124 +44,124 @@ msgstr "" msgid "Open Script file failed." msgstr "" -#: FlatCAMApp.py:2235 +#: FlatCAMApp.py:2244 msgid "[WARNING_NOTCL] Select a Geometry, Gerber or Excellon Object to edit." msgstr "" -#: FlatCAMApp.py:2245 +#: FlatCAMApp.py:2254 msgid "" "[WARNING_NOTCL] Simultanoeus editing of tools geometry in a MultiGeo " "Geometry is not possible.\n" "Edit only one geometry at a time." msgstr "" -#: FlatCAMApp.py:2289 +#: FlatCAMApp.py:2309 msgid "[WARNING_NOTCL] Editor is activated ..." msgstr "" -#: FlatCAMApp.py:2307 +#: FlatCAMApp.py:2327 msgid "Do you want to save the edited object?" msgstr "" -#: FlatCAMApp.py:2308 flatcamGUI/FlatCAMGUI.py:1618 +#: FlatCAMApp.py:2328 flatcamGUI/FlatCAMGUI.py:1618 msgid "Close Editor" msgstr "" -#: FlatCAMApp.py:2311 FlatCAMApp.py:3403 FlatCAMApp.py:5881 +#: FlatCAMApp.py:2331 FlatCAMApp.py:3423 FlatCAMApp.py:5989 #: FlatCAMTranslation.py:89 flatcamGUI/FlatCAMGUI.py:3730 msgid "Yes" msgstr "" -#: FlatCAMApp.py:2312 FlatCAMApp.py:3404 FlatCAMApp.py:5882 +#: FlatCAMApp.py:2332 FlatCAMApp.py:3424 FlatCAMApp.py:5990 #: FlatCAMTranslation.py:90 flatcamGUI/FlatCAMGUI.py:3731 msgid "No" msgstr "" -#: FlatCAMApp.py:2313 FlatCAMApp.py:3405 FlatCAMApp.py:3737 FlatCAMApp.py:5883 +#: FlatCAMApp.py:2333 FlatCAMApp.py:3425 FlatCAMApp.py:3836 FlatCAMApp.py:5991 msgid "Cancel" msgstr "" -#: FlatCAMApp.py:2340 +#: FlatCAMApp.py:2360 msgid "[WARNING] Object empty after edit." msgstr "" -#: FlatCAMApp.py:2362 FlatCAMApp.py:2381 FlatCAMApp.py:2393 +#: FlatCAMApp.py:2382 FlatCAMApp.py:2401 FlatCAMApp.py:2413 msgid "[WARNING_NOTCL] Select a Gerber, Geometry or Excellon Object to update." msgstr "" -#: FlatCAMApp.py:2365 +#: FlatCAMApp.py:2385 #, python-format msgid "[selected] %s is updated, returning to App..." msgstr "" -#: FlatCAMApp.py:2730 +#: FlatCAMApp.py:2750 msgid "[ERROR] Could not load defaults file." msgstr "" -#: FlatCAMApp.py:2742 +#: FlatCAMApp.py:2762 msgid "[ERROR] Failed to parse defaults file." msgstr "" -#: FlatCAMApp.py:2763 FlatCAMApp.py:2767 +#: FlatCAMApp.py:2783 FlatCAMApp.py:2787 msgid "Import FlatCAM Preferences" msgstr "" -#: FlatCAMApp.py:2773 +#: FlatCAMApp.py:2793 msgid "[WARNING_NOTCL] FlatCAM preferences import cancelled." msgstr "" -#: FlatCAMApp.py:2781 FlatCAMApp.py:2835 FlatCAMApp.py:3282 +#: FlatCAMApp.py:2801 FlatCAMApp.py:2855 FlatCAMApp.py:3302 msgid "[ERROR_NOTCL] Could not load defaults file." msgstr "" -#: FlatCAMApp.py:2789 FlatCAMApp.py:3291 +#: FlatCAMApp.py:2809 FlatCAMApp.py:3311 msgid "[ERROR_NOTCL] Failed to parse defaults file." msgstr "" -#: FlatCAMApp.py:2792 +#: FlatCAMApp.py:2812 #, python-format msgid "[success] Imported Defaults from %s" msgstr "" -#: FlatCAMApp.py:2807 FlatCAMApp.py:2812 +#: FlatCAMApp.py:2827 FlatCAMApp.py:2832 msgid "Export FlatCAM Preferences" msgstr "" -#: FlatCAMApp.py:2819 +#: FlatCAMApp.py:2839 msgid "[WARNING_NOTCL] FlatCAM preferences export cancelled." msgstr "" -#: FlatCAMApp.py:2854 FlatCAMApp.py:3336 +#: FlatCAMApp.py:2874 FlatCAMApp.py:3356 msgid "[ERROR_NOTCL] Failed to write defaults to file." msgstr "" -#: FlatCAMApp.py:2907 +#: FlatCAMApp.py:2927 msgid "[ERROR_NOTCL] Failed to open recent files file for writing." msgstr "" -#: FlatCAMApp.py:2984 camlib.py:4454 +#: FlatCAMApp.py:3004 camlib.py:4457 msgid "[ERROR_NOTCL] An internal error has ocurred. See shell.\n" msgstr "" -#: FlatCAMApp.py:2985 +#: FlatCAMApp.py:3005 #, python-brace-format msgid "" "Object ({kind}) failed because: {error} \n" "\n" msgstr "" -#: FlatCAMApp.py:3005 +#: FlatCAMApp.py:3025 msgid "Converting units to " msgstr "" -#: FlatCAMApp.py:3084 FlatCAMApp.py:3087 FlatCAMApp.py:3090 FlatCAMApp.py:3093 +#: FlatCAMApp.py:3104 FlatCAMApp.py:3107 FlatCAMApp.py:3110 FlatCAMApp.py:3113 #, python-brace-format msgid "" "[selected] {kind} created/selected: {name}" msgstr "" -#: FlatCAMApp.py:3187 +#: FlatCAMApp.py:3207 #, python-brace-format msgid "" "FlatCAM
Version {version} {beta} ({date}) - " @@ -175,41 +175,41 @@ msgid "" "downloads/\">here.
" msgstr "" -#: FlatCAMApp.py:3340 +#: FlatCAMApp.py:3360 msgid "[success] Defaults saved." msgstr "" -#: FlatCAMApp.py:3361 +#: FlatCAMApp.py:3381 msgid "[ERROR_NOTCL] Could not load factory defaults file." msgstr "" -#: FlatCAMApp.py:3370 +#: FlatCAMApp.py:3390 msgid "[ERROR_NOTCL] Failed to parse factory defaults file." msgstr "" -#: FlatCAMApp.py:3384 +#: FlatCAMApp.py:3404 msgid "[ERROR_NOTCL] Failed to write factory defaults to file." msgstr "" -#: FlatCAMApp.py:3388 +#: FlatCAMApp.py:3408 msgid "Factory defaults saved." msgstr "" -#: FlatCAMApp.py:3393 flatcamGUI/FlatCAMGUI.py:3106 +#: FlatCAMApp.py:3413 flatcamGUI/FlatCAMGUI.py:3106 msgid "[WARNING_NOTCL] Application is saving the project. Please wait ..." msgstr "" -#: FlatCAMApp.py:3398 +#: FlatCAMApp.py:3418 msgid "" "There are files/objects modified in FlatCAM. \n" "Do you want to Save the project?" msgstr "" -#: FlatCAMApp.py:3401 FlatCAMApp.py:5879 +#: FlatCAMApp.py:3421 FlatCAMApp.py:5987 msgid "Save changes" msgstr "" -#: FlatCAMApp.py:3468 +#: FlatCAMApp.py:3488 msgid "" "[ERROR] Failed join. The Geometry objects are of different types.\n" "At least one is MultiGeo type and the other is SingleGeo type. A possibility " @@ -219,206 +219,206 @@ msgid "" "Check the generated GCODE." msgstr "" -#: FlatCAMApp.py:3509 +#: FlatCAMApp.py:3529 msgid "[ERROR_NOTCL] Failed. Excellon joining works only on Excellon objects." msgstr "" -#: FlatCAMApp.py:3531 +#: FlatCAMApp.py:3551 msgid "[ERROR_NOTCL] Failed. Gerber joining works only on Gerber objects." msgstr "" -#: FlatCAMApp.py:3546 FlatCAMApp.py:3571 +#: FlatCAMApp.py:3566 FlatCAMApp.py:3591 msgid "[ERROR_NOTCL] Failed. Select a Geometry Object and try again." msgstr "" -#: FlatCAMApp.py:3550 FlatCAMApp.py:3575 +#: FlatCAMApp.py:3570 FlatCAMApp.py:3595 #, python-format msgid "[ERROR_NOTCL] Expected a FlatCAMGeometry, got %s" msgstr "" -#: FlatCAMApp.py:3563 +#: FlatCAMApp.py:3583 msgid "[success] A Geometry object was converted to MultiGeo type." msgstr "" -#: FlatCAMApp.py:3589 +#: FlatCAMApp.py:3609 msgid "[success] A Geometry object was converted to SingleGeo type." msgstr "" -#: FlatCAMApp.py:3736 FlatCAMApp.py:4572 FlatCAMApp.py:6154 FlatCAMApp.py:6165 -#: FlatCAMApp.py:6405 FlatCAMApp.py:6415 +#: FlatCAMApp.py:3835 FlatCAMApp.py:4674 FlatCAMApp.py:6262 FlatCAMApp.py:6273 +#: FlatCAMApp.py:6513 FlatCAMApp.py:6523 msgid "Ok" msgstr "" -#: FlatCAMApp.py:3778 +#: FlatCAMApp.py:3880 #, python-format msgid "[success] Converted units to %s" msgstr "" -#: FlatCAMApp.py:3789 +#: FlatCAMApp.py:3891 msgid "[WARNING_NOTCL] Units conversion cancelled." msgstr "" -#: FlatCAMApp.py:4441 +#: FlatCAMApp.py:4543 msgid "Open file" msgstr "" -#: FlatCAMApp.py:4472 FlatCAMApp.py:4477 +#: FlatCAMApp.py:4574 FlatCAMApp.py:4579 msgid "Export G-Code ..." msgstr "" -#: FlatCAMApp.py:4480 +#: FlatCAMApp.py:4582 msgid "[WARNING_NOTCL] Export Code cancelled." msgstr "" -#: FlatCAMApp.py:4490 +#: FlatCAMApp.py:4592 msgid "[WARNING] No such file or directory" msgstr "" -#: FlatCAMApp.py:4497 +#: FlatCAMApp.py:4599 #, python-format msgid "Saved to: %s" msgstr "" -#: FlatCAMApp.py:4560 FlatCAMApp.py:4593 FlatCAMApp.py:4604 FlatCAMApp.py:4615 +#: FlatCAMApp.py:4662 FlatCAMApp.py:4695 FlatCAMApp.py:4706 FlatCAMApp.py:4717 #: flatcamTools/ToolNonCopperClear.py:489 flatcamTools/ToolSolderPaste.py:765 msgid "" "[WARNING_NOTCL] Please enter a tool diameter with non-zero value, in Float " "format." msgstr "" -#: FlatCAMApp.py:4565 FlatCAMApp.py:4598 FlatCAMApp.py:4609 FlatCAMApp.py:4620 +#: FlatCAMApp.py:4667 FlatCAMApp.py:4700 FlatCAMApp.py:4711 FlatCAMApp.py:4722 #: flatcamGUI/FlatCAMGUI.py:3001 msgid "[WARNING_NOTCL] Adding Tool cancelled ..." msgstr "" -#: FlatCAMApp.py:4568 +#: FlatCAMApp.py:4670 msgid "" "Adding Tool works only when Advanced is checked.\n" "Go to Preferences -> General - Show Advanced Options." msgstr "" -#: FlatCAMApp.py:4681 +#: FlatCAMApp.py:4783 msgid "Object(s) deleted ..." msgstr "" -#: FlatCAMApp.py:4685 +#: FlatCAMApp.py:4787 msgid "Failed. No object(s) selected..." msgstr "" -#: FlatCAMApp.py:4687 +#: FlatCAMApp.py:4789 msgid "Save the work in Editor and try again ..." msgstr "" -#: FlatCAMApp.py:4700 +#: FlatCAMApp.py:4802 msgid "Click to set the origin ..." msgstr "" -#: FlatCAMApp.py:4712 +#: FlatCAMApp.py:4814 msgid "Jump to ..." msgstr "" -#: FlatCAMApp.py:4713 +#: FlatCAMApp.py:4815 msgid "Enter the coordinates in format X,Y:" msgstr "" -#: FlatCAMApp.py:4720 +#: FlatCAMApp.py:4822 msgid "Wrong coordinates. Enter coordinates in format: X,Y" msgstr "" -#: FlatCAMApp.py:4738 flatcamEditors/FlatCAMExcEditor.py:2320 +#: FlatCAMApp.py:4840 flatcamEditors/FlatCAMExcEditor.py:2320 #: flatcamEditors/FlatCAMExcEditor.py:2327 -#: flatcamEditors/FlatCAMGeoEditor.py:3645 -#: flatcamEditors/FlatCAMGeoEditor.py:3659 +#: flatcamEditors/FlatCAMGeoEditor.py:3648 +#: flatcamEditors/FlatCAMGeoEditor.py:3662 #: flatcamEditors/FlatCAMGrbEditor.py:1040 #: flatcamEditors/FlatCAMGrbEditor.py:1141 #: flatcamEditors/FlatCAMGrbEditor.py:1409 #: flatcamEditors/FlatCAMGrbEditor.py:1666 -#: flatcamEditors/FlatCAMGrbEditor.py:3950 -#: flatcamEditors/FlatCAMGrbEditor.py:3964 flatcamGUI/FlatCAMGUI.py:2414 +#: flatcamEditors/FlatCAMGrbEditor.py:3960 +#: flatcamEditors/FlatCAMGrbEditor.py:3974 flatcamGUI/FlatCAMGUI.py:2414 #: flatcamGUI/FlatCAMGUI.py:2426 msgid "[success] Done." msgstr "" -#: FlatCAMApp.py:4870 FlatCAMApp.py:4937 +#: FlatCAMApp.py:4972 FlatCAMApp.py:5039 msgid "[WARNING_NOTCL] No object is selected. Select an object and try again." msgstr "" -#: FlatCAMApp.py:4978 +#: FlatCAMApp.py:5080 msgid "[success] Origin set ..." msgstr "" -#: FlatCAMApp.py:4998 +#: FlatCAMApp.py:5100 msgid "Preferences" msgstr "" -#: FlatCAMApp.py:5018 +#: FlatCAMApp.py:5120 msgid "[WARNING_NOTCL] No object selected to Flip on Y axis." msgstr "" -#: FlatCAMApp.py:5043 +#: FlatCAMApp.py:5145 msgid "[success] Flip on Y axis done." msgstr "" -#: FlatCAMApp.py:5045 FlatCAMApp.py:5085 +#: FlatCAMApp.py:5147 FlatCAMApp.py:5187 #: flatcamEditors/FlatCAMGeoEditor.py:1355 -#: flatcamEditors/FlatCAMGrbEditor.py:5331 flatcamTools/ToolTransform.py:748 +#: flatcamEditors/FlatCAMGrbEditor.py:5343 flatcamTools/ToolTransform.py:748 #, python-format msgid "[ERROR_NOTCL] Due of %s, Flip action was not executed." msgstr "" -#: FlatCAMApp.py:5058 +#: FlatCAMApp.py:5160 msgid "[WARNING_NOTCL] No object selected to Flip on X axis." msgstr "" -#: FlatCAMApp.py:5083 +#: FlatCAMApp.py:5185 msgid "[success] Flip on X axis done." msgstr "" -#: FlatCAMApp.py:5098 +#: FlatCAMApp.py:5200 msgid "[WARNING_NOTCL] No object selected to Rotate." msgstr "" -#: FlatCAMApp.py:5101 FlatCAMApp.py:5146 FlatCAMApp.py:5177 +#: FlatCAMApp.py:5203 FlatCAMApp.py:5248 FlatCAMApp.py:5279 msgid "Transform" msgstr "" -#: FlatCAMApp.py:5101 FlatCAMApp.py:5146 FlatCAMApp.py:5177 +#: FlatCAMApp.py:5203 FlatCAMApp.py:5248 FlatCAMApp.py:5279 msgid "Enter the Angle value:" msgstr "" -#: FlatCAMApp.py:5131 +#: FlatCAMApp.py:5233 msgid "[success] Rotation done." msgstr "" -#: FlatCAMApp.py:5133 flatcamEditors/FlatCAMGeoEditor.py:1298 -#: flatcamEditors/FlatCAMGrbEditor.py:5262 flatcamTools/ToolTransform.py:677 +#: FlatCAMApp.py:5235 flatcamEditors/FlatCAMGeoEditor.py:1298 +#: flatcamEditors/FlatCAMGrbEditor.py:5272 flatcamTools/ToolTransform.py:677 #, python-format msgid "[ERROR_NOTCL] Due of %s, rotation movement was not executed." msgstr "" -#: FlatCAMApp.py:5144 +#: FlatCAMApp.py:5246 msgid "[WARNING_NOTCL] No object selected to Skew/Shear on X axis." msgstr "" -#: FlatCAMApp.py:5165 +#: FlatCAMApp.py:5267 msgid "[success] Skew on X axis done." msgstr "" -#: FlatCAMApp.py:5175 +#: FlatCAMApp.py:5277 msgid "[WARNING_NOTCL] No object selected to Skew/Shear on Y axis." msgstr "" -#: FlatCAMApp.py:5196 +#: FlatCAMApp.py:5298 msgid "[success] Skew on Y axis done." msgstr "" -#: FlatCAMApp.py:5265 +#: FlatCAMApp.py:5368 msgid "Grid On/Off" msgstr "" -#: FlatCAMApp.py:5278 flatcamEditors/FlatCAMGeoEditor.py:937 +#: FlatCAMApp.py:5381 flatcamEditors/FlatCAMGeoEditor.py:937 #: flatcamEditors/FlatCAMGrbEditor.py:2381 -#: flatcamEditors/FlatCAMGrbEditor.py:4853 flatcamGUI/ObjectUI.py:991 +#: flatcamEditors/FlatCAMGrbEditor.py:4861 flatcamGUI/ObjectUI.py:991 #: flatcamTools/ToolDblSided.py:160 flatcamTools/ToolDblSided.py:208 #: flatcamTools/ToolNonCopperClear.py:134 flatcamTools/ToolPaint.py:131 #: flatcamTools/ToolSolderPaste.py:115 flatcamTools/ToolSolderPaste.py:479 @@ -426,7 +426,7 @@ msgstr "" msgid "Add" msgstr "" -#: FlatCAMApp.py:5279 FlatCAMObj.py:3270 +#: FlatCAMApp.py:5382 FlatCAMObj.py:3295 #: flatcamEditors/FlatCAMGrbEditor.py:2386 flatcamGUI/FlatCAMGUI.py:527 #: flatcamGUI/FlatCAMGUI.py:724 flatcamGUI/FlatCAMGUI.py:1616 #: flatcamGUI/FlatCAMGUI.py:1953 flatcamGUI/ObjectUI.py:1007 @@ -435,274 +435,278 @@ msgstr "" msgid "Delete" msgstr "" -#: FlatCAMApp.py:5292 +#: FlatCAMApp.py:5395 msgid "New Grid ..." msgstr "" -#: FlatCAMApp.py:5293 +#: FlatCAMApp.py:5396 msgid "Enter a Grid Value:" msgstr "" -#: FlatCAMApp.py:5301 FlatCAMApp.py:5328 +#: FlatCAMApp.py:5404 FlatCAMApp.py:5431 msgid "" "[WARNING_NOTCL] Please enter a grid value with non-zero value, in Float " "format." msgstr "" -#: FlatCAMApp.py:5307 +#: FlatCAMApp.py:5410 msgid "[success] New Grid added ..." msgstr "" -#: FlatCAMApp.py:5310 +#: FlatCAMApp.py:5413 msgid "[WARNING_NOTCL] Grid already exists ..." msgstr "" -#: FlatCAMApp.py:5313 +#: FlatCAMApp.py:5416 msgid "[WARNING_NOTCL] Adding New Grid cancelled ..." msgstr "" -#: FlatCAMApp.py:5335 +#: FlatCAMApp.py:5438 msgid "[ERROR_NOTCL] Grid Value does not exist ..." msgstr "" -#: FlatCAMApp.py:5338 +#: FlatCAMApp.py:5441 msgid "[success] Grid Value deleted ..." msgstr "" -#: FlatCAMApp.py:5341 +#: FlatCAMApp.py:5444 msgid "[WARNING_NOTCL] Delete Grid value cancelled ..." msgstr "" -#: FlatCAMApp.py:5380 +#: FlatCAMApp.py:5483 msgid "[WARNING_NOTCL] No object selected to copy it's name" msgstr "" -#: FlatCAMApp.py:5384 +#: FlatCAMApp.py:5487 msgid "Name copied on clipboard ..." msgstr "" -#: FlatCAMApp.py:5677 FlatCAMApp.py:5680 FlatCAMApp.py:5683 FlatCAMApp.py:5686 -#: FlatCAMApp.py:5701 FlatCAMApp.py:5704 FlatCAMApp.py:5707 FlatCAMApp.py:5710 -#: FlatCAMApp.py:5750 FlatCAMApp.py:5753 FlatCAMApp.py:5756 FlatCAMApp.py:5759 +#: FlatCAMApp.py:5529 flatcamEditors/FlatCAMGrbEditor.py:3901 +msgid "[success] Coordinates copied to clipboard." +msgstr "" + +#: FlatCAMApp.py:5785 FlatCAMApp.py:5788 FlatCAMApp.py:5791 FlatCAMApp.py:5794 +#: FlatCAMApp.py:5809 FlatCAMApp.py:5812 FlatCAMApp.py:5815 FlatCAMApp.py:5818 +#: FlatCAMApp.py:5858 FlatCAMApp.py:5861 FlatCAMApp.py:5864 FlatCAMApp.py:5867 #: ObjectCollection.py:719 ObjectCollection.py:722 ObjectCollection.py:725 #: ObjectCollection.py:728 #, python-brace-format msgid "[selected]{name} selected" msgstr "" -#: FlatCAMApp.py:5876 +#: FlatCAMApp.py:5984 msgid "" "There are files/objects opened in FlatCAM.\n" "Creating a New project will delete them.\n" "Do you want to Save the project?" msgstr "" -#: FlatCAMApp.py:5897 +#: FlatCAMApp.py:6005 msgid "[success] New Project created..." msgstr "" -#: FlatCAMApp.py:6013 FlatCAMApp.py:6016 flatcamGUI/FlatCAMGUI.py:608 +#: FlatCAMApp.py:6121 FlatCAMApp.py:6124 flatcamGUI/FlatCAMGUI.py:608 #: flatcamGUI/FlatCAMGUI.py:1832 msgid "Open Gerber" msgstr "" -#: FlatCAMApp.py:6021 +#: FlatCAMApp.py:6129 msgid "[WARNING_NOTCL] Open Gerber cancelled." msgstr "" -#: FlatCAMApp.py:6042 FlatCAMApp.py:6045 flatcamGUI/FlatCAMGUI.py:609 +#: FlatCAMApp.py:6150 FlatCAMApp.py:6153 flatcamGUI/FlatCAMGUI.py:609 #: flatcamGUI/FlatCAMGUI.py:1833 msgid "Open Excellon" msgstr "" -#: FlatCAMApp.py:6050 +#: FlatCAMApp.py:6158 msgid "[WARNING_NOTCL] Open Excellon cancelled." msgstr "" -#: FlatCAMApp.py:6072 FlatCAMApp.py:6075 +#: FlatCAMApp.py:6180 FlatCAMApp.py:6183 msgid "Open G-Code" msgstr "" -#: FlatCAMApp.py:6080 +#: FlatCAMApp.py:6188 msgid "[WARNING_NOTCL] Open G-Code cancelled." msgstr "" -#: FlatCAMApp.py:6098 FlatCAMApp.py:6101 +#: FlatCAMApp.py:6206 FlatCAMApp.py:6209 msgid "Open Project" msgstr "" -#: FlatCAMApp.py:6109 +#: FlatCAMApp.py:6217 msgid "[WARNING_NOTCL] Open Project cancelled." msgstr "" -#: FlatCAMApp.py:6128 FlatCAMApp.py:6131 +#: FlatCAMApp.py:6236 FlatCAMApp.py:6239 msgid "Open Configuration File" msgstr "" -#: FlatCAMApp.py:6135 +#: FlatCAMApp.py:6243 msgid "[WARNING_NOTCL] Open Config cancelled." msgstr "" -#: FlatCAMApp.py:6150 FlatCAMApp.py:6401 FlatCAMApp.py:8551 FlatCAMApp.py:8571 -#: FlatCAMApp.py:8592 FlatCAMApp.py:8614 +#: FlatCAMApp.py:6258 FlatCAMApp.py:6509 FlatCAMApp.py:8662 FlatCAMApp.py:8682 +#: FlatCAMApp.py:8703 FlatCAMApp.py:8725 msgid "[WARNING_NOTCL] No object selected." msgstr "" -#: FlatCAMApp.py:6151 FlatCAMApp.py:6402 +#: FlatCAMApp.py:6259 FlatCAMApp.py:6510 msgid "Please Select a Geometry object to export" msgstr "" -#: FlatCAMApp.py:6162 +#: FlatCAMApp.py:6270 msgid "[ERROR_NOTCL] Only Geometry, Gerber and CNCJob objects can be used." msgstr "" -#: FlatCAMApp.py:6175 FlatCAMApp.py:6179 +#: FlatCAMApp.py:6283 FlatCAMApp.py:6287 msgid "Export SVG" msgstr "" -#: FlatCAMApp.py:6184 +#: FlatCAMApp.py:6292 msgid "[WARNING_NOTCL] Export SVG cancelled." msgstr "" -#: FlatCAMApp.py:6203 +#: FlatCAMApp.py:6311 msgid "[[WARNING_NOTCL]] Data must be a 3D array with last dimension 3 or 4" msgstr "" -#: FlatCAMApp.py:6209 FlatCAMApp.py:6213 +#: FlatCAMApp.py:6317 FlatCAMApp.py:6321 msgid "Export PNG Image" msgstr "" -#: FlatCAMApp.py:6218 +#: FlatCAMApp.py:6326 msgid "Export PNG cancelled." msgstr "" -#: FlatCAMApp.py:6237 +#: FlatCAMApp.py:6345 msgid "" "[WARNING_NOTCL] No object selected. Please select an Gerber object to export." msgstr "" -#: FlatCAMApp.py:6242 FlatCAMApp.py:6365 +#: FlatCAMApp.py:6350 FlatCAMApp.py:6473 msgid "" "[ERROR_NOTCL] Failed. Only Gerber objects can be saved as Gerber files..." msgstr "" -#: FlatCAMApp.py:6254 +#: FlatCAMApp.py:6362 msgid "Save Gerber source file" msgstr "" -#: FlatCAMApp.py:6259 +#: FlatCAMApp.py:6367 msgid "[WARNING_NOTCL] Save Gerber source file cancelled." msgstr "" -#: FlatCAMApp.py:6278 +#: FlatCAMApp.py:6386 msgid "" "[WARNING_NOTCL] No object selected. Please select an Excellon object to " "export." msgstr "" -#: FlatCAMApp.py:6283 FlatCAMApp.py:6324 +#: FlatCAMApp.py:6391 FlatCAMApp.py:6432 msgid "" "[ERROR_NOTCL] Failed. Only Excellon objects can be saved as Excellon files..." msgstr "" -#: FlatCAMApp.py:6291 FlatCAMApp.py:6295 +#: FlatCAMApp.py:6399 FlatCAMApp.py:6403 msgid "Save Excellon source file" msgstr "" -#: FlatCAMApp.py:6300 +#: FlatCAMApp.py:6408 msgid "[WARNING_NOTCL] Saving Excellon source file cancelled." msgstr "" -#: FlatCAMApp.py:6319 +#: FlatCAMApp.py:6427 msgid "" "[WARNING_NOTCL] No object selected. Please Select an Excellon object to " "export." msgstr "" -#: FlatCAMApp.py:6332 FlatCAMApp.py:6336 +#: FlatCAMApp.py:6440 FlatCAMApp.py:6444 msgid "Export Excellon" msgstr "" -#: FlatCAMApp.py:6341 +#: FlatCAMApp.py:6449 msgid "[WARNING_NOTCL] Export Excellon cancelled." msgstr "" -#: FlatCAMApp.py:6360 +#: FlatCAMApp.py:6468 msgid "" "[WARNING_NOTCL] No object selected. Please Select an Gerber object to export." msgstr "" -#: FlatCAMApp.py:6373 FlatCAMApp.py:6377 +#: FlatCAMApp.py:6481 FlatCAMApp.py:6485 msgid "Export Gerber" msgstr "" -#: FlatCAMApp.py:6382 +#: FlatCAMApp.py:6490 msgid "[WARNING_NOTCL] Export Gerber cancelled." msgstr "" -#: FlatCAMApp.py:6412 +#: FlatCAMApp.py:6520 msgid "[ERROR_NOTCL] Only Geometry objects can be used." msgstr "" -#: FlatCAMApp.py:6426 FlatCAMApp.py:6430 +#: FlatCAMApp.py:6534 FlatCAMApp.py:6538 msgid "Export DXF" msgstr "" -#: FlatCAMApp.py:6436 +#: FlatCAMApp.py:6544 msgid "[WARNING_NOTCL] Export DXF cancelled." msgstr "" -#: FlatCAMApp.py:6456 FlatCAMApp.py:6459 +#: FlatCAMApp.py:6564 FlatCAMApp.py:6567 msgid "Import SVG" msgstr "" -#: FlatCAMApp.py:6468 +#: FlatCAMApp.py:6576 msgid "[WARNING_NOTCL] Open SVG cancelled." msgstr "" -#: FlatCAMApp.py:6487 FlatCAMApp.py:6491 +#: FlatCAMApp.py:6595 FlatCAMApp.py:6599 msgid "Import DXF" msgstr "" -#: FlatCAMApp.py:6500 +#: FlatCAMApp.py:6608 msgid "[WARNING_NOTCL] Open DXF cancelled." msgstr "" -#: FlatCAMApp.py:6518 +#: FlatCAMApp.py:6626 #, python-format msgid "%s" msgstr "" -#: FlatCAMApp.py:6538 +#: FlatCAMApp.py:6646 msgid "" "[WARNING_NOTCL] Select an Gerber or Excellon file to view it's source file." msgstr "" -#: FlatCAMApp.py:6545 +#: FlatCAMApp.py:6653 msgid "" "[WARNING_NOTCL] There is no selected object for which to see it's source " "file code." msgstr "" -#: FlatCAMApp.py:6553 +#: FlatCAMApp.py:6661 msgid "Source Editor" msgstr "" -#: FlatCAMApp.py:6563 +#: FlatCAMApp.py:6671 #, python-format msgid "[ERROR]App.on_view_source() -->%s" msgstr "" -#: FlatCAMApp.py:6575 FlatCAMApp.py:7717 FlatCAMObj.py:5551 +#: FlatCAMApp.py:6683 FlatCAMApp.py:7825 FlatCAMObj.py:5588 #: flatcamTools/ToolSolderPaste.py:1278 msgid "Code Editor" msgstr "" -#: FlatCAMApp.py:6587 +#: FlatCAMApp.py:6695 msgid "Script Editor" msgstr "" -#: FlatCAMApp.py:6590 +#: FlatCAMApp.py:6698 msgid "" "#\n" "# CREATE A NEW FLATCAM TCL SCRIPT\n" @@ -726,216 +730,216 @@ msgid "" "\n" msgstr "" -#: FlatCAMApp.py:6613 FlatCAMApp.py:6616 +#: FlatCAMApp.py:6721 FlatCAMApp.py:6724 msgid "Open TCL script" msgstr "" -#: FlatCAMApp.py:6624 +#: FlatCAMApp.py:6732 msgid "[WARNING_NOTCL] Open TCL script cancelled." msgstr "" -#: FlatCAMApp.py:6636 +#: FlatCAMApp.py:6744 #, python-format msgid "[ERROR]App.on_fileopenscript() -->%s" msgstr "" -#: FlatCAMApp.py:6662 FlatCAMApp.py:6665 +#: FlatCAMApp.py:6770 FlatCAMApp.py:6773 msgid "Run TCL script" msgstr "" -#: FlatCAMApp.py:6673 +#: FlatCAMApp.py:6781 msgid "[WARNING_NOTCL] Run TCL script cancelled." msgstr "" -#: FlatCAMApp.py:6723 FlatCAMApp.py:6727 +#: FlatCAMApp.py:6831 FlatCAMApp.py:6835 msgid "Save Project As ..." msgstr "" -#: FlatCAMApp.py:6724 +#: FlatCAMApp.py:6832 #, python-brace-format msgid "{l_save}/Project_{date}" msgstr "" -#: FlatCAMApp.py:6732 +#: FlatCAMApp.py:6840 msgid "[WARNING_NOTCL] Save Project cancelled." msgstr "" -#: FlatCAMApp.py:6776 +#: FlatCAMApp.py:6884 msgid "Exporting SVG" msgstr "" -#: FlatCAMApp.py:6810 FlatCAMApp.py:6916 FlatCAMApp.py:7031 +#: FlatCAMApp.py:6918 FlatCAMApp.py:7024 FlatCAMApp.py:7139 #, python-format msgid "[success] SVG file exported to %s" msgstr "" -#: FlatCAMApp.py:6841 FlatCAMApp.py:6962 +#: FlatCAMApp.py:6949 FlatCAMApp.py:7070 #, python-format msgid "[WARNING_NOTCL] No object Box. Using instead %s" msgstr "" -#: FlatCAMApp.py:6919 FlatCAMApp.py:7034 +#: FlatCAMApp.py:7027 FlatCAMApp.py:7142 msgid "Generating Film ... Please wait." msgstr "" -#: FlatCAMApp.py:7182 +#: FlatCAMApp.py:7290 #, python-format msgid "[success] Excellon file exported to %s" msgstr "" -#: FlatCAMApp.py:7189 +#: FlatCAMApp.py:7297 msgid "Exporting Excellon" msgstr "" -#: FlatCAMApp.py:7194 FlatCAMApp.py:7201 +#: FlatCAMApp.py:7302 FlatCAMApp.py:7309 msgid "[ERROR_NOTCL] Could not export Excellon file." msgstr "" -#: FlatCAMApp.py:7299 +#: FlatCAMApp.py:7407 #, python-format msgid "[success] Gerber file exported to %s" msgstr "" -#: FlatCAMApp.py:7306 +#: FlatCAMApp.py:7414 msgid "Exporting Gerber" msgstr "" -#: FlatCAMApp.py:7311 FlatCAMApp.py:7318 +#: FlatCAMApp.py:7419 FlatCAMApp.py:7426 msgid "[ERROR_NOTCL] Could not export Gerber file." msgstr "" -#: FlatCAMApp.py:7358 +#: FlatCAMApp.py:7466 #, python-format msgid "[success] DXF file exported to %s" msgstr "" -#: FlatCAMApp.py:7364 +#: FlatCAMApp.py:7472 msgid "Exporting DXF" msgstr "" -#: FlatCAMApp.py:7369 FlatCAMApp.py:7376 +#: FlatCAMApp.py:7477 FlatCAMApp.py:7484 msgid "[[WARNING_NOTCL]] Could not export DXF file." msgstr "" -#: FlatCAMApp.py:7396 FlatCAMApp.py:7438 FlatCAMApp.py:7482 +#: FlatCAMApp.py:7504 FlatCAMApp.py:7546 FlatCAMApp.py:7590 msgid "" "[ERROR_NOTCL] Not supported type is picked as parameter. Only Geometry and " "Gerber are supported" msgstr "" -#: FlatCAMApp.py:7406 +#: FlatCAMApp.py:7514 msgid "Importing SVG" msgstr "" -#: FlatCAMApp.py:7417 FlatCAMApp.py:7459 FlatCAMApp.py:7502 FlatCAMApp.py:7579 -#: FlatCAMApp.py:7640 FlatCAMApp.py:7703 flatcamTools/ToolPDF.py:212 +#: FlatCAMApp.py:7525 FlatCAMApp.py:7567 FlatCAMApp.py:7610 FlatCAMApp.py:7687 +#: FlatCAMApp.py:7748 FlatCAMApp.py:7811 flatcamTools/ToolPDF.py:212 #, python-format msgid "[success] Opened: %s" msgstr "" -#: FlatCAMApp.py:7448 +#: FlatCAMApp.py:7556 msgid "Importing DXF" msgstr "" -#: FlatCAMApp.py:7490 +#: FlatCAMApp.py:7598 msgid "Importing Image" msgstr "" -#: FlatCAMApp.py:7531 FlatCAMApp.py:7533 +#: FlatCAMApp.py:7639 FlatCAMApp.py:7641 #, python-format msgid "[ERROR_NOTCL] Failed to open file: %s" msgstr "" -#: FlatCAMApp.py:7536 +#: FlatCAMApp.py:7644 #, python-brace-format msgid "[ERROR_NOTCL] Failed to parse file: {name}. {error}" msgstr "" -#: FlatCAMApp.py:7543 FlatCAMObj.py:4230 +#: FlatCAMApp.py:7651 FlatCAMObj.py:4266 #: flatcamEditors/FlatCAMExcEditor.py:2077 msgid "[ERROR] An internal error has ocurred. See shell.\n" msgstr "" -#: FlatCAMApp.py:7552 +#: FlatCAMApp.py:7660 msgid "" "[ERROR_NOTCL] Object is not Gerber file or empty. Aborting object creation." msgstr "" -#: FlatCAMApp.py:7560 +#: FlatCAMApp.py:7668 msgid "Opening Gerber" msgstr "" -#: FlatCAMApp.py:7570 +#: FlatCAMApp.py:7678 msgid "[ERROR_NOTCL] Open Gerber failed. Probable not a Gerber file." msgstr "" -#: FlatCAMApp.py:7603 flatcamTools/ToolPcbWizard.py:421 +#: FlatCAMApp.py:7711 flatcamTools/ToolPcbWizard.py:421 msgid "[ERROR_NOTCL] This is not Excellon file." msgstr "" -#: FlatCAMApp.py:7606 +#: FlatCAMApp.py:7714 #, python-format msgid "[ERROR_NOTCL] Cannot open file: %s" msgstr "" -#: FlatCAMApp.py:7611 flatcamTools/ToolPcbWizard.py:429 +#: FlatCAMApp.py:7719 flatcamTools/ToolPcbWizard.py:429 msgid "[ERROR_NOTCL] An internal error has occurred. See shell.\n" msgstr "" -#: FlatCAMApp.py:7624 flatcamTools/ToolPDF.py:262 +#: FlatCAMApp.py:7732 flatcamTools/ToolPDF.py:262 #: flatcamTools/ToolPcbWizard.py:442 #, python-format msgid "[ERROR_NOTCL] No geometry found in file: %s" msgstr "" -#: FlatCAMApp.py:7627 +#: FlatCAMApp.py:7735 msgid "Opening Excellon." msgstr "" -#: FlatCAMApp.py:7633 +#: FlatCAMApp.py:7741 msgid "[ERROR_NOTCL] Open Excellon file failed. Probable not an Excellon file." msgstr "" -#: FlatCAMApp.py:7670 +#: FlatCAMApp.py:7778 #, python-format msgid "[ERROR_NOTCL] Failed to open %s" msgstr "" -#: FlatCAMApp.py:7680 +#: FlatCAMApp.py:7788 msgid "[ERROR_NOTCL] This is not GCODE" msgstr "" -#: FlatCAMApp.py:7686 +#: FlatCAMApp.py:7794 msgid "Opening G-Code." msgstr "" -#: FlatCAMApp.py:7694 +#: FlatCAMApp.py:7802 msgid "" "[ERROR_NOTCL] Failed to create CNCJob Object. Probable not a GCode file.\n" " Attempting to create a FlatCAM CNCJob Object from G-Code file failed during " "processing" msgstr "" -#: FlatCAMApp.py:7734 +#: FlatCAMApp.py:7842 #, python-format msgid "[ERROR_NOTCL] Failed to open config file: %s" msgstr "" -#: FlatCAMApp.py:7760 FlatCAMApp.py:7777 +#: FlatCAMApp.py:7868 FlatCAMApp.py:7885 #, python-format msgid "[ERROR_NOTCL] Failed to open project file: %s" msgstr "" -#: FlatCAMApp.py:7800 +#: FlatCAMApp.py:7908 #, python-format msgid "[success] Project loaded from: %s" msgstr "" -#: FlatCAMApp.py:7905 +#: FlatCAMApp.py:8013 msgid "Available commands:\n" msgstr "" -#: FlatCAMApp.py:7907 +#: FlatCAMApp.py:8015 msgid "" "\n" "\n" @@ -943,27 +947,27 @@ msgid "" " Example: help open_gerber" msgstr "" -#: FlatCAMApp.py:8057 +#: FlatCAMApp.py:8165 msgid "Shows list of commands." msgstr "" -#: FlatCAMApp.py:8114 +#: FlatCAMApp.py:8222 msgid "[ERROR_NOTCL] Failed to load recent item list." msgstr "" -#: FlatCAMApp.py:8121 +#: FlatCAMApp.py:8229 msgid "[ERROR_NOTCL] Failed to parse recent item list." msgstr "" -#: FlatCAMApp.py:8165 +#: FlatCAMApp.py:8273 msgid "Clear Recent files" msgstr "" -#: FlatCAMApp.py:8182 flatcamGUI/FlatCAMGUI.py:968 +#: FlatCAMApp.py:8290 flatcamGUI/FlatCAMGUI.py:968 msgid "Shortcut Key List" msgstr "" -#: FlatCAMApp.py:8189 +#: FlatCAMApp.py:8297 msgid "" "\n" "

Selected Tab - Choose an Item from " @@ -1013,113 +1017,113 @@ msgid "" " " msgstr "" -#: FlatCAMApp.py:8293 +#: FlatCAMApp.py:8404 msgid "[WARNING_NOTCL] Failed checking for latest version. Could not connect." msgstr "" -#: FlatCAMApp.py:8300 +#: FlatCAMApp.py:8411 msgid "[ERROR_NOTCL] Could not parse information about latest version." msgstr "" -#: FlatCAMApp.py:8310 +#: FlatCAMApp.py:8421 msgid "[success] FlatCAM is up to date!" msgstr "" -#: FlatCAMApp.py:8315 +#: FlatCAMApp.py:8426 msgid "Newer Version Available" msgstr "" -#: FlatCAMApp.py:8316 +#: FlatCAMApp.py:8427 msgid "" "There is a newer version of FlatCAM available for download:\n" "\n" msgstr "" -#: FlatCAMApp.py:8318 +#: FlatCAMApp.py:8429 msgid "info" msgstr "" -#: FlatCAMApp.py:8337 +#: FlatCAMApp.py:8448 msgid "[success] All plots disabled." msgstr "" -#: FlatCAMApp.py:8343 +#: FlatCAMApp.py:8454 msgid "[success] All non selected plots disabled." msgstr "" -#: FlatCAMApp.py:8349 +#: FlatCAMApp.py:8460 msgid "[success] All plots enabled." msgstr "" -#: FlatCAMApp.py:8355 +#: FlatCAMApp.py:8466 msgid "[success] Selected plots enabled..." msgstr "" -#: FlatCAMApp.py:8363 +#: FlatCAMApp.py:8474 msgid "[success] Selected plots disabled..." msgstr "" -#: FlatCAMApp.py:8373 FlatCAMApp.py:8386 +#: FlatCAMApp.py:8484 FlatCAMApp.py:8497 msgid "Working ..." msgstr "" -#: FlatCAMApp.py:8420 +#: FlatCAMApp.py:8531 msgid "Saving FlatCAM Project" msgstr "" -#: FlatCAMApp.py:8441 FlatCAMApp.py:8472 +#: FlatCAMApp.py:8552 FlatCAMApp.py:8583 #, python-format msgid "[success] Project saved to: %s" msgstr "" -#: FlatCAMApp.py:8459 +#: FlatCAMApp.py:8570 #, python-format msgid "[ERROR_NOTCL] Failed to verify project file: %s. Retry to save it." msgstr "" -#: FlatCAMApp.py:8466 +#: FlatCAMApp.py:8577 #, python-format msgid "[ERROR_NOTCL] Failed to parse saved project file: %s. Retry to save it." msgstr "" -#: FlatCAMApp.py:8474 +#: FlatCAMApp.py:8585 #, python-format msgid "[ERROR_NOTCL] Failed to save project file: %s. Retry to save it." msgstr "" -#: FlatCAMObj.py:202 +#: FlatCAMObj.py:207 #, python-brace-format msgid "[success] Name changed from {old} to {new}" msgstr "" -#: FlatCAMObj.py:545 FlatCAMObj.py:2031 FlatCAMObj.py:3275 FlatCAMObj.py:5448 +#: FlatCAMObj.py:553 FlatCAMObj.py:2034 FlatCAMObj.py:3300 FlatCAMObj.py:5485 msgid "Basic" msgstr "" -#: FlatCAMObj.py:557 FlatCAMObj.py:2047 FlatCAMObj.py:3297 FlatCAMObj.py:5454 +#: FlatCAMObj.py:565 FlatCAMObj.py:2050 FlatCAMObj.py:3322 FlatCAMObj.py:5491 msgid "Advanced" msgstr "" -#: FlatCAMObj.py:920 FlatCAMObj.py:975 +#: FlatCAMObj.py:927 FlatCAMObj.py:982 #, python-format msgid "[success] Isolation geometry created: %s" msgstr "" -#: FlatCAMObj.py:1154 +#: FlatCAMObj.py:1161 msgid "Plotting Apertures" msgstr "" -#: FlatCAMObj.py:1870 flatcamEditors/FlatCAMExcEditor.py:1368 +#: FlatCAMObj.py:1877 flatcamEditors/FlatCAMExcEditor.py:1368 msgid "Total Drills" msgstr "" -#: FlatCAMObj.py:1896 flatcamEditors/FlatCAMExcEditor.py:1400 +#: FlatCAMObj.py:1903 flatcamEditors/FlatCAMExcEditor.py:1400 msgid "Total Slots" msgstr "" -#: FlatCAMObj.py:2103 FlatCAMObj.py:3348 FlatCAMObj.py:3646 FlatCAMObj.py:3833 -#: FlatCAMObj.py:3846 FlatCAMObj.py:3963 FlatCAMObj.py:4380 FlatCAMObj.py:4618 -#: FlatCAMObj.py:5031 flatcamEditors/FlatCAMExcEditor.py:1474 +#: FlatCAMObj.py:2106 FlatCAMObj.py:3374 FlatCAMObj.py:3674 FlatCAMObj.py:3869 +#: FlatCAMObj.py:3882 FlatCAMObj.py:3999 FlatCAMObj.py:4416 FlatCAMObj.py:4654 +#: FlatCAMObj.py:5067 flatcamEditors/FlatCAMExcEditor.py:1474 #: flatcamTools/ToolCalculators.py:307 flatcamTools/ToolCalculators.py:318 #: flatcamTools/ToolCalculators.py:330 flatcamTools/ToolCalculators.py:345 #: flatcamTools/ToolCalculators.py:358 flatcamTools/ToolCalculators.py:372 @@ -1138,21 +1142,21 @@ msgstr "" msgid "[ERROR_NOTCL] Wrong value format entered, use a number." msgstr "" -#: FlatCAMObj.py:2327 FlatCAMObj.py:2418 FlatCAMObj.py:2540 +#: FlatCAMObj.py:2330 FlatCAMObj.py:2422 FlatCAMObj.py:2545 msgid "" "[ERROR_NOTCL] Please select one or more tools from the list and try again." msgstr "" -#: FlatCAMObj.py:2334 +#: FlatCAMObj.py:2337 msgid "" "[ERROR_NOTCL] Milling tool for DRILLS is larger than hole size. Cancelled." msgstr "" -#: FlatCAMObj.py:2348 FlatCAMObj.py:2442 FlatCAMObj.py:2560 +#: FlatCAMObj.py:2351 FlatCAMObj.py:2446 FlatCAMObj.py:2565 msgid "Tool_nr" msgstr "" -#: FlatCAMObj.py:2348 FlatCAMObj.py:2442 FlatCAMObj.py:2560 +#: FlatCAMObj.py:2351 FlatCAMObj.py:2446 FlatCAMObj.py:2565 #: flatcamEditors/FlatCAMExcEditor.py:819 #: flatcamEditors/FlatCAMExcEditor.py:2020 flatcamGUI/ObjectUI.py:556 #: flatcamTools/ToolNonCopperClear.py:83 flatcamTools/ToolPaint.py:80 @@ -1160,191 +1164,191 @@ msgstr "" msgid "Diameter" msgstr "" -#: FlatCAMObj.py:2348 FlatCAMObj.py:2442 FlatCAMObj.py:2560 +#: FlatCAMObj.py:2351 FlatCAMObj.py:2446 FlatCAMObj.py:2565 msgid "Drills_Nr" msgstr "" -#: FlatCAMObj.py:2348 FlatCAMObj.py:2442 FlatCAMObj.py:2560 +#: FlatCAMObj.py:2351 FlatCAMObj.py:2446 FlatCAMObj.py:2565 msgid "Slots_Nr" msgstr "" -#: FlatCAMObj.py:2428 +#: FlatCAMObj.py:2432 msgid "" "[ERROR_NOTCL] Milling tool for SLOTS is larger than hole size. Cancelled." msgstr "" -#: FlatCAMObj.py:2602 FlatCAMObj.py:4268 FlatCAMObj.py:4484 FlatCAMObj.py:4801 +#: FlatCAMObj.py:2607 FlatCAMObj.py:4304 FlatCAMObj.py:4520 FlatCAMObj.py:4837 msgid "" "[ERROR_NOTCL] Wrong value format for self.defaults[\"z_pdepth\"] or self." "options[\"z_pdepth\"]" msgstr "" -#: FlatCAMObj.py:2614 FlatCAMObj.py:4280 FlatCAMObj.py:4496 FlatCAMObj.py:4813 +#: FlatCAMObj.py:2619 FlatCAMObj.py:4316 FlatCAMObj.py:4532 FlatCAMObj.py:4849 msgid "" "[ERROR_NOTCL] Wrong value format for self.defaults[\"feedrate_probe\"] or " "self.options[\"feedrate_probe\"]" msgstr "" -#: FlatCAMObj.py:2646 FlatCAMObj.py:4689 FlatCAMObj.py:4694 FlatCAMObj.py:4844 +#: FlatCAMObj.py:2651 FlatCAMObj.py:4725 FlatCAMObj.py:4730 FlatCAMObj.py:4880 msgid "Generating CNC Code" msgstr "" -#: FlatCAMObj.py:2672 FlatCAMObj.py:4990 camlib.py:5164 camlib.py:5623 -#: camlib.py:5886 +#: FlatCAMObj.py:2677 FlatCAMObj.py:5026 camlib.py:5167 camlib.py:5626 +#: camlib.py:5889 msgid "" "[ERROR]The Toolchange X,Y field in Edit -> Preferences has to be in the " "format (x, y) \n" "but now there is only one value, not two. " msgstr "" -#: FlatCAMObj.py:2984 FlatCAMObj.py:3889 FlatCAMObj.py:3890 FlatCAMObj.py:3899 +#: FlatCAMObj.py:2997 FlatCAMObj.py:3925 FlatCAMObj.py:3926 FlatCAMObj.py:3935 msgid "Iso" msgstr "" -#: FlatCAMObj.py:2984 FlatCAMObj.py:3233 FlatCAMObj.py:3513 +#: FlatCAMObj.py:2997 FlatCAMObj.py:3257 FlatCAMObj.py:3539 msgid "Rough" msgstr "" -#: FlatCAMObj.py:2984 +#: FlatCAMObj.py:2997 msgid "Finish" msgstr "" -#: FlatCAMObj.py:3268 flatcamGUI/FlatCAMGUI.py:526 flatcamGUI/FlatCAMGUI.py:722 +#: FlatCAMObj.py:3293 flatcamGUI/FlatCAMGUI.py:526 flatcamGUI/FlatCAMGUI.py:722 #: flatcamGUI/FlatCAMGUI.py:1615 flatcamGUI/FlatCAMGUI.py:1951 #: flatcamGUI/ObjectUI.py:999 msgid "Copy" msgstr "" -#: FlatCAMObj.py:3483 +#: FlatCAMObj.py:3509 msgid "[ERROR_NOTCL] Please enter the desired tool diameter in Float format." msgstr "" -#: FlatCAMObj.py:3556 +#: FlatCAMObj.py:3584 msgid "[success] Tool added in Tool Table." msgstr "" -#: FlatCAMObj.py:3561 +#: FlatCAMObj.py:3589 msgid "[ERROR_NOTCL] Default Tool added. Wrong value format entered." msgstr "" -#: FlatCAMObj.py:3591 FlatCAMObj.py:3601 +#: FlatCAMObj.py:3619 FlatCAMObj.py:3629 msgid "[WARNING_NOTCL] Failed. Select a tool to copy." msgstr "" -#: FlatCAMObj.py:3630 +#: FlatCAMObj.py:3658 msgid "[success] Tool was copied in Tool Table." msgstr "" -#: FlatCAMObj.py:3663 +#: FlatCAMObj.py:3691 msgid "[success] Tool was edited in Tool Table." msgstr "" -#: FlatCAMObj.py:3694 FlatCAMObj.py:3704 +#: FlatCAMObj.py:3722 FlatCAMObj.py:3732 msgid "[WARNING_NOTCL] Failed. Select a tool to delete." msgstr "" -#: FlatCAMObj.py:3728 +#: FlatCAMObj.py:3756 msgid "[success] Tool was deleted in Tool Table." msgstr "" -#: FlatCAMObj.py:4149 +#: FlatCAMObj.py:4185 #, python-format msgid "" "[WARNING_NOTCL] This Geometry can't be processed because it is %s geometry." msgstr "" -#: FlatCAMObj.py:4166 +#: FlatCAMObj.py:4202 msgid "[ERROR_NOTCL] Wrong Tool Dia value format entered, use a number." msgstr "" -#: FlatCAMObj.py:4193 +#: FlatCAMObj.py:4229 msgid "[ERROR_NOTCL] Failed. No tool selected in the tool table ..." msgstr "" -#: FlatCAMObj.py:4231 +#: FlatCAMObj.py:4267 #, python-format msgid "FlatCAMObj.FlatCAMGeometry.mtool_gen_cncjob() --> %s" msgstr "" -#: FlatCAMObj.py:4389 FlatCAMObj.py:4627 +#: FlatCAMObj.py:4425 FlatCAMObj.py:4663 msgid "" "[WARNING] Tool Offset is selected in Tool Table but no value is provided.\n" "Add a Tool Offset or change the Offset Type." msgstr "" -#: FlatCAMObj.py:4508 flatcamTools/ToolSolderPaste.py:1107 +#: FlatCAMObj.py:4544 flatcamTools/ToolSolderPaste.py:1107 #: flatcamTools/ToolSolderPaste.py:1162 msgid "[ERROR_NOTCL] Cancelled. Empty file, it has no geometry..." msgstr "" -#: FlatCAMObj.py:4877 FlatCAMObj.py:4887 camlib.py:3347 camlib.py:3356 +#: FlatCAMObj.py:4913 FlatCAMObj.py:4923 camlib.py:3348 camlib.py:3357 msgid "[ERROR_NOTCL] Scale factor has to be a number: integer or float." msgstr "" -#: FlatCAMObj.py:4925 +#: FlatCAMObj.py:4961 msgid "[success] Geometry Scale done." msgstr "" -#: FlatCAMObj.py:4942 camlib.py:3425 +#: FlatCAMObj.py:4978 camlib.py:3426 msgid "" "[ERROR_NOTCL] An (x,y) pair of values are needed. Probable you entered only " "one value in the Offset field." msgstr "" -#: FlatCAMObj.py:4962 +#: FlatCAMObj.py:4998 msgid "[success] Geometry Offset done." msgstr "" -#: FlatCAMObj.py:5516 FlatCAMObj.py:5521 flatcamTools/ToolSolderPaste.py:1361 +#: FlatCAMObj.py:5553 FlatCAMObj.py:5558 flatcamTools/ToolSolderPaste.py:1361 msgid "Export Machine Code ..." msgstr "" -#: FlatCAMObj.py:5527 flatcamTools/ToolSolderPaste.py:1364 +#: FlatCAMObj.py:5564 flatcamTools/ToolSolderPaste.py:1364 msgid "[WARNING_NOTCL] Export Machine Code cancelled ..." msgstr "" -#: FlatCAMObj.py:5540 +#: FlatCAMObj.py:5577 #, python-format msgid "[success] Machine Code file saved to: %s" msgstr "" -#: FlatCAMObj.py:5562 +#: FlatCAMObj.py:5599 #, python-format msgid "[ERROR]FlatCAMCNNJob.on_edit_code_click() -->%s" msgstr "" -#: FlatCAMObj.py:5679 +#: FlatCAMObj.py:5716 #, python-format msgid "" "[WARNING_NOTCL] This CNCJob object can't be processed because it is a %s " "CNCJob object." msgstr "" -#: FlatCAMObj.py:5732 +#: FlatCAMObj.py:5769 msgid "[ERROR_NOTCL] G-code does not have a units code: either G20 or G21" msgstr "" -#: FlatCAMObj.py:5745 +#: FlatCAMObj.py:5782 msgid "" "[ERROR_NOTCL] Cancelled. The Toolchange Custom code is enabled but it's " "empty." msgstr "" -#: FlatCAMObj.py:5752 +#: FlatCAMObj.py:5789 msgid "[success] Toolchange G-code was replaced by a custom code." msgstr "" -#: FlatCAMObj.py:5767 flatcamTools/ToolSolderPaste.py:1390 +#: FlatCAMObj.py:5804 flatcamTools/ToolSolderPaste.py:1390 msgid "[WARNING_NOTCL] No such file or directory" msgstr "" -#: FlatCAMObj.py:5787 FlatCAMObj.py:5799 +#: FlatCAMObj.py:5824 FlatCAMObj.py:5836 msgid "" "[WARNING_NOTCL] The used postprocessor file has to have in it's name: " "'toolchange_custom'" msgstr "" -#: FlatCAMObj.py:5805 +#: FlatCAMObj.py:5842 msgid "[ERROR] There is no postprocessor file." msgstr "" @@ -1386,55 +1390,55 @@ msgstr "" msgid "[ERROR_NOTCL] Failed to skew. No object selected" msgstr "" -#: camlib.py:2727 camlib.py:2812 +#: camlib.py:2728 camlib.py:2813 #, python-format msgid "[WARNING] Coordinates missing, line ignored: %s" msgstr "" -#: camlib.py:2728 camlib.py:2813 +#: camlib.py:2729 camlib.py:2814 msgid "[WARNING_NOTCL] GERBER file might be CORRUPT. Check the file !!!" msgstr "" -#: camlib.py:2777 +#: camlib.py:2778 #, python-format msgid "" "[ERROR] Region does not have enough points. File will be processed but there " "are parser errors. Line number: %s" msgstr "" -#: camlib.py:3169 +#: camlib.py:3170 #, python-format msgid "" "[ERROR]Gerber Parser ERROR.\n" "%s:" msgstr "" -#: camlib.py:3393 +#: camlib.py:3394 msgid "[success] Gerber Scale done." msgstr "" -#: camlib.py:3458 +#: camlib.py:3459 msgid "[success] Gerber Offset done." msgstr "" -#: camlib.py:3512 +#: camlib.py:3513 msgid "[success] Gerber Mirror done." msgstr "" -#: camlib.py:3558 +#: camlib.py:3559 msgid "[success] Gerber Skew done." msgstr "" -#: camlib.py:3596 +#: camlib.py:3597 msgid "[success] Gerber Rotate done." msgstr "" -#: camlib.py:3875 +#: camlib.py:3878 #, python-format msgid "[ERROR_NOTCL] This is GCODE mark: %s" msgstr "" -#: camlib.py:3990 +#: camlib.py:3993 #, python-format msgid "" "[WARNING] No tool diameter info's. See shell.\n" @@ -1445,26 +1449,26 @@ msgid "" "diameters to reflect the real diameters." msgstr "" -#: camlib.py:4455 +#: camlib.py:4458 #, python-brace-format msgid "" "[ERROR] Excellon Parser error.\n" "Parsing Failed. Line {l_nr}: {line}\n" msgstr "" -#: camlib.py:4534 +#: camlib.py:4537 msgid "" "[WARNING] Excellon.create_geometry() -> a drill location was skipped due of " "not having a tool associated.\n" "Check the resulting GCode." msgstr "" -#: camlib.py:5073 +#: camlib.py:5076 #, python-format msgid "[ERROR] There is no such parameter: %s" msgstr "" -#: camlib.py:5143 +#: camlib.py:5146 msgid "" "[WARNING] The Cut Z parameter has positive value. It is the depth value to " "drill into material.\n" @@ -1473,27 +1477,27 @@ msgid "" "CNC code (Gcode etc)." msgstr "" -#: camlib.py:5150 camlib.py:5646 camlib.py:5909 +#: camlib.py:5153 camlib.py:5649 camlib.py:5912 #, python-format msgid "" "[WARNING] The Cut Z parameter is zero. There will be no cut, skipping %s file" msgstr "" -#: camlib.py:5379 camlib.py:5476 camlib.py:5534 +#: camlib.py:5382 camlib.py:5479 camlib.py:5537 msgid "[ERROR_NOTCL] The loaded Excellon file has no drills ..." msgstr "" -#: camlib.py:5481 +#: camlib.py:5484 msgid "[ERROR_NOTCL] Wrong optimization type selected." msgstr "" -#: camlib.py:5634 camlib.py:5897 +#: camlib.py:5637 camlib.py:5900 msgid "" "[ERROR_NOTCL] Cut_Z parameter is None or zero. Most likely a bad " "combinations of other parameters." msgstr "" -#: camlib.py:5639 camlib.py:5902 +#: camlib.py:5642 camlib.py:5905 msgid "" "[WARNING] The Cut Z parameter has positive value. It is the depth value to " "cut into material.\n" @@ -1502,11 +1506,11 @@ msgid "" "code (Gcode etc)." msgstr "" -#: camlib.py:5651 camlib.py:5914 +#: camlib.py:5654 camlib.py:5917 msgid "[ERROR_NOTCL] Travel Z parameter is None or zero." msgstr "" -#: camlib.py:5655 camlib.py:5918 +#: camlib.py:5658 camlib.py:5921 msgid "" "[WARNING] The Travel Z parameter has negative value. It is the height value " "to travel between cuts.\n" @@ -1515,31 +1519,31 @@ msgid "" "code (Gcode etc)." msgstr "" -#: camlib.py:5662 camlib.py:5925 +#: camlib.py:5665 camlib.py:5928 #, python-format msgid "" "[WARNING] The Z Travel parameter is zero. This is dangerous, skipping %s file" msgstr "" -#: camlib.py:5792 +#: camlib.py:5795 #, python-format msgid "[ERROR]Expected a Geometry, got %s" msgstr "" -#: camlib.py:5798 +#: camlib.py:5801 msgid "" "[ERROR_NOTCL] Trying to generate a CNC Job from a Geometry object without " "solid_geometry." msgstr "" -#: camlib.py:5837 +#: camlib.py:5840 msgid "" "[ERROR_NOTCL] The Tool Offset value is too negative to use for the " "current_geometry.\n" "Raise the value (in module) and try again." msgstr "" -#: camlib.py:6049 +#: camlib.py:6052 msgid "[ERROR_NOTCL] There is no tool data in the SolderPaste geometry." msgstr "" @@ -1624,7 +1628,7 @@ msgstr "" msgid "[success] Done. Drill(s) copied." msgstr "" -#: flatcamEditors/FlatCAMExcEditor.py:792 flatcamGUI/FlatCAMGUI.py:5026 +#: flatcamEditors/FlatCAMExcEditor.py:792 flatcamGUI/FlatCAMGUI.py:5008 msgid "Excellon Editor" msgstr "" @@ -1658,7 +1662,7 @@ msgstr "" msgid "Tool Dia:" msgstr "" -#: flatcamEditors/FlatCAMExcEditor.py:839 flatcamGUI/FlatCAMGUI.py:5055 +#: flatcamEditors/FlatCAMExcEditor.py:839 flatcamGUI/FlatCAMGUI.py:5037 #: flatcamGUI/ObjectUI.py:978 msgid "Diameter for the new tool" msgstr "" @@ -1731,11 +1735,11 @@ msgstr "" msgid "Circular" msgstr "" -#: flatcamEditors/FlatCAMExcEditor.py:944 flatcamGUI/FlatCAMGUI.py:5065 +#: flatcamEditors/FlatCAMExcEditor.py:944 flatcamGUI/FlatCAMGUI.py:5047 msgid "Nr of drills:" msgstr "" -#: flatcamEditors/FlatCAMExcEditor.py:946 flatcamGUI/FlatCAMGUI.py:5067 +#: flatcamEditors/FlatCAMExcEditor.py:946 flatcamGUI/FlatCAMGUI.py:5049 msgid "Specify how many drills to be in the array." msgstr "" @@ -1747,7 +1751,7 @@ msgid "Direction:" msgstr "" #: flatcamEditors/FlatCAMExcEditor.py:966 -#: flatcamEditors/FlatCAMGrbEditor.py:2528 flatcamGUI/FlatCAMGUI.py:5082 +#: flatcamEditors/FlatCAMGrbEditor.py:2528 flatcamGUI/FlatCAMGUI.py:5064 msgid "" "Direction on which the linear array is oriented:\n" "- 'X' - horizontal axis \n" @@ -1756,12 +1760,12 @@ msgid "" msgstr "" #: flatcamEditors/FlatCAMExcEditor.py:979 -#: flatcamEditors/FlatCAMGrbEditor.py:2541 flatcamGUI/FlatCAMGUI.py:5096 +#: flatcamEditors/FlatCAMGrbEditor.py:2541 flatcamGUI/FlatCAMGUI.py:5078 msgid "Pitch:" msgstr "" #: flatcamEditors/FlatCAMExcEditor.py:981 -#: flatcamEditors/FlatCAMGrbEditor.py:2543 flatcamGUI/FlatCAMGUI.py:5098 +#: flatcamEditors/FlatCAMGrbEditor.py:2543 flatcamGUI/FlatCAMGUI.py:5080 msgid "Pitch = Distance between elements of the array." msgstr "" @@ -1770,7 +1774,7 @@ msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:665 #: flatcamEditors/FlatCAMGrbEditor.py:2550 #: flatcamEditors/FlatCAMGrbEditor.py:2586 -#: flatcamEditors/FlatCAMGrbEditor.py:4580 flatcamGUI/FlatCAMGUI.py:5107 +#: flatcamEditors/FlatCAMGrbEditor.py:4588 flatcamGUI/FlatCAMGUI.py:5089 #: flatcamTools/ToolTransform.py:68 msgid "Angle:" msgstr "" @@ -1792,8 +1796,8 @@ msgid "" msgstr "" #: flatcamEditors/FlatCAMExcEditor.py:1026 -#: flatcamEditors/FlatCAMGrbEditor.py:2588 flatcamGUI/FlatCAMGUI.py:5109 -#: flatcamGUI/FlatCAMGUI.py:5135 +#: flatcamEditors/FlatCAMGrbEditor.py:2588 flatcamGUI/FlatCAMGUI.py:5091 +#: flatcamGUI/FlatCAMGUI.py:5117 msgid "Angle at which each element in circular array is placed." msgstr "" @@ -1840,7 +1844,7 @@ msgid "[success] Done. Drill(s) deleted." msgstr "" #: flatcamEditors/FlatCAMExcEditor.py:2705 -#: flatcamEditors/FlatCAMGrbEditor.py:4340 +#: flatcamEditors/FlatCAMGrbEditor.py:4350 msgid "Click on the circular array Center position" msgstr "" @@ -1901,7 +1905,7 @@ msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:2700 #: flatcamEditors/FlatCAMGeoEditor.py:2726 #: flatcamEditors/FlatCAMGeoEditor.py:2752 -#: flatcamEditors/FlatCAMGrbEditor.py:4392 +#: flatcamEditors/FlatCAMGrbEditor.py:4402 msgid "" "[WARNING_NOTCL] Buffer distance value is missing or wrong format. Add it and " "retry." @@ -1916,19 +1920,20 @@ msgid "Tool" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:432 flatcamGUI/FlatCAMGUI.py:4054 -#: flatcamGUI/FlatCAMGUI.py:5618 flatcamGUI/FlatCAMGUI.py:5895 -#: flatcamGUI/FlatCAMGUI.py:6035 flatcamGUI/ObjectUI.py:260 +#: flatcamGUI/FlatCAMGUI.py:5163 flatcamGUI/FlatCAMGUI.py:5597 +#: flatcamGUI/FlatCAMGUI.py:5874 flatcamGUI/FlatCAMGUI.py:6014 +#: flatcamGUI/ObjectUI.py:260 msgid "Tool dia:" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:434 flatcamGUI/FlatCAMGUI.py:6037 +#: flatcamEditors/FlatCAMGeoEditor.py:434 flatcamGUI/FlatCAMGUI.py:6016 msgid "" "Diameter of the tool to\n" "be used in the operation." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:443 flatcamGUI/FlatCAMGUI.py:5801 -#: flatcamGUI/FlatCAMGUI.py:6046 flatcamTools/ToolNonCopperClear.py:165 +#: flatcamEditors/FlatCAMGeoEditor.py:443 flatcamGUI/FlatCAMGUI.py:5780 +#: flatcamGUI/FlatCAMGUI.py:6025 flatcamTools/ToolNonCopperClear.py:165 #: flatcamTools/ToolPaint.py:160 msgid "Overlap Rate:" msgstr "" @@ -1948,14 +1953,14 @@ msgid "" "due of too many paths." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:461 flatcamGUI/FlatCAMGUI.py:5817 -#: flatcamGUI/FlatCAMGUI.py:5903 flatcamGUI/FlatCAMGUI.py:6056 +#: flatcamEditors/FlatCAMGeoEditor.py:461 flatcamGUI/FlatCAMGUI.py:5796 +#: flatcamGUI/FlatCAMGUI.py:5882 flatcamGUI/FlatCAMGUI.py:6035 #: flatcamTools/ToolCutOut.py:86 flatcamTools/ToolNonCopperClear.py:181 #: flatcamTools/ToolPaint.py:177 msgid "Margin:" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:463 flatcamGUI/FlatCAMGUI.py:6058 +#: flatcamEditors/FlatCAMGeoEditor.py:463 flatcamGUI/FlatCAMGUI.py:6037 #: flatcamTools/ToolPaint.py:179 msgid "" "Distance by which to avoid\n" @@ -1963,40 +1968,40 @@ msgid "" "be painted." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:472 flatcamGUI/FlatCAMGUI.py:5826 -#: flatcamGUI/FlatCAMGUI.py:6067 flatcamTools/ToolNonCopperClear.py:190 +#: flatcamEditors/FlatCAMGeoEditor.py:472 flatcamGUI/FlatCAMGUI.py:5805 +#: flatcamGUI/FlatCAMGUI.py:6046 flatcamTools/ToolNonCopperClear.py:190 #: flatcamTools/ToolPaint.py:188 msgid "Method:" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:474 flatcamGUI/FlatCAMGUI.py:6069 +#: flatcamEditors/FlatCAMGeoEditor.py:474 flatcamGUI/FlatCAMGUI.py:6048 msgid "" "Algorithm to paint the polygon:
Standard: Fixed step inwards." "
Seed-based: Outwards from seed." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:487 flatcamGUI/FlatCAMGUI.py:5842 -#: flatcamGUI/FlatCAMGUI.py:6082 flatcamTools/ToolNonCopperClear.py:206 +#: flatcamEditors/FlatCAMGeoEditor.py:487 flatcamGUI/FlatCAMGUI.py:5821 +#: flatcamGUI/FlatCAMGUI.py:6061 flatcamTools/ToolNonCopperClear.py:206 #: flatcamTools/ToolPaint.py:204 msgid "Connect:" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:489 flatcamGUI/FlatCAMGUI.py:5844 -#: flatcamGUI/FlatCAMGUI.py:6084 flatcamTools/ToolNonCopperClear.py:208 +#: flatcamEditors/FlatCAMGeoEditor.py:489 flatcamGUI/FlatCAMGUI.py:5823 +#: flatcamGUI/FlatCAMGUI.py:6063 flatcamTools/ToolNonCopperClear.py:208 #: flatcamTools/ToolPaint.py:206 msgid "" "Draw lines between resulting\n" "segments to minimize tool lifts." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:496 flatcamGUI/FlatCAMGUI.py:5851 -#: flatcamGUI/FlatCAMGUI.py:6092 flatcamTools/ToolNonCopperClear.py:215 +#: flatcamEditors/FlatCAMGeoEditor.py:496 flatcamGUI/FlatCAMGUI.py:5830 +#: flatcamGUI/FlatCAMGUI.py:6071 flatcamTools/ToolNonCopperClear.py:215 #: flatcamTools/ToolPaint.py:213 msgid "Contour:" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:498 flatcamGUI/FlatCAMGUI.py:5853 -#: flatcamGUI/FlatCAMGUI.py:6094 flatcamTools/ToolNonCopperClear.py:217 +#: flatcamEditors/FlatCAMGeoEditor.py:498 flatcamGUI/FlatCAMGUI.py:5832 +#: flatcamGUI/FlatCAMGUI.py:6073 flatcamTools/ToolNonCopperClear.py:217 #: flatcamTools/ToolPaint.py:215 msgid "" "Cut around the perimeter of the polygon\n" @@ -2046,53 +2051,53 @@ msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:617 #: flatcamEditors/FlatCAMGeoEditor.py:990 -#: flatcamEditors/FlatCAMGrbEditor.py:4531 -#: flatcamEditors/FlatCAMGrbEditor.py:4916 flatcamGUI/FlatCAMGUI.py:654 +#: flatcamEditors/FlatCAMGrbEditor.py:4539 +#: flatcamEditors/FlatCAMGrbEditor.py:4924 flatcamGUI/FlatCAMGUI.py:654 #: flatcamGUI/FlatCAMGUI.py:1879 flatcamTools/ToolTransform.py:398 msgid "Transform Tool" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:618 #: flatcamEditors/FlatCAMGeoEditor.py:679 -#: flatcamEditors/FlatCAMGrbEditor.py:4532 -#: flatcamEditors/FlatCAMGrbEditor.py:4594 flatcamTools/ToolTransform.py:24 +#: flatcamEditors/FlatCAMGrbEditor.py:4540 +#: flatcamEditors/FlatCAMGrbEditor.py:4602 flatcamTools/ToolTransform.py:24 #: flatcamTools/ToolTransform.py:82 msgid "Rotate" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:619 -#: flatcamEditors/FlatCAMGrbEditor.py:4533 flatcamTools/ToolTransform.py:25 +#: flatcamEditors/FlatCAMGrbEditor.py:4541 flatcamTools/ToolTransform.py:25 msgid "Skew/Shear" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:620 #: flatcamEditors/FlatCAMGrbEditor.py:2471 -#: flatcamEditors/FlatCAMGrbEditor.py:4534 flatcamGUI/FlatCAMGUI.py:718 +#: flatcamEditors/FlatCAMGrbEditor.py:4542 flatcamGUI/FlatCAMGUI.py:718 #: flatcamGUI/FlatCAMGUI.py:1947 flatcamGUI/ObjectUI.py:100 #: flatcamTools/ToolTransform.py:26 msgid "Scale" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:621 -#: flatcamEditors/FlatCAMGrbEditor.py:4535 flatcamTools/ToolTransform.py:27 +#: flatcamEditors/FlatCAMGrbEditor.py:4543 flatcamTools/ToolTransform.py:27 msgid "Mirror (Flip)" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:622 -#: flatcamEditors/FlatCAMGrbEditor.py:4536 flatcamGUI/ObjectUI.py:127 +#: flatcamEditors/FlatCAMGrbEditor.py:4544 flatcamGUI/ObjectUI.py:127 #: flatcamGUI/ObjectUI.py:891 flatcamGUI/ObjectUI.py:1465 #: flatcamTools/ToolTransform.py:28 msgid "Offset" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:633 -#: flatcamEditors/FlatCAMGrbEditor.py:4548 +#: flatcamEditors/FlatCAMGrbEditor.py:4556 #, python-format msgid "Editor %s" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:667 -#: flatcamEditors/FlatCAMGrbEditor.py:4582 flatcamTools/ToolTransform.py:70 +#: flatcamEditors/FlatCAMGrbEditor.py:4590 flatcamTools/ToolTransform.py:70 msgid "" "Angle for Rotation action, in degrees.\n" "Float number between -360 and 359.\n" @@ -2101,7 +2106,7 @@ msgid "" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:681 -#: flatcamEditors/FlatCAMGrbEditor.py:4596 +#: flatcamEditors/FlatCAMGrbEditor.py:4604 msgid "" "Rotate the selected shape(s).\n" "The point of reference is the middle of\n" @@ -2109,14 +2114,14 @@ msgid "" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:704 -#: flatcamEditors/FlatCAMGrbEditor.py:4619 flatcamTools/ToolTransform.py:107 +#: flatcamEditors/FlatCAMGrbEditor.py:4627 flatcamTools/ToolTransform.py:107 msgid "Angle X:" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:706 #: flatcamEditors/FlatCAMGeoEditor.py:724 -#: flatcamEditors/FlatCAMGrbEditor.py:4621 -#: flatcamEditors/FlatCAMGrbEditor.py:4639 flatcamTools/ToolTransform.py:109 +#: flatcamEditors/FlatCAMGrbEditor.py:4629 +#: flatcamEditors/FlatCAMGrbEditor.py:4647 flatcamTools/ToolTransform.py:109 #: flatcamTools/ToolTransform.py:127 msgid "" "Angle for Skew action, in degrees.\n" @@ -2124,14 +2129,14 @@ msgid "" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:715 -#: flatcamEditors/FlatCAMGrbEditor.py:4630 flatcamTools/ToolTransform.py:118 +#: flatcamEditors/FlatCAMGrbEditor.py:4638 flatcamTools/ToolTransform.py:118 msgid "Skew X" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:717 #: flatcamEditors/FlatCAMGeoEditor.py:735 -#: flatcamEditors/FlatCAMGrbEditor.py:4632 -#: flatcamEditors/FlatCAMGrbEditor.py:4650 +#: flatcamEditors/FlatCAMGrbEditor.py:4640 +#: flatcamEditors/FlatCAMGrbEditor.py:4658 msgid "" "Skew/shear the selected shape(s).\n" "The point of reference is the middle of\n" @@ -2139,34 +2144,34 @@ msgid "" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:722 -#: flatcamEditors/FlatCAMGrbEditor.py:4637 flatcamTools/ToolTransform.py:125 +#: flatcamEditors/FlatCAMGrbEditor.py:4645 flatcamTools/ToolTransform.py:125 msgid "Angle Y:" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:733 -#: flatcamEditors/FlatCAMGrbEditor.py:4648 flatcamTools/ToolTransform.py:136 +#: flatcamEditors/FlatCAMGrbEditor.py:4656 flatcamTools/ToolTransform.py:136 msgid "Skew Y" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:761 -#: flatcamEditors/FlatCAMGrbEditor.py:4676 flatcamTools/ToolTransform.py:164 +#: flatcamEditors/FlatCAMGrbEditor.py:4684 flatcamTools/ToolTransform.py:164 msgid "Factor X:" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:763 -#: flatcamEditors/FlatCAMGrbEditor.py:4678 flatcamTools/ToolTransform.py:166 +#: flatcamEditors/FlatCAMGrbEditor.py:4686 flatcamTools/ToolTransform.py:166 msgid "Factor for Scale action over X axis." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:771 -#: flatcamEditors/FlatCAMGrbEditor.py:4686 flatcamTools/ToolTransform.py:174 +#: flatcamEditors/FlatCAMGrbEditor.py:4694 flatcamTools/ToolTransform.py:174 msgid "Scale X" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:773 #: flatcamEditors/FlatCAMGeoEditor.py:790 -#: flatcamEditors/FlatCAMGrbEditor.py:4688 -#: flatcamEditors/FlatCAMGrbEditor.py:4705 +#: flatcamEditors/FlatCAMGrbEditor.py:4696 +#: flatcamEditors/FlatCAMGrbEditor.py:4713 msgid "" "Scale the selected shape(s).\n" "The point of reference depends on \n" @@ -2174,41 +2179,41 @@ msgid "" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:778 -#: flatcamEditors/FlatCAMGrbEditor.py:4693 flatcamTools/ToolTransform.py:181 +#: flatcamEditors/FlatCAMGrbEditor.py:4701 flatcamTools/ToolTransform.py:181 msgid "Factor Y:" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:780 -#: flatcamEditors/FlatCAMGrbEditor.py:4695 flatcamTools/ToolTransform.py:183 +#: flatcamEditors/FlatCAMGrbEditor.py:4703 flatcamTools/ToolTransform.py:183 msgid "Factor for Scale action over Y axis." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:788 -#: flatcamEditors/FlatCAMGrbEditor.py:4703 flatcamTools/ToolTransform.py:191 +#: flatcamEditors/FlatCAMGrbEditor.py:4711 flatcamTools/ToolTransform.py:191 msgid "Scale Y" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:797 -#: flatcamEditors/FlatCAMGrbEditor.py:4712 flatcamGUI/FlatCAMGUI.py:6441 +#: flatcamEditors/FlatCAMGrbEditor.py:4720 flatcamGUI/FlatCAMGUI.py:6420 #: flatcamTools/ToolTransform.py:200 msgid "Link" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:799 -#: flatcamEditors/FlatCAMGrbEditor.py:4714 +#: flatcamEditors/FlatCAMGrbEditor.py:4722 msgid "" "Scale the selected shape(s)\n" "using the Scale Factor X for both axis." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:805 -#: flatcamEditors/FlatCAMGrbEditor.py:4720 flatcamGUI/FlatCAMGUI.py:6449 +#: flatcamEditors/FlatCAMGrbEditor.py:4728 flatcamGUI/FlatCAMGUI.py:6428 #: flatcamTools/ToolTransform.py:208 msgid "Scale Reference" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:807 -#: flatcamEditors/FlatCAMGrbEditor.py:4722 +#: flatcamEditors/FlatCAMGrbEditor.py:4730 msgid "" "Scale the selected shape(s)\n" "using the origin reference when checked,\n" @@ -2217,24 +2222,24 @@ msgid "" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:835 -#: flatcamEditors/FlatCAMGrbEditor.py:4751 flatcamTools/ToolTransform.py:238 +#: flatcamEditors/FlatCAMGrbEditor.py:4759 flatcamTools/ToolTransform.py:238 msgid "Value X:" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:837 -#: flatcamEditors/FlatCAMGrbEditor.py:4753 flatcamTools/ToolTransform.py:240 +#: flatcamEditors/FlatCAMGrbEditor.py:4761 flatcamTools/ToolTransform.py:240 msgid "Value for Offset action on X axis." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:845 -#: flatcamEditors/FlatCAMGrbEditor.py:4761 flatcamTools/ToolTransform.py:248 +#: flatcamEditors/FlatCAMGrbEditor.py:4769 flatcamTools/ToolTransform.py:248 msgid "Offset X" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:847 #: flatcamEditors/FlatCAMGeoEditor.py:865 -#: flatcamEditors/FlatCAMGrbEditor.py:4763 -#: flatcamEditors/FlatCAMGrbEditor.py:4781 +#: flatcamEditors/FlatCAMGrbEditor.py:4771 +#: flatcamEditors/FlatCAMGrbEditor.py:4789 msgid "" "Offset the selected shape(s).\n" "The point of reference is the middle of\n" @@ -2242,46 +2247,46 @@ msgid "" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:853 -#: flatcamEditors/FlatCAMGrbEditor.py:4769 flatcamTools/ToolTransform.py:255 +#: flatcamEditors/FlatCAMGrbEditor.py:4777 flatcamTools/ToolTransform.py:255 msgid "Value Y:" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:855 -#: flatcamEditors/FlatCAMGrbEditor.py:4771 flatcamTools/ToolTransform.py:257 +#: flatcamEditors/FlatCAMGrbEditor.py:4779 flatcamTools/ToolTransform.py:257 msgid "Value for Offset action on Y axis." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:863 -#: flatcamEditors/FlatCAMGrbEditor.py:4779 flatcamTools/ToolTransform.py:265 +#: flatcamEditors/FlatCAMGrbEditor.py:4787 flatcamTools/ToolTransform.py:265 msgid "Offset Y" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:894 -#: flatcamEditors/FlatCAMGrbEditor.py:4810 flatcamTools/ToolTransform.py:295 +#: flatcamEditors/FlatCAMGrbEditor.py:4818 flatcamTools/ToolTransform.py:295 msgid "Flip on X" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:896 #: flatcamEditors/FlatCAMGeoEditor.py:904 -#: flatcamEditors/FlatCAMGrbEditor.py:4812 #: flatcamEditors/FlatCAMGrbEditor.py:4820 +#: flatcamEditors/FlatCAMGrbEditor.py:4828 msgid "" "Flip the selected shape(s) over the X axis.\n" "Does not create a new shape." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:902 -#: flatcamEditors/FlatCAMGrbEditor.py:4818 flatcamTools/ToolTransform.py:303 +#: flatcamEditors/FlatCAMGrbEditor.py:4826 flatcamTools/ToolTransform.py:303 msgid "Flip on Y" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:911 -#: flatcamEditors/FlatCAMGrbEditor.py:4827 flatcamTools/ToolTransform.py:312 +#: flatcamEditors/FlatCAMGrbEditor.py:4835 flatcamTools/ToolTransform.py:312 msgid "Ref Pt" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:913 -#: flatcamEditors/FlatCAMGrbEditor.py:4829 +#: flatcamEditors/FlatCAMGrbEditor.py:4837 msgid "" "Flip the selected shape(s)\n" "around the point in Point Entry Field.\n" @@ -2295,12 +2300,12 @@ msgid "" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:925 -#: flatcamEditors/FlatCAMGrbEditor.py:4841 flatcamTools/ToolTransform.py:325 +#: flatcamEditors/FlatCAMGrbEditor.py:4849 flatcamTools/ToolTransform.py:325 msgid "Point:" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:927 -#: flatcamEditors/FlatCAMGrbEditor.py:4843 +#: flatcamEditors/FlatCAMGrbEditor.py:4851 msgid "" "Coordinates in format (x, y) used as reference for mirroring.\n" "The 'x' in (x, y) will be used when using Flip on X and\n" @@ -2308,7 +2313,7 @@ msgid "" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:939 -#: flatcamEditors/FlatCAMGrbEditor.py:4855 flatcamTools/ToolTransform.py:339 +#: flatcamEditors/FlatCAMGrbEditor.py:4863 flatcamTools/ToolTransform.py:339 msgid "" "The point coordinates can be captured by\n" "left click on canvas together with pressing\n" @@ -2316,235 +2321,235 @@ msgid "" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1054 -#: flatcamEditors/FlatCAMGrbEditor.py:4980 +#: flatcamEditors/FlatCAMGrbEditor.py:4988 msgid "[WARNING_NOTCL] Transformation cancelled. No shape selected." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1075 -#: flatcamEditors/FlatCAMGrbEditor.py:5000 flatcamTools/ToolTransform.py:468 +#: flatcamEditors/FlatCAMGrbEditor.py:5008 flatcamTools/ToolTransform.py:468 msgid "[ERROR_NOTCL] Wrong value format entered for Rotate, use a number." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1112 -#: flatcamEditors/FlatCAMGrbEditor.py:5043 flatcamTools/ToolTransform.py:502 +#: flatcamEditors/FlatCAMGrbEditor.py:5051 flatcamTools/ToolTransform.py:502 msgid "[ERROR_NOTCL] Wrong value format entered for Skew X, use a number." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1133 -#: flatcamEditors/FlatCAMGrbEditor.py:5070 flatcamTools/ToolTransform.py:520 +#: flatcamEditors/FlatCAMGrbEditor.py:5078 flatcamTools/ToolTransform.py:520 msgid "[ERROR_NOTCL] Wrong value format entered for Skew Y, use a number." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1154 -#: flatcamEditors/FlatCAMGrbEditor.py:5097 flatcamTools/ToolTransform.py:538 +#: flatcamEditors/FlatCAMGrbEditor.py:5105 flatcamTools/ToolTransform.py:538 msgid "[ERROR_NOTCL] Wrong value format entered for Scale X, use a number." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1191 -#: flatcamEditors/FlatCAMGrbEditor.py:5138 flatcamTools/ToolTransform.py:572 +#: flatcamEditors/FlatCAMGrbEditor.py:5146 flatcamTools/ToolTransform.py:572 msgid "[ERROR_NOTCL] Wrong value format entered for Scale Y, use a number." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1223 -#: flatcamEditors/FlatCAMGrbEditor.py:5176 flatcamTools/ToolTransform.py:601 +#: flatcamEditors/FlatCAMGrbEditor.py:5184 flatcamTools/ToolTransform.py:601 msgid "[ERROR_NOTCL] Wrong value format entered for Offset X, use a number." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1244 -#: flatcamEditors/FlatCAMGrbEditor.py:5202 flatcamTools/ToolTransform.py:619 +#: flatcamEditors/FlatCAMGrbEditor.py:5210 flatcamTools/ToolTransform.py:619 msgid "[ERROR_NOTCL] Wrong value format entered for Offset Y, use a number." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1262 -#: flatcamEditors/FlatCAMGrbEditor.py:5225 +#: flatcamEditors/FlatCAMGrbEditor.py:5233 msgid "[WARNING_NOTCL] No shape selected. Please Select a shape to rotate!" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1265 -#: flatcamEditors/FlatCAMGrbEditor.py:5228 flatcamTools/ToolTransform.py:640 +#: flatcamEditors/FlatCAMGrbEditor.py:5236 flatcamTools/ToolTransform.py:640 msgid "Appying Rotate" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1293 -#: flatcamEditors/FlatCAMGrbEditor.py:5259 +#: flatcamEditors/FlatCAMGrbEditor.py:5269 msgid "[success] Done. Rotate completed." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1309 -#: flatcamEditors/FlatCAMGrbEditor.py:5278 +#: flatcamEditors/FlatCAMGrbEditor.py:5288 msgid "[WARNING_NOTCL] No shape selected. Please Select a shape to flip!" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1312 -#: flatcamEditors/FlatCAMGrbEditor.py:5281 flatcamTools/ToolTransform.py:691 +#: flatcamEditors/FlatCAMGrbEditor.py:5291 flatcamTools/ToolTransform.py:691 msgid "Applying Flip" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1342 -#: flatcamEditors/FlatCAMGrbEditor.py:5318 flatcamTools/ToolTransform.py:733 +#: flatcamEditors/FlatCAMGrbEditor.py:5330 flatcamTools/ToolTransform.py:733 msgid "[success] Flip on the Y axis done ..." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1345 -#: flatcamEditors/FlatCAMGrbEditor.py:5326 flatcamTools/ToolTransform.py:742 +#: flatcamEditors/FlatCAMGrbEditor.py:5338 flatcamTools/ToolTransform.py:742 msgid "[success] Flip on the X axis done ..." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1364 -#: flatcamEditors/FlatCAMGrbEditor.py:5346 +#: flatcamEditors/FlatCAMGrbEditor.py:5358 msgid "[WARNING_NOTCL] No shape selected. Please Select a shape to shear/skew!" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1367 -#: flatcamEditors/FlatCAMGrbEditor.py:5349 flatcamTools/ToolTransform.py:760 +#: flatcamEditors/FlatCAMGrbEditor.py:5361 flatcamTools/ToolTransform.py:760 msgid "Applying Skew" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1392 -#: flatcamEditors/FlatCAMGrbEditor.py:5382 flatcamTools/ToolTransform.py:791 +#: flatcamEditors/FlatCAMGrbEditor.py:5396 flatcamTools/ToolTransform.py:791 #, python-format msgid "[success] Skew on the %s axis done ..." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1396 -#: flatcamEditors/FlatCAMGrbEditor.py:5386 flatcamTools/ToolTransform.py:795 +#: flatcamEditors/FlatCAMGrbEditor.py:5400 flatcamTools/ToolTransform.py:795 #, python-format msgid "[ERROR_NOTCL] Due of %s, Skew action was not executed." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1407 -#: flatcamEditors/FlatCAMGrbEditor.py:5405 +#: flatcamEditors/FlatCAMGrbEditor.py:5419 msgid "[WARNING_NOTCL] No shape selected. Please Select a shape to scale!" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1410 -#: flatcamEditors/FlatCAMGrbEditor.py:5408 flatcamTools/ToolTransform.py:809 +#: flatcamEditors/FlatCAMGrbEditor.py:5422 flatcamTools/ToolTransform.py:809 msgid "Applying Scale" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1443 -#: flatcamEditors/FlatCAMGrbEditor.py:5444 flatcamTools/ToolTransform.py:848 +#: flatcamEditors/FlatCAMGrbEditor.py:5460 flatcamTools/ToolTransform.py:848 #, python-format msgid "[success] Scale on the %s axis done ..." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1446 -#: flatcamEditors/FlatCAMGrbEditor.py:5447 flatcamTools/ToolTransform.py:851 +#: flatcamEditors/FlatCAMGrbEditor.py:5463 flatcamTools/ToolTransform.py:851 #, python-format msgid "[ERROR_NOTCL] Due of %s, Scale action was not executed." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1455 -#: flatcamEditors/FlatCAMGrbEditor.py:5460 +#: flatcamEditors/FlatCAMGrbEditor.py:5476 msgid "[WARNING_NOTCL] No shape selected. Please Select a shape to offset!" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1458 -#: flatcamEditors/FlatCAMGrbEditor.py:5463 flatcamTools/ToolTransform.py:861 +#: flatcamEditors/FlatCAMGrbEditor.py:5479 flatcamTools/ToolTransform.py:861 msgid "Applying Offset" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1469 -#: flatcamEditors/FlatCAMGrbEditor.py:5484 flatcamTools/ToolTransform.py:880 +#: flatcamEditors/FlatCAMGrbEditor.py:5501 flatcamTools/ToolTransform.py:880 #, python-format msgid "[success] Offset on the %s axis done ..." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1473 -#: flatcamEditors/FlatCAMGrbEditor.py:5488 flatcamTools/ToolTransform.py:884 +#: flatcamEditors/FlatCAMGrbEditor.py:5505 flatcamTools/ToolTransform.py:884 #, python-format msgid "[ERROR_NOTCL] Due of %s, Offset action was not executed." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1477 -#: flatcamEditors/FlatCAMGrbEditor.py:5492 +#: flatcamEditors/FlatCAMGrbEditor.py:5509 msgid "Rotate ..." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1478 #: flatcamEditors/FlatCAMGeoEditor.py:1535 #: flatcamEditors/FlatCAMGeoEditor.py:1552 -#: flatcamEditors/FlatCAMGrbEditor.py:5493 -#: flatcamEditors/FlatCAMGrbEditor.py:5550 +#: flatcamEditors/FlatCAMGrbEditor.py:5510 #: flatcamEditors/FlatCAMGrbEditor.py:5567 +#: flatcamEditors/FlatCAMGrbEditor.py:5584 msgid "Enter an Angle Value (degrees):" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1487 -#: flatcamEditors/FlatCAMGrbEditor.py:5502 +#: flatcamEditors/FlatCAMGrbEditor.py:5519 msgid "[success] Geometry shape rotate done..." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1492 -#: flatcamEditors/FlatCAMGrbEditor.py:5507 +#: flatcamEditors/FlatCAMGrbEditor.py:5524 msgid "[WARNING_NOTCL] Geometry shape rotate cancelled..." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1498 -#: flatcamEditors/FlatCAMGrbEditor.py:5513 +#: flatcamEditors/FlatCAMGrbEditor.py:5530 msgid "Offset on X axis ..." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1499 #: flatcamEditors/FlatCAMGeoEditor.py:1518 -#: flatcamEditors/FlatCAMGrbEditor.py:5514 -#: flatcamEditors/FlatCAMGrbEditor.py:5533 +#: flatcamEditors/FlatCAMGrbEditor.py:5531 +#: flatcamEditors/FlatCAMGrbEditor.py:5550 #, python-format msgid "Enter a distance Value (%s):" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1508 -#: flatcamEditors/FlatCAMGrbEditor.py:5523 +#: flatcamEditors/FlatCAMGrbEditor.py:5540 msgid "[success] Geometry shape offset on X axis done..." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1512 -#: flatcamEditors/FlatCAMGrbEditor.py:5527 +#: flatcamEditors/FlatCAMGrbEditor.py:5544 msgid "[WARNING_NOTCL] Geometry shape offset X cancelled..." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1517 -#: flatcamEditors/FlatCAMGrbEditor.py:5532 +#: flatcamEditors/FlatCAMGrbEditor.py:5549 msgid "Offset on Y axis ..." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1527 -#: flatcamEditors/FlatCAMGrbEditor.py:5542 +#: flatcamEditors/FlatCAMGrbEditor.py:5559 msgid "[success] Geometry shape offset on Y axis done..." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1531 -#: flatcamEditors/FlatCAMGrbEditor.py:5546 +#: flatcamEditors/FlatCAMGrbEditor.py:5563 msgid "[WARNING_NOTCL] Geometry shape offset Y cancelled..." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1534 -#: flatcamEditors/FlatCAMGrbEditor.py:5549 +#: flatcamEditors/FlatCAMGrbEditor.py:5566 msgid "Skew on X axis ..." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1544 -#: flatcamEditors/FlatCAMGrbEditor.py:5559 +#: flatcamEditors/FlatCAMGrbEditor.py:5576 msgid "[success] Geometry shape skew on X axis done..." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1548 -#: flatcamEditors/FlatCAMGrbEditor.py:5563 +#: flatcamEditors/FlatCAMGrbEditor.py:5580 msgid "[WARNING_NOTCL] Geometry shape skew X cancelled..." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1551 -#: flatcamEditors/FlatCAMGrbEditor.py:5566 +#: flatcamEditors/FlatCAMGrbEditor.py:5583 msgid "Skew on Y axis ..." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1561 -#: flatcamEditors/FlatCAMGrbEditor.py:5576 +#: flatcamEditors/FlatCAMGrbEditor.py:5593 msgid "[success] Geometry shape skew on Y axis done..." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1565 -#: flatcamEditors/FlatCAMGrbEditor.py:5580 +#: flatcamEditors/FlatCAMGrbEditor.py:5597 msgid "[WARNING_NOTCL] Geometry shape skew Y cancelled..." msgstr "" @@ -2695,7 +2700,7 @@ msgid "[WARNING_NOTCL] Buffer cancelled. No shape selected." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:2711 -#: flatcamEditors/FlatCAMGrbEditor.py:4442 +#: flatcamEditors/FlatCAMGrbEditor.py:4447 msgid "[success] Done. Buffer Tool completed." msgstr "" @@ -2738,88 +2743,88 @@ msgstr "" msgid "Shape transformations ..." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:3416 +#: flatcamEditors/FlatCAMGeoEditor.py:3419 #, python-brace-format msgid "" "[WARNING_NOTCL] Editing MultiGeo Geometry, tool: {tool} with diameter: {dia}" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:3793 +#: flatcamEditors/FlatCAMGeoEditor.py:3796 msgid "[WARNING_NOTCL] Copy cancelled. No shape selected." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:3800 flatcamGUI/FlatCAMGUI.py:2727 +#: flatcamEditors/FlatCAMGeoEditor.py:3803 flatcamGUI/FlatCAMGUI.py:2727 #: flatcamGUI/FlatCAMGUI.py:2773 flatcamGUI/FlatCAMGUI.py:2791 #: flatcamGUI/FlatCAMGUI.py:2922 flatcamGUI/FlatCAMGUI.py:2934 #: flatcamGUI/FlatCAMGUI.py:2968 msgid "Click on target point." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:4044 -#: flatcamEditors/FlatCAMGeoEditor.py:4079 +#: flatcamEditors/FlatCAMGeoEditor.py:4047 +#: flatcamEditors/FlatCAMGeoEditor.py:4082 msgid "" "[WARNING_NOTCL] A selection of at least 2 geo items is required to do " "Intersection." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:4163 -#: flatcamEditors/FlatCAMGeoEditor.py:4201 -#: flatcamEditors/FlatCAMGeoEditor.py:4277 +#: flatcamEditors/FlatCAMGeoEditor.py:4166 +#: flatcamEditors/FlatCAMGeoEditor.py:4204 +#: flatcamEditors/FlatCAMGeoEditor.py:4280 msgid "" "[ERROR_NOTCL] Negative buffer value is not accepted. Use Buffer interior to " "generate an 'inside' shape" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:4172 -#: flatcamEditors/FlatCAMGeoEditor.py:4210 -#: flatcamEditors/FlatCAMGeoEditor.py:4285 +#: flatcamEditors/FlatCAMGeoEditor.py:4175 +#: flatcamEditors/FlatCAMGeoEditor.py:4213 +#: flatcamEditors/FlatCAMGeoEditor.py:4288 msgid "[WARNING_NOTCL] Nothing selected for buffering." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:4176 -#: flatcamEditors/FlatCAMGeoEditor.py:4214 -#: flatcamEditors/FlatCAMGeoEditor.py:4289 +#: flatcamEditors/FlatCAMGeoEditor.py:4179 +#: flatcamEditors/FlatCAMGeoEditor.py:4217 +#: flatcamEditors/FlatCAMGeoEditor.py:4292 msgid "[WARNING_NOTCL] Invalid distance for buffering." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:4186 -#: flatcamEditors/FlatCAMGeoEditor.py:4298 +#: flatcamEditors/FlatCAMGeoEditor.py:4189 +#: flatcamEditors/FlatCAMGeoEditor.py:4301 msgid "" "[ERROR_NOTCL] Failed, the result is empty. Choose a different buffer value." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:4194 +#: flatcamEditors/FlatCAMGeoEditor.py:4197 msgid "[success] Full buffer geometry created." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:4224 +#: flatcamEditors/FlatCAMGeoEditor.py:4227 msgid "" "[ERROR_NOTCL] Failed, the result is empty. Choose a smaller buffer value." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:4239 +#: flatcamEditors/FlatCAMGeoEditor.py:4242 msgid "[success] Interior buffer geometry created." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:4310 +#: flatcamEditors/FlatCAMGeoEditor.py:4313 msgid "[success] Exterior buffer geometry created." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:4374 +#: flatcamEditors/FlatCAMGeoEditor.py:4377 msgid "[WARNING_NOTCL] Nothing selected for painting." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:4380 +#: flatcamEditors/FlatCAMGeoEditor.py:4383 msgid "[WARNING] Invalid value for {}" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:4386 +#: flatcamEditors/FlatCAMGeoEditor.py:4389 msgid "" "[ERROR_NOTCL] Could not do Paint. Overlap value has to be less than 1.00 " "(100%)." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:4445 +#: flatcamEditors/FlatCAMGeoEditor.py:4448 #, python-format msgid "" "[ERROR] Could not do Paint. Try a different combination of parameters. Or a " @@ -2827,7 +2832,7 @@ msgid "" "%s" msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:4456 +#: flatcamEditors/FlatCAMGeoEditor.py:4459 msgid "[success] Paint done." msgstr "" @@ -2985,23 +2990,23 @@ msgid "Apertures Table for the Gerber Object." msgstr "" #: flatcamEditors/FlatCAMGrbEditor.py:2291 -#: flatcamEditors/FlatCAMGrbEditor.py:3602 flatcamGUI/ObjectUI.py:228 +#: flatcamEditors/FlatCAMGrbEditor.py:3601 flatcamGUI/ObjectUI.py:228 msgid "Code" msgstr "" #: flatcamEditors/FlatCAMGrbEditor.py:2291 -#: flatcamEditors/FlatCAMGrbEditor.py:3602 flatcamGUI/ObjectUI.py:228 +#: flatcamEditors/FlatCAMGrbEditor.py:3601 flatcamGUI/ObjectUI.py:228 #: flatcamGUI/ObjectUI.py:891 flatcamGUI/ObjectUI.py:1465 msgid "Type" msgstr "" #: flatcamEditors/FlatCAMGrbEditor.py:2291 -#: flatcamEditors/FlatCAMGrbEditor.py:3602 flatcamGUI/ObjectUI.py:228 +#: flatcamEditors/FlatCAMGrbEditor.py:3601 flatcamGUI/ObjectUI.py:228 msgid "Size" msgstr "" #: flatcamEditors/FlatCAMGrbEditor.py:2291 -#: flatcamEditors/FlatCAMGrbEditor.py:3602 flatcamGUI/ObjectUI.py:228 +#: flatcamEditors/FlatCAMGrbEditor.py:3601 flatcamGUI/ObjectUI.py:228 msgid "Dim" msgstr "" @@ -3217,33 +3222,40 @@ msgstr "" msgid "[WARNING_NOTCL] Cancelled. No aperture is selected" msgstr "" -#: flatcamEditors/FlatCAMGrbEditor.py:4270 +#: flatcamEditors/FlatCAMGrbEditor.py:4280 msgid "[ERROR_NOTCL] Failed. No aperture geometry is selected." msgstr "" -#: flatcamEditors/FlatCAMGrbEditor.py:4278 +#: flatcamEditors/FlatCAMGrbEditor.py:4288 msgid "[success] Done. Apertures geometry deleted." msgstr "" -#: flatcamEditors/FlatCAMGrbEditor.py:4427 +#: flatcamEditors/FlatCAMGrbEditor.py:4431 msgid "" "[WARNING_NOTCL] No aperture to buffer. Select at least one aperture and try " "again." msgstr "" -#: flatcamEditors/FlatCAMGrbEditor.py:4456 +#: flatcamEditors/FlatCAMGrbEditor.py:4444 +#, python-format +msgid "" +"[ERROR_NOTCL] Failed.\n" +"%s" +msgstr "" + +#: flatcamEditors/FlatCAMGrbEditor.py:4461 msgid "" "[WARNING_NOTCL] Scale factor value is missing or wrong format. Add it and " "retry." msgstr "" -#: flatcamEditors/FlatCAMGrbEditor.py:4486 +#: flatcamEditors/FlatCAMGrbEditor.py:4494 msgid "" "[WARNING_NOTCL] No aperture to scale. Select at least one aperture and try " "again." msgstr "" -#: flatcamEditors/FlatCAMGrbEditor.py:4502 +#: flatcamEditors/FlatCAMGrbEditor.py:4510 msgid "[success] Done. Scale Tool completed." msgstr "" @@ -5411,7 +5423,7 @@ msgid "Gerber General" msgstr "" #: flatcamGUI/FlatCAMGUI.py:3995 flatcamGUI/FlatCAMGUI.py:4361 -#: flatcamGUI/FlatCAMGUI.py:5153 flatcamGUI/FlatCAMGUI.py:5525 +#: flatcamGUI/FlatCAMGUI.py:5135 flatcamGUI/FlatCAMGUI.py:5504 #: flatcamGUI/ObjectUI.py:150 flatcamGUI/ObjectUI.py:505 #: flatcamGUI/ObjectUI.py:833 flatcamGUI/ObjectUI.py:1350 msgid "Plot Options:" @@ -5435,18 +5447,18 @@ msgid "Draw polygons in different colors." msgstr "" #: flatcamGUI/FlatCAMGUI.py:4016 flatcamGUI/FlatCAMGUI.py:4367 -#: flatcamGUI/FlatCAMGUI.py:5157 flatcamGUI/ObjectUI.py:172 +#: flatcamGUI/FlatCAMGUI.py:5139 flatcamGUI/ObjectUI.py:172 msgid "Plot" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4018 flatcamGUI/FlatCAMGUI.py:5159 +#: flatcamGUI/FlatCAMGUI.py:4018 flatcamGUI/FlatCAMGUI.py:5141 #: flatcamGUI/ObjectUI.py:174 flatcamGUI/ObjectUI.py:546 #: flatcamGUI/ObjectUI.py:879 flatcamGUI/ObjectUI.py:1450 msgid "Plot (show) this object." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4023 flatcamGUI/FlatCAMGUI.py:5166 -#: flatcamGUI/FlatCAMGUI.py:5608 +#: flatcamGUI/FlatCAMGUI.py:4023 flatcamGUI/FlatCAMGUI.py:5149 +#: flatcamGUI/FlatCAMGUI.py:5587 msgid "Circle Steps:" msgstr "" @@ -5470,8 +5482,8 @@ msgid "" "toolpaths to cut outside polygons." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4056 flatcamGUI/FlatCAMGUI.py:4753 -#: flatcamGUI/FlatCAMGUI.py:5897 flatcamGUI/ObjectUI.py:788 +#: flatcamGUI/FlatCAMGUI.py:4056 flatcamGUI/FlatCAMGUI.py:4735 +#: flatcamGUI/FlatCAMGUI.py:5876 flatcamGUI/ObjectUI.py:788 #: flatcamGUI/ObjectUI.py:804 msgid "Diameter of the cutting tool." msgstr "" @@ -5522,7 +5534,7 @@ msgstr "" msgid "Clear non-copper:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4104 flatcamGUI/FlatCAMGUI.py:5785 +#: flatcamGUI/FlatCAMGUI.py:4104 flatcamGUI/FlatCAMGUI.py:5764 #: flatcamGUI/ObjectUI.py:386 msgid "" "Create a Geometry object with\n" @@ -5611,7 +5623,7 @@ msgstr "" msgid "Gerber Export" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4232 flatcamGUI/FlatCAMGUI.py:4902 +#: flatcamGUI/FlatCAMGUI.py:4232 flatcamGUI/FlatCAMGUI.py:4884 msgid "Export Options:" msgstr "" @@ -5621,7 +5633,7 @@ msgid "" "when using the File -> Export -> Export Gerber menu entry." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4243 flatcamGUI/FlatCAMGUI.py:4913 +#: flatcamGUI/FlatCAMGUI.py:4243 flatcamGUI/FlatCAMGUI.py:4895 msgid "Units:" msgstr "" @@ -5629,7 +5641,7 @@ msgstr "" msgid "The units used in the Gerber file." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4257 flatcamGUI/FlatCAMGUI.py:4927 +#: flatcamGUI/FlatCAMGUI.py:4257 flatcamGUI/FlatCAMGUI.py:4909 msgid "Int/Decimals:" msgstr "" @@ -5651,7 +5663,7 @@ msgid "" "the decimal part of Gerber coordinates." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4293 flatcamGUI/FlatCAMGUI.py:4988 +#: flatcamGUI/FlatCAMGUI.py:4293 flatcamGUI/FlatCAMGUI.py:4970 msgid "Zeros:" msgstr "" @@ -5664,12 +5676,12 @@ msgid "" "and Leading Zeros are kept." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4326 flatcamGUI/FlatCAMGUI.py:5029 -#: flatcamGUI/FlatCAMGUI.py:5491 flatcamGUI/FlatCAMGUI.py:5783 -#: flatcamGUI/FlatCAMGUI.py:5884 flatcamGUI/FlatCAMGUI.py:5963 -#: flatcamGUI/FlatCAMGUI.py:6022 flatcamGUI/FlatCAMGUI.py:6125 -#: flatcamGUI/FlatCAMGUI.py:6186 flatcamGUI/FlatCAMGUI.py:6385 -#: flatcamGUI/FlatCAMGUI.py:6512 +#: flatcamGUI/FlatCAMGUI.py:4326 flatcamGUI/FlatCAMGUI.py:5011 +#: flatcamGUI/FlatCAMGUI.py:5470 flatcamGUI/FlatCAMGUI.py:5762 +#: flatcamGUI/FlatCAMGUI.py:5863 flatcamGUI/FlatCAMGUI.py:5942 +#: flatcamGUI/FlatCAMGUI.py:6001 flatcamGUI/FlatCAMGUI.py:6104 +#: flatcamGUI/FlatCAMGUI.py:6165 flatcamGUI/FlatCAMGUI.py:6364 +#: flatcamGUI/FlatCAMGUI.py:6491 msgid "Parameters:" msgstr "" @@ -5677,8 +5689,8 @@ msgstr "" msgid "A list of Gerber Editor parameters." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4336 flatcamGUI/FlatCAMGUI.py:5039 -#: flatcamGUI/FlatCAMGUI.py:5501 +#: flatcamGUI/FlatCAMGUI.py:4336 flatcamGUI/FlatCAMGUI.py:5021 +#: flatcamGUI/FlatCAMGUI.py:5480 msgid "Selection limit:" msgstr "" @@ -5731,14 +5743,14 @@ msgid "Default values for INCH are 2:4" msgstr "" #: flatcamGUI/FlatCAMGUI.py:4418 flatcamGUI/FlatCAMGUI.py:4451 -#: flatcamGUI/FlatCAMGUI.py:4942 +#: flatcamGUI/FlatCAMGUI.py:4924 msgid "" "This numbers signify the number of digits in\n" "the whole part of Excellon coordinates." msgstr "" #: flatcamGUI/FlatCAMGUI.py:4432 flatcamGUI/FlatCAMGUI.py:4465 -#: flatcamGUI/FlatCAMGUI.py:4956 +#: flatcamGUI/FlatCAMGUI.py:4938 msgid "" "This numbers signify the number of digits in\n" "the decimal part of Excellon coordinates." @@ -5756,7 +5768,7 @@ msgstr "" msgid "Default Zeros:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4477 flatcamGUI/FlatCAMGUI.py:4991 +#: flatcamGUI/FlatCAMGUI.py:4477 flatcamGUI/FlatCAMGUI.py:4973 msgid "" "This sets the type of Excellon zeros.\n" "If LZ then Leading Zeros are kept and\n" @@ -5775,11 +5787,11 @@ msgid "" "and Leading Zeros are removed." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4502 +#: flatcamGUI/FlatCAMGUI.py:4498 msgid "Default Units:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4505 +#: flatcamGUI/FlatCAMGUI.py:4501 msgid "" "This sets the default units of Excellon files.\n" "If it is not detected in the parsed file the value here\n" @@ -5787,22 +5799,22 @@ msgid "" "therefore this parameter will be used." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4516 +#: flatcamGUI/FlatCAMGUI.py:4512 msgid "" "This sets the units of Excellon files.\n" "Some Excellon files don't have an header\n" "therefore this parameter will be used." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4532 +#: flatcamGUI/FlatCAMGUI.py:4520 msgid "Excellon Optimization:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4539 +#: flatcamGUI/FlatCAMGUI.py:4523 msgid "Algorithm: " msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4542 flatcamGUI/FlatCAMGUI.py:4555 +#: flatcamGUI/FlatCAMGUI.py:4525 flatcamGUI/FlatCAMGUI.py:4539 msgid "" "This sets the optimization type for the Excellon drill path.\n" "If MH is checked then Google OR-Tools algorithm with MetaHeuristic\n" @@ -5814,11 +5826,11 @@ msgid "" "Travelling Salesman algorithm for path optimization." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4567 +#: flatcamGUI/FlatCAMGUI.py:4550 msgid "Optimization Time: " msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4570 +#: flatcamGUI/FlatCAMGUI.py:4553 msgid "" "When OR-Tools Metaheuristic (MH) is enabled there is a\n" "maximum threshold for how much time is spent doing the\n" @@ -5826,88 +5838,88 @@ msgid "" "In seconds." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4612 +#: flatcamGUI/FlatCAMGUI.py:4596 msgid "Excellon Options" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4615 flatcamGUI/ObjectUI.py:584 +#: flatcamGUI/FlatCAMGUI.py:4599 flatcamGUI/ObjectUI.py:584 msgid "Create CNC Job" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4617 +#: flatcamGUI/FlatCAMGUI.py:4601 msgid "" "Parameters used to create a CNC Job object\n" "for this drill object." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4625 flatcamGUI/FlatCAMGUI.py:5217 -#: flatcamGUI/FlatCAMGUI.py:6321 flatcamGUI/ObjectUI.py:595 +#: flatcamGUI/FlatCAMGUI.py:4609 flatcamGUI/FlatCAMGUI.py:5196 +#: flatcamGUI/FlatCAMGUI.py:6300 flatcamGUI/ObjectUI.py:595 #: flatcamGUI/ObjectUI.py:1062 flatcamTools/ToolCalculators.py:108 msgid "Cut Z:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4627 flatcamGUI/ObjectUI.py:597 +#: flatcamGUI/FlatCAMGUI.py:4611 flatcamGUI/ObjectUI.py:597 msgid "" "Drill depth (negative)\n" "below the copper surface." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4634 flatcamGUI/FlatCAMGUI.py:5250 +#: flatcamGUI/FlatCAMGUI.py:4618 flatcamGUI/FlatCAMGUI.py:5229 #: flatcamGUI/ObjectUI.py:605 flatcamGUI/ObjectUI.py:1098 msgid "Travel Z:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4636 flatcamGUI/ObjectUI.py:607 +#: flatcamGUI/FlatCAMGUI.py:4620 flatcamGUI/ObjectUI.py:607 msgid "" "Tool height when travelling\n" "across the XY plane." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4644 flatcamGUI/FlatCAMGUI.py:5260 +#: flatcamGUI/FlatCAMGUI.py:4628 flatcamGUI/FlatCAMGUI.py:5239 msgid "Tool change:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4646 flatcamGUI/FlatCAMGUI.py:5262 +#: flatcamGUI/FlatCAMGUI.py:4630 flatcamGUI/FlatCAMGUI.py:5241 #: flatcamGUI/ObjectUI.py:617 msgid "" "Include tool-change sequence\n" "in G-Code (Pause for tool change)." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4653 flatcamGUI/FlatCAMGUI.py:5270 +#: flatcamGUI/FlatCAMGUI.py:4637 flatcamGUI/FlatCAMGUI.py:5249 msgid "Toolchange Z:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4655 flatcamGUI/FlatCAMGUI.py:5272 +#: flatcamGUI/FlatCAMGUI.py:4639 flatcamGUI/FlatCAMGUI.py:5251 msgid "Toolchange Z position." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4661 +#: flatcamGUI/FlatCAMGUI.py:4645 msgid "Feedrate:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4663 +#: flatcamGUI/FlatCAMGUI.py:4647 msgid "" "Tool speed while drilling\n" "(in units per minute)." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4671 +#: flatcamGUI/FlatCAMGUI.py:4655 msgid "Spindle Speed:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4673 flatcamGUI/FlatCAMGUI.py:5302 +#: flatcamGUI/FlatCAMGUI.py:4657 flatcamGUI/FlatCAMGUI.py:5281 #: flatcamGUI/ObjectUI.py:684 msgid "" "Speed of the spindle\n" "in RPM (optional)" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4681 flatcamGUI/FlatCAMGUI.py:5310 +#: flatcamGUI/FlatCAMGUI.py:4665 flatcamGUI/FlatCAMGUI.py:5289 msgid "Spindle dir.:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4683 flatcamGUI/FlatCAMGUI.py:5312 +#: flatcamGUI/FlatCAMGUI.py:4667 flatcamGUI/FlatCAMGUI.py:5291 msgid "" "This sets the direction that the spindle is rotating.\n" "It can be either:\n" @@ -5915,43 +5927,43 @@ msgid "" "- CCW = counter clockwise" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4695 flatcamGUI/FlatCAMGUI.py:5324 +#: flatcamGUI/FlatCAMGUI.py:4679 flatcamGUI/FlatCAMGUI.py:5303 #: flatcamGUI/ObjectUI.py:692 flatcamGUI/ObjectUI.py:1224 msgid "Dwell:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4697 flatcamGUI/FlatCAMGUI.py:5326 +#: flatcamGUI/FlatCAMGUI.py:4681 flatcamGUI/FlatCAMGUI.py:5305 #: flatcamGUI/ObjectUI.py:694 flatcamGUI/ObjectUI.py:1227 msgid "" "Pause to allow the spindle to reach its\n" "speed before cutting." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4700 flatcamGUI/FlatCAMGUI.py:5329 +#: flatcamGUI/FlatCAMGUI.py:4684 flatcamGUI/FlatCAMGUI.py:5308 msgid "Duration:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4702 flatcamGUI/FlatCAMGUI.py:5331 +#: flatcamGUI/FlatCAMGUI.py:4686 flatcamGUI/FlatCAMGUI.py:5310 #: flatcamGUI/ObjectUI.py:699 flatcamGUI/ObjectUI.py:1234 msgid "Number of milliseconds for spindle to dwell." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4714 flatcamGUI/FlatCAMGUI.py:5341 +#: flatcamGUI/FlatCAMGUI.py:4698 flatcamGUI/FlatCAMGUI.py:5320 #: flatcamGUI/ObjectUI.py:707 msgid "Postprocessor:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4716 +#: flatcamGUI/FlatCAMGUI.py:4700 msgid "" "The postprocessor file that dictates\n" "gcode output." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4725 +#: flatcamGUI/FlatCAMGUI.py:4709 msgid "Gcode: " msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4727 +#: flatcamGUI/FlatCAMGUI.py:4711 msgid "" "Choose what to use for GCode generation:\n" "'Drills', 'Slots' or 'Both'.\n" @@ -5959,93 +5971,93 @@ msgid "" "converted to drills." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4743 flatcamGUI/ObjectUI.py:772 +#: flatcamGUI/FlatCAMGUI.py:4727 flatcamGUI/ObjectUI.py:772 msgid "Mill Holes" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4745 flatcamGUI/ObjectUI.py:774 +#: flatcamGUI/FlatCAMGUI.py:4729 flatcamGUI/ObjectUI.py:774 msgid "Create Geometry for milling holes." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4751 +#: flatcamGUI/FlatCAMGUI.py:4733 msgid "Drill Tool dia:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4758 +#: flatcamGUI/FlatCAMGUI.py:4740 msgid "Slot Tool dia:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4760 +#: flatcamGUI/FlatCAMGUI.py:4742 msgid "" "Diameter of the cutting tool\n" "when milling slots." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4772 +#: flatcamGUI/FlatCAMGUI.py:4754 msgid "Defaults" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4785 +#: flatcamGUI/FlatCAMGUI.py:4767 msgid "Excellon Adv. Options" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4791 flatcamGUI/FlatCAMGUI.py:5364 +#: flatcamGUI/FlatCAMGUI.py:4773 flatcamGUI/FlatCAMGUI.py:5343 msgid "Advanced Options:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4793 +#: flatcamGUI/FlatCAMGUI.py:4775 msgid "" "Parameters used to create a CNC Job object\n" "for this drill object that are shown when App Level is Advanced." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4801 +#: flatcamGUI/FlatCAMGUI.py:4783 msgid "Offset Z:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4803 flatcamGUI/ObjectUI.py:574 +#: flatcamGUI/FlatCAMGUI.py:4785 flatcamGUI/ObjectUI.py:574 msgid "" "Some drill bits (the larger ones) need to drill deeper\n" "to create the desired exit hole diameter due of the tip shape.\n" "The value here can compensate the Cut Z parameter." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4810 flatcamGUI/FlatCAMGUI.py:5375 +#: flatcamGUI/FlatCAMGUI.py:4792 flatcamGUI/FlatCAMGUI.py:5354 msgid "Toolchange X,Y:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4812 flatcamGUI/FlatCAMGUI.py:5377 +#: flatcamGUI/FlatCAMGUI.py:4794 flatcamGUI/FlatCAMGUI.py:5356 msgid "Toolchange X,Y position." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4818 flatcamGUI/FlatCAMGUI.py:5384 +#: flatcamGUI/FlatCAMGUI.py:4800 flatcamGUI/FlatCAMGUI.py:5363 #: flatcamGUI/ObjectUI.py:634 msgid "Start move Z:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4820 +#: flatcamGUI/FlatCAMGUI.py:4802 msgid "" "Height of the tool just after start.\n" "Delete the value if you don't need this feature." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4827 flatcamGUI/FlatCAMGUI.py:5394 +#: flatcamGUI/FlatCAMGUI.py:4809 flatcamGUI/FlatCAMGUI.py:5373 #: flatcamGUI/ObjectUI.py:644 flatcamGUI/ObjectUI.py:1144 msgid "End move Z:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4829 flatcamGUI/FlatCAMGUI.py:5396 +#: flatcamGUI/FlatCAMGUI.py:4811 flatcamGUI/FlatCAMGUI.py:5375 msgid "" "Height of the tool after\n" "the last move at the end of the job." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4836 flatcamGUI/FlatCAMGUI.py:5404 +#: flatcamGUI/FlatCAMGUI.py:4818 flatcamGUI/FlatCAMGUI.py:5383 #: flatcamGUI/ObjectUI.py:665 msgid "Feedrate Rapids:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4838 flatcamGUI/ObjectUI.py:667 +#: flatcamGUI/FlatCAMGUI.py:4820 flatcamGUI/ObjectUI.py:667 msgid "" "Tool speed while drilling\n" "(in units per minute).\n" @@ -6054,33 +6066,33 @@ msgid "" "ignore for any other cases." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4849 flatcamGUI/FlatCAMGUI.py:5428 +#: flatcamGUI/FlatCAMGUI.py:4831 flatcamGUI/FlatCAMGUI.py:5407 #: flatcamGUI/ObjectUI.py:718 flatcamGUI/ObjectUI.py:1256 msgid "Probe Z depth:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4851 flatcamGUI/FlatCAMGUI.py:5430 +#: flatcamGUI/FlatCAMGUI.py:4833 flatcamGUI/FlatCAMGUI.py:5409 #: flatcamGUI/ObjectUI.py:720 flatcamGUI/ObjectUI.py:1259 msgid "" "The maximum depth that the probe is allowed\n" "to probe. Negative value, in current units." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4859 flatcamGUI/FlatCAMGUI.py:5438 +#: flatcamGUI/FlatCAMGUI.py:4841 flatcamGUI/FlatCAMGUI.py:5417 #: flatcamGUI/ObjectUI.py:730 flatcamGUI/ObjectUI.py:1270 msgid "Feedrate Probe:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4861 flatcamGUI/FlatCAMGUI.py:5440 +#: flatcamGUI/FlatCAMGUI.py:4843 flatcamGUI/FlatCAMGUI.py:5419 #: flatcamGUI/ObjectUI.py:732 flatcamGUI/ObjectUI.py:1273 msgid "The feedrate used while the probe is probing." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4867 flatcamGUI/FlatCAMGUI.py:5447 +#: flatcamGUI/FlatCAMGUI.py:4849 flatcamGUI/FlatCAMGUI.py:5426 msgid "Fast Plunge:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4869 flatcamGUI/FlatCAMGUI.py:5449 +#: flatcamGUI/FlatCAMGUI.py:4851 flatcamGUI/FlatCAMGUI.py:5428 msgid "" "By checking this, the vertical move from\n" "Z_Toolchange to Z_move is done with G0,\n" @@ -6088,11 +6100,11 @@ msgid "" "WARNING: the move is done at Toolchange X,Y coords." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4878 +#: flatcamGUI/FlatCAMGUI.py:4860 msgid "Fast Retract:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4880 +#: flatcamGUI/FlatCAMGUI.py:4862 msgid "" "Exit hole strategy.\n" " - When uncheked, while exiting the drilled hole the drill bit\n" @@ -6102,21 +6114,21 @@ msgid "" "(travel height) is done as fast as possible (G0) in one move." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4899 +#: flatcamGUI/FlatCAMGUI.py:4881 msgid "Excellon Export" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4904 +#: flatcamGUI/FlatCAMGUI.py:4886 msgid "" "The parameters set here are used in the file exported\n" "when using the File -> Export -> Export Excellon menu entry." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4915 flatcamGUI/FlatCAMGUI.py:4921 +#: flatcamGUI/FlatCAMGUI.py:4897 flatcamGUI/FlatCAMGUI.py:4903 msgid "The units used in the Excellon file." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4929 +#: flatcamGUI/FlatCAMGUI.py:4911 msgid "" "The NC drill files, usually named Excellon files\n" "are files that can be found in different formats.\n" @@ -6124,11 +6136,11 @@ msgid "" "coordinates are not using period." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4965 +#: flatcamGUI/FlatCAMGUI.py:4947 msgid "Format:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:4967 flatcamGUI/FlatCAMGUI.py:4977 +#: flatcamGUI/FlatCAMGUI.py:4949 flatcamGUI/FlatCAMGUI.py:4959 msgid "" "Select the kind of coordinates format used.\n" "Coordinates can be saved with decimal point or without.\n" @@ -6138,7 +6150,7 @@ msgid "" "or TZ = trailing zeros are kept." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5001 +#: flatcamGUI/FlatCAMGUI.py:4983 msgid "" "This sets the default type of Excellon zeros.\n" "If LZ then Leading Zeros are kept and\n" @@ -6147,11 +6159,11 @@ msgid "" "and Leading Zeros are removed." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5031 +#: flatcamGUI/FlatCAMGUI.py:5013 msgid "A list of Excellon Editor parameters." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5041 +#: flatcamGUI/FlatCAMGUI.py:5023 msgid "" "Set the number of selected Excellon geometry\n" "items above which the utility geometry\n" @@ -6160,94 +6172,88 @@ msgid "" "large number of geometric elements." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5053 +#: flatcamGUI/FlatCAMGUI.py:5035 msgid "New Tool Dia:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5076 +#: flatcamGUI/FlatCAMGUI.py:5058 msgid "Linear Drill Array:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5080 +#: flatcamGUI/FlatCAMGUI.py:5062 msgid "Linear Dir.:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5116 +#: flatcamGUI/FlatCAMGUI.py:5098 msgid "Circular Drill Array:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5120 +#: flatcamGUI/FlatCAMGUI.py:5102 msgid "Circular Dir.:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5122 +#: flatcamGUI/FlatCAMGUI.py:5104 msgid "" "Direction for circular array.\n" "Can be CW = clockwise or CCW = counter clockwise." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5133 +#: flatcamGUI/FlatCAMGUI.py:5115 msgid "Circ. Angle:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5150 +#: flatcamGUI/FlatCAMGUI.py:5132 msgid "Geometry General" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5168 +#: flatcamGUI/FlatCAMGUI.py:5151 msgid "" "The number of circle steps for Geometry \n" "circle and arc shapes linear approximation." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5176 -msgid "Tools" +#: flatcamGUI/FlatCAMGUI.py:5159 +msgid "Tools:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5183 -msgid "Tool dia: " +#: flatcamGUI/FlatCAMGUI.py:5165 flatcamGUI/FlatCAMGUI.py:5774 +msgid "Diameters of the cutting tools, separated by ','" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5185 -msgid "" -"The diameter of the cutting\n" -"tool.." -msgstr "" - -#: flatcamGUI/FlatCAMGUI.py:5200 +#: flatcamGUI/FlatCAMGUI.py:5179 msgid "Geometry Options" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5205 +#: flatcamGUI/FlatCAMGUI.py:5184 msgid "Create CNC Job:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5207 +#: flatcamGUI/FlatCAMGUI.py:5186 msgid "" "Create a CNC Job object\n" "tracing the contours of this\n" "Geometry object." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5219 flatcamGUI/ObjectUI.py:1065 +#: flatcamGUI/FlatCAMGUI.py:5198 flatcamGUI/ObjectUI.py:1065 msgid "" "Cutting depth (negative)\n" "below the copper surface." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5227 +#: flatcamGUI/FlatCAMGUI.py:5206 msgid "Multidepth" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5229 +#: flatcamGUI/FlatCAMGUI.py:5208 msgid "Multidepth usage: True or False." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5234 +#: flatcamGUI/FlatCAMGUI.py:5213 msgid "Depth/Pass:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5236 +#: flatcamGUI/FlatCAMGUI.py:5215 msgid "" "The depth to cut on each pass,\n" "when multidepth is enabled.\n" @@ -6256,61 +6262,61 @@ msgid "" "which has negative value." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5252 flatcamGUI/ObjectUI.py:1101 +#: flatcamGUI/FlatCAMGUI.py:5231 flatcamGUI/ObjectUI.py:1101 msgid "" "Height of the tool when\n" "moving without cutting." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5279 flatcamGUI/ObjectUI.py:1156 +#: flatcamGUI/FlatCAMGUI.py:5258 flatcamGUI/ObjectUI.py:1156 msgid "Feed Rate X-Y:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5281 flatcamGUI/ObjectUI.py:1159 +#: flatcamGUI/FlatCAMGUI.py:5260 flatcamGUI/ObjectUI.py:1159 msgid "" "Cutting speed in the XY\n" "plane in units per minute" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5289 +#: flatcamGUI/FlatCAMGUI.py:5268 msgid "Feed Rate Z:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5291 +#: flatcamGUI/FlatCAMGUI.py:5270 msgid "" "Cutting speed in the XY\n" "plane in units per minute.\n" "It is called also Plunge." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5300 flatcamGUI/ObjectUI.py:682 +#: flatcamGUI/FlatCAMGUI.py:5279 flatcamGUI/ObjectUI.py:682 #: flatcamGUI/ObjectUI.py:1211 msgid "Spindle speed:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5343 +#: flatcamGUI/FlatCAMGUI.py:5322 msgid "" "The postprocessor file that dictates\n" "Machine Code output." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5359 +#: flatcamGUI/FlatCAMGUI.py:5338 msgid "Geometry Adv. Options" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5366 +#: flatcamGUI/FlatCAMGUI.py:5345 msgid "" "Parameters to create a CNC Job object\n" "tracing the contours of a Geometry object." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5386 +#: flatcamGUI/FlatCAMGUI.py:5365 msgid "" "Height of the tool just after starting the work.\n" "Delete the value if you don't need this feature." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5406 +#: flatcamGUI/FlatCAMGUI.py:5385 msgid "" "Cutting speed in the XY plane\n" "(in units per minute).\n" @@ -6319,11 +6325,11 @@ msgid "" "ignore for any other cases." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5418 +#: flatcamGUI/FlatCAMGUI.py:5397 msgid "Re-cut 1st pt." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5420 flatcamGUI/ObjectUI.py:1202 +#: flatcamGUI/FlatCAMGUI.py:5399 flatcamGUI/ObjectUI.py:1202 msgid "" "In order to remove possible\n" "copper leftovers where first cut\n" @@ -6331,37 +6337,37 @@ msgid "" "extended cut over the first cut section." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5459 +#: flatcamGUI/FlatCAMGUI.py:5438 msgid "Seg. X size:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5461 +#: flatcamGUI/FlatCAMGUI.py:5440 msgid "" "The size of the trace segment on the X axis.\n" "Useful for auto-leveling.\n" "A value of 0 means no segmentation on the X axis." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5470 +#: flatcamGUI/FlatCAMGUI.py:5449 msgid "Seg. Y size:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5472 +#: flatcamGUI/FlatCAMGUI.py:5451 msgid "" "The size of the trace segment on the Y axis.\n" "Useful for auto-leveling.\n" "A value of 0 means no segmentation on the Y axis." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5488 +#: flatcamGUI/FlatCAMGUI.py:5467 msgid "Geometry Editor" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5493 +#: flatcamGUI/FlatCAMGUI.py:5472 msgid "A list of Geometry Editor parameters." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5503 +#: flatcamGUI/FlatCAMGUI.py:5482 msgid "" "Set the number of selected geometry\n" "items above which the utility geometry\n" @@ -6370,20 +6376,20 @@ msgid "" "large number of geometric elements." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5522 +#: flatcamGUI/FlatCAMGUI.py:5501 msgid "CNC Job General" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5535 flatcamGUI/ObjectUI.py:544 +#: flatcamGUI/FlatCAMGUI.py:5514 flatcamGUI/ObjectUI.py:544 #: flatcamGUI/ObjectUI.py:877 flatcamGUI/ObjectUI.py:1447 msgid "Plot Object" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5542 +#: flatcamGUI/FlatCAMGUI.py:5521 msgid "Plot kind:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5544 flatcamGUI/ObjectUI.py:1356 +#: flatcamGUI/FlatCAMGUI.py:5523 flatcamGUI/ObjectUI.py:1356 msgid "" "This selects the kind of geometries on the canvas to plot.\n" "Those can be either of type 'Travel' which means the moves\n" @@ -6391,110 +6397,110 @@ msgid "" "which means the moves that cut into the material." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5561 +#: flatcamGUI/FlatCAMGUI.py:5540 msgid "Display Annotation:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5563 flatcamGUI/ObjectUI.py:1372 +#: flatcamGUI/FlatCAMGUI.py:5542 flatcamGUI/ObjectUI.py:1372 msgid "" "This selects if to display text annotation on the plot.\n" "When checked it will display numbers in order for each end\n" "of a travel line." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5575 +#: flatcamGUI/FlatCAMGUI.py:5554 msgid "Annotation Size:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5577 +#: flatcamGUI/FlatCAMGUI.py:5556 msgid "The font size of the annotation text. In pixels." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5585 +#: flatcamGUI/FlatCAMGUI.py:5564 msgid "Annotation Color:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5587 +#: flatcamGUI/FlatCAMGUI.py:5566 msgid "Set the font color for the annotation texts." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5610 +#: flatcamGUI/FlatCAMGUI.py:5589 msgid "" "The number of circle steps for GCode \n" "circle and arc shapes linear approximation." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5620 +#: flatcamGUI/FlatCAMGUI.py:5599 msgid "" "Diameter of the tool to be\n" "rendered in the plot." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5628 +#: flatcamGUI/FlatCAMGUI.py:5607 msgid "Coords dec.:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5630 +#: flatcamGUI/FlatCAMGUI.py:5609 msgid "" "The number of decimals to be used for \n" "the X, Y, Z coordinates in CNC code (GCODE, etc.)" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5638 +#: flatcamGUI/FlatCAMGUI.py:5617 msgid "Feedrate dec.:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5640 +#: flatcamGUI/FlatCAMGUI.py:5619 msgid "" "The number of decimals to be used for \n" "the Feedrate parameter in CNC code (GCODE, etc.)" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5655 +#: flatcamGUI/FlatCAMGUI.py:5634 msgid "CNC Job Options" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5658 flatcamGUI/FlatCAMGUI.py:5699 +#: flatcamGUI/FlatCAMGUI.py:5637 flatcamGUI/FlatCAMGUI.py:5678 msgid "Export G-Code:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5660 flatcamGUI/FlatCAMGUI.py:5701 +#: flatcamGUI/FlatCAMGUI.py:5639 flatcamGUI/FlatCAMGUI.py:5680 #: flatcamGUI/ObjectUI.py:1483 msgid "" "Export and save G-Code to\n" "make this object to a file." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5666 +#: flatcamGUI/FlatCAMGUI.py:5645 msgid "Prepend to G-Code:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5668 +#: flatcamGUI/FlatCAMGUI.py:5647 msgid "" "Type here any G-Code commands you would\n" "like to add at the beginning of the G-Code file." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5677 +#: flatcamGUI/FlatCAMGUI.py:5656 msgid "Append to G-Code:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5679 flatcamGUI/ObjectUI.py:1505 +#: flatcamGUI/FlatCAMGUI.py:5658 flatcamGUI/ObjectUI.py:1505 msgid "" "Type here any G-Code commands you would\n" "like to append to the generated file.\n" "I.e.: M2 (End of program)" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5696 +#: flatcamGUI/FlatCAMGUI.py:5675 msgid "CNC Job Adv. Options" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5707 flatcamGUI/ObjectUI.py:1523 +#: flatcamGUI/FlatCAMGUI.py:5686 flatcamGUI/ObjectUI.py:1523 msgid "Toolchange G-Code:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5709 +#: flatcamGUI/FlatCAMGUI.py:5688 msgid "" "Type here any G-Code commands you would\n" "like to be executed when Toolchange event is encountered.\n" @@ -6502,88 +6508,84 @@ msgid "" "or a Toolchange Macro." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5723 flatcamGUI/ObjectUI.py:1545 +#: flatcamGUI/FlatCAMGUI.py:5702 flatcamGUI/ObjectUI.py:1545 msgid "Use Toolchange Macro" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5725 flatcamGUI/ObjectUI.py:1548 +#: flatcamGUI/FlatCAMGUI.py:5704 flatcamGUI/ObjectUI.py:1548 msgid "" "Check this box if you want to use\n" "a Custom Toolchange GCode (macro)." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5737 flatcamGUI/ObjectUI.py:1557 +#: flatcamGUI/FlatCAMGUI.py:5716 flatcamGUI/ObjectUI.py:1557 msgid "" "A list of the FlatCAM variables that can be used\n" "in the Toolchange event.\n" "They have to be surrounded by the '%' symbol" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5744 flatcamGUI/ObjectUI.py:1564 +#: flatcamGUI/FlatCAMGUI.py:5723 flatcamGUI/ObjectUI.py:1564 msgid "Parameters" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5747 flatcamGUI/ObjectUI.py:1567 +#: flatcamGUI/FlatCAMGUI.py:5726 flatcamGUI/ObjectUI.py:1567 msgid "FlatCAM CNC parameters" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5748 flatcamGUI/ObjectUI.py:1568 +#: flatcamGUI/FlatCAMGUI.py:5727 flatcamGUI/ObjectUI.py:1568 msgid "tool = tool number" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5749 flatcamGUI/ObjectUI.py:1569 +#: flatcamGUI/FlatCAMGUI.py:5728 flatcamGUI/ObjectUI.py:1569 msgid "tooldia = tool diameter" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5750 flatcamGUI/ObjectUI.py:1570 +#: flatcamGUI/FlatCAMGUI.py:5729 flatcamGUI/ObjectUI.py:1570 msgid "t_drills = for Excellon, total number of drills" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5751 flatcamGUI/ObjectUI.py:1571 +#: flatcamGUI/FlatCAMGUI.py:5730 flatcamGUI/ObjectUI.py:1571 msgid "x_toolchange = X coord for Toolchange" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5752 flatcamGUI/ObjectUI.py:1572 +#: flatcamGUI/FlatCAMGUI.py:5731 flatcamGUI/ObjectUI.py:1572 msgid "y_toolchange = Y coord for Toolchange" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5753 flatcamGUI/ObjectUI.py:1573 +#: flatcamGUI/FlatCAMGUI.py:5732 flatcamGUI/ObjectUI.py:1573 msgid "z_toolchange = Z coord for Toolchange" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5754 +#: flatcamGUI/FlatCAMGUI.py:5733 msgid "z_cut = Z depth for the cut" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5755 +#: flatcamGUI/FlatCAMGUI.py:5734 msgid "z_move = Z height for travel" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5756 flatcamGUI/ObjectUI.py:1576 +#: flatcamGUI/FlatCAMGUI.py:5735 flatcamGUI/ObjectUI.py:1576 msgid "z_depthpercut = the step value for multidepth cut" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5757 flatcamGUI/ObjectUI.py:1577 +#: flatcamGUI/FlatCAMGUI.py:5736 flatcamGUI/ObjectUI.py:1577 msgid "spindlesspeed = the value for the spindle speed" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5759 flatcamGUI/ObjectUI.py:1578 +#: flatcamGUI/FlatCAMGUI.py:5738 flatcamGUI/ObjectUI.py:1578 msgid "dwelltime = time to dwell to allow the spindle to reach it's set RPM" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5780 +#: flatcamGUI/FlatCAMGUI.py:5759 msgid "NCC Tool Options" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5793 flatcamGUI/FlatCAMGUI.py:6523 +#: flatcamGUI/FlatCAMGUI.py:5772 flatcamGUI/FlatCAMGUI.py:6502 msgid "Tools dia:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5795 -msgid "Diameters of the cutting tools, separated by ','" -msgstr "" - -#: flatcamGUI/FlatCAMGUI.py:5803 flatcamTools/ToolNonCopperClear.py:167 +#: flatcamGUI/FlatCAMGUI.py:5782 flatcamTools/ToolNonCopperClear.py:167 #, python-format msgid "" "How much (fraction) of the tool width to overlap each tool pass.\n" @@ -6598,11 +6600,11 @@ msgid "" "due of too many paths." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5819 flatcamTools/ToolNonCopperClear.py:183 +#: flatcamGUI/FlatCAMGUI.py:5798 flatcamTools/ToolNonCopperClear.py:183 msgid "Bounding box margin." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5828 flatcamTools/ToolNonCopperClear.py:192 +#: flatcamGUI/FlatCAMGUI.py:5807 flatcamTools/ToolNonCopperClear.py:192 #: flatcamTools/ToolPaint.py:190 msgid "" "Algorithm for non-copper clearing:
Standard: Fixed step inwards." @@ -6610,12 +6612,12 @@ msgid "" "lines." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5860 flatcamTools/ToolNonCopperClear.py:224 +#: flatcamGUI/FlatCAMGUI.py:5839 flatcamTools/ToolNonCopperClear.py:224 #: flatcamTools/ToolPaint.py:222 msgid "Rest M.:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5862 +#: flatcamGUI/FlatCAMGUI.py:5841 msgid "" "If checked, use 'rest machining'.\n" "Basically it will clear copper outside PCB features,\n" @@ -6625,39 +6627,39 @@ msgid "" "If not checked, use the standard algorithm." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5881 +#: flatcamGUI/FlatCAMGUI.py:5860 msgid "Cutout Tool Options" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5886 flatcamGUI/ObjectUI.py:402 +#: flatcamGUI/FlatCAMGUI.py:5865 flatcamGUI/ObjectUI.py:402 msgid "" "Create toolpaths to cut around\n" "the PCB and separate it from\n" "the original board." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5905 +#: flatcamGUI/FlatCAMGUI.py:5884 msgid "" "Distance from objects at which\n" "to draw the cutout." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5912 flatcamTools/ToolCutOut.py:96 +#: flatcamGUI/FlatCAMGUI.py:5891 flatcamTools/ToolCutOut.py:96 msgid "Gap size:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5914 +#: flatcamGUI/FlatCAMGUI.py:5893 msgid "" "Size of the gaps in the toolpath\n" "that will remain to hold the\n" "board in place." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5922 flatcamTools/ToolCutOut.py:134 +#: flatcamGUI/FlatCAMGUI.py:5901 flatcamTools/ToolCutOut.py:134 msgid "Gaps:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5924 +#: flatcamGUI/FlatCAMGUI.py:5903 msgid "" "Number of bridge gaps used for the cutout.\n" "There can be maximum 8 bridges/gaps.\n" @@ -6670,57 +6672,57 @@ msgid "" "- 8 - 2*left + 2*right +2*top + 2*bottom" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5945 flatcamTools/ToolCutOut.py:115 +#: flatcamGUI/FlatCAMGUI.py:5924 flatcamTools/ToolCutOut.py:115 msgid "Convex Sh.:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5947 +#: flatcamGUI/FlatCAMGUI.py:5926 msgid "Create a convex shape surrounding the entire PCB." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5960 +#: flatcamGUI/FlatCAMGUI.py:5939 msgid "2Sided Tool Options" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5965 +#: flatcamGUI/FlatCAMGUI.py:5944 msgid "" "A tool to help in creating a double sided\n" "PCB using alignment holes." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5975 flatcamTools/ToolDblSided.py:235 +#: flatcamGUI/FlatCAMGUI.py:5954 flatcamTools/ToolDblSided.py:235 msgid "Drill diam.:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5977 flatcamTools/ToolDblSided.py:226 +#: flatcamGUI/FlatCAMGUI.py:5956 flatcamTools/ToolDblSided.py:226 #: flatcamTools/ToolDblSided.py:237 msgid "Diameter of the drill for the alignment holes." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5986 flatcamTools/ToolDblSided.py:120 +#: flatcamGUI/FlatCAMGUI.py:5965 flatcamTools/ToolDblSided.py:120 msgid "Mirror Axis:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5988 flatcamTools/ToolDblSided.py:122 +#: flatcamGUI/FlatCAMGUI.py:5967 flatcamTools/ToolDblSided.py:122 msgid "Mirror vertically (X) or horizontally (Y)." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:5999 flatcamTools/ToolDblSided.py:133 +#: flatcamGUI/FlatCAMGUI.py:5978 flatcamTools/ToolDblSided.py:133 msgid "Axis Ref:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6001 +#: flatcamGUI/FlatCAMGUI.py:5980 msgid "" "The axis should pass through a point or cut\n" " a specified box (in a Geometry object) in \n" "the middle." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6017 +#: flatcamGUI/FlatCAMGUI.py:5996 msgid "Paint Tool Options" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6024 flatcamGUI/ObjectUI.py:1305 +#: flatcamGUI/FlatCAMGUI.py:6003 flatcamGUI/ObjectUI.py:1305 msgid "" "Creates tool paths to cover the\n" "whole area of a polygon (remove\n" @@ -6728,36 +6730,36 @@ msgid "" "to click on the desired polygon." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6048 +#: flatcamGUI/FlatCAMGUI.py:6027 msgid "" "How much (fraction) of the tool\n" "width to overlap each tool pass." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6102 flatcamTools/ToolPaint.py:237 +#: flatcamGUI/FlatCAMGUI.py:6081 flatcamTools/ToolPaint.py:237 msgid "Selection:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6104 +#: flatcamGUI/FlatCAMGUI.py:6083 msgid "How to select the polygons to paint." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6122 +#: flatcamGUI/FlatCAMGUI.py:6101 msgid "Film Tool Options" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6127 +#: flatcamGUI/FlatCAMGUI.py:6106 msgid "" "Create a PCB film from a Gerber or Geometry\n" "FlatCAM object.\n" "The file is saved in SVG format." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6138 flatcamTools/ToolFilm.py:116 +#: flatcamGUI/FlatCAMGUI.py:6117 flatcamTools/ToolFilm.py:116 msgid "Film Type:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6140 flatcamTools/ToolFilm.py:118 +#: flatcamGUI/FlatCAMGUI.py:6119 flatcamTools/ToolFilm.py:118 msgid "" "Generate a Positive black film or a Negative film.\n" "Positive means that it will print the features\n" @@ -6767,11 +6769,11 @@ msgid "" "The Film format is SVG." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6151 flatcamTools/ToolFilm.py:130 +#: flatcamGUI/FlatCAMGUI.py:6130 flatcamTools/ToolFilm.py:130 msgid "Border:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6153 flatcamTools/ToolFilm.py:132 +#: flatcamGUI/FlatCAMGUI.py:6132 flatcamTools/ToolFilm.py:132 msgid "" "Specify a border around the object.\n" "Only for negative film.\n" @@ -6783,11 +6785,11 @@ msgid "" "surroundings if not for this border." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6166 flatcamTools/ToolFilm.py:144 +#: flatcamGUI/FlatCAMGUI.py:6145 flatcamTools/ToolFilm.py:144 msgid "Scale Stroke:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6168 flatcamTools/ToolFilm.py:146 +#: flatcamGUI/FlatCAMGUI.py:6147 flatcamTools/ToolFilm.py:146 msgid "" "Scale the line stroke thickness of each feature in the SVG file.\n" "It means that the line that envelope each SVG feature will be thicker or " @@ -6795,69 +6797,69 @@ msgid "" "therefore the fine features may be more affected by this parameter." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6183 +#: flatcamGUI/FlatCAMGUI.py:6162 msgid "Panelize Tool Options" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6188 +#: flatcamGUI/FlatCAMGUI.py:6167 msgid "" "Create an object that contains an array of (x, y) elements,\n" "each element is a copy of the source object spaced\n" "at a X distance, Y distance of each other." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6199 flatcamTools/ToolPanelize.py:147 +#: flatcamGUI/FlatCAMGUI.py:6178 flatcamTools/ToolPanelize.py:147 msgid "Spacing cols:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6201 flatcamTools/ToolPanelize.py:149 +#: flatcamGUI/FlatCAMGUI.py:6180 flatcamTools/ToolPanelize.py:149 msgid "" "Spacing between columns of the desired panel.\n" "In current units." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6209 flatcamTools/ToolPanelize.py:156 +#: flatcamGUI/FlatCAMGUI.py:6188 flatcamTools/ToolPanelize.py:156 msgid "Spacing rows:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6211 flatcamTools/ToolPanelize.py:158 +#: flatcamGUI/FlatCAMGUI.py:6190 flatcamTools/ToolPanelize.py:158 msgid "" "Spacing between rows of the desired panel.\n" "In current units." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6219 flatcamTools/ToolPanelize.py:165 +#: flatcamGUI/FlatCAMGUI.py:6198 flatcamTools/ToolPanelize.py:165 msgid "Columns:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6221 flatcamTools/ToolPanelize.py:167 +#: flatcamGUI/FlatCAMGUI.py:6200 flatcamTools/ToolPanelize.py:167 msgid "Number of columns of the desired panel" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6228 flatcamTools/ToolPanelize.py:173 +#: flatcamGUI/FlatCAMGUI.py:6207 flatcamTools/ToolPanelize.py:173 msgid "Rows:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6230 flatcamTools/ToolPanelize.py:175 +#: flatcamGUI/FlatCAMGUI.py:6209 flatcamTools/ToolPanelize.py:175 msgid "Number of rows of the desired panel" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6238 +#: flatcamGUI/FlatCAMGUI.py:6217 msgid "Panel Type:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6240 +#: flatcamGUI/FlatCAMGUI.py:6219 msgid "" "Choose the type of object for the panel object:\n" "- Gerber\n" "- Geometry" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6249 +#: flatcamGUI/FlatCAMGUI.py:6228 msgid "Constrain within:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6251 flatcamTools/ToolPanelize.py:195 +#: flatcamGUI/FlatCAMGUI.py:6230 flatcamTools/ToolPanelize.py:195 msgid "" "Area define by DX and DY within to constrain the panel.\n" "DX and DY values are in current units.\n" @@ -6866,171 +6868,171 @@ msgid "" "they fit completely within selected area." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6260 flatcamTools/ToolPanelize.py:204 +#: flatcamGUI/FlatCAMGUI.py:6239 flatcamTools/ToolPanelize.py:204 msgid "Width (DX):" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6262 flatcamTools/ToolPanelize.py:206 +#: flatcamGUI/FlatCAMGUI.py:6241 flatcamTools/ToolPanelize.py:206 msgid "" "The width (DX) within which the panel must fit.\n" "In current units." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6269 flatcamTools/ToolPanelize.py:212 +#: flatcamGUI/FlatCAMGUI.py:6248 flatcamTools/ToolPanelize.py:212 msgid "Height (DY):" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6271 flatcamTools/ToolPanelize.py:214 +#: flatcamGUI/FlatCAMGUI.py:6250 flatcamTools/ToolPanelize.py:214 msgid "" "The height (DY)within which the panel must fit.\n" "In current units." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6285 +#: flatcamGUI/FlatCAMGUI.py:6264 msgid "Calculators Tool Options" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6288 +#: flatcamGUI/FlatCAMGUI.py:6267 msgid "V-Shape Tool Calculator:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6290 +#: flatcamGUI/FlatCAMGUI.py:6269 msgid "" "Calculate the tool diameter for a given V-shape tool,\n" "having the tip diameter, tip angle and\n" "depth-of-cut as parameters." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6301 flatcamTools/ToolCalculators.py:94 +#: flatcamGUI/FlatCAMGUI.py:6280 flatcamTools/ToolCalculators.py:94 msgid "Tip Diameter:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6303 +#: flatcamGUI/FlatCAMGUI.py:6282 msgid "" "This is the tool tip diameter.\n" "It is specified by manufacturer." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6311 +#: flatcamGUI/FlatCAMGUI.py:6290 msgid "Tip angle:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6313 +#: flatcamGUI/FlatCAMGUI.py:6292 msgid "" "This is the angle on the tip of the tool.\n" "It is specified by manufacturer." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6323 +#: flatcamGUI/FlatCAMGUI.py:6302 msgid "" "This is depth to cut into material.\n" "In the CNCJob object it is the CutZ parameter." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6330 +#: flatcamGUI/FlatCAMGUI.py:6309 msgid "ElectroPlating Calculator:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6332 flatcamTools/ToolCalculators.py:152 +#: flatcamGUI/FlatCAMGUI.py:6311 flatcamTools/ToolCalculators.py:152 msgid "" "This calculator is useful for those who plate the via/pad/drill holes,\n" "using a method like grahite ink or calcium hypophosphite ink or palladium " "chloride." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6342 flatcamTools/ToolCalculators.py:161 +#: flatcamGUI/FlatCAMGUI.py:6321 flatcamTools/ToolCalculators.py:161 msgid "Board Length:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6344 flatcamTools/ToolCalculators.py:165 +#: flatcamGUI/FlatCAMGUI.py:6323 flatcamTools/ToolCalculators.py:165 msgid "This is the board length. In centimeters." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6350 flatcamTools/ToolCalculators.py:167 +#: flatcamGUI/FlatCAMGUI.py:6329 flatcamTools/ToolCalculators.py:167 msgid "Board Width:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6352 flatcamTools/ToolCalculators.py:171 +#: flatcamGUI/FlatCAMGUI.py:6331 flatcamTools/ToolCalculators.py:171 msgid "This is the board width.In centimeters." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6357 flatcamTools/ToolCalculators.py:173 +#: flatcamGUI/FlatCAMGUI.py:6336 flatcamTools/ToolCalculators.py:173 msgid "Current Density:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6360 flatcamTools/ToolCalculators.py:177 +#: flatcamGUI/FlatCAMGUI.py:6339 flatcamTools/ToolCalculators.py:177 msgid "" "Current density to pass through the board. \n" "In Amps per Square Feet ASF." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6366 flatcamTools/ToolCalculators.py:181 +#: flatcamGUI/FlatCAMGUI.py:6345 flatcamTools/ToolCalculators.py:181 msgid "Copper Growth:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6369 flatcamTools/ToolCalculators.py:185 +#: flatcamGUI/FlatCAMGUI.py:6348 flatcamTools/ToolCalculators.py:185 msgid "" "How thick the copper growth is intended to be.\n" "In microns." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6382 +#: flatcamGUI/FlatCAMGUI.py:6361 msgid "Transform Tool Options" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6387 +#: flatcamGUI/FlatCAMGUI.py:6366 msgid "" "Various transformations that can be applied\n" "on a FlatCAM object." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6397 +#: flatcamGUI/FlatCAMGUI.py:6376 msgid "Rotate Angle:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6399 +#: flatcamGUI/FlatCAMGUI.py:6378 msgid "Angle for rotation. In degrees." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6406 +#: flatcamGUI/FlatCAMGUI.py:6385 msgid "Skew_X angle:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6408 +#: flatcamGUI/FlatCAMGUI.py:6387 msgid "Angle for Skew/Shear on X axis. In degrees." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6415 +#: flatcamGUI/FlatCAMGUI.py:6394 msgid "Skew_Y angle:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6417 +#: flatcamGUI/FlatCAMGUI.py:6396 msgid "Angle for Skew/Shear on Y axis. In degrees." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6424 +#: flatcamGUI/FlatCAMGUI.py:6403 msgid "Scale_X factor:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6426 +#: flatcamGUI/FlatCAMGUI.py:6405 msgid "Factor for scaling on X axis." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6433 +#: flatcamGUI/FlatCAMGUI.py:6412 msgid "Scale_Y factor:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6435 +#: flatcamGUI/FlatCAMGUI.py:6414 msgid "Factor for scaling on Y axis." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6443 +#: flatcamGUI/FlatCAMGUI.py:6422 msgid "" "Scale the selected object(s)\n" "using the Scale_X factor for both axis." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6451 flatcamTools/ToolTransform.py:210 +#: flatcamGUI/FlatCAMGUI.py:6430 flatcamTools/ToolTransform.py:210 msgid "" "Scale the selected object(s)\n" "using the origin reference when checked,\n" @@ -7038,27 +7040,27 @@ msgid "" "of the selected objects when unchecked." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6460 +#: flatcamGUI/FlatCAMGUI.py:6439 msgid "Offset_X val:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6462 +#: flatcamGUI/FlatCAMGUI.py:6441 msgid "Distance to offset on X axis. In current units." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6469 +#: flatcamGUI/FlatCAMGUI.py:6448 msgid "Offset_Y val:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6471 +#: flatcamGUI/FlatCAMGUI.py:6450 msgid "Distance to offset on Y axis. In current units." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6477 +#: flatcamGUI/FlatCAMGUI.py:6456 msgid "Mirror Reference" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6479 flatcamTools/ToolTransform.py:314 +#: flatcamGUI/FlatCAMGUI.py:6458 flatcamTools/ToolTransform.py:314 msgid "" "Flip the selected object(s)\n" "around the point in Point Entry Field.\n" @@ -7071,174 +7073,174 @@ msgid "" "Point Entry field and click Flip on X(Y)" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6490 +#: flatcamGUI/FlatCAMGUI.py:6469 msgid " Mirror Ref. Point:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6492 flatcamTools/ToolTransform.py:327 +#: flatcamGUI/FlatCAMGUI.py:6471 flatcamTools/ToolTransform.py:327 msgid "" "Coordinates in format (x, y) used as reference for mirroring.\n" "The 'x' in (x, y) will be used when using Flip on X and\n" "the 'y' in (x, y) will be used when using Flip on Y and" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6509 +#: flatcamGUI/FlatCAMGUI.py:6488 msgid "SolderPaste Tool Options" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6514 +#: flatcamGUI/FlatCAMGUI.py:6493 msgid "" "A tool to create GCode for dispensing\n" "solder paste onto a PCB." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6525 +#: flatcamGUI/FlatCAMGUI.py:6504 msgid "Diameters of nozzle tools, separated by ','" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6532 +#: flatcamGUI/FlatCAMGUI.py:6511 msgid "New Nozzle Dia:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6534 flatcamTools/ToolSolderPaste.py:103 +#: flatcamGUI/FlatCAMGUI.py:6513 flatcamTools/ToolSolderPaste.py:103 msgid "Diameter for the new Nozzle tool to add in the Tool Table" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6542 flatcamTools/ToolSolderPaste.py:166 +#: flatcamGUI/FlatCAMGUI.py:6521 flatcamTools/ToolSolderPaste.py:166 msgid "Z Dispense Start:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6544 flatcamTools/ToolSolderPaste.py:168 +#: flatcamGUI/FlatCAMGUI.py:6523 flatcamTools/ToolSolderPaste.py:168 msgid "The height (Z) when solder paste dispensing starts." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6551 flatcamTools/ToolSolderPaste.py:174 +#: flatcamGUI/FlatCAMGUI.py:6530 flatcamTools/ToolSolderPaste.py:174 msgid "Z Dispense:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6553 flatcamTools/ToolSolderPaste.py:176 +#: flatcamGUI/FlatCAMGUI.py:6532 flatcamTools/ToolSolderPaste.py:176 msgid "The height (Z) when doing solder paste dispensing." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6560 flatcamTools/ToolSolderPaste.py:183 +#: flatcamGUI/FlatCAMGUI.py:6539 flatcamTools/ToolSolderPaste.py:183 msgid "Z Dispense Stop:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6562 flatcamTools/ToolSolderPaste.py:185 +#: flatcamGUI/FlatCAMGUI.py:6541 flatcamTools/ToolSolderPaste.py:185 msgid "The height (Z) when solder paste dispensing stops." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6569 flatcamTools/ToolSolderPaste.py:191 +#: flatcamGUI/FlatCAMGUI.py:6548 flatcamTools/ToolSolderPaste.py:191 msgid "Z Travel:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6571 flatcamTools/ToolSolderPaste.py:193 +#: flatcamGUI/FlatCAMGUI.py:6550 flatcamTools/ToolSolderPaste.py:193 msgid "" "The height (Z) for travel between pads\n" "(without dispensing solder paste)." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6579 flatcamTools/ToolSolderPaste.py:200 +#: flatcamGUI/FlatCAMGUI.py:6558 flatcamTools/ToolSolderPaste.py:200 msgid "Z Toolchange:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6581 flatcamTools/ToolSolderPaste.py:202 +#: flatcamGUI/FlatCAMGUI.py:6560 flatcamTools/ToolSolderPaste.py:202 msgid "The height (Z) for tool (nozzle) change." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6588 flatcamTools/ToolSolderPaste.py:208 +#: flatcamGUI/FlatCAMGUI.py:6567 flatcamTools/ToolSolderPaste.py:208 msgid "XY Toolchange:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6590 flatcamTools/ToolSolderPaste.py:210 +#: flatcamGUI/FlatCAMGUI.py:6569 flatcamTools/ToolSolderPaste.py:210 msgid "" "The X,Y location for tool (nozzle) change.\n" "The format is (x, y) where x and y are real numbers." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6598 flatcamTools/ToolSolderPaste.py:217 +#: flatcamGUI/FlatCAMGUI.py:6577 flatcamTools/ToolSolderPaste.py:217 msgid "Feedrate X-Y:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6600 flatcamTools/ToolSolderPaste.py:219 +#: flatcamGUI/FlatCAMGUI.py:6579 flatcamTools/ToolSolderPaste.py:219 msgid "Feedrate (speed) while moving on the X-Y plane." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6607 flatcamTools/ToolSolderPaste.py:225 +#: flatcamGUI/FlatCAMGUI.py:6586 flatcamTools/ToolSolderPaste.py:225 msgid "Feedrate Z:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6609 flatcamTools/ToolSolderPaste.py:227 +#: flatcamGUI/FlatCAMGUI.py:6588 flatcamTools/ToolSolderPaste.py:227 msgid "" "Feedrate (speed) while moving vertically\n" "(on Z plane)." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6617 flatcamTools/ToolSolderPaste.py:234 +#: flatcamGUI/FlatCAMGUI.py:6596 flatcamTools/ToolSolderPaste.py:234 msgid "Feedrate Z Dispense:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6619 +#: flatcamGUI/FlatCAMGUI.py:6598 msgid "" "Feedrate (speed) while moving up vertically\n" "to Dispense position (on Z plane)." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6627 flatcamTools/ToolSolderPaste.py:243 +#: flatcamGUI/FlatCAMGUI.py:6606 flatcamTools/ToolSolderPaste.py:243 msgid "Spindle Speed FWD:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6629 flatcamTools/ToolSolderPaste.py:245 +#: flatcamGUI/FlatCAMGUI.py:6608 flatcamTools/ToolSolderPaste.py:245 msgid "" "The dispenser speed while pushing solder paste\n" "through the dispenser nozzle." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6637 flatcamTools/ToolSolderPaste.py:252 +#: flatcamGUI/FlatCAMGUI.py:6616 flatcamTools/ToolSolderPaste.py:252 msgid "Dwell FWD:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6639 flatcamTools/ToolSolderPaste.py:254 +#: flatcamGUI/FlatCAMGUI.py:6618 flatcamTools/ToolSolderPaste.py:254 msgid "Pause after solder dispensing." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6646 flatcamTools/ToolSolderPaste.py:260 +#: flatcamGUI/FlatCAMGUI.py:6625 flatcamTools/ToolSolderPaste.py:260 msgid "Spindle Speed REV:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6648 flatcamTools/ToolSolderPaste.py:262 +#: flatcamGUI/FlatCAMGUI.py:6627 flatcamTools/ToolSolderPaste.py:262 msgid "" "The dispenser speed while retracting solder paste\n" "through the dispenser nozzle." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6656 flatcamTools/ToolSolderPaste.py:269 +#: flatcamGUI/FlatCAMGUI.py:6635 flatcamTools/ToolSolderPaste.py:269 msgid "Dwell REV:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6658 flatcamTools/ToolSolderPaste.py:271 +#: flatcamGUI/FlatCAMGUI.py:6637 flatcamTools/ToolSolderPaste.py:271 msgid "" "Pause after solder paste dispenser retracted,\n" "to allow pressure equilibrium." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6665 flatcamTools/ToolSolderPaste.py:277 +#: flatcamGUI/FlatCAMGUI.py:6644 flatcamTools/ToolSolderPaste.py:277 msgid "PostProcessors:" msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6667 flatcamTools/ToolSolderPaste.py:279 +#: flatcamGUI/FlatCAMGUI.py:6646 flatcamTools/ToolSolderPaste.py:279 msgid "Files that control the GCode generation." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6697 flatcamGUI/FlatCAMGUI.py:6703 +#: flatcamGUI/FlatCAMGUI.py:6676 flatcamGUI/FlatCAMGUI.py:6682 msgid "Idle." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6727 +#: flatcamGUI/FlatCAMGUI.py:6706 msgid "Application started ..." msgstr "" -#: flatcamGUI/FlatCAMGUI.py:6728 +#: flatcamGUI/FlatCAMGUI.py:6707 msgid "Hello!" msgstr "" @@ -9139,11 +9141,11 @@ msgstr "" msgid "[ERROR_NOTCL] PaintTool.paint_poly() --> %s" msgstr "" -#: flatcamTools/ToolPaint.py:970 flatcamTools/ToolPaint.py:1263 +#: flatcamTools/ToolPaint.py:970 flatcamTools/ToolPaint.py:1267 msgid "Polygon Paint started ..." msgstr "" -#: flatcamTools/ToolPaint.py:1119 flatcamTools/ToolPaint.py:1208 +#: flatcamTools/ToolPaint.py:1123 flatcamTools/ToolPaint.py:1212 #, python-format msgid "" "[ERROR] Could not do Paint All. Try a different combination of parameters. " @@ -9151,7 +9153,7 @@ msgid "" "%s" msgstr "" -#: flatcamTools/ToolPaint.py:1143 +#: flatcamTools/ToolPaint.py:1147 msgid "" "[ERROR] There is no Painting Geometry in the file.\n" "Usually it means that the tool diameter is too big for the painted " @@ -9159,11 +9161,11 @@ msgid "" "Change the painting parameters and try again." msgstr "" -#: flatcamTools/ToolPaint.py:1152 +#: flatcamTools/ToolPaint.py:1156 msgid "[success] Paint All Done." msgstr "" -#: flatcamTools/ToolPaint.py:1238 +#: flatcamTools/ToolPaint.py:1242 msgid "" "[ERROR_NOTCL] There is no Painting Geometry in the file.\n" "Usually it means that the tool diameter is too big for the painted " @@ -9171,7 +9173,7 @@ msgid "" "Change the painting parameters and try again." msgstr "" -#: flatcamTools/ToolPaint.py:1247 +#: flatcamTools/ToolPaint.py:1251 msgid "[success] Paint All with Rest-Machining done." msgstr ""