Commercial version of Ab3d.Reader3ds available

by abenedik 4. June 2008 17:00

As promised the commercial version of Ab3d.Reader3ds is available.

The purchase can be done on

As rss subscriber I give you 10% launch discount. Just enter "Reader3dsRss" as a discount code on the Purchase page.
The discount is valid only until the end of July 2008.

Tags: , , ,


New version of Ab3d.Reader3ds available

by abenedik 1. June 2008 00:15

I hope you did not notice that the actual version of Reader3ds has expired today. If you did, I would like to apologize for the inconvenience.

So finally the new version 4.3 is available for download.
This is the last freely available version and will expire on 31th December 2008.

The following is the list of changes:

  • Fixed bug where camera name or light name is longer than 8 characters (ArgumentOutOfRangeException: Length cannot be less than zero.).
  • Added public static get ExpirationDate - so it is possible to get expiration date without actually creating an instance of Reader3ds (this can already throw expired exception).
  • Fixed exception when reading 3ds file without any animation keyframe.

    The commercial version is already prepared. The version 4.3 is almost the same as the commercial version – the only difference is that it does not contain licensing system (it has the nasty expiration date).

    The commercial version should be available at the end of the week. I need to move the site to a new and faster server and then it will be possible to purchase the license (automatically on the new site).

    Another great news is that new versions of Ab2d.ReaderSvg and Ab2d.ReaderWmf are also almost prepared and will be published very soon. And until the end of the month commercial versions of both will be available also.

  • Tags: , , ,


    Explore the power that Silverlights brings to the web with two new tutorials

    by abenedik 16. April 2008 17:10

    Silverlight Excel application
    The first tutorial describes how to convert an excel graph to a Silverlight application with Paste2Xaml tool. To show the power of Silverlight we add a starup animation and a dynamicaly showing graph data on moving the mouse over graph's bars. The full source code is also available.
    TRY Silverlight Excel application
    Silverlight EU Countries application
    The second, more advanced, tutorial shows how to convert a map of EU countries in svg file to a Silverlight application with ViewerSvg. The tutorial will also show how to read the data from xml file and how to use data binding. The application will show the basic data about the country that is selected with the mouse. There is also a slider that shows when the countries were joining the EU.
    TRY Silverlight EU Countries application

    The tutorials can be found at

    Tags: , , ,

    ReaderSvg | ReaderWmf | Tutorial

    Silverlight? Yes, the new Paste2Xaml and ViewerSvg support Silverlight!

    by abenedik 31. March 2008 00:30

    A while ago I spoke with Matevz Gacnik (his great blog: He just came from MIX08 and told me that Silverlight is hot. Very hot! "You should implement support for it as soon as possible!" he said.

    He is Microsoft's MVP. That means his advice should be taken seriously. So I postponed my current work - preparing a commercial version of Reader3ds.

    Now I am proud to announce that new version of Paste2Xaml and ViewerSvg support Silverlight.

    The following screenshots shows the new ViewerSvg with opened svg file and Export dialog:
    ViewerSvg application
    ViewerSvg export options

    Now it is possible to use almost any 2D or 3D drawing application to create user interface elements for Silverlight applications. You can draw it in Adobe® Illustrator®, CorelDRAW®, Inkscape, Microsoft Visio or other vector drawing application, save the work in svg file and use ViewerSvg to convert the drawing into xaml. If the application support save into Windows metafile (wmf or emf) like Autocad, it is possible to use Paste2Xaml to convert the saved metafile into xaml. If it is not possible to save the drawing into svg or metafile you can use copy and paste the drawing into Paste2Xaml. This can be used for example for converting graphs from Excel or WordArt from Microsoft Work into xaml. Also there are already huge internet image libraries that can be a great source for user interface elements (see Links section).

    So you can use your favorite drawing application and simply draw the user interface of your WPF or Silverlight application in it.

    There are also some other improvements and bug fixes:

    New in Paste2Xaml library v1.3:

    • Added support for silverlight.
    • Added objects tree view with rename option - possible to export elements with name (so they can be manipulated later from the code).
    • Added select object with mouse.

    New in ViewerSvg library v1.3:

    • Added support for silverlight.
    • Added object selection with mouse.
    • Added export dialog with xaml text and preview tabs.
    • Added selecting number of decimals in the exported xaml (useful for optimizing the size of exported xaml).
    • Added possibility to export only selected elements.

    New in ReaderSvg library v1.6:

    • Fixed reading number in exponent format (for example 1.234e-3) in transform element. This fixed the problems when some elements in the read image were placed on the wrong location and with the wrong size.

    New in ReaderWmf library v1.3:

    • Fixed problems with some wmf files that were imported with some anomalies (lost details)

    New version of all the Ab2d tools and libraries is available from

    Tags: , , , , ,

    ReaderSvg | ReaderWmf

    New versions of Ab2d tools and libraries

    by abenedik 5. March 2008 00:20

    Based on users feedback all the Ab2d tools and libraries were improved.

    Paste2Xaml (utility to read Windows metafiles (wmf), Enhanced Metafiles (emf) or get matafile objects from clipboard and can convert it into xaml) and ViewerSvg (utility to convert svg and svgz files into xaml) has been improved with a zoom toolbox that enable panning and zooming (top right on the image below).

    ViewerSvg application
    New in Ab2d.ReaderSvg library v1.5:

    • Added support for reading svgz (compresses svg) files.
    • Fixed reading some embedded images - sometimes "Invalid character in a Base-64 string." exception was thrown.

    New in Ab2d.ReaderWmf library v1.2:

    • Fixed reading some wmf files - especially files exported from Autocad are converted properly now.
    • Added MinLineWidthFactor property - useful for metafiles with lots of lines. With the property it is possible to adjust thickness of the lines.
    • Added EmbeddedBitmapImages property that replaced the obsolete MetafileImages (because of misunderstanding of the property)
    • Added support for reading pixels (individual points) from metafiles - they are converted to Ellipse elements with the specified radius.

    New version is available from

    Thank you to all who have provided feedback on the Ab2d tools and libraries.
    If you would also like to have some additional functionality or did find a file that does not work correctly, you are most welcome to inform me about it on my feedback page.
    There is also a discussions group where you can post a question or see already answered ones.

    Tags: , , , ,

    ReaderSvg | ReaderWmf

    Reading SVG images, Windows metafiles (wmf) and Enhanced Metafiles (emf) from XAML

    by abenedik 4. January 2008 00:20

    With new version of ReaderSvg and ReaderWmf it is now possible to read SVG, Windows metafiles (wmf) and Enhanced Metafiles (emf) from XAML.

    For example:
    <ab2d:SvgViewbox Source="samples/myClipart.svg"/>

    SvgViewbox can be used just as Image control. Its Source property is set to the Uri of the svg file. It can be a resource, content, located on the web or on the local hard disk. It can be also used for DataBinging - for example from Combobox. For reading metafiles there is a WmfViewbox control.

    There are also some other improvements and bugfixes.

    New version is available from

    Tags: , , , ,

    ReaderSvg | ReaderWmf

    Greatly improved version of Reader3ds available

    by abenedik 4. December 2007 22:20

    Programming with 3D objects has never been easier!

    With Ab3d.Reader3ds library the models and animation data can be simply imported into WPF (.Net 3.0) application. The library adjusts the model data so they WPF applications they look as in the modeling application.

    All the imported models can be accessed by their name (with NamedObject property) - as they were defined in 3D modeling application.

    The integrated Transformer3ds class simplifies transformations on the objects - rotation, translation, scale. Creating custom animations can be done really easily.

    Playing animations stored in 3ds file is also very simple. The Reader3ds has integrated Animator3ds helper class. The only thing to do is to set the duration of the animation or the number of frames played in a second and than calling the DoAnimate method in a Timer or Render event..

    Work with 3D content in WPF is now as simple as using gif or jpg images.

    The following image shows sample R2D2 model rendered without using smoothing groups (left) and with using them (right - new in v4.2) - some edges are sharp and some are smooth.
    Improved rendering quality with uning smoothing groups

    New in version 4.2:

    • Support for smoothing groups - also automatically support flat and shaded models. This greatly improves rendering quality.
    • Added Shading property to define None, Flat, Smooth or SmoothingGroups shading. Default value is SmoothingGroups that uses the Smoothing Groups values stored in 3ds file to define which edges are smooth and which are flat. This option produces the results as in the 3d model designer. However if you wish to force the flat or smooth looking objects choose either Flat or Smooth (before reading the 3ds file). Also if performance is much more important than rendering quality choose None.
    • GetFrame can now get a frameNo as double to render the models between frames (for smoother animation)
    • Fixed bug when reading from reasource and 3ds file contains texture files (exception was thrown).
    • Also now it is possible to set TexturesPath property to url of the textures (http://...) or to the application resources ("pack://application:,,,/XAMLBrowserApplication1;component/models")
    • Added GetCameraForFrame method that gets the camera for the desired frame number - this enables creating animated cameras
    • Fixed reading material colors for some older 3ds files (in previous version reading crashed with "Non-negative number required." exception)
    • The previous version has wrongly convert position from 3ds coordinate system to wpf coordinate system. The difference is that the x axis now points to the right instead of the left and the z axis points to the viewer and not away from it. This version by default uses new coordinate system, but if your application depends on the old one, you can simple set this property to true. But note that this can only be a temporary solution. Set UseOldCoordinateAxis property to true to use old coordinate axis.
    • Added Materials property - Dictionary that can be used to access all the materials defined in 3ds by their name.
    • Added support for animated lights (PointLight - positin, color; SpotLights - position, direction, color)
    • Added GetExpirationDate method
    • Added TargetViewport - gets the viewport that was used in ReadFile
    • Added Animator3ds - helper class to simplify playing animations stored in 3ds file

    Changes and fixes in Transformer3ds:

    • Fixed isAditive parameter for Scale and Translate transform
    • ObjectName can be now also Model3DGroup and not only Model3DGeometry
    • RotateObjects can now be called with RotateTransform3D - this enables setting custom center of rotation (instead of center of object)
    • Added methods without object name - to translate, rotate and scale all the objects and lights (as using constant Ab3d.Reader3ds.RootModelGroupName for objectName).
    • Added Transformer property to Reader3ds - this simplifies transforming the read objects

    Reader3ds, four sample applications, help file and Viewer3sd are available from

    Tags: , , ,