Jbrosteaux Posté(e) le 25 octobre 2023 Posté(e) le 25 octobre 2023 Salut tout le monde, Est ce que vous pensez que c'est possible de demander à Autocad de rechercher et de mettre en évidence un listing de code qui fait référence à une pièce. A01235 => pièce 1 A01240 => pièce 2 A01260 => pièce 3 Etc... Créer une commande avec ces codes A012XX et qu'il me les mettent en une certaines couleur pour que je les repères facilement par exemple. Actuellement, j'utilise l'outil RECHERCHER et je tape le code et puis il recherche et me trouve celui ci mais c'est 1 à 1, ce qui me fait perdre du temps finalement. Merci pour vos avis ou solutions Jonathan Citer
Fraid Posté(e) le 25 octobre 2023 Posté(e) le 25 octobre 2023 Bonjour, A quel objet fait référence ton code? Bloc? Citer https://github.com/Fraiddd
Jbrosteaux Posté(e) le 25 octobre 2023 Auteur Posté(e) le 25 octobre 2023 Salut, C'est juste un élément texte Ce texte est un numéro de local. Le but est de sélectionner certains locaux dont j'ai leur numéro et de les mettre en évidence pour que le groupe de travail se penche uniquement sur ces locaux. Ca leur évite de chercher le numéro, le local sur des plans A0 complexe. Citer
Jbrosteaux Posté(e) le 25 octobre 2023 Auteur Posté(e) le 25 octobre 2023 Je viens d'essayer avec l'outil sélection rapide/ type d'objet = Textmult / Index et puis mon code... et là ça fonctionne, il me le sélectionne bien. mais par contre cet outil ne fonctionne pas si je veux faire une série de code différent. Citer
Fraid Posté(e) le 25 octobre 2023 Posté(e) le 25 octobre 2023 Bonjour, Voici un petit lisp (vl-load-com) (defun c:A01235 ( / acdc) (setq acdc (vla-get-activedocument (vlax-get-acad-object))) (vlax-for obj (vla-get-modelspace acdc) (if (and (= (vla-get-ObjectName obj) "AcDbText") (= (vla-get-TextString obj) "A01235") ) (vla-put-color obj acred) ) ) ) Citer https://github.com/Fraiddd
Jbrosteaux Posté(e) le 25 octobre 2023 Auteur Posté(e) le 25 octobre 2023 il y a 4 minutes, Fraid a dit : Bonjour, Voici un petit lisp (defun c:A01235 ( / acdc) (setq acdc (vla-get-activedocument (vlax-get-acad-object))) (vlax-for obj (vla-get-modelspace acdc) (if (and (= (vla-get-ObjectName obj) "AcDbText") (= (vla-get-TextString obj) "A01235") ) (vla-put-color obj acred) ) ) ) Merci, peux tu me dire ce que ce lisp va faire? De manière a ce que je le comprenne et que je puisse le modifier avec le restant de mes numéros de locaux? Citer
Fraid Posté(e) le 25 octobre 2023 Posté(e) le 25 octobre 2023 il y a une heure, Jbrosteaux a dit : Créer une commande avec ces codes A012XX et qu'il me les mettent en une certaines couleur Citer https://github.com/Fraiddd
Jbrosteaux Posté(e) le 25 octobre 2023 Auteur Posté(e) le 25 octobre 2023 je démarre la commande A01235 et ensuite il indique nil Rien ne se passe, est ce que c'est une importance si c'est un texte multiligne ? Citer
Fraid Posté(e) le 25 octobre 2023 Posté(e) le 25 octobre 2023 oups, j'ai oublier une petite incantation au debut. j'ai mis à jour. Citer https://github.com/Fraiddd
Jbrosteaux Posté(e) le 25 octobre 2023 Auteur Posté(e) le 25 octobre 2023 euh... je vois pas ta mise à jour 🤔 Citer
Fraid Posté(e) le 25 octobre 2023 Posté(e) le 25 octobre 2023 il y a 5 minutes, Jbrosteaux a dit : texte multiligne ha, multiligne, oui c'est important, alors, ce sont des textes, des textes multilignes ou les 2 Citer https://github.com/Fraiddd
Jbrosteaux Posté(e) le 25 octobre 2023 Auteur Posté(e) le 25 octobre 2023 Ici pour ces plans ce sont des textes mutilignes " TEXTMULT" Peux tu me réécrire le lisp en entier? Merci à toi Citer
Fraid Posté(e) le 25 octobre 2023 Posté(e) le 25 octobre 2023 donc pour les 2 (vl-load-com) (defun c:A01235 ( / acdc) (setq acdc (vla-get-activedocument (vlax-get-acad-object))) (vlax-for obj (vla-get-modelspace acdc) (if (and (or (= (vla-get-ObjectName obj) "AcDbMText")(= (vla-get-ObjectName obj) "AcDbText")) (= (vla-get-TextString obj) "A01235") ) (vla-put-color obj acred) ) ) ) si tu veux en bleu tu remplace acred par acblue Citer https://github.com/Fraiddd
Jbrosteaux Posté(e) le 25 octobre 2023 Auteur Posté(e) le 25 octobre 2023 super! merci beaucoup Et crois tu qu'il est possible de demander a la fin de ton lisp qu'il maintien la sélection de ce qu'il a modifié? Pour mettre une succession de code, je dois utiliser la ligne (= (vla-get-TextString obj) "A01235";"A01240";......;......) C'est bien cela? Citer
Fraid Posté(e) le 25 octobre 2023 Posté(e) le 25 octobre 2023 il y a 35 minutes, Jbrosteaux a dit : maintien la sélection de ce qu'il a modifié Pourquoi? a tu une autre action à réaliser sur les objets modifiés? il y a 35 minutes, Jbrosteaux a dit : succession de code Non, ce n'est pas la bonne méthode. j'ai répondu à ton premier post. donc une version ou tu peux agrémenté cette liste ("A01235" "A01240" "A01260") (vl-load-com) (defun c:A0X ( / acdc) (setq acdc (vla-get-activedocument (vlax-get-acad-object))) (vlax-for obj (vla-get-modelspace acdc) (if (and (or (= (vla-get-ObjectName obj) "AcDbMText")(= (vla-get-ObjectName obj) "AcDbText")) (member (vla-get-TextString obj) '("A01235" "A01240" "A01260")) ) (vla-put-color obj acred) ) ) ) Citer https://github.com/Fraiddd
Jbrosteaux Posté(e) le 25 octobre 2023 Auteur Posté(e) le 25 octobre 2023 Je vais tester, parfois éventuellement pour utiliser l'outil copier ou déplacer... ou supprimer... Citer
Jbrosteaux Posté(e) le 25 octobre 2023 Auteur Posté(e) le 25 octobre 2023 il y a 12 minutes, Fraid a dit : Pourquoi? a tu une autre action à réaliser sur les objets modifiés? Non, ce n'est pas la bonne méthode. j'ai répondu à ton premier post. donc une version ou tu peux agrémenté cette liste ("A01235" "A01240" "A01260") (vl-load-com) (defun c:A0X ( / acdc) (setq acdc (vla-get-activedocument (vlax-get-acad-object))) (vlax-for obj (vla-get-modelspace acdc) (if (and (or (= (vla-get-ObjectName obj) "AcDbMText")(= (vla-get-ObjectName obj) "AcDbText")) (member (vla-get-TextString obj) ("A01235" "A01240" "A01260")) ) (vla-put-color obj acred) ) ) ) Quand j'utilise ton lisp avec la succession de numéro, rien ne se passe. il m'indique _mtedit A01235 nil par contre si je reprends le tout premier lisp là ça fonctionne mais il n'y a qu'un numéro Citer
Fraid Posté(e) le 25 octobre 2023 Posté(e) le 25 octobre 2023 Désolé, je programme à l'aveugle, mon Autocad est trop occupé, (moi aussi, je fait 15 truc en même temps) j'ai oublié une apostrophe, j'ai modifié mon code. pour la selection, comme ce n'est pas quelque chose que je fait couramment, il faut que je réfléchisse. Citer https://github.com/Fraiddd
Jbrosteaux Posté(e) le 25 octobre 2023 Auteur Posté(e) le 25 octobre 2023 En fait, je viens de voir que tu avais changé le nom de la commande A01235 par A0X Mais malgré tout, la commande ne va pas: Citer
Fraid Posté(e) le 25 octobre 2023 Posté(e) le 25 octobre 2023 oui, rajoute une apostrophe devant la liste : '("A01235" "A01240" "A01260") Citer https://github.com/Fraiddd
Jbrosteaux Posté(e) le 26 octobre 2023 Auteur Posté(e) le 26 octobre 2023 Salut, salut Je viens de rajouter l'apostrophe et ça fonctionne pas trop mal! C'est cool, ça va m'aider beaucoup. Merci!!! Citer
Fraid Posté(e) le 26 octobre 2023 Posté(e) le 26 octobre 2023 Il y a 21 heures, Jbrosteaux a dit : maintien la sélection Yop, de rien une version qui te sélectionne les textes concernés et commentée (vl-load-com) ;Chargement des fonctions ActiveX. (defun c:A0X ( / acdc sel) ;Définition de la commande et des variables. (sssetfirst nil nil) ;Annule une éventuelle sélection. (setq acdc (vla-get-activedocument (vlax-get-acad-object)) ;Database du document. sel (ssadd) ;Création d'une sélection vide ) (vlax-for obj (vla-get-modelspace acdc) ;Pour chaque objet dans l'espace objet. (if ;Si l'objet est un texte ou texte multiligne et que le contenu soit dans une liste. (and (or (= (vla-get-ObjectName obj) "AcDbMText")(= (vla-get-ObjectName obj) "AcDbText")) (member (vla-get-TextString obj) '("A01235" "A01240" "A01260")) ) (progn (vla-put-color obj acred) ;Change sa couleur en Rouge. (ssadd (vlax-vla-object->ename obj) sel) ;L'ajoute au jeu de séléction. ) ) ) (sssetfirst nil sel);Sélection (princ);Sortie propre ) Citer https://github.com/Fraiddd
Jbrosteaux Posté(e) le 26 octobre 2023 Auteur Posté(e) le 26 octobre 2023 Merci à toi c'est vraiment TOP!!! Citer
Messages recommandés