Aller au contenu

imprimer multiple presentations


PHILPHIL

Messages recommandés

bonjour

 

j'ai des fichiers avec pas mal de présentations de différentes tailles

 

certaines sont a imprimer dans un *.pdf a feuille unique : les A0 ou A1

certaines sont a regrouper / imprimer dans un *.pdf a plusieurs feuilles : les A3 A4

 

pour les *.pdf a feuille unique pas de souci avec PUBLIER

 

pour les carnet *.pdf a plusieurs feuille je suis obligé de refaire plusieurs fois de suite PUBLIER

 

avez vous une astuces , un programme, un LISp, un fichier excel

 

permetant de de choisir les présentations, et de définir si celle ci s'imprime dans un *.pdf a feuille unique ou regrouper des présentations pour les imprimer dans un ou des *.pdf a feuille multiple

 

presentation01 => presentation01.pdf

 

presentation02 + presentation03 => carnet01.pdf

presentation04 + presentation05 => carnet02.pdf

 

presentation06 => presentation06.pdf

 

en choisissant le nom de sortie pdf bien sur

 

en choisissant / dispatchant / imprimant les 186+ présentations d'un coup

 

apres y'en a pour une heure d'impression pour autocad sur

 

a+, Merci, Phil

Autodesk Architecture 2023 sous windows 11 64

24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal

Lien vers le commentaire
Partager sur d’autres sites

hello

 

merci

 

je vais regarder ca de plus pres,

mais je sens un inconvenient, c'est que chaque jour j'incremente mon fichier *.dwg

 

et que je crois savoir que un jeu de feuille est lier a un *.dwg, donc quid de la mise a jour

a moins d'ouvrir le fichier jeu de feuille avec un editeur de texte et changer rapidement le nom du *.dwg

 

a+, Phil

Autodesk Architecture 2023 sous windows 11 64

24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

L'avantage du jeu de feuille, c'est que tu peux travailler sur plusieurs DWG (n présentations de x dwg). l'autre avantage, c'est que tu disposes de données (champs) propres au jeu de feuille que tu peux inscrire sur tes présentations : par exemple un projet consiste dans 10 présentations sur 3 DWG différents, tu changes d'indice dans les propriétés de ton jeu de feuille, ça permet de mettre à jour tes 10 présentations (donc les 3 dwg) en une seul fois.

 

L'inconvénient, c'est que ce n'est pas dynamique. Si tu rajoutes une présentation, il faudra la rajouter dans ton jeu de feuille. Le 2ème inconvénient c'est que le jeu de feuille est un fichier binaire et non ASCII contrairement au fichier DSD de publication.

 

Pour le nommage des fichiers en principe mon fichier de travail possède toujours le même nom, et j'indice la sauvegarde avant de travailler une nouvelle version. Par ex mon fichier s'appelle PROJET.DWG, lorsque je travaille sur une nouvelle version, je copie la version actuelle en PROJET_V1 et je continue mon travaille dans PROJET, lorsque je change a nouveau de version, je copie PROJET en PROJET_V2 et je continue à travailler dans PROJET.

 

Olivier

Lien vers le commentaire
Partager sur d’autres sites

HELLO

 

ca n'a rien de pratique ce gestionnaire, c'est lent en plus

 

quand on fait des sous jeu,( qui corresponde a des carnets ) on peut déterminé s'il s'imprime dans un *.pdf multi-feuille ou pas indépendamment d'un autre sous jeu ?

avoir un sous jeu s'imprimant dans un *.pdf multi-feuille

et un autre sous jeu qui s'imprime dans plusieurs *.pdf

 

 

 

et le nom de sortie du *.pdf on le determine comment une bonne fois pour toute ?

c'est meme pas la concatenation du nom du jeu de feuille avec le nom du sous jeu

 

j'ai voulu essayer "JTB WORLD, sheetset publish" mais ca a planter et depuis le delai de 30 jours est passé

 

qui l'a testé ?

 

 

a+

 

phil

Autodesk Architecture 2023 sous windows 11 64

24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal

Lien vers le commentaire
Partager sur d’autres sites

hello

faux suisse vait testé sheetset publisher et il semblait en être très satisfait me semble-t-il

++

Phil

PS : le truc chiant sur ta problématique c'est ton impératif de devoir changer les noms de fichiers régulièrement... perso le nom de ficheir change jamais, seul le nom de l'onglet qui comprend l''indice de la dernière diffusion change

Projeteur Revit Indépendant - traitement des eaux/CVC

Lien vers le commentaire
Partager sur d’autres sites

hello

 

L'incrémentation journalière, ou presque,de mes nom de fichiers a un coté pratique

 

mes clients ont des portables, ils mettent du temps a ouvrir les fichiers

dans l'explorateur de fichier ils voient tout de suite de quel fichier on parle sans a voir a l'ouvrir, pour aller regarder l indice dans un onglet

 

et je peux leurs envoyer deux versions dans la meme journée

 

quand ils ouvrent un *.pdf la référence du nom de fichier *.dwg est dans le cartouche

on si retrouve plus vite, ca me permet aussi de suivre s'il sont a jour, et sur quel fichier ils travaillent

 

mes nom de présentations se termine par un chiffre et une lettre, et sont récupés a l'aide d'un champ dans le cartouche style "PL001-"

001 = N° de la planche

"-" "A" = indice de la planche

 

et avec mes lisps, je change les noms de présentations en 2sec

j'incrémente, je change la derniere lettre,

 

 

a+

 

Phil

Autodesk Architecture 2023 sous windows 11 64

24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal

Lien vers le commentaire
Partager sur d’autres sites

  • 2 ans après...
Le 05/07/2019 à 11:16, PHILPHIL a dit :

hello

 

L'incrémentation journalière, ou presque,de mes nom de fichiers a un coté pratique

 

mes clients ont des portables, ils mettent du temps a ouvrir les fichiers

dans l'explorateur de fichier ils voient tout de suite de quel fichier on parle sans a voir a l'ouvrir, pour aller regarder l indice dans un onglet

 

et je peux leurs envoyer deux versions dans la meme journée

 

quand ils ouvrent un *.pdf la référence du nom de fichier *.dwg est dans le cartouche

on si retrouve plus vite, ca me permet aussi de suivre s'il sont a jour, et sur quel fichier ils travaillent

 

mes nom de présentations se termine par un chiffre et une lettre, et sont récupés a l'aide d'un champ dans le cartouche style "PL001-"

001 = N° de la planche

"-" "A" = indice de la planche

 

et avec mes lisps, je change les noms de présentations en 2sec

j'incrémente, je change la derniere lettre,

 

 

a+

 

Phil

Bonjour Phil

 

Je suis tombé par hasard sur ton post et ta méthode m’intéresse fortement.

Pourrais-tu m’expliquer ta méthode pour renommer tes présentation suivant les champs de ton cartouche

 

Merci

Lien vers le commentaire
Partager sur d’autres sites

hello netparty

nom type de mes présentations

A1H RDC 1-50 PL001-

type de feuille : "A1"

VERTICALE ou HORIZONTALE  : "V" ou "H"

nom variable de présentation : "RDC", "COUPE", "plan du niveau 3 bat z" .....

echelle variable de la planche, la feuille : "1-50", "1-100" ....

planche : "PL"

numero de la planche sur 3 chiffres ( récupérée dans cartouche)  : "001"

indice de planche : "-"

 

ceci récupere  le dernier caractere du nom de ma présentation.

c'est un champ, dans un texte, il me sert pour donner l'indice de mon plan

a mettre dans un cartouche

$(substr,$(getvar, ctab),$(-,$(strlen,$(getvar,ctab)),0),1)

 

ceci récupere les 3 chiffres composant le numero de la planche du nom de ma présentation

a mettre dans un cartouche

$(substr,$(getvar, ctab),$(-,$(strlen,$(getvar,ctab)),3),3)

 

et apres des lisp pour changer facilement les noms de présentations.

j'en ai peut etre oublié certains bout, dites moi si ca plante, je les rajouterai.

pour les fonctions "10" "11" "12" et "13" , il faut que TOUS LES NOMS de présentations du fichier *.dwg soit du meme type et correspondent a la recherche du lisp, sinon ca plante.

10 A1H RDC 1-50 PL001-, A1H R 1 1-50 PL002-, A1H R 2 1-50 PL003-

11, 12, 13 : A1H R 1 1-50 PL001-, A1H R 1 1-50 PL002-, A1H R 1 1-50 PL003-, A1H R 2 1-50 PL011A, A1H R 2 1-50 PL012A, A1H R 2 1-50 PL013A

;;;-----------------------------------
;;;CHANGE_NOM_PRESENTATION
;;;-----------------------------------


