Hallo Ich möchte für die Nummerierung von Blöcken, die höchste vorhandene Zahl eines Attributs in einen Layer ausfindig machen um dem Nächsten den Wert +1 zu geben. Das Attribut sieht folgendermassen aus. z.B. 11_22_1. Die letzte Zahl ist die Nummerierung und wird dann auch zweistellig.
Ich habe folgende Lisp geschrieben:
(defun c
ap ()
(Setq fläche (getstring "Bitte Fläche eingeben:"))
(setq dn (getstring "Bitte Dok.Niv. eingeben:"))
(setq pplayer (strcat "Passpunkte_DN_"dn))
(command "layer" "_make" pplayer "")
(command "-einfüge" "fundnummer" "0,0,0" "1" "1" "0" "")
(setq pnr (sslength (ssget "_X" (list(cons 8 pplayer)))))
(command "löschen" "l" "")
(repeat 100
(setq passpunkt (strcat fläche"_"dn"_"(itoa pnr)))
(command "-Einfüge" "fundnummer" pause "1" "1" "0" passpunkt)
(setq pnr (+ pnr 1))
)
)
Ich weiss das ist sicher ein Gebastel. Ich definiere den Wert anhand der Anzahl vorhandenen Elemente im Layer. Falls einer dieser Passpunkte gelöscht wird und es nicht der letzte ist funktioniert das leider nicht mehr. Kann mir jemand helfen wie ich den höchsten Wert herausfinde. Ich habe schon überlegt den Wert in eine txt zu schreiben. Da wir aber zum Teil auf einem NAS arbeiten und zum Teil dirket auf dem PC ist das auch ein bisschen schwierig
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP