Giuseppe Beatrice
Guest
hallo jungs, ich habe eine frage zu multiline-attributen, die ich gerade über qualität herausgefunden habe.
das problem ich habe, dass die mit autolisp gemachte extraktion den wert des attributs als normaler textstring liefert, ohne dass es zu normalen attributen kommt.
darüber hinaus ändern sich die änderungen des wertes der attribute, die mit den normalen routinen gemacht werden, von denen ich schließlich die relative funktion anhefte, nicht auf allen werten des attributs, das das vorherige bleibt.
durch das lesen von autocad in attributeigenschaften sehe ich zeichen (\w0.6000; ...\p...), aber offensichtlich ist die einzige möglichkeit, den wert zu ändern, der neue text direkt als beliebigen multiline-text zu bearbeiten.
gibt es eine möglichkeit, attributwerte direkt als multiline-text von autolisp zu bearbeiten?
dank allen für das interesse.
ich hänge die interne funktion an, die ich normalerweise für die änderung von attributwerten benutze:
(schlafen) (schlafen)
;;;; erhält von funktionsaufrufen entity name und liste, die paare mit dem label und dem neuen zugehörigen wert enthält, in den block eingefügt werden
;;; für den moment keine überprüfung der kongruenz auf die art der einheit (wenn von block verschieden) oder auf den eventuellen mangel an attributen, gibt alles zu überprüfen
(defun modif_attrib (objent lst_val / noment element attriblabel val_attr)
(setq noment objent)
(setq element (entget noment))
(while (/= (cdr) "seqend")
(setq noment (entnext noment)
(setq element (entget noment))
(forach attrib lst_val)
(setq-label (car attrib)
val_attr (cdr attrib)
(falls (soweit zutreffend) (cons 2 label))
(progn (setq element (subst (cons 1 val_attr) (assoc 1 element))))))
(entupd noment)
das problem ich habe, dass die mit autolisp gemachte extraktion den wert des attributs als normaler textstring liefert, ohne dass es zu normalen attributen kommt.
darüber hinaus ändern sich die änderungen des wertes der attribute, die mit den normalen routinen gemacht werden, von denen ich schließlich die relative funktion anhefte, nicht auf allen werten des attributs, das das vorherige bleibt.
durch das lesen von autocad in attributeigenschaften sehe ich zeichen (\w0.6000; ...\p...), aber offensichtlich ist die einzige möglichkeit, den wert zu ändern, der neue text direkt als beliebigen multiline-text zu bearbeiten.
gibt es eine möglichkeit, attributwerte direkt als multiline-text von autolisp zu bearbeiten?
dank allen für das interesse.
ich hänge die interne funktion an, die ich normalerweise für die änderung von attributwerten benutze:
(schlafen) (schlafen)
;;;; erhält von funktionsaufrufen entity name und liste, die paare mit dem label und dem neuen zugehörigen wert enthält, in den block eingefügt werden
;;; für den moment keine überprüfung der kongruenz auf die art der einheit (wenn von block verschieden) oder auf den eventuellen mangel an attributen, gibt alles zu überprüfen
(defun modif_attrib (objent lst_val / noment element attriblabel val_attr)
(setq noment objent)
(setq element (entget noment))
(while (/= (cdr) "seqend")
(setq noment (entnext noment)
(setq element (entget noment))
(forach attrib lst_val)
(setq-label (car attrib)
val_attr (cdr attrib)
(falls (soweit zutreffend) (cons 2 label))
(progn (setq element (subst (cons 1 val_attr) (assoc 1 element))))))
(entupd noment)