CadLib 3.5 Version history

3.5.37.113 Feb 1, 2017:

  • Bug fix: fixed MTEXT layout problems in case of specific attachment point/text alignment (in escape codes)/reference rectangle width combinations.
  • Bug fix: centered MTEXT was still incorrectly positioned in case the MTEXT had a non-zero ReferenceRectangleHeight (broken in version *.*.37.107).
  • Bug fix: fixed MTEXT layout when first line(s) are empty or contain low height characters.
  • Added support for DxfDimension.HorizontalDirection and dimension style properties SuppressFirstDimensionLine and SuppressSecondDimensionLine in the dimension style block generation for aligned dimensions.
  • Bug fix: centered mtext was incorrection positioned (broken in version *.*.37.107).
  • Bug fix: relaxed hatch spline edge knot check to a warning. Previous fix still raised an exception.
  • Bug fix: relaxed hatch spline edge knot check to a warning.
  • Bug fix: fixed sortents DXF parsing problem in case of references to non-existent entities.
  • Bug fix: fixed MTEXT layout problem related to paragraph alignment.
  • Added documentation on the text entity control codes.
  • Added property SvgExporter.EmbedImages, with default value true. When false the SVG image element references the image by filename.
  • Bug fix: fixed problem with decoding text %%nnn code when followed by one or more digits.
  • Added missing properties DxfDimensionStyle.DimensionLineLineType, FirstExtensionLineLineType, SecondExtensionLineLineType.
  • Bug fix: fixed problem writing binary DXF int groups in some cases.
  • Added multi leader style properties MLeaderStyles and DefaultMLeaderStyle to DxfModel.
  • Bug fix: ignore illegal date time field values.
  • Added a multi leader example to the documentation.
  • Bug fix: fixed crash when reading value format with unknown data type.
  • Added entity transform example to documentation.

3.5.37.99 Dec 23, 2016:

  • Bug fix: fixed problem writing 2D polyline vertex widths to DWG when read from DXF with zero vertex widths and non-zero default widths.
  • Changed WpfWireframeGraphics3DUsingDrawingVisual API to be more aligned with WpfWireframeGraphics3D so they can be more easily interchanged.
  • Bug fix: fixed problem with PDF font embedding for some Chinese true type fonts.
  • Added encoding for HZTXT.SHX font.
  • Marked PdfExporter.UseMultipleLayers as obsolete.
  • Bug fix: line type should not be applied to 3D polyline entity.
  • Bug fix: fixed problem reading a proxy graphics shell object.
  • Bug fix: changed spline knot validation message from error to warning as regularly knots for periodic/closed splines are not valid.
  • Bug fix: PolylineShape4D to GraphicsPath conversion was incorrect in case of multiple polylines: the polylines were connected. Fixed by adding a GraphicsPath.StartFigure() call at the start of each polyline. This manifested itself e.g. in SHX text rendering in paper space after clipping.
  • Bug fix: modelspace in a viewport should not be shown if the viewport is disabled.
  • Bug fix: PdfExporter created invalid PDF files in some cases when trying to export text as PDF text in combinations with PDF layers.
  • Bug fix: GDIGraphics3D ignored the GraphicsConfig.FixedForegroundColor setting.
  • Added support for dimension style text background color.
  • Bug fix: properties dim style overrides text background color/fill flags were switched when reading and writing.
  • Bug fix: removed front clipping from SvgExporter in case of a clip rectangle was specified.
  • Bug fix: fixed problems with text viewport clipping when trying to export text as text to PDF/SVG.
  • Bug fix: fixed problems with text clipping and transformation when trying to export text as text to PDF/SVG (probably paper space only).
  • Bug fix: undid summary info time shift change from version *.*.37.82 when reading/writing R15 DWG/DXF because a zero time will run out of range.
  • Bug fix: fixed line type scaling bug in paperspace layout viewports.
  • Bug fix: dimension block text height was incorrectly scaled by dimension style scale factor.
  • Bug fix: rotated dimension text rotation should not be applied if zero.
  • Fixed problem in hatch example documentation and added a few convenience properties to the hatch ellipse edge.
  • Bug fix: fixed rendering crash and problem for closed period splines.
  • Added support for reading/writing summary info from R15 DWG/DXF files and earlier.
  • Added support for reading/writing the table entity from/to R15 DWG/DXF files.
  • Bug fix: fixed problem with DXF reading/writing of encrypted modeler geometry (REGION/3DSOLID entities).
  • Also load bitmaps from secure urls.
  • Bug fix: fixed MLINE regressed rendering problem for filled MLINE.
  • Bug fix: the web request for downloading an image now specifies a user agent, some servers return a 403 error when not specified.
  • Bug fix: 2D spline rendering should not be affected by SPLFRAME system variable.
  • Bug fix: 2D spline rendering crashed in some cases.
  • Added comment to property DxfMText.XAxis that it should always be of unit length.

3.5.37.78 Nov 3, 2016:

  • Bug fix: OLE image entity was not being clipped when rendered.
  • Removed Polygon2I.BooleanOperations17Bits.
  • Bug fix: fixed problem in Polygon2I.BooleanOperations20Bits snap rounding part in some cases when both segments of an intersection were sloping downwards.

3.5.37.78 Nov 1, 2016:

  • Bug fix: fixed exception upon loading invalid annotation.
  • Bug fix: cubic spline interpolation for case with 2 interpolation points failed.
  • Bug fix: fixed problem in Polygon2I.BooleanOperations20Bits in case of very close together events.
  • Bug fix: tolerance text was scaled even when the text style used a fixed text height. The field height was also not scaled properly in this case, because the field height is independent of the text style's fixed height, but depends on the tolerance dimension style text height times the scale factor.
  • Bug fix: mtext negative indentation was handled incorrectly.
  • Added support for viewport layer overrides (color, line type, line weight, transparency).
  • Bug fix: not all xrecord value codes were correctly read from DXF.
  • Bug fix: use dimension block associated with the viewport's annotation scale in paper space when rendering a dimension.
  • Bug fix: fixed problem getting the viewport annotation scale.
  • Bug fix: fixed reading problem with header variables ANNOALLVISIBLE, ANNOTATIVEDWG, MSLTSCALE, PSLTSCALE.
  • Added method DxfLeader.GetEffectiveArrowSize().
  • Bug fix: fixed image boundary calculation when image file cannot be found and therefore has zero size.
  • Download image if image filename is an url.
  • Fixed problem with trial block text scaling.
  • Removed dependency on SharpZipLib. Replaced with .NET's compression (DeflateStream). From .NET 4.5 onwards DeflateStream uses zlib under the hood, which is a lot better than the previous implementation, which alleviates the need to use SharpZipLib. Also some customers were using the original unsigned version of SharpZipLib, which caused a clash with a signed version of SharpZipLib which CadLib used (we compiled a signed version to be able to sign all CadLib assemblies using a strong name key).
  • Bug fix: fixed problem with GDI+ rendering of rotated images in some cases.
  • Made image loading more tolerant of inaccurate image locations.
  • Refined setting up of empty paper layout.
  • Added example code demonstrating ability to convert a specific view to a PDF page.
  • Guard against adding duplicate shx lookup directories.
  • Bug fix: forgot to implement DxfMLeader.TransformMe overload with 2 parameters.
  • Bold/italic text now correctly exported to SVG using the SvgExporter when retaining text in SVG.
  • Added property GraphicsConfig.Plot. When set to true, then a layer is not visible if its PlotEnabled property has value false.
  • Bug fix: fixed proxy graphics polyline/polygon with line type rendering problems.
  • Bug fix: fixed clipping problem in SvgExporter in paper mode. Problem was introduced in version *.*.37.46.
  • Recalculate table column width when a block is displayed in a table cell and auto scale is false.
  • Bug fix: table content format auto scale property wasn't handled correctly.
  • Bug fix: when reading files with duplicate text styles, use the first one and discard the duplicates. References to the duplicates are redirected to the first text style.
  • Bug fix: when reading a DXF/DWG file, use 2005 table data when both 2005 table data and table content are present.
  • Bug fix: fixed problem writing table entity to DWG R24/R27 causing the table borders to not be shown in AutoCAD.
  • Bug fix: fixed problem with not correctly setting the active layout when no paper space layouts have viewports.
  • Bug fix: cell style horizontal and vertical margins were swapped when writing to DXF.
  • Added support for MTEXT font code italic flag.
  • Bug fix: fixed problem with incorrect layout viewport order for some layouts (all layouts in R13-R15).
  • Bug fix: set active layout to null when it is removed from the model's layouts.
  • Bug fix: dimension property UseTextMiddlePoint was not correctly read from DWG files.
  • Bug fix: fixed crash when rendering an image with illegal area boundary vertices.
  • Bug fix: entity true color wasn't used when entity color was by block/by layer.
  • Bug fix: fixed hatch rendering crash with boundaries containing empty polylines.
  • Bug fix: fixed index out of range problem in PolygonClipper.
  • Bug fix: fixed problem with drawing polylines in PdfExporter after recent polyline width patch.
  • Bug fix: don't crash when reading DXF file with illegal layout reference from a block record.
  • Bug fix: PdfExporter didn't handle polyline filling/closing correctly after the previous patch.
  • Improved wide polyline (LWPOLYLINE) rendering. Use the entity's line weight for sections that have zero width.
  • Fixed incorrect spline interpolation for special 2 point case.
  • Added spline interpolation for missing 3 point case.
  • Made DxfSpline.UpdateSplineFromFitPoints) method public to allow user update.
  • Bug fix: fixed transformation of insert in case the transformation contains a mirroring component.
  • Bug fix: fixed DXF parsing problem with xrecord value for code 5.
  • Bug fix: fixed line width calculation when GDIGraphics3D.To2DTransform property is set in the constructor instead of setting the property.
  • Improved 2D spline polyline rendering, make use of GraphicsConfig.ShapeFlattenEpsilon.
  • Added property GraphicsConfig.NoOfArcLineSegmentsMinimum to avoid arcs being represented by single line segments when the arc's included angle is relatively small.
  • Bug fix: fixed crash when encountering illegal MTEXT \C code.
  • Bug fix: fixed problem with parsing unknown groups in proxy entity when reading from DXF.
  • Bug fix: accept empty block name in DXF file.
  • Bug fix: fixed problem with some cell style property override flags not being used.
  • Bug fix: fixed problem with property overrides when writing a table entity to DXF.
  • Bug fix: display viewport frames instead of layout frame.
  • Bug fix: calculate the correct layout plot area bounds in case the plot paper units is set to inches.
  • Bug fix: ignore viewport line weight for paper space layouts.
  • GDIGraphics3D now correctly displays line weight for paper space layouts.
  • Added new example code for PdfExporter that shows how to export a paper space layout using the layouts plot area bounds.
  • Bug fix: Polygon2I.BooleanOperations20Bits: fixed problem with removing self overlapping segments in some cases.
  • Bug fix: fixed table style default cell style reading from R24+ DWG files.
  • Bug fix: fixed use of table cell margins, use the table row/column/cell values if present, never fall back all the way to the table style level.
  • Bug fix: recalculate the table row height when the cell content plus the vertical margin times two doesn't fit the row height.
  • Bug fix: don't write cell style map to R21 DWG files and later (writing it in R21 DWG and later caused duplicate cell styles in AutoCAD).
  • Bug fix: write correct cell style id to DWG files for non-default cell styles. The incorrect cell style id numbering seemed to cause AutoCAD instability.
  • Bug fix: fixed crash when reading DXF file containing layouts with incorrect block references.
  • Bug fix: fixed problem in extracting annotative data. Bug was introduced in previous release.
  • Add support for table/row/column/cell background color.
  • Added property SvgExporter.ClipRectangle.
  • Bug fix: use MTEXT box with when ReferenceRectangleWidth is zero.
  • Bug fix: adapt attribute angle when block's match orientation to layout is set to true.
  • Bug fix: attribute of an annotative insert should be rendered as annotative.
  • Bug fix: when rendering use text styles true type font descriptor font file name if present.
  • Bug fix: adjust table row height for multi-line text and cells containing blocks.
  • Bug fix: table cell block auto scale value wasn't written correctly to DXF/DWG.
  • Bug fix: fixed problem with line type scaling on PDF export for paper space entities on paper space layouts.
  • Allow DxfLineCreator and DxfLwPolylineCreator to work in paper space.
  • Fixed possible FormatException for MText escape.
  • Bug fix: fixed y-axis inversion problem in method DxfWipeout.SetWipeoutPolygon().
  • Bug fix: fixed floating point precision problem in Polygon2D.OverlapTester.
  • Bug fix: fixed entity ordering not used in CadEditControl.
  • Bug fix: fixed incorrect rotation value written for dimension rotation (DXF).
  • Bug fix: field DxfAttributeBase.primaryMultiLineAttribute was not cloned.
  • Bug fix: Object reference not set to an instance of an object error when opening a file containing corrupt annotation scale data.
  • Bug fix: fixed problem rendering MTEXT containing color codes with 32-bit unsigned int values exceeding Int32.MaxValue.
  • Bug fix: fixed problem reading non-unique data store records.
  • Bug fix: fixed problem writing proxy entity binary/string data.
  • Bug fix: DxfOle.TransformMe was not implemented.
  • Bug fix: SelectInteractor sometimes incorrectly collected a single entity twice in case an entity consisted of some geometry plus sub geometry from a block (e.g. leader entity).
  • Added property CadEditControl.ShowGridLines.
  • Changed BlinnClipper4D to no longer treat non-filled closed polylines as filled. Previous behavior was an over simplification, but faster.
  • Switched to exact triangulation in hatch surface rendering. Previous floating point based code crashed in some cases due to floating point issues with polygons containing points that were very close together.
  • Bug fix: fixed proxy entity cloning crash.
  • Added method DxfLayout.GetPlotAreaBounds() for getting the layout's plot area bounds.
  • Renamed PlotType more appropriately to PlotArea.
  • Improved layout example code and the layout documentation.
  • Bug fix: layout bounds for PlotType.LayoutInformation was incorrect.
  • Bug fix: fixed problem with layout frame not being drawn (PlotLayoutFlags.PlotViewportBorders should be ignored).
  • Added new SnapMode.PointOnArcAtDiscreteAngles for snapping only at 0/90/180/270 degrees.
  • Bug fix: string stream length reading from DWG for R24+ was incorrect for string stream lengths larger than 31 bits.
  • Bug fix: line weight wasn't correctly applied in paper space by the ImageExporter.
  • Bug fix: SvgExporter didn't put text in the correct SVG group.
  • Bug fix: don't crash upon reading illegal dimension style extended data, but give a warning message.
  • Bug fix: dimension extended data sometimes contains value of unexpected type. Allow for some flexibility in the value types.
  • Bug fix: fixed a few problems in PolygonClipper.
  • Bug fix: fixed problem of WPF rendering of OLE image.
  • Bug fix: fixed accuracy problem with approximating quadratic splines with a polyline.
  • Bug fix: fixed accuracy problem with approximating cubic splines with a polyline.
  • Fixed calculation problema with cubic bezier curves.
  • Fixed FormatException during handling of broken MTEXT escape.
  • Bug fix: fixed problem in transformation of 2D polyline arcs and hatch boundary polyline arcs in case of mirror transforms.
  • Bug fix: fixed problem in transformation of LWPOLYLINE arcs in case of mirror transforms.
  • Bug fix: fixed problem in transformation of hatch arc edges in case of rotation/mirror transforms.
  • Updated outdated rotation code in extended view example.
  • Added support for MSLTSCALE and PSLTSCALE system variables.
  • Bug fix: fixed problem reading multiple plot settings objects (DxfPlotSettings) with identical PageSetupName.
  • Bug fix: fixed problem in 20-bits polygon boolean operations in case of self-crossing/self-overlapping polygons.

3.5.37.15 Mar 16, 2016:

  • Added ability to export text to SVG text in the SvgExporter.
  • Bug fix: fixed problem DXF writing of extended data binary value.
  • Bug fix: fixed DWG reading problem with objects larger than 30 bits.
  • Clarified documentation on usage of the ImageDisplayFlags.ShowUnalignedImage flag for rotated images and updated example code.
  • Bug fix: fixed problem with reading double values from DXF when the double string contains extra characters after the double value.
  • Bug fix: some DWG files written by the ODA don't contain header checksum values.
  • Bug fix: fixed problem with writing table cell background color to DXF.

3.5.37.9 Feb 11, 2016:

  • Bug fix: fixed problem with writing 7-byte handle values to a DWG file.

3.5.37.8 Feb 11, 2016:

  • Bug fix: fixed problem with getting polygons from a triangulation in case of touching polygons (caused hatch rendering problem in some cases).

3.5.37.7 Feb 5, 2016:

  • Bug fix: Improved dimension block generation in case DxfDimension.UseTextMiddlePoint is true.
  • Bug fix: in the editor the delete menu item always was active, even when the PropertyGrid had focus.
  • Bug fix: fixed problem with WIPEOUT boundary rendering in case it has a line type.
  • Bug fix: fixed some problems with mleader text underlining/overlining.
  • Streamlineded SPLINE handling for DxfMLeader, DxfLeader, and DxfSpline with only fixpoints.
  • Bug fix: fixed problem with reading a MULTILEADER entity with XDATA from DXF.
  • Added spline interpolation for DxfSpline, DxfLeader and DxfMLeader.
  • Fixed BackColor support in CadEditControl.
  • Bug fix: discard null GROUP object references when reading non-existent references from DXF.
  • Set extremely large coordinates to zero after reading (implemented in arc and circle entities).
  • Repair invalid insert coordinates (e.g. NaN) after reading.
  • Added properties SimpleTransformationProviderBase.ModelBoundsFitType and SimpleTransformationProviderBase.Margin to have more control over fitting the model in the view window.
  • Added option to integrate documentation with Visual Studio 2015 help in the installer.
  • Bug fix: DxfEllipse.TransformMe didn't always normalize the z-axis after transformation.
  • Bug fix: fixed writing problem of separate DxfMLeaderAnnotationContext object.
  • Implemented MULTILEADER entity.
  • Bug fix: fixed rendering in wrong color for mtext with sub selection in true color.
  • Bug fix: fixed problem with reading files containing dictionary entry where the value is an unsupported object.

3.5.36.97 Jan 8, 2016:

  • Bug fix: fixed problem with DWG reading of field value with 14 byte datetime values created by older CadLib versions.
  • Open files such that other applications can still have a file opened in read/write mode.
  • Added DxfSpline constructor accepting a degree parameter.
  • Bug fix: fix precision issues with 2D polygon overlap tests.
  • Bug fix: adjust line type rendering in model space when CANNOSCALE is set.
  • Bug fix: Bounds3D.Overlaps always returned true. Fixed same issue with Bounds2D.Overlaps.
  • Bug fix: fixed problem with drawing invisible table borders.
  • Added option to tag DrawingVisual objects in WpfWireframeGraphics3DUsingDrawingVisual. Minor breaking change: refactored WpfWireframeGraphics3D to use the same object tagger delegates (moved to CadGraphicsHelper).
  • Bug fix: fixed DWG read/write problem for color object.
  • Bug fix: fixed problem with ellipse transformation in case of mirror transforms.

3.5.36.89 Nov 27, 2015:

  • Bug fix: fixed problem writing VPORT with zero height to DXF. Changed error message into a warning.
  • Bug fix: fixed WPF image entity rendering rotation problem.
  • Draw image frame in WPF depending on GraphicsConfig.DrawImageFrame setting.
  • Bug fix: remove invalid layout instead of crashing when reading file.
  • Added property GraphicsConfig.DrawImageFrame to mimic the IMAGEFRAME system variable.
  • Bug fix: added work around for bug in System.Drawing.Graphics.DrawPath that throws OutOfMemoryException for small GraphicsPath objects with pen width greater than 1.
  • Bug fix: polygon clipper shouldn't return closed polyline if polyline has less than 3 vertices.
  • Bug fix: improved clipping robustness in case of very close together points.
  • Bug fix: fixed crash in 2D polygon overlap test in case of self-intersecting/self-overlapping input polygons. This problem occurred during rendering of some hatch entities.
  • Bug fix: fixed problem creating a drawing with no entities in model space in evaluation mode.
  • Added the R21 properties to DxfBlock: BlockUnits, Explodable and ScaleUniformly.
  • Bug fix: fixed problems in dynamic block reading/writing.
  • Improved shape clipping performance by reducing shape flattening precision for bounds calculation and clipping. Introduced new property GraphicsConfig.ShapeFlattenEpsilonForBoundsCalculation for controlling the accuracy of bounds calculation (used for clipping).
  • Bug fix: fixed incorrect MTEXT text block coloring for color 0 (should be by block color), and non-ACI color (should be by layer color).
  • Bug fix: fixed problem in PDF exporter with incorrect line widths for all viewports after the first viewport.
  • Bug fix: fixed problem rendering OLE bitmap with zero width or height (when zoomed out very far).
  • Bug fix: fixed problem with ViewportTransformer.Clone(), where the modelToPaperSpaceTransform field was not copied. This caused paper space layout rendering issues in some cases.
  • Bug fix: fixed text alignment problem when text has indentation.
  • Bug fix: fixed problem in Matrix4D.TransformTo3D(Vector2D). This caused a problem in spatial filtering in some cases.
  • Bug fix: fixed problem in spatial filter clip plane normal calculation.
  • Bug fix: fixed problem with writing a DWG/DXF file containing a table style without cell styles.
  • Bug fix: fixed problem with cell style synchronization between table style cell styles and cell style map.
  • Bug fix: fixed DWG read/write problem due to invalid DxfMTextObjectContextData dwgtype.
  • Bug fix: fixed problem with writing to DWG containing objects with strings totaling more than 30 bits (R24 and later).
  • Bug fix: fixed problem with writing proxy entity data to DXF.
  • Added ImageExporter method allowing to plot layouts in their defined extent.
  • Bug fix: fixed problem with reading from DWG containing objects with strings totaling more than 30 bits.
  • Fixed bugs with polygon viewport clipping.
  • Fixed colors sometimes wrong in PDF.
  • Added DotSize property for PdfExporter.
  • Bug fix: creation of DxfHatchScaleContextData failed for hatch with null Pattern.
  • Allow duplicate points in input polygons for all the exact triangulators. Is used to repair invalid self-intersecting regions.
  • Switched to new 20-bit polygon boolean operations in hatch rendering.
  • Bug fix: slow reading for dictionaries with many anonymous dictionary entries.
  • Added property CloseStreamAfterReading to DxfReader and DwgReader, so the stream can be kept open after reading if needed. The default is to close the stream after reading.
  • Bug fix: don't display points when PDMODE is 1 (none).
  • Added 3D hatch example.
  • Bug fix: fixed problem writing an HATCH entity to an R14 DWG file.
  • Bug fix: fixed problem writing an LWPOLYLINE entity to an R14 DWG file.
  • Fixed some potential OLE object release problems.
  • Bug fix: fixed problem with PDF text scaling when exporting text as PDF text (bug introduced in version 4.0.36.20).
  • Bug fix: fixed problem with disposing image bitmap too early in PdfExporter (bug introduced in version .65 as part of the improved OLE image rendering).
  • Bug fix: table borders should be put on DEFPOINTS layer when border is invisible.
  • Bug fix: fixed minor border positioning problems when using a combinations of single/double and visible/invisible table borders.
  • Breaking change: added method IWireframeGraphicsFactory.CreateScalableImage to support bitmaps of variable size depending on zoom level (used to render OLE object images).
  • Improved OLE object GDI+ and PDF rendering (create bitmap size depending on the displayed size). For GDI+ use property GraphicsConfig.MaxScalableImageSize to limit the maximum bitmap size created for rendering (useful when zooming in very far). For PDF use property PdfExporter.ScalableImagePixelsPerPdfPixel to configure how many pixels per PDF pixel to use when creating a bitmap from the OLE object.
  • Added support for image transparency to the PDF exporter (also used for images from OLE objects).
  • Bug fix: fixed problem with writing table with content wider than the cell width to an R24 DWG file.
  • Bug fix: fixed problem with table style writing to DXF (title and header cell styles were switched).
  • Bug fix: cell style fill color was black by default instead of none.
  • Bug fix: not all table cell style properties were saved when writing to an R21 DWG file (problem with not synchronizing between table style and its cell style map).
  • Bug fix: hatch name was not read correctly from DXF/DWG when the hatch had a pattern.
  • Added example code demonstrating how to print.
  • Bug fix: fixed rendering crash when raster image entity had self-overlapping image boundary polygon.
  • Fixed writing of '\r'.
  • Added convenience methods to RenderedEntityInfo.
  • Fixed NRE problem caused by text type ltype element w/o text.
  • Fixed incorrect R21+ DWG reading of line types containing more than one text element.

3.5.36.60 Jul 22, 2015:

  • Bug fix: fixed minor problem with incorrect proxy entity object reference reading from DXF.
  • Fixed incorrect initializeation of attribute's TagString.
  • Bug fix: fixed problem with proxy entity reading from DXF.
  • Bug fix: fixed problem with proxy graphics 3-point arc rendering.
  • Improved proxy graphics text rendering.
  • Added BeforeRead event to CadReader, DxfReader and DwgReader to allow custom initialization of a model.
  • Fixed NRE in DxfImage Clone()
  • Improved viewport clipping in the PDF exporter so images are now clipped by viewports they are displayed in.
  • Fixed handling of multiline attributes.

3.5.36.54 Jun 3, 2015:

  • Reverted fix from version 4.0.36.44. Presence of MTEXT group 63 caused problem in opening DXF file in AutoCAD 2014.
  • Bug fix: fixed problem with empty layout viewports initialization.
  • Bug fix: fixed problem with polygon boolean operations in case input contained overlapping segments (polygon retracing itself).
  • Bug fix: incorrect overlapping segment intersection calculation in case of segment B contained segment A, and the segments shared their start point.
  • Merge duplicate blocks upon reading.
  • Added property GraphicsConfig.DrawHatchPatterns to control whether or not to draw hatch patterns. If set to false, then property HatchOverflowHandling determines how the hatch is drawn.
  • Bug fix: fixed hatch rendering problem for self-intersecting hatch boundaries.
  • Improved performance on DWG/DXF reading with many dictionary entries with unsupported objects.
  • Added LineType support for DxfLeader.
  • Added support for spline DxfLeader.
  • Fixed possible ArgumentOutOfRange exception during EntitySelector operation.
  • Added empty layout initialization.

3.5.36.47 May 6, 2015:

  • Bug fix: PDMODE should not apply to points on DEFPOINTS layer, the layer name comparison was case sensitive and is now case insensitive.
  • Bug fix: improved stability of polygon boolean operations. Allow inputs with self-overlaps (will now be removed when segments are opposite).
  • Bug fix: line edit interactor caused problem. Bug was introduced in version *.*.36.44.
  • Bug fix: DXF writer now writes group 63 for MTEXT with window color as background.
  • Bug fix: linear dimension alternate units were not calculated correctly when generating the dimension block.
  • Bug fix: SimpleTransformationProviderBase.RectangleZoom was not correctly implemented.
  • Mouse position snapping now also displays indicators when snapping on the grid.
  • Bug fix: fixed bug in creating OpenGL bitmap in OpenGL viewer example.
  • Bug fix: fixed problem with graphics cache objects not finding the drawables for entities in some cases (e.g. when querying for attribute entity drawables).
  • Bug fix: spline rendering did not apply line type.
  • Support text sub string selection using the mouse.
  • Implemented selecting text sub string by use of the shift key in the text create/edit interactor.
  • Added property CadEditControl.TransformationProvider and added a constructor allowing to specify a different transformation provider.
  • Bug fix: don't crash when not possible to compose annotation data due to missing scale object.
  • Improved layout plotting.
  • Added method CadEditControl.UpdateDrawables() to update all the drawables for a model. Useful when e.g. turning layers on/off.
  • Bug fix: fixed NullReferenceException problem when reconstructing annotation scale related data when reading from DWG/DXF file.
  • Bug fix: allow for white spaces and redundant trailing digits in double values when reading from DXF.
  • Introduced DxfVersion for AC1013 AutoCAD R14 preview.
  • Improved reliability of polygon clipping.
  • Bug fix: entity WIPEOUT was written as image entity to DWG files.
  • Don't crash on XCLIPFRAME header variable with group 280 instead of group 290.
  • Implemented non-rectangular viewport clipping. REGION clipping (multiple polygons, possibly with holes) not yet supported.
  • Added helper method DxfWipeout.SetWipeoutPolygon() and example code for creating a WIPEOUT entity.
  • SilverlightBitmap can now download an image from a URL (but has to be on a background thread).
  • Bug fix: R12 DXF files cannot contain extended data for non-entity objects (like table records).
  • Bug fix: XRECORD didn't read group 280 values from DXF files.
  • Bug fix: XRECORD writing to DXF did not include all group codes depending on the DXF version.
  • Bug fix: extension dictionary wasn't written for table records (layer, text style table etc).
  • Bug fix: loading of bitmap locked the bitmap file due to use of Bitmap.FromFile.
  • Bug fix: DXF R12 files sometimes contain group 5 values that are not a handle, these are now ignored.
  • Bug fix: fixed problem of LEADER entity rendering in WPF/Silverlight in some cases.
  • Avoiding to write insane double values to PDF.
  • Bug fix: proxy graphics text read/write padding calculation was incorrect.
  • Avoided writing zero height texts to PDF.
  • Bug fix: DXF/DWG files may contain duplicate scale objects.
  • Bug fix: reading/writing of 2 types of proxy graphics text was incorrect.
  • Bug fix: fixed problem with shape filling (should be using even-odd rule). Broken in release 4.0.36.8.
  • Accepting quoted paths at some locations now.
  • Added support for images to the SvgExporter.
  • Reverted rename of LinearUnitFormat stacked values to their original names before version 36.11.
  • Bug fix: alternate scale factor wasn't taken into account when displaying alternate dimension units.
  • Bug fix: dimension unit postfix wasn't implemented correctly.
  • Added support for alternate dimension units.
  • Relaxed handling of incorrectly typed references during read.
  • Added ConsolidatingEntityVisitor.
  • Fixed dot handling during SVG export of hatch.
  • Bug fix: resolving annotation scale in dictionary variable CANNOSCALE was not always possible.
  • Fixed MTEXT parsing problems.
  • Bug fix: PdfExporter didn't use the layout PlotLayoutFlags.DrawViewPortsFirst flag when determining whether to draw the view ports first or last.

3.5.36.7 Nov 11, 2014:

  • Bug fix: when FILLMODE is 0 hatch entities should not be displayed.

3.5.36.6 Nov 10, 2014:

  • Fixed precision problem with 2D polyline subdivision (Polyline2D.Subdivide1). This caused a problem in surface rendering of some hatches where first and closing points were very close together.
  • Implemented RASTERVARIABLES object.
  • Implemented WIPEOUTVARIABLES object. The settings are used for determining whether or not the draw the WIPEOUT frame.
  • Bug fix: exact versions of polygon boolean operations contained a problem in the release version not filtering out zero length segments.
  • Switched to using robust polygon boolean operations for the hatch entity rendering. No longer using double-precision boolean operations.
  • Fixed problem with DxfBlock.BaseTransformation using wrong base point when block is XREF
  • Bug fix: BigInteger.GetGcd returned incorrect result in some cases.
  • Bug fix: ignore duplicate dimension styles when reading from DXF. Only the first dimension style with a particular name is kept.
  • Bug fix: the dimension line weight should be assigned to dimension tick lines.
  • Improved accuracy of spline fit point calculation.
  • Bug fix: fixed problem in BigRational calculation (finding least significant one bit was incorrect).
  • Added LongRational struct for doing rational calculations based on longs.
  • Bug fix: fixed bug in handling the proxy graphics line types.
  • Changed approximation of hatch line count will draw hatch lines more often.
  • Different handling of hatch boundaries with TextBox flag set.
  • Infinite values in DXF files are allowed in some places now similar to acad.
  • Renamed enum DrawCommand to DrawCommandCode and made it internal. Renamed class DrawCommandBase to DrawCommand.
  • Implemented WPF rendering for proxy graphics.
  • Fixed bug in proxy graphics Text2Base rendering.
  • Added support for the ACAD_PROXY_ENTITY entity (class DxfProxyEntity).
  • Bug fix: fixed crash when encountering duplicate table cell styles in R24+ DWG files.
  • Bug fix: fixed NullReferenceException when reading DXF file in which an insert references a non-existing block. Added an error message when this happens instead.
  • Improved error handling when reading DWG file with corrupt second header data address.
  • Bug fix: DxfLayout.TabOrder should be int instead of short.
  • Bug fix: ignore duplicate table cell styles (last duplicate is kept, previous table cell styles with the same name are discarded).
  • Implemented TransformMe for proxy entity.
  • Bug fix: PagedMemoryStream length was incorrectly updated when writing while position was not at end of stream.
  • Bug fix: fixed NullReferenceException problem in DxfBlock.ExternalModel property when ExternalReference was null.
  • Fixed $INSBASE/BasePoint handling for XREF blocks.
  • Implemented DWG read/write of plot settings object.
  • Bug fix: Silverlight 2 byte text encoding byte array (used for e.g. the ANSI 950 code page) to string conversion contained a bug (incorrect string length calculation, and therefore the string was sometimes too short/too long).
  • Repair drawing that contains a recursive block insertion. The insertion will be removed upon reading.
  • Added simple example interactor to show mouse position.
  • Bug fix: getting entity drawables from WireframeGraphicsCache nd WireframeGraphics2Cache didn't work properly when entity was part of a block/insert.
  • Bug fix: OpenGL RenderingContext.Dispose() could possibly be called by the GC thread and main thread simultaneously. Added a lock in the Dispose().
  • Renamed DxfModel.DefaultDimensionStyle to CurrentDimensionStyle and it is now settable.
  • Added property LoadUnknownObjects to DxfReader and DwgReader, so unknown entities are not filtered out. Unknown entities may contain proxy graphics that CadLib can render.
  • Changed WpfApplication example to show how to set a different background color.
  • Added missing writing of $DIMASSOC to DXF.
  • Documented supported version for various header variables.
  • Fixed NRE when cloning null reference dictionary entry.
  • Fixed incorrect cloning of extended line types.
  • Minor bug fix for MLINE rendering where some segment element parameters only contain 1 parameter.
  • Bug fix: hatch gradient color reading from DWG R21 failed when containing color book colors.
  • Took care of writing special names so they are accepted by ancient AutoCAD versions R13 and R14.
  • Fixed writing of unsupported objects to earlier formats.
  • Added frame display to layout drawing.
  • Fixed problems when GraphicsConfig.TryDrawingTextAsText is set during display rendering.
  • Added the possibility to set a spatial filter for DxfInsert objects.
  • Fixed DWG write of TEXT entity for special alignments.
  • Bug fix: When DXF writing a space has to be inserted after each '^' character.
  • Bug fix: extended data of root dictionary was not written to DXF.
  • Bug fix: discard XRECORD objects with illegal value instead of throwing an exception.
  • Bug fix: dimension block generation failed when the Layer was set to null. (Was recently broken due to reworked dimension block generation).
  • Bug fix: GraphicsPath was not disposed when measuring text bounds.
  • Bug fix: '-' character should be treated as alphabetical with respect to line breaking.
  • Bug fix: MTEXT codes were not decoded correctly if the MTEXT ended with a code.
  • Bug fix: treat characters "(){}[]" as normal alphabetic characters so there is no line break (in MTEXT) if any of these characters follow/precede an alphanumeric character.

3.5.104 Apr 28, 2014:

  • The radial dimension edit interactor now recalculates the TextMiddlePosition if UseTextMiddlePosition is true and Measurement if it is non-zero when a control point changes.
  • Improved radial dimension block generation.
  • Bug fix: disabled writing class for proxy entity.

3.5.103 Apr 23, 2014:

  • Bug fix: aligned 4-point dimension didn't position the arc at the correct section for dimensionLineArcPoint values that fell outside the extension lines.
  • Bug fix: dimension points did not get the correct color upon regeneration.
  • Bug fix: Polygon2D.OverlapTester failed with segments that had near equal x-coordinates (equal within between 1 and 2 times the precision).
  • Bug fix: dynamic block DxfBlockRepresentationData cloning incorrectly assumed ownership of the referenced DynamicBlock.

3.5.101 Apr 14, 2014:

  • Place radial dimension arrow on inside of circle when text is inside circle.

3.5.100 Apr 14, 2014:

  • Bug fix: fixed exception when drawing radial dimension of zero length.
  • Added some ToString() implementations to several dynamic block classes to facilitate debugging.

3.5.35.99 Apr 12, 2014:

  • Bug fix: fixed minor issue with Point2DTextBoxesControl not focusing on the x-coordinate text box when used for second time by e.g. SelectInteractor.MoveInteractor.
  • Bug fix: fixed rare problem with 2D polygon overlap test.
  • Bug fix: MLINE background fill didn't work correctly for segments with more than 2 elements.
  • Bug fix: added missing properties DxfDimension.InsertionScaling and InsertionRotation.
  • Bug fix: fixed problem in SelectInteractor with drawing selection rectangle for selected entity when selection rectangle was (much) larger than the window rectangle. For very large selection rectangles the drawing was slow and could cause an OutOfMemoryException being thrown (probably due to use of a dotted pen).
  • Bug fix: fixed DXF reading crash of SORTENTS table with duplicate entities.
  • Bug fix: fixed memory leak in WW.Cad.UI.CadEditControl. When closing a docked window, the Control wouldn't receive the OnLeave event, and therefore the MessageForwarder wasn't removed from the application's message filters. The filter kept a reference to the CadEditControl, resulting in a memory leak. Now when the CadEditControl is disposed, the MessageForwarder is also disposed.
  • Added class DisposableComponentContainer to facilitate disposing objects owned by a Windows Forms Control.

3.5.35.96 Apr 3, 2014:

  • Bug fix: DxfLwPolyline.ExplodeIntoLinesAndArcs didn't explode arcs correctly if Bulge > 0.
  • Bug fix: CadEditControl.CalculateTo2DTransform should do nothing if Width or Height are 0.
  • Bug fix: SelectInteractor.Select(List<DxfEntity> entities, Matrix4D projectionTransform) didn't select inserts/dimensions.
  • Fixed missing codepage strings.
  • Added DxfLeader annotation scale support.
  • Bug fix: RedBlackTree.Remove failed in some cases.
  • Stability improvements in the Polygon2D.OverlapTester.
  • Bug fix: LWPOLYLINE rendering sometimes crashed.
  • Added method Polyline2D.Subdivide2.GetIntersections to calculate all intersections between polylines.
  • Improved hatching for speed and reliability. Duration for complete rendering of our regression test set is reduced by some 33%.
  • Bug fix: RedBlackTree.Remove was not correctly implemented.
  • Added RedBlackTree.Remove(Node node) method that removes the node without first having to search for it. Useful when the caller already knowns the node.
  • Annotative dimensions support.
  • Added Polygon2D.Overlap method to test if polygons overlap.
  • Made RedBlackTree<T>.Node public and added a Parent property to the node so iterating is more efficient.
  • Added MovePrevious() method to RedBlackTree<T> iterators.
  • Added CurrentNode property to the RedBlackTree<T> iterators so their state can be easily retrieved/restored.
  • Added method Polyline2D.HasIntersections.
  • Added method Segment2d.IntersectsInclusive that also includes the segment end points in the intersection tests.

3.5.35.90 Mar 19, 2014:

  • Bug fix: fixed rare problem with getting true type font due to recursion (probably as a result of the application Exception handling).
  • Fixed sometimes incorrect positioning of LTYPE shapes/texts
  • Bug fix: layer transparency was not read from/written to DWG files.
  • Bug fix: PdfExporter did not create images of multiple OLE objects correctly.
  • Bug fix: the dimension's text style wasn't set.
  • Bug fix: place the radial dimension's dimension line outside the arc if the text is placed outside the arc with the use text middle point setting.

3.5.35.86 Feb 24, 2014:

  • UndoRedoPropertyDescriptor: support nested property descriptor.

3.5.35.85 Feb 19, 2014:

  • Bug fix: fixed problem with line type element text reading/writing from/to DWG R21 and later.
  • Bug fix: line type with text using SHX font was not rendered.
  • Bug fix: fixed line type element symbol/text scaling bug when used in (nested) inserts with non-uniform scaling.
  • Bug fix: QuaternionD constructor with from/to vector was incorrect.
  • Bug fix: rendering of DxfLine with line type symbols had incorrectly position symbols when part of a block/insert (OCS to WCS transform applied twice).
  • Bug fix: fixed another line type element text/symbol scaling bug for LWPOLYLINE entity.
  • Bug fix: fixed line type element text/symbol scaling bug for LWPOLYLINE entity.
  • Bug fix: line type scaling fix broke the scaling of polyline with width.
  • Fixed problem with open hatch boundaries which were not always connected.
  • Bug fix: triangulation of chinese characters with overlapping outer contours sometimes failed (used in OpenGL rendering).
  • Breaking change: allow cloning within the same model. When cloning an object within the same model, only its owned objects are cloned.

3.5.35.80 Feb 12, 2014:

  • DxfEllipse.TransformMe now also handles non-uniform scaling.
  • Bug fix: fixed problem in DxfEllipse.TransformMe().
  • Bug fix: accept illegal entity line weight in DWG files and convert it to standard line weight.
  • Changed CadEditControl.TransformationProvider type to ModelTransformationProvider3D.
  • Added EntitySelector.GetEntitiesPartiallyInRectangle methods that allow for selecting entities that are partially in a given rectangle.
  • Added WW.Cad.UI.Actions.ModelTransformationProvider3D that allows a model transformation as first transformation, which is treated separately from the subsequent transformations which are affected by ResetTransforms().
  • Added convenience methods for view transformation access.
  • Provided convenience methods for VIEW, VPORT, and VIEWPORT mapping.
  • Added ImageExporter method allowing to create VPORT configuration bitmaps.
  • Bug fix: table entity reading failed in some circumstances.
  • Bug fix: line type was applied in the OCS instead of in the WCS.
  • Fixed incorrect handling of DxfText mirroring when text is aligned.
  • Bug fix: cloning of complete model failed in some cases where objects were indirectly cloned. Improved cloning to do a better exact model clone with preserved table record order.
  • Bug fix: fixed problem writing field date time value to DWG (R21 and later).
  • Bug fix: cloning of complete model failed when line type had a reference to a text style. Improved cloning to do a better exact model clone with preserved table record order.
  • First steps for a more unified handling of view-related classes.
  • Write OSMODE heaver variable to DWG R13/14.
  • Added possibility to map DXF line styles to WPF dashes, giving the possibility to reduce WPF memory footprint and drawing duration. See ScaledLinetypeDashStrokePreparer and WpfApplicationExample.
  • Bug fix: PdfExporter with property UseMultipleLayers set to false wrote corrupt a Pdf file in case of a drawing with empty texts.
  • Bug fix: writing of table cell boolean value to DXF failed.

3.5.35.75 Dec 2, 2013:

  • Bug fix: SelectInteractor.MoveInteractor activated when clicking on grid line. Added property StartInteractionOnMouseDownAtSelectionRectangle to make behavior configurable.
  • Bug fix: fixed NullReferenceException during snap points calculation for overlapping arcs.
  • Small improvements: better drawing speed, less memory footprint.
  • Bug fix: bounds calculation of OLE objects failed when they were clipped away.
  • Removed public Repair() method from DxfHandledObject as it shouldn't be used by library users.
  • Added basic support for snap related header variables.
  • Added DXF i/o support for snap related header variables.
  • Bug fix: fixed problem with reading of extended data from DWG files for polyline entities.
  • Fixed possible null Layer reference.

3.5.35.72 Nov 25, 2013:

  • CadEditControl: Remove zoom rectangle interactor upon deactivation.
  • Added property GraphicsConfig.DisplayLineTypeElementShapes (default value is false). CadLib's current rendering of line type element shapes is too slow when drawing many shapes.
  • Bug fix: renamed anonymous with no name (illegal) upon reading.
  • Bug fix: fixed issue with selection move interactor and snapping.
  • Replaced exception for missing handle in block stretch action with warning.
  • Relaxed type casting of various internal references, instead of throwing an exception for wrong types and stop reading now only a warning is issued.

3.5.35.69 Nov 12, 2013:

  • Bug fix: snap points were not updated when entity was changed through property grid.
  • Allow moving selection by using snap points for base and target point.
  • Bug fix: snap points were not always updated when moving selection.
  • Entity edit interactors are no longer removed upon deactivation.
  • Bug fix: spline rendering crashed when knot vector was invalid.
  • Improved stability of hatching triangulation used by the surface rendering.
  • Bug fix: fixed OLE image rendering problem when image boundary was clipped away.
  • Bug fix: snap points were not updated when performing a do/undo.
  • Refactored WpfWireframeGraphics3D to be closer in line with GDIGraphics3D. Because of this some methods and properties have been renamed/removed. WpfWireframeGraphics3D methods CreateFrameworkElements, UpdateFrameworkElements and RemoveFrameworkElements have been renamed to CreateDrawables, UpdateDrawables and RemoveDrawables. Property FrameworkElements has been removed, instead call method Draw(UIElementCollection) to e.g. draw onto Canvas.Children.
  • Refactored WireframeGraphics2Cache to be in line with WireframeGraphicsCache.
  • Added WireframeGraphicsFactory2ColorChanger, analogous to WireframeGraphicsFactoryColorChanger.

3.5.35.65 Nov 1, 2013:

  • Bug fix: snap points were not updated when performing a do/undo.

3.5.35.64 Oct 30, 2013:

  • Bug fix: closest point on arc snap points were not calculated.
  • Added method accepting DxfMessageCollection return value to CadReader.
  • Bug fix: introduced DxfTimeSpan to replace System.TimeSpan because some DWG files contain time spans that cannot be contained by System.TimeSpan.
  • Added parameter Action<IWireframeGraphicsFactory> graphicsFactoryWrapper to method void UpdateDrawables(RenderedEntityInfo renderedEntityInfo, System.Action updateDrawables, Action<IWireframeGraphicsFactory> graphicsFactoryWrapper), so the user can possibly wrap the graphics factory to change the drawable color.
  • Updated extended Win forms viewing example with entity highlighting.
  • Bug fix: GDIGraphics3D didn't properly update existing entity drawables.
  • Bug fix: WireframeGraphicsCache.GetDrawables(RenderedEntityInfo renderedEntityInfo) didn't return the entity geometry object that included the begin/end entity calls, but just the drawables themselves. The begin/end entity calls were therefore missing, which broke updating GDIGraphics3D drawables.
  • Fixed Silverlight concurrency problem with font access.
  • Added possibility to decide what happens when hatch line creation overflows limit.

3.5.35.59 Oct 24, 2013:

  • Bug fix in DxfText.TransformMe when mirroring for certain horizontal/vertical alignment cases.
  • DxfMText.TransformMe refinement for mirroring: if the text is mirrored, update the x-axis (optional) and attachment point such that text doesn't get upside down when it was not upside down before the transformation.
  • Fixed NPE when broken hatch boundary is drawn to ISurfaceGraphicsFactory.
  • Fixed NRE when drawing zero length polylines to ISurfaceGraphicsFactory.
  • DxfText.TransformMe refinement for mirroring: mirroring of DxfText now adjusts AlignmentPoint1/AlignmentPoint2 and horizontal/vertical alignment accordingly. E.g. mirroring text such that the x-axis is flipped, will swap AlignmentPoint1 and AlignmentPoint2 and make left aligned text into right aligned text. If there was no AlignmentPoint2 and it is needed, it is calculated.
  • Implemented DXF read/write for the DxfScale class.
  • Bug fix: reading of 2 text styles with the same name from a DXF file resulted in a crash.

3.5.35.56 Oct 14, 2013:

  • Bug fix: generation of dimension block for angular 4 point dimension generated incorrected angle when one of the extension lines were reversed.
  • Refactored GDIGraphics3D updateable graphics creation to no longer need the use of null drawables as markers. Instead using nested linked lists of drawables, which is a bit easier to manage and debug.
  • Added support for exchanging line weights during rendering.
  • Bug fix: updating WireframeGraphicsCache when entity visibility changes didn't work properly.
  • Bug fix: Point2DTextBoxesControl didn't use InteractionContext.LengthFormatString.
  • Fixed bug with polygon spline mesh reading.
  • Implemented possibility to add a rectangle in background color to the SvgExporter.
  • Added radius text box to default arc create interactor.
  • Bug fix: rectangle zoom interactor was not displaying the rectangle.
  • Made some changes to SelectInteractor.MoveInteractor so it deactivates at a double click.
  • Added angle check when adding angular 4 point dimension between 2 lines.
  • Turned InvalidCastExceptions for broken non-critical internal references into warnings, making CadLib accept more files.
  • Bug fix: ignore illegal text style reference from line type element and generate an error message when this is encountered.
  • Bug fix: ignore illegal text style reference from MTEXT entity and generate an error message when this is encountered.
  • Bug fix: reading some polygon meshes from DWG where the polygon had more vertices than m * n caused an IndexOutOfRangeException. This change is a minor breaking change, as the vertex 2D arrays are replaced by lists. Vertices now have to be added to the list.
  • Added support for read/write of a hatch color gradient.
  • Moved clipping related classes from WW.Cad.* to WW.Math.Geometry.
  • Added Box3D class and IInsideTester4D interface to test whether points/polylines are inside a box/rectangle.
  • Improved DWG reading performance by roughly 30% by caching memory pages. See new class WW.IO.MemoryPageCache.
  • Improved EntityCounter to allow for better fine-tuning.
  • Added EntityCounter for simple statistics creation.
  • Bug fix: snap point calculation crashed for an lwpolyline without vertexes.
  • Bug fix: CadEditControl snap points were not updating when an entity was added by an external command.
  • Bug fix: deactivating a entity creation didn't rollback the transaction when deactivating the interactor externally.

