Aller au contenu

Champ nombre de présentation


La Lozère

Messages recommandés

Bonjour,

Je cherche à automatiser le remplissage de mon cartouche.

Du coup, je dois renseigner le nombre de page de mon dossier dans mon cartouche, celui-ci correspondant au nombre de présentation.

Existe-t-il un champ définissant le nombre de présentations?

 

Merci.

www.cad-is.fr
Autocad Map 2021 - Covadis/Autopiste V18.0c
Pisser sous la douche ne suffira pas
Lien vers le commentaire
Partager sur d’autres sites

Hello

 

En fait il faudrait pouvoir mette CECI dans un champ :

(length (layoutlist))

 

Desole pas d'AutoCAD en ce moment ...

 

Bye, lecrabe

 

PS1: tu peux stocker le resultat dans une variable Lisp System USERI1, par exemple :

(setq useri1 (length (layoutlist)) )

 

PS2: Ensuite il faut faire sortir USERI1 par une expression Diesel dans un champ !

Ce que je ne sais pas faire car je fais tres peu de Diesel !!

Autodesk Expert Elite Team

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

Tu veux une formation DIESEL Monsieur Le CrapoPode ?

 

ça peut donner ça :

 

$(getvar,USERI1)

 

on peut aussi stocker ça dans une variable LISP...

 

Christian

Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...

cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)

Lien vers le commentaire
Partager sur d’autres sites

Hello

 

Le CrapoDiesel te remercie decapodiquement ... de ta gentillesse / politesse / delicatesse ...

Et Mr Lalozere sans doute aussi...

 

Bonne soirée, lecrabe (A St-Avold)

 

PS1: je sais que tu es LE spécialiste français des 5 Variables System I et R et S !

 

PS2: comme a dit le Maître Suprême Confucius - L'homme sage connaît ses limites...

Autodesk Expert Elite Team

Lien vers le commentaire
Partager sur d’autres sites

Merci à vous.

Le truc avec ce système, c'est que si j'ajoute ou enlève une présentation, le chiffre de mon cartouche ne se mettra pas automatiquement à jour. Car il faudra relancer manuellement (setq useri1 (length (layoutlist)) )

 

J'aurais voulu que ça fonctionne comme par exemple avec le champ CTAB qui renvoi le nom de la présentation. Ou encore le RTEXT $(substr,$(getvar,dwgname),13, 13) qui permet d'extraire certaines parti du nom du fichier.

www.cad-is.fr
Autocad Map 2021 - Covadis/Autopiste V18.0c
Pisser sous la douche ne suffira pas
Lien vers le commentaire
Partager sur d’autres sites

J'ai des conneries de ce genre également pour la numérotation de page automatique etc... comme ça ne se met pas a jour dynamiquement j'ai ajouté l'exécution d'un Lisp avant l'exécution de la publication.

Comme ça je ne m'occupe de rien, même si tout est en vrac, que j'ai rajouté des onglets de présentation au milieu ou autre, je lance la publication et tout se met à jour avant de commencer le tirage.

Autocad 2015 - Lumion 3D - SCIA Engineer

I7 6700K 4 cores @4.0Ghz - 32Go DDR4 - GTX980ti 6Gb - SSD 512Go - Windows 7 64 bits.

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Je cherche à automatiser le remplissage de mon cartouche.

Du coup, je dois renseigner le nombre de page de mon dossier dans mon cartouche, celui-ci correspondant au nombre de présentation.

Existe-t-il un champ définissant le nombre de présentations?

 

Merci.

 

Bonjour

 

il me semble que le jeu de feuilles sert a cela, non ?

je ne suis pas spécialiste mais je crois que l'on peut récupérer le nombre total de feuilles du jeu et le numéro de la feuille ...

ou bien créer une propriété nombre total de feuilles et l'utiliser dans un champ mais ce n'est pas automatique

Thierry

 

Aujourd’hui Collaborateur d'Architecte - Projeteur chez ETECNA 02400

Autocad depuis version 2000- Débutant Révit

Lien vers le commentaire
Partager sur d’autres sites

  • 11 mois après...

Merci à vous.

Le truc avec ce système, c'est que si j'ajoute ou enlève une présentation, le chiffre de mon cartouche ne se mettra pas automatiquement à jour. Car il faudra relancer manuellement (setq useri1 (length (layoutlist)) )

 

