AddString [STR]

Top  Previous  Next

Linienerfassung im Punktmodus.

Erzeugung eines offenen oder geschlossenen Linienzugelementes. Kreisbögen, Linien und Punkte können in beliebiger Anzahl erzeugt werden. Mit einer Punktkoordinate muß begonnen werden.

Voraussetzung

Ein Objekt muß eröffnet sein.

Parameter

DKY/<nnn>

Gibt den Signaturschlüssel an.

DKA/<nnn>

Gibt den Schraffurschlüssel an.

Die Werte müssen als Zahl nach den Schrägstrichen angegeben werden. Die Wertebereiche liegen beim Signaturschlüssel und Flächenschlüssel zwischen 1 und 65535. Liegen die angegebenen Werte außerhalb dieser Grenzen, so werden die Grenzwerte eingesetzt. Achtung: Die angegebenen Werte gelten für Moskito und können bei bestimmten Datenformaten niedriger liegen (z.B. DBB-Format: Obergrenze 255).

 

PCL/

Mit PCL kann die Punktklasse für die neuen Punkte festgelegt werden.

PSY/

Mit PSY kann das Punktsymbol für die neuen Punkte festgelegt werden.

DIM/

Mit dem Parameter DIM kann die Dimension festgelegt werden. Mögliche Dimensionen sind zwei und drei. Wird eine Zahl ungleich zwei oder drei übergeben, wird standardmäßig zweidimensional eingestellt.

/OLD

Mit diesem Schalter können an ein zuvor geöffnetes Linienelement sowohl vorne, als auch am Ende weitere Punkte angehangen werden. Um vorne anzuhängen, sollte der Anfangspunkt identifiziert werden, um hinten anzuhängen der Endpunkt. Wird weder der Anfangs- noch der Endpunkt identifiziert, sucht die Funktion den näherliegenden.

Z/

Soll die Z-Koordinate bei allen Punkten vorbelegt werden, kann dieses mit dem Parameter Z/<xxx> erfolgen.

#P <nnn> <nnn> oder <nnn> <nnn>

#P <nnn> <nnn> gibt Koordinate des ersten Punktelementes an. Werden nur zwei Zahlenwerte übergeben, wird angenommen, es handelt sich um die Koordinate des ersten Punktelementes. Eine Abfrage des ersten Elementes erfolgt dann nicht mehr!

LINK/<taste>,<link>,<psy>,<pcl>,<taste2>,<link2>,<psy2>,<pcl2>,...

Mit dieser Sequenz werden die Tastenfunktionen des Cursors umdefiniert. Es wird dann für die Cursortaste taste ein Punkt mit dem Verbindungstyp link und der Punktinformation psy und pcl eingefügt. Wenn einer der Werte kleiner als 0 ist, dann wird er nicht berücksichtigt.. Für link und taste gelten die Werte:

                  1        Taste P

                  2        Taste R

                  3        Taste L

                  4        Taste C

/CONTINUEATCLOSE

Normalerweise wird die Funktion beendet, wenn der String geschlossen wird, d.h. wenn der letzte Punkt des Strings mit dem Anfangspunkt identisch ist. Mit der Angabe dieses Parameters kann nach dem Schließen des Strings weiterdigitalisiert werden.

/CLOSEAREA

Beim verlassen der Funktion wird das Stringelement durch eine Linie geschlossen, wenn es einen von 0 verschiedenen DKA hat.

/lateDKA

Wird AddString mit Angabe eines Flächenschlüssels (DKA/<nnn>) aufgerufen, dann wird die Flächenfüllung normalerweise schon während des Zeichnens, d.h. ab der Eingabe des dritten Punktes, generiert. Das kann mitunter für den Digitalisiervorgang störend sein, z.B. wenn verwinkelte Polygone digitalisiert werden sollen und die Flächenfüllung des unfertigen Polygons den Hintergrund mit seinen Bezugspunkten überdeckt. Der Parameter /lateDKA sorgt dafür, daß die Flächenfüllung erst nach Beendigung des Digitalisiervorgangs sichtbar wird.

/H

Mit diesem Schalter wird eine Hilfetext ausgegeben, der auch die Aufrufkonvention enthält.

Rückgabewert

Wert

Beschreibung

0

Aufruf wurde erfolgreich durchgeführt

Sonst

Fehler aufgetreten

Dialog

Linien-Anfangs-Punkt: (PSY,PCL),<P>

Mit dieser Ausgabe wird der Benutzer aufgefordert den Anfangspunkt seines Linienzuges anzugeben. Vor der Koordinate muß #P stehen. Dies teilt dem System mit, dass ein Punkt erzeugt werden soll. PSY und PCL geben das Punktsymbol und die Punktklasse dieses Punktes an, wenn er von der Normaleinstellung abweicht. Anschließend wird der Folgepunkt abgefragt

Folgepunkt: (PSY,PCL),<L/R/C/P>

Nun können außer Punktkoordinaten auch Linien-, Kreis- und C-Koordinaten angegeben werden. Wird ein #L-Befehl eingegeben, so wird von der letzten Koordinate zur neuen eine Linie erzeugt, die im Display auch sofort angezeigt wird. Beim #R-Befehl kann ein Kreisbogen bestimmt werden, wobei zwischen zwei Fällen unterschieden werden muß. Ist vor dem #R-Befehl eine Koordinate mit dem #P-Befehl angegeben worden, so muß eine zweite Koordinate als Stützpunkt des Kreisbogens angegeben werden

2. Kreisbogen-Punkt : <R>

War dagegen ein #L-Befehl vorausgegangen, so wird der zweite Stützpunkt berechnet. Die Berechnung erfolgt mit dem Lot der vorangegangen Linie und dem eingegebenen Punkt. Sind beide Stützpunkte vorhanden, wird der Kreisbogen gezeichnet. Wird ein #CLS-Befehl angegeben, so wird beim nächsten #P-, #L-, #R- oder #C-Befehl nicht die angegebenen Werte als Koordinate benutzt, sondern der Punkt, der dieser Koordinate am nächsten liegt.

Folgepunkte können nun so lange eingegeben werden, bis entweder <CR> oder der #CON-Befehl erfolgen.

Sollten ein oder mehrere Koordinaten falsch eingegeben worden sein, so lassen sie sich mit den Menue-Befehlen #M9 4 und #M9 5 beseitigen.

Mit dem Befehl #M9 4 wird der letzte Punkt im aktuellen String gelöscht. An der Stelle, an der sich der Punkt befunden hatte und der nun neue letzte Punkt werden mit Markern (blauer Punkt für den gelöschten und grünes Dreieck für den neuen letzten) besetzt und eine eventuelle Verbindung zwischen dem gelöschten und dem letzten Punkt wird gelöscht. Sollte sich nur ein Punkt in dem String befunden haben, kann kein letzter Punkt markiert werden und die nächste Abfrage ist

Linien-Anfangs-Punkt:  (PSY,PCL),<P>

Diese Meldung erscheint auch nach dem Befehl #M9 5, der alle Punkte im aktuellen String löscht.

Die Stellen der gelöschten Punkte werden markiert und alle Verbindungen gelöscht.

Beispiel

(1)

AddString dky/20 dka/10

Linien-Anfangs-Punkt: (PSY,PCL),<P> #P 0 0

Folgepunkt: (PSY,PCL),<L/R/C/P> #L 100 0

Folgepunkt: (PSY,PCL),<L/R/C/P> #L 100 100

Folgepunkt: (PSY,PCL),<L/R/C/P> #L 0 100

Folgepunkt: (PSY,PCL),<L/R/C/P> #L 0 0

Folgepunkt: (PSY,PCL),<L/R/C/P> <CR>

(2)

AddString

Linien-Anfangs-Punkt: (PSY,PCL),<P> #P 0 0

Folgepunkt: (PSY,PCL),<L/R/C/P> #R 200 200

2. Kreisbogen-Punkt : <R> #R 150 200

Folgepunkt: (PSY,PCL),<L/R/C/P> <CR>

