From ed3aa25794749408cbf26dfc6096a6be5d2abc14 Mon Sep 17 00:00:00 2001 From: DomCR Date: Tue, 11 Nov 2025 17:15:14 +0100 Subject: [PATCH 1/6] DimensionAssociation --- src/ACadSharp/DxfSubclassMarker.cs | 2 ++ src/ACadSharp/Objects/DimensionAssociation.cs | 25 +++++++++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 src/ACadSharp/Objects/DimensionAssociation.cs diff --git a/src/ACadSharp/DxfSubclassMarker.cs b/src/ACadSharp/DxfSubclassMarker.cs index 2dde47c43..381128222 100644 --- a/src/ACadSharp/DxfSubclassMarker.cs +++ b/src/ACadSharp/DxfSubclassMarker.cs @@ -78,6 +78,8 @@ public static class DxfSubclassMarker public const string DimensionStyleTable = "AcDbDimStyleTable"; + public const string DimensionAssociation = "AcDbDimAssoc"; + public const string Ellipse = "AcDbEllipse"; public const string Entity = "AcDbEntity"; diff --git a/src/ACadSharp/Objects/DimensionAssociation.cs b/src/ACadSharp/Objects/DimensionAssociation.cs new file mode 100644 index 000000000..57ee6e3c2 --- /dev/null +++ b/src/ACadSharp/Objects/DimensionAssociation.cs @@ -0,0 +1,25 @@ +using ACadSharp.Attributes; + +namespace ACadSharp.Objects +{ + /// + /// Represents a object. + /// + /// + /// Dxf class name + /// + [DxfSubClass(DxfSubclassMarker.DimensionAssociation)] + public abstract class DimensionAssociation : NonGraphicalObject + { + /// + public override ObjectType ObjectType => ObjectType.UNLISTED; + + /// + public override string SubclassMarker => DxfSubclassMarker.DimensionAssociation; + + /// + public DimensionAssociation() : base() + { + } + } +} \ No newline at end of file From ccf17d0661658b4fa6c70b173a15d0c58102123f Mon Sep 17 00:00:00 2001 From: DomCR Date: Wed, 12 Nov 2025 08:05:41 +0100 Subject: [PATCH 2/6] props --- src/ACadSharp/CadObject.cs | 3 - src/ACadSharp/DxfFileToken.cs | 3 +- .../DxfObjectsSectionReader.cs | 14 ++ .../CadDimensionAssociationTemplate.cs | 11 ++ src/ACadSharp/Objects/DimensionAssociation.cs | 120 +++++++++++++++++- 5 files changed, 146 insertions(+), 5 deletions(-) create mode 100644 src/ACadSharp/IO/Templates/CadDimensionAssociationTemplate.cs diff --git a/src/ACadSharp/CadObject.cs b/src/ACadSharp/CadObject.cs index 966e037ff..835ca16b3 100644 --- a/src/ACadSharp/CadObject.cs +++ b/src/ACadSharp/CadObject.cs @@ -1,11 +1,8 @@ using ACadSharp.Attributes; using ACadSharp.Extensions; using ACadSharp.Objects; -using ACadSharp.Objects.Collections; using ACadSharp.Tables; -using ACadSharp.Tables.Collections; using ACadSharp.XData; -using System; using System.Collections.Generic; using System.Linq; diff --git a/src/ACadSharp/DxfFileToken.cs b/src/ACadSharp/DxfFileToken.cs index be83568c0..26462f28a 100644 --- a/src/ACadSharp/DxfFileToken.cs +++ b/src/ACadSharp/DxfFileToken.cs @@ -109,6 +109,7 @@ public static class DxfFileToken public const string ObjectsSection = "OBJECTS"; public const string ObjectDictionary = "DICTIONARY"; public const string ObjectDictionaryWithDefault = "ACDBDICTIONARYWDFLT"; + public const string ObjectDimensionAssociation = "DIMASSOC"; public const string ObjectProxyObject = "ACAD_PROXY_OBJECT"; public const string ObjectDictionaryVar = "DICTIONARYVAR"; public const string ObjectDBColor = "DBCOLOR"; @@ -139,7 +140,7 @@ public static class DxfFileToken public const string ObjectTableStyle = "TABLESTYLE"; public const string ObjectCellStyleMap = "CELLSTYLEMAP"; public const string ObjectSpatialFilter = "SPATIAL_FILTER"; - + //Table tokens public const string ObjectTableColumn = "COLUMN"; public const string ObjectTableColumnBegin = "TABLECOLUMN_BEGIN"; diff --git a/src/ACadSharp/IO/DXF/DxfStreamReader/DxfObjectsSectionReader.cs b/src/ACadSharp/IO/DXF/DxfStreamReader/DxfObjectsSectionReader.cs index 85fd82b70..a340ad76e 100644 --- a/src/ACadSharp/IO/DXF/DxfStreamReader/DxfObjectsSectionReader.cs +++ b/src/ACadSharp/IO/DXF/DxfStreamReader/DxfObjectsSectionReader.cs @@ -63,6 +63,8 @@ private CadTemplate readObject() return this.readObjectCodes(new CadNonGraphicalObjectTemplate(new AcdbPlaceHolder()), this.readObjectSubclassMap); case DxfFileToken.ObjectDBColor: return this.readObjectCodes(new CadNonGraphicalObjectTemplate(new BookColor()), this.readBookColor); + case DxfFileToken.ObjectDimensionAssociation: + return this.readObjectCodes(new CadDimensionAssociationTemplate(), this.readDimensionAssociation); case DxfFileToken.ObjectDictionary: return this.readObjectCodes(new CadDictionaryTemplate(), this.readDictionary); case DxfFileToken.ObjectDictionaryWithDefault: @@ -1673,6 +1675,18 @@ private bool readBookColor(CadTemplate template, DxfMap map) } } + private bool readDimensionAssociation(CadTemplate template, DxfMap map) + { + CadDimensionAssociationTemplate tmp = template as CadDimensionAssociationTemplate; + DimensionAssociation dimassoc = tmp.CadObject; + + switch (this._reader.Code) + { + default: + return this.tryAssignCurrentValue(template.CadObject, map.SubClasses[tmp.CadObject.SubclassMarker]); + } + } + private bool readDictionary(CadTemplate template, DxfMap map) { CadDictionaryTemplate tmp = template as CadDictionaryTemplate; diff --git a/src/ACadSharp/IO/Templates/CadDimensionAssociationTemplate.cs b/src/ACadSharp/IO/Templates/CadDimensionAssociationTemplate.cs new file mode 100644 index 000000000..70f40856a --- /dev/null +++ b/src/ACadSharp/IO/Templates/CadDimensionAssociationTemplate.cs @@ -0,0 +1,11 @@ +using ACadSharp.Objects; + +namespace ACadSharp.IO.Templates +{ + internal class CadDimensionAssociationTemplate : CadTemplate + { + public CadDimensionAssociationTemplate() : base(new()) { } + + public CadDimensionAssociationTemplate(DimensionAssociation obj) : base(obj) { } + } +} diff --git a/src/ACadSharp/Objects/DimensionAssociation.cs b/src/ACadSharp/Objects/DimensionAssociation.cs index 57ee6e3c2..12d762350 100644 --- a/src/ACadSharp/Objects/DimensionAssociation.cs +++ b/src/ACadSharp/Objects/DimensionAssociation.cs @@ -1,22 +1,140 @@ using ACadSharp.Attributes; +using ACadSharp.Entities; namespace ACadSharp.Objects { + public enum RotatedDimensionType : short + { + Unknown = 0, + Parallel = 1, + Perpendicular = 2 + } + + public enum ObjectOsnapType : short + { + None = 0, + Endpoint = 1, + Midpoint = 2, + Center = 3, + Node = 4, + Quadrant = 5, + Intersection = 6, + Insertion = 7, + Perpendicular = 8, + Tangent = 9, + Nearest = 10, + ApparentIntersection = 11, + Parallel = 12, + StartPoint = 13, + } + /// /// Represents a object. /// /// + /// Object name
/// Dxf class name ///
+ [DxfName(DxfFileToken.ObjectDimensionAssociation)] [DxfSubClass(DxfSubclassMarker.DimensionAssociation)] - public abstract class DimensionAssociation : NonGraphicalObject + public class DimensionAssociation : NonGraphicalObject { + /// + public override string ObjectName => DxfFileToken.ObjectDimensionAssociation; + /// public override ObjectType ObjectType => ObjectType.UNLISTED; /// public override string SubclassMarker => DxfSubclassMarker.DimensionAssociation; + + //330 + //ID of dimension object + /// + /// Gets or sets the associated dimension object. + /// + [DxfCodeValue(DxfReferenceType.Handle, 330)] + public Dimension Dimension { get; set; } + + //90 + //Associativity flag + //1 = First point reference + //2 = Second point reference + //4 = Third point reference + //8 = Fourth point reference + + //70 + //Trans-space flag(true/false) + + /// + /// Gets or sets the type of the rotated dimension, indicating whether it is parallel or perpendicular. + /// + [DxfCodeValue(71)] + public RotatedDimensionType RotatedDimensionType { get; set; } = RotatedDimensionType.Unknown; + + /// + /// Gets the name of the class represented by this instance. + /// + [DxfCodeValue(1)] + public string ClassName { get; set; } = "AcDbOsnapPointRef"; + + /// + /// Gets or sets the object snap type associated with the entity. + /// + [DxfCodeValue(72)] + public ObjectOsnapType ObjectOsnapType { get; set; } + + //331 + //ID of main object (geometry) + + //73 + //SubentType of main object (edge, face) + + //91 + + //GsMarker of main object (index) + + //301 + + //Handle(string) of Xref object + + //40 + + //Geometry parameter for Near Osnap + + //10 + + //Osnap point in WCS; X value + + //20 + + //Osnap point in WCS; Y value + + //30 + + //Osnap point in WCS; Z value + + //332 + + //ID of intersection object (geometry) + + //74 + + //SubentType of intersction object (edge/face) + + //92 + + //GsMarker of intersection object (index) + + //302 + + //Handle(string) of intersection Xref object + + //75 + + //hasLastPointRef flag(true/false) + /// public DimensionAssociation() : base() { From 5ff3ad341f42269f66f3288117eaf280a2073ff3 Mon Sep 17 00:00:00 2001 From: DomCR Date: Wed, 12 Nov 2025 20:14:46 +0100 Subject: [PATCH 3/6] props --- .../DxfObjectsSectionReader.cs | 19 +++++- .../CadDimensionAssociationTemplate.cs | 12 +++- src/ACadSharp/Objects/DimensionAssociation.cs | 65 ++++++++++--------- 3 files changed, 60 insertions(+), 36 deletions(-) diff --git a/src/ACadSharp/IO/DXF/DxfStreamReader/DxfObjectsSectionReader.cs b/src/ACadSharp/IO/DXF/DxfStreamReader/DxfObjectsSectionReader.cs index a340ad76e..84c031199 100644 --- a/src/ACadSharp/IO/DXF/DxfStreamReader/DxfObjectsSectionReader.cs +++ b/src/ACadSharp/IO/DXF/DxfStreamReader/DxfObjectsSectionReader.cs @@ -304,7 +304,14 @@ private bool readLayout(CadTemplate template, DxfMap map) switch (this._reader.Code) { case 330: - tmp.PaperSpaceBlockHandle = this._reader.ValueAsHandle; + if (template.OwnerHandle.HasValue) + { + tmp.PaperSpaceBlockHandle = this._reader.ValueAsHandle; + } + else + { + tmp.OwnerHandle = this._reader.ValueAsHandle; + } return true; case 331: tmp.LasActiveViewportHandle = (this._reader.ValueAsHandle); @@ -1682,6 +1689,16 @@ private bool readDimensionAssociation(CadTemplate template, DxfMap map) switch (this._reader.Code) { + case 330: + if (template.OwnerHandle.HasValue) + { + tmp.DimensionHandle = this._reader.ValueAsHandle; + } + else + { + tmp.OwnerHandle = this._reader.ValueAsHandle; + } + return true; default: return this.tryAssignCurrentValue(template.CadObject, map.SubClasses[tmp.CadObject.SubclassMarker]); } diff --git a/src/ACadSharp/IO/Templates/CadDimensionAssociationTemplate.cs b/src/ACadSharp/IO/Templates/CadDimensionAssociationTemplate.cs index 70f40856a..770a061c1 100644 --- a/src/ACadSharp/IO/Templates/CadDimensionAssociationTemplate.cs +++ b/src/ACadSharp/IO/Templates/CadDimensionAssociationTemplate.cs @@ -4,8 +4,14 @@ namespace ACadSharp.IO.Templates { internal class CadDimensionAssociationTemplate : CadTemplate { - public CadDimensionAssociationTemplate() : base(new()) { } + public ulong? DimensionHandle { get; set; } - public CadDimensionAssociationTemplate(DimensionAssociation obj) : base(obj) { } + public CadDimensionAssociationTemplate() : base(new()) + { + } + + public CadDimensionAssociationTemplate(DimensionAssociation obj) : base(obj) + { + } } -} +} \ No newline at end of file diff --git a/src/ACadSharp/Objects/DimensionAssociation.cs b/src/ACadSharp/Objects/DimensionAssociation.cs index 12d762350..5f10d11fc 100644 --- a/src/ACadSharp/Objects/DimensionAssociation.cs +++ b/src/ACadSharp/Objects/DimensionAssociation.cs @@ -1,5 +1,6 @@ using ACadSharp.Attributes; using ACadSharp.Entities; +using CSMath; namespace ACadSharp.Objects { @@ -28,6 +29,16 @@ public enum ObjectOsnapType : short StartPoint = 13, } + [System.Flags] + public enum AssociativityFlags : short + { + None = 0, + FirstPointReference = 1, + SecondPointReference = 2, + ThirdPointReference = 4, + FourthPointReference = 8 + } + /// /// Represents a object. /// @@ -48,24 +59,23 @@ public class DimensionAssociation : NonGraphicalObject /// public override string SubclassMarker => DxfSubclassMarker.DimensionAssociation; - - //330 - //ID of dimension object /// /// Gets or sets the associated dimension object. /// [DxfCodeValue(DxfReferenceType.Handle, 330)] public Dimension Dimension { get; set; } - //90 - //Associativity flag - //1 = First point reference - //2 = Second point reference - //4 = Third point reference - //8 = Fourth point reference + /// + /// Gets or sets the associativity flags that define the reference points for an entity. + /// + [DxfCodeValue(90)] + public AssociativityFlags AssociativityFlags { get; set; } - //70 - //Trans-space flag(true/false) + /// + /// Gets or sets a value indicating whether the entity is in trans-space. + /// + [DxfCodeValue(70)] + public bool IsTransSpace { get; set; } /// /// Gets or sets the type of the rotated dimension, indicating whether it is parallel or perpendicular. @@ -92,47 +102,38 @@ public class DimensionAssociation : NonGraphicalObject //SubentType of main object (edge, face) //91 - //GsMarker of main object (index) //301 - //Handle(string) of Xref object - //40 - - //Geometry parameter for Near Osnap - - //10 - - //Osnap point in WCS; X value - - //20 - - //Osnap point in WCS; Y value - - //30 + /// + /// Gets or sets the geometry parameter used for the Near object snap (Osnap). + /// + [DxfCodeValue(40)] + public double GeometryParameter { get; set; } - //Osnap point in WCS; Z value + /// + /// Gets or sets the object snap (Osnap) point in world coordinate system (WCS). + /// + /// The Osnap point is used to specify precise locations on geometry for object snapping + /// operations. + [DxfCodeValue(10, 20, 30)] + public XYZ OsnapPoint { get; set; } //332 - //ID of intersection object (geometry) //74 - //SubentType of intersction object (edge/face) //92 - //GsMarker of intersection object (index) //302 - //Handle(string) of intersection Xref object //75 - //hasLastPointRef flag(true/false) /// From 5b38d44ab086b6d6b4eaef32cba777247de4d48d Mon Sep 17 00:00:00 2001 From: DomCR Date: Tue, 25 Nov 2025 23:43:18 +0100 Subject: [PATCH 4/6] submodule --- src/ACadSharp.Tests/IO/WriterSingleObjectTests.cs | 5 +++-- src/CSUtilities | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/ACadSharp.Tests/IO/WriterSingleObjectTests.cs b/src/ACadSharp.Tests/IO/WriterSingleObjectTests.cs index ebf6f8b92..47948c640 100644 --- a/src/ACadSharp.Tests/IO/WriterSingleObjectTests.cs +++ b/src/ACadSharp.Tests/IO/WriterSingleObjectTests.cs @@ -827,6 +827,7 @@ public void EllipseSegments() ellipse.RadiusRatio = 0.5d; ellipse.StartParameter = 0.0d; ellipse.EndParameter = Math.PI * 2; + ellipse.MajorAxisEndPoint *= 4; ellipse.Center = center; var pline = new Polyline3D(ellipse.PolygonalVertexes(4)); @@ -862,14 +863,14 @@ public void EllipseSegments() this.Document.Entities.Add(pline); this.Document.Entities.Add(ellipse); - ellipse = new Ellipse(); + ellipse = new Ellipse(); ellipse.RadiusRatio = 0.5d; ellipse.StartParameter = 0.0d; ellipse.EndParameter = Math.PI * 2; ellipse.Center = center; ellipse.Normal = -XYZ.AxisZ; - pline = new Polyline3D(ellipse.PolygonalVertexes(4)); + pline = new Polyline3D(ellipse.PolygonalVertexes(4)); pline.Color = Color.Blue; this.Document.Entities.Add(pline); diff --git a/src/CSUtilities b/src/CSUtilities index f627bd65a..08c898d76 160000 --- a/src/CSUtilities +++ b/src/CSUtilities @@ -1 +1 @@ -Subproject commit f627bd65a9c292b8e438d57b59d3b3fe05a0f3b9 +Subproject commit 08c898d76bc44376a7ba1be1c5912303181854c3 From e1ace170d63748e7a97dc207ae0ce88f45298bd5 Mon Sep 17 00:00:00 2001 From: DomCR Date: Wed, 26 Nov 2025 08:33:20 +0100 Subject: [PATCH 5/6] update --- .../DxfObjectsSectionReader.cs | 3 + .../CadDimensionAssociationTemplate.cs | 18 ++- src/ACadSharp/Objects/DimensionAssociation.cs | 126 +++++++++++------- 3 files changed, 99 insertions(+), 48 deletions(-) diff --git a/src/ACadSharp/IO/DXF/DxfStreamReader/DxfObjectsSectionReader.cs b/src/ACadSharp/IO/DXF/DxfStreamReader/DxfObjectsSectionReader.cs index 84c031199..c870ca78c 100644 --- a/src/ACadSharp/IO/DXF/DxfStreamReader/DxfObjectsSectionReader.cs +++ b/src/ACadSharp/IO/DXF/DxfStreamReader/DxfObjectsSectionReader.cs @@ -1699,6 +1699,9 @@ private bool readDimensionAssociation(CadTemplate template, DxfMap map) tmp.OwnerHandle = this._reader.ValueAsHandle; } return true; + case 331: + tmp.GeometryHandle = this._reader.ValueAsHandle; + return true; default: return this.tryAssignCurrentValue(template.CadObject, map.SubClasses[tmp.CadObject.SubclassMarker]); } diff --git a/src/ACadSharp/IO/Templates/CadDimensionAssociationTemplate.cs b/src/ACadSharp/IO/Templates/CadDimensionAssociationTemplate.cs index 770a061c1..fa0bf4ffe 100644 --- a/src/ACadSharp/IO/Templates/CadDimensionAssociationTemplate.cs +++ b/src/ACadSharp/IO/Templates/CadDimensionAssociationTemplate.cs @@ -1,4 +1,5 @@ -using ACadSharp.Objects; +using ACadSharp.Entities; +using ACadSharp.Objects; namespace ACadSharp.IO.Templates { @@ -6,6 +7,8 @@ internal class CadDimensionAssociationTemplate : CadTemplate(this.DimensionHandle, out var dimension)) + { + } + + if (builder.TryGetCadObject(this.GeometryHandle, out var geom)) + { + } + } } } \ No newline at end of file diff --git a/src/ACadSharp/Objects/DimensionAssociation.cs b/src/ACadSharp/Objects/DimensionAssociation.cs index 5f10d11fc..42148ea54 100644 --- a/src/ACadSharp/Objects/DimensionAssociation.cs +++ b/src/ACadSharp/Objects/DimensionAssociation.cs @@ -4,39 +4,67 @@ namespace ACadSharp.Objects { - public enum RotatedDimensionType : short + [System.Flags] + public enum AssociativityFlags : short { - Unknown = 0, - Parallel = 1, - Perpendicular = 2 + None = 0, + + FirstPointReference = 1, + + SecondPointReference = 2, + + ThirdPointReference = 4, + + FourthPointReference = 8 } public enum ObjectOsnapType : short { None = 0, + Endpoint = 1, + Midpoint = 2, + Center = 3, + Node = 4, + Quadrant = 5, + Intersection = 6, + Insertion = 7, + Perpendicular = 8, + Tangent = 9, + Nearest = 10, + ApparentIntersection = 11, + Parallel = 12, + StartPoint = 13, } - [System.Flags] - public enum AssociativityFlags : short + public enum RotatedDimensionType : short { - None = 0, - FirstPointReference = 1, - SecondPointReference = 2, - ThirdPointReference = 4, - FourthPointReference = 8 + Unknown = 0, + + Parallel = 1, + + Perpendicular = 2 + } + + public enum SubentType : short + { + Unknown = 0, + + Edge = 1, + + Face = 2 } /// @@ -50,14 +78,17 @@ public enum AssociativityFlags : short [DxfSubClass(DxfSubclassMarker.DimensionAssociation)] public class DimensionAssociation : NonGraphicalObject { - /// - public override string ObjectName => DxfFileToken.ObjectDimensionAssociation; - - /// - public override ObjectType ObjectType => ObjectType.UNLISTED; + /// + /// Gets or sets the associativity flags that define the reference points for an entity. + /// + [DxfCodeValue(90)] + public AssociativityFlags AssociativityFlags { get; set; } - /// - public override string SubclassMarker => DxfSubclassMarker.DimensionAssociation; + /// + /// Gets the name of the class represented by this instance. + /// + [DxfCodeValue(1)] + public string ClassName { get; set; } = "AcDbOsnapPointRef"; /// /// Gets or sets the associated dimension object. @@ -66,10 +97,10 @@ public class DimensionAssociation : NonGraphicalObject public Dimension Dimension { get; set; } /// - /// Gets or sets the associativity flags that define the reference points for an entity. + /// Gets or sets the geometry parameter used for the Near object snap (Osnap). /// - [DxfCodeValue(90)] - public AssociativityFlags AssociativityFlags { get; set; } + [DxfCodeValue(40)] + public double GeometryParameter { get; set; } /// /// Gets or sets a value indicating whether the entity is in trans-space. @@ -77,17 +108,8 @@ public class DimensionAssociation : NonGraphicalObject [DxfCodeValue(70)] public bool IsTransSpace { get; set; } - /// - /// Gets or sets the type of the rotated dimension, indicating whether it is parallel or perpendicular. - /// - [DxfCodeValue(71)] - public RotatedDimensionType RotatedDimensionType { get; set; } = RotatedDimensionType.Unknown; - - /// - /// Gets the name of the class represented by this instance. - /// - [DxfCodeValue(1)] - public string ClassName { get; set; } = "AcDbOsnapPointRef"; + /// + public override string ObjectName => DxfFileToken.ObjectDimensionAssociation; /// /// Gets or sets the object snap type associated with the entity. @@ -95,24 +117,11 @@ public class DimensionAssociation : NonGraphicalObject [DxfCodeValue(72)] public ObjectOsnapType ObjectOsnapType { get; set; } - //331 - //ID of main object (geometry) - - //73 - //SubentType of main object (edge, face) - - //91 - //GsMarker of main object (index) + /// + public override ObjectType ObjectType => ObjectType.UNLISTED; //301 //Handle(string) of Xref object - - /// - /// Gets or sets the geometry parameter used for the Near object snap (Osnap). - /// - [DxfCodeValue(40)] - public double GeometryParameter { get; set; } - /// /// Gets or sets the object snap (Osnap) point in world coordinate system (WCS). /// @@ -121,6 +130,29 @@ public class DimensionAssociation : NonGraphicalObject [DxfCodeValue(10, 20, 30)] public XYZ OsnapPoint { get; set; } + /// + /// Gets or sets the type of the rotated dimension, indicating whether it is parallel or perpendicular. + /// + [DxfCodeValue(71)] + public RotatedDimensionType RotatedDimensionType { get; set; } = RotatedDimensionType.Unknown; + + /// + public override string SubclassMarker => DxfSubclassMarker.DimensionAssociation; + + /// + /// Gets or sets the type of the rotated dimension, indicating whether it is parallel or perpendicular. + /// + [DxfCodeValue(73)] + public SubentType SubentType { get; set; } = SubentType.Unknown; + + //331 + //ID of main object (geometry) + + //73 + //SubentType of main object (edge, face) + + //91 + //GsMarker of main object (index) //332 //ID of intersection object (geometry) From 811b9db8875c9509f11304c3ddbf2e13e8157a49 Mon Sep 17 00:00:00 2001 From: DomCR Date: Wed, 26 Nov 2025 08:43:36 +0100 Subject: [PATCH 6/6] duplicated --- src/ACadSharp.Tests/IO/WriterSingleObjectTests.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/ACadSharp.Tests/IO/WriterSingleObjectTests.cs b/src/ACadSharp.Tests/IO/WriterSingleObjectTests.cs index 47948c640..991febfac 100644 --- a/src/ACadSharp.Tests/IO/WriterSingleObjectTests.cs +++ b/src/ACadSharp.Tests/IO/WriterSingleObjectTests.cs @@ -82,7 +82,6 @@ static WriterSingleObjectTests() Data.Add(new(nameof(SingleCaseGenerator.Dimensions))); Data.Add(new(nameof(SingleCaseGenerator.DimensionWithLineType))); Data.Add(new(nameof(SingleCaseGenerator.GeoData))); - Data.Add(new(nameof(SingleCaseGenerator.TextAlignment))); Data.Add(new(nameof(SingleCaseGenerator.LineTypeInBlock))); Data.Add(new(nameof(SingleCaseGenerator.XData))); Data.Add(new(nameof(SingleCaseGenerator.XRef)));