Créer des commandes et des panneaux AutoCAD en .NET


Dans cet article, nous allons vous présenter comment créer une commande, un ruban et un panneau pour AutoCAD, sous .NET en C#, à l’aide du logiciel Visual Studio Code. De plus, je vais vous montrer comment charger la .dll générée.

Mise en place de la solution C#

Démarrer un nouveau projet

Dans Visual studio code, créez un type de projet « Bibliothèque de classes ». Choisissez le framework :

  • AutoCAD 2007 à 2009 : .NET Framework 2.0
  • AutoCAD 2010 et 2011 : .NET Framework 3.
  • AutoCAD 2012 et 2014 : .NET Framework 4.0
  • AutoCAD 2015 à aujourd’hui : .NET Framework 4.5

Ajoutez les bibliothèques AutoCAD

Ajoutez les références :

  • AutoCAD 2007 à 2012 : AcDbMgd.dll et AcMgd.dll
  • AutoCAD 2013/2015 à aujourd’hui : AcCoreMgd.dll, AcDbMgd.dll et AcMgd.dll

Mettez la propriété copie locale des références sur « False »

Créez une commande

Ajoutez une nouvelle classe et y ajoutez les importations des APIs AutoCAD

Créez une méthode avec une annotation qui permettra de lancer la commande dans AutoCAD « [CommandMethod(“LE_NOM_DE_VOTRE_COMMANDE“)] »
Implémentez la fonction, par exemple ici, nous allons dessiner une ligne

Nous commençons par nous connecter à la base de données d’AutoCAD, puis, nous ouvrons une transaction avec celle-ci.

Nous récupérons un objet de type « BlockTableRecord » qui va nous permettre d’ajouter de nouveaux objets à ceux déjà présents dans le dessin.

Nous créons ensuite deux points qui nous servent à définir notre ligne.

Enfin, nous ajoutons celle-ci en tant que nouvel objet dans la base de données du dessin et validons la transaction par l’appel à la méthode Commit().

Une fois cela fait, compilez le projet et récupérez la .dll générée dans le répertoire de sortie (par défaut \bin\Debug)

Mise en place du ruban

Importez la .dll AdWinsdows dans les références

Créez une nouvelle commande pour lancer le Ruban

Créez une variable en private static

Dans la commande du ruban, déclarer un new RibbonTab et un Autodesk.Windows.ComponentManager.Ribbon

Ajoutez un évènement à l’attribut en private static en créant une méthode.

Puis, créez le bouton

Créez un ruban en ajoutant des boutons, comboBoxes, etc à l’aide des objets mis à disposition « RibbonButton », « RibbonRowPanel », « RibbonPanelSource » ainsi de suite et donnez leurs informations.

Ajoutez les éléments au RibbonTab et activer le RibbonTab

Chargez la dll dans AutoCAD

Mise en place d’un panneau

Créez une commande pour lancer le panneau

Créez une fenêtre WPF

Cette fenêtre WPF doit hériter de Usercontrol

Paramétrez le design de la fenêtre souhaitée

Dans la classe où se situe la commande, mettre en variable globale le PaletteSet avec la portée static private

Définissez les propriétés de la palette grâce aux attributs de l’objet

Ajoutez le visuel à la palette via « AddVisual »

Chargez la .dll dans AutoCAD

Importation dans AutoCAD

Chargement de la dll dans AutoCAD

Une fois dans AutoCAD :

  • Tapez « NetLoad »
  • Sélectionnez la .dll récupérée précédemment de la solution et l’ouvrir

Lancement des commandes

Dans AutoCAD, une fois la .dll importée, tapez la commande définie en tant qu’attribut de la fonction (par exemple MyFirstLine)

Affichage de la ligne

Lancez la commande « MYFIRSTLINE » et taper sur la touche Entrée

Voilà le résultat de la commande

Affichage du ruban

Lancez la commande que vous avez créée et le ruban s’affiche dans AutoCAD

Affichage du panneau

Lancez la commande que vous avez créée pour le panneau et il s’affiche dans AutoCAD

Conclusion

Nous avons vu comment créer et lancer des commandes pour effectuer différentes actions dans AutoCAD, puis comment afficher des panneaux et paramétrer des actions. Enfin nous avons vu comment créer des rubans pour améliorer l’ergonomie, le tout en utilisant du C#.