Autocadavre Posté(e) le 7 décembre 2011 Posté(e) le 7 décembre 2011 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 rougeBOUTEILLE | Vin blancBOUTEILLE | ÉvianCANETTE | 1664CANETTE | CocaCANETTE | 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 coca60 canettes de 166420 bouteilles d'évianetc etcJ'ai regardé du côté des champs, mais ... ??? Par avance, merci de toute l'aide (précieuse) que vous pourrez m'apporter.Bon ap'
Patrick_35 Posté(e) le 7 décembre 2011 Posté(e) le 7 décembre 2011 Salut Avec LSTATT @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
Autocadavre Posté(e) le 7 décembre 2011 Auteur Posté(e) le 7 décembre 2011 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 = canetteattribut 1 = CANETTE = Cocaattribut 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.
VDH-Bruno Posté(e) le 7 décembre 2011 Posté(e) le 7 décembre 2011 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
VDH-Bruno Posté(e) le 7 décembre 2011 Posté(e) le 7 décembre 2011 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 visiblessi ATTMODE=1 Respecte les état de visibilité des attributssi ATTMODE=0 Rend tous les attributs invisibles A+ Apprendre => Prendre => Rendre
Patrick_35 Posté(e) le 7 décembre 2011 Posté(e) le 7 décembre 2011 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 PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
VDH-Bruno Posté(e) le 7 décembre 2011 Posté(e) le 7 décembre 2011 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
x_all Posté(e) le 7 décembre 2011 Posté(e) le 7 décembre 2011 j'étais un peu de votre avis sur l'extraction d'attribut, mais brice m'avait fait une super démo sur ce posthttp://cadxp.com/index.php?/topic/32800-bbcnt-attribut/page__p__175863__fromsearch__1#entry175863 depuis je m'en sert assés souvent et ça marche vraiment pas mal quelques trucs sur autocad
Autocadavre Posté(e) le 7 décembre 2011 Auteur Posté(e) le 7 décembre 2011 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.
(gile) Posté(e) le 7 décembre 2011 Posté(e) le 7 décembre 2011 Salut, Je savais bien que j'avais fait quelque chose de ce genre. Voir SSATT ici.SSATT fait partie des commandes définies dans Special_Selections sur cette page. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
x_all Posté(e) le 7 décembre 2011 Posté(e) le 7 décembre 2011 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... quelques trucs sur autocad
VDH-Bruno Posté(e) le 7 décembre 2011 Posté(e) le 7 décembre 2011 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 AutocadavreChez 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
Autocadavre Posté(e) le 8 décembre 2011 Auteur Posté(e) le 8 décembre 2011 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_allOui 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-BrunoEffectivement, 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 ^^
Autocadavre Posté(e) le 8 décembre 2011 Auteur Posté(e) le 8 décembre 2011 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 / copiePar 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.
Patrick_35 Posté(e) le 8 décembre 2011 Posté(e) le 8 décembre 2011 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 PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
Autocadavre Posté(e) le 8 décembre 2011 Auteur Posté(e) le 8 décembre 2011 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 !
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