- Sketch projection and extrude in place working
This commit is contained in:
@@ -18,11 +18,13 @@ class SketchWidget(QWidget):
|
||||
|
||||
def __init__(self):
|
||||
super().__init__()
|
||||
|
||||
self.line_draw_buffer = [None, None]
|
||||
self.drag_buffer = [None, None]
|
||||
self.main_buffer = [None, None]
|
||||
|
||||
self.proj_snap_points = []
|
||||
self.proj_snap_lines = []
|
||||
|
||||
self.hovered_point = None
|
||||
self.selected_line = None
|
||||
@@ -59,7 +61,9 @@ class SketchWidget(QWidget):
|
||||
for point in lines:
|
||||
print(point)
|
||||
x, y = point
|
||||
self.proj_snap_points = lines
|
||||
self.proj_snap_lines = lines
|
||||
self.proj_snap_points.append(QPoint(x, y))
|
||||
|
||||
|
||||
#point = self.solv.add_point_2d(x, y, self.wp)
|
||||
|
||||
@@ -311,7 +315,10 @@ class SketchWidget(QWidget):
|
||||
self.reset_buffers()
|
||||
|
||||
if event.button() == Qt.LeftButton and self.mouse_mode == "line":
|
||||
clicked_pos = local_event_pos
|
||||
if self.hovered_point:
|
||||
clicked_pos = self.hovered_point
|
||||
else:
|
||||
clicked_pos = local_event_pos
|
||||
|
||||
if not self.line_draw_buffer[0]:
|
||||
self.line_draw_buffer[0] = clicked_pos
|
||||
@@ -564,6 +571,12 @@ class SketchWidget(QWidget):
|
||||
closest_point = point['ui_point']
|
||||
min_distance = distance
|
||||
|
||||
for point in self.proj_snap_points:
|
||||
distance = (local_event_pos - point).manhattanLength()
|
||||
if distance < threshold and distance < min_distance:
|
||||
closest_point = point
|
||||
min_distance = distance
|
||||
|
||||
if closest_point != self.hovered_point:
|
||||
self.hovered_point = closest_point
|
||||
print(self.hovered_point)
|
||||
@@ -636,7 +649,7 @@ class SketchWidget(QWidget):
|
||||
|
||||
def draw_cross(self, painter, x, y, size=10):
|
||||
# Set up the pen
|
||||
pen = QPen(QColor('red')) # You can change the color as needed
|
||||
pen = QPen(QColor('green')) # You can change the color as needed
|
||||
pen.setWidth(int(2 / self.zoom)) # Set the line widt)h
|
||||
painter.setPen(pen)
|
||||
|
||||
@@ -712,7 +725,7 @@ class SketchWidget(QWidget):
|
||||
painter.setPen(QPen(Qt.red, 2))
|
||||
painter.drawLine(p1, p2)
|
||||
|
||||
for cross in self.proj_snap_points:
|
||||
for cross in self.proj_snap_lines:
|
||||
# Calculate the endpoints of the cross
|
||||
self.draw_cross(painter, cross[0], cross[1], 10)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user