Aller au contenu

Messages recommandés

Posté(e)

Bonjour à tous !

 

Voici un code que vous m'avez très gentiment concocté il y a quelque temps déjà.

 

Celui ci me permet de sélectionner les cadres que je souhaite imprimer et l'impression ce fait toute seule page par page et dans l'ordre !

 

Je souhaite maintenant l'utiliser avec CutePDF Writer (ou un autre !) .

Seulement a chaque page il me demande de lui donner le nom du fichier à enregistrer...

 

Est-il possible qu'il rentre automatiquement le numéros de page (celui-ci lui aillant déjà servi pour faire le tri ! ).

 

Voici le code :

(defun c:impt (/ ACDOC B BACKGROUNDPLOT C I P1 P2 SEL XMIN YMAX PLT lst-att

	    LST LST-F LST-NB Y)

 (vl-load-com)



 (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))

BACKGROUNDPLOT (getvar "BACKGROUNDPLOT"))



 (setvar "BACKGROUNDPLOT" 0)



 ; Récupère Attrib "FOLIO"

 (repeat (setq i (sslength sel))

   (if (equal (vla-get-effectivename (setq c (vlax-ename->vla-object (ssname sel (setq i (1- i))))))

       (vla-get-effectivename b))



     (if (setq lst-att (vlax-safearray->list (vlax-variant-value (vla-GetAttributes c))))

(repeat (setq y (length lst-att))

  (if (equal (strcase (vla-get-TagString (nth (setq y (1- y)) lst-att))) "FOLIO")

    (setq lst-F (append (list (cons (atoi (vla-get-TextString (nth y lst-att))) c))  lst-F)

	  lst-nb (append (list (atoi (vla-get-TextString (nth y lst-att)))) lst-nb))

    )	  )	)      )

   )



 ; Tri

 (setq lst-nb (vl-sort lst-nb  '< ) 

i 0)

 (repeat (length lst-nb)

   (setq lst (append lst (list (cdr (assoc (nth i lst-nb) lst-F))))

  i (1+ i))

   )



 ; trite liste bloc

 (setq i 0)

 (repeat (length lst)

   (setq c (nth i lst)

  i (1+ i))



   (vla-GetBoundingBox c 'xmin 'ymax)

   (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 (car (vlax-safearray->list xmin)) (cadr (vlax-safearray->list xmin)))))

   (vlax-make-variant

     (vlax-safearray-fill p2 (list (car (vlax-safearray->list ymax)) (cadr (vlax-safearray->list ymax)))))



   (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 plt (vla-get-plot AcDoc))

   (vla-put-PlotType (vla-get-activelayout AcDoc) acWindow)

   (vla-setwindowtoplot (vla-get-activelayout AcDoc) p1 p2)

   (vla-plottodevice plt (vla-get-configname (vla-get-activelayout AcDoc)))

   )

 (setvar "BACKGROUNDPLOT" BACKGROUNDPLOT)

 (princ)

)

 

 

MERCI pour votre aide !

 

@ bientôt et bon weekend

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é