MIC07 Posté(e) le 25 septembre 2008 Partager Posté(e) le 25 septembre 2008 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
lesourd2 Posté(e) le 25 septembre 2008 Partager Posté(e) le 25 septembre 2008 Salut BienvenuPour changer X fois le meme attribut d'un bloc => commande GATTE. @+ Lien vers le commentaire Partager sur d’autres sites More sharing options...
(gile) Posté(e) le 25 septembre 2008 Partager Posté(e) le 25 septembre 2008 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
MIC07 Posté(e) le 26 septembre 2008 Auteur Partager Posté(e) le 26 septembre 2008 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] Lien vers le commentaire Partager sur d’autres sites More sharing options...
MIC07 Posté(e) le 30 septembre 2008 Auteur Partager Posté(e) le 30 septembre 2008 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant