Aller au contenu

petage de cable_ssegt_et autre......


cadpolo

Messages recommandés

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

 

 

 

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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" "" "" )

 

)

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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é