RezepteMassenbearbeitung

Wie fülle ich in AutoCAD das Schriftfeld auf allen Layouts auf einmal aus?

Tippen Sie „Setze auf jedem Layout im Schriftfeld PROJECT auf Villa Meier, DRAWN auf RK, DATE auf heute, und nummeriere die Blätter 1 von N“. cadssistant listet die Layouts, findet auf jedem das Schriftfeld über seinen Blocknamen, liest das heutige Datum aus AutoCAD und schreibt PROJECT, DRAWN und DATE in einem Durchgang in jedes Schriftfeld, mit SHEET auf 1 von 3, 2 von 3 und 3 von 3 in Layoutreihenfolge. Sie öffnen kein Layout und wählen nichts aus. Die Antwort listet jedes Layout mit seiner Blattnummer. Zurücksetzen im Chat stellt die alten Werte wieder her. Von Hand ist das der erweiterte Attribut-Editor auf jedem Layout nacheinander, oder ATTOUT und ATTIN über eine Textdatei.

Geprüft am 2026-11-01 · eine der Aufgaben, an denen die Modelle von cadssistant gemessen werden

Was Sie tippenBefehl: CADSSISTANT

Setze auf jedem Layout im Schriftfeld PROJECT auf Villa Meier, DRAWN auf RK, DATE auf heute, und nummeriere die Blätter 1 von N

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

Was cadssistant tut

  1. Listet die Layouts der Zeichnung und findet auf jedem das Schriftfeld: die Blockreferenz auf diesem Layout mit den Attributen PROJECT, DRAWN, DATE und SHEET. Blöcke im Modellbereich bleiben unangetastet.
  2. Liest das heutige Datum über AutoCAD, sodass DATE das echte Datum ist und keine Vermutung.
  3. Schreibt die Werte in alle Schriftfelder auf einmal: dasselbe PROJECT, DRAWN und DATE auf jedem, und SHEET als 1 von 3, 2 von 3, 3 von 3 in der Reihenfolge, in der die Layouts aufgeführt sind.
  4. Antwortet mit jedem Layout und seiner Blattnummer, damit eine falsche Reihenfolge sofort auffällt.

Dieselbe Aufgabe in AutoLISP

(progn
  (vl-load-com)
  (setq lts (vla-get-Layouts (vla-get-ActiveDocument (vlax-get-acad-object)))
        lays (vl-sort (layoutlist)
               '(lambda (a b) (< (vla-get-TabOrder (vla-item lts a)) (vla-get-TabOrder (vla-item lts b)))))
        sheets nil)
  (foreach lay lays
    (if (setq ss (ssget "_X" (list '(0 . "INSERT") '(2 . "TBLOCK") (cons 410 lay))))
      (setq sheets (cons (ssname ss 0) sheets))))
  (setq sheets (reverse sheets) n 0
        today (menucmd "M=$(edtime,$(getvar,date),DD.MO.YYYY)"))
  (foreach e sheets
    (setq n (1+ n))
    (foreach a (vlax-invoke (vlax-ename->vla-object e) 'GetAttributes)
      (setq tag (vla-get-TagString a))
      (cond ((= tag "PROJECT") (vla-put-TextString a "Villa Meier"))
            ((= tag "DRAWN") (vla-put-TextString a "RK"))
            ((= tag "DATE") (vla-put-TextString a today))
            ((= tag "SHEET") (vla-put-TextString a (strcat (itoa n) " of " (itoa (length sheets))))))))
  n)

Ersetzen Sie TBLOCK durch den Namen Ihres Schriftfelds. Nimmt die Layouts in Registerreihenfolge, überspringt die ohne TBLOCK und liefert, wie viele Blätter gefüllt wurden; SHEET schreibt es als „1 of 3“, für „1 von 3“ ändern Sie das " of " im strcat. Im Datumsformat ist MO der Monat, MM wären Minuten.

Gut zu wissen

  • Die Blätter werden in der Reihenfolge nummeriert, in der die Zeichnung ihre Layouts auflistet, die von der Registerreihenfolge abweichen kann, wenn Register verschoben wurden. Die Antwort zeigt, welches Layout welche Nummer bekam; nennen Sie die gewünschte Reihenfolge, wenn sie nicht stimmt.
  • Jedes Schriftfeld funktioniert: Die Attributnamen werden aus dem Block gelesen, nennen Sie sie also so, wie sie dort stehen (PROJ_NAME, CHECKED, REV und so weiter).

Mehr aus „Massenbearbeitung“

Befehl: CADSSISTANT

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

cadssistant holen