- fixed drawing of selection box when dragging mouse on screen and the selection shape drawing on the selected objects
- fixed the moving drawing shape in Tool Move in legacy graphic engine - fixed moving geometry in Tool Measurement in legacy graphic engine
This commit is contained in:
@@ -310,8 +310,7 @@ class Measurement(FlatCAMTool):
|
||||
if len(self.points) == 1:
|
||||
self.start_entry.set_value("(%.4f, %.4f)" % pos)
|
||||
self.app.inform.emit(_("MEASURING: Click on the Destination point ..."))
|
||||
|
||||
if len(self.points) == 2:
|
||||
elif len(self.points) == 2:
|
||||
dx = self.points[1][0] - self.points[0][0]
|
||||
dy = self.points[1][1] - self.points[0][1]
|
||||
d = sqrt(dx ** 2 + dy ** 2)
|
||||
@@ -323,8 +322,8 @@ class Measurement(FlatCAMTool):
|
||||
self.distance_x_entry.set_value('%.4f' % abs(dx))
|
||||
self.distance_y_entry.set_value('%.4f' % abs(dy))
|
||||
self.total_distance_entry.set_value('%.4f' % abs(d))
|
||||
self.app.ui.rel_position_label.setText("<b>Dx</b>: %.4f <b>Dy</b>: "
|
||||
"%.4f " % (pos[0], pos[1]))
|
||||
self.app.ui.rel_position_label.setText("<b>Dx</b>: {0:.4f} <b>Dy</b>: "
|
||||
"{0:.4f} ".format(pos[0], pos[1]))
|
||||
self.deactivate_measure_tool()
|
||||
|
||||
def on_mouse_move_meas(self, event):
|
||||
@@ -334,39 +333,57 @@ class Measurement(FlatCAMTool):
|
||||
else:
|
||||
event_pos = (event.xdata, event.ydata)
|
||||
|
||||
pos_canvas = self.app.plotcanvas.translate_coords(event_pos)
|
||||
try:
|
||||
x = float(event_pos[0])
|
||||
y = float(event_pos[1])
|
||||
except TypeError:
|
||||
return
|
||||
|
||||
pos_canvas = self.app.plotcanvas.translate_coords((x, y))
|
||||
|
||||
if self.app.grid_status() == True:
|
||||
pos = self.app.geo_editor.snap(pos_canvas[0], pos_canvas[1])
|
||||
# Update cursor
|
||||
self.app.app_cursor.set_data(np.asarray([(pos[0], pos[1])]),
|
||||
symbol='++', edge_color='black', size=20)
|
||||
if self.app.is_legacy is False:
|
||||
# Update cursor
|
||||
self.app.app_cursor.set_data(np.asarray([(pos[0], pos[1])]),
|
||||
symbol='++', edge_color='black', size=20)
|
||||
else:
|
||||
pos = (pos_canvas[0], pos_canvas[1])
|
||||
|
||||
self.app.ui.position_label.setText(" <b>X</b>: {0:.4f} "
|
||||
"<b>Y</b>: {0:.4f}".format(pos[0], pos[1]))
|
||||
|
||||
if self.rel_point1 is not None:
|
||||
dx = pos[0] - self.rel_point1[0]
|
||||
dy = pos[1] - self.rel_point1[1]
|
||||
dx = pos[0] - float(self.rel_point1[0])
|
||||
dy = pos[1] - float(self.rel_point1[1])
|
||||
else:
|
||||
dx = pos[0]
|
||||
dy = pos[1]
|
||||
|
||||
self.app.ui.position_label.setText(" <b>X</b>: %.4f "
|
||||
"<b>Y</b>: %.4f" % (pos[0], pos[1]))
|
||||
self.app.ui.rel_position_label.setText("<b>Dx</b>: %.4f <b>Dy</b>: "
|
||||
"%.4f " % (dx, dy))
|
||||
self.app.ui.rel_position_label.setText("<b>Dx</b>: {0:.4f} <b>Dy</b>: "
|
||||
"{0:.4f} ".format(dx, dy))
|
||||
|
||||
# update utility geometry
|
||||
|
||||
if len(self.points) == 1:
|
||||
self.utility_geometry(pos=pos)
|
||||
except Exception as e:
|
||||
log.debug("Measurement.on_mouse_move_meas() --> %s" % str(e))
|
||||
self.app.ui.position_label.setText("")
|
||||
self.app.ui.rel_position_label.setText("")
|
||||
|
||||
def utility_geometry(self, pos):
|
||||
# first delete old shape
|
||||
self.delete_shape()
|
||||
|
||||
# second draw the new shape of the utility geometry
|
||||
self.meas_line = LineString([pos, self.points[0]])
|
||||
self.sel_shapes.add(self.meas_line, color='black', update=True, layer=0, tolerance=None)
|
||||
meas_line = LineString([pos, self.points[0]])
|
||||
|
||||
color = '#00000000'
|
||||
self.sel_shapes.add(meas_line, color=color, update=True, layer=0, tolerance=None)
|
||||
|
||||
if self.app.is_legacy is True:
|
||||
self.sel_shapes.redraw()
|
||||
|
||||
def delete_shape(self):
|
||||
self.sel_shapes.clear()
|
||||
|
||||
@@ -212,7 +212,14 @@ class ToolMove(FlatCAMTool):
|
||||
event_pos = event.pos
|
||||
else:
|
||||
event_pos = (event.xdata, event.ydata)
|
||||
pos_canvas = self.app.plotcanvas.translate_coords(event_pos)
|
||||
|
||||
try:
|
||||
x = float(event_pos[0])
|
||||
y = float(event_pos[1])
|
||||
except TypeError:
|
||||
return
|
||||
|
||||
pos_canvas = self.app.plotcanvas.translate_coords((x, y))
|
||||
|
||||
# if GRID is active we need to get the snapped positions
|
||||
if self.app.grid_status() == True:
|
||||
@@ -270,8 +277,12 @@ class ToolMove(FlatCAMTool):
|
||||
p2 = (xmaximal, yminimal)
|
||||
p3 = (xmaximal, ymaximal)
|
||||
p4 = (xminimal, ymaximal)
|
||||
|
||||
self.old_coords = [p1, p2, p3, p4]
|
||||
self.draw_shape(self.old_coords)
|
||||
self.draw_shape(Polygon(self.old_coords))
|
||||
|
||||
if self.app.is_legacy is True:
|
||||
self.sel_shapes.redraw()
|
||||
|
||||
def update_sel_bbox(self, pos):
|
||||
self.delete_shape()
|
||||
@@ -280,24 +291,30 @@ class ToolMove(FlatCAMTool):
|
||||
pt2 = (self.old_coords[1][0] + pos[0], self.old_coords[1][1] + pos[1])
|
||||
pt3 = (self.old_coords[2][0] + pos[0], self.old_coords[2][1] + pos[1])
|
||||
pt4 = (self.old_coords[3][0] + pos[0], self.old_coords[3][1] + pos[1])
|
||||
self.draw_shape(Polygon([pt1, pt2, pt3, pt4]))
|
||||
|
||||
self.draw_shape([pt1, pt2, pt3, pt4])
|
||||
if self.app.is_legacy is True:
|
||||
self.sel_shapes.redraw()
|
||||
|
||||
def delete_shape(self):
|
||||
self.sel_shapes.clear()
|
||||
self.sel_shapes.redraw()
|
||||
|
||||
def draw_shape(self, coords):
|
||||
self.sel_rect = Polygon(coords)
|
||||
if self.app.ui.general_defaults_form.general_app_group.units_radio.get_value().upper() == 'MM':
|
||||
self.sel_rect = self.sel_rect.buffer(-0.1)
|
||||
self.sel_rect = self.sel_rect.buffer(0.2)
|
||||
else:
|
||||
self.sel_rect = self.sel_rect.buffer(-0.00393)
|
||||
self.sel_rect = self.sel_rect.buffer(0.00787)
|
||||
def draw_shape(self, shape):
|
||||
|
||||
blue_t = Color('blue')
|
||||
blue_t.alpha = 0.2
|
||||
self.sel_shapes.add(self.sel_rect, color='blue', face_color=blue_t, update=True, layer=0, tolerance=None)
|
||||
if self.app.ui.general_defaults_form.general_app_group.units_radio.get_value().upper() == 'MM':
|
||||
proc_shape = shape.buffer(-0.1)
|
||||
proc_shape = proc_shape.buffer(0.2)
|
||||
else:
|
||||
proc_shape = shape.buffer(-0.00393)
|
||||
proc_shape = proc_shape.buffer(0.00787)
|
||||
|
||||
# face = Color('blue')
|
||||
# face.alpha = 0.2
|
||||
|
||||
face = '#0000FFAF' + str(hex(int(0.2 * 255)))[2:]
|
||||
outline = '#0000FFAF'
|
||||
|
||||
self.sel_shapes.add(proc_shape, color=outline, face_color=face, update=True, layer=0, tolerance=None)
|
||||
|
||||
# end of file
|
||||
|
||||
Reference in New Issue
Block a user