Élargir l'analyse de structure de robot avec des plugins personnalisés

Robot Structural Analysis Professional d'Autodesk est un puissant outil d'analyse d'éléments finis utilisé par les ingénieurs de structures dans le monde entier. Bien que ses capacités intégrées couvrent une large gamme de scénarios de conception et d'analyse – de l'analyse élastique linéaire à l'analyse de poussée non linéaire et dynamique – les projets du monde réel exigent souvent des fonctionnalités spécialisées qui ne sont pas disponibles hors de l'emballage.

L'API expose les objets et les méthodes qui contrôlent presque tous les aspects du modèle, de la géométrie et des charges aux résultats et rapports. En écrivant de petits programmes qui appellent ces fonctions API, les développeurs peuvent créer des outils qui fonctionnent dans l'environnement Robot, lire et écrire des données comme s'ils étaient des fonctionnalités natives. Cet article fournit un guide technique mais pratique pour construire ces plugins, couvrant l'architecture, les étapes de développement, les tests, le déploiement et les pièges communs.

Comprendre l'API d'analyse structurale robot

La base de tout plugin est l'API. Robot , l'API est basée sur COM (Component Object Model), ce qui signifie qu'il peut être consommé à partir d'une grande variété de langages de programmation. Autodesk fournit une bibliothèque de type () qui définit le modèle d'objet. Les objets clés incluent:

  • IRobotApplication – le point d'entrée principal pour interagir avec l'instance d'application Robot.
  • IRobotProject – représente le projet actuel et maintient les structures, les cas de charge et les combinaisons.
  • IRobotStructure – contient tous les nœuds, barres, panneaux et éléments finis.
  • IrobotLoadCase et IrobotCombination – gérer les définitions et les combinaisons de charges.
  • IRobotRésultat – donne accès aux résultats d'analyse (forces, déplacements, contraintes).

Les développeurs peuvent in situer l'objet de l'application et ensuite naviguer dans la hiérarchie pour obtenir ou définir des données. L'API est bien documentée dans le Robot SDK (Software Development Kit), qui comprend des exemples de projets et des manuels de référence disponibles sur le réseau de développeurs Autodesk. Comprendre les propriétés et les méthodes de chaque objet est essentiel avant d'écrire un plugin substantiel.

Choix du langage et de l'environnement de programmation

