doberman Posté(e) le 8 décembre 2006 Posté(e) le 8 décembre 2006 Bonjour, je souhaite modifier un attribut en selectionnant SEULEMENT l'etiquette, est ce que c'est possible ?? C'est pour le mettre dans un script qui me permettrais de pouvoir changer l'attibut quelqueqoit sa valeur et sa position. En fait j'ai plusieur plans ou je dois changer une valeur du cartouche, mais la valeur initiale n'est pas toujours identique ainsi que sa position. Autre question, ya t'il une commande qui permet de "sauter" d'onglet ?Ce qui me permettrais de pouvoir modifier le cartouche sur tous mes onglets de tous mes dessins, le must serais une commande qui n'appelle pas le "nom" de l'onglet car forcement, les differents onglet de mes different fichier se nomment différement. J'espere avoir eté clair dans l'exposition de mon pb. [Edité le 8/12/2006 par doberman]
Zeus-94 Posté(e) le 8 décembre 2006 Posté(e) le 8 décembre 2006 Bonjour Va voir le list de Patrick_35 http:// http://www.cadxp.com/sujetXForum-12805.htm je les intègre a Excel , tu changes les valeurs puis tu appels un script qui le lance pour le boutons voici la syntaxe pour lance le script ^C^Cscript "Q:/exemple/exemple/Plan/test.scr"
Zeus-94 Posté(e) le 11 décembre 2006 Posté(e) le 11 décembre 2006 Bonjour Voici le lisp (if (setq js (ssget "x" (list (cons 0 "INSERT") (cons 2 "electricite")))) ;Je créé un jeu de sélection du bloc que je veux traiter (dans une condition, histoire de voir qu'au moins un bloc est inséré dans le dessin) (progn (setq n 0) ; je commence le jeu de sélection (while (ssname js n) ; je parcours le jeu de sélection (setq ent (entget (entnext (ssname js n)))) ; je récupère les valeurs d'un bloc du jeu de sélection (while (/= (cdr (assoc 0 ent)) "SEQEND") ; Je parcours les attributs du bloc tant que je n'arrive pas à la fin --> SEQEND (cond ((eq (strcase (cdr (assoc 2 ent))) "ETAGE") ; Si c'est l'Attribut ETAGE (setq ent (subst (cons 1 "Valeur Etage") (assoc 1 ent) ent)) ; Je lui donne une nouvelle valeur (entmod ent) ; je modifie dans le dessin l'attribut (entupd (cdr (assoc -1 ent))) ; je met à jour visuellement l'attribut ) ((eq (strcase (cdr (assoc 2 ent))) "SITUATION") ; Idem SITUATION que pour ETAGE (setq ent (subst (cons 1 "Valeur Situation") (assoc 1 ent) ent)) (entmod ent) (entupd (cdr (assoc -1 ent))) ) ((eq (strcase (cdr (assoc 2 ent))) "GAINE") ; Idem GAINE que pour ETAGE (setq ent (subst (cons 1 "Valeur Gaine") (assoc 1 ent) ent)) (entmod ent) (entupd (cdr (assoc -1 ent))) ) ) (setq ent (entget (entnext (cdr (assoc -1 ent))))) ; Je passe à l'attribut suivant ) (setq n (1+ n)) ; je passe au bloc suivant ) ) ) Il faut changer le nom du bloc les etiquettes et leurs valeurspuis on sauvegarde le lisptu lance autocad et tu appel le lisp ou tu lance un script qui lance le fichier puis la le lisp
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