Aller au contenu

Sélection de polyligne selon la longueur


Messages recommandés

Posté(e)

Bonjour à tous.

 

Aujourd'hui, j'ai un petit problème qui se pose. Je fais un ssget pour sélectionner toutes les polylignes d'un calque. Mais j'aimerais trier celles qui sont inférieures à 2m.

 

Voici mon ssget :

(setq Select (ssget "_A" (list (cons 0 "LWPOLYLINE") (cons 6 "ST_FDP_HAIED"))))

 

Si quelqu'un as une astuce, un conseil... Je suis preneur...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Posté(e)

Salut,

 

On ne peut pas filtrer directement avec la longueur d'une polyligne avec un filtre d sélection (il n'y a pas de propriété DXF correspondant à ce critère).

Il faut que tu fasse ça dans le traitement de ton jeu de sélection.

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)

Salut (gile).

 

Merci pour cette réponse...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Posté(e)

A toutes fins utiles, voici mon bout de code... :

  (if (setq ss (ssget "_X" (list (cons 0 "LWPOLYLINE,LINE") (cons 8 "Routes"))))
   (progn (setq i 0)
          (while (setq ssObj (ssname ss i))
            (setq i (1+ i))
            (if (< (getpropertyvalue ssObj "length") 2)
              (progn (command "chprop" ssObj "" "ca" "FDP_Talus Barbules" "Co" "ducalque" ""))
            ) ;_ Fin de if
          ) ;_ Fin de while
   ) ;_ Fin de progn
 ) ;_ Fin de if

Il tri les "LWPOLYLINE" et les "LINE" inférieures à 2 mètres et étant dans le calque "Routes" et les place dans le calque "FDP_Talus Barbules" avec la couleur "DuCalque".

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Posté(e)

Effectivement...

 

Mais ça ne fonctionne pas... :

(if (setq ss (ssget "_X" (list (cons 0 "LWPOLYLINE,LINE") (cons 8 "Routes"))))
   (progn (setq i 0)
          (while (setq ssObj (ssname ss i))
            (setq i (1+ i))
            (if (< (getpropertyvalue ssObj "length") 2)
              (progn ;;(command "chprop" ssObj "" "ca" "FDP_Talus Barbules" "Co" "ducalque" ""))
                     (setpropertyvalue ssObj "Layer" "FDP_Talus Barbules")
                     (setpropertyvalue ssObj "Color" "ducalque")
              ) ;_ Fin de progn
            ) ;_ Fin de if
          ) ;_ Fin de while
   ) ;_ Fin de progn
 )

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Posté(e)

Pour utiliser ces fonctions, il ne faut pas hésiter à faire un dumpallproperties pour voir (dans la fenêtre de texte) le nom des propriétés et le type de valeur

 

(setpropertyvalue ssObj "LayerId" (tblobjname "layer" "FDP_Talus Barbules"))
(setpropertyvalue ssObj "Color" "BYLAYER")

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)

Merci pour ton aide.

 

Mais c'est curieux, l'entité garde la couleur fixée et ne passe pas à ByLayer...

 

mais la couleur "DuCalque" n'est pas -1 ou 256 ?

 

PS : je confirme, 256 est la couleur "DuCalque". Encore merci.

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité