diff --git a/OpenNest.Posts.Cincinnati/CincinnatiPartSubprogramWriter.cs b/OpenNest.Posts.Cincinnati/CincinnatiPartSubprogramWriter.cs index f08f62e..38f944b 100644 --- a/OpenNest.Posts.Cincinnati/CincinnatiPartSubprogramWriter.cs +++ b/OpenNest.Posts.Cincinnati/CincinnatiPartSubprogramWriter.cs @@ -99,6 +99,7 @@ public sealed class CincinnatiPartSubprogramWriter mapping[key] = subNum; var pgm = part.Program.Clone() as Program; + pgm.Mode = Mode.Absolute; var bbox = pgm.BoundingBox(); pgm.Offset(-bbox.Location.X, -bbox.Location.Y); diff --git a/OpenNest.Posts.Cincinnati/FeatureUtils.cs b/OpenNest.Posts.Cincinnati/FeatureUtils.cs index 20fc501..e4384b5 100644 --- a/OpenNest.Posts.Cincinnati/FeatureUtils.cs +++ b/OpenNest.Posts.Cincinnati/FeatureUtils.cs @@ -69,8 +69,11 @@ public static class FeatureUtils /// Splits a part's program into features by rapids, classifies each as etch or cut, /// and orders etch features before cut features. /// - public static List<(List codes, bool isEtch)> SplitAndClassify(Part part) => - ClassifyAndOrder(SplitByRapids(part.Program.Codes)); + public static List<(List codes, bool isEtch)> SplitAndClassify(Part part) + { + part.Program.Mode = Mode.Absolute; + return ClassifyAndOrder(SplitByRapids(part.Program.Codes)); + } /// /// Returns true if any non-rapid move in the feature has LayerType.Scribe. diff --git a/OpenNest.Posts.Cincinnati/MaterialLibraryResolver.cs b/OpenNest.Posts.Cincinnati/MaterialLibraryResolver.cs index 6fca9e3..a42c2c4 100644 --- a/OpenNest.Posts.Cincinnati/MaterialLibraryResolver.cs +++ b/OpenNest.Posts.Cincinnati/MaterialLibraryResolver.cs @@ -24,7 +24,7 @@ public sealed class MaterialLibraryResolver System.Math.Abs(e.Thickness - thickness) <= ThicknessTolerance && string.Equals(e.Gas, gas, StringComparison.OrdinalIgnoreCase)); - return entry?.Library ?? ""; + return EnsureLibExtension(entry?.Library ?? ""); } public string ResolveEtchLibrary(string gas) @@ -32,7 +32,18 @@ public sealed class MaterialLibraryResolver var entry = _etchLibraries.FirstOrDefault(e => string.Equals(e.Gas, gas, StringComparison.OrdinalIgnoreCase)); - return entry?.Library ?? ""; + return EnsureLibExtension(entry?.Library ?? ""); + } + + private static string EnsureLibExtension(string library) + { + if (string.IsNullOrEmpty(library)) + return library; + + if (!library.EndsWith(".lib", StringComparison.OrdinalIgnoreCase)) + return library + ".lib"; + + return library; } public static string ResolveGas(Nest nest, CincinnatiPostConfig config)