skavenger540 Posté(e) le 18 juillet 2013 Posté(e) le 18 juillet 2013 Bonjour, sur certains gros fichiers, le temps d'affichage de présentations est parfois trop long, aussi, je recherche un Lisp qui désactive toutes les fenêtres des présentations, pour pouvoir ensuite choisir celle que je souhaite réafficher. En gros, l'automatisation de la commande _-vports _off _all mais sur toutes les présentations.Quelqu'un aurait-il un exemple de Lisp (je précise que je ne suis pas développeur, j'ai bien cherché et testé les ONG.lsp et autres mais sans succès) Merci
bryce Posté(e) le 18 juillet 2013 Posté(e) le 18 juillet 2013 Bonjour, Voici un Lisp, basé sur une fonction de (gile), qui définit 5 commandes. VPAOFF devrait correspondre à ce que tu recherches.; VPST : active/désactive toutes les fenêtres de l'onglet courant/tous les onglets ; VPAON : active toutes les fenêtres de tous les onglets ; VPON : active toutes les fenêtres de l'onglet courant ; VPAOFF : désactive toutes les fenêtres de tous les onglets ; VPOFF : désactive toutes les fenêtres de l'onglet courant (defun c:vpon () (gc:AllViewportOn :vlax-true (getvar 'ctab)) (princ) ) (defun c:vpaon () (gc:AllViewportOn :vlax-true nil) (princ) ) (defun c:vpoff () (gc:AllViewportOn :vlax-false (getvar 'ctab)) (princ) ) (defun c:vpaoff () (gc:AllViewportOn :vlax-false nil) (princ) ) (defun c:vpst (/ option) (princ "\nActive/désactive toutes les fenêtres de l'onglet courant/tous les onglets") (initget "DT AT D A") (setq option (getkword "\nChoisissez une option [Désactiver Tous/Activer Tous/Désactiver courant/Activer courant] <Désactiver Tous>: ")) (cond ((= option "AT") (c:vpaon)) ((= option "A") (c:vpon)) ((= option "D") (c:vpoff)) ( T (c:vpaoff)) ) (princ) ) (defun gc:AllViewportOn (bool layout / *error* lrc ss) (vl-load-com) (or *acad* (setq *acad* (vlax-get-acad-object))) (or *acdoc* (setq *acdoc* (vla-get-activeDocument *acad*))) (defun *error* (msg) (and msg (or (member (strcase msg) '("FUNCTION CANCELLED" "QUIT / EXIT ABORT" "FONCTION ANNULEE" "QUITTER / SORTIR ABANDON")) (princ (strcat "\nErreur : " msg)) ) ) (setvar 'layoutregenctl lrc) (princ) ) (setq lrc (getvar 'layoutregenctl)) (setvar 'layoutregenctl 0) (if layout (or (/= layout "Model") (progn (princ "\n** Commande non autorisée dans l'onglet Objet**") (quit) ) ) (setq layout "~Model") ) (if (ssget "_X" (list(cons 0 "VIEWPORT") (cons 410 layout) (cons -4 "/=") (cons 69 1))) (vlax-for vp (setq ss (vla-get-ActiveSelectionSet *acdoc*)) (vla-put-ViewportOn vp bool) ) ) (and ss (vla-Delete ss)) (*error* nil) ) (princ "\nCommandes: VPST ou VPON, VPOFF, VPAON, VPAOFF") (princ) Brice, formateur AutoCAD - Inventor - SolidWorks - ZWCad - DraftSight - SketchUp indépendant
skavenger540 Posté(e) le 18 juillet 2013 Auteur Posté(e) le 18 juillet 2013 Oui, c'est exactement cela !Je l'utilise avec ZWcad et c'est passé nickel. Merci beaucoup, Bryce.
PHILPHIL Posté(e) le 23 juillet 2013 Posté(e) le 23 juillet 2013 hello j'ai utilisé le lisp sur une version 14 et ca ne semble pas fonctionner pour cette fonction VPAOFF quand je suis dans l'espace papier quand il arrive a (if (ssget "_X" (list(cons 0 "VIEWPORT") (cons 410 layout) (cons -4 "/=") (cons 69 1))) (vlax-for vp (setq ss (vla-get-ActiveSelectionSet *acdoc*)) (vla-put-ViewportOn vp bool) ) ) il répond : Erreur : Erreur Automation Pas dans l'espace papier pour la fonction VPOFF le lisp va au bout mais rien ne se passe, aucune fenetre n'est desactivées meme chose pour VPAON et VPON respectivement est ce que ca viendrait pas de la définition "BOOL" ?? ca ne marche ni dans l'espace papier ni objet en fait si quelqu'un avait la solution. merci a+ bonne soirée FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal
bryce Posté(e) le 23 juillet 2013 Posté(e) le 23 juillet 2013 Bonjour, La version 14, je n'en ai plus sous la main pour tester...Je suppose que tu parles de la 2014 ? :P Aucun problème de mon côté... Tu as essayé de relancer AutoCAD ? Brice, formateur AutoCAD - Inventor - SolidWorks - ZWCad - DraftSight - SketchUp indépendant
lecrabe Posté(e) le 23 juillet 2013 Posté(e) le 23 juillet 2013 Hello La routine de Bryce est OK sur un MAP 2014 64 bits sous Win Seven Pro 64 lecrabe Autodesk Expert Elite Team
Tramber Posté(e) le 23 juillet 2013 Posté(e) le 23 juillet 2013 sur certains gros fichiers, le temps d'affichage de présentations est parfois trop long, aussi, je recherche un Lisp qui désactive toutes les fenêtres des présentations, pour pouvoir ensuite choisir celle que je souhaite réafficher. Moi je mets LAYOUTREGENCTL à 0 pour faire RGT (régénérer tout à la présentation souhaitée) en cas de ralentissements.... Mais c'est bon pour un fichier longtemps ouvert et, comme le dit la doc, si il n'y a pas trop de fichiers ouverts (mis en cache en quelque sorte).Desactiver les fenêtres étant radical...Je n'ai rien contre le lisp ceci dit :P Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
PHILPHIL Posté(e) le 23 juillet 2013 Posté(e) le 23 juillet 2013 hello j'ai rechargé la routine et rééssayé sur plusieurs fichiers j'ai tjrs le meme problemeca ne fonctionne pas ca marche une fois sur 2 dans la presentation ( VPOFF )mais pas la fonction VPAOFF gros mystere je suis saut autocad architecture 2014, mais je vois pas pourquoi ce ne marcherai pas a+ phil FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal
bryce Posté(e) le 23 juillet 2013 Posté(e) le 23 juillet 2013 Je ne vois pas quel peut-être le souci... Tu peux éventuellement tester cet autre Lisp qui utilise (command), pour voir si ça fonctionne de cette façon:(defun c:vpai (/ *error* acdoc layouts oldcmdecho action ss clayout) ; Brice Studer, février 2011 ; mise à jour juin 2013 ; Permet d'activer toutes les fenêtres de toutes les présentations du dessin, ; ou de toutes les désactiver (en choisissant éventuellement de garder actives ; certaines fenêtres de la présentation active). (vl-load-com) (setq acdoc (vla-get-ActiveDocument (vlax-get-acad-object)) layouts (vla-get-Layouts acdoc) ) (defun *error* (errmsg) (command nil nil nil) (vla-EndUndoMark acdoc) (setvar "CMDECHO" oldcmdecho) (setvar "NOMUTT" 0) (and errmsg (or (member (strcase errmsg) '("FUNCTION CANCELLED" "QUIT / EXIT ABORT" "FONCTION ANNULEE" "QUITTER / SORTIR ABANDON")) (princ (strcat "\nErreur : " errmsg)) ) ) (princ) ) (initget "Activer Désactiver") (setq action (getkword "\nEntrée pour désactiver toutes les fenêtres ou [Activer]: ")) (if (= action "Activer") (setq action "_on") (progn (setq action "_off") (princ "\nSélectionnez les fenêtres à garder actives (Entrée pour aucune): ") (setq ss (ssget '( (0 . "VIEWPORT") ))) ) ) (vla-StartUndoMark acdoc) (setq oldcmdecho (getvar "CMDECHO") clayout (getvar "CTAB") ) (setvar "CMDECHO" 0) (setvar "NOMUTT" 1) (vlax-for lay layouts (if (eq :vlax-false (vla-get-ModelType lay)) (progn (vla-put-ActiveLayout acdoc lay) (command "_.-vports" action "_all" "") (if (/= 0 (getvar "CMDACTIVE")) (command nil nil nil) ) );progn );if layout not model );vlax-for lay (setvar "CTAB" clayout) (if ss (command "_.-vports" "_on" ss "") ) (*error* nil) ) (princ "\nCommande à utiliser: VPAI") (princ) Brice, formateur AutoCAD - Inventor - SolidWorks - ZWCad - DraftSight - SketchUp indépendant
PHILPHIL Posté(e) le 24 juillet 2013 Posté(e) le 24 juillet 2013 hello mercii mais je dois etre maudit, ce LISp la non plus ne marche pas chez moi désolé a+ phil FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal
bryce Posté(e) le 24 juillet 2013 Posté(e) le 24 juillet 2013 Bonjour, :mellow: Il y a un message d'erreur ?Pourrais-tu poster un dessin exemple ? Brice, formateur AutoCAD - Inventor - SolidWorks - ZWCad - DraftSight - SketchUp indépendant
PHILPHIL Posté(e) le 24 juillet 2013 Posté(e) le 24 juillet 2013 hello je viens de refaire un test avec le premier lispVPST, VPAOFF, VPAON, VPOFF, VPON sur un fichier vierge 1 onglet sans fenetre, sans calque 20Ko le fichier quoij'ai crée 4 presentations, une fenetre dans chaque, et quelque entites dans l'espace objet et la pa de souci ca a marché puis j'ai importé via designcenter une presentation d'un autre fichier avec une fentre non rectangulaire et la ca ne marche plus ca doit venir des fenetres en fait car dans le meme fichier si je les efface toutes et en refait des nouvelles la ca marche je sens que c'est a géométrie variable ce truc, des fois ca marche des fois non, pourtant chaque fenetre est bien passé en revue a chaque fois par le lisp, que l'on crée des nouvelles ou que l'on efface merci a+phil FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal
PHILPHIL Posté(e) le 24 juillet 2013 Posté(e) le 24 juillet 2013 hello une piste peut etre il y aurait un souci avec les fenetres non rectangulaire ( celle qui sont détourées ou qui ont été detourées )et ca bloquerai tout le reste a+ phil FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal
bryce Posté(e) le 24 juillet 2013 Posté(e) le 24 juillet 2013 J'ai testé avec une fenêtre circulaire, pas de souci chez moi... :unsure: Brice, formateur AutoCAD - Inventor - SolidWorks - ZWCad - DraftSight - SketchUp indépendant
PHILPHIL Posté(e) le 24 juillet 2013 Posté(e) le 24 juillet 2013 hello j'ai refait un test sur un fichier vierge 4 onglets, une fenetre créer dans chaque onglet, dont une circulire, une détouré he bien ca marche mais si je sauvegarde et que je le réouvre la ca ne marche plus il y a un souci si le fichier est sauvegardé a+ phil FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal
PHILPHIL Posté(e) le 30 juillet 2013 Posté(e) le 30 juillet 2013 hello j'ai peut etre ma réponse et ca fonctionne d'autre pourrait faire le test aussi svp mes noms d'onglets etaient en fait comme ceci : avant : A4H PDF PC RDC 1-50 PL001#maintenant : A4H PDF PC RDC 1-50 PL001- car je récupere le dernier caractere "#" "-" pour le mettre dans un champ donnant l'indice de mon cartoucheet aussi les caracteres "001" dans un autre champ pour etre le numéro de la planche de mon cartouche hors avant avec le signe "#" les fonctions VPON et VPOFF ne fonctionnaient pasn'importe ou est placé le "#" dans le nom de l'onglet les deux fonctions ne marchent pas en fait mais maintenant c'est VPAON et VPAOFF qui ne fonctionne plus a+ phil FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal
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