AutoCAD: Altimétrie façade avec bloc dynamique et SCU personnalisé

Comment créer un bloc dynamique pour l’altimétrie de façade dont les valeurs de coordonnées Y sont relatives à un SCU (Système de Coordonnées Utilisateur) personnalisé, et non au SCU Général (WCS) ?

Le problème que vous rencontrez est courant : les champs d’attributs standard d’AutoCAD, tels que ceux liés à la position d’un objet (ex: POSITIONY), référencent généralement le Système de Coordonnées Général (WCS) par défaut, et non le Système de Coordonnées Utilisateur (SCU) courant. Pour obtenir une valeur d’altimétrie relative à un SCU personnalisé directement dans un attribut de bloc dynamique, une approche programmatique est nécessaire.

Voici les solutions et bonnes pratiques pour gérer l’altimétrie de façade avec des références SCU :

  1. Comprendre le comportement des coordonnées dans les attributs

    • Les champs d’attributs qui affichent des coordonnées (comme la position Y d’un bloc) sont par défaut liés au WCS (World Coordinate System).
    • Pour qu’un attribut affiche une coordonnée relative à un SCU spécifique, il faut soit une fonction AutoCAD avancée qui n’est pas nativement disponible pour les champs simples, soit une personnalisation via programmation.
  2. Solution Programmatique (LISP ou .NET) pour Attributs SCU-dépendants
    C’est la méthode la plus directe pour que votre bloc dynamique affiche une altimétrie relative au SCU courant.

    • Principe : Créer une routine LISP (ou un plugin .NET) qui, lors de l’insertion ou de la mise à jour du bloc (ou après un REGEN), calcule la position Y du point d’insertion du bloc (ou d’un point de référence interne au bloc) par rapport au SCU courant.
    • Étapes clés (LISP) :
      a. Récupérer les coordonnées du bloc : Obtenez le point d’insertion du bloc dynamique (en WCS).
      b. Récupérer le SCU courant : Utilisez les variables système (getvar "UCSORG") pour l’origine du SCU et (getvar "UCSXDIR"), (getvar "UCSYDIR") pour ses vecteurs X et Y.
      c. Transformer les coordonnées : Convertissez le point WCS du bloc en coordonnées SCU. En LISP, la fonction (trans point_wcs 0 1) peut transformer un point du WCS vers le SCU courant.
      d. Mettre à jour l’attribut : Écrivez la valeur Y transformée dans l’attribut de votre bloc. Utilisez (vla-put-TextString attribut_objet nouvelle_valeur) pour modifier l’attribut.
    • Déclenchement : Cette routine peut être associée à un événement (par exemple, acDoc.EndCommand pour INSERT, MOVE, COPY) ou être exécutée manuellement via une commande LISP.
  3. Alternative avec les Cotations Standard d’AutoCAD (Recommandé pour la simplicité)
    Si l’objectif est d’afficher des altimétries sur des façades et que l’intégration directe dans un attribut de bloc dynamique n’est pas impérative, les outils de cotation standard d’AutoCAD sont plus simples à gérer avec les SCU.

    • Définir le SCU de référence : Avant de coter, définissez un SCU dont l’origine (0,0,0) est votre point de référence d’altimétrie (ex: niveau du sol fini) et dont l’axe Y est orienté verticalement.
      • Utilisez la commande SCU (UCS) et choisissez l’option Objet (Object) pour aligner sur une entité, ou 3Points pour définir précisément l’origine et les axes.
    • Utiliser les cotations d’ordonnée : La commande COTORD (DIMORDINATE) permet de coter des points par rapport à l’origine du SCU courant. Ces cotations sont associatives et se mettront à jour si le point coté est déplacé (tant que le SCU reste le même).
    • Dissocier les cotations (si nécessaire) : Si vous devez modifier le SCU par la suite sans que les cotations ne changent de valeur, utilisez la commande _COTDISSOCIER (DIMDISASSOCIATE) sur les cotations. Elles deviendront des entités graphiques fixes, non associatives.
    • Bonne pratique : Insérez un point AutoCAD (POINT) ou un bloc simple à votre point de référence 0,0,0 du SCU pour le visualiser et le retrouver facilement.
  4. Gestion des SCU pour les Façades

    • Pour chaque façade, créez un SCU nommé spécifique. Cela facilite la navigation et l’application des cotations ou des blocs.
    • Enregistrez vos SCU avec la commande SCU (UCS) puis l’option Nommé (Named) pour les réutiliser facilement.

En résumé, pour une solution intégrée à un attribut de bloc dynamique affichant des coordonnées SCU-relatives, la programmation est la voie à suivre. Pour une solution rapide et standard d’affichage d’altimétrie relative à un SCU, les cotations d’ordonnée avec un SCU bien défini sont très efficaces et souvent suffisantes.