3.5.35.48 Aug 29, 2013:

  • Allow DXF writing of ACI color index greater than 255, this is used by some CNC machine software interfaces.

3.5.35.47 Aug 28, 2013:

  • Show selection in original position (in gray) while dragging around the selection.
  • Redesigned the snapping calculation. Added a SnapInfoCache for better efficiency and finer control over when the snap points are updated. E.g. while dragging a selection or when editing a line, the snap points should not be updated. The snap points are calculated in 2 stages, first collection of all snap points. And then while moving the mouse around from these snap points only the close ones are highlighted, and some extra snap points are calculated on the fly (like tangent points).
  • Added copy & paste feature to CadEditControl.
  • Added SelectInteractor.MirrorInteractor.
  • Changed control points to be defined in the OCS instead of in the WCS. Because the DxfLwPolyline control points are defined in the OCS. Transformation the control points on a higher level is more efficient, so the projection matrix can be reused for multiple control points. So transformation from OCS to WCS and vice versa now happens at the DxfEnity.Interactor level.
  • Added SelectInteractor.RotateInteractor.
  • Bug fix: fixed problem with writing files in the CadLib evaluation version.
  • Bug fix: fixed rare problem reading DWG R18 (2004) file containing pages filled with zero bytes.
  • Repair broken DXF files that have missing AcDbBlockBegin/AcDbBlockEnd entities upon reading.
  • Use snap points when moving selection.
  • Added property Interactor.IsEnabled.
  • Snapping now works in SelectInteractor.MoveInteractor.
  • Bug fix: LWDISPLAY (DxfHeader.DisplayLineWeight) was not checked when rendering model space.

3.5.35.41 Aug 9, 2013:

  • Repair model upon reading.
  • If dimension does not have a dimension style, assign the default dimension style upon reading.
  • Merged DrawableContext and InteractorDrawableContext into InteractionContext for simplicity.
  • Interactor text boxes now use InteractionContext.LengthFormatString for formatting lengths.
  • Allow entering length when editing a line entity.
  • Allow user to edit circle radius when creating a circle.
  • Replaced property SelectInteractor.ScaleInteractor.KeepAspectRatio by KeepAspectRatioDiagonal and KeepAspectRatioNonDiagonal for finer control of scaling behavior.
  • Used 2 color circles in CadColorEditor instead of the enumeration of the 255 colors.
  • Bug fix: fixed issue with arc snap points also including the whole circle.
  • Fixed block renaming not handling case correctly during cloning resulting in name clash.
  • Bug fix: mouse sometimes ended up on the tool window, created a FloatingForm that works better (mouse never ends up on that).
  • Bug fix: when pressing Esc on a tool window, the window control was removed from the parent, but was still receiving mouse events. Therefore pressing esc twice resulted the transaction in being rolled back twice. Solved as well by using the new FloatingForm. (Otherwise making the control invisible or not enabled also seemed to solve the issue). Rolling back/committing a transaction twice should also be impossible, so that has been changed as well on the Transaction level.
  • Bug fix: snapping did not work for first point of polyline/spline when creating polyline/spline.

3.5.35.39 Aug 6, 2013:

  • Bug fix: fixed issue with the trial version of CadLib with read/write of a DXF/DWG file previously written by the CadLib trial version.
  • Display line type graphic in UITypeEditor for DxfLineType.
  • Added UndoRedoPropertyDescriptor custom type descriptor that supports undo/redo.
  • Bug fix: editing entity color did not work when selecting multiple entities with different colors.
  • Added UITypeEditor classes for WW.Cad.Model.Color and EntityColor so they can be changed in a property grid.
  • Added a control to edit WW.Cad.Model.Color.
  • Added ColorRgbEditor, ColorWheel and ColorListPicker Windows Forms controls. Will serve as base for replacing System.Drawing.Design.ColorEditor which is not present in the .NET Client Profile.
  • Bug fix: renamed anonymous blocks with duplicate names upon reading and report the renamed block.
  • Bug fix: table cell reading from DXF sometimes failed for empty string cells.
  • Speed up model writing by disregarding line type in the bounds calculation.
  • Bug fix: table style was not read correctly when cell style map object did not contain any cell styles.
  • Implemented DXF reading and writing of summary info.
  • Bug fix: time spans were not written correctly to DWG.
  • Fixed internal exception thrown when Silverlight 5 accesses line break info.
  • Made handling of all rendering pipelines for DxfIDBlockReference consistent

3.5.35.35 Jul 17, 2013:

  • Minor bug fixes in WW.Cad.UI snap point handling.
  • WW.Cad.UI. Created string resources for some hard coded error messages.
  • Refined snap mode handling.
  • Added special snap mode for tangent points with a new symbol, and gave it higher priority in the snap mode order.
  • Bug fix: only show tangent snap point if mouse position is close.
  • Bug fix: spline creation by interactor was not correct (no knots where calculated).
  • Bug fix: BSplineD.CreateDefaultKnotValues created an incorrect knot vector in some cases (for control point count greater than degree + 1).
  • Bug fix: discard 3D polylines that reference vertices with invalid type upon reading from file.
  • Fixed bug in SHX rendering which resulted in missing lines under rare circumstances (eg "parallelism" in gdt.shx).
  • Fixed hatch creation to mimick AutoCAD's behavior (hatch lines might be rendered slightly dislocated compared to earlier versions).
  • Added pattern transformation to DxfHatch.TransformMe().
  • Added setting for pattern transformation handling to TransformConfig.
  • Added PatternOffset property to DxfHatch allowing to move pattern.
  • Bug fix: SelectInteractor.MoveInteractor behavior upon enter/esc key didn't properly add a translation command/undo the translation.
  • Used transaction in SelectInteractor.ScaleFromBasePointInteractor, so undo/redo works properly and the action can be cancelled.
  • Moved Transaction from WW.Cad.UI.Actions to WW.Actions.
  • Removed AssociatedInteractor property from Transaction class and promoted Committed/RolledBack/Completed events to ITransaction interface.
  • Bug fix: CadEditControl did not highlight the correct snap point.
  • Bug fix: Scale from base point interactor was broken.
  • Fixed problem with hatch pattern not obeying hatch angle.

3.5.35.30 Jul 10, 2013:

  • Bug fix: selection move interactor didn't work properly when using two clicks for interaction.
  • Bug fix: arc with start and end point and radius creation should allow a radius of at least half the distance between start and end point.
  • Bug fix: LWPOLYLINE creation with length when next vertex has not been provided yet resulted in an overflow exception.
  • Exposed CadEditControl.MinorGridLinePen and MajorGridLinePen properties.
  • Improved error messages when trying to create arc with start point, end point and radius and not all inputs were provided/correct.
  • CadEditControl now allows moving a single selected entity. Before only the control points could be moved with the mouse.
  • Bug fix: several interactors always returned true in their ProcessMouse* methods, but should only return true if it actually consumed the event.
  • Changed interactors with text box controls such that the text boxes follow the mouse position even when other interactors consume the mouse events.
  • Added a Windows message forwarder so the scroll wheel works in the CadEditControl even when there is a TextBox control on it that has focus.
  • Fixed issue with zoom/pan not working during editing of an entity by changing the order of the interactors.
  • CadEditControl: Added option to add external snap points.
  • Added setting that allows users to draw non-diagonal lines by default. Introduced CadInteractionContext for this.
  • Added Vector3D.GetAngleAroundAxis() method.
  • Added new create interactor for LWPOLYLINE entity that allows entering a length (distance between two consecutive vertices).
  • Implemented extended line type fitting.
  • Refactored CadEditControl to allow any layout/block to be displayed.
  • Shows intersection points of entity currently being edited.
  • Added convenience ImageExporter.Create[AutoSized]Bitmap methods w/o backColor parameter.
  • Added snap to tangent point filter.
  • Special line/arc create interactors that have text boxes now accept the Esc key.
  • Added option to add a angular dimension between two selected lines.
  • Added interactor to create an arc from a start/end point and a radius (and a mid point hint).
  • Bug fix: using shift key to force line to be horizontal/vertical didn't work properly.
  • Added new interactor to create a line by entering a length in a text box.
  • Breaking change: DxfEntity.CreateInteractor.CreateWinFormsDrawable method parameters, added parameters InteractorDrawableContext context, System.Windows.Forms.Control hostControl.
  • Fixed issue with flicker of child controls on the CadEditControl by using the WS_EX_COMPOSITED flag on CreateParams.ExStyle.
  • Bug fix: CtbFile should accept line weights that have extra text after the line weight (seems encoded, meaning unknown at the moment).
  • Silverlight: Extended ICadView interface with convenience properties Model, Layout and ModelTransform.
  • Bug fix: don't show spatial filter when insert's layer is disabled.
  • Updated incorrect documentation on the DxfSpatialFilter class.

3.5.35.21 May 28, 2013:

  • Bug fix: conversion to GraphicsPath of wide polyline that represents a circle failed. Improved wide polyline rendering to recognize when one side of the wide polyline is compressed into a dot.
  • Bug fix: reading Int64 from DWG was incorrect for values larger than max Int32.
  • Bug fix: fixed problem reading/writing TEXT entity zero second alignment point from/to a DWG file.
  • Fixed rare XCLIP (DxfSpatialFilter) problems.
  • Bug fix: fixed problem writing DXF file containing LWPOLYLINE vertices with start/end width.
  • Bug fix: SimpleTransformationProvider2D did not scale the view correctly when the view became width constrained (and first was height constrained).

3.5.35.17 May 14, 2013:

  • Bug fix: ToGraphicsPathConverter sometimes caused GraphicsPath to throw an ArgumentException("parameter is not valid") when adding a polyline containing a dot. The dot is now handled separately (a rectangle is created for it).
  • Added ToPolygon2D() and ToPolygon3D() convenience methods to Polygon4D().
  • Fixed initialization problem in Silverlight door builder demo.
  • SelectInteractor.MoveInteractor: allow user to enter the coordinates for moving the selection using 2 text boxees.
  • SelectInteractor.ScaleFromBasePointInteractor allows user to enter scale factor in a text box.
  • DxfArc.ThreePointOnArcCreateInteractor shows the points entered so far.
  • Breaking change: split SelectAndTransformInteractor into a SelectInteractor and a SelectInteractor.TransformInteractor that has several subclasses. The user can decide which transform interactors he wants to use on the selection. This replaces the SelectAndTransformInteractor.Mode property (enum InteractionMode has been removed).
  • WW.Cad.UI.Snapping.Filters.EntityArcPointCollector: snap to closest point on circle.
  • WW.Cad.UI.Snapping.Filters.EntityArcPointCollector: Added option to snap to closest point on arc.
  • Bug fix: arc snap point calculation did not take the arc's z-axis into account.
  • Bug fix: try to keep a positive z-axis z-coordinate when creating an arc using the 3-point on arc interactor.
  • Fixed problem with vertical MTEXT.
  • Bug fix: fixed problem with .pat (hatch pattern) files containing lines with only a 0x1a character. CadLib now trim 0x1a characters from each line.
  • Bug fix: swap arc start angle and end angle when TransformMe mirrors the arc.
  • Implemented DXF 2013 read/write support.

3.5.35.9 Apr 18, 2013:

  • Fixed documentation bug concerning PdfExporter line weight handling (GraphicsConfig.DotsPerInch is not used).
  • Added property DxfReader.ThrowExceptionOnInvalidGroupCode. If false it will ignore invalid DXF group codes and create a warning message.
  • Added a DxfArc.ThreePointOnArcCreateInteractor that allows creating an arc by letting the user specify 3 points on the arc.
  • Added optional entity snap filter to CadEditControl/SnapPointHelper.
  • Fixed adding to/removing from selection using the Ctrl key in .NET 3.5.
  • Added property SelectAndTransformInteractor.MoveSelectionWhenMouseDownAtArea so user can click inside the selection rectangle to move the selection.
  • Bug fix: circle interacting/drawing was incorrect when circle had negative z-axis.
  • Bug fix: CanonicalMouseEventArgs returned a Z component in the WCS position when the projection transform contained a Z-translation. Explicitly set the Z-coordinate to zero.
  • Line edit interactor supports pressing the shift key for snapping horizontally/vertically.
  • Changed edit arc interactor to guess if user wants to create a clockwise/counter clockwise arc. Before it was always counter clockwise.
  • Bug fix: DxfLineCreator was broken in recent IInteractor redesign.
  • Bug fix: allow reading duplicate handles in DWG handle table.
  • Bug fix: reject polyface mesh entities with an illegal vertex index and return an error message.
  • Bug fix: header variable DIMFXLON wasn't read from/written to DXF.
  • Bug fix: fixed crash when XRECORD reading from DWG containing group code 5014.
  • DxfPolyline2D lost Plinegen flag on read
  • Fixed documentation bug concerning PdfExporter line weight handling (GraphicsConfig.DotsPerInch is not used).

3.5.35.2 Apr 2, 2013:

  • Added DxfLwPolyline.ExplodeIntoLinesAndArcs() method and incorporated into WW.Cad.UI.
  • Disabled R27 DXF writing, not yet functional.

3.5.35.0 Apr 1, 2013:

  • Bug fix: fixed NullReferenceException in CadEditControl.OnPaint when used in the VS Windows Forms designer.
  • Bug fix: take into account circle/arc z-axis when getting/setting values from the control points (editor functionality).
  • Fixed incorrect DWG writing of spline polyline w/o control points.
  • Fixed missing writing of DxfText's oblique angle for old DXF versions.
  • Fixed NRE in cloning of dynamic blocks.
  • Bug fix: fixed problem reading an R27 DWG file containing an extension dictionary that has no owner handle.
  • Fixed DxfLeader sometimes using wrong arrow when read from DXF.
  • Fixed potential lost of EED during DXF read.
  • Bug fix: dimension block base point transformation should not be applied by rendering.
  • Completed DWG R27 read/write support.
  • Fixed incorrect initialization of DxfMLineStyle.Element objects during DXF read, possibly resulting in incorrect color.
  • Fixed lineweight not written for DXF versions 15 to 17.
  • Added missing reading of DxfTextStyle for DxfDimensionStyle table entry.
  • Fixed cloning of DxfUnknownEntity loses handle.
  • Fixed possible NRE during DXF write of DxfPolygonSplineMesh.
  • Bug fix: merge broke a few things in last release (DWG R13 color writing and polygon spline mesh cloning).
  • Bug fix: dimension style cannot contain rgb colors in the DXF format.
  • DxfText.BoxWidth and BoxHeight now return 0 when the text is empty instead of -infinity.
  • Fixed sometimes incorrect cloning of DxfImage entity.
  • Fixed incorrect cloning of DxfText.ObliqueAngle.
  • Fixed possible NRE in DxfPolygonSplineMesh cloning.
  • Fixed possible NRE in DxfImage cloning.
  • Fixed sometimes incorrect writing of ACI colors (both DXF and DWG).
  • Added documentation and example code for Color/EntityColor classes.
  • Moved DxfIndexedColor to WW.Cad.Model.DxfIndexedColorSet.
  • Bug fix: problem with reading from a DXF file with an empty dynamic block without nodes or edges.
  • Fixed incorrect position of DxfText on special circumstances.
  • Fixed InvalidCastException in DxfWriter.
  • Fixed misplaced DxfText when DWG file is saved as DXF.
  • Bug fix: ChunkedMemoryStream didn't read correctly when reading from more than 1 full chunks. Problem was infrequent because reading from multiple chunks for an object is not very common. Added extra unit test.
  • Bug fix: fixed issue with reading the DWG header that popped up occasionally, introduced in version 4.0.34.99.
  • Bug fix: recent bug fix with reading multiple blocks with the same name in a DXF file wasn't correct.
  • Fixed incorrect DXF reading of MTEXT rectangle height.
  • Bug fix: PDMODE does not apply to points on the DEFPOINTS layer.
  • Ignore PDSIZE <= 0, just draw points in that case.
  • Bug fix: point cross shape (PDMODE) was factor 2 too large.
  • Set default encoding for SHX 1.1 fonts to ANSI1252.
  • Allow multiple AcDbBlockBegin objects with the same name to be present in a DXF file. Only the last one is relevant for non-anonymous blocks.
  • Added support for point display mode/size (system variables PDMODE/PDSIZE). When size is equal or less than zero, the value GraphicsConfig.defaultPointDisplaySize is used (default value is 1).
  • Added support for R21 dimension style properties: DIMFXL, DIMJOGANG, DIMTFILL, DIMTFILLCLR, DIMARCSYM.
  • When generating the dimension block, respect the SuppressFirstExtensionLine/SuppressSecondExtensionLine settings.

