mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-25 15:44:04 -06:00
Merge branch '5.7' into CURA-11725_fix_recommended_settings_support_type
This commit is contained in:
commit
07d7d8c2c5
7 changed files with 30 additions and 11 deletions
|
@ -9,6 +9,7 @@ requirements:
|
||||||
- "pysavitar/5.3.0"
|
- "pysavitar/5.3.0"
|
||||||
- "pynest2d/5.3.0"
|
- "pynest2d/5.3.0"
|
||||||
- "curaengine_grpc_definitions/0.2.0"
|
- "curaengine_grpc_definitions/0.2.0"
|
||||||
|
- "native_cad_plugin/2.0.0"
|
||||||
requirements_internal:
|
requirements_internal:
|
||||||
- "fdm_materials/(latest)@internal/testing"
|
- "fdm_materials/(latest)@internal/testing"
|
||||||
- "cura_private_data/(latest)@internal/testing"
|
- "cura_private_data/(latest)@internal/testing"
|
||||||
|
@ -41,6 +42,14 @@ pyinstaller:
|
||||||
package: "curaengine_plugin_gradual_flow"
|
package: "curaengine_plugin_gradual_flow"
|
||||||
src: "res/bundled_packages"
|
src: "res/bundled_packages"
|
||||||
dst: "share/cura/resources/bundled_packages"
|
dst: "share/cura/resources/bundled_packages"
|
||||||
|
native_cad_plugin:
|
||||||
|
package: "native_cad_plugin"
|
||||||
|
src: "res/plugins/NativeCADplugin"
|
||||||
|
dst: "share/cura/plugins/NativeCADplugin"
|
||||||
|
native_cad_plugin_bundled:
|
||||||
|
package: "native_cad_plugin"
|
||||||
|
src: "res/bundled_packages"
|
||||||
|
dst: "share/cura/resources/bundled_packages"
|
||||||
cura_resources:
|
cura_resources:
|
||||||
package: "cura"
|
package: "cura"
|
||||||
src: "resources"
|
src: "resources"
|
||||||
|
|
10
conanfile.py
10
conanfile.py
|
@ -231,6 +231,8 @@ class CuraConan(ConanFile):
|
||||||
else:
|
else:
|
||||||
src_path = os.path.join(self.source_folder, data["src"])
|
src_path = os.path.join(self.source_folder, data["src"])
|
||||||
else:
|
else:
|
||||||
|
if data["package"] not in self.deps_cpp_info.deps:
|
||||||
|
continue
|
||||||
src_path = os.path.join(self.deps_cpp_info[data["package"]].rootpath, data["src"])
|
src_path = os.path.join(self.deps_cpp_info[data["package"]].rootpath, data["src"])
|
||||||
elif "root" in data: # get the paths relative from the install folder
|
elif "root" in data: # get the paths relative from the install folder
|
||||||
src_path = os.path.join(self.install_folder, data["root"], data["src"])
|
src_path = os.path.join(self.install_folder, data["root"], data["src"])
|
||||||
|
@ -343,6 +345,8 @@ class CuraConan(ConanFile):
|
||||||
for req in self.conan_data["requirements"]:
|
for req in self.conan_data["requirements"]:
|
||||||
if self._internal and "fdm_materials" in req:
|
if self._internal and "fdm_materials" in req:
|
||||||
continue
|
continue
|
||||||
|
if not self._enterprise and "native_cad_plugin" in req:
|
||||||
|
continue
|
||||||
self.requires(req)
|
self.requires(req)
|
||||||
if self._internal:
|
if self._internal:
|
||||||
for req in self.conan_data["requirements_internal"]:
|
for req in self.conan_data["requirements_internal"]:
|
||||||
|
@ -393,6 +397,12 @@ class CuraConan(ConanFile):
|
||||||
copy(self, "*", curaengine_plugin_gradual_flow.bindirs[0], self.source_folder, keep_path = False)
|
copy(self, "*", curaengine_plugin_gradual_flow.bindirs[0], self.source_folder, keep_path = False)
|
||||||
copy(self, "bundled_*.json", curaengine_plugin_gradual_flow.resdirs[1], str(self.source_path.joinpath("resources", "bundled_packages")), keep_path = False)
|
copy(self, "bundled_*.json", curaengine_plugin_gradual_flow.resdirs[1], str(self.source_path.joinpath("resources", "bundled_packages")), keep_path = False)
|
||||||
|
|
||||||
|
if self._enterprise:
|
||||||
|
rmdir(self, str(self.source_path.joinpath("plugins", "NativeCADplugin")))
|
||||||
|
curaengine_plugin_gradual_flow = self.dependencies["native_cad_plugin"].cpp_info
|
||||||
|
copy(self, "*", curaengine_plugin_gradual_flow.resdirs[0], str(self.source_path.joinpath("plugins", "NativeCADplugin")), keep_path = True)
|
||||||
|
copy(self, "bundled_*.json", curaengine_plugin_gradual_flow.resdirs[1], str(self.source_path.joinpath("resources", "bundled_packages")), keep_path = False)
|
||||||
|
|
||||||
# Copy resources of cura_binary_data
|
# Copy resources of cura_binary_data
|
||||||
cura_binary_data = self.dependencies["cura_binary_data"].cpp_info
|
cura_binary_data = self.dependencies["cura_binary_data"].cpp_info
|
||||||
copy(self, "*", cura_binary_data.resdirs[0], str(self._share_dir.joinpath("cura")), keep_path = True)
|
copy(self, "*", cura_binary_data.resdirs[0], str(self._share_dir.joinpath("cura")), keep_path = True)
|
||||||
|
|
|
@ -41,7 +41,7 @@ class SpecificSettingsModel(ListModel):
|
||||||
"label": stack.getProperty(setting, "label"),
|
"label": stack.getProperty(setting, "label"),
|
||||||
"value": value
|
"value": value
|
||||||
})
|
})
|
||||||
self.modelChanged.emit()
|
self.modelChanged.emit()
|
||||||
|
|
||||||
def _update(self):
|
def _update(self):
|
||||||
Logger.debug(f"Updating {self.__class__.__name__}")
|
Logger.debug(f"Updating {self.__class__.__name__}")
|
||||||
|
|
|
@ -362,6 +362,10 @@ class WorkspaceDialog(QObject):
|
||||||
def exportedSettingModel(self):
|
def exportedSettingModel(self):
|
||||||
return self._exported_settings_model
|
return self._exported_settings_model
|
||||||
|
|
||||||
|
@pyqtProperty("QVariantList", notify=exportedSettingModelChanged)
|
||||||
|
def exportedSettingModelItems(self):
|
||||||
|
return self._exported_settings_model.items
|
||||||
|
|
||||||
@pyqtProperty(int, notify=exportedSettingModelChanged)
|
@pyqtProperty(int, notify=exportedSettingModelChanged)
|
||||||
def exportedSettingModelRowCount(self):
|
def exportedSettingModelRowCount(self):
|
||||||
return self._exported_settings_model.rowCount()
|
return self._exported_settings_model.rowCount()
|
||||||
|
|
|
@ -209,16 +209,9 @@ UM.Dialog
|
||||||
{
|
{
|
||||||
id: tableModel
|
id: tableModel
|
||||||
headers: ["category", "label", "value"]
|
headers: ["category", "label", "value"]
|
||||||
rows: manager.exportedSettingModel.items
|
rows: manager.exportedSettingModelItems
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
property var modelRows: manager.exportedSettingModel.items
|
|
||||||
onModelRowsChanged:
|
|
||||||
{
|
|
||||||
tableModel.clear()
|
|
||||||
tableModel.rows = modelRows
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
comboboxVisible: manager.qualityChangesConflict
|
comboboxVisible: manager.qualityChangesConflict
|
||||||
|
|
|
@ -153,7 +153,8 @@ class SimulationPass(RenderPass):
|
||||||
# In the current layer, we show just the indicated paths
|
# In the current layer, we show just the indicated paths
|
||||||
if layer == self._layer_view._current_layer_num:
|
if layer == self._layer_view._current_layer_num:
|
||||||
# We look for the position of the head, searching the point of the current path
|
# We look for the position of the head, searching the point of the current path
|
||||||
index = int(self._layer_view.getCurrentPath()) if self._layer_view.getCurrentPath() else 0
|
index = int(self._layer_view.getCurrentPath()) if not math.isnan(
|
||||||
|
self._layer_view.getCurrentPath()) else 0
|
||||||
for polygon in layer_data.getLayer(layer).polygons:
|
for polygon in layer_data.getLayer(layer).polygons:
|
||||||
# The size indicates all values in the two-dimension array, and the second dimension is
|
# The size indicates all values in the two-dimension array, and the second dimension is
|
||||||
# always size 3 because we have 3D points.
|
# always size 3 because we have 3D points.
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
# Copyright (c) 2021 Ultimaker B.V.
|
# Copyright (c) 2021 Ultimaker B.V.
|
||||||
# Cura is released under the terms of the LGPLv3 or higher.
|
# Cura is released under the terms of the LGPLv3 or higher.
|
||||||
|
import math
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
from PyQt6.QtCore import Qt
|
from PyQt6.QtCore import Qt
|
||||||
|
@ -216,7 +217,8 @@ class SimulationView(CuraView):
|
||||||
Logger.warn(
|
Logger.warn(
|
||||||
f"Binary search error (out of bounds): index {i}: left value {left_value} right value {right_value} and current time is {self._current_time}")
|
f"Binary search error (out of bounds): index {i}: left value {left_value} right value {right_value} and current time is {self._current_time}")
|
||||||
|
|
||||||
fractional_value = (self._current_time - left_value) / (right_value - left_value)
|
segment_duration = right_value - left_value
|
||||||
|
fractional_value = 0.0 if segment_duration == 0.0 else (self._current_time - left_value) / segment_duration
|
||||||
|
|
||||||
self.setPath(i + fractional_value)
|
self.setPath(i + fractional_value)
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue