Latest change of this page: Monday, 21-Mar-2016 11:30:34 CET
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 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.
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.
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. 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 bandwith (DXF packs very well).
Although the viewer is free, it is not open source. But there are possible ways to get access to the sources, see here for more info.
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.
The DXF Viewer in the form of the jar package as downloadable above
may be used and 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!
Version 2.12.16 is the last one which runs under Java 1.5.
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/.
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 64 MBytes of memory which is not enough for really big files.
If you often run into memory problems you may want to increase the amount of memory the viewer is allowed to use. Read on to learn more.
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.
There are more than one way to allow for more memory. The one which is working on all platforms is to start the viewer with a script, i.e. a .cmd file on Windows or a shell script on Unix. It has to contain just one line:
java -mx256m -jar dxfviewer-swing.jar
Here 256m stands for the amount of memory allowed to the viewer (in this case 256 MByte). I'd recommend not to use more than 3/4 of the total amount of physical memory in your machine.
The following are two example scripts which you may enhance to your needs. Both start the viewer with a maximum amount of 256 MBytes whic should be enough in most cases. Just store them in the same directory as the jar file. Depending on your browser's settings it may be necessary to right-click and select "Save as" to get them stored.
Standard Java installations have only a rudimentary support for image formats. After installing the Java Advanced Imaging Image I/O Tools from the Java Advanced Imaging API you'll find some more output formats in the Save As menu. Just follow the installation instructions and install it as a Java extension.
Also improved is the loading of external images via the DXF IMAGE entity because more input formats are also included.
Although the viewer already draws quite fast in most situations you have the possibility to speed up the drawing by some 30% by using a special library.
The library used is the perfbuffergraphics.jar library by Werner Randelshofer which you can download from here. You'll have to unzip two times until you can extract the file of interest perfbuffergraphics.jar. To be able to use it you'll have to add it to the class path. As this is considered a test feature the easiest way to do that is to call the viewer with an additional argument:
java -mx1500m -cp perfbuffergraphics.jar -jar dxfviewer-swing.jar
(I added the -mx switch for more memory (here: 1500MByte), too, because if you are interested in a speedup you are probably using large models).
Depending on the model expect drawing duration reducements of up to 50%. Considering that in the drawing duration the viewer does not only draw, but also is doing a lot of transformations and clipping this is enormous. And the boost is gained by plain Java code, so one would wish that the internal implementation of Java would provide the optimizations used in Werner's library implemented in machine code.
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|
|3DSOLID||ignored||Encrypted entity introduced in AutoCAD R13|
|ACAD_PROXY_ENTITY||ignored||Proxy entity usually in binary DWG format|
|ACIDBLOCKREFERENCE||supported||Entity inserted by AutoDesk Inventor package.|
|BODY||ignored||Encrypted entity introduced in AutoCAD R13|
|BLOCK||supported||external (XREF) blocks are not yet supported|
|ELLIPSE||supported||introduced in AutoCAD R13|
|HATCH||supported||introduced in AutoCAD R13
AutoCAD 2000 has notorious problems with hatches, and is known to create files with broken hatches, which may look bad in the viewer (and in newer AutoCAD releases).
|HELIX||ignored||introduced in AutoCAD 2007|
|IMAGE||supported if image format is understood||introduced in AutoCAD R13. DXF references the image file, so it has to be available. See here to learn how to support more image formats.|
|LEADER||supported||introduced in AutoCAD R13|
|LIGHT||ignored||introduced in AutoCAD 2007|
|LWPOLYLINE||supported||introduced in AutoCAD R13|
|MESH||ignored||introduced in AutoCAD 2013|
|MLINE||supported||introduced in AutoCAD R13|
|MTEXT||supported||introduced in AutoCAD R13
fonts may be substituted if not available
background coloring is not yet supported
|OLEFRAME||supported||introduced in AutoCAD R13
renderung uses the binary preview data and not OLE
|OLEFRAME2||suported||introduced in AutoCAD R13
renderung uses the binary preview data and not OLE
|POINT||supported||only as dot|
|RAY||ignored||introduced in AutoCAD R13|
|REGION||supported||Encrypted entity introduced in AutoCAD R13|
|SECTION||ignored||introduced in AutoCAD 2007|
|RTEXT||ignored||introduced in AutoCAD R13|
|SPLINE||supported||introduced in AutoCAD R13|
|SUN||ignored||introduced in AutoCAD 2007|
|SURFACE||ignored||introduced in AutoCAD 2007|
|TABLE||supported||introduced in AutoCAD 2006|
|TEXT||supported||fonts may be substituted if not available|
|TOLERANCE||supported||introduced in AutoCAD R13|
|UNDERLAY||ignored||introduced in AutoCAD 2006|
|WIPEOUT||supported||introduced in AutoCAD R13|
|XLINE||ignored||introduced in AutoCAD R13|
|DXF Feature||Support Status||Comments|
|Color||supported||DXF can contain colors in several forms, which are all supported.|
|Line Styles||supported||Even extended line styles containing texts and shapes are supported, if the associated SHX files are available. Line styles are supported for varying width lines and extruded lines.|
|Line Width||supported||Line width is only defined for POLYLINE and LWPOLYLINE entities in model space. It may vary over the length, which is also supported.|
|Line Weight||ignored||Line Weight is a constant view width (on screen or printer) independent from zoom factor.|
|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. All of these are supported.|
The short version:
Although the viewer can read various packed formats, you should pack your files with zip.
I ran some tests and measured the overhead needed to unpack the files during the read process, and it seems that for gzip-packed files the standard library uses an algorithm implemented in Java, while for files packed with zip a faster local library implementation is used (the special package which is used for unpacking bzip2 files is implemented in Java). Because jar files are nothing else than zip files with some special content having a fast unzip algorithm in the standard library is something definitely needed, because it is to fear that a Java implementation would be a lot slower.
More than most people probably want to know:
Here's a PDF which shows the results of my tests.
My name is Rammi and I'm working as a freelancer. I'm living in the city ofBraunschweig in Germany.
If you can provide problematic DXF files, have questions, suggestions, or similar please click on the following link to send an eMail:
If you send DXF files please pack them prior to sending to save bandwidth.
I'm cooperating with Wout de Zeeuw who has written a
3D DXF Viewer and
library for .NET based on C#.
Click on the screenshot to see it full size.
We have a friendly competition running who is providing the better DXF Viewer. The nice thing about this is that everybody is winning in this competition: we from our mutual feedback and you from the improvements.
The code also uses an excerpt from the Apache Batik project to support WMF rendering.
The viewer uses the FileDrop class from Robert Harder. Thanks to him!
Lots of people helped with feedback, ideas and test data. Special thanks go to
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:
THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ITS CREATOR ANDREAS M. RAMMELT BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Please read on to learn of the licenses of included 3rd party software.
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 by Kohsuke Kawaguchi from the Apache Ant project to read files packed with the bzip2 algorithm. It also uses code from the Apache Batik project for WMF rendering.
Both Ant and Batik are distributed under the Apache Software License, Version 2.0 (click on the link to learn more).
The DXF Viewer makes use of the Balloon Tip library. It 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. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE BALLOON TIP DEVELOPER TEAM BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Java is a registered trademark of Sun Microsystems, Inc.
AutoCAD is a registered trademark of AutoDesk, Inc.
Inventor is a registered trademark of AutoDesk, Inc.
Windows is a registered trademark of Microsoft, Inc.
All other registered trademarks are the property of their respective owners.
Latest release comes first.
Fixed incorrect line type fitting for line types with adjacent dashes.
Added support for extended line styles.
Fixed single dots sometimes not drawn problem.
Fixes possible NullPointerExceptions.
Version step mirrors internal change.
Added support for extended layer colors.
Fixed spurious 0 <= 0 / ConcurrentModificationException bug.
Slightly reduced memory footprint.
Fixed problem which made texts run sometimes too wide or too narrow.
Fixed various applet problems:
Fixes error "getCharSet() is not yet implemented for TrueTypeFont!";
Obfuscation problems induced subtle errors changing colors and views.
Improved SHX font encoding handling.
Fixed broken umlauts.
Minor improvement for drawing speed.
Added close buttons for tabs, and extended tab context menu to allow for closing all or all other tabs.
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.
A bug which made some Bigfont SHX fonts appear incorrectly when used in vertical text mode was fixed.
Fixes rare ArrayIndexOutOfBounds exception thrown under special circumstances in applet.
Fixed initialization problem in applet.
Fixed rare NullPointerException on startup.
Fixed problem with occasional hanging for some seconds on Windows during first file load.
Fixed bug which made reading of some binary DXF files fail.
Added possibility to select Plug&Feel.
This release is optimizing text wrapping so it works better with eastern languages.
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.
Bugfix release for a bug in automatic update which didn't recognize it was already updated.
This is a bugfix release which fixes a bug in line style assignment which resulted in wrongly scaled dashes under rare circumstances.
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.
The following bugs were fixed:
This is a bugfix release that fixes a NullPointerException which appeared when 3rd party DXF files contained broken MTEXT entities.
This release overworks color handling. Color now should be rendered more similar to AutoCAD.
This release improves support for the IMAGE entity.
This release adds support for the IMAGE entity.
Another bugfix for the applet, which couldn't find fonts on the server if they had the wrong case.
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.
Allowed the viewer to be more generous with files with small format errors.
This improves support for layouts, which were sometimes drawn incorrectly (usually empty).
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.
This fixes a bug with layouts, which where shown incorrectly (often empty) in special circumstances.
This fixes showing an error on files which contained MTEXT font escapes containing Windows paths.
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.
This release fixes a bug which made perspective views appear too small.
This release brings small improvements in drawing speed.
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.
Fixes a problem with automatic updates under Windows. The problem appeared when updating without restart, and showed as various strange behaviors.
Fixes problem with new versions using numeric %% text constants resulting in "byteToChar() is not suitable for multi-byte encodings" error.
Fixes incorrect rendering of some special SHX characters.
This adds support multiline attributes.
This release fixes several HATCH related problems.
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.
Fixed incorrectly empty viewports.
Fixed incorrect placement of MLINE with non-default extrusion vector.
This improves the interline spacing in multiline MTEXT entities.
Adds background colors for MTEXTs.
This fixes problems with rational splines, which were not calculated correctly.
Added support for entity reordering, so drawing order of entities may be different from file order.
Added statistics for entities in paper space.
Fixes a bug in HATCH rendering code which resulted in a NullPointerException under special circumstances.
Now the ACAD_TABLE entity is also supported.
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.
This removes a spurious problem introduced in the latest version.
This fixes various memory related problems, and a possible problem when loading several files concurrently.
Removed the "Add File" button because adding a file is not possible any more.
Fixed incorrect display of named colors.
This fixes a bug with charset ISO-8859-11 which seems to miss in JVM version 1.60.0_22.
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.
Fixes broken text search in 2D views.
This is a bugfix release.
Fixes various text and font related problems:
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.
Added indicators for toolbar buttons with context menu.
Fixed problem in applet's paper display where the paper was shown opaque.
Fixed problem with view not centering on current match when searching in 3D mode.
This release fixes two bugs:
Fixed bug introduced in previous release which avoided zooming on texts found during search.
Fixed bug that search results were placed incorrectly for all but the initial view.
Fixed update problem.
This release adds text search capatibility.
This release fixes problems in selecting the correct default view which is shown after viewer startup.
This release clarifies an error message given for zip files which the Java libraries can't read.
This release repairs some problems with internationalization resources when using Java 6.
Added marker for unsupported entities to entity statistics panel.
Does no real changes to the viewer, but adds support for two applet parameters.
This version fixes a bug with perspective viewports where the field of view was chosen incorrectly.
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.
Fixes slow startup especially for the applet.
This release adds support for the MLINE entity.
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.
Fixes an error in EED display introduced in 2.03.07.
Reads files with a lot of Extended Entity Data faster.
Adds display of Extended Entity Data to pick info.
This release fixes two minor errors:
Fixed perspective and orthogonal projection state not in main toolbar.
Minor addition to MTEXT information display: now showing extended text, too.
Adds support for codepages SJIS and CP932.
Adds a display of the effective layer for selected entities (entity picking must be enabled in the settings).
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.
This version fixes a problem that LEADER arrows were in rare circumstances rendered too large.
This version adds support for default fonts which are used when a font referenced by the file is not found.
This release adds support for more codepages. The following codepages where added:
Furthermore loading of files with unavailable fonts is now a little bit faster.
This fixes a bug with automatic update, which was not workin at all.
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.
No longer a preview, because the viewer is already quite useful.
This version introduces some new features and fixes minor bugs.
Overworked display of viewports to get better results.
Added support for layouts included in the DXF file.
Adds support for the REGION entity.
Bugfix release thanks to Enrico Gallo:
Corrected bug in bigfont support where bigfonts were wronly mapped.
Fixed several problems with text placement, especially for texts beginning or ending with spaces.
Improved bigfont support.
Fixed bug when text was not displayed if one of the used font was broken.
Fixed minor problems with text placement.
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.
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!
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).
Minor improvements when opening and saving files by adding file filters to restrict the choices.
This fixes a minor hatching bug.
This is mainly a bugfix release. The following issues are targeted:
This fixes an error where texts were not displayed when the font location settings were empty.
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
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).
Fixed a problem which kept settings in the print settings dialog from having a effect.
Fixes a bug introduced in version 2.00p71 which kept horizontal and vertical lines from being drawn.
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.
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.
Another bugfix release:
Lines with a linetype scaling of zero were not displayed in former releases, but they are now.
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.
This is a bugfix release:
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).
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.
Fixes -- once again (sigh) -- the bug which removed the history buttons from the 2d view toolbar.
Fixes the bug which removed the history buttons from the 2d view toolbar.
Fixes some problems which memory which is not released when a model view is closed.
Various minor improvements and a little bit of brush up for the new load mode introduced in p59.
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.
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.
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-Aliasing||min. Text Height||Redraw 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.
Fixed problem with zoom indication rectangle missing in 3D view.
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|
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.
Fixed problem with too many spline fit points created.
Fixed problems which sometimes resulted in NullPointerExceptions.
Fixed ugly flickering during load.
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.
Fixed positioning of DIMENSION if it is offset in z direction.
Fixed NPE when codepage is undefined, and IllegalPathStateError on HATCH w/o boundary definition.
Fixed problem with unavailable codepage ANSI_869 when running Java 5 under Windows.
Enhanced AutoCAD 2004/2006 compatibility.
Fixes a problem with ARC entities where the start angle is the same as the end angle.
Fixes a class cast exception when adding a 3D file to a 2D view.
This release introduces some minor performance optimizations and fixes the following bugs:
This release only incorporates an internally refactoring needed for another project.
Added Recent Files feature.
Fixed bug resulting in sometimes incorrect HATCH placement.
Fixed bug resulting in sometimes incorrect 2D POLYLINE placement.
Fixed resource exceptions in PS/PDF output dialogs.
Added mnemonics and accelerators.
Fixed infinite loop with buggy DXF files.
Fixed memory problem with lines with too many dashes.
Fixed problem with underlined text in 3D view.
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.
Added some bells and whistles for 2D rotation.
Fixed problem which resulted in line drawn to upper left corner of view window in rare circumstances.
Improved printing and vector format output by allowing floating point coordinates for these tasks.
Minor bug fixes.
Minor bug fixes.
Added rotation for 2D files.
Fixed various line type problems.
More drawing optimizations.
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).
This release adds support for the LEADER entity, fixed a problem with rotated MTEXT and includes first steps on improved drawing routines (15% faster).
This release fixes some problems with the placement of the model in PostScript and PDF export.
This was the first official preview. It was released on July 6, 2005, to celebrate the European Parliament's decision against software patents.
I'm currently working to add DWG read support to the viewer. Supported DWG versions are ranging from release R13 to release 2015, supported features are basically the same as for the current viewer. As this is a vast amount of work the first release of the then no longer "DXF Viewer" is expected in Summer 2015.