Archives de catégorie : forums

Bloc dynamique – Récupérer attribut dans un champ.

Suite à une question sur le forum autodesk


Bonjour à toutes et à tous,

Bonjour à toutes et à tous,

Je m’étais créé un bloc dynamique “renvoi” (ci-joint) avec plusieurs visibilités, avec sur chaque visibilité, 2 attributs : RENVOI et TENSION. Sauf qu’avec cette méthode, dés que je change de visibilité, je dois retaper les valeurs d’attributs.

https://forums.autodesk.com/t5/autocad-tous-produits-forum/bloc-dynamique-recuperer-attribut-dans-un-champ/m-p/13744405#M48922

Dans l’utilisation des blocs avec attributs sans développement, il n’est pas simple d’obtenir ce comportement de manière simple et fiable.

Ci-joint un LISP compilé qui permet de lier dynamiquement des attributs dans un bloc. Il recherche les valeurs encodées sous la forme £NOM_ATTRIBUT£ dans les attributs du bloc. Si un attribut correspondant nommé NOM_ATTRIBUT existe, alors un champ dynamique est inséré à sa place. Cela permet de refléter automatiquement les modifications du champ source dans le champ cible.

Étape 1 : Créer le bloc de base avec attribut(s). J’ai ajouté deux attributs à votre bloc :

  • TENSION_SAISIE (avoir une valeur par défaut possible sur un champ avec les propriétés personnalisées du dessin)
  • RENVOI_FOLIO_SAISIE (dans votre cas, il sera toujours à saisir ; mettre une valeur par défaut à saisir, par exemple)

Mettez la propriété par défaut en invisible pour ces attributs, ils n’ont pas à apparaître dans le dessin. Dans votre cas, deux attributs sont prévus pour la saisie. Ensuite, créez les attributs qui serviront à l’affichage et positionnez-les comme vous le désirez. Mettez £TENSION_SAISIE£ ou £RENVOI_FOLIO_SAISIE£ comme valeur par défaut.

Étape 2 : Insérez le bloc, saisissez les bonnes valeurs, puis exécutez la commande Edps_LienAutoAttributs en sélectionnant le bloc inséré.

redefinir bloc autocad lt

Redéfinir les blocs de façon automatique?

Cet article répond à une question posée sur le forum Autodesk France. Il s’agit d’une problématique récurrente : comment créer des présentations rapidement et efficacement.

Vous pouvez retrouver la discussion originale ici :
https://forums.autodesk.com/t5/autocad-tous-produits-francais/redefinir-les-blocs-de-facon-automatique/td-p/13627419

Solution sans programmation (également adaptée à AutoCAD LT), à préparer en amont

Continuer la lecture

Création automatique d’une présentation

Cet article répond à une question posée sur le forum Autodesk France. Il s’agit d’une problématique récurrente : comment créer des présentations rapidement et efficacement.

Vous pouvez retrouver la discussion originale ici :
https://forums.autodesk.com/t5/autocad-tous-produits-francais/creation-de-plusieurs-presentation/td-p/13271439

;;
;; Script créé par Didier LOURDELLE
;; Création Le 17/10/2005
;; Modification le 30/05/2007
;;
;; Instructions :
;; 1. Ouvrez le Bloc-notes (ou tout autre éditeur de texte, comme Notepad++).
;; 2. Collez le code dans le fichier.
;; 3. Enregistrez-le avec l'extension .scr, par exemple : PresentationAuto.scr
;; 4. Glissez-déposez le fichier dans AutoCAD ou utilisez la commande SCRIPT.
;;
;; Lecture des vues
;;
(if (not strVue) (setq strVue (cdr (assoc 2 (tblnext "view" T)))))
;;
;; Initialise la variable contenant le nom de la présentation
;; étant copier
;;
(setq strNomPresentationExemple "PageModel")
;; __________________________________________________________________
;; _______________Ligne modifiable ci dessous________________________
;; __________________________________________________________________
;;
;; Copie de la présentation
;;
-PRESENTATION c
!strNomPresentationExemple
!strVue
;;
;; Active la nouvelle présentation
;;
ctab !strVue
;;
;; passage en espace objet
;;
_.MSPACE
;;
;; Rappel de la vue
;;
-VUE r !strVue
;;
;; passage en espace papier
;;
_.PSPACE
;; _______________________________________________________________________
;; ____________________Ligne modifiable ci dessus________________________
;; _______________________________________________________________________
;;
;; Changement de vue
;;
(setq strVue (cdr (assoc 2 (tblnext "view"))))
;;
;; Test si il y a tjs une vue relance le script si tjs une vue
;;
(if strVue (command "_rscript"))
;; fin