Aller au contenu

Selection d\'attribut par l\'Etiquette


Messages recommandés

Posté(e)

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]

Posté(e)

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 valeurs

puis on sauvegarde le lisp

tu lance autocad et tu appel le lisp ou tu lance un script qui lance le fichier puis la le 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é