stugeol Posté(e) le 18 octobre 2013 Partager Posté(e) le 18 octobre 2013 Jesuis à la recherche d'une routine lisp pour sélectionner un calque parmi laliste de calques existant, et qui me retourne le nom du calque sélectionné. Cordialement. Petit à petit on devient moins petit Lien vers le commentaire Partager sur d’autres sites More sharing options...
alala Posté(e) le 18 octobre 2013 Partager Posté(e) le 18 octobre 2013 Bonjour le sujet suivant fait surement ce que tu souhaite : http://www.cadtutor.net/forum/showthread.php?1407-return-layer-name-from-dialog-box ce qui donne (en remplaçant par les "()" et "{}" aux bon endrois) : ;;; creates a temporary .dcl file (defun mktemp-dcl (/ tmpf tmpfo) (vl-load-com) (setq tmpf (vl-filename-mktemp nil nil ".dcl") tmpfo (open tmpf "w") ) (write-line (strcat "layer_d : dialog { label = \"Current Layers\" ; : popup_list { label = \"Choose a Layer:\"; key = \"sel\"; value = \"0\" ; edit_width = 30; } ok_cancel ; }" ) tmpfo ) (close tmpfo) tmpf ) ;;; returns the Layers object (defun get-layrobj () (vla-get-Layers (vla-get-ActiveDocument (vlax-get-acad-object) ) ) ) ;;; generates a list of layer names in the current dwg. (defun layer-lst (/ lst) (vlax-for l (get-layrobj) (setq lst (cons (vlax-get-property l 'Name) lst) ) ) (if lst (acad_strlsort lst)) ) ;;; present the user with a dialog box (defun layer-lister (/ db dcl_id lst user_event layr) (setq db (mktemp-dcl) dcl_id (load_dialog db) lst (layer-lst) ) (if (not (new_dialog "layer_d" dcl_id)) (exit) ) (start_list "sel") (mapcar 'add_list lst) (end_list) (action_tile "accept" (strcat "(progn (setq layr (atof (get_tile \"sel\"))) (done_dialog) (setq user_event T))" ) ) (action_tile "cancel" "(done_dialog)" ) (start_dialog) (unload_dialog dcl_id) (if user_event (progn (setq layr (fix layr)) ;convert to integer (setq layr (nth layr lst)) ;get the layer (vl-file-delete db) ) ) layr ) L'on peu bien sur remplacer le : popup_list {par :: list_box { Pour avoir une liste sur plusieur ligne en lieu et place d'une liste déroulante. C'est en forgeant que l'on devient forgerons.Et c'est en sciant que Léonard DeVinci! Lien vers le commentaire Partager sur d’autres sites More sharing options...
stugeol Posté(e) le 18 octobre 2013 Auteur Partager Posté(e) le 18 octobre 2013 Je te remercie alala pour cette routine et le liens trèsintéressant. Cordialement. Petit à petit on devient moins petit Lien vers le commentaire Partager sur d’autres sites More sharing options...
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