Fichier JavaScript
En théorie, un service web peut être créé à l'aide de n'importe quel langage de programmation. Dans cet article, l'environnement de programmation est JavaScript. De ce fait, les scripts peuvent être utilisés pour définir la topologie de la structure, les cas de charge et les charges. Pour créer des fichiers de script, il suffit de disposer d'un éditeur tel que celui utilisé dans cet article (Notepad ++).
In the JavaScript file provided in this example, the input parameters are defined with the input_data() function. Ces paramètres peuvent être assignés à différentes catégories (données de base, géométrie, appuis, sections, etc.).
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. Cette opération est illustrée par la Figure 2 et peut être approfondie dans le script fourni à la fin de cet article.
It is to be noted that all available objects and attributes can be found in the Console (View → Console). Comme le montre la Figure 3, les objets et leurs propriétés peuvent être affichés à l'aide de l'icône indiquée sur l'image.
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).
Une fois le bloc enregistré, il peut être facilement importé dans n'importe quel fichier RFEM 6. 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.
Comme mentionné ci-dessus, l'avantage des blocs dynamiques se définit par la possibilité d'introduire des modifications en changeant les variables d'entrée. Ainsi, compte tenu de la manière dont le nombre de travées (n) et la longueur de travée (L) ont été définis dans le script, ces dernières changent automatiquement lorsque les premières sont modifiées.
In this example, the predefined number of bays is three and, therefore, three bay lengths are listed as parameters <nobr>(Image 5)</nobr>. La variable « n » peut cependant être facilement convertie en un autre nombre (par exemple cinq) et la structure sera modifiée en conséquence (Figure 6).
Remarques finales
Les blocs dynamiques dans RFEM 6 peuvent être créés facilement à l'aide d'un script. Pour créer des fichiers script, il suffit de disposer d'un éditeur de script. À ce stade, les paramètres peuvent être créés de manière dynamique dans le script, ce qui permet une modification interactive du bloc par la suite.
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. Les blocs étant définis comme dynamiques, les modifications interactives des paramètres structuraux à la suite de la modification des variables d'entrée sont possibles à chaque fois que les blocs sont utilisés dans un fichier RFEM.