Aller au contenu

Liste des FMULTs et noms des calques utilises par les FMULTs


lecrabe

Messages recommandés

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

Lien vers le commentaire
Partager sur d’autres sites

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 Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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, lecrabe

Il me reste à saluer de la main ;)

 

Sinon, le lisp fini qui traite un répertoire complet

 

@+

vfm.lsp

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Lien vers le commentaire
Partager sur d’autres sites

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é