| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY WIRD VON NVIDIA ZUM HÄNDLER DES JAHRES GEWÄHLT, eine Pressemitteilung
|
Autor
|
Thema: MText Höhe, Farbe, etc. ändern geht nicht -> Texthintergrund (2622 / mal gelesen)
|
zech Mitglied
Beiträge: 92 Registriert: 09.11.2004 Autocad Architecture 2022, 2024, 2025 Civil3D 2023, Revit 2023
|
erstellt am: 27. Mai. 2016 10:34 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich habe eine Lispanwendung mit der ich MText Höhen ändere. Beispiel: (setq a (entget (car (entsel)))) (setq a (subst (cons 40 7.0)(assoc 40 a) a)) (entmod a) Habe ich gerade eine MText geschrieben, kann ich mit diesem Codeschnipsel die Höhe ändern. Markiere ich dann den Text und stelle im Eigenschaftenfenster einen Texthintergrund ein (einfach nur das Häkchen setzen) kann ich mit aktiviertem Hintergrund auch die Höhe ändern. Stelle ich jetzt aber in den Eingenschaften den Hintergrund auf "Nein" ändert sich der Text nicht mehr, auch eine andere Farbe oder der Layer gehen nicht mehr einzustellen. (entmod a) liefert immer "nil" anstatt den geänderten Datensatz. Stelle ich den Hintergrund wieder auf "Ja" kann ich alle Änderungen machen. Wenn man den Hintergrund einmal eingestellt hat ist der Text nicht mehr ohne ihn mit Lisp änderbar, sehe ich das so richtig? Kann ich mit Lisp daran etwas ändern und den MText wieder "geradebiegen"? Danke
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Meldin Mitglied
Beiträge: 398 Registriert: 15.07.2011 ACA2020 Windows10
|
erstellt am: 27. Mai. 2016 10:58 <-- editieren / zitieren --> Unities abgeben: Nur für zech
Du änderst die PapierTextHöhe nach dem ändern stimmt diese nicht mit dem vorgegebenen Textstyle überein daher ist diese dann unzulässig.Probier mal : (setq a (car (entsel)))) (setpropertyvalue a "TextHeight" 7.0) ------------------ Gruß Wolfgang
Alias: Rabbit007 und Wolli1 [Diese Nachricht wurde von Meldin am 28. Mai. 2016 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
zech Mitglied
Beiträge: 92 Registriert: 09.11.2004 Autocad Architecture 2022, 2024, 2025 Civil3D 2023, Revit 2023
|
erstellt am: 27. Mai. 2016 11:13 <-- editieren / zitieren --> Unities abgeben:
Hallo Meldin, danke für die schnelle Antwort. Ich betrachte es als Workaround. Es funktioniert. Mit der Erklärung bin ich nicht so ganz konform, da ich auch nicht den Layer oder die Farbe ändern kann. mit "subst ...." kann ich gar nichts an diesen Daten ändern. Genau in dem Moment indem ich einmal nur den Texthintergrund an- und dann wieder ausgeschaltet habe. Ich werde die entsprechenden Stellen ändern, wahrscheinlich gibt es Inkompatibilitäten mit "altem" Lispcode. Danke Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 Alles
|
erstellt am: 27. Mai. 2016 13:13 <-- editieren / zitieren --> Unities abgeben: Nur für zech
Die Erklärung von Meldin sehe ich als falsch an, abgesehen davon das er die richtige, echte (Modell)Höhe ändert/ändern möchte, so ist das Problem eine fehlerhafte Programmierung seitens Adesk - ohne jetzt in den Tiefen nach irgendwas zu suchen. 1. Hat die Texthöhe des Stiles nichts mit dem vorhandenen Textobjekt zutun. 2. Ist die "Papier/Modellhöhe" eine Sache die bei Beschriftungs-("Text")Objekten angezeigt wird, wobei die "Papierhöhe" die angezeigte Höhe ist und die Modellhöhe die richtige/gespeichert Eigenschaft. Das beschriebene Problem betrifft jedoch ganz allgemein MTexte, auch welche nicht als Beschriftungsobjekt deklariert sind. (eine PapierTextHöhe ist keine Eigenschaft, sondern eine berechnete Größe vom System, basierend auf Höhe und den Eigenschaften des Beschr.Maßstabes) 3. Es fehlt einfach ein ordentliches "Objekt-Update" nach entfernen der Hintergrund-Info. Nach dem es nicht mehr funktioniert wie es sollte: Datei speichern,schließen,öffnen,testen..voila. Oder einfach das Objekt kopieren und mit dem neuen Objekt testen. Mit VL kein Problem, mit Entmod ist aber zunächst schluß. Mich würde es sehr interessieren wie sich das ganze in 200(4/5) bis 2007 verhielt. Wobei man noch erwähnen kann das die AutoLisp/DXF Datenspeicherung zum MText-Hintergrund generell etwas "schief" läuft aus AutoLisp/DXF-Sicht. ------------------ CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
zech Mitglied
Beiträge: 92 Registriert: 09.11.2004 Autocad Architecture 2022, 2024, 2025 Civil3D 2023, Revit 2023
|
erstellt am: 27. Mai. 2016 13:20 <-- editieren / zitieren --> Unities abgeben:
|
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 Alles
|
erstellt am: 27. Mai. 2016 15:40 <-- editieren / zitieren --> Unities abgeben: Nur für zech
Nachtrag: Wie vermutet war das Problem 2007 noch nicht vorhanden, ich nehme an das es mit 2008 kam (Start der Beschriftungsfunktionalität). Offenbar wurde das MText-Hintergrund Handling dabei geändert.In 2009 gibt es auch kein Problem. In 2011 gibt es auch kein Problem. 2012 unbekannt Und ab mind. 2013 gibt es das Problem. EDIT: Infos angepasst ------------------ CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Meldin Mitglied
Beiträge: 398 Registriert: 15.07.2011 ACA2020 Windows10
|
erstellt am: 28. Mai. 2016 10:55 <-- editieren / zitieren --> Unities abgeben: Nur für zech
Ja stimmt sieht wie ein eigenwilliger Fehler aus Sorry. Oben im Beitrag Text gestrichen und Code stehen gelassen. Daher sollte man nur auf die neuen LISP oder VL Befehle zurückgreifen. Unwichtige Anmerkung: Wie schon von CADFFM beschrieben werden die Daten nach dem ändern nicht richtig zurückgeschrieben. Hier scheint es so das ein einmal geändertet MText immer den Eintrag Background behällt. Dies kann man testen da wie mit Zechs Code eine Erstellung mit (entmod a) immer nil ergibt anstatt die neu erstellten entget Daten des neunen Objekts. Fügt man z.B. nach der subst Zeile
Code: (setq a (append a '((90 . 1) (63 . 1) (45 . 1.5) (441 . 0))))
ein funktioniert (entmod a) aufeinmal wieder aber man hat auch den Hintergrund wieder. ------------------ Gruß Wolfgang Alias: Rabbit007 und Wolli1 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |