- fixed units conversion issue

- updated the units conversion method to convert all the convertible parameters in the Preferences
This commit is contained in:
Marius Stanciu
2020-04-29 19:05:18 +03:00
committed by Marius
parent 027f648586
commit a233d49bd9
4 changed files with 90 additions and 22 deletions

View File

@@ -21,6 +21,8 @@ CHANGELOG for FlatCAM beta
- fixed a SyntaxError Exception when checking for types of found old preferences - fixed a SyntaxError Exception when checking for types of found old preferences
- updated the French, German and Spanish Google translations - updated the French, German and Spanish Google translations
- updated the Romanian translation - updated the Romanian translation
- fixed units conversion issue
- updated the units conversion method to convert all the convertible parameters in the Preferences
28.04.2020 28.04.2020

View File

@@ -95,6 +95,7 @@ import builtins
if sys.platform == 'win32': if sys.platform == 'win32':
import winreg import winreg
from win32comext.shell import shell, shellcon
fcTranslate.apply_language('strings') fcTranslate.apply_language('strings')
if '_' not in builtins.__dict__: if '_' not in builtins.__dict__:
@@ -304,7 +305,6 @@ class App(QtCore.QObject):
# Folder for user settings. # Folder for user settings.
if sys.platform == 'win32': if sys.platform == 'win32':
from win32comext.shell import shell, shellcon
if platform.architecture()[0] == '32bit': if platform.architecture()[0] == '32bit':
App.log.debug("Win32!") App.log.debug("Win32!")
else: else:
@@ -4225,54 +4225,92 @@ class App(QtCore.QObject):
return return
# Options to scale # Options to scale
dimensions = ['gerber_isotooldia', 'gerber_noncoppermargin', 'gerber_bboxmargin', "gerber_isooverlap", dimensions = ['gerber_isotooldia', 'gerber_noncoppermargin', 'gerber_bboxmargin',
"gerber_editor_newsize", "gerber_editor_lin_pitch", "gerber_editor_buff_f", "gerber_editor_newsize", "gerber_editor_lin_pitch", "gerber_editor_buff_f", "gerber_vtipdia",
"gerber_vcutz", "gerber_editor_newdim", "gerber_editor_ma_low",
"gerber_editor_ma_high",
'excellon_cutz', 'excellon_travelz', "excellon_toolchangexy", 'excellon_offset', 'excellon_cutz', 'excellon_travelz', "excellon_toolchangexy", 'excellon_offset',
'excellon_feedrate', 'excellon_feedrate_rapid', 'excellon_toolchangez', 'excellon_feedrate_z', 'excellon_feedrate_rapid', 'excellon_toolchangez',
'excellon_tooldia', 'excellon_slot_tooldia', 'excellon_endz', 'excellon_endxy', 'excellon_tooldia', 'excellon_slot_tooldia', 'excellon_endz', 'excellon_endxy',
"excellon_feedrate_probe", "excellon_feedrate_probe", "excellon_milling_dia",
"excellon_z_pdepth", "excellon_editor_newdia", "excellon_editor_lin_pitch", "excellon_z_pdepth", "excellon_editor_newdia", "excellon_editor_lin_pitch",
"excellon_editor_slot_lin_pitch", "excellon_editor_slot_lin_pitch", "excellon_editor_slot_length",
'geometry_cutz', "geometry_depthperpass", 'geometry_travelz', 'geometry_feedrate', 'geometry_cutz', "geometry_depthperpass", 'geometry_travelz', 'geometry_feedrate',
'geometry_feedrate_rapid', "geometry_toolchangez", "geometry_feedrate_z", 'geometry_feedrate_rapid', "geometry_toolchangez", "geometry_feedrate_z",
"geometry_toolchangexy", 'geometry_cnctooldia', 'geometry_endz', 'geometry_endxy', "geometry_toolchangexy", 'geometry_cnctooldia', 'geometry_endz', 'geometry_endxy',
"geometry_z_pdepth", "geometry_extracut_length", "geometry_z_pdepth",
"geometry_feedrate_probe", "geometry_startz", "geometry_feedrate_probe", "geometry_startz", "geometry_segx", "geometry_segy",
'cncjob_tooldia', 'cncjob_tooldia',
'tools_paintmargin', 'tools_painttooldia', 'tools_paintoverlap', 'tools_paintmargin', 'tools_painttooldia', "tools_paintcutz", "tools_painttipdia",
"tools_ncctools", "tools_nccoverlap", "tools_nccmargin", "tools_ncccutz", "tools_ncctipdia", "tools_paintnewdia",
"tools_nccnewdia",
"tools_2sided_drilldia", "tools_film_boundary", "tools_ncctools", "tools_nccmargin", "tools_ncccutz", "tools_ncctipdia",
"tools_cutouttooldia", 'tools_cutoutmargin', 'tools_cutoutgapsize', "tools_nccnewdia", "tools_ncc_offset_value",
"tools_panelize_constrainx", "tools_panelize_constrainy",
"tools_2sided_drilldia",
"tools_film_boundary", "tools_film_scale_stroke",
"tools_cutouttooldia", 'tools_cutoutmargin', 'tools_cutoutgapsize', "tools_cutout_z",
"tools_cutout_depthperpass",
"tools_panelize_constrainx", "tools_panelize_constrainy", "tools_panelize_spacing_columns",
"tools_panelize_spacing_rows",
"tools_calc_vshape_tip_dia", "tools_calc_vshape_cut_z", "tools_calc_vshape_tip_dia", "tools_calc_vshape_cut_z",
"tools_transform_skew_x", "tools_transform_skew_y", "tools_transform_offset_x",
"tools_transform_offset_y", "tools_transform_offset_x", "tools_transform_offset_y", "tools_transform_mirror_point",
"tools_transform_buffer_dis",
"tools_solderpaste_tools", "tools_solderpaste_new", "tools_solderpaste_z_start", "tools_solderpaste_tools", "tools_solderpaste_new", "tools_solderpaste_z_start",
"tools_solderpaste_z_dispense", "tools_solderpaste_z_stop", "tools_solderpaste_z_travel", "tools_solderpaste_z_dispense", "tools_solderpaste_z_stop", "tools_solderpaste_z_travel",
"tools_solderpaste_z_toolchange", "tools_solderpaste_xy_toolchange", "tools_solderpaste_frxy", "tools_solderpaste_z_toolchange", "tools_solderpaste_xy_toolchange", "tools_solderpaste_frxy",
"tools_solderpaste_frz", "tools_solderpaste_frz_dispense", "tools_solderpaste_frz", "tools_solderpaste_frz_dispense",
"tools_cr_trace_size_val", "tools_cr_c2c_val", "tools_cr_c2o_val", "tools_cr_s2s_val", "tools_cr_trace_size_val", "tools_cr_c2c_val", "tools_cr_c2o_val", "tools_cr_s2s_val",
"tools_cr_s2sm_val", "tools_cr_s2o_val", "tools_cr_sm2sm_val", "tools_cr_ri_val", "tools_cr_s2sm_val", "tools_cr_s2o_val", "tools_cr_sm2sm_val", "tools_cr_ri_val",
"tools_cr_h2h_val", "tools_cr_dh_val", "tools_fiducials_dia", "tools_fiducials_margin", "tools_cr_h2h_val", "tools_cr_dh_val",
"tools_fiducials_line_thickness",
"tools_fiducials_dia", "tools_fiducials_margin", "tools_fiducials_line_thickness",
"tools_copper_thieving_clearance", "tools_copper_thieving_margin", "tools_copper_thieving_clearance", "tools_copper_thieving_margin",
"tools_copper_thieving_dots_dia", "tools_copper_thieving_dots_spacing", "tools_copper_thieving_dots_dia", "tools_copper_thieving_dots_spacing",
"tools_copper_thieving_squares_size", "tools_copper_thieving_squares_spacing", "tools_copper_thieving_squares_size", "tools_copper_thieving_squares_spacing",
"tools_copper_thieving_lines_size", "tools_copper_thieving_lines_spacing", "tools_copper_thieving_lines_size", "tools_copper_thieving_lines_spacing",
"tools_copper_thieving_rb_margin", "tools_copper_thieving_rb_thickness", "tools_copper_thieving_rb_margin", "tools_copper_thieving_rb_thickness",
"tools_copper_thieving_mask_clearance",
"tools_cal_travelz", "tools_cal_verz", "tools_cal_toolchangez", "tools_cal_toolchange_xy",
"tools_edrills_hole_fixed_dia", "tools_edrills_circular_ring", "tools_edrills_oblong_ring",
"tools_edrills_square_ring", "tools_edrills_rectangular_ring", "tools_edrills_others_ring",
"tools_punch_hole_fixed_dia", "tools_punch_circular_ring", "tools_punch_oblong_ring",
"tools_punch_square_ring", "tools_punch_rectangular_ring", "tools_punch_others_ring",
"tools_invert_margin",
'global_gridx', 'global_gridy', 'global_snap_max', "global_tolerance", 'global_gridx', 'global_gridy', 'global_snap_max', "global_tolerance",
'global_tpdf_bmargin', 'global_tpdf_tmargin', 'global_tpdf_rmargin', 'global_tpdf_lmargin'] 'global_tpdf_bmargin', 'global_tpdf_tmargin', 'global_tpdf_rmargin', 'global_tpdf_lmargin']
def scale_defaults(sfactor): def scale_defaults(sfactor):
for dim in dimensions: for dim in dimensions:
if dim == 'gerber_editor_newdim':
if self.defaults["gerber_editor_newdim"] is None or self.defaults["gerber_editor_newdim"] == '':
continue
coordinates = self.defaults["gerber_editor_newdim"].split(",")
coords_xy = [float(eval(a)) for a in coordinates if a != '']
coords_xy[0] *= sfactor
coords_xy[1] *= sfactor
self.defaults['gerber_editor_newdim'] = "%.*f, %.*f" % (self.decimals, coords_xy[0],
self.decimals, coords_xy[1])
if dim == 'excellon_toolchangexy': if dim == 'excellon_toolchangexy':
if self.defaults["excellon_toolchangexy"] is None or self.defaults["excellon_toolchangexy"] == '':
continue
coordinates = self.defaults["excellon_toolchangexy"].split(",") coordinates = self.defaults["excellon_toolchangexy"].split(",")
coords_xy = [float(eval(a)) for a in coordinates if a != ''] coords_xy = [float(eval(a)) for a in coordinates if a != '']
coords_xy[0] *= sfactor coords_xy[0] *= sfactor
@@ -4280,6 +4318,8 @@ class App(QtCore.QObject):
self.defaults['excellon_toolchangexy'] = "%.*f, %.*f" % (self.decimals, coords_xy[0], self.defaults['excellon_toolchangexy'] = "%.*f, %.*f" % (self.decimals, coords_xy[0],
self.decimals, coords_xy[1]) self.decimals, coords_xy[1])
elif dim == 'geometry_toolchangexy': elif dim == 'geometry_toolchangexy':
if self.defaults["geometry_toolchangexy"] is None or self.defaults["geometry_toolchangexy"] == '':
continue
coordinates = self.defaults["geometry_toolchangexy"].split(",") coordinates = self.defaults["geometry_toolchangexy"].split(",")
coords_xy = [float(eval(a)) for a in coordinates if a != ''] coords_xy = [float(eval(a)) for a in coordinates if a != '']
coords_xy[0] *= sfactor coords_xy[0] *= sfactor
@@ -4287,6 +4327,9 @@ class App(QtCore.QObject):
self.defaults['geometry_toolchangexy'] = "%.*f, %.*f" % (self.decimals, coords_xy[0], self.defaults['geometry_toolchangexy'] = "%.*f, %.*f" % (self.decimals, coords_xy[0],
self.decimals, coords_xy[1]) self.decimals, coords_xy[1])
elif dim == 'excellon_endxy': elif dim == 'excellon_endxy':
if self.defaults["excellon_endxy"] is None or self.defaults["excellon_endxy"] == '':
continue
coordinates = self.defaults["excellon_endxy"].split(",") coordinates = self.defaults["excellon_endxy"].split(",")
end_coords_xy = [float(eval(a)) for a in coordinates if a != ''] end_coords_xy = [float(eval(a)) for a in coordinates if a != '']
end_coords_xy[0] *= sfactor end_coords_xy[0] *= sfactor
@@ -4294,14 +4337,19 @@ class App(QtCore.QObject):
self.defaults['excellon_endxy'] = "%.*f, %.*f" % (self.decimals, end_coords_xy[0], self.defaults['excellon_endxy'] = "%.*f, %.*f" % (self.decimals, end_coords_xy[0],
self.decimals, end_coords_xy[1]) self.decimals, end_coords_xy[1])
elif dim == 'geometry_endxy': elif dim == 'geometry_endxy':
if self.defaults["geometry_endxy"] is None or self.defaults["geometry_endxy"] == '':
continue
coordinates = self.defaults["geometry_endxy"].split(",") coordinates = self.defaults["geometry_endxy"].split(",")
end_coords_xy = [float(eval(a)) for a in coordinates if a != ''] end_coords_xy = [float(eval(a)) for a in coordinates if a != '']
end_coords_xy[0] *= sfactor end_coords_xy[0] *= sfactor
end_coords_xy[1] *= sfactor end_coords_xy[1] *= sfactor
self.defaults['geometry_endxy'] = "%.*f, %.*f" % (self.decimals, end_coords_xy[0], self.defaults['geometry_endxy'] = "%.*f, %.*f" % (self.decimals, end_coords_xy[0],
self.decimals, end_coords_xy[1]) self.decimals, end_coords_xy[1])
elif dim == 'geometry_cnctooldia': elif dim == 'geometry_cnctooldia':
if type(self.defaults["geometry_cnctooldia"]) == float: if self.defaults["geometry_cnctooldia"] is None or self.defaults["geometry_cnctooldia"] == '':
continue
if type(self.defaults["geometry_cnctooldia"]) is float:
tools_diameters = [self.defaults["geometry_cnctooldia"]] tools_diameters = [self.defaults["geometry_cnctooldia"]]
else: else:
try: try:
@@ -4316,6 +4364,8 @@ class App(QtCore.QObject):
tools_diameters[t] *= sfactor tools_diameters[t] *= sfactor
self.defaults['geometry_cnctooldia'] += "%.*f," % (self.decimals, tools_diameters[t]) self.defaults['geometry_cnctooldia'] += "%.*f," % (self.decimals, tools_diameters[t])
elif dim == 'tools_ncctools': elif dim == 'tools_ncctools':
if self.defaults["tools_ncctools"] is None or self.defaults["tools_ncctools"] == '':
continue
if type(self.defaults["tools_ncctools"]) == float: if type(self.defaults["tools_ncctools"]) == float:
ncctools = [self.defaults["tools_ncctools"]] ncctools = [self.defaults["tools_ncctools"]]
else: else:
@@ -4331,6 +4381,9 @@ class App(QtCore.QObject):
ncctools[t] *= sfactor ncctools[t] *= sfactor
self.defaults['tools_ncctools'] += "%.*f," % (self.decimals, ncctools[t]) self.defaults['tools_ncctools'] += "%.*f," % (self.decimals, ncctools[t])
elif dim == 'tools_solderpaste_tools': elif dim == 'tools_solderpaste_tools':
if self.defaults["tools_solderpaste_tools"] is None or \
self.defaults["tools_solderpaste_tools"] == '':
continue
if type(self.defaults["tools_solderpaste_tools"]) == float: if type(self.defaults["tools_solderpaste_tools"]) == float:
sptools = [self.defaults["tools_solderpaste_tools"]] sptools = [self.defaults["tools_solderpaste_tools"]]
else: else:
@@ -4346,6 +4399,9 @@ class App(QtCore.QObject):
sptools[t] *= sfactor sptools[t] *= sfactor
self.defaults['tools_solderpaste_tools'] += "%.*f," % (self.decimals, sptools[t]) self.defaults['tools_solderpaste_tools'] += "%.*f," % (self.decimals, sptools[t])
elif dim == 'tools_solderpaste_xy_toolchange': elif dim == 'tools_solderpaste_xy_toolchange':
if self.defaults["tools_solderpaste_xy_toolchange"] is None or \
self.defaults["tools_solderpaste_xy_toolchange"] == '':
continue
try: try:
coordinates = self.defaults["tools_solderpaste_xy_toolchange"].split(",") coordinates = self.defaults["tools_solderpaste_xy_toolchange"].split(",")
sp_coords = [float(eval(a)) for a in coordinates if a != ''] sp_coords = [float(eval(a)) for a in coordinates if a != '']
@@ -4356,6 +4412,16 @@ class App(QtCore.QObject):
except Exception as e: except Exception as e:
log.debug("App.on_toggle_units().scale_options() --> %s" % str(e)) log.debug("App.on_toggle_units().scale_options() --> %s" % str(e))
continue continue
elif dim == 'tools_cal_toolchange_xy':
if self.defaults["tools_cal_toolchange_xy"] is None or \
self.defaults["tools_cal_toolchange_xy"] == '':
continue
coordinates = self.defaults["tools_cal_toolchange_xy"].split(",")
end_coords_xy = [float(eval(a)) for a in coordinates if a != '']
end_coords_xy[0] *= sfactor
end_coords_xy[1] *= sfactor
self.defaults['tools_cal_toolchange_xy'] = "%.*f, %.*f" % (self.decimals, end_coords_xy[0],
self.decimals, end_coords_xy[1])
elif dim == 'global_gridx' or dim == 'global_gridy': elif dim == 'global_gridx' or dim == 'global_gridy':
if new_units == 'IN': if new_units == 'IN':

View File

@@ -457,8 +457,8 @@ class FlatCAMDefaults:
"tools_film_pagesize": 'A4', "tools_film_pagesize": 'A4',
# Panel Tool # Panel Tool
"tools_panelize_spacing_columns": 0, "tools_panelize_spacing_columns": 0.0,
"tools_panelize_spacing_rows": 0, "tools_panelize_spacing_rows": 0.0,
"tools_panelize_columns": 1, "tools_panelize_columns": 1,
"tools_panelize_rows": 1, "tools_panelize_rows": 1,
"tools_panelize_constrain": False, "tools_panelize_constrain": False,

View File

@@ -58,7 +58,7 @@ if platform.architecture()[0] == '64bit':
include_files.append(("locale", "lib/locale")) include_files.append(("locale", "lib/locale"))
include_files.append(("preprocessors", "lib/preprocessors")) include_files.append(("preprocessors", "lib/preprocessors"))
include_files.append(("assets", "lib/assets")) # include_files.append(("assets", "lib/assets"))
include_files.append(("assets/examples", "lib/assets/examples")) include_files.append(("assets/examples", "lib/assets/examples"))
include_files.append(("assets/linux", "lib/assets/linux")) include_files.append(("assets/linux", "lib/assets/linux"))
include_files.append(("assets/resources", "lib/assets/resources")) include_files.append(("assets/resources", "lib/assets/resources"))