(defun c:change_nom_presentation ()
  (setq typeactioncnp (getcfg "APPDATA/typeactioncnp"))
  (prompt
    "\n  1 : REMPLACER LE DERNIER CARACTERE DU NOM DES PRESENTATIONS"
  )
  (prompt
    "\n  2 : REMPLACER LE PREMIER CARACTERE DU NOM DES PRESENTATIONS"
  )
  (prompt
    "\n  3 : REMPLACER A PARTIR DE Y CARACTERES DEPUIS LE DEBUT SUR LE(S) X CARACTERE(S) [SI X=0 CORRESPOND A INSERER]"
  )
  (prompt
    "\n  4 : SOUSTRAIRE LES X DERNIERS CARACTERES DU NOM"
  )
  (prompt
    "\n  5 : SOUSTRAIRE LES X PREMIERS CARACTERES DU NOM"
  )
  (prompt
    "\n  6 : INCREMENTER SUR 3 CARACTERES EN RAJOUTANT DEVANT LE NOM DE PRESENTATION"
  )
  (prompt
    "\n  7 : INCREMENTER SUR 3 CARACTERES EN REMPLACANT LES 4 IEME A 2 IEME A PARTIR DE LA FIN"
  )
  (prompt
    "\n  8 : INCREMENTER SUR 5 CARACTERES EN REMPLACANT LES 6 IEME A 2 IEME A PARTIR DE LA FIN"
  )
  (prompt "\n  9 : REMPLACER DES CARACTERES DANS LE NOM")
  (prompt "\n 10 : TRIER LES NOMS DE PRESENTATIONS SUR LES 4 IEME A 2 IEME CARACTERE A PARTIR DE LA FIN")
  (prompt "\n 11 : TRIER LES NOMS DE PRESENTATIONS SUR 4 à X et LES 4 IEME A 2 CARACTERE A PARTIR DE LA FIN VERSION A")
  (prompt "\n 12 : TRIER LES NOMS DE PRESENTATIONS SUR 4 à X et LES 4 IEME A 2 CARACTERE A PARTIR DE LA FIN VERSION B")
  (prompt "\n 13 : TRIER LES NOMS DE PRESENTATIONS SUR 4 à X et LES 4 IEME A 2 CARACTERE A PARTIR DE LA FIN VERSION C")


  (initget "1 2 3 4 5 6 7 8 9 10 11 12 13")
  (setq	tmp
	 (getkword
	   (strcat
	     "\nSELECTIONNER LE TYPE D'ACTION DESIRE ( 1 2 3 4 5 6 7 ... ) <"
	     typeactioncnp
	     "> : "
	   )
	 )
  )
  (if tmp
    (setq typeactioncnp tmp)
  )
  (setcfg "APPDATA/typeactioncnp" typeactioncnp)
  (if (= typeactioncnp "1")
    (progn (c:cnpfin))
  )
  (if (= typeactioncnp "2")
    (progn (c:cnpdebut))
  )
  (if (= typeactioncnp "3")
    (progn (c:cnpdepuisysurx))
  )
  (if (= typeactioncnp "4")
    (progn (c:cnpsoutrairxcaractdefin))
  )
  (if (= typeactioncnp "5")
    (progn (c:cnpsoutrairxcaractdepuisdebut))
  )

  (if (= typeactioncnp "6")
    (progn (c:cnpincrementer3DEBUT))
  )
  (if (= typeactioncnp "7")
    (progn (c:cnpincrementer4a2fin))
  )
  (if (= typeactioncnp "8")
    (progn (c:cnpincrementer6a2fin))
  )
  (if (= typeactioncnp "9")
    (progn (c:cnpremplacecaract))
  )
  (if (= typeactioncnp "10")
    (progn (c:cnpTRIER4a2fin))
  )
  (if (= typeactioncnp "11")
    (progn (c:cnpTRIER4axet4a2finA))
  )
  (if (= typeactioncnp "12")
    (progn (c:cnpTRIER4axet4a2finB))
  )
    (if (= typeactioncnp "13")
    (progn (c:cnpTRIER4axet4a2finC))
  )

  (princ)
)







(defun c:cnpfin	()
  (setq cnpcdefin (getcfg "APPDATA/CNPCDEFIN"))
  (setq	com1
	 (getstring
	   t
	   (strcat
	     "\nVEUILLEZ ENTRER LE(S) CARACTERE(S) EN REMPLACEMENT DU DERNIER CARACTERE DU NOM <"
	     cnpcdefin
	     "> : "
	   )
	 )
  )
  (if (/= com1 "")
    (setq cnpcdefin com1)
  )
  (setcfg "APPDATA/CNPCDEFIN" cnpcdefin)
  (setq layouts (getlayouts nil t))
  (foreach layout layouts
    (progn (setq nouveaunom
		  (strcat (substr layout 1 (- (strlen layout) 1))
			  cnpcdefin
		  )
	   )
	   (command "_.layout" "_ren" layout nouveaunom)
	   (princ)
    )
  )
  (getlayouts "POUR VERIFICATION DES NOMS DE PRESENTATION" t)
)


(defun c:cnpdebut ()
  (setq cnpcdedebut (getcfg "APPDATA/CNPCDEDEBUT"))
  (setq	com1
	 (getstring
	   t
	   (strcat
	     "\nVEUILLEZ ENTRER LE(S) CARACTERE(S) EN REMPLACEMENT DU PREMIER CARACTERE DU NOM <"
	     cnpcdedebut
	     "> : "
	   )
	 )
  )
  (if (/= com1 "")
    (setq cnpcdedebut com1)
  )
  (setcfg "APPDATA/CNPCDEDEBUT" cnpcdedebut)
  (setq layouts (getlayouts nil t))
  (foreach layout layouts
    (progn (setq nouveaunom (strcat cnpcdedebut (substr layout 2)))
	   (command "_.layout" "_ren" layout nouveaunom)
	   (princ)
    )
  )
  (getlayouts "POUR VERIFICATION DES NOMS DE PRESENTATION" t)
)






