Aller au contenu

Messages recommandés

Posté(e)

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 !

Posté(e)

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

Posté(e)

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...

Posté(e)

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

Posté(e)

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étruit

les groupes, les filtres de calques, les cochonneries qui trainent (mais pas toutes) et donc les handent

sont modifiés.

 

Comme l'a dit Gile, le handent est plus pratique, car c'est une chaine de caractères ce qui définit

justement un attribut.

Tous pour lisp, Lisp pour tous!

Avec Revit, cela ne vas trop vite...

Posté(e)
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...

Posté(e)

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 pingoo666

Pour 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ème

Un (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 Patrick

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

Joseph Joubert, 1754-1824

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é