CADxp: Sélection de calques à partir d'objets - CADxp

Aller au contenu

Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

Sélection de calques à partir d'objets

#1 L'utilisateur est hors-ligne   fiesta13310 

  • ceinture noire
  • Groupe : Membres
  • Messages : 303
  • Inscrit(e) : 09-février 12

Posté 15 avril 2014 - 08:33

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
0

#2 L'utilisateur est hors-ligne   (gile) 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 11036
  • Inscrit(e) : 02-septembre 05

Posté 15 avril 2014 - 09:03

Salut,

Regarde le LISP Special_selections sur cette page (ou celle-là).
La commande SSL correspond à ta demande.
Gilles Chanteau - gileCAD -
Développements sur mesure pour AutoCAD
Image IPB
0

#3 L'utilisateur est hors-ligne   zebulon_ 

  • ceinture noire 2em dan
  • Groupe : Membres
  • Messages : 1316
  • Inscrit(e) : 02-mai 03
  • LocationSchnersheim

Posté 15 avril 2014 - 09:09

(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"

Amicalement
Vincent
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)
0

#4 L'utilisateur est hors-ligne   fiesta13310 

  • ceinture noire
  • Groupe : Membres
  • Messages : 303
  • Inscrit(e) : 09-février 12

Posté 15 avril 2014 - 10:33

Voir le messagezebulon_, le 15 avril 2014 - 09:09 , dit :

(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"

Amicalement
Vincent



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 aide
A bientôt! :)
0

#5 L'utilisateur est hors-ligne   zebulon_ 

  • ceinture noire 2em dan
  • Groupe : Membres
  • Messages : 1316
  • Inscrit(e) : 02-mai 03
  • LocationSchnersheim

Posté 15 avril 2014 - 14:03

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

Amicalement
Vincent
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)
0

#6 L'utilisateur est hors-ligne   fiesta13310 

  • ceinture noire
  • Groupe : Membres
  • Messages : 303
  • Inscrit(e) : 09-février 12

Posté 26 septembre 2018 - 13:41

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
0

#7 L'utilisateur est hors-ligne   fiesta13310 

  • ceinture noire
  • Groupe : Membres
  • Messages : 303
  • Inscrit(e) : 09-février 12

Posté 28 septembre 2018 - 07:35

Bonjour,

Pas d'idée?
0

#8 L'utilisateur est hors-ligne   Olivier Eckmann 

  • ceinture noire 2em dan
  • Groupe : Membres
  • Messages : 1142
  • Inscrit(e) : 29-décembre 11
  • LocationLongjumeau (91)

Posté 28 septembre 2018 - 07:42

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
0

#9 L'utilisateur est hors-ligne   COME 

  • ceinture marron
  • Groupe : Membres
  • Messages : 249
  • Inscrit(e) : 16-septembre 13

Posté 28 septembre 2018 - 07:42

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
0

#10 L'utilisateur est hors-ligne   bonuscad 

  • ceinture rouge et blanche 8em dan
  • Groupe : Membres
  • Messages : 4566
  • Inscrit(e) : 20-juin 03

Posté 28 septembre 2018 - 13:44

Citation

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
0

Partager ce sujet :


Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

3 utilisateur(s) en train de lire ce sujet
0 membre(s), 3 invité(s), 0 utilisateur(s) anonyme(s)