cadpolo Posté(e) le 2 octobre 2005 Posté(e) le 2 octobre 2005 Salut a tout le monde ((enfin ceux quie me liront ))....... Voila j'essaye de me créer ma propre selection d'objet à filtrer .....J'ai déja poster quelque quesion et eu des reponses.......Mais comme je dis on n'est jamais mieux servi que par sois même........Donc j'essaye de comprendre comment fonctionne ces " satanés " filtres ........ Voila pour créer un filtre qui ne selectionnne que les éléments d'un calque bien precis..tel que les lignes cercles solides polyligne et non les textes ....les modifies la couleur etc.........mais quelque chose de tres simple ......donc je me dis qu je selectionne le calque ;;;Selection du calque a traiter (setq le_calque (cdr(assoc 8 (enget(car(entsel)))))) et apres j'essaye les conditions (setq ent_le_calque (ssget "_X" '((-4 . "AND")) la ça marche mais si je rajoute d'autres cond à lasuite (0 . "cercle") (0 . "solide")ben non !!!!sslength pourquoi faut 'il boucler si on selectionne toutes le entirés pourquoi les reboucler?????Les entités selectionnés peuvent midifier rapidement ......... :casstet: ..........Alors qui peux renseigner un nul......merci
(gile) Posté(e) le 2 octobre 2005 Posté(e) le 2 octobre 2005 Salut, si tu selectionnes ton calque comme tu l'as fait (setq le_calque (cdr(assoc 8 (enget(car(entsel)))))) la syntaxe pour selectionner toutes les entités du calque est : (ssget "_X" (list (cons 8 le_calque))) Pour ajouter un filtre sur des entités (cercles, solides, lignes): (ssget "_X" (list (cons 8 le_calque) (cons 0 "CIRCLE,3DSOLID,LINE"))) [Edité le 2/10/2005 par (gile)] Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
(gile) Posté(e) le 2 octobre 2005 Posté(e) le 2 octobre 2005 Re, (cons 0 "CIRCLE,3DSOLID,LINE") ou (0 . "CIRCLE,3DSOLID,LINE") equivaut à : (-4 . "") NOTA : sans l'espace entre le " Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
cadpolo Posté(e) le 2 octobre 2005 Auteur Posté(e) le 2 octobre 2005 Salut Gile..... :D Et fallait y penser rajouter la suite dans la même condition et je n'ai pas testé les OR et AND ....Mais c'est vrai ais je raté une étape ????Mais ma question demeure pourquoi faut il teste (SSLENGTH) le nbr de jeu de selection (SSMEMB) verifier si le nom de l'entite s' y trouve ......ET boucle sur la selection .... :casstet: Car ce code marche bien sur il est a amélirer ????? (defun c:ssel2 () (setq le_calque (cdr(assoc 8 (entget(car(entsel)))))) (setq ent_le_calque (ssget (list (cons 8 le_calque) (cons 0 "CIRCLE,SOLID,LINE")))) (command "_chprop" ent_le_calque "" "CO" "4" "" "" ) )
cadpolo Posté(e) le 2 octobre 2005 Auteur Posté(e) le 2 octobre 2005 Au faite Merci Gile .... :) Vous me direz : [surligneur] c'est en forgeant que l'on devient forgeron[/surligneur] .....
bonuscad Posté(e) le 2 octobre 2005 Posté(e) le 2 octobre 2005 Un autre exemple :) ((lambda ( / e le_calque) (while (not (setq e (entsel"\nChoix d'un objet: ")))) (setq le_calque (cdr (assoc 8 (entget (car e))))) (alert (strcat "\n" "Sélectionne le calque " le_calque "\nqui contient des Lignes/Polylignes/Mutilignes/Splines de couleur VERT" "\net des Hachure de type Utilisateur." ) ) (setq js (ssget "X" (list '(-4 . "< OR") '(-4 . "< AND") '(0 . "*LINE") '(62 . 3) (cons 8 le_calque) '(-4 . "AND>") '(-4 . "< AND") '(0 . "HATCH") '(2 . "_U*") (cons 8 le_calque) '(-4 . "AND>") '(-4 . "OR>") ) ) ) (cond (js (sssetfirst nil js))) )) Quant au (ssmenb) et (sslength), il te seront utile si tu a besoin de parcourir ton jeu de selection pour modifier une propriété particulère d'un type d'entité seulement. Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
LUDWIG Posté(e) le 3 octobre 2005 Posté(e) le 3 octobre 2005 Vous me direz : c'est en forgeant que l'on devient forgeron ..... Je rajouterai que [surligneur] c'est en sciant que Léonard De Vinci[/surligneur]. Autocad 2021 - Revit 2022 - Windows 10
Messages recommandés
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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant