Aller au contenu

[RÉSOLU] Compter (sélectionner ?) les blocs avec attributs identiques


Messages recommandés

Posté(e)

re-Bonjour,

 

J'ai quelques soucis pour les blocs avec attributs.

Je pense que c'est à la fois un problème de méthode, d'ignorance de ma part et de LISP ...

Déjà consulté différents sujets (attributs, excel ...), et mêmes quelques .lsp (extraction d'attributs, étiquette ...) mais ça ne m'a pas vraiment aidé pour le moment.

 

■ OBJECTIF ■

Compter le nombre de blocs ayant le même nom de bloc et le même attribut.

 

■ DESSIN ■

Si je dessine 1 bloc en forme de bouteille ; et 1 autre en forme de canette.

Avec la commande ATTDEF, je créé 2 étiquettes : Bouteille et Canette.

Je défini 2 blocs : bouteille et canette.

 

Maintenant, je duplique ces blocs. J'en sélectionne un à la fois, et dans le tableau de propriétés je modifie l'attribut. Exemple :

BOUTEILLE | Vin rouge

BOUTEILLE | Vin blanc

BOUTEILLE | Évian

CANETTE | 1664

CANETTE | Coca

CANETTE | Nestea

 

Je les duplique enfin ça et là sur le dessin.

J'ai donc : plein de blocs, 2 étiquettes, 6 attributs.

 

■ QUESTIONS ■

°/ Comment feriez-vous pour compter le nombre de canettes de coca ?

(je m'y prends peut-être mal, mais l'idée d'un seul bloc dont le "texte" lié est facilement modifiable me convient parfaitement)

 

°/ Le lisp SSMATCH de (gile) est génial mais dans ce cas de figure, sauf erreur de ma part, il ne permet pas de sélectionner ce genre de bloc.

 

°/ Cerise sur le gâteau, pensez-vous qu'il soit envisageable de remplir ou de générer une sorte de tableau / listing, qui automatiserait le comptage ?

30 canettes de coca

60 canettes de 1664

20 bouteilles d'évian

etc etc

J'ai regardé du côté des champs, mais ... ???

 

Par avance, merci de toute l'aide (précieuse) que vous pourrez m'apporter.

Bon ap'

Posté(e)

Waou !!

C'est génial. Un grand merci.

(pour ta réponse dans la demi-heure ... et pour créer et partager autant de choses !!)

PS : Désolé et surpris d'être passé à côté, car j'avais bien pris la peine de re-consulter les sujets épinglés des routines ...

 

 

EDIT :

 

J'efface tout le reste du post, car il n'était pas clair et j'ai trouvé la solution à mon problème :

Je n'arrivais pas à masquer un deuxième attribut.

 

Le but est d'avoir : 1 attribut qui soit concis affiché sur le dessin. Et 1 autre attribut textuel complet qui soit invisible sur le dessin ... mais utilisable lors de l’extraction vers un fichier.

 

Si je reprends mon ex. plus haut :

bloc = canette

attribut 1 = CANETTE = Coca

attribut 2 = DESIGNATION = canette(s) de Coca Cola 33 cl

 

Chez moi, pour que la fonction invisible fonctionne, il faut créer le bloc initial avec les 2 attributs. En éditant le bloc, ajout du 2ème attribut, puis validation ==> " BUG ".

 

Une autre solution consiste à mettre le 2ème attribut sur un calque différent, qu'il suffira de masquer.

Posté(e)

Bonjour,

 

Egalement possible en natif sous AutoCAD avec l’extraction d’attributs (résultat sous forme de tableau), commande eattext, même si c’est le forum lisp je voulais en rappeler la possibilité.

 

A+

Apprendre => Prendre => Rendre

Posté(e)

Re, comme nos post ce sont croisés je développe un peu plus mon message précédent.

 

Un exemple rapide de ce que tu peux obtenir en natif avec les commandes AutoCAD _EATTEXTpuis la commande _TABLEEXPORT pour enregistrer le tableau dans un fichier .csv avant ouverture sous Excel pour traitement ultérieur (note tu peux aussi exporter les données directement avec _EATTEXT et opter pour le tris de ton choix dans la présentation du résultat).

 

Quantité	Nom	TYPE	DESIGNATION
1	CANETTE	        Nestea	 
1	BOUTEILLE	Vin rouge	1 l
1	BOUTEILLE	Vin rouge	 
1	BOUTEILLE	Vin rouge	75 cl
1	BOUTEILLE	Vin blanc	33 cl
2	CANETTE	        1664	 
2	BOUTEILLE	Vin blanc	1 l
2	BOUTEILLE	Vin blanc	75 cl
3	CANETTE	        Coca	        33 cl
5	CANETTE	        Coca	

 

Avec des blocs définie comme suit :

1 Bloc : nom "BOUTEILLE" avec 2 attributs : 1 attribut "TYPE" & 1 attribut "DESIGNATION" (invisible)

1 Bloc : nom "CANETTE" avec 2 attributs : 1 attribut "TYPE" & 1 attribut "DESIGNATION" (invisible)

 

 

A voir si cela te convient dans ce cas tu peux peut être essayé d’en faire une macro commande en Lisp à voir.. (depuis le lisp les commandes AutoCAD n’ont pas besoin d’être précédé du caractère "–" pour désactiver les boîte de dialogue)

 

 

Le problème c'est qu'avec l'option ■ Invisible ; j'ai bel et bien Désignation quand j'édite mon bloc, mais sur le dessin, je ne peux pas changer à la volée ce 2ème attribut.

Une idée ?

 

Oui regard la variable ATTMODE (Contrôle l'affichage des attributs)dans l'aide:

si ATTMODE=2 Rend tous les attributs visibles

si ATTMODE=1 Respecte les état de visibilité des attributs

si ATTMODE=0 Rend tous les attributs invisibles

 

A+

Apprendre => Prendre => Rendre

Posté(e)

Salut

 

Très bien ton exposé, mais si tu as un bloc avec 6 attributs par exemple et tu veux que le décompte ne fasse la distinction qu'avec les 3 premiers ?

 

ps : pas mieux comme explications avec l'attribut invisible

 

@+

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Posté(e)

Salut PatricK_35

 

Très bien ton exposé,

Merci, c’est vrai que j’ai toujours tendance à tartiner un peu.. désolé.. :D

 

mais si tu as un bloc avec 6 attributs par exemple et tu veux que le décompte ne fasse la distinction qu'avec les 3 premiers ?

Tu fais une extraction sur les 3 premiers tout simplement (ou les attribut que tu veux mais forcément tu n’auras pas l’extraction correspondant aux attributs manquants).

 

Sinon comme j’avais précisé..

… enregistrer le tableau dans un fichier .csv avant ouverture sous Excel pour traitement ultérieur…

 

Bon ça reste du natif en commande AutoCAD, ce sera toujours moins optimisé qu’une bonne routine Lisp faite sur mesure en vla ou entmake, mais le tableau d’extraction sous AutoCAD est dynamique (je dis cela mais j’ai pas testé ta routine..) de plus cela doit pouvoir ce "macroter" donc un peu plus accessible pour un débutant, même si j'y vois pas un grand intérêt.. à part s'exercer et perdre un peu de souplesse dans le procédé.

 

 

(ps: si j'ai 5mn en soiré ou d'en le WE j'essaierai de monter la macro)

A+ Bruno

Apprendre => Prendre => Rendre

Posté(e)

J'ai édité mon message plus haut par rapport à la fonction "invisible"

(en fait il ne faut pas ajouter le 2eme attribut dans l'éditeur de bloc)

 

J'ai également testé l'extraction ; mais ce n'est pas adapté à mes "besoins" ... Trop d'étapes fastidieuses. Et en laissant tout activé, j'ai généré 98 colonnes, mais rien sur les champs d'attributs.

Posté(e)

as tu regarder la vidéo? (c'est un peu plus bas dans les réponses)

 

tu peu trier uniquement les blocs avec attribut, choisir quel bloc, choisir si tu groupe tel ou tel champs...

 

c'est vrai que c'est un peu foullis, et pas documenté voir un peu imbitable au 1er abord. Mais à y regarder de près, c'est pas très long de cocher des cases dans qqs pages, une fois que c'est fait une fois, il suffit de rappeler le gabarit d'extraction.

 

cet apparent boxon résulte de la souplesse de l'outil...

Posté(e)

Salut

 

Comme toi x_all je pense que l’extraction d’attribut est un bon outil (je l’utilise depuis 2005 un peu par obligation sur LT à l’époque) peut être un peu difficile d’accès au premier abord.

Avec le lien de x_all je viens de remarquer que la fonction a positivement évolué sur 2011 faut dire que je l’ai pas eu suffisamment longtemps pour m’en rendre compte je suis repassé sur 2007 (même si j’ai pas désinstallé la version 2011 à mon domicile), pas le choix c’était ça ou une version LT on peut dire que j’ai échappé à l’"apoca-LISP", mais bon c’est reculer pour mieux sauter car je viens d’apprendre qu’il n’y aurait plus de mise à jour et qu’a terme c’était l’"AutoCADlypse" qui s’annonçait dans l'entreprise à l'horizon d’un ou deux ans..

Dur dur je pense que c’est une belle c....rie mais c’est comme cela quant les décideurs (diseurs) ne sont pas les faiseurs.. Espérons qu'ils s'en rendent compte avant..

 

Sinon pour Autocadavre

Chez moi, pour que la fonction invisible fonctionne, il faut créer le bloc initial avec les 2 attributs. En éditant le bloc, ajout du 2ème attribut, puis validation ==> " BUG "

Tu n’aurais pas plutôt un problème de synchronisation de référence de bloc, sinon avant l’apparition de la commande d’édition des blocs, il suffisait de redéfinir le bloc pour faire la même chose.

 

A+

Apprendre => Prendre => Rendre

Posté(e)

Bjr,

 

■ (gile)

SSATT, je n'arrive pas à m'en servir car je ne sais pas quoi cibler lorsqu'il me demande l'attribut source ...

SSTAG, ça peut m'être utile, merci beaucoup.

 

■ x_all

Oui oui, j'ai lu l'aide, regarder la vidéo et re-testé l'extracteur de données. Mais il a quand même un p'tit côté usine à gaz ! Pour ce que je dois faire, LSTATT est bien plus approprié. Là je "m'amuse" à créer les blocs du coup ...

 

■ VDH-Bruno

Effectivement, vu que même le changement de hauteur du texte de l'attribut ne fonctionnait pas, j'ai regardé du côté de ATTSYNC. Merci encore pour cet autre conseil avisé.

 

J'ai décidément bien fait de "passer vous voir" depuis quelques jours ^^

Posté(e)

ATTOUT, des commandes express, propose également l'export des attributs ...

:wacko:

 

Finalement, je me suis rabattu sur la solution de mettre le 2ème attribut sur un calque différent, car pour jongler entre visible / invisible, il faut (enfin, il me semble) dans le gestionnaire des attributs, le faire pour chaque bloc (même si les étiquettes portent le même nom)

 

■ Problème de sélection / copie

Par contre, j'ai toujours un souci au niveau de la sélection des blocs avec attributs.

Car une fois créé un nouveau bloc, je veux remplacer l'ancien.

En général j'utilise blocreplace.

Là ça fonctionne aussi. Sauf que :

- sans pouvoir les sélectionner tous les blocs, je ne peux pas si besoin les changer de calque (il faut penser à faire la manip sur le bloc cible avant le remplacement)

- les nouveaux blocs sont dénués d'attributs. Il faut donc soit incrémenter des attributs (ce que j'ai fait avec IAT V1.12 ou INCATT) soit isoler les blocs et copier les attributs avec CAT V2.01.

 

°/ Auriez-vous des conseils sur mes manips (là aussi je m'y prends peut-être mal ?)

°/ Un LISP qui permettrait de sélectionner et de remplacer des blocs en préservant les attributs + étiquettes est-il envisageable ? (il existe peut-être déjà ??)

 

Par avance, merci.

Posté(e)

Salut

 

Finalement, je me suis rabattu sur la solution de mettre le 2ème attribut sur un calque différent, car pour jongler entre visible / invisible, il faut (enfin, il me semble) dans le gestionnaire des attributs, le faire pour chaque bloc (même si les étiquettes portent le même nom)

Tu joues simplement avec la variable ATTMODE, comme l'a expliqué VDH-Bruno

 

°/ Un LISP qui permettrait de sélectionner et de remplacer des blocs en préservant les attributs + étiquettes est-il envisageable ? (il existe peut-être déjà ??)

Avec RBLOC

 

Mais plus de synchro possible

 

@+

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Posté(e)

RBLOC puis CAT puis LSTATT = ça fonctionne.

Synchroniser les attributs sur les blocs nouvellement remplacés ... aussi !?

(en fait la manip pénible c'est de sélectionner les blocs pour CAT)

 

Et je dirai même plus SSMATCH fonctionne ! ! !

 

Personne n'a réagit (je n'avais sans doute pas été clair) mais ssmatch.lsp permet tout-à-fait normalement de sélectionner des blocs avec attributs, et de modifier à la volée leur valeur dans le tableau des propriétés.

SAUF ... quand le bloc porte un nom invalide. Je m'en suis rendu compte quand j'ai fait RENOMMER le bloc #Bouteille ... ça renvoi une erreur. Sans le caractère dièse, renommer fonctionne ... et ssmatch aussi.

 

Désolé de "polluer" le forum de la sorte (étant modo, je sais ce que c'est ...) mais sachez que de mon côté, je pense avoir bien progressé ... et c'est grâce à vous !

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é