dezhopper Posté(e) le 24 mai 2011 Posté(e) le 24 mai 2011 Bonjour, je traine sur un vulgaire problème depuis quelques heures, et je n'arrive vraiment pas à comprendre d'ou cela peu venir, c'est d'une simplicitée pourtant. If (ObjetTemp.EntityName = "AcDbBlockReference") And (ObjetTemp.Layer = "THD_PM 1000") And (ObjetTemp.EffectiveName = "PM 1000") Then TableauTemp(6) = TableauTemp(6) + 1 Debug.Print ObjetTemp.EntityName End If Ce code se trouve dans une boucle qui pointes les objets d'un jeu de séléction, et même lorsque l'objet est une polyligne ou une ligne ou une hachure, la valeur TableauTemp(6) s'incrémente, et le debug me marque AcdbPolyline etc... Est ce que vous savez d'ou cela peu provenir?En vous remerciant d'avance. Dezhopper.
rom1_am Posté(e) le 25 mai 2011 Posté(e) le 25 mai 2011 Salut, Ce souci me dit quelque chose, je crois avoir déjà eu un problème similaire. Il faudrait que je regarde en détails mais il me semble que lorsque tu testes une propriété qui n'existe pas (par exemple la propriété EffectiveName pour une polyligne n'existe pas), ça génère une erreur et du coup le test est complètement faux. Essaie plutôt de décomposer le test avec plusieurs If imbriqués ou utilises une variable booléenne.Essaie sinon d'utiliser une variable de type 'bloc', par exemple: Dim bloc as AcadBlockReference If ObjetTemp.EntityName = "AcDbBlockReference" then Set bloc = ObjetTemp if bloc.EffectiveName = ... Then ... _______________________________R.A.Développeur AutoCAD C#.netwww.danialu.fr
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