Bien que l'interface COM puisse être consommée dans de nombreuses langues, les environnements les plus pratiques et les plus largement utilisés pour le développement de plugins Robot sont:

  • C# – L'écosystème .NET avec Visual Studio offre un excellent support COM interop. La plupart des plugins commerciaux et internes sont écrits en C# en raison de sa forte typographie, de ses grandes bibliothèques et de ses fonctionnalités linguistiques modernes.
  • VB.NET[ – Une alternative viable avec une intégration .NET similaire, bien que moins fréquente.
  • Python – Utilisation de ou de la bibliothèque plus récente, les scripts Python peuvent contrôler Robot. Python est idéal pour le prototypage rapide, les scripts d'automatisation et l'intégration avec l'apprentissage automatique ou les bibliothèques scientifiques.
  • C++ – Pour des performances maximales et un accès direct aux interfaces COM, C++ peut être utilisé, mais le temps de développement est beaucoup plus long.

Pour la plupart des firmes d'ingénierie, C# offre le meilleur équilibre de productivité, de performance et de maintenance. Lorsque vous utilisez C#, le projet doit être une Class Library (DLL) qui fait référence à la bibliothèque de type Robot. Le plugin est généralement compilé comme un ensemble .NET et peut être chargé directement dans Robot via le menu --Outils - Add-ons--, ou il peut fonctionner comme un exécutable externe qui communique avec Robot via l'API.

Mise en place de l'environnement de développement

Pour commencer, installez Robot Structural Analysis (toute version prenant en charge l'API, habituellement 2017 et plus tard). Installez Visual Studio Community (gratuit) ou Professional. Ensuite:

  1. Créer un nouveau projet de bibliothèque de classe C# (cadre.NET).
  2. Ajouter une référence à (généralement situé dans le dossier d'installation du robot).
  3. Définissez la propriété --Embed Interop Types--- à pour la référence RobotOM afin d'éviter les problèmes de version.
  4. Écrivez le code qui importe l'espace de noms .

Le test le plus simple consiste à créer un add-on qui lit le nombre de nœuds dans le modèle actuel et l'affiche dans une boîte de message. Une fois que cela fonctionne, vous avez un pipeline de développement fonctionnel.

Processus de développement de greffons étape par étape

Pour construire un plugin qui ajoute une valeur réelle, il faut une approche structurée. Les sous-sections suivantes détaillent chaque phase, des exigences au déploiement.

Phase 1: Analyse des besoins et définition de la portée

Avant d'écrire une seule ligne de code, définissez clairement ce que le plugin doit faire. Les cas d'utilisation courante comprennent:

  • Génération automatique de la charge[ – par exemple, créer des charges de vent par ASCE 7 ou EC1 en lisant la géométrie et en appliquant la pression aux panneaux.
  • – application de formules exclusives de la firme pour les poutres RC et les colonnes basées sur les résultats d'analyse.
  • Exporter vers d'autres logiciels – envoyer des données de modèle à un paquet de détail structurel ou à une base de données personnalisée.
  • Traitement par lots[ – exécution de combinaisons de charges multiples et collecte des résultats les plus défavorables dans un rapport.
  • Visualisation avancée – Membres de coloration par rapport à l'utilisation ou mode de flambement avec légendes personnalisées.

Documenter les entrées, sorties et interactions utilisateur. Décider si le plugin sera un -command , exécuté à partir du menu Robot, un panneau -command , qui reste ouvert pendant la modélisation, ou un outil externe qui lance séparément. Chaque modèle a différentes implications UI.

Phase 2: Architecture et conception

L'architecture du plugin devrait séparer les préoccupations en couches:

  • Couche logique commerciale – contient l'analyse, les calculs ou les transformations (p. ex., coefficients de pression du vent).
  • Couche d'intégration de robots – gère tous les appels API : géométrie de lecture du modèle, charges d'écriture, extraction des résultats.
  • – soit en utilisant Windows Forms, WPF, ou Robot=S propre système de dialogue.
  • Manipulation et logage des erreurs – blocs d'essai robustes qui signalent des problèmes sans planter Robot.

Concevoir le plugin pour être indépendant de l'état : il devrait fonctionner si l'utilisateur a des changements non enregistrés ou non. Aussi, éviter de bloquer le fil d'interface utilisateur robot pour de longues opérations; utiliser des travailleurs de fond ou des modèles d'async avec des rapports de progrès appropriés.

Phase 3 : Développement – Codages de base

Chaque plugin commence par obtenir une référence à l'application Robot. En C#, c'est généralement fait par:

using RobotOM;
...
var robotApp = new RobotOM.RobotApplication();
robotApp.Project.Open("path_to_project.rtd");
// or get the currently active project
var project = robotApp.Project;
var structure = project.Structure;
int nodeCount = structure.Nodes.Count;

Important: Toujours libérer les objets COM correctement pour éviter les fuites de mémoire. Utilisez ou comptez sur modèles. L'omission de le faire peut provoquer l'écrasement de Robot à la sortie.

Les tâches courantes de codage comprennent l' itération sur des nœuds, des barres et des panneaux; l'attribution de charges; l'analyse de fonctionnement; et la récupération des résultats.

var results = project.Results;
for (int i = 1; i <= structure.Bars.Count; i++)
{
 var bar = structure.Bars.Get(i);
 double axialForce = results.Bars.MaxAxialForce[bar.Number, 1]; // load case 1
 // process
}

Lors de l'écriture des charges, utilisez et des objets. L'API nécessite une manipulation soigneuse des unités; toujours régler le système d'unités (par exemple ) avant de lire ou d'écrire des données pour éviter les erreurs de conversion.

Phase 4 : Stratégies d'essai

Tester un plugin qui fonctionne à l'intérieur d'une application de bureau comme Robot est difficile.

  • Unit testing – isoler la logique d'affaires dans des classes testables qui ne dépendent pas de l'API Robot. Utilisez des objets simulés pour les interfaces API.
  • – exécutez le plugin sur un ensemble de petits modèles connus et comparez les résultats avec des calculs à la main ou des exemples vérifiés.
  • Test de régression – tenir une bibliothèque de fichiers de test .RTD. Après chaque changement de code, exécuter le plugin sur tous les fichiers de test et comparer automatiquement les sorties.
  • Essais de résistance[ – Test avec de grands modèles (en milliers de barres) pour s'assurer que la mémoire et les performances sont acceptables.

Parce que Robot est une application complexe, toujours tester sur plusieurs versions (p. ex., 2022, 2023, 2024) pour attraper les changements de rupture de l'API. Autodesk déprécie parfois les méthodes; s'abonner au Autodesk Developer Network aide à rester informé.

Phase 5 : Gestion du déploiement et de la version

Déployer un plugin personnalisé peut être aussi simple que copier une DLL dans un dossier réseau partagé et avoir les utilisateurs le charger via -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

La version est une fonction de mise en forme : utilisez la version sémantique du plugin. Tenez un journal de changement. Lors de la distribution des mises à jour, assurez-vous de la compatibilité arrière – un plugin qui lit les données de Robot 2023 devrait également fonctionner avec Robot 2024 à moins qu'une méthode API n'ait été supprimée.

Intégration des plugins avec BIM et Workflow Automation

De nombreuses firmes d'ingénierie attendent maintenant des plugins pour fonctionner dans un environnement BIM plus large. Les plugins robots peuvent:

  • Échanger des données avec Revit via l'API Robot ou via les fichiers IFC. Les plugins personnalisés peuvent automatiser le transfert de modèles analytiques de Revit vers Robot, définir les conditions de limite et ramener les résultats.
  • Pour la production de rapports, les données sont transmises à Excel ou Power BI. L'utilisation de l'API Robot pour extraire les résultats et écrire à Excel via COM interop ou le SDK XML ouvert est un modèle commun.
  • Intégrer avec les plateformes cloud – p.ex. envoyer les résultats d'analyse à une base de données cloud pour examen collaboratif.

Ces intégrations nécessitent souvent de traiter de grands ensembles de données de manière asynchrone. Utilisez la propriété pour exécuter Robot en mode non interactif (sans tête) pour le traitement par lots, ce qui améliore les performances.

Exemples et études de cas dans le monde réel

Pour illustrer l'impact, il faut considérer une entreprise structurelle de taille moyenne spécialisée dans les tours résidentielles de grande hauteur. Leur travail standard consiste à appliquer manuellement des charges de vent par code local à chaque étage – un processus prenant 4 à 6 heures par bâtiment.

  • Lis la géométrie du bâtiment (élévations du plancher, zones de panneaux, empreinte du bâtiment).
  • Calcule les coefficients de pression du vent en utilisant les formules code.
  • Générer des charges de surface sur des panneaux pour plusieurs directions de vent.
  • Exécute l'analyse et extrait les déplacements maximums.

Le plugin a réduit le temps d'application de charge de vent à moins de 10 minutes et a éliminé les erreurs d'entrée. La même entreprise a ensuite créé un plugin pour les enveloppes de résultats post-processus et génère automatiquement un rapport de conformité de code.

Un autre exemple concerne une entreprise de fabrication spécialisée qui utilise Robot pour analyser les connexions en acier. Ils avaient besoin d'un plugin qui pourrait lire les forces finales pour chaque faisceau et exécuter un algorithme de conception de connexion personnalisé pour les boulons de taille et les raidisseurs. Le plugin non seulement conçu les connexions mais aussi placé les symboles de soudure et les motifs de boulons résultant dans le modèle pour détailler, économiser des semaines de conception manuelle.

Défis communs et comment les surmonter

Compatibilité de la version

Robot met à jour son API avec de nouvelles versions. Un plugin compilé contre RobotOM de la version 2022 ne peut pas charger dans la version 2024 si les interfaces changent. Solution: Utilisez la reliure tardive ou la réflexion .NET pour appeler les méthodes dynamiquement, ou fournir des constructions distinctes pour chaque version supportée.

Fuites de mémoire et stabilité

Les objets COM sont comptés par référence; la couche interop .NET ne peut pas les libérer rapidement. Solution: Relâcher explicitement les objets COM avec dans un bloc . Utilisez la règle -Deux points – évitez de chaîner plusieurs accès de propriété COM sur une ligne, car elle crée des objets temporaires qui sont difficiles à nettoyer.

Filage de l'interface utilisateur

Exécuter de longues opérations sur le fil principal du robot gèle l'interface utilisateur. Solution: Utilisez ou et appelez pour supprimer les dialogues.

Gestion des erreurs dans un environnement hôte

Les exceptions non traitées dans un plugin peuvent planter Robot. Solution: Enveloppez tous les appels d'API dans des blocs de capture. Enregistrez les erreurs dans un fichier texte. Affichez les messages conviviaux qui suggèrent des corrections possibles.

Tendances futures du développement de plugins robots

Autodesk a introduit la plate-forme Forge, qui fournit des API Web pour l'automatisation de la conception. Bien que Robots on-premise API demeure critique pour les workflows existants, les développeurs devraient également considérer:

  • Rest APIs for Robot – Des enveloppes tierces exposent la fonctionnalité Robot via les services web, permettant l'intégration avec les applications client JavaScript ou mobiles.
  • Intégration de l'apprentissage de la machine[ – Plugins qui utilisent des modèles ML pour prédire les modes de défaillance ou optimiser le dimensionnement des membres directement à partir des résultats Robot.
  • Dessin paramétrique et génératif[ – Utilisation de l'API pour conduire des boucles d'analyse itérative pour l'exploration spatiale de conception.
  • Marchés de la PLUIGINE – Les entreprises peuvent concéder des licences à d'autres organisations pour leurs plugins, exigeant une licence solide et une protection contre le piratage.

Rester à jour avec les conférences de développeurs d'Autodesk-S et le Forge Developer Portal est essentiel pour toute personne sérieuse au sujet du développement de plugins à long terme.

Conclusion

Les plugins personnalisés pour l'analyse structurelle robotisée transforment un outil d'analyse à usage général en une solution adaptée aux exigences uniques des projets d'ingénierie modernes. En tirant parti de l'API et en suivant un processus de développement discipliné, de la collecte des exigences à la mise à l'essai et au déploiement appropriés, les développeurs peuvent créer des plugins robustes et efficaces qui automatisent les tâches banales, font appliquer les normes de conception et permettent des flux de travail innovants.