Aller au contenu

Liste des types de ligne depuis Excel


Messages recommandés

Posté(e)

Bonjour à la communauté.
Voilà, je tombe sur un problème que je n'arrive pas à identifier.
Je cherche la liste des types de ligne définis dans le dessin courant d'AutoCAD et ce, depuis Excel.
J'ai donc écris ça :

Public Sub ImpTypLignCAD()
    Dim AcadApp As Object
    Set AcadApp = GetObject(, "AutoCAD.Application")
    Dim DocAutoCad As Object
    Set DocAutoCad = AcadApp.ActiveDocument

    Dim entry As Object
    For Each entry In DocAutoCad.Linetypes
        MsgBox "Calq=" & entry.name
        Lign = Lign + 1
    Next
End Sub

Mais je n'obtiens que trois types de ligne : ByBlockByLayer et Continuous. Sachant qu'il y en a d'autres dans le dessin.
J'ai le même problème pour tous les autres dessins.

Si quelqu'un a une astuce, un conseil... Je suis preneur...

Bien à toi, la communauté.
Denis...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Posté(e)

Bonjour @DenisHen

Es-tu ABSOLUMENT CERTAIN de ne pas avoir chargé d'autres types de lignes ?
Je viens de faire un test de ton code et dès que je charge un type de ligne il apparaît bien au lancement de la routine...

Attention, ça ne signifie pas pour autant qu'il est utilisé, il peut être chargé, mais non utilisé donc si je comprends bien à ne pas prendre en compte dans ta liste.

Amicalement

 

Posté(e)

J'ai pas l'impression que ce bout de code récupére le "bon" dessin dans autocad...

Si Didier a ouvert un seul dessin il va effectivement charger les types de lignes dans la collection que tu lui as indiquer mais si ton programme voit dessin1 ou juste l'objet autocad oui il ne t'en sortiras que 3...

 

 

 

 

 

Posté(e)

Bonjour @didier et @Curlygoth.
Merci pour votre retour.
Je suis en train de continuer mes recherches.
Et je viens de découvrir une chose très curieuse, le programme me sort ces trois types de ligne, même sans AutoCAD.
Je ne comprend pas pourquoi ce programme ne s'arrête pas à : "Set AcadApp = GetObject(, "AutoCAD.Application")" si AutoCAD n'est pas lancé...
Mais je continu de chercher.
Encore merci à vous...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Posté(e)

Salut @Curlygoth, et merci pour ton aide.
Il me semble que le "CreateOgject" créer le lencament de l'application, mais le code que m'a écrit @(gile), il créer ou retourne l'application lancée.
Mais j'ai du retouché son code, car si je le colle dans le VBA d'Excel, ça me donne ça (et je n'aime pas le rouge) : 

Pour CurlyGoth.jpg
Je pense que c'est exactement ce qu'il me faux, mais je doute que ce que j'ai fais soit convenable...
Encore merci à toi...
Denis...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Posté(e)

Ok, c'est fait.
J'avais aussi pris le deuxième code de (gile). Mais il lance systématiquement une nouvelle session d'AutoCAD.
Ce code ne voit pas l'AutoCAD déjà en instance...:
 

Pour CadXP.jpg

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Posté(e)

Par contre, maintenant, AutoCAD se lance en moins d'une seconde...
Curieux...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Posté(e)

Stoppez tout ! ! !
Je pense avoir un début de solution, et je ne voudrais pas vous faire perdre de temps, je continu de chercher...
Je pense que j'ai un début de solution avec ça, qui à l'air de fonctionner :

    Dim acadApp As Object
    On Error Resume Next
    Set acadApp = GetObject(, "AutoCAD.Application")
    On Error GoTo 0
    If acadApp Is Nothing Then MsgBox "Aucun AutoCAD en cours a été trouvé": Exit Sub
    acadApp.Visible = True

Bien à toi, la communauté...
Denis...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Posté(e)

Oui c'est ça et je conseil une nouvelle fois de créer des sub et fonction pour chaque petite tâche ça t'évitera de toujours "chercher" car tu as (je pense) tout ce qu'il faut pour ce que tu veux faire 

 

Posté(e)

Oui, merci @Curlygoth pour ta confiance et ton soutient...
C'est bon, je commence à avoir des résultats...
Voici un code qui fonctionne :

Public Sub ImpTypLignCAD_CadXP()
    Dim AcadApp As Object
    On Error Resume Next
    Set AcadApp = GetObject(, "AutoCAD.Application")
    If AcadApp Is Nothing Then MsgBox "Aucun AutoCAD en cours a été trouvé": Exit Sub
    Dim DocAutoCad As Object
    Set DocAutoCad = AcadApp.ActiveDocument
    Dim TypLign As Object
    Debug.Print "*Début*"
    For Each TypLign In DocAutoCad.Linetypes
        Debug.Print TypLign.name
    Next
    Debug.Print "*Fin*"
End Sub

Je suis content, et vous remercie par la même occasion.
Bien à toi, la communauté.
Denis (très content)...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité