mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-08-14 12:05:54 +08:00
Merge branch 'master' of github.com:Ultimaker/Cura
This commit is contained in:
commit
2860512e96
@ -1,4 +1,4 @@
|
|||||||
# Copyright (c) 2019 fieldOfView
|
# Copyright (c) 2019 fieldOfView, 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.
|
||||||
|
|
||||||
# This AMF parser is based on the AMF parser in legacy cura:
|
# This AMF parser is based on the AMF parser in legacy cura:
|
||||||
@ -39,9 +39,9 @@ class AMFReader(MeshReader):
|
|||||||
|
|
||||||
MimeTypeDatabase.addMimeType(
|
MimeTypeDatabase.addMimeType(
|
||||||
MimeType(
|
MimeType(
|
||||||
name="application/x-amf",
|
name = "application/x-amf",
|
||||||
comment="AMF",
|
comment = "AMF",
|
||||||
suffixes=["amf"]
|
suffixes = ["amf"]
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -94,7 +94,7 @@ class AMFReader(MeshReader):
|
|||||||
if t.tag == "x":
|
if t.tag == "x":
|
||||||
v[0] = float(t.text) * scale
|
v[0] = float(t.text) * scale
|
||||||
elif t.tag == "y":
|
elif t.tag == "y":
|
||||||
v[2] = float(t.text) * scale
|
v[2] = -float(t.text) * scale
|
||||||
elif t.tag == "z":
|
elif t.tag == "z":
|
||||||
v[1] = float(t.text) * scale
|
v[1] = float(t.text) * scale
|
||||||
amf_mesh_vertices.append(v)
|
amf_mesh_vertices.append(v)
|
||||||
@ -114,7 +114,7 @@ class AMFReader(MeshReader):
|
|||||||
f[2] = int(t.text)
|
f[2] = int(t.text)
|
||||||
indices.append(f)
|
indices.append(f)
|
||||||
|
|
||||||
mesh = trimesh.base.Trimesh(vertices=numpy.array(amf_mesh_vertices, dtype=numpy.float32), faces=numpy.array(indices, dtype=numpy.int32))
|
mesh = trimesh.base.Trimesh(vertices = numpy.array(amf_mesh_vertices, dtype = numpy.float32), faces = numpy.array(indices, dtype = numpy.int32))
|
||||||
mesh.merge_vertices()
|
mesh.merge_vertices()
|
||||||
mesh.remove_unreferenced_vertices()
|
mesh.remove_unreferenced_vertices()
|
||||||
mesh.fix_normals()
|
mesh.fix_normals()
|
||||||
@ -123,7 +123,7 @@ class AMFReader(MeshReader):
|
|||||||
new_node = CuraSceneNode()
|
new_node = CuraSceneNode()
|
||||||
new_node.setSelectable(True)
|
new_node.setSelectable(True)
|
||||||
new_node.setMeshData(mesh_data)
|
new_node.setMeshData(mesh_data)
|
||||||
new_node.setName(base_name if len(nodes)==0 else "%s %d" % (base_name, len(nodes)))
|
new_node.setName(base_name if len(nodes) == 0 else "%s %d" % (base_name, len(nodes)))
|
||||||
new_node.addDecorator(BuildPlateDecorator(CuraApplication.getInstance().getMultiBuildPlateModel().activeBuildPlate))
|
new_node.addDecorator(BuildPlateDecorator(CuraApplication.getInstance().getMultiBuildPlateModel().activeBuildPlate))
|
||||||
new_node.addDecorator(SliceableObjectDecorator())
|
new_node.addDecorator(SliceableObjectDecorator())
|
||||||
|
|
||||||
@ -165,9 +165,9 @@ class AMFReader(MeshReader):
|
|||||||
indices.append(face)
|
indices.append(face)
|
||||||
face_count += 1
|
face_count += 1
|
||||||
|
|
||||||
vertices = numpy.asarray(vertices, dtype=numpy.float32)
|
vertices = numpy.asarray(vertices, dtype = numpy.float32)
|
||||||
indices = numpy.asarray(indices, dtype=numpy.int32)
|
indices = numpy.asarray(indices, dtype = numpy.int32)
|
||||||
normals = calculateNormalsFromIndexedVertices(vertices, indices, face_count)
|
normals = calculateNormalsFromIndexedVertices(vertices, indices, face_count)
|
||||||
|
|
||||||
mesh_data = MeshData(vertices=vertices, indices=indices, normals=normals)
|
mesh_data = MeshData(vertices = vertices, indices = indices, normals = normals)
|
||||||
return mesh_data
|
return mesh_data
|
||||||
|
@ -221,6 +221,7 @@ Item
|
|||||||
|
|
||||||
OldControls.CheckBox
|
OldControls.CheckBox
|
||||||
{
|
{
|
||||||
|
id: enabledCheckbox
|
||||||
checked: Cura.MachineManager.activeStack != null ? Cura.MachineManager.activeStack.isEnabled : false
|
checked: Cura.MachineManager.activeStack != null ? Cura.MachineManager.activeStack.isEnabled : false
|
||||||
enabled: !checked || Cura.MachineManager.numberExtrudersEnabled > 1 //Disable if it's the last enabled extruder.
|
enabled: !checked || Cura.MachineManager.numberExtrudersEnabled > 1 //Disable if it's the last enabled extruder.
|
||||||
height: parent.height
|
height: parent.height
|
||||||
@ -265,6 +266,7 @@ Item
|
|||||||
|
|
||||||
text: Cura.MachineManager.activeStack !== null ? Cura.MachineManager.activeStack.material.name : ""
|
text: Cura.MachineManager.activeStack !== null ? Cura.MachineManager.activeStack.material.name : ""
|
||||||
tooltip: text
|
tooltip: text
|
||||||
|
enabled: enabledCheckbox.checked
|
||||||
|
|
||||||
width: selectors.controlWidth
|
width: selectors.controlWidth
|
||||||
height: parent.height
|
height: parent.height
|
||||||
@ -324,7 +326,8 @@ Item
|
|||||||
height: parent.height
|
height: parent.height
|
||||||
width: selectors.controlWidth
|
width: selectors.controlWidth
|
||||||
style: UM.Theme.styles.print_setup_header_button
|
style: UM.Theme.styles.print_setup_header_button
|
||||||
activeFocusOnPress: true;
|
activeFocusOnPress: true
|
||||||
|
enabled: enabledCheckbox.checked
|
||||||
|
|
||||||
menu: Cura.NozzleMenu { extruderIndex: Cura.ExtruderManager.activeExtruderIndex }
|
menu: Cura.NozzleMenu { extruderIndex: Cura.ExtruderManager.activeExtruderIndex }
|
||||||
}
|
}
|
||||||
|
@ -50,6 +50,7 @@ Menu
|
|||||||
{
|
{
|
||||||
text: model.brand + " " + model.name
|
text: model.brand + " " + model.name
|
||||||
checkable: true
|
checkable: true
|
||||||
|
enabled: Cura.MachineManager.activeMachine.extruderList[extruderIndex].isEnabled
|
||||||
checked: model.root_material_id === menu.currentRootMaterialId
|
checked: model.root_material_id === menu.currentRootMaterialId
|
||||||
onTriggered: Cura.MachineManager.setMaterial(extruderIndex, model.container_node)
|
onTriggered: Cura.MachineManager.setMaterial(extruderIndex, model.container_node)
|
||||||
exclusiveGroup: favoriteGroup // One favorite and one item from the others can be active at the same time.
|
exclusiveGroup: favoriteGroup // One favorite and one item from the others can be active at the same time.
|
||||||
@ -72,6 +73,7 @@ Menu
|
|||||||
{
|
{
|
||||||
text: model.name
|
text: model.name
|
||||||
checkable: true
|
checkable: true
|
||||||
|
enabled: Cura.MachineManager.activeMachine.extruderList[extruderIndex].isEnabled
|
||||||
checked: model.root_material_id === menu.currentRootMaterialId
|
checked: model.root_material_id === menu.currentRootMaterialId
|
||||||
exclusiveGroup: group
|
exclusiveGroup: group
|
||||||
onTriggered: Cura.MachineManager.setMaterial(extruderIndex, model.container_node)
|
onTriggered: Cura.MachineManager.setMaterial(extruderIndex, model.container_node)
|
||||||
@ -110,6 +112,7 @@ Menu
|
|||||||
{
|
{
|
||||||
text: model.name
|
text: model.name
|
||||||
checkable: true
|
checkable: true
|
||||||
|
enabled: Cura.MachineManager.activeMachine.extruderList[extruderIndex].isEnabled
|
||||||
checked: model.id === menu.activeMaterialId
|
checked: model.id === menu.activeMaterialId
|
||||||
exclusiveGroup: group
|
exclusiveGroup: group
|
||||||
onTriggered: Cura.MachineManager.setMaterial(extruderIndex, model.container_node)
|
onTriggered: Cura.MachineManager.setMaterial(extruderIndex, model.container_node)
|
||||||
|
@ -32,7 +32,7 @@ Menu
|
|||||||
return extruder.variant.name == model.hotend_name
|
return extruder.variant.name == model.hotend_name
|
||||||
}
|
}
|
||||||
exclusiveGroup: group
|
exclusiveGroup: group
|
||||||
|
enabled: Cura.MachineManager.activeMachine.extruderList[extruderIndex].isEnabled
|
||||||
onTriggered: {
|
onTriggered: {
|
||||||
Cura.MachineManager.setVariant(menu.extruderIndex, model.container_node);
|
Cura.MachineManager.setVariant(menu.extruderIndex, model.container_node);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user