Aller au contenu

Rechercher plusieurs codes en 1 manipulation et les mettre en évidence


Jbrosteaux

Messages recommandés

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

Lien vers le commentaire
Partager sur d’autres sites

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.

Lien vers le commentaire
Partager sur d’autres sites

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)
        )
    )
)

 

Lien vers le commentaire
Partager sur d’autres sites

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?

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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)
        )
    )
)

 

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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
)

 

Lien vers le commentaire
Partager sur d’autres sites

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • 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é