DXF Viewer

The de·caff DXF Viewer version 2.x was a Java based program for viewing AutoCAD® DXF and SHX files. It’s still available here, but you should definitely switch to my de·caff Viewer (without DXF in its name), which also supports DWG.


The DXF viewer is a Java program which displays DXF and SHX files. It runs under every machine which supports at least Java 1.6 (also known as Java 6). Being a Java program means that it’ll run under on any computer for which a Java Virtual Machine version 1.6 is available. At the moment this means all major PC operation systems including Windows, Linux and MacOS.

DXF is a file format which was introduced a long time ago by AutoDesk,Inc. to work as an exchange format for their well-known AutoCAD® program. SHX is the font format used by AutoCAD®.



The viewer reads 2D and 3D ASCII and binary DXF files (which may even be packed with zip, gzip and bzip2, but you should prefer zip), and understands a noticable subset of the features of newer DXF versions. If you have ever tried other DXF viewers you have probably noticed that there are many problems with newer DXF files. Blame AutoDesk because they added lots of stuff when switching from AutoCAD® R12 to AutoCAD® R13, partly incompatible and even some parts which are written in a completely different format which is embedded in the DXF file in an encrypted form. There are many additions which are useless for any programs other than AutoCAD® resulting in unnecessary file bloat.

The files are displayed as wireframe graphics similar to AutoCAD®. A rendered Java3D version like the one from where the shuttle image displayed on top of this page was taken is currently implemented, but not yet publically available.


Printing and several output formats are supported: PDF, SVG, Postscript, GIF, PNG, JPG. See here how to add even more image output formats.


An Applet version of the viewer is also available.

Automatic Updates

The viewer has an automatic update feature which is disabled by default (I don’t like the idea of programs phoning home without asking). You can enable it via the Settings dialog (found in the Options menu), which has a tab Automatic Update for that purpose. If you are behind a proxy you’ll also have to add its data in the HTTP Proxy Settings tab.

When enabled all what is done is downloading the file version.txt from this server on each startup. The file contains the currently actual version and a hint which Java version is necessary to run the viewer. Its current content is

# Current version info
VERSION:  2.21.54
MINJVM:   1.6

If the viewer discovers that it is older than the current version it either asks you whether to download the new version or it downloads it silently (depending on the Automatically Install New Version … setting). In the first case you’ll be asked whether to restart the viewer after the download is finished, in the second case the new version is used when you start the viewer the next time. So you can decide whether to have a keep me in control or a don’t bother me way of handling automatic updates. And of course you can always switch them off again.

Automatic Font Loading

The viewer comes with substitutes for some common AutoCAD® SHX fonts, but in the default configuration it also tries to load missing fonts from a web server. No other data besides the name of the font file is transmitted upstram. To be able to access the internet you’ll have to edit the data in the HTTP Proxy Settings tab if you are behind a proxy.

You can disable this automatic download by removing all Remote Font Search Directories from the Font tab of the Settings dialog.


The viewer may be used freely, but comes without any warranties. So use it at your own risk. If you want to help and have DXF files which create errors feel free to send them to the author Please pack the files to save bandwidth (DXF packs very well).

Standard Wireframe Version

The standard version of the viewer displays the files similar to the standard AutoCAD® view. It runs as an application under every operation system with a Java 1.6 runtime environment or better.

Download dxfviewer-swing.jar version 2.21.54 .

The DXF Viewer in the form of the jar package as downloadable from above may be distributed freely.

This is free software coming without warranties! It is written with the best intents, but you are using it at your own risk!

Older Versions

A Version Running under Java 1.5

Version 2.12.16 is the last one which runs under Java 1.5.

Download dxfviewer-swing-java5.jar version 2.12.16.

A Version Running under Java 1.1

A completely outdated predecessor of the viewer able to run in an ancient Java 1.1 environment can be found under http://www.escape.de/~quincunx/dxfviewer/.


Standard Usage

Under most operation systems you can run the program from your GUI just like any other program (eg. double-clicking on it’s symbol on Windows). There is one drawback with this approach, though, because by this the viewer may not use more than a restricted size of memory which is not enough for really big files. The exact size depends on your Java installation but some 256MByte is typical.

Recognizing Memory Problems

There is a memory usage indicator in the status bar which shows you how many memory the viewer has allocated and how much of it it is using. If this indicator gets dark red the viewer’s memory is nearly exhausted which will slow down performance dramatically.

Getting a error box displaying “java.lang.OutOfMemory” is the fatal sign. There’s not enough memory available for the operation you are currently running (probably loading a file).

If you have several files open you can close some of them to free memory. The newly freed memory does not show directly in the memory indicator, but it will after the next garbage collection is run. Garbage collection is done automatically so you don’t have to care, but you can enforce one if you click on the memory indicator.

Allowing for More Memory

Basically to be able to use all your machines memory you shoudl use a Java 64bit installation on a 64bit operation system. With 32bit Java you’ll always be restricted to some 1.5 GBytes.

Switch On Automatic Restart

In the Miscellaneous tab in the Settings dialog (found in the Options menu) there is a Restart the viewer with improved memory settings? option. If you enable this setting the viewer will try to restart itself with improved memory settings. Effectively it is started twice this way, but modern Java handles this very well, so you’ll hardly notice it.

Use a Script to Start The Viewer

This works well to give one program (e.g. the viewer) more memory. Basically just create a script which calls

java -mx1400m -jar dxfviewer-swing.jar 

When you call this script it will start the viewer with 1400MBytes of memory, which is a good value for 32bit-Java installations on a machine with at least 2GByte of memory. You can also use a g instead of a m to indicate GBytes, so with a 64bit-Java and 8GBytes of physical memory

java -mx6g -jar dxfviewer-swing.jar

is a good start.

Allow All Java Programs To Use More Memory

The Java Control Panel (JCP) which comes which each Java installation allows to generally set parameters for all Java applications, including the maximum of memory they are allowed to use. In Windows you’ll find it in the Settings, on other operation systems you might have to search for a program called ControlPanel.

Start it and switch to the Java tab. Click the View… button. This will open a dialog titled Java Runtime Environment Settings. Here you can add Runtime Parameters for each Java version installed on your system. Generally some 75% of yxour physical memory is a good value, but for 32bit Java there is an upper limit, so you should never exceed 1400MB. As above the upper memory level is set with the switch -mx directly followed by the amount of memory, which you can postfix with either m (MBytes) or g (GBytes). So for a 32bit Java on a machine with at least 2GByte of physical memory insert the following into the Runtime Parameters column for each Java installed on your machine


For a 64bit Java and 8GByte of physical RAM you can use




Here’s a table on which DXF entities are supported by the viewer (the viewer will inform you about entities it does not understand):

DXF ENTITY Support Status Comments
3DFACE supported
3DSOLID ignored Encrypted entity introduced in R13
ACAD_PROXY_ENTITY ignored Entity used in older versions to simulate newer entities
ACIDBLOCKREFERENCE supported Entity inserted by AutoDesk Inventor® package.
ARC supported
BODY ignored Encrypted entity introduced in R13
BLOCK supported external (XREF) blocks are not supported
CIRCLE supported
DIMENSION supported
ELLIPSE supported
HATCH supported
HELIX ignored introduced in R2007
IMAGE supported if image format is supported by Java
INSERT supported
LEADER supported
LIGHT ignored
LWPOLYLINE supported
MESH ignored introduced in R2013
MLEADER ignored
MLINE supported
MTEXT supported fonts are substituted if not available
OLEFRAME/OLE2FRAME supported rendering uses preview data, not OLE
POINT supported
POLYLINE supported
RAY ignored introduced in R13
REGION supported Encrypted entity introduced in R13
SECTION **ignored Encrypted entity introduced in R2007
SHAPE supported if accessed SHX shape file is available
SOLID supported
SPLINE supported
SUN ignored introduced in R2007
SURFACE ignored Encrypted entity introduced in R2007
TABLE supported introduced in R2006
TEXT supported fonts are substituted if not available
TOLERANCE supported introduced in R13, onts are substituted if not available
TRACE supported
UNDERLAY ignored introduced in R2006
VIEWPORT supported only rectangular clipping
WIPEOUT supported introduced in R13
XLINE ignored introduced in R13

DXF Feature Support

DXF Feature Support Status Comments
Layer supported
Color supported DXF can contain colors in several forms, which are all supported.
Line Styles supported ven extended line styles containing texts and shapes are supported, if the associated SHX files are available.
Line Width supported Line width is only defined for LWPOLYLINE and POLYLINE entities.
Line Weight ignored Line Weight is a constant display width.
Reordering supported Reordering means that entities are drawn in an order different from the one in which they are defined in the file.
Spatial Filtering ignored Spatial filtering is used to clip away parts of the model, although it is often used just to draw a frame without any actual clipping.
Views supported Views in DXF come in various flavors: VIEWs, VPORTs, VIEWPORTs, LAYOUTs and Paper Space.


Pack Formats

The viewer also reads packed files in the following formats: ZIP, GZIP and BZIP. For ZIP only the features handled by standard Java are supported.



Thanks to Wout!

I’m cooperating with Wout de Zeeuw of WoutWare who has written a 3D DXF and DWG Viewer for .NET

Thanks to the Apache Softare Foundation and Kohsuke Kawaguchi

