bonuscad Posté(e) le 16 décembre 2010 Posté(e) le 16 décembre 2010 Bonjour, Suite à cette demande à laquelle j'ai apporté une solution. Mais celle ci ne me convient pas, car pas vraiment fiable Ce que je voudrais plutôt réaliser: C'est pouvoir, lors d'une sélection d'objet, si celui ci a été utilisé pour réaliser un champ dynamique (donc l'ID de l'objet a été utilisé pour réaliser le lien avec le Mtext) ajouter par exemple avec (ssadd) automatiquement ce Mtext à la sélection. Je suis un peu perdu avec le dictionnaire ACAD_FIELD. Donc pour résumer, obtenir le (handle) de l'entité MText si celui contient l'ID d'objet de l'entité sélectionnée. J'ai remarqué aussi que (entmod) sur le code DXF (1 . "string" ) n'a aucun effet si un champ (field) a été utilisé. Comment dés lors mettre à jour ce code DXF si une autre chaine (autre que le champ) fait partie de la définition. J'espère pouvoir obtenir une réponse au moins à ma première question.Merci. Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
Fraid Posté(e) le 16 décembre 2010 Posté(e) le 16 décembre 2010 Bonjour, (Gile) a fait un travail remarquable sur les champs avec son Lisp Addfields http://www.cadxp.com/modules.php?op=modload&name=XForum&file=viewthread&tid=24917 peut etre y trouvera tu ton bonheur https://github.com/Fraiddd
Patrick_35 Posté(e) le 16 décembre 2010 Posté(e) le 16 décembre 2010 Salut Je ne vois pas trop comme ceci avec un attribut ?(entget (cdr (assoc 360 (entget (cdr (assoc 360 (entget (cdr (assoc 360 (entget (car (nentsel)))))))))))) @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
bonuscad Posté(e) le 16 décembre 2010 Auteur Posté(e) le 16 décembre 2010 Je vous remercie tout deux, mais je crois que vous n'avez saisie ma demande. Pour imager, imaginez que je sélectionne un objet, si celui-ci à servir pour construire un champ dynamique, je voudrais que ce champ soit sélectionné AUSSI (un peu à la façon qu'un groupe) Je cherche toujours... Pour l'instant je suis parti dans cette direction (bonne , pas bonne !) (setq vla_obj (vlax-ename->vla-object (car (entsel)))) (if (eq (vlax-get-property vla_obj 'HasExtensionDictionary) ':vlax-true) (setq vla_dict (vla-GetExtensionDictionary vla_obj) hand (vlax-get-property (vla-GetObject vla_dict "SURF2") 'Handle) ) ) mais un (entget (handent hand)) ne me retourne pas le résultat escompté :( j'ai l'impression de tourner en rond dans ces dictionnaires Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
Patrick_35 Posté(e) le 16 décembre 2010 Posté(e) le 16 décembre 2010 Salut Attache la ceinture ;) Le plus simple (pour l'instant) est de balayer les objets qui ont des champs. Pour tester sur un objet avec champ (setq old (entget (cdr (assoc 360 (entget (car (nentsel))))))) (setq ent (entget (cdr (last (vl-remove-if-not '(lambda(x)(eq (car x) 360)) (entget (cdr (assoc 360 (entget (cdr (assoc 360 old)))))) ) ) ) ) ) (assoc 331 ent) ; L'objet recherché @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
bonuscad Posté(e) le 16 décembre 2010 Auteur Posté(e) le 16 décembre 2010 Salut Patrick, Cela fonctionne, mais pas dans le sens que je désire. Ton sens: Sélection Champs -> EntitéJe voulais faire l'inverse: Sélection Entité -> Champs (si utilisé... bien sur ! donc l'ID de l'entité dans le champ.) Je continu de chercher de mon coté. ;) Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
(gile) Posté(e) le 16 décembre 2010 Posté(e) le 16 décembre 2010 Salut, Je crains qu'il n'y ait pas de solution directe dans le sens que tu veux. À ma connaissance, il n'y a pas de de données liée à l'objet cible du champ (ni xdata, ni dictionnaire d'extension). Je ne vois qu'une solution, sélectionner tous les mtextes (voire les textes simples, les attributs, les valeurs dans les tableaux) et pour chaque texte rechercher s'il contient un champ objet ayant le même ObjectId que l'objet source. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
bonuscad Posté(e) le 17 décembre 2010 Auteur Posté(e) le 17 décembre 2010 Je ne vois qu'une solution, sélectionner tous les mtextes (voire les textes simples, les attributs, les valeurs dans les tableaux) et pour chaque texte rechercher s'il contient un champ objet ayant le même ObjectId que l'objet source. Après avoir fureter un peu partout, je crois que la solution est malheureusement celle que tu cite. :( Reste plus qu'a ...! Merci de ta réponse Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
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