Um die aus einer Region extrahierten Daten der Fläche und des Umfangs in einen vorhandenen Block mit Attributen in LISP einzufügen, kannst du den folgenden allgemeinen Ansatz verwenden. Hier ist ein Beispiel, dir als Ausgangspunkt dienen kann: 1. **Daten extrahieren**: Zst musst du die Fläche und den Umfang der Region berechnen. Das kannst du mit den Funktionen `area` und `length` tun. 2. **Blockreferenz finden**: Suche die Blockreferenz, in die du die Daten einfügen möchtest. 3. **Attribute aktualisieren**: Aktualisiere die Attribute des Blocks mit den extrahierten Werten. Hier ist ein einfaches Beispiel in AutoLISP: ```lisp (defun c:UpdateBlockAttributes (/ region area length blockRef) (setq region (car (entsel "\nWähle die Region: "))) ; Wähle die Region (if region (progn (setq area (vla-get-Area (vlax-ename->vla-object region))) ; Fläche berechnen (setq length (vla-get-Perimeter (vlax-ename->vla-object region))) ; Umfang berechnen (setq blockRef (car (entsel "\nWähle die Blockreferenz: "))) ; Wähle die Blockreferenz (if blockRef (progn (setq blockObj (vlax-ename->vla-object blockRef)) (setq attributes (vla-get-Attributes blockObj)) ;; Hier die Attribute aktualisieren (foreach att attributes (cond ((= (vla-get-TagString att) "Fläche") (vla-put-TextString att (rtos area 2 2))) ((= (vla-get-TagString att) "Umfang") (vla-put-TextString att (rtos length 2 2))) ) ) (princ "\nAttribute aktualisiert.") ) (princ "\nKeine Blockreferenz ausgewählt.") ) ) (princ "\nKeine Region ausgewählt.") ) (princ) ) ``` In diesem Beispiel: - Der Benutzer wird aufgefordert, eine Region und eine Blockreferenz auszuwählen. - Die Fläche und der Umfang der Region werden berechnet. - Die Attribute des Blocks werden aktualisiert, wobei angenommen wird, dass die Attribute "Fläche" und "Umfang" existieren. Stelle sicher, dass die Tag-Namen der Attribute in deinem Block mit den im Code verwendeten übereinstimmen. Passe den Code nach Bedarf an deine spezifischen Anforderungen an.