The viewer makes use if the bzip2.jar library extracted from the (Apache Ant Project)[http://ant.apache.org/] by Kohsuke Kawaguchi.

It also uses an excerpt of the Apache Batik project to support WMF rendering.

Thanks to Bob Harder

The viewer uses FileDrop by Robert Harder.


Lots of people helped with feedback, ideas and test data. Special thanks go to

  • Frank Gerberding is a computer graphics guru and has written an OpenGL library for Amiga. He raytraced the about image of the viewer on his famous PPC powered Amiga, introduced me to quaternions and is always helpful when I have an odd question.

  • Eric Lafortune aka Luciad for providing the Proguard Java Obfuscator.

  • Johannes Raida has provided lots of specially created test files and feedback. He has written a CAD Format Viewer and Converter which may interest you.

  • HP Knoll from Paris was supplying me with my first binary DXF file and files of R13/R14.

  • Dietmar Rudolph. Thomas Stürznickel and Leo Weissenberger write the book Der DXF-Standard. It’s out of print, now, but you can still get the successor DXF Intern as a book on demand (see www.clf.de for more info). If you are involved with DXF this book is a must-have, although it is only describing DXF up to R12 (with a few paragraphs introducing newer features). And it is only available German.

The DXF Viewer and the DXF Applet in binary form may be used and redistributed freely. They make use of 3rd party software which has its own licenses requiring a bit more care (usually copying the license on redistribution), see subsections below. As can be expected from a freely available software the following legaleze applies:


Some 3rd party libraries are included in the dxfviewer-swing.jar:

bzip2.jar and Batik

This product includes software developed by the Apache Software Foundation http://www.apache.org/.

The DXF Viewer and DXF Applet make use of the bzip2.jar extracted from the Apache Ant Project by Kohsuke Kawaguchi. It also uses code extracted from the Apache Batik Project for WMF rendering.

Both Ant and Batik are distributed under the Apache Software License, Version 2.0.

Balloon Tips Library

The DXF Viewer makes use of the Balloon Tip library, which is distributed under the following license:

Copyright (c) 2011 Bernhard Pauler, Tim Molderez
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
    * Redistributions of source code must retain the above copyright
      notice, this list of conditions and the following disclaimer.
    * Redistributions in binary form must reproduce the above copyright
      notice, this list of conditions and the following disclaimer in the
      documentation and/or other materials provided with the distribution.
    * Neither the name of the Balloon tip Developer Team nor the
      names of its contributors may be used to endorse or promote products
      derived from this software without specific prior written permission.


Version History

V 2.21.54 [Mon Mar 21 10:35:52 CET 2016]
(Applet version 1.51.54)


  • IMAGE fallback now obeys image's clip bounds.
  • Incomplete MTEXT is positioned differently.
  • Spline LEADER created differently.

V 2.21.53 [Thu Mar 17 12:13:17 CET 2016]
(Applet version 1.51.53)


  • Fixed incorrect clipping of IMAGE, WIPEOUT and OLE*FRAME entities.

V 2.21.52 [Wed Mar 16 11:28:09 CET 2016]
(Applet version 1.51.52)


  • Fixed sometimes incorrect transformation of ACAD_TABLE entity.

V 2.21.51 [Mon Mar 14 14:30:33 CET 2016]
(Applet version 1.51.51)


  • Fixed incorrect image clipping.

V 2.21.50 [Fri Mar 11 14:48:53 CET 2016]
(Applet version 1.51.50)


  • Fixed missing image clipping.

V 2.21.49 [Wed Mar 9 08:20:58 CET 2016]
(Applet version 1.51.49)


  • Fixed layer list width always expanding.

V 2.21.48 [Tue Mar 1 12:30:53 CET 2016]
(Applet version 1.51.48)


  • Fixed creating too many hatch lines slows down drawing considerably.
  • Fixed parallel access during view image creation may stop rendering for longer durations.

V 2.21.47 [Mon Feb 29 13:26:02 CET 2016]
(Applet version 1.51.47)


  • Change layer handling to reflect the new underlying system which uses two different kinds of visibility.

V 2.21.46 [Wed Feb 24 14:54:22 CET 2016]
(Applet version 1.51.46)


  • Took care of layers having two separate states of invisiblity, which slightly differ. It took my 24 years to recognize this difference.

V 2.21.45 [Mon Feb 22 13:44:20 CET 2016]
(Applet version 1.51.45)


  • Fixed mirrored printing of IMAGE and OLE*FRAME entities.
  • Improved image printing quality.

V 2.21.44 [Sun Feb 21 16:41:21 CET 2016]
(Applet version 1.51.44)


  • Further improved to OLE data extraction.
  • Added rendering of missing frame for OLEFRAME entities.

V 2.21.43 [Fri Feb 19 19:23:01 CET 2016]
(Applet version 1.51.43)


  • Improved OLE data extraction.

V 2.21.42 [Thu Feb 18 15:55:14 CET 2016]
(Applet version 1.51.42)


  • Thanks to a generous sponsor support for entities OLEFRAME and OLE2FRAME was added. As OLE is a Windows speciality, rendering is using the preview data usually contained in both entities.

V 2.21.41 [Tue Dec 1 12:13:11 CET 2015]
(Applet version 1.51.41)


  • Overworked MTEXT escape handling to avoid crashes on broken values.

V 2.21.40 [Fri Oct 23 11:52:45 CEST 2015]
(Applet version 1.51.40)


  • Fixed: Reading of very large handle values was failing.
  • Corrected spline clamping for insane splines.

V 2.21.39 [Mon Oct 5 13:09:01 CEST 2015]
(Applet version 1.51.39)


  • Setting font search URLs now works again.


  • TTF subtitutes for SHX fonts which might be installed by some AutoDesk tools like TrueView will now be used by the viewer if the SHX font is not accessible. Please note that TTF is no perfect replacement for SHX as they differ in the way they are defined: an SHX glyph is a combination of lines, while a TTF glyph consits of shapes.

V 2.21.38 [Tue Aug 4 15:04:30 CEST 2015]
(Applet version 1.51.38)


  • The content of invisible VIEWPORTs was not shown before, but it seems that it stays visible even if the VIEWPORT is not.
  • Nested VIEWPORTs with frozen layers handle layer visibility don't combine the visibility settings as implemented in former viewer versions.

V 2.21.37 [Thu Jul 30 21:36:41 CEST 2015]
(Applet version 1.51.37)


  • Fixed another incorrect line type fitting which could possibly result in later errors.

V 2.21.36 [Tue Jul 28 14:20:52 CEST 2015]
(Applet version 1.51.36)


  • Fixed incorrect line type fitting which could possibly result in later errors.

V 2.21.35 [Mon Jul 20 17:16:43 CEST 2015]
(Applet version 1.51.35)


  • Fixed LEADER head shown in cases when it shouldn't.

V 2.21.34 [Fri Jul 3 14:07:11 CEST 2015]
(Applet version 1.51.34)


  • Changed LEADER color handling.

V 2.21.33 [Sun Jun 28 18:05:58 CEST 2015]
(Applet version 1.51.33)


  • Reduced threshold for Z in relation to X or Y which decides if a view is 2D or 3D. Former value was .0001, now it's .000001.

V 2.21.32 [Thu Jun 11 19:04:25 CEST 2015]
(Applet version 1.51.32)


  • Fixed handling of multiline attributes.
  • Improved symbol font handling.
  • Improved TTF scaling.

V 2.21.31 [Thu May 21 17:25:51 CEST 2015]
(Applet version 1.51.31)


  • Fixed LEADER arrow sometimes missing.

V 2.21.30 [Thu May 21 16:06:07 CEST 2015]
(Applet version 1.51.30)


  • Improved support for LEADERs with spline lines.
  • Fixed bug in text bounding box calculation for texts with aspect ratio not 1. This would place these texts incorrectly depending on alignment.

V 2.21.29 [Tue May 19 14:47:11 CEST 2015]
(Applet version 1.51.29)


  • Adds missing line style support for LEADER entity.

V 2.21.28 [Wed Apr 29 15:39:05 CEST 2015]
(Applet version 1.51.28)


  • Some 3D files were only displayed as 2D.

V 2.21.27 [Mon Apr 20 15:01:33 CEST 2015]
(Applet version 1.51.27)


  • Further corrections of SPLINEs with unusually high knot multiplicity count.

V 2.21.26 [Wed Apr 1 15:19:34 CEST 2015]
(Applet version 1.51.26)


  • Fixed incorrect handling of SPLINEs with unusually high knot multiplicity count which made this SPLINEs disappear.

V 2.21.25 [Thu Feb 19 15:01:08 CET 2015]
(Applet version 1.51.25)


  • Sped up resource loading.

V 2.21.24 [Wed Feb 18 14:39:37 CET 2015]
(Applet version 1.51.24)


  • Fixed incorrect image clipping.


  • Sped up loading of files with many images.

V 2.21.23 [Tue Feb 17 16:25:57 CET 2015]
(Applet version 1.51.23)


  • Fixed image handling when images are clipped.


  • Sped up loading of files with large images.

V 2.21.22 [Thu Feb 12 14:43:03 CET 2015]
(Applet version 1.51.22)


  • Fixed thread creation problems under Windows for files loading too many images.

V 2.21.21 [Sun Feb 8 14:25:47 CET 2015]
(Applet version 1.51.21)


  • Restored error message for missing or broken DXF file in applet.


  • Minor speed improvements.

V 2.21.20 [Thu Jan 22 13:02:42 CET 2015]
(Applet version 1.51.20)


  • Fixed animation duration not obeyed for layer animation.


  • Beneath paths and URLs defining DXF files to be loaded on startup the viewer now accepts also a directory as command line parameter. For the given directory an open file dialog is displayed.

V 2.21.19 [Thu Jan 22 11:34:12 CET 2015]
(Applet version 1.51.19)


  • Fixed wrong clipping of faces in perspective view.

V 2.21.18 [Wed Jan 21 14:24:41 CET 2015]
(Applet version 1.51.18)


  • Fixed duplicate history entries.
  • Fixed duplicate entity pick results for extruded entities.

V 2.21.17 [Sat Jan 17 18:37:38 CET 2015]
(Applet version 1.51.17)


  • Fixed exception when setting reduce mode.


  • Minor drawing speedup.
  • Minor ddebugging speedup.

V 2.21.16 [Wed Dec 10 14:48:19 CET 2014]
(Applet version 1.51.16)


  • Fixed memory leak problem introduced in previous release.

V 2.21.15 [Fri Dec 5 16:33:45 CET 2014]
(Applet version 1.51.15)


  • Fixed incorrect drawing of some filled entities.
  • Fixed possible NPE during preview creation.

V 2.21.14 [Fri Dec 5 14:50:41 CET 2014]
(Applet version 1.51.14)


  • Improvements for file previews: tooltips and faster reaction.

V 2.21.13 [Thu Dec 4 18:42:04 CET 2014]
(Applet version 1.51.13)


  • Added recent file previews for about panel when it is large enough.

V 2.21.12 [Thu Nov 20 16:19:57 CET 2014]
(Applet version 1.51.12)


  • Fixed missing resource exception during PDF/PS output.

V 2.21.11 [Sat Nov 15 13:10:04 CET 2014]
(Applet version 1.51.11)


  • Fixed handling of variable $FILLMODE to be consistent with AutoCAD®. Now HATCHes are only drawn if $FILLMODE is non-zero.
  • Improved drawing quality for wide polylines.


  • Removed support for cheat codes polygon3d.filled and wide.line.fill as a result of the new $FILLMODE handling.
  • Added support for new cheat code fillmode.override.

V 2.21.10 [Wed Oct 8 10:25:08 CEST 2014]
(Applet version 1.51.10)


  • Added workaround to reenable dropping URL.
  • Fixed HATCH border handling for textbox boundaries.

V 2.21.09 [Thu Aug 21 13:30:45 CEST 2014]
(Applet version 1.51.09)


  • Further improvements for REGION entity.
  • Fixed sometimes slightly incorrect TEXT placement.

V 2.21.08 [Fri Aug 15 10:51:30 CEST 2014]
(Applet version 1.51.08)


  • Added support for more ACIS int_curves in REGION entity.

V 2.21.07 [Thu Aug 14 17:57:02 CEST 2014]
(Applet version 1.51.07)


  • Fixed obfuscation problem which hid the additions from V 2.21.05.

V 2.21.06 [Thu Aug 14 14:47:29 CEST 2014]
(Applet version 1.51.06)


  • Added missing support of REGION entity for DXF written by AutoCAD® 2013 or later.

V 2.21.05 [Tue Jun 24 17:09:23 CEST 2014]
(Applet version 1.51.05)


  • Improved selection of initial view.
  • Fixed possible IllegalArgumentException.

V 2.21.04 [Mon Jun 23 16:54:58 CEST 2014]
(Applet version 1.51.04)


  • Added layout frames.

V 2.21.03 [Fri Jun 13 13:38:02 CEST 2014]
(Applet version 1.51.03)


  • Added searchable texts to PDFs created from DXF files. This feature will only work for Western languages.
  • Minor drawing speed improvements.

V 2.21.02 [Tue Jun 3 18:41:51 CEST 2014]
(Applet version 1.51.02)


  • Fixed context menues missing in toolbar.
  • Fixed sometimes wrong text search in viewports.
  • Fixed missing layouts when tab order is not unique.

V 2.21.01 [Mon May 26 18:04:59 CEST 2014]
(Applet version 1.51.01)


  • Improved handling of supplementary Unicode characters.

V 2.21.00 [Fri Mar 21 13:14:40 CET 2014]
(Applet version 1.51.00)


  • Added restart option for improved memory settings, see Options>Settings>Miscellaneous>Restart the viewer with improved memory settings?


  • Fixed HATCH boundary seed points association.

V 2.20.25 [Fri Mar 14 12:27:10 CET 2014]
(Applet version 1.50.25)


  • Fixed sometimes missing linetype symbols.

V 2.20.24 [Tue Mar 11 14:03:11 CET 2014]
(Applet version 1.50.24)


  • Added missing popup menues on Windows platform.

V 2.20.23 [Mon Mar 10 15:20:30 CET 2014]
(Applet version 1.50.23)


  • Improved speed and reliability for creating hatch lines from HATCH entities.

V 2.20.22 [Tue Feb 25 13:41:51 CET 2014]
(Applet version 1.50.22)

Bug Fixes

  • Improved support for HATCH entities with multiple open lines.

V 2.20.21 [Thu Jan 9 14:42:00 CET 2014]
(Applet version 1.50.21)


  • DXF VIEWs and VPORTs are now displayed in 3Dby default, but you may change this in the settings.
  • Fit to window uses an improved algorithm for perspective views.
  • User settings may now be exported and imported. See the description dxf.default.prefs property to learn how you can make use of this to have your own standard settings in a multi-user environment.

V 2.20.20 [Fri Dec 20 18:23:55 CET 2013]
(Applet version 1.50.20)


  • Fixed misplaced texts when TEXT entity is mirrored and aligned.

V 2.20.19 [Tue Dec 17 18:13:32 CET 2013]
(Applet version 1.50.19)


  • Turned off Drag&Drop from tabs as it creates problems on all platforms.

V 2.20.18 [Wed Dec 4 14:06:58 CET 2013]
(Applet version 1.50.18)


  • Fixed file tabs no longer working on Windows platforms. This fix temporarily disables drag&drop from the tabs.

V 2.20.17 [Tue Dec 3 13:48:41 CET 2013]
(Applet version 1.50.17)


  • Fixed missing menu on view component.
  • Fixed bad choice for close tab keyboard shortcut.


  • May drag filename or image (for the latter hold the shift key) from tab.
  • Flat x-y views now display the model position under the mouse in the status bar.

V 2.20.16 [Mon Dec 2 18:43:14 CET 2013]
(Applet version 1.50.16)


  • Fixed possible overflow errors during hatch creation.


  • Added Edit menu with clipboard actions.

V 2.20.15 [Sun Nov 24 16:47:50 CET 2013]
(Applet version 1.50.15)


  • Fixed error in WIPEOUT bounds calculation, resulting in wrong initial view.

V 2.20.14 [Fri Nov 22 16:12:29 CET 2013]
(Applet version 1.50.14)


  • Fixed rounding problem for HATCH border, resulting in distorted hatches under special circumstances.
  • Fixed missing MTEXT when dedicated EED is set but does not contain extended text data.
  • Fixed NullPointerException for IMAGE entity if image was missing.

V 2.20.13 [Fri Nov 22 11:37:41 CET 2013]
(Applet version 1.50.13)


  • Added support for overall transparency of images. Support for transparent pixels in the given image was already working before, but DXF can define a global transparency for images which is now also supported.

V 2.20.12 [Fri Nov 15 16:36:11 CET 2013]
(Applet version 1.50.12)


  • Added preview for DXF files in file chooser dialog. Depending on the size of your files calculating previews might be challenging for your machine. If you encounter problems you can switch off previews in the settings (to be found in the Miscellaneous tab).

V 2.20.11 [Tue Nov 12 12:47:58 CET 2013]
(Applet version 1.50.11)


  • Ellipse entities were sometimes not shown.


  • Untested: trying to use system menu bar on MacOS.

V 2.20.10 [Mon Oct 28 12:48:08 CET 2013]
(Applet version 1.50.10)


  • Repaired reading of files packed with gzip and bzip2.

V 2.20.09 [Fri Oct 25 13:50:00 CEST 2013]
(Applet version 1.50.09)


  • A bug in calculating bounding boxes of narrow and wide texts resulted in wrong alignment and wrapping of these texts.
  • Justified texts are no longer justified in the last line of a paragraph.
  • Property values shown for dimensions had missing i18n.

V 2.20.08 [Fri Oct 18 13:52:40 CEST 2013]
(Applet version 1.50.08)


  • The viewer now supports setting whether faces are drawn filled or unfilled. Solid hatches and true type glyphs are always drawn filled.

V 2.20.07 [Wed Oct 2 13:49:26 CEST 2013]
(Applet version 1.50.07)


  • Overworked bigfont character selection which sometimes used wrong characters.


  • Now the viewer accepts DXF files starting with a byte order mark (bom). As a bom basically is not allowed according to the spec (AutoCAD® will reject such files), a warning is issued

V 2.20.06 [Mon Sep 2 17:25:16 CEST 2013]
(Applet version 1.50.06)


  • Fixed sometimes incorrect text line distance.
  • Fixed incorrect rendering of SHX sub shapes.
  • Improved distributed text handling.
  • Fixed potential problems in paragraphs with block alignment.
  • Fixed missing columns in SHX file display.
  • Added missing reaction to coordinate system settings.

V 2.20.05 [Fri Jun 21 15:46:09 CEST 2013]
(Applet version 1.50.05)


  • Added support for SHAPE and ACIDBLOCKREFERENCE entities.
  • Improved font handling.

V 2.20.04 [Tue Jun 18 16:50:10 CEST 2013]
(Applet version 1.50.04)


  • Fixed NaN problem when fitting line types to extremely short arcs.
  • Fixed incorrect reading of DBCOLOR objects.

V 2.20.03 [Mon Jun 17 14:54:51 CEST 2013]
(Applet version 1.50.03)


Fixed incorrect line type fitting for line types with adjacent dashes.

V 2.20.02 [Fri Jun 14 15:01:52 CEST 2013]
(Applet version 1.50.02)


Added support for extended line styles.


Fixed single dots sometimes not drawn problem.

V 2.20.01 [Fri May 31 18:24:29 CEST 2013]
(Applet version 1.50.01)

Fixes possible NullPointerExceptions.

V 2.20.00 [Thu May 30 16:23:31 CEST 2013]
(Applet version 1.50.00)

Version step mirrors internal change.


  • Fixes problem where view might be distorted under Windows when returning to viewer window after some time.

V 2.13.18 [Mon May 6 13:50:49 CEST 2013]
(Applet version 1.43.18)


  • Fixes possible NullPointerException during font loading.

V 2.13.17 [Mon Apr 29 18:27:53 CEST 2013]
(Applet version 1.43.17)


  • Vertical texts with non-standard spacing were rendered incorrectly.

V 2.13.16 [Mon Apr 15 16:56:52 CEST 2013]
(Applet version 1.43.15)


  • Applet lost layers.
  • Bigfont char selection was sometimes incorrect.

V 2.13.15 [Wed Apr 17 10:31:11 CEST 2013]
(Applet version 1.43.16)


  • Fixed NPEs when showing special properties.

V 2.13.14 [Fri Apr 12 15:10:09 CEST 2013]
(Applet version 1.43.14)


  • Dimension blocks defining an offset were displaced.
  • Text search restricted to words was missing hits.


  • Text search in applet may now be triggered from Javascript.

V 2.13.13 [Thu Feb 28 11:38:50 CET 2013]
(Applet version 1.43.13)

Added support for extended layer colors.

V 2.13.12 [Fri Feb 22 18:42:35 CET 2013]
(Applet version 1.43.12)

  • Fixed "UNKNOWN%quot; group type 102 error.
  • Allowed to zoom deeper into the model.

V 2.13.11 [Thu Feb 21 14:25:36 CET 2013]
(Applet version 1.43.11)

  • Improved selection of initial view, so it is less often empty.
  • Added support for PDMODE (point display mode).

V 2.13.10 [Wed Feb 6 21:59:34 CET 2013]
(Applet version 1.43.10)

Fixed spurious 0 <= 0 / ConcurrentModificationException bug.

V 2.13.09 [Wed Feb 6 14:42:23 CET 2013]
(Applet version 1.43.09)

Slightly reduced memory footprint.

V 2.13.08 [Fri Feb 1 18:15:22 CET 2013]
(Applet version 1.43.08)

Fixed problem which made texts run sometimes too wide or too narrow.

V 2.13.07 [Wed Jan 30 13:25:27 CET 2013]
(Applet version 1.43.07)

Fixed various applet problems:

  • Applet initialization failure.
  • Applet did not show text.
  • Applet's CloseFrame() method not accessible.

V 2.13.06 [Mon Jan 28 22:08:18 CET 2013]
(Applet version 1.43.06)

Fixes error "getCharSet() is not yet implemented for TrueTypeFont!";

V 2.13.05 [Mon Jan 28 17:08:16 CET 2013]
(Applet version 1.43.05)

Obfuscation problems induced subtle errors changing colors and views.

V 2.13.04 [Fri Jan 25 12:57:42 CET 2013]
(Applet version 1.43.04)

Improved SHX font encoding handling.

V 2.13.03 [Sun Jan 20 22:50:23 CET 2013]
(Applet version 1.43.03)

Fixed broken umlauts.

V 2.13.02 [Sun Jan 20 15:17:51 CET 2013]
(Applet version 1.43.02)

Minor improvement for drawing speed.

V 2.13.01 [Sat Jan 19 16:01:35 CET 2013]
(Applet version 1.43.01)

Added close buttons for tabs, and extended tab context menu to allow for closing all or all other tabs.

V 2.13.00 [Fri Jan 18 14:18:07 CET 2013]
(Applet version 1.43.00)

This release is using a new minimal Java version for the Viewer in order to support features not available before. Now Java 1.6 (also known as Java 6) is required. The previous version requiring Java 1.5 (aka Java 5) is still available in the Download section.


This version adds some helpful hints which show up when the viewer is using up its memory.

Bug Fixes

A bug which made some Bigfont SHX fonts appear incorrectly when used in vertical text mode was fixed.

V 2.12.16 [Sun Dec 16 13:33:11 CET 2012]
(Applet version 1.42.16)

Fixes rare ArrayIndexOutOfBounds exception thrown under special circumstances in applet.

V 2.12.15 [Thu Dec 13 12:29:12 CET 2012]
(Applet version 1.42.15)

Fixed initialization problem in applet.

V 2.12.14 [Tue Dec 11 11:55:04 CET 2012]
(Applet version 1.42.14)

Added cheat code for fixed scale printing. Also added another cheat code to work around printer scaling problems.

V 2.12.13 [Fri Nov 16 17:45:25 CET 2012]
(Applet version 1.42.13)

Fixed rare NullPointerException on startup.

V 2.12.12 [Fri Nov 9 13:25:23 CET 2012]
(Applet version 1.42.12)

Fixed problem with occasional hanging for some seconds on Windows during first file load.

V 2.12.11 [Thu Nov 8 16:13:17 CET 2012]
(Applet version 1.42.11)

Fixed bug which made reading of some binary DXF files fail.

V 2.12.10 [Mon Oct 29 12:51:41 CET 2012]
(Applet version 1.42.10)

Added possibility to select Plug&Feel.

V 2.12.09 [Thu Oct 25 15:10:31 CEST 2012]
(Applet version 1.42.09)

This release is optimizing text wrapping so it works better with eastern languages.

V 2.12.08 [Mon Oct 22 17:49:11 CEST 2012]
(Applet version 1.42.08)

Added basic support for AutoCAD® 2013. As the updated DXF format spec isn't released yet, this is just to avoid annoying warnings and a fallback to an inappropriate encoding.

V 2.12.07 [Tue Oct 16 13:38:11 CEST 2012]
(Applet version 1.42.07)

Bugfix release for a bug in automatic update which didn't recognize it was already updated.

V 2.12.06 [Sat Oct 13 14:35:42 CEST 2012]
(Applet version 1.42.06)

This is a bugfix release which fixes a bug in line style assignment which resulted in wrongly scaled dashes under rare circumstances.

V 2.12.05 [Mon Oct 8 15:10:07 CEST 2012]
(Applet version 1.42.05)

This release completely overworks SHX font handling, which changes text rendering slightly in various places.

Especially text rendering in vertical mode is now similar to the original AutoCAD® behavior.

V 2.12.04 [Thu Aug 23 17:11:59 CEST 2012]
(Applet version 1.42.04)


The following bugs were fixed:

  • The handling of oblique angles in MTEXT entities was incorrect.
  • Searching for texts in files containing multiline MTEXTs with lines starting with whitespace resulted in a crash of the viewer.

V 2.12.03 [Fri Aug 3 12:32:15 CEST 2012]
(Applet version 1.42.03)

This is a bugfix release that fixes a NullPointerException which appeared when 3rd party DXF files contained broken MTEXT entities.

V 2.12.02 [Mon Jul 30 20:58:32 CEST 2012]
(Applet version 1.42.02)

This release overworks color handling. Color now should be rendered more similar to AutoCAD®.

V 2.12.01 [Wed Jul 11 16:33:49 CEST 2012]
(Applet version 1.42.01)

This release improves support for the IMAGE entity.

V 2.12.00 [Tue Jul 10 21:04:34 CEST 2012]
(Applet version 1.42.00)

This release adds support for the IMAGE entity.

V 2.11.26 [Wed Jul 4 14:38:27 CEST 2012]
(Applet version 1.41.26)

Another bugfix for the applet, which couldn't find fonts on the server if they had the wrong case.

V 2.11.25 [Thu Jun 28 13:17:37 CEST 2012]
(Applet version 1.41.25)

This is mainly bugfixing the applet, because there were problems reported with loading fonts from external addresses. But it generally streamlines font handling, so even the standard viewer should sometimes open files faster, especially if they access many fonts.

V 2.11.24 [Thu Jun 21 13:57:41 CEST 2012]
(Applet version 1.41.24)

Convenience Release

Allowed the viewer to be more generous with files with small format errors.

V 2.11.23 [Tue Jun 12 18:48:30 CEST 2012]
(Applet version 1.41.23)

Bugfix Release

This improves support for layouts, which were sometimes drawn incorrectly (usually empty).

V 2.11.22 [Sun Jun 10 19:52:14 CEST 2012]
(Applet version 1.41.22)

Usability Enhancements

This slightly increases usability by adding a button to reset the layer visibility to its initial state and some tooltips.

Furthermore the projection mode now survives file view changes.

V 2.11.21 [Fri Jun 8 13:35:28 CEST 2012]
(Applet version 1.41.21)

Bugfix Release

This fixes a bug with layouts, which where shown incorrectly (often empty) in special circumstances.

V 2.11.20 [Mon Jun 4 17:04:43 CEST 2012]
(Applet version 1.41.20)

Bugfix Release

This fixes showing an error on files which contained MTEXT font escapes containing Windows paths.

V 2.11.19 [Fri Jun 1 17:43:46 CEST 2012]
(Applet version 1.41.19)

Feature Release

This release adds a tree view tab showing the contents of the DXF file to the tabs at the right. By default this tab is not shown, because it requires the DXF file to be kept in memory after load. Enable Picking in the Settings dialog (tab view) and restart the viewer to allow picking and make the tree view appear.

V 2.11.18 [Thu May 31 18:21:03 CEST 2012]
(Applet version 1.41.18)

Bugfix release

This release fixes a bug which made perspective views appear too small.

V 2.11.17 [Wed May 23 15:38:32 CEST 2012]
(Applet version 1.41.17)

This release brings small improvements in drawing speed.

V 2.11.16 [Tue May 15 13:16:54 CEST 2012]
(Applet version 1.41.16)

Bugfix release

Fixes problems occuring when a file contains infinite values, which could be the cause of long running calculations. Although infinite values are basically errors, the viewer now behaves more gracefully.

V 2.11.15 [Thu Apr 26 16:29:53 CEST 2012]
(Applet version 1.41.15)

Bugfix Release

Fixes a problem with automatic updates under Windows. The problem appeared when updating without restart, and showed as various strange behaviors.

V 2.11.14 [Tue Apr 24 14:19:12 CEST 2012]
(Applet version 1.41.14)

Maintenance Release

  • File reading and conversion is some 20% faster now.
  • Splines are drawn better.

V 2.11.13 [Thu Mar 15 11:21:34 CET 2012]
(Applet version 1.41.13)

Bugfix Release

Fixes problem with new versions using numeric %% text constants resulting in "byteToChar() is not suitable for multi-byte encodings" error.

V 2.11.12 [Mon Mar 5 20:34:30 CET 2012]
(Applet version 1.41.12)

Bugfix Release

Fixes incorrect rendering of some special SHX characters.

V 2.11.11 [Thu Mar 1 15:03:13 CET 2012]
(Applet version 1.41.11)

Feature Release

This adds support multiline attributes.

V 2.11.10 [Tue Feb 28 13:08:24 CET 2012]
(Applet version 1.41.10)


This release fixes several HATCH related problems.

V 2.11.09 [Thu Jan 12 13:27:50 CET 2012]
(Applet version 1.41.09)


  • Sometimes a second file couldn't be displayed because of a NullPointerException.
  • Reordering information introduced by a SORTENTSTABLE object was sometimes discarded, although it was valid.

V 2.11.08 [Tue Jan 3 13:57:47 CET 2012]
(Applet version 1.41.08)


Adapted behavior of files with broken group codes to mimick that of AutoCAD®. Now some files not conforming to the format description which were formerly rejected will be accepted.

V 2.11.07 [Thu Dec 29 12:42:02 CET 2011]
(Applet version 1.41.07)


Fixed incorrectly empty viewports.

V 2.11.06 [Tue Dec 13 16:38:41 CET 2011]
(Applet version 1.41.06)


Fixed incorrect placement of MLINE with non-default extrusion vector.

V 2.11.05 [Wed Nov 16 13:38:12 CET 2011]
(Applet version 1.41.05)


  • Fixes a NullPointerException during exit when viewer was freshly installed.
  • Some hatches which weren't rendered before are now displayed.

V 2.11.04 [Wed Oct 19 12:18:44 CEST 2011]
(Applet version 1.41.04)

This improves the interline spacing in multiline MTEXT entities.

V 2.11.03 [Sat Oct 15 13:40:24 CEST 2011]
(Applet version 1.41.03)

Adds background colors for MTEXTs.

V 2.11.02 [Fri Oct 14 13:55:22 CEST 2011]
(Applet version 1.41.02)


This fixes problems with rational splines, which were not calculated correctly.

New Features

Added support for entity reordering, so drawing order of entities may be different from file order.

V 2.11.01 [Tue Oct 4 12:22:58 CEST 2011]
(Applet version 1.41.01)

Added statistics for entities in paper space.

V 2.11.00 [Wed Sep 28 12:59:03 CEST 2011]
(Applet version 1.41.00)

Bug Fixes

Fixes a bug in HATCH rendering code which resulted in a NullPointerException under special circumstances.

New Features

Now the ACAD_TABLE entity is also supported.

V 2.10.10 [Sun Sep 25 10:26:39 CEST 2011]
(Applet version 1.40.10)

Don't ever do things in a hurry. The last release broke the viewer, so it even started. Fixed now. Sorry for everyone falling into the trap.

V 2.10.09 [Sat Sep 24 15:03:26 CEST 2011]
(Applet version 1.40.09)

This removes a spurious problem introduced in the latest version.

V 2.10.08 [Fri Sep 23 13:18:14 CEST 2011]
(Applet version 1.40.08)

This fixes various memory related problems, and a possible problem when loading several files concurrently.

V 2.10.07 [Thu Sep 22 18:58:51 CEST 2011]
(Applet version 1.40.07)

Removed the "Add File" button because adding a file is not possible any more.

V 2.10.06 [Mon Sep 19 18:44:20 CEST 2011]
(Applet version 1.40.06)

Fixed incorrect display of named colors.

V 2.10.05 [Thu Sep 15 17:19:24 CEST 2011]
(Applet version 1.40.05)

This fixes a bug with charset ISO-8859-11 which seems to miss in JVM version 1.60.0_22.

V 2.10.04 [Tue Jul 26 13:19:26 CEST 2011]
(Applet version 1.40.04)


Fixes a problem displaying the initial view when there is no model.


Only for applet: adds the dxf.applet.print.mode parameter, allowing for selection of currently three printing modes.

V 2.10.03 [Thu Jul 14 17:27:01 CEST 2011]
(Applet version 1.40.03)

Fixes broken text search in 2D views.

V 2.10.02 [Thu Jul 14 16:29:06 CEST 2011]
(Applet version 1.40.02)

This is a bugfix release.

  • Fixed problem which made image files written by the viewer not acessible under Windows.
  • Fixed problem with Unicode escape sequences which where not handled correctly under all circumstances.

V 2.10.01 [Sun Jul 3 16:09:27 CEST 2011]
(Applet version 1.40.01)

Fixes various text and font related problems:

  • Adds support for 32bit Unicode characters.
  • Fixes problem with tabulator not recognized under special circumstances.
  • Improves font selection.

V 2.10.00 [Fri Jul 1 10:01:12 CEST 2011]
(Applet version 1.40.00)

Implements improved color handling. Old DXF versions only support a set of 255 fix colors, while newer versions also support true colors and transparency. Both is now supported by the viewer, too.

V 2.07.06 [Mon May 2 17:19:32 CEST 2011]
(Applet version 1.37.06)

Added indicators for toolbar buttons with context menu.

Fixed problem in applet's paper display where the paper was shown opaque.

V 2.07.05 [Mon Apr 11 11:33:36 CEST 2011]
(Applet version 1.37.05)

Fixed problem with view not centering on current match when searching in 3D mode.

V 2.07.04 [Wed Apr 6 10:47:56 CEST 2011]
(Applet version 1.37.04)

This release fixes two bugs:

  • If any text in the model contained two or more space characters in a row the viewer could freeze during search.
  • Sometimes the view shown initially was empty, although other views were not. The current version tries to find a useful non-empty initial view.

V 2.07.03 [Fri Apr 1 15:22:56 CEST 2011]
(Applet version 1.37.03)

Fixed bug introduced in previous release which avoided zooming on texts found during search.

V 2.07.02 [Thu Mar 31 11:38:26 CEST 2011]
(Applet version 1.37.02)

Fixed bug that search results were placed incorrectly for all but the initial view.

V 2.07.01 [Tue Mar 29 01:06:17 CEST 2011]
(Applet version 1.37.01)

Fixed update problem.

V 2.07.00 [Fri Mar 25 15:37:15 CET 2011]
(Applet version 1.37.00)

This release adds text search capatibility.

V 2.06.09 [Thu Mar 24 17:22:44 CET 2011]
(Applet version 1.36.09)

This release fixes problems in selecting the correct default view which is shown after viewer startup.

V 2.06.08 [Wed Mar 16 15:00:26 CET 2011]
(Applet version 1.36.08)

This release clarifies an error message given for zip files which the Java libraries can't read.

V 2.06.07 [Tue Mar 8 12:29:25 CET 2011]
(Applet version 1.36.07)

This release repairs some problems with internationalization resources when using Java 6.

V 2.06.06 [Tue Mar 1 11:34:44 CET 2011]
(Applet version 1.36.06)

Added marker for unsupported entities to entity statistics panel.

V 2.06.05 [Mon Feb 28 13:09:10 CET 2011]
(Applet version 1.36.05)

Does no real changes to the viewer, but adds support for two applet parameters.

V 2.06.04 [Mon Feb 21 11:20:40 CET 2011]
(Applet version 1.36.04)

This version fixes a bug with perspective viewports where the field of view was chosen incorrectly.

V 2.06.03 [Sat Feb 12 18:47:19 CET 2011]
(Applet version 1.36.03)

  • Fixes exception with empty MTEXT escape codes.
  • Adds holes in MLINEs support.

V 2.06.02 [Fri Feb 4 15:39:26 CET 2011]
(Applet version 1.36.02)

Fixes transformation handling for ACIS entities (currently only REGION is supported). Please note that ACIS entities rarely have transformations.

Drawing of filled TTF characters and unfilled SHX characters was not clear in the case of Bigfonts where both types of characters can appear depending on the font settings, so this was reimplemented.

V 2.06.01 [Sun Jan 30 12:52:45 CET 2011]
(Applet version 1.36.01)

Fixes slow startup especially for the applet.

V 2.06.00 [Sun Jan 23 18:34:25 CET 2011]
(Applet version 1.36.00)

This release adds support for the MLINE entity.

V 2.05.03 [Sun Jan 16 16:56:59 CET 2011]
(Applet version 1.35.03)

Fixed bug:

  • ATTDEF entities where not shown correctly when they appeared outside a BLOCK.

V 2.05.02 [Thu Jan 13 13:19:15 CET 2011]
(Applet version 1.35.02)

Fixed bugs:

  • Printing did sometimes print empty pages.
  • Ellitical arc hatch borders where rendered incorrectly.

V 2.05.01 [Tue Jan 11 13:41:45 CET 2011]
(Applet version 1.35.01)

Fixed bugs:

  • Fit curves for splines where calculated with wrong accuracy, possibly resulting in crooked curves.
  • Leader entities where not rendered when they had no hook line.

V 2.05.00 [Sun Jan 2 14:48:37 CET 2011]
(Applet version 1.35.00)

The DXF Viewer is now based on the Java 5 framework, which internally meant a lot of changes. But more interesting: it introduces some enhancements and bug fixes, too.


  • File loading and conversion is some 10% faster.
  • Memory footprint is reduced, too. The exact amount depends on the data contained in the DXF file, but expect some 20% to 40% less memory usage.

Bug Fixes

  • In rare occasions an entity was misplaced, which is now fixed.

V 2.03.08 [Mon Dec 13 17:41:10 CET 2010]
(Applet version 1.33.06)

Fixes an error in EED display introduced in 2.03.07.

V 2.03.07 [Mon Dec 13 13:01:38 CET 2010]
(Applet version 1.33.05)

Reads files with a lot of Extended Entity Data faster.

V 2.03.06 [Sat Dec 11 17:24:38 CET 2010]
(Applet version 1.33.04)

Adds display of Extended Entity Data to pick info.

V 2.03.05 [Wed Dec 8 14:47:41 CET 2010]
(Applet version 1.33.03)

This release fixes two minor errors:

  • ArrayIndexOutOfBounds exception occuring for REGION conversion happening on special circumstances.
  • Text handling with circumflex wrong in rare occasions

V 2.03.04 [Tue Dec 7 11:24:12 CET 2010]
(Applet version 1.33.02)

Fixed perspective and orthogonal projection state not in main toolbar.

V 2.03.03 [Sun Dec 5 12:37:49 CET 2010]
(Applet version 1.33.01)

Minor addition to MTEXT information display: now showing extended text, too.

V 2.03.02 [Thu Dec 2 16:07:50 CET 2010]
(Applet version 1.33.00)

Adds support for codepages SJIS and CP932.

V 2.03.01 [Wed Nov 17 11:46:03 CET 2010]
(Applet version not updated)

Adds a display of the effective layer for selected entities (entity picking must be enabled in the settings).

V 2.03.00 [Thu Nov 11 11:27:20 CET 2010]
(Applet version 1.32.00)

This version adds a hidden feature (sorry, can't say more at the moment), and the possibility to use a special library for faster drawing. See Drawing Speedup.

V 2.02.00 [Mon Oct 11 17:08:02 CEST 2010]

Feature/bugfix release.


  • The DXF entity TOLERANCE is now supported.


  • Delayed NullPointerExceptions happening when SHX font was missing is fixed.
  • NullPointerException on broken DXF missing DICTIONARY is fixed.
  • Picking of lines belonging to text sometimes failing is fixed.

V 2.01.01 [Wed Oct 20 16:50:53 CEST 2010]

This version fixes a problem that LEADER arrows were in rare circumstances rendered too large.

V 2.01.00 [Tue Oct 5 17:55:19 CEST 2010]

This version adds support for default fonts which are used when a font referenced by the file is not found.

V 2.00.03 [Tue Sep 28 16:20:04 CEST 2010]

This release adds support for more codepages. The following codepages where added:

  • ANSI_1250 (Windows central europe)
  • ANSI_1251 (Windows latin 1)
  • ANSI_1253 (Windows greek)
  • ANSI_1250 (Windows latin 5)
  • ANSI_1250 (Windows hebrew)
  • ANSI_1250 (Windows arabic)
  • ANSI_1250 (Windows baltic)
  • ANSI_1250 (Windows vietnam)

Furthermore loading of files with unavailable fonts is now a little bit faster.

V 2.00.02 [Mon Sep 27 22:19:10 CEST 2010]

This fixes a bug with automatic update, which was not workin at all.

V 2.00.01 [Mon Sep 27 21:32:08 CEST 2010]

Minor release making a file appear faster after it is loaded by postponing the creation of named views. Especially for large files named view creation can take some time.

V 2.00.00 [Sun Sep 26 15:21:44 CEST 2010]

No longer a preview, because the viewer is already quite useful.

This version introduces some new features and fixes minor bugs.

New Features

  • More info on picked objects: e. g. the bounding box of the picked object is displayed.
  • Preview of named views to make it easier to select the right one.
  • Automatic Update feature. It has to be enabled because the viewer has to access the internet in order to check for updates, which it shouldn't do without the user's permission.


  • Highlight of picked entity was not correctly updated when view was changed.

V 2.00p91 [Wed Sep 22 15:01:15 CEST 2010]

Bugfix release.


  • As a result of an obfuscation error the viewer was unable to load various files.
  • Picking was not always working.

V 2.00p90 [Sun Sep 19 17:26:28 CEST 2010]

Bugfix/feature release.


Overworked display of viewports to get better results.


Added support for layouts included in the DXF file.

V 2.00p89 [Thu Sep 9 12:08:54 CEST 2010]

Bugfix release.


  • Reinstalls message about unsupported entities.
  • Fixes minor codepage recognization problem

V 2.00p88 [Wed Sep 8 13:10:58 CEST 2010]

Feature/bugfix release


Adds support for the REGION entity.


  • Fixed sometimes incorrect LEADER arrow scaling.
  • Added sanity checks for text settings to ProtoText class, because settings in files are sometimes badly incorrect.

V 2.00p87 [Tue Sep 7 14:12:06 CEST 2010]

Feature/bugfix release


  • Adds a lot of possible views. Some of them are predefined, other are as defined in the DXF file.


  • The backward button wasn't always working.

V 2.00p86 [Sat Aug 28 17:23:09 CEST 2010]

Feature/bugfix release.


  • Introduces new controller for 3D view (see Projection tab top right).
  • Makes 2D and 3D views share more common settings
  • Various speed improvements
  • Improved font handling allows better access of system fonts
  • Reduced memory footprint with files with heavy spline usage


  • Fixes bug which made Acrobat reject some PDF files created by DXF Viewer.
  • Fixes some problems with Eastern languages, especially in SJIS encoding.
  • HATCH entities with open bounds get better renderings.
  • ... and various minor bugs, especially crashes on special DXF files.

V 2.00p85a [Fri Mar 12 13:56:00 CET 2010]

Bugfix release thanks to Enrico Gallo:

  • Fixed NullPointerException on PDF/PS output in some Java versions.
  • Revived SVG export which was lost somewhere on the way.

V 2.00p85 [Sun Jan 3 13:24:21 CET 2010]

Corrected bug in bigfont support where bigfonts were wronly mapped.

V 2.00p84 [Mon Dec 14 16:15:32 CET 2009]

Fixed several problems with text placement, especially for texts beginning or ending with spaces.

Improved bigfont support.

V 2.00p83 [Wed Dec 2 23:10:10 CET 2009]

Fixed bug when text was not displayed if one of the used font was broken.

Fixed minor problems with text placement.

V 2.00p82 [Thu Sep 10 16:08:14 CEST 2009]

Improve MTEXT and font support.

MTEXT was much enhanced in recent AutoCAD® versions which appeared after the first support for MTEXT was added to the viewer. This release closes the GAP by supporting paragraph formats, tabulators and stacked text.

Furthermore the viewer will now try to locate and load TrueType fonts on the machine even if they are not supported by Java itself.

A Java internal bug meant that TrueType fonts were not always displayed in the correct size. This version tries to work around this bug.

V 2.00p81 [Wed May 6 11:57:27 CEST 2009]

Fixed a bug were static attributes (ATTDEF) were always displayed regardless of their visibility status.

Added Brasilian Portugese resources provided by Paulo Henrique de Medeiros. Thanks a lot!

V 2.00p80

not released.

V 2.00p79 [Thu Nov 27 15:47:08 CET 2008]

Improved picking support. Picking is now enabled by default (i. e. on new installations). If you are updating you may enable picking via the View tab in the Settings dialog (found in the Options menu).

V 2.00p78 [Fri Oct 17 16:04:15 CEST 2008]

Minor improvements when opening and saving files by adding file filters to restrict the choices.

V 2.00p77 [Mon Aug 11 18:50:14 CEST 2008]

This fixes a minor hatching bug.

V 2.00p76 [Fri Apr 11 15:24:24 CEST 2008]

This is mainly a bugfix release. The following issues are targeted:

  • NullPointerException when outputting PDF/PS.
  • AutoCAD® 2007 und newer use always UTF-8 as file encoding.
  • Picking was picky.
  • Vertical text support added.
  • Various font-related issues.

V 2.00p75 [Tue Jan 1 19:29:29 CET 2008]

This fixes an error where texts were not displayed when the font location settings were empty.

V 2.00p74 [Sun Sep 30 20:46:03 CEST 2007]

I'm currently very busy with other things, but I discovered that using picking with Java 1.6 resulted in an IllegalArgumentException, so I fixed that at least. Picking is not enabled by default because it uses more memory.
Hopefully in about two months I'll have some time again to make more useful additions.

This also adds a switch to revert the reaction to mouse wheel rotation because somehow on Windows things usually get bigger when you turn the wheel away from you, while on Unix it's the other way round. To my feeling the Windows way is counter-intuitive, because I feel that when I drag something to me it shall become bigger, and smaller when I push it away (but it seems like Windows users seem to sit on their mouse). However: now you decide for yourself, while I can still have the "correct" feeling on both systems. Sorry that it only works after a restart, but I'm really much to busy for implementing this more smoothly (which was the reason I hesitated to release this earier although I wrote the code nearly half a year ago on a user request).

V 2.00p73 [Mon Mar 5 18:52:08 CET 2007]

Fixed a problem which kept settings in the print settings dialog from having a effect.

V 2.00p72 [Sun Nov 12 17:25:13 CET 2006]

Fixes a bug introduced in version 2.00p71 which kept horizontal and vertical lines from being drawn.

V 2.00p71 [Mon Nov 13 00:32:03 CET 2006]

Another bugfix release which adds slightly improvements in performance.

This release mainly addresses a problem when running the viewer with the upcoming Java 1.6 release which resulted in NoSuchMethods exceptions thrown in the conversion step of several (but not all) files. This is fixed now.

V 2.00p70

A bugfix and feature release.

On very rare occasions a POLYLINE was displaced completely. This is fixed.

In order to find the bug I had to implement picking (so I could pick on the incorrectly placed POLYLINE and see where it came from), and as a result the viewer now does allow picking, too. Because picking requires that the whole file is kept in memory it is switched off by default (so the viewer needs less memory). Please enable it in the view settings. It will not work at once (because the file is no longer available in memory) but for all files you load after that.

V 2.00p69

Another bugfix release:

Lines with a linetype scaling of zero were not displayed in former releases, but they are now.

V 2.00p68

Another bugfix release:

The viewer didn't like binary DXF written by recent AutoCAD® versions. Binary DXF is a rarely used variety of DXF, which is usually in text format.

V 2.00p67

This is a bugfix release:

  1. Fixed some problems with special HATCH objects which resulted in incorrect rendering of these objects.
  2. Added the possibility to read incorrect DXF files where a floating point number is used at places where only integer numbers are acceptable.

V 2.00p66

Fixed problem with cached fonts not found.

Added internal debugging support.
Try to run with Java property debug.show.window set to true (i.e. -Ddebug.show.window=true).

V 2.00p65

This incorporates improvements for printing and PDF/Postscript save useful when handling bigger files. Printing and saving is done in a background thread and does no longer block the GUI.

V 2.00p64

Fixes -- once again (sigh) -- the bug which removed the history buttons from the 2d view toolbar.

V 2.00p63

Fixes the bug which removed the history buttons from the 2d view toolbar.

V 2.00p62

Fixes some problems which memory which is not released when a model view is closed.

V 2.00p61

Small changes:

  • Changed handling of invisible edges flags in 3DFACEs thanks to a suggestion of Charlie Thornton.
  • Allowed for less memory usage after file is loaded.

V 2.00p60

Various minor improvements and a little bit of brush up for the new load mode introduced in p59.

V 2.00p59

Fixed i18n exception not allowing PDF and PostScript export.

Changed loading code so it's easier to load multiple files into one model. This will still need a little brush up.

V 2.00p58

Optimization is difficult. On some files reading became very slow as a result of the optimizations introduced in the previous version. This is fixed now.

V 2.00p57

This release adds a lot of improvements for drawing of large files. The achieved speed enhancements depend on the data contained in the DXF file, and they are mostly useful if the data contains lots of texts in TrueTypeFonts (TTF).

Usually the viewer draws TTF texts anti-aliased because they are better readable this way. But on some architectures anti-aliasing takes a lot of time. So now there's a possibility to switch off anti-aliasing but it's probably not necessary because there are some other optimizations which have a better effect. Here's some results from a 30 MByte DXF with 30000 texts (mostly TTF) and where info reports 1.1 million lines. The times are stopped on a Athlon XP 1600+ under Linux with an awful X setup which makes anti-aliasing very slow as you can easily notice.

Anti-Aliasingmin. Text HeightRedraw Time/s

When zooming into the model there is another optimization running in the background which does clipping of larger objects before they are dropped in the internal drawing routine which speds up drawing of the file used for the tests above (where it was always drawn completely) 5fold (from somewhat above 4.0 to 0.8 seconds).

Another improvement is for the reduced mode used during movements (eg rotation, panning, zooming). The reduced mode used until the previous version (now called static reduce mode) just draws every nth line. This gives useful results for standard files, but with large files something like every 100th line is drawn, which is good for an overview but does not leave much to be seen when zoomed deep into the model.

Now there's another reduced drawing mode called (guess what) dynamic reduce mode which tries to adapt to the number of objects really displayed.

You can set the reduce mode and other settings in the settings dialog.

V 2.00p56

Fixed problem with zoom indication rectangle missing in 3D view.

V 2.00p55

Another major reduce of jar file size by using proguard and by removing some duplicate entries introduced by ant's jar task:

Previous size:1,465,802 Bytes
Current size:896,509 Bytes
Difference (gain):569,293 Bytes

V 2.00p54

I used the time between Xmas and New Year's Eve to rearrange everything internally into clearly defined modules. For a mere user the only recognizable change is slightly reduced size of the jar file.

V 2.00p53

Fixed problem with too many spline fit points created.

V 2.00p52

Fixed problems which sometimes resulted in NullPointerExceptions.

V 2.00p51

Fixed ugly flickering during load.

Also added new versions of the starter scripts dv.cmd and dv.sh with special options which are helping the viewer loading files faster.

V 2.00p50

Added reduced drawing during mouse wheel usages.

Exchanged previous output routines for PS, PDF and SVG with optimized ones with improved speed and less memory footprint.

V 2.00p49

Fixed positioning of DIMENSION if it is offset in z direction.

V 2.00p48

Fixed NPE when codepage is undefined, and IllegalPathStateError on HATCH w/o boundary definition.

V 2.00p47

Fixed problem with unavailable codepage ANSI_869 when running Java 5 under Windows.

V 2.00p46

Enhanced AutoCAD® 2004/2006 compatibility.

V 2.00p45

Fixes a problem with ARC entities where the start angle is the same as the end angle.

V 2.00p44

Cosmetic changes.

V 2.00p43

Fixes a class cast exception when adding a 3D file to a 2D view.

V 2.00p42

This release introduces some minor performance optimizations and fixes the following bugs:

  • Enitities are put on incorrect layers on special circumstances. Beneath the obvious problem that they are switched on/off with the false layer this could result in an incorrect color if these entities use the color BYLAYER.
  • Under rare circumstances polynet POLYLINEs were created with too few vertices.
  • The bounding box calculation was not always correct.

V 2.00p41

This release only incorporates an internally refactoring needed for another project.

V 2.00p39

  • Fixed problem with letter 'I' not drawn in several fonts.
  • Fixed a problem with incorrect arrow size of LEADER under special circumstances.
  • Added the possibility to read files which incorrectly use comma instead of point as floating point separator.

V 2.00p38

  • Fixed problem with colored PostScript output.
  • Fixed problem if rotated LEADERs are not in x-y plane
  • Fixed possible problem with incorrect LEADER arrow in special DXF versions.
  • Removed debug info from classes, making the jar 20% smaller.

V 2.00p37

Added Recent Files feature.

V 2.00p36

Fixed bug resulting in sometimes incorrect HATCH placement.

V 2.00p35

Fixed bug resulting in sometimes incorrect 2D POLYLINE placement.

V 2.00p34

Fixed resource exceptions in PS/PDF output dialogs.

V 2.00p33

Added mnemonics and accelerators.

V 2.00p32

Fixed infinite loop with buggy DXF files.

V 2.00p31

Fixed memory problem with lines with too many dashes.

V 2.00p30

Fixed problem with underlined text in 3D view.

V 2.00p29

Added the possibility to always use the middle mouse button for panning which comes quite handy if ypu want to measure angles in the 2D view.

V 2.00p28

  • More bells and whistles for 2D rotation.
  • Fixed another text positioning problem.
  • Added position display for 2D views.

V 2.00p27

Added some bells and whistles for 2D rotation.

V 2.00p26

Fixed problem which resulted in line drawn to upper left corner of view window in rare circumstances.

V 2.00p25

Improved printing and vector format output by allowing floating point coordinates for these tasks.

V 2.00p24

Minor bug fixes.

V 2.00p23

Minor bug fixes.

V 2.00p22

Added rotation for 2D files.

V 2.00p21

Fixed various line type problems.

V 2.00p20

More drawing optimizations.

V 2.00p19

This release fixes a bug where the viewer allocates more and more memory on each redraw which occured in rare circumstances introduced in version 2.00p17 (not publically released).

V 2.00p18

This release adds support for the LEADER entity, fixed a problem with rotated MTEXT and includes first steps on improved drawing routines (15% faster).

V 2.00p16

This release fixes some problems with the placement of the model in PostScript and PDF export.

V 2.00p15

This was the first official preview. It was released on July 6, 2005, to celebrate the European Parliament's decision against software patents.

Viewer Cheat Codes

You can switch on or change certain features of the viewer by setting Java properties. This is an advanced topic and requires you to start the viewer via commandline or a script.

Basically any Java Property is set by adding a switch of the the format -Dname=valueto the command line directly after the java command, i.e.

java -Dname=value -mx1400m dxfviewer-swing.jar

The -mx1400m sets the maximum amount of memory the viewer is allowed to 1400MBytes.

You can set more then one property by adding more than one such switches:

java -Dname1=value1 -Dname2=value2 -mx1400m dxfviewer-swing.jar

At the end of the line you can add paths of DXF files which will be opened during the startup of the viewer.

Here are the names and possible values of the properties the viewer understands.

General Cheat Codes

Name Value Type Default Description
drawset.clip.limit integer 8 Internal limit of the lines contained in a draw set before a clip short cut is used. This limit will influence drawing speed when there are a lot of VIEWPORTs or the model is drawn when zoomed in. As it is a heuristic value it depends on the model whether changing this value in either direction is an improvement or not.
drawtext.clip.limit integer 8 Internal limit of the lines contained in the characters of a draw text before a clip short cut is used. This limit will influence drawing speed when there are a lot of VIEWPORTs or the model is drawn when zoomed in. As it is a heuristic value it depends on the model whether changing this value in either direction is an improvement or not.
dxf.config.dir directory user-home/.dxfviewer2 The directory where cached information is stored. If set to empty string caching is switched off.
dxf.default.prefs path Defines a path for a file which contains default settings which are used on the first start of the viewer. Such a file can be created by exporting the settings (found in Options menu), but you should load the exported XML file into a text editor and remove lines which contain your personal settings. Just search for your user name.
dxf.excluded.entities string with entity types, separated by , unset Allows to exclude entities from conversion and display. Eg LINE,ARC will exclude all LINE and ARC entities.
dxf.filechooser.preview.size integer 150 Sets the size of the preview image in file open dialogs. This requires previewing to be activated in the viewer’s settings.
dxf.spline.segments integer 20 Minimal number of straight segments to be created between spline knots when approximating splines.
dxf.spline.precision small floating point number 0.1 Relative error allowed when approximating splines with polylines.
view.2d.threshold small floating point number 1e-6 Small epsilon value which defines when a view is 2D. A view is considered to be non-flat when Z is larger than the larger one of X and Y times the given threshold.
fillmode.override boolean unset Normally initial fill mode is set by the value of the $FILLMODE variable of the displayed DXF file. Setting this cheat code overrides this by the given value (true draws certain entities filled, false draws them unfilled or not at all depending on the entity).
polygon3d.filled boolean false No longer supported. See fillmode.override.
ltype.maxrepetitions integer 2000 Maximum number of repititions of a ltype pattern before ltype fitting is skipped and the line is drawn continuously. Only used if ltype.use is true.
ltype.use boolean true If true the LTYPE information of DXF files is used. Switching this off may result in a huge performance boost for files using LTYPEs in a way that a lot of segments are created. See also ltype.maxrepetitions.
obey.extent boolean false If true the model is clipped to the extent defined in the DXF header.
preview.reducelines integer 20000 Maximum number of lines used in print previews.
print.monochrome boolean false If true printing is using only black color. This definitely should be a setting in the print dialog.
print.strokewidth floating point number 0.3 Line width for printing in 1/72".
print.twice.workaround boolean true If true a workaround for printing is invoked, which does print everything in a way that the print progress can be shown.
print.model.unit length unset If this parameter is given printing is done with a fix scale. Overworking the printing is high on the todo list, but for the time until that is finished you can use this parameter to enforce scaled printing. Just define the paper length to which one unit in the file shall print. If a valid non-zero value for this parameter is given, all printing is done with a fix scaling, centering the current view center on the paper. A length is defined by a number and a unit, so 1mm or 1in are examples for possible values of this parameter. The following units are also understood: m (meter), dm (decimeter), cm (centimeter), mm (millimeter), km (kilometer), in (inch), ft (foot), yd (yard), pt (computer printer point, i.e. 1/72"), pp (Anglo-Saxon pica printer point, i.e. 1/72.27000072"). The statistics page of a file gives information of its size, in case you don’t have an idea of the unit. As using a different size means restarting the viewer with a different value of this parameter I agree this is a bad workaround for general cases, but it may still be handy in special ones.
printer.point.size length 1pt Size of one printer point used for fix scale printing. This should be 1pt, i.e. exactly 1/72". But at least my Kyocera printer seems to use pica points, which makes things come out some 0.4% too small. To work around this use a value of 1pp instead. Various units like mm (millimeter) and in (inch) are recognized.
show.text.bg boolean true If true the background of MTEXT entities is displayed when they define one.
svg.side.length positive integer 1000 Virtual size of SVG files created when saving as SVG.
spatial.showHatchBorders boolean false If true HATCH borders are displayed.
view.pick.dragmin positive integer 2147483647 Minimal number of pixel before picking is using a selection rectangle. The default just says: never.
view.zoomin.alpha integer between 0 and 255 128 Color alpha value of the zoomin drag rectangle. Lower values will make the rectangle more transparent, higher values will make it more intransparent.
view.zoom.dragmin positive integer 10 Minimal number of pixel the mouse has to move before zooming happens in zoom-in or zoom-out state.
use.custom.cursors boolean true If true customer cursors are used for some actions, otherwise only standard cursors are used.
wide.line.fill boolean false No longer supported. See fillmode.override.

Debug Cheat Codes

Name Value Type Default Description
debug boolean false If true an additional Debug menu is shown, allowing access to various debug features. Only for viewer frame, not in standard applet.
debug.layouts boolean false If true layout borders are shown, and a PAPERSPACE layout is always created.
debug.mask string consisting of some the following characters (not case-sensitive): TSWEFLA unset There are various debug levels. A level is initially switched on (i.e. the messages for this level are propagated) if the character indicating this level is given here. The debug window can be used to switch levels on and off, too. See Debug Levels below.
debug.print.console boolean false If true prints all debugging information to the console. The debug.mask should be set to something useful, otherwise nothing is printed.
debug.show.window boolean false If true displays an additional window which allows access to various debugging information, see also debug (which allows to show this window via menu), debug.print.console, and debug.mask.
dxf.read.all boolean false If true everything in the DXF file is read. This will slow down reading, and is only useful to get more information while picking or viewing the entity tree.
i18n.action.debug boolean false If true i18n action information is outputted with debug level S (standard message), so debug.mask has to be set to allow message level output, and a debugging channel (either debug.print.console or debug.show.window has to be opened.
spline.showControlPoly boolean false If true control polygons of SPLINEs are displayed.
stats.layer boolean false If true a per-layer statistics is created and added to the statistics page.
stats.linelen boolean false If true information about the accumulated line length of a model is included in the statistics page.

Debug Levels

Character Debug Level Description
T Trace messages Trace messages are the lowest level of debug messages. As they may appear very often putting them out may slow down the program severely.
S Standard debug messages Standard messages are the next level. Usually issued more seldom than trace messages they may appear often enough to still slow down the program noticeably.
W Warning messages Warning messages are issued in situations when there is something going wrong, but in a way that the program can go on without greater problems. They should not appear often.
E Error messages Error messages are usually issued when there was an internal error, which could only be recovered from by returning to a defined state, eg when a file couldn’t be read the viewer does stop loading the file, and shows an error dialog.
F Fatal error messages A fatal error is one from which the program cannot recover, the only possibility is to stop the program. So a fatal error message is usually the last message you are seeing.
L Log messages Log messages are outside of the hierarchy of the above messages (going from Trace to Fatal). The viewer usually does make use of them in very special debugging situation.
A Assert failures Assert failures are issued when an internal assertion is failing.