Ouvrir Microsoft Visual Basic for Applications

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

Onglet « Gérer » de AutoCAD

Microsoft Visual Basic for Applications s’ouvre.

Écriture de la macro

On va écrire une macro permettant de dessiner un polygone régulier sur AutoCAD, à partir de données fournies par l’utilisateur: le nombre de côtés et le rayon du cercle dans lequel est inscrit le polygone.

Création du formulaire

Pour récupérer ces données, on crée un UserForm (un formulaire). Cliquer sur Insertion/UserForm. Il s’agit en fait d’une fenêtre qui demande à l’utilisateur d’écrire les données dans des cases.

Création d’un formulaire

Code de la commande  « Dessiner »

Double-cliquer sur le bouton Dessiner. Cela affiche le code correspondant à la commande du bouton. Le code est initialement vide.

Private Sub CommandButton1_Click()

End Sub

Le UserForm ne doit pas être visible au départ. On utilise la commande suivante:

UserForm1.Hide

On définit ensuite les variables:

pts correspond aux sommets du polygone et  la variable i est utilisée dans une boucle.

Dim pts As Variant
Dim i As Integer

On récupère ensuite les données du formulaire. La commande

TextBox#.Text

récupère le texte contenu dans la zone de texte numéro #. Pour transformer ce texte en valeur numérique, on écrit:

Val(TextBox#.Text)
  • nbcote: nombre de côtés du polygone régulier .                
  • nbsommet: nombre de sommet du polygone (il est égal au nombre de côtés) .                                                                       
  • rayon: rayon du cercle dans lequel est inscrit le polygone       (voir image).
Heptagone inscrit dans un cercle
nbcote = Val(TextBox1.Text)
nbsommet = Val(TextBox1.Text)
rayon = Val(TextBox2.Text)

pi = 3.14159265358979
'angle au centre
ac = (2 * pi) / nbcote

On aura besoin du nombre pi avec un maximum de décimales. On définit ensuite la valeur des angles au centre (variable ac), qui dépend du nombre de côté.

Tout d’abord, il faut placer le centre du cercle noté pts0. Ce point est choisi par l’utilisateur en cliquant à un endroit de la feuille de dessin AutoCAD.

pts0 = ThisDrawing.Utility.GetPoint(, "Spécifier le centre du cercle dans lequel est inscrit le polygone")

Après cela, il faut placer les sommets du polygone grâce aux coordonnées polaires. Chaque point, noté pts, va être placé connaissant la distance entre le sommet et pts0  (c’est-à-dire le rayon du cercle), et l’angle entre l’axe des X d’AutoCAD et la droite [pts0,pts].

Par exemple, le sommet 1 est sur la droite parallèle à l’axe des X passant par pts0. L’angle vaudra donc 0 ou ac*0. Pour le sommet 2, l’angle par rapport à l’axe des X sera égal à l’angle au centre ac. Pour le sommet 3, cet angle sera ac*2. Pour le sommet n, il vaudra ac*(n-1). Pour revenir au sommet 1 et fermer le polygone, l’angle est ac*n.

Angles dans un pentagone 

Dans une boucle For, on fait varier i de 0 à (nbsommet-1). On place deux points par itérations, puis on les relie grâce à la commande AddLine.

 For i = 0 To nbsommet - 1
    ptsi = ThisDrawing.Utility.PolarPoint(pts0, ac * i, rayon)
    ptsj = ThisDrawing.Utility.PolarPoint(pts0, ac * (i + 1), rayon)
    ThisDrawing.ModelSpace.AddLine ptsi, ptsj
    Next

On peut alors exécuter la macro et dessiner tous les polygones que l’on veut !

notre code VBA
Vidéo montrant le dessin d’un octogone et d’un pentagone à l’aide de notre programme

Catégories : CADVBA

0 commentaire

Laisser un commentaire

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