fiesta13310 Posté(e) le 15 avril 2014 Posté(e) le 15 avril 2014 Bonjour, Y'a t-il un moyen de sélectionner tous les objets d'un calque juste en cliquant sur un seul objet de ce calque? comme une sélection rapide mais juste en cliquant sur un objet. Merci
(gile) Posté(e) le 15 avril 2014 Posté(e) le 15 avril 2014 Salut, Regarde le LISP Special_selections sur cette page (ou celle-là). La commande SSL correspond à ta demande. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
zebulon_ Posté(e) le 15 avril 2014 Posté(e) le 15 avril 2014 (defun c:laysel (/ SS FILTRE I E LAY) (setq SS (ssget)) (if SS (progn (setq FILTRE '((-4 . "OR>")) ) (setq I 0) (while (< I (sslength SS)) (setq E (entget (ssname SS I))) (setq LAY (assoc 8 E)) (setq FILTRE (cons LAY FILTRE)) (setq I (+ I 1)) ) (setq FILTRE (cons '(-4 . "<OR") FILTRE)) (setq SS (ssget "_X" FILTRE)) (sssetfirst SS SS) ) ) (princ) ) Pour les versions après 2011, il y a aussi la commande Autocad SELECTSIMILAR qui permet de faire la même chose, en mieux. On peut paramétrer "similaires d'après". Par défaut, cette commande est paramétrée de façon à avoir une similitude entre "calque" et "nom". On va donc pouvoir sélectionner, par exemple, toutes les lignes d'un certain calque. Il est possible d'avoir cette commande également en menu contextuel. Clic droit après avoir sélectionné un objet, puis "sélectionner similaire" AmicalementVincent 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)
fiesta13310 Posté(e) le 15 avril 2014 Auteur Posté(e) le 15 avril 2014 (defun c:laysel (/ SS FILTRE I E LAY) (setq SS (ssget)) (if SS (progn (setq FILTRE '((-4 . "OR>")) ) (setq I 0) (while (< I (sslength SS)) (setq E (entget (ssname SS I))) (setq LAY (assoc 8 E)) (setq FILTRE (cons LAY FILTRE)) (setq I (+ I 1)) ) (setq FILTRE (cons '(-4 . "<OR") FILTRE)) (setq SS (ssget "_X" FILTRE)) (sssetfirst SS SS) ) ) (princ) ) Pour les versions après 2011, il y a aussi la commande Autocad SELECTSIMILAR qui permet de faire la même chose, en mieux. On peut paramétrer "similaires d'après". Par défaut, cette commande est paramétrée de façon à avoir une similitude entre "calque" et "nom". On va donc pouvoir sélectionner, par exemple, toutes les lignes d'un certain calque. Si on ne veut que le calque, il faut supprimer le paramètre "nom". Il est possible d'avoir cette commande également en menu contextuel. Clic droit après avoir sélectionné un objet, puis "sélectionner similaire" AmicalementVincent oui je connaissais la sélection similaire, je m'en sers beaucoup d'aillaurs, mais là j'avais vraiment besoin de faire des sélections de calque. Il est génial ton LISP, merci beaucoup. Merci à tous pour votre aideA bientôt! :)
zebulon_ Posté(e) le 15 avril 2014 Posté(e) le 15 avril 2014 SELECTSIMILAR ne permet de sélectionner que des objets de même type. C'est dommage que cette commande soit restrictive à ce point. On aurait pu prévoir le type d'objet dans le choix de paramètres au même titre que les calques AmicalementVincent 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)
fiesta13310 Posté(e) le 26 septembre 2018 Auteur Posté(e) le 26 septembre 2018 Bonjour, Pour revenir sur cette discussion d'il y a quelque temps maintenant, la routine permet, en cliquant sur un objet, de sélectionner la propriété "calque" de cet objet et de l'appliquer au "dessin entier". Existe t-il une routine qui permet de faire exactement pareil, mais d'appliquer la sélection à la "sélection courante"? :huh: Merci
Olivier Eckmann Posté(e) le 28 septembre 2018 Posté(e) le 28 septembre 2018 Bonjour, Ce n'est pas évident, car partant d'une sélection courante, il faudra désélectionner pour sélectionner uniquement le ou les objet(s) dont on veut le(s) calque(s), puis resélectionner la sélection courante (qui n'est plus courante) avant d'appliquer le filtre.C'est possible, mais c'est un peu plus de boulot à écrire. Olivier
COME Posté(e) le 28 septembre 2018 Posté(e) le 28 septembre 2018 Salut, j'utilise la commande "_filter", mais je ne comprends pas "appliquer la sélection à la "sélection courante" ? COME La vie sans musique est tout simplement une erreur, une fatigue, un exil. »Friedrich Nietzsche
bonuscad Posté(e) le 28 septembre 2018 Posté(e) le 28 septembre 2018 Existe t-il une routine qui permet de faire exactement pareil, mais d'appliquer la sélection à la "sélection courante"? En complétant le code de zebulon_Devrait fonctionner en priorité sur une sélection "Implicite", puis "Précédente" et par défaut "Tout", mais pas trop testé...(defun c:laysel_i (/ SSI SS FILTRE I E LAY) (setq SSI (ssget "_I")) (if (null SSI) (setq SSI (ssget "_P"))) (if (null SSI) (setq SSI (ssget "_X"))) (sssetfirst nil nil) (setq SS (ssget)) (if SS (progn (setq FILTRE '((-4 . "OR>")) ) (setq I 0) (while (< I (sslength SS)) (setq E (entget (ssname SS I))) (setq LAY (assoc 8 E)) (setq FILTRE (cons LAY FILTRE)) (setq I (+ I 1)) ) (setq FILTRE (cons '(-4 . "<OR") FILTRE)) (sssetfirst nil SSI) (setq SS (ssget "_I" FILTRE)) (sssetfirst nil nil) (sssetfirst nil SS) ) ) (princ) ) 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