Aller au contenu

Routine Cartouche


Messages recommandés

Posté(e)

Bonjour,

 

 

Ceci est la première fois que j'écris sur se forum.

 

J'aimerais savoir si il y a une façon de faire en sorte que quand je fais un nouveau layout appartir d'un déja créé

que les pages de ma cartouche change en suite.

 

en lien j'ai mis ma cartouche.

 

Salutations!

Posté(e)

Bonjour,

 

 

Ceci est la première fois que j'écris sur se forum.

 

J'aimerais savoir si il y a une façon de faire en sorte que quand je fais un nouveau layout appartir d'un déja créé

que les pages de ma cartouche change en suite.

 

en lien j'ai mis ma cartouche.

 

Salutations!

Salut

 

Tu peux utiliser les champs avec les variables d'autocad comme CTAB

 

ps : ton lien est invisible ;)

 

@+

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Posté(e)

j'ai essayé de le mettre mais sa na pas fonctionné

 

il faudrais que tu puisse voir mon cartouche. mais j'ai essayer de mettre de champs et la seule chose qui apparais c'est ####

Posté(e)

Re bonjour,

 

C'est plus les page que j'aimerais qui soit incrementer 1 de 1 passe a 1 de 2 quand on rajoute une layout.

 

ainsi de suite si je faire un nouveau layout la premiere page est 1 de 3 la deuxième devient 2 de 3 et la derniere 3 de 3

Posté(e)

Je ne sais pas comment les utiliser je cherche a faire un lisp pour avec le décompte de chaque layout dans mon dessins mais vu que je suis assez nous je ne sais pas comment.

Posté(e)

j'ai trouver se code mais je ne reussi pas a le faire fonctionné

 

 

(defun c:lpc()

(setq sheet 1)
(setq total (itoa (length (layoutlist))))

(foreach layout (layoutlist))

(print)

(ssget "_X" (list (cons 0 "INSERT") (cons 66 1) (cons 2 "Cartouche Aliance") (cons 410 layout)))

;sa me dit qu'il y a une erreur avec le ssget.


(strcat (itoa sheet) " of " total)

(setq sheet (1+ sheet))

)

Posté(e) (modifié)

Re,

 

Patrick, je vois que tu lis entièrement les messages,...:)

 

Je te retourne mes amitiés,.

 

Et en plus, tu as résolu le pb de CadFrank,..:P

 

sait bizarre mais je ne vois pas tes images

 

Je passe par la DROPBOX, j'ai l'impression que je dois être connecté pour avoir accès (a vérifier cependant,..)

Modifié par lili2006

Civil 3D 2025 - COVADIS_18.3c

https://www.linkedin...3%ABt-95313341/

Posté(e)

bonjour

ce n'est pas le sujet mais propriétés du dessin surtout si il y a beaucoup de présentation

fichier propriété du dessin;personnalise

dans tes cartouche tu crée un champ catégorie du champ document.

si ça peut te permettre de gagner du temps avec tes cartouches

Posté(e)

C'est parfait! ça fonctionne maintenant.

 

Quoi que en bout de ligne a ne fait pas se que je veux ds ma cartouche. p-e si je démontre le résultat sa peut aider.

 

 

 

voici l'effet que je veux que sa represente.

 

Merci pour tout l'aide si quelqu'un trouve la reponse alors sa sera mon cadeau de nowel :(rires forts): :(rires forts):

 

Joyeux Nowel a tous!!

Posté(e)

(setq total (itoa (length (layoutlist))))

 

Avec ceci je suis capable d'avoir le nombre de layout...

 

y a t il une face d'utiliser ceci pour faire une modification de mon attribut

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

Bon J'ai un nouveau code et il fonction en parti comme je le veux.

 

Il manque qu'une chose. je peux changer les pages selon le nombre de layout. Ceci fonctionne parfaitement.

 

il ne reste qu'une chose que je ne suis pas capable de faire afficher et c'est le total de layout.

 

J'ai marque se que je pensais qui pourrais le faire fonctionner apres les points virgule de la fonction qui va suivre sous peu.

 

(defun C:paging(/ adoc atts id lay_field)
(setq adoc (vla-get-activedocument (vlax-get-acad-object)))
 (vlax-for lt (vla-get-layouts adoc)
   (vla-put-activelayout adoc lt);optional
   (vlax-for obj (vla-get-block lt)
     (if (eq "AcDbBlockReference" (vla-get-objectname obj))
(if (eq "Cartouche Aliance" (vla-get-effectivename obj))
       (if (eq :vlax-true (vla-get-hasattributes obj) )
       (progn
  (setq atts (vlax-invoke obj 'getattributes))
  (foreach x atts
    (if (eq "PAGE" (vla-get-tagstring x))
      (progn
        (setq id (vla-get-objectid (vla-get-layout (vla-objectidtoobject adoc (vla-get-ownerid obj)))))
        (setq lay_field (strcat "%<\\AcObjProp Object(%<\\_ObjId " (itoa id)">%).Taborder \\f \"%tc1\">%"))
      (vla-put-textstring x lay_field)
      )
    )

;     (if (eq "#PAGE" (vla-get-tagstring x))
;       (progn
;         (setq id (itoa (length (layoutlist))))
;       (vla-put-textstring x lay_field)
;       )
;     )

  )
       )
    )
  )
)
     )
   )
 (vla-put-activelayout adoc (vla-item (vla-get-layouts adoc) 0));activate Layout1, optional
(princ)
 )
 (prompt "\Try command: Paging...")
 (prin1)
 (vl-load-com)
 (prin1)

 

Par contre, le texte de ma réponse ne s'affiche pas..

 

aurait-il quelqu'un qui aurait la solution.

 

Se serait grandement apprécié.

 

Merci d'avance.

Posté(e)

Bonsoir,

 

Vite fait...

 

(defun C:PAGING( / nombloc attpage attnumpage adoc numtabs atts id lay_field)

; Paramètres

(setq nombloc "Cartouche Aliance")  ; nom du bloc cartouche
(setq attpage "PAGE")               ; étiquette de l'attribut numéro de page
(setq attnumpage "#PAGE")           ; ; étiquette de l'attribut nombre de pages

; Fin paramètres

 (vl-load-com)
 (setq adoc (vla-get-activedocument (vlax-get-acad-object)))
 (setq numtabs (itoa (length (layoutlist))))
 (vlax-for lt (vla-get-layouts adoc)
   ;(vla-put-activelayout adoc lt) ; optionnel
   (vlax-for obj (vla-get-block lt)
     (if (and (= "AcDbBlockReference" (vla-get-objectname obj))
             (= nombloc (vla-get-effectivename obj)) 
             (= :vlax-true (vla-get-hasattributes obj) ))
       (progn
         (setq atts (vlax-invoke obj 'getattributes))
         (foreach x atts
           (if (= attpage (vla-get-tagstring x))
             (progn
               (setq id (vla-get-objectid (vla-get-layout (vla-objectidtoobject adoc (vla-get-ownerid obj)))))
               (setq lay_field (strcat "%<\\AcObjProp Object(%<\\_ObjId " (itoa id)">%).Taborder \\f \"%tc1\">%"))
               (vla-put-textstring x lay_field)
             )
           )
           (if (= attnumpage (vla-get-tagstring x))
               (vla-put-textstring x numtabs)
           )
         )
       )
     )
   )
 )
 ;(vla-put-activelayout adoc (vla-item (vla-get-layouts adoc) 0)) ; activer Layout1, optionnel
 (princ)
)
(prompt "\nCommande à utiliser : PAGING")
(princ)

Posté(e)
bryce Posté Hier, 05:09

Bonsoir,

 

Vite fait...

 

Je te remerci de ton aide c'est exactement ce que je cherchai a faire..

 

Aurai tu une idée ou je pourrais trouver tout les descriptions avec démonstration des fonctions Lisp/Vlisp en francais car je ne les trouve qu'en anglais je les trouves pas trop facile a comprend meme si je suis bilingue

 

Salutation et encore merci !

Posté(e)
Aurai tu une idée ou je pourrais trouver tout les descriptions avec démonstration des fonctions Lisp/Vlisp en francais car je ne les trouve qu'en anglais je les trouves pas trop facile a comprend meme si je suis bilingue

Salut

 

J'avais indiqué ici ou une marche à suivre avec l'aide

 

@+

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Posté(e)

Euh ... Je sais pas trop... mais je comprend pas le ici et la ne m'apporte pas au fonction et je trouve pas plus ou les trouver

 

Je sais pas si j'ai bien d'écrit se que je veux.

 

Je veux trouver les information pour les fonction

 

vla-get-acaddocuments / vla-for etc ...

Posté(e)

Euh ... Je sais pas trop... mais je comprend pas le ici et la ne m'apporte pas au fonction et je trouve pas plus ou les trouver

 

Je sais pas si j'ai bien d'écrit se que je veux.

 

Je veux trouver les information pour les fonction

 

vla-get-acaddocuments / vla-for etc ...

C'est dans l'aide pour les fonctions vl-*, vlr-*, vlax-*

Pour les fonctions vla-*, c'est dans l'aide vba, et pour retrouver les fonctions, avec l'explorateur (F2) dans l'éditeur vba (comme expliqué dans les liens cités)

 

@+

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

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é