J'aurais voulu que ça fonctionne comme par exemple avec le champ CTAB qui renvoi le nom de la présentation. Ou encore le RTEXT $(substr,$(getvar,dwgname),13, 13) qui permet d'extraire certaines parti du nom du fichier.

 

Il y a le lisp pagine qui peut permettre ceci !

Coco.

Lien vers le commentaire
Partager sur d’autres sites

Salut

un petit prog de patrick35 que j'ai adapté pour moi

ca ne correspond pas exactement a ta demande mais je trouve ca tres pratique

ca nomme le 1er onglet "cartouche" et le reste au format "page 1 sur 15" il suffit de mette un champ "ctab" sur chaque presentation

 


(defun c:ren-onglet  (/ doc express lay lst n i txt)
 (vl-load-com)
 (setq	doc    (vla-get-activedocument (vlax-get-acad-object))
n      -1
i      1
prefix "0"
txt    nil
long   (itoa (- (length (layoutlist)) 1))
) ;_ Fin de setq
 (vla-startundomark doc)
 (if (eval 'acet-ui-progress-done)
   (progn
     (acet-ui-progress-init
""
(1- (vla-get-count (vla-get-layouts doc)))
) ;_ Fin de acet-ui-progress-init
     (setq express T)
     ) ;_ Fin de progn
   (progn
     (princ "\nTravail en cours...")
     (princ)
     ) ;_ Fin de progn
   ) ;_ Fin de if
 (vlax-for lay 	(vla-get-layouts doc)
   (setq lst (cons (list (vla-get-taborder lay) lay) lst))
   ) ;_ Fin de vlax-for
 (while (setq lay (assoc i lst))
   (cond
     ((eq n -1)

  	(setq txt "Cartouche")

  	)

     ((>= n 0)
  	(setq txt1 (itoa (+ n 1)))
  	(if (< (strlen txt1) 2)
	(setq txt1 (strcat "0" txt1))
	)


  	(if (< (strlen long) 2)
	(setq long (strcat "0" long))

	)



  	(setq
	txt
 	(strcat "Page " txt1 " sur " long)
	) ;_ Fin de setq

  	)


     ) ;_ Fin de cond







;_ Fin de while
   (if	(vl-catch-all-error-p
 	(vl-catch-all-apply 'vla-put-name (list (cadr lay) txt))
 	) ;_ Fin de vl-catch-all-error-p
     (progn
(vla-put-name
 	(vla-item (vla-get-layouts doc) txt)
 	(strcat "c" txt)
;(strcat txt)
 	) ;_ Fin de vla-put-name
(vla-put-name (cadr lay) txt)
) ;_ Fin de progn
     ) ;_ Fin de if
   (and express (acet-ui-progress-safe i))
   (setq n (1+ n)
 	i (1+ i)
 	) ;_ Fin de setq
   ) ;_ Fin de if
 (and express (acet-ui-progress-done))
 (princ (strcat "\nRenumérotation de "
        (itoa (1+ n))
        " présentation(s)."
        ) ;_ Fin de strcat
	) ;_ Fin de princ
 (vla-endundomark doc)
 (princ)
 )

Vous fîtes ce que vous pûtes

et vous m'épatâtes !!!!

Lien vers le commentaire
Partager sur d’autres sites

Bonjour Patoche smile.gif

 

AH ben, c'est une belle Région biggrin.gifblink.gifunsure.gifsad.gif

 

 

Depuis la fin des CHARBONNAGES, c'est une région qui souffre un peu par endroit... Mon fief à moi, c'est FORBACH !

 

Christian

Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...

cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)

Lien vers le commentaire
Partager sur d’autres sites

Merci à vous.

Le truc avec ce système, c'est que si j'ajoute ou enlève une présentation, le chiffre de mon cartouche ne se mettra pas automatiquement à jour. Car il faudra relancer manuellement (setq useri1 (length (layoutlist)) )

 

J'aurais voulu que ça fonctionne comme par exemple avec le champ CTAB qui renvoi le nom de la présentation. Ou encore le RTEXT $(substr,$(getvar,dwgname),13, 13) qui permet d'extraire certaines parti du nom du fichier.

 

Bonjour

 

Ci-dessous quelques ligne de code à glisser dans un des fichiers de chargement automatique d'AutoCAD, normalement tu devrais sur le même model que la solution (setq useri1 (length (layoutlist)) ) avoir accès à une variable lisp *NombrePresentation* qui se met à jour automatiquement, à mettre dans un champ pour renseigner le nombre de présentation.

 

Inconvénient: ceci ne fonctionnera que sur les postes ayant les lignes de codes chargées, pense à convertir le champ en texte avant de distribuer le dwg, ou de diffuser les lignes de code lisp.

 

;; VDH-Bruno                                                         le:  10-07-2017
;; ----------------- NombrePresentation V 1.00 -------------------------------------
;; Crée une variable lisp global *NombrePresentation* renseignant le nombre de
;; présentation présente dans le dessin actif.

(vl-load-com)

;; Déclaration du réacteur
;; (vlr-remove *command-reactor-NombrePresentation*)
(or *command-reactor-NombrePresentation*
   (setq *command-reactor-NombrePresentation* (vlr-command-reactor "Nombre Presentation" '((:vlr-commandEnded . NombrePresentation-callback))))
)

;; Routine de mise à jour automatique de la variable lisp *NombrePresentation*
(defun NombrePresentation-callback (rea evenement)  
 (and (eq (car evenement) "LAYOUT_CONTROL")
      (setq *NombrePresentation* (length (layoutlist)))
        )
 (princ)
)

;; Initialisation de la variable
(NombrePresentation-callback nil (list "LAYOUT_CONTROL"))

 

A+

Apprendre => Prendre => Rendre

Lien vers le commentaire
Partager sur d’autres sites

Hello,

 

:) Pour ma part, j'ai fait comme ci-dessous :

 

1) Creation d'une macro commande:

Dans le menu "Outils/Personnaliser", je crée une nouvelle commande que j'ai appelé "MajNbTotalFolios". A la ligne "Macro", j'ai saisi :

^C^C(setenv "TotalNbOfLayout" (rtos (length (layoutlist)))) _Regenall 

NB : Pour les novices, Attention au Espace après chaque commande pour signifier [Entrée]

 

Et je place cette commande dans un menu personnalisé qui regroupe toutes les macros internes à la société.

 

2) Ajout d'un attribut "Total Pages" dans le bloc "Cartouche"

Dans mon bloc de cartouche, j'ajoute un attribut "Total Pages" et dans le champ "valeur", j'insère un champ exécutant l'expression DIESEL suivante :

$(Getenv,"TotalNbOfLayout")

 

:P Je ne sais pas si c'est la bonne méthode mais ça fonctionne pour nous. Seul contrainte, il faut cliquer régulièrement sur la macro-commande "MajNbTotalFolios" pour mettre à jour la valeur dans le bloc avant de sauvegarder.

 

Je vais creuser un peu plus loin avec la solution proposée par VDH-Bruno pour voir si je peux faire un truc un peu plus pro(pre). ;)

 

A plus,

""Nous avons un avenir et il sera fait de nos rêves si nous avons le courage de bousculer les idées reçues" - S. HONDA

Lien vers le commentaire
Partager sur d’autres sites

NB : Pour les novices, Attention au Espace après chaque commande pour signifier [Entrée]

Tu peux remplacer les "espaces" par des point-virgules ";"

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

C'est bien, je vois que ce post intéresse du monde. :)

L'astuce de famaice est pas mal. Il faut que je teste.

 

Maintenant allons plus loin. Si on veut renseigner un cartouche du type le numéro de la page avec le nombre de pages. Genre "Page x/y"

On peut mettre un champ avec le truc de famaice pour le chiffre "y"

Ensuite, comment renseigner la valeur x en imaginant que les présentations sont dans l'ordre de gauche à droite???? :blink:

www.cad-is.fr
Autocad Map 2021 - Covadis/Autopiste V18.0c
Pisser sous la douche ne suffira pas
Lien vers le commentaire
Partager sur d’autres sites

Maintenant allons plus loin. Si on veut renseigner un cartouche du type le numéro de la page avec le nombre de pages. Genre "Page x/y"

On peut mettre un champ avec le truc de famaice pour le chiffre "y"

Ensuite, comment renseigner la valeur x en imaginant que les présentations sont dans l'ordre de gauche à droite???? :blink:

 

Bonjour,

 

http://cadxp.com/topic/38099-pagination-automatique/page__view__findpost__p__210208

 

