- Buffer sub-tool in Transform Tool: added the possibility to apply a factor effectively scaling the aperture size thus the copper features sizes

- in Transform Tool adjusted the GUI
This commit is contained in:
Marius Stanciu
2019-12-30 01:18:56 +02:00
committed by Marius
parent 7bd441eccc
commit c0ec3b6546
8 changed files with 267 additions and 98 deletions

View File

@@ -2118,11 +2118,11 @@ class Geometry(object):
# self.solid_geometry = affinity.skew(self.solid_geometry, angle_x, angle_y,
# origin=(px, py))
def buffer(self, distance, join):
def buffer(self, distance, join, factor):
"""
:param distance:
:param join:
:param distance: if 'factor' is True then distance is the factor
:param factor: True or False (None)
:return:
"""
@@ -2145,7 +2145,10 @@ class Geometry(object):
self.app.proc_container.update_view_text(' %d%%' % disp_number)
self.old_disp_number = disp_number
return obj.buffer(distance, resolution=self.geo_steps_per_circle, join_style=join)
if factor is None:
return obj.buffer(distance, resolution=self.geo_steps_per_circle, join_style=join)
else:
return affinity.scale(obj, xfact=distance, yfact=distance, origin='center')
except AttributeError:
return obj
@@ -2155,20 +2158,23 @@ class Geometry(object):
# variables to display the percentage of work done
self.geo_len = 0
try:
for __ in self.tools[tool]['solid_geometry']:
self.geo_len += 1
self.geo_len += len(self.tools[tool]['solid_geometry'])
except TypeError:
self.geo_len = 1
self.geo_len += 1
self.old_disp_number = 0
self.el_count = 0
self.tools[tool]['solid_geometry'] = buffer_geom(self.tools[tool]['solid_geometry'])
res = buffer_geom(self.tools[tool]['solid_geometry'])
try:
__ = iter(res)
self.tools[tool]['solid_geometry'] = res
except TypeError:
self.tools[tool]['solid_geometry'] = [res]
# variables to display the percentage of work done
self.geo_len = 0
try:
for __ in self.solid_geometry:
self.geo_len += 1
self.geo_len = len(self.solid_geometry)
except TypeError:
self.geo_len = 1
self.old_disp_number = 0
@@ -2182,6 +2188,7 @@ class Geometry(object):
self.app.proc_container.new_text = ''
class AttrDict(dict):
def __init__(self, *args, **kwargs):
super(AttrDict, self).__init__(*args, **kwargs)