3.5.102 Feb 11, 2013:

  • Finetuning of PDF output
  • Added a ICommand.Target property, which is the target object being modified.
  • Added a CommandInvoker that can be used to subscribe to commands being executed (useful when commands are nested).
  • Added r/w support for DxfMText ReferenceRectangleHeight property
  • Shrinked included fonts for Silverlight
  • Embedded Silverlight fonts contain more glyphs
  • Silverlight: allowed interception during WWF loading
  • Changed CadLib's obfuscation settings to fix the following C++/CLI error: error C2686: cannot overload static and non-static member functions with the same parameter types.
  • Allowed to set encoding of old non.Unicode SHX files
  • SHX rendering now additionally tries 'char as index' char selection when default char based selection failed
  • Bug fix: WPF image drawing problem in WireframeGraphics2Cache.
  • Implemented WPF drawing of OLE entity.
  • Added property GraphicsConfig.OleImageSize that determines the image size when an OLE entity is drawn (should possibly be adaptive in the future).
  • Added property SvgExporter.WriteSvgXmlElementAttributes so users can add their own XML attributes to the created XML elements.
  • Bug fix: in some cases a text style's font filename is stored in its extended data.
  • Bug fix: fixed problem with dynamic block reading of extended data.
  • Added validation on hatch spline edge knots as these are mandatory. Improved the documentation/example code on spline/hatch spline edge.
  • Bug fix: rendering of some OLE objects crashed due to a NullReferenceException.
  • Made WPF graphics (wpfWireframeGraphics3D) and WireframeGraphics2Cache updateable.

3.5.34.96 Jan 2, 2013:

  • Implemented audit for reading LWPOLYLINE double values from DWG.
  • Bug fix: attribute definition rendering crashed for attdef with MTEXT groups in extension dictionary, and text style was not set. In that case use the attdef's text style.
  • Bug fix: fixed issue with table writing to DXF. Made DxfTable.FlowDirection and DxfTableContent.FlowDirection nullable because it is an override property.
  • Bug fix: fixed DWG table entity read problem that caused the DxfTableContent.TableStyle not to be set.
  • Minor rendering performance improvements by using a more direct GeneralShape2D to GraphicsPath conversion and slightly more efficient point drawing.
  • Bug fix: the DWG reading sometimes caused an OutOfMemoryException, caused by MemoryStream. Replaced with a chunked memory stream (ChunkedMemoryStream), allocating blocks of 64 KB instead.
  • Bug fix: fixed rendering problem for OLE2FRAME entity without OLE data.
  • Bug fix: the lower limit of the range check on the conversion from julian date to regular dates was too low. Changed the limit to match 0001-01-01.
  • Bug fix: the PolylineShape4D iterator didn't iterate over multiple polylines. This caused a drawing issue in some cases where text was partially clipped and only the first letter would be rendered. The clipping was also slightly refined where it checks if actual clipping took place, if not, then the original shape is returned.
  • Bug fix: don't crash on DXF files with block begin records with corrupt non block record owner.
  • Bug fix: plot viewports before/after paper space entities depending on flags DxfPlotsettings.PlotLayoutFlags, bit PlotLayoutFlags.DrawViewportsFirst.
  • Fixed OutOfMemory exception resulting from explicit cast of an empty Shape2D to GraphicsPath
  • Fixed naming of SHX font version constants
  • Bug fix: table left border overrides were not written correctly to DWG until R21.
  • Bug fix: cloning of nested blocks sometimes failed. Improved the block cloning approach by first creating new instances, and later copying the contents.
  • Bug fix: decoding table entity 2008 data was incorrect.
  • Bug fix: fixed problem in cloning a FIELD object.
  • Bug fix: fixed problem in cloning a whole drawing where table styles were indirectly cloned (can happen if in e.g. an extension dictionary of another object, before the table styles are cloned explicitly).
  • Bug fix: text rendering using IWireframeGraphicsFactory on GDI didn't use the proper GraphicsPath.FillMode. Added property GeneralShape2D.FillMode, similar to GraphicsPath.FillMode.
  • Changed line wrap algorithm to improve support for Eastern languages
  • Bug fix: fixed problem with the spatial filter Clone method (issue WW.Cad-61).
  • Refactored undoable actions. Simplified IUndoableAction interface, renamed UndoableActionStack to UndoableActionGroup, which contains do and undo stacks.
  • Added utility methods DxfEllipse.AngleToParameter and DxfEllipse.ParameterToAngle.
  • Show model/paper space layout depending on the drawing's active layout in the Silverlight 2D example and the 3D bitmap view example (not XNA).
  • Bug fix: rendering of LWPOLYLINE is incorrect in some cases with identical consecutive vertices with bulge.
  • Fixed incorrect handling of vertical texts (only for SHX, SHX files required)
  • Fixed incorrect color correction with GraphicsConfig.WhiteBackground and GraphicsConfig.BlackBackground
  • Bug fix: repair DWG files upon reading that contain broken block/layout references.
  • Bug fix: writing very large handles (larger than uint.MaxValue) to a DWG file failed.
  • Added static methods to DxfReader/DwgReader allowing access to the messages issued during the read
  • Added r/w support for CTB files (WW.Cad.Drawing.CtbFile)
  • Implemented better ACI color handling
  • Fixed MTEST bug showing incorrect color
  • Fixes entity drawing order for blocks which are not associated with a layout
  • Allows to use or not use SORTENTSTABLE reordering during drawing by setting GraphicsConfig.UseSortEntsTables
  • Fixed incorrect interpretation of MTEXT oblique angle.
  • Fixed concurrent modification exception during DxfModel's preparation for writing.
  • Bug fix: some DWG files may contain a block without a name. CadLib used to reject these.
  • DxfBody entity supported (IO, Clone)
  • Made improvements to radial/diametric dimension block generation. Text is positioned on the inside of the circle unless there is not enough room.
  • Bug fix: fixed some issues with table and table style reading/writing from/to DWG (until R21).
  • Bug fix: DIMENSION block generation generated MTEXT entities for R12 files, which doesn't support MTEXT yet. So for R12 generate TEXT entities.
  • Implemented DATATABLE object.
  • Implemented writing TABLECONTENT object to DXF (this is used in the table entity internally since the 2008 release).
  • Fixed a few issues with writing table style.
  • XRECORD now stores DxfHandledObject in the values instead of the handles.
  • Bug fix: DWG writing crashed in trial version when doing two consecutive read/write cycles of the same file.
  • Use faster segment sub division in 2D polygon boolean operations (using a sweep line).
  • Bug fix: insert attributes weren't updated before writing to DXF/DWG.
  • Bug fix: NullReferenceException was thrown in XNA text rendering.
  • Bug fix: DWG reading failed when table cell contained a FIELD object.

3.5.34.76 Jun 28, 2012:

  • Implemented FIELDLIST object, added property DxfModel.FieldList.
  • Bug fix: fixed writing of empty DxfValue object to DWG 2004 and later.
  • Bug fix: writing of DxfValue string until DWG 2004 needs to be 0 terminated.
  • Bug fix: fixed DXF reading until DWG 2004 of value objects that contained an object reference.
  • Bug fix: fixed writing of table cell until DXF 2004.
  • Implemented DWG I/O for the FIELD object.
  • Bug fix: the new polygon boolean operations didn't handle very close points well. Close points are now merged before continuing with the actual boolean operations.
  • Fixed ugly SHX characters in PDF output when linewidth is large
  • Added red black tree.
  • Introduced TransformConfig as defining transformation settings for TransformMe() methods
  • Made GraphicsConfig extend TransformConfig so old code is still compilable
  • Added DXF i/o support for FIELD object
  • Fixed problem with TABLE datetime cell values not handled correctly for versions before 2005, resulting in System.ArgumentOutOfRangeException during read and incorrectly written values
  • Added ColorExchanger example
  • Bug fix: added support for DXF group codes 5000-5020.
  • Bug fix: VIEWPORT's were not added to the paper space layout when reading from DXF before R15 (WW.Cad-43).
  • Made DxfLwPolyline.Transform public.
  • Bug fix: ignore short/ushort group values that are too large when reading DXF, and report an error message instead of throwing an exception.
  • Reimplemented the 2D polygon boolean operations using a different algorithm for better robustness (issue WW.Cad-44).
  • Switched point inside 2d polygon test from counting ray crossings to counting winding number (basically the same principle, but faster. By only including odd winding numbers the result is the same).
  • Bug fix: resolving text style/text height from table cell (style) now falls back on the row/column table cell style if there were no overrides.
  • Bug fix: error writing table value string to DWG 21.
  • Fixed bug with solid hatches resulting in missing holes
  • Fixed bug parsing concatenated format escapes in DxfMText, resulting in incorrect rendering and return of SimplifiedText property
  • Bug fix: some MTEXT contain back slashes in the font specifiers, e.g. /FC:\Windows\...\SomeFont.ttf;.
  • Fixed missing layers in PdfExporter with ExportLayers enabled

3.5.34.67 May 31, 2012:

  • Bug fix: fixed problem reading DXF files that don't have a BLOCKS section.
  • Bug fix: line segment intersection for overlapping line segments didn't always work.
  • Bug fix: introduced IDxfHandledObject interface that DxfModel implements. DxfModel no longer inherits from DxfHandledObject since the model itself cannot have an extension dictionary or xdata (issue WW.Cad-33).
  • Added new methods to EntitySelector to be able to do custom entity selections by implementing EntitySelector.IFilter.
  • Added XML documentation to the new surface rendering classes.

3.5.34.63 May 23, 2012:

  • Added WW.Math.ITransformer4D for allowing non-linear transformations to transform GDIGraphics3D drawables.
  • Fixed issues with SelectAndTransformInteractor, insert can no longer be independently transformed from attribute, but attribute can still be transformed separately.
  • Added option to the SVG exporter to export the CAD layers as SVG groups.
  • Added constructors to SvgExporter that take a XmlTextWriter as parameter so the caller can change the stream close behavior.
  • Added undo/redo to the SelectAndTransformInteractor.
  • Implemented TransformMe for the shape, solid, spline, table and tolerance entity.
  • Bug fix: shape entity wasn't drawn correctly (shape should always start with pen down command).
  • Bug fix: table cell style overrides weren't handled properly.
  • Bug fix: fixed problem writing table cell value to DWG until version 18 (2004).
  • Implemented TransformMe for entities ellipse, hatch, leader, mline, ray and xline.
  • Fixed broken DXF when outputting strings containing linefeeds
  • Added DxfModel.FallbackShxFont and DxfModel.FallbackTrueTypeFont for user-defined fallbacks
  • Made integer group value reading more generous to allow reading of slightly broken DXF
  • Implemented TransformMe for the dimension entity.
  • Bug fix: oblique angle wasn't applied properly when generating the aligned dimension block.
  • Bug fix: OCS/WCS transformations were not correct for angular dimensions.
  • Bug fix: angular dimension dimension line arc point is defined in WCS instead of OCS.
  • Bug fix: Extension directory is lost on saving for attribute with field
  • Breaking change: DxfEntity.TransformMe method now takes a GraphicsConfig object as extra parameter.
  • Added property GraphicsConfig.TreatAttributesAsPartOfInsert.
  • Implemented TransformMe for arc, circle, mtext, point, all polyline types.
  • Implemented TransformMe for DxfMText.
  • Implemented TransformMe for DxfCircle and DxfArc.
  • Bug fix: SelectAndTransformInteractor didn't select multiple entities that were part of an insert correctly.
  • DxfInsert.TransformMe no longer transforms its attributes. The attributes have to be transformed separately. Reason is that SelectAndTransformInteractor selects inserts and attributes separately, and attributes would otherwise be transformed twice. The behavior might need to be configurable in the future though.
  • Made another small performance improvement to the triangulator and solid hatch surface rendering (got rid of the remaining quadratic terms in the number of calculations).
  • Improved surface rendering performance for solid hatches, uses faster segment-segment intersection and faster triangle filtering. This especially helps for displaying large GIS files.
  • Improved performance of the 2D triangulator.
  • Added pixel based output for SvgExporter.
  • Further improved the performance of the 2D triangulator, by doing a faster triangle lookup (again roughly 50% faster).
  • Minor performance enhancements to spline drawing.
  • Improved the performance of the 2D triangulator, roughly 50% faster for triangulating text.
  • Made triangulator more robust against very close points and points lying on an edge of a triangle.
  • Made some further performance tweaks after profiling.

3.5.34.50 Apr 24, 2012:

  • Bug fix: getting to WCS transform from z-axis broke in release *.*.34.47.

3.5.34.49 Apr 24, 2012:

  • Bug fix: don't write groups 420/430 (true color/color book color) to DXF before version 18 (2004).
  • Performance optimization of getting a unit length vector by replacing division by multiplication as much as possible.
  • Performance optimization of getting a unit length vector by first checking if the length is one. This benefits the overall rendering speed (seems to give about 20-30% performance gain).
  • Bug fix in OpenGL example, ISupportInitialize is not supported in .NET 3.5.

3.5.34.46 Apr 23, 2012:

  • Fixed not thread-safe access to SHX characters, resulting in possible NRE or ArgumentException.
  • Fixed NRE when DxfAttribute/DxfAttributeDefinition is using MTEXT substitute and default style.
  • Fixed NRE when using DxfInsert.AddAttribute() with DxfAttributeDefinition using default style.
  • Fixed broken cloning of DxfSortEntsTable.
  • Fixed exception when evaluating broken DxfPolyline3DSpline.
  • Fixed exception when evaluating broken DxfSpline.
  • Bug fix: OpenGL example code didn't pass the proper transform to the EntitySelector.
  • Bug fix: TEXT transformation failed on spatial rotation.
  • Added AddAttribute() method to DxfInsert which is taking care of transformation.
  • Enhanced spline calculation accuracy.
  • Added FrameworkElementTaggerDelegate to WpfWireframeGraphics3D to allow for more flexible tagging of WPF framework elements.
  • COMBATIBILITY BREAK: method CreateImage of IWireframeGraphicsFactory2 got additional parameter.
  • Bug fix: OpenGL normal was inverted for textured triangles (this affected IMAGE entity rendering).

3.5.34.41 Apr 6, 2012:

  • Bug fix: creating drawables with GDIGraphics3D for passed entities argument ignored the entities parameter and drew all model entities.

3.5.34.40 Apr 6, 2012:

  • Bug fix: fixed problem with writing hatch entity to DXF (z-axis is mandatory, even if it has the default value).

3.5.34.39 Apr 6, 2012:

  • Tweaked the Segment2D.GetIntersectionParameters method a little further for more stable dealing with segments that overlap/are on a shared line.
  • Bug fix: Segment2D.GetIntersectionParameters didn't always correctly detect overlapping line segments.
  • Bug fix: Drawing properties don't have to have a unique name.
  • Bug fix: Polygon debug visualizer mirrored the y-axis.
  • issue/WW.Cad-20 fixed: tried to add 3d vertex to 2d polyline.
  • Fixed incorrect vertical alignment for DxfText when vertical alignment is Bottom, Middle or Top
  • Fixed NullReferenceException on broken files referencing no longer available boundary path source objects
  • Bug fix: DXF layer color reading was incorrect for disabled layers.
  • Improved Exception message when adding duplicate item to ActiveKeyedCollection.
  • Fixed view placement problem

3.5.34.36 Mar 23, 2012:

  • Added support to the PDF exporter for including all layers and customizing the PDF layer's enabled value based on the CAD layer.

3.5.34.35 Mar 14, 2012:

  • Added support to the PDF exporter for changing the layer order and layer formatting.
  • Fixed incorrect renderings of SHX fonts.
  • Bug fix: fixed problem with DWG 2004 decompression.
  • Bug fix: anonymous block cloning didn't work for block names starting with (*U, *E, *X, *A).
  • Fixed hatch rendering bugs
  • Bug fix: fixed crash when reading illegal polyface mesh from DXF (issue WW.Cad-22).
  • Fixed incorrect rendering of SHX characters with arcs.

3.5.34.32 Feb 21, 2012:

  • Don't write 210, 220, 230 groups to DXF when z-axis is the default (0, 0, 1) vector.

3.5.34.31 Feb 15, 2012:

  • Adds correct rendering for DxfAttribute/DxfAttributeDefinition when based on DxfMText
  • Added support for layers to the PDF export.
  • Bug fix: fixed crash on rendering MLINE without MLINESTYLE. (issue WW.Cad-12).
  • Bug fix: DWG read/write of LWDISPLAY/XEDIT system variables was inverted.
  • Disabled check on R21 maintenance version 1 DWG writing.

3.5.34.28 Feb 8, 2012:

  • Bug fix: allow reading Int16 values from DXF that are out of range. The illegal value is replaced with zero and an error message is added to the DxfReader.Messages.
  • Bug fix: fixed issue with cloning of table records that were indirectly cloned as part of extended data.
  • Bug fix: DWG writing of SPLINE entity: writing of control points/weights and fit points at the same time is not allowed, write one or the other.

