Aller au contenu

Modifier le style de texte d\'attibuts


Messages recommandés

Posté(e)

Bonjour,

 

Comment changer globalement le style de texte d'un même attribut issu d'un bloc inséré X fois ?? :P :casstet:

 

Par la même occasion, quelle est la variable qui gère le style de texte des attributs ?

 

Sylvain

Posté(e)

ca nest peut etre pas tres academique mais moi je fait comme ca

 

command "editref" je fait mes modifs

apres command "battman"

je choisis le bloc en question et je synchronise

 

et tous les blocs sont ajour

 

 

Vous fîtes ce que vous pûtes

et vous m'épatâtes !!!!

Posté(e)

Ou si tu le désire, tu peux essayer ceci:

 

Tu pourras choisir un style de texte existant ou en créer un nouveau et ceci sera appliqué a tout les blocs de même "nom".

 

(defun c:chg_style_att ( / js ent dxf_ent nam_blk flag_att lst_sty def_style new_sty all_path n end_pos id_path fonts_path file_shx s_e dxf_e)
(princ "\nChoix du bloc avec attribut: ")
(setq js (ssget "_+.:E:S" '((0 . "INSERT"))))
(cond
	(js
		(setq
			ent (ssname js 0)
			dxf_ent (entget ent)
			nam_blk (cdr (assoc 2 dxf_ent))
			flag_att (cdr (assoc 66 dxf_ent))
		)
		(cond
			((and flag_att (not (zerop flag_att)))
				(setq lst_sty (list (strcase (cdr (assoc 2 (tblnext "STYLE" T))))))
				(while (setq def_style (tblnext "STYLE"))
					(setq lst_sty (append (list (strcase (cdr (assoc 2 def_style)))) lst_sty))
				)
				(initget "Existant Nouveau _Existing New")
				(if (eq (getkword "\nStyle [Existant/Nouveau]?: ") "New")
					(progn
						(while (member (setq new_sty (strcase (getstring "\nNom du style à créer?: "))) lst_sty)
							(princ "Nom du style existe déjà")
						)
						(setq all_path (getenv "ACAD") n 0)
						(while (setq end_pos (vl-string-position (ascii ";") all_path))
							(setq id_path (substr all_path 1 end_pos))
							(if (wcmatch (strcase id_path) "*FONTS*")
								(setq fonts_path (strcat id_path "\\"))
							)
							(setq all_path (substr all_path (+ 2 end_pos)))
						)
						(setq file_shx (getfiled "Selectionnez un fichier de police" fonts_path "shx" 8))
						(if (not file_shx)
							(setq file_shx "txt.shx")
						)
						(entmake
							(append
								'(
									(0 . "STYLE")
									(5 . "40")
									(100 . "AcDbSymbolTableRecord")
									(100 . "AcDbTextStyleTableRecord")
									(70 . 0)
									(40 . 0.0)
									(41 . 1.0)
									(50 . 0.0)
									(71 . 0)
									(42 . 2.5)
									(4 . "")
								)
								(list (cons 3 file_shx))
								(list (cons 2 new_sty))
							)
						)
					)
					(progn
						(foreach n lst_sty
							(princ n) (princ " / ")
						)
						(while (not (member (setq new_sty (strcase (getstring "\nNom du style?: "))) lst_sty))
							(princ "Nom du style incorrect")
						)
					)
				)
				(setq js (ssget "_X" (list '(0 . "INSERT") (cons 2 nam_blk))) n 0)
				(repeat (sslength js)
					(setq s_e (cdar (setq ent (entget (ssname js n)))))
					(while (/= (cdr (assoc 0 (entget (setq s_e (entnext s_e))))) "SEQEND")
						(setq dxf_e (entget s_e))
						(if (eq (cdr (assoc 0 dxf_e)) "ATTRIB")
							(progn
								(setq dxf_e (entmod (subst (cons 7 new_sty) (assoc 7 dxf_e) dxf_e)))
							)
						)
						(entupd (cdar ent))
					)
					(setq n (1+ n))
				)
			)
			(T
				(princ "\nCe bloc ne possède pas d'attribut")
			)
		)
	)
	(T (princ "\nSélection vide ou ce n'est pas une insertion de bloc"))
)
(prin1)
)

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Posté(e)

Bonjour yalta,

 

une autre solution que j'utilisais avec autocad 2000

 

consiste à utiliser la commande

 

ATTREDEF

 

qui permet de redefinir les attributs d'un bloc (forme, echelle, position...)

 

a+

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é