Steuerzeichen und Unicode-Zeichen
In diesem LineLetter erfahren Sie, wie Sie spezielle Zeichen und Formatierungen in Beschriftungen von Fachschalenobjekten verwenden können. Konkret geht es darum, wie sich beispielsweise gestapelte bzw. tiefgestellte Zahlen in Flurstücksnummern oder chemischen Formeln präsentieren lassen.
Dabei müssen wir jedoch unterscheiden, ob es sich dabei um Steuerzeichen handelt, die AutoCAD hardcodiert automatisch interpretiert oder eine an der RTF-Syntax von Microsoft angelehnte Folge von Steuerzeichen des Absatztextes (MTEXT) ist.
Bestimmte Steuercodes interpretiert AutoCAD automatisch als Sonderzeichen. Sie können sowohl in einzeiligen als auch mehrzeiligen Texten verwendet werden. Sie leiten die Sonderzeichen durch %% ein, z.B.
Grad-Symbol (°) | %%d |
Plus-/Minus-Toleranz-Symbol (±) | %%p |
Durchmessersymbol (Ø) | %%c |
Unterstreichen | %%u |
Überstreichen | %%o |
Manche Sonderzeichen sind abhängig von der eingestellten Schriftart und lassen sich lediglich durch die Windows Zeichensatztabelle im Text einfügen.
Sie können anstelle der Steuercodes auch direkt Unicode-Werte verwenden. Die Interpretation der Schriftzeichen ist auch in diesem Fall vom gewählten Schriftfont abhängig. Geben Sie beispielsweis in einem einzeiligen Text den Code \U+2211 ein, erscheint das Summensymbol ∑.
Textformatierungen
Anders sieht es jedoch bei Textformatierungen aus. Um beispielsweise chemische Formelzeichen mit den tiefergestellten Zahlen für die Anzahl bestimmter Atome in einem Stoff bzw. Molekül darzustellen, sind Sie auf Formatierungen angewiesen, die allein den Absatztexten (MTEXT) vorbehalten sind, um Größe, Lage und die Textgestaltung zu steuern. Während der Text in der Zeichnung normal lesbar erscheint, finden Sie in der Eigenschaftenpalette bei der Eigenschaft Inhalt die komplexe Codierung für Inhalt und Formatierung.
Diese können Sie direkt in die Formulare der Fachschalenobjekte übernehmen. Leider lässt sich der Code nicht direkt aus der Eigenschaftenpalette kopieren. Führen Sie einfach nachstehenden Lisp-Code in die Befehlszeile aus und klicken das Absatztextobjekt an, um den Inhalt des Absatztextes in der Befehlszeile bzw. im Protokollfenster auszugeben:
(cdr (assoc 1 (entget (car (entsel)))))
Dann kopieren Sie den Inhalt in das Formular des betreffenden Objekts. Damit der Code im Aufgabenfenster korrekt interpretiert wird, muss als Symboltyp MTEXT ausgewählt sein.
Doch leider sieht das Ergebnis nicht so aus wie gewünscht: der tiefgestellte Modus bleibt auch im anschließenden Text erhalten und wird bei einer erneuten Tiefstellung weiter nach unten gerückt.
Das lässt sich nur umgehen, wenn nach der Tiefstellung ein Leerzeichen erscheint.
Das sieht aber nicht so richtig gut aus. An der Stelle des Leerzeichens sollten Sie in diesem Fall besser ein nicht sichtbares Zeichen platzieren, z.B. das Zeichen mit dem ASCII-Code 29 oder 30. Diese finden Sie zwar nicht auf der Tastatur, Sie können diese Zeichen aber auf anderem Wege eingeben:
Variante A: Über ein SQL-Statement
Wird der Text im Zuge eines Labeltextes generiert oder aber in einem Update-Statement verwendet, können Sie mit der Oracle-Funktion chr(<ASCII-Code>) das Zeichen einfügen.
update ga_pipe_tbl set label_text='H{\H0.7x;\S^2;'||chr(30)||'}S/NH{\H0.7x;\S^3;'||chr(30)||'}-Wäsche' where fid = 26292;
commit;
Variante B: Aus einem Texteditor einfügen
Manche Texteditoren lassen sich so einstellen, dass der Text als Hexadezimalzeichen dargestellt wird. Geben Sie an den entsprechenden Stellen den Wert 1D für 29 oder 1E für 30 ein, um das Steuerzeichen einzufügen.
Kopieren Sie zum Abschluss den resultierenden Text über die Zwischenablage in das Datenbankfeld ein.
Variante C: Eingabe über den Nummernblock der Tastatur
Jedes Zeichen des ASCII-Zeichensatzes lässt sich über den Nummernblock Ihrer Tastatur eingeben. Halten Sie einfach die ALT-Taste gedrückt und geben Sie anschließend den ASCII-Code über den Nummernblock der Tastatur ein und lassen anschließend die ALT-Taste los, wird das entsprechende Zeichen eingefügt. Natürlich sehen Sie das nicht bei den nicht sichtbaren Zeichen wie ASCII 0, 29 oder 31 nicht. Aber das Ergebnis stimmt wenigstens. Sollte anstelle des nicht sichtbaren Zeichens ein anderes erscheinen, müssen Sie dann doch auf eine der anderen beiden Varianten ausweichen.
© 12/2020 Mensch und Maschine acadGraph GmbH. Alle Rechte vorbehalten