Allplan Fórum

[Otázka] Fenster Beschriftung mit Verschattung

Tagy:
  • Rollladen
  • Jalousie
  • Klappladen
  • Schiebeladen
  • Beschriftungsbild Formel
  • Beschriftungsbild

Morjeeen,

gibt es eine Möglichkeit über ein Beschriftungsbild von einem Fenster SmartPart, die Bezeichnung des Sonnenschutz-SmartParts zu erhalten, die in der gleichen Fensteröffnung eingebaut ist?

Siehe Bild 1, da wo "Verschattung=ja" steht, soll bitte die Bezeichnung des Sonnenschutz-SmartParts stehen...

Danke im voraus

Lg René
http://www.baucon.de

Přílohy (2)

Type: image/jpeg
Staženo 122
Size: 174,54 KiB
Type: application/octet-stream
Staženo 1274
Size: 2,75 MiB

Show most helpful answer Hide most helpful answer

Die Funktion CHILD in MT_...(CHILD(@498@)) gibt z.B. folgendes zurück: "Fenstermakro,-SmartPart+Sonnenschutz"
Wenn ein Leibungselement da ist, dann ist das Ergebnis dieses:"Brüstung+Fenstermakro,-SmartPart+Fenstermakro,-SmartPart+Sonnenschutz"

Man sieht, die Elemente werden durch "+" getrennt ausgegeben. Warum beim Vorhandensein eines Leibungselementes, das FensterSmartPart doppelt gezählt wird, kann wohl nur Allplan beantworten! Das ist ein Fehler!

Die Funktion CHILD in MT_...(CHILD(@507@)) gibt z.B. folgendes zurück: "Fenster/Rolladen"
Wenn ein Leibungselement da ist, dann ist das Ergebnis dieses:"bruestung3/Fenster/Jalousie"
Man sieht, die Elemente werden durch "/" getrennt ausgegeben.

Mit diesem wissen kann man das Problem nur in einer vbs-funktion lösen.
Dazu in der Datei functions.vbs im \STD folgendes einfügen:

Function get_sun_shade(nam_lst,bez_lst)
   Dim strNames,strName,strBezs,strBez,strRes,strLast

   strRes=""
   strNames=Split(nam_lst,"+")
   strBezs=Split(bez_lst,"/")
   idx=-1
   i = 0
   strLast=""
   For Each strName In strNames
      If strName = "Sonnenschutz" Then
         idx = i
      End If
      If strLast = strName Then

      Else
         i=i+1
      End If
      strLast = strName
   Next
   j = 0
   For Each strBez In strBezs
      If j = idx Then
         strRes = strBez
      End If
      j=j+1
   Next

   get_sun_shade = strRes & "                                   "

End Function

Die vorletzte Zeile der Funktion sieht etwas eigenartig aus:
Wenn man die Leerzeichen aber nicht anfügt, stürzt Allplan ab!
Warum das so ist, müßte Allplan mal herausfinden.
Das ist ebenfalls ein schwerer Fehler!

Die Formel im Beschriftungsbild für den Aufruf der Funktion lautet:
_IF_(MT_Fensterelement(CHILD(@498@))="")get_sun_shade(MT_Fensteröffnung(CHILD(@498@));MT_Fensteröffnung(CHILD(@507@)))_ELSE_get_sun_shade(MT_Fensterelement(CHILD(@498@));MT_Fensterelement(CHILD(@507@)))

Dafür sollte das Format A254 eingestellt sein.

31 - 40 (49)

Nope leider nicht :/

Lg René
http://www.baucon.de

Also mir ist aber aufgefallen das durch das "get_sun_shade" in der beschriftungsbild formel, beim Absetzten bzw Abspeichern es wesentlich länger dann lädt. Ist das nicht wenigstens ein Zeichen das er die Vbs Datei irgendwie halb erkennt? weil nur bei dem Beschriftungsbild lädt es ein bisschen länger als bei anderen

Lg René
http://www.baucon.de

..ja, scheinbar sucht er die Funktion get_sun_shade...

Dass er diese nicht findet, kann mehrere Ursachen haben:

-Datei liegt in falschem Verzeichnis (\STD\vbs)
-Datei hat falschen Namen (functions.vbs)
-Dateiinhalt halt falsche Textkodierung (mit Notepad++ zeigt er mir "ANSI" bzw. "UTF-8 ohne BOM" an)
-es gibt Fehler beim "Interpretieren" des Dateiinhaltes der functions.vbs
(bis auf die obigen 3 Zeilen darf da nichts drin stehen! Sonst gibt es einen Syntaxfehler, der aber leider nicht angezeigt wird.)
Ausser Tabs bitte keine Sonderzeichen verwenden!)

Könnte es daran liegen das ich die Vbs datei mit dem stinknormalen Editor öffne? (siehe Anhang) denn du meintest ausser Tabs keine sonderzeichen verwenden, jedes mal wenn es da "nach rechts geht" sind es keine Tabs sonder leerzeichen (immer 3 Leerzeichen als ein Tab)

Lg René
http://www.baucon.de

Přílohy (1)

Type: image/jpeg
Staženo 6
Size: 43,21 KiB

..ja, sieht doch korrekt aus!
Stimmt das Verzeichnis und der Dateiname?

Verzeichnis und Dateiname stimmt

Lg René
http://www.baucon.de

was meinst du mit "ANSI" bzw. "UTF-8 ohne BOM" ??? habe leider kein Plan was das ist

Lg René
http://www.baucon.de

Die Textkodierung BOM wird gern mit 2-4 Bytes am Anfang der Datei gemacht. ANSI oder UTF-8 ohne BOM heisst, dass dort nichts steht.

Bei UTF-8 BOM würde die Bytesequenz EF BB BF dort stehen, was ein nicht UTF-8-fähiger Texteditor meist als ISO-8859-1-Zeichen  anzeigt.

Das wäre zugleich ein Syntaxfehler für vb-script.

Wenn's das alles nicht ist, dann würde ich testweise mal die Formel ändern in:
MT_Fensteröffnung(CHILD(@498@))
oder
MT_Fensteröffnung(CHILD(@507@))
oder
MT_Fensterelement(CHILD(@498@))
oder
MT_Fensterelement(CHILD(@507@))

Bei jeder Formel sollte etwas erscheinen. Damit ist dann mal die Formelsysntax in Allplan geprüft.

"Normal.JPG" kam raus wo ich alle Beschriftungsbilder mit den Formeln abgesetzt habe...
"Veränderung.JPG" kommt zustande wenn ich die Wand oder das Fenster verändere bzw. verschiebe

habe bei beiden Beschriftung Aktualliseren gemacht... also bei "Normal..." nach Absetzen und bei "Veränderung..." nach verschiebung bzw veränderung

Lg René
http://www.baucon.de

Přílohy (3)

Type: image/jpeg
Staženo 19
Size: 92,42 KiB
Type: image/jpeg
Staženo 10
Size: 78,71 KiB
Type: image/jpeg
Staženo 9
Size: 114,54 KiB

Nächster Schritt:

Formel änder in:

get_sun_shade(""+MT_Fensteröffnung(CHILD(@498@));""+MT_Fensteröffnung(CHILD(@507@)))

oder

get_sun_shade(""+MT_Fensterelement(CHILD(@498@));""+MT_Fensterelement(CHILD(@507@)))

und wieder schauen.

31 - 40 (49)