Aller au contenu

Remplacé valeur par etiquette sur definition d\'attribut


Messages recommandés

Posté(e)

Bonjour,

Suite à ce post

http://cadxp.cadmag.info/modules.php?op=modload&name=XForum&file=viewthread&tid=28239

Je voudrais par l'aide d'une maccro ou d'un lisp remplacé sur des définition d'attribut la valeur par l'etiquette.

 

Merci d'avance

DAO: AutoCAD(2D & 3D), Covadis

CAO: 3D's MAX, Rhinoceros 3D, REVIT

GeoModeliSation: AutoCAD MEP, RhinoTerrain

Rendu: Vray for Rhino, Keyshot, Lumion

Programmation: Grasshopper, Dynamo, VisualStudio

 

C.V.

Profil LinkedIn

Book

Site web

 

http://nsa37.casimages.com/img/2016/09/26/160926023334168603.jpg

Posté(e)

Salut,

pas beaucoup tester, mal écris et pas bien compris la raison de la demande, mais est-ce cela ? :

 

(defun c:ettt (/ blc lst n)
 (while (not blc)
   (setq blc (car (entsel "\n Choix du Bloc avec attribut :")))
   (if (not (equal (cdr (assoc 0 (entget blc))) "INSERT"))
     (setq blc nil)
     )
   )
 (setq lst (safearray-value (vlax-variant-value (vla-getAttributes (vlax-ename->vla-object blc)))))
 (foreach n lst (vla-put-TextString n (vla-get-TagString n)))
 (princ)
)

 

[Edité le 10/6/2010 par Bred]

Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...

Posté(e)

Ma demande en un peu plus clair

Jai des définition d'attribut avec des nombres dans la case etiquette je veut remplacé l'etiquete par la veleur ainsi la valeur aura le nombre de l'etiquette .

Est-ce clair?

Ton lisp merci mais lorsque je le charge puis lance commande il demande le bloc attribut moi j'ai des definition d'atttribut.

(ssget '((0 . "ATTDEF")))

QQchose comme ca...

Merci de ton aide revoir le mode de selection.

DAO: AutoCAD(2D & 3D), Covadis

CAO: 3D's MAX, Rhinoceros 3D, REVIT

GeoModeliSation: AutoCAD MEP, RhinoTerrain

Rendu: Vray for Rhino, Keyshot, Lumion

Programmation: Grasshopper, Dynamo, VisualStudio

 

C.V.

Profil LinkedIn

Book

Site web

 

http://nsa37.casimages.com/img/2016/09/26/160926023334168603.jpg

Posté(e)

Re,

je penses que tu devrais allez voir le lisp de (gile).

mais :

il demande le bloc attribut moi j'ai des definition d'atttribut.

Si tu as une définition d'attribut, c'est que c'est dans un bloc, donc je demande de sélectionner le bloc.... non ?

 

Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...

Posté(e)

Merci Bred c'est OK en fait j'ai recu un plan ou les blocs etait decomposé donc je revennais a des definition d'attributs classique.

DAO: AutoCAD(2D & 3D), Covadis

CAO: 3D's MAX, Rhinoceros 3D, REVIT

GeoModeliSation: AutoCAD MEP, RhinoTerrain

Rendu: Vray for Rhino, Keyshot, Lumion

Programmation: Grasshopper, Dynamo, VisualStudio

 

C.V.

Profil LinkedIn

Book

Site web

 

http://nsa37.casimages.com/img/2016/09/26/160926023334168603.jpg

Posté(e)

Comme je l'ai déjà dit, il est fort peu probable que ce soit un bloc décomposé.

Si c'était le cas, ça voudrait dire que celui qui a créé ce bloc aurait rentré comme étiquette de toutes ces définitions d'attribut une altitude différente ?!

 

Si tu veux remettre ce fichier 'propre', voilà une routine qui transformera toutes ces définitions d'attributs en texte simple en récupérant les valeurs affichées et avec les même propriétés (calque style, justification etc.).

 

(defun c:remettre_au_propre (/ ss n ent elst)
 (if (setq n  -1
    ss (ssget '((0 . "ATTDEF")))
     )
   (while (setq ent (ssname ss (setq n (1+ n))))
     (setq elst (entget ent))
     (entmake
(append
  '((0 . "TEXT") (100 . "AcDbEntity") (100 . "AcDbText"))
  (subst
    (cons 1 (cdr (assoc 2 elst)))
    (assoc 1 elst)
    (vl-remove-if-not
      '(lambda (x)
	 (member (car x) '(67 410 8 10 40 1 50 41 51 7 71 72 11 73))
       )
      elst
    )
  )
)
     )
     (entdel ent)
   )
 )
 (princ)
)

 

Je crois que là tu as un peu touché du doigt les difficultés qu'il peut y avoir à programmer et par là même eu un aperçu du temps qu'il faut pour coder même quelque chose de très simple.

Et s'il me faut à peine 5 minutes pour écrire la routine ci dessus, c'est qu'il y a des années de travail derrière.

Tout ça pour dire que quand on réclame une routine toute faite (à fortiori si elle présente quelque complexité) pour économiser sur des licences, il ne faut pas perdre de vue que celui qui l'écrira fournira un réel travail et qu'il n'a aucune autre raison de le faire gracieusement que le plaisir que ça pourrait lui procurer (même s'il a du temps parce qu'il est au chômage...)

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)
(même s'il a du temps parce qu'il est au chômage...)

Encore ??? :mad:

décidément....

 

les blocs etait decomposé donc je revennais a des definition d'attributs

... si les blocs sont décomposés, ce n'est plus un attribut, mais du texte...

Non ?... :casstet:

 

Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...

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é