Communauté
AutoCAD – tous produits - Français
Bienvenue sur les forums AutoCAD d’Autodesk. Partagez vos connaissances, posez des questions, et explorez les sujets AutoCAD populaires.
annuler
Affichage des résultats de 
Afficher  uniquement  | Rechercher plutôt 
Vouliez-vous dire : 

[AUTOCAD 2024] [LISP] Sélection multiple

5 RÉPONSES 5
RÉSOLU
Répondre
Message 1 sur 6
SET040
216 Visites, 5 Réponses

[AUTOCAD 2024] [LISP] Sélection multiple

Bonjour, 

J'utilise fréquemment le lisp "special_selections" de Giles, mais j'aurais voulu créer une variante.

En effet, le lisp ne permet de sélectionner les objets capturés par UN seul objet. J'aurais voulu savoir si c'était possible de faire la même opération mais en sélectionnant PLUSIEURS objets de référence au départ.

Pour illustrer ma demande :
► voici un dwg avec 10 cercles vert donc certains contiennent un bloc cyan.
► j'aurais voulu que le lisp me sélectionne automatiquement tous les blocs cyan inscrits dans les cercle vert

Merci par avance pour votre aide.

5 RÉPONSES 5
Message 2 sur 6
-didier-
en réponse à: SET040

Bonjour @SET040

 

Je ne crois pas que ce soit possible.

Un filtre de sélection se base sur des propriétés, cercle vert OK c'est une propriété, le bloc OK c'en est aussi une.

Maintenant savoir si un bloc est dans le cercle, il faut un cerveau humain pour comprendre ça
ou une autre routine LSP dédiée à ce genre de sélection spéciale.

Du moins c'est ainsi que je comprends la question.

 

Amicalement

Éternel débutant.. my site for learning : Programmer dans AutoCAD

Didier Aveline

EESignature

Message 3 sur 6
Y.AUBRY
en réponse à: SET040

Message 4 sur 6
_gile
en réponse à: SET040

Salut,

Ajoute cette commande au fichier LISP que tu as joins.

 

(defun c:mssoc (/ s1 s2 s3)
  (prompt "\nSélectionnez les objets de capture.")
  (if (setq s1 (ssget (list
			'(-4 . "<OR")
			'(0 . "CIRCLE")
			'(-4 . "<AND")
			'(0 . "ELLIPSE")
			'(41 . 0.0)
			(cons 42 (* 2 pi))
			'(-4 . "AND>")
			'(-4 . "<AND")
			'(0 . "LWPOLYLINE")
			'(-4 . "&")
			'(70 . 1)
			'(-4 . "AND>")
			'(-4 . "OR>")
		      )
	       )
      )
    (progn
      (setq s3 (ssadd))
      (repeat (setq i (sslength s1))
	(if (setq s2 (ssdel (ssname s1 (setq i (1- i))) (selbyobj (ssname s1 i) "CP" nil)))
	  (repeat (setq j (sslength s2))
	    (ssadd (ssname s2 (setq j (1- j))) s3)
	  )
	)
      )
      (sssetfirst nil s3)
    )
  )
  (princ)
)

 



Gilles Chanteau
Programmation AutoCAD LISP/.NET
GileCAD
GitHub

Message 5 sur 6
SET040
en réponse à: _gile

Merci Giles t'es vraiment un monstre 😅 !

Ca marche nickel

Message 6 sur 6
patrick.emin
en réponse à: SET040

Bonjour @SET040 la communauté a pu vous aider? Nos forums ont répondu à votre question? Pourquoi ne pas laisser un mot d'appréciation sur notre Livre d'Or?


Patrick Emin animateur de la communauté francophone


Vous avez trouvé un message utile? Alors donnez un "J'aime" à ce message!
Votre question a eu une réponse satisfaisante? Voulez vous avoir l'amabilité de cliquer sur le bouton
 APPROUVER LA SOLUTION  en bas de la réponse qui apporte une solution?
Signez notre Livre d'Or

Vous n'avez pas trouvé ce que vous recherchiez ? Posez une question à la communauté ou partagez vos connaissances.

Publier dans les forums  

Autodesk Design & Make Report