Mise en place d’un Plugin AutoCAD Civil 3D


La création d’un plugin permet d’avoir un point d’entrée pour tout traitement automatisé au sein d’une application, ici Civil 3D.

Nous allons créer un plugin pour Civil 3D 2023. Ce plugin nous donnera accès à un nouvel onglet personnalisé dans le ruban avec un bouton qui ouvrira un panneau.
Le plugin sera chargé au démarrage de Civil 3D.

Initialisation du projet

  • Créer un nouveau projet .Net de Bibliothèque de classes. Dans cet exemple, le projet se nomme « MyC3DPlugin » :
  • Mettre à jour les propriétés du projet
    • Faire un clic droit sur le nom du projet => Propriété
    • Cliquer sur « Application »
    • Cliquer sur « Informations de l’assembly …»
    • Renseigner les informations de l’assembly
  • Préparer le chargement du plugin pour tester
    • Faire un clic droit sur le nom du projet => Propriété
    • Cliquer sur « Débogger »
    • Dans la section « Action au démarrage », cocher « Démarrer le programme externe » et sélectionner l’exécutable « acad.exe » de la version AutoCAD à lancer
    • Dans la section « Options de démarrage », renseigner les arguments suivants pour qu’au démarrage de l’application, ce soit la version 2023 d’autoCAD Civil 3D qui se lance :
      /ld “C:\Program Files\Autodesk\AutoCAD 2023\AecBase.dbx”
      /p “<<C3D_Metric>>”  /product “C3D” /language “fr-FR”
      /b “C:\path\vers\le\fichier\LoadDll.scr”
    • Créer un fichier « LoadDll.scr » dans la solution
    • Insérer cette ligne = netload ” C:\path\vers\la\dll\MyC3DPlugin.dll”
  • Lancer l’application
  • S’assurer qu’au premier lancement, une boite de dialogue vous demande si vous voulez charger la DLL du projet que nous venons de créer.

Création d’un plugin Civil 3D

Ajouter les librairies suivantes à vos références :

Elles se situent au niveau du dossier C:\Program Files\Autodesk\AutoCAD 2023\

Implémenter les fonctions pour créer le ruban

Dans cette section nous implémenterons les fonctions qui nous permettront de rattacher un onglet au ruban, un panneau et un bouton.

  • Créer une classe avec son constructeur. La mienne s’appelle « InitRibbon »
  • Créer la méthode qui nous permettra de créer un bouton dans le menu
  • Créer la méthode qui nous permettra de rajouter un panneau à notre menu AutoCAD
  • Créer la méthode qui nous permettra de remplir notre menu
  • Enfin créer le ruban

Maintenant que nous avons tout ce qui nous permet de créer un menu, il faut qu’il puisse être rattaché au menu dès l’ouverture de Civil 3D. Il nous faut donc implémenter les commandes dans ce sens.

Implémenter les commandes

Pour implémenter les commandes, nous utiliserons une classe avec l’interface « IExtensionApplication ».

  • Créer la classe « Commands » qui implémente l’interface « IExtensionApplication » et la passer en public.
  • Ces méthodes sont à implémenter pour que le ruban soit chargé à l’ouverture d’AutoCAD. Cela nous permet de nous rattacher à l’évènement AutoCAD du chargement du ruban, et d’ajouter nos instructions. Dans notre cas celui de créer notre onglet « My C3D Ribbon Tab ».
  • Ajouter les commandes précédemment renseignées à la création des boutons. Dans notre exemple, il s’agit des commandes « helloCommand » et « byeCommand ». Nous afficherons le fameux « Hello world » dans une message box pour la commande helloCommand

Nous interagirons avec AutoCAD pour la seconde en écrivant « Bye bye » sur le prompt AutoCAD.

Maintenant que nous avons implémenté le chargement de notre onglet au démarrage de l’application, il nous reste une dernière chose à gérer : la récupération de l’évènement au clic des boutons.

Ajouter l’évènement

  • Créer la classe «AdskCommonHandler » qui implémente l’interface «ICommand» et la passer en public.
  • Remplir les méthodes comme suit pour qu’au clic du bouton, la commande rattachée soit exécutée.
  • Retourner dans la classe d’initialisation du ruban et modifiez la méthode « CreateRibbonButton » pour que le bouton puisse être rattaché à l’évènement.

C’est le moment de tester !

Résultat

  • Lancer l’application en cliquant sur « Démarrer ». Au démarrage de Civil 3D, cette pop-up devrait s’afficher :

Cliquer sur « Toujours charger »

  • En haut à gauche de votre ruban, notre section devrait être visible
  • Cliquer dessus, les boutons que nous avons ajoutés apparaissent
  • Cliquer sur les boutons. Au clic du bouton « Hello World », une fenêtre pop-up apparait

Au clic du bouton « Bye World », le prompt affiche :

Félicitations !

Nous avons créé un plugin AutoCAD Civil 3D permettant d’interagir avec AutoCAD via une nouvelle section dans le ruban.

Auteur : Marvyne T.