nen Posté(e) le 18 juillet 2022 Posté(e) le 18 juillet 2022 Bonjour le forum😀, J’aurais besoin de vos lumières🤔. J’ai le code VBA ci-dessous qui détecte les polylignes non fermées dans un dessin AutoCAD. Le problème c’est qu’il le fait sur toutes les polylignes se trouvent dans tous les calques. J’aimerais faire cette détection seulement dans un seul calque, le calque « Polygonale » Est-possible ? Merci d'avance Sub PolylignesOuvertes() For Each ent In ThisDrawing.ModelSpace ent.color = acWhite If ent.ObjectName = "AcDbPolyline" Then If ent.Closed = False Then ent.color = acRed Else ent.color = acGreen End If End If Next ent ThisDrawing.Regen (acActiveViewport) End Sub
(gile) Posté(e) le 18 juillet 2022 Posté(e) le 18 juillet 2022 Salut, Un truc du genre: If ent.ObjectName = "AcDbPolyline" AndAlso ent.Layer = "Polygonale" ... Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
nen Posté(e) le 18 juillet 2022 Auteur Posté(e) le 18 juillet 2022 Bonjour, Je te remrcie pour ta réponse👍. J'ai bien remplacé la ligne "If ent.ObjectName..." exemple ci-dessous. Malheureusement dans VB la ligne est en rouge et un message avec "Erreur de syntaxe" J'ai fait faux quelque chose ?🤔 Sub PolylignesOuvertes() For Each ent In ThisDrawing.ModelSpace ent.color = acWhite If ent.ObjectName = "AcDbPolyline" AndAlso ent.Layer = "Polygonale" If ent.Closed = False Then ent.color = acRed Else ent.color = acGreen End If End If Next ent ThisDrawing.Regen (acActiveViewport) End Sub
didier Posté(e) le 18 juillet 2022 Posté(e) le 18 juillet 2022 Bonjour @nen Je pense que ces lignes corrigées devraient résoudre ton souci. Amicalement Sub PolylignesOuvertes() For Each ent In ThisDrawing.ModelSpace ent.color = acWhite If ent.ObjectName = "AcDbPolyline" And ent.Layer = "Polygonale" Then If ent.Closed = False Then ent.color = acRed Else ent.color = acGreen End If End If Next ent ThisDrawing.Regen (acActiveViewport) End Sub Éternel débutant... Mon site perso : Programmer dans AutoCAD
nen Posté(e) le 18 juillet 2022 Auteur Posté(e) le 18 juillet 2022 Bonjour😀, Je te remercie pour ton aide👍. Le code fonctionne, il y a juste qu'il change la couleur (en blanc) d'autres polygonales des autres calques qu'il ne doit pas toucher. Si c'est possible de corriger ?🤔 Meilleures salutations
didier Posté(e) le 18 juillet 2022 Posté(e) le 18 juillet 2022 Bonjour @nen Je suis content de t'avoir dépatouillé, mais pour la question que tu me poses en dernier, je ne sais pas quoi dire. C'est dans ton code d'origine que la ligne qui change TOUTES les polylignes trouvées en couleur BLANC ent.color = acWhite Si tu ne veux pas de cette action, supprime-la ou mets-la en commentaire. Amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
nen Posté(e) le 20 juillet 2022 Auteur Posté(e) le 20 juillet 2022 Bonjour😀, Je vous remercie pour aide, c'est exactement ça👍👌. Je remercie à tous ceux mit leur contribution à la correction du code et à la résolution de ce poste👏 Meilleures salutations
didier Posté(e) le 20 juillet 2022 Posté(e) le 20 juillet 2022 Bonjour @nen Je me permets de te conseiller de commencer ton apprentissage avec des choses simples. Le premier conseil n'est pas toujours agréable à entendre, mais je continue et je continuerai à le seriner. Ne pas utiliser de copier-coller, taper les lignes de code permet de COMPRENDRE ce qu'on fait, Dans le cas présent, au moment de demander le changement des polylignes en couleur "blanc", au moment de la frappe, le souci (évident) aurait été détecté. Amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
Curlygoth Posté(e) le 21 juillet 2022 Posté(e) le 21 juillet 2022 touche F8 pour aller de pas a pas ou mettre un arret un moment de l'erreur, il va mettre te dire le probleme et son numéro, il n'y aura qu'a corriger et plus tard te va créer un gestionnaire d'erreur avec des logs et ca va aider ^^ Mon site Web (en cours de construction) : Site DA-CODE de @didier
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