Aller au contenu

MPL avec un déplacement de 500


zza427

Messages recommandés

Bonjour,

Je cherche si quelqu'un aurait fait une modification du LISP de Patrick_35 MPL avec un déplacement de la fenêtre de 500 sur la droite.

J'ai des fichiers de tableaux a refaire, ils viennent de SEE avec un fichier par folio, j'utilise GRF pour les intégrer tous sur une ligne espacés de 500 unités, et maintenant, si MPL pouvait décaler la fenêtre, je n'aurais plus qu'a le lancer depuis ma première présentation, et le boulot serait fait. J'ai un tableau à 153 folios et un autre à 93 folios.

 

Merci.

Lien vers le commentaire
Partager sur d’autres sites

Le voici:

 

;;;=================================================================

;;;

;;; MPL.LSP V1.03

;;;

;;; Recopier la config des Présentations

;;;

;;; Copyright © Patrick_35

;;;

;;;=================================================================

 

(defun c:mpl(/ s *errmpl* MsgBox multiplie_plt)

 

;;;---------------------------------------------------------------

;;;

;;; Gestion des erreurs

;;;

;;;---------------------------------------------------------------

 

(defun *errmpl* (msg)

(if (/= msg "Function cancelled")

(if (= msg "quit / exit abort")

(princ)

(princ (strcat "\nErreur : " msg))

)

(princ)

)

(setq *error* s)

(vla-endundomark (vla-get-activedocument (vlax-get-acad-object)))

(princ)

)

 

;;;---------------------------------------------------------------

;;;

;;; Message

;;;

;;;---------------------------------------------------------------

 

(defun MsgBox (Titre Bouttons Message / Reponse WshShell)

(vl-load-com)

(setq WshShell (vlax-create-object "WScript.Shell"))

(setq Reponse (vlax-invoke WshShell 'Popup Message 0 Titre (itoa Bouttons)))

(vlax-release-object WshShell)

Reponse

)

 

;;;---------------------------------------------------------------

;;;

;;; Routine principale

;;;

;;;---------------------------------------------------------------

 

(defun multiplie_plt(/ config doc i init_mpl j lay liste_lay lst n position positiondests resultat)

 

(defun liste_destination()

(start_list "dest")

(mapcar 'add_list (vl-remove (nth (atoi position) liste_lay) liste_lay))

(end_list)

(set_tile "dest" positiondest)

)

 

(if (setq init_mpl (findfile "mpl.dcl"))

(progn

(setq init_mpl (load_dialog init_mpl)

liste_lay nil

n 1

position "0"

positiondest "0"

)

(vlax-for lay (vla-get-layouts (vla-get-activedocument (vlax-get-acad-object)))

(setq lst (cons (cons (vla-get-taborder lay) lay) lst))

)

(while (assoc n lst)

(setq liste_lay (cons (vla-get-name (cdr (assoc n lst))) liste_lay))

(if (and (eq (vla-get-name (cdr (assoc n lst))) (getvar "ctab")) (zerop (getvar "tilemode")))

(setq position (itoa (1- n)))

)

(setq n (1+ n))

)

(setq liste_lay (reverse liste_lay))

(if (cdr liste_lay)

(progn

(new_dialog "mpl" init_mpl "")

(start_list "mpl")

(mapcar 'add_list liste_lay)

(end_list)

(liste_destination)

(set_tile "titre" "Copie Présentation V1.03")

(set_tile "mpl" position)

(mode_tile "mpl" 2)

(while (and (/= resultat 1)(/= resultat 0))

(action_tile "mpl" "(setq position $value)(liste_destination)")

(action_tile "dest" "(setq positiondest $value)")

(action_tile "accept" "(done_dialog 1)")

(action_tile "cancel" "(done_dialog 0)")

(setq resultat (start_dialog))

)

(unload_dialog init_mpl)

(if (eq resultat 1)

(progn

(setq doc (vla-get-activedocument (vlax-get-acad-object))

config (vla-item (vla-get-layouts doc) (nth (atoi position) liste_lay))

)

(setq liste_lay (vl-remove (nth (atoi position) liste_lay) liste_lay))

(while (not (eq positiondest ""))

(setq position (read positiondest))

(setq lay (vla-item (vla-get-layouts doc) (nth position liste_lay)))

(vla-copyfrom lay config)

(princ (strcat "\nMise à jour de la mise en page de " (vla-get-name lay) " depuis " (vla-get-name config)))

(setq positiondest (substr positiondest (+ 2 (strlen (itoa position))) (strlen positiondest)))

)

)

)

)

(msgbox "MPL" 48 "Une seule présentation\nUtilisation inutile du Lisp")

)

)

(msgbox "MPL" 16 "Fichier MPL.DCL introuvable")

)

)

 

;;;---------------------------------------------------------------

;;;

;;; Routine de lancement

;;;

;;;---------------------------------------------------------------

 

(vl-load-com)

(setq s *error*)

(setq *error* *errmpl*)

(vla-startundomark (vla-get-activedocument (vlax-get-acad-object)))

(multiplie_plt)

(vla-endundomark (vla-get-activedocument (vlax-get-acad-object)))

(setq *error* s)

(princ)

)

 

(setq nom_lisp "MPL")

(if (/= app nil)

(if (= (strcase (substr app (1+ (- (strlen app) (strlen nom_lisp))) (strlen nom_lisp))) nom_lisp)

(princ (strcat "..." nom_lisp " chargé."))

(princ (strcat "\n" nom_lisp ".LSP Chargé.....Tapez " nom_lisp " pour l'éxecuter.")))

(princ (strcat "\n" nom_lisp ".LSP Chargé......Tapez " nom_lisp " pour l'éxecuter.")))

(setq nom_lisp nil)

(princ)

Lien vers le commentaire
Partager sur d’autres sites

Hello

 

DESOLE NO COMPRENDO !

 

C bien ce que je pensais, nous parlons BIEN de la meme routine MPL !

qui ne fait que recopier les Parametres d'UNE Presentation vers une autre Presentation : Format / Driver / Decalage XY / Qualite / Table des CTB-STB / etc ...

 

DONC pour moi je ne vois pas ce que tu veux "Decaler de 500" ?

 

Ce serait "Se decaler en X (ou Y) de 500" dans l'Onglet OBJET, peut etre !?

 

Bye, lecrabe

Autodesk Expert Elite Team

Lien vers le commentaire
Partager sur d’autres sites

En fait, je viens de me rendre compte hier au soir que MPL ne met pas de fenêtre dans la présentation, du coup ce que je demande n'est pas clair, et n'est pas forcement lié à MPL.

 

En fait j' avais 150 fichiers avec sur chacun un folio d'un gros schémas d'armoire (pour une cimenterie) mais pas de présentation propre, je les ai tous intégrés dans un seul fichier avec le lisp GRF. Du coup j'ai un fichier avec tous mes folios les uns à la suite des autres décalés de 500 unités et avec une présentation pour chaque page avec le nom du folio. Par contre les fenêtres de ces présentations sont toutes en zoom étendu.

Je cherche un moyen de transmettre la bonne mise en page (avec sa fenêtre) dans les 150 présentations avec la fenêtre qui se décale de 500 unités sur la droite pour m'éviter de devoir copier la fenêtre dans les 150 présentations puis de faire un -PAN dans chaque fenêtre.

 

Si quelque chose dans le genre existe, je serais preneur...

On peut toujours rêver, non?

 

En écrivant ce message je réalise qu'il faut que je fasse une présentation propre sur un des fichiers folii de base, que je la mette dans les 149 autres et qu'ensuite j'utilise GRF. Peut être que comme ça je gagnerais un peu de temps.

Je vous tiens au courant.

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é