ACM-2025-03-02

Jahrgang: 2025
Ausgabe: 03
Autor: Markus Hoffmann
Programm: ACMTEXTSWAPPER.LSP
Funktionalität: Textinhalt von zwei Texten vertauschen. Unterstützt Texte, MTexte, Attribute, Attributdefinitionen, Multiführungen, Bemaßungstexte und Texte in Blöcken und Tabellen 
Format: LISP
Lauffähig ab: AutoCAD 2024 / BricsCADV24
Befehle: acmTeswa
Bezug: Online


Beschreibung
============

Textinhalte austauschen

Exotisches Problem oder gar nicht abwegig: Die Textinhalte zweier Objekte sollen ausgetauscht werden. 
Ja, es ist in aller Regel eine Kleinigkeit, einen der Texte in die Zwischenablage zu kopieren und/oder 
neu zu schreiben. Viel cooler ist es aber, das nicht machen zu müssen, sondern ein Tool dafür zu haben.
ACMTEXTSWAPPER.LSP stellt genau diese Funktion zur Verfügung. Das Tool fordert zur Wahl zweier 
Textobjekte auf und vertauscht anschließend ihre Inhalte. Alle übrigen Eigenschaften des Originalobjekts 
bleiben erhalten. Da es in Zeichnungsdateien manchmal nicht klar ist, um welche Art Text es sich bei 
einem Objekt handelt, kann folglich kein objektspezifisches Werkzeug verwendet werden. Daher funktioniert 
das Tool objektartübergreifend. Gemeint ist, dass die AutoCAD-Evolution viele verschiedene Textobjekte 
hervorgebracht hat und die Entwickler den Zugriff auf diese Objekte entsprechend unterschiedlich gestaltet 
haben. 
Ein Text kann ein einfaches Textobjekt, ein MText-Objekt, ein Attributs- oder Attributdefinitionsobjekt, 
Text einer Bemaßung, einer Führung, einer Multiführung, ein Text in einer Tabelle sein oder eines all 
dieser Objekte verschachtelt in einem Block und statt normalem Text könnte ein Schriftfeld angezeigt 
werden. Die per Code erreichbare übliche Eigenschaft für den Textinhalt „TextString“ ist entsprechend 
nicht immer verwendbar. 
Das Programm identifiziert selbständig sowohl das korrekte Objekt als auch die passende Eigenschaft und 
liest und schreibt die gewünschte Zeichenkette. Diese Identifikationsarbeit ist bis auf Ausnahmen 
ausgegliedert in die Sub-Funktion (mx:Object&TProp). Um den Code nicht unnötig aufzublähen, wurde der 
Trick verwendet, die Objektauswahl für die zu tauschenden Textinhalte mit der Funktion „GetSubEntity“ 
durchzuführen. Sie gibt das passende Objekt zurück, unerheblich, ob es verschachtelt ist oder nicht.Mit 
diesen Funktionen ausgestattet, erlaubt es das Tool, Textinhalte beispielsweise von einem MText und 
einem Text in einer Tabelle zu tauschen oder etwa von einem Text und einer Bemaßung.