February 1999                                                  (Version 1.03)
                              ===========
                              HELP & INFO
                              ===========
                              

 


                               0. Content
                               ==========

         1.  What's DXF?
         2.  How to use the viewer
         3.  Supported DXF features / Outview
         4.  Acknowledgements
         5.  License
         6.  Bugs





                              1. What's DXF
                              =============

   DXF is an exchange format for CAD data.  It was originally created by
Autodesk, Inc. for their well-known product AutoCAD(tm) some 15 years ago 
and developped further with every new AutoCAD(tm) version.

   Nevertheless today there are several thousands of applications around 
which claim to import or export DXF. Among them are nearly every CAD program 
(of course), many DTP and paint programs and lots of others. This viewer is 
one of them.



                          2. How to use the viewer
                          ========================

                           2.1 Getting started
                           -------------------

   You will need a JDK 1.1.x compatible version of Java to run this program.

   Add the jar archive with the viewer classes to your class path. Then you
can view a DXF file by typing
        java DE.escape.quincunx.dxf.DxfViewer dxffilename

   If you want to preset the language you can set the property dxfview.language, 
e.g.
        java -Ddxfview.language=de_DE DE.escape.quincunx.dxf.DxfViewer 
will start the viewer with german user interface without loading a file. 
The default is English.

   For convenience it's strongly recommended to put this into a script or
batch file. You should have gotten a DOS batch file (named DV.BAT) and an
Unix script (named dv) with the jar archive. With that you can start the 
viewer using 
        dv dxffilename

The viewer can load plain DXF files and DXF files packed with gzip und 
(pk)zip. The files don't need a special extension like .dxf. The viewer 
probably does not understand binary DXF (i.e. the reading of binary DXF
is implemented but has never been tested due to lack of test data).

   The other way of viewing a file is to load it via the File menu -- as 
usual. The progress of file loading and converting is shown by a growing 
(or sometimes moving) bar.


                               2.2 Handling
                               ------------

                                 Moving
                                 °°°°°°
The content of the DXF file is shown as a wireframe model. You can rotate,
move, and scale this model by dragging the mouse over the view window
('dragging' means moving the mouse while pressing a mouse button).
Use different mouse buttons or press CTRL or SHIFT for the different
actions. The active action is shown in the status line below the model
view window.

Use LEFT   mouse button (with no modifier key) to rotate the model.
           When rotating, there is a circle shown. You can image a
           trackball lying in this circle. When you drag in the circle,
           you rotate the model like dragging the trackball with the
           mouse. If you drag outside the circle, you rotate the
           model around the view axis. Once you get used to this it
           allows for a perfect control of the view.
Use MIDDLE mouse button (or LEFT with SHIFT) to move the model.
Use RIGHT  mouse button (or LEFT with CTRL) to scale the model and
           to change the distance to the model.


You can change the complexity of the model shown while moving with the
choice in the top right corner.

[Move full]    All lines are drawn while moving (slowest)
[Move BBox]    Only a bounding box of the whole model is moved (fastest)
[Move reduced] Only some of the lines are moved (default)

   
You can step through previous points where you released a mouse button
with the two buttons named [Previous]/[Next].
Reset to [X-Y] resets the view to a view direction parallel to the z axis,
         [Y-Z] parallel to the x axis and 
         [X-Z] parallel to the y axis.


                                 Layer
                                 °°°°°
The data in the DXF file is put on layers. You can switch them on and
off using the layer list in the bottom right corner. Use the buttons
[Invert] to invert the momentary selection and [Select all] to select 
all of the layers. Layers marked hidden in the DXF file are initially 
hidden.


                               Printing
                               °°°°°°°°
It is possible to print the represented view using the Print item in
the File menu. Printing isn't supported very well in the known Java
versions so don't be too sad if you do not get what you expected.


                     Language [Options>Language] 
                     °°°°°°°°°°°°°°°°°°°°°°°°°°°
You can switch the language of the viewer between English and German. 
English is the default, see in section 2.1 how to start the viewer with
German user interface. The language is not changed in some system dialogs.


              Swap black & white [Options>Swap Black & White]
              °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
DXF has a black background by default. If you prefer a white background
you can switch to that by using the Options menu.

                    Message Log [Info>Message Log]
                    °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
Here you can see the messages and warnings from the file read process.

                       Model Info [Info>Model]
                       °°°°°°°°°°°°°°°°°°°°°°°
Shows you some rudimentary information about the current model.

                        JVM [Info>Java Stuff]
                        °°°°°°°°°°°°°°°°°°°°°
Shows you some info about the Java Virtual Machine you are running.
This may be useful for bug reports.

                               Leaving
                               °°°°°°°
In case you ever want to leave the program you can use Exit in the File menu.



                              2.3 Fonts
                              ---------

   The viewer comes in two flavours. The archive dxfviewfont.jar contains
different DXF fonts I was able to collect and is therefore able to show
texts. But it is BIG (more the 700k).
   The archive dxfview.jar does not contain any fonts and can show no 
text, but it's much smaller (about 110k).


                           2.4 Use as Applet
                           -----------------

   It is possible to use the viewer as an Applet, but because Java 1.1 
isn't supported very well by current browsers this may or may not work.
Here's an example HTML code:

<applet archive="dxfviewfont.jar" code="DE.escape.quincunx.dxf.DxfViewer" 
        width="500" height="400">
<param name="file" value="SHUTTLE.dxf">
</applet>



                        3. Supported DXF features
                        =========================

   The DXF format is changing with every new release of AutoCAD (tm). 
This viewer understands DXF as written by AutoCAD R12. This is the
most wide-spread version of DXF.
   


			    DXF entities
                            °°°°°°°°°°°°
                             
This is a table with all DXF entities and wether the viewer supports them
or not.

            ENTITY                |           support status
----------------------------------+-------------------------------------
            POINT                 |           supported (only dots)
                                  |
            LINE/3DLINE           |           supported
                                  | 
            CIRCLE                |           supported
                                  |
            ARC                   |           supported
                                  |
            TRACE                 |           supported
                                  |
            SOLID                 |           supported
                                  |
            TEXT                  |           supported (in font version)
                                  |
            SHAPE                 |           NOT supported
                                  |
            POLYLINE/VERTEX       |           supported
                                  |
            3DFACE                |           supported
                                  |
            VIEWPORT/VPORT/VIEW   |           not yet supported
                                  |
            DIMENSION             |           supported
                                  |
            BLOCK/INSERT          |           supported
                                  |
            ATTRIB/ATTDEF         |           not yet supported
----------------------------------+-------------------------------------



                          Entity attributes
                          °°°°°°°°°°°°°°°°°

   DXF entities can have different properties. Here's a table if (and 
possibly how) they are supported.

            PROPERTY              |           support status
----------------------------------+-------------------------------------
            color                 |           supported
                                  |
            layer                 |           supported
                                  |
            line types            |           not yet supported
                                  |
            line width            |           not yet supported
                                  |
            extrusion             |           supported
                                  |
            font                  |           supported when known (in
                                  |           font version)
----------------------------------+-------------------------------------
                                  


                             Outview
                             -------

*  The very next is a port to JDK2/JFC (as soon as it's available for
   Linux in a stable form).

*  Everything above labeled 'not yet supported' waits to get implemented  :-)

*  Make the number of lines shown in reduced mode configurable.

*  When there's a common 3D API for Java available shaded models should
   be a nice feature.

*  Printing should get better.

*  One day Microsoft will be forgotten...



                        4. Acknowledgements
                        ===================

* Thanks to the guys at Sun for giving away the JDK for free.

* This program was developped under Linux. So thanks to the Linux community
  and everybody else who participated for the zillion of years of free work
  which made this possible.

* Special thanks to Frank Gerberding for raytracing the about image on his
  famous PPC powered Amiga.

* Thanks to Tim Niels van der Leeuw who gave me the idea that speeding up
  Java I/O is possible.

* Many thanks to HP Knoll from Paris for supporting me with a binary DXF
  file. Now the viewer understands this rare format, too.

* Thanks to Dietmar Rudolph/Thomas Stürznickel/Leo Weissenberger for writing
  the book "Der DXF-Standard" (ISBN 3-87686-246-9). It was really 
  unrenounceable (and maybe one day I will have found all the errors  ;-)



                            5. License
                            ==========

   Take this program, use it, distribute it.  It's free.  If you are able
to create any damage using it I will be astonished but I will not compensate 
for it.  It's your own risk.

   It's possible to get the sources.  Just write me an email and I will
probably send them to you.  I am just curious who might be interested and
I don't want someone to make some changes and then sell the result as
(or as part of) a commercial product. Here's my address:

                      rammi@quincunx.escape.de

                      Rammi (aka Andreas M. Rammelt)
                      Gliesmaroder Str. 95
                      38106 Braunschweig
                      Germany
                      Tel. +49-531-343054


                               6. Bugs
                               =======

                             Bug Reporting
                             °°°°°°°°°°°°°

   If you find a bug first check if it is mentioned below. If not, please
take the time to report it to the address given above. Please add the 
JVM info you can get via the [Info>Java Stuff] menu. If it is possible 
and they are small enough (<1MByte) attach the DXF file with which you
discovered the error. Thank you.

   I am still looking for AutoCAD R14 DXF files. If you have access to 
AutoCAD you can help to improve the DXF Viewer by exporting at least
one normal and one binary DXF file and send them to the given address.

                              Known Bugs
                              °°°°°°°°°°

Middle mouse button not supported with JDK1.2 on Windows
--------------------------------------------------------
This is a bug in JDK1.2. 
Please use the [Shift] key to move the modell until this bug is fixed.

Coordinate system is clipped with JDK1.2 on Windows
---------------------------------------------------
This is a bug in JDK1.2.
No known workaround.

Viewer Window does not resize on SGI
------------------------------------
When the window is resize the content is not changing on SGI machines. This is 
reported against the 1.1.5 (3.1) JVM on Irix 6.2. 
No known workaround.

Printing is not satisfiing
--------------------------
This is a known Java 1.1  problem. It should get better when the viewer is ported
to Java 1.2.
No known workaround.




Released: February 1st, 1999

