Aller au contenu

éditer attibut de plusieurs blocs


Messages recommandés

Posté(e)

Oui, regarde la commande -ATTEDIT (n'oublie pas le tiret devant la commande)

Posté(e)

L'autre solution serait de passer par la programmation LISP ou VBA.

Posté(e)

Bonjour Ludo,

voici les lignes de lon programme d'edition globale d'attributs :

ecris dans le bloc notes et enregistre-le sous EDIT-ATT.LSP

 

tu pourras le charger par un glisser-déposer dans autocad et lancer la fonction

en tapant sur la ligne de commande edit-att.

 

Fabcad

 

;;; fonction d'edition globale d'attributs sur plusieurs attributs

;;; issue de la fonction AutoCAD ATTEDIT

;;; Créee le 18-05-1999

;----------------------------------------------------------------------

(defun sty-att ()

 

(setq nom-b (getstring "\n Nom du bloc <*>: "))

(if (= nom-b nil) (setq nom-b "*"))

 

(setq ETIQ (getstring "\n Spécification Etiquette de l'attribut : "))

 

(setq val-at (getstring "\n Spécification Valeur de l'attribut <*>: "))

(if (= val-at nil) (setq val-at "*"))

 

(setq p1 (getpoint "\n Sélection par Fenêtre - premier point : "))

(setq p2 (getcorner p1 "\n Second point : "))

 

(setq sty (getstring "\n Nouveau Style des attributs : "))

(if (= sty nil) (setq sty ""))

 

(command "-ATTEDIT" "OUI" nom-b ETIQ val-at "fe" p1 p2)

(while (/= (getvar "cmdnames") "")

(command "Style" sty "")

)

 

(princ)

 

);fin defun htr-att

;----------------------------------------------------------------------

(defun htr-att ()

 

(setq nom-b (getstring "\n Nom du bloc <*>: "))

(if (= nom-b nil) (setq nom-b "*"))

 

(setq ETIQ (getstring "\n Spécification Etiquette de l'attribut : "))

 

(setq val-at (getstring "\n Spécification Valeur de l'attribut <*>: "))

(if (= val-at nil) (setq val-at "*"))

 

(setq p1 (getpoint "\n Sélection par Fenêtre - premier point : "))

(setq p2 (getcorner p1 "\n Second point : "))

 

(setq htr (getstring "\n Nouvelle hauteur des attributs : "))

(if (= htr nil) (setq htr ""))

 

(command "-ATTEDIT" "OUI" nom-b ETIQ val-at "fe" p1 p2)

(while (/= (getvar "cmdnames") "")

(command "Hauteur" htr "")

)

 

(princ)

 

);fin defun htr-att

;----------------------------------------------------------------------

(defun ang-att ()

 

(setq nom-b (getstring "\n Nom du bloc <*>: "))

(if (= nom-b nil) (setq nom-b "*"))

 

(setq ETIQ (getstring "\n Spécification Etiquette de l'attribut : "))

 

(setq val-at (getstring "\n Spécification Valeur de l'attribut <*>: "))

(if (= val-at nil) (setq val-at "*"))

 

(setq p1 (getpoint "\n Sélection par Fenêtre premier point : "))

(setq p2 (getcorner p1 "\n Second point : "))

 

(setq ang (getstring "\n Angle pour ces attributs : "))

(if (= ang nil) (setq angle ""))

 

(command "-ATTEDIT" "OUI" nom-b ETIQ val-at "fe" p1 p2)

(while (/= (getvar "cmdnames") "")

(command "Angle" ang "")

)

 

(princ)

 

);fin defun ang-att

;----------------------------------------------------------------------

(defun col-att ()

 

(setq nom-b (getstring "\n Nom du bloc <*>: "))

(if (= nom-b nil) (setq nom-b "*"))

 

(setq ETIQ (getstring "\n Spécification Etiquette de l'attribut : "))

 

(setq val-at (getstring "\n Spécification Valeur de l'attribut <*>: "))

(if (= val-at nil) (setq val-at "*"))

 

(setq p1 (getpoint "\n Sélection par Fenêtre premier point : "))

(setq p2 (getcorner p1 "\n Second point : "))

 

(setq coul (getstring "\n Couleur pour ces attributs : "))

(if (= coul nil) (setq coul ""))

 

(command "-ATTEDIT" "OUI" nom-b ETIQ val-at "fe" p1 p2)

(while (/= (getvar "cmdnames") "")

(command "CO" coul "")

)

 

(princ)

 

);fin defun

;----------------------------------------------------------------------

(defun cal-att ()

 

(setq nom-b (getstring "\n Nom du bloc <*>: "))

(if (= nom-b nil) (setq nom-b "*"))

 

(setq ETIQ (getstring "\n Spécification Etiquette de l'attribut : "))

 

(setq val-at (getstring "\n Spécification Valeur de l'attribut <*>: "))

(if (= val-at nil) (setq val-at "*"))

 

(setq p1 (getpoint "\n Sélection par Fenêtre premier point : "))

(setq p2 (getcorner p1 "\n Second point : "))

 

(setq calq (getstring "\n Calque pour ces attributs - [0] : "))

(if (= calq nil) (setq calq "0"))

 

(command "-ATTEDIT" "OUI" nom-b ETIQ val-at "fe" p1 p2)

(while (/= (getvar "cmdnames") "")

(command "CA" calq "")

)

 

(princ)

 

);fin defun

;----------------------------------------------------------------------

(defun Val-att ()

 

(setq nom-b (getstring "\n Nom du bloc <*>: "))

(if (= nom-b nil) (setq nom-b "*"))

 

(setq ETIQ (getstring "\n Spécification Etiquette de l'attribut : "))

 

(setq val-at (getstring "\n Spécification Valeur de l'attribut <*>: "))

(if (= val-at nil) (setq val-at "*"))

 

(setq p1 (getpoint "\n Sélection par Fenêtre - premier point : "))

(setq p2 (getcorner p1 "\n Second point : "))

 

(setq val (getstring "\n Nouvelle Valeur des attributs : "))

(if (= val nil) (setq val "."))

 

(command "-ATTEDIT" "OUI" nom-b ETIQ val-at "fe" p1 p2)

(while (/= (getvar "cmdnames") "")

(command "Valeur" "Remplacer" val "")

)

 

(princ)

 

);fin defun Val-att

;----------------------------------------------------------------------

(defun c:edit-att ( / chx cnt)

(setq cnt T)

(while cnt

(initget "Hauteur Angle Style COuleur CAlque Valeur")

(setq chx (getkword "\n Option [Hauteur/Angle/Style/COuleur/CAlque/Valeur] : "))

(cond

((= chx "Angle") (ang-att))

((= chx "COuleur") (col-att))

((= chx "CAlque") (cal-att))

((= chx "Hauteur") (htr-att))

((= chx "Style") (sty-att))

((= chx "Valeur") (Val-att))

(T (setq cnt nil))

);fin cond

);fin while

(prompt "\n---COPYRIGHT 05/99 par Fabrice DEMIEL---")

(prin1)

);fin defun edit-att

Posté(e)

Merci pour votre rapidité et votre éfficacité, que de tps gagner et de clarté sur mes plans.

 

Pour ceux qui comme moi viennent de découvrir ces solutions, je vous conseille d'utiliser le lisp EDIT-ATT, il est simple, complet et permet d'envisager de multitudes d'applications pour les attributs.

 

Bonne journée

Posté(e)

Pas pour les faineants mais autodesk croit que nous gerons un tout tout tout petit nombre de blocs avec attributs, il s'avere pour nous que nous gérons plus de 2000 bornes d'incendie alors lorsqu'il faut modifier les propriétés des attributs de ces blocs avec leur fonction je ne te fais pas un dessin.

C'est pourquoi j'ai créé dans ma boite a outils cette fonction.

 

Pour ma part j'ai créé beaucoup de fonctions traitants les chaines de caractères (textes sur autocad) scinder,reunir, ajout de texte a droite ou a gauche, une fonction dictionnaire pour choisir un mot dans une liste et l'ecrire dans autocad, ecrire sur une polyligne (je fais de la carto et bien sur les routes ne sont pas droites etc...

 

Voila et Bonne Utilisation...

 

Fabrice

 

 

 

Posté(e)

Pour les fainéants, c'est juste pour une image, plus on fait d'automatisme, moins de temps est passé sur les dessins.

Il est plaisant de voir que d'autres personnes donnent leurs sources et en plus c’est en français.

Pour ma part, je fais aussi pas mal de développement surtout pour de l'elec en bâtiment et aussi des fonctions pratique comme une recopie des attributs, remplacer une sélection de blocs par un autre, une incrémentation de texte avec un tri dans l’espace, etc...

Il reste encore des choses à faire pour mon métier, comme par exemple récupérer sur le dessin l'implantation de détecteurs incendie et générer ensuite le synoptique et la même chose pour des prises informatique ou encore les schémas d'armoire, mais c'est le temps qui manque.

 

@+

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Posté(e)

Bonjour à tous,

 

je reviens sur le superbe programme edit-att de fabcad, juste une chose qui me pose problème pour certaines application.

Les blocs ont des attributs dont la valeur par défaut est nulle, justement lorsqu'un attribut a une valeur nulle, le programme ne prend pas la modif.

 

La fonction -attedit le fait bien mais cette fonction ne permet pas de se limiter aux bloc désirés (ce que fait le edit-att par la sélection fenêtre)

 

Y a t-il un moyen de modifier mes attributs valeur nulle ?

 

Bon week-end.

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é