Aller au contenu

Aide sur le code DXF 5 (Identificateur HANDLE)


Messages recommandés

Posté(e)

Salut tout le monde, j'éspère que ceux qui sont partis en vacances se sont bien reposés voici ma nouvelle colle:

 

Le problème est simple, voici hors contexte ce que ca donne:

Je selectionne une ligne, et je souhaite grace aux coordonnées "Getboundingbox" de celle-ci et la methode "Object.Select acSelectionSetCrossing" selectionner tous les objets qui coupent ou sont sur cette ligne. Donc ca ca marche.

Le hic c'est que je ne veux pas qu'il me selectionne la ligne en question et je décide donc d'utiliser lors de ma selection un filtre utilisant le HANDLE de cette ligne, voici cette partie du code:

 

Dim intCodesGl(2) As Integer

Dim VarValeursGl(2) As Variant

Dim Objline As AcadLine

 

intCodesGl(0) = -4: VarValeursGl(0) = "

intCodesGl(1) = 5: VarValeursGl(1) = Objline.Handle

intCodesGl(2) = -4: VarValeursGl(2) = "NOT>"

selectionAutour.Select acSelectionSetCrossing, ptMin, PtMax, intCodesGl, VarValeursGl

 

MESSAGE ERREUR:"Argument filter list incorrect dans select"

 

Ma question est comment utiliser le filtre avec le code DXF 5?

Pour info je suis sous Autocad2008.

 

Merci pour vos aides.

Posté(e)

Attention lire:

 

intCodesGl(0) = -4: VarValeursGl(0) = "NOT"

intCodesGl(1) = 5: VarValeursGl(1) = Objline.Handle

intCodesGl(2) = -4: VarValeursGl(2) = "NOT>"

 

Il y a bien le signe < avant le premier NOT, mais ca fait le bug ci dessus si je le mets...

  • 1 mois après...
Posté(e)

as-tu finalement réussi à faire ton filtre ?

 

ATEGIE - Bureau d'Études Fluides

http://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.png

Exécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffrage

www.ategie.fr

Posté(e)

Non, j'ai contourné le prblème en stockant les Handle dans un STRING et en retranchant de ma selection les objets que je ne veux pas:

 

stHandle() = Split(strListHandle, ";")

For i = 0 To UBound(stHandle) - 1

 

For Each ObjCad In SelectionLigne

If ObjCad.Handle = stHandle(i) Then

Set Objremove(0) = ObjCad

SelectionLigne.RemoveItems Objremove

Exit For

End If

Next ObjCad

Next i

 

Pas trés éléguant mais bon ca marche...

Posté(e)

l'élégance, c'est uniquement pour le fun, parfois, un code moins élégant sera plus performant...

 

Il m'arrive souvent de "tricher" quand je ne connais pas la méthode normale.

ATEGIE - Bureau d'Études Fluides

http://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.png

Exécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffrage

www.ategie.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é