mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-06 14:37:29 -06:00
D6: Moved decorator to cura
This commit is contained in:
parent
3605403314
commit
620a3891da
5 changed files with 54 additions and 34 deletions
|
@ -28,6 +28,7 @@ from UM.Operations.GroupedOperation import GroupedOperation
|
||||||
from UM.Operations.SetTransformOperation import SetTransformOperation
|
from UM.Operations.SetTransformOperation import SetTransformOperation
|
||||||
from UM.Operations.TranslateOperation import TranslateOperation
|
from UM.Operations.TranslateOperation import TranslateOperation
|
||||||
from cura.SetParentOperation import SetParentOperation
|
from cura.SetParentOperation import SetParentOperation
|
||||||
|
from cura.SliceableObjectDecorator import SliceableObjectDecorator
|
||||||
|
|
||||||
from UM.Settings.SettingDefinition import SettingDefinition, DefinitionPropertyType
|
from UM.Settings.SettingDefinition import SettingDefinition, DefinitionPropertyType
|
||||||
from UM.Settings.ContainerRegistry import ContainerRegistry
|
from UM.Settings.ContainerRegistry import ContainerRegistry
|
||||||
|
@ -1088,6 +1089,16 @@ class CuraApplication(QtApplication):
|
||||||
extension = os.path.splitext(filename)[1]
|
extension = os.path.splitext(filename)[1]
|
||||||
if extension.lower() in self._non_sliceable_extensions:
|
if extension.lower() in self._non_sliceable_extensions:
|
||||||
self.changeLayerViewSignal.emit()
|
self.changeLayerViewSignal.emit()
|
||||||
|
sliceable_decorator = SliceableObjectDecorator()
|
||||||
|
sliceable_decorator.setBlockSlicing(True)
|
||||||
|
sliceable_decorator.setSliceable(False)
|
||||||
|
node.addDecorator(sliceable_decorator)
|
||||||
|
else:
|
||||||
|
sliceable_decorator = SliceableObjectDecorator()
|
||||||
|
sliceable_decorator.setBlockSlicing(False)
|
||||||
|
sliceable_decorator.setSliceable(True)
|
||||||
|
node.addDecorator(sliceable_decorator)
|
||||||
|
|
||||||
|
|
||||||
scene = self.getController().getScene()
|
scene = self.getController().getScene()
|
||||||
|
|
||||||
|
|
21
cura/SliceableObjectDecorator.py
Normal file
21
cura/SliceableObjectDecorator.py
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
from UM.Scene.SceneNodeDecorator import SceneNodeDecorator
|
||||||
|
|
||||||
|
|
||||||
|
## Simple decorator to indicate a scene node is sliceable or not.
|
||||||
|
class SliceableObjectDecorator(SceneNodeDecorator):
|
||||||
|
def __init__(self):
|
||||||
|
super().__init__()
|
||||||
|
self._sliceable = True
|
||||||
|
self._block_slicing = False
|
||||||
|
|
||||||
|
def isSliceable(self):
|
||||||
|
return self._sliceable
|
||||||
|
|
||||||
|
def setSliceable(self, sliceable):
|
||||||
|
self._sliceable = sliceable
|
||||||
|
|
||||||
|
def shouldBlockSlicing(self):
|
||||||
|
return self._block_slicing
|
||||||
|
|
||||||
|
def setBlockSlicing(self, block_slicing):
|
||||||
|
self._block_slicing = block_slicing
|
|
@ -1,23 +1,23 @@
|
||||||
# Copyright (c) 2015 Ultimaker B.V.
|
# Copyright (c) 2015 Ultimaker B.V.
|
||||||
# Cura is released under the terms of the AGPLv3 or higher.
|
# Cura is released under the terms of the AGPLv3 or higher.
|
||||||
|
|
||||||
from UM.Mesh.MeshReader import MeshReader
|
import math
|
||||||
from UM.Mesh.MeshBuilder import MeshBuilder
|
import os.path
|
||||||
|
import zipfile
|
||||||
|
|
||||||
|
from UM.Job import Job
|
||||||
from UM.Logger import Logger
|
from UM.Logger import Logger
|
||||||
from UM.Math.Matrix import Matrix
|
from UM.Math.Matrix import Matrix
|
||||||
from UM.Math.Vector import Vector
|
from UM.Math.Vector import Vector
|
||||||
from UM.Scene.SceneNode import SceneNode
|
from UM.Mesh.MeshBuilder import MeshBuilder
|
||||||
|
from UM.Mesh.MeshReader import MeshReader
|
||||||
from UM.Scene.GroupDecorator import GroupDecorator
|
from UM.Scene.GroupDecorator import GroupDecorator
|
||||||
import UM.Application
|
import UM.Application
|
||||||
from UM.Job import Job
|
|
||||||
from cura.Settings.SettingOverrideDecorator import SettingOverrideDecorator
|
from cura.Settings.SettingOverrideDecorator import SettingOverrideDecorator
|
||||||
from UM.Application import Application
|
from UM.Application import Application
|
||||||
from cura.Settings.ExtruderManager import ExtruderManager
|
from cura.Settings.ExtruderManager import ExtruderManager
|
||||||
from cura.QualityManager import QualityManager
|
from cura.QualityManager import QualityManager
|
||||||
from UM.Scene.SliceableObjectDecorator import SliceableObjectDecorator
|
from UM.Scene.SceneNode import SceneNode
|
||||||
|
|
||||||
import os.path
|
|
||||||
import zipfile
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
import xml.etree.cElementTree as ET
|
import xml.etree.cElementTree as ET
|
||||||
|
@ -235,8 +235,6 @@ class ThreeMFReader(MeshReader):
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
Logger.log("e", "An exception occurred in 3mf reader: %s", e)
|
Logger.log("e", "An exception occurred in 3mf reader: %s", e)
|
||||||
|
|
||||||
sliceable_decorator = SliceableObjectDecorator()
|
|
||||||
result.addDecorator(sliceable_decorator)
|
|
||||||
return result
|
return result
|
||||||
|
|
||||||
## Create a scale vector based on a unit string.
|
## Create a scale vector based on a unit string.
|
||||||
|
|
|
@ -1,25 +1,22 @@
|
||||||
# Copyright (c) 2016 Aleph Objects, Inc.
|
# Copyright (c) 2016 Aleph Objects, Inc.
|
||||||
# Cura is released under the terms of the AGPLv3 or higher.
|
# Cura is released under the terms of the AGPLv3 or higher.
|
||||||
|
|
||||||
from UM.Mesh.MeshReader import MeshReader
|
|
||||||
import os
|
|
||||||
from UM.Scene.SceneNode import SceneNode
|
|
||||||
from UM.Scene.Iterator.DepthFirstIterator import DepthFirstIterator
|
|
||||||
from UM.Math.Vector import Vector
|
|
||||||
from UM.Math.AxisAlignedBox import AxisAlignedBox
|
|
||||||
from UM.Application import Application
|
from UM.Application import Application
|
||||||
from UM.Message import Message
|
|
||||||
from UM.Logger import Logger
|
from UM.Logger import Logger
|
||||||
from UM.Backend.Backend import BackendState
|
from UM.Math.AxisAlignedBox import AxisAlignedBox
|
||||||
|
from UM.Math.Vector import Vector
|
||||||
|
from UM.Mesh.MeshReader import MeshReader
|
||||||
|
from UM.Message import Message
|
||||||
|
from UM.Scene.SceneNode import SceneNode
|
||||||
from UM.i18n import i18nCatalog
|
from UM.i18n import i18nCatalog
|
||||||
|
|
||||||
catalog = i18nCatalog("cura")
|
catalog = i18nCatalog("cura")
|
||||||
|
|
||||||
|
|
||||||
from cura import LayerDataBuilder
|
from cura import LayerDataBuilder
|
||||||
from cura import LayerDataDecorator
|
from cura import LayerDataDecorator
|
||||||
from cura.LayerPolygon import LayerPolygon
|
from cura.LayerPolygon import LayerPolygon
|
||||||
from UM.Scene.SliceableObjectDecorator import SliceableObjectDecorator
|
from cura.SliceableObjectDecorator import SliceableObjectDecorator
|
||||||
|
|
||||||
import numpy
|
import numpy
|
||||||
import math
|
import math
|
||||||
|
@ -263,12 +260,6 @@ class GCodeReader(MeshReader):
|
||||||
decorator = LayerDataDecorator.LayerDataDecorator()
|
decorator = LayerDataDecorator.LayerDataDecorator()
|
||||||
decorator.setLayerData(layer_mesh)
|
decorator.setLayerData(layer_mesh)
|
||||||
scene_node.addDecorator(decorator)
|
scene_node.addDecorator(decorator)
|
||||||
|
|
||||||
sliceable_decorator = SliceableObjectDecorator()
|
|
||||||
sliceable_decorator.setBlockSlicing(True)
|
|
||||||
sliceable_decorator.setSliceable(False)
|
|
||||||
scene_node.addDecorator(sliceable_decorator)
|
|
||||||
|
|
||||||
Application.getInstance().getController().getScene().gcode_list = glist
|
Application.getInstance().getController().getScene().gcode_list = glist
|
||||||
|
|
||||||
Logger.log("d", "Finished parsing %s" % file_name)
|
Logger.log("d", "Finished parsing %s" % file_name)
|
||||||
|
|
|
@ -1,16 +1,17 @@
|
||||||
# Contributed by Seva Alekseyev <sevaa@nih.gov> with National Institutes of Health, 2016
|
# Contributed by Seva Alekseyev <sevaa@nih.gov> with National Institutes of Health, 2016
|
||||||
# Cura is released under the terms of the AGPLv3 or higher.
|
# Cura is released under the terms of the AGPLv3 or higher.
|
||||||
|
|
||||||
from UM.Mesh.MeshReader import MeshReader
|
from math import pi, sin, cos, sqrt
|
||||||
from UM.Mesh.MeshBuilder import MeshBuilder
|
|
||||||
|
import numpy
|
||||||
|
|
||||||
|
from UM.Job import Job
|
||||||
from UM.Logger import Logger
|
from UM.Logger import Logger
|
||||||
from UM.Math.Matrix import Matrix
|
from UM.Math.Matrix import Matrix
|
||||||
from UM.Math.Vector import Vector
|
from UM.Math.Vector import Vector
|
||||||
|
from UM.Mesh.MeshBuilder import MeshBuilder
|
||||||
|
from UM.Mesh.MeshReader import MeshReader
|
||||||
from UM.Scene.SceneNode import SceneNode
|
from UM.Scene.SceneNode import SceneNode
|
||||||
from UM.Job import Job
|
|
||||||
from math import pi, sin, cos, sqrt
|
|
||||||
import numpy
|
|
||||||
from UM.Scene.SliceableObjectDecorator import SliceableObjectDecorator
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
import xml.etree.cElementTree as ET
|
import xml.etree.cElementTree as ET
|
||||||
|
@ -97,8 +98,6 @@ class X3DReader(MeshReader):
|
||||||
Logger.logException("e", "Exception in X3D reader")
|
Logger.logException("e", "Exception in X3D reader")
|
||||||
return None
|
return None
|
||||||
|
|
||||||
sliceable_decorator = SliceableObjectDecorator()
|
|
||||||
node.addDecorator(sliceable_decorator)
|
|
||||||
return node
|
return node
|
||||||
|
|
||||||
# ------------------------- XML tree traversal
|
# ------------------------- XML tree traversal
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue