From fef15c706fcbab1e6d2f6386e1a2bbec87414dac Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Tue, 25 Oct 2016 22:51:44 +0200 Subject: [PATCH 1/2] Render an indication of the origin of the machine --- cura/BuildVolume.py | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/cura/BuildVolume.py b/cura/BuildVolume.py index ce9967a5a2..865ab059e6 100644 --- a/cura/BuildVolume.py +++ b/cura/BuildVolume.py @@ -33,6 +33,9 @@ PRIME_CLEARANCE = 1.5 ## Build volume is a special kind of node that is responsible for rendering the printable area & disallowed areas. class BuildVolume(SceneNode): VolumeOutlineColor = Color(12, 169, 227, 255) + XAxisColor = Color(255, 0, 0, 255) + YAxisColor = Color(0, 0, 255, 255) + ZAxisColor = Color(0, 255, 0, 255) raftThicknessChanged = Signal() @@ -45,6 +48,8 @@ class BuildVolume(SceneNode): self._shader = None + self._origin_mesh = None + self._grid_mesh = None self._grid_shader = None @@ -128,6 +133,7 @@ class BuildVolume(SceneNode): self._grid_shader = OpenGL.getInstance().createShaderProgram(Resources.getPath(Resources.Shaders, "grid.shader")) renderer.queueNode(self, mode = RenderBatch.RenderMode.Lines) + renderer.queueNode(self, mesh = self._origin_mesh) renderer.queueNode(self, mesh = self._grid_mesh, shader = self._grid_shader, backface_cull = True) if self._disallowed_area_mesh: renderer.queueNode(self, mesh = self._disallowed_area_mesh, shader = self._shader, transparent = True, backface_cull = True, sort = -9) @@ -170,6 +176,38 @@ class BuildVolume(SceneNode): self.setMeshData(mb.build()) + mb = MeshBuilder() + + if self._global_container_stack.getProperty("machine_center_is_zero", "value"): + origin = (Vector(min_w, min_h, min_d) + Vector(max_w, min_h, max_d)) / 2 + else: + origin = Vector(min_w, min_h, max_d) + + axes_length = 10 + axes_width = 0.5 + mb.addCube( + width = axes_length, + height = axes_width, + depth = axes_width, + center = origin + Vector(axes_length / 2, 0, 0), + color = self.XAxisColor + ) + mb.addCube( + width = axes_width, + height = axes_length, + depth = axes_width, + center = origin + Vector(0, axes_length / 2, 0), + color = self.YAxisColor + ) + mb.addCube( + width = axes_width, + height = axes_width, + depth = axes_length, + center = origin - Vector(0, 0, axes_length / 2), + color = self.ZAxisColor + ) + self._origin_mesh = mb.build() + mb = MeshBuilder() mb.addQuad( Vector(min_w, min_h - 0.2, min_d), From 55191b722a6a9e2123d47ae9f4c9c4b7a4dd89ff Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Tue, 25 Oct 2016 23:06:23 +0200 Subject: [PATCH 2/2] Codestyle & documentation --- cura/BuildVolume.py | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/cura/BuildVolume.py b/cura/BuildVolume.py index 865ab059e6..c87f3a8cbd 100644 --- a/cura/BuildVolume.py +++ b/cura/BuildVolume.py @@ -49,6 +49,8 @@ class BuildVolume(SceneNode): self._shader = None self._origin_mesh = None + self._origin_line_length = 20 + self._origin_line_width = 0.5 self._grid_mesh = None self._grid_shader = None @@ -178,32 +180,31 @@ class BuildVolume(SceneNode): mb = MeshBuilder() + # Indication of the machine origin if self._global_container_stack.getProperty("machine_center_is_zero", "value"): origin = (Vector(min_w, min_h, min_d) + Vector(max_w, min_h, max_d)) / 2 else: origin = Vector(min_w, min_h, max_d) - axes_length = 10 - axes_width = 0.5 mb.addCube( - width = axes_length, - height = axes_width, - depth = axes_width, - center = origin + Vector(axes_length / 2, 0, 0), + width = self._origin_line_length, + height = self._origin_line_width, + depth = self._origin_line_width, + center = origin + Vector(self._origin_line_length / 2, 0, 0), color = self.XAxisColor ) mb.addCube( - width = axes_width, - height = axes_length, - depth = axes_width, - center = origin + Vector(0, axes_length / 2, 0), + width = self._origin_line_width, + height = self._origin_line_length, + depth = self._origin_line_width, + center = origin + Vector(0, self._origin_line_length / 2, 0), color = self.YAxisColor ) mb.addCube( - width = axes_width, - height = axes_width, - depth = axes_length, - center = origin - Vector(0, 0, axes_length / 2), + width = self._origin_line_width, + height = self._origin_line_width, + depth = self._origin_line_length, + center = origin - Vector(0, 0, self._origin_line_length / 2), color = self.ZAxisColor ) self._origin_mesh = mb.build()