Hallo liebe Leute, hier eine Verständnisfrage (für mich als Lisp-Anfänger) zum Ändern von Texten mit entmod:
Im Lisp-Tutorial von Axel-Strube Zettler kann man in Lektion "Flickschusterei" folgendes nachlesen:
entmod kann aufgerufen werden mit
A) einer vollständigen Liste (entity-name+dxf-codes) oder
B) nur mit entity-namen und dem zu ändernden Wert.
Nun ist B) einfacher und hat bei mir auch immer gut funktioniert. Beim Ändern von Texten geht B) aber anscheinend nur bei "Text" und nicht bei "MText". Bei "Mtext" bin ich gezwungen auf A) zurückzugreifen. Hat jemand dafür eine Erklärung?
Beispiel:
Warum funktioniert dieser Ausdruck mit Text, aber nicht mit MText?
(entmod (list (assoc -1 (entget(car(entsel)))) (cons 1 "???")))
1) Bei einem entity "TEXT" wird der dxf-code 1 wie vorgesehen mit "???" überschrieben.
2) Bei einem entity "MTEXT" wird der dxf-code 1 fälschlicherweise mit "" überschrieben, so daß er in der Zeichnung nicht mehr zu sehen ist. Dies läßt sich nur mit
3) umgehen, was sowohl bei "Text" als auch bei "Mtext" funktioniert:
(setq ent (entget(car(entsel))))
(entmod (subst (cons 1 "???") (assoc 1 ent) ent))
Übrigens: So an der Konsole eingegeben funktioniert dann "zurück" nicht. Liegt das daran, daß so ein Lisp-Ausdruck kein "Programm" ist, das z.B. über "c:..." erstellt werden kann?
------------------
Gruß,
Tom
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP