bono05 Posté(e) le 4 août 2008 Posté(e) le 4 août 2008 Bonjour Gile, J'utilise abondemment le lisp "increment" regroupant plusieurs commandes.Danscelisplacommande INCR fait appel à une petitefenetre très partique qui de choisir quelle option l'on désire. J'ai en ma possession un lisp "vplocker" qui me permet de'(par ex) fermer tous les viewports d'un plan en une seule fois, ect.... Comme tu peux le constater ily a 4 commandes différentes et j'aurai voulu savoir si c'était possible de regrouperces 4 commandes en une seuleavecouvertured'une fenetre à choix multiple (comme increment)? Merci de ton aide. (defun C:MYVPL () (textscr) (princ "\n\n\n\n*************VPLOCKER COMMANDS****************** \n VPL = Lock all viewports in current layout \n VPU = Unlock all viewports in current layout \n VPAL = Lock all viewports in all layouts \n VPAU = Unlock all viewports in all layouts\n\n\n\n") (princ) ) (princ "\nVPLOCKER.LSP c2002 KDCAD, inc. \nVPLOCKER.LSP loaded successfully. Type MYVPL for command list.") ;;**********MVIEW LOCK******************* (defun c:VPL (/ VPLST THISTAB VPS) (setq THISTAB (getvar "ctab")) (setq VPLST (ssget "x" (list (cons 0 "viewport") (cons 410 THISTAB)))) (setq c -1) (if VPLST (repeat (sslength VPLST) (setq VPS (cdr (car (entget (ssname VPLST (setq c (1+ c))))))) (setq VLAOBJ (vlax-ename->vla-object VPS)) (vlax-put-property VLAOBJ 'Color 4) )) (if (= (getvar "ctab") "Model") (princ "\n** Command not allowed in Model Tab **") (command "mview" "lock" "on" VPLST "") ) (princ) ) ;;**********MVIEW UNLOCK******************* (defun c:VPU (/ VPLST THISTAB VPS) (setq THISTAB (getvar "ctab")) (setq VPLST (ssget "x" (list (cons 0 "viewport") (cons 410 THISTAB)))) (setq c -1) (if VPLST (repeat (sslength VPLST) (setq VPS (cdr (car (entget (ssname VPLST (setq c (1+ c))))))) (setq vlaobj (vlax-ename->vla-object VPS)) (vlax-put-property vlaobj 'Color 256) )) (if (= (getvar "ctab") "Model") (princ "\n** Command not allowed in Model Tab **") (command "mview" "lock" "off" VPLST "") ) (princ) ) ;;**********MVIEW LOCK IN ALL LAYOUTS******************* (defun c:VPAL (/ THISTAB VPLST VPS) (setq THISTAB (getvar "CTAB")) (foreach LAYOUT (layoutlist) (setvar "CTAB" LAYOUT) (setq VPLST (ssget "x" (list (cons 0 "viewport")))) (setq c -1) (if VPLST (repeat (sslength VPLST) (setq VPS (cdr (car (entget (ssname VPLST (setq c (1+ c))))))) (setq vlaobj (vlax-ename->vla-object VPS)) (vlax-put-property vlaobj 'Color 4) )) (command "mview" "lock" "on" VPLST "") ) (setvar "CTAB" THISTAB) (princ) ) ;;**********MVIEW UNLOCK LOCK IN ALL LAYOUTS******************* (defun c:VPAU (/ THISTAB VPLST VPS) (setq THISTAB (getvar "CTAB")) (foreach LAYOUT (layoutlist) (setvar "CTAB" LAYOUT) (setq VPLST (ssget "x" (list (cons 0 "viewport")))) (setq c -1) (if VPLST (repeat (sslength VPLST) (setq VPS (cdr (car (entget (ssname VPLST (setq c (1+ c))))))) (setq vlaobj (vlax-ename->vla-object VPS)) (vlax-put-property vlaobj 'Color 256) )) (command "mview" "lock" "off" VPLST "") ) (setvar "CTAB" THISTAB) (princ) ) ( [Edité le 4/8/2008 par bono05]
(gile) Posté(e) le 4 août 2008 Posté(e) le 4 août 2008 Salut, L'avantage de commande avec des noms de 3 ou 4 lettres, c'est qu'on peut les lancer rapidement, mais si tu préfères une boite de dialogue... (defun c:vpman (/ temp file dcl_id fun) (setq temp (vl-filename-mktemp "Tmp.dcl") file (open temp "w") ) (write-line (strcat "vpman:dialog{label=\"Verrouillage de fenêtres\";" ":radio_column{key=\"fun\";" ":radio_button{" "label=\"VPL Verrouiller toutes les fenêtres de la présentation courante\"; key=\"c:vpl\";}" ":radio_button{" "label=\"VPU Déverrouiller toutes les fenêtres de la présentation courante\"; key=\"c:vpu\";}" ":radio_button{" "label=\"VPAL Verrouiller toutes les fenêtres de ltoutes les présentations\"; key=\"c:vpal\";}" ":radio_button{" "label=\"VPAU Déverrouiller toutes les fenêtres de ltoutes les présentations\"; key=\"c:vpau\";}}" "ok_cancel;}") file ) (close file) (setq dcl_id (load_dialog temp)) (if (not (new_dialog "vpman" dcl_id)) (exit) ) (set_tile "c:vpl" "1") (action_tile "accept" "(setq fun (get_tile \"fun\")) (done_dialog)" ) (start_dialog) (unload_dialog dcl_id) (and fun (apply (read fun) nil)) (princ) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
bono05 Posté(e) le 5 août 2008 Auteur Posté(e) le 5 août 2008 Une fois de plus TROP FORT ce Gile !!!!!!! Merci,merci,merci.... !!! :D
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