mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-05-21 20:19:32 +08:00
Merge branch '3.0' of github.com:Ultimaker/Cura into 3.0
This commit is contained in:
commit
c6e589e7d9
@ -12,7 +12,6 @@ from UM.Mesh.MeshBuilder import MeshBuilder
|
||||
from UM.Mesh.MeshReader import MeshReader
|
||||
from UM.Scene.GroupDecorator import GroupDecorator
|
||||
from cura.Settings.SettingOverrideDecorator import SettingOverrideDecorator
|
||||
from cura.ZOffsetDecorator import ZOffsetDecorator
|
||||
from UM.Application import Application
|
||||
from cura.Settings.ExtruderManager import ExtruderManager
|
||||
from cura.QualityManager import QualityManager
|
||||
@ -105,8 +104,8 @@ class ThreeMFReader(MeshReader):
|
||||
# Add the setting override decorator, so we can add settings to this node.
|
||||
if settings:
|
||||
um_node.addDecorator(SettingOverrideDecorator())
|
||||
global_container_stack = Application.getInstance().getGlobalContainerStack()
|
||||
|
||||
global_container_stack = Application.getInstance().getGlobalContainerStack()
|
||||
# Ensure the correct next container for the SettingOverride decorator is set.
|
||||
if global_container_stack:
|
||||
multi_extrusion = global_container_stack.getProperty("machine_extruder_count", "value") > 1
|
||||
@ -144,15 +143,12 @@ class ThreeMFReader(MeshReader):
|
||||
if len(um_node.getChildren()) > 0:
|
||||
group_decorator = GroupDecorator()
|
||||
um_node.addDecorator(group_decorator)
|
||||
|
||||
um_node.setSelectable(True)
|
||||
|
||||
if um_node.getMeshData():
|
||||
# Assuming that all nodes with mesh data are printable objects
|
||||
# affects (auto) slicing
|
||||
sliceable_decorator = SliceableObjectDecorator()
|
||||
um_node.addDecorator(sliceable_decorator)
|
||||
|
||||
return um_node
|
||||
|
||||
def read(self, file_name):
|
||||
@ -172,18 +168,10 @@ class ThreeMFReader(MeshReader):
|
||||
|
||||
transform_matrix = Matrix()
|
||||
mesh_data = um_node.getMeshData()
|
||||
|
||||
if mesh_data is not None:
|
||||
extents = mesh_data.getExtents()
|
||||
center_vector = Vector(extents.center.x, extents.center.y, extents.center.z)
|
||||
|
||||
# If the object in a saved project is below the bed, keep it that way
|
||||
if extents.minimum.z < 0.0:
|
||||
um_node.addDecorator(ZOffsetDecorator())
|
||||
um_node.callDecoration("setZOffset", extents.minimum.z)
|
||||
|
||||
transform_matrix.setByTranslation(center_vector)
|
||||
|
||||
transform_matrix.multiply(um_node.getLocalTransformation())
|
||||
um_node.setTransformation(transform_matrix)
|
||||
|
||||
@ -207,7 +195,7 @@ class ThreeMFReader(MeshReader):
|
||||
translation_matrix.setByTranslation(translation_vector)
|
||||
transformation_matrix.multiply(translation_matrix)
|
||||
|
||||
# Third step: 3MF also defines a unit, whereas Cura always assumes mm.
|
||||
# Third step: 3MF also defines a unit, wheras Cura always assumes mm.
|
||||
scale_matrix = Matrix()
|
||||
scale_matrix.setByScaleVector(self._getScaleFromUnit(self._unit))
|
||||
transformation_matrix.multiply(scale_matrix)
|
||||
|
@ -509,21 +509,23 @@ Item
|
||||
}
|
||||
}
|
||||
|
||||
Item
|
||||
Rectangle
|
||||
{
|
||||
id: infillIcon
|
||||
|
||||
width: (infillCellRight.width / 5) - (UM.Theme.getSize("sidebar_margin").width)
|
||||
width: (parent.width / 5) - (UM.Theme.getSize("sidebar_margin").width)
|
||||
height: width
|
||||
|
||||
anchors.right: infillCellRight.right
|
||||
anchors.top: infillSlider.top
|
||||
anchors.right: parent.right
|
||||
anchors.top: parent.top
|
||||
anchors.topMargin: UM.Theme.getSize("sidebar_margin").height / 2
|
||||
|
||||
// we loop over all density icons and only show the one that has the current density and steps
|
||||
Repeater
|
||||
{
|
||||
id: infillIconList
|
||||
model: infillModel
|
||||
anchors.fill: parent
|
||||
|
||||
property int activeIndex: {
|
||||
for (var i = 0; i < infillModel.count; i++) {
|
||||
@ -541,20 +543,21 @@ Item
|
||||
return -1
|
||||
}
|
||||
|
||||
Item {
|
||||
anchors.fill: parent
|
||||
|
||||
Rectangle {
|
||||
Rectangle
|
||||
{
|
||||
anchors.fill: parent
|
||||
visible: infillIconList.activeIndex == index
|
||||
|
||||
border.width: UM.Theme.getSize("default_lining").width
|
||||
border.color: UM.Theme.getColor("quality_slider_available")
|
||||
|
||||
UM.RecolorImage {
|
||||
anchors.fill: parent
|
||||
anchors.margins: 2
|
||||
sourceSize.width: width
|
||||
sourceSize.height: width
|
||||
source: UM.Theme.getIcon(model.icon)
|
||||
color: UM.Theme.getColor("quality_slider_available")
|
||||
}
|
||||
color: UM.Theme.getColor("quality_slider_unavailable")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user