| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Verzweifle an MText Gruppencode (909 mal gelesen)
|
Kucklies Mitglied
Beiträge: 5 Registriert: 09.06.2004
|
erstellt am: 09. Jun. 2004 11:11 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich habe bis jetzt einiges mit den Gruppencodes realisiert. Nur bei MText funktioniert das Ganze nicht. Habe z.B. folgendes Prog: (defun c:bsp1( / data) (setq data(entget(car(entsel "Text wählen: ")))) (entmod (list (assoc -1 data) '(40 . 3.5) ) ) ) Der Gruppencode 40 wird in der Hilfe als "ursprüngliche nominale Texthöhe" bezeichnet. Wende ich das Programm an, verschwindet der Text. Mit drücken von CTRl-A erscheinen dann 3 Punkte.
Bei einzeiligem Text funktioniert das Ganze. Weiß jemand weiter? Gruß Bernhard
------------------ Bernhard Kucklies Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 09. Jun. 2004 11:38 <-- editieren / zitieren -->
Zitat: Original erstellt von Kucklies: Hallo, ich habe bis jetzt einiges mit den Gruppencodes realisiert. Nur bei MText funktioniert das Ganze nicht.Habe z.B. folgendes Prog: (defun c:bsp1( / data) (setq data(entget(car(entsel "Text wählen: ")))) (entmod (list (assoc -1 data) '(40 . 3.5) ) ) )
Was passiert, wenn Du die komplette Entity-Liste modifizierst und an ENTMOD übergibst? Also (entmod (subst '(40 . 3.5) (assoc 40 data) data)) Tom Berger
------------------ Architekturwerkzeuge für AutoCAD: http://www.archtools.de |
Kucklies Mitglied
Beiträge: 5 Registriert: 09.06.2004
|
erstellt am: 09. Jun. 2004 14:02 <-- editieren / zitieren --> Unities abgeben:
Das ist ja genial. Warum bin ich nicht selbst darauf gekommen? Es funktioniert. es läßt sich sogar die referenzierte Breite des Rechtecks(GC 41) an die tatsächliche Textbreite(GC 42) anpassen. Ist dises Verhalten eigentlich fehlerhaft? In der Literatur findet man immer wieder Hinweise, daß die Funktion "entmod" nur die geänderten Daten benötigt, und die anderen ignoriert. Oder stellen MTexte hier weitergehende Anforderungen? Gibt`s noch mehr Entity-Typen die sich derart verhalten? Grüße und vielen Dank Bernhard ------------------ Bernhard Kucklies Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 09. Jun. 2004 14:12 <-- editieren / zitieren -->
Zitat: Original erstellt von Kucklies: Ist dises Verhalten eigentlich fehlerhaft? In der Literatur findet man immer wieder Hinweise, daß die Funktion "entmod" nur die geänderten Daten benötigt, und die anderen ignoriert. Oder stellen MTexte hier weitergehende Anforderungen? Gibt`s noch mehr Entity-Typen die sich derart verhalten?
Es gab mW schon seit R13 oder R14 Entities, die diese Kurzform nicht akzeptierten. Ohne es jetzt getestet zu haben, vermute ich bei LWPolylinien dasselbe Verhalten. Ich übergebe prinzipiell die komplette Entity-Liste, aber auch da gibt es bei einigen Entities Probleme mit bestimmten exotischen Gruppencodes. Und natürlich muss man beachten, dass seit dem Umstieg auf objektorientiertes Programmieren die Entity-Listen keine ASSOC-Listen mehr sind - bei MTEXT hast Du z.B. jede Menge Elemente mit Gruppencode 1, bei LWPolylinien jede Menge Elemente mit Gruppencode 10 usw. Tom Berger
------------------ Architekturwerkzeuge für AutoCAD: http://www.archtools.de |
Kucklies Mitglied
Beiträge: 5 Registriert: 09.06.2004
|
erstellt am: 09. Jun. 2004 14:19 <-- editieren / zitieren --> Unities abgeben:
|