Skip to content

Commit fba9492

Browse files
authored
Merge branch 'main' into CURA-12950-5.12_upgrade-script
2 parents 8daab8e + 197740a commit fba9492

File tree

45 files changed

+148
-66
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+148
-66
lines changed

plugins/PaintTool/PaintTool.py

Lines changed: 3 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ def __init__(self, view: PaintView) -> None:
5151
self._view: PaintView = view
5252
self._view.canUndoChanged.connect(self._onCanUndoChanged)
5353
self._view.canRedoChanged.connect(self._onCanRedoChanged)
54+
self._view.currentPaintedObjectMeshDataChanged.connect(self._updateState)
5455

5556
self._picking_pass: Optional[PickingPass] = None
5657
self._faces_selection_pass: Optional[SelectionPass] = None
@@ -198,40 +199,6 @@ def clear(self) -> None:
198199
self._view.clearPaint()
199200
self._updateScene(update_node = True)
200201

201-
@staticmethod
202-
def _get_intersect_ratio_via_pt(a: numpy.ndarray, pt: numpy.ndarray, b: numpy.ndarray, c: numpy.ndarray) -> float:
203-
# compute the intersection of (param) A - pt with (param) B - (param) C
204-
if all(a == pt) or all(b == c) or all(a == c) or all(a == b):
205-
return 1.0
206-
207-
# compute unit vectors of directions of lines A and B
208-
udir_a = a - pt
209-
udir_a /= numpy.linalg.norm(udir_a)
210-
udir_b = b - c
211-
udir_b /= numpy.linalg.norm(udir_b)
212-
213-
# find unit direction vector for line C, which is perpendicular to lines A and B
214-
udir_res = numpy.cross(udir_b, udir_a)
215-
udir_res_len = numpy.linalg.norm(udir_res)
216-
if udir_res_len == 0:
217-
return 1.0
218-
udir_res /= udir_res_len
219-
220-
# solve system of equations
221-
rhs = b - a
222-
lhs = numpy.array([udir_a, -udir_b, udir_res]).T
223-
try:
224-
solved = numpy.linalg.solve(lhs, rhs)
225-
except numpy.linalg.LinAlgError:
226-
return 1.0
227-
228-
# get the ratio
229-
intersect = ((a + solved[0] * udir_a) + (b + solved[1] * udir_b)) * 0.5
230-
a_intersect_dist = numpy.linalg.norm(a - intersect)
231-
if a_intersect_dist == 0:
232-
return 1.0
233-
return numpy.linalg.norm(pt - intersect) / a_intersect_dist
234-
235202
def _nodeTransformChanged(self, *args) -> None:
236203
self._cache_dirty = True
237204

@@ -453,7 +420,7 @@ def _updateActiveView(self) -> None:
453420
def _updateState(self):
454421
painted_object = self._view.getPaintedObject()
455422
if painted_object is not None and self._controller.getActiveTool() == self:
456-
if painted_object.callDecoration("getPaintTexture") is not None:
423+
if painted_object.callDecoration("getPaintTexture") is not None and painted_object.getMeshData().hasUVCoordinates():
457424
new_state = PaintTool.Paint.State.READY
458425
else:
459426
new_state = PaintTool.Paint.State.PREPARING_MODEL
@@ -472,6 +439,7 @@ def _onPrepareTextureFinished(self, job: Job):
472439
self._prepare_texture_job = None
473440
self._state = PaintTool.Paint.State.READY
474441
self.propertyChanged.emit()
442+
self._updateScene()
475443

476444
def _updateIgnoreUnselectedObjects(self):
477445
ignore_unselected_objects = self._controller.getActiveView().name == "PaintTool"

plugins/PaintTool/PaintView.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,11 +61,13 @@ def __init__(self) -> None:
6161

6262
canUndoChanged = pyqtSignal(bool)
6363
canRedoChanged = pyqtSignal(bool)
64+
currentPaintedObjectMeshDataChanged = pyqtSignal()
6465

