Forum Allplan

[Domanda] Fenster Beschriftung mit Verschattung


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

Allegati (2)

Type: image/jpeg
114 scaricato
Size: 174,54 KiB
Type: application/octet-stream
894 scaricato
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.

41 - 49 (49)

Bei beiden kommt leider nichts raus :-(

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

functions.vbs :

Function get_sun_shade(nam_lst,bez_lst)

get_sun_shade = nam_lst

End Function

Ne selbst mit Beschriftung Aktuallisieren und Allplan Neustart funktioniert es komischer Weise nicht :-/

Siehe Anhang... vllt findest du ein Fehler

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

Allegati (2)

Type: image/png
24 scaricato
Size: 100,18 KiB
Type: image/jpeg
18 scaricato
Size: 18,33 KiB

sieht eigentlich gut aus!
Was passiert, wenn Du die mittlere Zeile in Bild2 mal folgendermassen änderst:

get_sun_shade = "Test"

Trotzdem Leider keine Veränderung

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

Ich geb auf. Dann soll es eben nicht sein!

Danke an alle, für die Geduld und die helfenden Hinweise.
Danke auch an Allplan, für den grandiosen Support, und die hervorragenden Debugging-Möglichkeiten beim vb-script.

Ich empfehle Dir das Plugin LokalBeschriftung von der CDS.
Damit geht das kinderleicht!

Ich Danke dir trotzdem für deine Hilfe und Geduld!!!
Dann soll es glaube echt nicht sein :-(
Aber naja was soll man machen.

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

..letzter Versuch:

Welche Allplan-Version mit welchem Betriebssystem verwendest Du?
Ist dort Excel installiert?
Du hast die Datei functions.vbs an Ort und Stelle bearbeitet, und nach jeder Änderung gespeichert?
Kannst Du mir bitte einen Screenshot von dem Beschriftungsbild und der Formel zeigen?
Du bist sicher, dass Du die Änderungen daran korrekt durchgeführt hast?

Die versionen sind im Anhang zu finden.
Ja Excel ist auch installiert, und die Vbs Datei habe ich immer an Ort und Stelle bearbeitet und fleißig abgespeichert
im Anhang ist die Externe Datei mit den beiden Beschriftungsbildern
Also ich bin mir Recht doll sicher, das ich deine Anweisung punkt genau durchgeführt habe

EDIT: Welche Excel Version muss mindestens vorhanden sein?

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

Allegati (3)

Type: image/jpeg
25 scaricato
Size: 37,98 KiB
Type: application/zip
510 scaricato
Size: 2,00 KiB
Type: image/jpeg
29 scaricato
Size: 72,37 KiB
41 - 49 (49)

https://connect.allplan.com/ utilizza cookies  -  Maggiori informazioni

Accetta