JavaScript-Datei
Ein Webservice kann theoretisch mit jeder Programmiersprache erstellt werden. Die Programmierumgebung in diesem Beitrag ist JavaScript. Selbstverständlich kann mittels Scripting die Topologie des Systems, die Lastfälle und die Lasten definiert werden. Für die Erstellung von Script-Dateien reicht ein Editor aus, der in diesem Beitrag verwendet wird (Notepad ++).
In the JavaScript file provided in this example, the input parameters are defined with the input_data() function. Diese Parameter können verschiedenen Kategorien (Basisangaben, Geometrie, Lager, Schnitte usw.) zugeordnet werden.
In terms of basic data, parameter "n" is defined as the type "integer" (using the parameter_int() function) in order to allow dynamic generation of the number of bays. In the “Geometry” category, on the other hand, the parameter_float() function is used for the creation of the frame span (a), the height of the column (H_1), the height of the roof (H_2), and the bay length (L). As can be seen in Image 1, parameter “L” (Bay length) is created dynamically by the multiplicity counter kn, which was defined earlier.
Next, the variables defined as input data can be employed by the generate() function to generate the block; that is, to create nodes and members, assign supports to nodes, create coordinate systems, and create dimensions. Dies ist in Bild 2 dargestellt und kann in einem Skript am Ende des Beitrags untersucht werden.
It is to be noted that all available objects and attributes can be found in the Console (View → Console). Wie Bild 3 zeigt, können die Objekte und deren Eigenschaften über das im Bild gekennzeichnete Symbol angezeigt werden.
Although not used in this example, the global_parameters() function can also be adopted in the script. This function serves to parameterize the block, as discussed in the Knowledge Base article "Parameterized Models as Blocks in RFEM 6":
Saving the Model as Block
The block created in this manner can be saved as discussed in the Knowledge Base article "Saving Models as Blocks in <nobr>RFEM 6</nobr>" (File → Save as Block).
However, the difference now is that the JavaScript file has to be imported in the Save as Block window (Image 4).
Wurde der Block einmal gespeichert, kann dieser einfach in jede beliebige RFEM 6-Datei importiert werden. For this purpose, it is necessary to open Dlubal Center | Blocks and select the block from the relevant category. Prior to being inserted, the block can be modified in the Edit Blocks window. For dynamic blocks created by scripting, the input parameters can be modified in the Structure tab of this window.
Der Vorteil dynamischer Blöcke besteht, wie oben erwähnt, in der Möglichkeit, Modifikationen durch Änderung der Eingangsvariablen vornehmen zu können. So wie im Script die Anzahl der Felder (n) und die Feldlänge (L) festgelegt wurden, ändert sich bei der ersten Wahl automatisch die Feldlänge (L).
In this example, the predefined number of bays is three and, therefore, three bay lengths are listed as parameters <nobr>(Image 5)</nobr>. Die Variable "n" lässt sich aber sehr einfach in eine beliebige andere Zahl umwandeln (z. B. fünf) und die Struktur wird sich dementsprechend ändern (Bild 6).
Schlussbemerkungen
Dynamische Blöcke lassen sich in RFEM 6 einfach über Scripting erzeugen. Zum Erstellen von Script-Dateien ist ein Script-Editor ausreichend. An dieser Stelle können Parameter dynamisch im Script angelegt und so im Nachhinein eine interaktive Änderung des Blocks ermöglicht werden.
The blocks created in this manner can be saved by importing the JavaScript file in the “Save as Block” window. Once available in Dlubal Center | Blocks, they can be imported easily into any RFEM 6 file. Da es sich um dynamische Blöcke handelt, sind bei jeder Verwendung der Blöcke in einer RFEM-Datei interaktive Modifikationen von Strukturparametern durch geänderte Eingangsgrößen möglich.