6566
def setPaintedObject(self, painted_object: Optional[SceneNode]):
6667
if self._painted_object is not None:
6768
texture_changed_signal = self._painted_object.callDecoration("getPaintTextureChangedSignal")
6869
texture_changed_signal.disconnect(self._onCurrentPaintedObjectTextureChanged)
70+
self._painted_object.meshDataChanged.disconnect(self._onCurrentPaintedObjectMesDataChanged)
6971

7072
self._paint_texture = None
7173
self._cursor_texture = None
@@ -78,6 +80,7 @@ def setPaintedObject(self, painted_object: Optional[SceneNode]):
7880
if texture_changed_signal is not None:
7981
texture_changed_signal.connect(self._onCurrentPaintedObjectTextureChanged)
8082
self._onCurrentPaintedObjectTextureChanged()
83+
self._painted_object.meshDataChanged.connect(self._onCurrentPaintedObjectMesDataChanged)
8184

8285
self._updateCurrentBitsRanges()
8386

@@ -99,6 +102,10 @@ def _onCurrentPaintedObjectTextureChanged(self) -> None:
99102
else:
100103
self._cursor_texture = None
101104

105+
def _onCurrentPaintedObjectMesDataChanged(self, object: SceneNode) -> None:
106+
if object == self._painted_object:
107+
self.currentPaintedObjectMeshDataChanged.emit()
108+
102109
def canUndo(self):
103110
stack = self._getUndoStack()
104111
return stack.canUndo() if stack is not None else False

resources/definitions/fdmprinter.def.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2202,11 +2202,8 @@
22022202
"type": "enum",
22032203
"options":
22042204
{
2205-
"grid": "Grid",
22062205
"lines": "Lines",
2207-
"triangles": "Triangles",
22082206
"trihexagon": "Tri-Hexagon",
2209-
"cubic": "Cubic",
22102207
"cubicsubdiv": "Cubic Subdivision",
22112208
"tetrahedral": "Octet",
22122209
"quarter_cubic": "Quarter Cubic",
@@ -2217,7 +2214,10 @@
22172214
"gyroid": "Gyroid",
22182215
"lightning": "Lightning",
22192216
"honeycomb": "Honeycomb",
2220-
"octagon": "Octagon"
2217+
"octagon": "Octagon",
2218+
"grid": "Grid",
2219+
"cubic": "Cubic",
2220+
"triangles": "Triangles"
22212221
},
22222222
"default_value": "grid",
22232223
"enabled": "infill_line_distance > 0",

resources/definitions/ultimaker_s8.def.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,7 @@
241241
"infill_material_flow": { "value": "material_flow if infill_sparse_density < 95 else 95" },
242242
"infill_move_inwards_length": { "value": "3*machine_nozzle_size" },
243243
"infill_overlap": { "value": 10 },
244-
"infill_pattern": { "value": "'zigzag' if infill_sparse_density > 50 else 'grid'" },
244+
"infill_pattern": { "value": "'zigzag'" },
245245
"infill_sparse_density": { "value": 15 },
246246
"infill_wall_line_count": { "value": "1 if infill_sparse_density > 80 else 0" },
247247
"initial_bottom_layers": { "value": "2 if extruderValueFromContainer(top_bottom_extruder_nr, 'bottom_layers', 2) == bottom_layers else bottom_layers" },
@@ -425,7 +425,7 @@
425425
"material_pressure_advance_factor":
426426
{
427427
"enabled": true,
428-
"value": 0.5
428+
"value": 0.75
429429
},
430430
"material_print_temperature": { "maximum_value_warning": 320 },
431431
"material_print_temperature_layer_0": { "maximum_value_warning": 320 },
@@ -457,6 +457,7 @@
457457
"skin_material_flow": { "value": 93 },
458458
"skin_outline_count": { "value": 0 },
459459
"skin_support": { "value": "infill_sparse_density < 20" },
460+
"skin_preshrink": { "value": 0 },
460461
"skin_support_speed": { "value": "speed_infill * infill_material_flow / skin_support_material_flow" },
461462
"skirt_brim_minimal_length": { "value": 1000 },
462463
"skirt_line_count": { "value": 5 },

