GDL-Text hochgestellt möglich ?
Anonymous
Nicht anwendbar
Optionen
- Als neu kennzeichnen
- Lesezeichen
- Abonnieren
- Stummschalten
- RSS-Feed abonnieren
- Direktlink dieser Nachricht
- Anstößigen Inhalt melden
am 2008-08-16 09:15 AM
2008-08-16
09:15 AM
Ist es mit GDL möglich, bei einer Zahl Nachkommastellen als erhöhten Text darzustellen ?
Beispiel
100,0 soll 100 ohne ohne irgend einen Zusatz ergeben
100,5 soll 100 mit hochgestellter (kleiner) 5 ergeben.
[ 16. August 2008, 09:18: Beitrag editiert von: Egon ]
Beispiel
100,0 soll 100 ohne ohne irgend einen Zusatz ergeben
100,5 soll 100 mit hochgestellter (kleiner) 5 ergeben.
[ 16. August 2008, 09:18: Beitrag editiert von: Egon ]
6 ANTWORTEN 6
Optionen
- Als neu kennzeichnen
- Lesezeichen
- Abonnieren
- Stummschalten
- RSS-Feed abonnieren
- Direktlink dieser Nachricht
- Anstößigen Inhalt melden
am 2008-08-18 10:28 AM
2008-08-18
10:28 AM
das wäre ansatz nummer 1; rundet aber nicht nur auf ,0 und ,5 sondern auch auf ,1 ,2 ,3
!zahl = -123.456
!nkst = 2 ! Nachkommastellen
!sgr = 3 ! schriftgrösse
define style "textformat" "Arial Westlich", sgr*50/glob_scale , 1, 0
define style "textformathoch" "Arial Westlich", 0.65*sgr*50/glob_scale , 1, 0
ganzzahl = int(abs(zahl))
txtganzzahl = str(ganzzahl,1,0)
nachkomma = int(0.5+10^nkst *(abs(zahl) - int(abs(zahl))))
if abs(zahl) = zahl then
plusminus = ""
else
plusminus = "-"
endif
set style "textformat"
text2 0,0,plusminus+txtganzzahl
add2 STW (plusminus) / 1000 * A_ + STW (txtganzzahl) / 1000 * A_ , 0
if nkst <> 0 then
if nachkomma <> 0 then
set style "textformathoch"
text2 0,0,nachkomma
endif
endif
end
Anonymous
Nicht anwendbar
Optionen
- Als neu kennzeichnen
- Lesezeichen
- Abonnieren
- Stummschalten
- RSS-Feed abonnieren
- Direktlink dieser Nachricht
- Anstößigen Inhalt melden
am 2008-08-18 11:02 AM
2008-08-18
11:02 AM
Schaut vielversprechend aus. Vielen Dank.
Werde das mal genauer anschauen, testen und berichten.
Werde das mal genauer anschauen, testen und berichten.
Optionen
- Als neu kennzeichnen
- Lesezeichen
- Abonnieren
- Stummschalten
- RSS-Feed abonnieren
- Direktlink dieser Nachricht
- Anstößigen Inhalt melden
am 2008-08-18 11:37 AM
2008-08-18
11:37 AM
hier noch ein anderer ansatz (für archicad 9 und höher):
praktisch ist dabei, dass eine hochgestellte 0 ohne weitere bastelei unterdrückt wird. man kann das übrigens auch direkt zur umrechnung von einheiten nehmen.
weitere details findest du dazu bei selfgdl.de
[ 18. August 2008, 11:43: Beitrag editiert von: zzyzx ]
mit "auf 0.5" solltest du dein ziel erreichen.
! werte im bibliothekselement anlegen
! zahl = -123.7123
! nkst = 2
! sgr = 3
! methode
!!!!!!!!!!!!!!!!!!!!!!!! parameter skript
values "methode" "aus","auf 0.5","auf 0.25","auf 0.1","auf 0.01"
!!!!!!!!!!!!!!!!!!!!!!!! 2d skript
define style "textformat" "Arial Westlich", sgr*50/glob_scale , 1, 0
define style "textformathoch" "Arial Westlich", 0.65*sgr*50/glob_scale , 1, 0
set style "textformat"
if methode = "aus" then txtzahl = str{2}("%*01.0",zahl,txtnkst)
if methode = "auf 0.5" then txtzahl = str{2}("%*11.0",zahl,txtnkst)
if methode = "auf 0.25" then txtzahl = str{2}("%*21.0",zahl,txtnkst)
if methode = "auf 0.1" then txtzahl = str{2}("%*31.0",zahl,txtnkst)
if methode = "auf 0.01" then txtzahl = str{2}("%*41.0",zahl,txtnkst)
text2 0,0,txtzahl
add2 stw(txtzahl)/1000*GLOB_SCALE,0
set style "textformathoch"
text2 0,0,txtnkst
end
praktisch ist dabei, dass eine hochgestellte 0 ohne weitere bastelei unterdrückt wird. man kann das übrigens auch direkt zur umrechnung von einheiten nehmen.
weitere details findest du dazu bei selfgdl.de
[ 18. August 2008, 11:43: Beitrag editiert von: zzyzx ]
Anonymous
Nicht anwendbar
Optionen
- Als neu kennzeichnen
- Lesezeichen
- Abonnieren
- Stummschalten
- RSS-Feed abonnieren
- Direktlink dieser Nachricht
- Anstößigen Inhalt melden
am 2008-08-18 07:04 PM
2008-08-18
07:04 PM
Also die Skripts verstehe ich soweit.
Mein Ziel ist die Beschriftung einer Tür:
80 Hochzahl 5 / 200 Hochzahl 5 statt 80,5/200,5
Da müssten lt. den oben angeführten Skripts 5 Einsetzpunkte (zwei für die Ganzzahlen, zwei für die hochgestellten Zahlen und einen für den Querstrich) definiert werden. Und wenn die Tür gespiegelt und gedreht wird und die Schrift immer wie bei Kotierungen "lesbar" bleibt wird´s langsam kompliziert.
Bei "konventioneller" Schreibweise kann mit einem Ankerpunkt gearbeitet werden.
a= Türbreite z.B. 0,805
b=Türhöhe z.B. 2,005
LET txt = STR (a*100,2,1) + "/" + STR (b*100,2,1)
DEFINE STYLE.......
SET STYLE............
TEXT2 0,0,txt
ergibt 80,5/200,5
Und wenn ich es richtig verstehe gibt es keine Syntax von STR, die die Nachkommastellen von vornherein und ohne Umwege als Hochzahl und ohne Komma ausgibt.
Es scheint machbar aber doch etwas kompliziert - eventuell gehts über einen CALL Befehl mit dem die fünf Elemente definiert und nacheinander an richtiger Position genereiert werden- jedenfalls vielen Dank
:winken:
[ 18. August 2008, 19:07: Beitrag editiert von: Egon ]
Mein Ziel ist die Beschriftung einer Tür:
80 Hochzahl 5 / 200 Hochzahl 5 statt 80,5/200,5
Da müssten lt. den oben angeführten Skripts 5 Einsetzpunkte (zwei für die Ganzzahlen, zwei für die hochgestellten Zahlen und einen für den Querstrich) definiert werden. Und wenn die Tür gespiegelt und gedreht wird und die Schrift immer wie bei Kotierungen "lesbar" bleibt wird´s langsam kompliziert.
Bei "konventioneller" Schreibweise kann mit einem Ankerpunkt gearbeitet werden.
a= Türbreite z.B. 0,805
b=Türhöhe z.B. 2,005
LET txt = STR (a*100,2,1) + "/" + STR (b*100,2,1)
DEFINE STYLE.......
SET STYLE............
TEXT2 0,0,txt
ergibt 80,5/200,5
Und wenn ich es richtig verstehe gibt es keine Syntax von STR, die die Nachkommastellen von vornherein und ohne Umwege als Hochzahl und ohne Komma ausgibt.
Es scheint machbar aber doch etwas kompliziert - eventuell gehts über einen CALL Befehl mit dem die fünf Elemente definiert und nacheinander an richtiger Position genereiert werden- jedenfalls vielen Dank
:winken:
[ 18. August 2008, 19:07: Beitrag editiert von: Egon ]
Optionen
- Als neu kennzeichnen
- Lesezeichen
- Abonnieren
- Stummschalten
- RSS-Feed abonnieren
- Direktlink dieser Nachricht
- Anstößigen Inhalt melden
am 2008-08-18 07:26 PM
2008-08-18
07:26 PM
mit der zweiten methode ist das relativ einfach; ich habe jetzt auch mal die optionen für andere rundungsintervalle rausgenommen um es zu vereinfachen:
beim anpassen solltest du unbedingt den textfangpunkt "1" in der stildefinition beibehalten; ansonsten würde es dir alles durcheinander schieben
:winken:
ps: eventuell könnte man auch alle textteile in einen einzelnen richtext dings reinpacken. so wie oben ist es mir aber lieber
[ 18. August 2008, 19:29: Beitrag editiert von: zzyzx ]
der trick ist dabei, dass die verschiebung des textblocks immer direkt nach dem setzen des vorangegangenen teils erzeugt wird, und zwar bevor die neue stildefinition gesetzt wird.
zahl = 0.805
zahl2 = 2.005
sgr = 3
define style "textformat" "Arial Westlich", sgr*50/glob_scale , 1, 0
define style "textformathoch" "Arial Westlich", 0.65*sgr*50/glob_scale , 1, 0
txtzahl = str{2}("%*11.0cm",zahl,txtnkst)
txtzahl2 = str{2}("%*11.0cm",zahl2,txtnkst2)
set style "textformat"
text2 0,0,txtzahl
add2 stw(txtzahl)/1000*GLOB_SCALE,0
set style "textformathoch"
text2 0,0,txtnkst
add2 stw(txtnkst)/1000*GLOB_SCALE,0
set style "textformat"
text2 0,0," / "+txtzahl2
add2 stw((" / "+txtzahl2))/1000*GLOB_SCALE,0
set style "textformathoch"
text2 0,0,txtnkst2
beim anpassen solltest du unbedingt den textfangpunkt "1" in der stildefinition beibehalten; ansonsten würde es dir alles durcheinander schieben
:winken:
ps: eventuell könnte man auch alle textteile in einen einzelnen richtext dings reinpacken. so wie oben ist es mir aber lieber
[ 18. August 2008, 19:29: Beitrag editiert von: zzyzx ]
Anonymous
Nicht anwendbar
Optionen
- Als neu kennzeichnen
- Lesezeichen
- Abonnieren
- Stummschalten
- RSS-Feed abonnieren
- Direktlink dieser Nachricht
- Anstößigen Inhalt melden
am 2008-08-19 07:58 AM
2008-08-19
07:58 AM
Ich arbeite (noch) auf AC8.1 und da gibts kein STR(2). Werde dann mit AC12 weiter arbeiten. Nochmals Danke.