| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Text nach Inhalt löschen (2154 / mal gelesen)
|
fmfm Mitglied Facility Management
Beiträge: 258 Registriert: 18.10.2016 AutoCad 2019
|
erstellt am: 24. Jan. 2017 12:12 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen ist es möglich alle Texte in einer Zeichnung aufeinmal zu löschen. Gefiltert werden soll nach Textinhalt. Der Textinhalt ist immer gleich und zwar '12 Leerzeichen'. Manchmal hab ich glück und die Texte liegen nur auf einem bestimmten Layer worauf sonst nichts liegt. Dann benutz ich den Befehl: "laydel". Dieser Text mit den 12 Leerzeichen ist leider auch in Blöcken vorhanden. Vielen Dank Liebe Grüsse
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 21533 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 24. Jan. 2017 12:21 <-- editieren / zitieren --> Unities abgeben: Nur für fmfm
|
cadffm Moderator 良い精神
Beiträge: 21533 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 24. Jan. 2017 12:25 <-- editieren / zitieren --> Unities abgeben: Nur für fmfm
In Blöcken Nur per Programmierung oder mit etwas Glück Ungetestet Bereinigen Falls das nicht geht: Suchen und ersetzen mit einem Leerzeichen, dann bereinigen Ob das bereinigen in Blöcken geht mußt du testen, nicht in Blöcken klappts auf jeden Fall.
Ich hatte das 'in Blöcken' überlesen. EDIT: Geht nicht [Bereinigen der Objekte in Blöcken] Wenn es immer wieder die selben Blöcke sind, neudefinieren. ------------------ CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.
|
erstellt am: 24. Jan. 2017 14:19 <-- editieren / zitieren --> Unities abgeben: Nur für fmfm
|
fmfm Mitglied Facility Management
Beiträge: 258 Registriert: 18.10.2016 AutoCad 2019
|
erstellt am: 24. Jan. 2017 17:15 <-- editieren / zitieren --> Unities abgeben:
|
cadffm Moderator 良い精神
Beiträge: 21533 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 24. Jan. 2017 17:53 <-- editieren / zitieren --> Unities abgeben: Nur für fmfm
|
fmfm Mitglied Facility Management
Beiträge: 258 Registriert: 18.10.2016 AutoCad 2019
|
erstellt am: 25. Jan. 2017 10:49 <-- editieren / zitieren --> Unities abgeben:
hi (defun C ELNULLTEXT(/ B O A) (vl-load-com) (setq A 0) (vlax-for B (vla-get-blocks(vla-get-activedocument(vlax-get-acad-object))) (vlax-for O B (if(and(member(strcase(vla-get-objectname O))'("ACDBTEXT" "ACDTEXT")) (vl-string-trim " \t\n" " \t\n STR \n\t ") (not(vl-catch-all-error-p(vl-catch-all-apply 'vla-delete (list O)))) ) (setq A (1+ A)) ) ) ) (princ (strcat "\n"(itoa A) " Texte gelöscht ...\n")) (princ) ) Wieso werden dabei alle Texte gelöscht. Ich komm nicht ganz dahinter. In dem Fall wollte ich nur "STR"-Texte löschen lassen.
Bei den Fett Markierten habe ich das "M"text weggenommen weil ich nur Texte habe und nicht Mtexte. vielen Dank Gruss Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
fmfm Mitglied Facility Management
Beiträge: 258 Registriert: 18.10.2016 AutoCad 2019
|
erstellt am: 25. Jan. 2017 11:03 <-- editieren / zitieren --> Unities abgeben:
|
cadffm Moderator 良い精神
Beiträge: 21533 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 25. Jan. 2017 11:15 <-- editieren / zitieren --> Unities abgeben: Nur für fmfm
Weil du den Code geändert hast und nicht bloß was den Textwert angeht. Der originale Code funktioniert GROB so: Lösche temporär alle Leerzeichen aus Text und MText Objekten, wenn der Textwert danach 0 Zeichen lang ist, dann lösche das Objekt. Du hast den Link zu einem Tutorial, dort gibt dann noch eins zwei weitere, arbeite diese Schritt für Schritt durch, teste alles was dort geschrieben steht selbst, rückwärts und vorwärts bis verstanden ist.
Das dauert ein paar Wochen und Monate, aber die Basics sitzen dann soweit das du Code lesen und verstehen kannst, demnach einschätzen und verändern. Erst dann würde ich dir raten mit eigenen oder auch fremden Codeschnipseln an Produktivdaten zu gehen. Im besten Fall, wie aktuell, merkt man das was schief läuft, aber nicht immer. Teste mit dem Einzeiler aus der Hilfe, mit eigenen Werten. Direkt in der Befehlszeile kannst du die FunktionSweise von der Lispfunktion testen, völlig gefahrlos dazu. Aber "aktuell" bringt dir das wohl noch nichts. ------------------ CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.
|
erstellt am: 25. Jan. 2017 11:37 <-- editieren / zitieren --> Unities abgeben: Nur für fmfm
|
fmfm Mitglied Facility Management
Beiträge: 258 Registriert: 18.10.2016 AutoCad 2019
|
erstellt am: 25. Jan. 2017 11:57 <-- editieren / zitieren --> Unities abgeben:
hi, ich schon wieder (defun C ELNULLTEXT(/ B O A TEXTINHALT) (vl-load-com) (setq TEXTINHALT " ") (setq A 0) (vlax-for B (vla-get-blocks(vla-get-activedocument(vlax-get-acad-object))) (vlax-for O B (if(and(member(strcase(vla-get-objectname O))'("ACDBTEXT" "ACDBMTEXT")) (=(vla-get-textstring O))TEXTINHALT) (not(vl-catch-all-error-p(vl-catch-all-apply 'vla-delete (list O)))) ) (setq A (1+ A)) ) ) ) (princ (strcat "\n"(itoa A) " Texte gelöscht ...\n")) (princ) ) Appload: Command: ; error: bad argument type: fixnump: nil Kommando Ausführen: Command: DELNULLTEXT nil (alle Texte werden gelöscht) Warum?
[Diese Nachricht wurde von fmfm am 25. Jan. 2017 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 21533 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 25. Jan. 2017 12:01 <-- editieren / zitieren --> Unities abgeben: Nur für fmfm
Da kannst du nichts dafür, aber schon beim laden hast du Fehlermeldungen bekommen, dann den Code ausführen? No Risk No Fun? Der Code wurde nun angepasst von CADmium, kopiere den noch einmal JETZT neu. ------------------ CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
fmfm Mitglied Facility Management
Beiträge: 258 Registriert: 18.10.2016 AutoCad 2019
|
erstellt am: 25. Jan. 2017 12:10 <-- editieren / zitieren --> Unities abgeben:
|