Aller au contenu

Demande a Gile...


Messages recommandés

Posté(e)

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]

Posté(e)

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

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é