AutoSketch

Aus Colliseum
Version vom 29. April 2019, 10:04 Uhr von Vdengineering (Diskussion | Beiträge) (→‎Weitere Informationen)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Bis zur Programmversion 2.1 war AutoSketch das Zeichenprogramm für die Unfallrekonstruktion. Die ersten Versionen liefen noch unter DOS, bevor dann die 16-bit-Windowsversionen 1.0 und 2.0/2.1 herauskamen. Die Version 2.x war sogar mittels Makrosprache programmierbar, wovon etwa bei der Venus Toolbox und beim Zeichnen von Weg-Zeit-Diagrammen mit Venus TimeTable massiv Gebrauch gemacht wird.

Mit der Umstellung auf 32 bit wurde das Bedienungskonzept dann radikal geändert und die Unterstützung der Makrosprache entfernt. Gleichzeitig gab es einen Sprung von der Versionsnummer 2.1 auf 5.0. Ab der Version 6.0 (die kurz darauf, sozusagen als kostenpflichtiges Bugfix, erschien) läuft das Programm dann wieder sehr stabil. Die Beliebtheit des Programms in der Unfallrekonstruktion hat durch diese Änderungen allerdings stark gelitten. Das Zeichnen von Weg-Zeit-Diagrammen ist mit neueren AutoSketch-Versionen (5.0 und höher) de facto unmöglich geworden.

Es zeichnet sich der Einsatz von DesignCAD als neuer Standard in der Unfallrekonstruktion ab. DesignCAD ist mit einer BASIC-ähnlichen Makrosprache programmierbar, was Karl Kircher dazu veranlasst hat, die Venus-Makros (und weitere) auf DesignCAD zu portieren.

Ältere AutoSketch-Zeichnungen (*.SKD) können mit neueren Versionen des Programms nicht mehr geöffnet werden. Abhilfe schafft das frei erhältliche AutoSketch 2.1fc (FC = file conversion), eine abgestrippte AutoSketch-Version, mit der man SKD-Zeichnungen öffnen und im neuen SKF-Format speichern kann, das sich dann wieder mit neueren AutoSketch-Versionen öffnen lässt.

Probleme mit AutoSketch 2.1

64-bit-Betriebssysteme

AutoSketch 2.1 ist ein 16-Bit-Programm, das unter 64-Bit-Windows (egal welche Version) nicht direkt läuft. Sie müssen erst eine 32-Bit-Umgebung auf einer virtuellen Maschine einrichten, dann können Sie dort AutoSketch 2.1 installieren. Dies gilt insbesondere ab Windows 8, bei dem die Unterstützung des XP-Modus weggefallen ist. Details dazu finden Sie weiter unten. Einfacher ist es, einen Rechner mit 32-Bit Windows 7 zu verwenden, das es noch bei verschiedenen Anbietern zu kaufen gibt (Stand 06/2017). Auch das aktuelle Windows 10 Pro in der 32-bit Version bedient Autosketch klaglos.

Programmabsturz

Es gibt im wesentlichen drei Ursachen für den Programmabsturz (GPF = General Protection Fault = Allgemeine Schutzverletzung), und zwar:

  • Patch auf Version 2.1c ist nicht eingespielt
  • Probleme mit den virtualisierten Coprozessor win87em.dll
  • zu hohe Monitorauflösung

Die gute Nachricht lautet: Für jedes dieser Probleme gibt es eine Lösung.

Absturz beim Drehen eines Objekts

Beim Drehen eines Objekts erscheint die Meldung

 General Protection Fault at 00A4:04A8

Der Fehler beruht u.U. auf einer von 100% abweichenden Schriftgröße bei großen Monitoren und kann durch Umschalten auf Standardschriftgröße (100%) behoben werden.

Patch einspielen

Für Windows-Version mit NT-Kernel (d.h. alles ab Windows 98) muss AutoSketch auf die Version 2.1c2 upgedatet sein. Es gibt zwei mögliche Vorgehensweisen:

  • Ist AutoSketch bereits auf einem älteren Rechner installiert, so installiert man nicht neu, sondern überspielt das komplette Programmverzeichnis (Standardpfad: C:\Wsketch2) auf den neuen Rechner und legt im Startmenü oder auf dem Desktop eine Verknüpfung zu der Programmdatei sketch.exe an. Weitere Maßnahmen sind nicht erforderlich.
  • Muss AutoSketch 2.1 komplett neu installiert werden (etwa weil der alte Rechner einen Festplattencrash hatte), so muss direkt nach der Installation der Patch auf die Version 2.1c2 eingespielt werden, den man hier herunterladen kann.

