newvbfan
Messages postés4Date d'inscriptionjeudi 29 novembre 2007StatutMembreDernière intervention 1 décembre 2007
-
29 nov. 2007 à 12:18
newvbfan
Messages postés4Date d'inscriptionjeudi 29 novembre 2007StatutMembreDernière intervention 1 décembre 2007
-
29 nov. 2007 à 13:26
g un pb avec selection set ,je veux manipuler les objects selectionner a l ecran mé j ariv pa
plu precisemen je ve recupere les object ds sset pour les manipuler
alors coment les recupere?
merci & pleaze help
newvbfan
Messages postés4Date d'inscriptionjeudi 29 novembre 2007StatutMembreDernière intervention 1 décembre 2007 29 nov. 2007 à 13:26
ce ce que je fais ,le help m a souven repondu a mé kestion mé la
ca marche plu
car mn projet consiste a effectué une selection a l ecran n import kel forme ,pui la manipuler :effectuer une copie ,ou bien an arraypolar ....
é la j bloque au nivo de la manip des elemant de selection set !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
donc c vremen cass tete :)
bref encor merci é si t a saisie mn pb é k tu m aider ca srai geniaaaaaaaaaaaaaaaaaal
thanks
pile_poil
Messages postés682Date d'inscriptionvendredi 6 avril 2007StatutMembreDernière intervention 4 août 20126 29 nov. 2007 à 12:29
bonjour
je me souviens avoir monstrueusement galéré avec ça aussi voici donc la solution que j'avais trouvé et qui me donne satisfaction
bien sûr il faut déclarer les variables avant
ce petit bout de soft me permet de récupérer dans un listbox les différents objets ayants des attributs dans la selection faite et si il n'y a pas de selection je prend l'ensemble du dessin
If ThisDrawing.SelectionSets.Count < 1 Then
Set ZoneChoix = ThisDrawing.SelectionSets.Add("jeu")
Else
Set ZoneChoix = ThisDrawing.SelectionSets.Item("jeu")
End If
ZoneChoix.Clear
ZoneChoix.SelectOnScreen
If ZoneChoix.Count < 1 Then
Set toto = ThisDrawing.ModelSpace
Else
Set toto = ZoneChoix
End If
Userform1.ListBox1.Clear
For Each ACADobj In toto
With ACADobj
If StrComp(.EntityName, "AcDbBlockReference", 1) = 0 Then
If .HasAttributes Then
If Userform1.ListBox1.ListCount < 1 Then
Userform1.ListBox1.AddItem (ACADobj.Name)
Else
For I = 1 To Userform1.ListBox1.ListCount
If Userform1.ListBox1.List(I - 1) = ACADobj.Name Then GoTo _ remplissage
Next I
Userform1.ListBox1.AddItem (ACADobj.Name)
End If
remplissage:
End If
End If
End With
Next ACADobj
If Userform1.ListBox1.ListCount < 1 Then
message = MsgBox("Le dessin est vide.", vbExclamation)
Exit Sub
End If
newvbfan
Messages postés4Date d'inscriptionjeudi 29 novembre 2007StatutMembreDernière intervention 1 décembre 2007 29 nov. 2007 à 13:08
c a me permet de recuperer les element de selectionset ds la listebox?
je vien tt jsut de debuté dc je saisi pa automatikmen :)
dc si g un cercle a lecran é une ligne a l ecran ,je v lé trouvé ds listebox é pui g v pouvoir lé manipulé
je t remerci du fon du couer pr ce prog
tu pe m dire ds kel but t a utilisé ce prog ?
il s peu k ca s raproche de mn prjet
encor une fois mille merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
pile_poil
Messages postés682Date d'inscriptionvendredi 6 avril 2007StatutMembreDernière intervention 4 août 20126 29 nov. 2007 à 13:20
en fait si tu as juste un cercle ou un trait mon prog tel qu'il est ne récupérera rien puisque dans les éléments du jeu de selection je ne conserve que les blocs qui ont des attributs
If StrComp(.EntityName, "AcDbBlockReference", 1) = 0 Then
If .HasAttributes Then
a toi de choisir les éléments que tu veux récupérer dans ton jeu de selection avec le if then
mais si commences juste avec VBA pour autocad je te conseille vivement de te référer tres souvent à l'aide en faisant F1 sur les éléments qui te posent probleme et de ne pas avoir peur de mettre plein d'espions afin de voir ce que sont les données récupérées
dermeir point : n'hésites pas à tester les exemples qui sont abondants
testes les en pas à pas pour bien piger comment ça marche