Aller au contenu

changer mes cartouches sur plusieurs plans


Messages recommandés

Posté(e)

Bonjour all,

 

Je cherche un petit coup de main ou un indice pour la réalisation de mon projet

Je travail avec Autocad 2008 et sauvegarde mes schémas dans la version 2004

 

Bon j’expose mon petit problème, je dois changer la désignation et le numéro de plan dans un cartouche, jusque là pas compliqué …, mais je dois le faire 580 fois :P

 

Donc j’ai commencé à pauser des questions et on m’a dirigé vers le Lisp … (j’y comprends pas grand-chose) … (lacune à revoir)

 

Mes schémas sont placé dans un répertoire du même nom que l’attribut « DESIGNATION » généralement et dans ce répertoire on trouve les DWG qui ce nomme 01 pour le 1er plan, 02,03, in si de suite.

A noté que le cartouche ce trouve dans le model space

 

Résumé

Le nom du bloc cartouche est « ISO_04 »

 

Noms des attributs dans le cartouche ISO_04

•AFFAIRE le nom du chantier « idem pour toute les pages »

•ECHELLE l’échelle utilisée « idem pour toute les pages »

•FEUILLE_NUM numéro de la page (peut être le nom du fichier) « variable »

•NUMERO numéro du chantier « idem pour toute les pages »

•PLAN_NUM numéro du plan « idem pour toute les pages »

•DESIGNATION Désignation du plan « idem pour toute les pages »

 

 

Merci d’avance pour votre aide

 

Posté(e)

Salut et bienvenue,

 

À moins d'utiliser ObjectBDX avec Visual LISP, une routine LISP ne fonctionne que dans dans le fichier courant.

Mais tu peux faire une routine LISP pour mettre le cartouche à jour et à l'aide d'un script ouvrir chaque fichier exécuter le LISP, enregistrer et fermer le fichier (voir SuperAutoScript par exemple)

 

Voilà un exemple de LISP qui remplace la valeur de l'attribut FEUILLE_NUM par le nom du fichier et l'attribut DESIGNATION par le nom du répertoire.

Il faut entrer MIC07 à la ligne de commande pour le lancer dans le fichier courant.

Le nom de la commande est le même dans le script, il faut que le lISP soit automatiquement chargé à chaque ouverture de dessin (voir ce sujet).

 

(defun c:MIC07 (/ ss dir file)
 (vl-load-com)
 (setq	file (vl-string-right-trim ".dwg" (getvar "DWGNAME"))
dir  (vl-string-right-trim "\\" (getvar "DWGPREFIX"))
dir  (substr
       dir
       (if (setq pos (vl-string-position (ascii "\\") dir 1 T))
	 (+ 2 pos)
	 1
       )
     )
 )
 (if (ssget "_X" '((0 . "INSERT") (2 . "ISO_04")))
   (progn
     (vlax-for	b (setq	ss (vla-get-ActiveSelectionSet
		     (vla-get-ActiveDocument
		       (vlax-get-acad-object)
		     )
		   )
	  )
(foreach att (vlax-invoke b 'GetAttributes)
  (cond
    ((= (vla-get-TagString att) "FEUILLE_NUM")
     (vla-put-TextString att file)
    )
    ((= (vla-get-TagString att) "DESIGNATION")
     (vla-put-TextString att dir)
    )
    (T nil)
  )
)
     )
     (vla-delete ss)
   )
 )
 (princ)
) 

 

[Edité le 25/9/2008 par (gile)]

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)

Merci beaucoup, je ne m’attendais pas à une raiponce aussi rapide :)

 

J’ais suivi un moment la voie de la commande gatte mais vite abandonné :casstet:

 

J’ai même utilisé un lisp qui récupère les données du cartouche dans un fichier txt (jusque maintenant la version la plus rapide)

 

Je teste votre proposition et vous dis quoi

:D

 

[Edité le 26/9/2008 par MIC07]

Posté(e)

Teste très très concluent merci Gile :D

 

As-tu une idée pour modifier le reste des attribues du cartouche ? :)

:exclam:

Peut être en utilisent la commande ATTIN mais je ne sais pas comment l’ajouter au lisp

 

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é