Aller au contenu

Messages recommandés

Posté(e)

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
Posté(e)

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

Posté(e)

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

Posté(e)

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
Posté(e)

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.

Posté(e)

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

  • 11 mois après...
Posté(e)

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.

Posté(e)

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 !!!!

Posté(e)

Hello

 

À priori en Septembre (ou Octobre), je vais venir 2 fois sur Colmar !

 

Donc je sens qu'une visite à Benfeld s'impose ?

... Pour voir le cratère de l'impact du Cruise Missile ?!

 

Bye, lecrabe

Autodesk Expert Elite Team

Posté(e)

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

Posté(e)

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

Posté(e)

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)

Posté(e)

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

;) Merci pour l'astuce. Comme quoi, on en apprends toujours...

Bien à toi,

""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

Posté(e)

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
Posté(e)

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

Posté(e)

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

www.cad-is.fr
Autocad Map 2021 - Covadis/Autopiste V18.0c
Pisser sous la douche ne suffira pas
Posté(e)

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

  • 2 semaines après...
Posté(e)

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

  • 2 ans après...
Posté(e)

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

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é