Ab Windows 7 sollte AutoSketch im Kompatibilitätsmodus für Windows XP SP3 gestartet werden: Rechtsklick auf die Datei Sketch.exe, Eigenschaften aus dem Kontextmenü und dann auf das Registerblatt Kompatibilität gehen. Ohne diese Einstellung stürzt das Programm möglicherweise mit der Fehlermeldung "NTVDM.exe reagiert nicht" ab. (Die NT Virtual DOS Machine ist die Umgebung, in der 16-Bit-Programme ausgeführt werden.)

Virtualisierter Coprozessor

Die älteren unter uns werden sich vielleicht noch an den mathematischen Coprozessor 80287 erinnern: Anfang der 90er Jahre gab es auf dem Mainboard neben dem Hauptprozessor einen freien Sockel, in den man den sündhaft teueren mathematischen Coprozessor einstecken konnte. Die Programme führten dann unterschiedlichen Code aus, je nachdem, ob der Coprozessor vorhanden war oder nicht: War er vorhanden, wurden die entsprechenden Berechnung auf dem mathematischen Coprozessor ausgeführt, war er nicht vorhanden, wurden die Gleitkommaberechnungen mit anderem Code auf dem Hauptprozessor ausgeführt.

Seit dem 80386 haben sämtliche Prozessoren integrierte Floating Point Units, sodass diese Unterscheidung längst überflüssig ist. Dennoch muss der Coprozessor alten 16-Bit-Programmen weiterhin vorgegaukelt werden, und dies geschieht mit der Laufzeitbibliothek win87em.dll, die den x87er Coprozessor emuliert. Die meist sporadisch (und nur auf bestimmten Rechnern) auftretende Fehlermeldung lautet:

Sketch.exe caused a General Protection Fault in
modul WIN87EM.DLL at 0001:02C9.

Die Lösung besteht dahin, dem 16-bit-Subsystem vorzugaukeln, dass der Computer keinen mathematischen Coprozessor hat (und deshalb der Alternativcode ausgeführt werden muss), indem man die Datei win87em.dll »versteckt«:

Für jede 16-Bit-Umgebung gibt es eine Art autoexec.bat (die Älteren unter uns werden sich erinnern ...), die vor dem Start der Umgebung ausgeführt wird. Diese "Batchdatei" nennt sich (bis Windows 7) autoexec.nt und befindet sich in C:\Windows\system32. Unter http://www.conradshome.com/win31/archive lädt man sich nun Winfloat.exe herunter, ein selbstentpackendes Archiv, das u.a. den einen DOS-Treiber namens hide87.com enthält. Den kopiert man ins Verzeichnis C:\Windows\system32 und fügt in autoexec.nt folgende Zeile ein:

 lh %SystemRoot%\system32\hide87.com

Anschließend den Rechner neu starten, und der Fehler ist behoben. In puncto Performance sind durch den Wegfall des Coprozessores bei komplexeren Zeichnungen (mit Fotos und Füllmustern) allerdings Einbußen zu beobachten.

Achtung: Dieser Trick funktioniert nicht auf den neueren virtuellen Maschinen von VMware, weil die alternativen Gleitkommaberechnungen (ohne Coprozessor) zu langsam ablaufen, sodass kein flüssiges Arbeiten mehr möglich ist. Ein Workaround ist derzeit nicht bekannt.

Hohe Monitorauflösungen

Die 16-bit-Version 2.1 läuft auch auf neueren Rechnern (mit 32-Bit-Betriebssystem) bis einschließlich Windows 7 sehr stabil. Es gibt aber oft ein Problem mit hohen Monitorauflösungen (typischerweise bei ≥1600 Pixel Breite), das bei der Vollbildanzeige von AutoSketch zum Absturz führt. Dies äußert sich z.B. darin, dass AutoSketch abstürzt, wenn man etwa ein Fahrzeug drehen will. Sollte dies der Fall sein – es hängt offenbar von der Grafikkarte und deren Treiber ab – gibt es mehrere Lösungen:

