From 113782f65e0585ea907bb3cf4d5cdd6436138d1c Mon Sep 17 00:00:00 2001 From: wmayer Date: Thu, 18 Apr 2024 13:57:48 +0200 Subject: [PATCH] CAM: fix regressions with material handling The ShapeAppearance is a list of materials and thus assigning a color with 'obj.ViewObject.ShapeAppearance.DiffuseColor = color' is incorrect. But doing it with 'obj.ViewObject.ShapeAppearance[0].DiffuseColor = color' doesn't work as expected because the internal notification doesn't work with a list. So, the only viable way is to revert the changes and do it by assigning the color to the 'ShapeColor' attribute. --- src/Mod/CAM/Path/Dressup/Gui/Dogbone.py | 4 ++-- src/Mod/CAM/Path/Dressup/Gui/ZCorrect.py | 2 +- src/Mod/CAM/Path/Dressup/Tags.py | 6 +++--- src/Mod/CAM/Path/Main/Gui/Simulator.py | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/Mod/CAM/Path/Dressup/Gui/Dogbone.py b/src/Mod/CAM/Path/Dressup/Gui/Dogbone.py index 3fb153a2be..f3b4a8d619 100644 --- a/src/Mod/CAM/Path/Dressup/Gui/Dogbone.py +++ b/src/Mod/CAM/Path/Dressup/Gui/Dogbone.py @@ -59,7 +59,7 @@ def debugMarker(vector, label, color=None, radius=0.5): vector, FreeCAD.Rotation(FreeCAD.Vector(0, 0, 1), 0) ) if color: - obj.ViewObject.ShapeAppearance.DiffuseColor = color + obj.ViewObject.ShapeColor = color def debugCircle(vector, r, label, color=None): @@ -73,7 +73,7 @@ def debugCircle(vector, r, label, color=None): ) obj.ViewObject.Transparency = 90 if color: - obj.ViewObject.ShapeAppearance.DiffuseColor = color + obj.ViewObject.ShapeColor = color def addAngle(a1, a2): diff --git a/src/Mod/CAM/Path/Dressup/Gui/ZCorrect.py b/src/Mod/CAM/Path/Dressup/Gui/ZCorrect.py index 8de1c58ab2..d4c038c5b4 100644 --- a/src/Mod/CAM/Path/Dressup/Gui/ZCorrect.py +++ b/src/Mod/CAM/Path/Dressup/Gui/ZCorrect.py @@ -231,7 +231,7 @@ class TaskPanel: ) self.interpshape.Shape = obj.interpSurface self.interpshape.ViewObject.Transparency = 60 - self.interpshape.ViewObject.ShapeAppearance.DiffuseColor = (1.00000, 1.00000, 0.01961) + self.interpshape.ViewObject.ShapeColor = (1.00000, 1.00000, 0.01961) self.interpshape.ViewObject.Selectable = False stock = PathUtils.findParentJob(obj).Stock self.interpshape.Placement.Base.z = stock.Shape.BoundBox.ZMax diff --git a/src/Mod/CAM/Path/Dressup/Tags.py b/src/Mod/CAM/Path/Dressup/Tags.py index 52919dc04a..f9b24ec2d2 100644 --- a/src/Mod/CAM/Path/Dressup/Tags.py +++ b/src/Mod/CAM/Path/Dressup/Tags.py @@ -83,7 +83,7 @@ def debugMarker(vector, label, color=None, radius=0.5): vector, FreeCAD.Rotation(FreeCAD.Vector(0, 0, 1), 0) ) if color: - obj.ViewObject.ShapeAppearance.DiffuseColor = color + obj.ViewObject.ShapeColor = color def debugCylinder(vector, r, height, label, color=None): @@ -97,7 +97,7 @@ def debugCylinder(vector, r, height, label, color=None): ) obj.ViewObject.Transparency = 90 if color: - obj.ViewObject.ShapeAppearance.DiffuseColor = color + obj.ViewObject.ShapeColor = color def debugCone(vector, r1, r2, height, label, color=None): @@ -112,7 +112,7 @@ def debugCone(vector, r1, r2, height, label, color=None): ) obj.ViewObject.Transparency = 90 if color: - obj.ViewObject.ShapeAppearance.DiffuseColor = color + obj.ViewObject.ShapeColor = color class Tag: diff --git a/src/Mod/CAM/Path/Main/Gui/Simulator.py b/src/Mod/CAM/Path/Main/Gui/Simulator.py index 98b21d6c5e..0e4b53cf43 100644 --- a/src/Mod/CAM/Path/Main/Gui/Simulator.py +++ b/src/Mod/CAM/Path/Main/Gui/Simulator.py @@ -228,7 +228,7 @@ class PathSimulation: ) self.cutMaterialIn.ViewObject.Proxy = 0 self.cutMaterialIn.ViewObject.show() - self.cutMaterialIn.ViewObject.ShapeAppearance.DiffuseColor = (1.0, 0.85, 0.45, 0.0) + self.cutMaterialIn.ViewObject.ShapeColor = (1.0, 0.85, 0.45, 0.0) else: self.cutMaterial = FreeCAD.ActiveDocument.addObject( "Part::FeaturePython", "CutMaterial" @@ -236,7 +236,7 @@ class PathSimulation: self.cutMaterial.Shape = self.job.Stock.Shape self.cutMaterial.ViewObject.Proxy = 0 self.cutMaterial.ViewObject.show() - self.cutMaterial.ViewObject.ShapeAppearance.DiffuseColor = (0.5, 0.25, 0.25, 0.0) + self.cutMaterial.ViewObject.ShapeColor = (0.5, 0.25, 0.25, 0.0) # Add cut path solid for debug if self.debug: