IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Programme dessin automatisé sur AutoCAD


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2012
    Messages : 16
    Par défaut Programme dessin automatisé sur AutoCAD
    Bonjour.

    Je suis nouveau sur ce forum, je m'excuse donc d'avance de mes maladresses.
    je suis étudiant en alternance et mon projet est de réaliser un programme de dessin automatisé sur AutoCAD.

    Le dessin à réaliser est une reprise en sous-oeuvre. j'ai mis en pièce jointe un extrait de plan, qui donne une idée du résultat.
    Une partie du programme calcul le profilé métallique à utilisé. Et les différente dimensions.
    J'ai créer plusieurs onglets séparant le dessin en partie différent, et donner des noms au cellules pour faciliter la programmation.
    J'ai réussi la première partie, mais je suis bloquer car je n'arrive pas à dessiner le rectangle de l'ouverture, ainsi que les lignes du profilé.
    Est ce que vous pouvez m'aider ?

    PS: j'ai AutoCAD 2011 et excel 2010
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bonjour,

    Un exemple pour dessiner un rectangle, sur le dessin actif, avec les caractéristiques suivantes :
    • Hauteur = 50
    • Largeur = 100
    • Position = coin inférieur gauche à X=0, Y=0

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    Option Base 1 '<-- permet de commencer les variables tableaux à 1 au lieu de 0
     
    'Nécessite d'activer la référence Autocad xxxx type library
    Sub Trace_Rectangle()
    Dim docAcad As AcadDocument
    Dim objPoly As AcadLWPolyline
    Dim Pts(1 To 10) As Double
     
    Set docAcad = AutoCAD.ActiveDocument
     
    'coordonnées X:Y du point de départ
    Pts(1) = 0: Pts(2) = 0
    'coordonnées X:Y du 2ème point formant la 1ère ligne verticale
    Pts(3) = 0: Pts(4) = 50
    'coordonnées X:Y du 3ème point formant la 2ème ligne horizontale
    Pts(5) = 100: Pts(6) = 50
    'coordonnées X:Y du 4ème point formant la 3ème ligne verticale
    Pts(7) = 100: Pts(8) = 0
    'coordonnées X:Y du 5ème point formant la 4ème ligne horizontale
    Pts(9) = 0: Pts(10) = 0
     
    Set objPoly = docAcad.ModelSpace.AddLightWeightPolyline(Pts)
     
    End Sub

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2012
    Messages : 16
    Par défaut
    Merci beaucoup !! Je vais essayer ça tout de suite !

    Sinon je voudrais savoir si il est possible d'envoyer le dessin sur un fichier dwg déjà existant. Je pense à cela car j'ai un fichier dwg pré-rempli avec les cartouches etc ?

    J'avais ce code sinon.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub ExportRectangle(DuCoin As Variant, AuCoin As Variant)
        Dim plineObj As AcadPolyline
        Dim points(0 To 14) As Double
     
        points(0) = DuCoin(0): points(1) = DuCoin(1): points(2) = 0
        points(3) = AuCoin(0): points(4) = DuCoin(1): points(5) = 0
        points(6) = AuCoin(0): points(7) = AuCoin(1): points(8) = 0
        points(9) = DuCoin(0): points(10) = AuCoin(1): points(11) = 0
        points(12) = DuCoin(0): points(13) = DuCoin(1): points(14) = 0
     
        Call AcadEspaceObjet.AddPolyline(points)
    End Sub
    A part le fait que celui là est en X,Y,Z, je voudrais savoir qu'elle la différence avec le premier ?
    Surtout entre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim plineObj As AcadPolyline
    Et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim docAcad As AcadDocument
    Dim objPoly As AcadLWPolyline
    Et entre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Call AcadEspaceObjet.AddPolyline(points)
    Et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set docAcad = AutoCAD.ActiveDocument
    Set objPoly = docAcad.ModelSpace.AddLightWeightPolyline(Pts)
    Merci !

  4. #4
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Pour utiliser un fichier dwg existant il y a différentes possibilités :
    • Le fichier est déjà ouvert
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
      7
      8
      Sub Trace_Rectangle()
      Dim docAcad As AcadDocument
      Dim objPoly As AcadLWPolyline
      Dim Pts(1 To 10) As Double
       
      Set docAcad = AutoCAD.Documents("NomDuFichier.dwg")
      'reste du code
      '...
    • Autocad est ouvert mais pas le fichier
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
      7
      8
      Sub Trace_Rectangle()
      Dim docAcad As AcadDocument
      Dim objPoly As AcadLWPolyline
      Dim Pts(1 To 10) As Double
       
      Set docAcad = AutoCAD.Documents.Open("Lecteur:\Chemin_Complet\NomDuFichier.dwg")
      'reste du code
      '...
    • Autocad n'est pas ouvert et forcément...le fichier non plus
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      Sub Trace_Rectangle()
      Dim appAcad As AcadApplication
      Dim docAcad As AcadDocument
      Dim objPoly As AcadLWPolyline
      Dim Pts(1 To 10) As Double
       
      Set appAcad = New AcadApplication
      appAcad.Visible = True
      Set docAcad = appAcad.Documents.Open("Lecteur:\Chemin_Complet\NomDuFichier.dwg")
      'reste du code
      '...


    La différence entre AcadPolyline et AcadLWPolyline est que la première est une polyline 3D et la seconde une polyline 2D sans l'élévation Z

    Concernant la méthode suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set objPoly = docAcad.ModelSpace.AddLightWeightPolyline(Pts)
    Le fait d'instancier un objet (objPoly) lors de la création de la polyline permettra plus facilement de manipuler les propriétés de cette polyline, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Set objPoly = docAcad.ModelSpace.AddLightWeightPolyline(Pts)
    With objPoly
        .Lineweight = acLnWt070
        .Layer = "TonLayer"
        .LineType = "DASHDOT"
        MsgBox .Area
    End With

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2012
    Messages : 16
    Par défaut
    Encore merci !! C'est très sympa de prendre le temps de tout m'expliquer !!

    Vu que tu à l'air d'en connaitre un rayon en ce qui concerne le pilotage d'AutoCAD par excel.
    Aurais tu un livre, un pdf, un site internet, un tuto, ou autre à me conseiller pour en apprendre plus, et surtout arriver à mes objectifs par moi même ? ( Car c'est en cherchant qu'on apprend le mieux !)

    J'ai chercher sur internet mais je n'ai rien trouver qui soit vraiment centré sur le pilotage d'AutoCAD.

  6. #6
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Le seul livre que je connaisse est Programmer AutoCad : Avec Diesel, AutoLISP, DLC et VBA de Jean-Pierre Couwenbergh.
    Cela concerne le VBA intégré à Autocad mais les commandes via Excel, après avoir activé la référence adéquate, sont quasi identiques.
    D'autre part tu as une aide intéressante via le VBA Excel, sélectionne une des propriétés ou un des objets (par exemple AcadLWPolyline) et clique sur F1

Discussions similaires

  1. Programmer en lisp sur autocad
    Par jakeharper dans le forum Lisp
    Réponses: 4
    Dernier message: 17/07/2017, 14h18
  2. Programmer sur Autocad
    Par taotao dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 19/02/2014, 18h41
  3. Programme dessin automatisé sur AutoCAD
    Par Sapphire_chevrons dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 30/01/2014, 18h39
  4. Réponses: 8
    Dernier message: 27/03/2006, 17h12
  5. Réponses: 2
    Dernier message: 30/10/2005, 14h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo