- 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
- updated the French, German and Spanish Google translations
- 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

View File

@ -95,6 +95,7 @@ import builtins
if sys.platform == 'win32':
import winreg
from win32comext.shell import shell, shellcon
fcTranslate.apply_language('strings')
if '_' not in builtins.__dict__:
@ -304,7 +305,6 @@ class App(QtCore.QObject):
# Folder for user settings.
if sys.platform == 'win32':
from win32comext.shell import shell, shellcon
if platform.architecture()[0] == '32bit':
App.log.debug("Win32!")
else:
@ -4225,54 +4225,92 @@ class App(QtCore.QObject):
return
# Options to scale
dimensions = ['gerber_isotooldia', 'gerber_noncoppermargin', 'gerber_bboxmargin', "gerber_isooverlap",
"gerber_editor_newsize", "gerber_editor_lin_pitch", "gerber_editor_buff_f",
dimensions = ['gerber_isotooldia', 'gerber_noncoppermargin', 'gerber_bboxmargin',
"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_feedrate', 'excellon_feedrate_rapid', 'excellon_toolchangez',
'excellon_feedrate_z', 'excellon_feedrate_rapid', 'excellon_toolchangez',
'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_editor_slot_lin_pitch",
"excellon_editor_slot_lin_pitch", "excellon_editor_slot_length",
'geometry_cutz', "geometry_depthperpass", 'geometry_travelz', 'geometry_feedrate',
'geometry_feedrate_rapid', "geometry_toolchangez", "geometry_feedrate_z",
"geometry_toolchangexy", 'geometry_cnctooldia', 'geometry_endz', 'geometry_endxy',
"geometry_z_pdepth",
"geometry_feedrate_probe", "geometry_startz",
"geometry_extracut_length", "geometry_z_pdepth",
"geometry_feedrate_probe", "geometry_startz", "geometry_segx", "geometry_segy",
'cncjob_tooldia',
'tools_paintmargin', 'tools_painttooldia', 'tools_paintoverlap',
"tools_ncctools", "tools_nccoverlap", "tools_nccmargin", "tools_ncccutz", "tools_ncctipdia",
"tools_nccnewdia",
"tools_2sided_drilldia", "tools_film_boundary",
"tools_cutouttooldia", 'tools_cutoutmargin', 'tools_cutoutgapsize',
"tools_panelize_constrainx", "tools_panelize_constrainy",
'tools_paintmargin', 'tools_painttooldia', "tools_paintcutz", "tools_painttipdia",
"tools_paintnewdia",
"tools_ncctools", "tools_nccmargin", "tools_ncccutz", "tools_ncctipdia",
"tools_nccnewdia", "tools_ncc_offset_value",
"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_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_z_dispense", "tools_solderpaste_z_stop", "tools_solderpaste_z_travel",
"tools_solderpaste_z_toolchange", "tools_solderpaste_xy_toolchange", "tools_solderpaste_frxy",
"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_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_fiducials_line_thickness",
"tools_cr_h2h_val", "tools_cr_dh_val",
"tools_fiducials_dia", "tools_fiducials_margin", "tools_fiducials_line_thickness",
"tools_copper_thieving_clearance", "tools_copper_thieving_margin",
"tools_copper_thieving_dots_dia", "tools_copper_thieving_dots_spacing",
"tools_copper_thieving_squares_size", "tools_copper_thieving_squares_spacing",
"tools_copper_thieving_lines_size", "tools_copper_thieving_lines_spacing",
"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_tpdf_bmargin', 'global_tpdf_tmargin', 'global_tpdf_rmargin', 'global_tpdf_lmargin']
def scale_defaults(sfactor):
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 self.defaults["excellon_toolchangexy"] is None or self.defaults["excellon_toolchangexy"] == '':
continue
coordinates = self.defaults["excellon_toolchangexy"].split(",")
coords_xy = [float(eval(a)) for a in coordinates if a != '']
coords_xy[0] *= sfactor
@ -4280,6 +4318,8 @@ class App(QtCore.QObject):
self.defaults['excellon_toolchangexy'] = "%.*f, %.*f" % (self.decimals, coords_xy[0],
self.decimals, coords_xy[1])
elif dim == 'geometry_toolchangexy':
if self.defaults["geometry_toolchangexy"] is None or self.defaults["geometry_toolchangexy"] == '':
continue
coordinates = self.defaults["geometry_toolchangexy"].split(",")
coords_xy = [float(eval(a)) for a in coordinates if a != '']
coords_xy[0] *= sfactor
@ -4287,6 +4327,9 @@ class App(QtCore.QObject):
self.defaults['geometry_toolchangexy'] = "%.*f, %.*f" % (self.decimals, coords_xy[0],
self.decimals, coords_xy[1])
elif dim == 'excellon_endxy':
if self.defaults["excellon_endxy"] is None or self.defaults["excellon_endxy"] == '':
continue
coordinates = self.defaults["excellon_endxy"].split(",")
end_coords_xy = [float(eval(a)) for a in coordinates if a != '']
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.decimals, end_coords_xy[1])
elif dim == 'geometry_endxy':
if self.defaults["geometry_endxy"] is None or self.defaults["geometry_endxy"] == '':
continue
coordinates = self.defaults["geometry_endxy"].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['geometry_endxy'] = "%.*f, %.*f" % (self.decimals, end_coords_xy[0],
self.decimals, end_coords_xy[1])
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"]]
else:
try:
@ -4316,6 +4364,8 @@ class App(QtCore.QObject):
tools_diameters[t] *= sfactor
self.defaults['geometry_cnctooldia'] += "%.*f," % (self.decimals, tools_diameters[t])
elif dim == 'tools_ncctools':
if self.defaults["tools_ncctools"] is None or self.defaults["tools_ncctools"] == '':
continue
if type(self.defaults["tools_ncctools"]) == float:
ncctools = [self.defaults["tools_ncctools"]]
else:
@ -4331,6 +4381,9 @@ class App(QtCore.QObject):
ncctools[t] *= sfactor
self.defaults['tools_ncctools'] += "%.*f," % (self.decimals, ncctools[t])
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:
sptools = [self.defaults["tools_solderpaste_tools"]]
else:
@ -4346,6 +4399,9 @@ class App(QtCore.QObject):
sptools[t] *= sfactor
self.defaults['tools_solderpaste_tools'] += "%.*f," % (self.decimals, sptools[t])
elif dim == 'tools_solderpaste_xy_toolchange':
if self.defaults["tools_solderpaste_xy_toolchange"] is None or \
self.defaults["tools_solderpaste_xy_toolchange"] == '':
continue
try:
coordinates = self.defaults["tools_solderpaste_xy_toolchange"].split(",")
sp_coords = [float(eval(a)) for a in coordinates if a != '']
@ -4356,6 +4412,16 @@ class App(QtCore.QObject):
except Exception as e:
log.debug("App.on_toggle_units().scale_options() --> %s" % str(e))
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':
if new_units == 'IN':

View File

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

View File

@ -58,7 +58,7 @@ if platform.architecture()[0] == '64bit':
include_files.append(("locale", "lib/locale"))
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/linux", "lib/assets/linux"))
include_files.append(("assets/resources", "lib/assets/resources"))