Beispiele für Stapeldateien

Für eigene Stapeldateien benötigen Sie jeweils die Beispielsyntax für die Stapeldatei. Teilweise kann diese Vorlage bereits durch Punkte ausgeben bzw. Objekte ausgeben erstellt werden. Mit einem guten Spalteneditor wird daraus die auszuführende Stapeldatei gemacht. Diese wird über Ansicht >> Fehlermanager aufgerufen und abgearbeitet. Im Folgenden sind einige Beispiele aufgeführt.

Punkte umnummerieren gemäß Tabelle

Die Rohdatei des Stapels ist erzeugbar mit Punkte >> Ausgeben (mit F10), wenn ein eigenes Ausgabeformat in der GEOgraf.INI definiert ist.

[Ausgabe.Punkt]

Format=PN-Stapel,"CmdDotChangePnr CmdKeySelect "PNR=&PN()" RET "neue PNR" RET ESC CmdMacroStapel"

In der so erzeugten Datei muss die neue Punktnummer vergeben werden. Dann kann sie mit Ansicht >> Fehlermanager ausgeführt werden. Voraussetzung ist, dass unter Auftragsparameter >> Punkte die manuelle Punktnummernvergabe (Eingabedialog) eingestellt ist. Im Modus "automatische Punktnummernvergabe (ohne Abfrage)" wird die nächste freie Punktnummer genommen statt der aus der Stapeldatei.

Stapelsyntax:

CmdDotChangePnr CmdKeySelect "PNR=<alte PNR>" RET "<neue PNR>" RET ESC CmdMacroStapel

CmdDotChangePnr CmdKeySelect "PNR=<alte PNR>" RET "<neue PNR>" RET ESC CmdMacroStapel

CmdDotChangePnr CmdKeySelect "PNR=<alte PNR>" RET "<neue PNR>" RET ESC CmdMacroStapel

 

Punktinfos massenhaft zu eindeutigen Punktnummern machen

Das Werkzeug Punkte >> Ändern >> Punktnummer vergibt immer eindeutige Punktnummern für alle gewählten Elemente. Allerdings wird vom aktuellen Startwert hochgezählt. Wenn aber der Inhalt der Punktinfo als Punktnummer übernommen werden soll, ist dies automatisiert über eine Stapeldatei zu realisieren.

Die Rohdatei des Stapels ist erzeugbar mit Punkte >> Ausgeben (mit F10 >> Punkttyp), wenn ein eigenes Ausgabeformat in der GEOgraf.INI definiert ist.

[Ausgabe.Punkt]

Format=PIzuPN,"CmdDotChangePnr CmdKeySelect "&UUID()" RET "&PI()" RET ESC CmdMacroStapel"

Nun starten Sie Ansicht >> Fehlermanager und wählen die gerade erzeugte Datei aus. Durch Anklicken der ersten Zeile läuft der Stapel durch und ändert die Punktnummer aller dieser Punkte. Voraussetzung ist, dass kein NBZ eingestellt ist und die nächste freie Punktnummer im NBZ * bereits bestätigt ist. Der Eingabemodus zur Punktnummernvergabe muss auf "halbautomatische Punktnummernvergabe" gestellt sein.

Falls es die Punktnummer bereits gibt, kann natürlich nicht umnummeriert werden. Das wäre anschließend mit F10-Punkttyp zu kontrollieren.

Stapelsyntax:

CmdDotChangePnr CmdKeySelect "<Schlüssel>" RET "<Punktinfo>" RET ESC CmdMacroStapel

CmdDotChangePnr CmdKeySelect "<Schlüssel>" RET "<Punktinfo>" RET ESC CmdMacroStapel

CmdDotChangePnr CmdKeySelect "<Schlüssel>" RET "<Punktinfo>" RET ESC CmdMacroStapel

 

Objektname ändern gemäß Tabelle

Vorbereitend kann Objekte >> Ausgeben mit einer eigenen INI-Datei ausgeführt werden, auch in Kombination mit F10:

Steuerdatei für die Objekt-Ausgabe:

[Out.ObjName]

Name="Stapel Objektename"

Typ=ASCII

Trenn=;

Select=Obj

Ext=".objname.stp"

* Die Spalten der Ausgabedatei:

*

Col1.Name=Stapelkommandos vor

Col1.Value="CmdObjChangeName F4 "Manuell" RET CMDKeySelect "Oname="

*

Col2.Name=Name

Col2.Value=Obj.GesName

*

Col3.Name=Stapelkommandos mittig

Col3.Value="" RET ""

*

Col4.Name=Name

Col4.Value=Obj.GesName

*

Col5.Name=Stapelkommandos hinten

Col5.Value="" RET ESC CMDMacroStapel "

 

Beispiel für die direkt erzeugte Objekt-Ausgabe:

CmdObjChangeName F4 "Manuell" RET CMDKeySelect "Oname=;13054125003020001 001;" RET ";13054125003020001 001;" RET ESC CMDMacroStapel

CmdObjChangeName F4 "Manuell" RET CMDKeySelect "Oname=;13054125003020001 002;" RET ";13054125003020001 002;" RET ESC CMDMacroStapel

 

In der so erzeugten Datei muss der neue Objektname per Editor vergeben werden. Dann kann sie mit Ansicht >> Fehlermanager ausgeführt werden.

Stapelsyntax:

CmdObjChangeName F4 "Manuell" RET CMDKeySelect "Oname=13054125003020001 001" RET "neuer Name 1" RET ESC CMDMacroStapel

CmdObjChangeName F4 "Manuell" RET CMDKeySelect "Oname=13054125003020001 002" RET "neuer Name 2" RET ESC CMDMacroStapel

 

In der ObjExport.INI könnte Spalte 4 auch anders definiert werden, wenn der neue Name nichts mit dem alten zu tun hat.

Arten / Ebenen ändern

Objekte einer bestimmten Art und mit einer bestimmten Schraffurart (z.B. ALKIS Wohngebäude) sollen auf eine andere Objektart geändert werden. Dies geht nicht über die ArtAendern.ins, da die Schraffurart dort kein Filterkriterium für Objekte ist. Mit F10 in der Grafik ist diese Anwendung jeweils zeilenweise machbar.

Stapelsyntax:

CMDF10Stop CMDFilterClear CMDSetObjArt "0.1" RET CMDFilterOArten "1600.31001" RET CMDFilterFArten "1600.1309" RET CMDObjArtEbene CMDSetArtEbeneMode "ArtEbene" RET CMDF10SelectAlles "j" ESC CMDMacroStapel

CMDF10Stop CMDFilterClear CMDSetObjArt "0.2" RET CMDFilterOArten "1600.31001" RET CMDFilterFArten "1600.1304" RET CMDObjArtEbene CMDSetArtEbeneMode "ArtEbene" RET CMDF10SelectAlles "j" ESC CMDMacroStapel

Punkthöhen halbautomatisch vom nächstgelegenen Text übernehmen.

Diese Aufgabe ist mit GEOgraf ab Version 7 lösbar. Manuell kann im Werkzeug Punkte >> Ändern >> Höhe >> Eingabe nach der Punktanwahl mit ESC:per Referenz auf die Textanwahl umgeschaltet werden, um die Punkthöhe von einem Text abzugreifen. Halbautomatisch kann das über eine Stapeldatei geschehen. Dafür sind folgende Voreinstellungen nötig:

1. Definieren Sie in Ihrer Steuerdatei GEOgraf.INI ein eigenes Punktausgabeformat. Dieses muss im Abschnitt [Ausgabe.Punkt] stehen und folgendermaßen lauten:

Format=Stapel, "CMDSoftZoomRepaint CMDKeySearch "PNR=&PN()" RET CMDDotChangeHoeheManuell CMDKeySelect "PNR=&PN()" RET ESC F1 "Text" RET“

 

Das komplette Format muss in einer Zeile stehen. Der Formatname, hier „Makrostapel“ ist frei vergebbar. Schritt 1 ist nur einmal für Ihre Installation nötig.

2. Mit diesem einmal definierten Ausgabeformat können Sie Punkte ausgeben in eine PKT-Datei, auch in Verbindung mit F10. Es entsteht eine Datei mit Zeilen in der korrekten Stapelsyntax, wie dieses Beispiel:

CMDSoftZoomRepaint CMDKeySearch "PNR=1029" RET CMDDotChangeHoeheManuell CMDKeySelect "PNR=1029" RET ESC F1 "Text" RET

 

3. Unter Ansicht >> Fehlermanager starten Sie nun den Dialog für eine Stapeldatei. Hier müssen Sie die eben erzeugte Punktdatei anwählen (ggf. auf „alle Dateitypen“ umstellen). Durch Anklicken jeweils einer Zeile wird der Punkt hervorgehoben und gewählt, und sie sind sofort in der Textanwahl für die neue Punkthöhe. Die Zeilen können auch als erledigt markiert werden durch das Kontrollkästchen vorweg.

Die Schritte 2. und 3. sind jedes Mal durchzuführen, wenn Sie massenhaft Punkthöhen aus Texten ableiten wollen.

Textgrößen artenweise ändern

Stapelsyntax:

CMDF10Stop CMDTxtChangeSize F2 "n" RET "1.0" RET CMDF10ArtenEbenen "1" RET "*" RET CMDF10SelectAlles "j" ESC CMDMacroStapel

CMDF10Stop CMDTxtChangeSize F2 "n" RET "2.0" RET CMDF10ArtenEbenen "2" RET "*" RET CMDF10SelectAlles "j" ESC CMDMacroStapel

CMDF10Stop CMDTxtChangeSize F2 "n" RET "3.0" RET CMDF10ArtenEbenen "3" RET "*" RET CMDF10SelectAlles "j" ESC CMDMacroStapel

CMDF10Stop CMDSoftZoomRepaint CMDShowTxt "Alle Texte abgearbeitet" RET

Textarten gemäß Inhalt ändern

Stapelsyntax:

CMDSetArtEbeneMode "ArtEbene" RET CMDMacroStapel

CMDF10Stop CMDSetTxtArt "111" RET CMDSetEbene "111" RET CMDTxtArtEbene CMDF10TxtInhalt "63PE" RET "63PE" RET CMDF10SelectAlles "j" ESC CMDMacroStapel

CMDF10Stop CMDSetTxtArt "222" RET CMDSetEbene "222" RET CMDTxtArtEbene CMDF10TxtInhalt "90PE" RET "90PE" RET CMDF10SelectAlles "j" ESC CMDMacroStapel

CMDF10Stop CMDSoftZoomRepaint CMDShowTxt "Alle Texte abgearbeitet" RET

Textinhalt ändern

Stapelsyntax:

CMDTxtChangeTxt F2 "Zeile" RET F3 "n" RET CMDKeySelect "{03000001-6E32-40F1-A24F-3363846AE122}" RET "Textinhalt neu" RET ESC CmdMacroStapel

CMDTxtChangeTxt F2 "Zeile" RET F3 "n" RET CMDKeySelect "{03000001-6E32-40F1-A24F-3363846AE123}" RET "Textinhalt neu" RET ESC CmdMacroStapel

CMDF10Stop CMDSoftZoomRepaint CMDShowTxt "Alle Texte abgearbeitet" RET

 

Die Rohdatei des Stapels ist erzeugbar mit Text >> Ausgeben (mit F10), wenn ein eigenes Ausgabeformat in der GEOgraf.INI definiert ist.

[Ausgabe.Text]

Format=Text-Stapel,"CMDTxtChangeTxt F2 "Zeile" RET F3 "n" RET CMDKeySelect "&UUID()" RET "&Ti()" RET ESC CmdMacroStapel"

In der so erzeugten Datei muss der alte Textinhalt durch den neuen ersetzt werden (Spalteneditor,...). Dann kann sie mit Ansicht >> Fehlermanager ausgeführt werden.

Punkte beschriften per Stapel

Stapelsyntax:

CMD "BeschriftDot" RET F2 "PNr" RET F4 "100" RET F6 "Aus" RET CMDKeySelect "ID=0x1000022" RET  

 

Mehrere Elementangaben können direkt hintereinander stehen und werden sukzessive abgearbeitet. Im Gegensatz zu F10 bleiben sie nicht in einem "Topf" gespeichert.

CMD "BeschriftDot" RET F2 "Höhe" RET F4 "100" RET F6 "Aus" RET CMDKeySelect "PNR=1040" RET

CMDKeySelect "PNR=1041" RET CMDKeySelect "PNR=1042" RET CMDKeySelect "PNR=1043" RET  

 

Punkte beschriften mit festen Werten je Punktnummer

CMD "BeschriftDot" RET F3 "10" RET CMDKeySelect "PNR=1040" RET CMD "Macrostapel" RET

CMD "BeschriftDot" RET F3 "11" RET CMDKeySelect "PNR=1039" RET CMD "Macrostapel" RET

Punktgrößen ändern

Stapelsyntax:

CMD "DotChangeSize" RET F3 "n" RET "5" RET CMDKeySelect "PNR=5061" RET CMD "Macrostapel" RET

CMD "DotChangeSize" RET F3 "n" RET "10" RET CMDKeySelect "PNR=5062" RET CMD "Macrostapel" RET

Bögen erzeugen durch n Punkte

Stapelsyntax:

CMD "LinNP" RET CMDKeySelect "PNR=30" RET CMDKeySelect "PNR=31" RET CMDKeySelect "PNR=32" RET CMDKeySelect "PNR=33" RET CMDKeySelect "PNR=34" RET CMDKeySelect "PNR=35" RET CMDKeySelect "PNR=36" RET CMDKeySelect "PNR=37" RET CMDKeySelect "PNR=38" RET CMDKeySelect "PNR=30" RET ESC ESC CMD "MacroStapel" RET

CMD "ShowTxt" RET "Der Kreis ist fertig ausgemittelt!" RET

Vollkreise erzeugen um einen Mittelpunkt mit Radius durch einen anderen Punkt

Stapelsyntax:

CMD "LinMR" RET F2 "aus" RET CMDKeySelect "PNR=NUMMER_1" RET CMDKeySelect "PNR=NUMMER_R1" RET RET CMD "Macrostapel" RET

CMD "LinMR" RET F2 "aus" RET CMDKeySelect "PNR=NUMMER_2" RET CMDKeySelect "PNR=NUMMER_R2" RET RET

Objekte schraffieren nach Name

Stapelsyntax:

CMDSetAreaArt "2" RET CMDSchraffObjekte CMDKeyselect "Oname=HHK-Haus Typ C" RET