lecrabe Posté(e) le 1 mars 2015 Posté(e) le 1 mars 2015 Hello SVP je cherche une routine Lisp/VLisp pour "verifier" un peu les DWGs au niveau des FMULT/_MVIEW !? Avec TOUTEs les Infos qui defilent sur l'ecran et/ou peut etre une option (si possible) pour mettre la meme chose dans un fichier texte !? Et je n'ai pas trouve ? Donc voici mon CDC/CCTP !Dans un DWG quelconque, la routine doit defiler "simplement" sur l'ecran texte et/ou dans un fichier texte ... - Depart de la boucle d'analyse - Affichage du Nom du DWG courant (avec le chemin) et du nombre TOTAL de Presentation/Layout ... et du nombre TOTAL de TOUTEs les FMULT/_MVIEW ... ... On "attaque" la 1ere Presentation/Layout ... 1) Le nom de la Presentation/Layout 2) Le nombre de FMULT/_MVIEW pour la Presentation/Layout en cours de traitement / Eventuellement : = ZERO 3) Le nom du calque sur lequel est concu/dessine la FMULT/_MVIEW en commencant si possible par la plus grande (en surface) FMULT/_MVIEW ... 4) Si N FMULT/_MVIEW sur l'onglet Presentation/Layout en cours de traitement alors on "retourne" au point 1 ... 5) Passage a la Presentation/Layout suivante ... 6) On retourne au debut de l'analyse des Presentation/Layout ... Voila je pense avoir ete clair !? En resume je ne supporte pas d'avoir des FMULT/_MVIEW sur N Calques/Layers differents !! Pour moi, il devrait n'y avoir que DEUX calques pour TOUTEs FMULT/_MVIEW dans TOUTEs les Presentations/Layouts ...ZZ_FENETRE : pour les FMULT/_MVIEW visibles ! ZZ_FENETRE_INVIS : pour les FMULT/_MVIEW INvisibles ! ... J'ai le droit de rever ... Merci d'avance, Bon Dimanche, Bye, lecrabe Autodesk Expert Elite Team
Patrick_35 Posté(e) le 2 mars 2015 Posté(e) le 2 mars 2015 Salut Lecrabe Un premier jet pour voir si ça correspond bien à ta demande.Fonctionne pour l'instant uniquement sur le dessin courant.Il ne reste pas grand chose à faire pour le faire travailler sur plusieurs dessins d'un même répertoire. (defun c:vfm(/ bg dis doc ele hd lay lst sau) (setq doc (vla-get-activedocument (vlax-get-acad-object))) (vla-startundomark doc) (vlax-for lay (vla-get-layouts doc) (setq sau nil lst nil tot 1) (vlax-for ele (vla-get-block lay) (cond ((and sau (eq (vla-get-objectname ele) "AcDbViewport")) (vla-getboundingbox ele 'hd 'bg) (setq lst (cons (list (distance (vlax-safearray->list hd) (vlax-safearray->list bg)) (vla-get-layer ele) ) lst ) ) ) (T (setq sau T) ) ) ) (if lst (progn (foreach obj (vl-sort lst '(lambda (a B)(< (car a)) (< (car B)))) (princ (strcat "\nPrésentation : " (vla-get-name lay) " - Fenêtre : " (itoa tot) " - Diagonale : " (rtos (car obj)) " - Calque : " (cadr obj))) (setq tot (1+ tot)) ) ) (princ (strcat "\nPas de fenêtre (viewport) dans la présentation : " (vla-get-name lay))) ) ) (vla-endundomark doc) (princ) ) @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
lecrabe Posté(e) le 3 mars 2015 Auteur Posté(e) le 3 mars 2015 Hello P35 MERCI ton code est super-concis, je suis impressionne ! ... Rien a ameliorer/corriger pour moi ... Neanmoins SVP peux tu simplement ajouter : - 1 ligne blanche entre le defilement des Infos de chaque Espace/Presentation/Layout (pour separer un peu) - 2 Totaux generaux a la fin : Nombre total de Presentation/Layout et nombre total de FMULT/_MVIEW L'idee d'afficher la diagonale est excellente , pas besoin de trier par taille ! Felicitations, c RARE les developpeurs qui prennent de BONNEs initiatives !! Longue et Heureuse Vie a P35, Bye, lecrabe Autodesk Expert Elite Team
Patrick_35 Posté(e) le 3 mars 2015 Posté(e) le 3 mars 2015 Neanmoins SVP peux tu simplement ajouter : - 1 ligne blanche entre le defilement des Infos de chaque Espace/Presentation/Layout (pour separer un peu) - 2 Totaux generaux a la fin : Nombre total de Presentation/Layout et nombre total de FMULT/_MVIEW C'est fait L'idee d'afficher la diagonale est excellente , pas besoin de trier par taille ! Felicitations, c RARE les developpeurs qui prennent de BONNEs initiatives !!Merci, cela me paraissait plus simple que des coordonnées Longue et Heureuse Vie a P35, Bye, lecrabeIl me reste à saluer de la main ;) Sinon, le lisp fini qui traite un répertoire complet @+vfm.lsp Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
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