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

Printemps des cartes 2024

#1 Fri 27 September 2013 09:05

Dylan
Participant occasionnel
Date d'inscription: 14 Jan 2013
Messages: 19

Supprimer des polylignes inferieur a une certaine longueur

Bonjour a tous,

je dispose d'un lisp qui supprime toute les polylignes égal à 0 et je voudrais savoir comment  le modifier pour qu'il supprime des polylignes de plus grandes longueurs (environ 0.5 ou un peu plus). ou si l'un d'entre vous dispose d'un lisp correspondent

si quelqu'un peut m'aider sa serait sympa

merci d'avance

voila le lisp de base:

(defun c:supplz (/ ss n obj)

  (vl-load-com)

  (if (setq ss (ssget "_X" '((0 . "LINE,LWPOLYLINE,POINT"))))

    (repeat (setq n (sslength ss))

      (setq obj (vlax-ename->vla-object (ssname ss (setq n (1- n)))))

      (if (or

            (= (vla-get-ObjectName obj) "AcDbPoint")

            (= 0

               (vlax-curve-getDistAtParam

                 obj

                 (vlax-curve-getEndParam obj)

               )

            )

          )

        (vla-delete obj)

      )

    )

  )

  (princ)

)

Hors ligne

 

#2 Fri 27 September 2013 10:03

gegematic
Participant assidu
Lieu: Albertville
Date d'inscription: 24 Feb 2010
Messages: 192
Site web

Re: Supprimer des polylignes inferieur a une certaine longueur

Salut, ci dessous la modif:

(defun c:supplz (/ ss n obj)

  (setq ma-longueur-maxi (getreal "\nLongueur maximum?"))
  (vl-load-com)

  (if (setq ss (ssget "_X" '((0 . "LINE,LWPOLYLINE,POINT"))))

    (repeat (setq n (sslength ss))

      (setq obj (vlax-ename->vla-object (ssname ss (setq n (1- n)))))

      (if (or

            (= (vla-get-ObjectName obj) "AcDbPoint")

            (> ma-longueur-maxi

               (vlax-curve-getDistAtParam

                 obj

                 (vlax-curve-getEndParam obj)

               )

            )

          )

        (vla-delete obj)

      )

    )

  )

  (princ)

)

Hors ligne

 

#3 Fri 27 September 2013 10:18

Patrice
JeSuisCharlie
Date d'inscription: 16 Sep 2005
Messages: 4746

Re: Supprimer des polylignes inferieur a une certaine longueur

Bonjour Dylan

Qq questions / remarques :

- La selection rapide d'AutoCAD permet de faire la meme chose mais pour un seul type d'objet a la fois

- Pourquoi l'entite POINT dans la liste des objets a traiter : no comprendo !
A la rigueur j'aurais plutot vu l'entite ARC !

Bye, Pat


(Autodesk Expert Elite Team)

Hors ligne

 

#4 Fri 27 September 2013 10:21

Dylan
Participant occasionnel
Date d'inscription: 14 Jan 2013
Messages: 19

Re: Supprimer des polylignes inferieur a une certaine longueur

Un grand merci à toi . il faut vraiment que je me penche sur la création et la modification de lisp

Hors ligne

 

#5 Fri 27 September 2013 11:35

Dylan
Participant occasionnel
Date d'inscription: 14 Jan 2013
Messages: 19

Re: Supprimer des polylignes inferieur a une certaine longueur

Salut Pat,
dans les fichiers que je doit rendre a mon client il ne doit pas y avoir de points d'où cette entité .
mais pour l'arc c'est une bonne idée je n'y avais pas pensé.
pour info c'est pour de la création de réseaux fibre optique et comme nous devons faire beaucoup de coupure sur nos différentes infrastructures (tranchée, fourreaux, câbles , ...) il y a bien souvent des petites polylignes qui reste
bye

Hors ligne

 

#6 Fri 27 September 2013 12:02

Patrice
JeSuisCharlie
Date d'inscription: 16 Sep 2005
Messages: 4746

Re: Supprimer des polylignes inferieur a une certaine longueur

Hello

OK et donc toujours avec la Selection Rapide ...
Choisir dans les types d'Objet : POINT

puis dans l'Ascenseur "Operateur", choisir : "Tout Selectionner"  (Option que peu de gens ont remarque !?)
ainsi on aura TOUS les Points pour eventuellement les supprimer !

GeoBye, Pat


(Autodesk Expert Elite Team)

Hors ligne

 

#7 Fri 27 September 2013 12:19

Dylan
Participant occasionnel
Date d'inscription: 14 Jan 2013
Messages: 19

Re: Supprimer des polylignes inferieur a une certaine longueur

en effet je n'y avais jamais fait attention.
merci

Hors ligne

 

#8 Fri 27 September 2013 16:02

gegematic
Participant assidu
Lieu: Albertville
Date d'inscription: 24 Feb 2010
Messages: 192
Site web

Re: Supprimer des polylignes inferieur a une certaine longueur

Salut Patrice,
J'ai créé PowerClic quand _qselect n'existait pas (comme les commandes du menu contextuel ajouter la sélection ou sélectionner similaire)
malgré sa rugosité, PowerClic reste infiniment + performant que qselect pour sélectionner rapidement par filtre.

Surtout qu'on peut affiner sa sélection par un plug-in

par exemple, pour ce cas, on a le plug-in select_by_length

PowerClic n'existe pas pour la V2014 (il s’arrête à la 2013), il reste assez aventureux à installer (surtout sous W64), mais il est gratuit.

J'ai mis des infos la dessus sur mon blog.

Hors ligne

 

#9 Fri 27 September 2013 18:24

FLORIS
Participant actif
Date d'inscription: 23 Sep 2012
Messages: 72

Re: Supprimer des polylignes inferieur a une certaine longueur

Bonsoir

Pour le ménage, il y a aussi la commande MAPCLEAN qui fait le même genre de travail.


FLORIS

Hors ligne

 

Pied de page des forums

Powered by FluxBB