DenisHen Posté(e) le 15 décembre 2021 Posté(e) le 15 décembre 2021 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 : ByBlock, ByLayer 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)
didier Posté(e) le 15 décembre 2021 Posté(e) le 15 décembre 2021 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 Éternel débutant... Mon site perso : Programmer dans AutoCAD
Curlygoth Posté(e) le 15 décembre 2021 Posté(e) le 15 décembre 2021 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... Mon site Web (en cours de construction) : Site DA-CODE de @didier
DenisHen Posté(e) le 15 décembre 2021 Auteur Posté(e) le 15 décembre 2021 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)
Curlygoth Posté(e) le 15 décembre 2021 Posté(e) le 15 décembre 2021 Regarde tes processus en cours... Attend il n'y a pas le create reprend le code que gile(s) t'avais donné pour ouvrir / cibler un dwg ! L'aide VBA https://docs.microsoft.com/fr-fr/office/vba/language/reference/user-interface-help/createobject-function Mon site Web (en cours de construction) : Site DA-CODE de @didier
DenisHen Posté(e) le 15 décembre 2021 Auteur Posté(e) le 15 décembre 2021 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) : 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)
Curlygoth Posté(e) le 15 décembre 2021 Posté(e) le 15 décembre 2021 Err.clear enleve les parenthèses et ta dernière ligne en rouge c'est l'application donc la besoin tu l'a déjà écrit dans ton code 😉 Mon site Web (en cours de construction) : Site DA-CODE de @didier
DenisHen Posté(e) le 15 décembre 2021 Auteur Posté(e) le 15 décembre 2021 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...: 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)
DenisHen Posté(e) le 15 décembre 2021 Auteur Posté(e) le 15 décembre 2021 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)
DenisHen Posté(e) le 15 décembre 2021 Auteur Posté(e) le 15 décembre 2021 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)
Curlygoth Posté(e) le 15 décembre 2021 Posté(e) le 15 décembre 2021 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 Mon site Web (en cours de construction) : Site DA-CODE de @didier
DenisHen Posté(e) le 15 décembre 2021 Auteur Posté(e) le 15 décembre 2021 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)
Messages recommandés
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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant