Aller au contenu

Impression fichier autocad en une seule fois


ASLO

Messages recommandés

Désolé je me suis mal fait comprendre.

 

Je voudrais imprimer plusieurs fichiers différent. Par exemple sur un schéma électrique, chaque folio est un fichier et non pas une présentation.

 

Donc je souhaiterai lancer l'impression de tout les folios en une seule fois.

 

Au lieu d'ouvrir à chaque fois le fichier et de lancer l'impression.

 

Merci

Lien vers le commentaire
Partager sur d’autres sites

Re,

 

Bienvenue ASLO,

 

Alors, il faut le faire en script et utiliser éventuellement Super Auto Script de Eric,

 

Exemple de script, à adapter, bien sûr,... =>

 

-CALQUE N
Fenêtre CH
Fenêtre T A
Fenêtre

PRESENTATION E
Présentation1
PRESENTATION R Présentation1
(GETVAR "DWGNAME")
-FENETRES
Z
ESPACEO
ZOOM ET
ESPACEP
-CALQUE CH 0

SAUVERAP
QUITTER
=================
-CALQUE N
Fenêtre CH
Fenêtre T A
Fenêtre

PRESENTATION E
Présentation1
PRESENTATION R Présentation1
(GETVAR "DWGNAME")
-FENETRES
Z
ESPACEO
ZOOM ET
ESPACEP
-CALQUE CH 0

-TRACEUR
O
Présentation1
PDFCreator
A4
M
A
N
E
P
C
O
Monochrome.stb
O
N
O
N
N
O
O

SAUVERAP
QUITTER
==============

 

Il y a des spécialistes du script sur ce forum qui vont surement réagir,.... ;)

Civil 3D 2024 - COVADIS_18.2

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

Lien vers le commentaire
Partager sur d’autres sites

Salut,

chaque folio est un fichier et non pas une présentation.

Que veux-tu dire par là ?

 

Si tu veux imprimer plusieurs fichiers .dwg, et que chaque plan est en Espace Objet, avec les paramètre de configurations d'impression réglé, tu peux en effet passer par un script.

 

Mais ta phrase ci-dessus me laisse dubitatif...

 

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

Bonjour,

 

ASLO si tes fichiers sont ouverts dans la même session d'autocad tu peux effectivement faire des impressions sur l'ensemble de tes fichiers ouverts grace a la commade _publish.

 

Autrement il te reste la solution que lili2006 vient de te decrire

 

@plus

 

LB

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

Je comprends bien le problème de ASLO, avez vous déja essayé de faire une mise en page de la présentation dans l'espace objet avec un zoom étendu. Personnellement je n'y suis pas arrivé.

Sans parler des résultats aléatoires de la commande publier sur la version 2009... Bref j'ai abandonné cette idée quand je me suis retrouvé avec un dossier de 106 fichiers pour lesquels j'avais un schéma par espace objet.

Je suis donc revenu sur laz bonne vieille méthode de Patrick35 que je remets ici :

 

;;;=================================================================
;;;
;;; SCR.LSP V2.00
;;;
;;; Créer un script pour traiter les fichiers d'un répertoire
;;;
;;; Copyright (C) Patrick_35
;;;
;;;=================================================================

(defun c:scr(/ fic fscr lst n)
 (if (setq fic (getfiled "Impression de plusieurs Fichiers - Sélectionnez un fichier cible" (getvar "dwgprefix") "dwg" 16))
   (progn
     (setq lst (acad_strlsort (vl-directory-files (vl-filename-directory fic) "*.dwg" 1))
           fscr (open (strcat (vl-filename-directory fic) "\\SCRIPT.SCR") "w") n 0)
     (while (nth n lst)
       (write-line (strcat "_.open " (chr 34) (vl-filename-directory fic) "\\" (nth n lst) (chr 34)) fscr)
       (write-line "(acad-push-dbmod)" fscr)

;=======================================================================================
; Début de Partie personnalisable
;=======================================================================================
       
       (write-line "(command \"_.plot\" \"o\" \"Choix Presentation\" \"Adresse du traceur\" \"A3\" \"m\" \"p\" \"n\" \"e\" \"p\" \"c\" \"o\" \"Style de tracé\" \"o\" \"\" \"n\" \"n\" \"o\")" fscr)

;=======================================================================================
; Fin de Partie personnalisable
;=======================================================================================

       (write-line "(acad-pop-dbmod)" fscr)
       (write-line "(if (zerop (getvar \"sdi\"))" fscr)
       (write-line "  (command \"_.close\")" fscr)
       (write-line ")" fscr)
       (setq n (1+ n))
     )
     (close fscr)
     (princ (strcat "\n\tFichier " (vl-filename-directory fic) "\\SCRIPT.SCR créé"))
   )
 )
 (princ)
)

(princ "\nSCR.LSP chargé. Tapez SCR pour l'exécuter")
(princ) 

 

Sur ce, bon print.

Lien vers le commentaire
Partager sur d’autres sites

Re,

 

x_all

 

fait des présentation dans tous tes fichiers

 

En fonction du nombre de fichiers bon courage !

J'en avais 106, je n'ai pas hésité longtemps sur le choix de la méthode.

 

puis regarde du coté des "jeux de feuilles"

 

Ce qui te ramènera à la commande publier.

 

Bred

 

Qu'est ce que vous appellez "folio"

 

Il s'agit d'une page d'un carnet.

Lien vers le commentaire
Partager sur d’autres sites

Il s'agit d'une page d'un carnet.

Merci pour ta réponse.

 

Et donc je ne comprends toujours pas le problème....

Un script peut faire l'affaire.

Un lisp aussi,

 

Mais il faut que le traceur soit paramétré par fichier !

C'est le cas ?

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

si il y a un fichier par folio, ça m'entonnerai qu'il y en ai une centaine...

 

si les folios sont regroupés dans un seul fichier, il y a plusieurs méthodes ...

j'ai noté celui là car c celui que j'utilise,

mais j'ai souvenir d'une autre discutions ou pas mal de solution ont été développée pour créer des présentations à partir d'un cadre objet... (j'arrive pas a remettre la main dessus)

Lien vers le commentaire
Partager sur d’autres sites

Salut x_all

 

mais j'ai souvenir d'une autre discutions ou pas mal de solution ont été développée pour créer des présentations à partir d'un cadre objet... (j'arrive pas a remettre la main dessus)

.

 

Moi je pense qu c'est ça; à toi de voir.

 

 

 ;;;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é 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.

;;;- Commande : CEP

; Crée un onglet EP par cadre (bloc) de page sélectionné en EO
; par Bred - Un onglet déjà paramétrer doit exister
(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-XEffectiveScaleFactor 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)
)

 

 

@+

Lien vers le commentaire
Partager sur d’autres sites

Re,

Je pense que lili2006 et toi, vinz34, vous répondez à ça demande.

Mais il reste la question en suspend du paramétrage du traçeur....

Si tous les fichiers sont paramétrés correctements, le lisp de Patrick_35 ou simplement un script sera parfait...

 

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

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é