Jump to content

[Résolu] Ajouter une liste de formats d'imprimantes


Recommended Posts

Bonjour à Vous tous !

 

Voila avant de faire quelque chose de "Bricoler en sendkey"

 

Je voulais savoir si vous aviez un outil afin d'ajouter un format de papier dans un ".pc3"

L'objectif ? Générer des tailles papiers tous les Xmm (par exemple 10)

Du coup j'aurais un format de départ 630 x 297 puis 640 x 297 etc... jusqu'à 3200x297 par exemple

L'idée est que je puisse avoir une bibliothèque de format pour les réutilisés par la suite ou que je puisse générer le format voulu !

 

Merci de vos réponses !

Link to post
Share on other sites

Bon ben c'est parti pour du Sendkey XD

 

le code étant "pas propre" pour pas dire "dégueulasse" et en test (car je suis sur qu'il va buguer)

 

Les Constantes : Marge 4 partout autour Haut/Bas/Gauche/droite

 

Il va "Normalement" partir d'un format 420x297 pour créer des formats papiers par pas de 10 en X :

Ex : 420x297 - 430 x297 - 440x297 etc... jusqu'à 3200x297 ensuite

 

Pareil mais avec une hauteur de 594 puis 891

Ex : 420x594 - 430x594 - 440x594 etc... jusqu'à 3200x594 ensuite

Puis : 420x891 - 430x891 ... jusqu'à 3200x891

 

Enfin le bonus suivre cette tram:

 

420x300 430x300 ... 3200x300

420x310 430x310 ... 3200x310

............................

420x3200 430x3200 ... 3200x3200

 

on est d'accord il y aura des doublons des format ne servant à rien

mais au moins j'aurais tout en pas de 10

 

Voila le script est écrit !

Maintennant plus qu'a injecter un txt de 25757 ko dans le PC3 je vous tient au courant s'il le digère ou non !

Link to post
Share on other sites
  • 2 months later...

Salut Curlygoth,

pour comprendre, en gros, tu génère un fichier pmp par sendkey, parce que ça ne peux se faire que par l'interface Autocad, c'est ça ?

Je me rappelle avoir eu ce problème pour automatiser un tracé raster avec le minimum de marge.

J'avais du créer une liste de formats (en pixel) à créer manuellement ! horrible !

Mais ensuite, j'avais trouvé un combine, dont je ne me rappele plus bien,

pour créer mes format utiles au niveau du serveur d'impression windows XP, et ensuite de pouvoir les utiliser facilement avec n'importe quelle imprimante

(surtout les nombreux convertisseur pdf que j'utilisais alors ... en 2006 ...)

 

ci dessous un utilitaire pour créer les formats existants sous forme de rectangles:

 

;;**************************************************************************
;§/traces/trace les formats de papier disponibles de l' onglet courant/none
;;le nom des formats soit contenir leur taille en pixels largeur x hauteur
;
(defun c:trace_format_actuels ( / lform ph l  )
 (if (not ti-dpi)
  (setq ti-dpi 300)
 )

 (setq lform (pw_GetCanonicalMediaNames))
 (setq lform (mapcar 'pw_sep_ch_nomb lform))
 ;;ci dessous pour ne laisser que les nombres
 (setq lform (mapcar '(lambda (x)
		 (vl-remove-if-not 'numberp 
		  (mapcar 'pw_to_type x)
		 )
		 )
	      lform
	      )
)
 (foreach l lform
   ;;pour mettre en mm un format à ti-dpi dpi
   (if (<= 2 (length l))
     (progn
      (setq ph (list (* (/ 25.4  ti-dpi) (car l))(* (/ 25.4  ti-dpi) (cadr l))))
      (command "_rectang" '(0 0) ph)
     )
   )
 )
)
;;**************************************************************************
;§/traces/retourne la liste des formats de papier disponibles de l' onglet courant/none
;
(defun pw_GetCanonicalMediaNames ( / acadObject acadDocument caname  Ac-layout )
 (vl-Load-Com)
 (setq acadObject (vlax-get-acad-object)) ;;accède au début de objets?
 (setq acadDocument (vla-get-ActiveDocument acadObject)) ;;accède au document actif
 (setq Ac-layout (vlax-Get-property acadDocument 'ActiveLayout))
 ;;rafraichir les infos
 (vlax-invoke-method Ac-layout 'RefreshPlotDeviceInfo)
 (setq caname  (vlax-invoke-method Ac-layout 'GetCanonicalMediaNames));
 (setq caname (vlax-variant-value caname))
 (vlax-safearray->list caname)
)


;;**************************************************************************
;§/traces/trace le format de papier peronalisé/form pb
;;le nom des formats soit contenir leur taille en pixels largeur x hauteur
;; style "UserDefinedRaster (2166.00 x 1660.00Pixels)"
;;pb est le point bas du rectangle

(defun trace_format (form pb / ph)
 (setq form (pw_sep_ch_nomb form))
 ;;ci dessous pour ne laisser que les nombres
 (setq form (vl-remove-if-not 'numberp (mapcar 'pw_to_type form)))

 ;;pour mettre en mm un format à 300 dpi
 (if (<= 2 (length form))
   (progn
     (setq xh  (* (/ 25.4 ti-dpi) (car form))
    yh  (* (/ 25.4 ti-dpi) (cadr form))
       
     )
     (command "_rectang" pb (pw_prp pb xh yh))
   )
 )
)

----------------------------------------------------------------------

Site: https://www.g-eaux.fr

Blog: http://g-eaux.over-blog.com

Link to post
Share on other sites
  • 2 weeks later...

Ben moi le but c'était justement de ne pas les créé manuellement. Aujourd'hui je ne gère plus les fenêtres et présentation Quel gain de temps ! Merci pour ton code mais j'ai fait en VBA xD

 

pour les marges c'est facile je checks les coordonnées de chaque points de chaque objet dans la fenetre pour avoir un point min et un point max !

 

j'ai ces point j'ajoute la marge et j'arrondi !!!! et voila je me retrouve avec des présenttaions automatisé !

 

le truc c'est que j'ai du programme un pmp pour chaque hauteur de 420 a 3200 mm par pas de 10 et hauteur 297 - 594 - 891 et des hauteur de 300 à 900 tout les pas de 50mm

 

comme ça j'ai une grosse bibliotheque

 

Attention car j'ai essayer de creer un fichier pour TOUT et la le chargement est trop long donc j'ai coupé avec la hauteur

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...