- made the objects offset (therefore the Move Tool) show progress display

This commit is contained in:
Marius Stanciu 2019-09-06 23:05:41 +03:00 committed by Marius
parent 24e29bda55
commit 124abf78b4
3 changed files with 75 additions and 0 deletions

View File

@ -5092,6 +5092,10 @@ class FlatCAMGeometry(FlatCAMObj, Geometry):
))
return
self.geo_len = 0
self.old_disp_number = 0
self.el_count = 0
def translate_recursion(geom):
if type(geom) is list:
geoms = list()
@ -5100,14 +5104,30 @@ class FlatCAMGeometry(FlatCAMObj, Geometry):
return geoms
else:
try:
self.el_count += 1
disp_number = int(np.interp(self.el_count, [0, self.geo_len], [0, 99]))
if self.old_disp_number < disp_number <= 100:
self.app.proc_container.update_view_text(' %d%%' % disp_number)
self.old_disp_number = disp_number
return affinity.translate(geom, xoff=dx, yoff=dy)
except AttributeError:
return geom
if self.multigeo is True:
for tool in self.tools:
# variables to display the percentage of work done
self.geo_len = len(self.tools[tool]['solid_geometry'])
self.old_disp_number = 0
self.el_count = 0
self.tools[tool]['solid_geometry'] = translate_recursion(self.tools[tool]['solid_geometry'])
else:
# variables to display the percentage of work done
self.geo_len = len(self.solid_geometry)
self.old_disp_number = 0
self.el_count = 0
self.solid_geometry = translate_recursion(self.solid_geometry)
self.app.inform.emit(_("[success] Geometry Offset done."))

View File

@ -21,6 +21,7 @@ CAD program, and create G-Code for Isolation routing.
- modified all the FlatCAM tools strings to the new format in which the status is no longer included in the translated strings to make it easier for the future translations
- more customization for the progress display in case of NCC Tool, Paint Tool and for the Gcode generation
- updated POT file with the new strings
- made the objects offset (therefore the Move Tool) show progress display
5.09.2019

View File

@ -112,6 +112,11 @@ class Geometry(object):
self.geo_steps_per_circle = geo_steps_per_circle
# variables to display the percentage of work done
self.geo_len = 0
self.old_disp_number = 0
self.el_count = 0
# 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
@ -3464,6 +3469,11 @@ class Gerber (Geometry):
"Probable you entered only one value in the Offset field."))
return
# variables to display the percentage of work done
self.geo_len = len(self.solid_geometry)
self.old_disp_number = 0
self.el_count = 0
def offset_geom(obj):
if type(obj) is list:
new_obj = []
@ -3472,6 +3482,12 @@ class Gerber (Geometry):
return new_obj
else:
try:
self.el_count += 1
disp_number = int(np.interp(self.el_count, [0, self.geo_len], [0, 99]))
if self.old_disp_number < disp_number <= 100:
self.app.proc_container.update_view_text(' %d%%' % disp_number)
self.old_disp_number = disp_number
return affinity.translate(obj, xoff=dx, yoff=dy)
except AttributeError:
return obj
@ -4780,10 +4796,21 @@ class Excellon(Geometry):
except AttributeError:
return obj
# variables to display the percentage of work done
self.geo_len = len(self.drills)
self.old_disp_number = 0
self.el_count = 0
# Drills
for drill in self.drills:
drill['point'] = affinity.translate(drill['point'], xoff=dx, yoff=dy)
self.el_count += 1
disp_number = int(np.interp(self.el_count, [0, self.geo_len], [0, 99]))
if self.old_disp_number < disp_number <= 100:
self.app.proc_container.update_view_text(' %d%%' % disp_number)
self.old_disp_number = disp_number
# offset solid_geometry
for tool in self.tools:
self.tools[tool]['solid_geometry'] = offset_geom(self.tools[tool]['solid_geometry'])
@ -7658,23 +7685,50 @@ class CNCjob(Geometry):
if self.multitool is False:
# offset Gcode
self.gcode = offset_g(self.gcode)
# variables to display the percentage of work done
self.geo_len = len(self.gcode_parsed)
self.old_disp_number = 0
self.el_count = 0
# offset geometry
for g in self.gcode_parsed:
try:
g['geom'] = affinity.translate(g['geom'], xoff=dx, yoff=dy)
except AttributeError:
return g['geom']
self.el_count += 1
disp_number = int(np.interp(self.el_count, [0, self.geo_len], [0, 99]))
if self.old_disp_number < disp_number <= 100:
self.app.proc_container.update_view_text(' %d%%' % disp_number)
self.old_disp_number = disp_number
self.create_geometry()
else:
for k, v in self.cnc_tools.items():
# offset Gcode
v['gcode'] = offset_g(v['gcode'])
# variables to display the percentage of work done
self.geo_len = len(v['gcode_parsed'])
self.old_disp_number = 0
self.el_count = 0
# offset gcode_parsed
for g in v['gcode_parsed']:
try:
g['geom'] = affinity.translate(g['geom'], xoff=dx, yoff=dy)
except AttributeError:
return g['geom']
self.el_count += 1
disp_number = int(np.interp(self.el_count, [0, self.geo_len], [0, 99]))
if self.old_disp_number < disp_number <= 100:
self.app.proc_container.update_view_text(' %d%%' % disp_number)
self.old_disp_number = disp_number
# for the bounding box
v['solid_geometry'] = cascaded_union([geo['geom'] for geo in v['gcode_parsed']])
def mirror(self, axis, point):