Nous allons créer un code en VBA sur AutoCAD pour créer et insérer les textes utiles au repérage des éléments sur un plan.

Ouvrir l’éditeur Visual Basic

Sur AutoCAD, dans l’onglet Gérer, cliquer sur le bouton Éditeur Visual Basic pour ouvrir l’éditeur.

Création de la macro

Initialisation de la macro

Tout d’abord, il faut créer les variables qui nous seront utiles dans la macro.

  • Text correspond à la zone de texte
  • Lettre correspond à la lettre de repérage que nous souhaitons utiliser
  • Pointinsertion correspond au point d’insertion de la zone de texte
  • Hauteur correspond à la hauteur de texte que nous souhaitons avoir
Dim Text As AcadText
Dim Lettre As String
Dim PointInsertion(0 To 2) As Double
Dim Hauteur As Double

Ensuite, nous créons les boîtes de dialogue qui permettront de saisir la lettre de repérage, le nombre d’éléments à numéroter et la hauteur du texte.

Pour cela, on utilise la commande InputBox comme ci-dessous :

Lettre = InputBox("Quelle lettre correspond à l'objet à numéroter ?", "Lettre repérage", "P")
NbElements = InputBox("Combien d'éléments souhaitez-vous numéroter ?", "Nombre d'éléments", 10)
Hauteur = InputBox("Quelle hauteur de texte souhaitez-vous ?", "Hauteur de texte", 100)

Le premier paramètre de la commande sera le texte de la boîte de dialogue, le deuxième sera le titre de la boîte de dialogue et le troisième sera une valeur prédéfinie de réponse comme nous pouvons le voir ci-dessous.

La boucle for

Ensuite nous créons la boucle for qui nous permet d’afficher une zone de texte à chaque itération. Le nombre d’itération de la boucle correspond au nombre d’éléments que nous souhaitons annoter.

Voici le code de la boucle for :

For i = 1 To NbElements
    a = CStr(i)
    Texteaecrire = Lettre + a
    PointInsertion(0) = 125 'coordonée x
    PointInsertion(1) = i * 125 'coordonnée y
    PointInsertion(2) = 0 'coordonnée z
    Set Text = ThisDrawing.ModelSpace.AddText(Texteaecrire, PointInsertion, Hauteur)
Next

La ligne 2 permet de récupérer  le numéro (i) de l’élément à repérer grâce à la commande Cstr qui transforme un entier ou un réel en chaîne de caractère. Ensuite, avec la ligne 3, nous assemblons la lettre de repérage avec le numéro d’annotation dans la variable « Texteaecrire ».

Les lignes 4, 5 et 6 spécifient les coordonnées du point d’insertion. Ici, à chaque itération, la zone de texte sera positionnée 125 unités plus haut que la précédente.

Enfin, la ligne 7 permet d’insérer le texte. Le premier paramètre de la commande correspond au texte à écrire, le deuxième au point d’insertion et le troisième à la hauteur du texte.

Ces étapes sont reproduites pour un nombre d’itérations égal au nombre d’éléments à repérés.

Fin de la macro

Enfin, nous faisons apparaître un message dans une boîte de dialogue qui confirme la bonne exécution du programme à l’aide de la commande MsgBox :

Messagedereussite = MsgBox("Votre texte a bien été inséré", 0, "Succès !")

Le premier paramètre est le message de la boîte de dialogue, le deuxième est le type de boîte de dialogue à utiliser et le troisième est le titre de la boîte de dialogue.

On obtient la boîte de dialogue suivante :

Au final, nous obtenons le code suivant et nous pouvons exécuter la macro :

Sub Numérotation()

Dim Text As AcadText
Dim Lettre As String
Dim PointInsertion(0 To 2) As Double
Dim Hauteur As Double
Lettre = InputBox("Quelle lettre correspond à l'objet à numéroter ?", "Lettre repérage", "P")
NbElements = InputBox("Combien d'éléments souhaitez-vous numéroter ?", "Nombre d'éléments", 10)
Hauteur = InputBox("Quelle hauteur de texte souhaitez-vous ?", "Hauteur de texte", 100) ' Hauteur du texte
For i = 1 To NbElements
    a = CStr(i)
    Texteaecrire = Lettre + a
    PointInsertion(0) = 125 'coordonée x
    PointInsertion(1) = i * 125 'coordonnée y
    PointInsertion(2) = 0 'coordonnée z
    Set Text = ThisDrawing.ModelSpace.AddText(Texteaecrire, PointInsertion, Hauteur)
Next
Messagedereussite = MsgBox("Votre texte a bien été inséré", 0, "Succès !")

End Sub

Exécution de la macro

Une présentation de l’exécution de la macro est réalisée ci-dessous :

Exécution de la macro de repérage des éléments

Et maintenant, il ne reste qu’à positionner correctement ces repérages sur votre plan !


0 commentaire

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *