From 4339e9af37cbe142165c66fed07742277c4ca988 Mon Sep 17 00:00:00 2001 From: DomCR Date: Mon, 28 Nov 2022 10:18:24 +0100 Subject: [PATCH 1/9] ignore test classes --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index d129fc42..9d6fb065 100644 --- a/.gitignore +++ b/.gitignore @@ -354,3 +354,4 @@ MigrationBackup/ /local /samples/out /ACadTestGenerator +/ACadSharp/IO/DWG/DwgTestClasses From 3717555bc94e1286fefb944c8a368c71ec3edeab Mon Sep 17 00:00:00 2001 From: DomCR Date: Sat, 17 Dec 2022 18:08:54 +0100 Subject: [PATCH 2/9] submodule --- CSUtilities | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CSUtilities b/CSUtilities index c660c139..42c5e9d1 160000 --- a/CSUtilities +++ b/CSUtilities @@ -1 +1 @@ -Subproject commit c660c139400a1ee88129e888d6ee818e831ad4c9 +Subproject commit 42c5e9d1c2ffbe4d10fbae2d7c4c3183641e9887 From 84d849db63a60ebac135aee57034a4cb154f31d3 Mon Sep 17 00:00:00 2001 From: DomCR Date: Sat, 17 Dec 2022 18:36:43 +0100 Subject: [PATCH 3/9] first try --- ACadSharp.Examples/Program.cs | 2 +- ACadSharp/Classes/DxfClass.cs | 3 +-- ACadSharp/Classes/DxfClassCollection.cs | 5 +++++ ACadSharp/Classes/IDxfDefinedClass.cs | 14 ++++++++++++++ ACadSharp/Entities/Hatch.cs | 20 ++++++++++++++++++-- 5 files changed, 39 insertions(+), 5 deletions(-) create mode 100644 ACadSharp/Classes/IDxfDefinedClass.cs diff --git a/ACadSharp.Examples/Program.cs b/ACadSharp.Examples/Program.cs index f9f9a382..08566f0b 100644 --- a/ACadSharp.Examples/Program.cs +++ b/ACadSharp.Examples/Program.cs @@ -10,7 +10,7 @@ namespace ACadSharp.Examples { class Program { - const string file = "../../../../samples/sample_AC1021.dwg"; + const string file = "../../../../samples/sample_AC1032.dwg"; static void Main(string[] args) { diff --git a/ACadSharp/Classes/DxfClass.cs b/ACadSharp/Classes/DxfClass.cs index 1e945ad0..22be6117 100644 --- a/ACadSharp/Classes/DxfClass.cs +++ b/ACadSharp/Classes/DxfClass.cs @@ -1,6 +1,4 @@ using ACadSharp.Attributes; -using System.Collections.Generic; -using System.Text; namespace ACadSharp.Classes { @@ -11,6 +9,7 @@ public class DxfClass /// [DxfCodeValue(1)] public string DxfName { get; set; } + /// /// C++ class name. Used to bind with software that defines object class behavior; always unique /// diff --git a/ACadSharp/Classes/DxfClassCollection.cs b/ACadSharp/Classes/DxfClassCollection.cs index f095e442..dc7b631d 100644 --- a/ACadSharp/Classes/DxfClassCollection.cs +++ b/ACadSharp/Classes/DxfClassCollection.cs @@ -18,6 +18,11 @@ public void Add(DxfClass item) if (_list.ContainsKey(item.DxfName)) return; + if(item.DxfName == "HATCH") + { + + } + _list.Add(item.DxfName, item); } diff --git a/ACadSharp/Classes/IDxfDefinedClass.cs b/ACadSharp/Classes/IDxfDefinedClass.cs new file mode 100644 index 00000000..97d13c17 --- /dev/null +++ b/ACadSharp/Classes/IDxfDefinedClass.cs @@ -0,0 +1,14 @@ +namespace ACadSharp.Classes +{ + /// + /// Object holds information for application-defined dxf class + /// + public interface IDxfDefinedClass + { + /// + /// Gets the dxf class definition for this object + /// + /// + DxfClass GetDxfClass(); + } +} diff --git a/ACadSharp/Entities/Hatch.cs b/ACadSharp/Entities/Hatch.cs index cb3b005d..5e3764f7 100644 --- a/ACadSharp/Entities/Hatch.cs +++ b/ACadSharp/Entities/Hatch.cs @@ -1,5 +1,5 @@ using ACadSharp.Attributes; -using ACadSharp.IO.Templates; +using ACadSharp.Classes; using CSMath; using System.Collections.Generic; @@ -14,7 +14,7 @@ namespace ACadSharp.Entities /// [DxfName(DxfFileToken.EntityHatch)] [DxfSubClass(DxfSubclassMarker.Hatch)] - public partial class Hatch : Entity + public partial class Hatch : Entity, IDxfDefinedClass { /// public override ObjectType ObjectType => ObjectType.HATCH; @@ -125,5 +125,21 @@ public partial class Hatch : Entity public List Paths { get; set; } = new List(); public Hatch() : base() { } + + /// + public DxfClass GetDxfClass() + { + //Not present in all the files, version dependant, only in AC1014 + return new DxfClass + { + DxfName = this.ObjectName, + CppClassName = DxfSubclassMarker.Hatch, + ProxyFlags = ProxyFlags.None, + WasAProxy = false, + IsAnEntity = true, + ClassNumber = 528, + ItemClassId = 498 + }; + } } } From bc7f1284de06cc69675c1168d65659beae38549a Mon Sep 17 00:00:00 2001 From: DomCR Date: Fri, 3 Mar 2023 21:33:17 +0100 Subject: [PATCH 4/9] data --- ACadSharp/Classes/DxfClass.cs | 4 ++ ACadSharp/Classes/ProxyFlags.cs | 2 - ACadSharp/Entities/Hatch.cs | 18 +-------- .../DWG/DwgStreamReaders/DwgClassesReader.cs | 35 ++++++++---------- reference/ACadFileExploration.xlsx | Bin 18397 -> 21883 bytes 5 files changed, 21 insertions(+), 38 deletions(-) diff --git a/ACadSharp/Classes/DxfClass.cs b/ACadSharp/Classes/DxfClass.cs index c716fb68..e0c32332 100644 --- a/ACadSharp/Classes/DxfClass.cs +++ b/ACadSharp/Classes/DxfClass.cs @@ -56,6 +56,10 @@ public class DxfClass /// public short ItemClassId { get; set; } + public ACadVersion DwgVersion { get; set; } + + public short MaintenanceVersion { get; set; } + /// public override string ToString() { diff --git a/ACadSharp/Classes/ProxyFlags.cs b/ACadSharp/Classes/ProxyFlags.cs index d89d8035..e3a76e03 100644 --- a/ACadSharp/Classes/ProxyFlags.cs +++ b/ACadSharp/Classes/ProxyFlags.cs @@ -2,8 +2,6 @@ namespace ACadSharp.Classes { - //https://help.autodesk.com/view/OARX/2021/ENU/?guid=GUID-DBD5351C-E408-4CED-9336-3BD489179EF5 - [Flags] public enum ProxyFlags : ushort { diff --git a/ACadSharp/Entities/Hatch.cs b/ACadSharp/Entities/Hatch.cs index 5e3764f7..872f04bc 100644 --- a/ACadSharp/Entities/Hatch.cs +++ b/ACadSharp/Entities/Hatch.cs @@ -14,7 +14,7 @@ namespace ACadSharp.Entities /// [DxfName(DxfFileToken.EntityHatch)] [DxfSubClass(DxfSubclassMarker.Hatch)] - public partial class Hatch : Entity, IDxfDefinedClass + public partial class Hatch : Entity { /// public override ObjectType ObjectType => ObjectType.HATCH; @@ -125,21 +125,5 @@ public partial class Hatch : Entity, IDxfDefinedClass public List Paths { get; set; } = new List(); public Hatch() : base() { } - - /// - public DxfClass GetDxfClass() - { - //Not present in all the files, version dependant, only in AC1014 - return new DxfClass - { - DxfName = this.ObjectName, - CppClassName = DxfSubclassMarker.Hatch, - ProxyFlags = ProxyFlags.None, - WasAProxy = false, - IsAnEntity = true, - ClassNumber = 528, - ItemClassId = 498 - }; - } } } diff --git a/ACadSharp/IO/DWG/DwgStreamReaders/DwgClassesReader.cs b/ACadSharp/IO/DWG/DwgStreamReaders/DwgClassesReader.cs index fea79c69..448b44f4 100644 --- a/ACadSharp/IO/DWG/DwgStreamReaders/DwgClassesReader.cs +++ b/ACadSharp/IO/DWG/DwgStreamReaders/DwgClassesReader.cs @@ -93,29 +93,26 @@ public DxfClassCollection Read(IDwgStreamReader sreader) //BS : itemclassid -- 0x1F2 for classes which produce entities, 0x1F3 for classes which produce objects. dxfClass.ItemClassId = sreader.ReadBitShort(); - if (this._fileHeader.AcadVersion == ACadVersion.AC1018) + if (this._fileHeader.AcadVersion >= ACadVersion.AC1018) { - //BL : Number of objects created of this type in the current DB(DXF 91). - sreader.ReadBitLong(); - //BS : Dwg Version - sreader.ReadBitShort(); - //BS : Maintenance release version. - sreader.ReadBitShort(); - //BL : Unknown(normally 0L) - sreader.ReadBitLong(); - //BL : Unknown(normally 0L) - sreader.ReadBitLong(); - } - else if (this._fileHeader.AcadVersion > ACadVersion.AC1018) - { - //BL : Number of objects created of this type in the current DB(DXF 91). dxfClass.InstanceCount = sreader.ReadBitLong(); - //BS : Dwg Version - sreader.ReadBitLong(); - //BS : Maintenance release version. - sreader.ReadBitLong(); + if (this._fileHeader.AcadVersion == ACadVersion.AC1018) + { + //BS : Dwg Version + dxfClass.DwgVersion = (ACadVersion)sreader.ReadBitShort(); + //BS : Maintenance release version. + dxfClass.MaintenanceVersion = sreader.ReadBitShort(); + } + else if (this._fileHeader.AcadVersion > ACadVersion.AC1018) + { + //BS : Dwg Version + dxfClass.DwgVersion = (ACadVersion)sreader.ReadBitLong(); + //BS : Maintenance release version. + dxfClass.MaintenanceVersion = (short)sreader.ReadBitLong(); + } + //BL : Unknown(normally 0L) sreader.ReadBitLong(); //BL : Unknown(normally 0L) diff --git a/reference/ACadFileExploration.xlsx b/reference/ACadFileExploration.xlsx index 84414ed78af3714a442defa196a39c4a5423663a..20c313bff7e3ad3f7287830765746405599de7fc 100644 GIT binary patch delta 7363 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 O{MnuUWZY@|b@pGh=9c>a delta 3921 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 Date: Fri, 3 Mar 2023 22:45:43 +0100 Subject: [PATCH 5/9] data --- reference/ACadFileExploration.xlsx | Bin 21883 -> 26708 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/reference/ACadFileExploration.xlsx b/reference/ACadFileExploration.xlsx index 20c313bff7e3ad3f7287830765746405599de7fc..8bdafc0d2cbd58281646587e77ae322652d0b16b 100644 GIT binary patch delta 8885 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 delta 4318 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 OPy#$|!E>X((SHHXVBnJg From 1687255d250fd289dc7f57fc5deb4aa6abe208e2 Mon Sep 17 00:00:00 2001 From: DomCR Date: Sun, 5 Mar 2023 19:56:53 +0100 Subject: [PATCH 6/9] classes --- ACadSharp/CadDocument.cs | 4 +- ACadSharp/Classes/DxfClassCollection.cs | 357 +++++++++++++++++++++++- reference/ACadFileExploration.xlsx | Bin 26708 -> 26895 bytes 3 files changed, 355 insertions(+), 6 deletions(-) diff --git a/ACadSharp/CadDocument.cs b/ACadSharp/CadDocument.cs index 88b5835c..45bd9034 100644 --- a/ACadSharp/CadDocument.cs +++ b/ACadSharp/CadDocument.cs @@ -1,5 +1,4 @@ -using ACadSharp.Blocks; -using ACadSharp.Classes; +using ACadSharp.Classes; using ACadSharp.Entities; using ACadSharp.Header; using ACadSharp.Objects; @@ -8,7 +7,6 @@ using System; using System.Collections.Generic; using System.Linq; -using System.Text; namespace ACadSharp { diff --git a/ACadSharp/Classes/DxfClassCollection.cs b/ACadSharp/Classes/DxfClassCollection.cs index dc7b631d..316092f6 100644 --- a/ACadSharp/Classes/DxfClassCollection.cs +++ b/ACadSharp/Classes/DxfClassCollection.cs @@ -13,17 +13,368 @@ public class DxfClassCollection : ICollection public Dictionary _list = new Dictionary(); + public static void UpdateDxfClasses(CadDocument doc) + { + //AcDbDictionaryWithDefault + doc.Classes.AddOrUpdate(new DxfClass + { + CppClassName = "AcDbDictionaryWithDefault", + ClassNumber = (short)(500 + doc.Classes.Count), + DwgVersion = (ACadVersion)22, + DxfName = "ACDBDICTIONARYWDFLT", + ItemClassId = 499, + MaintenanceVersion = 42, + ProxyFlags = ProxyFlags.R13FormatProxy, + WasZombie = false, + }); + + //AcDbPlaceHolder + doc.Classes.AddOrUpdate(new DxfClass + { + CppClassName = "AcDbPlaceHolder", + ClassNumber = (short)(500 + doc.Classes.Count), + DwgVersion = (ACadVersion)0, + DxfName = "ACDBPLACEHOLDER", + ItemClassId = 499, + MaintenanceVersion = 0, + ProxyFlags = ProxyFlags.None, + WasZombie = false, + }); + + //AcDbLayout + doc.Classes.AddOrUpdate(new DxfClass + { + CppClassName = "AcDbLayout", + ClassNumber = (short)(500 + doc.Classes.Count), + DwgVersion = (ACadVersion)0, + DxfName = "LAYOUT", + ItemClassId = 499, + MaintenanceVersion = 0, + ProxyFlags = ProxyFlags.None, + WasZombie = false, + }); + + //AcDbDictionaryVar + doc.Classes.AddOrUpdate(new DxfClass + { + CppClassName = "AcDbDictionaryVar", + ClassNumber = (short)(500 + doc.Classes.Count), + DwgVersion = (ACadVersion)20, + DxfName = "DICTIONARYVAR", + ItemClassId = 499, + MaintenanceVersion = 0, + ProxyFlags = ProxyFlags.None, + WasZombie = false, + }); + + //AcDbTableStyle + doc.Classes.AddOrUpdate(new DxfClass + { + CppClassName = "AcDbTableStyle", + ClassNumber = (short)(500 + doc.Classes.Count), + DwgVersion = ACadVersion.AC1018, + DxfName = "TABLESTYLE", + ItemClassId = 499, + MaintenanceVersion = 0, + ProxyFlags = (ProxyFlags)4095, + WasZombie = false, + }); + + //AcDbMaterial + doc.Classes.AddOrUpdate(new DxfClass + { + CppClassName = "AcDbMaterial", + ClassNumber = (short)(500 + doc.Classes.Count), + DwgVersion = 0, + DxfName = "MATERIAL", + ItemClassId = 499, + MaintenanceVersion = 0, + ProxyFlags = ProxyFlags.EraseAllowed | ProxyFlags.CloningAllowed | ProxyFlags.DisablesProxyWarningDialog, + WasZombie = false, + }); + + //AcDbVisualStyle + doc.Classes.AddOrUpdate(new DxfClass + { + CppClassName = "AcDbVisualStyle", + ClassNumber = (short)(500 + doc.Classes.Count), + DwgVersion = ACadVersion.AC1021, + DxfName = "VISUALSTYLE", + ItemClassId = 499, + MaintenanceVersion = 0, + ProxyFlags = (ProxyFlags)4095, + WasZombie = false, + }); + + //AcDbScale + doc.Classes.AddOrUpdate(new DxfClass + { + CppClassName = "AcDbScale", + ClassNumber = (short)(500 + doc.Classes.Count), + DwgVersion = ACadVersion.AC1021, + DxfName = "SCALE", + ItemClassId = 499, + MaintenanceVersion = 1, + ProxyFlags = ProxyFlags.EraseAllowed | ProxyFlags.CloningAllowed | ProxyFlags.DisablesProxyWarningDialog, + WasZombie = false, + }); + + //AcDbMLeaderStyle + doc.Classes.AddOrUpdate(new DxfClass + { + CppClassName = "AcDbMLeaderStyle", + ClassNumber = (short)(500 + doc.Classes.Count), + DwgVersion = ACadVersion.AC1021, + DxfName = "MLEADERSTYLE", + ItemClassId = 499, + MaintenanceVersion = 25, + ProxyFlags = (ProxyFlags)4095, + WasZombie = false, + }); + + //AcDbCellStyleMap + doc.Classes.AddOrUpdate(new DxfClass + { + CppClassName = "AcDbCellStyleMap", + ClassNumber = (short)(500 + doc.Classes.Count), + DwgVersion = ACadVersion.AC1021, + DxfName = "CELLSTYLEMAP", + ItemClassId = 499, + MaintenanceVersion = 25, + ProxyFlags = ProxyFlags.CloningAllowed | ProxyFlags.DisablesProxyWarningDialog, + WasZombie = false, + }); + + //ExAcXREFPanelObject + doc.Classes.AddOrUpdate(new DxfClass + { + CppClassName = "ExAcXREFPanelObject", + ClassNumber = (short)(500 + doc.Classes.Count), + DwgVersion = 0, + DxfName = "EXACXREFPANELOBJECT", + ItemClassId = 499, + MaintenanceVersion = 0, + ProxyFlags = ProxyFlags.EraseAllowed | ProxyFlags.DisablesProxyWarningDialog, + WasZombie = false, + }); + + //AcDbImpNonPersistentObjectsCollection + doc.Classes.AddOrUpdate(new DxfClass + { + CppClassName = "AcDbImpNonPersistentObjectsCollection", + ClassNumber = (short)(500 + doc.Classes.Count), + DwgVersion = 0, + DxfName = "NPOCOLLECTION", + ItemClassId = 499, + MaintenanceVersion = 0, + ProxyFlags = ProxyFlags.EraseAllowed | ProxyFlags.CloningAllowed | ProxyFlags.DisablesProxyWarningDialog, + WasZombie = false, + }); + + //AcDbLayerIndex + doc.Classes.AddOrUpdate(new DxfClass + { + CppClassName = "AcDbLayerIndex", + ClassNumber = (short)(500 + doc.Classes.Count), + DwgVersion = 0, + DxfName = "LAYER_INDEX", + ItemClassId = 499, + MaintenanceVersion = 0, + ProxyFlags = ProxyFlags.None, + WasZombie = false, + }); + + //AcDbSpatialIndex + doc.Classes.AddOrUpdate(new DxfClass + { + CppClassName = "AcDbSpatialIndex", + ClassNumber = (short)(500 + doc.Classes.Count), + DwgVersion = 0, + DxfName = "SPATIAL_INDEX", + ItemClassId = 499, + MaintenanceVersion = 0, + ProxyFlags = ProxyFlags.None, + WasZombie = false, + }); + + //AcDbIdBuffer + doc.Classes.AddOrUpdate(new DxfClass + { + CppClassName = "AcDbIdBuffer", + ClassNumber = (short)(500 + doc.Classes.Count), + DwgVersion = ACadVersion.AC1014, + DxfName = "IDBUFFER", + ItemClassId = 499, + MaintenanceVersion = 0, + ProxyFlags = ProxyFlags.R13FormatProxy, + WasZombie = false, + }); + + //AcDbSectionViewStyle + doc.Classes.AddOrUpdate(new DxfClass + { + CppClassName = "AcDbSectionViewStyle", + ClassNumber = (short)(500 + doc.Classes.Count), + DwgVersion = 0, + DxfName = "ACDBSECTIONVIEWSTYLE", + ItemClassId = 499, + MaintenanceVersion = 0, + ProxyFlags = ProxyFlags.EraseAllowed | ProxyFlags.DisablesProxyWarningDialog, + WasZombie = false, + }); + + //AcDbDetailViewStyle + doc.Classes.AddOrUpdate(new DxfClass + { + CppClassName = "AcDbDetailViewStyle", + ClassNumber = (short)(500 + doc.Classes.Count), + DwgVersion = 0, + DxfName = "ACDBDETAILVIEWSTYLE", + ItemClassId = 499, + MaintenanceVersion = 0, + ProxyFlags = ProxyFlags.EraseAllowed | ProxyFlags.DisablesProxyWarningDialog, + WasZombie = false, + }); + + //AcDbSubDMesh + doc.Classes.AddOrUpdate(new DxfClass + { + CppClassName = "AcDbSubDMesh", + ClassNumber = (short)(500 + doc.Classes.Count), + DwgVersion = 0, + DxfName = "MESH", + ItemClassId = 498, + MaintenanceVersion = 0, + ProxyFlags = ProxyFlags.None, + WasZombie = false, + }); + + //AcDbSortentsTable + doc.Classes.AddOrUpdate(new DxfClass + { + CppClassName = "AcDbSortentsTable", + ClassNumber = (short)(500 + doc.Classes.Count), + DwgVersion = ACadVersion.AC1014, + DxfName = "SORTENTSTABLE", + ItemClassId = 499, + MaintenanceVersion = 0, + ProxyFlags = ProxyFlags.None, + WasZombie = false, + }); + + //AcDbTextObjectContextData + doc.Classes.AddOrUpdate(new DxfClass + { + CppClassName = "AcDbTextObjectContextData", + ClassNumber = (short)(500 + doc.Classes.Count), + DwgVersion = 0, + DxfName = "ACDB_TEXTOBJECTCONTEXTDATA_CLASS", + ItemClassId = 499, + MaintenanceVersion = 0, + ProxyFlags = ProxyFlags.EraseAllowed | ProxyFlags.CloningAllowed | ProxyFlags.DisablesProxyWarningDialog, + WasZombie = false, + }); + + //AcDbWipeout + doc.Classes.AddOrUpdate(new DxfClass + { + ApplicationName = "WipeOut|Product Desc: Object Enabler for WipeOut entity | Company: Autodesk, Inc. | WEB Address: www.autodesk.com", + CppClassName = "AcDbWipeout", + ClassNumber = (short)(500 + doc.Classes.Count), + DwgVersion = ACadVersion.AC1015, + DxfName = "WIPEOUT", + ItemClassId = 498, + MaintenanceVersion = 0, + ProxyFlags = ProxyFlags.EraseAllowed | ProxyFlags.TransformAllowed | ProxyFlags.ColorChangeAllowed | ProxyFlags.LayerChangeAllowed | ProxyFlags.LinetypeChangeAllowed | ProxyFlags.LinetypeScaleChangeAllowed | ProxyFlags.VisibilityChangeAllowed | ProxyFlags.R13FormatProxy, + WasZombie = false, + }); + + //AcDbWipeoutVariables + doc.Classes.AddOrUpdate(new DxfClass + { + ApplicationName = "WipeOut|Product Desc: Object Enabler for WipeOut entity | Company: Autodesk, Inc. | WEB Address: www.autodesk.com", + CppClassName = "AcDbWipeoutVariables", + ClassNumber = (short)(500 + doc.Classes.Count), + DwgVersion = ACadVersion.AC1015, + DxfName = "WIPEOUTVARIABLES", + ItemClassId = 499, + MaintenanceVersion = 0, + ProxyFlags = ProxyFlags.R13FormatProxy, + WasZombie = false, + }); + + //AcDbDimAssoc + doc.Classes.AddOrUpdate(new DxfClass + { + ApplicationName = "AcDbDimAssoc | Product Desc: AcDim ARX App For Dimension | Company: Autodesk, Inc. | WEB Address: www.autodesk.com", + CppClassName = "AcDbDimAssoc", + ClassNumber = (short)(500 + doc.Classes.Count), + DwgVersion = 0, + DxfName = "DIMASSOC", + ItemClassId = 499, + MaintenanceVersion = 0, + ProxyFlags = ProxyFlags.None, + WasZombie = false, + }); + + //AcDbTable + doc.Classes.AddOrUpdate(new DxfClass + { + CppClassName = "AcDbTable", + ClassNumber = (short)(500 + doc.Classes.Count), + DwgVersion = ACadVersion.AC1018, + DxfName = "ACAD_TABLE", + ItemClassId = 498, + MaintenanceVersion = 0, + ProxyFlags = ProxyFlags.EraseAllowed | ProxyFlags.DisablesProxyWarningDialog, + WasZombie = false, + }); + + //AcDbTableContent + doc.Classes.AddOrUpdate(new DxfClass + { + CppClassName = "AcDbTableContent", + ClassNumber = (short)(500 + doc.Classes.Count), + DwgVersion = ACadVersion.AC1018, + DxfName = "TABLECONTENT", + ItemClassId = 499, + MaintenanceVersion = 21, + ProxyFlags = ProxyFlags.CloningAllowed | ProxyFlags.DisablesProxyWarningDialog, + WasZombie = false, + }); + + //AcDbTableGeometry + doc.Classes.AddOrUpdate(new DxfClass + { + CppClassName = "AcDbTableGeometry", + ClassNumber = (short)(500 + doc.Classes.Count), + DwgVersion = 0, + DxfName = "TABLEGEOMETRY", + ItemClassId = 499, + MaintenanceVersion = 0, + ProxyFlags = ProxyFlags.CloningAllowed | ProxyFlags.DisablesProxyWarningDialog, + WasZombie = false, + }); + } + public void Add(DxfClass item) { if (_list.ContainsKey(item.DxfName)) return; - if(item.DxfName == "HATCH") + _list.Add(item.DxfName, item); + } + + public void AddOrUpdate(DxfClass item) + { + if (_list.TryGetValue(item.DxfName, out DxfClass result)) { } - - _list.Add(item.DxfName, item); + else + { + _list.Add(item.DxfName, item); + } } public void Clear() diff --git a/reference/ACadFileExploration.xlsx b/reference/ACadFileExploration.xlsx index 8bdafc0d2cbd58281646587e77ae322652d0b16b..3299d17a085d38df14ce5054aec2ca839649c26f 100644 GIT binary patch delta 3331 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 ONHHHCG9u5vlK%nQfE5t{ delta 3089 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 E0|Md0ZvX%Q From 41c97a8e381518399c5dbaa6a02166514dac298f Mon Sep 17 00:00:00 2001 From: DomCR Date: Sun, 5 Mar 2023 20:05:03 +0100 Subject: [PATCH 7/9] update classes --- ACadSharp/Classes/DxfClassCollection.cs | 24 ++++++++++++------------ ACadSharp/IO/CadWriterBase.cs | 13 +++++++++++-- ACadSharp/IO/DWG/DwgWriter.cs | 5 +---- ACadSharp/IO/DXF/DxfWriter.cs | 5 +---- 4 files changed, 25 insertions(+), 22 deletions(-) diff --git a/ACadSharp/Classes/DxfClassCollection.cs b/ACadSharp/Classes/DxfClassCollection.cs index 316092f6..7dedeac5 100644 --- a/ACadSharp/Classes/DxfClassCollection.cs +++ b/ACadSharp/Classes/DxfClassCollection.cs @@ -7,11 +7,11 @@ namespace ACadSharp.Classes { public class DxfClassCollection : ICollection { - public int Count => _list.Count; + public int Count { get { return this._entries.Count; } } public bool IsReadOnly => false; - public Dictionary _list = new Dictionary(); + public Dictionary _entries = new Dictionary(); public static void UpdateDxfClasses(CadDocument doc) { @@ -359,32 +359,32 @@ public static void UpdateDxfClasses(CadDocument doc) public void Add(DxfClass item) { - if (_list.ContainsKey(item.DxfName)) + if (_entries.ContainsKey(item.DxfName)) return; - _list.Add(item.DxfName, item); + _entries.Add(item.DxfName, item); } public void AddOrUpdate(DxfClass item) { - if (_list.TryGetValue(item.DxfName, out DxfClass result)) + if (_entries.TryGetValue(item.DxfName, out DxfClass result)) { - + result.InstanceCount = item.InstanceCount; } else { - _list.Add(item.DxfName, item); + _entries.Add(item.DxfName, item); } } public void Clear() { - _list.Clear(); + _entries.Clear(); } public bool Contains(DxfClass item) { - return _list.Values.Contains(item); + return _entries.Values.Contains(item); } public void CopyTo(DxfClass[] array, int arrayIndex) @@ -394,17 +394,17 @@ public void CopyTo(DxfClass[] array, int arrayIndex) public IEnumerator GetEnumerator() { - return _list.Values.GetEnumerator(); + return _entries.Values.GetEnumerator(); } public bool Remove(DxfClass item) { - return this._list.Remove(item.DxfName); + return this._entries.Remove(item.DxfName); } IEnumerator IEnumerable.GetEnumerator() { - return this._list.Values.GetEnumerator(); + return this._entries.Values.GetEnumerator(); } } } diff --git a/ACadSharp/IO/CadWriterBase.cs b/ACadSharp/IO/CadWriterBase.cs index 5f529d41..a2c9a174 100644 --- a/ACadSharp/IO/CadWriterBase.cs +++ b/ACadSharp/IO/CadWriterBase.cs @@ -1,18 +1,27 @@ -namespace ACadSharp.IO +using ACadSharp.Classes; + +namespace ACadSharp.IO { public abstract class CadWriterBase : ICadWriter { public event NotificationEventHandler OnNotification; + protected CadDocument _document; + /// public abstract void Write(); /// public abstract void Dispose(); + public CadWriterBase(CadDocument document) + { + this._document = document; + } + protected void validateDocument() { - //TODO: Implement the document validation to check the structure + DxfClassCollection.UpdateDxfClasses(_document); } protected void triggerNotification(object sender, NotificationEventArgs e) diff --git a/ACadSharp/IO/DWG/DwgWriter.cs b/ACadSharp/IO/DWG/DwgWriter.cs index 09bc6ab3..4b1e69a7 100644 --- a/ACadSharp/IO/DWG/DwgWriter.cs +++ b/ACadSharp/IO/DWG/DwgWriter.cs @@ -19,8 +19,6 @@ public class DwgWriter : CadWriterBase private IDwgFileHeaderWriter _fileHeaderWriter; - private CadDocument _document; - private Dictionary _handlesMap = new Dictionary(); /// @@ -38,10 +36,9 @@ public DwgWriter(string filename, CadDocument document) /// /// /// - public DwgWriter(Stream stream, CadDocument document) + public DwgWriter(Stream stream, CadDocument document) : base(document) { this._stream = stream; - this._document = document; this._fileHeader = DwgFileHeader.CreateFileHeader(_version); } diff --git a/ACadSharp/IO/DXF/DxfWriter.cs b/ACadSharp/IO/DXF/DxfWriter.cs index 2c7316f3..143f2c93 100644 --- a/ACadSharp/IO/DXF/DxfWriter.cs +++ b/ACadSharp/IO/DXF/DxfWriter.cs @@ -6,7 +6,6 @@ namespace ACadSharp.IO { public class DxfWriter : CadWriterBase { - private CadDocument _document; private IDxfStreamWriter _writer; private CadObjectHolder _objectHolder = new CadObjectHolder(); @@ -27,7 +26,7 @@ public DxfWriter(string filename, CadDocument document, bool binary) /// The stream to write into /// /// - public DxfWriter(Stream stream, CadDocument document, bool binary) + public DxfWriter(Stream stream, CadDocument document, bool binary) : base(document) { var encoding = new UTF8Encoding(false); @@ -39,8 +38,6 @@ public DxfWriter(Stream stream, CadDocument document, bool binary) { this._writer = new DxfAsciiWriter(new StreamWriter(stream, encoding)); } - - this._document = document; } /// From aecab4fedcdb11eda137d9a2c9a2981d233c7afa Mon Sep 17 00:00:00 2001 From: DomCR Date: Tue, 7 Mar 2023 10:36:20 +0100 Subject: [PATCH 8/9] writer setup --- ACadSharp/CadDocument.cs | 2 - ACadSharp/IO/CadWriterBase.cs | 21 +- .../DWG/DwgStreamWriters/DwgObjectWriter.cs | 4 +- .../DxfStreamWriter/DxfSectionWriterBase.cs | 1 + ACadSharp/IO/ICadWriter.cs | 9 + reference/cad_recover.PNG | Bin 0 -> 11437 bytes reference/cad_recover_log.txt | 400 ++++++++++++++++++ 7 files changed, 428 insertions(+), 9 deletions(-) create mode 100644 reference/cad_recover.PNG create mode 100644 reference/cad_recover_log.txt diff --git a/ACadSharp/CadDocument.cs b/ACadSharp/CadDocument.cs index 45bd9034..e116a40e 100644 --- a/ACadSharp/CadDocument.cs +++ b/ACadSharp/CadDocument.cs @@ -240,9 +240,7 @@ private void addCadObject(CadObject cadObject) if (cadObject.Handle == 0 || this._cadObjects.ContainsKey(cadObject.Handle)) { var nextHandle = this._cadObjects.Keys.Max() + 1; - this.Header.HandleSeed = nextHandle + 1; - cadObject.Handle = nextHandle; } diff --git a/ACadSharp/IO/CadWriterBase.cs b/ACadSharp/IO/CadWriterBase.cs index a2c9a174..57c3ab3e 100644 --- a/ACadSharp/IO/CadWriterBase.cs +++ b/ACadSharp/IO/CadWriterBase.cs @@ -8,17 +8,28 @@ public abstract class CadWriterBase : ICadWriter protected CadDocument _document; + public CadWriterBase(CadDocument document) + { + this._document = document; + } + + /// + public void Write(bool validate) + { + if (validate) + { + this.validateDocument(); + } + + this.Write(); + } + /// public abstract void Write(); /// public abstract void Dispose(); - public CadWriterBase(CadDocument document) - { - this._document = document; - } - protected void validateDocument() { DxfClassCollection.UpdateDxfClasses(_document); diff --git a/ACadSharp/IO/DWG/DwgStreamWriters/DwgObjectWriter.cs b/ACadSharp/IO/DWG/DwgStreamWriters/DwgObjectWriter.cs index d528bdf8..d9478918 100644 --- a/ACadSharp/IO/DWG/DwgStreamWriters/DwgObjectWriter.cs +++ b/ACadSharp/IO/DWG/DwgStreamWriters/DwgObjectWriter.cs @@ -110,7 +110,7 @@ private void writeTable(Table table, bool register = true, bool writeEntri this.writeEntries(table); } - public void writeEntries(Table table) + private void writeEntries(Table table) where T : TableEntry { foreach (var entry in table) @@ -151,7 +151,7 @@ public void writeEntries(Table table) } } - public void writeBlocks() + private void writeBlocks() { foreach (BlockRecord blkRecord in this._document.BlockRecords) { diff --git a/ACadSharp/IO/DXF/DxfStreamWriter/DxfSectionWriterBase.cs b/ACadSharp/IO/DXF/DxfStreamWriter/DxfSectionWriterBase.cs index aea8e225..7b7dbe4c 100644 --- a/ACadSharp/IO/DXF/DxfStreamWriter/DxfSectionWriterBase.cs +++ b/ACadSharp/IO/DXF/DxfStreamWriter/DxfSectionWriterBase.cs @@ -1,6 +1,7 @@ using ACadSharp.Entities; using ACadSharp.Tables; using CSMath; +using System; using System.Collections; using System.Collections.Generic; using System.Linq; diff --git a/ACadSharp/IO/ICadWriter.cs b/ACadSharp/IO/ICadWriter.cs index 413d5bce..3c90c28e 100644 --- a/ACadSharp/IO/ICadWriter.cs +++ b/ACadSharp/IO/ICadWriter.cs @@ -4,6 +4,15 @@ namespace ACadSharp.IO { public interface ICadWriter : IDisposable { + /// + /// Write the + /// + /// Validates the document to avoid issues when is being used by another software + /// + /// Validating the document may cause some changes in the different objects like dictionaries, handles, extended data or references. + /// + void Write(bool validate); + /// /// Write the /// diff --git a/reference/cad_recover.PNG b/reference/cad_recover.PNG new file mode 100644 index 0000000000000000000000000000000000000000..c5b7eaea5d4c14e7cb5569b2c5db247159b45e75 GIT binary patch literal 11437 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 PAp>+Y^))`LKaThxQ|hBd literal 0 HcmV?d00001 diff --git a/reference/cad_recover_log.txt b/reference/cad_recover_log.txt new file mode 100644 index 00000000..b00526af --- /dev/null +++ b/reference/cad_recover_log.txt @@ -0,0 +1,400 @@ +Class dictionary id 743 Unexpectedly unused Filled with dummy +Class dictionary id 744 Unexpectedly unused Filled with dummy +Class dictionary id 745 Unexpectedly unused Filled with dummy +Class dictionary id 746 Unexpectedly unused Filled with dummy +Class dictionary id 747 Unexpectedly unused Filled with dummy +Class dictionary id 748 Unexpectedly unused Filled with dummy +Class dictionary id 749 Unexpectedly unused Filled with dummy +Class dictionary id 750 Unexpectedly unused Filled with dummy +Class dictionary id 751 Unexpectedly unused Filled with dummy +Class dictionary id 752 Unexpectedly unused Filled with dummy +Class dictionary id 753 Unexpectedly unused Filled with dummy +Class dictionary id 754 Unexpectedly unused Filled with dummy +Class dictionary id 755 Unexpectedly unused Filled with dummy +Class dictionary id 756 Unexpectedly unused Filled with dummy +Class dictionary id 757 Unexpectedly unused Filled with dummy +Class dictionary id 758 Unexpectedly unused Filled with dummy +Class dictionary id 759 Unexpectedly unused Filled with dummy +Class dictionary id 760 Unexpectedly unused Filled with dummy +Class dictionary id 761 Unexpectedly unused Filled with dummy +Class dictionary id 762 Unexpectedly unused Filled with dummy +Class dictionary id 763 Unexpectedly unused Filled with dummy +Class dictionary id 764 Unexpectedly unused Filled with dummy +Class dictionary id 765 Unexpectedly unused Filled with dummy +Class dictionary id 766 Unexpectedly unused Filled with dummy +Class dictionary id 767 Unexpectedly unused Filled with dummy +Class dictionary id 768 Unexpectedly unused Filled with dummy +Class dictionary id 769 Unexpectedly unused Filled with dummy +Class dictionary id 770 Unexpectedly unused Filled with dummy +Class dictionary id 771 Unexpectedly unused Filled with dummy +Class dictionary id 772 Unexpectedly unused Filled with dummy +Class dictionary id 773 Unexpectedly unused Filled with dummy +Class dictionary id 774 Unexpectedly unused Filled with dummy +Class dictionary id 775 Unexpectedly unused Filled with dummy +Class dictionary id 776 Unexpectedly unused Filled with dummy +Class dictionary id 777 Unexpectedly unused Filled with dummy +Class dictionary id 778 Unexpectedly unused Filled with dummy +Class dictionary id 779 Unexpectedly unused Filled with dummy +Class dictionary id 780 Unexpectedly unused Filled with dummy +Class dictionary id 781 Unexpectedly unused Filled with dummy +Class dictionary id 782 Unexpectedly unused Filled with dummy +Class dictionary id 783 Unexpectedly unused Filled with dummy +Class dictionary id 784 Unexpectedly unused Filled with dummy +Class dictionary id 785 Unexpectedly unused Filled with dummy +Class dictionary id 786 Unexpectedly unused Filled with dummy +Class dictionary id 787 Unexpectedly unused Filled with dummy +Class dictionary id 788 Unexpectedly unused Filled with dummy +Class dictionary id 789 Unexpectedly unused Filled with dummy +Class dictionary id 790 Unexpectedly unused Filled with dummy +Class dictionary id 791 Unexpectedly unused Filled with dummy +Class dictionary id 792 Unexpectedly unused Filled with dummy +Class dictionary id 793 Unexpectedly unused Filled with dummy +Class dictionary id 794 Unexpectedly unused Filled with dummy +Class dictionary id 795 Unexpectedly unused Filled with dummy +Class dictionary id 796 Unexpectedly unused Filled with dummy +Class dictionary id 797 Unexpectedly unused Filled with dummy +Class dictionary id 798 Unexpectedly unused Filled with dummy +Class dictionary id 799 Unexpectedly unused Filled with dummy +Class dictionary id 800 Unexpectedly unused Filled with dummy +Class dictionary id 801 Unexpectedly unused Filled with dummy +Class dictionary id 802 Unexpectedly unused Filled with dummy +Class dictionary id 803 Unexpectedly unused Filled with dummy +Class dictionary id 804 Unexpectedly unused Filled with dummy +Class dictionary id 805 Unexpectedly unused Filled with dummy +Class dictionary id 806 Unexpectedly unused Filled with dummy +Class dictionary id 807 Unexpectedly unused Filled with dummy +Class dictionary id 808 Unexpectedly unused Filled with dummy +Class dictionary id 809 Unexpectedly unused Filled with dummy +Class dictionary id 810 Unexpectedly unused Filled with dummy +Class dictionary id 811 Unexpectedly unused Filled with dummy +Class dictionary id 812 Unexpectedly unused Filled with dummy +Class dictionary id 813 Unexpectedly unused Filled with dummy +Class dictionary id 814 Unexpectedly unused Filled with dummy +Class dictionary id 815 Unexpectedly unused Filled with dummy +Class dictionary id 816 Unexpectedly unused Filled with dummy +Class dictionary id 817 Unexpectedly unused Filled with dummy +Class dictionary id 818 Unexpectedly unused Filled with dummy +Class dictionary id 819 Unexpectedly unused Filled with dummy +Class dictionary id 820 Unexpectedly unused Filled with dummy +Class dictionary id 821 Unexpectedly unused Filled with dummy +Class dictionary id 822 Unexpectedly unused Filled with dummy +Class dictionary id 823 Unexpectedly unused Filled with dummy +Class dictionary id 824 Unexpectedly unused Filled with dummy +Class dictionary id 825 Unexpectedly unused Filled with dummy +Class dictionary id 826 Unexpectedly unused Filled with dummy +Class dictionary id 827 Unexpectedly unused Filled with dummy +Class dictionary id 828 Unexpectedly unused Filled with dummy +Class dictionary id 829 Unexpectedly unused Filled with dummy +Class dictionary id 830 Unexpectedly unused Filled with dummy +Class dictionary id 831 Unexpectedly unused Filled with dummy +Class dictionary id 832 Unexpectedly unused Filled with dummy +Class dictionary id 833 Unexpectedly unused Filled with dummy +Class dictionary id 834 Unexpectedly unused Filled with dummy +Class dictionary id 835 Unexpectedly unused Filled with dummy +Class dictionary id 836 Unexpectedly unused Filled with dummy +Class dictionary id 837 Unexpectedly unused Filled with dummy +Class dictionary id 838 Unexpectedly unused Filled with dummy +Class dictionary id 839 Unexpectedly unused Filled with dummy +Class dictionary id 840 Unexpectedly unused Filled with dummy +Class dictionary id 841 Unexpectedly unused Filled with dummy +Class dictionary id 842 Unexpectedly unused Filled with dummy +Class dictionary id 843 Unexpectedly unused Filled with dummy +Class dictionary id 844 Unexpectedly unused Filled with dummy +Class dictionary id 845 Unexpectedly unused Filled with dummy +Class dictionary id 846 Unexpectedly unused Filled with dummy +Class dictionary id 847 Unexpectedly unused Filled with dummy +Class dictionary id 848 Unexpectedly unused Filled with dummy +Class dictionary id 849 Unexpectedly unused Filled with dummy +Class dictionary id 850 Unexpectedly unused Filled with dummy +Class dictionary id 851 Unexpectedly unused Filled with dummy +Class dictionary id 852 Unexpectedly unused Filled with dummy +Class dictionary id 853 Unexpectedly unused Filled with dummy +Class dictionary id 854 Unexpectedly unused Filled with dummy +Class dictionary id 855 Unexpectedly unused Filled with dummy +Class dictionary id 856 Unexpectedly unused Filled with dummy +Class dictionary id 857 Unexpectedly unused Filled with dummy +Class dictionary id 858 Unexpectedly unused Filled with dummy +Class dictionary id 859 Unexpectedly unused Filled with dummy +Class dictionary id 860 Unexpectedly unused Filled with dummy +Class dictionary id 861 Unexpectedly unused Filled with dummy +Class dictionary id 862 Unexpectedly unused Filled with dummy +Class dictionary id 863 Unexpectedly unused Filled with dummy +Class dictionary id 864 Unexpectedly unused Filled with dummy +Class dictionary id 865 Unexpectedly unused Filled with dummy +Class dictionary id 866 Unexpectedly unused Filled with dummy +Class dictionary id 867 Unexpectedly unused Filled with dummy +Class dictionary id 868 Unexpectedly unused Filled with dummy +Class dictionary id 869 Unexpectedly unused Filled with dummy +Class dictionary id 870 Unexpectedly unused Filled with dummy +Class dictionary id 871 Unexpectedly unused Filled with dummy +Class dictionary id 872 Unexpectedly unused Filled with dummy +Class dictionary id 873 Unexpectedly unused Filled with dummy +Class dictionary id 874 Unexpectedly unused Filled with dummy +Class dictionary id 875 Unexpectedly unused Filled with dummy +Class dictionary id 876 Unexpectedly unused Filled with dummy +Class dictionary id 877 Unexpectedly unused Filled with dummy +Class dictionary id 878 Unexpectedly unused Filled with dummy +Class dictionary id 879 Unexpectedly unused Filled with dummy +Class dictionary id 880 Unexpectedly unused Filled with dummy +Class dictionary id 881 Unexpectedly unused Filled with dummy +Class dictionary id 882 Unexpectedly unused Filled with dummy +Class dictionary id 883 Unexpectedly unused Filled with dummy +Class dictionary id 884 Unexpectedly unused Filled with dummy +Class dictionary id 885 Unexpectedly unused Filled with dummy +Class dictionary id 886 Unexpectedly unused Filled with dummy +Class dictionary id 887 Unexpectedly unused Filled with dummy +Class dictionary id 888 Unexpectedly unused Filled with dummy +Class dictionary id 889 Unexpectedly unused Filled with dummy +Class dictionary id 890 Unexpectedly unused Filled with dummy +Class dictionary id 891 Unexpectedly unused Filled with dummy +Class dictionary id 892 Unexpectedly unused Filled with dummy +Class dictionary id 893 Unexpectedly unused Filled with dummy +Class dictionary id 894 Unexpectedly unused Filled with dummy +Class dictionary id 895 Unexpectedly unused Filled with dummy +Class dictionary id 896 Unexpectedly unused Filled with dummy +Class dictionary id 897 Unexpectedly unused Filled with dummy +Class dictionary id 898 Unexpectedly unused Filled with dummy +Class dictionary id 899 Unexpectedly unused Filled with dummy +Class dictionary id 900 Unexpectedly unused Filled with dummy +Class dictionary id 901 Unexpectedly unused Filled with dummy +Class dictionary id 902 Unexpectedly unused Filled with dummy +Class dictionary id 903 Unexpectedly unused Filled with dummy +Class dictionary id 904 Unexpectedly unused Filled with dummy +Class dictionary id 905 Unexpectedly unused Filled with dummy +Class dictionary id 906 Unexpectedly unused Filled with dummy +Class dictionary id 907 Unexpectedly unused Filled with dummy +Class dictionary id 908 Unexpectedly unused Filled with dummy +Class dictionary id 909 Unexpectedly unused Filled with dummy +Class dictionary id 910 Unexpectedly unused Filled with dummy +Class dictionary id 911 Unexpectedly unused Filled with dummy +Class dictionary id 912 Unexpectedly unused Filled with dummy +Class dictionary id 913 Unexpectedly unused Filled with dummy +Class dictionary id 914 Unexpectedly unused Filled with dummy +Class dictionary id 915 Unexpectedly unused Filled with dummy +Class dictionary id 916 Unexpectedly unused Filled with dummy +Class dictionary id 917 Unexpectedly unused Filled with dummy +Class dictionary id 918 Unexpectedly unused Filled with dummy +Class dictionary id 919 Unexpectedly unused Filled with dummy +Class dictionary id 920 Unexpectedly unused Filled with dummy +Class dictionary id 921 Unexpectedly unused Filled with dummy +Class dictionary id 922 Unexpectedly unused Filled with dummy +Class dictionary id 923 Unexpectedly unused Filled with dummy +Class dictionary id 924 Unexpectedly unused Filled with dummy +Class dictionary id 925 Unexpectedly unused Filled with dummy +Class dictionary id 926 Unexpectedly unused Filled with dummy +Class dictionary id 927 Unexpectedly unused Filled with dummy +Class dictionary id 928 Unexpectedly unused Filled with dummy +Class dictionary id 929 Unexpectedly unused Filled with dummy +Class dictionary id 930 Unexpectedly unused Filled with dummy +Class dictionary id 931 Unexpectedly unused Filled with dummy +Class dictionary id 932 Unexpectedly unused Filled with dummy +Class dictionary id 933 Unexpectedly unused Filled with dummy +Class dictionary id 934 Unexpectedly unused Filled with dummy +Class dictionary id 935 Unexpectedly unused Filled with dummy +Class dictionary id 936 Unexpectedly unused Filled with dummy +Class dictionary id 937 Unexpectedly unused Filled with dummy +Class dictionary id 938 Unexpectedly unused Filled with dummy +Class dictionary id 939 Unexpectedly unused Filled with dummy +Class dictionary id 940 Unexpectedly unused Filled with dummy +Class dictionary id 941 Unexpectedly unused Filled with dummy +Class dictionary id 942 Unexpectedly unused Filled with dummy +Class dictionary id 943 Unexpectedly unused Filled with dummy +Class dictionary id 944 Unexpectedly unused Filled with dummy +Class dictionary id 945 Unexpectedly unused Filled with dummy +Class dictionary id 946 Unexpectedly unused Filled with dummy +Class dictionary id 947 Unexpectedly unused Filled with dummy +Class dictionary id 948 Unexpectedly unused Filled with dummy +Class dictionary id 949 Unexpectedly unused Filled with dummy +Class dictionary id 950 Unexpectedly unused Filled with dummy +Class dictionary id 951 Unexpectedly unused Filled with dummy +Class dictionary id 952 Unexpectedly unused Filled with dummy +Class dictionary id 953 Unexpectedly unused Filled with dummy +Class dictionary id 954 Unexpectedly unused Filled with dummy +Class dictionary id 955 Unexpectedly unused Filled with dummy +Class dictionary id 956 Unexpectedly unused Filled with dummy +Class dictionary id 957 Unexpectedly unused Filled with dummy +Class dictionary id 958 Unexpectedly unused Filled with dummy +Class dictionary id 959 Unexpectedly unused Filled with dummy +Class dictionary id 960 Unexpectedly unused Filled with dummy +Class dictionary id 961 Unexpectedly unused Filled with dummy +Class dictionary id 962 Unexpectedly unused Filled with dummy +Class dictionary id 963 Unexpectedly unused Filled with dummy +Class dictionary id 964 Unexpectedly unused Filled with dummy +Class dictionary id 965 Unexpectedly unused Filled with dummy +Class dictionary id 966 Unexpectedly unused Filled with dummy +Class dictionary id 967 Unexpectedly unused Filled with dummy +Class dictionary id 968 Unexpectedly unused Filled with dummy +Class dictionary id 969 Unexpectedly unused Filled with dummy +Class dictionary id 970 Unexpectedly unused Filled with dummy +Class dictionary id 971 Unexpectedly unused Filled with dummy +Class dictionary id 972 Unexpectedly unused Filled with dummy +Class dictionary id 973 Unexpectedly unused Filled with dummy +Class dictionary id 974 Unexpectedly unused Filled with dummy +Class dictionary id 975 Unexpectedly unused Filled with dummy +Class dictionary id 976 Unexpectedly unused Filled with dummy +Class dictionary id 977 Unexpectedly unused Filled with dummy +Class dictionary id 978 Unexpectedly unused Filled with dummy +Class dictionary id 979 Unexpectedly unused Filled with dummy +Class dictionary id 980 Unexpectedly unused Filled with dummy +Class dictionary id 981 Unexpectedly unused Filled with dummy +Class dictionary id 982 Unexpectedly unused Filled with dummy +Class dictionary id 983 Unexpectedly unused Filled with dummy +Class dictionary id 984 Unexpectedly unused Filled with dummy +Class dictionary id 985 Unexpectedly unused Filled with dummy +Class dictionary id 986 Unexpectedly unused Filled with dummy +Class dictionary id 987 Unexpectedly unused Filled with dummy +Class dictionary id 988 Unexpectedly unused Filled with dummy +Class dictionary id 989 Unexpectedly unused Filled with dummy +Class dictionary id 990 Unexpectedly unused Filled with dummy +Class dictionary id 991 Unexpectedly unused Filled with dummy +Class dictionary id 992 Unexpectedly unused Filled with dummy +Class dictionary id 993 Unexpectedly unused Filled with dummy +Class dictionary id 994 Unexpectedly unused Filled with dummy +Class dictionary id 995 Unexpectedly unused Filled with dummy +Class dictionary id 996 Unexpectedly unused Filled with dummy +Class dictionary id 997 Unexpectedly unused Filled with dummy +Class dictionary id 998 Unexpectedly unused Filled with dummy +Class dictionary id 999 Unexpectedly unused Filled with dummy +Class dictionary id 1000 Unexpectedly unused Filled with dummy +Class dictionary id 1001 Unexpectedly unused Filled with dummy +Class dictionary id 1002 Unexpectedly unused Filled with dummy +Class dictionary id 1003 Unexpectedly unused Filled with dummy +Class dictionary id 1004 Unexpectedly unused Filled with dummy +Class dictionary id 1005 Unexpectedly unused Filled with dummy +Class dictionary id 1006 Unexpectedly unused Filled with dummy +Class dictionary id 1007 Unexpectedly unused Filled with dummy +Class dictionary id 1008 Unexpectedly unused Filled with dummy +Class dictionary id 1009 Unexpectedly unused Filled with dummy +Class dictionary id 1010 Unexpectedly unused Filled with dummy +Class dictionary id 1011 Unexpectedly unused Filled with dummy +Class dictionary id 1012 Unexpectedly unused Filled with dummy +Class dictionary id 1013 Unexpectedly unused Filled with dummy +Class dictionary id 1014 Unexpectedly unused Filled with dummy +Class dictionary id 1015 Unexpectedly unused Filled with dummy +Class dictionary id 1016 Unexpectedly unused Filled with dummy +Class dictionary id 1017 Unexpectedly unused Filled with dummy +Class dictionary id 1018 Unexpectedly unused Filled with dummy +Class dictionary id 1019 Unexpectedly unused Filled with dummy +Class dictionary id 1020 Unexpectedly unused Filled with dummy +Class dictionary id 1021 Unexpectedly unused Filled with dummy +Class dictionary id 1022 Unexpectedly unused Filled with dummy +Class dictionary id 1023 Unexpectedly unused Filled with dummy + +Validating objects in the handle table. +Valid objects 25 Invalid objects 0 +Validating objects completed. +Missing AcDbRegAppTable + +Recover: error 15 opening Named Objects Dictionary. +Created new NOD.Reading handle 5 object type AcDbLinetypeTable + Error 34 (eWrongObjectType) Object discarded + +Missing AcDbLinetypeTable +Reading handle 1 object type AcDbBlockTable + Error 34 (eWrongObjectType) Object discarded + +Missing AcDbBlockTable +Reading handle 3 object type AcDbDimStyleTable + Error 34 (eWrongObjectType) Object discarded + +Missing AcDbDimStyleTable +Reading handle E object type AcDbRegAppTableRecord + Error 34 (eWrongObjectType) Object discarded +Reading handle F object type AcDbLinetypeTableRecord + Error 34 (eWrongObjectType) Object discarded +Reading handle 10 object type AcDbLinetypeTableRecord + Error 34 (eWrongObjectType) Object discarded +Reading handle 11 object type AcDbLinetypeTableRecord + Error 34 (eWrongObjectType) Object discarded +Reading handle 12 object type AcDbLayerTableRecord + Error 34 (eWrongObjectType) Object discarded + +Replacing layer table record at index 0. +Reading handle 16 object type AcDbBlockTableRecord + Error 34 (eWrongObjectType) Object discarded +Reading handle 19 object type AcDbBlockTableRecord + Error 34 (eWrongObjectType) Object discarded +Reading handle 15 object type AcDbViewportTableRecord + Error 34 (eWrongObjectType) Object discarded + +Replacing viewport configuration table record at index 0. +Reading handle 14 object type AcDbDimStyleTableRecord +Error 67 (eDwgObjectImproperlyRead) Object discarded + + + Salvaged database from drawing. + + +Auditing Header + + MAXACTVP 0 2 - 32767 64 + SPLINETYPE 0 5 - 6 6 + SURFTAB1 0 2 - 32767 6 + SURFTAB2 0 2 - 32767 6 + SURFTYPE 0 5,6,8 6 + SURFU 0 2 - 200 6 + SURFV 0 2 - 200 6 + DIMTFAC 0.00 0.00 1.00 + DIMALTF 0.00 0.00 25.40 + DIMLFAC 0.00 0.00 1.00 + DIMTXT 0.00 0.00 0.18 + DIMALTU 0 1 - 8 0 + +Error found in auditing header variables + + +Auditing Tables + +AcDbLayerTableRecord: "0" Index 1 0 + +Auditing Entities Pass 1 + +AcDbTextStyleTableRecord: "Standard" + Scale Factor Not in Range 1.0 +Pass 1 100 objects audited +Auditing Entities Pass 2 + +AcDbLayerTableRecord: "$RECOVER_230307081320-3" + Not in Table Added +RegApp ACAD missing +Pass 2 100 objects audited +Auditing Blocks + + + 0 Blocks audited + + + +Auditing AcDsRecords + + +Total errors found 21 fixed 21 + +Erased 12 objects + + +Opening an AutoCAD 2004/LT 2004 format file. +Regenerating layout. +Regenerating layout. + + +**** System Variable Changed **** +1 of the monitored system variables has changed from the preferred value. Use SYSVARMONITOR command to view changes. + +_netload D:/Albert DC/Documents/Visual Studio 2022/Repos/ACadSharp/ACadTestGenerator/bin/Debug/ACadTestGenerator.DLL +AutoCAD menu utilities loaded.*Cancel* + +Command: *Cancel* +_RIBBON +*Cancel* +COMMANDLINE +properties +*Cancel* + + + +Autodesk DWG. This file is a TrustedDWG last saved by an Autodesk application or Autodesk licensed application. + +Command: + +Command: \ No newline at end of file From b1865d9ec82b8d12445e1307d414e669f40598f3 Mon Sep 17 00:00:00 2001 From: DomCR Date: Tue, 7 Mar 2023 10:48:38 +0100 Subject: [PATCH 9/9] info --- reference/cad_recover_AC1015.PNG | Bin 0 -> 10322 bytes ...cad_recover.PNG => cad_recover_AC1018.PNG} | Bin reference/cad_recover_log_AC1015.txt | 132 ++++++++++++++++++ ...ver_log.txt => cad_recover_log_AC1018.txt} | 0 4 files changed, 132 insertions(+) create mode 100644 reference/cad_recover_AC1015.PNG rename reference/{cad_recover.PNG => cad_recover_AC1018.PNG} (100%) create mode 100644 reference/cad_recover_log_AC1015.txt rename reference/{cad_recover_log.txt => cad_recover_log_AC1018.txt} (100%) diff --git a/reference/cad_recover_AC1015.PNG b/reference/cad_recover_AC1015.PNG new file mode 100644 index 0000000000000000000000000000000000000000..b37d299fd6d902d2bb287700e168af1495d26399 GIT binary patch literal 10322 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 Sj{O}Vz{Jq}dgayoasLPXt9aJ{ literal 0 HcmV?d00001 diff --git a/reference/cad_recover.PNG b/reference/cad_recover_AC1018.PNG similarity index 100% rename from reference/cad_recover.PNG rename to reference/cad_recover_AC1018.PNG diff --git a/reference/cad_recover_log_AC1015.txt b/reference/cad_recover_log_AC1015.txt new file mode 100644 index 00000000..15de0432 --- /dev/null +++ b/reference/cad_recover_log_AC1015.txt @@ -0,0 +1,132 @@ + +Customization file loaded successfully. Customization Group: ACAD +Customization file loaded successfully. Customization Group: CUSTOM +Customization file loaded successfully. Customization Group: MODELDOC +Customization file loaded successfully. Customization Group: EXPRESS +Customization file loaded successfully. Customization Group: APPMANAGER +Customization file loaded successfully. Customization Group: FEATUREDAPPS +Scanning completed. + +Reconstructing handle table from objects. +Scanning for objects 99% done + 23 objects found. +Scanning for objects completed. +Recover: error eWrongObjectType reading Header. +Missing AcDbRegAppTable + +Recover: error 15 opening Named Objects Dictionary. +Created new NOD. +Missing AcDbLinetypeTable + +Missing AcDbLayerTable + +Missing AcDbBlockTable + +Missing AcDbTextStyleTable + +Missing AcDbViewTable + +Missing AcDbUCSTable + +Missing AcDbViewportTable + +Missing AcDbDimStyleTable + +Missing AcDbVXTable + + +Reading handle E object type AcDbRegAppTableRecord + Error 34 (eWrongObjectType) Object discarded +Reading handle 5 object type AcDbLinetypeTable + Error 34 (eWrongObjectType) Object discarded +Reading handle F object type AcDbLinetypeTableRecord + Error 34 (eWrongObjectType) Object discarded +Reading handle 10 object type AcDbLinetypeTableRecord + Error 34 (eWrongObjectType) Object discarded +Reading handle 11 object type AcDbLinetypeTableRecord + Error 34 (eWrongObjectType) Object discarded +Reading handle 12 object type AcDbLayerTableRecord + Error 34 (eWrongObjectType) Object discarded +Reading handle 1 object type AcDbBlockTable + Error 34 (eWrongObjectType) Object discarded +Reading handle 16 object type AcDbBlockTableRecord + Error 34 (eWrongObjectType) Object discarded +Reading handle 19 object type AcDbBlockTableRecord + Error 34 (eWrongObjectType) Object discarded +Reading handle 15 object type AcDbViewportTableRecord + Error 34 (eWrongObjectType) Object discarded +Reading handle 3 object type AcDbDimStyleTable + Error 34 (eWrongObjectType) Object discarded +Reading handle 14 object type AcDbDimStyleTableRecord +Error 67 (eDwgObjectImproperlyRead) Object discarded + + + Salvaged database from drawing. + + +Auditing Header + + +Auditing Tables + + +Auditing Entities Pass 1 + +Layer "0" missing +AcDbLayerTableRecord: "0" Index 1 0 +AcDbTextStyleTableRecord: "Standard" + Scale Factor Not in Range 1.0 +Pass 1 100 objects audited +Auditing Entities Pass 2 + +RegApp ACAD missing +AcDbRegAppTableRecord: "ACAD" + Index 1 0 +RegApp ACAD missing +Pass 2 100 objects auditedAcDbLayerTableRecord: "AUDIT_I_230307104130-4" + Not in Table Added + +Layer zero name found at incorrect index. + Changed to "AUDIT_I_230307104130-5". +AcDbRegAppTableRecord: "AUDIT_I_230307104130-6" + Not in Table Added + +Auditing Blocks + + + 0 Blocks audited + + + +Auditing AcDsRecords + + +Total errors found 12 fixed 12 + +Erased 12 objects + + +Opening an AutoCAD 2000 format file. +Regenerating model. + + +**** System Variable Changed **** +1 of the monitored system variables has changed from the preferred value. Use SYSVARMONITOR command to view changes. + +_netload D:/Albert DC/Documents/Visual Studio 2022/Repos/ACadSharp/ACadTestGenerator/bin/Debug/ACadTestGenerator.DLL +AutoCAD menu utilities loaded.*Cancel* + +Command: *Cancel* +_RIBBON +*Cancel* +COMMANDLINE +properties +*Cancel* + + + +Autodesk DWG. This file is a TrustedDWG last saved by an Autodesk application or Autodesk licensed application. + +Command: + +Command: \ No newline at end of file diff --git a/reference/cad_recover_log.txt b/reference/cad_recover_log_AC1018.txt similarity index 100% rename from reference/cad_recover_log.txt rename to reference/cad_recover_log_AC1018.txt