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.
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
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
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.
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
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.
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
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
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.
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
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
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
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
Stapelsyntax:
CMDSetAreaArt "2" RET CMDSchraffObjekte CMDKeyselect "Oname=HHK-Haus Typ C" RET