zebulon_ Posté(e) le 16 décembre 2005 Posté(e) le 16 décembre 2005 Bonjour, J'aimerais revenir sur ce sujethttp://www.cadxp.com/sujetXForum-7110.htmoù il était question des options de la fonction ssget. Depuis, je n'utilise plus guère la fonction entsel, que je remplace par (setq ss nil) (while (not ss) (setq ss (ssget "_+.:e:s" '((0 . "INSERT"))))) puisqu'on peut directement filtrer la sélection. Par contre, dans le lien ci-dessus, il n'est pas question de l'utilisation des wild-cards (*, ? #, @ etc...) dans les filtres. (voir aussi l'aide de la fonction wcmatch) par exemple : (setq ss (ssget "_x" '((0 . "INSERT") (2 . "toto*")))) qui sélectionne tous les blocs dont le nom commence par toto. C'est bien pratique, quelques fois et en plus, ça me rappelle des vieux souvenirs de MS-DOS. Toute ma jeunesse... On en a peut-être déjà parlé ici, je ne sais pas. Avec 20 000 inscrits et plus de 50 messages par jour, on a du mal à suivre ;) Amicalement Zebulon_ C'est au pied du mur que l'on reconnaît le maçon ! (Anonyme) C’est en restant au pied du mur qu’on ne voit que le mur (Anonyme aussi)
(gile) Posté(e) le 16 décembre 2005 Posté(e) le 16 décembre 2005 Salut, Effectivement les filtres de sélection supportent l'utilisation des wild-cards. Quelques exemples que je garde comme aide mémoire : ;;; Exemple de filtres de sélection (utilisation de "wild-card") ;;; Grippe toutes les entités dont le nom fini par LINE (LINE, POLYLINE, SPLINE, LWPOLYLINE) ;;; sauf les droites (XLINE) et les multilignes (MLINE) ((lambda (/ ss) (setq ss (ssget "_X" '((-4 . " (0 . "*LINE") (0 . "~X*") (0 . "~M*") (-4 . "and>") ) ) ) (sssetfirst nil ss) ) ) ;;; Grippe tous les cercles sur les calques 1 à 3 ((lambda (/ ss) (setq ss (ssget "_X" '((0 . "CIRCLE") (8 . "Calque[1-3]")))) (sssetfirst nil ss) ) ) ;;; Grippe tous les objets qui ne sont pas sur des calques gelés ((lambda (/ ss) (setq ss (ssget "_A")) (sssetfirst nil ss) ) ) ;;; Grippe tous les objets construits dans un SCU non parallèle au SCG ((lambda (/ ss) (setq ss (ssget "_X" '((-4 . "!=") (210 0.0 0.0 1.0)))) (sssetfirst nil ss) ) ) ;;; Grippe tous les cercles de rayons supérieur à 30 et inférieur ou égal à 40 ou égal à 50 ((lambda (/ ss) (setq ss (ssget "_X" '((0 . "CIRCLE") (-4 . " (-4 . " (-4 . ">") (40 . 30.0) (-4 . " (40 . 40.0) (-4 . "and>") (-4 . "=") (40 . 50.0) (-4 . "or>") ) ) ) (sssetfirst nil ss) ) ) NOTA : Supprimer les espaces après les Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Patrick_35 Posté(e) le 16 décembre 2005 Posté(e) le 16 décembre 2005 SalutPour (gile)(ssget "_X" '((-4 . "< and") (0 . "*LINE") (0 . "~X*") (0 . "~M*") (-4 . "and>") ) )peut aussi s'écrire(ssget "_x" (list (cons 0 "*LINE,~X*,~M*"))) pour zebulon_Rien n'interdit un(setq ss (ssget "_+.:e:s" '((0 . "INSERT")(2 . "toto*")))) @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
(gile) Posté(e) le 16 décembre 2005 Posté(e) le 16 décembre 2005 Merci Patrick_35 :) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
zebulon_ Posté(e) le 16 décembre 2005 Auteur Posté(e) le 16 décembre 2005 pour zebulon_Rien n'interdit un (setq ss (ssget "_+.:e:s" '((0 . "INSERT")(2 . "toto*")))) Si c'est permis, on ne va pas se priver amicalement Zebulon_ C'est au pied du mur que l'on reconnaît le maçon ! (Anonyme) C’est en restant au pied du mur qu’on ne voit que le mur (Anonyme aussi)
bonuscad Posté(e) le 16 décembre 2005 Posté(e) le 16 décembre 2005 Les wild-card comme décrit dans (wcmatch) sont effectivement le seul moyen de faire des filtres sur les CHAINES de caractères pour (ssget). Les test sur entier et réel se faisant avec les opérateur relationnel comme dans les exemples de Gilles Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
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