CadLib 3.5 Version history

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.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.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.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.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.29.31   Dec 5, 2010:
  • Updated the CadLib's OpenGL exteded example to have an export to bitmap function.
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.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.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.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.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.29.12   Sep 17, 2010:
  • Bug fix: DWG reading of an entity chain stopped at an unknown entity.
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.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.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.29.1   Aug 11, 2010:
  • Minor table DWG read bug fixes.
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.6.0   March 4, 2010:
  • Added support for writing DWG 2007 files.
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.5.19   January 13, 2010:
  • Fixed bug with text containing just "%%" appearing.
3.5.5.18   January 9, 2010:
  • Performance improvements on DWG reading.
  • Fixed exception when reading BIGFONT.SHX.
3.5.5.17   January 7, 2010:
  • Added support for big fonts.
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.5.12   December 11, 2009:
  • Improved dimension rendering/creation (now supports stacked fractions and improved many details).
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.5.6   November 20, 2009:
  • Bug fix: XRECORD objects were not cloned.
  • Bug fix: entity extension dictionary clone caused crash.
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.5.4   November 9, 2009:
  • Bug fix: EntitySelector didn't correctly select model space entities in a viewport (used the wrong transform).
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.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.5.1   November 1, 2009:
  • Bug fix: SPLINE entity rendering shouldn't be affected by z-axis.
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.4.1   September 25, 2009:
  • Bug fix: fixed problem with writing IMAGE and IMAGEDEF to DWG.
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.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.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: dots in line types were not rendered by the PdfExporter.
  • Bug fix: correctly associate entity with line type when reading a DWG file.
  • 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.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.2.1   November 28, 2008:
  • Bug fix: multi threading issues when drawing in multiple threads.
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.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.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.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.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.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.0.1   May 13, 2008:
  • Added support for the WPF wireframe rendering.
  • Added export to XAML feature.
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.
2.0.20.1   January 17, 2008:
  • Improved protection against dodgy DXF files written by other DXF libraries.
2.0.20.0   January 6, 2008:
  • Added support for entity extended data.
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.
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).
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.
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.
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.
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.
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.
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.
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.
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
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.