Pages: 1
- Sujet précédent - [ACAD] Script LISP pour supprimer des entités appartenant à un calque - Sujet suivant
#1 Tue 13 January 2015 17:59
- ofabre81
- Juste Inscrit !
- Date d'inscription: 13 Jan 2015
- Messages: 6
[ACAD] Script LISP pour supprimer des entités appartenant à un calque
Bonjour à tous,
J'essaie d'écrire un petit code LISP qui me permettrait de sélectionner des entités POINT qui appartiennent à mon dessin.
Pour l'instant, étant débutant et malgré de longues recherches je ne trouve pas la solution.
Le code que j'ai est le suivant :
Code:
(defun c:test( / ent ) (setq ent (ssget "x" '((0 . "POINT")))) (sssetfirst ent) (princ) )
Je vous remercie par avance pour votre aide.
Olivier
Hors ligne
#2 Tue 13 January 2015 21:05
Re: [ACAD] Script LISP pour supprimer des entités appartenant à un calque
Je pense que c'est suffisant:
(defun C:TESTBIS (/ ent)
(sssetfirst (setq ent (ssget "x" '((0 . "POINT")))) ent)
(princ)
)
Ignacio Arrue - Spatial Manager team - www.spatialmanager.com
Hors ligne
#3 Wed 14 January 2015 11:11
- ofabre81
- Juste Inscrit !
- Date d'inscription: 13 Jan 2015
- Messages: 6
Re: [ACAD] Script LISP pour supprimer des entités appartenant à un calque
Super, ça marche !
Merci beaucoup.
Hors ligne
#4 Wed 14 January 2015 13:48
- ofabre81
- Juste Inscrit !
- Date d'inscription: 13 Jan 2015
- Messages: 6
Re: [ACAD] Script LISP pour supprimer des entités appartenant à un calque
Rebonjour,
Toujours pour la même utilisation je voudrais supprimer les points que je viens de sélectionner.
Comme code j'ai mis ça mais ça ne fonctionne pas non plus :
Code:
(defun C:TESTBIS (/ bob ent) (sssetfirst (setq bob (ssget "x" '((0 . "POINT")))) bob) (entdel (setq ent (car bob)) ent) (princ) )
Merci d'avance.
Hors ligne
#5 Wed 14 January 2015 18:12
Re: [ACAD] Script LISP pour supprimer des entités appartenant à un calque
Essayez vous avec ça:
(defun C:TESTBIS (/ ent)
(sssetfirst (setq ent (ssget "x" '((0 . "POINT")))) ent)
(command "_.ERASE" "_P" "")
(princ)
)
Ignacio Arrue - Spatial Manager team - www.spatialmanager.com
Hors ligne
#6 Thu 15 January 2015 09:05
- ofabre81
- Juste Inscrit !
- Date d'inscription: 13 Jan 2015
- Messages: 6
Re: [ACAD] Script LISP pour supprimer des entités appartenant à un calque
Génial, ça marche. C'est bien de pouvoir aussi utiliser les lignes de commande Autocad dans LISP !
Merci beaucoup.
Hors ligne
#7 Thu 15 January 2015 10:12
- olivier.eckmann
- Participant assidu
- Date d'inscription: 14 Dec 2007
- Messages: 357
Re: [ACAD] Script LISP pour supprimer des entités appartenant à un calque
Bonjour,
Juste pour rendre plus robuste le code, car dans le cas où il n'y a pas de point, il est inutile voir risqué de tenter d'effacer quelque chose.
Par ex : ouvrir un dessin vierge, dessiner une polyligne, lancer la commande déplacer pour déplacer la polyligne, puis lancer testbis, cela supprime la polyline.
D'autre part le nom des variables est assez importante pour la compréhension/relecture du code. A ce titre utiliser une variable nommée "ent" pour désigner un jeu de sélection contenant une ou plusieurs entités n'est peut-être pas très judicieux.
Enfin il est inutile de sélectionner les objets pour pouvoir les effacer, cela évite le temps de sélection graphique.
Il pourrait aussi être nécessaire de déverrouiller (ou vérifier) les calques au cas où ils seraient verrouillés, sinon il est impossible de supprimer un objet.
Code:
(defun C:TESTBIS (/ jeu) (if (setq jeu (ssget "x" '((0 . "POINT")))) (command "_.ERASE" jeu "") ) (princ) )
Olivier
Hors ligne
Pages: 1
- Sujet précédent - [ACAD] Script LISP pour supprimer des entités appartenant à un calque - Sujet suivant