|
autotrace
Hallo Martin,
anbei die Sources für die DXF-Ausgabe.
Die erzeugten Splines werden zu Liniensegmenten (nach B-Spline 4.ter
Ordnung)
konvertiert. Dies ergab die besten Ergebnisse im Vergleich zum Orginal.
Kubische Splines ergaben schlechtere Ergebnisse. Alle Segmente werden
als
Polyline ausgegeben. Dies ergibt zwar große Datenmengen, damit sollten
aber alle
DXF-Reader zurecht kommen. Der weitere Vorteil ist, dass dann auch
gerade Linien
mit den Rundungen verschmolzen werden können.
Folgendes Problem ist mir noch aufgefallen: Teilweise wechselt der RGB
Wert
innerhalb eines Linienzuges der eigentlich gleichfarbig sein sollte. Der
RGB
Wert ist dann immer 0,0,0. Ich habe das jetzt so programmiert das dann
kein
Lagenwechsel erzeugt wird. Siehe Kommentar /* sometimes RGB 0,0,0 is in
list.color, assume that this means no color change */ in out_splines().
Die RGB zu Lagen Konvertierung beinhaltet momentan nur 9 Lagen mit den
Grundfarben. In der Ausgabe sind aber schon all 255 Farben als Lage
definiert.
Man müsste da dann noch die Tabelle mit den RGB Werten erweitern.
Folgende Wünsche hätte ich noch:
1. Eine Linie die ein Pixel breit ist, sollte nicht umfahren werden,
sondern als
eine Linie in der Mitte zurückkommen. Gerade beim Umsetzen von
technischen
Zeichnungen ist das wichtig.
Ist da was zu machen?
2. Die Umfahrung der Bildgrenze (Rahmen außen rum) sollte bei DXF
weggelassen
werden, da der Rahmen mit Elementen der Zeichnung verschmilzt wenn diese
am Rand
abgeschnitten sind.
Hier wäre eine Option brauchbar!?
3. Die Bildabmaße sollten noch in den DXF-Header geschrieben werden
werden,
damit der Bildauschnitt im CAD-System gleich auf eingepasste Zeichnung
steht.
Ansonsten sieht der Anwender im CAD-System nur einen Teil der Zeichnung
oder
sogar gar nichts und muss erst auf einpassen klicken.
Ein GUI für das Programm mit Möglichkeit die Einstellungen abzuspeichern
wäre nicht schlecht.
Die langen Optionen einzutippen ist doch sehr lästig.
Folgender Bug ist mir noch aufgefallen: Ein Buchstabe O wird ja mit
Innen- und
Außenkontur gefahren. Die Innenkontur überschneidet sehr oft die
Außenkontur und
zwar um mehrere Einheiten.
Viele Grüße
Dietmar Kovar
|