Aller au contenu

selection ssget


Invité HAYA82

Messages recommandés

BONSOIR

a cette selection :

(setq ss (ssget	"_:S:E"
		(list
                      
		  '(-4 . "                           '(0 . "CIRCLE")
		  '(-4 . "			  '(0 . "ELLIPSE")
		  '(41 . 0.0)
		  (cons 42 (* 2 pi))
		  '(-4 . "AND>")
		  '(-4 . "			  '(0 . "LWPOLYLINE")
		  '(-4 . "&")
		  '(70 . 1)
		  '(-4 . "AND>")
                          '(-4 . "OR>")
                          
)

je voudrais ajouter un autre filte de selection qui est une variable pl et qui est determinée par le choix d'un calque :

(defun sel_pl()
    (setq lb (list))
    (setq lb (cons (cdr(assoc 2 (tblnext "LAYER" T))) lb))
    (while
         (setq X (cdr (assoc 2 (tblnext "LAYER"))))
         (setq lb (cons X lb))
    )
    (setq lb (acad_strlsort lb))
    (setq ll (length lb))

    (setq id_dcl (load_dialog "selec.dcl"))
    (if(not(new_dialog "SELEC" id_dcl))
         (exit)
    )

    (start_list "plselec" )
    (mapcar 'add_list lb )
    (end_list)
    (action_tile "plselec" "(setq pl (nth (atoi $value) lb))")
    (start_dialog)
    (unload_dialog id_dcl)

 

merci d'avance pour votre aide

 

Lien vers le commentaire
Partager sur d’autres sites

Salut et bienvenue,

 

Pour rendre tes messages plus lisibles quand tu publies du code, utilise les bbcodes :

[surligneur][[/surligneur][surligneur]code[/surligneur][surligneur]][/surligneur] ici le code [surligneur][[/surligneur][surligneur]/code[/surligneur][surligneur]][/surligneur]

 

donne :

 ici  le code 

 

Accessible via l'icône [#] :

http://img94.imageshack.us/img94/8380/bbcode.png

 

Si tu veux ajouter le calque à ton filtre, tu peux faire :

 

(setq lay (sel_pl))
(setq ss (ssget	"_:S:E"
	(list
	  '(-4 . "		  '(0 . "CIRCLE")
	  '(-4 . "		  '(0 . "ELLIPSE")
	  '(41 . 0.0)
	  (cons 42 (* 2 pi))
	  '(-4 . "AND>")
	  '(-4 . "		  '(0 . "LWPOLYLINE")
	  '(-4 . "&")
	  '(70 . 1)
	  '(-4 . "AND>")
	  '(-4 . "OR>")
	  [color=#FF0000](cons 8 lay)[/color]
	)
 )
)

 

PS : il manque des parenthèses fermantes dans les codes que tu as posté.

 

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

Lien vers le commentaire
Partager sur d’autres sites

ceci ne marche pas

j'ai déja essayé l'entrée (cons 8 pl) et l'entrée (cons 8 lay) mais à chaque fois il y a un message d'erreur qui dit " valeur de liste SSGET incorrecte"

merci pour votre aide

 

Lien vers le commentaire
Partager sur d’autres sites

Dans ce cas, ça vient probablement de la routine sel_pl.

 

Cette routine retourne-t-elle bien le nom du calque choisis dans la boite de dialogue ?

Je pose ces question car il semble que la routine que tu as postée soit incomplète (en tout cas il manque au moins des parenthèses à la fin).

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

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é