RezepteZeichnen und anordnen

Wie nummeriere ich Blockattribute (Tür- oder Raumnummern) in AutoCAD automatisch der Reihe nach neu?

Tippen Sie „Nummeriere die DOOR-TAG-Blöcke von links nach rechts und oben nach unten neu, beginnend mit D01“. cadssistant liest jede DOOR-TAG-Referenz und ihr Attribut NUMBER, sortiert die Referenzen nach Zeile und dann nach X, schreibt die neuen Werte in einem AutoLISP-Durchgang in die Attribute, regeneriert und antwortet mit einer Tabelle aus Handle, alter und neuer Nummer. Zurücksetzen im Chat stellt die alten Nummern wieder her.

Geprüft am 2026-11-01

Was Sie tippenBefehl: CADSSISTANT

Nummeriere die DOOR-TAG-Blöcke von links nach rechts und oben nach unten neu, beginnend mit D01

Fügen Sie den Satz in die Palette ein, oder wählen Sie ihn aus den Rezepten im Chat.

Was cadssistant tut

  1. Wählt die DOOR-TAG-Referenzen mit Attributen aus ((66 . 1) im Filter) und liest von jeder den Einfügepunkt und das Attribut NUMBER.
  2. Sortiert nach Y absteigend (Zeilen), dann nach X aufsteigend innerhalb einer Zeile, mit einer Zeilentoleranz (das Beispiel unten nimmt 50 Einheiten; nennen Sie den Abstand der Schilder, wenn die Zeilen eng liegen).
  3. Schreibt D01, D02 … in einem AutoLISP-Durchgang in das Attribut NUMBER jeder Referenz; ein REGEN oder entupd zeigt die neuen Werte, falls der Bildschirm nicht von selbst nachzieht.
  4. Antwortet mit Handle, alt und neu als Tabelle, damit eine falsche Zeilenreihenfolge sofort auffällt und sich zurücksetzen lässt.

Dieselbe Aufgabe in AutoLISP

(progn
  (vl-load-com)
  (setq ss (ssget "_X" '((0 . "INSERT") (2 . "DOOR-TAG") (66 . 1))) i 0 lst nil n 1)
  (if ss
    (repeat (sslength ss)
      (setq e (ssname ss i) i (1+ i))
      (setq lst (cons (cons e (cdr (assoc 10 (entget e)))) lst))))
  (setq lst (vl-sort lst '(lambda (a b)
    (if (equal (caddr a) (caddr b) 50.0) (< (cadr a) (cadr b)) (> (caddr a) (caddr b))))))
  (foreach item lst
    (setq att (entnext (car item)))
    (while (and att (= (cdr (assoc 0 (entget att))) "ATTRIB"))
      (if (= (cdr (assoc 2 (entget att))) "NUMBER")
        (entmod (subst (cons 1 (strcat "D" (if (< n 10) "0" "") (itoa n)))
                       (assoc 1 (entget att)) (entget att))))
      (setq att (entnext att)))
    (entupd (car item))
    (setq n (1+ n)))
  (1- n))

Schilder, deren Y innerhalb von 50 Einheiten liegt, zählen als eine Zeile; passen Sie 50.0 an den Plan an. Liefert, wie viele neu nummeriert wurden.

Gut zu wissen

  • „Leserichtung“ heißt Zeilen von oben; sagen Sie „im Uhrzeigersinn ab dem Eingang“ oder „nach Raumnummer“, dann ändert sich die Sortierung entsprechend.

Mehr aus „Zeichnen und anordnen“

Befehl: CADSSISTANT

Läuft in AutoCAD 2024 und neuer unter Windows. Kostenlos testen, ohne Karte, ohne API-Schlüssel.

cadssistant holen