Annonces

À partir du mois de décembre, nous archiverons le contenu de la communauté datant de 10 ans et plus. Cette FAQ fournit de plus amples informations.

[AUTOCAD 2024] [LISP] : Sélection d'entités par calque en mentionnant le nom du calque

SET040
Advocate
Advocate

[AUTOCAD 2024] [LISP] : Sélection d'entités par calque en mentionnant le nom du calque

SET040
Advocate
Advocate

Bonjour, 

Je suis à la recherche d'un lisp qui permettrait de sélectionner à l'écran tous les objets issus d'un même calque, juste en tapant le nom du calque.


Le lisp de Giles que j'utilise depuis des années fait bien le travail mais nécessite de cliquer sur un objet 'visible' à l'écran.

;; Sélection par calque
(defun c:ssl (/ ss ent)
  (and
    (or
      (and
	(setq ss (cadr (ssgetfirst)))
	(= 1 (sslength ss))
	(setq ent (ssname ss 0))
      )
      (and
	(sssetfirst nil nil)
	(setq ent (car (entsel)))
      )
    )
    (sssetfirst nil (ssget "_X" (list (assoc 8 (entget ent)))))
  )
  (princ)
)

 

Hors, mon but est justement d'afficher rapidement les objets que je ne trouve pas visuellement (sans passer par QSELECT), juste en mentionnant le nom du calque recherché.

 

Merci d'avance pour votre aide.

 

0 J'aime
Répondre
Solutions acceptées (2)
347 Visites
4 Réponses
Replies (4)

Luna1
Advocate
Advocate
Solution acceptée

Coucou,

Essaye avec ceci :

(defun c:CALQSEL (/ layer jsel)
  (and
    (setq layer (getstring T "\nEntrer le nom du calque : "))
    (setq jsel (ssget "_X" (list (cons 8 layer))))
    (sssetfirst nil jsel)
  )
  (princ)
)

Bisous,

Luna

SET040
Advocate
Advocate

Merci @Luna1 c'est exactement ce que je cherchais !

0 J'aime

SET040
Advocate
Advocate

@Luna1 

 

Serait-il possible d'effectuer en plus un "zoom objet" en gardant la sélection active ?

 

Quand je rajoute la command ZOOM OBJET dans ton lisp, cela fait bien le zoom dessus mais cela me désélectionne tout. Même si je fais un SELECT PREVIOUS, par la suite...

(defun c:SEL (/)
  (and
    (setq layer (getstring T "\nEntrer Code Objet : "))
    (setq jsel (ssget "_X" (list (cons 8 layer))))
    (sssetfirst nil jsel)
  )
(command "zoom" "ob")
(command "select" "p" "")
  (princ)
)

0 J'aime

Y.AUBRY
Advisor
Advisor
Solution acceptée

Bonjour @SET040,

 

J'ai vu que tu avais déjà une réponse à ta question mais je te partage ce lisp Special_Selection.lsp de @_gile avec les commandes suivantes :

 

SSL Sélection par calque
SSE Sélection par type d'entité
SSC Sélection par couleur
SSTL Sélection par type de ligne
SSHP Sélection par motif de hachure
SSATT Sélection par valeur d'attribut
SSCU Sélection mutiple par cible, fenêtre ou capture. Le cadre de la fenêtre est parallèle au plan du SCU courant. La sélection est terminée en faisant Entrée, Espace ou clic droit
SSOC Sélectionner tous les objets capturés, suivant la vue, par le cercle, l'ellipse ou la polyligne.
SSOF Sélectionner tous les objets contenus, suivant la vue, par le cercle, l'ellipse ou la polyligne.
SSD Sélection de blocs dynamiques par des valeurs de paramètres dynamiques
INV_SEL Inversion de la sélection

 

A+ Yoan

Yoan AUBRY

EESignature

0 J'aime