Aller au contenu

Carnets EO passé en Présentation


Bred

Messages recommandés

Salut,

Suite à cette demande de BIGC-ROMU et comme le post est particulièrement confus, vous trouverez ci dessous un lisp permettant à partir d'une série de cadres mise en page en Espace objet de les transférer en un cadre par présentation afin de pouvoir utiliser la commande de publication (ou autre).

Merci à tous ceux qui ont permis de me sortir de ce code et à ceux de l'avoir testé en profondeur.

 

Fonctionnement :

- Les cadres de pages doivent être des blocs.

(Si vous avez des cadres en simple rectangle, transformez en un en bloc et faites un réseau ou un copier)

- Afin d'éviter toutes erreur, une présentation déjà paramétré doit exister (Une fenêtre de présentation cadré "en aire du tracé" par une fenêtre et mis à l'échelle, Traceur, échelle de tracé).

- Les cadres en Espace Objets peuvent être à n'importe quel échelle, et peuvent être mélangé Portrait et Paysage.

- L'unité d'insertion doit être en millimètre, centimètre ou mètre.

- Le nom des onglet sera incrémenter de +1.

 

- Commande : CEP

 

;;; Crée un onglet EP par cadre de page sélectionné en EO
;;; par Bred - Un onglet déjà paramétrer doit exister -
;;; Version 1.1
(defun c:CEP (/ ACDOC B C FEN I LAYS N-P NOM-P ONG-BASE ONG_DEST SEL XMIN YMAX
      A-P HAUT LARG P1 P2 NOM ECH LAY LOCK UNIT)
 
(vl-load-com)
; 4 Millimètres 5 Centimètres 6 Mètres
(setq Unit (cdr (assoc (getvar "INSUNITS") '((4 . 1) (5 . 10) (6 . 1000)))))
(while (not sel)
(setq sel (car (entsel "\n Choix du cadre (Bloc) :")))
(if sel
(if (not (equal (vla-get-ObjectName (setq b (vlax-ename->vla-object sel))) "AcDbBlockReference"))
(setq sel nil)))
)
(setq sel (ssget '((0 . "INSERT")))
AcDoc (vla-get-activedocument (vlax-get-acad-object))
nom-p (getstring t "\n Nom des Onglets à Créer :")
layS (layoutlist))

(if (> (length layS) 1)
(progn
(princ "\n Copie configuration traceur d'onglet Existant. \n Plusieurs Présentations détectées.")
(while (not ong-base)
(princ "\n")
(repeat (setq i (length layS))
(princ (strcat (nth (- (length layS) i) layS) " * "))
(setq i (1- i)))
(setq ong-base (getstring t "\n Présentation d'où la configuration du traceur sera récupérée :"))
(if (not (member ong-base layS))
(setq ong-base nil))))
(setq ong-base (car layS)))

(setq a-p (vla-item (vla-get-layouts AcDoc) ong-base))
(vla-getcustomscale a-p 'n 'm)

(vla-put-ActiveLayout AcDoc a-p)
(vlax-for e (vla-get-paperspace AcDoc)
(if (equal (vla-get-ObjectName e) "AcDbViewport")
(setq lay (vla-get-Layer e)
lock (vla-get-DisplayLocked e))))

(setq i 0)
(repeat (sslength sel)
(if (vlax-property-available-p (vlax-ename->vla-object (ssname sel i)) 'effectivename)
(setq nom vla-get-effectivename)
(setq nom vla-get-name))

(if (equal (nom (setq c (vlax-ename->vla-object (ssname sel i))))
(nom b))
(progn
(vla-GetBoundingBox c 'xmin 'ymax)
(setq n-p (vla-add (vla-get-Layouts AcDoc) (setq ong_dest (strcat nom-p " - " (rtos (1+ i) 2 0)))))

(setq ech (vla-get-YScaleFactor c))
(vla-copyfrom n-p a-p)
(vla-put-ActiveLayout AcDoc n-p)
(setq fen
(vla-AddPViewport (vla-get-paperspace AcDoc) (vlax-3d-point '(0 0 0))
(setq Larg (* Unit (/ (- (car (vlax-safearray->list ymax)) (car (vlax-safearray->list xmin))) ech)))
(setq Haut (* Unit (/ (- (cadr (vlax-safearray->list ymax)) (cadr (vlax-safearray->list xmin))) ech)))))
(vla-put-Layer fen lay)
(vla-put-DisplayLocked fen lock)
(vla-ZoomExtents (vlax-get-acad-object))
(vla-Display fen :vlax-true)
(vla-put-MSpace AcDoc :vlax-true)
(vla-put-ActivePViewport AcDoc fen)
(vla-ZoomWindow (vlax-get-acad-object) xmin ymax)
(vla-put-MSpace AcDoc :vlax-false)
(if (> (- (car (vlax-safearray->list ymax)) (car (vlax-safearray->list xmin)))
(- (cadr (vlax-safearray->list ymax)) (cadr (vlax-safearray->list xmin))))
(vla-put-PlotRotation (vla-get-activelayout AcDoc) ac90degrees)
(vla-put-PlotRotation (vla-get-activelayout AcDoc) ac0degrees))
(setq p1 (vlax-make-safearray vlax-vbdouble (cons 0 1))
p2 (vlax-make-safearray vlax-vbdouble (cons 0 1)))
(vlax-make-variant
(vlax-safearray-fill p1 (list (- (/ Larg 2)) (- (/ Haut 2)))))
(vlax-make-variant
(vlax-safearray-fill p2 (list (/ Larg 2) (/ Haut 2))))
(vla-put-PlotType (vla-get-activelayout AcDoc) acWindow)
(vla-setwindowtoplot (vla-get-activelayout AcDoc) p1 p2)
(setq i (1+ i))
) ) )
(setvar "TILEMODE" 1)
(princ))

 

[Edité le 6/10/2008 par Bred]

Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...

Lien vers le commentaire
Partager sur d’autres sites

  • Réponses 81
  • Créé
  • Dernière réponse

Meilleurs contributeurs dans ce sujet

Meilleurs contributeurs dans ce sujet

Images postées

Salut,

merci, c'est encourageant, mais je ne pense pas en avoir assez dans ma besace...

Ils sont trop spécifiques à des demandes "propres".

Un jour peut-être...

Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

Super boulot

 

C'est ce que je pensé, tous des grands malades d'autocad, ils ne sont jamais rassasiés les bougres.

Plus ils en ont, plus ils en veulent (moi le premier).

Mais vous ne prennez jamais de repos ?

Je pari même que quelques un en révent.

 

@+

MDSV31

Dessinateur Indépendant

Lien vers le commentaire
Partager sur d’autres sites

Salut

 

merci Bred pour ton investissement (surtout que ce post à dû être éprouvant !!!)

 

petite anecdote au passage, je t'ai em.......dé avec ma version 2005, et j'ai appris aujourd'hui que je passe sur 2008 dans la semaine !!!! comme dirait Denisot : désolé

 

Merci encore

 

Rémy

 

edit : pas 2008, mais 2009, de mieux en mieux !!!

 

[Edité le 8/7/08 par grand_sapin]

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

:casstet: ..... :mad: ...... :cool: .....je n'y arrive pas...!!!!

Pour bien faire je suis même parti du fichier test de BRED et résultat des courses..........rien.. :cool:

- Le lisp est chargé, tout ça c'est OK.

- Je suis dans l'EO et j'ai gardé uniquement sa première présentation dans l'EP.

- Ensuite.................quelles sont les différentes étapes ??

 

SVP, merci

Lien vers le commentaire
Partager sur d’autres sites

Re,

 

Si tu suis les étapes décrites par bred sur son premier message, tu ne devrais pas avoir de pb, Est-ce que le lisp se lance quant tu tapes "CEP" ?

 

- Les cadres de pages doivent être des blocs.

(Si vous avez des cadres en simple rectangle, transformez en un en bloc et faites un réseau ou un copier)

- Afin d'éviter toutes erreur, une présentation déjà paramétré doit exister (Une fenêtre de présentation cadré et mis à l'échelle, Traceur, échelle de tracé pour un cadre).

- Les cadres en Espace Objets peuvent être à n'importe quel échelle, et peuvent être mélangé Portrait et Paysage.

- L'unité d'insertion doit être en millimètre, centimètre ou mètre.

- Le nom des onglet sera incrémenter de +1.

Civil 3D 2024 - COVADIS_18.2

https://www.linkedin...3%ABt-95313341/

Lien vers le commentaire
Partager sur d’autres sites

A la commande "Choix du cadre (Bloc)"

.......je sélectionne un bloc, sans valider

A la commande 'Choix des objets"

.......je sélectionne par exemple 2 autres blocs ==> puis OK

A la commande "Nom des onglets à créer"

.......Je tape Toto (pourquoi pas ..!!)

Résultat, je n'ai qu'une Présentation de créée et qui s'appelle " toto-1 "

 

Je reprécise que je suis parti du fichier test de BRED où il y a un "cadre de base", 6 autres cadres nommés A à F et de différentes tailles et j'ai gardé sa première présentation de l'EP intitulée "u"

 

[Edité le 8/7/2008 par oran]

Lien vers le commentaire
Partager sur d’autres sites

...bon, je commence à douter de mes compétences...... :)

Mais Grand Sapin a soulevé un pb un peu plus haut (au sujet d'Autocad 2005) est-ce que le pb est résolu ???

 

 

....JE VAIS ESSAYER DE SUITE TON GABARIT

 

[Edité le 8/7/2008 par oran]

Lien vers le commentaire
Partager sur d’autres sites

:P ..même punition...tjs rien ... :cool:

 

..............j'ai essayé différentes façons de procéder avant de faire appel, j'ai fait de nouvelles tentatives avec tes explications (qui concordaient avec mes premiers essais.. :), donc je ne suis pas i nul que je l'imagine ;) ) et je n'ai tjs aucun résultat..!!! Je pense en rester là pour aujourd'hui afin de ne pas te faire perdre plus de temps ;)

Merci à toi

 

[Edité le 8/7/2008 par oran]

Lien vers le commentaire
Partager sur d’autres sites

Salut oran,

Je reprécise que je suis parti du fichier test de BRED où il y a un "cadre de base", 6 autres cadres nommés A à F et de différentes tailles et j'ai gardé sa première présentation de l'EP intitulée "u"

As-tu bien paramétrer un traceur à toi ?

De mémoire, j'ai mis "cutpdf", mais si tu ne l'as pas, ça ne peux fonctionner.

Donc, dans la présentation existante, met un traceur de chez toi, et fait "appliquer" pour l'enregistrer dans cette présentation.

 

Si le problème persiste, peux-tu me retourner ce que t'indique ta ligne de commande à la fin du prog stp ?

Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...

Lien vers le commentaire
Partager sur d’autres sites

Salut Bred,

Pour ce qui est de l'imprimante, c'était fait aussi.

Voici ma fin de ligne de commande:

 

... Présentation d'où la configuration du traceur sera récupérée :1-20

Restauration des fenêtres enregistrées en mémoire cache - Régénération de la

présentation.

 

Pas de commande possible...

Lien vers le commentaire
Partager sur d’autres sites

C'est bizarre ça...

Normalement avec mon fichier test tu ne devrais pas à avoir à rentrer un nom de présentation...

 

Quel est ta version d'Acad ?

 

quel est ta valeur de la variable "INSUNITS" ?

Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...

Lien vers le commentaire
Partager sur d’autres sites

C'est dommage que tu utilise un fichier "RAR" car il m'est impossible pour moi de le lire.

Je suis Ubuntu LTS 8.04.

Dessinateur AutoCAD, Modeleur BIM, consultant informatique logiciels métier

Lenovo ThinkStation P330 i9 9900K 32Gb RAM 512 SSD + 1To

AutoCAD, Revit, GstarCAD, Fisa-CAD, Microsoft Office

PlaquetteCommerciale.pdf

Lien vers le commentaire
Partager sur d’autres sites

Re,

 

Désolé, mais elle fait 50 Méga ! (et 2.3 avec Winrar !!)

 

Si tu veux, tu peux le télécharger ici,.

 

Je crains que Winrar ne fonctionne pas sous Unbutu (LINUX), peut-être 7zip (P7zip) qui décompresse aussi les fichiers rar ?

 

[Edité le 8/7/2008 par (gile)]

Gilles Chanteau - gileCAD -
Développements sur mesure pour AutoCAD
ADSK_Expert_Elite_Icon_S_Color_Blk_125.png

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Autocad version 2005

INSUNITS à (4).

 

Merci pour ta vidéo Lili mais elle est exactement le reflet de mes manipulations, c'est insensé ça..!!!

Dans mon cas, à la dernière commande ".... Présentation d'où la configuration du traceur sera récupérée..." et bien là, il m'ouvre la présentation dont je fais référence :P ...et c'est tout.

 

.............idem INSUNITS à (1)[Edité le 9/7/2008 par oran]

 

.............essai non concluant avec un collègue sur son poste (version 2005 également)

 

[Edité le 9/7/2008 par oran]

Lien vers le commentaire
Partager sur d’autres sites

Bonjou,

 

Qu'en pense grand sapin ?

 

Et bien il est vrai que je n'avais pas réessayé depuis la nouvelle version, mais maintenant que j'ai retenté, c'est vrai que ça ne fonctionne pas, il ne me crée qu'une présentation en plus (par ex : PT - 1) et quand je clique dessus, il m'ouvre le gestionnaire de mise en page.

 

Mais bon, j'ai gardé l'ancien qui marchait très bien (enfin j'espère que je l'ai pas écrasé ...)

 

a+

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é