Aller au contenu

Selection Rapide sur XDATA et OBJECT DATA


lecrabe

Messages recommandés

 

Hello

 

SVP je cherche 2 choses :

 

--- 1 ---- Pour les XDATAs d'AutoCAD / MAP / CIVIL / A D T

 

- Quels sont les objets qui ONT ou qui N'ONT PAS de XDATAs ?

 

1) Question sur "QUI ONT" ou "QUI N'ONT PAS" (Defaut = qui ont)

2) Question facultative: pouvoir donner un nom d'appli XDATA

et aussi une valeur pour tester un champ XDATA

3) Selection AutoCAD classique ...

4) Resultat Texte avec 2 compteurs :

nbr d'objets selectionnes (au depart) = xxx ,

nbr d'objet correspondants = yyy

4) Resultat Graphique avec un jeu de selection en cours (pour en faire ce qu'on veut)

Effacer, Forcer Couleur, Changer de calque, etc ...

 

--- 2 --- Pour les Object Data (OD) de MAP / CIVIL

 

Exactement le meme principe

Sauf que pour lesOD, il faut demander en question facultative :

Nom de la table OD a tester !

Nom du champ et bien sur valeur

 

Un Champ OD peut etre du type : caractere, entier ou reel/flottant

 

Merci d'avance de votre aide, Le Decapode (Tripatouilleur de XDATA et OD)

 

 

Autodesk Expert Elite Team

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

Voilà déjà un truc moins sophistiqué que ce tu demandes mais néanmoins efficace (utilisation d'un filtre de sélection).

Pour le (ou les) nom(s) d'application, les caractères génériques sont pris en compte.

 

(defun c:xdsearch (/ app ss)
 (if (= ""
        (setq app
               (getstring
                 "\nNom de l'application (ou des applications séparés par une virgule) : "
               )
        )
     )
   (setq app "*")
 )
 (if (setq ss (ssget (list (list -3 (list app)))))
   (sssetfirst nil ss)
 )
 (princ)
)

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

Une autre, plus proche de la demande :

 

(defun c:xdsearch (/ ap ss0 ss1 ss2)
 (sssetfirst nil nil)
 (if (= ""
        (setq app
               (getstring
                 "\nNom de l'application (ou des applications séparés par une virgule) : "
               )
        )
     )
   (setq app "*")
 )
 (if (setq ss0 (ssget))
   (progn
     (setq ss1 (ssadd)
           ss2 (ssadd)
           n   0
     )
     (while (setq ent (ssname ss0 n))
       (if (cdr (assoc -3 (entget ent (list app))))
         (ssadd ent ss1)
         (ssadd ent ss2)
       )
       (setq n (1+ n))
     )
     (princ
       (strcat (itoa (sslength ss0))
               " objets sélectionnées "
               (itoa (sslength ss1))
               " avec données étendues"
       )
     )
     (initget "Avec Sans")
     (if
       (= "Sans"
          (getkword "\nChoisir l'option [Avec/Sans] données étendues : ")
       )
        (sssetfirst nil ss2)
        (sssetfirst nil ss1)
     )
   )
 )
 (princ)
)

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

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é