(defun c:cnpdepuisysurx	()
  (setq cnpcdepuisysurx (getcfg "APPDATA/CNPCDEPUISYSURX"))
  (prompt
    "\nREMPLACER A PARTIR DE Y CARACTERES DEPUIS LE DEBUT SUR LE(S) X CARACTERE(S) [SI X=0 CORRESPOND A INSERER]"
  )
  (setq	com1
	 (getstring
	   t
	   (strcat
	     "\nVEUILLEZ ENTRER LE(S) CARACTERE(S) EN REMPLACEMENT DES CARACTERES DU NOM <"
	     cnpcdepuisysurx
	     "> : "
	   )
	 )
  )
  (if (/= com1 "")
    (setq cnpcdepuisysurx com1)
  )
  (setcfg "APPDATA/CNPCDEPUISYSURX" cnpcdepuisysurx)

  (setq cnpcdepuisdebut (atoi (getcfg "APPDATA/CNPCDEPUISDEBUT")))
  (initget 4)
  (setq	tmp
	 (getint
	   (strcat
	     "\nENTRER UN NOMBRE POUR DEFINIR LE DEBUT DU REMPLACEMENT DEPUIS LE DEBUT DU NOM [ MINIMUM : 1]<"
	     (rtos cnpcdepuisdebut 2 0)
	     ">: "
	   )
	 )
  )
  (if tmp
    (setq cnpcdepuisdebut tmp)
  )
  (setcfg "APPDATA/CNPCDEPUISDEBUT"
	  (rtos cnpcdepuisdebut 2 0)
  )


  (setq cnpcsurx (atoi (getcfg "APPDATA/CNPCSURX")))
  (initget 4)
  (setq	tmp
	 (getint
	   (strcat
	     "\nENTRER UN NOMBRE POUR DEFINIR LA PLAGE DU REMPLACEMENT DU NOM <"
	     (rtos cnpcsurx 2 0)
	     ">: "
	   )
	 )
  )
  (if tmp
    (setq cnpcsurx tmp)
  )
  (setcfg "APPDATA/CNPCSURX" (rtos cnpcsurx 2 0))


  (setq layouts (getlayouts nil t))
  (foreach layout layouts
    (progn (setq nouveaunom
		  (strcat (substr layout 1 (- cnpcdepuisdebut 1))
			  cnpcdepuisysurx
			  (substr layout (+ cnpcdepuisdebut cnpcsurx))
		  )
	   )
	   (command "_.layout" "_ren" layout nouveaunom)
	   (princ)
    )
  )
  (getlayouts "POUR VERIFICATION DES NOMS DE PRESENTATION" t)
)




(defun c:cnpsoutrairxcaractdefin ()
  (setq	cnpsoustraicaractalafin
	 (atoi
	   (getcfg "APPDATA/CNPSOUSTRAICARACTALAFIN")
	 )
  )
  (initget 4)
  (setq	tmp
	 (getint
	   (strcat
	     "\nENTRER LE NOMBRE DE CARACTERES A SUPPRIMER A LA FIN DU NOM <"
	     (rtos cnpsoustraicaractalafin 2 0)
	     ">: "
	   )
	 )
  )
  (if tmp
    (setq cnpsoustraicaractalafin tmp)
  )
  (setcfg "APPDATA/CNPSOUSTRAICARACTALAFIN"
	  (rtos cnpsoustraicaractalafin 2 0)
  )
  (setq layouts (getlayouts nil t))
  (foreach layout layouts
    (progn (setq nouveaunom
		  (strcat
		    (substr layout
			    1
			    (- (strlen layout) cnpsoustraicaractalafin)
		    )
		  )
	   )
	   (command "_.layout" "_ren" layout nouveaunom)
	   (princ)
    )
  )
  (getlayouts "POUR VERIFICATION DES NOMS DE PRESENTATION" t)
)




(defun c:cnpsoutrairxcaractdepuisdebut ()
  (setq	cnpsoustraicaractdepuisdebut
	 (atoi
	   (getcfg
	     "APPDATA/CNPSOUSTRAICARACTDEPUISDEBUT"
	   )
	 )
  )
  (initget 4)
  (setq	tmp
	 (getint
	   (strcat
	     "\nENTRER LE NOMBRE DE CARACTERES A SUPPRIMER DEPUIS LE DEBUT DU NOM <"
	     (rtos cnpsoustraicaractdepuisdebut 2 0)
	     ">: "
	   )
	 )
  )
  (if tmp
    (setq cnpsoustraicaractdepuisdebut tmp)
  )
  (setcfg "APPDATA/CNPSOUSTRAICARACTDEPUISDEBUT"
	  (rtos cnpsoustraicaractdepuisdebut 2 0)
  )
  (setq layouts (getlayouts nil t))
  (foreach layout layouts
    (progn (setq nouveaunom
		  (strcat
		    (substr layout (+ cnpsoustraicaractdepuisdebut 1))
		  )
	   )
	   (command "_.layout" "_ren" layout nouveaunom)
	   (princ)
    )
  )
  (getlayouts "POUR VERIFICATION DES NOMS DE PRESENTATION" t)
)








(defun c:cnpincrementer3debut ()
  (setq cnpnbdpincrement (atoi (getcfg "APPDATA/CNPNBDPINCREMENT")))
  (initget 4)
  (setq	tmp
	 (getint
	   (strcat "\nENTRER LE NOMBRE DE DEBUT D'INCREMENTATION DU NOM <"
		   (rtos cnpnbdpincrement 2 0)
		   ">: "
	   )
	 )
  )
  (if tmp
    (setq cnpnbdpincrement tmp)
  )
  (setcfg "APPDATA/CNPNBDPINCREMENT"
	  (rtos cnpnbdpincrement 2 0)
  )
  (setq layouts (getlayouts nil t))
  (foreach layout layouts
    (progn (setq nouveaunom (strcat (rtos cnpnbdpincrement 2 0) " " layout))
	   (command "_.layout" "_ren" layout nouveaunom)
	   (setq cnpnbdpincrement (1+ cnpnbdpincrement))
	   (princ)
    )
  )
  (getlayouts "POUR VERIFICATION DES NOMS DE PRESENTATION" t)
)










