| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY bietet das umfangreichste Ökosystem von B2B als auch B2C-Lösungen für IT-Akteure auf dem Markt, eine Pressemitteilung
|
Autor
|
Thema: MTexte in Text umwandeln (10205 mal gelesen)
|
furter Mitglied
Beiträge: 485 Registriert: 01.03.2004 Windows 10 Autodesk Map 3D 2023 AEC 2023
|
erstellt am: 10. Jun. 2004 11:06 <-- editieren / zitieren --> Unities abgeben:
Hallo Kann ich in einer Zeichnung sämtliche MTexte auf verschiedenen Ebenen in einem Guss in Texte (Ursprung) umwandeln, ohne dass deren Layer verändert wird. Gruss furter [Diese Nachricht wurde von furter am 10. Jun. 2004 editiert.] [Diese Nachricht wurde von furter am 10. Jun. 2004 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Berliner Mitglied Konstrukteur
Beiträge: 407 Registriert: 27.04.2004
|
erstellt am: 10. Jun. 2004 11:29 <-- editieren / zitieren --> Unities abgeben: Nur für furter
Hallo furter, weiß nicht ob´s so gemeint war, aber um aus Mtext normalen Text zu machen, kannst Du ihn z.B. auflösen mit _explode Der Layer bleibt, Text ist dann mit ddedit normal editierbar. Freundliche Grüsse Berliner
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
furter Mitglied
Beiträge: 485 Registriert: 01.03.2004 Windows 10 Autodesk Map 3D 2023 AEC 2023
|
erstellt am: 10. Jun. 2004 11:36 <-- editieren / zitieren --> Unities abgeben:
|
Kramer24 Ehrenmitglied V.I.P. h.c. Architekt
Beiträge: 5896 Registriert: 09.11.2001 Acad Architecture 2023 WIN 10
|
erstellt am: 10. Jun. 2004 11:58 <-- editieren / zitieren --> Unities abgeben: Nur für furter
Zitat: Original erstellt von furter: Wenn Mtexte auf verschiedenen Layer vorhanden sind, werden sie nach dem "Sprengen" auf Layer 0 abgelegt.
Das ist nicht richtig. Die Texte liegen auf dem aktuellen Layer. Du musst also layerweise "auflösen". Aber vielleicht gibt's da noch 'ne andere Lösung...
Lothar
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
furter Mitglied
Beiträge: 485 Registriert: 01.03.2004 Windows 10 Autodesk Map 3D 2023 AEC 2023
|
erstellt am: 10. Jun. 2004 12:04 <-- editieren / zitieren --> Unities abgeben:
Genau das ist das Problem. Ich möchte nicht Layer-weise sprengen, sondern sämtliche Mtexte in der Zeichnung auf einmal. Danach sollten alle Texte ihren ursprünglichen Layer ausweisen. Gruss furter Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 10. Jun. 2004 13:15 <-- editieren / zitieren -->
Zitat: Original erstellt von furter: Genau das ist das Problem. Ich möchte nicht Layer-weise sprengen, sondern sämtliche Mtexte in der Zeichnung auf einmal. Danach sollten alle Texte ihren ursprünglichen Layer ausweisen.
Naja, um das zu automatisieren brauchst Du dann halt ein paar Zeilen LISP. Alle MTEXTe selektieren, und dann für jedes einzelne den aktuellen Layer auf den MTEXT-Layer legen und das Teil dann explodieren lassen. Ohne Test hier eingehackt lautet das dann ungefähr so: (defun c:mt-explode (/ sset mt lay counter) (setq counter 0) (if (setq sset (ssget "X" '((0 . "MTEXT")))) (repeat (sslength sset) (setq mt (ssname counter sset) lay (cdr (assoc 8 (entget mt))) counter (1+ counter) ) (command "._layer" "_t" lay "_on" lay "_u" lay "_set" lay "") (command "._explode" mt) ) ) (prin1) ) Tom Berger ------------------ Architekturwerkzeuge für AutoCAD: http://www.archtools.de |
furter Mitglied
Beiträge: 485 Registriert: 01.03.2004 Windows 10 Autodesk Map 3D 2023 AEC 2023
|
erstellt am: 10. Jun. 2004 13:34 <-- editieren / zitieren --> Unities abgeben:
Hallo Tom Berger Danke für Deine Antwort. Leider hat's noch nicht funktioniert. ; Fehler: Fehlerhafter Argumenttyp: lselsetp 0 Ich kenne die Lisp-Befehle nicht. Kannst Du mir ein gutes Buch empfehlen. Gruss furter Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 10. Jun. 2004 14:05 <-- editieren / zitieren -->
Zitat: Original erstellt von furter: Hallo Tom BergerDanke für Deine Antwort. Leider hat's noch nicht funktioniert. ; Fehler: Fehlerhafter Argumenttyp: lselsetp 0 Ich kenne die Lisp-Befehle nicht. Kannst Du mir ein gutes Buch empfehlen. Gruss furter
Ersetze "(ssname counter sset)" durch "(ssname sset counter)", dann sollte es funktionieren. Ich hab' AutoLISP mit Günther Scheuermann-Stählers Buch gelernt. Es wird leider nicht mehr aufgelegt, aber antiquarisch wird es ab und an noch angeboten. Es ist keineswegs veraltet! Aber es geht ganz gut auch ohne Buch. Einige der hier mitschreibenden AutoLISPler haben Tutorials auf Ihren Webseiten abgelegt. Didaktisch sehr gut finde ich Axels Seiten auf http://www.autolisp-tutorial.mapcar.net/. Tom Berger ------------------ Architekturwerkzeuge für AutoCAD: http://www.archtools.de |
furter Mitglied
Beiträge: 485 Registriert: 01.03.2004 Windows 10 Autodesk Map 3D 2023 AEC 2023
|
erstellt am: 10. Jun. 2004 14:15 <-- editieren / zitieren --> Unities abgeben:
|
furter Mitglied
Beiträge: 485 Registriert: 01.03.2004 Windows 10 Autodesk Map 3D 2023 AEC 2023
|
erstellt am: 11. Jun. 2004 23:42 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von tom.berger: Ersetze "(ssname counter sset)" durch "(ssname sset counter)", dann sollte es funktionieren.Ich hab' AutoLISP mit Günther Scheuermann-Stählers Buch gelernt. Es wird leider nicht mehr aufgelegt, aber antiquarisch wird es ab und an noch angeboten. Es ist keineswegs veraltet! Aber es geht ganz gut auch ohne Buch. Einige der hier mitschreibenden AutoLISPler haben Tutorials auf Ihren Webseiten abgelegt. Didaktisch sehr gut finde ich Axels Seiten auf http://www.autolisp-tutorial.mapcar.net/. Tom Berger
Hallo Tom Berger Ich bedanke mich noch einmal recht herzlich für Deine Hilfe. Und besten Dank für den LSP-Link, auf den ersten Blick sieht dieser zwar etwas komisch aus, aber nach den ersten "Klicks" versteht man die Botschaft. Ich werde jetzt via diesen Link eine private Weiterbildung absolvieren. Und nebenbei: Ich wusste gar nicht, welche Möglichkeiten in AutoCad vorhanden sind! Gruss furter
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
molo Mitglied Dipl. Ing. Versorgungstechnik
Beiträge: 384 Registriert: 16.07.2002 Windows 7 64 bit, AutoCAD MEP 2012
|
erstellt am: 29. Jun. 2006 17:39 <-- editieren / zitieren --> Unities abgeben: Nur für furter
Die Lisp Funktioniert bei mir nur, wenn ich keinen Mtext in einem Layout habe. Deshalb habe ich den ssget-Ausdruck geändert. Leider funktioniert es nicht. Ich bekomme folgende Fehlermeldung "; Fehler: Fehlerhafter SSGET-Listenwert" Meine Lisp sieht folgendermassen aus.
(defun c:mt-explode (/ sset mt lay counter) (setq counter 0) (if (setq sset (ssget "X" '( (-4 . <AND) (0 . "MTEXT") (67 . "0") (-4 . AND> ) ))) (repeat (sslength sset) (setq mt (ssname sset counter) lay (cdr (assoc 8 (entget mt))) counter (1+ counter) ) (command "._layer" "_t" lay "_on" lay "_u" lay "_set" lay "") (command "._explode" mt) ) ) (prin1) ) ------------------ Schöne Grüsse aus dem Herzen Hamburgs Morten Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
marc.scherer Ehrenmitglied V.I.P. h.c. CAD-Administrator
Beiträge: 2494 Registriert: 02.11.2001 Windows 10 64bit AutoCAD Architecture 2018/2019 (deu/eng) AEC-Collection 2019 (Revit und Zeugs) Wenn sich's nicht vermeiden läßt: D-A-CH Erweiterung (mies implementierter Schrott)
|
erstellt am: 29. Jun. 2006 18:02 <-- editieren / zitieren --> Unities abgeben: Nur für furter
Hi Molo, zwei Denkfehler: 1. Code 67 geht IMHO nicht 2. AND ist bei den Filterlisten standardmäßig "aktiviert" Du benötigst <AND nur bei Schachtelungen. Versuch's so: Das -(cons 410 (getvar "ctab"))- nimmt immer das aktuelle Layout.
Code:
(defun C:MT-EXPLODE (/ SSET MT LAY COUNTER) (setq COUNTER 0) (if (setq SSET (ssget "X" (list '(0 . "MTEXT")(cons 410 (getvar "ctab"))) ) ) (repeat (sslength SSET) (setq MT (ssname SSET COUNTER) LAY (cdr (assoc 8 (entget MT))) COUNTER (1+ COUNTER) ) (command "._layer" "_t" LAY "_on" LAY "_u" LAY "_set" LAY "") (command "._explode" MT) ) ) (prin1) )
...------------------ Ciao, Marc Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
molo Mitglied Dipl. Ing. Versorgungstechnik
Beiträge: 384 Registriert: 16.07.2002 Windows 7 64 bit, AutoCAD MEP 2012
|
erstellt am: 30. Jun. 2006 09:36 <-- editieren / zitieren --> Unities abgeben: Nur für furter
Danke Marc, da habe ich mich zum ersten mal so ein wenig in den ssget-Befehl gewagt und gleich funktioniert es nicht. Ich hatte mir in einer einfachen Zeichnung über dien DWG-Datenbankviewer die einzelnen Elemente angeschaut und erkannt das "67.0" ansich den Modelbereich beschreiben müsste. Schade das es nicht funktioniert hat. Ich war mir nicht sicher ob ssget die Argumente mit UND oder ODER verknüpft. Deswegen habe ich es noch zusätlich eingegeben. Wenn meine Beobachtung richtig ist ("67.0" = Modelberech), warum erkennt IMHO diesen Gruppencode dann nicht an?
------------------ Schöne Grüsse aus dem Herzen Hamburgs Morten Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
marc.scherer Ehrenmitglied V.I.P. h.c. CAD-Administrator
Beiträge: 2494 Registriert: 02.11.2001 Windows 10 64bit AutoCAD Architecture 2018/2019 (deu/eng) AEC-Collection 2019 (Revit und Zeugs) Wenn sich's nicht vermeiden läßt: D-A-CH Erweiterung (mies implementierter Schrott)
|
erstellt am: 30. Jun. 2006 12:16 <-- editieren / zitieren --> Unities abgeben: Nur für furter
Zitat: Original erstellt von molo: Wenn meine Beobachtung richtig ist ("67.0" = Modelberech), warum erkennt IMHO diesen Gruppencode dann nicht an?
Hi Molo, "IMHO" heißt sinngemäß: "meiner bescheidenen Meinung nach" Das ergibt dann: Zitat: Original erstellt von molo: Wenn meine Beobachtung richtig ist ("67.0" = Modelberech), warum erkennt meiner bescheidenen Meinung nach diesen Gruppencode dann nicht an?
Hmm, *kopfkratz*. Wie auch immer. Auch code 67 geht. Du mußt den nur richtig verwenden. '(67 . 0) also die Null als Integer, nicht als String. Komfortabler ist für mich aber der (cons 410 (getvar "ctab")). BTW: Du kommst aus Eppendorf? ------------------ Ciao, Marc Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADchup Ehrenmitglied V.I.P. h.c.
Beiträge: 3336 Registriert: 14.03.2001 Sicher ist, dass nichts sicher ist. Selbst das nicht. Joachim Ringelnatz
|
erstellt am: 30. Jun. 2006 12:21 <-- editieren / zitieren --> Unities abgeben: Nur für furter
|