Aller au contenu

Compte le nombre d\'objet dans un calque !


Pako

Messages recommandés

Public Sub SelectLayer()

'***********************************************************

' Ce programme sélectionne tous les objets sur le calque "0"

' Pour avoir tous les objets de l'espace courante : Select objects: _all

' Enlever tous les "...." qui sont utilisés pour imbrication

' pako35@hotmail.com

************************************************************

....Dim objObject As AcadObject

....Dim objSelectSet As AcadSelectionSet

....Dim dataCodeDxf(0) As Variant

....Dim nCodeDxf(0) As Integer

....Dim dbConteur As Double

 

....On Error Resume Next

....nCodeDxf(0) = 8: dataCodeDxf(0) = "0" 'NOM DU CALQUE

 

....Set objSelectSet = ThisDrawing.SelectionSets.Add("GroupeSelect")

....If Err.Number <> 0 Then

........Set objSelectSet = ThisDrawing.SelectionSets("GroupeSelect")

........objSelectSet.Clear

........Err.Clear

....End If

....objSelectSet.SelectOnScreen nCodeDxf, dataCodeDxf

 

....For Each objObject In objSelectSet

........dbConteur = dbConteur + 1

....Next

 

....MsgBox ("Le nombre d'objet sur le calque " & dataCodeDxf(0) & " est de " _

....& dbConteur & ". Vive CADxp !")

....objSelectSet.Delete

 

'***********************************************************

End Sub

 

l'ACADien ! http://img124.exs.cx/img124/7999/start.gif

Lien vers le commentaire
Partager sur d’autres sites

Invité Sylvainhinard

Bonjour Pako,

 

Excuse moi j'ai oublié de te remercier l'autre fois pour ton programme. Je suis un petit nouveau en programmation... Pourrait tu commenter un peu ton programme j'avoue que cela me serais d'une grande aide...

 

Encore merci pout tout

 

Sylvain

Lien vers le commentaire
Partager sur d’autres sites

Invité Sylvainhinard

En fait, en executant ton code il y a une partie que je souhaiterai que tu me détaille :

 

If Err.Number <> 0 Then

Set objSelectSet = ThisDrawing.SelectionSets("GroupeSelect")

objSelectSet.Clear

Err.Clear

 

Quelle est l'utilité de faire cette vérification?

 

D'autre part pendant l'execution du programme il faut choisir les objet à l'ecran via : objSelectSet.SelectOnScreen nCodeDxf, dataCodeDxf . Serait il possible de prendre tout les objet du dessin et de les passer en revue?

 

Merci encore.

 

;)

Lien vers le commentaire
Partager sur d’autres sites

Encore merci pout tout

 

Il me fait toujours plaisir d'aider un membre donateur .... ;)

 

 

 

If Err.Number <> 0 Then

Set objSelectSet = ThisDrawing.SelectionSets("GroupeSelect")

objSelectSet.Clear

Err.Clear

 

L'objSelectSet va servir comme un panier dans lequel, on va y rajouter des éléments plus loin dans le code. Cette nouvelle sélection SelectionSet est initialement vide (Clear); on va la remplit par l'une des méthodes acSelectionSetXXX (ex: AcSelectionSetAll, ect...) ou par l'utilisateur de l'une des méthodes SelectXXX (ex: SelectOnScreen, ect...). Donc après cette vérification, nous avons un panier vide qui est prêt à recevoir des éléments....

:casstet:

 

D'autre part pendant l'execution du programme il faut choisir les objet à l'ecran via : objSelectSet.SelectOnScreen nCodeDxf, dataCodeDxf . Serait il possible de prendre tout les objet du dessin et de les passer en revue?

 

Oui , avec une sélection comme celle-ci :

 

objSelectSet.Select [/b]acSelectionSetAll[/b] , , , nCodeDxf, dataCodeDxf :exclam:

 

 

 

A+

l'ACADien ! http://img124.exs.cx/img124/7999/start.gif

Lien vers le commentaire
Partager sur d’autres sites

Serait il possible de prendre tout les objet du dessin et de les passer en revue?

 

Tu peux lors de la sélection à l'écran, taper : _ALL (ex: Select objects: _all )

(Tous les objets de l'espace courrant seront passer en revue)

 

 

 

 

;)

l'ACADien ! http://img124.exs.cx/img124/7999/start.gif

Lien vers le commentaire
Partager sur d’autres sites

coucou

 

je viens me prosterner en rampant sur les genoux

pour remercier le Camarade PAKO,

 

car je ne me suis jamais posé cette question de la vérification de l'objet Sélection.

Dorénavant je vais copier-coller ce truc dans mes SUB, et grâce à l 'entente cordiale Franco-Canadienne, on Canadienno-Française, j'aurai moins de messages d'erreurs.

 

bon, ben de ce pas, je vais à la pharmacie, car je me suis ruiné les genoux,

je me relève et je te salue PAKO.

 

amicalement

Lien vers le commentaire
Partager sur d’autres sites

je viens me prosterner en rampant sur les genoux

pour remercier le Camarade PAKO,

 

Inutile de te prosterner, cher Didier ... :red:

On est tous ici'tte pour s'entraider !

 

Et comme dit le proverbe : La Connaissance s'accroît quand on la partage ! .... ;)

 

amicalement,

 

l'ACADien !

l'ACADien ! http://img124.exs.cx/img124/7999/start.gif

Lien vers le commentaire
Partager sur d’autres sites

  • 5 ans après...

Salut à tous...

 

Génial ce code, il m'enlève une bûche du pied...

 

Mais comment faire pour fouiller aussi les attribut de certains blocs ?

 

Je fait un quantitatif de maisons individuelles et ma menuiserie, comme d'autre corps d'états, sont des blocs avec des attributs (matière, taille, prix...)

 

Merci encore...

 

Et bon partage à tous...

 

DenisH...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

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é