* Workaround for bad DXF files that contain polyface with invalid geometry, they will be removed.
* Workaround for bad DXF files that contains entities without handles. This may derive in unexpected side effects.
* Workaround for bad DXF files lacking BLOCK_RECORD tables for the defined blocks. The default block record values will be given what may have other side effects.
* Workaround for possible duplicate layers in layer states properties when reading a DXF.
* The Ellipse SetAxis method will automatically assign the larger axis value as the major axis and the lower as the minor axis.
* Added NET 6.0 as a target framework.
* Updated netDxf solution for Visual Studio 2022. The solution file is still usable by Visual Studio 2019 but it does not support NET 6.0.
* Added more GTE classes. See the Samples for GTE classes
* Deleted the SplineVertex class. Now the Spline constructors take two lists: a Vector3 to define the controls points and a double array to define the weights.
* PolygonMesh entities are now capable to handle closed in U and/or V surfaces.
* The internal blocks that start with "*U" or "*T" can be safely renamed. They are internally created to represent dynamic blocks, arrays, and tables; although the information of those objects is lost when importing the DXF, the block that represent its graphical appearance is imported.
* PolyfaceMesh vertexes are now a list of Vector3. The additional information that the DXF requires will be generated when the file is saved.
* Deleted the PolyfaceMeshVertex class, there is no use for it anymore.
* PolyfaceMeshFace does not inherit from DxfObject anymore.. The additional information that the DXF requires will be generated when the file is saved.
* PolyfaceMeshFace can have its own Layer and/or Color. By default they are set to null to inherit from its parent PolyfaceMesh.
* Polyline vertexes are now a list of Vector3. The additional information that the DXF requires will be generated when the file is saved.
* Deleted the PolylineVertex class, there is no use for it anymore.
* Added a new method ToLwPolyline to the Polyline and Spline class. It returns a LwPolyline(2d polyline) that is the result of projecting the entity into the plane defined by its normal.
* Added a BezierCurveQuadratic class that represents a second degree bezier curve.
* Added a BezierCurveCubic class that represents a third degree bezier curve.
* Added a constructor to the Spline class that will initialize a nurbs curve from a set of quadratic or cubic bezier curves.
* Added the SPLINESEGS as a header variable. It is used as the a base value for the precision when the additional vertexes for SplineFit Polylines are generated. For open polylines the Precision = SplineSegs * (Number of Vertices - 1), for closed ones Precision = SplineSegs * Number of Vertices.
* Implemented the SmoothType property of the Polyline class to smooth out polylines as quadratic or cubic B-Splines, althought is recommended to use a Spline entity in these cases.
* Smoothed Polylines by CurveFit will be imported as LwPolylines.
* The Spline constructor that takes a set of fit points will also generate the control points so it can be fully utilized. It creates a list of cubic bezier curves that passes through the fit points, and with the resulting curves the spline will be initialized.
* The Spline properties IsClosed and IsClosedAndPeriodic (renamed form IsPeriodic) can now be changed.
* The Spline knot vector values can now be changed.
* (fixed) Workaround for multiline styles with no name in bad formated DXF files.
* (fixed) The precision argument of the Arc.PolygonalVertexes method represents the number of vertexes genarated not the number of division, as it is the case of similar methods of other entities.
* The netDxf library is now licensed under the MIT License.
* Updated solution file to Visual Studio 2019.
* netDxf targets multiple frameworks, predefined frameworks for Net Framework 4.5, Net Standard 2.1, Net Core 3.1, and NET 5.0.
* The ImageDefinition properties File, Width, Height, HorizontalResolution, and VerticalResoultion now can be modified.
* The ShapeStyle property File can now be modified.
* The UnderlayDefinition property File can now be modified. The file extension must match its type.
* To declutter the DxfDocument, the entity operations such as adding, removing, or retiveing a specific list of entities (Lines, Circles,...) that where done directly through the drawing document have been moved to the Entities property of the DxfDocument.
These are no more than shortcuts to the real place where the entities are stored in a document, this is the drawing.Layouts[layoutName].AssociatedBlock.Entities.
The layout where the operations are performed is defined by the ActiveLayout.
* The ImageDefinition constructors "public ImageDefinition(string file)" and "public ImageDefinition(string name, string file)" are only available when targeting the Net 4.5 framework. This is to avoid the use of the additional System.Drawing.Common.dll library. See CreateImageDefinition() sample.
* The TextStyle method "public static string TrueTypeFontFamilyName(string ttfFont)" is only available when targeting the Net 4.5 framework. This is to avoid the use of the additional System.Drawing.Common.dll library. It will now only available when targeting the Net 4.5 framework.
* The HeaderVariable DwgCodePage will not be used to load or save DXF files, prior to DxfVersion.AutoCad2007 ASCII encoding will be use and UTF8 for later.
It doesn't seems to play any role, open a new issue at GitHub if non-ASCII characters does not show up correctly.
This will avoid the use of additional libraries to handle the encoding code pages.
* PlotSetting paper margins properties (left, bottom, right, and top) encapsulated in a structure called PapertMargin.
* Added XData property to table objects. All objects that may contain extended data implement the interface IHasXData.
* When loading or writing a DXF that is not one of the supported versions a DxfVersionNotSupportedException will be thrown.
* While loading DXF files, if a TextStyle is found that references a font file that does not have the extension TTF or SHX, it will be substitute by the default "simplex.shx".
* (fixed) Deleted some duplicate code that was messing with the reading of the DimensionStyle DIMZIN value (leading and trailing zeros suppression).
* (fixed) While reading Angular2LineDimension entities the ArcDefinitionPoint (16,26,36) vector was not saved.
* (fixed) While reading OrdinateDimension entities the FirstPoint (13,23,33) and SecondPoint (14,24,34) vectors were not saved.
+ Updated solution to Visual Studio 2015, the previous 2013 solution is saved as netDxf2013.sln.
+ (fixed) Issue Id #13507 Vertical Linear Dimensions Drawn Crossed.
+ Added the DimensionStyles variable DIMCLRD, DIMLTYPE, and DIMLWD that control the dimension line drawing.
+ Added the DimensionStyles variable DIMCLRE, DIMLTEX1, DIMLTEX2, DIMLWE, DIMSE1, and DIMSE2 that control the extension line drawing.
+ Added the DimensionStyle variables DIMSAH, DIMBLK, DIMBLK1, and DIMBLK2 that control the dimension arrowheads.
+ Added the DimensionStyle variable DIMSCALE that controls the overall scale of the dimension.
+ Added the DimensionStyle variable DIMCLRT that controls the color of the dimension text.
+ Rename DimensionStyle.TextStyle to DimensionStyle.DIMTXSTY.
+ Updated solution to Visual Studio 2013. The old 2010 solution is saved as netDxf2010.sln.
+ (fixed) Issue Id #13306 netDxf fails to read dxf file with xData.
+ (fixed) Issue Id #13325 Vector3.AngleBetween() may return a value of "NaN" (Not a Number)
+ (fixed) Bug when trying to remove a block definition from a dxf document.
+ Workaround/fixes due to inconsistences on dxf files generated by Sketchup and EASE. Now during the attribute initialization all attribute definition properties will be copied, so any changes made to the attribute definition will only be applied to new attribute instances and not to existing ones. This is due to some dxf files might generate INSERT entities that contains attributes that are not defined in the BLOCK, even though it might be incorrect, strictly speaking, AutoCad allows this behaviour.
+ (fixed) AutoCad was giving an error with the LastSavedBy Header variable, this variable was not being recognized in AutoCad2000 dxf versions files.
+ (fixed) Issue Id #11690 Insert Entity Scale.
+ (fixed) Error reading color in ReadVertex() method.
+ Updated "netDxf Documentation.chm".
+ Added AutoCad2010 database version number.
- (fixed) Renamed the PolylineVertex and LightweightPolylineVertex StartThickness and EndThickness as StartWidth and EndWidth, it should always be this way. Do not confuse Elevation, Width and Thickness of an entity. I try to follow the AutoCAD documentation as close as possible, please check it in case of doubt or as in this case I might be wrong.
- (fixed) Read and write ellipse entity
- (fixed) To make it easier and to unify concepts, the center of a circle, an arc and an ellipse are always given in world coordinates, even though the dxf gives the center of the circle and the arc in object coordinates, and the center of the ellipse in world coordinates. The local (to the center) orientation of the entity will be given by the normal.