3.5.34.25 Feb 3, 2012:

  • Bug fix: update SORTENTS entities cache when related block entities are updated.
  • Bug fix: fixed DXF reading of 3DSOLID.
  • Exposed methods for getting shapes from a ShxFile.
  • Bug fix: 3DSOLID wasn't read from DWG/DXF.
  • Separated graphics factory from draw context. Removed DrawContext.Wireframe2 class (use DrawContext.Wireframe instead).
  • comments according to view positioning problem

3.5.34.23 Jan 14, 2012:

  • Bug fix: drawing dots (and also line types with dots) still failed in WpfWireframeGraphics3D.

3.5.34.22 Jan 13, 2012:

  • Bug fix: drawing dots (and also line types with dots) failed in WpfWireframeGraphics3D and WpfWireframeGraphics3DUsingDrawingVisual.
  • Fixed problem with Unicode escapes not evaluated in DxfText entity.
  • Bug fix: also transform attributes when transforming an insert.
  • Added Transformation4D.Scaling overloads that accept an origin as a parameter.
  • Bug fix: filling graphics caches failed when AreDrawablesUpdateable is false.
  • Rendering takes into account entity the drawing order as specified by the SORTENTSTABLE object.
  • Added read/write support for the SORTENTSTABLE object.
  • Removed EntityColors.Black/Colors.Black as this was in reality the BYBLOCK color.
  • Fixed another PDF export problem resulting in "error in page" warning.
  • Draw model space when layout is the model space layout in WireframeGraphicsFactory2Util.
  • Fixed problem with model space layouts not drawn.

3.5.34.16 Jan 5, 2012:

  • Bug fix: line weight rendering by block/by layer were swapped.
  • Implemented TransformMe for DxfInsertBase.
  • Moved to new Polygon2D.IsInside implementation using winding number (4x faster).
  • Bug fix: ACAD_TABLE entity was read incorrectly in pre R18 (2004) DXF files.
  • Allowed DxfGroup to contain any handled object as member because in some files at least a DxfDictionary is referenced. This means there is no more DxfGroup.Entities property, but an DxfGroup.Members property instead.

3.5.34.13 Dec 28, 2011:

  • - Removed dependencies on System.Design, so CadLib can be used with .NET 4.0 Client Profile.)
  • Fixed problem that Adobe Reader sometimes shows warnings when PDF contains underlined text in text output mode.
  • Added spatial filtering based on non-convex polygons.
  • Made text clipping work in PdfExporter.
  • Bug fix: fixed LEADER color bug in case of BYBLOCK dim line color + entity BYLAYER color.

3.5.34.11 Dec 16, 2011:

  • Bug fix: fix leader color when part of insert/block.
  • Bug fix: dimstyle overrides writing of bylayer colors was incorrect.
  • Bug fix: fall back to entity color when there is no block context for the BYBLOCK dimension color (used e.g. in LEADER color).
  • Bug fix: GraphicsConfig.UseSpatialFilters value not cloned.

3.5.34.69 Dec 15, 2011:

  • Bug fix: viewport cloning failed in some cases.
  • ixed cast which is not possible in .NET < 4.0

3.5.34.6 Dec 13, 2011:

  • Added support for spatial filtering. Support includes: * i/o for DxfSpatialFilter in both DXF and DWG. * rendering of spatial filters for both Wireframe and Wireframe2 when config.UseSpatialFilters is set to true (the default) Support includes not: * Surface rendering * easy creation of a spatial filter and assignment to DxfInsert
  • Bug fix: SelectAndTransformInteractor didn't work properly for attributes in an insert.
  • Added WireframeGraphicsCache.
  • Bug fix: SelectAndTransformInteractor didn't work properly in paper space.
  • Fixed incorrect calculation of text alignment point 1
  • Bug fix: when cloning table records indirectly as a result of cloning extended data, then add the cloned table records to the appropriate collection in the target model.
  • Don't crash on reading invalid XDATA, but return an error message in the DXF/DWG reader.
  • Released 3DSOLID read/write support.
  • Maded tweaks to GDIGraphics3D api to be more consistent with other updateable graphics factories (the recent graphics cache classes).
  • Added methods to add/remove drawables from SurfaceGraphicsCache and WireframeGraphics2Cache.
  • Added SurfaceGraphicsCache class (similar to WireframeGraphics2Cache).
  • Bug fix: updating drawables in WireframeGraphics2Cache didn't work properly.
  • Simplified ISurfaceGraphicsFactory a little (removed entity and draw context parameters where not necessary).
  • Bug fix: HATCH entities with a boundary path consisting of just 2 line segments should not be rendered.
  • Bug fix: SvgExporter wrote heigth instead of height.
  • Removed unnecessary check on duplicate hatch boundary polyline vertices.
  • Added support to SelectAndTransformInteractor for working in a paper space layout.

3.5.33.49 Nov 1, 2011:

  • Bug fix: reading transparency from DXF was incorrect.

3.5.33.48 Oct 30, 2011:

  • Added GDIGraphics3D.CreateGraphicsFactory() method so a user can make direct calls to the graphics factory. This way he can create his own wrapper graphics factory and do something special for certain entities. Can use in conjunction with WireframeGraphicsFactoryUtil.
  • Added example solution for new WpfWireframeGraphics3DUsingDrawingVisual class and WireframeGraphics2Cache.
  • Added wpfWireframeGraphics3DUsingDrawingVisual class that is faster than wpfWireframeGraphics3D.
  • Added WireframeGraphics2Cache.UpdateDrawables method.
  • Added a WireframeGraphics2Cache that caches drawables created using the IWireframeGraphicsFactory2 interface. This helps to speed up recreating WPF drawables when a Canvas is resized.
  • Added properties to access insert transformations or made them public.
  • Tight fitting in 2D on ResetTransforms
  • Bug fix: rectangle zoom in Silverlight WPF rendering didn't display the correct rectangle.
  • Added win forms drawables for the rect zoom/rotate interactors.
  • Used the new interactors in the WinFormsExtendedViewExampleCS to replace the old mouse interaction code.
  • Bug fix: SimpleRectZoomInteractor zooming was slightly off.
  • Bug fix: CanonicalMouseEventArgs ignored the mouse wheel in the constructor with win forms mouse event args as parameter.
  • Adapted plot style handling to allow for overridden colors
  • Bug fix: GDIGraphics3D.UpdateDrawables failed in some cases (INSERT/ATTRIB) after first attribute drawables were updated, and then later the insert drawables.
  • Bug fix: text transformation failed in some cases.
  • Bug fix: line weight values BYBLOCK and BYLAYER were swapped.
  • Bug fix: LEADER rendering should use the dimension style's dimension line color for rendering the leader instead of the entity color.
  • Bug fix: DXF writing of XRECORD crashed for certain groups in some cases. Made POINT3D group handling more consistent between DXF/DWG related code.
  • Bug fix: GDIGraphics3D.UpdateDrawables had a bug in the drawable linked list administration.
  • Bug fix: SelectAndTransformInteractor didn't scale horizontal/vertical line correctly when trying to keep the same aspect ratio.
  • Made a few bug fixes in the SelectAndTransformInteractor and the updating of entity drawables in GDIGraphics3D.
  • Implemented partial updating of drawables in GDIGraphics3D (no noticeable slowdown on CreateDrawables).
  • dded some comments
  • hanged the LayersView to create nodes lazily. This speeds up the loading of larger files by magnitudes.
  • XF Sharp Viewer: Use GraphicsConfig.ShapeFlattenEpsilon in CadOpenGLViewControl.

3.5.33.33 Sep 30, 2011:

  • All WW assemblies now have the same assembly version.
  • Bug fix: VPORT table record didn't support reading/writing the R21 properties from/to DXF/DWG.
  • Bug fix: generating BLOCK for ACAD_TABLE ignored the non-zero text STYLE fixed text height setting.
  • Fixed coloring bug in PDF

3.5.33.31 Sep 26, 2011:

  • Bug fix in XRECORD cloning.
  • Added SetBitmap method to DxfImageDef.
  • Bug fix: MLINESTYLE name does not have to be unique.
  • Fixed entity's EntityColor resolving to return always the correct entity color (and not an RGB color in many cases).
  • Added access to attribute definitions in DxfBlock.
  • Added undoable actions.
  • Added SelectAndTransformInteractor.
  • Added TypeConverter to ArgbColor.
  • Changed CloneContext.ResolveReferences to clear the collections of objects it is resolving references for so multiple calls won't result in a corrupt DxfModel.
  • Changed the interactor code to be platform independent (i.e independent of win forms/WPF/silverlight etc).
  • Bug fix: writing XRECORD/XDATA strings to DWG R18 and earlier had a problem for some code pages.

3.5.33.28 Sep 15, 2011:

  • Bug fix: DWG reader threw an exception on reading a VPORT with circle zoom percentage value of zero. Made behavior the same as DXF reader where it resets that value to 100.

3.5.33.27 Sep 13, 2011:

  • Bug fix: Fixed incorrect read of DxfShape thickness in DxfReader.

3.5.33.26 Sep 13, 2011:

  • Bug fix: Segment2D.GetIntersectionParameters in rare cases returned an incorrect intersection for near parallel line segments.
  • Added example code for DxfHandledObject.Clone/CloneContext.
  • Fixed NPE in ReferenceUtil cloning code.
  • Fixed incorrect write of DxfShape thickness in DxfWriter.
  • Added file combination test in Playground.
  • Bug fix: reinstated the char triangulation cache, used for OpenGL rendering (and also XNA).
  • Removed property GraphicsConfig.NoOfTextBezierLineSegments, is no longer used. Property ShapeFlattenEpsilon is used instead.
  • Added a canonical glyph cache to TrueTypeFontTextMetrics.BasicTrueTypeFont. Needed for adding the char triangulation cache later. Also this avoids recreating GraphicsPath objects (slow) repeatedly in StringBasedLayoutedText.SplitPaths.
  • Implemented rudimentary support for plotstyles. Added some DXF color test files and their AutoCAD rendering.

3.5.33.25 Sep 2, 2011:

  • Bug fix: conversion of empty polylines to GraphicsPath resulted in an OutOfMemoryException.
  • Bug fix: Polygon2D iteration went wrong in some cases (bug was probably in Shape2DCollectionIterator). Changed ISegment2DIterator to only have a MoveNext instead of a Move/HasMoreSegments.
  • Bug fix: Arc2D to spline conversion was incorrect.
  • Bug fix: ShxShape arc to cubic spline conversion was incorrect.

3.5.33.24 Sep 1, 2011:

  • Bug fix: DxfModelGeometry.Clone failed with UnatuhorizedAccessException due to incorrect creation of MemoryStream.
  • Bug fix: DWG 2007 writing of HATCH entity with spline edges failed when spline edge didn't have fit point data.

