Dieunis Posté(e) le 2 mars 2010 Posté(e) le 2 mars 2010 Bonjour à tous, pour les besoins d'un lisp de séléction, je récupère la liste des calques de mon dessin grace à ce petit bout de code récupérer dans d'autre lisp. (while (setq lay (tblnext "layer" (not lay)))(setq layers (cons (cdr (assoc 2 lay)) layers)))(setq layers (acad_strlsort layers)) et ensuite j'aimerais supprimer de la liste obtenue tous les calques dont le nom commence par Xref, le but étant d'avoir un liste qui contient tous les calques sauf ceux des xref. Comment faire ?
Tramber Posté(e) le 2 mars 2010 Posté(e) le 2 mars 2010 et ensuite j'aimerais supprimer de la liste obtenue tous les calques dont le nom commence par Xref, Le mieux alors est de ne pas les mettre ! (setq lay nil layers nil) (while (setq lay (tblnext "layer" (not lay))) (if(not(=(substr (cdr (assoc 2 lay)) 1 4)"Xref")) (setq layers (cons (cdr (assoc 2 lay)) layers)))) (setq layers (acad_strlsort layers)) Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
Tramber Posté(e) le 2 mars 2010 Posté(e) le 2 mars 2010 (vl-remove-if '(LAMBDA (x)(=(substr x 1 4)"Xref"))layers) Pour ta demande précise. Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
Dieunis Posté(e) le 3 mars 2010 Auteur Posté(e) le 3 mars 2010 Merci à toi après traduction de la première solution, on lance la boucle pour récupérer les calques et on lui dit :ne pas inclure si les 4 première lettres du nom sont égale à Xref.j'ai tout compris :) pour la deuxième solution, j'avais tester avec vl-remove, mais j'ai du mal à cerner les fonctions et lambda.
Tramber Posté(e) le 3 mars 2010 Posté(e) le 3 mars 2010 C'est bien ça. Pour la 2ème.... :cool: Faut apprendre ;) C'est plus simple qu'il n'y parait."remove if" en français donne "enlève si"Donc enlève de layers si à tout membre on constate que (=(substr x 1 4)"Xref"). Le fait de mettre un x, un ô ou un toto n'a pas d'importance. la fonction provisoire lambda a cependant besoin de connaitre x dans sa déclaration d'où Lambda(x).On peut trouver des Lambda(a b) quand il s'agit par exemple de comparer des éléments contigus de listes (aide sur VL-SORT à regarder). Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
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