Sélection 2 points et suppression
Paolo
-
Matt 666 Messages postés 38 Date d'inscription Statut Membre Dernière intervention -
Matt 666 Messages postés 38 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Dans autocad, je souhaite faire en lisp une sélection du point (x=172,y=273) au point (x=273,y=47.5) et supprimer tout ce qui aura été sélectionné.
Pourriez vous m'aider ?
Merci
Dans autocad, je souhaite faire en lisp une sélection du point (x=172,y=273) au point (x=273,y=47.5) et supprimer tout ce qui aura été sélectionné.
(defun c:test(/ ss)Mais le retour est
(setq ss (ssget "F" '(172 273) '(203 47)))
(command ".erase" ss "" "")
)
Commande: TEST
; erreur: liste de points incorrecte
Pourriez vous m'aider ?
Merci
A voir également:
- Sélection 2 points et suppression
- Forcer suppression fichier - Guide
- Supercopier 2 - Télécharger - Gestion de fichiers
- Mettre des points sur une carte - Guide
- Comment insérer des points de suite sur word - Guide
- Suppression compte gmail - Guide
2 réponses
Bonjour,
Pour sélectionner des objets dans une fenêtre
(setq ss (ssget "_W" '(172 273) '(203 47)))
Pour effacer une sélection d'objets
(command "_erase" ss "")
Cordialement
Pour sélectionner des objets dans une fenêtre
(setq ss (ssget "_W" '(172 273) '(203 47)))
Pour effacer une sélection d'objets
(command "_erase" ss "")
Cordialement
Salut, je déterre un peu, mais si jamais qqn se pose la question, voici la réponse :
Il faut utiliser le mode "C" dans la commande SSGET pour sélectionner tous les objets traversés par la ligne entre deux points.
Essayez ceci en donnant deux points à l'écran :
Ensuite on peut soit passer par la commande autocad comme tu l'as fait Paolo, ou bien le faire en lisp. Voici un petit bout de code pour faire tout ça en lisp :
Il faut utiliser le mode "C" dans la commande SSGET pour sélectionner tous les objets traversés par la ligne entre deux points.
Essayez ceci en donnant deux points à l'écran :
(sssetfirst nil (ssget "C" (getpoint "\nPt1 : ")(getpoint "\nPt2 : ")))
Ensuite on peut soit passer par la commande autocad comme tu l'as fait Paolo, ou bien le faire en lisp. Voici un petit bout de code pour faire tout ça en lisp :
;; Supprime toute entité traversant 2 points utilisateur (defun c:2psup (/ p1 p2 sel cmdecho n) (if (and (setq p1 (getpoint "\n1er point : ")) (setq p2 (getpoint p1 "\n2eme point : ")) (setq sel (ssget "C" p1 p2)) ) (progn (setq cmdecho (getvar "cmdecho")) (setvar "cmdecho" 0);ne pas voir les commandes acad (command "_.UNDO" "_Begin") (repeat (setq n (sslength sel)) (entdel (ssname sel (setq n (1- n)))) ) (redraw) (command "_.UNDO" "_End") (setvar "cmdecho" cmdecho) );progn );if (princ) )