A voir si cela peut répondre à ton besoin..

 

A+ Bruno

Apprendre => Prendre => Rendre

Lien vers le commentaire
Partager sur d’autres sites

Effectivement VDH-Bruno, elle est top ta solution.

Pour que cela soit toujours actif, il faut lancer le lisp au démarrage, et le tour et joué...

 

Oui merci, ça dépanne bien en l'état, même si on pourrait ajouter 2 à 3 petites fonctionnalités au truc pour gagner en souplesse et ergonomie...

Apprendre => Prendre => Rendre

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines après...

C'est bien, je vois que ce post intéresse du monde. :)

L'astuce de famaice est pas mal. Il faut que je teste.

 

Maintenant allons plus loin. Si on veut renseigner un cartouche du type le numéro de la page avec le nombre de pages. Genre "Page x/y"

On peut mettre un champ avec le truc de famaice pour le chiffre "y"

Ensuite, comment renseigner la valeur x en imaginant que les présentations sont dans l'ordre de gauche à droite???? :blink:

Salut le bougnat !!! :D

 

Ben moi, je nomme mes onglet de présentation numériquement (1, 2, 3,...) et je mets dans mon cartouche un attribut "Page" avec comme valeur un champ qui va cherchez la variable système CTAB (champs "Autres" -> "Variables Systèmes" -> "CTAB"). Je coche la case "CONSTANT" dans les propriétés de l'attribut pour éviter une saisie manuelle inopinée de l'utilisateur. Ces deux astuces combinées font que je ne préoccupe plus de la numérotation X/Y de mes folios (au REGEN près) sauf lors de la vérification documentaire avant envoi chez le Client/Fournisseurs.

 

Cette pratique est inscrite dans nos "lignes directrices pour la CAO" (Assurance Qualité... quand tu nous tiens.) B)

 

Bien à toi l'ami !

""Nous avons un avenir et il sera fait de nos rêves si nous avons le courage de bousculer les idées reçues" - S. HONDA

Lien vers le commentaire
Partager sur d’autres sites

  • 2 ans après...

Hello,

 

:) Pour ma part, j'ai fait comme ci-dessous :

 

1) Creation d'une macro commande:

Dans le menu "Outils/Personnaliser", je crée une nouvelle commande que j'ai appelé "MajNbTotalFolios". A la ligne "Macro", j'ai saisi :

^C^C(setenv "TotalNbOfLayout" (rtos (length (layoutlist)))) _Regenall 

NB : Pour les novices, Attention au Espace après chaque commande pour signifier [Entrée]

 

Et je place cette commande dans un menu personnalisé qui regroupe toutes les macros internes à la société.

 

2) Ajout d'un attribut "Total Pages" dans le bloc "Cartouche"

Dans mon bloc de cartouche, j'ajoute un attribut "Total Pages" et dans le champ "valeur", j'insère un champ exécutant l'expression DIESEL suivante :

$(Getenv,"TotalNbOfLayout")

 

:P Je ne sais pas si c'est la bonne méthode mais ça fonctionne pour nous. Seul contrainte, il faut cliquer régulièrement sur la macro-commande "MajNbTotalFolios" pour mettre à jour la valeur dans le bloc avant de sauvegarder.

 

Je vais creuser un peu plus loin avec la solution proposée par VDH-Bruno pour voir si je peux faire un truc un peu plus pro(pre). ;)

 

A plus,

 

J'ai apprécié votre méthode et vous en remercie. J'ai une petite question concernant la macro:

 

Peut on s'affranchir de fournir au client (qui demande les fichiers natifs) la personnalisation de son interface? Je m'explique, si j'ouvre le dessin sur un poste dont la personnalisation des commandes n'est pas faite comme dans votre exemple, le nombre total de folios sort: "-----" vide.

J'en ai déduit que sur le poste ou la macro est créée, je peux afficher le nombre total de pages de mon fichier, mais quand j'enregistre mon fichier, la valeur que l'expression diesel avait affiché est réinitialisée et donc n'affiche plus rien sur un poste autre...

 

Question: Peut on lancer la macro a partir du fichier et non par un bouton dans l'interface autocad?

Ou: Peut on figer le résultat avant de livrer le fichier?

 

Merci

Lien vers le commentaire
Partager sur d’autres sites

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • 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é