3.5.33.23 Aug 31, 2011:

  • Bug fix: don't clone reactor when cloning DxfModel and reactor wasn't cloned already (i.e. it's not really part of the model).

3.5.33.22 Aug 30, 2011:

  • Bug fix: don't add unknown entities to the model.
  • Bug fix: DxfModelGeometry.CopyFrom wasn't fully implemented, because of which the Clone failed.
  • Allow comma as decimal separator when reading DXF. This happens rarely in very old DXF files (AC1004).
  • transformMe() added for DxfLine and DxfAttribute.

3.5.33.20 Aug 18, 2011:

  • Bug fix: polyline with vertices with start/width and line type wasn't rendered correctly.
  • Bug fix: MTEXT background with transparency crashed the DxfWriter.

3.5.33.18 Aug 12, 2011:

  • Bug fix: EntitySelector crashed in GetClosestEntities call due to wrong type cast.

3.5.33.17 Aug 11, 2011:

  • Bug fix: Polygon2D.GetConvexHull didn't deal properly with collinear points in the input polygon.

3.5.33.16 Aug 9, 2011:

  • Included the new Windows interactors in the regular CadLib release (still missing drawable objects for WPF/GDI).

3.5.33.15 Aug 9, 2011:

  • Bug fix: ignore illegal XDICTIONARY references when reading DXF/DWG.
  • Fixed incorrectly matched parameters, resulting in PDF font selection error. The bug resulted in incorrectly selected bold and italic fonts in PDF, when text embedding was enabled. Also font metrics were possibly wrong when text output w/o embedding was enabled under the same circumstances.

3.5.33.14 Aug 8, 2011:

  • Bug fix: entity transparency was ignored when drawing.
  • Bug fix: dimension style dimension/extension line lineweight wasn't used when creating the dimension block.

3.5.33.12 Aug 3, 2011:

  • Bug fix: XDATA manually added brackets were not written to DWG correctly.
  • Fixed PDF text not obeying char width and oblique angle.
  • Fixed accuracy problem when outputting PDF matrices.
  • eleased a new WW.Math version.
  • orgot to update CadLib version number in last commit.

3.5.33.11 Jul 27, 2011:

  • Bug fix: LOGFONT had to be class, didn't work properly otherwise in 32-bits (not sure why).

3.5.33.10 Jul 27, 2011:

  • Bug fix: PDF export now writes the glyph Widths and FontDescriptor so the Acrobat Reader doesn't show the "bad /BBox" error message when opening the produced PDF file with for instance the font "Tahoma". Changed PdfBody's default behavior to link fonts instead of subset them. Fixed several font related bug inside the PDF font handling.
  • PDF exporter: either link or subset fonts based based on PdfExporter.EmbedFonts property.

3.5.33.9 Jul 24, 2011:

  • emoved license check from Polygon2D.

3.5.33.8 Jul 24, 2011:

  • Updated some examples (no need to use System.Drawing anymore, can't be used in Silverlight).
  • Pdf export: Fixed bug with no FlateDecode of graphical items PDF content stream. Made unused stream filters internal.
  • Fixed exception in map access in PdfFontInfo.

3.5.33.7 Jul 19, 2011:

  • Released temporary GraphicsPath instances as soon as possible.
  • Avoided having more than one consecutive movetos in GeneralShape2D.
  • GDIGraphics3D design change: drawables are now drawn in the same order as the entities by default. Added property GDIGraphics3D.DrawTextOnTop with default value false.
  • Don't write DXF groups 70/71 (column/row count) and 44/55 (column/row spacing) when not needed for the INSERT entity. When the 70/71 groups are present the EXPLODE command does not work.
  • Bug fix: Shx shape sometimes caused 2 move to commands, this is illegal when creating a System.Drawing.GraphicsPath.
  • Bug fix: Line2D shape iterator only added the start point.
  • Bug fix: RegressionTestGui referenced the wrong test data directory.
  • Bug fix: DWG table style reading didn't read the table cell style correctly for DWG 2010.
  • erge from CadLib 4.0 rev 238. Updated example documentation.
  • erged back changes from CadLib 2.0 due to .NET 2.0 limitations (no linq). Rev 582.

3.5.33.4 Jul 14, 2011:

  • Merged changes from CadLib 4.0 (Silverlight changes), rev 216-236. Replaced System.Drawing.Color with WW.Drawing.ArgbColor.
  • Bug fix: max hatch repeat count calculation was incorrect.
  • Bug fix: DWG reading always incorrectly set property DxfDimension.HasTextRotation to true.
  • Bug fix: DWG writing didn't correctly write Japanese strings with multi-byte characters in R13-18.
  • Bug fix: DXF reader should be robust against extended data containing multiple occurrences of the same APPID.
  • Bug fix: draw all dimension points on the DEFPOINTS layer. (This layer may be obsolete at some point though).
  • Bug fix: XDATA handle read/write to DWG was encoded/decoded incorrectly (is big endian instead of little endian).
  • Bug fix: dim style overrides weren't read properly from DWG (first needed to resolve the XDATA handle references).

3.5.7.12 Jul 10, 2011:

  • inor updates to the SortedPropertiesTypeConverter: added IsReadOnly property to PropertyGrid2 that's used by SortedPropertiesTypeConverter. Also replaced class.DisplayName by class_DisplayName, because the designer doesn't like dots in strings for code generation.

3.5.32.19 Jul 5, 2011:

  • Bug fix: linear dimension extension line extension/offset wasn't always applied correctly when generating block.
  • Bug fix: dimension line extension was ignored in some cases.
  • Bug fix: the empty string dimension text should be treated the same as null, so the dimension text is equal to the measurement.
  • orgot to add file.
  • dded a post build step for copying CadLib's test data instead of including individual test files in the VS project file.
  • ew test files
  • egions tests updated
  • dded DxfLineCreator. Removed the license checking from Matrix4D, was quite inconvenient at times in the Windows Forms designer.
  • erged bug fix in DWG table style writing from CadLib 4.0. Added triangulator debug info.
  • ev661-868,870 merged 'Alex branch' to trunk
  • ixed Test
  • mproved DWG logging and made CRC checking optional.

3.5.32.18 Jun 9, 2011:

  • ug fix: DXF reader didn't read entity transparency correctly.
  • ixed DXF Sharp Viewer build.
  • dded new reference for slow signedxml class.
  • bout to update the signedxml web page reference.
  • dded workaround for slow SignedXml.CheckSignature call that helps if the application has enough security permissions.
  • orgot to add the project file.
  • eparated the SlimDX rendering into a separate assembly.

3.5.32.17 Jun 4, 2011:

  • ug fix: properly deal with circular XREF references.

3.5.32.16 May 31, 2011:

  • Made DxfModel.ExternalReferences public and added a public property DxfBlock.ExternalModel.
  • ug fix: the DXF reader crashed when the DXF file contained multiple layouts with the same name, but not all were referenced from the layout dictionary.

3.5.32.14 May 26, 2011:

  • Bug fix: linear/aligned dimension generation had some problems with z-axis different from (0, 0, 1).

3.5.32.13 May 26, 2011:

  • Bug fix: DXF dimension insertion point is defined in WCS, not OCS (DXF spec bug).
  • xtended rotated dimension test

3.5.32.12 May 20, 2011:

  • Bug fix: removed incorrect validation check on aligned dimension extension line start points. These may be equal.
  • ug fix: truncate julian dates from read DWG files to DateTime.MaxValue in case they exceed this value.
  • ug fix: DWG XRECORD read/write bug for some data groups (Point3D/handle/bin data).

3.5.32.11 May 20, 2011:

  • Bug fix: aligned dimension insertion point is not used.
  • imension: Introduced BCS to avoid confusing with OCS.
  • ixed OCS/WCS issues in DxfDimension. Still need to test role of insertion point.
  • dded possible bugfix for TextMiddlePoint usage, Wout please check this!
  • dded rotated dimension test.
  • nhanced dimension OCS handling.
  • learifying meaning of ZAxis property.

3.5.32.10 May 17, 2011:

  • ug fix: fixed infinite recursion in DxfHandledObject.ExecuteDeep in some cases (loops in object chains are rare though).
  • ug fix: DWG R21 writing failed in case of pages map size exceeded 1024 bytes. Bug fix: DWG extension dictionary writing didn't write the correct owner object.

3.5.32.9 May 15, 2011:

  • dded property GraphicsConfig.MaxHatchPatternRepeatCount to limit the repeat count of a hatch pattern. Sometimes a hatch is huge compared to the pattern, in which case the algorithm takes very long, or even runs out of memory.
  • dded panning/zooming to WPF example.

3.5.32.8 May 10, 2011:

  • Bug fix: DWG reading of SPLINE crashed in some cases (SPLINE with more than 255 fit points).

3.5.32.7 Apr 28, 2011:

  • Bug fix: the line types continuous/by block weren't read correctly from DWG 15 and later.

3.5.32.6 Apr 27, 2011:

  • reading regions' patch. Unknown entities and 'SAT pieces' inside SAB stream supported
  • dded short howto on delay signing.

3.5.32.5 Apr 14, 2011:

  • dded some tests
  • inor precision handling improvement in determinant comparison in Segment2D.GetIntersectionParameters().
  • ug fix: cloning of DxfLeader/DxfBlock failed in some circumstances. Added CloneContext.IndirectlyClonedObjects property that contains objects that are cloned indirectly and have not yet been added to the target model.
  • ug fix: precision handling in Segment2D.GetIntersectionParameters was incorrect.
  • dded test for customer problem.
  • dded checks for non-negative precision to public methods, and improved documentation.
  • ug fix: image positioning bug (position was off by 0.5 pixel).

3.5.32.4 Apr 7, 2011:

  • Bug fix: take into account the line weight in the IPathDrawer interface. This affects amongst other SHX text in the export to PDF.

3.5.32.3 Apr 5, 2011:

  • Bug fix: the MEASUREMENT system variable wasn't read from/written to DWG versions 13-15.
  • Added unit test for writing/reading the DWG template section.

3.5.32.2 Apr 1, 2011:

  • ug fix: rendering of an IMAGE sometimes crashed on a paper space layout.
  • orgot to increate the WW.Pdf assembly version.

3.5.32.1 Apr 1, 2011:

  • dded workaround for diameter symbol not available in most fonts
  • dded references on true type font substitution.
  • ug fix: implemented the template section DWG reading. This is needed to read the MEASUREMENT system variable.
  • ug fix: VIEWPORT twist angle wasn't written to DXF in radians instead of degrees.
  • Bug fix: the DWG writer didn't correctly write the extension dictionary handle.
  • Bug fix: the DWG writer didn't write the extension dictionary handle.
  • Bug fix: the DXF writer didn't write the extension dictionary handle using the correct group.
  • Bug fix: DXF reading incorrectly added new reactors to dictionary entries upon reading.
  • Bug fix: table cell style reading set the TableCellStylePropertyFlags.TextStyle when it shouldn't.
  • dded a Repair() method to DxfModel/DxfHandledObject. At the moment only repairs hatch boundarypath polyline with duplicate vertexes.
  • emporarily added customer test for pdf export with font embedding.

3.5.32.0 Mar 31, 2011:

  • Cleaned up WW.Pdf assembly a bit, some copyright headers in old files were missing. Made a few interfaces/classes internal, added a little bit of documentation to undocumented public types/members.
  • Made minor change to resolving SHAPE text style when shx description is an empty string (should normally be non-empty, so not very critical).
  • emoved a number of obsolete members. Added reference documents.
  • egression test repetition enhancements
  • efactored PDF writing so it is done by the PDF objects themselves instead of using visitor pattern.
  • hanged format of porting documentation
  • ixed typos.
  • dded comments and documentation for FO.net port.
  • di -> Gdi (coding standards).
  • ccidentally moved folder, moving it back.
  • di -> Gdi (coding standards).
  • di -> Gdi (coding standards).
  • orted the necessary parts of the FO.net library to allow for font embedding.

3.5.31.22 Mar 17, 2011:

  • Bug fix: line types were not applied correctly to a closed polyline's closing segment. Improved performance for 2D polyline rendering with line types.
  • Bug fix: line type wasn't applied to closing polyline segment in some cases.
  • Bug fix: EntitySelector picking didn't work with dots in polylines (e.g. resulting from a line type).
  • roke printing y-axis in last commit, fixed it.

3.5.31.21 Mar 16, 2011:

  • Bug fix: backColor parameter wasn't used in GdiGraphics3D.Draw call.
  • Bug fix in DXF Sharp Viewer picking, wrong transformation matrix was used. Cleaned up all matrix related code.

3.5.31.20 Mar 15, 2011:

  • ug fix: draw a line as a dot when the start and end point are the same.
  • Bug fix: MTEXT may contain 'X' font height factor character (e.g. H1X), in addition to the lower case 'x'.
  • nstaller bug: GLUtil.cs was missing from one of the CadLib examples.

3.5.31.19 Mar 8, 2011:

  • Made table record duplicate name auditing consistent for all tables where the name has to be unique.
  • For all tables only read all the table records that are referenced by the table control.

3.5.31.18 Mar 7, 2011:

  • Bug fix: fixed endless loop when displaying an unsupported ACIS entity.

3.5.31.17 Feb 28, 2011:

  • Bug fix: fixed null reference exception in EntitySelector (rectangle selection).

3.5.31.16 Feb 27, 2011:

  • Bug fix: EntitySelector didn't return multiple inserts for the same block.
  • XF Sharp Viewer:
  • Bug fix: Windows treeview didn't work properly when double clicking a node (with a checkbox).
  • Bug fix: checking a BLOCK node caused an exception.
  • hanged the VPORT perspective transform code (aligned with recent VIEWPORT change).

3.5.31.15 Feb 25, 2011:

  • Bug fix: OpenGL IMAGE entity rendering repaired.
  • dded little bit of comment to ImageDrawable.cs.

3.5.31.14 Feb 25, 2011:

  • Faster rendering of IMAGE entity on OpenGL.
  • Added support for non-rectangular IMAGE clip boundaries.
  • erged bug fixes in DXF Sharp Viewer from 2.0.

3.5.31.13 Feb 16, 2011:

  • Bug fix: broke VIEWPORT perspective transform in last minute change in previous release.

3.5.31.12 Feb 15, 2011:

  • Bug fix: VIEWPORT entity perspective transform was incorrect.
  • pdated DXF Sharp Viewer test batch files with recent test files.

3.5.31.11 Feb 15, 2011:

  • Bug fix: the APPID table in a (corrupt) DWG file sometimes refers non-APPID objects.

3.5.31.10 Feb 15, 2011:

  • Bug fix: rename APPID record upon reading from DWG when name is a duplicate.

3.5.31.9 Feb 14, 2011:

  • ixed problem preventing successful compilation
  • ug fixes: * Added auditing for files with duplicate dictionary entry names * Allowed empty string for double values in MTEXT escapes
  • eleted empty Internal folder.

3.5.31.8 Feb 11, 2011:

  • ew test for clone problem
  • dded missing cloning of entries in the CLASS section.
  • ug fix: APPID flags weren't cloned.
  • ug fix: DxfTableBorder.HasData property wasn't copied during clone.
  • ixed incorrect sub shape access leading to "subshape not found" exception

3.5.31.7 Feb 10, 2011:

  • Bug fix: PdfExporter.AutoCloseStream property was broken.

3.5.31.6 Feb 10, 2011:

  • Bug fix: DWG 2010 reading failed for early AutoCAD maintenance versions smaller than 4.

3.5.31.5 Feb 8, 2011:

  • Bug fix: only read blocks from a DWG file that are referenced from the block record table (might have duplicate names otherwise).
  • dded some html pages from the internet about fonts in windows and some more stuff.
  • Bug fix: show spaces in TOLERANCE text.
  • Added basic GraphicsToCadConverter.
  • emoved redundant check in wpfWireframeGraphics3D which I thought fixed a bug.

3.5.3.5.31.4 Feb 3, 2011:

  • Added support for the SHAPE entity.
  • WW.GL: improved error handling on the WGL functions.
  • WW.GL: added more documentation on disposing of RenderingContext.
  • Bug fix: property DxfDimension.UseTextMiddlePoint wasn't read from DXF.
  • Bug fix: reading older DXF files without model space block caused a crash.
  • Bug fix: implemented xref layer overrides.
  • Bug fix: implemented SHAPE clone.

3.5.3.5.31.0 Jan 25, 2011:

  • Added DWG 2010 write support.
  • Bug fix: DWG 21+ DIMSTYLE read/write failed in some circumstances.
  • Bug fix: incorrect writing transparency to DWG.
  • Fixed problem in CadLib that caused a compiler error in managed C++: error C2686: cannot overload static and non-static member functions with the same parameter types.

3.5.3.5.30.6 Jan 16, 2011:

  • Bug fix: display attribute definition TagString.
  • Bug fix: transparency writing/reading was incorrect (still need to test further).
  • Supporting DXF reading of extended data for table records.
  • Fixed two problems with HATCH: 1. If hatch type is outermost, but there are no boundaries marked outermost, then all boundaries are taken. 2. Elliptical hatch boundaries where rendered incorrectly.
  • Bug fix in MLINE rendering. (broken in last change).
  • MLINE rendering improvement when element has only 1 parameter: assume 2nd parameter zero (offset along the segment element).
  • Bug fix: ATTDEF displays Text property when it is part of a block, otherwise it displays the Tag string.
  • Bug fix: ATTDEF is displayed when part of a block and the Constant flag is set.
  • Bug fix: text color ignored dimension style for diametric/radial dimension.

3.5.3.5.30.2 Dec 29, 2010:

  • Added convenience methods for model to screen mapping to Transformation4D.
  • Bug fix: block renaming during object cloning should be case insensitive when checking for duplicate block names.
  • Improved MLINE rendering, different MLINESTYLE element colors are now supported.

3.5.3.5.30.0 Dec 17, 2010:

  • Added partial support for the REGION entity.
  • Fixed NRE with stacked text containing unicode escapes.
  • Bug fix in DXF hatch writing: write group 47 when boundary path type has external flag set.
  • Bug fix in DXF hatch writing: write spline weight between control points instead of after the control points.
  • Bug fix: hatch spline knot count check was wrong.
  • Bug fix: don't throw on resolving missing block reference during cloning.
  • Fixed incorrect line breaking.
  • Made some further refinements to anonymous block cloning: An anonymous block for dimensions/tables (e.g. non-layout blocks) is now cloned only once. So if a user wants to create 2 clones of a dimension, then he needs to create a CloneContext twice. Needed because when making an exact copy of a model, the blocks were cloned first, including the anonymous blocks. When then later a dimension was copied, a new block clone would be made, so there were in the clone 2 anonymous blocks, while ideally there should be just 1 anonymous block clone in the cloned model.Removed CloneContext.AnonymousBlockMode.
  • Copy handles when making exact copy of a model.
  • Fixed a few block cloning issue. This broke when DxfBlockBegin/DxfBlockEnd were introduced.
  • Fixed cloning problems with anonymous blocks *Model_Space and *Paper_Space.
  • Added check for duplicate handles in PrepareForWrite of DxfModel.

3.5.3.5.29.31 Dec 5, 2010:

  • Updated the CadLib's OpenGL exteded example to have an export to bitmap function.

3.5.3.5.29.30 Dec 2, 2010:

  • Bug fix: the model space layout was recognized by its name, which was incorrect, because sometimes the model space layout is different. The correct behavior is comparing the layout's owner block record name with the string "*Model_Space" (case insensitive).
  • Bug fix: extended data wasn't read from the BLOCK_RECORD table.
  • Not changing table entry names to uppercase anymore for version < 15. Reason for this uppercase change is unknown, so the change was undone..

3.5.3.5.29.29 Nov 27, 2010:

  • Added check if FontFamily supports the requested FontStyle. Sometimes a corrupt font seems to not support e.g. the Regular FontStyle.

3.5.3.5.29.28 Nov 19, 2010:

  • Bug fix: access to static font cache was not thread safe.
  • Added a method DxfUtil.DisposeThreadStaticObjects() to dispose thread static objects (at the end of a thread).
  • Added ToArgb() methods to WW.Cad.Model.Color and WW.Cad.Model.Entities.EntityColor.

3.5.3.5.29.26 Nov 12, 2010:

  • Fixed bug in documentation of EntitySelector.
  • Added Clear() method to DxfPatternStore.
  • Added GDIGraphics3D option to draw text as text using Graphics.DrawString(). This looks better in 2D scenarios.
  • Hatch opengl rendering crashed when boundary contained near duplicate points. Near duplicate points are now filtered out.
  • Added image handling to PDF export. Images are always packed during export despite of the compress setting, because they are not readable anyway.
  • Patched precision issue where a wide polyline with near parallel segments would produce extremely large coordinates. The parallelness check is now reduced to 1e-6.
  • Bug fix in DXF ACAD_TABLE row reading.
  • Improved robustness of hatch surface rendering (remove extremely close intersection points).
  • Bug fix: entity transparency wasn't used during rendering.
  • Bug fix: MLINE rendering should ignore value of the z-axis.
  • Breaking change: extended EntitySelector api, returns RenderedEntityInfo objects, which contain an entity, transformation matrix and optional parent.
  • Added methods to simply filter out entities during rendering.
  • Added GetInverse(out bool couldInvert) method with parameter indicating whether inversion was possible.
  • Bug fix: always update AlignmentPoint1 X and Y coordinates when alignment is not baseline/left, otherwise alignmentpoint x and/or y might remain uninitialized. This only pertains to DWG, as it doesn't matter to DXF.
  • Fixed problem with XREFs containing relative paths.
  • Fixed implementation not following documentation for LoadExternalReferences() methods. Added two more convenience LoadExternalReferences() methods. Move LoadExternalReferences() method call in WindowsApplication example to handle exceptions gracefully.
  • Added new static convenience method to deeply load all available external references of a file.
  • Bug fix in assigning null to DxfHatch.Pattern.

3.5.3.5.29.15 Oct 10, 2010:

  • Bug fix: DWG 2010 reading of HATCH entity with fit points. Renamed elements to FrameworkElements (UIElement doesn't have the Tag property). Set the Image.Tag property to the source entity. Added DxfImage output for IWireframeGraphicsFactory2 interface. This breaks compatibility by adding another method to this interface. Furthermore some changes for WpfWireframeGraphics3D were necessary, because the basic WPF entity supported is no longer Path, but UIElement.
  • Added some helper rectangles to ImageTest.cs.
  • Bug fix: dimension decimal places wasn't handled correctly when using the <> construct.
  • Added miter limit of 2 to GDI/WPF rendering.
  • Added exclusive or boolean operation to Polygon2D.

3.5.3.5.29.12 Sep 17, 2010:

  • Bug fix: DWG reading of an entity chain stopped at an unknown entity.

3.5.3.5.29.11 Sep 16, 2010:

  • Bug fix: DWG writing problem of string stream larger than 0x7fff bytes.
  • Bug fix: DWG writing of GROUP entity was incorrect.
  • Bug fix: DWG/DXF writing of MTEXT contained a bug in case the BackgroundFillFlags had multiple bits set.
  • Added 2D polygon convex hull algorithm (Melkman, 1987).
  • Added 2D polygon minimum area enclosing rectangle calculation (Dennis S. Arnon, John P. Gieselmann, 1983).
  • Added OrientedRectangle2D (needs some modification still, change 3 points to 1 point + 2 vectors).
  • Added BasicEntityVisitor as a useful base class for visitors.
  • Bug fix: DWG reading of IMAGE entity didn't read the x-axis and y-axis correctly. When assigning the IMAGEDEF these were overwritten with the IMAGEDEF's default pixel size.
  • Added property PdfExporter.UseMultipleLayers. The default value is true, which retains the original behavior. By setting it to false, all entities are drawn in the order they appear in the drawing (same behavior as GDIGraphics3D).

3.5.3.5.29.8 Sep 8, 2010:

  • Bug fix in PdfExporter: MTEXT background rectangles were not transformed correctly.
  • Bug fix in PdfExporter: in some cases the text color was not corrected for the background color (e.g. white on white).
  • PdfExporter: Added option to specify a clipping rectangle when drawing on a PDF page. See class PdfPageConfiguration.
  • Added SimplifiedText property for DxfText/DxfMText
  • Fixed internal NRE when using TextStyle with unset font.
  • Bug fix: ignore illegal spline edge in hatch when rendering (need to verify that the spline is indeed illegal).
  • Reset fallback font to SIMPLEX.SHX if available. Otherwise it stays Arial like in previous versions.
  • Bug fix: BLOCK_RECORD clone didn't set the ownership of the block begin/end entities.
  • Added public DxfModel.SetHandle(DxfHandledObject handledObject) method.

3.5.3.5.29.3 Aug 22, 2010:

  • Bug fix in PolylineShape4D.Iterator (skip empty polylines and don't skip vertex when moving to next segment).
  • Added closing segment
  • Fixed the PDF export in DXF Sharp Viewer.
  • Created IShape4DIterator to interate over the sub paths and points (so the GraphicsPath does not need to be cloned). It is not terrible to clone a GraphicsPath, but it does use some unmanaged resources of which it is possible to run out. By not cloning the GraphicsPath this problem happens not so easily.
  • IShape4D now inherits from IDisposable (still need to call it, rammi?).
  • Call Dispose() for GraphicsPath/GraphicsPathIterator whenever possible. When not doing this, it might result in a system hangup (outside the debugger only!).
  • Fixed missing shift operation in Color.CreateFromColorIndex(ColorType colorType, short colorIndex) when colorType is not ByColorIndex resulting in broken Color return
  • Fixed problem with hatch lines crossing hatch area border under special circumstances.
  • Minor bug fixes in the table entity area.

3.5.3.5.29.1 Aug 11, 2010:

  • Minor table DWG read bug fixes.

3.5.3.5.29.0 Aug 9, 2010:

  • Implemented new table entity structures that were added in AutoCAD 2008. The table entity can now be read from/written to DWG. Parts of the API have changed. A cell can have multiple contents now. Previously a cell value had to be set, now new cell content has to be added to a cell.
  • Color changes: CadLib has changed from using System.Drawing.Color to two new color structs: WW.Cad.Model.Color and WW.Cad.Model.Entities.EntityColor. DxfEntity.Color uses the new EntityColor struct, the rest uses the new Color struct. There are two helper classes containing common colors (red, blue, green etc): WW.Cad.Model.Colors and WW.Cad.Model.Entities.EntityColors.
  • The block internal design changed. It moved to namespace WW.Cad.Tables (actually the previous DxfBlockRecord is now DxfBlock). The impact on existing code is probably very minor.
  • Added support for the IDBUFFER object.
  • Added support for unloaded xref's.
  • Bug fix and performance improvement in the WPF rendering (fixed memory leak due to non-frozen pens/brushes).
  • Several other bug fixes.

3.5.3.5.6.0 March 4, 2010:

  • Added support for writing DWG 2007 files.

3.5.3.5.5.21 January 28, 2010:

  • Bug fix: APPID objects were not cloned properly as part of an object's extended data.
  • Bug fix: HATCH clone didn't clone property HatchPatternType (pattern type).
  • Bug fix: DXF reader didn't read all dimensions correctly (resulting amongst other in wrong layer information).
  • Bug fix: DWG second header CRC was broken in version 3.5.5.17.
  • Bug fix: nested insert/block BYBLOCK color/linetype/lineweight was not correctly handled.
  • Bug fix: Fixed problem where complex text was not broken into lines correctly.
  • Bug fix: Fixed problem with incorrect letterWidth \W0 in MTEXT.

3.5.3.5.5.19 January 13, 2010:

  • Fixed bug with text containing just "%%" appearing.

3.5.3.5.5.18 January 9, 2010:

  • Performance improvements on DWG reading.
  • Fixed exception when reading BIGFONT.SHX.

3.5.3.5.5.17 January 7, 2010:

  • Added support for big fonts.

3.5.3.5.5.14 December 18, 2009:

  • Improved clone support (can now clone an entire drawing).
  • Bug fix: reading MTEXT with newlines from DWG and writing to DXF needed processing of newlines.
  • Bug fix: bug writing extended data null string value to DXF.

3.5.3.5.5.12 December 11, 2009:

  • Improved dimension rendering/creation (now supports stacked fractions and improved many details).

3.5.3.5.5.7 November 30, 2009:

  • MTEXT rendering redesign (amongst others added support for diagonal/stacked fractions).
  • Bug fix: VIEWPORT writing to DWG.

3.5.3.5.5.6 November 20, 2009:

  • Bug fix: XRECORD objects were not cloned.
  • Bug fix: entity extension dictionary clone caused crash.

3.5.3.5.5.5 November 19, 2009:

  • Bug fix: not all values TDUSRTIMER and TDINDWG fit within TimeSpan.MinValue/MaxValue. Cap the read values.

3.5.3.5.5.4 November 9, 2009:

  • Bug fix: EntitySelector didn't correctly select model space entities in a viewport (used the wrong transform).

3.5.3.5.5.3 November 4, 2009:

  • Bug fix: read/write handled object extended data from/to DXF files (before this was only done for entities).

3.5.3.5.5.2 November 2, 2009:

  • Bug fix: WpfWireframeGraphics3D had one overload in which always all layout's paper space entities were drawn, while the user should be able to specify which entities to draw.

3.5.3.5.5.1 November 1, 2009:

  • Bug fix: SPLINE entity rendering shouldn't be affected by z-axis.

3.5.3.5.5.0 October 29, 2009:

  • Added support for DXF version 24 (2010).
  • Added support for extension dictionaries.
  • Added new header variables.

3.5.3.5.4.1 September 25, 2009:

  • Bug fix: fixed problem with writing IMAGE and IMAGEDEF to DWG.

3.5.3.5.4.0 September 17, 2009:

  • Added support for writing DWG 2004 files.
  • DxfViewport (VIEWPORT) properties Id and Status are now readonly. Id and Status are determined automatically depending on the order in the layout.
  • Bug fix: ImageExporter didn't scale the drawing correctly for paperspace layouts.

3.5.3.5.3.8 March 13, 2009:

  • Bug fix: fixed writing a LEADER to DWG.
  • Don't write inserts with just 1 row/column as MINSERT to DXF.
  • Bug fix: fixed writing a HATCH to DWG.
  • Bug fix: fixed reading DWG file with extremely large timespan values in the header (cap at TimeSpan.MaxValue).
  • Bug fix when reading/writing a DXF file containing a dimension style override with an arrow block pointing to a non-existent block.
  • Bug fix: fixed multiple layout/viewport writing to DWG.
  • Bug fix: fixed adding viewports to a layout (a null referenced upon writing to file was thrown because the viewport wasn't properly registered).
  • Redesigned linetype element. Removed property DxfLineType.Lengths, replaced by property DxfLineType.Element.Length.
  • Implemented complex line types (read/write, DXF/DWG).

3.5.3.5.2.22 March 2, 2009:

  • Fixed bug in extended data reading (crash on reading handle groups).
  • Accept hatch ellipse edge minor to major ration > 1 (in some cases the number contains rounding errors).
  • Record unsupported objects when reading a DXF/DWG file and store them in DxfModel.UnsupportedObjects.
  • Reimplemented line type rendering to be more accurate.
  • Bug fix: fixed OverflowException when reading a polyface mesh with many vertices (vertex index reached short.MinValue).
  • Bug fix: leader arrow size was read incorrectly for DWG 13/14.
  • Bug fix: dimension style overrides parsing crashed when the extended data had an odd number of groups (trailing zero group).
  • Optionally report missing external references when loading all external references.
  • Bug fix: positioning of drawing external (DWG) reference.
  • Bug fix: only draw external reference if IsExternalReference flag is set. Some blocks still have the ExternalReference filename defined, but it should not be used if the IsExternalReference flag is not set.
  • Bug fix: also draw insert if column/row count is zero.
  • Bug fix in DWG R 13/14 reading: viewport association with paper space (layout).

3.5.3.5.2.14 January 18, 2009:

  • Bug fix: add null check when resolving entity references in block record builder.
  • Bug fix: there were some issues with anonymous blocks. Improved separation between normal and anonymous blocks.
  • Bug fix: corrected associating a layout with its viewport after reading a DWG file.
  • Bug fix in DWG reading of layers, the Enabled property wasn't read properly for DWG versions 13/14 (color wasn't set to negative value).
  • Fixed issues with dictionary object soft owner references after reading a DWG file.
  • Bug fix: text style/dim style/line types were duplicated in some cases in read/write scenarios.
  • Bug fix: set table cell style text style to STANDARD when not present in DXF.
  • Bug fix: calculate correct text alignment point 1 when text is empty.
  • Bug fix: error reading table (cell) style with missing group 7 (name).
  • Bug fix: be able to write a black layer color to DXF.
  • Bug fix: writing some handle groups resulted in a InvalidCastException (converted from string to ulong types, but hadn't fixed all occurrences apparently.)
  • Bug fix: bug in TABLESTYLE.
  • Moved EntitySelector class from Pro to Standard edition.
  • Bugfix: allow duplicate app id's in DXF.

3.5.3.5.2.1 November 28, 2008:

  • Bug fix: multi threading issues when drawing in multiple threads.

3.5.3.5.2.0 November 27, 2008:

  • Added support for writing DWG files (versions 13, 14, 2000).
  • Bug fix: viewports of release 13 and 14 were not read correctly.
  • Bug fix: no longer write header variables that give warnings.
  • Minor fixes in DWG reading.
  • Added ASP.NET example solution demonstrating dynamically generating a bitmap from a CAD drawing.

3.5.3.5.1.6 September 24, 2008:

  • Bug fix: DWG reader bug in reading IMAGE entity.
  • Bug fix: DWG reader bug in reading unknown entities.
  • Bug fix: crash when displaying IMAGE entity without image file.

3.5.3.5.1.5 September 19, 2008:

  • Bug fix: in R14 DWG reader didn't read LWPOLYLINE entity.
  • Bug fix: DWG reader didn't add the read layers to the model's Layers collection.
  • Bug fix: DXF reader didn't assign the dimension style to the read dimension (bug introduced in previous release).
  • Bug fix: dimension style arrow block references weren't correctly read by DXF reader (bug introduced in previous release).
  • Bug fix: don't render attribute definitions when they are part of a BLOCK.

3.5.3.5.1.0 September 15, 2008:

  • Implemented reading DWG files (versions 13, 14, 2000, 2004, 2007).
  • Added properties for most header variables to DxfHeader class.
  • Added support for color book colors (named colors).
  • Redesigned the way dimension style overrides are handled (breaking change).
  • Bug fix: corrected writing of inserts for R13 and later where there were more than 1 rows or columns.

3.5.3.5.0.5 June 9, 2008:

  • Added IMAGE entity support to GDI+ rendering, BoundsCalculator and EntitySelector.
  • Bug fix: fixed line weight problem in rendering (caused PDF's to be empty).
  • Fixed bug in Polygon2D union algorithm (overlapping opposite directed segments caused a problem).
  • Small stability improvement in 2D polygon boolean operations.

3.5.3.5.0.2 May 17, 2008:

  • Bug fix: default layer line weight is STANDARD.
  • Bug fix: whether a LAYER is on or off shouldn't affect an INSERT's visibility.
  • Bug fix: Show attribute definition (ATTDEF) TagString instead of the Text.

3.5.3.5.0.1 May 13, 2008:

  • Added support for the WPF wireframe rendering.
  • Added export to XAML feature.

3.5.2.0.21.0 April 4, 2008:

  • Added support for the TABLE entity. Cell formats, border styles, double borders are supported.
  • Added support for the TABLESTYLE object.
  • Added support for the XRECORD object.
  • Added support for line weight to the PDF exporter.
  • Bug fix: binary data groups were incorrectly written to binary DXF files.
  • Bug fix: writing a DXF file with a VPORT without UCS crashed.

3.5.2.0.20.1 January 17, 2008:

  • Improved protection against dodgy DXF files written by other DXF libraries.

3.5.2.0.20.0 January 6, 2008:

  • Added support for entity extended data.

3.5.2.0.19.0 November 24, 2007:

  • Integrated help 2 documentation into CadLib.
  • Added support for fixed foreground color to PdfExporter, SvgExporter and PsExporter. Also improved support for foreground color inversion if equal to background color.
  • Added IEntityVisitor interface.
  • Bug fix: reading DXF with zero scale factor.
  • Bug fix: in font lookup.

3.5.2.0.18.10 August 23, 2007:

  • Bug fix: display of some true type fonts was incorrect, some fonts were not found (like e.g. like georgiab.ttf, georgiaz.ttf, georgiai.ttf).

3.5.2.0.18.7 June 19, 2007:

  • Exposed IClippingTransformer interface to be able to access transformation matrix in drawing calls.
  • Bug fix: dimension style (overrides) arrow block were not written correctly.
  • Bug fix: text with zero height caused a crash in some calls.
  • Bug fix: DxfDimension.Aligned: text was not vertical when dimension was vertical and TextInsideHorizontal = false.
  • Bug fix: leader drawing should respect dimension style's leader arrow block in stead of arrow block.

3.5.2.0.18.4 April 29, 2007:

  • Added helper methods to DxfVertex2D to calculate the bulge from the arc segment's center and end points or the arc segment's included angle.

3.5.2.0.18.3 April 27, 2007:

  • Added GraphicsConfig.FixedForegroundColor property for single color drawings (e.g. black and white).
  • Bug fix: writing a DXF file with multiple app id's threw an exception.
  • Bug fix: writing a pre-version 14 DXF file with $HANDLING set should not write 330 groups.

3.5.2.0.18 January 11, 2007:

  • OpenGL surface rendering.
  • New computational geometry algorithms in WW.Math (pro edition): Constrained Delaunay triangulation and 2D polygon boolean operations.
  • Support for layouts.
  • Support for engineering/architectural dimensions (feet and decimal/fractional inches).
  • Ability to create multiple pages in a PDF document.
  • 24-bit color support (DXF version 18).
  • Use .NET 2.0 version of SharpZipLib.
  • Merged assembly FormUtils into assembly WW.
  • The licensing structure changed to allow for WW.Math, WW.GL and CadLib to be licensed separately.

3.5.2.0.17 July 13, 2006:

  • Support for DXF version 18 (AutoCad 2004-2007).
  • Added zoom/pan example and demo of EntitySelector.
  • Minor bug fixes.

3.5.2.0.16 June 6, 2006:

  • Added EntitySelector class for selecting entities with the mouse.
  • BaseGraphicsFactory class and example of how to use it for getting coordinates of entity line segments.
  • Fixed hatch scaling bug.
  • Fixed code page recognition bug and added many code pages to DrawingCodePage enum.

3.5.2.0.15 May 14, 2006:

  • Added support for reading/writing DXF 15 (AutoCad 2000). Also reading a DXF file, modifying and writing it now works properly (no more handle clashes).
  • Added cloning of entities and other objects in the context of another model. This means parts of a model can be imported into another model.
  • Fixed bug in reading dimension style overrides for dimension entity.

3.5.2.0.14 April 17, 2006:

  • Included some VB examples and added VS 2005 solutions for the examples.
  • Minor bug fixes in reading/writing (2D) splines.
  • fixed bug in writing Dimension with UseTextMiddlePoint = true
  • Some refactoring: using .NET 2.0 KeyedCollection where appropriate

3.5.2.0.13 March 23, 2006:

  • Migrated to .NET 2.0. WW.Base.dll replaces the Sharp3D.Math.dll that was used in the 1.1 version. See the readme.html in the download for more details about changes from version 1.1 to 2.0.