resources/intent/ultimaker_s8/um_s8_aa_plus_0.4_abs_0.15mm_visual.inst.cfg

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,9 @@ variant = AA+ 0.4
1313

1414
[values]
1515
material_print_temperature = =default_material_print_temperature - 5
16+
skin_preshrink = 0
1617
speed_print = 100
1718
speed_wall = 75
1819
top_bottom_thickness = =round(layer_height*6,3)
20+
wall_thickness = =wall_line_width_0 + 2*wall_line_width_x
1921

resources/intent/ultimaker_s8/um_s8_aa_plus_0.4_abs_0.2mm_engineering.inst.cfg

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,13 @@ variant = AA+ 0.4
1313

1414
[values]
1515
hole_xy_offset = 0.1
16+
infill_overlap = 10
17+
infill_pattern = honeycomb
1618
infill_sparse_density = 20
1719
initial_bottom_layers = =bottom_layers
1820
inset_direction = inside_out
21+
skin_preshrink = 0
1922
top_bottom_thickness = =wall_thickness
20-
wall_thickness = =line_width * 4
23+
wall_thickness = =wall_line_width_0 + 2*wall_line_width_x
2124
xy_offset = 0.025
2225

resources/intent/ultimaker_s8/um_s8_aa_plus_0.4_abs_0.2mm_quick.inst.cfg

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,5 @@ speed_wall = =speed_print
2323
speed_wall_x = =speed_print
2424
speed_wall_x_roofing = =speed_wall
2525
wall_line_width_x = =wall_line_width
26-
wall_thickness = =wall_line_width_0 + wall_line_width_x
2726
xy_offset = 0.075
2827

resources/intent/ultimaker_s8/um_s8_aa_plus_0.4_cpe-plus_0.2mm_engineering.inst.cfg

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,13 @@ variant = AA+ 0.4
1313

1414
[values]
1515
hole_xy_offset = 0.1
16+
infill_overlap = 10
17+
infill_pattern = honeycomb
1618
infill_sparse_density = 20
1719
initial_bottom_layers = =bottom_layers
1820
inset_direction = inside_out
21+
skin_preshrink = 0
1922
top_bottom_thickness = =wall_thickness
20-
wall_thickness = =line_width * 4
23+
wall_thickness = =wall_line_width_0 + 2*wall_line_width_x
2124
xy_offset = 0.025
2225

resources/intent/ultimaker_s8/um_s8_aa_plus_0.4_cpe_0.2mm_engineering.inst.cfg

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,13 @@ variant = AA+ 0.4
1313

1414
[values]
1515
hole_xy_offset = 0.1
16+
infill_overlap = 10
17+
infill_pattern = honeycomb
1618
infill_sparse_density = 20
1719
initial_bottom_layers = =bottom_layers
1820
inset_direction = inside_out
21+
skin_preshrink = 0
1922
top_bottom_thickness = =wall_thickness
20-
wall_thickness = =line_width * 4
23+
wall_thickness = =wall_line_width_0 + 2*wall_line_width_x
2124
xy_offset = 0.025
2225

resources/intent/ultimaker_s8/um_s8_aa_plus_0.4_pc_0.2mm_engineering.inst.cfg

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,13 @@ variant = AA+ 0.4
1313

1414
[values]
1515
hole_xy_offset = 0.1
16+
infill_overlap = 10
17+
infill_pattern = honeycomb
1618
infill_sparse_density = 20
1719
initial_bottom_layers = =bottom_layers
1820
inset_direction = inside_out
21+
skin_preshrink = 0
1922
top_bottom_thickness = =wall_thickness
20-
wall_thickness = =line_width * 4
23+
wall_thickness = =wall_line_width_0 + 2*wall_line_width_x
2124
xy_offset = 0.025
2225

0 commit comments

Comments
 (0)