Aller au contenu

Condition Non Respectée If et BUG


Messages recommandés

Posté(e)

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.

 

Posté(e)

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#.net

www.danialu.fr

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é