pingoo666 Posté(e) le 11 mai 2008 Posté(e) le 11 mai 2008 Bonjour, Je cherche a pouvoir stocker un ENAME dans un attribut. En fait le but c'est de pouvoir lier des blocs entre eux : par exemple le bloc "fils" aurait le somme des attributs "VALEUR" des blocs "pères" dans son attribut "VALEUR". J'avais pensé mettre une polyligne pour les relier mais je trouve pas ca très élégant. Donc je cherche un moyen de mettre l'ENAME du bloc fils dans chacun des blocs pères (par exemple dans un attribut "FILS") Une idée ? Merci d'avance !
(gile) Posté(e) le 11 mai 2008 Posté(e) le 11 mai 2008 Salut, Je pense qu'il est préférable d'utiliser le maintient (HANDLE) plutôt que le nom d'entité (ENAME) qui est susceptible de changer après fermeture/ouverture du dessin. La fonction handent permettra de retrouver le ENAME de l'objet. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Bred Posté(e) le 13 mai 2008 Posté(e) le 13 mai 2008 Salut,le nom d'entité (ENAME) qui est susceptible de changer après fermeture/ouverture du dessin.Tiens, je ne savais pas ça....C'est du sûr ? Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
(gile) Posté(e) le 13 mai 2008 Posté(e) le 13 mai 2008 C'est du sûr ? Je ne sais pas, mais l'aide (à propos de la fonction handent entre autre) le dit bien:An entity's name can change from one editing session to the next, but an entity's handle remains constant. [...]Used with the same drawing but in another editing session, the same call might return a different entity name. Once the entity name is obtained, you can use it to manipulate the entity with any of the entity-related functions. D'un autre côté, les champs liés aux objets utilisent l'ObjectID qui est la forme décimale du ENAME (hexadécimal) et doivent bien être conservés d'une ouverture à l'autre... De toutes façons, pour Pingoo666, l'utilisation du HANDLE plutôt que le ENAME facilite le fait de l'utiliser comme valeur d'attribut puisque un HANDLE est du type STRING. [Edité le 13/5/2008 par (gile)] Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
bseb67 Posté(e) le 13 mai 2008 Posté(e) le 13 mai 2008 Salut! L'oid ou le handel ne changent que dans un seul cas (pour l'instant que je connaisse):- wbloc sur le dessin. Pour une application, je stocke en xdata le handel, mais maintenant il faut que je chercheà traiter le cas si on lance un wbloc sur le dessin. Car autocad recréer chaque entité, donc détruitles groupes, les filtres de calques, les cochonneries qui trainent (mais pas toutes) et donc les handentsont modifiés. Comme l'a dit Gile, le handent est plus pratique, car c'est une chaine de caractères ce qui définitjustement un attribut. Tous pour lisp, Lisp pour tous!Avec Revit, cela ne vas trop vite...
Bred Posté(e) le 13 mai 2008 Posté(e) le 13 mai 2008 L'oid ou le handel ne changent que dans un seul cas (pour l'instant que je connaisse):- wbloc sur le dessin.merci !... mais c'est bizarre car je stock des enames dans des ldata, et je n'ai jamais rencontré de problème de reconnaissances.... Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
Patrick_35 Posté(e) le 13 mai 2008 Posté(e) le 13 mai 2008 Salut C'est du sûr ?Non, les enames ne changent pas, sauf en cas de récupération d'un dessin ou de wbloc (j'ai testé). Pour pingoo666Pour conserver tes liens père/fils, tu dois te créer une base de données dans le dessin.Pour cela tu disposes des fonctions lisp vlax-ldata-***.On peut considérer par exemple comme type d'enregistrement une liste contenant le père puis ses fils.Tes enregistrements peuvent être numérotés.Par exemple un (vlax-ldata-get "Mon_Appli" "5") pour le cinquièmeUn (vlax-ldata-list "Mon_Appli") retourne tout tes enregistrements.Ensuite, il faut aussi songer que si un attribut fils change, il faut modifier le père, ou encore, si un père ou fils n'existe plus, le supprimer de la base. Donc les réacteurs pour un minimum de manip ou un lisp de mise à jour qu'il faudra lancer manuellement.Cela commence à devenir complexe.Pour t'aider, tu as le lisp LATT qui permet les additions, avec une mise à jour automatique père/fils via des réacteurs et une gestion avec des vlax-ldata. @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
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