Vba autocad [Résolu]

Signaler
Messages postés
4
Date d'inscription
jeudi 29 novembre 2007
Statut
Membre
Dernière intervention
1 décembre 2007
-
Messages postés
4
Date d'inscription
jeudi 29 novembre 2007
Statut
Membre
Dernière intervention
1 décembre 2007
-
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

5 réponses

Messages postés
4
Date d'inscription
jeudi 29 novembre 2007
Statut
Membre
Dernière intervention
1 décembre 2007

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
Messages postés
682
Date d'inscription
vendredi 6 avril 2007
Statut
Membre
Dernière intervention
4 août 2012
6
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
Messages postés
682
Date d'inscription
vendredi 6 avril 2007
Statut
Membre
Dernière intervention
4 août 2012
6
re
ps:
j'avais écrit ça sous autocad 2000 et je suis maintenant sous 2008 et ça fonctionne toujours parfaitement
Messages postés
4
Date d'inscription
jeudi 29 novembre 2007
Statut
Membre
Dernière intervention
1 décembre 2007

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
 
Messages postés
682
Date d'inscription
vendredi 6 avril 2007
Statut
Membre
Dernière intervention
4 août 2012
6
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