Umschalten auf größere Schrift
Windows XP
Windows XP, Umstellen

Das Problem tritt anscheinend nur bei der üblichen, kleinen Monitorschrift von 96 dpi auf. Sobald man eine größere Schrift wählt (bei höheren Monitorauflösungen für ältere Herren eigentlich ein Muss), ist das Problem behoben. Am besten klickt man dazu mit der rechten Maustaste auf den Desktop und wählt "Eigenschaften" aus dem Kontextmenü. Dann erscheint das Dialogfeld Eigenschaften von Anzeige

Windows XP

Dort wählt man im letzten Registerblatt die Schaltfläche Erweitert.., womit das Dialogfeld Erweiterte Eigenschaften von Anzeige erscheint. Dieses sieht, abhängig vom Grafikkartentreiben, auf nahezu jedem Rechner anders aus. Man sucht nach dem Registerblatt Allgemein, auf dem die Schriftgröße einzustellen ist Dort wählt man entweder "Große Schriften 120 dpi" oder stellt selbst einen Wert im Bereich 96 – 125 dpi ein. Anschließend muss der Computer neu gestartet werden, und das Problem ist behoben.

Windows 7
Windows 7

Rechter Mausklick auf den Bildschirm > Eigenschaften aus dem Kontextmenü wählen. Dann links unten auf Anzeige klicken und 125% große Schrift einstellen.

Anpassen des Programmfensters

Wer die Bildschirmschriften nicht umstellen mag, kann stattdessen die Größe des Programmfensters von AutoSketch anpassen, sodass die "kritische" Größe nicht mehr erreicht wird. Das stört bei hoher Bildschirm-Auflösung kaum, da der Arbeitsbereich des Programmfensters ist immer noch groß genug ist. Beim nächsten Programmstart hat sich AutoSketch die Fenstergröße gemerkt. Man kann die Größe des Programmfensters auch direkt in der INI-Datei Sketch.ini anpassen z.B. Width=1350 und Height=900. (Das Ganze funktioniert auch unter Vista.) Vor dem versehentlichen Verstellen der Fenstergröße von AutoSketch kann man sich durch den AutoSizer schützen.

In seltenen Fällen hilft es, bei den Eigenschaften der Verknüpfung zum Programm AutoSketch die Kompatibilitätseinstellungen zu ändern, also z.B. 256-Farben-Vollbildmodus einzustellen.

Eine weitere Fehlerquelle sind in diesem Zusammenhang selbst erstellte Toolboxen, wenn diese bei höheren Monitorauflösungen abgespeichert werden. Wenn man also eigene Toolboxen erstellt, muss man diese bei einer niedrigen Bildschirmauflösung abspeichern!

Farbausdruck, Haarlinien

Die Probleme beim Farbausdruck – Vertauschen der Farben – lassen sich hingegen durch Einsatz eines PostScript-Druckers (bzw. eines virtuellen PostScript-Ports bei Tintenstrahldruckern) umschiffen. Eine Testzeichnung mit verschiedenen Objekten (Haarlinien, Füllungen, Schrift) in allen 255 AutoSketch-Farben findet man hier.

Generell empfiehlt sich eh der Einsatz eines PostScript-Druckers, weil nur der akzeptable Strichstärken für Haarlinien erzeugt. Bei Schwarz-Weiß-Druckern werden die hellen Farbtöne bei Haarlinien und Schriften teilweise nicht gerastert; sie erscheinen voll schwarz. Wenn eine Rasterung gewünscht wird, hilft es mitunter, die PostScript-Einstellung "optimale Geschwindigkeit" auf "optimale Portierung" umzustellen.

Bitmaps

AutoSketch lädt alle Grafiken (insbesondere auch Digitalfotos) als unkomprimierte Windows-Bitmaps in die Zeichnung, unabhängig davon, ob man die Rastergrafik über die Zwischenablage in die Zeichnung einfügt oder aber über das entsprechend Werkzeug einliest. Dadurch werden Zeichnungen mit Bitmaps sehr groß, sofern man nicht folgende Gegenmaßnahmen ergreift:

  • Rastergrafiken sollten nicht größer als 1024 x 768 Pixel messen, am besten kleiner
  • Rastergrafiken sollten auf 256 Farben umgerechnet werden, was den Speicherbedarf um den Faktor drei reduziert.

