• Dieses Forum ist die maschinengenerierte Übersetzung von www.cad3d.it/forum1 - der italienischen Design-Community. Einige Begriffe sind nicht korrekt übersetzt.

Multiline-Attribute bearbeiten

  • Ersteller Ersteller Giuseppe Beatrice
  • Erstellt am Erstellt am

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)
 
questa potrebbe essere una possibilità di modifica del lisp, verifiziert se ci sono oder meno attributi. für quanto riguarda gli attributi multilinea devo überprüft su una versione più evoluta di autocad 2007.

(defun modif_attrib (objent lst_val / listaattr)
(if (= (vla-get-hasattributes (vlax-ename->vla-object Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt
(Progn)
Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt Objekt
(Karte '(lambda)
(wenn (= (vla-get-tagstring element)
(vla-put-textstring elemento (cadr lst_val))
)
)
Listaat
)
)
)(princ)
)
 
ich habe die version 2011 überprüft.
die änderung im visuallisp des attributbearbeitungsprogramms funktioniert auch auf multiline, es ist genug, um die anerkennung zu haben, um eine rückkehr zum kopf mit \\p.
die syntax ist immer die gleiche:
(modif_attrib entity list_values)
wo:
unternehmen - ausgewählte einheit
list_values - liste von 2 items, die erste, string, ist das label, die zweite ist der wert zu ändern. bei multiline-attributen muss ein string sein, sonst kann es auch eine nummer sein.

es:
(modif_attrib (car(entsel))) (list "xyz")================================================================================================================================================================================================================================================================e' una stringa================================================================================================================================================================================================================================================================su piu' linee")
 
confutatis, du bist ein monster!!!
dank für die wertvolle hilfe und dank auch für die modifizierung meines programms mit vba anweisungen, die es viel kompakter gemacht.
über diese anweisungen, die ich leider nicht für nichts weiß, und auf denen ich die hilfe online eher "heiß" fand, könnten sie mir einige tipps zu irgendwelchen texten oder websites geben, von denen auf eine profitable weise die verwendung zu lernen?
dank wieder und guten tag.
 
selbst wenn die syntax sehr ähnlich ist, sind die anweisungen nicht vba, sondern visuallisp.

zu den seiten:http://www.afralisp.net/archive/methods/methods_ref.htm ich denke das beste, auch wenn unvollständig.
http://autocad.compago.it/guidasviluppatori2008/acadauto/idx_methods.phpdies ist auch in der online-hilfe von autocad in der stimme enthalten: anleitung für entwickler->activex und vba referenz->methods. die anweisungen sind in vba, aber sie können sie mit der vorherigen website vergleichen, um sie "übertragen" zu vlisp.
dann in jedem fall, da die methoden mehrere sind, müssen sie versuchen, wieder zu versuchen, bis sie finden, was gut für sie ist.
 

Statistik des Forums

Themen
58.521
Beiträge
499.056
Mitglieder
104.110
Neuestes Mitglied
ChristianR

Zurzeit aktive Besucher

Keine Mitglieder online.
Zurück
Oben