Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#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

iam_doss
Participant occasionnel
Date d'inscription: 17 Jun 2010
Messages: 33
Site web

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

iam_doss
Participant occasionnel
Date d'inscription: 17 Jun 2010
Messages: 33
Site web

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

 

Pied de page des forums

Powered by FluxBB