From 73b810c30f34eb81a1cbb13c5a4b1f98a2ea1b56 Mon Sep 17 00:00:00 2001 From: LarsBrubaker Date: Sun, 7 Feb 2021 10:12:06 -0800 Subject: [PATCH] Don't loose polygon winding --- .../PlaneCutObject3D.cs | 4 +--- .../ApplicationView/Config/BedConfig.cs | 2 +- StaticData/Stls/auto_pilot.stl | Bin 0 -> 74084 bytes Submodules/agg-sharp | 2 +- 4 files changed, 3 insertions(+), 5 deletions(-) create mode 100644 StaticData/Stls/auto_pilot.stl diff --git a/MatterControl.MeshOperations/PlaneCutObject3D.cs b/MatterControl.MeshOperations/PlaneCutObject3D.cs index 4033f1f73..f9d4747a7 100644 --- a/MatterControl.MeshOperations/PlaneCutObject3D.cs +++ b/MatterControl.MeshOperations/PlaneCutObject3D.cs @@ -72,9 +72,7 @@ namespace MatterHackers.MatterControl.DesignTools // remove every face above the cut plane RemoveFacesAboveCut(mesh); - var aPolys = slice.GetCorrectedWinding(); - - aPolys.Vertices().TriangulateFaces(null, mesh, CutHeight); + slice.Vertices().TriangulateFaces(null, mesh, CutHeight); mesh.Transform(itemMatrix.Inverted); diff --git a/MatterControlLib/ApplicationView/Config/BedConfig.cs b/MatterControlLib/ApplicationView/Config/BedConfig.cs index 244493d33..b456d8bf0 100644 --- a/MatterControlLib/ApplicationView/Config/BedConfig.cs +++ b/MatterControlLib/ApplicationView/Config/BedConfig.cs @@ -644,7 +644,7 @@ namespace MatterHackers.MatterControl this.LoadedGCode = loadedGCode; // Constrain to max layers - if (this.ActiveLayerIndex > loadedGCode.LayerCount) + if (this.ActiveLayerIndex > loadedGCode?.LayerCount) { this.ActiveLayerIndex = loadedGCode.LayerCount; } diff --git a/StaticData/Stls/auto_pilot.stl b/StaticData/Stls/auto_pilot.stl new file mode 100644 index 0000000000000000000000000000000000000000..74821ff9fe9a897b1ac724c39137b12da10d2150 GIT binary patch literal 74084 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 h2eL_E<#0QY%U9&nfiQG{wSh_>c<4VeG{ literal 0 HcmV?d00001 diff --git a/Submodules/agg-sharp b/Submodules/agg-sharp index 9693c16ef..ccc47a29c 160000 --- a/Submodules/agg-sharp +++ b/Submodules/agg-sharp @@ -1 +1 @@ -Subproject commit 9693c16ef9df11e1ebb3a4ea5a2bf94916341207 +Subproject commit ccc47a29cd2ab3c0ebc3fbc8584e1194f38b20d1