September 2001 (Version 1.11) ============ HILFE & INFO ============ 0. Inhalt ========= 1. Was ist DXF? 2. Wie mensch den Betrachter benutzt 3. Unterstützte Eigenschaften von DXF / Ausblick 4. Danksagungen 5. Lizenz 6. Fehler 1. Was ist DXF ============== DXF ist ein Datenaustauschformat für CAD-Daten. Es wurde ursprünglich von der Firma Autodesk, Inc. für ihr bekanntes Produkt AutoCAD(tm) vor etwa 15 Jahren entwickelt und ist seitdem mit jeder AutoCAD-Version fort- entwickelt worden. Trotzdem es eigentlich proprietär ist, gibt es heutzutage tausende von Programmen, die von sich behaupten, DXF lesen oder schreiben zu können. Unter ihnen befindet sich nahezu jedes CAD-Programm (wenig erstaunlich), viele DTP- und Malprogramme und manches andere. Dieser Betrachter ist eins davon. 2. Wie mensch den Betrachter benutzt ==================================== 2.1 So geht's los ----------------- Zunächst benötigt mensch mindestens eine zum JDK/JRE 1.1.x (oder neuer) kompatible Java-Version. Das den Betrachter beinhaltende JAR-Archiv muß an den CLASSPATH angehängt werden. Dann kann eine DXF-Datei betrachtet werden durch Eingabe von: java DE.escape.quincunx.dxf.DxfViewer dxffilename Um eine andere Sprache einzustellen, kann die Property dxfview.language gesetzt werden. Z.B. java -Ddxfview.language=de_DE DE.escape.quincunx.dxf.DxfViewer startet den Betrachter mit deutscher Oberfläche, ohne eine Datei zu laden. Standardsprache ist Englisch. Zur Förderung der guten alten Bequemlichkeit empfiehlt es sich sehr, dies in eine Skript- oder Batchdatei zu packen. Mit dem JAR-Archiv sollte eigent- lich auch eine DOS-Batchdatei (namens DV.BAT) und ein Unixskript (namens dv) mitgekommen sein. Diese lassen sich leicht anpassen, damit der Betrachter dann so gestartet werden kann: dv dxffilename Der Betrachter kann einfache DXF-Dateien und mit gzip oder (pk)zip gepackte Dateien laden. Die Dateien brauchen keine spezielle Dateiendung wie z. B. .dxf. Der Betrachter versteht allerdings vermutlich kein binäres DXF (d.h. das Einlesen von binärem DXF ist zwar implementiert, aber bisher mangels Testdaten nie getestet). Eine andere Möglichkeit, eine DXF-Datei zu betrachten, ist wie üblich über das Dateimenü. Der Fortgang des Ladens und Konvertierens der Datei läßt sich mit dem wachsenden Balken unten rechts abschätzen. Es gibt noch zwei Eigenschaften, die über den Kommandozeilenschalter -D gesetzt werden können: dxfview.reducelines -- eine Ganzzahl, die die Anzahl der Linien, die in der reduzierten Darstellung anzeigt werden, angibt. preview.reducelines -- eine Ganzzahl, die die Anzahl der Linien in der Druckvorschau angibt. 0 lässt alle Linien darstellen! 2.2 Bedienung ------------- Bewegen °°°°°°° Der Inhalt der DXF-Datei wird als Drahtgittermodell dargestellt. Dieses kann gedreht, verschoben und sklaiert werden, indem die Maus mit gedrückter Taste über das Betrachterfenster geschoben wird. Die verschiedenen Maustasten bzw. zusätzliches Drücken von Strg (Ctrl) und Umschalt (Shift) wählen die ver- schiedenen Bewegungsmöglichkeiten aus. LINKE Maustaste (und keine Umschalttaste) zum Drehen des Modells. Beim Rotieren erscheint ein Kreis. Am besten stell man sich einen Ball vor, der in diesem Kreis liegt. Bewegt man die Maus innerhalb des Kreises ist es so, als wenn man diesen Ball mit der Maus festhält und dreht. Das Modell bewegt sich entsprechend. Bewegt man die Maus außerhalb des Kreises, wird das Modell entsprechend der Bewegung um die Blickachse gedreht. Nach kurzer Eingewöhnungszeit kann man die Sicht auf diese Weise perfekt kontrollieren. MITTLERE Maustaste (oder LINKE und UMSCHALT) zum Verschieben. RECHTE Maustaste (oder LINKE und STRG) zum Skalieren bzw. ändern der Entfernung. Damit's bei umfangreicheren Modellen etwas schneller geht, läßt sich die Kom- plexität der Darstellung mittels der Auswahl in der oberen rechten Ecke ändern: [Komplett bewegen] bewegt das komplette Modell (langsam) [Maximalbox bewegen] bewegt nur einen Kasten (schnell) [reduziert bewegen] zeigt beim Bewegen nur einen Teil der Linien (Default) Durch vorherige Ansichten kann mittels der zwei Knöpfe [Vorherige]/[Nächste] geblättert werden. Rücksetzen auf [X-Y] setzt die Ansicht auf eine Blickrichtung parallel zur z-Achse zurück, [Y-Z] entsprechend senkrecht zur x-Achse und [X-Z] senkrecht zur y-Achse. Layer °°°°° Die Daten in der DXF-Datei ist auf sogenannten Layern organisiert. Diese können mittels der kleinen Listen unten rechts an- oder abgeschaltet werden. Der Knopf [Invertieren] kehrt die Auswahl um, der Knopf [Alle selektieren] schaltet alle Layer ein. Layer, die in der Datei als 'versteckt' markiert sind, sind auch zunächst unselektiert. Drucken °°°°°°° Es ist prinzipiell möglich, die angezeigte Ansicht zu drucken, indem der entsprechende Punkt im Dateimenü ausgewählt wird. Drucken ist allerdings in den bisherigen Java-Version nur sehr rudimentär unterstützt, also bitte lieber nicht zuviel erwarten. Für alle Nutzer mit Zugang zu PostScript-Druckern gibt es seit neuerem auch die Möglichkeit, PostScript-Dateien direkt zu erzeugen. Diese ergeben einen erheblcih besseren Ausdruck als die Java1.1-internen Druckroutinen. Sprache [Optionen>Sprache] °°°°°°°°°°°°°°°°°°°°°°°°°° Die Sprache läßt sich zwischen Englisch und Deutsch ändern. Englisch ist Standard, aber in Abschnitt 2.1 steht, wie der Betrachter in Deutsch startet. Die Sprache von manchen Systemdialogen wird allerdings nicht geändert. Koordinatensystem [Optionen>KS zeigen/KS-Position] °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° In die Ansicht läßt sich zur Orentierung ein kleines Hilfskoordinatensystem einblenden. Es kann ausgewählt werden, in welcher Ecke es dargestellt wird (Hierbei steht SW für Süd-West etc.). Schwarz & Weiß austauschen [Optionen>Schwarz & Weiß austauschen °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° DXF hat normalerweise einen schwarzen Hintergrund. Wer es lieber anders mag, kann dies durch entsprechendes Auswählen im Optionenmenü erreichen. Meldungen [Info>Meldungen] °°°°°°°°°°°°°°°°°°°°°°°°°° Hier werden die Meldungen und Warnungen vom Dateieinlesen angezeigt. Modell Info [Info>Modell] °°°°°°°°°°°°°°°°°°°°°°°°° Hier werden rudimentäre Informationen über das momentane Modell angezeigt. JVM [Info>Java-Info] °°°°°°°°°°°°°°°°°°°° Hier werden einige Informationen über die Java Virtual Machine angezeigt. Dies kann für Fehlerberichte sehr sinnvoll sein. Beenden °°°°°°° Sollten Sie das Programm tatsächlich jemals wieder verlassen wollen, so geht dies wie üblich über das Dateimenü->Beenden. 2.3 Schriften ------------- Den Betrachter gibt es in zwei Sorten. Das Archiv dxfviewfont.jar enthält verschiedene DXF-Schriften, die ich in meiner langjährigen Be- schäftigung mit dem DXF-Format sammeln und konvertieren konnte. Deshalb kann mensch sich damit auch die TEXTE in den DXF-Dateien ansehen. Aller- dings ist es recht groß (über 520): Das Archiv dxfview.jar enthält keine Schriften und kann demzufolge keine Texte anzeigen, aber ist auch etwas kleiner (ca 350). 2.4 Benutzung als Applet ------------------------ Der Betrachter kann auch als Applet benutzt werden, aber weil die HTML-Browser zur Zeit Java 1.1 nicht so recht unterstützen, klappt das oder es klappt nicht. Ich hab's immer noch nicht so recht getestet. Hier ist ein beispielhafter HTML-Code: 3. Unterstütze Eigenschaften von DXF ==================================== Das DXF-Format ändert sich mit jeder neuen Version von AutoCAD(tm). Dieser Betrachter versteht DXF, wie es von AutoCAD R12 geschrieben wurde. Dies ist auch die meistgenutzte Version von DXF. AutoDesk hat das DXF-Format beginnend mit AutoCAD R13 von Grund auf geändert. Der Viewer wird neuere DXF-Dateien daher nur bedingt richtig darstellen. DXF-Entities °°°°°°°°°°°° Hier nun eine Tabelle aller DXF-Entities (Elemente) und wie sie der Betrachter unterstützt oder auch nicht. ENTITY | Status ----------------------------------+------------------------------------- POINT | unterstützt (nur Punkte) | LINE/3DLINE | unterstützt | CIRCLE | unterstützt | ARC | unterstützt | TRACE | unterstützt | SOLID | unterstützt | TEXT | unterstützt (in der Version | mit Zeichensätzen) | SHAPE | NICHT unterstützt | POLYLINE/VERTEX | unterstützt | 3DFACE | unterstützt | VIEWPORT/VPORT/VIEW | noch nicht unterstützt | DIMENSION | unterstützt | BLOCK/INSERT | unterstützt | ATTRIB/ATTDEF | unterstützt ----------------------------------+------------------------------------- Entity-Eigenschaften °°°°°°°°°°°°°°°°°°°° DXF-Entities können verschiedene Eigenschaften haben. In der folgenden Tabelle steht, ob (und möglicherweise, wie) sie angezeigt werden. EIGENSCHAFT | Status ----------------------------------+------------------------------------- Farbe | unterstützt | Layer | unterstützt | Strichlierung | unterstützt | Linienbreite | noch nicht unterstützt | Hochzug | unterstützt | Schriftart | unterstützt wenn bekannt | (in der Schriftartversion) ----------------------------------+------------------------------------- Ausblick -------- * Als nächstes steht eine Portierung auf JDK2/JFC an (sobald es für Linux in ausreichend stabiler Form verfügbar ist). * Alles, was 'noch nicht unterstützt' gebrandmarkt ist, wartet darauf, endlich implementiert zu werden. * Wenn es eine verbreitete 3D-Schnittstelle gibt, wären schattierte Modelle ein nettes Feature. * Drucken muß wirklich besser werden. * Eines Tages wird Microsoft vergessen sein... 4. Danksagungen =============== * Vielen Dank an die Leute bei Sun, die das JDK umsonst zur Verfügung stellen. * Dieses Programm entstand unter Linux. Also tausend Dank an die Linux- Gemeinde und alle anderen, die daran mitgeholfen haben, für die Zillionen Jahren unbezahlter Arbeit, die dies möglich gemacht haben. * Speziellen Dank an Frank Gerberding für das Raytracen des Logos auf seinem berüchtigten PPC-angetriebenen Amiga. * Dank an Tim Niels van der Leeuw, der mir die Idee eingab, daß Java- Ein- und Ausgabe nicht langsam sein muß. * Vielen Dank an HP Knoll aus Paris für eine binäre DXF-Datei. Nunmehr beherrscht der Betrachter auch dieses eher seltene Format. * Dank an Dietmar Rudolph/Thomas Stürznickel/Leo Weissenberger für das Schreiben des Buches "Der DXF-Standard" (ISBN 3-87686-246-9). Es war unverzichtbar (und vielleicht werde ich eines Tages alle Fehler gefunden haben ;-) 5. Lizenz ========= Nehmen Sie dies Programm, benutzen Sie es, verteil es. Es ist umsonst. Wenn Sie es schaffen, damit Schaden zu verursachen, werde ich staunen, aber nicht dafür aufkommen. Sie benutzen es auf Ihr eigenes Risiko. Es ist möglich, die Quellen zu bekommen. Dazu müssen Sie mir eine Email schreiben und ich werde sie Ihnen vermutlich zur Verfügung stellen. Ich bin einfach neugierig, wer sich dafür interessiert und möchte auch verhindern, daß jemand das ganze mit ein paar Änderungen als eigenes Produkt (oder als Teil eines Programms) verkauft. Hier ist meine Adresse: rammi@quincunx.escape.de Rammi (alias Andreas M. Rammelt) Gliesmaroder Str. 95 38106 Braunschweig Germany Tel. +49-531-343054 6. Fehler ========= Fehler mitteilen °°°°°°°°°°°°°°°° Wenn Sie einen Fehler finden sollten, schaue bitte erst, ob er weiter unten bereits erwähnt wird. Falls nicht, so wäre es nett, wenn Sie einen kurzen Bericht an obige Adresse schicken würden. Bitte fügen Sie das JVM-Info, daß Sie unter dem Menüpunkt [Info>Java-Info] erhalten, bei. Falls möglich und nicht zu groß (<1MByte), schicken Sie bitte die DXF-Datei, die den Fehler verursacht, mit. Vielen Dank! Ich suche noch immer nach AutoCAD-R14 -DXF-Dateien. Falls Sie Zugriff zu AutoCAD haben, könnten Sie diesen Betrachter verbessern helfen, indem Sie von dort eine normale und eine binäre DXF-Datei exportieren und an die oben angegebene Adresse senden. Bekannte Fehler °°°°°°°°°°°°°°° Die mittlere Maustaste funktioniert nicht mit JDK1.2 unter Windows ------------------------------------------------------------------ Das ist ein JDK1.2-Fehler. Bis er behoben ist, verschieben Sie das Modell bitte durch zusätzliches Drücken der Umschalt (Shift) Taste. Das Koordinatensystem erscheint abgeschnitten mit JDK1.2 unter Windows ---------------------------------------------------------------------- Das ist ein JDK1.2-Fehler. Abhilfe ist keine bekannt. Das Betrachterfenster reagiert nicht auf Größenveränderungen auf SGI -------------------------------------------------------------------- Dieser Fehler wurde für SGI-Maschinen mit JDK 1.1.5 (3.1) auf Irix 6.2 berichtet. Abhilfe ist keine bekannt. Das Drucken ist nicht zufriedenstellend --------------------------------------- Das ist ein bekanntes Java 1.1-Problem. Es sollte besser werden, wenn der Betrachter nach Java 1.2 portiert ist. Stand: 1. Februar 1999