(defun c:cnpincrementer4a2fin ()
  (setq cnpnbdpincrement (atoi (getcfg "APPDATA/CNPNBDPINCREMENT")))
  (initget 4)
  (setq	tmp
	 (getint
	   (strcat "\nENTRER LE NOMBRE DE DEBUT D'INCREMENTATION DU NOM <"
		   (rtos cnpnbdpincrement 2 0)
		   ">: "
	   )
	 )
  )
  (if tmp
    (setq cnpnbdpincrement tmp)
  )
  (setcfg "APPDATA/CNPNBDPINCREMENT"
	  (rtos cnpnbdpincrement 2 0)
  )
  (setq layouts (getlayouts nil t))
  (foreach layout layouts
    (progn (if (= (strlen (rtos cnpnbdpincrement 2 0)) 1)
	     (setq nombre (strcat "00" (rtos cnpnbdpincrement 2 0)))
	   )
	   (if (= (strlen (rtos cnpnbdpincrement 2 0)) 2)
	     (setq nombre (strcat "0" (rtos cnpnbdpincrement 2 0)))
	   )
	   (if (= (strlen (rtos cnpnbdpincrement 2 0)) 3)
	     (setq nombre (strcat (rtos cnpnbdpincrement 2 0)))
	   )
	   (setq nouveaunom
		  (strcat (substr layout 1 (- (strlen layout) 4))
			  nombre
			  (substr layout (strlen layout))
		  )
	   )
	   (command "_.layout" "_ren" layout nouveaunom)
	   (setq cnpnbdpincrement (1+ cnpnbdpincrement))
	   (princ)
    )
  )
  (getlayouts "POUR VERIFICATION DES NOMS DE PRESENTATION" t)
)



(defun c:cnpincrementer6a2fin ()
  (setq cnpnbdpincrement (atoi (getcfg "APPDATA/CNPNBDPINCREMENT")))
  (initget 4)
  (setq	tmp
	 (getint
	   (strcat "\nENTRER LE NOMBRE DE DEBUT D'INCREMENTATION DU NOM <"
		   (rtos cnpnbdpincrement 2 0)
		   ">: "
	   )
	 )
  )
  (if tmp
    (setq cnpnbdpincrement tmp)
  )
  (setcfg "APPDATA/CNPNBDPINCREMENT"
	  (rtos cnpnbdpincrement 2 0)
  )
  (setq layouts (getlayouts nil t))
  (foreach layout layouts
    (progn (if (= (strlen (rtos cnpnbdpincrement 2 0)) 1)
	     (setq nombre (strcat "0000" (rtos cnpnbdpincrement 2 0)))
	   )
	   (if (= (strlen (rtos cnpnbdpincrement 2 0)) 2)
	     (setq nombre (strcat "000" (rtos cnpnbdpincrement 2 0)))
	   )
	   (if (= (strlen (rtos cnpnbdpincrement 2 0)) 3)
	     (setq nombre (strcat "00" (rtos cnpnbdpincrement 2 0)))
	   )
	   (if (= (strlen (rtos cnpnbdpincrement 2 0)) 4)
	     (setq nombre (strcat "0" (rtos cnpnbdpincrement 2 0)))
	   )
	   (if (= (strlen (rtos cnpnbdpincrement 2 0)) 5)
	     (setq nombre (strcat (rtos cnpnbdpincrement 2 0)))
	   )
	   (setq nouveaunom
		  (strcat (substr layout 1 (- (strlen layout) 6))
			  nombre
			  (substr layout (strlen layout))
		  )
	   )
	   (command "_.layout" "_ren" layout nouveaunom)
	   (setq cnpnbdpincrement (1+ cnpnbdpincrement))
	   (princ)
    )
  )
  (getlayouts "POUR VERIFICATION DES NOMS DE PRESENTATION" t)
)






(defun c:cnptrier4a2fin	(/
			 acdoc
			 leslayouts
			 layouts
;;;                         i layout
			)
  (setq acdoc (vla-get-activedocument (vlax-get-acad-object)))
  (setq leslayouts (vla-get-layouts acdoc))

  (setq	layouts	   (getlayouts nil t)
	layoutsold layouts
  )
  (setq	layouts	(vl-sort layouts
			 '(lambda (a b)
			    (< (atoi (substr a (- (strlen a) 3) 3))
			       (atoi (substr b (- (strlen b) 3) 3))
			    )
			  )
		)
  )
  (setq i (vla-get-taborder (vla-item leslayouts (nth 0 layouts))))
  (foreach name	layouts
    (setq layout (vla-item leslayouts name))
    (vla-put-taborder layout i)
    (setq i (1+ i))
  )
  (getlayouts "POUR VERIFICATION DES NOMS DE PRESENTATION" t)
)



(defun c:cnpTRIER4axet4a2finA ( / acdoc leslayouts
                         layouts
                         i layout
                         )
  (setq acdoc (vla-get-activedocument (vlax-get-acad-object)))
  (setq leslayouts (vla-get-layouts acdoc))
 
  (setq layouts    (getlayouts nil t)
        layoutsold layouts
  )
  (setq layouts (vl-sort layouts
                         '(lambda (a b) (< (atoi (substr a (- (strlen a) 3) 3)) (atoi (substr b (- (strlen b) 3) 3))))
                )
  )
  (setq i (vla-get-taborder (vla-item leslayouts (nth 0 layouts))))
  (foreach name layouts
    (setq layout (vla-item leslayouts name))
    (vla-put-taborder layout i)
    (setq i (1+ i))
  )
  (getlayouts "POUR VERIFICATION DES NOMS DE PRESENTATION" t)
)


(defun c:cnptrier4axet4a2finb (/ acdoc layouts layout layoutsname name)
  (setq cnpcdepuisdebut1 (atoi (getcfg "APPDATA/CNPCDEPUISDEBUT1")))
  (initget 4)
  (setq	tmp
	 (getint
	   (strcat
	     "\nENTRER UN NOMBRE POUR DEFINIR LE DEPART DE LA PLAGE DE TRIE DEPUIS LE DEBUT DU NOM [ MINIMUM : 1]<"
	     (rtos cnpcdepuisdebut1 2 0)
	     ">: "
	   )
	 )
  )
  (if tmp
    (setq cnpcdepuisdebut1 tmp)
  )
  (setcfg "APPDATA/CNPCDEPUISDEBUT1"
	  (rtos cnpcdepuisdebut1 2 0)
  )
  (setq cnpcsurx1 (atoi (getcfg "APPDATA/CNPCSURX1")))
  (initget 4)
  (setq	tmp
	 (getint
	   (strcat
	     "\nENTRER UN NOMBRE POUR DEFINIR LA PLAGE DE TRIE PRIMAIRE DU NOM <"
	     (rtos cnpcsurx1 2 0)
	     ">: "
	   )
	 )
  )
  (if tmp
    (setq cnpcsurx1 tmp)
  )
  (setcfg "APPDATA/CNPCSURX1" (rtos cnpcsurx1 2 0))
  (decomptedebut)
  (setq acdoc (vla-get-activedocument (vlax-get-acad-object)))
  (setq layouts (vla-get-layouts acdoc))
  ;; récupérer la liste des noms de présentations
  (vlax-for layout layouts
    (setq layoutsname (cons (vla-get-name layout) layoutsname))
  )
  ;; supprimer la présentation "Model" de cette liste
  (setq layoutsname (vl-remove "Model" layoutsname))
  ;; nombre de presentations
  (setq	nblayouts	   (length layoutsname)
	listelayoutsdecomp nil
	listelayoutrecomp  nil
  )
  ;;décomposer le nom de la présentation en 5 morceaux et en faire une liste
  (foreach name	layoutsname
    (setq nbc (strlen name))
    (setq listelayoutsdecomp
	   (cons
	     (list
	       (substr name 1 (- cnpcdepuisdebut1 1))
	       (substr name cnpcdepuisdebut1 cnpcsurx1)
	       (substr
		 name
		 (+ cnpcdepuisdebut1 cnpcsurx1)
		 (- nbc 3 (+ cnpcdepuisdebut1 cnpcsurx1))
	       )
	       (substr name (- nbc 3) 3)
	       (substr name nbc)
	     )
	     listelayoutsdecomp
	   )
    )
  )
  ;; trier la liste sur 2 et 4 morceaux
  (setq	listelayoutsdecomp1
	 (vl-sort listelayoutsdecomp
		  '(lambda (a b)
		     (if (eq (cadr a) (cadr b))
		       (< (cadddr a) (cadddr b))
		       (< (cadr a) (cadr b))
		     )
		   )
	 )
  )
  ;;reconstituer le noms des présentations et la lister
  (foreach decomp listelayoutsdecomp1
    (setq listelayoutrecomp
	   (cons (strcat (nth 0 decomp)
			 (nth 1 decomp)
			 (nth 2 decomp)
			 (nth 3 decomp)
			 (nth 4 decomp)
		 )
		 listelayoutrecomp
	   )
    )
  )
					;inverser la liste
  (setq listelayoutrecomp (reverse listelayoutrecomp))
  ;; attribuer l'ordre à chaque présentation
  (setq i 1)
  ;; l'ordre 0 est réservé à la présentation "Model"
  (acet-ui-progress-init "AVANCEMENT" nblayouts)
  (foreach name	listelayoutrecomp
    (setq layout (vla-item layouts name))
    (vla-put-taborder layout i)
    (princ
      (strcat "\n" (itoa i) " SUR " (itoa nblayouts) " : " name)
    )
    (acet-ui-progress-init
      (strcat "AVANCEMENT "
	      (rtos (/ (* i 100) (float nblayouts)) 2 2)
	      " %"
      )
      nblayouts
    )
    (acet-ui-progress-safe I)
    (setq i (1+ i))
  )
  (decomptefin)
  (getlayouts "POUR VERIFICATION DES NOMS DE PRESENTATION" t)
  (princ)
)





;;;(vl-sort lst
;;;	 '(lambda (s1 s2 / x1 x2)
;;;	    (if	(= (setq x1 (substr s1 5 13))
;;;		   (setq x2 (substr s2 5 13))
;;;		)
;;;	      (< (substr s1 (- (strlen s1) 5))
;;;		 (substr s2 (- (strlen s2) 5))
;;;	      )
;;;	      (< x1 x2)
;;;	    )
;;;	  )
;;;)






(defun c:cnptrier4axet4a2finC (/ acdoc layouts layout layoutsname name)
  (setq cnpcdepuisdebut1 (atoi (getcfg "APPDATA/CNPCDEPUISDEBUT1")))
  (initget 4)
  (setq	tmp
	 (getint
	   (strcat
	     "\nENTRER UN NOMBRE POUR DEFINIR LE DEPART DE LA PLAGE DE TRIE DEPUIS LE DEBUT DU NOM [ MINIMUM : 1]<"
	     (rtos cnpcdepuisdebut1 2 0)
	     ">: "
	   )
	 )
  )
  (if tmp
    (setq cnpcdepuisdebut1 tmp)
  )
  (setcfg "APPDATA/CNPCDEPUISDEBUT1"
	  (rtos cnpcdepuisdebut1 2 0)
  )
  (setq cnpcsurx1 (atoi (getcfg "APPDATA/CNPCSURX1")))
  (initget 4)
  (setq	tmp
	 (getint
	   (strcat
	     "\nENTRER UN NOMBRE POUR DEFINIR LA PLAGE DE TRIE PRIMAIRE DU NOM <"
	     (rtos cnpcsurx1 2 0)
	     ">: "
	   )
	 )
  )
  (if tmp
    (setq cnpcsurx1 tmp)
  )
  (setcfg "APPDATA/CNPCSURX1" (rtos cnpcsurx1 2 0))
  (decomptedebut)
  (setq acdoc (vla-get-activedocument (vlax-get-acad-object)))
  (setq layouts (vla-get-layouts acdoc))
  ;; récupérer la liste des noms de présentations
  (vlax-for layout layouts
    (setq layoutsname (cons (vla-get-name layout) layoutsname))
  )
  ;; supprimer la présentation "Model" de cette liste
  (setq layoutsname (vl-remove "Model" layoutsname))
  ;; nombre de presentations
  (setq	nblayouts (length layoutsname)
;;;        listelayoutsdecomp nil
;;;        listelayoutrecomp nil
  )
  ;;décomposer le nom de la présentation en 5 morceaux et en faire une liste
;;;  (foreach name layoutsname
;;;    (setq nbc (strlen name))
;;;    (setq listelayoutsdecomp (cons (list (substr name 1 (- cnpcdepuisdebut1 1))
;;;                                         (substr name cnpcdepuisdebut1 cnpcsurx1)
;;;                                         (substr name (+ cnpcdepuisdebut1 cnpcsurx1) (- nbc 3 (+ cnpcdepuisdebut1 cnpcsurx1)))
;;;                                         (substr name (- (strlen name) 3) 3)
;;;                                         (substr name nbc)
;;;                                   )
;;;                                   listelayoutsdecomp
;;;                             )
;;;    )
;;;  )
  ;; trier la liste sur 2 et 4 morceaux
  (setq	layoutsname
	 (vl-sort
	   layoutsname
	   '(lambda (s1 s2 / x1 x2)
	      (if (= (setq
		       x1 (substr s1 cnpcdepuisdebut1 cnpcsurx1)
		     )
		     (setq
		       x2 (substr s2 cnpcdepuisdebut1 cnpcsurx1)
		     )
		  )
		(< (substr s1 (- (strlen s1) 3) 3)
		   (substr s2 (- (strlen s2) 3) 3)
		)
		(< x1 x2)
	      )
	    )
	 )
  )
  ;;reconstituer le noms des présentations et la lister
;;;  (foreach decomp listelayoutsdecomp1
;;;    (setq listelayoutrecomp (cons (strcat (nth 0 decomp) (nth 1 decomp) (nth 2 decomp) (nth 3 decomp) (nth 4 decomp))
;;;                                  listelayoutrecomp
;;;                            )
;;;    )
;;;  )
					;inverser la liste
;;;  (setq layoutsname (reverse layoutsname))
  ;; attribuer l'ordre à chaque présentation
  (setq i 1)
  ;; l'ordre 0 est réservé à la présentation "Model"
  (acet-ui-progress-init "AVANCEMENT" nblayouts)
  (foreach name	layoutsname
    (setq layout (vla-item layouts name))
    (vla-put-taborder layout i)
    (princ
      (strcat "\n" (itoa i) " SUR " (itoa nblayouts) " : " name)
    )
    (acet-ui-progress-init
      (strcat "AVANCEMENT "
	      (rtos (/ (* i 100) (float nblayouts)) 2 2)
	      " %"
      )
      nblayouts
    )
    (acet-ui-progress-safe I)
    (setq i (1+ i))
  )
  (decomptefin)
  (getlayouts "POUR VERIFICATION DES NOMS DE PRESENTATION" t)
  (princ)
)


 

(defun decomptedebut ()
  (setq datede (rtos (getvar "cdate") 2 8)) ; année
  (setq anneede (substr datede 1 4)) ; mois
  (setq moisde (substr datede 5 2)) ; jour
  (setq jourde (substr datede 7 2)) ; heure
  (setq heurede (substr datede 10 2)) ; minute
  (setq minutede (substr datede 12 2)) ; seconde
  (setq secondede (substr datede 14 2)) ; concatenation de la date
;;;  (setq seconde10de (substr datede 16 2)) ; concatenation de la date
  (setq totaldesondede (+ (atoi secondede) (* (atoi minutede) 60) (* (atoi heurede) 3600))) ; vous pouvez modifier ici le suffixe "le" et les séparateurs "/"
 ; exemple :
 ; (setq n-date (strcat "agence toto le : "jour"-"mois"-"annee))
  (setq n-datede (strcat "\nDEBUT le : " jourde "/" moisde "/" anneede " à " heurede ":" minutede ":" secondede))
  (princ)
)

(defun decomptefin ()
  (setq datefin (rtos (getvar "cdate") 2 8)) ; année
  (setq anneefin (substr datefin 1 4)) ; mois
  (setq moisfin (substr datefin 5 2)) ; jour
  (setq jourfin (substr datefin 7 2)) ; heure
  (setq heurefin (substr datefin 10 2)) ; minute
  (setq minutefin (substr datefin 12 2)) ; seconde
  (setq secondefin (substr datefin 14 2)) ; concatenation de la date
;;;  (setq seconde10fin (substr datefin 16 2)) ; concatenation de la date
  (setq totaldesondefin (+ (atoi secondefin) (* (atoi minutefin) 60) (* (atoi heurefin) 3600)))
  (setq totalsecondetravail (- totaldesondefin totaldesondede)) ; vous pouvez modifier ici le suffixe "le" et les séparateurs "/"
   (setq n-datefin (strcat "\nFIN   le : " jourfin "/" moisfin "/" anneefin " à " heurefin ":" minutefin ":" secondefin)
  )
  (setq heuret (fix (/ totalsecondetravail 3600))) ;heure
  (setq minutet (fix (/ (- totalsecondetravail (* heuret 3600)) 60))) ; minute
  (setq secondet (- totalsecondetravail (* heuret 3600) (* minutet 60))) ; concatenation de la date
  (setq n-datetravail (strcat "\nSOIT                    "
                              (rtos heuret 2 0)
                              ":"
                              (rtos minutet 2 0)
                              ":"
                              (rtos secondet 2 0)
                              " DE TRAVAIL"
                      )
  )
  (prompt n-datede)
  (prompt n-datefin)
  (prompt n-datetravail)
  (princ)
)


 

;; GETLAYOUTS (gile) 03/12/07
;; Retourne la liste des présentations choisies dans la boite de dialogue
;;
;; arguments
;; titre : titre de la boite de dialogue ou nil, défauts = Choisir la (ou les) présentation(s)
;; mult : T ou nil (pour choix multiple ou unique)

(defun getlayouts (titre mult / lay tmp file ret)
  (setq lay  (vl-sort (layoutlist) (function (lambda (x1 x2) (< (taborder x1) (taborder x2)))))
        tmp  (vl-filename-mktemp "tmp.dcl")
        file (open tmp "w")
  )
  (write-line (strcat "GetLayouts:dialog{label="
                      (if titre
                        (vl-prin1-to-string titre)
                        (if mult
                          "\"Choisir les présentations du fichier\""
                          "\"Choisir une présentation\""
                        )
                      )
                      ";:list_box{height = 100;key=\"lst\";multiple_select="
                      (if mult
                        "true;width = 150;}:row{:retirement_button{label=\"Toutes\";key=\"all\";}
ok_button;cancel_button;}}"
                        "false;}ok_cancel;}"
                      )
              )
              file
  )
  (close file)
  (setq dcl_id (load_dialog tmp))
  (if (not (new_dialog "GetLayouts" dcl_id))
    (exit)
  )
  (start_list "lst")
  (mapcar 'add_list lay)
  (end_list)
  (action_tile "all" "(setq ret (reverse lay)) (done_dialog)")
  (action_tile "accept"
               "(or (= (get_tile \"lst\") \"\")
(foreach n (str2lst (get_tile \"lst\") \" \")
(setq ret (cons (nth (atoi n) lay) ret))))
(done_dialog)"
  )
  (start_dialog)
  (unload_dialog dcl_id)
  (vl-file-delete tmp)
  (reverse ret)
)

a+

Phil

Autodesk Architecture 2023 sous windows 11 64

24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal

Lien vers le commentaire
Partager sur d’autres sites

@PHILPHIL,

Je remarque que tu utilises (getcfg) et (setcfg), donc comme je ne connaissais pas et que chat m'a intrigué je suis allé voir et je suis tombé sur cela :

Citation

getcfg (AutoLISP)

Obsolete. Retrieves application data from the AppData section of the acad20xx.cfg file

Note: This function might be removed in a future release. As an alternative, use the vl-registry-read function to retrieve application data from the Windows Registry on Windows or property list file on Mac OS.

Donc à voir si cela ne risque pas de poser problème à l'avenir 😉

Bisous,
Luna

Lien vers le commentaire
Partager sur d’autres sites

hello Luna

merci pour l'info

je l'utilise beaucoup pour garder des infos, et pas a avoir a les réécrire au clavier.

pour le moment ca marche encore, puis c'est bien plus pratique que ca soit dans un petit fichier propre a autocad, que de le placer dans la base de registre énorme de windows ( enfin je pense que ca va la vue la commande "vl-registry-read".)

 

a+

Phil ( pas expert programmeur, juste de la bidouille )

 

Autodesk Architecture 2023 sous windows 11 64

24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal

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é