Beide Operationen sind mit IrfanView besonders einfach durchzuführen.

Werden Zeichnungen geöffnet, die Bitmaps enthalten, so werden die Bitmaps in temporäre Dateien (*.tmp) ausgelagert, die sich im selben Verzeichnis wie die AutoSketch-Datei befinden. Ist der Datenträger schreibgeschützt (weil es sich z.B. um eine CD handelt), schlägt das Öffnen der Dateien deshalb fehl. Oft bleiben nach der Arbeit an solchen Zeichnungen TMP-Dateien im Verzeichnis liegen. Diese können problemlos gelöscht werden, nachdem die Zeichnung geschlossen wurde.

Wenn man über dem Bitmap zeichnet – etwa beim Nachzeichnen einen Luftbilds –, kann es passieren, dass das Bitmap beim Neuzeichnen in den Vordergrund tritt und die anderen (Vektor-) Zeichenobjekte überlagert. Dieser Effekt lässt sich leider nicht gezielt beeinflussen. Man kann versuchen, die Vektorobjekte zu verschieben oder sonstwie (scheinbar) zu manipulieren. Dadurch ändert sich ihre Position in der Objektdatenbank der Zeichnung und es kann sein, dass sie wieder in den Vordergrund treten.

Die einzig sichere Lösung ist, dass die Objekte (ggf. ungruppiert) vollständig innerhalb des Bitmaps liegen, also nicht über dessen Ränder hinausragen. In diesem Fall werden einfache Zeichenobjekte auf jeden Fall über das Bitmap gezeichnet. Dieser Tipp ist besonders hilfreich bei Hinweispfeilen, die in ein Bild hineinragen: Sollte die Pfeilspitze samt schrägem Teil der Hinweislinie vom Bitmap überdeckt werden, genügt es, eine einfache Linie zu zeichnen, die nicht über den Rand des Bitmaps hinausragt und den schrägen Teil der Hinweislinie ersetzt.

Schraffurmuster

Autosketch zeigt nur Schraffurmuster an, deren Datei-Attribut "Archiv" (A) gesetzt ist. Jedes Schraffurmuster ist in einer gesonderten Textdatei mit der Endung *.PAT (pattern) definiert. Sämtliche Schraffurdefinitionen befinden sich einem Verzeichnis (meist c:\Wsketch2\Patterns), zusammen mit einer Icon-Datei (*.ICN), in der die grafischen Darstellungen für die Übersicht im Schraffur-Dialogfeld gespeichert sind.

Einige Sicherungsprogramme setzen das Archiv-Attribut zurück, wenn eine Datei gesichert wurde. (Dafür ist das Archiv-Attribut gedacht.) Anschließend werden die Schraffurmuster in AutoSketch nicht mehr angezeigt. Das Attribut muss dann erneut gesetzt werden, z.B. in der DOS-Box über den Befehl "attrib +a *.pat". Alternativ kann man das Verzeichnis mit den Schraffurmustern via Windows-Explorer an einen anderen Ort kopieren, dann wird das Archiv-Attribut nämlich erneut gesetzt. Diese neue Verzeichnis kann man, nachdem man das alte Verzeichnis Patterns gelöscht hat, auch wieder '"Patterns" nennen, sodass wieder alles beim Alten ist.

Hinweise zu Vista / Windows 7

Autosketch 2.1 läuft auch unter Windows Vista und Windows 7 (jeweils 32-Bit-Version) weitgehend stabil, am besten im Kompatibilitätsmodus für Windows XP (Service Pack 3) mit deaktivierten visuellen Designs.

Unter Windows 7 kommt es (anscheinend bei Mangel am Hauptspeicherplatz) gelegentlich (d.h. bei intensiver Nutzung alle paar Wochen) zu inkorrekter Darstellung der Kontrollkästchen:

AS Windows 7 Properties Dialogbox.png

Diese Problem liegt wahrscheinlich in den Borland Windows Custom Controls (BWCC.DLL). Der Neustart des Rechners behebt das Problem.

Die Eingabe von sehr langen einzeiligen Texten über das Werkzeug Textzeile führt zum Absturz mit der Fehlermeldung

AS Windows 7 long text.png

Abhilfe schafft (nach Neustart von AutoSketch) die Eingabe des Textes im Dialogfeld für die mehrzeilige Texteingabe.

Betrieb unter 64-bit-Windows

Da AutoSketch 2.1 ein 16-bit-Programm ist, läuft es nicht ganz so einfach unter 64-bit-Windows (64-bittiges Vista oder Windows 7, Windows Server 2008 R2), denn dieses hat kein 16-bit-Subsystem mehr. Die Lösung besteht darin, eine virtuelle Laufzeitumgebung zu installieren, welche 16-bit-Programme unterstützt. Zur Auswahl stehen:

  • Microsoft Virtual PC (kostenlos). Die langsame Grafikausgabe (besonders dann, wenn das Fadenkreuz zum Einsatz kommt) lässt sich beschleunigen, wenn man die Farbtiefe der Bildschirmausgabe generell (also für das gesamte Betriebssystem, nicht für die virtuelle 16-bit-Umgebung) auf High Color einstellt. (Das ist die Farbtiefe, in der auch der XP-Mode betrieben wird.)
  • Seit Windows 8 ist Virtual PC nicht mehr lauffähig. Als Ersatz wurde das ebenfalls kostenlose Hyper-V eingeführt. Mit Hyper-V läuft Autosketch auch noch unter Windows 10. Dazu muss eine 32bit Version von Windows 10 unter Hyper-V installiert werden.
  • VMware. Die Basisversion dieser bekanntesten Virtualisierungssoftware nennt sich VMware vSphere Hypervisor und ist ebenfalls kostenlos. Im Regelfall arbeiten 16-Bit-Programme in dieser virtuellen Umgebung sehr flüssig, wenn die Einstellungen optimiert werden. Dies gilt auch für AutoSketch 2.1. In den neueren Versionen von VMware stellt sich allerdings der bekannte Fehler in win87em.dll ein (siehe oben), für den es derzeit keinen effektiven Workaround gibt.

Hinweis zu DOS-Programmen

Wirkliche Probleme machen DOS Programme im Vollbildmodus. Lösung: Microsoft Virtual PC 2007 installieren (gibt's als kostenlosen Download bei Microsoft Virtual PC 2007) und zusätzlich XP als virtuellen PC installieren. Virtual PC startet recht schnell, alle getesteten Programme laufen sauber. Weitere Lösung: DOSBox, a x86 emulator with DOS – offizielle Projekt-Homepage

Tipps + Tricks

Anzahl der angezeigten Bauteile

Die Fahrzeugansichten der Venus Fahrzeugbibliothek sind als Bauteile abgelegt und werden über das Dialogfeld Teil einfügen in die Zeichnung eingefügt. Die Zahl der dort angezeigten Bauteile (Vorgabewert 100) lässt sich über einen Eintrag in der AutoSketch INI-Datei auf 20 reduzieren:

 FileIcons=25
 PartsIcons=20

Wichtig ist, dass die Anzahl FilesIcons, also der beim Öffnen einer Zeichnung angezeigten Icons, mindestens so groß ist wie die Anzahl der PartsIcons, sonst funktioniert der Trick nicht.

Im Dialogfeld werden dann 15 oder 20 Icons angezeigt, oder – falls der Trick nicht funktioniert hat – dennoch 100. Man muss ggfs. mit den Zahlenwerten experimentieren. Bei nur 15 angezeigten Symbolen wird die Höhe des Dialogfeldes reduziert, was dazu führt, dass die beiden Listen zur Verzeichnis- und Dateiauswahl sehr «niedrig» geraten und damit kaum handhabbar sind.

Programmabsturz bei jedem Versuch, die Zeichnung zu bearbeiten

In solchen Fällen ist vermutlich die Zeichnungsdatenbank durcheinander geraten. (Die Zeichnungsdatenbank ist die Liste aller geometrischen Objekte, die sich in der Zeichnung befinden.) Sie muss bereinigt werden – leider bietet AutoSketch dafür kein Hilfprogramm / keinen Hilfsbefehl an. Es gibt zwei Möglichkeiten, die Zeichnungsdatenband zu bereinigen:

  • Export (und anschließender Import) als DXF.
  • Einfügen der alten Zeichnung als »Bauteil« in eine neue, leere Zeichnung.

Speziell die zweite Methode führt meist zum Erfolg.

Weitere Informationen