Senkrechter aber nicht gedrehter Text in Planlegende [Risolto]

Tags:
  • Text
  • Senkrecht
  • Aber
  • Gerade

Hallo Liebe Community!

Ich beschäftige mich seit geraumer Zeit mit Planrahmen bzw. Legenden. Bevor ich mit Legenden gearbeitet habe, habe ich auf meinen Entwurfsplänen immer 2 Worte senkrecht geschrieben, bei denen die Buchstaben aber nicht um 90 Grad gedreht wurden (siehe Bsp. im Anhang). Die Eingabe im Textfeld, war also: Buschstabe-Enter-Buschstabe-Enter-.. usw. Nun habe ich mich gefragt, ob es eine Möglichkeit gibt eine Zelle für eine Planlegende zu konstruieren, die einen Text in dieser Form senkrecht schreibt.

Hat da jemand eine Idee?

Grüße
Alex S.

Allegati (1)

Type: image/png
79 scaricato
Size: 1,27 KiB

Show solution Hide solution

MID(Text;
Erstes_Zeichen;
Anzahl_Zeichen)
-
Gibt eine bestimmte Anzahl Zeichen einer Zeichenfolge ab einer bestimmten Stelle zurück

MID(@Attribut@;1;1)
MID(@Attribut@;2;1)
MID(@Attribut@;3;1)
MID(@Attribut@;4;1)
MID(@Attribut@;5;1)

jeweils einzeln abgesetzt

Namenlos gezeichnet in vollem Bewusstsein - ignorant, in eigen Augen vermutlich höflich, dennoch unhöflichst, unfreundlichst wer einen/viele vermutete - sich von alters erschließende Namen nennt.
[b]

Moin,

in einer Planlegende können "starre" Texte oder auch grafische Elemente beliebig eingefügt werden.
Das sollte also auch mit Deinen Text "Bauvorhaben" gehen.

Spannend wird es, wenn der Text NICHT "starr" sein soll sondern ein Attributwert (z.B. den Namen des Bauvorhabens) angezeigt werden soll.
Für den Fall:
Irgendwo in den Tiefen dieses Forums habe ich vor vielen Jahren mal eine Formel gefunden, die mehrzeilige Beschriftungen ermöglicht (Zeilenumbruch an einer bestimmten Stelle).
Im Prinzip könnte man versuchen, dies auf demselben Weg anzugehen (Zeilenumbruch nach jedem Buchstaben). Das wäre dann schon eine etwas komplexere Formel.
Ob das tatsächlich praktikabel ist kann ich nicht einschätzen, da ich nicht so der Formelexperte bin.
Vielleicht äussert sich ja noch jemand mit den entsprechenden Kenntnissen hier dazu.

Ganz ehrlich:
Manchmal muss man auch alte Zöpfe abschneiden, um Dinge einfach zu halten.
Ich würde pragmatisch drauf verzichten, sowas umzusetzen.
Aber manchmal muss man ja...

BG
Jens Maneke
AAP Sommerfeld

>>> Stell Dir vor, es geht und keiner kriegts hin...

Moin!

Genau, es geht um ein Attribut. Auf meiner Suche nach einer Lösung bin ich auch auf Ansätze dieser Formellösung gestoßen, allerdings ging es dabei nie um einen solchen Text.

Den "Zopf" habe ich vorerst auch "abgeschnitten" und die Zellen eben einfach gedreht. Nun fragte mich ein Stammkunde, ob man diese senkrechten Texte nicht wieder nehmen könnte. Ich habe ihm vorerst gesagt, das ginge im Zuge der Automatisierung der Rahmen nicht, aber ggf. hat ja jemand so eine Formel in petto.

LG
Alex S.

MID(Text;
Erstes_Zeichen;
Anzahl_Zeichen)
-
Gibt eine bestimmte Anzahl Zeichen einer Zeichenfolge ab einer bestimmten Stelle zurück

MID(@Attribut@;1;1)
MID(@Attribut@;2;1)
MID(@Attribut@;3;1)
MID(@Attribut@;4;1)
MID(@Attribut@;5;1)

jeweils einzeln abgesetzt

Namenlos gezeichnet in vollem Bewusstsein - ignorant, in eigen Augen vermutlich höflich, dennoch unhöflichst, unfreundlichst wer einen/viele vermutete - sich von alters erschließende Namen nennt.
[b]

.... ob mit einer buchstabenzahl höher als die länge des attributs ein fehler auftritt hab ich nicht probiert.

alternativ könnte man - ab 2022 - auch eine phytonbeschriftung machen...eine Excel-Formel probieren oder ein VBS-Skript mit einer FOrmel schreiben.

Namenlos gezeichnet in vollem Bewusstsein - ignorant, in eigen Augen vermutlich höflich, dennoch unhöflichst, unfreundlichst wer einen/viele vermutete - sich von alters erschließende Namen nennt.
[b]

@Markus_Philipp Top!

Genau so sollte es nachher aussehen. Es ist zwar einmal Arbeit für jeden Buchstaben eine Zelle zu definieren, aber da muss man dann durch.

Vielen Dank für die Schnellen Antworten!

Grüße

Alex S.

Mit vbs funktioniert das Ganze so:

Function vertical(strString)
	 strRes=""
	 
     For i=1 To Len(strString)
        strRes = strRes + Mid(strString,i,1) + vbCr
     Next
	 
	 vertical = strRes
End Function

Diesen Code in STD\vbs\functions.vbs reinkopieren.
Im VTB aufrufen mit v:vertical(@507@)

In Python ist es noch einfacher:

def vertical(s):
    res=""
    for c in range(0, len(s)):
       res = res + s[c] + "\n"
    return res

Diesen Code in die Datei STD\Scripts\functions.py reinkopieren.
Im VTB aufrufen mit p:vertical(@507@)

Trotz der prinzipiellen Möglichkeit, so etwas zu implementieren, ist es vielleicht sinnvoller,
die Zielstellung an die eigenen Möglichkeiten anzupassen.