jonueva Posté(e) le 26 août 2007 Posté(e) le 26 août 2007 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.
jonueva Posté(e) le 26 août 2007 Auteur Posté(e) le 26 août 2007 Attention lire: intCodesGl(0) = -4: VarValeursGl(0) = "NOT"intCodesGl(1) = 5: VarValeursGl(1) = Objline.HandleintCodesGl(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...
sechanbask Posté(e) le 4 octobre 2007 Posté(e) le 4 octobre 2007 as-tu finalement réussi à faire ton filtre ? ATEGIE - Bureau d'Études Fluideshttp://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.pngExécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffragewww.ategie.fr
jonueva Posté(e) le 5 octobre 2007 Auteur Posté(e) le 5 octobre 2007 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...
sechanbask Posté(e) le 7 octobre 2007 Posté(e) le 7 octobre 2007 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 Fluideshttp://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.pngExécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffragewww.ategie.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