- the selection shapes are now moved from Move Plugin to AppMain

- Fiducials Plugin: fixed errors due of changes in the Shapely module
- Fiducials Plugin: fixed an error where in Basic mode the soldermask opening is added incorrectly
This commit is contained in:
Marius Stanciu
2023-05-19 13:09:08 +03:00
parent ba3152e5f9
commit a49f54d63f
10 changed files with 60 additions and 51 deletions

View File

@@ -1754,10 +1754,9 @@ class ToolDrilling(AppTool, Excellon):
for row in sel_rows:
sel_rect = self.app.exc_areas.exclusion_areas_storage[row]['shape']
self.app.move_tool.sel_shapes.add(sel_rect, color=outline, face_color=face, update=True, layer=0,
tolerance=None)
self.app.sel_shapes.add(sel_rect, color=outline, face_color=face, update=True, layer=0, tolerance=None)
if self.app.use_3d_engine:
self.app.move_tool.sel_shapes.redraw()
self.app.sel_shapes.redraw()
def clear_selection(self):
self.app.delete_selection_shape()

View File

@@ -23,6 +23,8 @@ import gettext
import appTranslation as fcTranslate
import builtins
from camlib import flatten_shapely_geometry
fcTranslate.apply_language('strings')
if '_' not in builtins.__dict__:
_ = gettext.gettext
@@ -84,7 +86,7 @@ class ToolFiducials(AppTool):
self.handlers_connected = False
# storage for temporary shapes when adding manual markers
self.temp_shapes = self.app.move_tool.sel_shapes
self.temp_shapes = self.app.sel_shapes
def run(self, toggle=True):
self.app.defaults.report_usage("ToolFiducials()")
@@ -402,6 +404,8 @@ class ToolFiducials(AppTool):
"""
fid_size = self.ui.fid_size_entry.get_value() if fid_size is None else fid_size
fid_type = 0 if fid_type is None else fid_type # default is 'circular' <=> 0
if fid_type == "circular":
fid_type = 0
line_thickness = self.ui.line_thickness_entry.get_value() if line_size is None else line_size
radius = fid_size / 2.0
@@ -439,12 +443,10 @@ class ToolFiducials(AppTool):
new_apertures[new_apid]['geometry'].append(deepcopy(dict_el))
s_list = []
if g_obj.solid_geometry:
try:
for poly in g_obj.solid_geometry:
s_list.append(poly)
except TypeError:
s_list.append(g_obj.solid_geometry)
flat_geo = flatten_shapely_geometry(g_obj.solid_geometry)
if flat_geo:
for poly in flat_geo:
s_list.append(poly)
s_list += geo_list
elif fid_type == 1: # 'cross'
@@ -504,15 +506,14 @@ class ToolFiducials(AppTool):
new_apertures[new_apid]['geometry'].append(deepcopy(dict_el))
s_list = []
if g_obj.solid_geometry:
try:
for poly in g_obj.solid_geometry:
s_list.append(poly)
except TypeError:
s_list.append(g_obj.solid_geometry)
flat_geo = flatten_shapely_geometry(g_obj.solid_geometry)
if flat_geo:
for poly in flat_geo:
s_list.append(poly)
geo_buff_list = MultiPolygon(geo_buff_list)
geo_buff_list = geo_buff_list.buffer(0)
geo_buff_list = flatten_shapely_geometry(geo_buff_list)
for poly in geo_buff_list:
s_list.append(poly)
else:
@@ -583,12 +584,10 @@ class ToolFiducials(AppTool):
new_apertures[new_apid]['geometry'].append(deepcopy(dict_el))
s_list = []
if g_obj.solid_geometry:
try:
for poly in g_obj.solid_geometry:
s_list.append(poly)
except TypeError:
s_list.append(g_obj.solid_geometry)
flat_geo = flatten_shapely_geometry(g_obj.solid_geometry)
if flat_geo:
for poly in flat_geo:
s_list.append(poly)
for poly in geo_buff_list:
s_list.append(poly)

View File

@@ -71,7 +71,7 @@ class ToolMarkers(AppTool):
self.handlers_connected = False
# storage for temporary shapes when adding manual markers
self.temp_shapes = self.app.move_tool.sel_shapes
self.temp_shapes = self.app.sel_shapes
def on_insert_type_changed(self, val):
obj_type = 2 if val == 'geo' else 0

View File

@@ -3829,10 +3829,9 @@ class ToolMilling(AppTool, Excellon):
for row in sel_rows:
sel_rect = self.app.exc_areas.exclusion_areas_storage[row]['shape']
self.app.move_tool.sel_shapes.add(sel_rect, color=outline, face_color=face, update=True, layer=0,
tolerance=None)
self.app.sel_shapes.add(sel_rect, color=outline, face_color=face, update=True, layer=0, tolerance=None)
if self.app.use_3d_engine:
self.app.move_tool.sel_shapes.redraw()
self.app.sel_shapes.redraw()
def clear_selection(self):
self.app.delete_selection_shape()

View File

@@ -49,12 +49,7 @@ class ToolMove(AppTool):
self.sel_rect = None
self.old_coords = []
# VisPy visuals
if self.app.use_3d_engine:
self.sel_shapes = ShapeCollection(parent=self.app.plotcanvas.view.scene, layers=1, pool=self.app.pool)
else:
from appGUI.PlotCanvasLegacy import ShapeCollectionLegacy
self.sel_shapes = ShapeCollectionLegacy(obj=self, app=self.app, name="move")
self.sel_shapes = self.app.sel_shapes
self.mm = None
self.mp = None

View File

@@ -67,7 +67,7 @@ class QRCode(AppTool):
self.mr = None
self.kr = None
self.shapes = self.app.move_tool.sel_shapes
self.shapes = self.app.sel_shapes
self.qrcode_geometry = MultiPolygon()
self.qrcode_utility_geometry = MultiPolygon()