From 1fe4bb41cf8181b915ce0a23756ff3217334ecef Mon Sep 17 00:00:00 2001 From: DomCR Date: Tue, 29 Sep 2026 16:51:15 +0200 Subject: [PATCH 1/2] Refine DXF dictionary defaults and writers Skip empty CadDictionary entries when writing objects, update the incompatible dictionary comment to a TODO, call writeEntry explicitly in DxfTablesSectionWriter, and remove/reorder several default root dictionary entries in CadDictionary.CreateDefaultEntries. --- .../DxfStreamWriter/DxfObjectsSectionWriter.cs | 7 ++++++- .../DxfStreamWriter/DxfTablesSectionWriter.cs | 2 +- src/ACadSharp/Objects/CadDictionary.cs | 18 +----------------- 3 files changed, 8 insertions(+), 19 deletions(-) diff --git a/src/ACadSharp/IO/DXF/DxfStreamWriter/DxfObjectsSectionWriter.cs b/src/ACadSharp/IO/DXF/DxfStreamWriter/DxfObjectsSectionWriter.cs index 378e4bf71..511a53472 100644 --- a/src/ACadSharp/IO/DXF/DxfStreamWriter/DxfObjectsSectionWriter.cs +++ b/src/ACadSharp/IO/DXF/DxfStreamWriter/DxfObjectsSectionWriter.cs @@ -50,7 +50,12 @@ protected void writeDictionary(CadDictionary dict) continue; } - //Not compatible dictionaries + if (entry is CadDictionary dictionary && !dictionary.Any()) + { + continue; + } + + //TODO: Not compatible dictionaries if (entryName == CadDictionary.AcadMaterial) { continue; diff --git a/src/ACadSharp/IO/DXF/DxfStreamWriter/DxfTablesSectionWriter.cs b/src/ACadSharp/IO/DXF/DxfStreamWriter/DxfTablesSectionWriter.cs index 69c01f4b8..e9faf4ee7 100644 --- a/src/ACadSharp/IO/DXF/DxfStreamWriter/DxfTablesSectionWriter.cs +++ b/src/ACadSharp/IO/DXF/DxfStreamWriter/DxfTablesSectionWriter.cs @@ -52,7 +52,7 @@ private void writeTable(Table table, string subclass = null, bool writeFla continue; } - writeEntry(entry, writeFlags); + this.writeEntry(entry, writeFlags); } this._writer.Write(DxfCode.Start, DxfFileToken.EndTable); diff --git a/src/ACadSharp/Objects/CadDictionary.cs b/src/ACadSharp/Objects/CadDictionary.cs index 33b7c2c2a..8a78520a0 100644 --- a/src/ACadSharp/Objects/CadDictionary.cs +++ b/src/ACadSharp/Objects/CadDictionary.cs @@ -170,34 +170,18 @@ public static void CreateDefaultEntries(CadDictionary root) { root.TryAdd(new CadDictionary(AcadColor)); root.TryAdd(new CadDictionary(AcadGroup)); - root.TryAdd(new CadDictionary(AcadLayout)); - root.TryAdd(new CadDictionary(AcadMaterial)); root.TryAdd(new CadDictionary(AcadSortEnts)); - root.TryAdd(new CadDictionary(AcadMLeaderStyle)); - root.TryAdd(new CadDictionary(AcadMLineStyle)); - root.TryAdd(new CadDictionary(AcadTableStyle)); root.TryAdd(new CadDictionary(AcadPlotSettings)); - - //root.TryAdd(new CadDictionaryWithDefault(AcadPlotStyleName, new PlotSettings("Normal"))); - - // { AcadPlotStyleName, new CadDictionaryWithDefault() }, //Add default entry "Normal" PlaceHolder ?? - root.TryAdd(new CadDictionary(VariableDictionary)); - - //DictionaryVars Entry DIMASSOC and HIDETEXT ?? - root.TryAdd(new CadDictionary(AcadScaleList)); - root.TryAdd(new CadDictionary(AcadVisualStyle)); - root.TryAdd(new CadDictionary(AcadFieldList)); root.TryAdd(new CadDictionary(AcadImageDict)); - - root.TryAdd(new CadDictionary(AcadMaterial)); + root.TryAdd(new CadDictionary(AcadFieldList)); } /// From fff41befe4cfa31071c5a4a82dd7d6f054cb9095 Mon Sep 17 00:00:00 2001 From: DomCR Date: Thu, 1 Oct 2026 09:07:38 +0000 Subject: [PATCH 2/2] Update project version to 3.8.6 --- src/ACadSharp/ACadSharp.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ACadSharp/ACadSharp.csproj b/src/ACadSharp/ACadSharp.csproj index 1df1b7346..6645cf5e8 100644 --- a/src/ACadSharp/ACadSharp.csproj +++ b/src/ACadSharp/ACadSharp.csproj @@ -17,7 +17,7 @@ true README.md - 3.8.5 + 3.8.6 ../nupkg True ../ACadSharp.snk