ACM-2024-03-03

Jahrgang: 2024
Ausgabe: 03
Autor: Thomas Krüger
Programm: ACM-HATCHGAP.LSP
Funktionalität: Freistellung von Textobjekten innerhalb von Schraffuren
Format: LISP
Lauffähig ab: AutoCAD 2008
Befehle: HATCHGAP
Bezug: Online


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

Schraffurlücken

Für die Darstellung von Textinhalten kennt AutoCAD unter anderem Text- und MText-Objekte sowie an 
Blockreferenzen gebundene Attribute. Sind diese vor oder hinter Schraffuren platziert, ist die gute 
Lesbarkeit nicht mehr gegeben. Um dies zu verbessern, kann das hier vorgestellte Tool ACM-HATCHGAP.LSP
eine gute Hilfe sein, um Textobjekte innerhalb der umgebenen Schraffur freizustellen.
Nach dem Laden der LISP-Datei und Starten des Programms mit dem Befehl HATCHGAP wird der Anwender 
aufgefordert, die freizustellenden Textobjekte zu wählen. Akzeptiert werden dabei DTEXTE und MTEXTE 
sowie Blockreferenzen mit Attributen, die auch mehrzeilig sein können.
Für alle Textobjekte des Auswahlsatzes werden anschließend eventuell verdeckende Schraffuren ermittelt 
und für Attribute dazu temporär entsprechende Ersatztextobjekte erstellt. Die Ermittlung der verdeckenden 
Schraffuren geschieht für jedes Textobjekt über die SSGET-Funktion im Modus „CrossingPolygon“ mit dem 
textumschreibenden Rechteck als Auswahlbereich. Damit SSGET korrekt funktioniert, wird zwischendurch auf 
Zeichnungsgrenzen gezoomt, zudem werden die Schraffurmuster auf „ANSI37“ und die Schraffurskalierungen 
auf 1.0 gesetzt. Die Bildschirmkoordinaten lassen sich vorher für die spätere Wiederherstellung der 
Ansicht auslesen und speichern, ebenso die jeweiligen Schraffureigenschaften. Wurden Schraffuren gefunden, 
die das Textobjekt verdecken, wird die Textumrandung von den Schraffurobjekten abgezogen. Der Einfachheit 
halber geschieht das für jede Schraffur über den Befehl „HATCHEDIT“.
Nach Beendigung des Befehls werden die ursprüngliche Ansicht und die ursprünglichen Schraffureigenschaften 
wieder hergestellt und die temporär erzeugten Ersatztextobjekte gelöscht. Mithilfe des „UNDO“-Befehls 
lassen sich die Resultate des HATCHGAP-Befehls leicht wieder rückgängig machen.