(3)

AddString

Linien-Anfangs-Punkt: (PSY,PCL),<P> #P 0 0

Folgepunkt: (PSY,PCL),<L/R/C/P> #L 200 200

Folgepunkt: (PSY,PCL),<L/R/C/P> #R 300 200

Folgepunkt: (PSY,PCL),<L/R/C/P> #CON

(4)

AddString 0 0

Folgepunkt: (PSY,PCL),<L/R/C/P> #L 200 200

Folgepunkt: (PSY,PCL),<L/R/C/P> #R 300 200

Folgepunkt: (PSY,PCL),<L/R/C/P> #CON

(5)

AddString

Linien-Anfangs-Punkt: (PSY,PCL),<P> #P 0 0

Folgepunkt: (PSY,PCL),<L/R/C/P> #L 200 0

Folgepunkt: (PSY,PCL),<L/R/C/P> #L 200 200

Folgepunkt: (PSY,PCL),<L/R/C/P> #L 0 200

Folgepunkt: (PSY,PCL),<L/R/C/P> #CLS

Folgepunkt: (PSY,PCL),<L/R/C/P> #L 1 -1

Folgepunkt: (PSY,PCL),<L/R/C/P> #CON

==> Durch den #CLS-Befehl wird die Linie von 0,200 nicht nach 1,-1 sondern nach 0,0 gezeichnet.

(6)

AddString

Linien-Anfangs-Punkt: (PSY,PCL),<P> #P 0 0

Folgepunkt: (PSY,PCL),<L/R/C/P> #L 200 0

Folgepunkt: (PSY,PCL),<L/R/C/P> #L 200 200

Folgepunkt: (PSY,PCL),<L/R/C/P> #L 0 200

Folgepunkt: (PSY,PCL),<L/R/C/P> #L 0 0

Folgepunkt: (PSY,PCL),<L/R/C/P> #M9 4

Folgepunkt: (PSY,PCL),<L/R/C/P> #M9 4

Folgepunkt: (PSY,PCL),<L/R/C/P> #L 0 0

Folgepunkt: (PSY,PCL),<L/R/C/P> #CON

==> Aus einem Quadrat wird durch Löschen der beiden letzten Punkte ein gleichseitiges Dreieck. Die beiden gelöschten Punkte wurden markiert und ihre Verbindungslinien gelöscht.

(7)

AddString

Linien-Anfangs-Punkt: (PSY,PCL),<P> #P 0 0

Folgepunkt: (PSY,PCL),<L/R/C/P> #L 200 0

Folgepunkt: (PSY,PCL),<L/R/C/P> #L 200 200

Folgepunkt: (PSY,PCL),<L/R/C/P> #L 0 200

Folgepunkt: (PSY,PCL),<L/R/C/P> #L 0 0

Folgepunkt: (PSY,PCL),<L/R/C/P> #M9 5

Linien-Anfangs-Punkt: (PSY,PCL),<P> #P 10 10

Folgepunkt: (PSY,PCL),<L/R/C/P> #L 210 10

Folgepunkt: (PSY,PCL),<L/R/C/P> #L 210 210

Folgepunkt: (PSY,PCL),<L/R/C/P> #L 10 210

Folgepunkt: (PSY,PCL),<L/R/C/P> #L 10 10

Folgepunkt: (PSY,PCL),<L/R/C/P> #CON

==> Ein Quadrat mit der linken unteren Ecke bei 0,0 wird vollständig gelöscht und ein Quadrat mit den gleichen Ausmassen und der linken unteren Ecke bei 10,10 erstellt.

Bemerkung

PSY und PCL wird nicht unterstützt und führt bei der Eingabe zu Fehlern!

#C wird nicht unterstützt und führt bei der Eingabe zu Fehlern!

#EBD in Arbeit.

Linienelemente mit nur einem Punkt werden nicht angelegt.

Wird ein Stützpunkt des Linienelementes beim Erfassen wieder auf den Anfangspunkt eingebunden, so bedeutet das, daß die Erfassung damit beendet wird.

Siehe auch