Communauté
AutoCAD – tous produits - Français
Bienvenue sur les forums AutoCAD d’Autodesk. Partagez vos connaissances, posez des questions, et explorez les sujets AutoCAD populaires.
annuler
Affichage des résultats de 
Afficher  uniquement  | Rechercher plutôt 
Vouliez-vous dire : 

Modifier 1 lettres sur plusieurs etiquettes du meme Bloc

11 RÉPONSES 11
RÉSOLU
Répondre
Message 1 sur 12
Anonymous
1078 Visites, 11 Réponses

Modifier 1 lettres sur plusieurs etiquettes du meme Bloc

bonjour,

 

je viens a vous car je ne trouve pas solution.

 

j'ai un bloc qui a été construit avec des  300 étiquettes avec en référence avec une lettre et la codification viens changer et je me vois pas aller dans un bloc éditer et changer a la main une lettre a la fois. après avantage que j'ai c'est que toutes les étiquettes passe d'une lettre a une autres. 

 

Exemple les étiquettes "Exxx" (donc 300 fois)  passe en tous "Axxx"

et j'en est d'autres.

 

si vous avez une idée ?

 

merci d'avance.

 

fred

 

 

11 RÉPONSES 11
Message 2 sur 12
_gile
en réponse à: Anonymous

Salut,

 

À part avec une routine LISP ou autre, je crains qu'il ne faille le faire à la main...



Gilles Chanteau
Programmation AutoCAD LISP/.NET
GileCAD
GitHub

Message 3 sur 12
_Steven_
en réponse à: Anonymous

Salut,

 

Si tu as les Express Tools d'installés, tu peux lancer la commande ATTOUT et sélectionner tous tes blocs en question.

Tu obtiendra un fichier texte que tu ouvres avec Excel ou un autre tableur., tu remplace dans la colonne des Exxxx par Axxxx puis tu enregistres ton fichier.

Tu retourne sur AutoCAD, tu tapes la commande ATTIN, tu sélectionnes ton fichier texte et tous tes attributs Exxxx seront remplacer par Axxxx.

Steven

Ce post vous a été utile ? N'hésitez pas à aimer ce post.
Ce post a-t-il répondu à votre question ? Cliquez sur le bouton APPROUVER LA SOLUTION en dessous de la réponse.



« L’homme de bien n’exige pas de l’autre qu’il soit parfait, il l’aide à accomplir ce qu’il a en lui de meilleur. »
Lao Tseu
Message 4 sur 12
_gile
en réponse à: _Steven_

@_Steven_,

Si j'ai bien compris, c'est les étiquettes des définitions d'attribut qu'il s'agit de modifier, dans une définition de bloc, donc.



Gilles Chanteau
Programmation AutoCAD LISP/.NET
GileCAD
GitHub

Message 5 sur 12
_Steven_
en réponse à: Anonymous

Salut _gile,

En effet, Fred cité des étiquettes et j'avais aussi pensé aux definitions d'attributs puis je me suis dis que peut-être parle-t-il des valeurs d'attributs.
Aussi, ça m'à surpris que tu ne parle pas d'ATTIN -ATOUT mais je comprends maintenant pourquoi 😉
Steven

Ce post vous a été utile ? N'hésitez pas à aimer ce post.
Ce post a-t-il répondu à votre question ? Cliquez sur le bouton APPROUVER LA SOLUTION en dessous de la réponse.



« L’homme de bien n’exige pas de l’autre qu’il soit parfait, il l’aide à accomplir ce qu’il a en lui de meilleur. »
Lao Tseu
Message 6 sur 12
Anonymous
en réponse à: Anonymous

bonjour,

 

merci pour essayer m'aidez, mais express tool fonctionne pas chez nous.

 

je vais mettre une photo comme exemple, là c'est le E qui doit être remplacer par A mais j'en aient d'autre cas.

Message 7 sur 12
_Steven_
en réponse à: Anonymous

En effet, _gile à raison, ce sont bien les définitions d'attributs que tu souhaites modifier.
Il te faudrait effectivement une routine lisp ou les modifier à la main.
Steven

Ce post vous a été utile ? N'hésitez pas à aimer ce post.
Ce post a-t-il répondu à votre question ? Cliquez sur le bouton APPROUVER LA SOLUTION en dessous de la réponse.



« L’homme de bien n’exige pas de l’autre qu’il soit parfait, il l’aide à accomplir ce qu’il a en lui de meilleur. »
Lao Tseu
Message 8 sur 12
Anonymous
en réponse à: _Steven_

bonjour,

 

merci c'est bien ce que que je pensais.

 

je vais essayer trouver un lisp car  a un main risque d'erreur .

 

merci a tous

Message 9 sur 12
CADaSchtroumpf
en réponse à: Anonymous

Bonjour,

 

Ces quelques lignes copiés directement sur la ligne de commande "devraient" faire le job.

Je dis bien devraient car je n'ai pu tester en situation réelle, je me suis basé sur tes indications (image comprise).

 

((lambda ( / js_bl n ent tag)
	(setq js_bl (ssget "_X" '((0 . "INSERT") (2 . "REPRE"))))
	(repeat (setq n (sslength js_bl))
		(setq ent (ssname js_bl (setq n (1- n))))
		(foreach a (vlax-invoke (vlax-ename->vla-object ent) 'GetAttributes)
			(setq tag (vla-get-TagString a))
			(cond
				((wcmatch tag "E##@#")
					(vla-put-TagString a (strcat "A" (substr tag 2)))
				)
			)
		)
	)
))

Cela va modifier toutes tes insertions du bloc déjà effectuées, mais en aucun cas ta définition du bloc, il serait bien de le faire sinon le problème des étiquettes va persister lors de tes insertions futures.

Message 10 sur 12
Anonymous
en réponse à: CADaSchtroumpf

 

((wcmatch tag "E##@#")

 

Sa fonctionne super bien dans un premier temps ou les étiquettes sont bien changer quand je rentre dans le bloc mais pas en éditeur de bloc, je vais voir avec import si sa rempli bien toutes les étiquettes.

 

il faut juste que je change les # et @ selon les étiquettes.

 

merci beaucoup.

 

fred

Message 11 sur 12
CADaSchtroumpf
en réponse à: Anonymous

il faut juste que je change les # et @ selon les étiquettes.

 

Je pense qu'il est en effet judicieux de procéder ainsi, quitte à faire plusieurs passes du lisp (après modification), de façon à bien cibler les changements et de pas changer une étiquette malencontreusement.

 

Dans l'éditeur de bloc, tu peux aussi répéter la procédure avec le lisp suivant pour mettre à jour ta définition de bloc, je te laisse ajuster les détails.

((lambda ( / js_at n ent dxf_ent tag)
	(setq js_at (ssget "_X" '((0 . "ATTDEF"))))
	(repeat (setq n (sslength js_at))
		(setq
			ent (ssname js_at (setq n (1- n)))
			dxf_ent (entget ent)
			tag (cdr (assoc 2 dxf_ent))
		)
		(cond
			((wcmatch tag "E##@#")
				(entmod (subst (cons 2 (strcat "A" (substr tag 2))) (assoc 2 dxf_ent) dxf_ent))
			)
		)
	)
))
Message 12 sur 12
Anonymous
en réponse à: Anonymous

Bonjour,

 

il m'a suffit de répété dans un fichier .txt plusieurs fois la commande en modifiant les # et les @ et après le copier direct dans ma ligne de commande et hop tous changer et fait pareil pour l'éditeur de bloc.

 

merci beaucoup.

 

vous avez fait gagner beau temps.

 

fred

Vous n'avez pas trouvé ce que vous recherchiez ? Posez une question à la communauté ou partagez vos connaissances.

Publier dans les forums  

Autodesk Design & Make Report