RhymOne Posté(e) le 10 juin 2010 Posté(e) le 10 juin 2010 Bonjour,Suite à ce post http://cadxp.cadmag.info/modules.php?op=modload&name=XForum&file=viewthread&tid=28239Je 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), CovadisCAO: 3D's MAX, Rhinoceros 3D, REVITGeoModeliSation: AutoCAD MEP, RhinoTerrainRendu: Vray for Rhino, Keyshot, LumionProgrammation: Grasshopper, Dynamo, VisualStudio C.V.Profil LinkedInBookSite web http://nsa37.casimages.com/img/2016/09/26/160926023334168603.jpg
Bred Posté(e) le 10 juin 2010 Posté(e) le 10 juin 2010 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...
RhymOne Posté(e) le 10 juin 2010 Auteur Posté(e) le 10 juin 2010 Ma demande en un peu plus clairJai 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), CovadisCAO: 3D's MAX, Rhinoceros 3D, REVITGeoModeliSation: AutoCAD MEP, RhinoTerrainRendu: Vray for Rhino, Keyshot, LumionProgrammation: Grasshopper, Dynamo, VisualStudio C.V.Profil LinkedInBookSite web http://nsa37.casimages.com/img/2016/09/26/160926023334168603.jpg
(gile) Posté(e) le 10 juin 2010 Posté(e) le 10 juin 2010 Si tu fais les modifications telles que je te les ai donné dans l'autre sujet, ça fonctionnera... Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Bred Posté(e) le 10 juin 2010 Posté(e) le 10 juin 2010 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...
RhymOne Posté(e) le 10 juin 2010 Auteur Posté(e) le 10 juin 2010 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), CovadisCAO: 3D's MAX, Rhinoceros 3D, REVITGeoModeliSation: AutoCAD MEP, RhinoTerrainRendu: Vray for Rhino, Keyshot, LumionProgrammation: Grasshopper, Dynamo, VisualStudio C.V.Profil LinkedInBookSite web http://nsa37.casimages.com/img/2016/09/26/160926023334168603.jpg
(gile) Posté(e) le 10 juin 2010 Posté(e) le 10 juin 2010 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
Bred Posté(e) le 11 juin 2010 Posté(e) le 11 juin 2010 (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...
Bred Posté(e) le 11 juin 2010 Posté(e) le 11 juin 2010 ... le coup des blocs explosé me fait pensé que j'avais fait un lisp il y a bien longtemps qui regroupais le texte et le nodal des points topo ...http://cadxp.cadmag.info/sujetXForum-14590.htm Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
Messages recommandés
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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant