Aller au contenu

Valeur actuelle de l'attribut dans la table des propriétés de bloc


Messages recommandés

Posté(e)

Bonjour à tous,

J'ai créé un bloc dynamique me permettant de calculer et afficher les côtes altimétriques canalisations arrivant dans un regard.
Le bloc possède des attributs PROFONDEUR1, 2, 3, et 4.

image.png.2e9d2314827f69a30719217a63dabf41.png

J'utilise un paramètre de visibilité afin d'afficher le nombre de ligne correspondant au nombre de tuyaux du regard, et je souhaite que par exemple si je choisisse d'afficher 2 lignes cela efface les valeurs qui seraient déjà renseignées dans les attributs PROFONDEUR3 et PROFONDEUR4

Je pensais utiliser la table des propriétés de bloc mais dans le cas de l'exemple cela efface aussi la valeur de l'attribut PROFONDEUR2.
Il faudrait que pour les case en bleue ci-dessous, l'attribut garde sa valeur actuelle. Mais comment faire?
image.png.92369c0b17c1a38667383256a696013b.png

 

Autocad 2023 + Covadis 17.1

ZWCAD 2023 + GeoGexFR 3.0

Posté(e)

Rendre visible ou invisible l'attribut n'est pas le problème.
L'objectif est d'effacer la valeur pour qu'elle ne soit plus en mémoire dans le bloc si on vient à réafficher la ligne.

Si ce n'est pas possible je vais plutôt créer plusieurs blocs avec les différentes configurations de ligne, et si on doit modifier le nombre de ligne un petit lisp de substitution de bloc fera l'affaire.

Autocad 2023 + Covadis 17.1

ZWCAD 2023 + GeoGexFR 3.0

Posté(e)

Coucou @Rémy,
Le problème vient principalement du fait que les propriétés dynamiques sont séparées des attributs d'un bloc. En effet il est possible de gérer les valeurs d'attributs via une Table des Propriétés de bloc (cela ne permet de contrôler que les attributs) tandis qu'avec une Table de Consultation, il est possible de gérer les propriétés dynamiques. Mais, il ne me semble pas possible de lier une valeur d'attribut en fonction d'une propriété dynamique (par exemple si ton état de visibilité est "2 lignes" alors supprimer la valeur des attributs "PROFONDEUR3" et "PROFONDEUR4") via une table ou autre.

Tu évoques la possibilité d'utiliser un LISP. Quitte à emprunter ce chemin je peux te proposer une solution alternative, qui, à chaque exécution d'une commande LISP faire :

  1. Sélection de l'ensemble des blocs dynamiques du dessin
  2. Si le nom de la référence de bloc (= EffectiveName) est égal à NomDéfinitionBloc (= mettre la bonne valeur pour ton cas), alors
  3. Récupération du nom de l'état de visibilité en cours, récupération de la liste des attributs de la référence de bloc et suppression des valeurs d'attribut en fonction de la visibilité

Ainsi tu conserves une seule définition de bloc et tu n'as pas besoin de remplacer les références de bloc (changement d'ID d'objet, etc...) qui pourrait être gênant si mal intégré. Si tu as besoin d'aide sur l'élaboration d'un programme LISP quel qu’il soit, n'hésite pas 🙂

Bisous,
Luna

Posté(e)

Merci @Luna pour cette explication,
je pense bien que ce que je voulais faire ne sera pas possible sans utiliser de lisp.

Quitte à utiliser un lisp je vais plutôt en faire un qui permet l'insertion du bloc, la saisie des données d'attribut, et la mise à jour du nombre de ligne si besoin.

Je vais rester sur la création de plusieurs blocs pour chaque cas de nombre de lignes. C'est plus simple à gérer pour un poste qui n'aurait pas accès au lisp.

 

Autocad 2023 + Covadis 17.1

ZWCAD 2023 + GeoGexFR 3.0

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • 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é